HAクラスター製品では、コミュニケーションパスの障害時に待機系ノードが起動して両系がActiveになってしまう「スプリットブレイン(Linux)(Windows)」と呼ばれる状況を回避する必要があります。
Linux版のLifeKeeperには、共有ストレージのSCSI Reservationを使用した強力なI/Oフェンシング機能があり、これによりスプリットブレインは回避されます。
- マニュアル:SCSI リザベーション
一方、共有ストレージが使えないパブリッククラウド環境では、SCSI Reservationによるスプリットブレイン対策は行なえません。そこで製品の標準機能である「Quorum/Witness Kit(QWK)」を使ったスプリットブレイン対策が推奨構成となります。※LifeKeeper for Windows v8.9.0からWindows版にもQWKが提供されています。
QWKでは、コミュニケーションパス全断と判断される「COMM_DOWN」イベントの後に、「Quorum Check」と「Witness Check」を行った上で問題なければフェイルオーバーを行います。すなわち「Quorum Check」と「Witness Check」の2つの保険を掛けてフェイルオーバーの信頼性を高めます。
Quorum Check
Quorum Checkには3つのモードが用意されています。基本的にはデフォルトのmajoriyモードが使われることが多いですが、AWS環境であればS3をQuorumディスクとして使うstorageモードが使われるケースが増えています。詳しくはマニュアルをご参照ください。
・マニュアル(Linux版):Quorum/Witness > 使用可能な Quorum モード
・マニュアル(Windows版):Quorum/Witness > 使用可能な Quorum モード
モード | 説明 |
majority ※デフォルト |
コミュニケーションパスを通じて疎通確認を行い、Quorum チェックを行います。クラスター内の過半数のノードと疎通ができることで、Quorum チェック成功と判断します。 本モードは3ノード以上のクラスターで動作可能です。2ノード構成の場合は、Witness 専用のノードを追加する必要があります。 このmajorityモードがデフォルトとなります。Witnessノードを用意する必要があります。 |
tcp_remote ※Linux版のみ |
コミュニケーションパスから独立したホストに対して、指定されたポート上の TCP/IP サービスに接続確認を行い、Quorum チェックを行います。指定されたホストの過半数に接続できることで、Quorum チェック成功と判断します。 別途、接続確認用のホストが必要です。 使用ケースとしては、majorityモードで必要となるWitnessサーバーを立てたくない時に選ばれることが一般的です。Quorumチェックではまれに疎通可能なホスト数が「引き分け」状態になる可能性があり、回避するにはWitnessチェックが必要になります。Witnessチェック以外の方式としては、別途STONITHの仕組みを検討する必要がありますが、結果的に構成が複雑になるため、majorityモードもしくは後述のstorageモードが選ばれることが多いです。 |
storage |
共有ストレージを Witness デバイスとして用いる Quorum モードです。クラスター内のすべてのノードからアクセスできる共有ストレージを用いた合意システムで、共有ストレージを介してノードの情報交換を行います。共有ストレージにアクセスできることで、Quorum チェック成功と判断します。 別途、共有ストレージが必要です。 使用ケースとしては、majorityモードで必要となるWitnessサーバーを立てたくない時に選ばれることがあります。 |
Witness Check
Witness Checkには3つのモードが用意されています。基本的にはデフォルトのremote_verifyモードが使われることが多いですが、Quorum Checkにstoreageモードが選ばれている場合はWitness Checkもstorageに揃える必要があります。詳しくはマニュアルをご参照ください。
・マニュアル(Linux版):Quorum/Witness > 使用可能な Witness モード
・マニュアル(Windows版):Quorum/Witness > 使用可能な Witness モード
モード | 説明 |
remote_verify ※デフォルト |
クラスター内の他のすべてのノードに対して障害が疑われるノードのステータスに関する意見を求めます。1つのノードでも障害なしと判断した場合は、Witness チェックの結果は障害なしと判断します。すべてのノードが障害と判断した場合は、Witness チェックの結果は障害が発生していると判断します。 |
storage | Witness チェックでは、障害が疑われるノードのQWKオブジェクトを確認し、一定期間内に更新されていると障害なし、更新が止まっていれば障害が発生していると判断します。なお、実装上は、Quorum チェック時に Witness チェックも実施しています。 なお、Witness モードに storage を選んだ場合、先述の Quorum モードも storage を選択しなければなりません。 |
none/off | Witness チェックが無効になっています。この設定では、常に障害が発生していると判断されます。 |
関連資料
QWKのご紹介資料です。ご参照ください。
当ユーザーポータル内にもQWKの関連記事がございますので、合わせてご参照ください。