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的内核模块叫做kvm.ko,实现对Linux的CPU和内存虚拟化,是Linux的一个进程,负责VCPU和内存的分配,而其他设备的虚拟就交给了qemu。qemu运行在用户空间,KVM运行在内核,两者通过/dev/kvm进行交互,KVM仅支持全局虚拟化。
Xen虚拟化
Xen是一个直接运行在计算机硬件之上的用以替代操作系统的软件层,Xen能够在计算机硬件上并发的运行多个客户操作系统(Guest OS)。
关于是否写入Linux内核
KVM已经被Linux核心组织写入Linux内核。而Xen是一个外部的Hypervisor程序(虚拟机管理程序),它能够控制虚拟机和给多个客户机分配资源,在KVM被写入Linux内核后,估计Xen很难再被写入内核。而KVM是Linux的一部分, 可使用通常的Linux调度器和内存管理,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 |
动态迁移 | 支持 | 支持(以前不支持) |
内核支持 | 需要对内核打补丁 | 内置在内核中 |