LifeKeeper for Windows v8.9.0より、ノード障害発生時のフェイルオーバーをより安定して実行するためのQuorum/Witness機能が実装されました。
Quorum Witness機能とは
下記はLifeKeeper テクニカルドキュメントからの抜粋です。
ネットワーク分断を考慮した分散システムにおいて、クラスター全体での合意を得るために Quorum と呼ばれる概念があります。Quorum を持っているノードはクラスター全体での合意が得られるノードであり、リソースを起動することが許可されます。一方、Quorumを持っていないノードはクラスター全体での合意が得られないノードで、リソースを起動することは許可されません。これにより、スプリットブレインを抑止します。そして、この Quorum を持っているかどうかを確認することを Quorum チェックと呼び、Quorum を持っている場合を Quorum チェック成功、Quorum を持っていない場合を Quorum チェック失敗と表現します。 通信障害が発生した時、障害が発生したノードと別の1台以上のノード(もしくは他のデバイス)を使って障害ノードのステータスについて「セカンドオピニオン」を取得することができます。このセカンドオピニオンを得るために使用されるノードを Witness ノード(もしくは Witness デバイス)と呼びます。また、このセカンドオピニオンを得ることを Witness チェックと呼びます。フェイルオーバー先となることができるノードは、Witness ノード(Witness デバイス)が障害となったノードのステータスに関して同じ意見である場合のみ、リソース起動が許可されます。これにより、ノード間で発生する単純な通信障害から発生するフェイルオーバーを回避し、全体のアクセスや、パフォーマンス、サービス中のノードに影響を与えないようにします。実際の運用では、LifeKeeperが起動した時やコミュニケーションパスが復旧した時にも、Witness ノード(Witness デバイス)に問い合わせを行います。なお、Witness チェックを行うのは、Quorum を持っていることが前提です。 |
このようなQuorumの保持の確認と、Witnessノード/デバイスによる自ノード以外からの評価の仕組みにより、ネットワークの一時的な切断などによるスプリットブレインの発生を抑止し、より安定的な運用が行えるようになります。
従来のLifeKeeper for Windowsとの違い
Quorum/Witness機能が適用されていると、クラスターノード間のハートビートの切断が発生したときの動作が以下のように変わります。
-
Quorum/Witness機能が未適用の場合
- LifeKeeperが全てのハートビートの切断を検知
- セーフティーチェックを実行し、全てのネットワーク経路を利用して相手のクラスターノードが存在しているかを確認します。
- 相手が存在していないことが確認できた場合にフェイルオーバーを実行します。
-
Quorum/Witness機能が適用済みの場合
- LifeKeeperが全てのハートビートの切断を検知
- Quorum/Witnessチェックにより相手ノードの状態を確認
- Witness modeがstorageである場合は、共有ストレージ上のWitnessデバイスの更新状況を確認します。
- Witness modeがremote_verifyである場合は、第3者ノード(Witnessノード)に相手ノードの状況の確認を依頼します。
- 相手ノードが障害により稼働不可となっていることが確認できた場合に、最後の確認としてセーフティチェックを実行します。
- 相手が存在していないことが確認できた場合にフェイルオーバーを実行します。
上記2つのケースの大きな相違点は、Quorum/Witness機能が未適用の場合はスタンバイノード側がネットワークの切断などで他のクラスターノードから孤立してしまった場合に、フェイルオーバーが生じうる点です。Quorum/Witness機能を適用していれば、ネットワークが一時的に利用不可になった場合でもフェイルオーバーを行う資格の有無を判断できます。
Quorum Witness機能の利用に関するご案内
Quorum Witness機能を利用する際に、第3者ノード(Witnessノード)に相手ノードの状態確認を行わせる設定を利用するには、3台以上でクラスタが構成されていなければなりません。通常、2ノード構成のHAクラスタではこの設定を適用できませんが、申請書にてお申込みいただくことでWitnessノード用のLifeKeeper Coreライセンスを無償でご提供いたします。
※Witnessデバイスとして共有ストレージを利用する場合は、申請書でのお申込みは不要です。