医学におけるスプリットブレインとは、脳内のコミュニケーションの機能不全の状態を指します。 脳の半分が残りの半分の行動に気づいていないところ。 分散コンピューティングのスプリットブレインとは、クラスターのアクティブなサーバー間の通信損失を指します。 これが発生すると、すべてのサブクラスターが相互のすべての同期およびハートビート接続を失います。
機能している脳の場合と同様に、分散システムでスプリットブレインが発生する可能性はまったく同じです。 そのような災害が分散システムに降りかかる場合、それはシステム管理者にとって本当に恐ろしいことであり、それから回復することはできません。 使用していない限り NCache 分散キャッシュとして。 そうして初めて、あなたには希望があります。
スプリットブレイン NCache クラスタ
NCache クラスタ内通信用に相互接続されたサーバーを使用して、自己回復型の動的クラスタを作成します。 しかし、他の分散システムと同様に、 NCache クラスターも直面する可能性があります スプリットブレイン XNUMXつ以上のキャッシュサーバーがクラスターの残りの部分から切断され、サブクラスターを形成する問題。 そして、脳と同じように、あなたのクラスターは半分に分割され、それぞれが相手の存在について何も知りません。
NCache 詳細 スプリットブレインアーキテクチャ スプリットブレインリカバリ NCache
例として、5つのノードのクラスターを取り上げましょう。 クラスターは正常に動作し、キャッシュ、通信、処理を行いますが、完全に実行されているクラスターをXNUMXつに分割するネットワークグリッチがどこからともなく発生します。
これがクラスターで発生すると、クラスターの両方の半分が独立して動作し始め、残りの半分がダウンしたと想定して、独立したサブクラスターになります。
この動作により、両方の半分が、同期なしでクライアントによって更新されているデータの独自のコピーを持つことになります。 これにより、アプリケーションでキャッシュ操作の失敗やデータの整合性の問題が発生した場合に、分散キャッシュを使用する目的が無効になります。
NCache 詳細 スプリットブレインアーキテクチャ スプリットブレインリカバリ NCache
どのように NCache スプリットブレインから回復しますか?
スプリットブレインから回復する最初のステップは、クラスター内でそれを検出することです。 そしてあなたにとって幸運なことに、 NCache スプリットブレインの発生を自動的に検出する機能があります。 方法は次のとおりです。
NCache クラスターを構成するすべてのキャッシュサーバーでクラスターメンバーシップを維持します。 したがって、サーバー間の接続が切断されるたびに、クラスター全体に通知が送信されます。 両方の半分(サブクラスター)は、それらが存続しているクラスターであると想定し、保存されているデータを使用して独立して作業を開始します。 パフォーマンスを妨げないように個別に動作することに加えて、サブクラスターは「失われたクラスター」との再接続を試み続け、最初のクラスターを元に戻します。 その間、両方のサブクラスターは、クラスターの状態を示すWindowsイベントログにイベントを記録します。 サブクラスターは、特定のサーバーとの接続が失われたことを電子メール通知を介してキャッシュ管理者に通知することもできます。
この時点まで、どちらの半分も実際にはスプリットブレインに遭遇したことに気づいていません。 クラスター分割の原因を最終的に理解するのは、ネットワーク接続が復元されたときだけです。
接続が復元され、サーバーが相互に通信を開始すると、誰が「勝者」クラスターになるかを決定する必要があります。 勝者クラスターは、基本的に次の並べ替え基準を満たすクラスターです。
- 最大数のノードを含むサブクラスター。 これは、データの損失を最小限に抑えるために行われます。
- 両方のサブクラスターのサイズが同じである場合、コーディネーターノードのIPアドレスが低いサブクラスターが勝者クラスターと見なされます。
決定したら、「敗者」クラスターを再起動するのは勝者クラスターの責任であり、 redis新しいノード間でデータを提供します。 このすべてを通して redis貢献すると、敗者のクラスターはデータを失いますが、明るい面では、勝者のクラスターはデータを保持します。
NCache 詳細 スプリットブレインアーキテクチャ スプリットブレインリカバリ NCache
スプリットブレイン自動回復の有効化
デフォルトでは、のスプリットブレイン自動回復機能 NCache 無効になっています。 データが完全に失われる可能性がない場合は、この機能を有効にする必要があります。 以下に、有効にする方法を示します。 スプリットブレイン自動回復 クラスター用。
使い方 NCache Webマネージャ
を使用して、キャッシュクラスターのスプリットブレインリカバリを簡単に有効にできます。 NCache Webマネージャー。 で提供されるヘルプに従ってください スプリットブレイン自動回復を有効にする この機能を有効にします。
キャッシュ構成ファイルの使用
スプリットブレインリカバリは、 NCache 構成ファイル。 手動で編集する キャッシュ構成 ここに記載されている手順に従ってファイルします。 手動で編集 NCache スプリットブレインリカバリの構成.
1 2 3 |
<cache-settings...> <split-brain-recovery enable="True" detection-interval="60"/> </cache-settings> |
NCache 詳細 スプリットブレインアーキテクチャ スプリットブレイン自動回復を有効にする
手短に…
データの処理中に、キャッシュクラスターでネットワークグリッチが発生し、クラスターがサブクラスターに分割されることがあります。 この分割は、論理的であっても、キャッシュされたデータに脅威をもたらします。 このシナリオ全体は、医学用語のスプリットブレイン症候群に似ています。 このシンドロームがクラスターに与える可能性のある損傷を修正するには、 NCache スプリットブレイン自動回復機能の形で救済策を提供します。 あなたが持っている場合 NCache そうすれば、クラスターが半分に分割された後は、クラスターの管理について心配する必要はありません。 NCache 常に日を保存します。
NCache 詳細 NCache ダウンロード エディションの比較