2 つ以上のデータセンターに分散されたレプリカセット
Overview
レプリカセットは単一インスタンスの障害に対する基本的な保護を提供しますが、ノードがすべて単一のデータセンターにあるレプリカセットは、データセンターの障害の影響を受けやすくなります。停電、ネットワークの中断、自然災害はすべて、ノードが 1 つの施設に配置されているレプリカセットに影響を与える可能性がある問題です。
レプリカセットのノードを地理的に異なるデータセンターに分散させると、冗長性が増し、いずれかのデータセンターが利用できなくなった場合でもフォールト トレランスが得られます。
一部のクラウドプロバイダーはリージョンとアベイラビリティーゾーンを使用します。リージョンは別々の地理的領域です。アベイラビリティーゾーンはデータセンターと同じであり、リージョン内の個別の物理的な場所です。ノードが異なるアベイラビリティーゾーンにある場合、レプリカセットには高可用性があります。すべてのゾーンで同時に障害が発生する可能性は低いためです。
ノードの分布
データセンターに障害が発生した場合にデータを保護するには、少なくとも 1 つのノードを代替データセンターに保持します。可能であれば、奇数のデータセンターを使用し、データセンターが 1 つ失われた場合でも、残りのレプリカセット ノードが過半数を占めるか、少なくともデータのコピーを提供できる可能性が最大化されるノードの分散を選択します。
例
3 つのノードのレプリカセット
たとえば、3 つのノードからなるレプリカセットの場合、ノードの分布には次のようなものがあります。
2 つのデータセンター: データセンター 1 に 2 つのノード、データセンター 2 に 1 つのノード。
データセンター 1 がダウンした場合、レプリカセットは読み取り専用になります。
データセンター 2 がダウンしても、データセンター 1 のノードで選挙を行うことができるため、レプリカセットは引き続き書込み可能です。
3 つのデータセンター: データセンター 1 に 1 つのノード、データセンター 2 に 1 つのノード、データセンター 3 に 1 つのノード。
いずれかのデータセンターがダウンしても、残りのノードで選挙を行うことができるため、レプリカセットは引き続き書込み可能です。
注意
レプリカセットのノードを 2 つのデータセンターに分散させると、1 つのデータセンターよりもメリットがあります。2つのデータセンターに分散させた場合、
データセンターの 1 つがダウンしても、1 つのデータセンターのみを利用する場合とは異なり、データは引き続き読み取り可能です。
少数のノードを含むデータセンターがダウンした場合でも、レプリカセットは読み取り操作だけでなく書込み操作も引き続き実行できます。
ただしノードの大多数を含むデータセンターがダウンすると、レプリカセットは読み取り専用になります。
可能であれば、ノードは少なくとも 3 つのデータセンターに分散させます。コンフィギュレーションサーバー レプリカセット (CSRS)の場合、ベストプラクティスはノードを 3 つ(ノード数によってはそれ以上)のセンターに分散させることです。3 つのデータセンターを利用するにはコストが高すぎる場合の選択肢の 1 つは、会社のポリシー上可能であれば、データを含むノードを 2 つのデータセンターに均等に分散し、残りのノードをクラウドに保存することです。
5 つのノードのレプリカセット
5 つのノードからなるレプリカセットの場合、ノードの分布には次のようなものがあります。
2 つのデータセンター: データセンター 1 に 3 つのノード、データセンター 2 に 2 つのノード。
データセンター 1 がダウンした場合、レプリカセットは読み取り専用になります。
データセンター 2 がダウンしても、データセンター 1 のノードが過半数を占める可能性があるため、レプリカセットは引き続き書込み可能です。
3 つのデータセンター: データセンター 1 に 2 つのノード、データセンター 2 に 2 つのノード、サイトデータセンター 3 に 1 つのノード。
いずれかのデータセンターがダウンしても、残りのノードで選挙を行うことができるため、レプリカセットは引き続き書込み可能です。
注意
レプリカセットのノードを 2 つのデータセンターに分散させると、1 つのデータセンターよりもメリットがあります。2つのデータセンターに分散させた場合、
データセンターの 1 つがダウンしても、1 つのデータセンターのみを利用する場合とは異なり、データは引き続き読み取り可能です。
少数のノードを含むデータセンターがダウンした場合でも、レプリカセットは読み取り操作だけでなく書込み操作も引き続き実行できます。
ただしノードの大多数を含むデータセンターがダウンすると、レプリカセットは読み取り専用になります。
可能であれば、ノードは少なくとも 3 つのデータセンターに分散させます。コンフィギュレーションサーバー レプリカセット (CSRS)の場合、ベストプラクティスはノードを 3 つ(ノード数によってはそれ以上)のセンターに分散させることです。3 つのデータセンターを利用するにはコストが高すぎる場合の選択肢の 1 つは、会社のポリシー上可能であれば、データを含むノードを 2 つのデータセンターに均等に分散し、残りのノードをクラウドに保存することです。
たとえば、次の 5 つのノードからなるレプリカセットは、そのノードを 3 つのデータセンターに分散しています。
ノードの選出可能性
ネットワークに制約があるノードやリソースが限られているノードなど、レプリカセットの一部のノードは、フェイルオーバーでプライマリにならないようにする必要があります。プライマリになるべきではないノードの優先順位を 0 に設定します。
場合によっては、あるデータセンターのノードを他のデータセンターのノードよりも先にプライマリに選出したい場合があるかもしれません。ノードのpriority
を変更して、1 つのデータセンターのノードの priority
が他のデータセンターのノードよりも高くなるようにすることができます。
次の例では、データセンター 1 のレプリカセットのノードは、データセンター 2 と 3 のノードよりも優先度が高く、データセンター 2 のノードはデータセンター 3 のノードよりも優先度が高くなります。
接続性
各ノードが他のすべてのノードに接続できるネットワーク構成になっていることを確認してください。