盆盆是一位虚拟化技术的爱好者,本文就是从一位普通的虚拟化技术测试者和爱好者的角度出发,谈谈对于虚拟化技术的一些粗浅看法,观点不一定正确,还请各位老大多多批评指正。盆盆将会根据大家的反馈,定期对本文进行修正。
一、虚拟化厂商的分类
由于虚拟化正在持续升温,所以各大厂商纷纷“蠢蠢欲动”,除了VMware和微软以外,其他IT巨无霸也纷纷加入这个领域,企图分一杯羹。尽管加入的巨头不少,但大致可以划分为以下四类:
由于虚拟化正在持续升温,所以各大厂商纷纷“蠢蠢欲动”,除了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支持虚拟化……
然而精明的VMware似乎已经看到硬件层+虚拟化这个结合点,他们最近推出的VMware ESX Server 3i(注意有一个字母i)产品,也是一种所谓的瘦管理层技术(包含更少的驱动)。
本以为它主要用来和微软的Hyper-V竞争,但是实际不然。
和微软的Hyper-V不一样的是,VMware ESX Server 3i这个瘦管理层主要和硬件捆绑,采用固化在硬件里的技术(也可以独立安装,甚至放在U盘里)。这样更加类似于拿到一台直接支持虚拟化的硬件平台。而微软的Hyper-V,则是和操作系统组成一体,采用不同的架构,其兼容性,要明显高于VMware ESX Server 3i。从兼容性的角度来说,微软Hyper-V>>VMware ESX Server 3>>VMware ESX Server 3i。
为什么VMware不开发一款产品,和Hyper-V相同架构,而直接竞争?
从技术上来说,VMware一定可以办到。但是VMware也许很清楚自己的定位,Hyper-V这种架构,更加适合微软这种传统的OS厂商,而作为独立厂商,VMware应该加紧和底层的IHV硬件厂商进行联合。
三、孰优孰劣
这是一个很敏感的话题。作为一名MVP,盆盆自然当仁不让地站在微软这一边,相信在虚拟化领域,微软一定可以取得更好的成绩,这只是时间问题。
1. 微软的优势
(1)作为一家传统的OS厂商微软开发的Hyper-V产品,和微软自己的Windows操作系统,其兼容性理应更强。未来的Hyper-V,还能支持一些主流的Linux产品,商业客户可以放心地把Linux系统迁移到微软的虚拟化平台,而出了技术问题,微软可以提供技术支持。
(2)如果采用支持虚拟化的Windows Server 2008,虚拟化管理层本身无需额外付出成本。
(3)微软自己的应用程序,包括SQL Server、Exchange Server、活动目录、IIS等服务端应用,可以更好地在Hyper-V上运行,其兼容性、稳定性和性能,都会得到保障。有利于企业把关键应用迁移到虚拟化平台,以充分享受虚拟化带来的好处。
(4)采用微软虚拟化方案,在许可证方面可以享受不小的优惠。例如标准版的Windows Server,可以免费跑一个标准版Windows Server虚机实例;企业版的Windows Server,则可以免费跑四个Windows Server实例;而DataCenter版本的Windows Server,则可以跑无限制个实例。所谓实例,就是指可以安装无限个Windows Server虚机,但是只有运行的虚机,才算一个实例。而其他第三方的虚拟化方案,则没有这种优惠,许可证方面的开销巨大。
(5)微软最大的优点,在于有一个完整的、集成的平台,这是其他第三方产品所不具备的。微软的虚拟化架构,也许单独拉出其中的某个功能或者组件,并不一定都是业界老大。但也许只有微软才能提供完整的架构平台,我们不用担心要向多个供应商采购才能拼凑出一套完整的功能平台、不用担心各个组件之间是否可以整合、更不用担心各个组件之间是否可以兼容。
微软为虚机和真机提供了一套相同的管理平台,可以用System Center Virtual Machine Manager进行真机到虚机的迁移,可以对多台VM主机进行管理,借助模板快速提供服务;可以用System Center Configuration Manager对虚机和真机打补丁和安装软件;用System Center Operartion Manager对虚机和真机进行监控和管理;用System Center Data Protection Manager对虚机和真机进行备份和恢复、以及灾备和还原。这些管理产品之间可以实现完美整合、完全兼容。
最重要的是,微软的下一代System Center Virtual Machine Manager,将有能力同时对Hyper-V、VMware、XEN的虚机进行管理,如果微软能够做到这一点,这对其他虚拟化厂商来说很致命。
2. VMware的特点
优点
(1)作为一家老牌的虚拟化厂商,VMware一直是业界的领头羊(最近业已上市),技术上比较成熟,目前的最新版本是3.5。
(2)VMotion在线迁移功能,可以有效地应对计划宕机事件,虚机在不同主机之间的在线迁移,以便主机在维护或者需要计划停机,关键业务不会中断。Citrix XenServer有类似的XenMotion功能。微软的Hyper-V具有快速迁移功能,但是需要数秒到数分钟不等的停机时间。
(3)其DRS模块,可以把多台ESX主机、乃至整个数据中心虚拟化成一个逻辑的资源池,以便关键应用可以按照预定的算法平衡地分摊在多台ESX主机上,确保亟需的业务能够获得足够的资源。
(4)VMware的产品线比较完整,针对不同的行业应用,都有完整的解决方案。其联合上下游ISV和IHV厂商的能力,有助于给客户提供完整的解决方案。
(5) 不需要Windows Server 2008的支持,可以直接安装在裸机上。
缺点
(1)缺少完整的管理平台,客户可以用Virtual Center来管理多台VM主机和虚机,但是缺乏统一的管理平台,客户需要购买微软的System Center Operartion Manager(或者MOM)、System Center Configuration Manager(或者SMS),或者HP的管理平台,对虚机和真机进行统一管理。一方面,这增加了客户的成本,另一方面这些产品和VMware的Virtual Center集成的能力毕竟相对来说比较困难。
(2)VMware的虚拟化管理层是一个独立产品,需要付费。当然现在VMware把ESX Server和管理平台Virtual Center,还有VMotion等增值模块混合打包,统称为VMware Infrastructure。按照客户规模的不同,分为Starter版本、标准版本、企业版本等。这样一方面弱化ESX Server本身需要付费的概念,另一方面更加贴近市场需求。
(3)许可证方面的开销巨大,每安装一个Windows虚机,都必须对其中的Windows操作系统付费。
(4)对于Windows虚机来说,微软不会对其中的Windows操作系统提供技术支持,除非可以证明可以在真机上重现同样的技术故障。
(5)类似Oracle虚拟化技术的出现,打破了VMware和上游ISV软件厂商之间的蜜月,VMware必须对这种釜底抽薪作出防备。
3. 说说Oracle
Oracle虚拟化还是一个新鲜事物,目前还似乎很难判断其前景。但是可以预见的是,其在Oracle客户中的应用前景不会太差,毕竟其兼容性和性能,还有技术支持策略,都有企业客户所感兴趣的。
对VMware来说,这个打击比较大,如果ISV群起仿效,其战略联盟的半壁江山可能会被撼动。而对于微软来说,这个压力相对小一点,微软也有自己的应用程序,SQL Server+Hyper-V+Windows Server,这条产品链的竞争力不容小觑。