Pacemakerクラスタでリソースレベルのフェンシングを使用する

ここでは、DRBDのレプリケーションリンクが遮断された場合に、 Pacemakerがdrbdマスター/スレーブリソースを昇格させないようにするために必要な手順の概要を説明します。これにより、Pacemakerが古いデータでサービスを開始し、プロセスでの不要なタイムワープの原因になることが回避されます。

[重要項目]重要項目

最低でも2つの独立した OpenAIS通信チャネルを設定しなければ、この機能は正しく動作しません。

さらに、「クラスタ構成にDRBDのサービスを追加する」で述べたように、DRBDの init スクリプトは無効にしてください。

Pacemaker用のリソースレベルのフェンシングを有効にするには、 drbd.confで2つのオプションを設定する必要があります。

resource resource {
  disk {
    fencing resource-only;
    ...
  }
  handlers {
    fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
    after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh";
    ...
  }
  ...
}

DRBDのレプリケーションリンクが切断された場合は、 crm-fence-peer.shスクリプトがクラスタ管理システムに連絡し、このDRBDリソースに関連するPacemakerのマスター/スレーブリソースが決定され、現在アクティブなノード以外のすべてのノードでマスター/スレーブリソースが昇格されることがないようにします。逆に、接続が再確立してDRBDが同期プロセスを完了すると、この制約は解除され、クラスタ管理システムは再び任意のノードのリソースを自由に昇格できるようになります。