37.2. 域安装

副域的安装和设置包括若干步骤。在以下部分中,会安装第一个副域并完成创建第一个网络连接的所有不同任务。

要安装副系统,您必须在块设备或文件系统映像中提供根文件系统,这需要进行设置。要在以后访问此系统,请使用仿真控制台或为此副系统设置网络连接。YaST 支持将 SUSE Linux 安装到目录中。此类副系统的硬件要求与一般 Linux 安装类似。

域可以共享从所有域以只读方式装入的文件系统,如 /usr/opt。请不要共享以读写方式装入的文件系统。为了在多个副域之间共享可写数据,请使用 NFS 或者其它联网或集群文件系统。

[Warning]启动副域

当您启动副域时,请确保安装程序或控制 domain-0 不再装入副域的文件系统。

要执行的第一个步骤是创建安装副域的 Linux 的文件系统映像。

  1. 要在的目录 /var/tmp/ 中创建 4 GB 的名为 guest1 的空映像,请使用以下命令:

    dd if=/dev/zero of=/var/tmp/guest1 seek=1M bs=4096 count=1
  2. 该映像只是一个大的空文件,里面没有任何信息。要能够向其中写入文件,需要一个文件系统:

    mkreiserfs -f /var/tmp/guest1

    命令 mkreiserfs 会通知您这不是块专用的设备并要求您确认。输入 Y,然后按 Enter 继续。

  3. 实际安装是在目录中进行的。因此必须将文件系统映像 /var/tmp/guest1 装入到目录中:

    mkdir -p /var/tmp/dirinstall
    mount -o loop /var/tmp/guest1 /var/tmp/dirinstall
    
[Important]重要

当您完成安装时,请再卸装此文件系统映像。YaST 还会在安装时装入 /proc 文件系统,该文件系统也必须卸装:

umount /var/tmp/dirinstall/proc
umount /var/tmp/dirinstall

37.2.1. 使用 YaST 来安装副域

要使用 YaST 来安装副域,您需要预先准备好文件系统映像以用于新的副域。启动 YaST 并选择软件+安装到 XEN 的目录中

YaST 的目录安装模块有多个选项,应根据您的需要来设置这些选项:

  • 目标目录:/var/tmp/dirinstall

    将此选项设置为要使用的文件系统映像的装入点。通常接受默认值。

  • 在首次引导时运行 YaST 和 SUSEconfig:是

    将此选项设置为。当首次启动副域时,将会要求您输入根口令和第一个用户。

  • 创建映像:否

    此处创建的映像只是安装目录的 tar 档案。在这里,此操作不是非常有用。

  • 软件

    选择要使用的安装类型。建议全部选择默认值。

单击下一步开始安装。根据包的数量,安装可能会持续一段时间。安装完成后,应移去 tls 库:

mv /var/tmp/dirinstall/lib/tls /var/tmp/dirinstall/lib/tls.disabled 

Xen 使用 domain-0 中安装的一个内核来启动副域。要能够在副域中使用联网,此内核的模块必须也可用于该副域。

cp -a /lib/modules/$(rpm -qf --qf %{VERSION}-%{RELEASE}-xen \
 /boot/vmlinuz-xen) /var/tmp/dirinstall/lib/modules

要防止文件系统错误,必须在安装后卸装文件系统映像:

umount /var/tmp/dirinstall/proc 
umount /var/tmp/dirinstall/ 

一方面可以为 domain-0 构建专用内核,另一方面可以为副系统构建专用内核。主要的差异在于副系统中不需要的硬件驱动程序。由于这些驱动程序是模块化的并且在副系统中不需要,因此 SUSE 为两个任务只提供一个内核。

37.2.2. 设置应急系统以作为副域运行

使系统快速运行的最简单的方法是复用现有的根文件系统,如 SUSE Linux 的应急系统。主要是交换虚拟块的内核映像和设备驱动程序以及此映像中的网络设备。要使此任务更简单,可使用 /usr/share/doc/packages/xen/ 中的脚本 mk-xen-rescue-img.sh

使用构建根文件系统的应急方法的缺点在于不会产生 RPM 数据库,因此您将无法使用 RPM 来轻松添加包。另一方面,此操作产生的结果相对较小,但却具有进行联网所需的大部分内容。

要运行脚本 mk-xen-rescue-img.sh,您至少需要带有应急映像的目录和生成的映像的目标位置。默认情况下,目录位于引导 DVD 的目录 /boot 中。

cd /usr/share/doc/packages/xen
./mk-xen-rescue-img.sh /media/dvd/boot /usr/local/xen 64 

脚本的首个参数是应急映像的目录。第二个参数是映像文件的目标位置。可选参数是新生成的副域的磁盘空间要求和要使用的内核版本。

然后脚本会将映像复制到新位置中,替换内核和一些内核模块,并禁用系统中的 tls 目录。最后一步,它在 /etc/xen/ 中生成新映像的配置文件。