ツナ缶雑記

ぐうたらSEのブログです。主にマイクロソフト系技術を中心に扱います。

Ryzen CPU で Hyper-V の入れ子を試す

f:id:masatsuna:20220325013011p:plain

以前 Ryzen CPU を使って Hyper-V の入れ子ができるようになる話を書きました。

tsuna-can.hateblo.jp

ようやく手元の環境が整ってきたので、今回は Hyper-V の入れ子を試してみようと思います。

環境

  • ホストマシン
    • Windows 11 Pro 21H2
    • Ryzen 9 5900X
  • 第 1 階層のゲストマシン(ホストマシン上のゲストマシン)
    • Windows 11 Pro 21H2
    • Hyper-V の構成バージョン 10.0
  • 第 2 階層のゲストマシン(第 1 階層のゲストマシン内のゲストマシン)
    • Windows 11 Pro 21H2

第 1 階層のゲストマシンを作成

ホストマシン上で Hyper-V を有効にして、普通にインストールします。 ただし、 Ryzen CPU の場合「入れ子になった仮想化」を行うためにはホストマシンの OS が Windows 11 または Windows Server 2022 以降であることが必須要件です。 また仮想マシンとして Windows 11 を実行するためには、Hyper-V 上で TPM を有効にしなければなりません。

tsuna-can.hateblo.jp

Windows 11 のインストール前にこの設定を行っておきましょう。

第 1 階層のゲストマシンで Hyper-V を有効にする(この段階ではできない)

第 1 階層のゲストマシンを立ち上げて、 Hyper-V を有効にしてみましょう。 すると以下のように Hyper-V の機能はグレーアウトされて選択できず、インストールすることができません。

f:id:masatsuna:20220325010243p:plain

第 1 階層のゲストマシンで Hyper-V を有効にするには、ホストマシン上でコマンドをたたかなければなりません。

ホストマシン上で「入れ子になった仮想化」を有効にする

作成した第 1 階層のゲストマシンに対して、入れ子になった仮想化ができるよう構成します。 設定は PowerShell で実行します。

まずは第 1 階層のゲストマシンをシャットダウンしましょう。 そしてホストマシンのPowerShell を管理者権限で立ち上げて、以下の通りコマンドを実行しましょう。

Set-VMProcessor -VMName <Hyper-Vマネージャーで見れるVMの名前> -ExposeVirtualizationExtensions $true

これで入れ子になった仮想化が有効になります。

再度第 1 階層のゲストマシンで Hyper-V を有効にする

第 1 階層のゲストマシンを再起動して、 Hyper-V を有効にしてみましょう。 こんどはちゃんと Hyper-V を有効にできます。

f:id:masatsuna:20220325010746p:plain

Hyper-V が有効にできたら、同様の手順で第 2 階層のゲストマシンを作成しておきます。

入れ子にできた

ご覧の通り、仮想マシンの中にさらに仮想マシンを作ることができました。

f:id:masatsuna:20220325011352p:plain

できたのはいいのですが、触ってみると少々不便な点がありました。 私の環境の問題かもしれませんので、ご参考までにご覧ください。

第 2 階層のゲストマシンは拡張セッションが使えない

以前こちらの記事でも解説した通り、拡張セッションを使うには Windows Hello を無効にしなければなりません。

tsuna-can.hateblo.jp

しかし、第 2 階層のゲストマシンについては、この設定を無効にしても拡張セッションで接続することはできませんでした。 ログイン画面までは表示できるのですが、ログインした後応答がなくなる、という現象が起きています。 拡張セッションを無効にすれば、普通に利用できました。

全画面表示ができない

第 2 階層のゲストマシンに接続して全画面表示を行うと、画面の拡大ができませんでした。 何かしら設定すればできるのかもしれませんが、設定方法わからずでした。

f:id:masatsuna:20220325011914p:plain

まとめ

Ryzen CPU でも Hyper-V の入れ子ができることを確認しました。 しかし、「できる」であって「使える」ではないことも明らかになりました。 マイクロソフトの公式にも書かれている通り、テスト目的で利用するのが良いと思います。

入れ子になった仮想マシンは、実稼働目的ではサポートされていません。 その主な目的は、ラボ、テスト環境、デモ環境などです。