KVM和Xen是两大虚拟化技术,KVM和Xen又是免费开源的管理程序,菜鸟学院分享虚拟化技术KVM和Xen的区别优势对比:
KVM和Xen的区别
- KVM:KVM是轻量级的虚拟化管理程序模块,该模块主要来自Linux内核;KVM的虚拟化需要硬件支持,如具有VT功能的Intel CPU和具有AMD-V功能的AMD CPU,KVM只能在具有虚拟化支持的CPU上运行。
- Xen:Xen是Linux下的虚拟化解决方案,Xen的实现是基于支持Xen功能的kernel,在Xen控制下的kernel,称之为Domain0,使用kernel启动的机器可以使用qemu软件,虚拟出多个系统。
Xen和KVM虚拟化架构对比
KVM的内核模块叫做kvm.ko,实现对Linux的CPU和内存虚拟化,是Linux的一个进程,负责VCPU和内存的分配,而其他设备的虚拟就交给了qemu。qemu运行在用户空间,KVM运行在内核,两者通过/dev/kvm进行交互,KVM仅支持全局虚拟化。
Xen是一个直接运行在计算机硬件之上的用以替代操作系统的软件层,Xen能够在计算机硬件上并发的运行多个客户操作系统(Guest OS)。
关于是否写入Linux内核
KVM已经被Linux核心组织写入Linux内核。而Xen是一个外部的Hypervisor程序(虚拟机管理程序),它能够控制虚拟机和给多个客户机分配资源,在KVM被写入Linux内核后,估计Xen很难再被写入内核。而KVM是Linux的一部分, 可使用通常的Linux调度器和内存管理,KVM更小更易使用。
关于版本升级
更新版本方面,Xen需要重新编译整个内核,稍有不慎,可能导致系统无法启动;KVM不需要重新编译内核,也不需要对kernel做任何修改(它只是几个可以动态加载的.ko模块)。
KVM和Xen对比来看,KVM结构更加精简、代码量更小,出错率更小;在某些方面,KVM性能要比Xen好一些。
以阿里云为例,阿里云虚拟化技术包括Xen和KVM,新的机器都是KVM,老一代是Xen。
关于全虚拟化和准虚拟化
Xen同时支持全虚拟化和准虚拟化,KVM目前不支持准虚拟化。
KVM和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 |
动态迁移 | 支持 | 支持(以前不支持) |
内核支持 | 需要对内核打补丁 | 内置在内核中 |