第4章 Directory Server でのディレクトリーデータベースの設定
データベース、接尾辞、チェーンポリシー、データベースリンク、および参照を設定できます。仮想ディレクトリーツリーを使用して、エントリーをカスタムグループまたは階層に整理します。
4.1. 接尾辞を別のデータベースに格納する リンクのコピーリンクがクリップボードにコピーされました!
Directory Server では、インスタンス内のデータを複数のデータベースに分割して、データの分散保存ロジックを設計することができます。データ分割の方法として、ディレクトリーツリーの接尾辞を利用することができます。
複数のディレクトリーツリーを作成し、ルートの接尾辞で別々のデータベースに格納することができます。また、1 つのディレクトリーツリーをブランチに分割し、サブ接尾辞によってブランチを別々のデータベースに格納することもできます。
4.1.1. データ構造における接尾語のロール リンクのコピーリンクがクリップボードにコピーされました!
Directory Server は、データをディレクトリーツリー (DIT) と呼ばれる階層構造で表示します。以下は、簡単なディレクトリーツリーです。
図4.1 単一のルート接尾辞を持つシンプルなディレクトリーツリー
各ディレクトリーツリーには、dc=example,dc=com などのディレクトリーツリーの命名コンテキストを定義する単一の root エントリーがあります。
さまざまなディレクトリーツリーを異なるデータベースに保存し、これらのデータベースを複数のサーバーに分散できます。
接尾辞を使用して、データストレージの分散ロジックを定義できます。接尾辞は、ディレクトリーツリーのブランチ (サブツリー) と特定のデータベースを関連付けます。
これにより、サーバーの 1 つのインスタンス内に複数のデータベースを指定できます。一つのデータベースに縛られることはありません。
4.1.2. ルート接尾辞とサブ接尾辞の比較 リンクのコピーリンクがクリップボードにコピーされました!
ルート接尾辞は、ディレクトリーツリー (DIT) 全体とデータベースを関連付けます。ルート接尾辞には、親の接尾辞がありません。
ディレクトリーツリーのブランチを別のデータベースに保存する場合、サブ接尾辞を作成します。これは、ツリーのブランチをブランチの祖先とは別のデータベースに関連付けるものです。サブ接尾辞は、親接尾辞に付けなければなりません。親接尾辞はルート接尾辞でもサブ接尾辞でも構いません。つまり、任意のサブツリーのブランチを別のデータベースに保存することができます。
図4.2 別のデータベースにサブ接尾辞を持つディレクトリーツリー
この例では、ou=people,dc=example,dc=com のサブ接尾辞が 1 つのデータベースに格納され、ルート接尾辞の下にある残りのディレクトリーツリーが別のデータベースに格納されています。
サブ接尾辞を使用する利点:
- データベースのメンテナンス (インポート/エクスポート/インデックス作成) を細かいレベルで実行できます。
- サブ接尾辞を別のディスクに保存できるため、ディスク領域の問題を解決できます。
サブ接尾辞を使うことのデメリット
- セットアップ中にさらに多くの管理アクションが必要になります。
- レプリケーションには、サブ接尾辞ごとに個別の設定とレプリカ合意が必要です。
4.1.3. いくつかのルート接尾辞 リンクのコピーリンクがクリップボードにコピーされました!
また、1 つのインスタンスに異なるルート接尾辞を持つ複数のディレクトリーツリー (DIT) を持つことができます。例えば、ある部分のデータをユーザールートから分離したい場合などです。
図4.3 ルート接尾辞で定義された複数のディレクトリーツリー
クライアントが dc=example,dc=com のツリーを検索すると、他のツリーからのエントリーは検索アルゴリズムでは制限されているため、検索では返されません。
次に、インスタンスのデフォルトとなるディレクトリーツリーとネーミングコンテキストを選択できます。
4.1.4. コマンドラインを使用したルート接尾辞の作成 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、コマンドラインでディレクトリーツリーのルート接尾辞を作成する方法を説明します。
手順
オプションとして、すでに使用されている接尾辞とバックエンドデータベースをリストアップします。
# dsconf <instance_name> backend suffix list dc=example,dc=com (userroot)括弧内の名前は、対応する接尾辞のデータを保存するバックエンドデータベースです。次のステップでルート接尾辞を作成する際に、既存のデータベース名を使用することはできません。
ルート接尾辞の DN を
--suffix引数で指定し、--be-name引数を使用して新しいデータベースと関連付けます。# dsconf <instance_name> backend create --suffix="dc=example,dc=net" --be-name="example"
検証
- この手順の最初のステップにあるコマンドを使用して、接尾辞とデータベースをリスト表示します。
4.1.5. Web コンソールによるルート接尾辞の作成 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、ブラウザー上でディレクトリーツリーのルート接尾辞を作成する方法を説明します。
前提条件
- Web コンソールでインスタンスにログインしている。
手順
- Database で、設定ツリーの下にある ボタンをクリックします。
- Suffix DN と Database Name を記入します。
- Create The Top Suffix Entry を選択し、 をクリックします。
検証
- 新しい接尾辞は、接尾辞のツリーに表示されるはずです。
4.1.6. デフォルトのネーミングコンテキストの変更 リンクのコピーリンクがクリップボードにコピーされました!
ネーミングコンテキストは、その DIT のエントリーに対するルート名前空間を定義するディレクトリーツリー (DIT) の属性です。複数のルート接尾辞を持つインスタンスにデータを生成する場合、インスタンスには複数の DIT があり、それぞれ命名コンテキストは異なります。
この手順では、インスタンスで複数のルート接尾辞を使用する際に、コマンドラインでデフォルトのネーミングコンテキストを変更する方法を説明します。
インスタンスにアクセスするクライアントでは、使用する必要のあるネーミングコンテキストがわからない可能性があります。Directory Server は、デフォルトのネーミングコンテキストが既知の他の設定がない場合に、クライアントに対して通知します。
cn=config の nsslapd-defaultnamingcontext 属性でデフォルトのネーミングコンテキストを設定します。Directory Server はこの値を Directory Server Agent Service Entry(root DSE) に伝播し、クライアントは匿名にクエリーできます。
前提条件
- インスタンスのデフォルトのネーミングコンテキストを定義するルート接尾辞を作成している。
手順
オプション: 現在のデフォルトネーミングコンテキストを表示します。
# dsconf <instance_name> config get nsslapd-defaultnamingcontext nsslapd-defaultnamingcontext: dc=example,dc=comnsslapd-defaultnamingcontextパラメーターの値を、必要なネーミングコンテキストに置き換えます。# dsconf <instance_name> config replace nsslapd-defaultnamingcontext=dc=example,dc=net
検証
- 現在のデフォルトネーミングコンテキストを表示します。値を更新する必要があります。
4.1.7. コマンドラインによるサブ接尾辞の作成 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインを使用して、ディレクトリーツリーのサブ接尾辞を作成できます。
前提条件
- サブ接尾辞の親接尾辞が作成されている。
手順
オプションとして、すでに使用されている接尾辞とバックエンドデータベースをリストアップします。
# dsconf <instance_name> backend suffix list dc=example,dc=com (userroot)括弧内の名前は、対応する接尾辞のデータを保存するバックエンドデータベースです。次のステップでサブ接尾辞を作成する際に、既存のデータベース名を使用することはできません。
--suffix引数でサブ接尾辞の完全な DN を指定し、--be-name引数を使用してその DN を新しいデータベースに関連付け、--parent-suffix引数で親接尾辞を指定します。# dsconf <instance_name> backend create --suffix="ou=People,dc=example,dc=com" --be-name="example" --parent-suffix="dc=example,dc=com" --create-suffix--create-suffix引数を指定すると、コマンドはサブ接尾辞の設定エントリーとサブ接尾辞エントリーou=People,dc=example,dc=comを作成します。--create-suffix引数は、RDN 属性タイプc、cn、dc、o、およびouを使用した接尾辞の作成をサポートします。lなどの RDN を使用して接尾辞を作成する場合は、--create-suffixオプションを指定せずにdsconf backend createコマンドを使用し、LDAP 追加操作を使用して接尾辞エントリーを追加するか、LDIF ファイルからエントリーをインポートします。
検証
- この手順の最初のステップにあるコマンドを使用して、接尾辞とデータベースをリスト表示します。
4.1.8. Web コンソールによるサブ接尾辞の作成 リンクのコピーリンクがクリップボードにコピーされました!
この手順では、ブラウザーでディレクトリーツリーのサブ接尾辞を作成する方法を説明します。
前提条件
- Web コンソールでインスタンスにログインしている。
- サブ接尾辞の親接尾辞が作成されている。
手順
- Database で、サブ接尾辞の親である設定ツリーから接尾辞を選択します。
- をクリックし、 を選択します。
-
ou=PeopleおよびDatabase Nameなどの Sub-Suffix DN を入力します。 -
Create the Top Suffix Entryを選択し、 をクリックします。
検証
- 新しいサブ接尾辞は、設定ツリーの接尾辞の間に表示されるはずです。