Windowsエラー
 Computer >> コンピューター >  >> トラブルシューティング >> Windowsエラー

【Windows Server 2019】ネステッド仮想化を使って仮想マシン上でHyper-Vを実行する方法

従来の仮想化とネステッド仮想化の違い

物理マシンにHyper-Vサーバーの役割やHyper-V Core Serverをインストールする作業は比較的シンプルで、追加の構成が不要なケースも少なくありません。分離された環境を構築する次のステップとして、仮想マシンの展開と構成、ゲストOSのセットアップ、そしてホストするアプリケーションの導入を行います。これが一般的な「従来型の仮想化」です。この場合、物理マシンが抽象化され、そのリソースが仮想マシン上で動作するゲストOSに提供されます。

しかし、仮想マシンの内部でさらにHyper-Vを実行したい場合はどうでしょうか。デフォルトの状態ではこれは不可能ですが、Hyper-Vサーバー側とターゲットの仮想マシン側にいくつかの変更を加えることで実現できます。仮想マシンの中で仮想マシンを実行できるようにする技術は「ネステッド仮想化(Nested Virtualization)」と呼ばれ、VMware、Citrix、Nutanixなど他の主要ベンダーでもサポートされています。

ネステッド仮想化の主な用途

ネステッド仮想化は主に、開発者によるテスト目的、ラボ環境での検証、Hyper-Vコンテナの実行などの用途で活用されています。限られた物理ハードウェアの中に多層的な仮想化環境を構築できるため、検証作業の柔軟性が大きく向上します。

ネステッド仮想化が無効な場合に発生するエラー

ネステッド仮想化を有効にせずに仮想マシン内へHyper-Vをインストールしようとすると、「仮想化機能が存在しないためインストールできない」というエラーが表示されます。

【Windows Server 2019】ネステッド仮想化を使って仮想マシン上でHyper-Vを実行する方法

この問題を解決するには、Hyper-Vサーバー側でターゲットの仮想マシンに対してネステッド仮想化を有効にします。以下では、Windows Server 2019上でホストされているHyper-V Serverに対して、ネステッド仮想化を有効化し、仮想マシン内にHyper-Vをインストールするまでの一連の手順を解説します。

ネステッド仮想化を有効化する手順

  1. ログイン:Hyper-Vの役割がインストールされたWindows Server 2019にログインまたは接続します
  2. Hyper-Vマネージャーを開く
  3. ネステッド仮想化を有効にしたい仮想マシンを選択します。この例では「Windows2019」という名前のVMを使用します
    【Windows Server 2019】ネステッド仮想化を使って仮想マシン上でHyper-Vを実行する方法
  4. 仮想マシンをシャットダウンします
  5. スタートメニューを右クリックし、Windows PowerShell(管理者)をクリックします
  6. 次のコマンドを入力してEnterキーを押します。
    Set-VMProcessor -VMName Windows2019 -ExposeVirtualizationExtensions $true
    ※「Windows2019」はVM名の例です。ご自身のHyper-Vマネージャー上のVM名に置き換えてください
    【Windows Server 2019】ネステッド仮想化を使って仮想マシン上でHyper-Vを実行する方法
  7. 次に、ネストされた仮想マシン用のネットワークを構成します。方法はMACスプーフィングまたはNAT(Network Address Translation)のいずれかです。ここではMACスプーフィングを有効にするため、以下のコマンドをPowerShellに入力します。
    Get-VMNetworkAdapter -VMName Windows2019 | Set-VMNetworkAdapter -MacAddressSpoofing On
    ※「Windows2019」はご自身の仮想マシン名に置き換えてください
    【Windows Server 2019】ネステッド仮想化を使って仮想マシン上でHyper-Vを実行する方法

仮想マシン内にHyper-Vの役割をインストールする

  1. 仮想マシンを起動し、Windows Server 2019にログインします
  2. サーバーマネージャーを開き、「役割と機能の追加」をクリックします
  3. 「開始する前に」画面で「次へ」をクリックします
  4. 「インストールの種類の選択」「次へ」をクリックします
  5. 「対象サーバーの選択」で対象サーバーを選択するか、そのまま「次へ」をクリックします
  6. 「サーバーの役割の選択」「Hyper-V」にチェックを入れ、「機能の追加」をクリックします
  7. 「次へ」をクリックしてHyper-Vのインストールを進めます
  8. 「機能の選択」画面で「次へ」をクリックします
  9. 「Hyper-V」画面で「次へ」をクリックします
  10. 「仮想スイッチの作成」で使用するネットワークアダプターを選択します。Windows Serverはそのマシン上の利用可能なすべてのネットワークアダプターを自動的に検出します
  11. 「仮想マシンの移行」画面で「次へ」をクリックします
  12. 「既定の保存場所」で仮想ハードディスクおよび仮想マシン構成ファイルの保存先を指定するか、そのまま「次へ」をクリックします
  13. 「インストール オプションの確認」で「必要に応じて対象サーバーを自動的に再起動する」を選択し、表示される確認ダイアログで「はい」をクリックします
  14. 「インストール」をクリックし、Windows Server 2019がHyper-Vの役割のインストールを完了するまで待ちます
    【Windows Server 2019】ネステッド仮想化を使って仮想マシン上でHyper-Vを実行する方法

ネストされたHyper-V環境の確認

  1. 再起動後、改めてWindows Server 2019にログインします
  2. サーバーマネージャーを開きます
  3. 「ツール」メニューから「Hyper-Vマネージャー」をクリックします
  4. 新しい仮想マシンを作成すれば、仮想マシン内で動作するHyper-V環境を自由に活用できます

まとめ

ネステッド仮想化を有効にすることで、仮想マシン内部にHyper-V環境を構築でき、テストや検証の幅が大きく広がります。ポイントは、対象VMをシャットダウンした状態でPowerShellコマンドを実行し、MACスプーフィングかNATでネットワークを構成することです。開発・検証用途で多層的な仮想化環境が必要な場合は、ぜひ本手順を参考にしてください。

  1. Linux上でAndroid-x86とVirtualBoxを使ってAndroidゲームを楽しむ方法

    この記事では、Linux上で仮想マシンを活用しながら、お気に入りのAndroidゲームを楽しむ方法を紹介します。Androidスマートフォンをお持ちなら、その中の面白いゲームにハマっている方も多いのではないでしょうか。あるいは、スマホでしか動かないアプリを使いたいというケースもあるかもしれません。そんなとき、ふとこう考えたことはありませんか?――「このゲームやアプリをデスクトップPCでも動かせたらいいのに」と。話をシンプルにするため、ここでは対象をAndroidで動作するアプリケーションに絞って説明します。解決策の一つは、PC上でAndroidエミュレータを実行することです。しかしAndroi

  2. Windows 11/10 で Hyper-V 仮想マシンをセットアップする方法【有効化から作成まで完全解説】

    Windows 11/10 上でテストや検証などの目的に合わせて Hyper-V 仮想マシンをセットアップしたい場合は、この記事をご覧ください。Windows 10/11 で Hyper-V 機能を有効化する方法と、Hyper-V マネージャーで新しい仮想マシンを作成・構成する方法を詳しく解説します。 Microsoft は Windows Server 2008 以降のバージョンに Hyper-V テクノロジーを統合してきました。現在では、Windows 10 および 11 にも Hyper-V が標準搭載されており、一般ユーザーでも、メインマシンの OS(ホスト)に影響を与えることなく、仮