Windows Server 2022 Hyper-V の入れ子対応を試してみました

先日、検証用サーバーとして利用している PC を新調したことに伴い、 Hyper-V仮想マシンの上で仮想マシンを動かせることを思い出しました。

今回はその設定を見ていきたいと思います。

設定自体は簡単で、仮想マシンに対して PowerShell のコマンドレットを設定しておくだけです。

https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/user-guide/nested-virtualization?WT.mc_id=WDIT-MVP-5002496

f:id:mohessu:20211202005441p:plain

入れ子を実行したい仮想マシンの電源を落とし、管理者権限で以下の PowerShell コマンドレットを実行する形です。

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

この際 VMName に入れる内容は仮想マシンの名前なので、 Hyper-V マネージャーを見ながらチェックすると簡単です。

コマンドレットが成功した場合は実行結果は特に表示されないので次の行に遷移したら成功です。

f:id:mohessu:20211202010629p:plain

次に仮想マシンを起動したら Hyper-V入れ子が行えます。

試しに Docker を起動してみたところが以下の図です。

Docker は WLS2 を利用して動くため、仮想マシン上の Windows 11 で Docker を動かすということが Hyper-V入れ子を利用しているということを示しています。

f:id:mohessu:20211202010346p:plain

この Hyper-V入れ子はテスト環境を作る時に重宝するので、ぜひやり方を覚えておきましょう。

音楽:水と電線