15.4. カスケードレプリケーション
カスケードレプリケーションのシナリオでは、ハブ となる 1 台のサーバーがコンシューマーとサプライヤーの両方のロールを果たします。読み取り専用のレプリカを保持し、changelog を維持するため、データのサプライヤーコピーを保持するサプライヤーサーバーから更新を受け取って、その更新をコンシューマーに提供します。カスケードレプリケーションは、負荷の高いトラフィックのバランスをとる場合や、地理的に分散した環境でサプライヤーサーバーをローカルに配置する場合に使用します。
次の図は、シンプルなカスケードレプリケーションのシナリオを示しています。
図15.4 カスケードレプリケーション
注記
マルチサプライヤーとカスケードレプリケーションを組み合わせることができます。
コマンドラインまたは Web コンソールを使用して、カスケードレプリケーショントポロジーを設定します。参照:
15.4.1. コマンドラインによるカスケードレプリケーションの設定
以下の例では、既存の Directory Server インスタンスが
supplier.example.com
という名前のホストで実行されていることを前提としています。以下の手順では、dc=example,dc=com
接尾辞用にサプライヤーから更新を受信するトポロジーに hub.example.com
という名前のハブを追加する方法を説明します。その後、接尾辞のハブサーバーから更新を受信する consumer.example.com
という名前のコンシューマーを追加する方法を説明します。
参加する新しいハブサーバーの準備
hub.example.com
ホスト:
- Directory Server をインストールしてインスタンスを作成します。詳細は、『Red Hat Directory Server インストールガイド』 を参照してください。
- データベースなしでインスタンスを作成した場合には、接尾辞のデータベースを作成します。たとえば、dc=example,dc=com 接尾辞に
userRoot
という名前のデータベースを作成するには、以下のコマンドを実行します。# dsconf -D "cn=Directory Manager" ldap://hub.example.com backend \ create --suffix="dc=example,dc=com" --be-name="userRoot"
接尾辞のデータベース作成に関する詳細は、「接尾辞の作成」を参照してください。 - 接尾辞のレプリケーションを有効にし、レプリケーションマネージャーアカウントを作成します。
# dsconf -D "cn=Directory Manager" ldap://hub.example.com replication \ enable --suffix="dc=example,dc=com" --role="hub" \ --bind-dn="cn=replication manager,cn=config" --bind-passwd="password"
このコマンドは、dc=example,dc=com 接尾辞のハブとしてhub.example.com
ホストを設定します。さらに、サーバーは指定のパスワードでcn=replication manager,cn=config
ユーザーを作成し、このアカウントがこのホストに接尾辞の変更を複製することができます。
既存のサーバーをサプライヤーに設定
supplier.example.com
ホスト:
- 「参加する新しいハブサーバーの準備」に参加する新しいハブサーバーで実行したコマンドと同様に、dc=example,dc=com 接尾辞のレプリケーションを有効にして、レプリケーションマネージャーアカウントを作成します。
# dsconf -D "cn=Directory Manager" ldap://supplier1.example.com replication \ enable --suffix="dc=example,dc=com" --role="supplier" --replica-id=1 \ --bind-dn="cn=replication manager,cn=config" --bind-passwd="password"
重要トポロジー内のすべてのサプライヤーの接尾辞については、レプリカ ID は 1 から 65534 の間の一意の整数である必要があります。レプリケーションマネージャーアカウントは、ハブで作成したものと同じ DN を使用できます。 - レプリカ合意を追加し、ハブを初期化します。以下に例を示します。
# dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt \ create --suffix="dc=example,dc=com" --host="hub.example.com" --port=636 \ --conn-protocol=LDAPS --bind-dn="cn=replication manager,cn=config" \ --bind-passwd="password" --bind-method=SIMPLE --init \ example-agreement-supplier-to-hub
このコマンドは、example-agreement-supplier-to-hub
という名前のレプリカ合意を作成します。レプリカ合意は、ハブへのデータの接続時や複製時にサプライヤーが使用するハブのホスト名、プロトコル、認証情報などの設定を定義します。この合意の作成後、Directory Server はハブを初期化します。後でハブを初期化するには、--init
オプションを省略します。コンシューマーを初期化する前にレプリケーションが起動しないことに注意してください。コンシューマーの初期化の詳細は、「コンシューマーの初期化」を参照してください。コマンドで使用するオプションの詳細は、以下を入力します。# dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt --help
- 初期化が成功したかどうかを確認します。
# dsconf -D "cn=Directory Manager" ldap://supplier.example.com repl-agmt \ init-status --suffix="dc=example,dc=com" example-agreement-supplier-to-hub Agreement successfully initialized.
複製するデータ量によっては、初期化に時間がかかる場合があります。
参加させる新規コンシューマーの準備
consumer.example.com
ホスト:
- Directory Server をインストールしてインスタンスを作成します。詳細は、『Red Hat Directory Server インストールガイド』 を参照してください。
- データベースなしでインスタンスを作成した場合には、接尾辞のデータベースを作成します。たとえば、dc=example,dc=com 接尾辞に
userRoot
という名前のデータベースを作成するには、以下のコマンドを実行します。# dsconf -D "cn=Directory Manager" ldap://hub.example.com backend \ create --suffix="dc=example,dc=com" --be-name="userRoot"
接尾辞のデータベース作成に関する詳細は、「接尾辞の作成」を参照してください。 - 接尾辞のレプリケーションを有効にし、レプリケーションマネージャーアカウントを作成します。
# dsconf -D "cn=Directory Manager" ldap://consumer.example.com replication \ enable --suffix="dc=example,dc=com" --role="consumer" \ --bind-dn="cn=replication manager,cn=config" --bind-passwd="password"
このコマンドは、consumer.example.com
ホストを dc=example,dc=com 接尾辞のコンシューマーとして設定します。さらに、サーバーは指定のパスワードでcn=replication manager,cn=config
ユーザーを作成し、このアカウントがこのホストに接尾辞の変更を複製することができます。
ハブをコンシューマーのサプライヤーとして設定
hub.example.com
ホスト:
- レプリカ合意を追加し、サーバーを初期化します。以下に例を示します。
# dsconf -D "cn=Directory Manager" ldap://hub.example.com repl-agmt \ create --suffix="dc=example,dc=com" --host="consumer.example.com" --port=636 \ --conn-protocol=LDAPS --bind-dn="cn=replication manager,cn=config" \ --bind-passwd="password" --bind-method=SIMPLE --init \ example-agreement-hub-to-consumer
この合意の作成後、Directory Server はコンシューマーを初期化します。後ほどコンシューマーを初期化する場合は、--init
オプションを省略します。 - 初期化が成功したかどうかを確認します。
# dsconf -D "cn=Directory Manager" ldap://hub.example.com repl-agmt \ init-status --suffix="dc=example,dc=com" example-agreement-hub-to-consumer Agreement successfully initialized.
複製するデータ量によっては、初期化に時間がかかる場合があります。
15.4.2. Web コンソールによるカスケードレプリケーションの設定
以下の例では、既存の Directory Server インスタンスが
supplier.example.com
という名前のホストで実行されていることを前提としています。以下の手順では、dc=example,dc=com
接尾辞用にサプライヤーから更新を受信するトポロジーに hub.example.com
という名前のハブを追加する方法を説明します。その後、接尾辞のハブサーバーから更新を受信する consumer.example.com
という名前のコンシューマーを追加する方法を説明します。
参加する新しいハブサーバーの準備
hub.example.com
ホスト:
- Directory Server をインストールしてインスタンスを作成します。詳細は、『Red Hat Directory Server インストールガイド』 を参照してください。
- Web コンソールで Directory Server ユーザーインターフェイスを開きます。「Web コンソールを使用した Directory Server へのログイン」を参照してください。
- インスタンスを選択します。
- データベースなしでインスタンスを作成した場合には、接尾辞のデータベースを作成します。接尾辞のデータベース作成に関する詳細は、「接尾辞の作成」を参照してください。
- 接尾辞のレプリケーションを有効にします。
- dc=example,dc=com 接尾辞を選択し、 をクリックします。
- Replication Role フィールドで Hub を選択し、作成するレプリケーションマネージャーアカウントの DN およびパスワードを入力します。以下に例を示します。この設定により、
hub.example.com
ホストを dc=example,dc=com 接尾辞のハブとして設定します。さらに、サーバーは指定のパスワードでcn=replication manager,cn=config
ユーザーを作成し、このアカウントがこのホストに接尾辞の変更を複製することができます。
既存のサーバーをサプライヤーに設定
supplier.example.com
ホスト:
- Web コンソールで Directory Server ユーザーインターフェイスを開きます。「Web コンソールを使用した Directory Server へのログイン」を参照してください。
- インスタンスを選択します。
- 「参加する新しいハブサーバーの準備」に参加する新しいハブサーバーの設定と同様、dc=example,dc=com 接尾辞のレプリケーションを有効にして、レプリケーションマネージャーアカウントを作成します。
- dc=example,dc=com 接尾辞を選択し、 をクリックします。
- Replication Role フィールドで Supplier を選択し、レプリカ ID を入力し、作成するレプリケーションマネージャーアカウントの DN およびパスワードを入力します。以下に例を示します。重要トポロジー内のすべてのサプライヤーの接尾辞については、レプリカ ID は 1 から 65534 の間の一意の整数である必要があります。レプリケーションマネージャーアカウントは、ハブで作成したものと同じ DN を使用できます。
- レプリカ合意を追加し、ハブを初期化します。
- この設定により、
example-agreement-supplier-to-hub
という名前のレプリカ合意が作成されます。レプリカ合意は、ハブへのデータの接続時や複製時にサプライヤーが使用するハブのホスト名、プロトコル、認証情報などの設定を定義します。 - Consumer Initialization フィールドで Do Online Initialization を選択し、合意の保存後にコンシューマーを自動的に初期化します。後でハブを初期化するには、Do Not Initialize を選択します。コンシューマーを初期化する前にレプリケーションが起動しないことに注意してください。コンシューマーの初期化の詳細は、「コンシューマーの初期化」を参照してください。
- 初期化が成功したかどうかを確認します。
- 初期化が正常に完了すると、Web コンソールは Last Update Status 列に Error (0) Replica acquired successfully: Incremental update succeeded メッセージを表示します。複製するデータ量によっては、初期化に時間がかかる場合があります。
参加する新規コンシューマーの設定
consumer.example.com
ホスト:
- Directory Server をインストールしてインスタンスを作成します。詳細は、『Red Hat Directory Server インストールガイド』 を参照してください。
- Web コンソールで Directory Server ユーザーインターフェイスを開きます。「Web コンソールを使用した Directory Server へのログイン」を参照してください。
- インスタンスを選択します。
- データベースなしでインスタンスを作成した場合には、接尾辞のデータベースを作成します。接尾辞のデータベース作成に関する詳細は、「接尾辞の作成」を参照してください。
- 接尾辞のレプリケーションを有効にします。
- dc=example,dc=com 接尾辞を選択し、 をクリックします。
- Replication Role フィールドで Consumer を選択し、作成するレプリケーションマネージャーアカウントの DN およびパスワードを入力します。以下に例を示します。この設定により、
consumer.example.com
ホストを dc=example,dc=com 接尾辞のコンシューマーとして設定します。さらに、サーバーは指定のパスワードでcn=replication manager,cn=config
ユーザーを作成し、このアカウントがこのホストに接尾辞の変更を複製することができます。
ハブをコンシューマーのサプライヤーとして設定
consumer.example.com
ホスト:
- レプリカ合意を追加し、コンシューマーを初期化します。
- この設定により、
example-agreement-hub-to-consumer
という名前のレプリカ合意が作成されます。 - Consumer Initialization フィールドで Do Online Initialization を選択し、合意の保存後にコンシューマーを自動的に初期化します。後でコンシューマーを初期化する場合は、Do Not Initialize を選択します。コンシューマーを初期化する前にレプリケーションが起動しないことに注意してください。コンシューマーの初期化の詳細は、「コンシューマーの初期化」を参照してください。
- 初期化が成功したかどうかを確認します。
- 初期化が正常に完了すると、Web コンソールは Last Update Status 列に Error (0) Replica acquired successfully: Incremental update succeeded メッセージを表示します。複製するデータ量によっては、初期化に時間がかかる場合があります。