Linux-Cluster für Hochverfügbarkeit

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

  1. Mindestens zwei Linux-Server: Für ein einfaches Setup.
  2. Netzwerkverbindung: Zwischen den Servern.
  3. 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert