8.2 ノードレベルのフェンシング

では、フェンシングの実装はSTONITH(Shoot The Other Node in the Head)です。これにより、ノードレベルのフェンシングが実行されます。High Availability Extensionにはstonithコマンドラインツールが付属し、これはクラスタ上のノードの電源をリモートでオフにする拡張インタフェースです。使用できるオプションの概要については、stonith --helpを実行するか、またはstonithのマニュアルページで詳細を参照してください。

8.2.1 STONITHデバイス

ノードレベルのフェンシングを使用するには、まずフェンシングデバイスを用意する必要があります。High Availability ExtensionでサポートされているSTONITHデバイスのリストを取得するには、次のコマンドをrootとして任意のノード上で実行します。

stonith -L

STONITHデバイスは次のカテゴリに分類できます。

電源分配装置(PDU)

電源分配装置は、重要なネットワーク、サーバ、データセンター装置の電力と機能を管理する、重要な要素です。接続した装置のリモートロード監視と、個々のコンセントでリモート電源オン/オフのための電力制御を実行できます。

無停電電源装置(UPS)

無停電電源装置は、通常の電力が使用できない場合に別の電源から電力を供給し、接続した装置へ非常電力を供給します。

ブレード電源制御デバイス

クラスタを一連のブレード上で実行している場合、ブレードエンクロージャの電源制御デバイスがフェンシングの唯一の候補となります。当然、このデバイスは1台のブレードコンピュータを管理できる必要があります。

ライトアウトデバイス

ライトアウトデバイス(IBM RSA、HP iLO、Dell DRAC)は急速に広まっており、今後は既成コンピュータの標準装備となると思われます。ただし、電源をホスト(クラスタノード)と共有するため、これらはUPSデバイスに内蔵されています。ノードに電力が供給されないままでは、それを制御するデバイスも役に立ちません。この場合、CRMはノードをフェンスしようとして失敗し、これが繰り返されます。その他すべてのリソース操作がフェンシング/STONITH操作の成功を待機するからです。

テスティングデバイス

テスティングデバイスは、テスト専用に使用されます。通常、ハードウェアにあまり負担をかけないようになっています。クラスタが運用に使用される際には、実際のフェンシングデバイスに交換されます。

STONITHデバイスは、予算と使用するハードウェアの種類に応じて選択します。

8.2.2 STONITHの実装

のSTONITH実装には、2つのコンポーネントがあります。

stonithd

stonithdは、ローカルプロセスまたはネットワーク経由でアクセスできるデーモンです。フェンシング操作に対応する、rest、power-off、power-onコマンドを受け付けます。フェンシングデバイスの状態チェックも行います。

stonithdデーモンはCRM HAクラスタの各ノードで実行されます。DCノードで実行されるstonithdインスタンスは、CRMからフェンシング要求を受け取ります。目的のフェンシング操作を実行するのは、このインスタンスとその他のstonithdプログラムです。

STONITHプラグイン

サポートするフェンシングデバイスそれぞれについて、このデバイスを制御するSTONITHプログラムがあります。STONITHプラグインはフェンシングデバイスへのインタフェースです。すべてのSTONITHプラグインは各ノードの/usr/lib/stonith/pluginsにあります。すべてのSTONITHプラグインはstonithdからは同一のものと認識されますが、フェンシングデバイスの性質を反映しているため、大きな違いがあります。

一部のプラグインは、複数のデバイスをサポートします。代表的な例はipmilan (またはexternal/ipmi)で、IPMIプロトコルを実装し、このプロトコルをサポートする任意のデバイスを制御できます。