7.2. 一般的なレプリケーションシナリオ

更新がサーバーからサーバーにどのように移動するか、および更新を伝達するときにサーバーがどのように対話するかを決定します。環境に適した方法を決定するための 4 つの基本的なシナリオといくつかの戦略があります。この基本的なシナリオを組み合わせて、ネットワーク環境に最適なレプリケーショントポロジーを構築できます。

7.2.1. 単一サプライヤーレプリケーション

最も基本的なレプリケーション設定では、サプライヤーサーバーはレプリカを 1 つ以上のコンシューマーサーバーに直接コピーします。この設定では、すべてのディレクトリーの変更が、サプライヤーサーバーの読み取り/書き込みレプリカで行われ、コンシューマーサーバーにはデータの読み取り専用レプリカが含まれます。
サプライヤーサーバーは、コンシューマーサーバーに保存されている読み取り/書き込みレプリカに対して変更をすべて実行する必要があります。以下で説明します。

図7.1 単一サプライヤーレプリケーション

単一サプライヤーレプリケーション
サプライヤーサーバーは、読み取り/書き込みレプリカを複数のコンシューマーサーバーに複製できます。1 つのサプライヤーサーバーが管理できるコンシューマーサーバーの合計数は、ネットワークの速度と毎日変更されるエントリーの合計数によって異なります。ただし、サプライヤーサーバーは複数のコンシューマーサーバーを維持することができます。

7.2.2. マルチサプライヤーのレプリケーション

マルチサプライヤーのレプリケーション 環境では、同じ情報のメインコピーが複数のサーバーに存在することがあります。つまり、異なる場所で同時にデータを更新できることを意味します。各サーバーで発生した変更は、他のサーバーに複製されます。つまり、各サーバーはサプライヤーとコンシューマーの両方として機能します。
注記
Red Hat Directory Server は、任意のレプリケーション環境で最大 20 個のサプライヤーサーバーと、数量無制限のハブサプライヤーをサポートします。読み取り専用レプリカを保持するコンシューマーサーバーの数は無制限です。
同じデータが複数のサーバーで変更された場合、どの変更が保持されるかを決定するための競合解決手順があります。Directory Server は、有効な変更を最新の変更とみなします。
複数のサーバーが同じデータのコピーを保持することはできますが、1 つのレプリケーションアグリーメントの範囲内に存在するのは、1 つのサプライヤーサーバーと 1 つのコンシューマーのみです。したがって、同じデータに対して責任を共有する 2 つのサプライヤーサーバー間にマルチサプライヤー環境を作成するには、複数のレプリケーションアグリーメントを作成します。

図7.2 簡素化されたマルチサプライヤーレプリケーション設定

簡素化されたマルチサプライヤーレプリケーション設定
図7.2「簡素化されたマルチサプライヤーレプリケーション設定」 では、サプライヤー A とサプライヤー B はそれぞれ、同じデータの読み取り/書き込みレプリカを保持します。
図7.3「簡素なマルチサプライヤー環境でのレプリケーショントラフィック」 は、2 つのサプライヤー (図では読み取り/書き込みレプリカ) と 2 つのコンシューマー (図では読み取り専用レプリカ) のレプリケーショントラフィックを説明しています。コンシューマーは、両方のサプライヤーによって更新できます。サプライヤーサーバーは、変更が競合しないようにします。

図7.3 簡素なマルチサプライヤー環境でのレプリケーショントラフィック

簡素なマルチサプライヤー環境でのレプリケーショントラフィック
Directory Server でのレプリケーションは、最大 20 のサプライヤーをサポートできます。これらのサプライヤーはすべて、同じデータに対する責任を共有します。このような多くのサプライヤーを使用するには、さまざまなレプリカアグリーメントを作成する必要があります。(また、マルチサプライヤーレプリケーションでは、各サプライヤーを異なるトポロジーで設定できることも覚えておいてください。つまり、20 の異なるディレクトリーツリーや、スキーマの違いさえある可能性があります。トポロジーの選択に直接影響する変数は多数あります)。
マルチサプライヤーのレプリケーションでは、サプライヤーは他のすべてのサプライヤーに更新を送信することや、他のサプライヤーのサブセットに更新を送信することができます。他のすべてのサプライヤーへの更新を送信すると、変更がより迅速に伝播され、全体的なシナリオは障害耐性が大幅に向上します。ただし、サプライヤーの設定が複雑になり、ネットワークの需要とサーバーの需要が高くなります。サプライヤーのサブセットへの更新の送信は、設定がはるかに簡単になり、ネットワークとサーバーの負荷が軽減されますが、複数のサーバーに障害が発生した場合、データが失われるリスクがあります。
図7.4「マルチサプライヤーのレプリケーション設定 A」 は、4 つのサプライヤーサーバーが、他の 3 つのサプライヤーサーバー (コンシューマーとしても機能する) にデータをフィードする、完全に接続されたメッシュトポロジーを示しています。4 つのサプライヤーサーバー間には、合計 12 のレプリケーションアグリーメントが存在します。

図7.4 マルチサプライヤーのレプリケーション設定 A

マルチサプライヤーのレプリケーション設定 A
図7.5「マルチサイトのレプリケーション設定 B」 は、各サプライヤーサーバーが他の 2 つのサプライヤーサーバー (コンシューマーとしても機能する) にデータをフィードするトポロジーを示しています。図7.4「マルチサプライヤーのレプリケーション設定 A」 のトポロジーでは 12 の合意があるのに対し、4 つのサプライヤーサーバー間には、8 つのレプリカ合意しかありません。このトポロジーは、2 つ以上のサーバーに同時に障害が発生する可能性を無視できる場合に役立ちます。

図7.5 マルチサイトのレプリケーション設定 B

マルチサイトのレプリケーション設定 B
これら 2 つの例は、簡素化したマルチサプライヤーのシナリオです。Red Hat Directory Server では、1 つのマルチサプライヤー環境で 20 ものサプライヤーと無制限のハブサプライヤーを持つことができるため、レプリケーションのトポロジーはより複雑になります。たとえば、図7.4「マルチサプライヤーのレプリケーション設定 A」 は、12 のレプリカ合意があります (4 つのサプライヤーにそれぞれ 3 つの合意があります)。サプライヤー数が 20 の場合、レプリカ合意は 380 になります (20 台のサーバーにそれぞれ 19 の合意があります)。
マルチサプライヤーレプリケーションを計画する際には、以下を考慮してください。
  • サプライヤーの数
  • 地理的な場所
  • サプライヤーが他の場所にあるサーバーを更新するために使用するパス
  • 異なるサプライヤーのトポロジー、ディレクトリーツリー、およびスキーマ
  • ネットワークの品質
  • サーバーの負荷およびパフォーマンス
  • ディレクトリーデータに必要な更新間隔

7.2.3. カスケードレプリケーション

カスケードレプリケーションのシナリオでは、ハブサプライヤー は、サプライヤーサーバーから更新を受け取り、コンシューマーサーバーでそれらの更新を再生します。ハブサプライヤーはハイブリッドで、通常のコンシューマーサーバーなどの読み取り専用レプリカを保持し、一般的なサプライヤーサーバーなどの changelog を維持します。
ハブサプライヤーは、元のサプライヤーからサプライヤーデータを受信すると、これを転送します。同様に、ハブサプライヤーがディレクトリークライアントから更新リクエストを受け取ると、クライアントをサプライヤーサーバーに照会します。
カスケードレプリケーションは、組織内の様々な場所のネットワーク接続の一部が他よりも優れている場合に有効です。たとえば、Example Corp. では、ディレクトリーデータのメインコピーをミネアポリスに、コンシューマーサーバーをニューヨークとシカゴに置いています。ミネアポリスとニューヨークの間のネットワーク接続は非常に良いですが、ミネアポリスとシカゴの間の接続は悪いです。ニューヨークとシカゴの間のネットワークは正常であるため、Example の管理者はカスケードレプリケーションを使用して、ディレクトリーデータをミネアポリスからニューヨーク、そしてシカゴへと移動させます。

図7.6 カスケードレプリケーションのシナリオ

カスケードレプリケーションのシナリオ
図7.7「カスケードレプリケーションにおけるレプリケーショントラフィックと changelog」 は、同じシナリオを別の視点から説明したもので、各サーバーでレプリカがどのように設定されているか (読み取り/書き込みか、または読み取り専用か)、どのサーバーが changelog を維持しているかを示しています。

図7.7 カスケードレプリケーションにおけるレプリケーショントラフィックと changelog

カスケードレプリケーションにおけるレプリケーショントラフィックと changelog

7.2.4. 混合環境

ネットワークやディレクトリー環境のニーズに合わせて、いずれのレプリケーションシナリオも組み合わせることができます。一般的な組み合わせの 1 つとして、マルチサプライヤー設定をカスケード設定と使用する組み合わせがあります。

図7.8 マルチサプライヤーとカスケードレプリケーションの組み合わせ

マルチサプライヤーとカスケードレプリケーションの組み合わせ