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

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

Xen PV我知道 Xen 通常比 OpenVZ 更好,因为提供商不能在 Xen 中超卖。但是,Xen KVM和之间有什么区别HVM(我正在研究这个提供商的眼镜? 哪一个更适合于什么目的以及为什么?


编辑:

对于仅托管网站的最终用户来说,哪个更好?从效率或其他角度来看,哪个比另一个有优势吗?

答案1

Xen 支持的虚拟化类型

Xen 支持运行两种不同类型的客户机。Xen 客户机通常被称为 domU(非特权域)。两种客户机类型(PV、HVM)可在单个 Xen 系统上同时使用。

Xen 半虚拟化 (PV)

半虚拟化是一种高效且轻量级的虚拟化技术,由 Xen 引入,后来也被其他虚拟化解决方案采用。半虚拟化不需要主机 CPU 的虚拟化扩展。但是,半虚拟化客户机需要移植到 Xen 上本地运行的特殊内核,因此客户机可以感知虚拟机管理程序,并且可以高效运行,而无需模拟或虚拟模拟硬件。Xen PV 客户机内核适用于 Linux、NetBSD、FreeBSD、OpenSolaris 和 Novell Netware 操作系统。

PV 客户机没有任何类型的虚拟模拟硬件,但仍然可以使用客户机 pvfb(半虚拟帧缓冲区)来使用图形控制台。可以使用 VNC 客户端或 Redhat 的 virt-viewer 查看 PV 客户机图形控制台。dom0 中为每个客户的 PVFB 提供了一个单独的 VNC 服务器。

上游 kernel.org Linux 内核自 Linux 2.6.24 起包含基于 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 硬件,包括 BIOS、IDE 磁盘控制器、VGA 图形适配器、USB 控制器、网络适配器等,供 HVM 客户机使用。CPU 虚拟化扩展用于提高模拟性能。完全虚拟化的客户机不需要特殊内核,因此例如 Windows 操作系统可用作 Xen HVM 客户机。由于需要模拟,完全虚拟化的客户机通常比半虚拟化的客户机慢。

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

这是来自http://wiki.xenproject.org/wiki/XenOverview

KVM 根本不是 Xen,它是另一种技术,其中 KVM 是 Linux 原生内核模块,而不是像 Xen 那样的附加内核。这使得 KVM 的设计更好。缺点是 KVM 比 Xen 更新,因此可能缺少一些功能。

答案2

Xen是一个在金属(个人电脑/服务器)上运行的虚拟机管理程序,然后托管称为域的虚拟机。

域名Xen PV半虚拟化域,这意味着操作系统(通常我们在这里谈论的是 Linux)已被修改为在 Xen 下运行,并且不需要实际模拟硬件。这应该从性能角度而言,这是最有效的方法。

域名Xen HVM硬件模拟域,这意味着操作系统(可以是 Linux、Windows 等)没有经过任何修改,并且硬件被模拟。这相当慢,因此通常你安装光伏驱动器在客户操作系统中,关键硬件(通常是磁盘和网络)将完全虚拟化,因此整个客户机将完全虚拟化运行,但性能最关键的硬件将半虚拟化运行。最近的 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),则可以提高内存利用率和客户机性能。

如果正确实施,所有这些技术都将为您带来极佳的体验,并且从您的角度来看不会产生太大影响。当然,出错的方式有千种,这与特定的虚拟化解决方案无关(例如,您的客户机可能存储在速度较慢的磁盘上,这会损害您的性能)。

相关内容