コンテンツへスキップ

Hyper-V の中でHyper-V を実行する。

普通にHyper-V を入れ子にしようとすると、対応していない旨のエラーが出る。
「Hyper-V をインストールできません:必要な仮想化機能がプロセッサにありません。」

図1: 「役割と機能の追加ウィザード」の検証結果画面。「Hyper-V をインストールできません: 必要な仮想化機能がプロセッサにありません」というエラーが表示される
図1: 「役割と機能の追加ウィザード」の検証結果画面。「Hyper-V をインストールできません: 必要な仮想化機能がプロセッサにありません」というエラーが表示される

PowerShell でコマンドを実行することで、機能が有効にできるそうです。

入れ子になった仮想化による仮想マシンでの Hyper-V の実行

nested(入れ子になった) Hyper-V の検証

親機

親機作成

メモリの上限と、CPU の数を2台分にしておく。

ホストに8個10GB、クライアントに6個6GBみたいな振り分けを考えています。
適当です。

図2: 仮想マシン「WS22-test-se-g2-Rikka」の設定画面。「ハードウェアの追加」でSCSI コントローラーを選択して追加できる
図2: 仮想マシン「WS22-test-se-g2-Rikka」の設定画面。「ハードウェアの追加」でSCSI コントローラーを選択して追加できる

前準備(親機を指定するので、親機作成後)

VM の電源オフのときに、下記コマンドをPowershell で実行する。

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

何事もなく、サクっと終わる。

図3: PowerShellで「Set-VMProcessor -VMName WS22-test-se2-Rikka -ExposeVirtualizationExtensions $true」コマンドを実行した結果
図3: PowerShellで「Set-VMProcessor -VMName WS22-test-se2-Rikka -ExposeVirtualizationExtensions $true」コマンドを実行した結果

Hyper -V 有効化

あとは普通にHyper-V をアクティブ化して作成すればOK。
とりあえず、チェックポイントは作成。

図4: 「役割と機能の追加ウィザード」の「サーバーの役割の選択」画面。「Hyper-V」にチェックを入れる
図4: 「役割と機能の追加ウィザード」の「サーバーの役割の選択」画面。「Hyper-V」にチェックを入れる
図5: 「役割と機能の追加ウィザード」の「Hyper-V に必要な機能を追加しますか?」画面。関連するリモート サーバー管理ツールも合わせてインストールする
図5: 「役割と機能の追加ウィザード」の「Hyper-V に必要な機能を追加しますか?」画面。関連するリモート サーバー管理ツールも合わせてインストールする

ここは何も追加しない。

図6: 「役割と機能の追加ウィザード」の「機能の選択」画面。Hyper-Vに必要な機能が選択された状態で「次へ」をクリックする
図6: 「役割と機能の追加ウィザード」の「機能の選択」画面。Hyper-Vに必要な機能が選択された状態で「次へ」をクリックする
図7: 「役割と機能の追加ウィザード」の「Hyper-V」説明画面。仮想スイッチの設定に使用するネットワーク接続を事前に確認するよう注意事項が表示されている
図7: 「役割と機能の追加ウィザード」の「Hyper-V」説明画面。仮想スイッチの設定に使用するネットワーク接続を事前に確認するよう注意事項が表示されている

仮想スイッチは後回しで。
仮想スイッチを作ると、本来のネットワークカードが仮想に置き換えられる感じ。
Windows Hyper-V の「Default」接続はあんまり気にしないけど、サーバーは気にしてます。

ネットワーク接続がないと、リストされないのかなと思われ?

図8: 「役割と機能の追加ウィザード」の「仮想スイッチの作成」画面。ネットワークアダプター一覧が表示されており、今回はチェックを入れずに次へ進む
図8: 「役割と機能の追加ウィザード」の「仮想スイッチの作成」画面。ネットワークアダプター一覧が表示されており、今回はチェックを入れずに次へ進む

使ったことないので、、、とりあえずアクティブ化はしない。

図9: 「役割と機能の追加ウィザード」の「仮想マシンの移行」画面。ライブ マイグレーションは使用しないのでチェックを入れずに進む
図9: 「役割と機能の追加ウィザード」の「仮想マシンの移行」画面。ライブ マイグレーションは使用しないのでチェックを入れずに進む

デフォルトでいいと思います。

図10: 「役割と機能の追加ウィザード」の「既定の保存場所」画面。仮想ハードディスクと仮想マシン構成ファイルの保存先はデフォルトのまま進む
図10: 「役割と機能の追加ウィザード」の「既定の保存場所」画面。仮想ハードディスクと仮想マシン構成ファイルの保存先はデフォルトのまま進む
図11: 「役割と機能の追加ウィザード」の「インストール オプションの確認」画面。Hyper-Vと関連ツールのインストール内容を確認して「インストール」をクリックする
図11: 「役割と機能の追加ウィザード」の「インストール オプションの確認」画面。Hyper-Vと関連ツールのインストール内容を確認して「インストール」をクリックする
図12: 「役割と機能の追加ウィザード」の「インストールの進行状況」画面。「j249でインストールを開始しました」と表示され、機能のインストールが進行中
図12: 「役割と機能の追加ウィザード」の「インストールの進行状況」画面。「j249でインストールを開始しました」と表示され、機能のインストールが進行中
図13: 「役割と機能の追加ウィザード」の「インストールの進行状況」画面。「j249で再起動が保留になっています。対象サーバーを再起動して、インストールを完了させる必要があります」と表示されている
図13: 「役割と機能の追加ウィザード」の「インストールの進行状況」画面。「j249で再起動が保留になっています。対象サーバーを再起動して、インストールを完了させる必要があります」と表示されている

再起動してインストールを完了。

図14: サーバー マネージャーの通知(フラグ)ポップアップ。「機能のインストール」の「j249で再起動が保留になっています。対象サーバーを再起動して、インストールを完了させる必要があります」という通知が表示されている
図14: サーバー マネージャーの通知(フラグ)ポップアップ。「機能のインストール」の「j249で再起動が保留になっています。対象サーバーを再起動して、インストールを完了させる必要があります」という通知が表示されている

入れ子のVM を作成

Hyper-V マネージャーを起動。

図15: サーバー マネージャーのHyper-V画面。「ツール(T)」メニューから「Hyper-V マネージャー」を選択して起動する
図15: サーバー マネージャーのHyper-V画面。「ツール(T)」メニューから「Hyper-V マネージャー」を選択して起動する

入れ子VM 新規作成

図16: Hyper-V マネージャーの「操作」ペイン。「新規」から「仮想マシン(M)...」を選択して仮想マシンの新規作成ウィザードを起動する
図16: Hyper-V マネージャーの「操作」ペイン。「新規」から「仮想マシン(M)…」を選択して仮想マシンの新規作成ウィザードを起動する
図17: 「仮想マシンの新規作成ウィザード」の「開始する前に」画面。カスタム構成で仮想マシンを作成するため「次へ」をクリックする
図17: 「仮想マシンの新規作成ウィザード」の「開始する前に」画面。カスタム構成で仮想マシンを作成するため「次へ」をクリックする
図18: 「仮想マシンの新規作成ウィザード」の「名前と場所の指定」画面。名前に「N-WS22-1」を入力し、保存先をE:¥に指定している
図18: 「仮想マシンの新規作成ウィザード」の「名前と場所の指定」画面。名前に「N-WS22-1」を入力し、保存先をE:¥に指定している

世代は特に気にしていないけど、何も理由がなければ第2世代、
物理ドライブをマウントしたいときとは、第1世代を使ってます。

図19: 「仮想マシンの新規作成ウィザード」の「世代の指定」画面。物理ドライブをマウントするため「第 1 世代(1)」を選択している
図19: 「仮想マシンの新規作成ウィザード」の「世代の指定」画面。物理ドライブをマウントするため「第 1 世代(1)」を選択している

PC のスペックと相談。

図20: 「仮想マシンの新規作成ウィザード」の「メモリの割り当て」画面。起動メモリに6144MBを指定し、動的メモリを使用する設定になっている
図20: 「仮想マシンの新規作成ウィザード」の「メモリの割り当て」画面。起動メモリに6144MBを指定し、動的メモリを使用する設定になっている
図21: 「仮想マシンの新規作成ウィザード」の「ネットワークの構成」画面。接続先に仮想スイッチ「Nested_Extarnal1」を選択している
図21: 「仮想マシンの新規作成ウィザード」の「ネットワークの構成」画面。接続先に仮想スイッチ「Nested_Extarnal1」を選択している
図22: 「仮想マシンの新規作成ウィザード」の「仮想ハード ディスクの接続」画面。名前「N-WS22-1.vhdx」、サイズ150GBで仮想ハードディスクを新規作成する設定になっている
図22: 「仮想マシンの新規作成ウィザード」の「仮想ハード ディスクの接続」画面。名前「N-WS22-1.vhdx」、サイズ150GBで仮想ハードディスクを新規作成する設定になっている
図23: 「仮想マシンの新規作成ウィザード」の「インストール オプション」画面。OSは後でインストールするため「後でオペレーティング システムをインストールする(L)」を選択している
図23: 「仮想マシンの新規作成ウィザード」の「インストール オプション」画面。OSは後でインストールするため「後でオペレーティング システムをインストールする(L)」を選択している

CPU はあとから割り当てします。

図24: 「仮想マシンの新規作成ウィザードの完了」画面。名前N-WS22-1、第1世代、メモリ6144MBなど、設定内容の要約が表示されている
図24: 「仮想マシンの新規作成ウィザードの完了」画面。名前N-WS22-1、第1世代、メモリ6144MBなど、設定内容の要約が表示されている

CPU 割り当て。できれば、上記のウィザードの流れで設定させてほしい。

図25: 「N-WS22-1 の設定」画面の「プロセッサ」項目。仮想プロセッサの数を6に変更している
図25: 「N-WS22-1 の設定」画面の「プロセッサ」項目。仮想プロセッサの数を6に変更している
OS のインストール

インストールするOS の設定

図26: 「N-WS22-1 の設定」画面の「DVD ドライブ」項目。「物理 CD/DVD ドライブ(P)」で「ドライブ D:」を指定している
図26: 「N-WS22-1 の設定」画面の「DVD ドライブ」項目。「物理 CD/DVD ドライブ(P)」で「ドライブ D:」を指定している

物理ドライブとはいえ、親VM はイメージファイルをマウントしています。

図27: エクスプローラーのPC画面。DVD ドライブ(D:)に「SSS_X64FREE_JA-JP_DV9」のOSインストールメディアがマウントされている
図27: エクスプローラーのPC画面。DVD ドライブ(D:)に「SSS_X64FREE_JA-JP_DV9」のOSインストールメディアがマウントされている

OS インストール開始。

図28: 「Microsoft サーバー オペレーティング システムのセットアップ」画面。インストールする言語やキーボードの種類を日本語(日本)に設定して「次へ」をクリックする
図28: 「Microsoft サーバー オペレーティング システムのセットアップ」画面。インストールする言語やキーボードの種類を日本語(日本)に設定して「次へ」をクリックする

今回の環境とは関係ないけど、サーバー内サーバーのライセンスについてのメモ

サーバーOS のライセンスがOEM の場合、Hyper-V のOS に使用するためには
下記の理由から物理のDVD ドライブをマウントする必要があると思っています。
つまり、第1世代を選んでおかないと詰む?

ライセンスがOEM の場合、付属のインストールメディアでインストールしないと認証できないとあるので、OEM 版のWindows Server の場合は、第1世代必須か。

図29: 「OEM Windows Server OSライセンス認証」の説明図。物理ホストのライセンス認証と仮想マシンのライセンス認証について、それぞれの要件がまとめられている
図29: 「OEM Windows Server OSライセンス認証」の説明図。物理ホストのライセンス認証と仮想マシンのライセンス認証について、それぞれの要件がまとめられている

OEM Windows Server OSライセンス認証

ネットワーク

MAC アドレスのスプーフィング

L3までネットワークカードをネストすると、インターネット接続ができない。
MACアドレスのスプーフィング(なりすまし)が必要とのこと。

図30: ネスト仮想化の構成図。L1物理マシン(Precision 7770)の上にL2仮想マシン(WS22)、さらにその上にL3仮想マシン(N-WS22)がネストされている構成を示している
図30: ネスト仮想化の構成図。L1物理マシン(Precision 7770)の上にL2仮想マシン(WS22)、さらにその上にL3仮想マシン(N-WS22)がネストされている構成を示している
Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On

物理マシンのPowerShell で、下記を実行する。

図31: 管理者: Windows PowerShellの実行結果。「Get-VMNetworkAdapter -VMName ws22 | Set-VMNetworkAdapter -MacAddressSpoofing On」を実行してMACアドレスのスプーフィングを有効化している
図31: 管理者: Windows PowerShellの実行結果。「Get-VMNetworkAdapter -VMName ws22 | Set-VMNetworkAdapter -MacAddressSpoofing On」を実行してMACアドレスのスプーフィングを有効化している

ここでも良い気がする。

図32: 仮想マシンの設定画面の「高度な機能」項目。「MAC アドレスのスプーフィングを有効にする(E)」にチェックが入っている
図32: 仮想マシンの設定画面の「高度な機能」項目。「MAC アドレスのスプーフィングを有効にする(E)」にチェックが入っている

インターネットがL3でも使えるようになった。

図33: N-WS22のデスクトップ右下。「Windows Server 2022 Standard Evaluation、180日の間有効なWindowsライセンス、Build 20348.fe_release.210507-1500」の評価版透かし文字が表示されている
図33: N-WS22のデスクトップ右下。「Windows Server 2022 Standard Evaluation、180日の間有効なWindowsライセンス、Build 20348.fe_release.210507-1500」の評価版透かし文字が表示されている

インターネット接続の確認。

図34: N-WS22のデスクトップ。Chromeブラウザでzapping.beccou.comのブログページが表示されており、インターネット接続が確認できている
図34: N-WS22のデスクトップ。Chromeブラウザでzapping.beccou.comのブログページが表示されており、インターネット接続が確認できている

特に、親のVM 以外でも、ネットワークが同じなら接続可能。

図35: リモート デスクトップ接続で「192.168.0.207」に接続した画面。入れ子の仮想マシンのデスクトップが表示されている
図35: リモート デスクトップ接続で「192.168.0.207」に接続した画面。入れ子の仮想マシンのデスクトップが表示されている

ネットワーク 疎通

ホストVM 側

未接続のネットワークカードだと、IP の設定をしても通信ができないけど、
仮想スイッチを作成すると、接続できるようになる。

図36: 「仮想スイッチ マネージャー」画面。「Nested_external2」という名前で、接続の種類を「外部ネットワーク(E)」に設定して仮想スイッチを作成している
図36: 「仮想スイッチ マネージャー」画面。「Nested_external2」という名前で、接続の種類を「外部ネットワーク(E)」に設定して仮想スイッチを作成している

図37: 「ネットワーク接続」画面。「イーサネット2」(未接続)と「vEthernet (Nested_external2)」の2つのアダプターが表示されている
図37: 「ネットワーク接続」画面。「イーサネット2」(未接続)と「vEthernet (Nested_external2)」の2つのアダプターが表示されている

固定のIP とサブネットマスクのみ設定。

図38: ホストVMの「プロパティ」画面。vEthernet (Nested_external2)のIPv4アドレスが10.0.0.100に固定されている
図38: ホストVMの「プロパティ」画面。vEthernet (Nested_external2)のIPv4アドレスが10.0.0.100に固定されている

入れ子VM 側

仮想スイッチ「Nested_External2」を接続して、同様にIP を固定する。

図39: 入れ子VMの「プロパティ」画面。イーサネットのIPアドレスが10.0.0.50に固定されている
図39: 入れ子VMの「プロパティ」画面。イーサネットのIPアドレスが10.0.0.50に固定されている

疎通できる。

図40: コマンドプロンプトで10.0.0.100へpingを実行した結果。応答時間<1msで損失 0%となり、正常に疎通できている
図40: コマンドプロンプトで10.0.0.100へpingを実行した結果。応答時間<1msで損失 0%となり、正常に疎通できている

これは、ホストとクライアント間だけで、他のVM とは接続できない。

図41: 「ネットワーク接続」画面と「インターネット プロトコル バージョン 4 (TCP/IPv4)のプロパティ」ダイアログ。IPアドレスに10.0.0.10、サブネットマスクに255.0.0.0を手動で設定している
図41: 「ネットワーク接続」画面と「インターネット プロトコル バージョン 4 (TCP/IPv4)のプロパティ」ダイアログ。IPアドレスに10.0.0.10、サブネットマスクに255.0.0.0を手動で設定している

疎通できていない。
物理で言うところの、配線がつながってないんだろうなと思う。

図42: コマンド プロンプトで「ping 10.0.0.100」を実行した結果。要求がタイムアウトし、パケット ロス100%となっている
図42: コマンド プロンプトで「ping 10.0.0.100」を実行した結果。要求がタイムアウトし、パケット ロス100%となっている

ドメインに参加してみる

ありがちなシナリオとして、このサーバーをドメインに参加させてみる。
(ドメインコントローラーも仮想で作成。)

図43: ドメイン参加の構成図。L1物理マシンの下にL2仮想マシンWS22とWS22 DC(ドメインコントローラー)が並び、WS22の上にL3仮想マシンN-WS22があり、N-WS22をWS22 DCのドメインに参加させる流れを示している
図43: ドメイン参加の構成図。L1物理マシンの下にL2仮想マシンWS22とWS22 DC(ドメインコントローラー)が並び、WS22の上にL3仮想マシンN-WS22があり、N-WS22をWS22 DCのドメインに参加させる流れを示している

ドメイン作成

図44: Active Directoryドメインサービス構成ウィザードの「オプションの確認」画面。新しいフォレストの最初のドメイン コントローラーとして、ドメイン名「beccou.local」で構成する内容が表示されている
図44: Active Directoryドメインサービス構成ウィザードの「オプションの確認」画面。新しいフォレストの最初のドメイン コントローラーとして、ドメイン名「beccou.local」で構成する内容が表示されている
図45: 「前提条件のチェック」画面。「すべての前提条件のチェックに合格しました」と表示され、インストールを開始できる状態になっている
図45: 「前提条件のチェック」画面。「すべての前提条件のチェックに合格しました」と表示され、インストールを開始できる状態になっている
図46: Active Directoryドメインサービス構成ウィザードの「結果」画面。「このサーバーはドメイン コントローラーとして正常に構成されました」と表示されている
図46: Active Directoryドメインサービス構成ウィザードの「結果」画面。「このサーバーはドメイン コントローラーとして正常に構成されました」と表示されている

ドメイン参加

ドメイン参加後、入れ子になっている Hyper-V は起動できた。

図47: ホストVMと入れ子VM、それぞれの「サーバー マネージャー ・ ローカル サーバー」画面。ドメイン参加後も入れ子のHyper-Vが正常に起動できている
図47: ホストVMと入れ子VM、それぞれの「サーバー マネージャー ・ ローカル サーバー」画面。ドメイン参加後も入れ子のHyper-Vが正常に起動できている

とりあえず、こんな感じにて、以上です。

(Visited 36 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です