VPS方案选择中Xen和KVM虚拟机程序的对比
关于xen和kvm
kvm是一个全虚拟化的解决方案。可以在x86架构的计算机上实现虚拟化功能。但kvm需要cpu中虚拟化功能的支持,只可在具有虚拟化支持的cpu上运行,即具有vt功能的intel cpu和具有amd-v功能的amd cpu。
xen 也是linux下的一个虚拟化解决方案,也将很快被编入内核中。xen的实现方法是运行支持xen功能的kernel,这个kernel是工作在 xen的控制之下,叫做domain0,使用这个kernel启动机器后,你可以在这个机器上使用qemu软件,虚拟出多个系统。
xen和kvm对比
kvm由以色列公司qumranet开发,已经被linux核心组织放入linux的内核里面,其使用的x86处理器至少需要包含其中一项硬件辅助虚拟化技术(intel-vt或amd-v)。
而 xen是一个外部的hypervisor程序(虚拟机管理程序);它能够控制虚拟机和给多个客户机分配资源,在kvm被写入linux内核后,估计xen 很难再被写入内核;另一方面,kvm是linux的一部分, 可使用通常的linux调度器和内存管理. 这意味着kvm更小更易使用。
此外,xen同时支持全虚拟化和准虚拟化(需要修改客户机操作系统,而修改过的客户机操作系统能有更好的性能),kvm当前不支持准虚拟化。
xen的缺点是如果你需要更新xen的版本,你需要重新编译整个内核,而且,稍有设置不慎,系统就无法启动。
相比较,kvm就简化的多了。它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块。它结构更加精简、代码量更小。所以,出错的可能性更小。并且在某些方面,性能比xen更胜一筹。
1.xen比kvm优越的六大点:
(1)可用资源:xen的问世要比kvm早4年之久(两者分别是2003年和2007年)。随着citrix、novell、oracle、sun、ret hat和virtual iron等公司在市场领域的实施,就比较容易找到精通xen的it技术人员,更容易让这些技术人员接受xen相关的培训、更容易得到xen的咨询帮助以及获得xen证书。企业管理协会(ema:enterprise management associates)2008年这对虚拟化和管理趋势的研究报告表明,这些关键因素占到那些抱怨缺少必要虚拟化技术资源和技术企业的60%。
(2)平台支持:xen在新版本中支持更多的主机和客体工作环境,包括泛虚拟化技术、硬件辅助支持以及修改过或未修改过的客体操作系统;对unix、linux和microsoft windows的特定支持;包括芯片组,如x86、ia64和amd、fujitsu、ibm、sun等公司的arm,以及x86/64 cpu商家和intel嵌入式的支持等。
(3)可管理性:ema在2009年度针对虚拟系统管理的研究结果表明:对于83%的企业来讲,在选择虚拟化技术过程中,管理是一项非常关键或者重要的因素。在对比xen和kvm时,就可以看到xen具有一个更加宽泛的第三方配给、备份、存储管理、p2v、容量规划、性能监控、进程自动化、安全和其它管理规则的社区,比如citrix、ibm、ca、novell或者platespin、enomaly、microsoft以及hp等。
(4)实施:无论kvm是“第一类”还是“第二类”,这都是语义上的概念。xen的运行和管理都是在较低级别的(ring 0)。甚至对于新虚拟机创建,客体机器并不需要像kvm那样共享内存块、cpu指令或者任何底层的linux操作系统(虽然偶尔也会越权)。
(5)kvm不支持动态迁移:过去在证明vmware esx比microsoft hyper-v优越的最重要的一个观点也同样适用于xen和kvm的比较,但是这是一个很大的问题。与kvm不同,xen支持非中断的动态迁移,可以允许动态工作负载平衡和例行维护而几乎没有任何宕机时间。kvm的固有属性决定了其肯定有宕机时间。
(6)性能:大多数xen和kvm性能基准的对比都表明xen具有更好的处理性能(接近于本地处理),只有在磁盘i/o方面略逊于kvm。进一步来讲,独立测试表明随着工作负载的增加kvm的性能逐渐下降。通常情况下,在试图支持四个以上的客体虚拟机时就会崩溃。xen支持一个客体虚拟机的数量呈线性增长,可以支持30个以上工作负载同时运行。
2.kvm在linux整合中优于xen
即使没有实施广泛的xen和kvm性能基准研究,仍然有很多理由足以说明linux领导者(诸如red hat和ubuntu)对待kvm态度的原因。其中最明显并且最重要的因素就是kvm是linux内核的一部分,xen只是一个安装在linux内核下层的一个产品而已。
为什么这一点如此重要呢?其之所以重要是因为在过去xen工作环境的补丁包不能够和linux内核兼容。但是如果实施kvm的话,这个问题就可以很容易地得到解决。另外一个选择kvm的原因是kvm在linux内核内部部署,这样可以很容易控制虚拟化进程。
xen的拥护者们声称kvm不如xen技术成熟,并且缺少某些关键特性,如动态迁移和泛虚拟化支持。确实如此,xen工作环境中的泛虚拟化技术可以使虚拟机的操作更加高效,因为泛虚拟化技术直接和硬件进行交互。然而使用泛虚拟化技术需要修改操作系统,默认windows的安装并不支持泛虚拟化工作环境。至于动态迁移,kvm也可以做到,只是需要安装正确的kvm版本而已。kvm过去在动态迁移方面确实存在一个问题,但是现在已经解决了。
从另外一个角度来讲,kvm更加灵活。由于操作系统直接和整合到linux内核中的虚拟化管理程序交互,所以在任何场景下都可以直接和硬件进行交互,而不需要修改虚拟化的操作系统。这一点非常重要,因为对虚拟机运行来讲kvm可以是一个更快的解决方案。kvm需要pacifica(amd)或者vanderpool(intel)虚拟化cpu这一事实现在已经不能成为kvm发展的限制条件,因为当前大多数服务器cpu都有这些处理器。
上一篇: VPS主机商普遍采用的主流虚拟机程序总结
下一篇: 国外VPS主机选择前应该注意到的一些因素