KVM和Xen的区别
Linux虚拟化技术的用户目前有两种免费的开源管理程序可以选择:
Xen和KVM。
KVM是一个轻量级的虚拟化管理程序模块,该模块主要来自于Linux内核。
KVM是一个全虚拟化的解决方案。可以在x86架构的计算机上实现虚拟化功能。但KVM需要CPU中虚拟化功能的支持,只可在具有虚拟化支持的CPU上运行,即具有VT功能的Intel CPU和具有AMD-V功能的AMD CPU。
Xen 也是Linux下的一个虚拟化解决方案,也将很快被编入内核中。Xen的实现方法是运行支持Xen功能的kernel,这个kernel是工作在 Xen的控制之下,叫做Domain0,使用这个kernel启动机器后,你可以在这个机器上使用qemu软件,虚拟出多个系统。
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更胜一筹。
两者区别 | Xen | KVM |
---|---|---|
问世时间 | 2003年 | 2007年 |
支持企业 | Citrix、Novell、Oracle、Sun、Ret Hat(RHEL5)和Virtual Iron | Redhat、Ubuntu等 |
支持的虚拟化技术 | 全虚拟化、半虚拟化 | 全虚拟化 |
支持架构 | x86、IA64和AMD、Fujitsu、IBM、Sun等公司的ARM,以及x86/64 CPU商家和Intel嵌入式的支持 | 支持虚拟化的CPU |
支持操作系统 | UNIX、Linux和Microsoft Windows | UNIX、Linux和Microsoft Windows |
动态迁移 | 支持 | 支持(以前不支持) |
内核支持 | 需要对内核打补丁 | 内置在内核中 |