董唯元存储专栏:虚拟鸡虚拟鸭的家长里短(2)

存储界颇具周星星风采的大侠Pekics近期写过《中国存储软件》一文之后,便告销声匿迹,一时不知所踪,导致尽管有《中国存储软件》一文推出,仍不断有人在往论坛神秘人物Angle的短消息发送关于P大侠是否已经从良,哦不,是否已经改行的信息,对此,我等小编也实在看不过眼。或许P大侠在某天上班时,很意外地没有想着给宝贝女儿洗完尿布的事情,而感应到了诸人的牵挂之念力,于是发表了这篇标题和内容都多少让人想入非非的文章:《虚拟鸡和虚拟鸭》……

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

第一天鹅是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

这些不同的虚拟技术,虽然今天看来走得路子很接近,但是他们的祖宗并不是一个。

状如QEMU这样的CPU模拟器,最早源于那些写编译器的高手。这些又牛又懒的高手总想省事,恨不得写一个编译器就可以在各种CPU上到处用,于是就产生了今天跨平台指令实时互译的雏形。

而VMware和XEN,甚至包括Intel-VT、AMD-V的套路,主要师从于一个叫做“服务器分区”的技术。这是一门同样古老的技术,玩过Sun E10000的人一定对这种咚咚很熟悉。先在一台E10000里插上若干CPU、若干内存、若干板卡、若干菜刀……然后再跑到console台上把某些CPU跟某些内存以及某些I/O划分成一个Domain。每个Domain就是一台机器,最后在Domain上装Solaris系统。

说到这里,不由得想起当年中国移动总局规划的一个愚蠢方案??居然采购两台E10000做双机!那个脑子进水的技术主管显然没搞懂E10000咋用。

x86平台的服务器分区技术出现的也非常早,UniSys公司的机器就是用一堆x86 CPU搭成的类似E10000的模样。不过从“分区”到“虚拟”还是有明确界限的。如果分区的时候只能操作整个的CPU,就算“分区”;如果能把一个CPU切开,分配半个甚至更小的CPU资源,就算“虚拟”了。从这个角度说,E10000、UniSys和其它大冰箱,都还是只能分区不能虚拟。这也正是大部分刀片服务器,一般都会搭配VMware的原因。

不过例外总是有的。一个叫做Egenera的公司就做了几乎纯硬件的虚拟系统。

此外,一些InfiniBand交换设备也能提供类似的虚拟功能。


存储在线版权所有,如需转载,请与本站联系


<待续>,持续关注,请点击此处!