Archiv für: März 2009, 09
Lösung für Probleme bei der LDAP-Replikation (bdb_equality_candidates)
März 9th, 2009Seit meinem letzten Beitrag habe ich eine funktionsfähige Installation von OpenLDAP. Was nun naheliegend ist, wenn man mehrere Server verwendet, ist die automatische Synchronisation mehrerer LDAP-Installationen (Replikation). Dies ist in der Ubuntu-Anleitung auch ganz gut beschrieben.
Trotzdem gab es auch hier ein paar kleine Probleme: Nachdem alle Server die Startkonfiguration erhalten haben und auf einem der Server die Backend-Konfihuration eingespielt war (Punkt8), sollte eigentlich alles automatisch auf die anderen Server übertragen werden. Dies war jedoch nicht der Fall, sondern anstatt dessen fand sich im syslog folgende Fehlermeldung, die sich immer wieder wiederholte:
Mar 9 19:00:03 prometheus slapd[16207]: <= bdb_equality_candidates: (entryUUID) not indexed Mar 9 19:00:33 prometheus last message repeated 31 times Mar 9 19:01:03 prometheus last message repeated 24 times
Dies weist darauf hin, dass eine Überprüfung der Daten zweier Server auf Gleichheit fehlschlägt. Als Kandidat zur Verwendung zum Testen auf Gleichheit schlägt LDAP "entryUUID" vor. Hierzu findet schlägt logandzwon im Ubuntuforum folgendes vor: Zuerst legt man eine Datei "change_index.ldif" mit folgendem Inhlat an:
dn: olcDatabase={1}hdb,cn=config
changetype: modify
replace: olcDbIndex
olcDbIndex: uid,entryUUID,uniqueMember,uidNumber,gidNumber,memberUid,objectclass eq
Diese Änderungen kann man dann mittels
ldapmodify -x -D cn=admin,cn=config -W -f change_index.ldif
durchführen. Es werden also mehrere eindeutige Datenfelder, darunter auch "entryUUID", für einen Index verwendet. Da dieser zum Vergleichen der Daten verwendet wird, ist das Problem an dieser Stelle gelöst.
Noch ein kleiner Hinweis am Rande: Das Übertragen auf die anderen Server geschieht automtisch. Hierbei muss man den einzelnen LDAP-Instanzen manchmal etwas Ziet geben und darf nicht zu ungeduldig sein.