STONITH (Shoot the Other Node in the Head) は、クラスター内のノードの電源をリモートでオフにするためのフェンシング手法です。LifeKeeper は、外部の電源スイッチ制御、IPMI 対応のマザーボード制御、ハイパーバイザーが提供する電源機能、クラウドベンダーのツールを使用して、クラスター内の他のノードの電源をオフにすることで、STONITH 機能を提供します。各 STONITH メソッドを使用すると、クラスターソフトウェアは、停止したように見えるクラスターノードの電源をオフにして、異常なノードが共有データにアクセスしたり破損したりしないようにします。
各環境でのSTONITHの設定方法
以下の環境でのSTONITHの設定例を掲載しています。
STONITHの一般的なテスト
STONITHはコミュニケーションパスが切断されるとアクティブになります。
コミュニケーションパスの切断をシミュレートするには、iptablesまたはfirewalldコマンドを実行して STONITH構成ファイルをテストします。
Iptables
# iptables -A INPUT -p tcp --destination-port 7365 -j DROP
Firewalld
ファイアーウォールには2つのオプションがあります。
オプション1 - ファイアーウォールを起動して無効にします。
# systemctl disable firewalld
# systemctl start firewalld
オプション2 - ファイアーウォールがすでに設定されている場合。
このオプションは、ポート81、82、1024、7365が開いている場合に使用します。
- ポートリストから7365を削除します。
# firewall-cmd --zone=public --remove-port=7365/tcp
- 再起動を実行します。
- ファイアウォールがまだ起動していない場合は起動します。
# systemctl start firewalld
- システムが再起動します。再起動が完了したら、次のコマンドで7365を再度追加します。
# firewall-cmd --zone=public --add-port=7365/tcp
期待される動作
LifeKeeper がノードとの通信障害を検出すると、そのノードの電源がオフになり、フェールオーバーが発生します。問題が修復されたら、ノードの電源を手動でオンにする必要があります。
STONITHの削除
- /opt/LifeKeeper/events/prefailover の下にあるすべてのフォルダーを削除します。
# rm -r /opt/LifeKeeper/events/prefailover/*
- /opt/LifeKeeper/config/stonith.conf にある設定ファイルを削除します。
# rm /opt/LifeKeeper/config/stonith.conf
このトピックへフィードバック