HYPER-V レプリカを WORKGROUP 環境で動作させる

はじめに

HYPER-V レプリカを WORKGROUP 環境で動作させるためには、証明書認証が必須となります。

今回は、ESXi 上に作成した Windows Server 2016Hyper-V を使用してレプリカを設定し、動作確認まで行います。

環境

ESX i6.7 on Hyper-V × 2

目次

  1. Hyper-V仮想マシンの設定変更
  2. 役割と機能の追加(Hyper-Vの役割追加)
  3. Windows SDKのインストール
  4. 証明書作成およびインポート
  5. Hyper-Vレプリカの構成
  6. 動作確認

Hyper-V 仮想マシンの設定変更

  1. Hyper-V用に仮想マシンを2台作成し、Windows Server 2016をインストールしておきます。
  2. ESXi 上で Hyper-V の役割をインストールするために、Hyper-V仮想マシンの設定を変更します。

「設定の編集」を開き、「ハードウェアアシストによる仮想化をゲストOSに公開する」をチェックします。

このメニューが表示されない ESXi バージョンの場合、以下を vmx に設定します。
hypervisor.cpuid.v0="FALSE"
vhv.enable="TRUE"

back

役割と機能の追加(Hyper-V の役割追加)

  • サーバマネージャから Hyper-V を追加します。

Hyper-V の追加時に「仮想スイッチの作成」や「ライブマイグレーション」の設定は行いません。

back

Windows SDKのインストール

Windows SDK に含まれる、makecert.exe を使用して証明書を作成するため Windows SDK のインストールは必須です。

1. Windows SDK をダウンロードします。

Windows SDK 入手先:

「インストーラをダウンロードする」を押下し、ダウンロードし実行します。

2. Windows SDKをインストールします。

すべての「機能」にチェックをつけたまま、「Install」を押下します。

どの機能にmakecert.exeが含まれるのか調べていないためすべて選択しています。

back

証明書作成及びインポート

1. makecert.exeをC:¥直下にコピーします。

makecert.exe格納パス:C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x64

Hyper-V#2のC:¥直下にも合わせてコピーしておきます。

2. Hyper-V#1の証明書の作成

ルート証明書作成のために、以下のコマンドを実行します。

C:\makecert.exe -pe -n "CN=Primary-RootCA" -ss root -sr LocalMachine -sky signature -r "c:\Primary-RootCA.cer"

次にサーバ証明書作成のために、以下のコマンドを実行します。

※CNにはFQDNを設定します。

C:\makecert.exe -pe -n "CN=HYPER-V1" -ss my -sr LocalMachine -sky exchange -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2 -in "Primary-RootCA" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 "c:\Primary.cer"

3. Hyper-V#2の証明書の作成

ルート証明書作成のために、以下のコマンドを実行します。

C:\makecert.exe -pe -n "CN=Secondary-RootCA" -ss root -sr LocalMachine -sky signature -r "c:\Secondary-RootCA.cer"

次にサーバ証明書作成のために、以下のコマンドを実行します。

※CNにはFQDNを設定します。

C:\makecert.exe -pe -n "CN=HYPER-V2" -ss my -sr LocalMachine -sky exchange -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2 -in "Secondary-RootCA" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 "c:\Secondary.cer"

4. Hyper-V#1のPrimary-RootCA.cerをHyper-V#2にコピーします。

5. Hyper-V#2のSecondary-RootCA.cerをHyper-V#1にコピーします。

6. Hyper-V#1にコピーしたSecondary-RootCA.cerを証明書ストアにインストールします。

7. Hyper-V#2にコピーしたPrimary-RootCA.cerを証明書ストアにインストールします。

back

Hyper-Vレプリカの構成

1. Hyper-V#1のレプリカを構成します。

エラーが発生しました。

証明書の失効確認を無効化するため、レジストリエントリを追加します。

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f

再度、「適用」を押下します。

適用されました。

2. Hyper-V#2のレプリカを構成します。

Hyper-V#1と同様の手順で設定します。

「適用」を押下する前に証明書の失効確認を無効化するため、レジストリエントリを追加します。

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f

back

動作確認

Hyper-Vレプリカが正常に構成されましたので、仮想マシンを作成し、動作確認をしましょう。

CentOS7.5を最小構成で適当にインストールし、レプリケーションを確認します。

ここからはちょっと端折ります。

1. 仮想マシンの作成

2. OSインストール

3. レプリケーションの有効化

対象の仮想マシンを選択し、「レプリケーションを有効にする」を押下します。

レプリカサーバとしてHyper-V#2を指定します。

証明書を選択します。

レプリケーションが有効になりましたので、状態を確認します。

仮想マシンを右クリックし、「レプリケーション」→「レプリケーションの正常性の表示」を押下します。

レプリケーションの正常性が「標準」となっており、正常であることが確認できます。

それでは、次にHyper-V#2でも確認してみましょう。

レプリケーション有効化前には存在しなかった仮想マシンが表示されていることが確認できます。

正常性を確認します。

仮想マシンを右クリックし、「レプリケーション」→「レプリケーションの正常性の表示」を押下します。

レプリケーションの正常性が「標準」となっており、正常であることが確認できました。

フェイルオーバーを実施してレプリカサーバで正常に仮想マシンが使用可能かどうかの確認までしてみると良いですね。

back