はじめに
全3パート中の今回、Part1では以下の内容を記載します。
Nested(入れ子の) Hyper-Vとは、Hyper-V基盤上に構成されている仮想マシンをホストとし、さらにHyper-V環境を構築することです。Hyper-Vの上でHyper-Vをたてることになります。
2016でサポートされ、Azureでもv3シリーズの登場により可能となりました。
今回はAzureの仮想マシンを使用して、Nested Hyper-Vを構築してみます。
最終的には外から Nested Hyper-V 上の VM と自由にやり取りできるようにはなっていないのですが、できた範囲で備忘として記載しています。外から中への疎通がどうしても構成できなかったので、最終的にはポートフォワーディングで接続させています。
2021/04/07: スイッチ作成部分について、PowerShell で実施するよう書き換え
目次
続きは以下
事前準備
最終構成は図のイメージで、仮想ネットワーク上のマシンとNested Hyper-V上の仮想マシンで疎通が取れるようにしてみたいと思います。
Nested Hyper-VのホストおよびゲストOSには条件があります。条件は以下
Intel の場合
4GB以上の物理メモリであること。現在記載なし- Hyper-V ホストは Windows Server 2016/Windows 10 以降であること。
- VM 構成バージョン 8.0 以上。
- VT-x および EPT テクノロジを使用する Intel プロセッサ。。
AMD EPYC/Ryzen プロセッサ以降の場合
- Hyper-V ホストは、Windows Server 2022 または Windows 11 以降
- VM 構成バージョンが 10.0 以降
これに加えて、AzureでNested Hyper-Vのホストになるマシンは、ハイパースレッドが有効なVMサイズを使用する必要があります。現在はDv3シリーズ、Eシリーズ、Fsv2シリーズ、Lsv2シリーズ、Mシリーズのみです。
ということで以下の仮想マシンを用意しました。どちらも日本語化済みです。
- ホスト用仮想マシン(WS2016/D4v3/追加ディスク1TB1本)*1
- 接続テスト用仮想マシン(WS2016/A2v2/)*1
Hyper-Vの有効化
ホスト用VMにログインし、Hyper-V機能を有効化します。
以下の GitHubに公開されているスクリプトでの設定と手動設定の2種類がありますが、今回は手動で有効化しました。
PowerShellにて以下のコマンドを実行します。 仮想マシンが再起動し、Hyper-Vマネージャーの有効化は完了です。
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
実行結果
NAT スイッチの作成
ゲスト仮想マシンがインターネットへ出られるように、NAT用仮想ネットワークスイッチを作成し、 NATを設定します。
IP アドレスは任意に変更ください。
ここでは、192.168.100.1 を Nested Hyper-V 上の VM のデフォルトゲートウェイとして構成しています。
New-VMSwitch -Name VmNAT -SwitchType Internal New-NetNat –Name LocalNAT –InternalIPInterfaceAddressPrefix “192.168.100.0/24” Get-NetAdapter "vEthernet (VmNat)" | New-NetIPAddress -IPAddress 192.168.100.1 -AddressFamily IPv4 -PrefixLength 24
実行結果
Windows Server2016評価版ダウンロード
Part1の最後は、ゲストマシン構築用のWindows Server2016評価版ダウンロードです。
評価版のISOは以下からダウンロードできます。
ISOを選択し、必須事項を入力してダウンロードしましょう。
今回はここまでとして、ゲストマシンの構築はPart2に続きます。