15.2. 単一サプライヤーレプリケーション
単一サプライヤーレプリケーションのシナリオでは、ディレクトリーデータのサプライヤーコピーが、サプライヤーサーバー と呼ばれる 1 台のサーバーの 1 つの読み取り/書き込みレプリカに保持されます。サプライヤーは、このレプリカの changelog も維持します。コンシューマーサーバー と呼ばれる別のサーバーでは、ディレクトリーの読み取り専用コピーが保存されます。単一サプライヤーレプリケーション環境では、複数のコンシューマーを実行できます。
接尾辞が多数の検索要求を受け取りますが、書き込み要求数が少ない場合などに、単一サプライヤーレプリケーショントポロジーを使用します。負荷を分散するために、クライアントはトポロジー内のすべてのサーバーで接尾辞を検索し、書き込み要求をサプライヤーに送信します。
以下の図は、2 つのコンシューマーを持つ単一サプライヤーレプリケーション環境を示しています。
図15.1 単一サプライヤーレプリケーション
コマンドラインまたは Web コンソールを使用して、単一サプライヤーレプリケーショントポロジーを設定します。参照:
15.2.1. コマンドラインを使用した単一サプライヤーレプリケーションの設定
以下の例では、既存の Directory Server インスタンスが
supplier.example.com
という名前のホストで実行されていることを前提としています。このホストは、レプリケーショントポロジーに設定されるサプライヤーとして機能します。以下の手順では、consumer.example.com
という名前の読み取り専用コンシューマーをトポロジーに追加する方法と、dc=example,dc=com
接尾辞に単一サプライヤーレプリケーションを設定する方法を説明します。
コンシューマーで実行する手順
consumer.example.com
ホスト:
- Directory Server をインストールして、インスタンスを作成します。詳細は、『Red Hat Directory Server インストールガイド』 を参照してください。
- データベースなしでインスタンスを作成した場合には、接尾辞のデータベースを作成します。たとえば、dc=example,dc=com 接尾辞に
userRoot
という名前のデータベースを作成するには、以下のコマンドを実行します。# dsconf -D "cn=Directory Manager" ldap://consumer.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
ユーザーを作成し、このアカウントがこのホストに接尾辞の変更を複製することができます。
接尾辞に複数のコンシューマーを追加するには、各コンシューマーでこの手順を繰り返します。
サプライヤーで実施する手順
supplier.example.com
ホスト:
- dc=example,dc=com 接尾辞のレプリケーションを有効にします。
# dsconf -D "cn=Directory Manager" ldap://supplier.example.com replication \ enable --suffix="dc=example,dc=com" --role="supplier" --replica-id=1
このコマンドは、supplier.example.com
ホストを dc=example,dc=com 接尾辞のサプライヤーとして設定し、このエントリーのレプリカ ID を 1 に設定します。重要トポロジー内のすべてのサプライヤーの接尾辞については、レプリカ ID は 1 から 65534 の間の一意の整数である必要があります。 - レプリカ合意を追加し、コンシューマーを初期化します。以下に例を示します。
# dsconf -D "cn=Directory Manager" ldap://supplier.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
このコマンドは、example-agreement
という名前のレプリカ合意を作成します。レプリカ合意は、コンシューマーへのデータの接続や複製時にサプライヤーが使用するコンシューマーのホスト名、プロトコル、認証情報などの設定を定義します。この合意の作成後、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 Agreement successfully initialized.
複製するデータ量によっては、初期化に時間がかかる場合があります。
トポロジーに、接尾辞の複数のコンシューマーを追加する場合は、各コンシューマーのサプライヤーで手順を繰り返します。ただし、接尾辞のレプリケーションは、サプライヤーで 1 回のみ有効にする必要があります。
15.2.2. Web コンソールを使用した単一サプライヤーレプリケーションの設定
以下の例では、既存の Directory Server インスタンスが
supplier.example.com
という名前のホストで実行されていることを前提としています。このホストは、レプリケーショントポロジーに設定されるサプライヤーとして機能します。以下の手順では、consumer.example.com
という名前の読み取り専用コンシューマーをトポロジーに追加する方法と、dc=example,dc=com
接尾辞に単一サプライヤーレプリケーションを設定する方法を説明します。
コンシューマーで実行する手順
consumer.example.com
ホスト:
- Directory Server をインストールして、インスタンスを作成します。詳細は、『Red Hat Directory Server インストールガイド』 を参照してください。
- Web コンソールで Directory Server ユーザーインターフェイスを開きます。「Web コンソールを使用した Directory Server へのログイン」を参照してください。
- インスタンスを選択します。
- データベースなしでインスタンスを作成した場合には、接尾辞のデータベースを作成します。接尾辞のデータベース作成に関する詳細は、「接尾辞の作成」を参照してください。
- 接尾辞のレプリケーションを有効にします。
- dc=example,dc=com 接尾辞を選択し、 をクリックします。
- Replication Role フィールドで Consumer を選択し、作成するレプリケーションマネージャーアカウントの DN およびパスワードを入力します。以下に例を示します。この設定により、ホストを 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 を入力し、Replication Authentication エリアのフィールドを空のままにします。以下に例を示します。これにより、ホストを dc=example,dc=com 接尾辞のサプライヤーとして設定し、このエントリーのレプリカ ID を 1 に設定します。重要トポロジー内のすべてのサプライヤーの接尾辞については、レプリカ ID は 1 から 65534 の間の一意の整数である必要があります。
- レプリカ合意を追加し、コンシューマーを初期化します。
- dc=example,dc=com 接尾辞を選択します。メニューを開き、
- この設定により、
example-agreement
という名前のレプリカ合意が作成されます。レプリカ合意は、コンシューマーへのデータの接続や複製時にサプライヤーが使用するコンシューマーのホスト名、プロトコル、認証情報などの設定を定義します。 - Consumer Initialization フィールドで Do Online Initialization を選択し、合意の保存後にコンシューマーを自動的に初期化します。後でコンシューマーを初期化する場合は、Do Not Initialize を選択します。コンシューマーを初期化する前にレプリケーションが起動しないことに注意してください。コンシューマーの初期化の詳細は、「コンシューマーの初期化」を参照してください。
- 初期化が成功したかどうかを確認します。
- 初期化が正常に完了したら、Web コンソールの Last Update Status 列に Error (0) Replica acquired successfully: Incremental update succeeded メッセージが表示されます。複製するデータ量によっては、初期化に時間がかかる場合があります。
トポロジーに、接尾辞の複数のコンシューマーを追加する場合は、各コンシューマーのサプライヤーで手順を繰り返します。ただし、接尾辞のレプリケーションは、サプライヤーで 1 回のみ有効にする必要があります。