HA クラスタにおいて、Heartbeat はノードを管理し Pacemaker はリソースを管理するソフトウェアです。ハートビートと呼ばれる通信を他ノードと行い、一定時間応答がないノードはダウンしたものと判断します。リソースとは、仮想 IP リソースやファイルシステムリソースなど、アクティブなノードで有効化する機能の単位です。Pacemaker は各ノードの状態に応じて、リソースの配置や動作を管理します。
PowerGres HA Pacemaker 版では、仮想 IP、ファイルシステム、DRBD の 3 つのリソースを登録します。
DRBD はネットワーク越しにディスクのミラーリングを行うソフトウェアです。PowerGres HA Pacemaker 版では、DRBD リソースとして Pacemaker に管理され、稼働系ノードと待機系ノードのデータ格納領域を同期します。
通常 PostgreSQL、Pacemaker、Heartbeat、DRBD による、アクティブ/スタンバイ構成の HA クラスタ構築は、構成に参加するノードの設定や、コミュニケーションパスの作成、各リソースの作成、ミラーリングの設定、データベースクラスタの初期化など、慣れないと時間がかかり手間のかかる作業です。
PowerGres HA Pacemaker 版に同梱されている管理ツール (PowerGres Cluster Manager) を利用すると、コマンド 2 つで面倒な設定が対話形式で行え、必要な情報を入力すると自動的に HA クラスタが構築されます。
HA クラスタでは、ノードが正常にもかかわらずハートビートが途切れた場合に、2 つのノードが互いに相手ノードがダウンしたと判断し、両ノードが共に 稼働系 となる現象をスプリットブレインと呼びます。Pacemaker ではスプリットブレイン対策として STONITH というリソースが提供されており、PowerGres HA Pacemaker 版では STONITH リソースも簡単に設定できます。
STONITH リソースはスプリットブレインを検知すると、相手サーバの IPMI デバイスに向けてサーバ再起動命令を出し、スプリットブレインの解消を試みます。片ノードの再起動によりハートビートが復活すると、再びアクティブ/スタンバイ構成に戻ります。
Pacemaker の STONITH リソースを利用するには、HP 社製のサーバであれば iLO、IBM 社製のサーバであれば IMM などの、IPMI に対応したデバイスが必要です。IPMI デバイスで設定した IP アドレス、ユーザ名、パスワードを入力すると自動的に STONITH リソースが作成できます。
※ DRBD は LINBIT Information Technologies GmbH の登録商標です。