跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 虚拟化指南 / 简介 / 安装虚拟化组件
适用范围 SUSE Linux Enterprise Server 15 SP4

6 安装虚拟化组件

6.1 简介

要运行可托管一个或多个 Guest 系统 (VM Guest) 的虚拟化服务器(VM 主机服务器),需要在该服务器上安装所需的虚拟化组件。这些组件根据您要使用的虚拟化技术而异。

6.2 安装虚拟化组件

可通过以下方式之一安装运行 VM 主机服务器所需的虚拟化工具:

  • 在 VM 主机服务器上安装 SUSE Linux Enterprise Server 期间选择特定的系统角色

  • 在已安装并正在运行的 SUSE Linux Enterprise Server 上运行 YaST 虚拟化模块。

  • 在已安装并正在运行的 SUSE Linux Enterprise Server 上安装特定的安装软件集。

6.2.1 指定系统角色

可以在 VM 主机服务器上安装 SUSE Linux Enterprise Server 期间安装虚拟化所需的所有工具。在安装期间,您会看到系统角色屏幕。

“系统角色”屏幕
图 6.1︰ “系统角色”屏幕

在此屏幕中,可以选择 KVM 虚拟化主机Xen 虚拟化主机角色。在安装 SUSE Linux Enterprise Server 期间,系统会自动执行相应软件的选择和设置。

提示
提示

这两个虚拟化系统角色都会创建专用的 /var/lib/libvirt 分区,并启用 firewalld 和 Kdump 服务。

6.2.2 运行 YaST 虚拟化模块

您的系统上可能未安装任何虚拟化工具,具体取决于 VM 主机服务器上的 SUSE Linux Enterprise Server 安装范围。使用 YaST 虚拟化模块配置超级管理程序时,系统会自动安装虚拟化工具。

提示
提示

YaST 虚拟化模块包含在 yast2-vm 软件包中。在安装虚拟化组件之前,请校验是否在 VM 主机服务器上安装了该模块。

过程 6.1︰ 安装 KVM 环境

要安装 KVM 虚拟化环境和相关工具,请执行以下操作:

  1. 启动 YaST 并选择虚拟化 › 安装超级管理程序和工具

  2. 选择 KVM 服务器以安装极简的 QEMU 和 KVM 环境。如果您还想要使用基于 libvirt 的管理堆栈,请选择 KVM 工具。单击接受确认。

  3. YaST 会建议自动在 VM 主机服务器上配置网桥。这可以确保 VM Guest 获得正常的网络功能。如果您同意执行此操作,请选择,否则请选择

  4. 安装完成后,您可以开始创建并配置 VM Guest。不需要重引导 VM 主机服务器。

过程 6.2︰ 安装 Xen 环境

要安装 Xen 虚拟化环境,请执行以下操作:

  1. 启动 YaST 并选择虚拟化 › 安装超级管理程序和工具

  2. 选择 Xen 服务器以安装极简的 Xen 环境。如果您还想要使用基于 libvirt 的管理堆栈,请选择 Xen 工具。单击接受确认。

  3. YaST 会建议自动在 VM 主机服务器上配置网桥。这可以确保 VM Guest 获得正常的网络功能。如果您同意执行此操作,请选择,否则请选择

  4. 安装完成后,您需使用 Xen 内核重引导计算机。

    提示
    提示:默认引导内核

    如果一切按预期进行,请使用 YaST 更改默认引导内核,并将支持 Xen 的内核设置为默认内核。有关更改默认内核的详细信息,请参见https://documentation.suse.com/sles/15-SP4/html/SLES-all/cha-grub2.html#sec-grub2-yast2-config

6.2.3 安装特定的安装软件集

SUSE Linux Enterprise Server 软件源中的相关软件包已组织成安装软件集。您可以使用这些软件集在已运行的 SUSE Linux Enterprise Server 上安装特定的虚拟化组件。使用 zypper 安装这些组件:

zypper install -t pattern PATTERN_NAME

要安装 KVM 环境,请考虑使用以下软件集:

kvm_server

安装带有 KVM 和 QEMU 环境的基本 VM 主机服务器。

kvm_tools

安装用于在 KVM 环境中管理和监视 VM Guest 的 libvirt 工具。

要安装 Xen 环境,请考虑使用以下软件集:

xen_server

安装基本的 Xen VM 主机服务器。

xen_tools

安装用于在 Xen 环境中管理和监视 VM Guest 的 libvirt 工具。

6.3 安装 UEFI 支持

注意
注意

我们仅支持在 AMD64/Intel 64 Guest 上使用 UEFI 安全引导。KVM Guest 使用 OVMF 固件来支持 UEFI 安全引导。Xen HVM Guest 也支持从 OVMF 固件引导,但不支持 UEFI 安全引导。

UEFI 支持由 OVMF开放虚拟机固件)提供。要启用 UEFI 引导,请先根据 Guest 的体系结构安装 qemu-ovmf-x86_64qemu-uefi-aarch64 软件包。

系统会自动选择虚拟机使用的固件。这种自动选择是根据上述固件软件包中的 JSON 文件做出的。libvirt QEMU 驱动程序会在装载时分析这些文件,因此知道各种固件的功能。然后,当用户选择固件类型以及任何所需功能(例如,UEFI 安全引导支持)时,libvirt 能够找到符合用户要求的固件。

例如,要指定支持 UEFI 安全引导的 EFI,请使用以下配置:

<os firmware='efi'>
 <loader secure='yes'/>
</os>

qemu-ovmf-x86_64 软件包包含以下重要 UEFI 固件映像。这些映像为各种 VM Guest 提供 UEFI 安全引导功能:

# rpm -ql qemu-ovmf-x86_64
[...]
/usr/share/qemu/ovmf-x86_64-smm-ms-code.bin
/usr/share/qemu/ovmf-x86_64-smm-ms-vars.bin
/usr/share/qemu/ovmf-x86_64-smm-opensuse-code.bin
/usr/share/qemu/ovmf-x86_64-smm-opensuse-vars.bin
/usr/share/qemu/ovmf-x86_64-smm-suse-code.bin
/usr/share/qemu/ovmf-x86_64-smm-suse-vars.bin
[...]
  • 要为 SUSE Linux Enterprise Guest 使用 UEFI 安全引导,请使用 ovmf-x86_64-smm-suse-code.bin 固件。

  • 要为 openSUSE Guest 使用 UEFI 安全引导,请使用 ovmf-x86_64-smm-opensuse-code.bin 固件。

  • 要为 Microsoft Windows Guest 使用 UEFI 安全引导,请使用 ovmf-x86_64-smm-ms-code.bin 固件。

对于 AArch64 体系结构,该软件包名为 qemu-uefi-aarch32

# rpm -ql qemu-uefi-aarch32
[...]
/usr/share/qemu/aavmf-aarch32-code.bin
/usr/share/qemu/aavmf-aarch32-vars.bin
/usr/share/qemu/firmware
/usr/share/qemu/firmware/60-aavmf-aarch32.json
/usr/share/qemu/qemu-uefi-aarch32.bin

*-code.bin 文件是 UEFI 固件文件。*-vars.bin 文件是对应的变量储存映像,可用作每个 VM 的非易失性储存模板。首次创建 VM 时,libvirt 会将指定的 vars 模板复制到每个 VM 路径的 /var/lib/libvirt/qemu/nvram/ 下。名称中不包含 codevars 的文件可用作单个 UEFI 映像。它们没有太大的作用,因为每次经过 VM 关开机周期后,UEFI 变量都不会保存。

*-ms*.bin 文件包含存放在实际硬件上的 UEFI CA 密钥。因此,在 libvirt 中它们已配置为默认设置。同样,*-suse*.bin 文件包含预安装的 SUSE 密钥。还有一组不包含预安装密钥的文件。

有关细节,请参见使用 UEFI 安全引导http://www.linux-kvm.org/downloads/lersek/ovmf-whitepaper-c770f8c.txt

6.4 在 KVM 中启用嵌套虚拟化

重要
重要:技术预览

KVM 的嵌套式虚拟化仍为技术预览版。此版本是出于测试目的提供的,我们不提供相关支持。

嵌套式 Guest 是 KVM Guest 中运行的 KVM Guest。在描述嵌套式 Guest 时,我们会用到以下虚拟化层:

L0

运行 KVM 的裸机主机。

L1

在 L0 上运行的虚拟机。由于它可以在另一个 KVM 上运行,因此称为 Guest 超级管理程序

L2

在 L1 上运行的虚拟机。称为嵌套式 Guest

嵌套式虚拟化具有诸多优势。它可在以下场景中为您提供便利:

  • 在云环境中直接使用所选的超级管理程序管理您自己的虚拟机。

  • 将超级管理程序及其 Guest 虚拟机作为单个实体进行实时迁移。

    注意
    注意

    不支持实时迁移嵌套的 VM Guest。

  • 使用嵌套式虚拟化进行软件开发和测试。

要暂时启用嵌套功能,请去除该模块,然后使用 nested KVM 模块参数重新装载该模块:

  • 对于 Intel CPU,请运行:

    > sudo modprobe -r kvm_intel && modprobe kvm_intel nested=1
  • 对于 AMD CPU,请运行:

    > sudo modprobe -r kvm_amd && modprobe kvm_amd nested=1

要永久启用嵌套功能,请根据您的 CPU,在 /etc/modprobe.d/kvm_*.conf 文件中启用 nested KVM 模块参数:

  • 对于 Intel CPU,请编辑 /etc/modprobe.d/kvm_intel.conf 并添加下面一行:

    options kvm_intel nested=1
  • 对于 AMD CPU,请编辑 /etc/modprobe.d/kvm_amd.conf 并添加下面一行:

    options kvm_amd nested=1

如果 L0 主机能够嵌套,则您可以通过以下方式之一启动 L1 Guest:

  • 使用 -cpu host QEMU 命令行选项。

  • vmx(对于 Intel CPU)或 svm(对于 AMD CPU)CPU 功能添加到 -cpu QEMU 命令行选项,用于启用虚拟 CPU 的虚拟化。

6.4.1 VMware ESX 用作 Guest 超级管理程序

如果您在 KVM 裸机超级管理程序之上使用 VMware ESX 作为 Guest 超级管理程序,网络通讯可能会变得不稳定。嵌套的 KVM Guest 与 KVM 裸机超级管理程序或外部网络之间特别容易发生这种问题。嵌套 KVM Guest 的以下默认 CPU 配置会导致该问题:

<cpu mode='host-model' check='partial'/>

要解决问题,请如下所示修改 CPU 配置:

[...]
<cpu mode='host-passthrough' check='none'>
 <cache mode='passthrough'/>
</cpu>
[...]