开源虚拟化之战:Xen vs.KVM

如果你是Linux虚拟化技术用户,那么你有两种免费的开源管理程序可选:Xen和KVM。现如今,Xen已经没落,KVM正风生水起。出现这种情形的根源是什么呢?

Xen带着荣耀而生

2003年,开源Xen通过最新的半虚拟化(Para-virtualization)技术在数据中心用户群体中流行开来。Xen成为开源虚拟化领域的一件大事。它免费,还开源,业界对其给予厚望,希望能与VMware抗衡,分得一杯羹。

Xen虚拟化平台架构

从上图Xen架构中可以看出,Xen支持hypervisor和虚拟机互相通讯,而且提供在所有Linux版本上的免费产品,包括Red Hat Enterprise Linux和SUSE Linux Enterprise Server。

Xen最重要的优势在于半虚拟化,此外未经修改的操作系统也可以直接在xen上运行(如Windows),能让虚拟机有效运行而不需要仿真,因此虚拟机能感知到hypervisor,而不需要模拟虚拟硬件,从而能实现高性能。Xen与系统结合紧密、占用的资源少而知名,因此特别适用于服务器应用整合,可有效节省运营成本,提高设备利用率,最大化利用数据中心的IT基础架构。

目前最新版本是2011年4月发布的Xen 4.1。具有支持大型系统(255 以上处理器和 1GB/2MB超级页面的支持)、新的API内存访问机制与支持X86的高级矢量扩展(AVX)等新功能。

KVM因时势而造

KVM(Kernel-based Virtual Machine,基于内核的虚拟机),比Xen晚生四年,完全内置于Linux。IT管理员只需几个内核模块的支持就能安装KVM,而Linux内核都支持这种hypervisor。

KVM虚拟化平台架构

从上图KVM架构中可以看到,KVM作为一个轻量级的虚拟化管理程序模块,利用Linux做大量hypervisor能做的事情,如任务调度、内存管理与硬件设备交互等。

KVM具有高性能、高扩展与高安全性特点,适合运行Linux或Windows的环境,在异构环境也能很好的进行管理,而在虚拟化桌面方面,可以提供可靠的可扩展的镜像服务器。

KVM力压Xen

两者都深深依赖于Linux。但是Xen在早期是不受Linux内核支持的,要实现hypervisor功能,IT管理员需要把开源Xen作为主流内核的补丁来安装,甚至安装后不能对内核做升级,否则会破坏Xen的功能。难与Linux内核集成的这个缺陷导致后来者KVM一出现就备受关注。

而之前支持Xen的厂商也在改变风向。业内知名Linux厂商红帽在Red Hat Enterprise Linux(RHEL)5时还采用的是Xen hypervisor,在RHEL 6中就移除了所有Xen相关组件,只用KVM,并且提供Xen到KVM虚拟机迁移工具。另一家Linux厂商Ubuntu则明确表示选择KVM作为其hypervisor。

2011年初,经过漫长的改进,开源Xen终于获得了Linux的完全支持,Xen提供了成熟的虚拟化功能,包括通过半虚拟化提供最优化的虚拟化操作系统。但是来得太晚已经错过了提高市场占有率的机会。在Xen努力靠近Linux内核的这些年,KVM和其他产品在技术、功能和市场上已经获得进展。

如果坚持在Linux平台上使用开源Xen,SUSE Linux Enterprise Server和Oracle将是唯一的选择。

Oracle VM这个基于Xen的虚拟化平台很难直接用于Oracle现有的用户群。甲骨文在企业Linux领域只是小玩家,对Xen的支持也很有限。

这边厢,除了红帽和Ubuntu,KVM也受到了IBM的关注。最近,IBM KVM(北京)卓越中心落户北京,帮助中国客户、软件开发商及合作伙伴更好的采用开放的虚拟化技术,以支持其云计算项目的发展。

此外,KVM也作为默认的开源软件hypervisor,获得了开源虚拟化联盟OVA的认可。

各大厂商和组织都在推广KVM,这使得Xen在开源虚拟化市场上难以立足。Xen这个成熟的平台在可用资源、可管理性、性能等方面的优势在快速发展的KVM面前也略显暗淡。随着时间的推移,虚拟化技术后来者KVM将会超越Xen,拥有开源虚拟化市场。