STONITHとは
STONITHとは、オープンソースの高可用性クラスタリングソフトPacemakerが持つ機能である。Shoot The Other Node In The Headの略称で、監視対象ノードに異常が発生した場合に強制的に停止/再起動させることができる。
STONITHの働き
クラスタを構成するコンピュータや接続されたネットワークが何らかの原因で不安定になってしまった場合、サービスの二重起動などが発生して、「スプリットブレイン(split brain)現象」に陥ることがある。スプリットブレインとは、インターコネクト(ハートビート)通信が全て切断された状態で、相手の状態を検知することが不可能な状態になった時のことを示す。
スプリットブレインに陥った場合、各サーバでリソースが起動し、リソースの種類によってはデータの破壊やIPアドレスの競合といった状態が発生する。しかし、このSTONITHの機能により、強制的に相手のサーバを再起動(フェンシング)することで、最悪の事態を回避することができる。
STONITH実装の方法
STONITHを使うには、相手から停止/再起動を行ってもらうための制御を行う仕組みが必要となる。
物理サーバ
物理サーバでSTONITHを行う場合には、外部からサーバの電源ON/OFFや再起動を行うことができる環境(ハードウェア制御ボード)を利用する。標準規格のIPMIをはじめ、HP社製サーバ搭載のiLO、IBM社製サーバ搭載のIMM等、複数の制御ボードに対応しており、それぞれのハードウェアに対応したプラグインが提供されている。
例えば、IPMIに対応したハードウェアであれば、RedHat Enterprise Linux/CentOSに付属のIPMI Toolsパッケージに付属のipmi-toolコマンドをインストールすることで、STONITHを実装可能である。
仮想サーバ
STONITHは、仮想サーバ上の冗長化でも利用できる。例えば、VMWareでは、VMWare ConsoleのAPIを使って仮想マシンの停止や再起動ができる。同様に、KVMではvirshを使って制御を行うことができる。
STONITH設定の注意点
ノード数が2つの場合に、ノード間の接続が全て切断されると、両ノードがお互いに相手ノードの強制的な停止/再起動を行ってしまう場合がある。すると、両方の電源が落ちる可能性がある。この問題に対応するため、stonith-wrapperというプラグインが存在する。これを使用すると、STONITHの停止/再起動のタイミングを遅らせることができ、両方の電源が落ちるのを防ぐことができる。
【カテゴリ】:クラスタ  
【Webセミナー】OSSのおすすめメーリングリストシステム紹介セミナー
日程: | 10月23日(水)Webセミナー「BigBlueButton」を使用します。 |
内容: | OSSで実現可能なメーリングリストシステムをご紹介します。 |
ご興味のあるかたはぜひご参加ください。 |