クォーラムとイプシロンの概要
クォーラムとイプシロンは、クラスタの健全性と機能を判断するための重要な基準で、通信および接続に関する潜在的な問題へのクラスタの対応を決定します。
_クォーラム_は、クラスタが完全に機能するための前提条件です。クラスタがクォーラム状態にある場合、ノードの単純過半数は正常であり、相互に通信できます。クォーラムが失われると、クラスタは通常のクラスタ処理を実行できなくなります。すべてのノードが1つのまとまりとしてデータの単一のビューを共有するため、任意の時点において1つのノードの集まりだけがクォーラムを構成することができます。つまり、通信が確立されていない2つのノードが異なる方法でデータを変更できる場合には、データを1つのデータ ビューに表示できなくなります。
クラスタ内の各ノードは、1つのノードを_マスター_として選出する投票プロトコルに参加します。残りの各ノードは_セカンダリ_です。マスターノードは、クラスタ全体で情報を同期する役割を担います。形成されたクォーラムは継続的な投票によって維持されます。マスター ノードがオフラインになった場合、クラスタでクォーラムが維持されていれば、オンラインのノードの投票によって新しいマスターが選出されます。
ノード数が偶数であるクラスタでは同点が発生する可能性があるため、1つのノードには_epsilon_と呼ばれる追加の分数投票重みが与えられます。大規模クラスタの2つの等しい部分間の接続に障害が発生した場合、すべてのノードが正常であると仮定して、epsilonを持つノードのグループがクォーラムを維持します。たとえば、次の図では、4ノード クラスタの2つのノードで障害が発生しています。ただし、残りのノードの1つにイプシロンが設定されているため、健全なノードが過半数に満たなくてもクォーラムが維持されます。
クラスタが作成されると、自動的に最初のノードにイプシロンが割り当てられます。イプシロンを保持しているノードで障害が発生したり、ハイアベイラビリティ パートナーをテイクオーバーしたり、ハイアベイラビリティ パートナーにテイクオーバーされた場合、イプシロンは別のHAペアの健全なノードに自動的に割り当てられます。
ノードをオフラインにすると、クラスタがクォーラムを維持できるかどうかに影響することがあります。そのため、クラスタのクォーラムが失われたり、あと1つのノード障害によってクォーラムが失われるような処理を実行しようとすると、警告メッセージが表示されます。クォーラムに関する警告メッセージは、advanced権限レベルで `cluster quorum-service options modify`コマンドを実行することで無効にできます。
一般的に、クラスタのノード間に信頼性のある接続が確立されている場合には、小規模のクラスタよりも大規模のクラスタの方が安定します。ノードの半数にイプシロンを加えた過半数のクォーラムの要件は、2ノードのクラスタよりも24ノードのクラスタの方が簡単に維持できます。
2ノードのクラスタでは、クォーラムの維持に独特な課題が存在します。2ノードクラスタは_クラスタHA_を使用します。クラスタHAでは、どちらのノードもイプシロンを保持しません。代わりに、両方のノードが継続的にポーリングされ、片方のノードに障害が発生した場合でも、もう一方のノードがデータへの完全な読み取り/書き込みアクセス、および論理インターフェースと管理機能へのアクセスを確保します。