

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
stonithとは?
stonithは高可用性クラスタで使われる重要な機能です。英語の頭文字 STONITH は Shoot The Other Node In The Head の略で、日本語では「もう一方のノードを撃つ」という少しショッキングな表現ですが、実際には安全対策として他のノードを遮断する仕組みを指します。
クラスタを運用する際の課題は複数のノードが同じ共有資源にアクセスして競合し、データの整合性が崩れる「スプリットブレイン」と呼ばれる状態が起こることです。STONITHが動くと、障害を起こした可能性のあるノードを強制的に電源オフしたり、ネットワークから隔離したりして、常に一つのノードだけが資源を扱えるようにします。
仕組みとしては高可用性ソフトウェアの一部である Pacemaker や Corosync などの組み合わせと、具体的なフェンスデバイスを組み合わせて使います。フェンスデバイスには以下のようなものがあります:電源を操作するIPMIやiLO/DRAC系のリモート電源、仮想化環境の仮想電源、ネットワーク分離用のフェンスなど。
STONITHの基本要素
フェンスデバイス:障害を起こしたノードの電源を物理的に切るための装置です。IPMI対応のスマートPDUや電源管理ボードが代表例です。
フェンスエージェント:クラスタソフトウェアからフェンスデバイスを操作するためのソフトウェアです。実際にはデバイスごとに用意された「手段」が動作します。
フェンスポリシー:失われたノードをどう扱うかのルールです。どのノードを対象にするか、復旧のタイミング、再起動の条件などを決めます。
実際の使い方のイメージ
1. まずクラスタを構成します。ノードAとノードBがあり、共有ストレージを使います。
2. STONITHを有効化し、フェンスデバイスを設定します。例えばIPMI対応の電源装置を指定します。
3. あるノードが落ちたり応答がなくなった場合、クラスタはそのノードを孤立させる指示をフェンスエージェント経由でデバイスへ送ります。
4. 孤立したノードは電源が切られ、結果としてもう一方のノードが安全に資源を管理できる状態になります。
なぜ STONITH が必要なのか
STONITH があると「同じ資源を複数のノードが同時に操作する」という状態を防げます。これによりデータの破損や共有ストレージの競合を避け、サービスの停止時間を短く保つことができます。
よくある質問
本当に全部のケースで STONITH が必要ですか? 多くのクラスタ設計では STONITH を必須にします。設定していないとクラスタは安全な自動復旧を行えないことがあり、検証環境では特に注意が必要です。
フェンスデバイスの例とメリット・デメリット
| フェンスデバイスの例 | 主な用途 | メリット・デメリット |
|---|---|---|
| IPMI対応のスマートPDU | 物理サーバの電源操作 | リモートで即時停止可能。設定ミスで誤動作も起こり得る。 |
| 仮想化環境のフェンス機能 | 仮想ノードの隔離や電源制御 | 仮想化に強く安全。実機と異なる挙動に注意。 |
| ソフトウェアフェンス | テスト環境や小規模構成 | 導入が容易。ただし実機と同等の安全性を確保するには十分なテストが必要。 |
初心者が押さえる3つのポイント
ポイント1:クラスタ構成の前に必ず STONITH を有効にする。テスト環境で再現テストを行い、想定外の挙動を確認します。
ポイント2:フェンスデバイスの信頼性を確保。電源コントローラは安定したネットワークに接続し、バックアップも検討します。
ポイント3:運用手順とログの整備。障害時の対応手順と、監視ツールのログを記録する習慣をつけます。
用語解説
フェンス とは障害を起こしたノードを他のノードと分離する手段のことです。
デバイス は電源ユニットなど、実際に物理的な操作を行う装置を指します。
実践のコツ
初心者はまず仮想環境で STONITH の動作テストを行い、どのシナリオでフェンスが発動するかを確認しましょう。設定ファイルは人が読みやすいようコメントを残し、変更時には必ずバックアップを取ります。
まとめ
stonithは高可用性クラスタの安全を保つための「フェンス機構」です。正しく設定することで、ノード障害時にもデータの整合性を守り、サービスの継続性を高められます。初心者の方は最初から「フェンスデバイスの選定」と「テスト手順」を明確にしてから導入することをおすすめします。
stonithの同意語
- STONITH
- Shoot The Other Node In The Head の略。高可用性クラスタで、故障したノードを他のノードへ影響を与えずに強制的に隔離・電源オフ・再起動させる仕組み。
- フェンシング
- クラスタにおける障害ノードの隔離機能の総称。STONITHとほぼ同義の広い意味で使われることが多い。
- ノードフェンシング
- 個々のノードを対象としたフェンシング。障害ノードをネットワークから分離する操作を指す。
- クラスターフェンシング
- クラスタ全体で用いられる、ノードを隔離して整合性を守る仕組みのこと。
- STONITHデバイス
- STONITH機能を実現するハードウェアまたはソフトウェアのデバイス。電源断や強制リセットを実行する装置。
- フェンスデバイス
- フェンス機能を提供するデバイスの総称。STONITHと同義で使われることがある。
- フェンスエージェント
- Pacemaker などで使われる、特定ノードをフェンスするためのソフトウェアモジュール(エージェント)。実装はデバイス依存。
- HAフェンシング
- High Availability(高可用性)環境で用いられるフェンシングの略称・表現。
stonithの対義語・反対語
- フェンシングなし
- STONITH機能を使わず、故障したノードを自動的に隔離・排除する対策を取らない運用のこと。
- ノード分離を許容する運用
- クラスタ内でノードが分離しても問題ないとする運用。STONITHで隔離する代わりに分離脳の発生を許容する考え方。
- スプリットブレインを許容する設定
- クラスタ内で同時に複数ノードがアクティブになる可能性(分離脳)を前提とした設定。
- 自動排除を使わない運用
- STONITHの自動排除機能を無効化した運用。手動介入や監視中心の対処に寄せることが多い。
- 監視と回復のみの運用
- 障害発生時に自動で隔離・排除を行わず、監視と手動の回復を優先する運用方針。
- 手動での対応のみ
- 障害時の対応をすべて人の手で行う運用。自動化された隔離機構を使わない。
stonithの共起語
- フェンシング
- クラスタでノードを隔離する機能。故障したノードが他のノードと同時にサービスを提供できないよう、通信や資源アクセスを遮断する処理のこと。
- フェンシングデバイス
- STONITHを実現するための物理/仮想デバイス。電源を切る、ネットワーク遮断などの手段を提供する。
- フェンシングエージェント
- フェンシングを実装するソフトウェアのこと。どのデバイスをどう隔離するかを指示する役割。
- fence_agent
- Pacemaker/CRMsで用いられるフェンシング実装の総称。具体的には fence_ipmilan など。
- SBD
- STONITH Block Device の略。ブロックデバイスを用いたフェンシング手段。
- STONITHデバイス
- STONITHを実現するデバイスの総称(例: IPMIベースのデバイス、電源装置、SBDなど)。
- STONITH
- Shoot The Other Node In The Head の略。クラスタの分岐を回避するため、故障ノードを隔離するフェンシング機構。
- Pacemaker
- Linux/Unixの高可用性クラスタ管理ソフトウェア。STONITHを統合して動作する。
- Corosync
- クラスタ内のノード間通信・同期を担うミドルウェア。STONITHと連携して動作することが多い。
- IPMIフェンシング
- IPMIプロトコルを使って遠隔地のノードの電源を切り、フェンシングを実現する方法。
- fence_ipmilan
- IPMIを用いたフェンシングエージェントの実装名のひとつ。
- fence_ilo
- ベンダーのiLOなどを用いたフェンシングエージェントの実装名のひとつ。
- fence_drbd
- DRBDと連携するフェンシングエージェントの実装名のひとつ。
- fence_ipmi
- IPMIを用いたフェンシングを指す一般的な表現。
- stonithd
- STONITH処理を担当するデーモン。Pacemaker/Corosync で利用されることが多い。
- DRBD
- データを二重化して同期するブロックデバイス。HAクラスタで広く使われ、STONITHとともに運用されることがある。
- クォーラム
- クラスタが過半数で動作するための条件。分割ブレインを防ぐ仕組みの一部として、STONITHと組み合わせて運用される。
- split-brain
- クラスタが二つの独立した領域として動作する現象。STONITHにより抑止されるべき問題。
- ノードフェンシング
- 個々のノードを隔離すること。主に故障ノードの切り離しを指す。
- HAクラスタ
- 高可用性クラスタの略称。
- 高可用性
- サービスを継続して提供することを目的とした設計思想。
- クラスタ
- 複数のノードが協調して動作するコンピューティング環境。
- リソースエージェント
- Pacemakerで管理される資源を制御するエージェント群。
- pcs
- Pacemakerのコマンドラインツール。
- crm
- Pacemakerの別のコマンドラインツール(crm系)。
stonithの関連用語
- STONITH
- クラスタで分割ブレインを防ぐためのフェンシング機構。障害を起こしたノードを隔離・停止させ、他のノードが同時に同一資源へ書き込みを行わないようにします。
- フェンシング
- ノードをクラスタから物理的または論理的に隔離して整合性を保つ手段の総称。STONITHはこの一部です。
- フェンスデバイス
- フェンシングを実行するデバイス。電源を落とす装置やリモート管理インターフェースなど。
- フェンスエージェント
- フェンスデバイスを操作するソフトウェアのモジュール。Pacemakerと連携してフェンス操作を行います。
- fence-agents
- 複数のフェンスデバイスを扱うライブラリ。IPMIや iLO、APC など各種デバイスを統一的に操作可能にします。
- Pacemaker
- Linux上のクラスタ資源管理ツール。リソースの起動・停止とフェンシング設定を管理します。
- Corosync
- Pacemakerと連携してノード間の通信を行うクラスタのメッセージング層。
- 高可用性クラスタ
- 障害が発生してもサービスを継続するために複数ノードで冗長化した構成。
- 分割ブレイン
- ネットワーク分断時に複数ノードが同時に生存していると誤認して競合状態になる現象。STONITHとクォーラムで防止します。
- クォーラム
- クラスタが意思決定を行うための過半数のノード。分断時の混乱を防ぎます。
- no-quorum-policy
- クォーラムが失われた場合の挙動を指定する設定。資源の停止/維持などを決定します。
- STONITH有効
- クラスタ設定でSTONITHを有効にする状態。分割ブレインを防ぐ前提となります。
- STONITH無効
- STONITHを無効にする状態。分割ブレインのリスクが高まるため注意が必要です。
- 電源フェンシング
- ノードの電源を物理的に遮断してイレギュレーションを回避する基本的なフェンシング手法。
- IPMI
- リモートでハードウェア管理を行うインターフェース。電源操作や監視が可能です。
- IPMIフェンスエージェント
- IPMIを使ってノードをフェンスするエージェント。例: fence_ipmi 系。
- iLO
- HPのリモート管理機能。フェンスデバイスとして利用されます。
- iDRAC
- Dellのリモート管理機能。フェンスデバイスとして利用されます。
- SSHフェンス
- SSHを使ってリモートでフェンス操作を実行するエージェント。
- fence_snmp
- SNMPを介してデバイスをフェンスするエージェント。
- QDevice
- クォーラムデバイス。クラスタのクォーラムを維持するための外部デバイスまたは仮想デバイス。
- フェンスアクション
- フェンス時に実行される具体的な操作(例: 停止/再起動/電源断)。



















