3 node cluster mit pacemaker CentOS Minimal

December 24, 2019 in linux, redhat ‐ 2 min read

In diesem Atrikel möchte ich die Einrichtung und Verwaltung eines Pacemaker / Corosync 3 Node Cluster erklären.

Die Idee von Pacemaker ist es, Ressourcen auf mehreren Servern hochverfügbar zu halten. Ressourcen können hier sowohl Dienste wie ein Webserver oder eine Datenbank, aber auch eine IP Adresse sein.

In diesem Beispiel ist die Ressource ein Apache Webserver auf Ubuntu 18.04.

image

Installation

(Führt die Schritte auf allen nodes aus)
Zunächst installieren wir das die Pakete pacemaker, pcs und crmsh.

yum install -y pcs

Startet pcsd (pacemaker corosync daemon) und aktiviert ihn, damit er auch nach einem Neustart wieder zur Verfügung steht.

sudo systemctl start pcsd
sudo systemctl enable pcsd

image

Pacemaker kommt mit dem user hacluster daher.
Diesen könnt ihr in euerer /etc/passwd sehen.

image

Dieser user wird verwendet um den Node in einem Cluster zu authentifizieren. Gebt ihm daher mit passwd ein neues passwort.

Damit der Pacemaker Cluster eingerichtet und alle Nodes zum Cluster werden können müssen ein paar Dingege gegeben sein:
- Die Nodes müssen sich sich gegenseitig per DNS auflösen können
- Die nodes müssen sich erreichen können
- Die Nodes müssen traffic auf Port 2224 zulassen

Tragt also zunächst die IPs und Hostnames die /etc/hosts Datei ein…

image

… und prüft, dass Ihr die anderen Hosts erreichen könnt.

image

Fügt jetzt noch eine IP Tables Regel hinzu, welche 2224 für eingehenden Traffic öffnet.

sudo iptables -A INPUT -p tcp -m tcp --dport 2224 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 3121 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 5404 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 5405 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 21064 -j ACCEPT

Cluster einrichten

Wir werden nun erstmal die Nodes untereinander authentifizieren.

sudo pcs cluster auth [node1] [node2] [node3]

image

(Sollte hierbei was schief gehen, könnt ihr mit pcs pscd clear-auth [node] auths wieder aufheben)

Diese Autentifizierungen sind unidirektional, die Nodes sind also untereinander authentifiziert. Das könnt ihr sehen, wenn ihr auf einem anderen Node versucht die Authentifizierung vorzunehmen.

image

Die Authorizierungen unseres 3 Node Clusters untereinander verhalten sich jetzt ungefähr so.

image

Das macht aber noch keinen Cluster, sondern erstmal nur drei untereinander mit pcs authorizierte Nodes. Also erstellen wir jetzt einen Cluster.

sudo pcs cluster setup --name [name] [node] [node] [node]

image

Solltet ihr meldungen erhalten, ein node wäre bereits in einem cluster, führ auf diesem pcs cluster destroy aus.