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

目录

37.1. Xen 安装
37.2. 域安装
37.3. 配置 Xen 副域
37.4. 启动和控制 Xen 域
37.5. 参考信息

摘要

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

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

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

Xen 虚拟化系统也有一些关于受支持硬件的缺陷。

图 37.1. Xen 概述

Xen 概述

37.1. Xen 安装

Xen 的安装过程包括设置 domain-0 域和安装 Xen 客户程序。首先,请确保安装了所需的包。这些包包括 pythonbridge-utilsxenkernel-xen。使用 SUSE 包时,Xen 会被添加到 GRUB 配置中。对于其它情况,请在 boot/grub/menu.lst 中建立项。此项应该与以下内容相似:

title Xen2
    kernel (hd0,0)/boot/xen.gz dom0_mem=458752
    module (hd0,0)/boot/vmlinuz-xen <parameters>
    module (hd0,0)/boot/initrd-xen

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