DRBDは、レプリケーションリンクが遮断したときに、
対向ノードを期限切れにするメカニズムとして定義されたインタフェースを備えています。
heartbeatに同梱されたdrbd-peer-outdaterヘルパーは、
このインタフェースのリファレンス実装です。
ただし、独自のpeer outdaterヘルパープログラムも簡単に実装できます。
outdateヘルパーは次のすべてを満たす場合にのみ呼び出されます。
リソース(または共通)のhandlersセクションで
outdate-peerハンドラが定義されている。
リソースのfencingオプションが
resource-onlyまたはresource-and-stonithに設定されている。
レプリケーションリンクの中断時間が、 DRBDがネットワーク障害を検出するために十分である。
outdate-peerハンドラとして指定された
プログラムまたはスクリプトが呼び出されると、
DRBD_RESOURCEおよびDRBD_PEER環境変数を使用できるようになります。
これらの環境変数には、
それぞれ、影響を受けるDRBDリソース名と対向ホストのホスト名が含まれています。
peer outdaterヘルパープログラム(またはスクリプト)は、 次のいずれかの終了コードを返す必要があります。
表15.1 peer outdater の終了コード
| 終了コード | 意味 |
|---|---|
| 3 | 対向ホストのディスク状態がすでにInconsistentになっている。 |
| 4 | 対向ホストのディスク状態が正常にOutdatedに設定された
(または始めからOutdatedだった)。 |
| 5 | 対向ノードとの接続に失敗。対向ホストに到達できなかった。 |
| 6 | 影響を受けるリソースがプライマリロールになっていたため、 対向ホストを期限切れにできなかった。 |
| 7 | 対向ノードがクラスタから正常にフェンシングされた。
影響を受けるリソースのfencingを
resource-and-stonithに設定しておくことが必要。 |