BCPとしてClusterReplicaでできる事とその仕組みを教えて下さい。

ご質問の詳細

現在運用しているシステムのBCP(障害対策)を検討しており、ClusterReplicaを使って要件を満たす事ができるのかを確認させて頂きたいと考えています。

つきましては、ClusterReplicaが、どのような仕組みで、どのような事が実現できるのかを教えて下さい。

回答

ClusterReplicaは、共有ディスクを用いることなく、2台のサーバ間でのデータファイルの複製と障害時のフェイルオーバーを行うことができる製品となっております。

 まず初めに、2台のサーバの役割によりClusterReplica内でのサーバの呼称をご説明いたします。

 複製するデータファイルを持ち、本番機として稼働しているサーバを"Primary station(プライマリステーション)"と呼びます。

 複製されるデータファイルを受けるだけの2台目のサーバを"Replica station(レプリカステーション)と呼びます。

 複製されるデータファイルを受けながら、"Primary"機に障害が発生した際、それまでに受信したデータファイルを使い、"Primary"機の代わりにサービスを提供(フェイルオーバー)するサーバを
 "Secondary station(セカンダリステーション)”と呼びます。

 BCPの目的が、データ保護の場合には、Primary <-> Replica の組み合わせ、サービスの継続の場合には、Primary <-> Secondary の組み合わせとなります。

 フェイルオーバーの設定の有無で、自動的に2台目のサーバが"Replica station" か "Secondary station"かが決まります。

 これらの役割による製品のご選択は不要で、ClusterReplicaをサーバの台数分お持ちいただければ、どちらの組み合わせでもご使用可能です。

 次に、データファイルの複製についてご説明いたします。
 データファイルを複製する製品には大きく2つのタイプがあり、「同期型」「非同期型」に分かれます。

 「同期型」は、クライアントからサーバへのデータ書き込み要求があった際、受信したサーバが、もう一台のサーバにも書き込み(複製)要求を行い、2台のサーバへの書き込みが完了してからクライアントへOKを返すものです。
 メリットは、データファイルが2台のサーバに書き込まれていることを確保できることですが、デメリットとしてはクライアント側から見るとレスポンスが遅くなることです。

 もう一方の「非同期型」は、クライアントからの要求を受け付けたサーバに書き込みが完了すれば、クライアントへOKを返し、その後バックグラウンドでもう一台のサーバへの書き込み(複製)要求を
 行います。
 メリットは、サーバ1台構成とほとんど変わらないクライアントへのレスポンスが得られること、デメリットは、若干の時間ですが、サーバ間のデータファイルに差異が生まれること(そのため非同期型と呼ばれます)です。
 ClusterReplicaは、「非同期型」のタイプに分類される製品です。

 データファイルの複製の設定にあたりましては、
 - ファイルの場合には、複製対象のフォルダを指定します。
 - データベース(対象は、SQL Serverのみ)やIISの場合には、専用のテンプレートを使って複製対象を指定します。

 続きまして、フェイルオーバーについてご説明いたします。
 Primary <-> Secondary の構成となります。

 データ複製は、Primary -> Secondary の方向で行われ、フェイルオーバーは、Secondary -> Primary で常時稼働状況を監視し、異常があった際に、Secondaryは自身をPrimaryへと
 昇格させて、サービスの継続を図ります。

 監視は、ping によるサーバ監視のほか、Windowsサービス内の指定したサービスが「開始」状態であることを確認します。
 これらを15秒(デフォルト値)間隔で確認し、異常があれば、フェイルオーバーを開始します。
 システムにもよりますが、約1分から3分ほどで完了します。

 フェイルオーバー設定を行うにあたりまして、サーバだけが切り替わっても、クライアントからのアクセスができないと
 意味がないため、ClusterReplicaでは次の2つの方法があります。

 1つは、同一セグメントに障害対策としてサーバが2台ある場合に用いられる、「共有IPアドレス/共有NetBIOS名」の方法です。
 こちらの方法では、2台のサーバがそれぞれ個別に持つIPアドレスやホスト名に加えて、Primary側で加えて持つ情報となります。
 フェイルオーバー時には、Secondary側がPrimaryになるときに、これらの情報を引き継ぐため、クライアントからはそのままの「IPアドレス、NetBIOS名」の指定でアクセスができます。

 2つ目は、「DNSリダイレクト」と呼ぶ方法で、今回のBCP対策で有効な方法です。
 遠隔地にサイトを持たれる場合、ネットワークの組み方にもよりますが、多くの場合、本番サイトと遠隔地サイトでネットワークのセグメントが違います。
 この場合、前述の「共有IPアドレス」の方法ですと、セグメントが異なるところにIPアドレスを引き継いでも、クライアントからはアクセスができません。

 これに対し、ClusterReplicaでは、フェイルオーバー時にDNSサーバ(ActiveDirectoryのDNSのみ対象)へレコードの書き換えを実施する事ができます。
 対応するホスト名のAレコードが、遠隔地サイトで使えるIPアドレスへと変換されるため、ホスト名を使ってアクセスしてくるクライアントからも接続できるようになります。