どうもミツシマです。
今回はWindows ServerのHyper-VレプリケーションをWORKGROUP環境(SSL証明書を用いた方法)で構築する手順を検証してみました。
検証環境は以下のとおりです。
SV:Windows Server2016 (hyperv-sv)
SV:Windows Server2016 (replica-sv)
構築検証に辺り下記サイトが非常に参考になりました。
Windows Server 2016: Configuring Hyper-V Replica in a workgroup environment – Part1
Hyper-V Replica Certificate Based Authentication - makecert
今回はWindows ServerのHyper-VレプリケーションをWORKGROUP環境(SSL証明書を用いた方法)で構築する手順を検証してみました。
検証環境は以下のとおりです。
SV:Windows Server2016 (hyperv-sv)
SV:Windows Server2016 (replica-sv)
構築検証に辺り下記サイトが非常に参考になりました。
Windows Server 2016: Configuring Hyper-V Replica in a workgroup environment – Part1
Hyper-V Replica Certificate Based Authentication - makecert
〜検証〜
全体的な手順としては以下のような感じです。- Hyper-Vホスト(プライマリ機)にて証明書発行コマンドをPowershellで実行する
(注)この時に作成する証明書は、プライマリ機用とレプリカ機用の2種類です - プライマリ機にて中間CA証明書を「信頼されたルート証明機関」に配置する
- プライマリ機にて「レプリカ機用の証明書」と「中間CA証明書」の2つをエクスポートする
- レプリカ機にて「中間CA証明書」を「信頼されたルート証明機関」へインポートする
- レプリカ機にて「レプリカ機用の証明書」をインポートする
- プライマリ機とレプリカ機の両方にてレジストリ設定を実施する
- レプリカ機にてファイアウォールを構成する
- レプリカ機にてHyper-Vレプリケーションの設定を実施する
- プライマリ機にて対象仮想マシンのレプリケーションを有効化する
では早速実施してみます。
①プライマリ機
まずは証明書の発行コマンドから。
実際のコマンドは以下のような感じです。

今回のコマンドとしては「-TestRoot」というのが一つのキーとなります。
※Hyper-Vレプリケーション用の証明書は自己証明書(オレオレ証明書)が使えないようなので、(TEST的な)CA証明書機関が発行する証明書を作ることを意味しています!!
実際に作成した証明書は「mmc」から確認が出来ます。
(「ファイル名を指定して実行」から「mmc」を開き、「証明書」-「ローカルコンピュータ」をスナップインとして追加します)

実際に証明書を確認すると発行者が「CertReq Test Root」となっていますね。
この中間CA証明書は、「中間証明書機関」にあります。

②プライマリ機
これを「信頼されたルート証明機関」にドラッグアンドドラップで持ってきます。
すると先程信頼性が確認出来なかった証明書が信頼されるようになります。


③プライマリ機
「レプリカ機用の証明書」と「中間CA証明書」をエクスポートします。
対象の証明書を右クリックし、「すべてのタスク」-「エクスポート」から実施します。
(注)下記画面では「hyper-sv」証明書をエクスポートしている画面となっていますが、必要なものは「レプリカ機」用の証明書エクスポートなので実際には「replica-sv」証明書で下記操作を実施します!!



※この時、秘密キーも一緒にエクスポートします!!




続いて同様の手順にて「中間CA証明書」もエクスポートします。




2つの証明書がエクスポート出来たら、レプリカ機にそのファイルをコピーします。
④レプリカ機
コピーしてきた「中間CA証明書」を「信頼されたルート証明機関」へインポートします。
証明書ファイルをダブルクリック等で開き、「証明書をインストール」を実行します。




以上で、中間CA証明書のインポートが完了です。
⑤レプリカ機
続いて「レプリカ機用の証明書」をインポートします。
プライマリ機の時と同様に「mmc」を開いて実行します。






インポートされた証明書はこんな感じです。

⑥プライマリ機・レプリカ機
両方のサーバにてレジストリ値の変更を行います。
結局は使用している証明書が自己署名証明書になるので、それを使えるようにする感じの変更です(正しいニュアンスは違いますが)。
コマンドでやる場合には以下となります。
GUIだと以下の場所にある「DisableCertRevocationCheck」を「1」に変更します。

⑦レプリカ機
レプリカ機にファイアウォールの設定を構成します。
「Hyper-V レプリカ HTTPSリスナー(TCP受信)」を有効にします。

ここまででレプリケーション準備は完了です!!
⑧レプリカ機
それでは実際にレプリカ機にHyper-Vレプリケーション機能を有効にしていきます。
Hyper-Vマネージャから「レプリケーションの構成」を「有効」にします。
その際「証明書ベースの認証を使用する(HTTPS)」を選択し、作成した証明書を選択します。



※今回は特に指定ないので「認証されたすべてのサーバーからのレプリケーションを許可する」を選択しています。サーバを指定したい場合には「指定したサーバーからのレプリケーションを許可する」を選択します。

※警告が表示されますが、「OK」で問題ないです。
以上で、レプリカ機側の設定はすべて完了です。
最後にプライマリ機側で仮想マシンのレプリケーションを有効化します。
⑨プライマリ機
Hyper-Vマネージャからレプリケーションしたい仮想マシンを選択の上、「レプリケーションを有効にする」を実行します。









ここまででエラーが出なければ構成成功です!!
初期同期が完了することを確認して、正常性をチェックします。

良かった〜〜上手くいった〜〜〜(*^^*)
今回はこんなところで検証完了です。
今まですごく興味があったことなので今回検証出来て良かったです!!
次回はレプリケーションのフェールオーバー等の動きもみてみたいと考えてます!!
(2020/10/20追記)
「計画フェールオーバー」等でレプリケーションの反転をするために、本番系(レプリケーション元)サーバーでも「レプリケーションの有効化」と「Windowsファイアウォール」の設定、コマンドの実行も予め設定したほうが良いと感じました。
詳しくは「(Hyper-V)レプリケーション環境で計画フェールオーバーを試してみた」を参照ください。
P.S.実運用環境であれば、AD環境を構築してレプリケーションした方が絶対良いとは思いますね(^o^)
①プライマリ機
まずは証明書の発行コマンドから。
実際のコマンドは以下のような感じです。
New-SelfSignedCertificate -Subject <ホスト名> -DnsName <ホスト名> -CertStoreLocation "cert:¥LocalMachine¥My" -HashAlgorithm SHA256 -KeyAlgorithm RSA -KeyLength 2048 -KeyExportPolicy Exportable -NotAfter (Get-Date).AddYears(10) -TestRoot

今回のコマンドとしては「-TestRoot」というのが一つのキーとなります。
※Hyper-Vレプリケーション用の証明書は自己証明書(オレオレ証明書)が使えないようなので、(TEST的な)CA証明書機関が発行する証明書を作ることを意味しています!!
実際に作成した証明書は「mmc」から確認が出来ます。
(「ファイル名を指定して実行」から「mmc」を開き、「証明書」-「ローカルコンピュータ」をスナップインとして追加します)

実際に証明書を確認すると発行者が「CertReq Test Root」となっていますね。
この中間CA証明書は、「中間証明書機関」にあります。

②プライマリ機
これを「信頼されたルート証明機関」にドラッグアンドドラップで持ってきます。
すると先程信頼性が確認出来なかった証明書が信頼されるようになります。


③プライマリ機
「レプリカ機用の証明書」と「中間CA証明書」をエクスポートします。
対象の証明書を右クリックし、「すべてのタスク」-「エクスポート」から実施します。
(注)下記画面では「hyper-sv」証明書をエクスポートしている画面となっていますが、必要なものは「レプリカ機」用の証明書エクスポートなので実際には「replica-sv」証明書で下記操作を実施します!!



※この時、秘密キーも一緒にエクスポートします!!




続いて同様の手順にて「中間CA証明書」もエクスポートします。




2つの証明書がエクスポート出来たら、レプリカ機にそのファイルをコピーします。
④レプリカ機
コピーしてきた「中間CA証明書」を「信頼されたルート証明機関」へインポートします。
証明書ファイルをダブルクリック等で開き、「証明書をインストール」を実行します。




以上で、中間CA証明書のインポートが完了です。
⑤レプリカ機
続いて「レプリカ機用の証明書」をインポートします。
プライマリ機の時と同様に「mmc」を開いて実行します。






インポートされた証明書はこんな感じです。

⑥プライマリ機・レプリカ機
両方のサーバにてレジストリ値の変更を行います。
結局は使用している証明書が自己署名証明書になるので、それを使えるようにする感じの変更です(正しいニュアンスは違いますが)。
コマンドでやる場合には以下となります。
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f
GUIだと以下の場所にある「DisableCertRevocationCheck」を「1」に変更します。

⑦レプリカ機
レプリカ機にファイアウォールの設定を構成します。
「Hyper-V レプリカ HTTPSリスナー(TCP受信)」を有効にします。

ここまででレプリケーション準備は完了です!!
⑧レプリカ機
それでは実際にレプリカ機にHyper-Vレプリケーション機能を有効にしていきます。
Hyper-Vマネージャから「レプリケーションの構成」を「有効」にします。
その際「証明書ベースの認証を使用する(HTTPS)」を選択し、作成した証明書を選択します。



※今回は特に指定ないので「認証されたすべてのサーバーからのレプリケーションを許可する」を選択しています。サーバを指定したい場合には「指定したサーバーからのレプリケーションを許可する」を選択します。

※警告が表示されますが、「OK」で問題ないです。
以上で、レプリカ機側の設定はすべて完了です。
最後にプライマリ機側で仮想マシンのレプリケーションを有効化します。
⑨プライマリ機
Hyper-Vマネージャからレプリケーションしたい仮想マシンを選択の上、「レプリケーションを有効にする」を実行します。









ここまででエラーが出なければ構成成功です!!
初期同期が完了することを確認して、正常性をチェックします。

良かった〜〜上手くいった〜〜〜(*^^*)
今回はこんなところで検証完了です。
今まですごく興味があったことなので今回検証出来て良かったです!!
次回はレプリケーションのフェールオーバー等の動きもみてみたいと考えてます!!
(2020/10/20追記)
「計画フェールオーバー」等でレプリケーションの反転をするために、本番系(レプリケーション元)サーバーでも「レプリケーションの有効化」と「Windowsファイアウォール」の設定、コマンドの実行も予め設定したほうが良いと感じました。
詳しくは「(Hyper-V)レプリケーション環境で計画フェールオーバーを試してみた」を参照ください。
P.S.実運用環境であれば、AD環境を構築してレプリケーションした方が絶対良いとは思いますね(^o^)
スポンサードリンク
コメント