HAクラスタは、複数のコンピュータ(以下、ノードと呼ぶ)が相互に通信して健全性を確認し、健全なノードのどれかでサービスを提供することによって、全体として可用性を高める。

 したがってHAクラスタには、次の2つの要素が不可欠だ(図1)。

・健全性を相互に確認するためのノード間の通信
・健全なノードでサービスを動かすための判断と制御の仕組み

 前者を担当するのがHeartbeat、後者を担当するのがPacemakerになる。

図1●HeartbeatとPacemakerの役割

Heartbeat

 Heartbeatは「クラスタノード管理システム」として動作する。Heartbeatを実行しているノードは、「ハートビート」と呼ぶパケットを他のノードに向けて定期的に送信する。他のノードは、応答を返す。一定時間以上応答がないノードは、ダウンしたと見なされて、クラスタノードから取り除かれる。

 これに加えて、HeartbeatはPacemakerが必要とする通信を仲介し、HeartbeatとPacemakerの実行ログを管理する。

Pacemaker

 一方Pacemakerは「クラスタリソース管理システム」だ。リソースとは、アクティブなノードで有効化されたり実行されるサービスである。

 データベースでコンテンツを管理するコンテンツ管理システムを例にとると、Pacemakerはアクティブなノード側で次のリソースを順番に起動する(図2)。

1. DRBDを起動してプライマリにする
2. DRBDが管理するデータ領域にアクセスできるよう、これをマウントする
3. 外部からアクセスするために使う仮想IPアドレスを有効にする
4. データベースサーバーを起動する
5. Webサーバーを起動する

図2●リソース同士の関係

 DRBDリソースだけはスタンバイノードでも起動され、DRBDの状態はセカンダリになる。こうしておけば、アクティブ側でディスクに書き込まれたデータがスタンバイ側にもレプリケートされる。

 Pacemakerは、いったん起動したリソースの状況を定期的に監視する。リソースが正常に動作していなければ、再起動を試みる。再起動も失敗して再起不能と判断されたら、Pacemakerは関連するリソース全体を他の適切なノード(1対1のクラスタの場合はスタンバイノード)に移動する。これがフェイルオーバーだ。

 もちろん、アクティブノードがダウンした場合にもフェイルオーバーが起こる。

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら