STONITH(すとーにす)
最終更新:2026/4/28
STONITHは、システム障害時に、ストレージデバイスへのアクセスを物理的に遮断することで、データ整合性を保護する機能である。
ポイント
STONITHは、Shoot The Other Node In The Headの略であり、フェイルオーバー時の誤ったノードの起動を防ぐために用いられる。
STONITHとは
STONITH(Shoot The Other Node In The Head)は、高可用性クラスタシステムにおいて、フェイルオーバーが発生した際に、誤って停止したノードが再び起動し、データ競合を引き起こすのを防ぐための機能です。クラスタシステムでは、複数のノードが同じデータにアクセスできるため、一方のノードに障害が発生した場合、別のノードが処理を引き継ぎます(フェイルオーバー)。しかし、障害が発生したノードが完全に停止する前に、誤って再起動してしまうと、データが破損する可能性があります。STONITHは、このような事態を防ぐために、ストレージデバイスへのアクセスを物理的に遮断します。
STONITHの仕組み
STONITHは、通常、外部のハードウェアデバイス(例:電源制御ユニット、ネットワークスイッチ)と連携して動作します。フェイルオーバーが発生すると、STONITH機能は、障害が発生したノードに信号を送り、そのノードの電源を強制的に切断したり、ストレージネットワークから切り離したりします。これにより、障害ノードはデータにアクセスできなくなり、データ整合性が保たれます。
STONITHの重要性
STONITHは、高可用性クラスタシステムの信頼性を高める上で非常に重要な役割を果たします。STONITHがない場合、フェイルオーバー時のデータ競合のリスクが高まり、システムの停止時間が増加する可能性があります。特に、金融システムや医療システムなど、データの整合性が極めて重要なシステムにおいては、STONITHの導入が不可欠です。
STONITHの実現方法
STONITHの実現方法としては、以下のようなものがあります。
- 電源制御ユニット(PDU): ノードの電源をリモートで制御します。
- ネットワークスイッチ: ノードのストレージネットワークへのアクセスを遮断します。
- 専用のSTONITHデバイス: STONITH機能に特化したハードウェアデバイスを使用します。
これらの方法を組み合わせて、より堅牢なSTONITH環境を構築することも可能です。