您可以以以下方式安装运行 VM 主机服务器所需的虚拟化工具
在 VM 主机服务器上安装 openSUSE Leap 时选择特定的系统角色
在已经安装并运行的 openSUSE Leap 上运行 YaST 虚拟化 模块。
在已经安装并运行的 openSUSE Leap 上安装特定的安装模式。
您可以在 VM 主机服务器上安装 openSUSE Leap 时,安装所有必要的虚拟化工具。在安装过程中,您将看到 屏幕。
在这里,您可以选择 或 角色。在 openSUSE Leap 安装过程中,将自动执行适当的软件选择和设置。
两种虚拟化系统角色都会创建一个专用的 /var/lib/libvirt 分区,并启用 firewalld 和 Kdump 服务。
根据 VM 主机服务器上 openSUSE Leap 安装的范围,您的系统可能未安装任何虚拟化工具。当使用 YaST 虚拟化 模块配置超visor 时,它们会自动安装。
YaST 虚拟化 模块包含在 yast2-vm 包中。在安装虚拟化组件之前,请验证它是否已安装在 VM 主机服务器上。
要安装 KVM 虚拟化环境和相关工具,请按以下步骤操作
启动 YaST 并选择 › 。
选择 以进行 QEMU 和 KVM 环境的最小安装。如果希望使用基于 libvirt 的管理堆栈,请选择 。使用 确认。
YaST 提供自动在 VM 主机服务器上配置网络桥接。它确保 VM 客户机的适当网络功能。通过选择 同意这样做,否则选择 。
设置完成后,您可以开始创建和配置 VM 客户机。无需重新启动 VM 主机服务器。
要安装 Xen 虚拟化环境,请按以下步骤操作
启动 YaST 并选择 › 。
选择 以进行 Xen 环境的最小安装。选择 以使用基于 libvirt 的管理堆栈。使用 确认。
YaST 提供自动在 VM 主机服务器上配置网络桥接。它确保 VM 客户机的适当网络功能。通过选择 同意这样做,否则选择 。
设置完成后,您需要使用 Xen 内核 重新启动机器。
如果一切正常,请使用 YaST 将默认启动内核更改为启用 Xen 的内核。有关更改默认内核的更多信息,请参阅 “参考”手册,第 12 章“启动加载程序 GRUB 2”,第 12.3 节“使用 YaST 配置启动加载程序”。
相关的软件包从 openSUSE Leap 软件仓库组织成 安装模式。您可以使用这些模式在已经运行的 openSUSE Leap 上安装特定的虚拟化组件。使用 zypper 安装它们
zypper install -t pattern PATTERN_NAME
要安装 KVM 环境,请考虑以下模式
kvm_server安装带有 KVM 和 QEMU 环境的基本 VM 主机服务器。
kvm_tools安装 libvirt 工具,用于管理和监控 KVM 环境中的 VM 客户机。
要安装 Xen 环境,请考虑以下模式
xen_server安装基本的 Xen VM 主机服务器。
xen_tools安装 libvirt 工具,用于管理和监控 Xen 环境中的 VM 客户机。
我们仅支持 AMD64/Intel 64 客户机上的 UEFI 安全启动。KVM 客户机通过使用 OVMF 固件支持 UEFI 安全启动。Xen HVM 客户机也支持从 OVMF 固件启动,但不支持 UEFI 安全启动。
UEFI 支持由 OVMF (开放虚拟化机器固件) 提供。要启用 UEFI 启动,首先安装 qemu-ovmf-x86_64 或 qemu-uefi-aarch64 包,具体取决于客户机的架构。
虚拟机使用的固件是自动选择的。自动选择基于上述固件包中的 JSON 文件。 libvirt QEMU 驱动程序在加载期间解析这些文件,以了解多种固件类型的能力。然后,当用户选择固件类型和任何所需的功能(例如,对 UEFI 安全启动的支持)时,libvirt 可以找到满足用户要求的固件文件。
例如,要指定带有 UEFI 安全启动的 EFI,请使用以下配置
<os firmware='efi'> <loader secure='yes'/> </os>
qemu-ovmf-x86_64 包包含以下重要的 UEFI 固件镜像。它们为 VM 客户机提供 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 客户机使用 UEFI 安全启动,请使用 ovmf-x86_64-smm-suse-code.bin 固件。
要为 openSUSE 客户机使用 UEFI 安全启动,请使用 ovmf-x86_64-smm-opensuse-code.bin 固件。
要为 Microsoft Windows 客户机使用 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 的非易失性存储模板。 libvirt 在首次创建 VM 时将指定的 vars 模板复制到 /var/lib/libvirt/qemu/nvram/ 下的 VM 特定路径。不带 code 或 vars 名称的文件可以用作单个 UEFI 镜像。它们不太有用,因为 UEFI 变量不会在 VM 的电源周期之间持续存在。
*-ms*.bin 文件包含在真实硬件上找到的 UEFI CA 密钥。因此,它们被配置为 libvirt 中的默认值。同样,*-suse*.bin 文件包含预安装的 SUSE 密钥。还有一组没有预安装密钥的文件。
有关详细信息,请参阅 使用 UEFI 安全启动 和 http://www.linux-kvm.org/downloads/lersek/ovmf-whitepaper-c770f8c.txt。
KVM 的嵌套虚拟化仍然是技术预览。它仅用于测试目的,不受支持。
嵌套客户机是在 KVM 客户机中运行的 KVM 客户机。在描述嵌套客户机时,我们使用以下虚拟化层
运行 KVM 的裸机主机。
在 L0 上运行的虚拟机。由于它可以运行另一个 KVM,因此称为 客户机超visor。
在 L1 上运行的虚拟机。它称为 嵌套客户机。
嵌套虚拟化有很多优势。您可以在以下场景中受益于它
在云环境中直接使用您选择的超visor 管理您自己的虚拟机。
将超visor 及其客户虚拟机作为一个实体进行实时迁移。
不支持嵌套 VM 客户机的实时迁移。
将其用于软件开发和测试。
要临时启用嵌套,请删除模块并使用 nested KVM 模块参数重新加载它
对于 Intel CPU,请运行
>sudomodprobe -r kvm_intel && modprobe kvm_intel nested=1
对于 AMD CPU,请运行
>sudomodprobe -r kvm_amd && modprobe kvm_amd nested=1
要永久启用嵌套,请在 /etc/modprobe.d/kvm_*.conf 文件中启用 nested KVM 模块参数,具体取决于您的 CPU
对于 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 客户机
使用 -cpu host QEMU 命令行选项。
将 vmx(对于 Intel CPU)或 svm(对于 AMD CPU)CPU 功能添加到 -cpu QEMU 命令行选项,这会为虚拟 CPU 启用虚拟化。