22.4. AMD でのネスト化された仮想マシンの作成

以下の手順に従って、AMD ホストでネストされた仮想化を有効にして設定します。

警告

ほとんどの環境では、ネストされた仮想化は RHEL 9 の テクノロジープレビュー としてのみ利用できます。

サポート対象の環境とサポート対象外の環境の詳細は、ネストされた仮想化に対するサポート制限 を参照してください。

前提条件

  • L1 仮想マシンを実行している L0 RHEL 9 ホスト。
  • ハイパーバイザー CPU でネストされた仮想化をサポートしている。L0 ハイパーバイザーで cat /proc/cpuinfo コマンドを使用して、サポートがあるか確認します。コマンドの出力に svm および npt フラグが含まれる場合は、L2 仮想マシンを作成できます。通常、これは AMD EPYC コア以降が対象です。
  • L0 ホストでネストされた仮想化が有効になっていることを確認します。

    # cat /sys/module/kvm_amd/parameters/nested
    • コマンドが 1 または Y を返すと、この機能は有効になっています。残りの前提条件の手順を省略し、手順セクションに進みます。
    • コマンドで 0 または N が返された場合は、以下の手順に従ってこの機能を有効にします。

      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> 要素を編集して、host-passthrough CPU モードを使用するように仮想マシンを設定します。

      <cpu mode='host-passthrough'/>

      仮想マシンで特定の CPU モデルを使用する必要がある場合は、custom CPU モードを使用するように仮想マシンを設定します。<cpu> 要素内に、<feature policy='require' name='svm'/> 要素と <model> 要素を追加し、内部で CPU モデルを指定します。以下に例を示します。

      <cpu mode="custom" match="exact" check="none">
        <model fallback="allow">EPYC-IBPB</model>
        <feature policy="require" name="svm"/>
        ...
      </cpu>
  2. L1 仮想マシン内に L2 仮想マシンを作成します。作成するには、L1 仮想マシンの作成 と同じ手順に従います。