我知道Xen通常比OpenVZ更好,因为提供商不能在Xen中超额销售。然而,是什么区别Xen PV
,Xen KVM
和HVM
(我正想通过这个供应商的规格?哪一个是为了什么目的,为什么好?
编辑:
对于仅将托管网站的最终用户,哪个更好?从效率或其他角度来看,一个相对于另一个有什么优势吗?
我知道Xen通常比OpenVZ更好,因为提供商不能在Xen中超额销售。然而,是什么区别Xen PV
,Xen KVM
和HVM
(我正想通过这个供应商的规格?哪一个是为了什么目的,为什么好?
对于仅将托管网站的最终用户,哪个更好?从效率或其他角度来看,一个相对于另一个有什么优势吗?
Answers:
Xen支持的虚拟化类型
Xen支持运行两种不同类型的来宾。Xen guest虚拟机通常称为domU(非特权域)。两种客户机类型(PV,HVM)可以在单个Xen系统上同时使用。
Xen半虚拟化(PV)
半虚拟化是Xen引入的一种高效,轻量级的虚拟化技术,后来也被其他虚拟化解决方案采用。准虚拟化不需要主机CPU的虚拟化扩展。但是,半虚拟化来宾需要特殊的内核,该内核移植为可在Xen上本地运行,因此来宾可以了解虚拟机管理程序,并且无需仿真或虚拟仿真硬件即可高效运行。Xen PV来宾内核适用于Linux,NetBSD,FreeBSD,OpenSolaris和Novell Netware操作系统。
PV guest虚拟机没有任何类型的虚拟仿真硬件,但是仍可以使用guest虚拟机pvfb(半虚拟帧缓冲区)来进行图形化控制台。可以使用VNC客户端或Redhat的virt-viewer查看PV访客图形控制台。dom0中为每个访客的PVFB有一个单独的VNC服务器。
从Linux 2.6.24开始的上游kernel.org Linux内核包括基于Linux pvops框架的Xen PV来宾(domU)支持,因此每个上游Linux内核都可以自动用作Xen PV来宾内核,而无需任何其他补丁或修改。
有关Linux pvops Xen支持的更多信息,请参见XenParavirtOps Wiki页面。
Xen完全虚拟化(HVM)
完全虚拟化的又名HVM(硬件虚拟机)来宾需要主机CPU(Intel VT,AMD-V)的CPU虚拟化扩展。Xen使用Qemu的修改版来仿真完整的PC硬件,包括用于HVM来宾的BIOS,IDE磁盘控制器,VGA图形适配器,USB控制器,网络适配器等。CPU虚拟化扩展用于提高仿真性能。完全虚拟化的来宾不需要特殊的内核,因此例如Windows操作系统可以用作Xen HVM来宾。由于需要进行模拟,完全虚拟化的来宾通常比半虚拟化的来宾慢。
为了提高性能,完全虚拟化的HVM guest虚拟机可以使用特殊的半虚拟设备驱动程序绕过磁盘和网络IO的仿真。Xen Windows HVM guest虚拟机可以使用开源GPLPV驱动程序。有关用于Linux HVM guest虚拟机的Xen PV-on-HVM驱动程序的更多信息,请参见XenLinuxPVonHVMdrivers wiki页面。
这来自http://wiki.xenproject.org/wiki/XenOverview
KVM根本不是Xen,它是另一种技术,其中KVM是Linux本机内核模块,而不是Xen这样的附加内核。这使KVM成为更好的设计。这里的缺点是KVM比Xen更新,因此它可能缺少某些功能。
Xen
是在金属(PC /服务器)上运行的虚拟机管理程序,然后托管称为域的虚拟机。
一个Xen PV
域是半虚拟化领域,这意味着操作系统(通常我们在这里谈论Linux版)已被修改,以在Xen下运行,而且也无需实际模拟硬件。在性能方面,这应该是最有效的方法。
一个Xen HVM
域名是硬件仿真领域,这意味着操作系统(可能是Linux的窗口,等等)并没有以任何方式被修改,硬件得到效仿。这非常慢,因此通常在来宾操作系统中为关键硬件(通常是磁盘和网络)安装PV驱动程序,因此来宾整体将运行完全虚拟化,但性能最关键的硬件将运行半虚拟化。最近的linux系统在内核中同时具有用于磁盘和网络的pv驱动程序,并且也存在用于Windows的各种PV驱动程序。近年来,随着HVM的所有发展,对于标准工作负载,HVM和PV之间的性能通常几乎没有差异。
KVM
不是Xen,而是Linux内核中内置的另一个虚拟化平台。从来宾的角度来看,它类似于Xen HVM:来宾可以完全虚拟化运行,并且有特定的驱动程序可以半虚拟化运行某些部分(同样是磁盘,网络)。
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都可以)将正在运行的客户机从一台物理服务器实时迁移到另一台物理服务器,我不知道KVM是否也可以。
Xen和KVM都不能过量使用内存,因此您通常会获得“真正的RAM”,而其他平台(如VMware)可以将部分来宾RAM交换到磁盘。
有区别,但通常适用于特定的安装,而不适用于出售给他人的通用虚拟专用服务器。例如,最新的Xen虚拟机管理程序支持超越型内存,如果来宾对其进行了支持,则可以提高内存利用率和来宾性能(Linux内核> = 3.something)。
如果正确实施所有这些技术,将会为您带来出色的体验,并且从您的角度来看不会有太大的不同。当然,有上千种可能出错的方式,并且与特定的虚拟化解决方案无关(即,来宾可能存储在慢速磁盘上,这会损害性能)。