根据Gartner的预测,到2007年年底,《财富》前1000强中有30%左右的企业,在部署Windows服务器时使用了一种关键的虚拟技术--分区。到2009年,那些没有采用虚拟技术的企业将在IA(IntelArchitecture,英特尔架构)服务器上多支出25%的费用,而在RISC服务器上的额外支出也高达15%,这其中包括硬件、软件、劳动力和占地空间等各方面的成本。
在传统的典型IT架构中,存在许多不合理之处,阻碍着现代企业的灵活性。由于应用被捆绑在固定的平台上,使得各项应用拥有不同的平台,需要有专用的、针对特定应用的开发、测试、生产和灾难恢复环境,而且每个应用环境都需按预计最大负载来构建,彼此之间仅有较低的或根本没有资源共享。
目前,在国内企业数据中心,这一传统架构的缺点更加明显,它们普遍根据需求随时添加服务器设备,这些设备基本上都是分散的,具有不同品牌、不同配置,甚至架构也不同,最致命的是在其上运行的应用并不能充分利用服务器的所有资源,只用到15%~20%的服务器资源是普遍现象。使用虚拟化技术可以减少服务器数量的增加,简化服务器管理,同时明显提高服务器利用率、网络灵活性和可靠性。将多种应用整合到少量企业级服务器上即可实现这一目标。通过整合及虚拟化,数百台服务器可以减少至数十台;10%甚至更低的服务器利用率将提高到60%或更高,IT基础设施的灵活性、可靠性和效率也将得到改进。而实施服务的虚拟化技术,首先要面对的就是软件选型。
VMware和Xen的结构特点
目前Xen和VMware是市场上主流的两大虚拟化产品。这两大产品背后的架构区别,将带来不同的应用体验。
VMware
VMware有业界著名的虚拟机产品,其主打产品是VI3 (VMwareInfrastructure3)软件套装。VI3以其杰出的管理能力,受到了广大数据中心的青睐。
在VMware中,最核心的软件是 ESXServer。ESXServer直接安装在裸机上,在硬件和操作系统之间形成一个虚拟化层。ESXServer将一台物理服务器划分为多个可移植的虚拟机环境。VMFS(VirtualMachine FileSystem)则是封装ESXServer的存储载体。ESX的虚拟层级实际上包裹了硬件,ESX创建了一个硬件接口层HardwareInterfaceLayer,所有虚拟机如果想跟硬件通信,必须经过这个硬件接口层,完成诸如内存偏移转换的工作。这里需要强调的是,ESX的特点是完全包裹硬件,不允许程序直接访问硬件。
当然,ESX只是VMware最基础的技术,VI3中其余的工具,用于完善虚拟化和可视化管理。其中,DRS(DistributedResourcedScheduler)可以将多个ESXServer资源合并为群集,同时,按照假定所有资源都在一台主机上的方法,简单管理群集。VirtualSMP可以让单个虚拟机同时使用多个处理器。VMwareVmotion可以使虚拟机从一台物理服务器迁移到另一台物理服务器,迁移过程中不用宕机。此外,它也提供虚拟的双机热备和集成备份等功能。最后,所有虚拟化复杂的管理,都可以由VirtualCenter虚拟中心控制台轻松完成。
Xen
VMM(VirtualMachineMonitor)是由剑桥大学计算机实验室开发的一个开源项目,它能够让我们创建更多虚拟机,每一个虚拟机都是运行在同一个操作系统上的实例。
这些客户OS可以是修补过的Linux2.4或2.6内核,也可以是修补过的NetBSD/FreeBSD内核。用户应用程序就运行在这些客户OS上,并不需要修改任何代码。但是,随着将来的处理器能支持虚拟化的特性,内核也就不需要打补丁了。比如Intel的VT和AMD的Pacifica处理器都将包括这种功能。
在Xen中,"系统管理程序"运行在0环,客户OS运行在1环,应用程序运行在3环。这种关系对于x64有一点不同,就是客户内核和应用程序都运行在3环上。
Xen自称为"系统管理程序",是因为它比客户OS所需的系统管理代码运行的特权级还高。当系统引导的时候,Xen装载到0环的内存中。它在1环上启动修补过的内核,称做domain0(domain是指一个运行中的虚拟机,在其上有一个guestOS在执行)。从这个domain开始,可以创建更多的domain,也可以销毁它们,还可以进行domain迁移、设置参数等。系统创建的那些domain也运行在1环内核中,用户应用程序运行在3环。
目前,修补过的Linux 2.4和2.6内核可以作为domain0。据Xen开发者所说,将来domain0仅支持2.6的内核补丁。构造domain0的大部分工作是在Xen/arch/x86/domain_build.c中的construct_dom0()方法中实现的。物理设备驱动程序只能运行在特权级,也就是domain0上。Xen依靠Linux或其他修补过的OS内核对它所管理的设备提供虚拟化支持。这样的好处就是Xen的开发者不必再去开发设备驱动程序。在一个有标签TLB的处理器上使用Xen能够大大提高性能。标签TLB能够把ASID(AddressSpaceIdentifier)放在TLB入口处。有了这个特性,当处理器在系统管理程序和客户OS之间切换时就不需要刷新TLB了,这大大减少了系统开销。
最大区别体现在对I/O设备的处理上
VMware
ESX服务器的架构是建立在直接执行(直接在硬件上运行用户级的虚拟机编码)和二进制译码(对特权级别编码进行动态编译)的基础上,从根本上说,它是把一个完整的x86平台导出到虚拟机上。ESX服务器可以使大多数能在x86上执行的操作系统都能在虚拟机上运行,而不需要进行任何修改。
Xen
的架构中使用了一种虚拟化技术(Virtualization),对虚拟出来的客户操作系统(GuestOS)进行修改,使它知道自己是在虚拟环境下运行。
这两种方式最大的不同就是对I/O设备的处理。虚拟机I/O端口和每个物理I/O端口设备之间如何路由在很大程度上影响了虚拟平台架构的性能,以及便携性、可持续性和稳定性。Xen采用的是分离驱动模式,真实驱动存在于一个中间层,这个中间层叫服务虚拟机,其他虚拟机上的特殊驱动通过这个服务虚拟机进行通信。这种方法能提供很好的性能,但是对于传统操作系统支持有限。
在ESX中,虚拟机的虚拟设备驱动与ESX内核里的物理设备驱动直接相互连接。ESX虚拟机可以为其虚拟设备使用现成的(off-the-shelf)驱动。这不仅能提供高性能,还能提供更广泛的操作系统支持。然而在这个模型里,新的设备驱动必须导入到ESX内核中。为了解决I/O虚拟化的平衡问题和复杂性问题,戴尔与英特尔、AMD这样的合作伙伴以及外设硬件供应商一起,在芯片组和I/O设备中引入了虚拟化支持。
企业级虚拟化解决方案的另外一个重要部分就是管理。戴尔Open-Manage这样的产品附送VMwareVirtualCenter、P2V和VMIm-porter,提供了整套工具,能有效进行部署、监控、操作自动化,以及对虚拟IT数据中心进行管理。Novell和RedHat都在它们的操作系统中整合了对Xen平台的管理,方法是运用像YaST和Anaconda这样的安装和配置工具,以及VirtualMachineManager这样的管理工具。
服务器虚拟化管理解决方案
通过VMware虚拟化技术,某企业信息中心将一台物理服务器分割成多个相互隔离独立的"虚拟环境"(以下简称VM),确保各部门间的应用及数据完全隔离,增强了服务器的利用率。
1. 利用虚拟化技术进行服务器整合,全面提高服务保障水平。
2. 利用虚拟化技术进行统一管理维护,极大降低了管理工作量。
服务器整合改变了基础设施的复杂现状,允许管理人员使用VMware集中管理控制台对多台服务器进行集中管理。同时各部门也可以利用VMware用户控制面板对单个VM进行管理维护,进行诸如启动、停止、重启、备份、恢复及远程重新安装等各种管理操作。VMware虚拟化技术强大、灵活的集中管理模式将使管理员从简单机械的重复操作(如重装系统)中解脱出来,极大地降低了管理工作量。
3. 降低单点故障,提高服务保障水平。
服务器合并后降低了所需要管理的物理服务器数目,降低了单点故障率,与之对应的是管理、维护工作量的极大下降。信息中心的管理人员可以有更多时间管理有限的几台服务器,确保所有应用服务全天候正常运转,从而提高了服务保障水平。
4. 提高资源利用率,改善资源分配。
利用VMware虚拟化技术,信息中心可以按照不同应用所需的不同资源,动态地对物理服务器进行虚拟分区,提供最合适的虚拟环境(即VM),极大地提高了每台服务器的利用率,也使得资源分配更加合理。虚拟环境的大量使用,改变了以往在单台服务器上只能部署单个应用的弊病,而利用虚拟环境(VM)的安全隔离特性,完全实现了应用程序隔离的目的,最大程度地保障了多用户环境下的数据安全。
5. 降低备份/恢复的成本。
方案部署后,所有应用全部运行在虚拟环境(VM)中,完全实现了软硬件的隔离。VMware还真正实现了零宕机迁移技术,可将迁移工作对业务的影响降低为零。无需使用昂贵的专用存储设备,仅采用备份现有虚拟环境(VM)或进行VM整体迁移,就可以实现高质量备份/恢复方案。
通过部署VMware虚拟化技术,信息中心改善了基础设施的管理方式,极大降低了管理工作量,节约了服务器管理和维护成本。除了降低单点故障可能性外,还缓解了因资源利用率不高而导致的整体资源紧张问题,增强了数据安全性和灾难恢复能力。
虚拟化一路走来
尽管虚拟化技术只是在近年才变得火爆,但是虚拟化却有着悠久的历史。早在20世纪60年代,IBM公司就发明了一种操作系统虚拟机技术,允许用户在一台主机上运行多个操作系统,让用户尽可能地充分利用昂贵的大型机资源。
最早使用虚拟化技术的是IBM 7044计算机。此后,IBM在20世纪60年代还开发了型号为Model67的System/360主机。Model67主机通过虚拟机监视器(VirtualMachineMonitor)虚拟所有的硬件接口。1965年,IBM公司的"M44/44X"计算机项目,定义了虚拟内存管理机制,用户程序可以运行在虚拟的内存中,对于用户来说,这些虚拟内存就好像一个个"虚拟机",为多个用户的程序提供了独立的计算环境。
IBM提出的虚拟机技术,使一批新产品涌现出来,比如IBM360/40、IBM360/67以及VM/370,这些机器在当时都具有虚拟机功能,通过一种叫VMM(虚拟机监控器)的技术在物理硬件之上生成了很多可以运行独立操作系统软件的虚拟机实例。
由于虚拟化技术在商业应用上的优势,RISC(精简指令集计算机)服务器与小型机成了虚拟化技术第二代受益者。1999年,IBM公司在AS/400上提出了上"逻辑分区(LPAR)"技术和新的高可用性集群解决方案。在POWER管理程序上运行的AS/400LPAR,令单台服务器工作起来如同12个独立的服务器。而在2002年,IBM的虚拟化技术又前行一步,其AIX5Lv5.2首次包括了IBM实现的动态逻辑分区(DLPAR)。DLPAR允许在无需重启系统的情况下,将包括处理器、内存和其他组件在内的系统资源分配给独立的分区。这种在不中断运行的情况下进行资源分配的能力不仅令系统管理变得更加轻松,而且因为能够更好地使用资源而帮助降低总拥有成本。
不过,尽管惠普、Sun公司也跟随IBM在自己的RISC服务器上提供了虚拟化技术,但由于真正使用大型机和小型机的用户还是少数,加上各家产品和技术之间并不兼容,虚拟化技术仍旧不太被公众所关注。而现在,虚拟化技术的发展已经惠及到了x86处理器架构。
此前,虚拟化技术在x86架构上进展缓慢的主要原因是x86架构本身不适合进行虚拟化,不过这个障碍已经由英特尔、AMD修改,x86处理器的指令集得到解决;还有一个原因是x86处理器的性能不足,也随着x86处理器在性能上的飞速提高得到了解决。由于x86架构的广泛普及,x86架构上的虚拟化技术得到了比以前更大的关注。
x86平台上虚拟化技术的实现,首次向人们展示了虚拟化应用的广阔前景,因为x86平台可以提供便宜的、高性能和高可靠性的服务器。更重要的是,一些用户已经开始配置虚拟化的生产环境,他们需要得到新的管理工具,从而随着虚拟化技术的发展而得到更大的收益。
不过,与已经有多年历史的Unix服务器、大型主机上的虚拟化技术相比,x86服务器上的虚拟化仍旧处于早期阶段--根据英特尔的蓝图,在处理器当中集成硬件辅助虚拟化指令只是IA平台上的第一步;而在第二步则要实现I/O(输入输出)方面的虚拟化,直到最后实现整个IA平台的虚拟化。也就是说,目前的x86平台上,仅仅能够实现在处理器级别的虚拟化,在I/O以及其他方面的虚拟化还需要进一步发展。不仅如此,x86架构上的虚拟化技术还无法完美实现虚拟分区之间动态迁移,而这些功能在Unix平台、大型主机上早已不是问题。目前,x86架构上的虚拟化技术的最高规划是支持8路SMP(对称多处理)系统,可以实现对单个CPU资源的配置。
自2006年以来,从处理器层面的AMD和英特尔到操作系统层面的微软的加入,从数量众多的第三方软件厂商的涌现到服务器系统厂商的高调,我们看到一个趋于完整的服务器虚拟化的产业生态系统正在逐渐形成。这也使得在过去一两年时间里,虚拟化开始成为广受关注的热点话题。整体看来,随着计算机新技术的飞速发展,虚拟化的前景和一年前相比几乎彻底改变了,新的虚拟化平台前景十分乐观。
【编辑推荐】