Red Hat Training

A Red Hat training course is available for RHEL 8

第18章 入れ子仮想マシンの作成

RHEL 8 システムでは、ネストされた仮想マシン(VM)を作成できます。つまり、RHEL 8 の物理ホスト (レベル0 または L0)で稼働する RHEL 8 仮想マシン(レベル1 または L1)がハイパーバイザーとして機能し、独自の仮想マシン (レベル 2 または L2)を作成することもできます。

つまり、L0 ホストは L1 仮想マシンを実行でき、各 L1 仮想マシンが独自の L2 仮想マシンをホストできます。このような場合は、L0 ホストおよび L1 ホストは RHEL 8 システムである必要がありますが、L2 ゲストは RHEL または Windows システムであればどれでも可能です。

警告

現在、Red Hat はネストされた仮想化を テクノロジープレビュー としてのみ提供しているため、サポート対象外となります。

さらに、Red Hat では機能にさまざまな制限があるため、実稼働環境でネストされた仮想化を使用することは推奨していません。ネストされた仮想化は、主に以下のような開発およびテストシナリオを対象としています。

  • 制限された環境でのハイパーバイザーのデバッグ
  • 限られた物理リソースでの大規模な仮想デプロイメントのテスト

Intel、AMD、IBM POWER9、IBM Z などの複数のアーキテクチャーでネストされた仮想マシンを作成することもできます。使用されるアーキテクチャーに関係なく、ネスト化はテクノロジープレビューであるため、Red Hat ではサポートされていないことに注意してください。

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

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

警告

ネストされた仮想化は、現在 Intel アーキテクチャーでのみ テクノロジープレビュー として提供されているため、サポート対象外となります。

前提条件

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

    # cat /sys/module/kvm_intel/parameters/nested
    • コマンドが 1 を返した場合は、機能が有効にされており、以下の手順に従って手順を開始できます。
    • コマンドが 0 または N を返し、システムがネストされた仮想化に対応している場合は、以下の手順に従って機能を有効にします。

      1. kvm_intel モジュールをアンロードします。

        # modprobe -r kvm_intel
      2. ネスト機能をアクティブにします。

        # modprobe kvm_intel nested=1
      3. ネスト機能は有効になりますが、L0 ホストの次回起動時まで有効になります。永続的に有効にするには、以下の行を /etc/modprobe.d/kvm.conf ファイルに追加します。

        options kvm_intel nested=1

手順

  1. ネストされた仮想化用に L1 仮想マシンを設定します。

    1. 仮想マシンの XML 設定を開きます。以下の例では、Intel-L1 仮想マシンの設定が開きます。

      # virsh edit Intel-L1
    2. 以下の行を設定に追加します。

      <cpu mode='host-passthrough'/>

      仮想マシンの XML 設定ファイルに <cpu> 要素がすでに含まれる場合は、これを書き直してください。

  2. L2 仮想マシン内に L1 仮想マシンを作成します。これを行うには、L1 仮想マシンの作成 時と同じ手順に従います。