22.3. 在 Intel 上创建嵌套虚拟机
按照以下步骤在 Intel 主机中启用和配置嵌套虚拟化。
在大多数环境中,嵌套虚拟化仅在 RHEL 10 中作为技术预览提供。
有关支持的和不支持环境的详细描述,请参阅嵌套虚拟化的支持限制。
先决条件
- 运行 L1 虚拟机(VM)的 L0 RHEL 10 主机。
-
管理程序 CPU 必须支持嵌套虚拟化。若要验证,可在 L0 hypervisor 上使用
cat /proc/cpuinfo命令。如果命令的输出中包含vmx和ept标志,则可以创建 L2 虚拟机。这通常是 Intel Xeon v3 内核及更新版本上的情况。 确定在 L0 主机上启用了嵌套虚拟化:
cat /sys/module/kvm_intel/parameters/nested
# cat /sys/module/kvm_intel/parameters/nestedCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果命令返回 1 或 Y,则表示启用了该特性。跳过剩余的先决条件步骤,并继续执行流程部分。
如果该命令返回 0 或者 N,而您的系统支持嵌套虚拟化,则使用以下步骤启用该功能。
卸载
kvm_intel模块:modprobe -r kvm_intel
# modprobe -r kvm_intelCopy to Clipboard Copied! Toggle word wrap Toggle overflow 激活嵌套功能:
modprobe kvm_intel nested=1
# modprobe kvm_intel nested=1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在启用嵌套功能,但只有在下次重启 L0 主机时才启用。要永久启用它,请在
/etc/modprobe.d/kvm.conf文件中添加以下行:options kvm_intel nested=1
options kvm_intel nested=1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
为嵌套虚拟化配置 L1 虚拟机。
打开虚拟机的 XML 配置。以下示例打开 Intel-L1 虚拟机的配置:
virsh edit Intel-L1
# virsh edit Intel-L1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过编辑
<cpu>元素将 VM 配置为使用host-passthroughCPU 模式:<cpu mode='host-passthrough'/>
<cpu mode='host-passthrough'/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您需要虚拟机使用特定的 CPU 型号,请将虚拟机配置为使用
customCPU 模式。在<cpu>元素中,添加一个<feature policy='require' name='vmx'/>元素和一个在其中指定了 CPU 型号的<model>元素。例如:<cpu mode ='custom' match ='exact' check='partial'> <model fallback='allow'>Haswell-noTSX</model> <feature policy='require' name='vmx'/> ... </cpu>
<cpu mode ='custom' match ='exact' check='partial'> <model fallback='allow'>Haswell-noTSX</model> <feature policy='require' name='vmx'/> ... </cpu>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 在 L1 虚拟机中创建 L2 虚拟机。要做到这一点,请遵循 创建 L1 虚拟机时 的步骤相同。