|
一、虚拟化厂商的分类
由于虚拟化正在持续升温,所以各大厂商纷纷“蠢蠢欲动”,除了VMware和微软以外,其他IT巨无霸也纷纷加入这个领域,企图分一杯羹。尽管加入的巨头不少,但大致可以划分为以下四类:
1. 传统OS厂商
例如微软,其代表产品为Virtual PC/Virtual Server(传统的虚拟化技术)、Windows Server 2008内置的Hyper-V(基于Hypervisor的虚拟化技术)。其管理端平台产品为System Center Virtual Machine Manager,当前的2007版本用来管理Virtual Server,明年Hyper-V发布后,还将会配套发布更新的System Center Virtual Machine Manager,以支持Hyper-V。
还有RedHat、Novell SUSE Linux等厂商,也在其最新的OS里加入基于XEN的虚拟化功能。
2. 传统ISV厂商
最近Oracle也宣布加入虚拟化的行列,发布一个基于XEN的虚拟化产品。这是一个非常有里程碑意义的事件。也许今后不少ISV会选择这种模式。
3. 独立虚拟化厂商
就是VMware和XEN Source(已经被Citrix收购)。
4. 硬件厂商
主要是指CPU的虚拟化技术,例如目前Intel的VT技术、AMD的AMD-V技术。今后CPU还会加入更先进的内存虚拟化和I/O虚拟化技术,可以更好地辅助虚拟化技术。
二、厂商各自的策略
如果仔细观察虚拟化的架构,就很容易帮助我们理解虚拟化厂商的分类,以及他们的选择(不管是市场还是技术上的选择),如附图所示。整个虚拟化架构,从上到下依次分为四层:应用程序、操作系统、Hypervisor(虚拟化管理层)、还有硬件层。

1. 传统的OS厂商
从上图中可以看出,操作系统和虚拟化管理层相隔最近,所以由OS厂商提供虚拟化产品,这是非常自然(
native)的事情。以微软为例,其虚拟化产品(Hyper-V)为什么会选择瘦管理层的方式?
盆盆个人的愚见,其实并不仅仅是技术上的考量,以其说是为了安全,毋宁说是为了市场策略的考量。
(1)作为一家OS厂商,必须要考虑硬件兼容性的问题,如果采用胖管理层,则硬件兼容性的问题无法回避,就会严重影响未来Windows Server 2008的出货量,这当然不是微软愿意看到的,同时也不是客户愿意看到的事情。
(2)作为一家OS厂商,微软可以和CPU厂商结成很好的战略联盟。微软的Hyper-V要求CPU必须支持64位、支持硬件虚拟化技术,一方面这种设计有利于减少Hypervisor的代码量,减少可能存在的Bug,另一方面这样的设计也有利于借助微软和CPU厂商组成的联合生态圈,共同为客户提供更好的产品和服务。
2. 传统ISV厂商
从上图中可以看出,应用程序和虚拟化管理层相隔也比较近。但是Oracle最近也开始提供虚拟化产品,其主要目的还是为了推广其自己的数据库产品。考虑到技术支持和兼容性方面的优势,Oracle客户可能会更加倾向于使用Oracle公司提供的虚拟化方案。
由于应用程序和虚拟化管理层毕竟相隔了一个操作系统层,所以可以想见,Oracle必然会和传统的OS厂商,包括UNIX/Linux,还有它一直不那么喜欢的Microsoft,进行合作,确保这些Guest OS能够很好地运行在Oracle的虚拟化管理层上,以便给Oracle数据库提供更好的支撑。
3. 独立虚拟化厂商
虚拟化管理层当然可以由独立的厂商提供,例如VMware。那么VMware ESX Server的Hypervisor为什么会采用胖管理层呢?
盆盆个人的愚见,同样并不仅仅是技术上的考量。以其说是为了性能,毋宁说是为了市场策略的考量。
(1)作为一家独立厂商,VMware必须考虑向下和硬件厂商联合,向上和ISV厂商进行联合,共同组成自己的生态圈。要和硬件厂商进行联合,采用胖管理层,不失为一种很好的策略。由于胖管理层需要Hypervisor里整合底层硬件的驱动,这样就可以和下方的硬件厂商进行联合,开发支持Hypervisor的驱动,同时对硬件厂商进行验证,联合给客户提供整体的解决方案,无论对于VMware、硬件厂商、还是客户来说,都是好事情。
(2)作为一家独立厂商,VMware必须考虑向上和ISV厂商进行联合,这样才能说服客户把关键应用放进虚机里,而不是仅仅把一些边缘的、无关的应用进行虚拟化。而Oracle自己推出虚拟化产品,对于VMware无疑打击不小,简直有点釜底抽薪的感觉。
4. 硬件层的虚拟化
从上图可以看出,硬件层离虚拟管理层很近。如果硬件层和虚拟化层绑定,那么从客户的角度来看,一台物理机器就可以在逻辑上看成是多台机器。但是除了CPU厂商之外,“纯”硬件厂商推出的虚拟化产品并不多。就算是CPU厂商,其虚拟化产品,确切来说应该是辅助虚拟化产品,必须加上软件的虚拟化管理层,才能发挥作用。
预计今后也许会出现固化在BIOS里的虚拟化层,一开机就native支持虚拟化…… |