虚拟化领域的许多活动主要针对数据中心。这方面表现得如火如荼,但是有一大批虚拟化技术面向工作站:在这个领域,大家为谁是最佳套件争得不可开交,而且各自在不断改进。
我们之前测试了偏向数据中心环境的裸机虚拟机管理程序(http://www.zdnet.com/bare-metal-hypervisors-a-group-test-3039662582/)。本文我们关注类型2虚拟化(Type 2 virtualisation),在这种环境下,一个操作系统需要运行来托管运行另一个操作系统。
本次测评的一系列产品有:VMware Workstation、Virtualbox、Parallels Workstation和KVM。我们还测试了Wine,以便为这次测试提供一番对照,而且它还能获得虚拟机管理程序运行Windows应用程序的一些好处。
硬件
我们用来测试的工作站是一台惠普Z800工作站;这台系统配备了双核3.2GHz至强W5580处理器、2GB内存和1TB硬盘。另外还搭配一块高端的英伟达Quadro FX 5800图形适配器,自带4GB内存。
我们选择Ubuntu 9.04作为基本的操作系统,因为它提供了种类最广泛的虚拟机管理程序以便评析,还便于测试KVM和Wine,后两者在任何Windows操作系统上无法使用。
将Windows XP SP2安装在每个虚拟机管理程序下,并执行了下列测试:
•单个处理器的Cinebench
•多个处理器的Cinebench
•Cinebench openGL
•启动时间
之所以选择Windows XP而不是选择Windows Vista或Windows 7,是由于这款操作系统运行起来表现稳定,占用资源较少,又众所周知。我们觉得,这将让每一个虚拟机管理程序都可以借助额外程序包和XP包含的工具,充当展示各自的潜力。只有KVM这一个虚拟机管理程序不提供需要安装的额外程序包来加快Windows XP的性能。
安装
VMware Workstation
VMware Workstation的安装过程简单直观。从产品网页(http://www.vmware.com/products/workstation/index.html)下载该产品后,安装Ubuntu所需的程序、运行已下载的软件包以及按提示操作,这是一桩很简单的事。较之于为Ubuntu等基于非rpm的发行版转换rpm文件,软件包是个种比较容易的选择。
这个安装过程中最难的部分是,向VMware网站注册,获取试用密钥,这表明了这款成熟产品安装起来很容易。
借助无人管理的安装,让Windows XP在VMware Workstation下运行起来很简单。
VirtualBox
把VirtualBox安装到Linux系统上有两个办法:一是通过该发行版的程序包管理器,二是通过VirtualBox网站(https://www.virtualbox.org/wiki/Downloads)本身。
从之前使用Gentoo设备的体验来看,VirtualBox OSE程序包显得比较麻烦。来自VirtualBox网站的预包装版本运行起来顺畅得很。只要下载合适的文件,点击安装它,你马上就能让VirtualBox安装并运行起来。
预包装的VirtualBox安装起来速度无可匹敌。
Parallels Workstation
Parallels的传统强项一直在OS X操作系统方面;由于需要一系列步骤才能让Parallels在Ubuntu上顺当运行,没人可能真心希望这样。很容易从产品网页(http://www.parallels.com/uk/products/workstation/)获得一份Parallels和必要的试用密钥,但是应该认真阅读产品网页的内容,需要引起一番注意。
比如说,网站说“新特性!Parallels Workstation现在可安装在新的Linux内核(2.6.23)上——这个内核可以追根溯源到2007年,此后已被六个稳定版所取代。”
据产品网页显示,Parallels Workstation的“新特性”还包括对Ubuntu 7.10和Fedora 8的支持——两者在2007年年底左右属于最先进的Linux。
安装Parallels方面真正的麻烦在于从网站上安装了deb压缩文件之后,发现无法完成“parallels-config”命令的执行。那是由于,我们使用了最新的Ubuntu发行版。多亏了这里提供的操作说明(http://ubuntuforums.org/showthread.php?t=1018159),我们得以完成了安装,但是这个过程很可能使得Parallels Workstation成为安装和运行起来难度最大的产品。
结果证明,Parallels是在Ubuntu下安装和运行起来最困难的虚拟机管理程序。
KVM
KVM的安装由Ubuntu的apt程序包管理系统来处理,不过与下面介绍的Wine不一样,还需要执行另外许多步骤才能完成安装。其中一些步骤需要编辑XML文件,但是操作说明简单直观,应该不会带来任何困难。
另外还建议:你应该为KVM安装一款图形化工具;这样一来,虚拟机管理起来要容易得多。
按典型的*nix方式,如图所示的虚拟机管理器并不与KVM捆绑在一起。
Wine
Wine的安装同样由Ubuntu的apt程序包管理系统来处理。想安装Wine,只需要执行apt-get install wine命令,然后执行winecfg命令。一旦这两个命令执行完毕,你就可以准备运行了。
Wine与Ubuntu环境完全集成。
#p#
可管理性和灵活性
VMware Workstation
一旦为我们的Windows XP测试系统安装好了一个新的虚拟机,一项独特的VMware特性迎面而来:无人管理的安装。这大幅节省了时间,因为XP有许多提示需要用户在整个安装过程中输入相关信息。而在这里,你只要输入Windows产品密钥、用户名和密码,VMWare就会为你处理接下来的一切。
虚拟机的控制面板布局合理、易于使用——这款产品的成熟性再次显露无遗。它也是除KVM外唯一明确允许编辑调整虚拟机可以使用的处理器核心数量的虚拟机管理程序。
VMware Workstation有一项记录/回放功能,允许重新生成虚拟机的状态,不过这的确需要使机器返回到只在一个核心上执行的环境。该功能可能对调试人员和测试人员来说有用。VMware Workstation还能够在后台运行虚拟机的执行、抛出查看窗口。
VMware Workstation的管理窗口。
VirtualBox
VirtualBox致力于一个方面:运行面向桌面的虚拟机,而且在这方面做得很好。这种朴实无华的方法使得虚拟机管理起来异常简单,但是也丧失了其他系统所具有的灵活性。
我们遇到的一个问题是,VirtualBox无法从NetBSD 5.0光盘来启动。这是唯一启动失败的虚拟机管理程序,也是VirtualBox唯一明显的缺点。
每个虚拟机的所有选项都保留在一个单独的窗口中,这使得VirtualBox的界面显得很整洁。
Parallels Workstation
虽然其他虚拟机管理程序往往会显示在内部创建的一系列虚拟机,但是Parallels通过文件来处理其虚拟机。这意味着,你不得不浏览文件系统,打开你想使用的那个虚拟机的文件,这种操作方式就好比文字处理应用软件那样。这使得界面相比之下显得很笨拙,给人以过时的感觉。
我们在Parallels方面遇到的另一个问题是,我们的Windows XP虚拟机在打开电源后需要重置,那样才能顺利启动。这有点小小的麻烦,但时间一长就会很烦人。
每个虚拟机方面的信息一目了然,但是缺少VMware Workstation或KVM的那种灵活性。
Parallels Workstation在显示重要的配置设置方面做得很到位。
KVM
KVM采用了传统的Unix方法,把虚拟机的执行与查看器完全分隔开来。比如说,可以在显示桌面的窗口没有打开的情况下让Windows XP运行;它完全会在后台悄然运行。
很显然,KVM旨在用起来比工作站更高一级,而设计体现了这一点。虽然建议你使用可用的图形化工具,但是如果你希望,也可以回过头来使用XML或控制台界面。
由于KVM查看器与服务器分开来,它们可以连接到可能在其他机器上运行的KVM主机。
借助图形化工具,虚拟机很容易创建和管理;能够退回到文本文件为KVM提供了强大的灵活性和底层功能。就我们采用的环境而言,我们很容易创建和部署许多Ubuntu虚拟机,这种功能在服务器机房里更有用武之地。
与VMware Workstation一样, KVM是唯一允许你指定虚拟机可用核心数量的其他产品,彰显了其“超越工作站”的传统。
KVM有一个选项卡式界面,可以在“Console”(控制台)选项卡里面查看虚拟机。
Wine
作为一款仅仅执行Windows程序的程序,管理工作交给用户来处理——应用程序可驻留在任何地方,Wine可以很轻松地执行它们。
系统的灵活性取决于应用程序及其在Wine应用程序数据库(http://appdb.winehq.org/)中的状态。除非该程序拥有Platinum(http://appdb.winehq.org/help/?sTopic=maintainer_ratings)状态,否则预计最起码会遇到一些问题和小麻烦。
毫无疑问,Wine旨在仿效Windows。
#p#
性能
只有VMware Workstation能够运行本文介绍的每一项虚拟机管理程序基准测试。这本身就足以表明这款产品的稳定性和灵活性。
我们进行的测试其结果如下:
关键的两行是启动时间和Cinebench中的OpenGL分数。
VirtualBox和Parallel在单个处理器测试方面似乎胜过竞争对手,但一切似乎都不是那么回事。这两款产品进行配置来限制所用核心的数量,所以我们猜想,它们都使用尽可能多的核心来提升性能。这得到了下面这个事实的证实:Parallels和VirtualBox在单个处理器上的运行速度似乎超过Wine——这没有额外的虚拟机管理程序和操作系统开销,不过Wine在多个处理器上运行时的测试得分超过它们:在访客操作系统看来似乎是一个处理器,实际上可能是主机操作系统上的多个进程及/或线程。因而,我们更加相信启动时间是更如实地体现性能的一个指标。
就一般的使用而言,这每一款虚拟机管理程序在Windows XP里面运行起来让人觉得很快。不过,VirtualBox的表现更胜一筹;与其他虚拟机管理程序相比,它在OpenGL方面的速度快若闪电。
成本
下面这张表格概述了每款产品的成本(不含支持):
#p#
盖棺定论
从我们的测试和实际试用产品的情况来看,我们会排除在外的唯一产品是Parallels Workstation。尽管它在非免费产品中是最便宜的,但是它带来的麻烦以及老是需要在启动电源之后立即重置虚拟机使得它无缘入围最终榜单。如果你在Mac OS X平台上使用Parallels,其中一些问题立马迎刃而解,它在该平台上要成熟得多。
如果你使用Linux平台,需要运行一两个Windows工作站,又不需要一款功能全面的虚拟化解决方案,那么Wine是最佳选择。应用程序运行起来比在虚拟机管理程序下快得多,不过确实有个注意事项:应用程序在Wine中运行起来并不像在Windows中那样。
KVM在本文中是作为一款托管虚拟化套件,但是它一般面对的是面向工作站的软件,而不是服务器软件,后者才是其天然的地盘。由于缺乏性能,加上图形渲染方面的问题,我们不推荐KVM用于纯粹的工作站。不过,如果你不介意捣鼓Linux,又需要部署多份主机操作系统(比如在多个Ubuntu实例下),那么KVM有望适合你。
在服务器机房,KVM确实发现自己接近与我们之前介绍的产品(裸机虚拟机管理程序)更一致的产品。即使如此,考虑到它具有诸多优点:免费,在Linux上随处可得,很容易复制主机操作系统,它在工作站方面绝对有一席之地。不过,它并非赢家。
这样一来,就剩下两款产品有资格争夺桂冠:VMware Workstation和VirtualBox。
性能方面明显脱颖而出的是VirtualBox。VirtualBox工作时,它的表现非常好,只是在极少数情况下才有问题。该产品内置的新的三维加速功能让它比竞争对手领先一筹,而它是免费的更是锦上添花。VirtualBox让人觉得有点顾虑的是,目前的VirtualBox开发商:Sun公司前阵子被甲骨文收购了。甲骨文不太可能会终止这款产品,但是它可能忍不住会把该产品与自己的虚拟化解决方案结合起来,或者让它更加面向企业用户。
VMware Workstation具有高度可配置性,由谙熟虚拟化的一家公司开发而成。在测试期间,它完美无缺,管理系统也是第一流的。虽然它在性能方面的测试结果并非最佳,但是让人觉得这款系统的速度并不慢。能够记录虚拟机会话绝对会找到用武之地。
我们最后的建议是什么呢?
如果你必须要有百分之百的兼容性和保障,又想获得支持,那么VMware应该是你的选择。
但是假如你不打算启动NetBSD 5.0,我们会建议选择VirtualBox。因为它速度快、易于使用,而且还有这个诱人的价位:免费。