Home ORDIX AG             Dienstleistung             Trainingsshop    Kunden / Referenzen Aktuelles    Kontakt
Home  Pfeil  ORDIX News  Pfeil  4/2005
suche: 
Dieser Artikel richtet sich an Systemadministratoren, die einen LDAP-Server hochverfügbar aufsetzen möchten.

Glossar

Verzeichnis
In einem Verzeichnis werden gleichartige Daten meist sortiert bereitgestellt. Der hauptsächliche Zugriff erfolgt lesend (z. B. Telefonbuch oder Fernsehzeitschrift).
Verzeichnisdienste
Engl.: Directories. Das sind Server, die Verzeichnisse elektronisch bereitstellen.
LDAP
Lightweight Directory Access Protocol. LDAP ist ein Protokoll zur Abfrage von Verzeichnisdiensten. LDAP setzt auf den heute als Standard anzusehenden Netzwerkprotokollen TCP/IP auf.
ADS
Active Directory Service. ADS ist der Verzeichnisdienst von Microsoft Windows 2000/2003. Er ist zu LDAP weitgehend kompatibel.
OID
Oracle Internet Directory. OID ist der LDAP-kompatible Directory Service von Oracle (LDAP Version 3). Er ist zu LDAP weitgehend kompatibel.
HV oder HA
Hochverfügbarkeit (HV) oder (engl.) High-Availability (HA). Werden beim Ausfall eines Rechners die darauf laufenden Dienste anderweitig gestartet, so wird der entsprechende Dienst als hochverfügbar bezeichnet.
Heartbeat
Der Hochverfügbarkeitsmanager unter Linux.
Shared-Disks/-Storage
Shared-Storage ist ein von mehreren Rechnern gemeinsam genutzter Festspeicher.
DRBD®
Distributed Replicated Block Device. DRBD® ist ein Festplattenreplikationssystem unter Linux. Die Replikation erfolgt über das Netzwerk.
Slapd
Stand Alone Lightweight Directory Access Protocoll Daemon. Slapd ist der Name des Dämons aus dem OpenLDAP-Projekt, der einen LDAP-Server realisiert.
Slurpd
Standalone LDAP Update Replication Daemon. Slurpd ist der Replikations-Dämon aus dem OpenLDAP-Projekt. Dieser synchronisiert die Änderungen des LDAP-Masters auf den LDAP-SlaveServer.

Eine kostengünstige Alternative zu herkömlichen Cluster-Lösungen

Es ist nicht einfach, wenn man`s doppelt nimmt!?

Verzeichnisdienste sind heutzutage in der IT-Welt nicht mehr wegzudenken. Für viele Bereiche, wie z. B. zur Authentifizierung von Web-Diensten oder zur Benutzerverwaltung, ist ein solcher Verzeichnisdienst unerlässlich. Neben Microsofts Active Directory (AD) oder Oracles Internet Directory (OID) erfreut sich die Open Source Variante OpenLDAP immer größerer Beliebtheit. Um längere Ausfallzeiten zu verhindern, müssen solche zentralen Dienste häufig hochverfügbar sein. Heartbeat unter Linux ist eine kostengünstige Hochverfügbarkeitslösung. Wie Sie OpenLDAP mit Heartbeat und Linux komfortabel und mit geringem Kostenaufwand realisieren können, zeigt der folgende Artikel.

Warum LDAP als Hochverfügbarkeitslösung?

Viele Unternehmen setzen LDAP als Verzeichnisdienst ein. Es wird zur Domänenanmeldung, zur Authentifizierung diverser Applikationsserver oder zur Benutzerverwaltung genutzt. Sollte solch ein zentraler Dienst ausfallen, kann das die gesamte Unternehmensinfrastruktur lahm legen. Darum ist es notwendig, LDAP hochverfügbar anzubieten.

Einer rechts, einer links

Wie Hearbeat auf zwei Linux-Systemen eingerichtet wird, wurde im ORDIX News Artikel "Wenn das Herz schlägt ..." in der Ausgabe 2/2002 dargestellt. Einen Dienst über Heartbeat zu verwalten, so dass dieser Dienst bei Serverausfall auf einem anderen System gestartet wird, stellt für sich genommen keine Herausforderung mehr dar.

Meine Daten, deine Daten

Bei jeder Hochverfügbarkeitslösung muss sichergestellt sein, dass der Dienst auf seine aktuellen Daten zugreifen kann, unabhängig davon, auf welchem Knoten der Dienst gestartet wird.

Eine Lösung ist das Nutzen von Shared Disks. Hierbei greifen beide Knoten auf dasselbe Speichermedium zu. Shared Disks bedeuten jedoch einen erheblichen Hardware-Mehraufwand.

Eine andere Lösung ist Distributed Replicated Block Device (DRBD®), welcher in dem oben genannten Artikel vorgestellt wird. DRBD® spiegelt Festplatten über das IP-Netzwerk. Es können weitere Entfernungen überbrückt werden und es ist ohne spezielle Hardware zu betreiben. Da die Spiegelung über das Netzwerk erfolgt, sind Besonderheiten bei der Bedienung und Administration des Systems zu beachten.

Als dritte Lösung bietet sich die Replikation durch LDAP selbst an. Dies erfordert keine spezielle Hardware und keine zusätzliche Software, in die sich ein Administrator einarbeiten muss. Sie ist fester Bestandteil der LDAP-Funktionalität.

Replik

Der LDAP-Dämon "slapd" wird mittels /etc/ldap/slapd.conf konfiguriert. Die Konfiguration ist für Master- und Slave-Server fast gleich. Jedoch muss auf dem Master eingetragen werden, dass Datenänderungen an die Slaves repliziert werden.

replog.le /export/ldap/ldapreplica/repfile
replica host=10.10.10.2:389 "binddn=cn=Manager,ou=ordix,dc=de"
bindmethod=simple credentials=passwd

Abb. 1: Die Konfiguration der slurpd.

Da der Slave keine virtuelle IP-Adresse hat, wird die physikalische IP-Adresse als Ziel für die Replikation eingetragen (siehe Abbildung 1). Die Konfiguration für den Master-LDAP-Server ist somit auf dem "linken" und "rechten" Rechner unterschiedlich. Der slurpd ist der Replikations-Dämon des LDAP-Servers. Dieser schiebt Veränderungen am LDAP-Daten-bestand an den LDAP-Slave.

Hoch - Runter

Auf dem Master-System müssen der slapd und der slurpd mit der Master-Konfiguration (zusammen als Master bezeichnet) gestartet sein, während auf dem anderen System der slapd mit der Slave-Konfiguration (Slave) läuft. Über Heartbeat lässt sich der Slave nicht steuern, da Heartbeat nicht sicherstellt, dass Master und Slave immer auf disjunkten Systemen laufen.

Es ist naheliegend, den Slave auf dem jeweils anderen System beim Hochfahren des Masters per ssh oder rsh zu starten. Problematisch ist das Verhalten, wenn beim Hochfahren z. B. nur ein Rechner verfügbar ist oder wenn während des Betriebs der Slave rebootet wird.

/etc/rc2.d# ls –l
lrwxrwxrwx 1 root root 19 Jun 22 2004 S20heartbeat -> ../init.d/heartbeat
lrwxrwxrwx 1 root root 21 Jun 7 08:41 S95slapd.slave -> ../init.d/slapd.slave

/etc/ha.d/resource.d# ls –l
-rwxr-xr-x 1 root root 4660 Jul 28 16:20 slapd.master

/etc/ha.d# ls –l
-rw------- 1 root root 689 Jun 22 2004 authkeys
-rw-r--r-- 1 root root 3294 Jun 7 12:53 ha.cf
-rw-r--r-- 1 root root 4198 Jul 28 16:19 haresources

Abb. 2: Start-/Konfigurationsdateien. Die Ausgaben sind hier auf die relevanten Dateien gekürzt.

Die hier verfolgte Lösung startet beim Hochfahren, unabhängig von Heartbeat, zuerst den Slave. Anschließend wird der Heartbeat-Dämon gestartet (siehe Abbildung 2). Heartbeat wiederum stellt sicher, dass der Master auf genau einem der Knoten startet (siehe Abbildung 3).

Start-Schema
Abb. 3: Start-Schema.

Mit dem Start des Masters wird zugleich der Slave gestoppt. Auf dem zweiten Rechner bleibt der Slave bestehen. Mit dem Stoppen des Masters wird der Slave wieder gestartet. Somit läuft genau ein Master-Server und überall, wo gerade kein Master aktiv ist, arbeitet ein Slave.

Kardiologie

Heartbeat selbst benötigt drei Konfigurationsdateien. Die Datei ha.cf ist die globale Konfigurationsdatei des Heartbeat. Die Datei authkeys legt die Verschlüsselungsform der Heartbeat-Überwachungspakete fest. In der Datei haresources (siehe Abbildung 4) werden die zu verwaltenden Dienste angegeben. Der Rechner rechternode aktiviert die virtuelle IP-Adresse 10.10.10.1 und führt das Startskript slapd.master aus.

rechternode 10.10.10.1 slapd.master

Abb. 4: Die Datei /etc/ha.d/haresources.

Fällt rechternode aus, wird diese IP-Adresse vom Backup-Knoten übernommen und das Startskript slapd.master ausgeführt. Dabei wird der LDAP-Master gestartet und gleichzeitig der LDAP-Slave gestoppt.

Fazit

Die hier vorgestellte Konfiguration ist einfach und komfortabel zu administrieren. Das beschriebene Verfahren lässt sich auch für andere Dienste z. B. DNS-Server oder DHCP-Server anwenden, sofern die Redundanz durch Slaves (ohne dass der Master-Server geschaltet wird) nicht ausreichend ist.

Frank Späth und Markus Schreier (info@ordix.de).

DRBD® ist eine eingetragene Marken der LINBIT Information Technologies GmbH, Austria