入れ子になった仮想化を定義する

完了

Hyper-V の機能である入れ子になった仮想化を使用すると、ゲスト VM 内に Hyper-V をインストールして実行することができます。 それは、仮想化環境の内側で実行される仮想化環境です。 入れ子になった仮想化を使用することで、ゲスト VM を Hyper-V ホストにすることができ、そこで他のゲスト VM をホストできます。 入れ子になった仮想化は、それを使用しないと物理ハードウェアを実行することが必要になる、仮想テストや開発の環境を実装する場合に非常に便利です。 Contoso の Hyper-V 管理者は、テスト環境を調査し、プライベート クラウドを実装しています。 どちらも入れ子になった仮想化を使用できます。

次の図は、入れ子になっていないシナリオでの Hyper-V を示したものです。 ハードウェア仮想化機能は、Hyper-V ハイパーバイザーによって完全に制御され、ゲスト OS には公開されません。 また、この入れ子になっていないシナリオでは、VM がホスト ハードウェアと直接やり取りすることはありません。

A non-nested virtualization architecture diagram in which the Windows operating system and Hyper-V Guest operating system have to access the hardware on the host via a Hyper-V hypervisor layer.

一方、次の図は、入れ子になった仮想化が有効になっている Hyper-V を示したものです。 入れ子になった仮想化を有効にすると、ゲスト VM に独自のハイパーバイザーをインストールし、独自のゲスト VM を実行することができます。 ホスト ハードウェアへの VM アクセスは、第 2 のハイパーバイザーを通過してから、第 1 のハイパーバイザーを通過する必要があります。

A nested virtualization architecture diagram in which there is an additional hypervisor present, which sits above the initial hypervisor, creating two hypervisor layers. Any VMs created above this additional hypervisor access host hardware through the two hypervisors in succession.

入れ子になった仮想化を使用してネットワークを構成する

入れ子になった仮想化を有効にするには、以下の前提条件が満たされている必要があります。

  • Hyper-V ホスト VM とゲスト VM の両方が、Windows Server 2016 以降である必要があります。
  • 物理ホスト コンピューターには、十分な静的 RAM が必要です。
  • Hyper-V VM の構成バージョンは 8.0 以降である必要があります。
  • 物理ホスト コンピューターには、仮想マシン拡張機能 (VT-x) および Extended Page Tables (EPT) の機能を備えた Intel プロセッサが必要です。

入れ子になった仮想化の有効化

Windows PowerShell を使用して入れ子になった仮想化を有効にするには、VM がオフ状態のときに、物理 Hyper-V ホスト コンピューターから次のコマンドを実行します。

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

入れ子になった仮想化を有効にした後、Hyper-V ホストの場合と同じ方法で、ゲスト VM に Hyper-V をインストールできます。

入れ子になった仮想化でのネットワーク

入れ子になった VM でのネットワークには、次の 2 つのオプションがあります。

  • MAC アドレスのスプーフィング
  • NAT

MAC アドレスのスプーフィング

1 つ目のオプションは、MAC アドレスのスプーフィングを使用するものです。これにより、2 つの vSwitch を通してネットワーク パケットをルーティングできます。 物理 Hyper-V ホストで、MAC アドレスのスプーフィングを有効にする必要があります。

Windows PowerShell を使用して MAC アドレスのスプーフィングを有効にするには、物理 Hyper-V ホスト コンピューターから次のコマンドを実行します。

Set-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On

NAT

2 つ目のオプションは、NAT を使用するものです。 この方法は、MAC アドレスのスプーフィングを利用できない場合 (パブリック クラウド環境など) に最適です。

NAT を使用するには、ホスト VM に仮想 NAT スイッチを作成します。 ネットワーク アダプターに IP アドレスを割り当て、入れ子になった各 VM に IP アドレスとゲートウェイが割り当てられるようにします。

注意

MAC アドレスのスプーフィング オプションより NAT オプションの方が、多くの構成を必要とします。

入れ子になった仮想化を有効にすると無効になる機能

入れ子になった仮想化を有効にすると、次の機能が無効になったり、失敗するようになります。

  • 仮想化ベースのセキュリティ (VBS)。 VBS で仮想化拡張機能をゲストに公開することはできません。 入れ子になった仮想化を有効にする前に、VBS を無効にする必要があります。
  • Device Guard。 Device Guard で仮想化拡張機能をゲストに公開することはできません。 入れ子になった仮想化を有効にする前に、ホストで Device Guard を無効にする必要があります。
  • 動的メモリ。 入れ子になった仮想化が有効になっている間は動的メモリはサポートされないため、ランタイム メモリのサイズ変更は失敗します。