クラスタパーティションとは、クラスタノード間ですべてのCF通信が失われ、クラスタ自体が複数のノード群に分断されることです。
SFがすべてのクラスタノード上で正常動作している場合は、SFがクラスタパーティションの問題を解決します。しかし、設定されたSFが正常動作していない場合、または、SFによる強制停止処理が失敗した場合は、手動で状態を回復する必要があります。
クラスタパーティション状態から手動で回復するには、以下の手順を実行する必要があります。
どのクラスタノード群を残すかを決定します。通常は、最もノード数の多いクラスタノード群か、最も重要なハードウェアが接続されたノード群か、最も重要なアプリケーションが稼動しているノード群を選択します。
残さないノード群内のすべてのノードを停止します。
ノードが停止している間に、Cluster Admin GUIを使用して稼動しているノードの1つにログインし、CFメインウィンドウを表示します。プルダウンメニューの [ツール] - [ノードにDOWNマークを付ける] を選択し、すべての停止ノードにDOWNマークを付けます。
この処理は、以下のコマンドをコマンド行から実行することによっても行えます。
#cftool -k
ネットワークの障害を解決して、すべてのクラスタノード間の接続をリストアします。
停止していたノードを再起動します。ノード再起動時にこれらのノードは自動的にクラスタに再参入します。
たとえば、以下の図について考えてみます。
図5.3 ネットワークパーティションが発生した4ノードクラスタ
この図では、4ノードクラスタでネットワークパーティションが発生しています。両方のクラスタインタコネクト (インタコネクト1とインタコネクト2) が切断されています。クラスタが2つのノード群に分割されています。ノードAとノードBは同じノード群にあり、ノードCとノードDはもう一方のノード群にあります。
SFで問題を解決できない場合にこの状態から回復するには、以下の手順を実行する必要があります。
どのノード群を残すかを決定します。この例では、ノードAとノードBを残すことにします。
もう一方のノード群のノードすべて (ノードCとノードD) を停止します。
ノードCとノードDが停止している間に、ノードAまたはノードBでCluster Admin GUIを実行します。CFメインウィンドウを表示し、プルダウンメニューの [ツール] - [ノードにDOWNマークを付ける] を選択してノードCとノードDにDOWNマークを付けます。
この処理は、以下のコマンドをコマンド行から実行することによっても行えます。
#cftool -k
インタコネクト1とインタコネクト2の故障を修理して、分断されたノード群が再び相互に通信できるようにします。
ノードCとノードDを再起動します。