6.4. 他の Directory Server 機能でのレプリケーションの使用
レプリケーションストラテジーをより適切に設計するために、レプリケーションとその他の Directory Server 機能との相互作用を説明します。
6.4.1. レプリケーションおよびアクセス制御 リンクのコピーリンクがクリップボードにコピーされました!
ディレクトリーはアクセス制御命令 (ACI) をエントリーの属性として保存し、Directory Server はこれらの ACI を他のディレクトリーコンテンツとともにレプリケートします。たとえば、特定のホストからのディレクトリーへのアクセスを制限するには、ACI でホスト固有の設定のみを使用します。そうしないと、ACI が他のサーバーにレプリケートされると、Directory Server が ACI をローカルで評価するため、すべてのサーバーでディレクトリーへのアクセスが拒否されます。
ディレクトリーのアクセス制御の設計に関する詳細は、アクセス制御の設計 を参照してください。
6.4.2. レプリケーションおよび Directory Server プラグイン リンクのコピーリンクがクリップボードにコピーされました!
レプリケーションは、Directory Server に同梱されるほとんどのプラグインと連携します。ただし、次のプラグインには、複数のサプライヤー環境での制限と例外があります。
Attribute Uniqueness プラグイン
Attribute Uniqueness プラグインは、ローカルサーバー上のみのエントリーに追加された属性値の一意性を検証します。たとえば、ある会社では、ユーザーエントリーの
mail
属性が一意である必要があります。2 つの異なるサプライヤーサーバーで、mail
属性に同じ値を持つ 2 人の異なるユーザーが同時に追加されると、名前の競合が発生せず、結果としてレプリケーションの競合も発生しないため、Directory Server はこれらのユーザーをディレクトリーに追加します。Attribute Uniqueness プラグインは、レプリケートされた変更をチェックしないため、結果として、mail
属性値はディレクトリー内で一意ではなくなります。Referential Integrity プラグイン
リファラル整合性は、マルチサプライヤーセット内の 1 つ のサプライヤーでのみ有効になっている場合に、マルチサプライヤーレプリケーションで機能します。これにより、リファラル整合性の更新がサプライヤーサーバーの 1 つでのみ行われ、他のサーバーに伝播されます。
自動メンバーシップと MemberOf プラグイン
これら 2 つのプラグインがレプリケーション環境で正しく機能するには、各サーバー上でローカルに更新を実行するようにプラグインを設定します。
デフォルトではプラグインは無効になっているため、手動で有効にする必要があります。
6.4.3. レプリケーションおよびデータベースのリンク リンクのコピーリンクがクリップボードにコピーされました!
チェイニングを使用してディレクトリー全体にエントリーを分散する場合、データベースリンクを含むサーバーは、実際のデータを含むリモートサーバーを参照します。この環境では、データベースリンクをレプリケートできません。ただし、実際のデータを含むデータベースをリモートサーバーにレプリケートする場合があります。
チェイニングとエントリー分散の詳細は、Directory Server でのチェイニングの使用 を参照してください。
6.4.4. スキーマレプリケーション リンクのコピーリンクがクリップボードにコピーされました!
レプリケートされた環境では、レプリケーションに参加するすべてのサーバー間でスキーマが一貫している必要があります。スキーマの一貫性を確保するには、単一のサプライヤーサーバーでのみスキーマの変更を行ってください。
サーバー間のレプリケーションを設定した場合、スキーマのレプリケーションはデフォルトで実行されます。
標準スキーマ
Directory Server は、標準スキーマのレプリケーションに次のシナリオを使用します。
- データをコンシューマーサーバーにプッシュする前に、サプライヤーサーバーは、そのスキーマのバージョンがコンシューマーサーバーに保持されているスキーマのバージョンと同じかどうかを確認します。
- サプライヤーとコンシューマーの両方のスキーマエントリーが同じである場合、レプリケーション操作が続行されます。
- サプライヤースキーマのバージョンがコンシューマースキーマのバージョンよりも新しい場合、サプライヤーサーバーはデータレプリケーションを続行する前に、そのスキーマをコンシューマーにレプリケートします。
- サプライヤースキーマのバージョンがコンシューマースキーマのバージョンよりも古い場合、コンシューマーのスキーマが新しいデータをサポートできないため、レプリケーションが失敗したり、レプリケーション中にサーバーがエラーを返すことがあります。したがって、コンシューマーサーバー上のスキーマは 更新しないでください。レプリケートされたトポロジー内のサプライヤーサーバー上でのみスキーマを維持する必要があります。
Directory Server は、dsconf
コマンド、Web コンソール、LDAP 変更操作を使用して行われたスキーマの変更、または 99user.ldif
ファイルに直接行われた変更をレプリケートします。
2 つのサプライヤーサーバーでスキーマを変更すると、コンシューマーは 2 つのサプライヤーからそれぞれ異なるスキーマを持つデータを受信します。コンシューマーは、より新しいスキーマバージョンを持つサプライヤーの変更を適用します。このような状況では、コンシューマーのスキーマは常にサプライヤーの 1 つと異なります。これを回避するには、必ず 1 つのサプライヤーに対してのみスキーマの変更を行うようにしてください。
スキーマをレプリケートするために特別なレプリカ合意を作成する必要はありません。ただし、同じ Directory Server にサプライヤーレプリカとコンシューマーレプリカを保持できます。そのため、スキーマのサプライヤーとして機能するサーバーを常に特定してから、このサプライヤーと、スキーマ情報のコンシューマーとして機能するレプリケーション環境の他のすべてのサーバーとの間にレプリカ合意をセットアップします。
標準スキーマファイルの詳細は、標準スキーマ を参照してください。
カスタムスキーマ
標準の 99user.ldif
ファイルをカスタムスキーマとして使用する場合、Directory Server はカスタムスキーマのみをすべてのコンシューマーにレプリケートします。Directory Server は、Web コンソールまたは dsconf
コマンドを使用して変更を加えた場合でも、他のカスタムスキーマファイルやこれらのファイルへの変更をレプリケートしません。
他のカスタムファイルを使用する場合は、サプライヤーで変更を加えた後に、これらのファイルをトポロジー内のすべてのサーバーに手動でコピーする必要があります。