スプリットブレインシンドローム
スプリットブレインシンドローム(split-brain syndrome)またはネットワークパーティション問題とは、複数のコンピュータ(ノード)を相互接続して1台のサーバのように動作させるシステム(密結合クラスター)において、ハードウェアやインターコネクトの障害によりシステムが分断され、1つのサービス(仮想IPを含む)がクラスタ内の複数のノード群で同時に起動してしまい、サービス供給が停止してしまう状況のこと。
スプリットブレインシンドロームが発生すると、クラスター外からのサービスへのアクセスが不能な状態に陥ったり、複数のノードのデータベースへの書き込みが競合し、データベースを破壊したり一貫性を喪失するなど、さまざまな致命的現象を引き起こすことになる。
ミッションクリティカルな密結合クラスターには、障害が発生した場合もクラスターを動的に再構成してサービスを維持する対障害機構が備わっており、スプリットブレインシンドロームはこの機構によって発生する副産物といえる。
生存ノードの決定と方法
編集多くの密結合クラスターではスプリットブレインシンドロームを防ぐために、ある生存ノード群はそのノード数があらかじめ定めたクラスター定足数(多くの場合は全ノードの過半数)を占めているときにのみ、Vote(ラテン語の投票)によるマスタノードの決定を行い、マスタノードの制御に従って処理を継続する。
一方、ノード数がクラスターノードの定足数に対して1/2となる場合、Voteによるマスタノードの決定や生存ノードの決定時の均衡を破る機構(機能からタイブレーカと呼ばれる)を利用して、自らをマスタノードとしてよいかどうかを判断する。
判りやすい例として、2ノードクラスタにおいてインターコネクト障害などによりノード間通信が停止した場合、このタイブレーカ機構により、マスタノードとなった方が生き残り、スレイブとなった方が緊急停止(強制パニック)してサービスの継続を図る。
なお、このマスタノードはマジョリティノード/マネージャノードなど、各クラスタパッケージにおいて呼び方が異なる。多くの場合、Voteからマジョリティノードと呼ばれる。
タイブレーカ機構の実装
編集商用Unix系の高可用クラスターパッケージにおいては、Vote数が同票の場合、それぞれマスタノードを決定するスキームがある。特に2ノードクラスターの場合、サバイバルノードを決定する方法に特色がある。 各パッケージのサバイバルノードを決定するスキームは以下の通り。
パッケージ名称 | 対応OS | ベンダ | 実装方式 | クラスタノードの強制移行の名称 |
---|---|---|---|---|
HACMP | AIX | IBM | 共用ディスクがある場合、ディスクを使用したキープアライブチェック機構をサポートしている。ちなみにスプリットブレインシンドロームを防ぐため、優先ノードを生存させるノード間調停機構 (DSGP) はあるが、状況を判断してシステムの強制停止を行うようなロジックはサポートされていない。
そのため、ハートビート (KA) の異常停止に弱く、N+1クラスタ構成や両現用構成を取った場合、ノード間通信が阻害された時にスプリットブレインシンドロームが発生しやすいというデメリットがある[1])。 |
DGSP |
MC/ServiceGuard | HP-UX・Linux | HP(日立製作所・NEC) | 接続方式によらないクォーラムサーバ機構とSCSI/FC接続のロックディスクをサポート。LVM(VERITAS製)のVG管理領域にロック管理情報を持ち、対応する。 | TOC |
Oracle Solaris Cluster | Solaris | オラクル | SCSIロックとロックディスクによるタイブレーカ機構をサポート。LVMとしては、VERITASのVxVMかSolaris自体の持つSVMを使用する。SVM使用時には、SMF配下で監視管理されるrpc.metadにより定足数デバイスの管理が行われる。 | 強制パニック |
CLUSTERPRO | Linux/Windows/商用UNIX(予定) | NEC | SCSI/FC接続のロックディスクをサポート。LVM(VERITAS互換)のVG管理領域にロック管理情報やDisk管理領域に独自の設定方法を持ち、対応する。 | 強制パニック |
ClusterPerfect | Linux | 東芝 | SCSI/FC接続のロックディスクをサポート。LVM(VERITAS互換)のVG管理領域にロック管理情報を持ち、対応する。 | 不明 |
VxClusterServer | 各商用UNIX/Linux | VERITAS | SCSI/FC接続のロックディスクをサポート。LVM(VERITAS互換)のVG管理領域にロック管理情報を持ち、対応する。 | 不明 |
LifeKeeper | Linux | SteelEye Technology | SCSIロックをサポート。FC接続の場合、仮想SCSI上にフェンシング機能を実装する。 | 不明 |
Red Hat Cluster Suite | Linux | Red Hat | 共有ディスクにvoteを持たせるquorum diskによるタイブレーク機構を持つ。quorum diskはノード間通信経路としても利用され、ノード間通信の可用性を高める。 | 不明 |