どうもミツシマです。

今回は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


〜検証〜

全体的な手順としては以下のような感じです。
  1. Hyper-Vホスト(プライマリ機)にて証明書発行コマンドをPowershellで実行する
    (注)この時に作成する証明書は、プライマリ機用とレプリカ機用の2種類です
  2. プライマリ機にて中間CA証明書を「信頼されたルート証明機関」に配置する
  3. プライマリ機にて「レプリカ機用の証明書」と「中間CA証明書」の2つをエクスポートする
  4. レプリカ機にて「中間CA証明書」を「信頼されたルート証明機関」へインポートする
  5. レプリカ機にて「レプリカ機用の証明書」をインポートする
  6. プライマリ機とレプリカ機の両方にてレジストリ設定を実施する
  7. レプリカ機にてファイアウォールを構成する
  8. レプリカ機にてHyper-Vレプリケーションの設定を実施する
  9. プライマリ機にて対象仮想マシンのレプリケーションを有効化する

では早速実施してみます。
プライマリ機
まずは証明書の発行コマンドから。
実際のコマンドは以下のような感じです。
New-SelfSignedCertificate -Subject <ホスト名> -DnsName <ホスト名> -CertStoreLocation "cert:¥LocalMachine¥My" -HashAlgorithm SHA256 -KeyAlgorithm RSA -KeyLength 2048 -KeyExportPolicy Exportable -NotAfter (Get-Date).AddYears(10) -TestRoot

01証明書作成コマンド

今回のコマンドとしては「-TestRoot」というのが一つのキーとなります。
※Hyper-Vレプリケーション用の証明書は自己証明書(オレオレ証明書)が使えないようなので、(TEST的な)CA証明書機関が発行する証明書を作ることを意味しています!!

実際に作成した証明書は「mmc」から確認が出来ます。
(「ファイル名を指定して実行」から「mmc」を開き、「証明書」-「ローカルコンピュータ」をスナップインとして追加します)
02証明書1
実際に証明書を確認すると発行者が「CertReq Test Root」となっていますね。
この中間CA証明書は、「中間証明書機関」にあります。
03中間CA証明書

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

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

09証明書エクスポート4
10証明書エクスポート5
11証明書エクスポート6
12証明書エクスポート7

続いて同様の手順にて「中間CA証明書」もエクスポートします。
13TESTROOT1
14TESTROOT2
15TESTROOT3
16TESTROOT4

2つの証明書がエクスポート出来たら、レプリカ機にそのファイルをコピーします。

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

26TESTCA証明書インストール
27TESTCAインストール28TESTCAインストール29TESTCAインストール

以上で、中間CA証明書のインポートが完了です。

⑤レプリカ機
続いて「レプリカ機用の証明書」をインポートします。
プライマリ機の時と同様に「mmc」を開いて実行します。

20レプリカ側証明書インポート
21証明書インポート1
22証明書インポート2
23証明書インポート3
24証明書インポート4
25証明書インポート5

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

30証明書インストール後確認


⑥プライマリ機・レプリカ機
両方のサーバにてレジストリ値の変更を行います。
結局は使用している証明書が自己署名証明書になるので、それを使えるようにする感じの変更です(正しいニュアンスは違いますが)。

コマンドでやる場合には以下となります。
reg add  "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f

GUIだと以下の場所にある「DisableCertRevocationCheck」を「1」に変更します。
30レジストリ


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


ここまででレプリケーション準備は完了です!!

⑧レプリカ機
それでは実際にレプリカ機にHyper-Vレプリケーション機能を有効にしていきます。
Hyper-Vマネージャから「レプリケーションの構成」を「有効」にします。
その際「証明書ベースの認証を使用する(HTTPS)」を選択し、作成した証明書を選択します。
31レプリカサーバ設定32レプリカサーバ設定
33レプリカサーバ設定
※今回は特に指定ないので「認証されたすべてのサーバーからのレプリケーションを許可する」を選択しています。サーバを指定したい場合には「指定したサーバーからのレプリケーションを許可する」を選択します。


34レプリカサーバ
※警告が表示されますが、「OK」で問題ないです。

以上で、レプリカ機側の設定はすべて完了です。
最後にプライマリ機側で仮想マシンのレプリケーションを有効化します。

プライマリ機
Hyper-Vマネージャからレプリケーションしたい仮想マシンを選択の上、「レプリケーションを有効にする」を実行します。
36レプリケーション有効
37レプリケーション有効
38レプリケーション有効
39レプリケーション有効
40レプリケーション有効
41レプリケーション有効
42レプリケーション有効
43レプリケーション有効
44レプリケーション有効

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

良かった〜〜上手くいった〜〜〜(*^^*)

今回はこんなところで検証完了です。
今まですごく興味があったことなので今回検証出来て良かったです!!
次回はレプリケーションのフェールオーバー等の動きもみてみたいと考えてます!!


(2020/10/20追記)
計画フェールオーバー」等でレプリケーションの反転をするために、本番系(レプリケーション元)サーバーでも「レプリケーションの有効化」と「Windowsファイアウォール」の設定、コマンドの実行も予め設定したほうが良いと感じました。
詳しくは「(Hyper-V)レプリケーション環境で計画フェールオーバーを試してみた」を参照ください。


P.S.実運用環境であれば、AD環境を構築してレプリケーションした方が絶対良いとは思いますね(^o^)
スポンサードリンク