今回はバックエンドデータベースとして、OpenLDAPで標準的に使用されている「BDB」を選択します。BDBバックエンドの設定は「/usr/local/etc/openldap/slapd.conf」で行い、次のように記述します。なお設定項目の詳細については、表2を参照してください。
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
pidfile /usr/local/var/run/slapd.pid
argsfile /usr/local/var/run/slapd.args
sizelimit 10000
database bdb
suffix “dc=example,dc=com”
rootdn “cn=Manager,dc=example,dc=com”
rootpw {SSHA}l5Q9Jh6793+7ar6Xlhq1XzDwkVyyaSsr
access to attrs=userPassword
by anonymous auth
by self write
by * none
directory /usr/local/var/openldap-data
index objectClass,uid,cn,entryCSN,entryUUID eq
cachesize 10000
idlcachesize 30000
checkpoint 1024 5
rootpwには、次のコマンドを実行して、ハッシュ化したパスワードを設定してください。
# /usr/local/sbin/slappasswd -s <パスワード>
BDBバックエンドの設定項目の中でOpenLDAPの性能に影響するのが「cachesize」と「idlcachese」ディレクティブです。これらは検索時のキャッシュに関する設定項目で、適切に設定することによってOpenLDAPの検索性能が大幅に向上します。
cachesizeは、検索結果のキャッシュサイズをエントリ数で指定します。従って、LDAPサーバに格納するエントリ数と同じ値を設定します。しかしエントリ数が非常に多い場合は、マシンのメモリ容量を考慮した上で、cachesizeの値を設定する必要があります。
idlcachesizeは、インデックスのキャッシュサイズで、cachesizeの3倍以上の値を設定するように推奨されています。
表2は、設定項目の詳細についてまとめたものです。設定時の参考にしてください。
ディレクティブ |
デフォルト値 |
説明 |
access |
0 |
LDAPのエントリ、属性に対するアクセス権を指定します。 |
include |
- |
指定したファイルに記述されている設定情報を読み込みます。主にスキーマファイルを読み込む際に使用します。 |
sizelimit |
500 |
検索結果として返すエントリの最大数を指定します。 |
pidfile |
- |
プロセスIDを記録するファイル名を指定します。 |
argsfile |
- |
LDAPサーバ起動時のコマンドラインオプションを記録するファイル名を指定します。 |
database |
- |
バックエンドデータベースを指定します。 |
rootdn |
- |
Root権限を持つDNを指定します。 |
rootpw |
- |
rootdnのパスワードを指定します。 |
suffix |
- |
ディレクトリツリーのトップとなるDNを指定します。 |
directory |
- |
データベースファイルを格納するディレクトリを指定します。 |
inedex |
- |
インデックスを作成するLDAPの属性を指定します。 |
cachesize |
1000 |
検索結果をキャッシュする際のエントリ数を指定します。 |
idlcachesize |
0 |
キャッシュするインデックスのサイズを指定します。 |
checkpoint |
0(KB),0(分) |
データベースのバッファを指定したデータ量(KB)を書き込むごと、指定した時間(分)が経過するごとにディスクへ書き込みます。 |
表2:設定項目の詳細な内容
|
設定が完了したら、正常に動作することを確認します。まず以下のコマンドでLDAPサーバデーモンを起動します。
# /usr/local/libexec/slapd
次に、以下のリスト1のようなLDIFファイルを作成します。
リスト1:LDIFファイルの内容
test.ldif
dn: dc=example,dc=com
objectClass: domain
dc: example
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
dn: uid=sekiguchi,ou=People,dc=example,dc=com
objectClass: Person
objectClass: inetOrgPerson
uid: sekiguchi
cn: Kaoru Sekiguchi
sn: Sekiguchi
mail: sekiguchi@example.com
作成したtest.ldifをLDAPサーバに登録します。
# ldapadd -x -h <ホスト名> -D 'cn=Manager,dc=example,dc=com' -w secret -f test.ldif
データの登録が完了したら、LDAPサーバを検索します。登録したデータが正常に表示されれば、BDBバックエンドの設定は正しく行われています。
# ldapsearch -x -h <ホスト名> -D 'cn=Manager,dc=example,dc=com' -w secret -b 'dc=example,dc=com'
|