stoney cloud: OpenLDAP directory set-up

Abstract

This document describes the set-up of the OpenLDAP directory of the stoney cloud. This directory contains the data of Self-Service Modules (services) like stoney core, stoney conductor, stoney vm, stoney backup and more.

Directory set-up

Indices

If you see entries similar to the following entry, you need to add indices to your slapd.conf configuration file:

grep bdb_equality_candidates /var/log/syslog/slapd.log
Oct  2 13:39:19 stoney-cloud-node-01 slapd[19508]: <= bdb_equality_candidates: (dhcpHWAddress) not indexed

Adding an index

Adding an index to your slapd.conf configuration file:

vi /etc/openldap/slapd.conf
index           dhcpHWAddress                       eq

Now stop the OpenLDAP daemon:

/etc/init.d/slapd stop

Rebuild all you indices (works well for small directories):

slapindex -f /etc/openldap/slapd.conf

Set the proper permissions:

chown ldap:ldap /var/lib/openldap-hdb/foss-cloud/*
chmod 700 /var/lib/openldap-hdb/foss-cloud/*

Now start the OpenLDAP daemon:

/etc/init.d/slapd start

Make sure, that the OpenLDAP daemon started cleanly:

tail -f /var/log/syslog/slapd.log
Oct  2 14:49:49 stoney-cloud-node-02 slapd[15191]: @(#) $OpenLDAP: slapd 2.4.30 (Feb  4 2013 16:01:35) $
        @kvm-060:/var/tmp/portage/net-nds/openldap-2.4.30/work/openldap-2.4.30/servers/slapd
Oct  2 14:49:49 stoney-cloud-node-02 slapd[15192]: slapd starting
ps auxf | grep slapd
ldap     15192  0.0  0.0 324516 21468 ?        Ssl  14:49   0:00 /usr/lib64/openldap/slapd -u ldap -g ldap -h ldaps://0.0.0.0

Backends

The mdb backend to slapd(8) is the upcoming primary backend for a normal slapd database. It uses OpenLDAP's own Lightning Memory-Mapped Database (LMDB) library to store data and is intended to replace the Berkeley DB backends.

It supports indexing like the BDB backends, but it uses no caching and requires no tuning to deliver maximum search performance. Like hdb, it is also fully hierarchical and supports subtree renames in constant time.

slapd-hdb

cd /root
time ldapsearch -H ldaps://ldapm.stoney-cloud.org -b "ou=services,dc=stoney-cloud,dc=org" -s sub -x -D "cn=Manager,dc=stoney-cloud,dc=org" "(objectclass=*)" -v -w admin > gugus.ldif
ldap_initialize( ldaps://ldapm.stoney-cloud.org:636/??base )
filter: (objectclass=*)
requesting: All userApplication attributes

real    0m0.029s
user    0m0.010s
sys     0m0.000s

Size of the database with all the indices:

du -h /var/lib/openldap-hdb/foss-cloud
5.2M    /var/lib/openldap-hdb/foss-cloud
cd /var/lib/openldap-hdb/foss-cloud
ls -alh
total 5.2M
drwx------ 2 ldap ldap 4.0K  6. Okt 14:29 .
drwx------ 3 ldap ldap   23  6. Okt 14:29 ..
-rwx------ 1 ldap ldap 2.0K  6. Okt 14:29 alock
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:29 cn.bdb
-rwx------ 1 ldap ldap  24K  6. Okt 14:29 __db.001
-rwx------ 1 ldap ldap 176K  6. Okt 14:30 __db.002
-rwx------ 1 ldap ldap 5.1M  6. Okt 14:30 __db.003
-rwx------ 1 ldap ldap 3.0M  6. Okt 14:30 __db.004
-rwx------ 1 ldap ldap 792K  6. Okt 14:30 __db.005
-rwx------ 1 ldap ldap  32K  6. Okt 14:30 __db.006
-rwx------ 1 ldap ldap  160  6. Okt 14:29 DB_CONFIG
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:29 dhcpHWAddress.bdb
-rwx------ 1 ldap ldap 112K  6. Okt 14:29 dn2id.bdb
-rwx------ 1 ldap ldap  32K  6. Okt 14:29 entryCSN.bdb
-rwx------ 1 ldap ldap  24K  6. Okt 14:29 entryUUID.bdb
-rwx------ 1 ldap ldap 640K  6. Okt 14:29 id2entry.bdb
-rwx------ 1 ldap ldap  10M  6. Okt 14:29 log.0000000001
-rwx------ 1 ldap ldap  64K  6. Okt 14:29 objectClass.bdb
-rwx------ 1 ldap ldap  16K  6. Okt 14:29 ou.bdb
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:29 sstDisplayName.bdb
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:29 sstIsActive.bdb
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:29 sstNode.bdb
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:29 sstSelfService.bdb
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:29 sstStoragePool.bdb
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:29 sstThinProvisioningVirtualMachine.bdb
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:29 sstVirtualMachine.bdb
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:29 sstVirtualMachinePool.bdb
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:29 sstVirtualMachinePoolType.bdb
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:29 sstVirtualMachineType.bdb
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:29 uid.bdb
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:29 uidNumber.bdb

slapd-mdb

The mdb backend to slapd(8) is the upcoming primary backend for a normal slapd database. It uses OpenLDAP's own Lightning Memory-Mapped Database (LMDB) library to store data and is intended to replace the Berkeley DB backends.

It supports indexing like the BDB backends, but it uses no caching and requires no tuning to deliver maximum search performance. Like hdb, it is also fully hierarchical and supports subtree renames in constant time.

slapd-mdb - Memory-Mapped DB backend to slapd

cd /root
time ldapsearch -H ldaps://ldapm.stoney-cloud.org -b "ou=services,dc=stoney-cloud,dc=org" -s sub -x -D "cn=Manager,dc=stoney-cloud,dc=org" "(objectclass=*)" -v -w admin > gugus.ldif
ldap_initialize( ldaps://ldapm.stoney-cloud.org:636/??base )
filter: (objectclass=*)
requesting: All userApplication attributes

real    0m0.020s
user    0m0.010s
sys     0m0.000s

Size of the database with all the indices:

du -h /var/lib/openldap-hdb/foss-cloud
32M     /var/lib/openldap-hdb/foss-cloud
cd /var/lib/openldap-hdb/foss-cloud
ls -alh
total 32M
drwx------ 2 ldap ldap   36  6. Okt 14:27 .
drwx------ 3 ldap ldap   23  6. Okt 14:26 ..
-rwx------ 1 ldap ldap  32M  6. Okt 14:27 data.mdb
-rwx------ 1 ldap ldap 8.0K  6. Okt 14:27 lock.mdb
Last modified on 26 September 2014, at 12:30