4.10. フェンスのレベルを設定する

Pacemaker はフェンストポロジーと呼ばれる機能で複数のフェンスデバイスを搭載したノードの排他処理に対応します。トポロジーを実装する場合は通常通りにそれぞれのフェンスデバイスを作成した後、設定内のフェンストポロジーセクションでフェンスレベルの指定を行います。
  • 各レベルは 1 から昇順で試行されていきます。
  • 任意のフェンスデバイスに障害が発生すると、現行レベルの排他処理は終了します。同レベルのデバイスには試行されず、次のレベルが試行されます。
  • すべてのデバイスの排他処理が正常に完了するとそのレベルが継承され他のレベルは試行されません。
  • 任意のレベルで成功するまたはすべてのレベルが試行される (失敗する) と動作は終了します。
ノードにフェンスレベルを追加する場合に次のコマンドを使用します。複数デバイスの指定は stonith ID を使ってコンマで区切ります。指定されたデバイスが指定されたレベルで試行されます。
pcs stonith level add level node devices
次のコマンドを使用すると現在設定されている全フェンスレベルが表示されます。
pcs stonith level
次の例では、rh7-2 と言うノードに my_ilo という ilo デバイスと my_apc という apc デバイスの 2 種類のフェンスデバイスが設定されています。my_ilo デバイスに障害が発生しノードの排他処理が行えなくなった場合は my_apc デバイスが使用されるようフェンスレベルが設定されています。また、次の例ではフェンスレベルの設定をした後に発行した pcs stonith level コマンドの出力も示しています。
# pcs stonith level add 1 rh7-2 my_ilo
# pcs stonith level add 2 rh7-2 my_apc
# pcs stonith level
 Node: rh7-2
  Level 1 - my_ilo
  Level 2 - my_apc
次のコマンドは指定ノードとデバイスから指定のフェンスレベルを削除します。ノードやデバイスを指定していないと全ノードから指定のフェンスレベルが削除されます。
pcs stonith level remove level [node_id] [stonith_id] ... [stonith_id]
次のコマンドを使用すると指定ノードや stonith id のフェンスレベルが消去されます。ノードや stonith id を指定しないと全フェンスレベルが消去されます。
pcs stonith level clear [node|stonith_id(s)]
複数の stonith IDを指定する場合はコンマで区切って指定します。空白は入れないでください。例を示します。
# pcs stonith level clear dev_a,dev_b
次のコマンドで定義したフェンスデバイスとノードが実際に存在しているか確認します。
pcs stonith level verify