Cluster-Setup (HA mit Corosync/Pacemaker): Unterschied zwischen den Versionen

Aus homelab-wiki.de
Zur Navigation springen Zur Suche springen
K Schützte „Cluster-Setup (HA mit Corosync/Pacemaker)“ ([Bearbeiten=Nur Administratoren erlauben] (unbeschränkt) [Verschieben=Nur Administratoren erlauben] (unbeschränkt))
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
v
= Hochverfügbarkeits-Cluster mit Corosync & Pacemaker unter Debian 12 =
 
== Ziel ==
Einrichten eines einfachen 2-Knoten HA-Clusters mit '''Pacemaker''', '''Corosync''' und '''PCS''' auf '''Debian 12'''.
 
== Voraussetzungen ==
{| class="wikitable"
! Hostname !! IP-Adresse
|-
| node1 || 10.0.0.10
|-
| node2 || 10.0.0.11
|}
 
* Frische Debian 12-Installation auf beiden Knoten
* Root-Zugang oder ''sudo''
* Zeitsynchronisierung (z. B. via ''chrony'' oder ''ntp'')
 
== Hostnamen & /etc/hosts einstellen ==
Auf '''beiden Knoten''':
 
<syntaxhighlight lang="bash">
echo "node1" > /etc/hostname  # nur auf node1
echo "node2" > /etc/hostname  # nur auf node2
</syntaxhighlight>
 
Datei '''/etc/hosts''' bearbeiten:
 
<syntaxhighlight lang="bash">
127.0.0.1  localhost
10.0.0.10  node1
10.0.0.11  node2
</syntaxhighlight>
 
== Netzwerkverbindung testen ==
 
<syntaxhighlight lang="bash">
ping -c3 10.0.0.11  # von node1
ping -c3 10.0.0.10  # von node2
</syntaxhighlight>
 
== Installation der Pakete ==
Auf '''beiden Knoten''':
 
<syntaxhighlight lang="bash">
sudo apt update
sudo apt install -y corosync pacemaker pcs
</syntaxhighlight>
 
== Benutzer für pcs konfigurieren ==
<syntaxhighlight lang="bash">
sudo passwd hacluster
</syntaxhighlight>
Das Passwort auf '''beiden Knoten identisch''' setzen!
 
== pcs-Dienst aktivieren und starten ==
<syntaxhighlight lang="bash">
sudo systemctl enable pcsd
sudo systemctl start pcsd
</syntaxhighlight>
 
== Firewall deaktivieren (zum Testen) ==
<syntaxhighlight lang="bash">
sudo ufw disable  # oder:
sudo systemctl stop firewalld
</syntaxhighlight>
 
== Authentifizierung der Knoten ==
Auf '''einem''' der Knoten (z. B. node1):
 
<syntaxhighlight lang="bash">
sudo pcs host auth node1 node2 -u hacluster
</syntaxhighlight>
 
== Cluster einrichten ==
Auf node1:
 
<syntaxhighlight lang="bash">
sudo pcs cluster setup --name ha-cluster node1 node2
sudo pcs cluster start --all
sudo pcs cluster enable --all
</syntaxhighlight>
 
== Clusterstatus prüfen ==
<syntaxhighlight lang="bash">
pcs status
</syntaxhighlight>
 
== Beispiel: Virtual IP als Ressource ==
Füge eine Cluster-VIP hinzu (z. B. '''10.0.0.100'''):
 
<syntaxhighlight lang="bash">
sudo pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=10.0.0.100 cidr_netmask=24 op monitor interval=30s
</syntaxhighlight>
 
== STONITH deaktivieren (nur für Testumgebungen) ==
<syntaxhighlight lang="bash">
sudo pcs property set stonith-enabled=false
sudo pcs property set no-quorum-policy=ignore
</syntaxhighlight>
 
== Test des Clusters ==
* Prüfe mit <code>ip a</code>, ob die VIP (z. B. 10.0.0.100) aktiv ist.
* Simuliere einen Ausfall durch Herunterfahren eines Knotens:
<syntaxhighlight lang="bash">
sudo shutdown now
</syntaxhighlight>
 
== Hinweise ==
* In produktiven Umgebungen sollte '''STONITH''' korrekt konfiguriert werden.
* Weitere Ressourcen wie Apache, MariaDB oder DRBD können ebenfalls integriert werden.

Version vom 9. Juli 2025, 12:16 Uhr

Hochverfügbarkeits-Cluster mit Corosync & Pacemaker unter Debian 12

Ziel

Einrichten eines einfachen 2-Knoten HA-Clusters mit Pacemaker, Corosync und PCS auf Debian 12.

Voraussetzungen

Hostname IP-Adresse
node1 10.0.0.10
node2 10.0.0.11
  • Frische Debian 12-Installation auf beiden Knoten
  • Root-Zugang oder sudo
  • Zeitsynchronisierung (z. B. via chrony oder ntp)

Hostnamen & /etc/hosts einstellen

Auf beiden Knoten:

echo "node1" > /etc/hostname   # nur auf node1
echo "node2" > /etc/hostname   # nur auf node2

Datei /etc/hosts bearbeiten:

127.0.0.1   localhost
10.0.0.10   node1
10.0.0.11   node2

Netzwerkverbindung testen

ping -c3 10.0.0.11  # von node1
ping -c3 10.0.0.10  # von node2

Installation der Pakete

Auf beiden Knoten:

sudo apt update
sudo apt install -y corosync pacemaker pcs

Benutzer für pcs konfigurieren

sudo passwd hacluster

Das Passwort auf beiden Knoten identisch setzen!

pcs-Dienst aktivieren und starten

sudo systemctl enable pcsd
sudo systemctl start pcsd

Firewall deaktivieren (zum Testen)

sudo ufw disable  # oder:
sudo systemctl stop firewalld

Authentifizierung der Knoten

Auf einem der Knoten (z. B. node1):

sudo pcs host auth node1 node2 -u hacluster

Cluster einrichten

Auf node1:

sudo pcs cluster setup --name ha-cluster node1 node2
sudo pcs cluster start --all
sudo pcs cluster enable --all

Clusterstatus prüfen

pcs status

Beispiel: Virtual IP als Ressource

Füge eine Cluster-VIP hinzu (z. B. 10.0.0.100):

sudo pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=10.0.0.100 cidr_netmask=24 op monitor interval=30s

STONITH deaktivieren (nur für Testumgebungen)

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

Test des Clusters

  • Prüfe mit ip a, ob die VIP (z. B. 10.0.0.100) aktiv ist.
  • Simuliere einen Ausfall durch Herunterfahren eines Knotens:
sudo shutdown now

Hinweise

  • In produktiven Umgebungen sollte STONITH korrekt konfiguriert werden.
  • Weitere Ressourcen wie Apache, MariaDB oder DRBD können ebenfalls integriert werden.