Xen PV,Xen KVM和HVM之间的区别?

我知道Xen通常比OpenVZ更好,因为提供者不能在Xen中超卖。 然而, Xen PVXen KVMHVM之间有什么区别(我正在经历这个提供商的规格 ?哪一个更适合什么目的?为什么?


编辑:

对于只是托pipe网站的最终用户而言,哪个更好? 从效率或其他angular度来看,这两者之间是否有优势?

Xen支持虚拟化types

Xen支持运行两种不同types的客人。 Xen客户通常被称为domU(非特权域)。 两种访客types(PV,HVM)可以同时在一个Xen系统上使用。

Xen半虚拟化(PV)

准虚拟化是Xen引入的一种高效,轻量级的虚拟化技术,后来也被其他虚拟化解决scheme所采用。 半虚拟化不需要主机CPU的虚拟化扩展。 然而,半虚拟客人需要特殊的内核,移植到Xen本地运行,因此客人了解虚拟机pipe理程序,并且可以在没有仿真或虚拟仿真硬件的情况下高效运行。 Xen PV guest虚拟机内核包括Linux,NetBSD,FreeBSD,OpenSolaris和Novell Netware操作系统。

PV guest虚拟机没有任何types的虚拟模拟硬件,但使用guest虚拟机pvfb(paravirtual framebuffer)仍然可以使用graphics控制台。 可以使用VNC客户端或Redhat的virt-viewer来查看PV客户端graphics控制台。 每个访客的PVFB在dom0中都有一个单独的VNC服务器。

上游kernel.org Linux 2.6.24以来的Linux内核包括基于Linux pvops框架的Xen PV guest(domU)支持,因此每个上游Linux内核都可以自动用作Xen PV guest内核,而无需任何额外的修补程序或修改。

有关Linux pvops Xen支持的更多信息,请参见XenParavirtOps wiki页面。

Xen完全虚拟化(HVM)

完全虚拟化的HVM(硬件虚拟机)guest虚拟机需要来自主机CPU(Intel VT,AMD-V)的CPU虚拟化扩展。 Xen使用Qemu的修改版本来模拟完整的PC硬件,包括BIOS,IDE磁盘控制器,VGAgraphics适配器,USB控制器,networking适配器等等。 CPU虚拟化扩展用于提高仿真的性能。 完全虚拟化的guest虚拟机不需要特殊的内核,例如,Windows操作系统可以用作Xen HVM guest虚拟机。 由于所需的仿真,完全虚拟化的客户通常比准虚拟客户慢。

为提高性能,完全虚拟化的HVM guest虚拟机可以使用特殊的半虚拟设备驱动程序来绕过磁盘和networkingIO的仿真。 Xen Windows HVM客人可以使用开源的GPLPV驱动程序。 有关Linux HVM guest虚拟机的Xen PV-on-HVM驱动程序的更多信息,请参见XenLinuxPVonHVMdrivers wiki页面。

这是从http://wiki.xenproject.org/wiki/XenOverview

KVM根本不是Xen,它是另一种技术,其中KVM是Linux本地内核模块,而不是像Xen那样的额外内核。 这使得KVM成为更好的devise。 这里的缺点是KVM比Xen更新,所以可能会缺less一些function。

Xen是一个运行在金属(PC /服务器)上的虚拟机,然后托pipe称为域的虚拟机。

一个Xen PV域是一个半虚拟化域 ,这意味着操作系统(通常我们在这里说的是linux)已经被修改为在Xen下运行,并且不需要真正模拟硬件。 这应该是最有效的方式,性能明智。

Xen HVM域是硬件模拟域,这意味着操作系统(可以是Linux,Windows等)并没有以任何方式进行修改,并且硬件被模拟。 这很慢,因此通常在关键硬件(通常是磁盘和networking)的guest虚拟机操作系统中安装PV驱动程序 ,因此整个guest虚拟机将运行完全虚拟化,但性能最重要的硬件将运行半虚拟化。 最近的linux系统在内核中有磁盘和networking的pv驱动程序,而且Windows也有不同的PV驱动程序。 随着近几年HVM上的所有发展,对于标准工作负载,HVM和PV之间的性能通常没有什么区别。

KVM不是Xen,它是内核内build的另一个虚拟化平台。 从客户的angular度来看,它类似于Xen HVM:客户端运行完全虚拟化,并且有特定的驱动程序来运行半虚拟化的部分(磁盘和networking)。

Xen HVM和Linux KVM都需要硬件辅助虚拟化支持(Intel VT-x,AMD AMD-V),而Xen PV不支持但不能在没有PV支持的情况下运行操作系统(无法在Xen PV上运行Windows)。

Xen HVM和Linux KVM都将使用部分qemu虚拟化软件来模拟不使用客户系统中PV驱动程序的设备的实际硬件。

Xen(PV和HVM)可以将运行中的guest虚拟机从一台物理服务器迁移到另一台,我不知道KVM是否也可以。

Xen和KVM都不能过度提供内存,所以你通常会得到“真正的内存”,而像VMware这样的其他平台可以将部分客户内存交换到磁盘上。

有差异,但通常适用于特定的安装,而不是通用的虚拟专用服务器出售给其他人。 例如,最近的Xenpipe理程序支持超越内存,如果guest虚拟机支持它(linux kernels> = 3.something),则可以提高内存利用率和客户性能。

所有这些技术如果正确实施,都会给你一个很好的体验,而且从你的观点来看也不会有太大的变化。 当然,有一千种方法可能会出错,这与特定的虚拟化解决scheme无关(例如,您的客户可能存储在慢速磁盘上,这会损害您的性能)。