物理マシンの Hyper-V に作成した仮想マシンに対し、Hyper-V の機能を有効化できるようになりました。仮想マシンに対し Hyper-V を有効にする手順について整理したいと思います。
Nested VM の設定
Hyper-V 上の仮想マシンに対して Hyper-V の機能を有効化するためには、Windows Server 2016 よりサポートされた Nested VM 設定の有効化を行う必要があります。
Nested VM 設定とは、Hyper-V 上にたてられた仮想マシンに対し、「ExposeVirtualizationExtensions」という機能の有効化を行うことを指しています。
HyperV マネージャーからの仮想マシン新規作成手順については、別の記事で画面イメージにそって手順解説をしていますので、そちらをご参照ください。
仮想マシン起動状態の確認
Nested VM の設定は仮想マシンが停止している状態で実行する必要があるため、まずは仮想マシンの起動状態を確認します。
Get-VM
実行結果例
PS C:\Users\Administrator> Get-VM Name State CPUUsage(%) MemoryAssigned(M) Uptime Status Version ---- ----- ----------- ----------------- ------ ------ ------- HV01 Off 0 4096 00:00:00 正常稼働中 8.0 HV02 Off 0 4096 00:00:00 正常稼働中 8.0
対象の仮想マシンが起動中(Running)状態の場合は、シャットダウンを実施し、停止状態にします。
Nested VM の有効化
停止している仮想マシンに対し、「ExposeVirtualizationExtensions」機能の有効化を行い、Nested VM のフラグを立てます。
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
設定の確認
Get-VMProcessor -VMName * |ft VMName,ExposeVirtualizationExtensions
実行結果例
PS C:\Users\Administrator> Get-VMProcessor -VMName * |ft VMName,ExposeVirtualizationExtensions VMName ExposeVirtualizationExtensions ------ ------------------------------ HV01 True HV02 False
「ExposeVirtualizationExtensions」が”True”となっていることを確認します。
ネットワークの設定
Nested VM を有効化した環境では、既定の構成のままだと仮想マシンは通信ができないため、追加でネットワークの設定が必要となります。
方法としては、「MAC アドレスのスプーフィング」もしくは「NAT ネットワーク」の 2 パターンの方法があります。ここでは MAC アドレスのスプーフィングの方法について記載します。
MAC アドレススプーフィングの有効化
Nested VM を有効化した仮想マシンから通信を行う場合は、仮想マシンの仮想 NIC の設定から MAC アドレススプーフィングを有効化する必要があります。
Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On
設定の確認
Get-VMNetworkAdapter -VMName * |ft VMName,SwitchName,MacAddressSpoofing
実行結果例
PS C:\Users\Administrator> Get-VMNetworkAdapter -VMName * |ft VMName,SwitchName,MacAddressSpoofing VMName SwitchName MacAddressSpoofing ------ ---------- ------------------ HV01 External On HV02 External Off
以上で Nested VM を有効化し、Hyper-V 上の仮想マシンに対して Hyper-V の機能を有効化することができます。
参考にしたページ