第 17 章 使用 Xen 来实现虚拟化

目录

17.1. Xen 安装
17.2. 域安装
17.3. 使用 xm 启动和控制 Xen 域
17.4. 查错
17.5. 参考信息

摘要

Xen 使得可以在一台物理机器上运行多个 Linux 系统。为不同系统提供的硬件都是虚拟化的。本章概述此技术的可能性和限制。本介绍包含有关安装、配置和运行 Xen 的所有章节。

虚拟机通常需要仿真系统所需的硬件。缺点在于仿真的硬件的速度要比真实硬件的速度慢很多。Xen 有另一种方法。它会将仿真的部分限制为尽量的少。为了达到此目的,Xen 使用 paravirtualization。该技术能同样显示虚拟机,但是又与底层硬件不同。因此,会在内核级别上调整主操作系统和副操作系统。用户空间保持不变。Xen 使用系统管理程序 (hypervisor) 和控制副程序(也称为 Domain-0)来管理硬件。这些程序提供了全部所需的虚拟化块和网络设备。副系统使用这些虚拟块和网络设备来运行系统并连接到其它副系统或本地网络。当以可以使用虚拟块和网络设备的方式配置运行 Xen 的多台物理机时,也可以在运行时将副系统从一个硬件移动到另一个硬件。起初,Xen 被开发为在一台计算机上最多运行 100 个副系统,但是该数字很大程度上取决于运行副系统的系统要求,特别是内存消耗。

为了限制 CPU 使用率,Xen 系统管理程序提供三个不同的日程安排器。也可以在运行副系统的同时更改日程安排器,这使得能够更改运行的副系统的优先级。在较高的级别上,也可将迁移副系统用来调整可用的 CPU 功率。

Xen 虚拟化系统对于受支持硬件也有缺陷。一些非开放式源驱动程序(如 Nvidia 或 ATI 中的源驱动程序)不能按所希望的那样运行。在这些情况下,您必须使用开放式源驱动程序(如果可用),即使这些开放式源驱动程序不支持芯片的所有功能。使用 Xen 时也不支持一些 WLAN 芯片和 Cardbus 网桥。在版本 2 中,Xen 不支持 PAE(物理地址扩展),这意味着它不支持大于 4 GB 的内存。不支持 ACPI。基于 ACPI 的电源管理和其它方式不能工作。Xen 的另一个缺陷是当前不能只引导一个块设备。要引导,通常需要 Domain-0 中提供的正确内核和 initrd。

图 17.1. Xen 概述

Xen 概述

17.1. Xen 安装

Xen 的安装过程包括设置 Domain-0 域和安装 Xen 客户机。首先,请确保安装了所需的包。这些包是 pythonbridge-utilsxenxen-toolsxen-tools-ioemu 以及 kernel-xen 包。安装时选择 Xen 时,Xen 会添加到 GRUB 配置中。对于其它情况,请在 boot/grub/menu.lst 中创建一项。此项应该与以下内容相似:

title Xen3
    kernel (hd0,0)/boot/xen.gz
    module (hd0,0)/boot/vmlinuz-xen <parameters>
    module (hd0,0)/boot/initrd-xen

将 (hd0,0) 替换为存放 /boot 目录的分区。另请参见第 9 章 引导装载程序。使用通常用于引导 Linux 内核的参数来替换 <parameters>。然后重引导至 Xen 方式。这将 Xen 系统管理程序和稍经更改的 Linux 内核引导为运行大多数硬件的 Domain-0。除了已经提到的异常之外,系统应该能正常运行。