虚拟化技术专题

实测三款主流x86分区虚拟化解决方案

上一篇 / 下一篇  2008-01-15 18:37:28 / 个人分类:评测

《计算机世界》评测实验室 秦钢

    在今天,虚拟化已经不是什么新鲜的概念了,而是用户切实的应用需求,分区已经成了小型机的必备功能。即使是在x86平台上,虚拟化的应用也已经有不短的年头了,只是由于一直停留在桌面系统领域,几乎与企业应用无关,所以一直处在小打小闹的阶段。

    然而,最近一两年来,一些主流技术的发展和由此推进的产品格局的变化,给基于x86平台的企业级虚拟化应用提供了新的契机。《计算机世界》评测实验室近两年一直都在关注虚拟化技术的动向,根据我们的判断,2007年将会是基于x86平台的虚拟化技术获得快速发展的一年。为了帮助广大用户更好地了解以及更有效地应用虚拟化技术,我们适时地选取了当前市面上最为主流的三款x86平台分区虚拟化产品进行了测试。

虚拟化的技术实质

    虚拟化软件是中间件的一种,虚拟化的技术实质是通过中间层次实现计算资源和存储资源的管理和再分配,使资源利用趋向于最大化。事实上,这也是IBM“随需应变”战略以及HP“动成长”战略的重要技术基础。

    分区技术是当前应用最为广泛的虚拟化技术,大致可以理解为把一台机器分成多台机器使用,或者说是在一台物理机器上运行多台虚拟机器,现在甚至有一种误解,不少人认为虚拟化就是分区。

    但事实上这种认识是不够完整的,分区通常是指基于单一物理计算机系统的虚拟化,而群集和网格可以看作是基于多个计算节点的虚拟化,也就是阻止多台物理计算机的资源,使其像一台机器一样工作。

    从表面看来,分区带来的好处是同一个物理平台能够运行多个同类或不同类的操作系统分别作为不同业务和应用的支撑平台。但实际上,分区所带来的价值远不止于此。

    首先,分区使得应用之间能够更好地隔离,通过把不同的应用安装到不同的分区上,可以避免在同一个系统运行多个应用时会出现的应用之间的相互影响,包括计算资源争用,单一应用的崩溃对整个系统的影响,或单一应用的维护和升级影响其他应用的运行,以及各应用对系统平台环境组件版本的不同要求的矛盾等。

    其次,分区使得系统的备份、迁移和升级更加简单。备份时,往往只要将分区的资源配置数据和分区本身的磁盘数据、内存数据复制下来即可。由于资源管理中间层的存在,这些操作都变得非常简单,而迁移同样简单,甚至很容易在线进行,升级也变得更加简单,例如当磁盘空间不够时,只要通过资源管理中间层为这个分区追加存储空间即可。

    最后,也是最为重要的,分区可以实现计算资源的实时动态分配,也就是说,在同一时间,负载大的分区可以获得更多的计算资源,在负载下降时,计算资源可以被回收、返还或再分配给其他的分区。

    此外,分区技术能够与虚拟化的存储技术(底层可使用SAN或iSCSI等技术)相结合,最大限度地实现资源整合和按需动态分配。

    另外,在分区技术中,多数场合下,虚拟化软件要运行在一个操作系统之上,该操作系统被称为宿主操作系统(Host OS),而运行在虚拟化软件之上的操作系统则被称做客户操作系统(Guest OS)。

“虚而实之”条件成熟

    既然虚拟化的技术实质是在中间层次实现资源的再分配,那么它必然会引入额外的计算需求,产生额外的计算开销,使计算效率下降。这是结构性的根本问题,所有的虚拟化软件都不可避免。但是,如果计算平台的硬件在某些层次上能够提供对虚拟化技术的支持,就能够使计算效率大大提高。以往基于x86的分区虚拟化解决方案都是纯软件实现的,无法得到硬件的支持,而现在IBM、Sun、HP、富士通等厂商的小型机都能够在处理器、I/O等多个层次上提供对分区技术的硬件支持。

    而且最近一年来,Intel和AMD先后宣布了VT和Pacifica虚拟化技术,并推出了支持虚拟化技术的处理器产品,使得x86平台的虚拟化软件不再孤立无援,计算效率得以提高,开始有了进军企业级应用的初始条件。

    除了处理器虚拟化技术之外,双核/多核以及64位技术在x86平台上的出现及发展也都为虚拟化技术提供了更好的支持,x86平台的计算能力比起20年前有了上千倍的提升。最近Sun发布的Sun Fire X4600服务器最多能支持16路Opteron处理器,其计算能力足以和普通的小型机媲美,在这些强大的计算环境的支撑下,分区已经成为一种水到渠成的选择。

    当然,基于x86平台的虚拟化技术才刚刚起步,与小型机“前辈”相比,所得到的硬件支持还十分有限,但x86虚拟化解决方案的竞争优势已经开始体现出来。一方面,比小型机(Unix服务)低上几倍的价格显然相当有吸引力;另一方面,秉承x86产品的优良传统,虚拟化产品的易用性也非常出色。例如,当我们测试IBM的P系列服务器时,需要一台专门的PC工作站来进行分区管理的工作,而基于x86平台的虚拟化产品用起来要简单得多。

虚拟化“三剑客”

    基于x86的虚拟化产品通常可以简单地分成三个组成部分,最基础的也是最重要的是资源调度层,在宿主操作系统和客户操作系统之间承上启下,通常被称做Hypervisor;其上负责使用Hypervisor所提供功能并完成分区创建、资源再分配等功能的是用户界面层;此外,还有专门负责连接客户操作系统,提供基本输入输出功能的客户端连接工具。

    工程师选择了三款最为典型的x86平台虚拟化产品进行测试,分别是EMC的VMware Server 1.0、Microsoft Virtual Server 2005 R2以及XenSource的开放源代码产品Xen 3.0.2。下面逐一进行介绍。

VMware

    VMware是第一家向用户提供商用x86虚拟化解决方案的厂商,也是现在该领域产品线较为齐备、功能较为完善的厂商,不少用户认识虚拟化就是从VMware开始的。虽然去年下半年以来,VMware开始感受到了来自微软和XenSource的市场压力,但VMware适时改变了策略,推出了免费的VMware Virtual Server 1.0,在很大程度上扭转了这种不利的局面。

    VMware的虚拟化产品家族阵容庞大,从不需要宿主操作系统就能运行的高端产品VMware ESX Server,到不能创建虚拟机而只能运行虚拟机且功能简化到极点的VMware Player,涉及到了虚拟化的各个层次和各个领域。

    VMware基础架构(如图1所示)是当前基于x86平台最为成熟的高端虚拟化整体解决方案,能够基于多台服务器和大型存储系统实现完整的整虚拟化资源调度。


图1 VMware基础架构图

    长期的市场考验使VMware无论是对于Windows还是Linux都具有良好的兼容性,不同于Virtual Server只能支持Windows或Xen只能支持Linux作为宿主平台,VMware同时提供了基于Windows和Linux的版本,为用户提供了更大的灵活性。

    我们这次选用的是VMware于2006年7月新推出的VMware Virtual Server 1.0,也是VMware最重要的免费产品,其功能与之前的VMware GSX Server相似,定位与Virtual Server 2005 R2以及Xen 3.0非常接近,属于中低端企业级产品。

Microsoft Virtual Server

    微软公司切入虚拟化市场不算早,但动作却非常果断。在看清虚拟化的大趋势之后,微软闪电收购了Connectix,后者即是以桌面系统虚拟化软件Virtual PC著称的。而Virtual Server 2005是那次之后由微软在Virtual PC的基础上开发而来的。虽然有这种继承关系,但Virtual Server的风格和Virtual PC还是有很大的不同,企业级的特点十分突出。

    如果说Virtual Server 2005只是看起来像是一个企业级产品,而Virtual Server 2005 R2则被微软当作是一个可以用在生产环境中的企业级虚拟化产品了。虽然在版本号上仅仅是一个“Release 2”的区别,但它加入了对Intel处理器虚拟化技术的支持,在性能和稳定性等方面都有很大提高。这实际上是Virtual Server产品第一次真正意义上的严肃亮相。

    Virtual Server 2005 R2不仅得到了Intel处理器虚拟化技术的增援,更得到了微软自己的Windows Server 2003 R2的全力支持,其结构如图2所示。两个R2同时发布,而Windows Server 2003 R2最强调的增强特性之一就是虚拟化技术。


图2 Virtual Server 2005 R2 结构图

    虽然此次亮相的意义重大,但Virtual Server 2005 R2仍然是作为一个过渡性的产品问世的,从长远来看,虚拟化软件将和操作系统进一步融合,代号为Viridian的Longhorn Server Hypervisor虚拟化组件将成为今后Windows平台的主流虚拟化产品。但是,如果出现Longhorn Server或者Viridian推出日期被拖后的情况,势必会要求Virtual Server 2005 R2挑起大,从现在微软产品进度来分析,这种可能性是存在的。而Virtual Server 2005 R2也在积极更新为此做好准备,当前微软已经推出了Virtual Server 2005 R2 SP1的Beta 1版。

    将异构的平台整合到一个环境中是虚拟化最有吸引力的功能之一,在经过了与Linux势不两立的长期对抗之后,微软在虚拟化方面表现出了务实的态度。一方面在自有的Virtual Server 2005 R2中开始支持Linux作为Guest OS,另一方面和XenSource达成合作,使Linux环境下的Xen能够支持Windows作为Guest OS。这些举措无疑为用户提供了更广泛的部署灵活性。

    微软的虚拟化解决方案如图3所示。


图3 微软虚拟化解决方案结构图

XenSource Xen

    Xen是开放源代码世界中具有传奇色彩的一支新军,近两年在众多的开源虚拟化解决方案中脱颖而出,先后受到Red Hat、SUSE等Linux领袖乃至IBM和微软等业界巨头的青睐。


图4 “微内核”结构图

    Xen的成功在很大程度上是由于其先进的结构。和传统的“微内核”(如图4所示)结构不同,Xen使用了所谓的“并行虚拟化”结构(如图5所示),减少了中间层次,更大限度地利用了宿主操作系统的代码,从而大幅度地减少了虚拟化运行的开销,提高了计算效率。由于Xen使用GPL开源许可证方式,其开发团队善于积极使用新的技术,在产品中第一时间提供了对于Intel VT以及AMD Pacifica等处理器虚拟化技术的支持,赢得了市场的先机。


图5 “并行虚拟化”结构图

    除了结构方面的优势,Xen在虚拟化的一些基础而关键的领域也取得了突破,例如,Xen 3.0能够在虚拟机上支持32路SMP,并且在运行的虚拟机之间实现CPU资源的动态调度。

    Xen的加入使得原有VMware一支独秀的局面被打破,前些时候Xen与微软达成合作,更是改变了市场的原有格局,作为当前发展最为迅速的虚拟化产品,Xen的前景被广泛看好。这次我们测试的Xen 3.0是SUSE Linux 10企业服务器版预先集成的,据悉,Red Hat也将集成Xen。

实战虚拟化

    表面看来,三个产品各有特色,更加深入的特性只有通过评测来挖掘,让数据来说话。

    现阶段要运行虚拟化产品,最好的系统平台显然是Windows Server 2003 R2和SUSE Linux 10.1企业版,两者都把支持虚拟化产品作为重要特性来宣传。因此工程师基于这两种系统设计了评测方案:硬件平台是华硕AP2400R-E2 2U双路服务器,配备2GB DDR II内存,双Xeon 3.0Ghz CPU(1MB L2Cache),3块73GB Seagate Cheetah 10k.7 SCSI硬盘。

    在3个虚拟化产品中,Xen只能运行在Linux平台上,因此和SUSE Linux“搭档”,VMware同时支持Linux和Windows,考虑到使用Windows的场合更多,因此VMware Server和Virtual Server都以Windows Server 2003 R2为宿主系统。

    客户系统的情况要简单一些,每个虚拟化平台之上都安装了Windows和Linux两套系统,惟一的例外是Xen,考虑到Xen不久前才宣布支持Windows,现有的支持还不够成熟,所以我们放弃了这种情况。

    至于宿主系统,我们选择了Windows阵营中的Windows 2003 Server,以及Linux阵营中的Trustix 2.2,后者虽不怎么出名,但实际上它是Red Hat众多衍生者之一,侧重于安全和稳定,安装光盘只有不到500MB,非常适合用来做测试。安装时,我们设置Windows系统虚拟磁盘空间为10GB,Linux虚拟磁盘空间为3GB,内存都设置为1024MB,测试时只有被测虚拟机运行,另一个虚拟机关闭。

    在客户机系统之上,我们使用了多种测试工具来考察虚拟机的效率,基于Windows平台选用了Everest和Super PI,前者是一个综合测试工具,可以反映内存访问、磁盘I/O、处理器运算等各方面的性能,后者专门用来测试计算性能,由于同时有Windows和Linux两个平台的版本,故可以用来作跨平台的性能参考。此外,在Linux平台上,我们还使用了常见的下载工具Wget 1.9的源代码来考察编译时间,这种测试能较客观地表现出Linux平台的综合性能。

    Virtual Server 2005 R2(以下简称R2)采用了基于Web的管理界面,如图6所示。对此有些用户可能会感到不太习惯,但是Web界面的优势显而易见,用户几乎可以不受地点限制对其进行远程管理。而且,通过SSL等技术,管理行为的安全性得到较好的保证。在Web管理界面中,用户可以创建、启动和停止虚拟机,为虚拟机创建和分配I/O资源,以及调整虚拟机的优先权。


图6 Virtual Server 2005 R2 管理界面

    客户端控制工具VMRC即可以作为一个SDI应用独立运行,也可以作为ActiveX插件在Web界面中运行,需要指出的是,VMRC的默认端口是TCP 5900,如果要远程管理,必须打开相关防火墙的端口。

    在客户机运行过程中,R2不能动态改变分配给客户机的资源,例如内存容量。此外,虽然我们的测试环境建立在Windows Server 2003 R2 x64企业版和Virtual Server 2005 R2 x64企业版之上,但Guest OS不支持64位的操作系统,只能安装32位版本。

测试成绩展示

    从测试的情况看,Virtual Server 2005 R2是一个合格的分区虚拟化平台,但是却并没有提供太多让我们感到惊喜的功能。

    VMware Server 1.0是上个月刚刚发布的新产品,却表现出了过人的成熟。其控制终端界面非常人性化,标签式页面方便了用户在各虚拟机之间切换,如图7所示。在Windows和Linux虚拟机的安装过程中,我们没有遇到任何麻烦,套件中的Linux驱动工具在Trustix上安装正常。与Virtual Server相比,它支持更多的网卡工作模式,像是桥接、NAT等,能够更好地适应服务器和应用整合的复杂环境,另外,它还能够为客户机虚拟出SMP环境。


图7 VMware Server 1.0 终端界面

    在三个产品中,Xen是最神秘的一个,对于不熟悉Linux操作的用户来说,Xen简直毫无易用性可言,但事实上它的性能出色。Xen由核心部分(与Linux核心一起工作)、启动部分、Xen工具、Xen库文件、Xen配置文件以及文档组成,作为一款企业级GPL产品,洋溢着典型的GNU风格。其虚拟机配置是通过建立和修改相关的配置文件来进行的,我们在测试中使用SUSE Linux作为宿主系统,安装在/dev/sda1,另外在/dev/sda2安装一个Trustix,在SUSE Linux下面以Xen方式启动后,建立一个配置文件用来载入Trustix系统,这是一个很有趣的场景。Xen具有高度可定制性,它既可以用来创建宿主系统的多份实例,也可以用来载入另一个系统。在创建并载入Trustix实例之后,我们可以完全进入Trustix环境,就像是通过重新启动进入Trustix一样,但是只要用Ctrl+]这个著名的Escape命令,就能够随时回到SUSE环境,此外,当我们在Ttrustix环境中使用reboot命令时,也会回到SUSE环境。

    除了在各种虚拟化环境中的Windows虚拟机和Linux虚拟机中进行测试之外,我们还在非虚拟化的Windows环境和Linux环境(包括独立运行的SUSE Linux 10企业服务器版和Trustix 2.2)中进行同样的测试,作为参照,每种测试重复三遍,取平均值。

    Windows环境的测试结果如表1所示,其中,磁盘访问性能同时列出吞吐量和CPU占用率,各项吞吐量成绩越大越好;而以时间为单位的成绩,例如访问时间、延迟、计算时间等则越小越好。从测试成绩来看,VMware和Virtual Server各有千秋,由于VMware Server 1.0支持SMP,因此CPU占用率方面优势明显,但两者与真实系统之间的差距并不大,在很多情况下甚至可以达到真实系统90%左右的性能。其中,VMware缓存读取的测试成绩异常的高,经分析应该是测试软件和虚拟环境的兼容性问题所导致的。


点击小图看大图

    Linux环境的测试结果如表2所示,表中结果为测试完成的时间,单位为秒,结果越小性能越高。我们可以看到Linux平台下的Super Pi成绩普遍高于Windows,这应该是舍弃图形界面的益处。Xen令人惊讶地取得了和真实系统几乎一样的成绩,这充分证明其平行虚拟化结构的高效。


点击小图看大图

迎来x86虚拟化时代

    从我们测试结果来看,基于x86的主流虚拟产品的性能和功能都已经非常出色,或许还不足以支撑企业关键业务应用整合的重任,但是对于一般的功能服务器整合已是绰绰有余。虽然诸如身份验证服务器、名字解析服务器、目录服务器、备份域服务器等原本就可以通过应用整合运行在一台服务器上,但虚拟化提供了更好的隔离,而且一旦遇到异构平台的情况,也就只有虚拟化能够解决问题了。另外,对于部署变化频繁的开发用服务器,使用分区虚拟化来进行整合是最合适不过的了。


TAG: 2005 server virtual vmware xen 虚拟化 microsoft r2 xensource

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2009-01-07  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 43616
  • 日志数: 1735
  • 影音数: 1
  • 建立时间: 2008-01-06
  • 更新时间: 2008-05-26

RSS订阅

Open Toolbar