3 node cluster mit pacemaker CentOS Minimal

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.

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

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

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…

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

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]

(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.

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

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]

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


3 node cluster mit pacemaker/corosync Ubuntu

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.

Installation

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

sudo apt install -y pacemaker pcs crmsh

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

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

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…

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

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]

(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.

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

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]

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


PodCatcher

[HIER ENTSTEHT DER PODCATCHER ARTIKEL]


How does I blog

Wenn du dies ließt heiße ich dich als möglicher Gastautor auf meinem Blog Willkommen!

Mit der Veröffentlichung auf meinem Blog akzeptierst du folgende Bedingungen:
- Alle hier veröffentlichten Artikel stehen der Öffentlichkeit zur Verfügung
- Dieser Blog darf nicht zu zur Monetarisierung verwendet werden
- Im Vordergrund dieses Blogs steht die Akumulierung und freie Verfügbarmachung von Wissen
- Be Excelent to each other (Rassismus, Sexismus usw. hat hier keinen Platz)

Artikel schreiben
Dieser Blog ist Unterteilt in Netzwerktechnik, Betriebsysteme und Cloud mit den jeweiligen Unterkategorien.

Wähl auf der linken Seite Posts > Add New aus um einen neuen Blogeintrag anzulegen.

Auf der Rechten Seite könnt ihr den Blogpost unter Categories einer oder mehreren Kategorien zuordnen wie Linux, Watchguard, Apple, Windows etc.

Darunter wählt ihr bei Tags entweder Deutsch oder English.
Nur wenn ein Post einen dieser Beiden Tags enthält, wird er in dem jeweiligen Bereich auftauchen.

Ein Blogpost mit dem Tag English und den Kategorien Linux und NextCloud taucht dann auch nur in den englischen Bereichen Meraki und NextCloud auf.

Ein Featured Image regelt sowohl die Hintergrundgrafik des Blogposts, als auch das Bild, was in der Blogübersicht angezeigt wird. Dies könnt Ihr unten rechts hochladen.

Als Letztes solltet Ihr bei den Page Options links auf Menu gehen und den ersten Wert "Menu" von dem Voreingestellten Defaultwert "Inherit" auf "Menu" bei deutschen Artikeln und auf den Wert "Menu EN" stellen. Falls Ihr das vergesst, ist die Kopfzeile leer.

Cheers and happy posting,
Ori


Gsuite Placeholder

Work in progress...