入れ子になった仮想化による仮想マシンでの Hyper-V の実行
入れ子になった仮想化は、Hyper-V 仮想マシン (VM) 内での Hyper-V の実行を可能にする機能です。 入れ子になった仮想化は、仮想マシンで Visual Studio 電話エミュレーターを実行する場合や、通常は複数のホストが必要な構成のテストを行う場合に便利です。
入れ子になった仮想化とサポートされるシナリオの詳細については、「Hyper-V の入れ子になったと仮想化とは」を参照してください。
前提条件
Intel プロセッサ (VT-x/EPT テクノロジ搭載)
- Hyper-V ホストは、Windows Server 2016 以降、または Windows 10 以降である必要があります。
- VM 構成バージョン 8.0 以降。
AMD EPYC/Ryzen プロセッサ以降
- Hyper-V ホストは、Windows Server 2022 以降、または Windows 11 以降である必要があります。
- VM 構成バージョン 9.3 以降。
Note
ゲストは、任意の Windows サポート対象のゲスト オペレーティング システムにできます。 新しい Windows オペレーティング システムでは、パフォーマンスを向上させるエンライトメントがサポートされる場合があります。 Azure VM で入れ子になった仮想化を有効にするには、セキュリティの種類を "標準" に設定してください。
入れ子になった仮想化の構成
仮想マシンを作成します。 必要な OS と VM のバージョンについては、前提条件をご覧ください。
仮想マシンがオフ状態のときに、物理 Hyper-V ホストで次のコマンドを実行して、仮想マシンのネストされた仮想化を有効にします。
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
仮想マシンを開始します。
Hyper-V を仮想マシン内にインストールします。方法は物理サーバーの場合と同様です。 Hyper-V のインストールの詳細については、Hyper-V のインストールに関するページを参照してください。
注意
Windows Server 2019 を第 1 レベルの VM として使用する場合、vCPU の数は 225 以下にする必要があります。
入れ子になった仮想化の無効化
停止している仮想マシンに対して、入れ子になった仮想化を無効にするには、次の PowerShell コマンドを使用します。
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false
ネットワーク オプション
入れ子になった仮想マシンのネットワーキングには、2 つのオプションがあります。
- MAC アドレスのスプーフィング
- NAT ネットワーク
MAC アドレスのスプーフィング
2 つの仮想スイッチを通じてネットワーク パケットをルーティングするには、仮想スイッチの最初の (L1) レベルで MAC アドレスのスプーフィングを有効にする必要があります。 MAC アドレス スプーフィングを有効にするには、次の PowerShell コマンドを実行します。
Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On
ネットワーク アドレス変換 (NAT)
2 番目のオプションは、ネットワーク アドレス変換 (NAT) に依存します。 この方法は、MAC アドレスのスプーフィングを利用できない場合 (パブリック クラウド環境など) に最適です。
最初に、仮想 NAT スイッチをホストの仮想マシン ("中間"の VM) に作成する必要があります。 次の例では、VmNAT
という名前の新しい内部スイッチを作成し、192.168.100.0/24
サブネット内のすべての IP アドレスに対して NAT オブジェクトを作成します。
New-VMSwitch -Name VmNAT -SwitchType Internal
New-NetNat –Name LocalNAT –InternalIPInterfaceAddressPrefix “192.168.100.0/24”
次に、IP アドレスをネット アダプターに割り当てます。
Get-NetAdapter "vEthernet (VmNat)" | New-NetIPAddress -IPAddress 192.168.100.1 -AddressFamily IPv4 -PrefixLength 24
入れ子になった仮想マシンごとに 1 つの IP アドレスと 1 つのゲートウェイが割り当てられている必要があります。 ゲートウェイ IP は、前の手順で説明した NAT アダプターをポイントする必要があります。 必要に応じて、DNS サーバーも割り当てます。
Get-NetAdapter "vEthernet (VmNat)" | New-NetIPAddress -IPAddress 192.168.100.2 -DefaultGateway 192.168.100.1 -AddressFamily IPv4 -PrefixLength 24
Netsh interface ip add dnsserver “vEthernet (VmNat)” address=<my DNS server>