Hyper-V レプリカ機能のフェールオーバーとレプリケーションの反転 (計画外フェールオーバー編)

Last Update: feedback 共有

※ 本記事は弊社の Technet から移行した記事です。
いつも弊社製品をご利用いただきまして誠にありがとうございます。日本マイクロソフトの Windows サポートチームです。

今回は、Hyper-V レプリカ機能のフェールオーバーとレプリケーションの反転についてご紹介いたします。

最近、お問い合わせをいただく中で、フェールオーバーは実施されたものの、レプリケーションの反転が行われていない状況を多数お伺いすることが多いため、本ブログでは、”フェールオーバー” だけでなく、”レプリケーションの反転” についても、あわせてご紹介させていただきます。

Hyper-V レプリカは、Windows Server 2012 以降の Hyper-V 環境で利用可能となった仮想マシンのレプリケーション ソリューションです。定期的に仮想マシンのデータのコピーを別の Hyper-V ホストに送信し、業務提供中の Hyper-V ホスト ( プライマリ サーバー ) が災害などで利用できなくなった場合でも、レプリカ サーバーで複製されたデータを利用して仮想マシンを起動し、業務を継続することができます。

このように、Hyper-V レプリカ機能のフェールオーバーは、主に災害対策などの目的で利用される機能のため、ホスト OS の障害時に自動でフェールオーバーを実行する機能ではありません。Hyper-V レプリカ機能のフェールオーバーの実行は、人が判断する必要があります。

Hyper-V レプリカのフェールオーバーには “計画フェールオーバー” と 計画外の”フェールオーバー” の 2 種類があります。

  • 計画フェールオーバー
    データセンターの計画停電や物理サーバーのメンテナンスなど、計画されたサーバーの停止時に行われるフェールオーバーで、プライマリ サーバーとレプリカ サーバーのどちらも利用可能な状態で行います。プライマリ サーバーの最新の状態をレプリカ サーバーに送り、データの損失なくフェールオーバーを行うことが可能です。

  • 計画外フェールオーバー
    プライマリ サーバーがダウン状態の際に行われるフェールオーバーで、レプリカ サーバーにすでに送られたデータを利用して行います。Hyper-V レプリカでは、複数の回復ポイントを維持することができます。フェールオーバーの際、どの回復ポイントを利用するかを選択できますが、選択した回復ポイントから現在にいたるまでにプライマリ サーバーで行われた更新は、レプリカ サーバー側に反映されないため、最新の回復ポイントを選択した場合でも、データの損失が発生します。

この 2 種類のフェールオーバーのうち、本ブログでは、計画外フェールオーバーと、それに伴うレプリケーションの反転の具体的な処理内容についてご紹介いたします。

計画フェールオーバーについては、 Hyper-V レプリカ機能のフェールオーバーとレプリケーションの反転 ( 計画フェールオーバー編 ) をご参照ください。

計画外フェールオーバーの処理内容
計画外フェールオーバーは、プライマリ サーバーがダウンした状態で行われることが想定されているため、レプリカ サーバー側から作業を行います。

計画外のフェールオーバーおよびその反転を GUI から行った場合、PowerShell コマンドレットで行う場合の複数の操作が連続して行われます。先述の公開情報を参考にした PowerShell コマンドレットによる計画外のフェールオーバーおよびレプリケーションの反転の操作は、以下の通りです。ここでは説明のためにコマンドの順番を入れ替えておりますが、PowerShell コマンドレットで実行する場合でも、以下の順番で実行いただいても問題はありません。

# (1) 計画外フェールオーバーの実行  
Start-VMFailover -VMName $VMName -ComputerName $Replica
# (2) 仮想マシンの起動  
Start-VM -VMName $VMName -ComputerName $Replica  
# (3) フェールオーバーの完了  
Complete-VMFailover -VMName $VMName -ComputerName $Replica  

# 以下は、プライマリ サーバーの復旧後に実施  
# (4) レプリカ モードの反転 (プライマリ サーバー)  
Set-VMReplication -VMName $VMName -AsReplica -ComputerName $Primary  
# (5) レプリケーションの反転  
Set-VMReplication -VMName $VMName -Reverse -ReplicaServerName $Primary -ComputerName $Replica  
# (6) レプリケーションの再開  
Start-VMInitialReplication -VMName $VMName -ComputerName $Replica  

※ 変数はそれぞれ以下の値を設定します。
$VMName = フェールオーバー対象の VM 名
$Primary = プライマリ サーバー名
$Replica = レプリカ サーバー名

本操作を GUI で行った場合、レプリカ サーバーにて仮想マシンの右クリックのレプリケーション メニューから、”フェールオーバー” を実行すると、PowerShell コマンドレットの場合の (1) (2) が実行されます。この時点では、まだ “フェールオーバー” が完了していないため、メニューから “フェールオーバーの取り消し” を実施することができます。

しかし、PowerShell コマンドレットの (3) もしくは GUI 操作の “回復ポイントの削除” を実行することで、レプリカ サーバー側で業務提供することが決定されたことになり、フェールオーバーの取り消しを行うことができなくなります。

また、フェールオーバー後、レプリケーションの反転を GUI から行った場合、(3) - (6) の操作が実施されます。このときの注意点として、本操作は 1 つの GUI 操作にて複数の処理を実施する操作であるため、なんらかの原因でレプリケーションの反転に失敗した場合においても、いくつかの操作がすでに実行されている場合があります。本操作の失敗時には、レプリケーションの反転ウィザードを “キャンセル” する必要がありますが、すでに一部の処理が実行されているため、その後にフェールオーバーの取り消しなどを行った場合でも、レプリケーションの開始に失敗します。まずは、レプリケーションの反転が失敗した要因を解消してから、再度レプリケーションの反転を行ってください。

これらの操作がすべて完了した時点で、プライマリ サーバーとレプリカ サーバーの役割が入れ替わります。再度、プライマリ サーバーとレプリカ サーバーの役割を反転させるためには、計画フェールオーバーを実施する必要があります。計画フェールオーバーについては、Hyper-V レプリカ機能のフェールオーバーとレプリケーションの反転 ( 計画フェールオーバー編 ) にて紹介しておりますので、こちらもご参考としていただければ幸いです。

まとめ

Hyper-V レプリカのフェールオーバーには、”計画フェールオーバー” と計画外の “フェールオーバー” の 2 種類あり、それぞれの役割や操作手順が異なります。Hyper-V レプリカの利用を検討する際には、計画フェールオーバー、および計画外フェールオーバーを利用する状況や手順だけでなく、フェールオーバーの反転を行う手順、再フェールオーバーによる切り戻しの手順も併せてご検討ください。また、フェールオーバーの実行とレプリケーションの反転をそれぞれ PowerShell コマンドレットと GUI 操作を併用して行う運用を計画をされている場合は、実行される操作の対応をご確認ください。

いかがでしたでしょうか。本投稿が少しでも皆様のお役に立てば幸いです。
(※ 2017 年 02 月 24 日に Ask Core Microsoft Japan Windows Technology Support に公開した情報のアーカイブです。)