Clustering mit CentOS 7 und Pacemaker Corosync

In diesem Artikel möchte ich die Einrichtung eines Clusters auf einem CentOS 7 System zeigen.
Eine Veränderung zu CentOS 6 ist der Wegfall des Cluster Ressource Managers (crm), der jetzt durch pcs ersetzt wurde.

In diesem Beispiel habe ich zwei Maschinen, die bei mir folgende Daten haben:

node1.floaz.de
Interne IP: 192.168.100.2
Externe IP: 1.2.3.4

node2.floaz.de
Interne IP: 192.168.100.3
Externe IP: 1.2.3.5

Die Netzwerkkarten habe ich bereits konfiguriert!
Mittels ip addr bitte einmal überprüfen, ob die Knoten richtig konfiguriert sind. Beide sollten sich gegenseitig anpingen können.

Wir schließen die Netzwerkkonfiguration ab indem wir auf beiden Nodes den Hostname (/etc/hostname) setzen und beide interne Adressen in /etc/hosts aufnehmen.

Auf beiden Knoten sollte folgendes stehen:
vi /etc/hosts
192.168.100.2 node1.floaz.de
192.168.100.3 node2.floaz.de

Nun muss noch die Firewall auf beiden Knoten eingerichtet werden:
firewall-cmd --zone=trusted --add-source=192.168.100.0/24 --permanent
firewall-cmd --zone=trusted --add-service=ha-cluster --permanent
firewall-cmd --reload

Anschließend installieren wir corosync und pacemaker:
yum install corosync pacemaker pcs
systemctl start pcsd.service
systemctl enable pcsd.service

Auf beiden Rechnern wurde automatisch ein Benutzer hacluster erstellt. Für diesen müssen wir das Kennwort setzen, damit die Knoten sich mithilfe dessen jeweils authentifizieren können.
Auf beiden Nodes:
passwd hacluster
pcs cluster auth node1.floaz.de
pcs cluster auth node2.floaz.de
Username: hacluster
Password: ********

Auf einem der beiden Nodes starten wir nun die initiale Konfiguration des Clusters:
pcs cluster setup --start --name cluster123 node1.floaz.de node2.floaz.de --transport udpu

Außerdem schalten wir quorum und stonith aus, da wir nur ein 2-Knoten-Cluster haben. Dies hat zur Folge, dass wenn nur das interne Netzwerk zusammenbricht, beide Knoten denken, der jeweils andere ist down, und sich dadurch selber als primary sehen. Das sollte man zumindest im Hinterkopf haben!

pcs property set stonith-enabled=false
pcs property set no-quorum-policy=ignore

Nun legen wir eine sog. Service-IP-Ressource an, über die dann der jeweils aktive Knoten von außen erreichbar ist.
pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=1.2.3.6 cidr_netmask=32 nic=eth1 op monitor interval=20s

Anschließend schauen wir uns den Status des Clusters an:

pcs status

Online: [ testnode1 testnode2 ]
Full list of resources:
VirtualIP (ocf::heartbeat:IPaddr2): Started node1.floaz.de

Zum Schluss noch autostart auf beiden Knoten einrichten:

systemctl enable corosync.service
systemctl enable pacemaker.service

Fertig.

LDAP installieren und konfigurieren (Ideen)

LDAP unter CentOS 6.4 einzurichten ist nicht zu kompliziert, wie ich finde. Zuerst muss man mit dem Paketmanager yum, die Pakete installieren:

  • openldap-servers
  • openldap-client

Damit ist die Installation schon geschehen, es folgt die Konfiguration! Die scheint ein klein wenig schwieriger zu sein, da man in mehreren Dateien schauen muss. Die Konfiguration findet nicht mehr in einer Konfigurationsdatei statt, sondern in einem dafür vorgesehenen LDAP-Baum. Dieser hat als Root-DN: „cn=config“.

Um die config dennoch zu ändern, ohne den Server zu starten, kann man in das Verzeichnis „/etc/openldap/slapd.conf/cn=config“ gehen und dort die Dateien anpassen. Diese liegen in einem LDIF-Format vor und können, soweit der Server ausgeschaltet ist, geändert werden. Folgende Informationen müssen geändert werden:

  • Base-DN der Datenbank
  • Rootbenutzer-DN für die Datenbank
  • Rootbenutzer-Password für die Datenbank
  • Rootbenutzer-DN für den Config-Baum
  • Rootbenutzer-Password für den Config-Baum