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) 内に、さらに仮想マシンを作成できる機能です。仮想マシン内で実行されるこれらの仮想マシンは、ネストされた仮想マシンと呼ばれます。なお、 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 をインストールした仮想マシンを作成し、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をホストする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

仮想マシンの保護 NAKIVO Backup & Replication

Hyper-V仮想環境の信頼性を確保するため、ネストされたVMを含むすべてのVMをバックアップする必要があります。 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日間無料です。機能や容量の制限は一切ありません。クレジットカードも不要です。

People also read