Ein Linux-Cluster für Hochverfügbarkeit (High Availability, HA) ist ein System, das darauf ausgelegt ist, Ausfallzeiten zu minimieren, indem es sicherstellt, dass Dienste auch bei einem Ausfall eines oder mehrerer Komponenten weiterhin verfügbar bleiben. Ein solches Cluster kann aus mehreren Knoten bestehen, die zusammenarbeiten, um eine hohe Verfügbarkeit zu gewährleisten.
Hier ist ein grundlegendes Tutorial zur Installation und Konfiguration eines HA-Linux-Clusters mit Pacemaker und Corosync.
Voraussetzungen
- Mindestens zwei Linux-Server: Für ein einfaches Setup.
- Netzwerkverbindung: Zwischen den Servern.
- Root-Zugriff auf allen Servern.
Schritt 1: Grundinstallation und -konfiguration
1.1. System vorbereiten
Installieren Sie auf beiden Servern ein Linux-Betriebssystem, beispielsweise CentOS, Debian oder Ubuntu.
Aktualisieren Sie die Paketliste und installieren Sie die neuesten Updates:
sudo apt update && sudo apt upgrade -y # Für Debian/Ubuntu
sudo yum update -y # Für CentOS
1.2. Hosts-Datei bearbeiten
Bearbeiten Sie die /etc/hosts
-Datei auf beiden Servern, um sicherzustellen, dass beide Server sich gegenseitig erkennen können:
sudo nano /etc/hosts
Fügen Sie die IP-Adressen und Hostnamen der beiden Server hinzu:
192.168.1.1 node1
192.168.1.2 node2
Schritt 2: Installation der Cluster-Software
2.1. Pacemaker und Corosync installieren
Installieren Sie Pacemaker und Corosync auf beiden Servern:
sudo apt install pacemaker corosync -y # Für Debian/Ubuntu
sudo yum install pacemaker corosync -y # Für CentOS
Schritt 3: Konfiguration von Corosync
3.1. Corosync konfigurieren
Erstellen Sie eine Basis-Konfigurationsdatei für Corosync auf einem der Knoten:
sudo corosync-keygen # Erzeugt einen Schlüssel für die Kommunikation
Kopieren Sie die generierte Schlüsseldatei (/etc/corosync/authkey
) auf den anderen Knoten:
scp /etc/corosync/authkey root@node2:/etc/corosync/authkey
Bearbeiten Sie die Corosync-Konfigurationsdatei:
sudo nano /etc/corosync/corosync.conf
Fügen Sie die grundlegenden Einstellungen hinzu:
totem {
version: 2
secauth: on
cluster_name: my_cluster
transport: udpu
interface {
ringnumber: 0
bindnetaddr: 192.168.1.0
mcastport: 5405
ttl: 1
}
}
nodelist {
node {
ring0_addr: node1
nodeid: 1
}
node {
ring0_addr: node2
nodeid: 2
}
}
quorum {
provider: corosync_votequorum
two_node: 1
}
Kopieren Sie diese Datei ebenfalls auf den anderen Knoten:
scp /etc/corosync/corosync.conf root@node2:/etc/corosync/corosync.conf
Schritt 4: Pacemaker konfigurieren
4.1. Cluster starten
Starten und aktivieren Sie Corosync und Pacemaker auf beiden Knoten:
sudo systemctl start corosync
sudo systemctl start pacemaker
sudo systemctl enable corosync
sudo systemctl enable pacemaker
Überprüfen Sie den Status des Clusters:
sudo crm status
4.2. Ressourcen und Constraints hinzufügen
Fügen Sie Ressourcen hinzu, die der Cluster verwalten soll, zum Beispiel einen Apache-Webserver:
sudo crm configure primitive p_apache ocf:heartbeat:apache \
params configfile="/etc/httpd/conf/httpd.conf" \
op monitor interval="30s"
sudo crm configure clone cl_apache p_apache
Setzen Sie Constraints, um die Ressourcen auf verschiedene Knoten zu verteilen:
sudo crm configure colocation col_apache inf: cl_apache
sudo crm configure order order_apache inf: cl_apache
Schritt 5: Testen und Überwachen
5.1. Failover testen
Stoppen Sie den Apache-Webserver auf einem der Knoten und überprüfen Sie, ob der Dienst auf dem anderen Knoten gestartet wird:
sudo systemctl stop httpd # Oder apache2, abhängig von der Distribution
Überprüfen Sie den Cluster-Status erneut:
sudo crm status
Schritt 6: Fehlerbehebung und Wartung
6.1. Log-Dateien überprüfen
Bei Problemen überprüfen Sie die Log-Dateien von Corosync und Pacemaker:
sudo tail -f /var/log/cluster/corosync.log
sudo tail -f /var/log/pacemaker.log
6.2. Cluster-Konfiguration anpassen
Passen Sie bei Bedarf die Cluster-Konfiguration mit crm configure
an. Sie können Ressourcen hinzufügen, entfernen oder ändern und Constraints anpassen.
Fazit
Mit diesen Schritten haben Sie ein grundlegendes hochverfügbares Linux-Cluster eingerichtet. Dieses Setup kann erweitert werden, indem weitere Knoten und Ressourcen hinzugefügt werden. Hochverfügbarkeit ist ein komplexes Thema, und eine sorgfältige Planung sowie regelmäßige Tests sind unerlässlich, um die Zuverlässigkeit und Verfügbarkeit Ihrer Dienste sicherzustellen.