在选择开源hypervisor时,有两大选择:Xen或者KVM。Citrix XenServer以及Oracle VM基于Xen,而Red Hat和Ubuntu基于KVM。Xen在Linux平台下使用情况良好,但是从2011年起Xen不再包含在Linux内核中,而且用户需要对内核打补丁,并在现有Linux发行版的基础上进行一些配置才能使用。相反,自从2007年起,KVM已经被包含在了Linux内核之中。尽管Xen推出时间更长,但是业界专家认为KVM已经取得了长足的进步。
不确定哪一种hypervisor是数据中心的正确选择?本文的FAQ将为你提供做出正确决定所需要的相关知识。
Xen和KVM是同一类型的hypervisor吗?
Xen是x86平台下的一个开源的虚拟机监视器,KVM hypervisor是KVM的虚拟化层。 Xen属于type-1 hypervisor因为它有自己的内核,而KVM属于type-2 hypervisor,因为它使用了另一个主机操作系统的内核。Xen使用它自己的内核用于线程以及虚拟机调度,而KVM使用Linux内核进行上述操作。
哪些特性是Xen具备而KVM所没有的呢,反之亦然?
Xen提供了关键应用程序接口,应用二进制接口并支持分布式管理任务组接口。Xen还提供了在线迁移并支持共享存储,能够进行服务器整合。KVM并非总是支持在线迁移,但是其最新版本的确提供了该功能。
可能Xen相对于KVM最大的优势就是与生俱来的半虚拟化,不需要进行仿真虚拟机就能够高效运行。不需要模拟或者虚拟模拟硬件,客户机能够感知hypervisor而且能够高效运行。KVM hypervisor不支持半虚拟化,必须模拟KVM虚拟机所生成的指令。然而为使用半虚拟化,你需要修改操作系统。默认的Windows安装无法在半虚拟化环境中使用。
Xen与KVM各自的优缺点有哪些?
每种hypervisor都有各自的优缺点。通常认为KVM易于配置与维护,你只需要加载Linux内核中的一个模块。一旦模块被加载后,就可以创建虚拟机了。KVM的精简架构同样对企业Linux服务器的管理员具有吸引力。
然而,Xen是用于部署、备份、存储管理、P2V、容量规划、性能监控、流程自动化以及安全性的第三方生态系统。使用KVM,客户机共享内存块,CPU指令集以及底层的Linux操作系统,这意味着KVM会遇到性能、延迟、安全性、可扩展性以及隔离问题,而像Xen这样的裸金属hypervisor并不会遇到上述问题。
大多数Xen vs.KVM的性能基准测试显示Xen的处理性能更好,但是KVM在磁盘I/O方面要胜过Xen。