CentOS 上的虚拟化
1. 概览
现时,CentOS 软件库提供了两大虚拟化术技,它们就是 Xen 及 KVM(我们不会在这里考虑较旧的 qemu 仿真技术)。这页提供这些技术的概述,及一些额外的观念。要理解这些虚拟化术技,你必须知道虚拟化可以遁不同途径达成。以下两个方法与 KVM 及 Xen 有关联:
全虚拟化: 硬件会被仿真到一个地步,让未被更改的客端操作系统可以在虚拟化平台上运作。正常来说,这意味著各种不同硬件都须要被仿真。普遍来说,这些虚拟化平台尝试在原生的中央处理器上尽量执行所有指令(因为这样比虚拟处理器快很多),然后适当地拦截及处理拥有特权的指令。
某些虚拟化平台支持或须要中央处理器的扩展来协助虚拟化。有些较新的 x86 及 x86_64 中央处理器通过 VT-X(Intel)及 AMD-V(AMD)扩展来提供协助。这样做一般称为硬件协助虚拟化。
半虚拟化: 在半虚拟化情况下,客端操作系统需要被移植到监督器上 —— 它位於是硬件与虚拟系统之间。因於这样做一般并不需要仿真所有设备,或利用动态编译来拦截拥有特权的指令,半虚拟化经常以接近原生的速度进行。
在大部份情况下半虚拟化较全虚拟化更为可取,因为它比较快。
2. 谁做什么?
- Xen 支持半虚拟化及硬件协助的全虚拟化。不论半虚拟机器(PVM)或硬件协助的全虚拟机器(HVM)都可以同时运作。Xen 需要一个比所有 Linux 内核更早引导的监督器。这个监督器在管理本地又名特权本地内引导一个 CentOS,意即它可被用来引导额外的虚拟机器,并且拥有权利访问实体的设备。这个管理系统一般名叫 dom0。其它没有特别权限的本地可以通过 dom0 来引导。这些没有特权的本地一般名叫 domU。无论 dom0 或半虚拟的 domU 都必须运行 CentOS 的 Xen 内核,而不是缺省的内核。
KVM 现时只支持硬件协助的全虚拟化(纵使支持半虚拟化的工作正在进行中)。KVM 是一个内核模块,而且可以与缺省(非 Xen)内核一起运作。虚拟机器是借着 qemu-kvm 这个指令,通过 /dev/kvm 而创建的。这个指令是一个被改至适用於 KVM 的 qemu 版本。
3. CentOS 支持
3.1. CentOS 4
由 CentOS 4.5 起,CentOS 4 可以通过 kernel-xen 内核作为一个 domU 系统。
3.2. CentOS 5
CentOS 5 包含了 Xen 监督器,亦可以作为一个 dom0 或 domU 的系统。CentOS 5 也收录了 virt-install 及 virt-manager 等方便的管理工具。
- 由 CentOS 5.4(x86_64 版)开始,KVM 组件已经包含在发行版本内。
Translation of revision 9