1.3. Directory Server のデータストレージ

データベースは、ストレージ、パフォーマンス、レプリケーション、およびインデックス化の基本単位です。すべての Directory Server 操作 (エントリーのインポート、エクスポート、バックアップ、復元、およびインデックス化) は、データベース上で実行されます。ディレクトリーデータは LDBM データベースに保存されます。LDBM データベースは、ディレクトリーと共に自動的にインストールされるプラグインとして実装され、デフォルトで有効になります。
デフォルトでは、Directory Server はルート 接尾辞に対して 1 つのバックエンドデータベースインスタンスを使用します。ディレクトリーツリーを含めるには、1 つのデータベースで十分です。このデータベースは、数百万のエントリーを管理できます。
このデータベースは、データに対するリスクを最小限に抑えるために、データのバックアップおよび復元に関する高度な方法をサポートします。
複数のデータベースを使用して、Directory Server デプロイメント全体に対応できます。情報はデータベース全体に分散され、サーバーには 1 つのデータベースに格納できる以上のデータを保存できます。

1.3.1. ディレクトリーエントリーについて

LDAP データ交換形式 (LDIF) は、ディレクトリーエントリーを記述する標準的なテキストベースの形式です。エントリー は LDIF ファイルの多数の行 (スタンザ とも呼ばれる) で設定され、これには、オブジェクトに関する情報 (組織内の人員やネットワーク上のプリンターなど) が含まれます。
エントリーに関する情報は、属性とその値のセットにより LDIF ファイルで表されます。各エントリーには、エントリーが記述するオブジェクトの種類を指定し、含まれる追加属性のセットを定義するオブジェクトクラス属性があります。各属性は、エントリーの特定の特性を記述します。
たとえば、エントリーは、オブジェクトクラス organization openblas、エントリーが組織内のユーザーを表すことを示します。このオブジェクトクラスは、givenname および telephoneNumber 属性をサポートします。これらの属性に割り当てられている値は、エントリーによって表される人員の名前と電話番号を提供します。
Directory Server は、サーバーによって計算される読み取り専用属性も使用します。これらの属性は、操作属性 と呼ばれます。管理者は、アクセス制御やその他のサーバー機能に使用できる運用属性を手動で設定できます。

1.3.1.1. ディレクトリーエントリーでのクエリーの実行

エントリーは、ディレクトリーツリーの階層構造に保存されます。LDAP は、データベースのエントリーにクエリーを行い、ディレクトリーツリー内のそのエントリー下のすべてのエントリーを要求するツールをサポートします。このサブツリーのルートは、ベース識別名 または ベース DN と呼ばれます。たとえば、ou=people,dc=example,dc=com のベース DN を指定して LDAP 検索要求を実行すると、検索操作では dc=example,dc=com ディレクトリーツリーの ou=people サブツリーのみが検査されます。
ただし、LDAP 検索に応答してすべてのエントリーは自動的に返されません。ただし、管理エントリー( ldapsubentry オブジェクトクラスを持つ)はデフォルトで LDAP 検索で返されないためです。たとえば、管理オブジェクトは、ロールやサービスクラスを定義するために使用されるエントリーになります。検索応答にこれらのエントリーを含めるには、クライアントが ldapsubentry オブジェクトクラスを持つエントリーを検索する必要があります。ロールの詳細は 「ロールの概要」を、サービスクラスの詳細は 「サービスクラスについて」 を、それぞれ参照してください。

1.3.2. ディレクトリーデータの分散

ディレクトリーツリーのさまざまな部分が別のデータベースに保存されると、ディレクトリーは、クライアント要求を並行して処理できるため、パフォーマンスが向上します。データベースを異なるマシンに配置して、パフォーマンスをさらに向上させることもできます。
分散データは、データベースリンク と呼ばれるディレクトリーのサブツリーの特別なエントリーによって接続され、このエントリーがリモートで保存されたデータを参照します。クライアントアプリケーションがデータベースリンクからデータを要求すると、データベースリンクはリモートデータベースからデータを取得し、クライアントに返します。このエントリーの下に対して試行された LDAP 操作は、すべてリモートマシンに送信されます。この手法は チェーン と呼ばれます。
チェーンは、プラグインとしてサーバーに実装され、デフォルトで有効になっています。