22.4. 在 AMD 上创建嵌套虚拟机


按照以下步骤在 AMD 主机中启用和配置嵌套虚拟化。

警告

在大多数环境中,嵌套虚拟化在 RHEL 9 中仅作为 技术预览 提供。

有关支持和不支持的环境的详情,请参阅 对嵌套虚拟化 的支持限制

先决条件

  • 运行 L1 虚拟机的 L0 RHEL 9 主机。
  • 管理程序 CPU 必须支持嵌套虚拟化。若要验证,可在 L0 hypervisor 上使用 cat /proc/cpuinfo 命令。如果命令的输出中包含 svmnpt 标志,则可以创建 L2 虚拟机。这通常是 AMD EPYC 内核及更新版本上的情况。
  • 确定在 L0 主机上启用了嵌套虚拟化:

    # cat /sys/module/kvm_amd/parameters/nested
    • 如果命令返回 1Y,则表示启用了该特性。跳过剩余的先决条件步骤,并继续执行流程部分。
    • 如果命令返回 0N,请使用以下步骤启用该功能。

      1. 在 L0 主机上停止所有运行的虚拟机。
      2. 卸载 kvm_amd 模块:

        # modprobe -r kvm_amd
      3. 激活嵌套功能:

        # modprobe kvm_amd nested=1
      4. 现在启用嵌套功能,但只有在下次重启 L0 主机时才启用。要永久启用它,请在 /etc/modprobe.d/kvm.conf 文件中添加以下内容:

        options kvm_amd nested=1

流程

  1. 为嵌套虚拟化配置 L1 虚拟机。

    1. 打开虚拟机的 XML 配置。以下示例将打开 AMD-L1 虚拟机的配置:

      # virsh edit AMD-L1
    2. 通过编辑 <cpu> 元素将 VM 配置为使用 host-passthrough CPU 模式:

      <cpu mode='host-passthrough'/>

      如果您需要虚拟机使用特定的 CPU 型号,请将虚拟机配置为使用 custom CPU 模式。在 <cpu> 元素中,添加一个 <feature policy='require' name='svm'/> 元素和一个在其中指定了 CPU 型号的 <model> 元素。例如:

      <cpu mode="custom" match="exact" check="none">
        <model fallback="allow">EPYC-IBPB</model>
        <feature policy="require" name="svm"/>
        ...
      </cpu>
  2. 在 L1 虚拟机中创建 L2 虚拟机。要做到这一点,请遵循与 创建 L1 虚拟机时 相同的流程。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.