スプリットブレインとは?
すぷりっとぶれいん
スプリットブレインとは、分散システムでネットワーク分断が起きた際に複数のノードが同時に自分をリーダーと認識し、データの不整合や二重書き込みが発生する障害状態のことです。
スプリットブレイン(Split Brain)は、分散システムやクラスタリング環境において発生する深刻な障害パターンです。「脳が分裂した」という名称が示すように、本来ひとつのまとまりとして動作すべきシステムが、ネットワーク障害やその他の原因により複数の独立したグループに分かれてしまい、それぞれが「自分が正当なリーダー(マスター)だ」と認識して処理を継続する状態を指します。
スプリットブレインが発生する典型的なシナリオは、データベースクラスターでのネットワーク分断です。たとえばプライマリノードとセカンダリノードがネットワーク障害でお互いの死活確認ができなくなると、セカンダリは「プライマリが死んだ」と判断して自らプライマリに昇格します。これにより同一データに対する書き込みが2系統発生し、データの不整合や重複、最悪の場合はデータ消失につながります。
スプリットブレインへの対策として以下の手法が用いられます。
- クォーラム(多数決)方式:過半数のノードが合意しないとリーダー選出を行わない
- STONITH(Shoot The Other Node In The Head):疑わしいノードを強制的にシャットダウンする仕組み
- フェンシング:分断されたノードへのデータアクセスを物理的・論理的に遮断
- ウィットネスノード:仲裁役として機能する軽量ノードの配置
高可用性クラスターを設計する際に最も注意すべき障害パターンのひとつであり、データベースやストレージシステムの設計において必ず考慮されます。
使い方・例文
データベースの高可用性(HA)構成を検討する技術文書や、クラスター設計のレビューにおいて「スプリットブレインが発生しないか」という観点で必ず議論に上がります。
この用語をシェア
最終更新: