スプリットブレインシンドローム

スプリットブレインシンドローム（split-brain syndrome）またはネットワークパーティション問題とは、複数のコンピュータ（ノード）を相互接続して1台のサーバのように動作させるシステム（密結合クラスター）において、ハードウェアやインターコネクトの障害によりシステムが分断され、1つのサービス（仮想IPを含む）がクラスタ内の複数のノード群で同時に起動してしまい、サービス供給が停止してしまう状況のこと。

スプリットブレインシンドロームが発生すると、クラスター外からのサービスへのアクセスが不能な状態に陥ったり、複数のノードのデータベースへの書き込みが競合し、データベースを破壊したり一貫性を喪失するなど、さまざまな致命的現象を引き起こすことになる。

ミッションクリティカルな密結合クラスターには、障害が発生した場合もクラスターを動的に再構成してサービスを維持する対障害機構が備わっており、スプリットブレインシンドロームはこの機構によって発生する副産物といえる。

生存ノードの決定と方法 
　多くの密結合クラスターではスプリットブレインシンドロームを防ぐために、ある生存ノード群はそのノード数があらかじめ定めたクラスター定足数（多くの場合は全ノードの過半数）を占めているときにのみ、Vote(ラテン語の投票)によるマスタノードの決定を行い、マスタノードの制御に従って処理を継続する。

一方、ノード数がクラスターノードの定足数に対して1/2となる場合、Voteによるマスタノードの決定や生存ノードの決定時の均衡を破る機構（機能からタイブレーカと呼ばれる）を利用して、自らをマスタノードとしてよいかどうかを判断する。

判りやすい例として、2ノードクラスタにおいてインターコネクト障害などによりノード間通信が停止した場合、このタイブレーカ機構により、マスタノードとなった方が生き残り、スレイブとなった方が緊急停止（強制パニック）してサービスの継続を図る。

なお、このマスタノードはマジョリティノード/マネージャノードなど、各クラスタパッケージにおいて呼び方が異なる。多くの場合、Voteからマジョリティノードと呼ばれる。

タイブレーカ機構の実装 
商用Unix系の高可用クラスターパッケージにおいては、Vote数が同票の場合、それぞれマスタノードを決定するスキームがある。特に2ノードクラスターの場合、サバイバルノードを決定する方法に特色がある。
各パッケージのサバイバルノードを決定するスキームは以下の通り。

関連項目 
 密結合クラスター
 コンピュータ・クラスター
 アムネジア

分散処理