您的位置: 网界网 > 周报全文 > 正文

[周报全文]探寻虚拟计算的真实世界-2006年度虚拟服务器软件公开比较测试报告

2006年06月21日 15:41:09 | 作者:刘超 | 来源:$page.getBroMedia() | 查看本文手机版

摘要:出于我们对这一技术领域关注的考虑,组织了此次尝试性的测试,希望能够通过一些简单的测试结果,帮助读者深入了解服务器虚拟化/虚拟化计算。

标签
网络测试
虚拟服务器

 

  近年来,随着硬件性能的不断提高,虚拟化计算逐渐进入了PC服务器领域。在软件层次上出现了针对可靠性的解决方案,让PC服务器慢慢地也拥有了以往大型机上才具有的功能:能够把服务器的计算能力虚拟化进行管理,除了能在更加广泛的用途下进一步提高服务器的可用性外,还能够提高服务器的管理效率。

  如果我们留意一下虚拟服务器软件领域最近的一些动向也不难发现:除了VMware、微软等老牌商业软件厂商对这个领域的持续关注外,在开源领域的XenSoft,以及半开源的SWSoft也拿出了自家比较有特色的产品。硬件厂商Intel和AMD两大巨头也投入了大量的研发资源,准备陆续推出一些能够帮助提高虚拟计算性能的产品,由此可以看出服务器虚拟化在未来的一段时间,会成为服务器领域的一个焦点。出于我们对这一技术领域关注的考虑,组织了此次尝试性的测试,希望能够通过一些简单的测试结果,帮助读者深入了解服务器虚拟化/虚拟化计算。同时,也希望给进一步尝试虚拟技术的读者一个更加具体的参考。

报告预热

  为了大家能够更好的理解测试报告,我们将先向大家介绍一下有关虚拟服务器的概念。

  在计算机科学中的“虚拟机”是指一种特殊的软件,它可以在计算机平台和最终用户之间建立一种环境,而最终用户则是基于此环境来操作软件。从实现的方法和目的来说,分下面几种类型:

  最原始的含义 指在一台计算机中建立一系列分别精确模拟不同其他计算机的执行环境,可让每位用户能感觉到他是在一台完整地、同其他互相隔离的计算机上进行操作;尽管事实上大家还是只在一台计算机上操作。提供给计算机这种能力的软件,就叫宿主软件,通常被叫做虚拟机管理(hupervisor),VMware和微软的VS就是属于这种比较“传统”的虚拟机。

  应用程序虚拟机 这种类型的虚拟机其实更像是一个快速程序解释器,但是比程序解释器具有有更多的状态和自主的资源控制功能(内存管理,资源回收等),但是同原始的虚拟机相比要更加高级,偏向于具体应用,应用被开发出来后,通过预编译,生成虚拟机自己的字节指令,可以在对应的应用程序虚拟机中运行,Java虚拟机就是这类的典型代表。类似的还有微软的CLI,以及Perl 6的Parrot等。

  操作系统虚拟机 这里虚拟机也用于指由一个模拟器所建立的一个环境,这个模拟器可以为最终用户在自己本地的操作系统上隔离出多个独立的操作系统环境,由于不用再运行一个完整的操作系统,所以代码的执行效率会非常高。但是由于是依赖本地操作系统,所以无法同时拥有多个不同的环境。SWsoft的产品就是这一类。这类产品通常都具有不同操作系统的版本。由于这类产品几乎就是本地运行代码,而不做任何的指令转换,所以不在这次我们的测试范围内。

  并行虚拟机 近年来,“虚拟机”这个词也可以用来指一个并行虚拟机(PVM)。在这种情况下,虚拟机软件可以创建一个跨越多台计算机的环境,这样最终用户就好像只在使用一台计算机而不是多个,除了可以累加计算能力外,还能够很好的避免单点硬件失败。这也是目前网格计算的最终目标。由于其结构的特殊性,目前还没有办法做到在上面运行一些通用的应用,而主要是采用类似Java虚拟机运行字节码的做法,再加入一些分布式控制的指令,来运行计算量特别大的科学计算应用。比较典型的是一些科研机构支持的项目,如http://www.csm.ornl.gov/pvm/http://www.netlib.org/pvm3/等,和在操作系统级别实现并行计算结构非常类似。

  而我们这次的重点也就是第一种传统的虚拟机,因为这类虚拟机和其他类型相比有一些特殊的优势。

  成本 虚拟机软件可以在普通的硬件和操作系统上运行,使得基础成本能够得到控制。而能够实现同样功能的一些技术,则需要在更大的系统上运行,并且需要一些特殊的支持。

  安全性 可以完整地虚拟出一个独立的硬件环境。一个完整的虚拟环境和一个普通的服务器类似,不同的是,用户可以在这个虚拟环境中为所欲为,而不用影响到其他的虚拟机或者宿主的安危。

  通用 客户机会检测到一个特定型号的网络适配器,而和宿主机上真正安装的网络适配器的制造和型号无关,虚拟机软件在虚拟环境中将所有设备虚拟化,包括视频适配器、网络适配器、以及硬盘适配器。它还为USB、串行和并行设备提供传递驱动程序(pass-through drivers,指将对这些虚拟设备的访问传递到真实物理设备的驱动程序),这样就能够让绝大多数为真实硬件所开发的操作系统能够非常平滑的在虚拟机中运行而不需要做任何修改。

  高可靠 由于与宿主机的真实硬件无关,所有虚拟机客户使用相同的硬件驱动程序,虚拟机实例是对各种计算机高度可迁移的。例如,一个运行中的虚拟机可以被暂停下来,并被拷贝到另外一台作为宿主的真实计算机上,然后从其被暂停的确切位置恢复运行。甚至在某些产品中可以做到不停机的情况下进行热转移。

  不过这类虚拟机在实现方法上有所不同,也导致了直接的性能区别,也分为好几类。

  这类通常采用软件模拟指令集的方式实现。一个典型的计算机系统由处理器、内存、总线、硬盘控制器、时钟、各种I/O设备组成。ISA 层的虚拟化软件的实现方式是截获客户操作系统发出的指令,并把它们“翻译”成Host平台上的可用指令进行执行(包括处理器内部指令和IO指令)。由于这种指令的模拟方式,ISA层的虚拟化技术可以完全模拟一台真实机器所能做的一切。这种实现方式的好处在于,分离了操作系统和硬件平台的紧绑定关系。

  这方面具有代表性的系统有很多。在PC平台上有两个比较成熟的项目:Bochs是用C++语言编写的开源的x86平台的PC模拟器,可以方便地在多种平台上模拟IA32& nbspPC系统,它能够模拟多种版本的x86系统,如386、486、Pentium、Pentium&nbspPro、SSE、SSE2等指令。Bochs解释客户系统从开机到关机的全部指令,模拟了Intel /AMD x64 CPU、BIOS以及PC设备。因此,在客户操作系统看来,就好像是运行在一台真实的机器上一样。QEMU是一个采用动态翻译技术的快速的模拟器。它可以快速地把客户操作系统的指令动态地翻译成本地指令进行执行。其动态翻译过程的基本思想是把每条指令分解成少量的简单指令。每条简单指令由一段C代码实现,通过动态代码生成器把这些简单指令的目标文件连接起来,构建指定的功能。它把基本块作为翻译的基本单位,并采用指令翻译Cache来保证。

  这类虚拟机的优点是对硬件没有依赖,可以运行不是针对本地硬件的操作系统,也就是说可以在非x86的计算机,比如在SGI的图形工作站上运行Windows XP,但是也有一个致命的弱点,由于是采用软件来对指令一一对应的转换,所以无法很好的利用现代处理器的一些特性来加快指令的执行,并且软件转换带来的开销也是非常可怕的,直接导致性能低下,所以基本上这类虚拟机不能够用作生产用途,只能在测试和开发调试环节等领域采用。

  采用映射本地硬件和处理器的方法来创建虚拟环境,这得益于x86处理器的一些硬件功能,比如内存映射的支持,采用可编程中断控制器等,这样可以大大降低执行指令的时候带来的延迟,市面上大多数商业化的产品都是采用的这类技术,在尽可能的情况下直接运行程序代码,当不能直接运行程序代码时,这些软件产品还是会动态地重写代码,比如说执行内核级别和实模式的程序代码,在这种情况下的代码执行效率就就会显著降低。在Vmware中,经过翻译的代码是被放入内存的空闲区域中的,一般是在地址空间的尾部,这个区域可以随即被保护起来并通过分段机制标记为不可见的。所以,这类虚拟软件的性能会非常高。非常适合在商业环境中采用。也是我们这次测试的重点。其中比较有代表性的就是最近被EMC归入旗下的Vmware和微软从connectix收购的Virtual PC进化而来的Virtual Server。当然还有得到了各大服务器厂商支持的Xen,不过由于这个软件尚在发展阶段,而且还不能够运行Windows和其他一些需要16位代码支持的操作系统,所以我们这次暂时不采用这个虚拟软件进行测试。

安装、使用易上手

  服务器虚拟化和虚拟化计算严格来说,并不是完全创新的技术,而是顺应当前服务器发展需求而诞生的产品。我们知道,早在多年前就存在的大型机和小型机与今天的PC上,多条互不相关的计算任务就已经能够同时执行互不干扰了,而虚拟计算就是这种任务管理方式的升级,只是同时运行的对象从一个个程序变成了一个个操作系统,而承载这些操作系统的硬件随着集成电路制造技术的发展变得更加强大,同时还伴生出很多更加具体的技术来协调、管理和监视这些同时运行的操作系统,使整个系统达到非常和谐和高性能的运行。

  计算机科学中的“虚拟机”概念是指一种特殊的软件,它可以在计算机平台和最终用户之间建立一种环境,而最终用户则是基于这个环境来操作软件的。从实现的方法和目的来说,分为几种类型:传统虚拟机、应用程序虚拟机、操作系统虚拟机和并行虚拟机。

  而我们此次测试的重点也就是第一种传统的虚拟机,所谓传统的虚拟机是指VMware和微软Virtual Server之类的虚拟机,他们可在一台计算机中建立一系列不同的、分别精确模拟其他计算机的运行环境。因为这类虚拟机和其他类型相比具有成本易控制、安全性、通用和高可靠性等一些特殊优势。

  Windows Server  2003是目前较常用的服务器操作系统,之所以要采用完全相同的操作系统,是因为这样可以让我们的软件差异尽量减小,测试得出的数据有可比性。接下来我们通过安装、配置这两个虚拟软件来给大家展示虚拟化的过程。

 

  VMware

  我们采用的是VMware GSX Server v3.2.0.14497,这个版本能够很好地在Windows平台上运行,当然也有Linux版本,不过Linux版本所支持的特性和Virtual Server非常相似,所以考虑到可比性,我们还是选择了Windows版本的GSX Server,而没有选择更高级的VMware ESX版本进行测试。由于实现方法和结构非常相似,因此VMware产品之间的性能差异不会太大。不过ESX采用了修改过的操作系统核心,在并行运作的时候性能应该会稍微理想一些。

  和大多数Windows程序一样,VMware GSX Server也有一个非常友好的安装向导,能够帮助我们一步步地安装好整个VMware GSX Server。

  我们从安装的过程中可以看到,这个版本的VMware GSX Server已经放弃了捆绑Apache作为Web管理界面的做法,完全转用Windows自带的IIS了。这样的目的很简单: 可以维护更多不同版本的代码(Linux版本还是需要采用Apache)、更好地与系统融合,减少系统负担。因此,系统中必须安装有IIS,安装才能正常进行下去,安装程序会在系统中增加几个虚拟网络接口,用于管理虚拟环境的网络拓扑。安装程序会在IIS中增加一个虚拟站点,用于管理虚拟环境,同时还会在桌面上创建VMware的Machine Console,整个过程不用太多的人为干预就能够自动完成,在完成之后会重新启动系统。整个VMware的安装就算大功告成了

  如果用户有VMware Workstation的使用经验就会发现,操作VMware GSX Server是件非常简单的事情。不管是创建新的虚拟环境,还是安装操作系统,都能够在向导的帮助下快速地完成。我们可以通过Web方式来管理我们创建的虚拟环境。

  在系统安装完成后,用户需要安装叫做VMware tools的驱动程序,也就是传递驱动程序,可让虚拟环境中的操作系统更高效的运行,这一点非常重要,这个部分已经被整合到了VMware console里面,直接选择这个菜单就可以启动VMware GSX Server内置的光盘镜像内的安装程序。在VMware tools安装完成后,虚拟环境内系统的所有I/O速度都会得到大幅度的提高。VMware在性能方面是非常理想的,这一点在后面的测试中也可看出,即使没有安装传递驱动程序,运行Windows的速度也是非常理想的。

  通过加密的HTTP界面,我们可以对虚拟环境进行几乎所有控制台应用程序的管理工作。

  VMvare 运行界面 

 

 

 

 

 

 

 

 

 

 

 

    图1 VMware运行界面

  可以看出来,VMware在虚拟化软件方面有非常丰富的经验。在使用方面,有使用过VMware Workstation版本的用户会感觉非常顺手,而且其Web界面功能也非常丰富,能够通过网络进行很方便的管理。

  微软Virtual Server 2005 R2

  Virtual Server 源自Connectix Virtual PC,在被微软收购以后就反复地进行修改提高,以增强对Windows平台的整合性和管理的支持特性,在性能方面也有所改善。

  和大多数微软的软件一样,Vritual Server有非常友好的操作界面,但是美中不足是居然没有本地管理工具,必须通过Web来管理,在使用一番后,发现这个Web管理工具虽然功能较少,但使用起来却非常方便。基本的创建、配置和管理功能都能够直接完成。

  在虚拟环境中安装操作系统的速度和主机相比非常慢,在安装完成后启动进桌面的速度也很不理想,不过我们可以看到在管理界面中有提示用户安装附加的软件包,这个就是传递驱动程序,在我们安装好驱动程序之后,速度提高了很多。

  很有意思的是,Virtual Server能够直接在管理界面中对虚拟环境内部的系统进行管理操作,可像远程控制客户软件一样,在网页中安装一个控件来实现直接从Web中对虚拟环境进行远程管理。在虚拟环境个数比较多的时候显得更加直观和方便。

Virtual Server运行界面


 


 

 


 

 


 

 

 

 

     图2 Virtual Server运行界面

  总的来说,微软的这款虚拟软件在功能和性能上都比较中规中矩。但在某些功能上不太灵活。不过由于和操作系统也一样源自微软,整合度和稳定性都应该比较高。从我们的安装过程中可以看到,Virtual Server并没有显示让用户选择虚拟环境中操作系统类型,也就是说,Virtual Server除了微软自家的系统外,并没有默认提供对其他操作系统的传递驱动程序,这样的结果即使是Virtual Server,即使能够直接运行Linux或者其他类型的操作系统,也不能通过传递驱动程序来获得速度上的提高。所以在应用的时候需要使用混合操作系统的用户在选择虚拟软件类型的时候需要考虑到这一点。

■ 结果分析

  由于这两个产品的开发者一个是行业专家,一个是软件巨头,所以在使用和安装这个阶段都没有什么明显的问题,而且两个产品都有自己独到的地方。但是在对平台的支持方面,因为没有操作系统的背景,所以VMware显得更要开放一些,并且在对虚拟环境操作系统的支持上要广泛的多。在网络拓扑的配置上要灵活很多,能够支持桥接、NAT和虚拟网络等模式,所以在这个环节VMware要略胜一筹。不过凭借微软的实力,鹿死谁手还不能妄下结论,我们期待着微软在操作系统中集成更加高级的虚拟技术。

性能:超出想象

  在进行性能测试之前,我们以为虚拟操作系统可能性能相对较差,但是实际测试的结果给了我们一些惊喜,特别是在密集的本机计算上。

  我们首先使用了在单机测试中非常流行的Sandra SisSoft 2005 PRO软件来对虚拟平台进行了一系列的测试,Sandra SisSoft 2005 PRO通过运行一些专门定制的测试样例,比如多媒体、浮点运算等来得到各个子系统单独的性能,因为这款软件被广泛使用,因此测试结果非常具有可比性。我们通过这个测试软件的结果,可以直观地对各个子系统的性能指标进行比较,从而可以了解到虚拟环境受虚拟软件的影响有多少,到底会有多大的性能开销,同时也能够非常直接地对虚拟软件在性能方面的优势有一个大致的估计。

硬件环境测试

  我们采用了一台浪潮的服务器作为测试平台,处理器采用了两颗新一代Cranford核心的至强处理器,支持SSE3、EMT64 等特征。采用了最新的E8500芯片组。

  这台服务器集成了一个PCI-E的千兆网卡,从而能够很好的发挥2G DDR内存的优势。同时具有一块UJITSU的型号为MAT3073NC的U320 SCSI硬盘。由于这次测试并没有集中在磁盘子系统上,所以我们并没有装备可以提高磁盘子系统性能的RAID。

  我们通过SisSoft软件中的硬件信息功能来采集到真实硬件和两个虚拟环境中的处理器信息。

  从表1里面我们可以看到,宿主处理器的特征几乎是原样被集成到了虚拟环境中,只有不支持多处理器(VMware有专门的多处理器版本VMware SMP)和微码的版本无法确认。那么虚拟环境在直接继承了这些特征后,执行效率是不是也是被直接继承了呢?表2是Sandra SisSoft执行效率的各项测试结果。


 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

测试术语解释: 

  运算逻辑单元  测试了整形运算能力,数值越大越好。大部分商业应用的性能都受这部分性能的影响。

  浮点运算单元  是高精度的浮点数运算能力,也是越大越好,部分多媒体运算和3D渲染需要这部分。

  多媒体指令扩展  为了增强在单个处理器周期内进行更多的浮点指令或者更加复杂的组合指令。

  多媒体整形运算能力 Integer x8 iSSE2   针对多媒体的复合指令处理能力的测试

  多媒体浮点运算能力x4 iSSE2   针对多媒体的复合指令处理能力的测试

  带缓存的整形多媒体整形运算能力Int Buffd iSSE2  基于缓存操作的运算,对于缓存的性能依赖很大

  带缓存的浮点多体整形运算能力Float Buffd iSSE2  基于缓存操作的运算,对于缓存的性能依赖很大

  内存子系统 快速操作内存内容得到的性能指标

  加速度系数 综合上面几个得分总结出的一个指标,若果是各个部分越协调,这个数值就越高

  文件系统 文件系统性能,值越大越好

■ 结果分析

  我们可以看到,虚拟环境在大部分指令转换的情况下,都产生了巨大的资源消耗,甚至有的指标在虚拟环境中连真实硬件的一半都达不到,尤其是浮点多媒体的运算能力。从各方面来看,VMware更加接近真实硬件的指标,尤其是内存子系统的得分,这一点充分说明了VMware有很好的方法来处理虚拟环境中应用对内存操作的抢占分配,这一点在多任务环境中是相当重要的,也非常好地解答了在我们安装操作系统的过程中,Virtual Server速度比较慢的原因:因为在安装操作系统的时候,需要进行大量的文件复制等跟内存操作有关系的工作,Virtual Server在这点上与VMware的差距比较大。所以需要超过很多倍的时间来安装操作系统,即使是安装传递驱动程序,也不能把这个差距缩小一些。因此Virtual Server在性能方面,明显就要略逊VMware一筹。

  细心的读者可以发现,在这个测试中,文件系统的性能相差不是特别大,在VMware虚拟环境中的性能表现甚至还比真实硬件更高一些。而Virtual Server也不示弱,造成这个结果,应该是因为文件系统测试样例的尺寸小于内存容量(+本站微信networkworldweixin),在文件系统访问的时候有非常高的缓冲命中率的缘故。和这个原因相同,带有缓冲的多媒体性能结果VMware也高于了真实硬件。这是不是说明了在虚拟环境中,某些应用的子系统性能也不是绝对都会变差呢?接下来我们就用一些比较简单,但是对计算子系统比较依赖的实际应用来测试虚拟环境。

计算能力测试

  我们选择了两个计算比较密集的应用:用mp3编码和mpeg4编码的软件来进行了一番比较。这两个软件经常在实际使用中被用作多媒体文件编码。由于使用频率比较高,并且是开源软件,开发的活跃程度非常高,所以我们认为他们的编码水平确实是比较优秀的。能够很好地体现实际应用的执行效率。

  Mencoder

  这个软件是采用开源的mpeg4编码软件来把mpeg2的视频流转换成mpeg4的格式,需要用到SSE2指令来进行大量的浮点运算,但是不会操作太多的数据,在编码测试的时候采用了编码器默认的配置。采集的数据是平均每秒编码的帧率。


 

 

 

 

 

 

 

  Lame

  这是非常流行的mp3编码软件,和Mencoder一样,也能够利用处理器的多媒体指令集来快速的对音频数据进行有损压缩,我们的测试采用了Lame默认的压缩配置来进行测试。

  得到的结果是平均压缩是播放速度的倍数。

 

 

 

 

 

 

 

■ 结果分析

  测试结果让我们非常惊讶,居然这两个密集计算的应用跟真实硬件相比,都没有表现出太大的差异。也就是说在这类比较简单的实际应用中,由于代码的执行效率并不能和测试工具相比,所以虚拟环境的性能并不会表现出跟实际硬件太大的差异(尤其是跟前面的测试软件相比)。而在复杂一些的应用中,随着并行操作的增多,对I/O操作的争用会变得更加强烈,性能受到的影响应该非常大,而不会像这类简单的应用一样。

  为了更进一步地证实我们的观点,我们又采用IXIA测试仪进行了一次静态网页的测试,从复合型应用来考查虚拟环境的应用。

静态网页测试

  静态网页测试采用了IXIA测试仪来对存放在IIS中的一个4M左右的页面进行压力测试,最大并发10个用户,然后依据取出每次请求的首字节响应时间来判断,虚拟环境和真实硬件相比有多大的区别。由于Web服务器在执行的时候是并发的响应客户端的请求,对内存的操作会非常频繁,当然也会出现对各种资源的争用,这样就满足了我们对复合环境的考察需求。

  测试环境

  整个测试环境由浪潮服务器通过一台千兆交换机和IXIA测试仪相连接,服务器的千兆网卡通过桥接模式(在VMware中需要显示的设定为桥接端口,在VirtualServer中则不需要设置,默认就是桥接方式)跟虚拟环境连接起来。不过我们发现在这两个虚拟环境中,虽然宿主的网卡是千兆的,但是在网卡被驱动以后,同样都只能到达10M的速度,估计也是出于稳定性的考虑。因为在VMware Workstation版本中,虚拟环境的网卡是千兆的,但是在同一时期的GSX Server却采用了如此保守的设计,在实现方法和结构都非常相似的情况下,唯一的解释就是考虑到稳定性。

  由于网络的问题,我们放弃了进行网络极限测试的想法,转而测试Web服务器在相同配置和环境下对IIS进行少数连接的响应情况。其中IIS按照服务器向导的默认配置进行应用服务器设置。

  图3测试结果是比较符合我们之前的结果和推论,三个被测端曲线都非常平滑,因为我们的压力还不足以让服务器端超负荷。 不过由于性能上的差异,在请求数的数值上还是有一定的区别。VirtualServer仍然是最后一位。

 

 

 

 

 

 

 

 

 

 

  图4是在TCP连接建立后到开始传送HTTP数据的时间,比较有意思的是,在负载上升阶段,Virtual Server的响应时间却是最快的,不过到了压力比较稳定的时候,响应时间就变长了,到最后快结束的阶段仍然保持在最后一位,从图4我们还可以看出来,Virtual Server在处理某些特定运算的时候,采用的方法和VMware是有很大区别的,所以才导致了响应时间非常短的情况,说明了在某些应用上(比如说轻量的反复执行相同指令)会比较快,但是在大多数应用下,都会略输一筹。

 

 

 

 

 

 

 

 

 

 

  由于我们的测试样例尺寸比较大(4M),因此完成传输的时间比较长一些,测试结果见图5。

 

 

 

 

 

 

 

 

 

 

■ 结果分析

  从上面这三部分的测试来看,我们可以发现,虽然VMware和Virtual Server在大致的实现方法上是类似的,但在具体的实现细节上的区别却导致了性能上非常大的差别,这一点和这两个软件的发展道路有很大的关系,VMware从一开始就扎根于x86平台,历经多个不同类型的版本,把x86凡是能提高虚拟计算性能的功能发挥得淋漓尽致,而Virtual Server的前身VirtualPC则是从跨平台做起,在转换指令方面,可能考虑对不同平台的支持更多一些,这就导致了在很多情况下都不能得到更好的性能。

 

 

 

 

 

 

 

 

编看编想

更为光明的虚拟前景

  在商用软件领域,VMware以一贯的先行者姿态提供各种层次的虚拟计算解决方案,从工作站版本到ESX高级服务器版本,从Linux到Windows,进行了广泛的支持,从我们对GSX Server这个版本产品测试的性能结果就可见一斑,而在更加高端的版本ESX Server中,某些部分的性能也许还会更高一筹。

  而微软则以扎根操作系统和雄厚的实力来逐步逼近这个市场,不过以目前Virtual Server的表现来看,虽然管理界面和易用性都达到了相当高的水平,但是要想像Windows操作系统一样独霸桌面领域,还需要不少时间,尤其是在性能方面,还需要改善才能够被更加广泛地采用。

  虽然这次我们并没有对开源的产品进行测试,但是我们了解到,Linux开发者逐渐接纳了一种改变,即让商业的虚拟化软件在更平等的立足点上与开放源代码软件竞争,比如Xen。由于Xen可望与Linux的核心更密切地融合,但Linux领导人Linus Torvalds的副手Andrew Morton正提倡在Linux核心中加入一种接口,让Linux与任一种虚拟化软件实现兼容。VMware的开发者建议在Linux核心与hypervisor之间采用一种稳定的界面,如果软件公司采用这种核心界面,用户就不用担心虚拟机器或hypervisor版本不同的问题了。VMware已经跟开源社区达成了共识,并且很多工作进入了实质阶段,希望在9月前,一切都能就绪。

  Intel和AMD当然也不甘示弱,在2005年底就推出了支持初级虚拟计算功能的处理器产品,不过由于其尚在初级阶段,我们并没有见到太多的产品和相关的软件支持,而在不久的将来Intel推出的第二代VT-D产品,能够让处理器直接帮助虚拟软件完成更多的转换和I/O处理,也许能够帮助虚拟计算的软件能把性能提高到一个更高的水平。

  而AMD的Pacifica也是类似的技术,能够通过处理器虚拟化、I/O虚拟和设备虚拟化来达到和Intel-VT非常相似的效果,但是借助AMD HyperTransport的高速总线带宽,能够更加有效地执行虚拟计算的任务。由此可见,在整个虚拟软件的领域中,一直在重复着这样一个非常古老的循环,就是软件的发展促使硬件性能和功能不断提高。在虚拟软件领域中,由于对性能的需求在不断增大,除了软件厂商不断的努力、完善和增强虚拟软件外,硬件厂商也会扬长避短,把能够在硬件上完成,又不会影响灵活性的功能都交给硬件完成,让软件去实现更加灵活的管理和一些比较复杂的逻辑功能。愿PC服务器在虚拟化的道路上走得更好更远。

[责任编辑:程永来 cheng_yonglai@cnw.com.cn]