Hyper-Vのネスト型仮想化について

Hyper-Vのネスト型仮想化は、Windows Server 2016およびWindows 10で初めて導入された機能であり、サーバーだけでなくワークステーションでも利用可能です。この機能の導入により、Microsoft Hyper-Vハイパーバイザーの適用範囲が拡大されました。このブログ記事では、ネスト型仮想化とは何か、およびMicrosoft Hyper-Vにおけるネスト型仮想化のユースケース、要件、制限事項について解説します。

Hyper-V バックアップ用 NAKIVO

Hyper-V バックアップ用 NAKIVO

Hyper-V向けの、エージェントレスかつアプリケーション対応のバックアップ機能。ランサムウェア対策、バックアップからのVMの即時起動、その他の仮想/物理プラットフォームへの対応など。

ネスト型仮想化とは何か?

Microsoft Hyper-V のネスト型仮想化は、Hyper-V ホスト上で実行されている他の Hyper-V 仮想マシン (VM) 内に、さらに仮想マシン (VM) を作成できる機能です。VM 内で実行されるこれらの仮想マシンは、ネスト型 VM と呼ばれます。なお、 VMware では、ネスト型仮想化も設定可能です 環境。

A schema of nested virtualization in Hyper-V

ユースケース

仮想環境におけるネスト型仮想化のユースケースには、以下のようなものがあります:

  • Creating isolated environments. この機能を使用すると、隔離された仮想ネットワークを介して相互に接続されたネストされた仮想マシンを作成できます。これにより、通常の仮想マシンやネットワークに影響を与えない、完全に隔離された環境を構築することが可能です。
  • Training/testing/development. トレーニングは、新規ユーザーや管理者にソフトウェアを習得してもらうため(あるいは既存のユーザーや管理者に新しいソフトウェアを習得してもらうため)に有用です。しかし、本番環境でのトレーニングは、システムの不安定化や、場合によっては障害につながる可能性があります。ネスト型仮想化を利用すれば、実際の本番環境に影響を与えることなく、ネストされたVM上で本番環境をシミュレートすることができます。

    管理者向けのトレーニングに加え、QAスペシャリスト(テスター)や開発者も、テストや開発の目的でこの種の環境を必要とする場合があります。その利点は、追加の専用ハードウェアを購入することなく、既存の仮想環境内でネストされたVMをこれらの目的に利用できることです。

  • Building a private cloud. ユーザー向けのセルフサービスポータルを備えた本格的なプライベートクラウドの導入には、多額の費用と多大な労力がかかります。ネスト型仮想化を利用すれば、そのようなクラウドと同一の機能を備えた疑似プライベートクラウドを構築できます。たとえば、Hyper-V Server がインストールされた仮想マシン(VM)を作成し、256 GB の RAM を割り当てることができます。

    ユーザーは、Hyper-VがインストールされたVM内で、必要に応じてネストされたVMを作成・構成できますが、メモリ制限を超えることはできず、256 GB以上のRAMを消費することはできません。Hyper-VがインストールされたVMには、ホットアド機能を使用して、ダウンタイムなしでメモリや仮想ネットワークアダプタを追加できます。

要件および制限事項

Hyper-V でネスト型仮想化を実装するには、以下の要件を満たす必要があります。

  • ホストオペレーティングシステムは、以下の条件を満たしている必要があります。 Windows Server 2016 または Windows 10(アニバーサリー・アップデート)以降。
  • Hyper-V 仮想マシンはバージョン 8 以降である必要があります。
  • 物理サーバーには、適切な仮想化機能をサポートする互換性のあるCPUが搭載されている必要があります。
    • Windows Server 2016、Windows Server 2019、および Windows 10 において、ネスト型仮想化をサポートしているのは、VT-x および EPT テクノロジーを搭載した Intel プロセッサのみです。
    • AMD-V 仮想化機能を備えた AMD プロセッサを使用している場合、Hyper-V のネスト型仮想化をサポートするには、Windows Server 2022 または Windows 11 を使用する必要があります。
    • 最新のWindowsバージョンは、AMDおよびIntelのプロセッサの両方をサポートしています。
  • VMを実行するには、十分な物理メモリが必要です。
  • VMは~であってはならない 動的メモリの使用.
  • 必須ではありませんが、SSDディスクを使用することをお勧めします。 VMのパフォーマンスを向上させる、ディスクの転送速度が低いとパフォーマンスが大幅に低下するためです。

ネストされたVM(以下、”最内側のゲスト”とも呼ばれます)をホストするVMには、いくつかの制限があります:

  • チェックポイント 実行中のVMには適用できません。
  • その仮想マシンのライブマイグレーションが失敗しました。
  • 実行時のメモリサイズ変更が機能しません。

注: 上記の3つの制約に関連する特徴 できる 最も親しいゲストのために用意される。

ネストされたVT-x/AMD-Vとは何ですか?

Intel VT-x および AMD-V は、ハードウェア仮想化を可能にするプロセッサ用の命令セットです。ネスト型仮想化を使用する場合、ネストに使用する仮想マシンでこれらの機能のいずれかを有効にする必要があります。そうして初めて、その仮想マシンはプロセッサのハードウェア仮想化機能を利用して、ネストされた仮想マシンを実行できるようになります。

Hyper-Vのネスト型仮想化を有効にし、ネスト型VMを作成する方法

このセクションでは、Windows Server 2019 で Hyper-V のネスト型仮想化を設定する手順について説明します。設定手順は、Windows Server 2016 および Windows Server 2022 でも同様です。

Hyper-V ホストの設定

まず、Hyper-V ホストの設定を行う必要があります:

  1. 互換性のあるCPU、十分なメモリ、および適切なストレージ容量を備えた物理サーバーを準備してください。
  2. BIOS で、Intel VT-x などの CPU 仮想化機能が有効になっていることを確認してください。
  3. Hyper-V Server 2019、Windows Server 2019、または Windows 10 をインストールしてください。
  4. Hyper-V サーバーの役割を追加する フル機能の Windows オペレーティングシステムを使用している場合は(または Windows 10 で Hyper-V を有効にする). また、グラフィカルユーザーインターフェース(GUI)やサーバーマネージャーを使用することもできます。

ゲストVMの展開

次に、仮想マシンを作成し、ゲストOSをインストールする必要があります:

  1. Windows Server で Hyper-V 仮想マシンを作成する または Windows 10 で仮想マシンを作成する.
  2. ゲストVMに、Hyper-Vのネスト型仮想化をサポートするオペレーティングシステムをインストールしてください。具体的には、Windows 10 Anniversary Update以降、またはWindows Server 2016以降をインストールしてください。

この手順では、Windows Server 2016 を使用しています。これより新しいバージョンの Windows を使用することも可能です。

ゲストVMの設定

デフォルトでは、ゲストVMのハードウェア仮想化機能は無効になっています。このVMにHyper-Vロールを追加しようとすると、オペレーティングシステムからエラーが表示されます。

This error message is displayed when hardware virtualization is disabled for a guest VM

ゲストハイパーバイザーのハードウェア仮想化を有効にするには、PowerShell を使用する必要があります。なお、以下のコマンドを実行するには、ゲスト VM の電源がオフになっている必要があります。

  1. まず、ゲストVMでハードウェア仮想化が有効になっているかどうかを確認してください。ホストOS(物理マシンにインストールされているもの)で、次のコマンドを実行してください:

    Get-VMProcessor -VMName vm_name | fl *

    “vm_name”の部分には、お使いのVMの名前を指定してください。この例では、VMの名前は”Server2016″です。”WIN2018″は、WindowsとHyper-Vロールがインストールされている物理マシンを表すコンピュータ名です。

    Hyper-V nested virtualization - checking if hardware virtualization is enabled for a VM

  1. ゲストVM内でハードウェア仮想化を有効にするには、まずVMを停止してから、次のコマンドを実行してください。

    Set-VMProcessor -VMName vm_name -ExposeVirtualizationExtensions $true

    問題がなければ、コマンドを入力した後にメッセージは表示されません。VMが実行中の場合は、次のエラーメッセージが表示されます:

    Hyper-V enable nested virtualization - enabling processor virtualization features for a VM

VMのネットワーク接続

次に、VMのネットワーク設定を行う必要があります。ネストされたVMをネットワークに接続するには、次の2つの方法があります: MAC spoofing そして NAT.

  • ネストされたVMのネットワーク設定において、実際のローカルエリアネットワーク(LAN)へのアクセスを許可するように構成されている場合、ホストマシンの1つのネットワークアダプタが複数のMACアドレスを保持することになり、これがネットワーク上の問題を引き起こす可能性があります。そのため、 MAC address spoofing このオプションを有効にする必要があります(このオプションはデフォルトでは無効になっています)。
  • 疑似プライベートクラウドが導入されている場合、VMのネットワーク通信においてMACアドレスの偽装は使用できないため、以下の設定を行う必要があります。 NAT この場合。

注: 以下では両方の方法について説明しますが、ここではNAT方式を使用して、Hyper-Vのネスト型仮想化を利用するようにVMを設定します。

MACアドレスの偽装の設定

MACアドレスの偽装を使用する場合は、仮想Hyper-Vホストのネットワークアダプタでこの機能を有効にしてください:

  • Hyper-V Server がインストールされている物理マシンで、次のコマンドを入力して MAC アドレスの偽装を有効にします。

    Get-VMNetworkAdapter -VMname vm_name | Set-VMNetworkAdapter -MacAddressSpoofing On

    “”の代わりに、お使いのVMの名前を入力してください。 vm_name. 私たちの場合は、 Server2016、前述の通り。

    Enabling MAC address spoofing for a VM in 
PowerShell for Hyper-V nested virtualization

  • GUIをご希望の場合は、次の場所へ移動してください。 VM Settings > Network adapter > Advanced features そして、 Enable MAC address spoofing チェックボックスにチェックを入れ、”OK”をクリックします。

    Enabling MAC address spoofing for a VM to use the network with Hyper-V nested virtualization

NATの設定

NAT を有効にするには、PowerShell を使用する必要があります。これまでのコマンドはホスト OS で実行されましたが、以下のコマンドはゲスト OS で実行する必要があります。

VM のネットワーク接続で NAT を有効にするには:

  1. まず、 新しい仮想スイッチを作成する.

    New-VMSwitch -Name "SwitchName" -SwitchType Internal

    の代わりに、ご自身のスイッチ名を使用してください SwitchName. 私たちは以下を使用しています NAT-Switch この攻略ガイドでは。

    Creating a new virtual switch to connect VMs through NAT for using networking with Hyper-V nested virtualization

  1. NATの背後のサブネットを定義し、NATを有効にします。ネットワークアドレスは、既存のネットワーク内のIPアドレスと重複してはなりません。この例では、ネットワーク名は NAT-net また、ネットワークアドレスは 192.168.2.0/24

    New-NetNat -Name "network_name" -InternalIPInterfaceAddressPrefix 'ip-address/netmask'

    Defining a network address for the network used for NAT

  1. 次に、NATが有効になっているインターフェースにIPアドレスを割り当てます。

    以下のコマンドを実行して、利用可能なアダプタのリストを作成し、その名前を確認します。

    Get-NetAdapter | ft -Autosize

    Displaying a list of virtual switches and checking the name of the recently created virtual switch

    この例では、先ほど作成した仮想スイッチに接続されている仮想ネットワークアダプタの名前は vEthernet (NAT-Switch).

  1. 次に、この仮想ネットワークアダプタのIPアドレスを定義する必要があります。このIPアドレスは、作成したネットワークに属している必要があります。ネストされたVMは、このネットワークインターフェースのIPアドレスをゲートウェイとして使用します。この例では、このIPアドレスは192.168.2.1であり、ネットワーク192.168.2.0/24に属しています。

    Get-NetAdapter "adapter_name" | New-NetIPAddress -IPAddress ip_address -AddressFamily IPv4 -PrefixLength mask_number

    Setting the IP address for the network interface used for NAT

ネストされたVMの設定

ネストされた仮想マシンの作成と設定が可能になりました。この手順では、Windows Server 2016 がインストールされた仮想マシンをネストされた仮想マシンとして使用します。

  1. [VM]のネットワーク設定で、先ほど作成した仮想スイッチを選択してください。 Hyper-V マネージャー.

Selecting the virtual switch created to connect the VMs through NAT

  1. [ ] 内の TCP/IP 設定を構成します。 Network Adapter Properties ネストされたVMの。仮想ネットワーク内にDHCPサーバーがない場合は、IPアドレス、サブネットマスク、デフォルトゲートウェイ、およびDNSサーバーを手動で割り当ててください。

Hyper-V nested virtualization networking - setting the IP address for the nested VM

注: ファイアウォールはネットワーク接続をブロックする可能性があるため、ファイアウォールの設定を確認してください。

これで、ネストされたVMのネットワーク設定が完了し、実行できる状態になりました。

Running a nested VM - Hyper-V nested virtualization networking works fine

仮想マシン(VM)の保護には NAKIVO Backup & Replication

Hyper-V 仮想環境の信頼性を確保するため、ネストされた仮想マシンを含むすべての仮想マシンをバックアップする必要があります。 NAKIVO Backup & Replication 提供する 信頼性の高いHyper-Vバックアップ Hyper-Vのネイティブ機能である”Resilient Change Tracking(RCT)”技術を活用した、高速な画像ベースの増分バックアップ機能です。このバックアップ機能を使用することで、アプリケーションオブジェクトやファイルの復元、VMの即時起動、Hyper-V VMをVMware vSphere VMとして復元するなど、さまざまな復旧オプションを利用できます。

試してみてください NAKIVO Backup & Replication

試してみてください NAKIVO Backup & Replication

無料トライアルを利用して、本ソリューションのデータ保護機能をすべてお試しください。15日間無料。機能や容量の制限は一切ありません。クレジットカードも不要です。

関連記事