使用 Xen 和 KVM 虚拟化

您可以直接在 SUSE Manager 中管理 Xen 和 KVM 虚拟化客户端。

开始前,您需要在 SUSE Manager 服务器上设置虚拟主机。然后,您便可为将来的虚拟主机和虚拟 Guest 设置使用 AutoYaST 或 Kickstart 进行的自动安装。

本节还介绍了有关在安装虚拟 Guest 后对其进行管理的信息。

1. 主机设置

在 VM 主机上设置 Xen 或 KVM 的方式取决于您要在主机的关联 Guest 上使用的操作系统。

对于 SUSE 操作系统,请参见 https://documentation.suse.com/sles/15-SP4/html/SLES-all/book-virtualization.html 上的《SLES Virtualization Guide》(SLES 虚拟化指南)。

对于 Red Hat Enterprise Linux 操作系统,请参见适用于您所用版本的 Red Hat 文档。

借助虚拟化主机公式,您可以初始化主机。有关详细信息,请参见 初始化虚拟化主机

1.1. 背景信息

SUSE Manager 使用 libvirt 安装和管理 Guest。您的主机上必须安装 libvirt-daemon 软件包。大多数情况下,默认设置足以满足要求,您无需进行调整。不过,如果您要在 Guest 上以非 root 用户身份访问 VNC 控制台,则需要对配置进行一些更改。有关如何设置此配置的详细信息,请参考适用于您的操作系统的相关文档。

SUSE Manager 服务器上需要有引导脚本。引导脚本必须包含主机的激活密钥。我们建议包含您的 GPG 密钥以增强安全性。有关创建引导脚本的详细信息,请参见 使用引导脚本注册客户端

准备好引导脚本后,在主机上执行脚本以在 SUSE Manager 服务器中注册该主机。有关注册客户端的详细信息,请参见 客户端注册

1.2. 初始化虚拟化主机

使用虚拟化主机公式初始化主机:

过程:初始化虚拟化主机
  1. 在 SUSE Manager Web UI 中,导航到主机的系统细节页面,然后单击公式选项卡。

  2. 选择虚拟化主机公式,然后单击 保存

  3. 单击虚拟化主机子选项卡。

  4. 选中相应设置,然后单击 保存公式

  5. 应用 Highstate,以使更改生效。

  6. 重启动 salt-minion 服务以激活新配置:

    systemctl restart salt-minion

对于传统客户端,VM 主机默认使用 rhnsd 服务检查有无安排的操作。服务每四小时执行一次检查,以便平衡存在大量客户端的环境中的负载。这可能会导致操作执行的时间最长延迟四小时。您管理 VM Guest 时,这么长时间的延迟并不总是适宜,对于重引导 Guest 这样的操作而言更是如此。要解决此问题,您可以禁用 rhnsd 服务,然后启用 osad 服务。osad 服务使用 jabber 协议接收命令并会即时执行命令。

要禁用 rhnsd 服务,请启用 osad 守护程序,以 root 用户身份运行以下命令:

service rhnsd stop
service rhnsd disable
service osad enable
service osad start

2. 自动安装 VM Guest

您可以使用 AutoYaST 或 Kickstart 自动安装并注册 Xen 和 KVM Guest。

您需要具有要将 Guest 注册到的 VM 主机以及每个 Guest 的激活密钥。

激活密钥必须具有置备虚拟化平台权利。激活密钥还必须具有访问 mgr-virtualization-hostmgr-osad 软件包的权限。有关创建激活密钥的详细信息,请参见 激活密钥

如果您希望在安装后将 Guest 自动注册到 SUSE Manager 中,则需要创建引导脚本。有关创建引导脚本的详细信息,请参见 使用引导脚本注册客户端

仅当 VM Guest 配置为传统客户端时,才能自动安装 Guest。Salt 客户端可以通过模板磁盘映像创建,但不能使用 AutoYaST 或 Kickstart 创建。

2.1. 创建可自动安装的发行套件

您需要在 VM 主机上创建可自动安装的发行套件,才能通过 SUSE Manager 自动安装客户端。可以在挂载的本地或远程目录提供发行套件,也可以在以循环方式挂载的 ISO 映像中提供。

根据您在 Guest 上使用的是 SLES 还是 Red Hat Enterprise Linux 操作系统,可自动安装发行套件的配置有所不同。Red Hat Enterprise Linux 安装的软件包从关联的基础通道提取。用于安装 SUSE 系统的软件包从可自动安装的发行套件中提取。因此,对于 SLES 系统,可自动安装的发行套件必须是完整的安装源。

Table 1. 可自动安装的发行套件的路径
操作系统类型 内核位置 initrd 位置

Red Hat Enterprise Linux

images/pxeboot/vmlinuz

images/pxeboot/initrd.img

SLES

boot/<arch>/loader/initrd

boot/<arch>/loader/linux

在所有情况下,均需确保基础通道与可自动安装的发行套件匹配。

开始前,请确保 VM 主机可以使用您的安装媒体。该媒体可以位于网络资源、本地目录或以循环方式挂载的 ISO 映像中。此外,还需确保所有文件和目录都是全局可读的。

过程:创建可自动安装的发行套件
  1. 在 SUSE Manager Web UI 中,导航到系统  自动安装  发行套件,然后单击 创建发行套件

  2. 创建可自动安装的发行套件部分,使用以下参数:

    • 发行套件标签部分,键入发行套件的唯一名称。 请仅使用字母、数字、连字符 (-)、点 (.) 和下划线 (_),并确保名称包含四个以上字符。

    • 树路径字段中,键入安装源的绝对路径。

    • 基础通道字段中,选择与安装源匹配的通道。 此通道用作非 SUSE 安装的软件包源。

    • 安装程序代系字段中,选择与安装源匹配的操作系统版本。

    • 内核选项字段中,键入在安装期间引导时要传递给内核的任何选项。 默认会添加 install= 参数和 self_update=0 pt.options=self_update 参数。

    • 后内核选项部分,键入在首次引导安装的系统时要传递给内核的任何选项。

  3. 单击 创建可自动安装的发行套件 保存设置。

创建可自动安装的发行套件后,您可以导航到系统  自动安装  发行套件,然后选择要编辑的发行套件进行编辑。

2.2. 创建并上载自动安装配置文件

自动安装配置文件包含安装系统所需的所有安装和配置数据, 还包含安装完成后需要执行的脚本。

在 SUSE Manager Web UI 中,导航到系统  自动安装  配置文件,单击 创建新 Kickstart 配置文件,然后按照提示操作即可创建 Kickstart 配置文件。

您也可以手动创建 AutoYaST 或 Kickstart 自动安装配置文件。SUSE 提供了 AutoYaST 安装文件模板,您可以基于它们创建自己的自定义文件。您可以在 https://github.com/SUSE/manager-build-profiles 中找到这些模板。

如果您要使用 AutoYaST 安装 SLES,则还需要包含以下代码段:

<products config:type="list">
  <listentry>SLES</listentry>
</products>
过程:上载自动安装配置文件
  1. 在 SUSE Manager Web UI 中,导航到系统  自动安装  配置文件,然后单击 上载 Kickstart/Autoyast 文件

  2. 创建自动安装配置文件部分,使用以下参数:

    • 标签字段中,为配置文件键入一个唯一的名称。 请仅使用字母、数字、连字符 (-)、点 (.) 和下划线 (_),并确保名称包含六个以上字符。

    • 自动安装树字段中,选择您之前创建的可自动安装的发行套件。

    • 虚拟化类型字段中,选择相关的 Guest 类型(例如 KVM 虚拟化 Guest)。 请勿在此处选择 Xen 虚拟化主机

    • 可选:如果您要手动创建自动安装配置文件,可以直接在文件内容字段中键入相应内容。 如果您已创建文件,请将文件内容字段留空。

    • 要上载的文件字段中,单击 选择文件,然后使用系统对话框选择要上载的文件。 如果文件成功上载,要上载的文件字段中会显示相应文件名。

    • 文件内容字段中会显示上载的文件的内容。 如果您需要编辑其内容,可以直接编辑。

  3. 单击 创建 以保存更改并存储配置文件。

创建自动安装配置文件后,您可以导航到系统  自动安装  配置文件,然后选择要编辑的配置文件进行编辑。进行所需更改,然后单击 创建 保存您的设置。

如果您更改了现有 Kickstart 配置文件的虚拟化类型,则可能也会修改引导加载程序和分区选项,并可能重写任何自定义设置。请在更改前仔细查看分区选项卡以校验这些设置。

2.3. 自动注册 Guest

自动安装 VM Guest 后,它们并不会注册到 SUSE Manager 中。如果您希望 Guest 在安装后立即自动注册,您可以在自动安装配置文件中添加一段用于调用引导脚本并注册 Guest 的内容。

此部分提供向现有 AutoYaST 配置文件添加引导脚本的指令。

有关创建引导脚本的详细信息,请参见 使用引导脚本注册客户端。有关如何针对 Kickstart 执行此操作的说明,请参见适用于您的安装的 Red Hat 文档。

过程:在 AutoYaST 配置文件中添加引导脚本
  1. 确保引导脚本包含要注册的 VM Guest 的激活密钥,并且脚本位于主机上的 /srv/www/htdocs/pub/bootstrap_vm_guests.sh 中。

  2. 在 SUSE Manager Web UI 中,导航到系统  自动安装  配置文件,然后选择要与此脚本关联的 AutoYaST 配置文件。

  3. 文件内容字段中,于文件末尾的 </profile> 结束标记前面添加以下代码段。 务必将代码段中的示例 IP 地址 192.168.1.1 替换为 SUSE Manager 服务器的正确 IP 地址:

    <scripts>
      <init-scripts config:type="list">
        <script>
          <interpreter>shell</interpreter>
          <location>
            http://192.168.1.1/pub/bootstrap/bootstrap_vm_guests.sh
          </location>
        </script>
      </init-scripts>
    </scripts>
  4. 单击 更新 保存您的更改。

如果 AutoYaST 配置文件已包含 <scripts> 部分,请勿再添加, 而是将引导代码段放在现有 <scripts> 部分内。

2.4. 自动安装 VM Guest

一切都设置好后,您就可以开始自动安装 VM Guest 了。

每个 VM 主机一次只能安装一个 Guest。如果您要安排多个自动安装,请务必安排合理的时间,确保下一个安装不会在现有安装完成前开始。如果某个 Guest 安装在另一个安装仍在进行时开始,则正在进行的安装可能会被取消。

  1. 在 SUSE Manager Web UI 中,导航到系统  概览,然后选择要在其中安装 Guest 的 VM 主机。

  2. 依次导航到虚拟化选项卡和置备子选项卡。

  3. 选择要使用的自动安装配置文件,并为 Guest 指定唯一的名称。

  4. 选择代理(如果适用)并输入日程安排。

  5. 要更改 Guest 的硬件配置文件和配置选项,请单击 高级选项

  6. 单击 安排自动安装并完成 以完成设置。

3. 管理 VM Guest

您可以使用 SUSE Manager Web UI 来管理 VM Guest,包括执行关机、重启动以及调整 CPU 和内存分配的操作。

要执行这些操作,您需要将 Xen 或 KVM VM 主机注册到 SUSE Manager 服务器中,并在主机上运行 libvirtd 服务。对于传统客户端,您还需要在 SUSE Manager 服务器上安装 mgr-cfg-actions 软件包。

在 SUSE Manager Web UI 中,导航到系统  系统列表,然后单击要管理的 Guest 的 VM 主机。导航到虚拟化选项卡以查看所有注册到此主机中的 Guest,并访问管理功能。

有关使用 Web UI 管理 VM Guest 的详细信息,请参见 虚拟化