2012R2のHyper-Vでvmのレプリケーションをしてみる。
AD建てるのめんどくさいって理由でWORKGROUPで。ただ、ライブマイグレーションではどっちみちドメインに所属していにゃいと使えにゃいので、その辺もやりたいにゃら別途ADを建てて参加させた方がよい。
src_sv::
makecert -pe -n "CN=PrimaryTestRootCA" -ss root -sr LocalMachine -sky signature -r "PrimaryTestRootCA.cer"
makecert -pe -n "CN=<FQDN>" -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 "PrimaryTestRootCA" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 PrimaryTestCert.cer
makecertはVSにゃんかをinstするとついてくる。
尚powershellから叩くとこける。
dst_sv::
Enable-Netfirewallrule -displayname "Hyper-V レプリカ HTTPS リスナー (TCP 受信)"
makecert -pe -n "CN=ReplicaTestRootCA" -ss root -sr LocalMachine -sky signature -r "ReplicaTestRootCA.cer"
makecert -pe -n "CN=<FQDN>" -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 "ReplicaTestRootCA" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 ReplicaTest.cer
確認や削除は、mmc->ファイル->追加->証明書->追加->コンピューターアカウント で個人、信頼されたルート証明機関に増える項目が当該する。
src_sv::
copy dst_sv\\ReplicaTestRootCA.cer .
certutil -addstore -f Root "ReplicaTestRootCA.cer"
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f
dst_sv::
copy src_sv\\ReplicaTestRootCA.cer .
certutil -addstore -f Root "PrimaryTestRootCA.cer"
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f
あとは大体GUIからレプリケーションの構成だのを設定すれば通るはず。ドメイン構成にゃら上の作業全部要らにゃいのでやっぱりドメインでやった方がいろいろ楽。
30秒ごとに稼働中のvmがレプリケーションされるってのはにゃかにゃかおいしい機能にゃんだが、当然vmのHDDだけにゃので稼働中のアプリやらサービス部分は保護されにゃい。
レプリケーション元vmのチェックポイントは全て削除される。元vmの古いチェックポイントには戻れにゃい。このあたりは事前に元vmをコピーしておくと問題にゃいのかもしれにゃいが、普通にやると受け側でチェックポイント操作すると何故か統合される。
先vmには元vmの設定で1時間に1回最大24回分の回復ポイントが生成できる。このあたりチェックポイントと同じ実装の方が分かりやすいんだが、独自の専用ファイルににゃっている。実際どうにゃってるのかは調べてにゃいが、vmへの書き込みデータをvhdとレプリケーション用テンポラリファイルとへ2重に出力して、後者を転送している。vhdのチェックポイントより上のレイヤで書き込みを複製転送してる感じ。
よって先vmにはユーザー操作で別途好きにゃタイミングでチェックポイントを作ることが出来る。それはそれで自由度高いが元vmでつくったチェックポイントは複製されにゃいから、特定状態のチェックポイントを作った状態を複製するのはめんどくさそう。元vmでsnapshot作ってレプリカで転送されたところをバックアップにすればいいよね、とか思ってたがそういう使い方は出来にゃいようで。チェックポイント作る→robocopyかにゃにかでミラーリング、のほうが扱いやすいのだが。