主题:VMWare 上市想到的 -- pix

共:💬40 🌺36
全看分页树展 · 主题 跟帖
家园 【文摘】呵呵,我可说不好,推荐大家两篇文章吧

主流虚拟机产品性能测试与对比

虚拟鸡和虚拟鸭

这第二篇因为是bbs中的帖子,找来找去的可能不大方便,我在这里做个文摘公吧:

说起虚拟技术呢,首先当然要提这一领域的四大天王,他们是:VMware、XEN、MS Virtual Server、Virtuozzo和OpenVZ。

(哄噢~有人不识数喔~)

听我慢慢说啦!OpenVZ是用Virtuozzo全套源码的一个开源项目,所以技术上说,Virtuozzo和OpenVZ是一家,就像CentOS和Red Hat的关系一样。当然CentOS和Red Hat实在太相像了,而Virtuozzo和OpenVZ还是稍微有点区别的。比如Virtuozzo能支持Windows,而OpenVZ就不行;Virtuozzo有很多图形节目的管理工具,OpenVZ目前还只能用命令行。

叙述的有点乱,还是逐个介绍一下四大天王先。

首屈一指的当属VMware公司。这个公司在虚拟主机方面的产品贼丰富,技术也贼成熟,顺其自然的,其看家护院的产品——ESX Server——卖的也就贼贵贼贵的。

这个ESX Server是直接安装在裸机上的,不需要安装任何操作系统,或者说,ESX自己就是个特殊的操作系统。因为ESX的安装界面很像RedHat,里面的指令和服务也很像,所以有些人误以为ESX = RedHat + VMware Server,其实不是酱子滴。

ESX里的大部分底层驱动都由VMware重新写过,而且还内带好多咚咚,比如SAN文件共享和多路径冗余。VMware为了表示自己的确干了好多活,就把这个kernel命名为VMkernel。

而整个ESX基本可以看作VMkernel + Console。这个Console基本就是RedHat AS3的改版,可以看做是个特殊的虚拟机。

本人觉得VMware最酷的技术是VMotion,就是能让虚拟机活着搬家。我曾伙同另外一个家伙测过VMotion的效率,在虚拟机从一台服务器搬家到另外一台服务器的过程中,持续ping这台虚拟机的IP地址,结果发现整个过程中只有一个ping响应略有延迟。厉害!

当然喽,要实现VMotion,就肯定需要后端有一个共享SAN文件系统。ESX里面带的SAN文件系统叫VMFS,实现的功能跟SANergyFS和ADIC StorNext FS差不多,不过VMFS是对称式的。也就是说,安装ESX的时候,不需要给VMFS指定MDC。

ESX里集成的多链路功能也不错,主流光纤卡都能支持(要求太低了点儿吧~)

还有,多链路聚合和切换是在驱动层完成的,不是靠device-mapper或MD。也就是说,在双卡的机器上安装ESX之后,在/proc/scsi/scsi里看到的,就已经是合并之后的设备,不需要像powerpath那样再搞东搞西的。

另外ESX还支持iSCSI和NFS,用来连接IP-SAN和NAS(咦?这回居然没人呕吐,那我再大声说一遍,“IP-SAN和NAS~”OK,我爽了,你慢慢吐先。)

其实ESX里面是有Samba Client的,而且我试了试,访问一般的Windows共享没啥问题。但是VMware的官方文档里,目前还没有对CIFS的支持,也许是人家对自己严格要求吧。

VMware产品系列中,除了ESX以外,还有两个虚拟引擎——VMware Server(也就是原来的GSX),VMware Workstation以及最近即将发布的VMware Fusion。

Sorry,这回真的数错了,是三个,三个产品。Server、Workstation和Fusion。

与ESX相比,这三个产品运行的层次要高一些,都是要安装在操作系统上的。Server和Workstation运行在Windows和Linux上,Fusion运行在苹果的Mac OS上。

为了配合这些个虚拟引擎,当然主要是为了配合ESX,VMware还有一些管理软件和工具。比如Virtual Center、Importer、Convertor、P2V、Player等等。

这些工具中很多是免费的,也有些如Virtual Center这样的工具,是跟ESX打包在一起卖的。ESX + VC的组合叫Virtual Infrastructure,简称VI。

顺便提一下,虚拟技术世界里,简称VI的咚咚好多,一不留神就容易搞混。比如有家公司叫Virtual Iron,而且其产品也叫Virtual Infrastructure,另外在InfiniBand交换技术里还有个协议层叫Virtual Interface。下次有人跟你说VI的时候,最好问清楚是哪个VI,免得最后驴被马性骚扰。

类似的重名现象还有VDI这个缩写。VMware有一个包叫Virtual Desktop Infrastructure,Virtual Iron公司也有个名字完全相同的产品包。当然里面的咚咚是完全不同的啦。

造成这严重的重名现象至少有两种可能:

一是这些公司在起名字的时候太缺乏创意,哪像咱存储界的厂商,明明东西一样,名字也起得五花八门。

二是人家故意把名字弄得一样,以表示说“对啦,我就是跟你竞争的!”

事实上Virtual Iron也确实是VMware的一个有力竞争者。咱们要说的第二个天王,XEN,确切的说不是一个人在战斗,而是一个庞大的阵营。其中就包括Virtual Iron公司。

XEN本是一个剑桥搞的开源项目,最近几年发展得超级迅速,目前几乎所有的Linux版本都搭配了这个咚咚,就连一些Unix也开始考虑勾搭之。XEN的技术特点是Para-virtual,即“并行虚拟”也叫“半虚拟”技术,就是说XEN能让虚拟机中的某些程序直接访问硬件。

打个比方说,VMware ESX像是穿在服务器硬件上的一层衣服,这层衣服把硬件包裹得很严实。ESX中的虚拟机所看到的硬件资源,100%都是由ESX虚拟出来的。虚拟机中的操作系统,是不能直“接触”摸到真正的硬件资源的。

而XEN呢,则像是穿在服务器硬件上的性感的比基尼泳装,虚拟机不仅可以看到,而且可以直接摸到……

同学~你口水流出来啦!赶快擦擦。

记得早些年间要在XEN上装Linux的时候,还需要手工改内核。现在Intel和AMD在CPU里提供的新的虚拟技术之后,XEN不仅可以不改内核直接安装Linux,还可以支持Windows虚拟机。技术的进步真是快啊!

啥?你问Intel和AMD是啥技术?别急,我后面会说到。本来我脑子就乱,你这一打岔,我就更乱了。

咳~咳~刚才说到哪了?

噢,对了,是说XEN阵营。

这里面的两大主力是Virtual Iron和XenSource公司。这个Virutal Iron公司原本是有自己一整套从软到硬的虚拟产品,不过近来发现XEN年轻貌美,便放弃了自己半老的旧引擎,全套采用XEN为其核心。早年记得Virtual Iron还有些基于InfiniBand交换的硬件虚拟技术,现在在他的网站上也看不到了。看来告别过去的决心有够坚决。

XenSource公司没有什么旧关系的瓜葛,就是靠的XEN的发展而发展起来的。现在业界使用最广泛的XEN商用版本就来自这个公司。XenSource发布的商用版本一共有三个……等会儿,让我再数一遍。OK,没问题,的确是三个:XenEnterprise、XenServer、XenExpress。

虽然在XEN的阵营中,XenSource提供了类似VMware的P2V和Importer工具,Virtual Iron提供了集中管理工具,但是总体来说,XEN的管理软件和工具还是远不如VMware完整和成熟。好在XEN阵营还在日益扩大,除了各大Linux厂商、Sun和IBM,听说最近微软也来凑热闹,跟XenSource谈起了合作。如此看来,XEN真是前途不可限量啊!

说到微软,也就是咱们要认识的第三位天王,总是让人想起IE、Media Player等“经典”之作,虽然他不是第一个做出来,而且技术也不见得更好,但是一旦开始免费的捆绑在Windows里面,对手的日子就难过了。如今微软在虚拟技术上的手段,也是如此。

到目前为止,微软一共推出了四个咚咚,安啦~不会再数错啦,Virtual PC 2004、Virtual PC2007、Virtual Server 2005、Virtual Server 2005 R2。这些咚咚的工作层次跟VMware Server和Workstation的层次相同,都是需要安装到操作系统上。当然了,用胳膊肘都能猜出来,微软的咚咚只能安装在Windows上喽。不过微软对虚机系统的支持倒是显得比较现实,声称在未来会支持Linux虚拟机。

让对手最害怕的是,微软号称在Windows 2008里面要开始捆绑他的虚拟产品。这可吓坏了VMware,尽管MS VSR现在做得很土,基本不具备任何实用性可言,VMware还是忙不迭的把自己的VMware Server变成免费产品,以免被微软打个措手不及。

由此也可以看出微软这三号天王也非浪得虚名,虽然东西做得不咋地,但至少可以隔山打牛。最终受益的还是咱们用户,可以免费使用功能性能都不错的VMware Server。

啥?你说你原本也可以免费使用?拜托~用盗版就不要这么大声嘛!

这四号天王,就是前面被打岔时说过的Virtuozzo和OpenVZ。这两串勾勾文都是产品的名字,背后的公司名字叫SWsoft。如前面已经说过的那样,Virtuozzo OS Virtualization和Virtuozzo Server Virtualization是SWsoft公司的商业版产品,OpenVZ是采用SWsoft源码的开源项目。

与前三个天王的产品相比,SWsoft的产品运行在更高的层次上。用业内行话说,Virtuozzo和OpenVZ属于Application Container——应用程序的容器。好像有点难懂,咱们用点通俗的话说,不过你放心,这里没有比基尼什么事。

VMware、XEN、MS VSR这些咚咚所虚拟出来的,都是一个个“硬”的主机,你得在这些虚机上再装操作系统。而Virtuozzo和OpenVZ所虚出来的,是一个个已经装好系统的主机。

也就是说,VMware、XEN、MS VSR所虚拟的是硬件资源,而Virtuozzo和OpenVZ所虚拟的是操作系统环境。

所以Virtuozzo和OpenVZ里面没有VM(Virtual Machine)这个概念,取而代之的是VE(Virtual Environment)或称VPS(Virtual Private Server)。而进到VE/VPS里面,看到的就是一个现成的操作系统环境。

等着听比基尼故事的人失望了~

具体来说。比方说Windows下安装某个程序,要改注册表是吧?还有创建目录和文件是吧?Virtuozzo能把这些动作统统截获,并且偷偷在其它地方执行,而不真正修改原来的系统环境。这样程序自以为万事OK,很Happy的运行,殊不知却是被Virtuozzo给骗了。

Virtuozzo这个有所不同的机制,对资源管理更为灵活,某个虚拟环境只有活动的时候,才会被分配资源。因此在相同的硬件资源下,Virtuozzo可以配置出更多的虚拟环境。一般VMware和XEN只能在一台服务器上跑几十个虚拟机,而Virtuozzo号称可以一台机器支持5000个虚拟环境!

当然Virtuozzo也有很明显的不方便之处,就是Linux上只能虚拟Linux,Windows上只能虚拟Windows。而且像VMware或Xen那样在服务器之间挪动虚拟机,也是异常困难的。

点看全图

外链图片需谨慎,可能会被源头改

说完了虚拟界的四大天王,再来说说四小天鹅。

第一天鹅是Sun公司。

好像把这么大的公司算做小天鹅有点那个,不过在虚拟界Sun的影响确实不如前面那几位大嘛。没办法,暂时委屈一下喽。

Sun以前就有个很类似Virtuozzo的软件,叫Solaris Container。从名字就能看出来,这咚咚也是个应用容器。最近Sun在虚拟技术方面的热情很高,新推出了一个叫做Logical Domain的咚咚,简写的模样很怪异——LDoms。

第二天鹅是Parallels公司。

这家公司跟前面提到的SWsoft其实是姊妹公司,幕后投资人就是SWsoft的大老板。所以你在SWsoft的主页上还能找到Parallels的链接呢。

Parallels主攻的方向是桌面虚拟,在Windows、Linux和Mac OS上都有产品。以Parallels掌握的技术,完全可以实现,在Windows上运行Mac OS程序,在Mac OS上运行Windows程序。但是目前的产品只支持后者,因为苹果公司的授权条约限制了前者的合法性。

苹果真是够“独”,居然禁止别的平台运行自己的程序!

第三天鹅是InnoTek公司。

这家公司非常识时务,发现自己无论如何也打不过VMware等对手,就干脆把自己的VirtualBox做成开源项目。现在大家可以在网上任意下载VirtualBox来玩。

这一招还真管用,刚开源没多久的时间,VirtualBox的用户,当然主要是玩家型的用户啦,就迅速增加。看来还是免费的午餐更好吃啊!

第四天鹅是Thinstall公司。

这家公司其实不属于传统虚拟主机这个圈子,从名字就能猜出来,它更多的是和一些所谓“瘦终端”厂商勾搭。但是它的产品却从名字到功能,都不折不扣的属于虚拟范畴。

它的产品叫Thinstall Virtual Suite,运行起来的效果跟Virtuozzo差不多,也是蒙骗应用程序,不让应用改动系统环境。

虚拟技术世界里,除了这四大天王和四小天鹅,还有很多配套工作。比如前面提到的Intel和AMD的新技术,就是配合这些虚拟软件滴。

Intel的虚拟技术叫Intel-VT,其中VT是Vanderpool Technology的缩写。嘿嘿,不好意思,我刚开始看到的时候还以为是Virtual Technology的缩写呢。这个技术的效果就是把一个CPU分成若干分区,然后把指令的执行范围限定在分区内。简单点说,就是在硬件上,把一个CPU虚拟成几个CPU。

按照Intel的设想,将来都不需要什么虚拟软件了,它自己的CPU直接就能同时运行多个操作系统。不过现阶段这只是个梦,Intel-VT技术还是要搭配VMware或者XEN才能起作用。当然啦,VMware和XEN都是很给面子的,Intel-VT刚刚发布没几天,这两个天王就都纷纷支持了。至于Virtuozzo这样的“应用容器”,由于主要是跟操作系统和应用打交道,暂时还不用搭理CPU里面的这些技术。

AMD的虚拟技术正式名称叫AMD-V,但也有很多人喜欢称呼原来那个内部用名,Pacifica。跟Intel-VT一样,AMD-V技术的原理也是在CPU上划分区,同时隔离指令。

对用户来说,让人有点不爽的是Intel-VT和AMD-V互相是不兼容的。目前VMware和XEN都是要专门针对两个技术分别做工作。

啥?你说没关系?那下次跟你谈薪水的时候,咱们说美元,发钱的时候数字不变,票子变成日元试试看。

Intel和AMD这边虚拟得热火朝天,IBM和Sun也怕落后,在新的PowerPC和SPARC处理器里,也弄了一堆虚拟技术。不过相比x86上的虚拟成分要“软”很多,我的意思是说要更多的依靠软件,不要想歪哦!

其实,虚拟技术,说到底就是一个字——骗。

Virtuozzo对应用程序说:“来吧,来搞我吧,我就是操作系统。”

VMware和XEN对操作系统说:“来吧,来弄我吧,我就是主机硬件。”

Intel-VT和AMD-V对操作系统说:“来吧,来x我吧,我…我…我…还是x86 CPU。不过我是好几个CPU哦,你想x哪一个?”

这些技术虽然在骗,但是骗得都不够狠。虚拟技术里,有一类狠角色,真是说瞎话不眨眼。

N久以前有个名叫Bochs的骗子,他就可以在任何CPU上运行,来模拟IA-32环境。可惜这个骗子的寿命不长,M久以前就翘辫子了。

跟Bochs几乎同时代的还有个PearPC开源项目,他可以在任何CPU上模拟PowerPC。也就是说,你可以在家里的PC上安装Linux,然后编译PearPC代码,然后运行PearPC,然后在模拟出的环境中安装AIX或者老版本的Mac OS!酷吧?!

可惜PearPC也寿禄不长,2005年底弄出模拟G4的0.4.0版之后,就再没动静了。后来另外一个叫做CherryOS的开源项目接过PearPC衣钵,又折腾了一年多时间,到处对人说他可以在PC上安装Mac OS,结果却一再推迟发布日期。后来人民群众不爱搭理他了,他也就如烟般散去了。

这些项目虽然最终不了了之,但是他们为后来的大骗子遗留下很多宝贵的骗术遗产。今天业界知名的大骗子——QEMU就还一直沿用着Bochs遗留下来的BIOS模拟技术。

当然QEMU比他的前辈们出息多了,他已经发展成一个家族。用句文言文说,QEMU家族可谓NB得不得了。

他们可以平台无关的模拟x86、ARM、PowerPC、SPARC环境,而且速度非常快。据说效率可达80%,当然,俺也不知道这个80%是意味着什么,反正肯定不是送过去100个指令,最后只执行80个。

只要不太傻的人都知道,光有CPU是P也干不了的。还得有总线、I/O之类的外部环境。还好今天的QEMU已经可以完整的模拟一个主机环境,让你可以在Linux上模拟出IBM或Sun的小机工作站,甚至能模拟一个阵列控制器。

当然了,NB的事情总是高难度的。使用QEMU可不像使用VMware或者XEN那么容易,对各种真实硬件的支持也很不到位。可以原谅嘛,人家才是0.9版,而且还是个免费的开源,都是靠雷锋们为QEMU添砖加瓦。也不容易啊!

如果你只对商业软件感兴趣,可以关注一下Transitive这家公司。他们的产品叫QuickTransit,可以让Unix的程序在x86 Linux上运行。而且据说效率也很高。

现在QuickTransit可以支持的跨平台方式有:

SPARC Solaris到x86/x86_64 Linux;

SPARC Solaris到x86 Solaris;

PowerPC或MIPS到x86 Linux

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河