10.5. poison-pill SBD フェンシングの設定
poison-pill フェンシングでは、共有ブロックデバイスを使用してフェンシング命令を通信します。ノードをフェンスする必要がある場合、クラスターは共有デバイスにメッセージを書き込みます。ターゲットノードはこのメッセージを読み取り、自身を再起動します。
前提条件
- 稼働中の高可用性クラスター。
-
正常に機能するウォッチドッグタイマー (WDT) デバイスが、すべてのノードの
/dev/watchdogで利用可能である。 - 1 - 3 個の共有ブロックデバイス (通常 1 - 4 MB) が、すべてのノードからアクセス可能である。
- 共有デバイスがファイルシステムを含んでおらず、LVM によって管理されていない。
手順
クラスター内のすべてのノードに、SBD およびフェンスエージェントパッケージをインストールします。
# dnf install sbd fence-agents-sbd各ノードで、テストを実行してウォッチドッグデバイスが正しく機能することを確認します。
警告このコマンドを実行するとシステムが再起動し、ウォッチドッグがハードウェアリセットを正常にトリガーできるかどうかが確認されます。このテストは、必ず SBD デーモンを有効にする前に実行してください。デーモンがウォッチドッグデバイスを管理下に置いた後では、このコマンドは機能しません。
# pcs stonith sbd watchdog test共有 SBD ブロックデバイスを初期化します。
/dev/sdbを共有デバイスへのパスに置き換えます。注記冗長性のために複数の共有ブロックデバイスを使用する場合は、各デバイスの
device=パラメーターを繰り返し指定してください (例:device=/dev/sdb device=/dev/sdc)。# pcs stonith sbd device setup device=/dev/sdb共有デバイスで SBD を有効にします。
# pcs stonith sbd enable device=/dev/sdb sbd_watchdog_timeout=5クラスター内にフェンシングデバイスを作成します。この例では、リソース名として
fence_sbd_storageを使用しています。# pcs stonith create fence_sbd_storage fence_sbd devices=/dev/sdbディスクメッセージの処理が完了するまでクラスターが十分な時間待機するように、
pcmk_reboot_timeoutを調整します。この値は、ディスクに保存されているmsgwaitの値よりも、少なくとも 5 秒高くする必要があります。# pcs stonith update sbd_fence pcmk_reboot_timeout=15
検証
サービスが有効になっていて実行されていること、ノードが SBD デバイスに正しく登録されていること、およびスロットのステータスを確認します。
# pcs sbd status --fullstonith-watchdog-timeoutクラスタープロパティーを確認します。# pcs property show stonith-watchdog-timeout標準的なポイズンピルデプロイメントの場合、ポイズンピルメッセージが確認される前にノードが自己フェンシングしたとクラスターが早まって判断するのを防ぐために、この値は
0(無効) にする必要があります。このプロパティーがゼロでない高度な設定では、スプリットブレインのリスクを回避するために、ポイズンピルフェンシングに使用されるすべてのターゲットが、watchdog-only フェンシングから明示的に除外されていることを確認してください。設定が正しく機能することを確認するために、フェンステストを手動で実行します。
警告このコマンドを実行すると、ターゲットノードが即座に再起動します。
# pcs stonith fence node_name