documentation.suse.com / Installieren eines einfachen High Availability-Clusters mit zwei Knoten
SUSE Linux Enterprise High Availability 16.0

Installieren eines einfachen High Availability-Clusters mit zwei Knoten

Veröffentlicht: 03.11.2025
WAS?

Informationen zum Einrichten eines einfachen High Availability-Clusters mit zwei Knoten mit QDevice, festplattenlosem SBD und Software-Watchdog.

WARUM?

Dieser Cluster kann zu Testzwecken oder als anfängliche Clusterminimalkonfiguration verwendet werden, die später erweitert werden kann.

AUFWAND

Das Einrichten eines einfachen High Availability-Clusters dauert je nach Geschwindigkeit Ihrer Netzwerkverbindung etwa 15 Minuten.

ZIEL

Legen Sie schnell und einfach mit SUSE Linux Enterprise High Availability los.

1 Einsatzszenario

Dieses Handbuch beschreibt die Einrichtung eines minimalen High Availability-Clusters mit den folgenden Eigenschaften:

  • zwei Clusterknoten mit gegenseitigem SSH-Zugriff ohne Passwort

  • eine virtuelle IP-Adresse nach dem Floating-IP-Prinzip, über die Clients eine Verbindung mit dem Grafikverwaltungswerkzeug Hawk herstellen können, und zwar unabhängig davon, auf welchem Knoten der Dienst ausgeführt wird

  • Festplattenloses SBD (STONITH Block Device) und ein Software-Watchdog werden als Knoten-Fencing-Mechanismus zur Vermeidung von Split Brain-Szenarien verwendet.

  • QDevice arbeitet mit QNetd zusammen, um an Cluster-Quorum-Entscheidungen teilzunehmen. Für diese Einrichtung sind QDevice und QNetd erforderlich, damit festplattenloses SBD Split Brain-Szenarien für den Cluster mit zwei Knoten verarbeiten kann.

  • Failover der Ressourcen von einem Knoten zu einem anderen, wenn der aktive Host ausfällt (Aktiv/Passiv-Einrichtung)

Dies ist eine einfache Clustereinrichtung mit minimalen externen Anforderungen. Sie können diesen Cluster zu Testzwecken oder als einfache Clusterkonfiguration verwenden, die später für eine Produktionsumgebung erweitert werden kann.

2 Installationsübersicht

Um den unter Abschnitt 1, „Einsatzszenario“ beschriebenen High Availability-Cluster zu installieren, müssen Sie die folgenden Aufgaben ausführen:

  1. Lesen Sie Abschnitt 3, „Systemanforderungen“, um sicherzustellen, dass Sie alles haben, was Sie benötigen.

  2. Installieren Sie SUSE Linux Enterprise High Availability auf den Clusterknoten gemäß Abschnitt 4, „Aktivieren der High Availability-Erweiterung“.

  3. In Abschnitt 5, „Einrichten des QNetd-Servers“ installieren Sie QNetd auf einem Nicht-Cluster-Server.

  4. Initialisieren Sie den Cluster auf dem ersten Knoten gemäß Abschnitt 6, „Einrichtung des ersten Knotens“.

  5. In Abschnitt 7, „Hinzufügen des zweiten Knotens“ fügen Sie Ihrem Cluster weitere Knoten hinzu.

  6. In Abschnitt 8, „Anmelden bei Hawk“ melden Sie sich bei der Hawk-Weboberfläche an, um den Cluster zu überwachen.

  7. In Abschnitt 9, „Anzeigen des Quorum-Status“ überprüfen Sie den Status von QDevice und QNetd.

  8. In Abschnitt 10, „Testen des Clusters“ führen Sie grundlegende Tests durch, um sicherzustellen, dass der Cluster wie erwartet funktioniert.

  9. Lesen Sie Abschnitt 11, „Nächste Schritte“, um Ratschläge zur Erweiterung des Clusters für eine Produktionsumgebung zu erhalten.

3 Systemanforderungen

In diesem Abschnitt werden die Systemanforderungen für eine Minimaleinrichtung von SUSE Linux Enterprise High Availability beschrieben.

3.1 Hardwareanforderungen

Server

Drei Server: zwei als Clusterknoten und einer zum Ausführen von QNetd.

Bei den Servern kann es sich um Bare Metal-Server oder um virtuelle Rechner handeln. Sie müssen nicht unbedingt mit identischer Hardware (Arbeitsspeicher, Festplattenspeicher usw.) ausgestattet sein, die gleiche Architektur wird jedoch vorausgesetzt. Plattformübergreifende Cluster werden nicht unterstützt.

Weitere Informationen zur Serverhardware finden Sie in Abschnitt System Requirements unter https://www.suse.com/download/sle-ha/.

Netzwerkschnittstellenkarten (NICs)

Mindestens zwei NICs pro Clusterknoten. Damit können Sie zwei oder mehr Kommunikationskanäle für den Cluster konfigurieren. Verwenden Sie dazu eine der folgenden Methoden:

  • Kombinieren Sie die NICs zu einem Netzwerk-Bonding (bevorzugt). In diesem Fall müssen Sie das Bond-Gerät auf jedem Knoten einrichten, bevor Sie den Cluster initialisieren.

  • Erstellen Sie einen zweiten Kommunikationskanal in Corosync. Dies kann durch das Clustereinrichtungsskript konfiguriert werden. In diesem Fall müssen sich die beiden NICs in unterschiedlichen Teilnetzen befinden.

STONITH (Knoten-Fencing)

Damit sie unterstützt werden, müssen alle SUSE Linux Enterprise High Availability-Cluster über mindestens ein Knoten-Fencing-Gerät (STONITH) verfügen, um Split Brain-Szenarien zu vermeiden. Dazu kann entweder ein physisches Gerät (ein Netzschalter) oder SBD (STONITH Block Device) in Kombination mit einem Watchdog verwendet werden. SBD kann entweder mit gemeinsam genutztem Speicher oder im festplattenlosen Modus verwendet werden.

Die in diesem Handbuch beschriebene Minimaleinrichtung verwendet einen Software-Watchdog und festplattenloses SBD, sodass keine zusätzliche Hardware erforderlich ist. Ersetzen Sie den Software-Watchdog durch einen Hardware-Watchdog, bevor Sie diesen Cluster in einer Produktionsumgebung verwenden.

3.2 Software-Anforderungen

Betriebssystem

Auf allen Knoten und dem QNetd-Server muss SUSE Linux Enterprise Server installiert und registriert sein.

High Availability-Erweiterung

Für die SUSE Linux Enterprise High Availability-Erweiterung ist ein zusätzlicher Registrierungscode erforderlich.

Diese Erweiterung kann während der SLES-Installation aktiviert werden. Sie können sie später auf einem ausgeführten System aktivieren. In diesem Handbuch wird erläutert, wie Sie die Erweiterung auf einem ausgeführten System aktivieren und registrieren.

3.3 Netzwerkanforderungen

Zeitsynchronisierung

Alle Systeme müssen mit einem NTP-Server außerhalb des Clusters synchronisiert werden. SUSE Linux Enterprise Server verwendet chrony für NTP. Wenn Sie den Cluster initialisieren, werden Sie gewarnt, falls chrony nicht ausgeführt wird.

Selbst wenn die Knoten synchronisiert sind, können Protokolldateien und Clusterberichte schwer zu analysieren sein, falls für die Knoten unterschiedliche Zeitzonen konfiguriert wurden.

Hostname und IP-Adresse

Alle Clusterknoten müssen in der Lage sein, sich und den QNetd-Server anhand des Namens gegenseitig zu finden. Verwenden Sie die folgenden Methoden für eine zuverlässige Namensauflösung:

  • Verwenden Sie statische IP-Adressen.

  • Listen Sie alle Knoten in der Datei /etc/hosts mit ihrer IP-Adresse, ihrem FQDN und ihrem kurzen Hostnamen auf.

Es wird nur die primäre IP-Adresse auf jeder NIC unterstützt.

SSH

Alle Clusterknoten müssen in der Lage sein, über SSH aufeinander und den QNetd-Server zuzugreifen. Bestimmte Clustervorgänge erfordern auch eine SSH-Authentifizierung ohne Passwort. Bei der Initialisierung des Clusters prüft das Einrichtungsskript, ob SSH-Schlüssel vorhanden sind, und generiert sie, falls sie nicht vorhanden sind.

Wichtig
Wichtig: root-SSH-Zugriff in SUSE Linux Enterprise 16

In SUSE Linux Enterprise 16 ist die root-SSH-Anmeldung mit Passwort standardmäßig deaktiviert.

Erstellen Sie auf jedem Knoten und auf dem QNetd-Server entweder einen Benutzer mit sudo-Rechten oder richten Sie eine SSH-Authentifizierung ohne Passwort für den root-Benutzer ein, bevor Sie den Cluster initialisieren.

Wenn Sie den Cluster mit einem sudo-Benutzer initialisieren, erfordern bestimmte crmsh-Befehle auch ein sudo-Recht ohne Passwort.

Separates Netzwerk für QNetd

Es wird empfohlen, dass die Clusterknoten den QNetd-Server über ein anderes Netzwerk erreichen als das, das von Corosync verwendet wird. Idealerweise sollte sich der QNetd-Server in einem vom Cluster getrennten Rack befinden oder zumindest über ein separates Netzteil verfügen und nicht im selben Netzwerksegment wie die Corosync-Kommunikationskanäle.

4 Aktivieren der High Availability-Erweiterung

In diesem Verfahren wird erläutert, wie Sie SUSE Linux Enterprise High Availability auf einem vorhandenen SUSE Linux Enterprise Server installieren. Sie können dieses Verfahren überspringen, wenn Sie die High Availability-Erweiterung und die Pakete bereits während der SLES-Installation mit Agama installiert haben.

Anforderungen
  • SUSE Linux Enterprise Server ist installiert und beim SUSE Customer Center registriert.

  • Sie verfügen über einen zusätzlichen Registrierungscode für SUSE Linux Enterprise High Availability.

Führen Sie dieses Verfahren auf allen Rechnern aus, die Sie als Clusterknoten verwenden möchten:

  1. Melden Sie sich entweder als root-Benutzer oder als Benutzer mit sudo-Rechten an.

  2. Überprüfen Sie, ob die High Availability-Erweiterung bereits aktiviert ist:

    > sudo SUSEConnect --list-extensions
  3. Überprüfen Sie, ob die High Availability-Pakete bereits installiert sind:

    > zypper search ha_sles
  4. Aktivieren der SUSE Linux Enterprise High Availability-Erweiterung:

    > sudo SUSEConnect -p sle-ha/16.0/x86_64 -r HA_REGCODE
  5. Installieren der High Availability-Pakete:

    > sudo zypper install -t pattern ha_sles

5 Einrichten des QNetd-Servers

QNetd ist der Vermittler, der dem auf den Clusterknoten ausgeführten QDevice-Daemon eine Stimme bereitstellt. Der QNetd-Server wird außerhalb des Clusters ausgeführt, sodass Sie keine Clusterressourcen auf diesen Server verschieben können. QNetd kann mehrere Cluster unterstützen, wenn jeder Cluster einen eindeutigen Namen hat.

Anforderungen
  • SUSE Linux Enterprise Server ist installiert und beim SUSE Customer Center registriert.

  • Sie verfügen über einen zusätzlichen Registrierungscode für SUSE Linux Enterprise High Availability.

Führen Sie dieses Verfahren auf einem Server aus, der nicht Teil des Clusters ist:

  1. Melden Sie sich entweder als root-Benutzer oder als Benutzer mit sudo-Rechten an.

  2. Aktivieren der SUSE Linux Enterprise High Availability-Erweiterung:

    > sudo SUSEConnect -p sle-ha/16.0/x86_64 -r HA_REGCODE
  3. Installieren Sie das Paket corosync-qnetd:

    > sudo zypper install corosync-qnetd

    Sie müssen den corosync-qnetd-Dienst nicht manuell starten. Er wird automatisch gestartet, wenn Sie QDevice auf dem Cluster konfigurieren.

Der QNetd-Server ist bereit, Verbindungen von einem QDevice-Client (corosync-qdevice) anzunehmen. Die weitere Konfiguration übernimmt crmsh, wenn Sie QDevice-Clients verbinden.

Standardmäßig führt der corosync-qnetd-Dienst den Daemon als coroqnetd-Benutzer in der coroqnetd-Gruppe aus. Dadurch wird vermieden, dass der Daemon als root ausgeführt wird.

6 Einrichtung des ersten Knotens

SUSE Linux Enterprise High Availability enthält Einrichtungsskripte, die die Installation eines Clusters vereinfachen. Um den Cluster auf dem ersten Knoten einzurichten, verwenden Sie das Skript crm cluster init.

6.1 Übersicht über das crm cluster init-Skript

Der Befehl crm cluster init startet ein Skript, das die grundlegenden Parameter definiert, die für die Clusterkommunikation erforderlich sind, was zu einem ausgeführten Cluster mit einem Knoten führt.

Das Skript prüft und konfiguriert die folgenden Komponenten:

NTP

Prüft, ob chrony zum Starten beim Booten konfiguriert ist. Wenn das nicht der Fall ist, wird eine Meldung angezeigt.

SSH

Erkennt SSH-Schlüssel für die Anmeldung ohne Passwort zwischen Clusterknoten.

Firewall

Öffnet die Ports in der Firewall, die für die Clusterkommunikation benötigt werden.

Csync2

Konfiguriert Csync2 für die Replikation der Konfigurationsdateien auf allen Knoten in einem Cluster.

Corosync

Konfiguriert das Clusterkommunikationssystem.

SBD/Watchdog

Prüft, ob ein Watchdog vorhanden ist, und fragt, ob SBD als Knoten-Fencing-Mechanismus konfiguriert werden soll.

Clusterverwaltung mit Hawk

Aktiviert den Hawk-Dienst und zeigt die URL für die Hawk-Weboberfläche an.

Virtual Floating IP

Fragt, ob eine virtuelle IP-Adresse für die Hawk-Weboberfläche konfiguriert werden soll.

QDevice/QNetd

Fragt, ob QDevice und QNetd zur Teilnahme an Quorum-Entscheidungen konfiguriert werden sollen. Dies wird für Cluster mit einer geraden Anzahl von Knoten und insbesondere für Cluster mit zwei Knoten empfohlen.

Anmerkung
Anmerkung: Pacemaker-Standardeinstellungen

Die vom crm cluster init-Skript festgelegten Optionen sind möglicherweise nicht mit den Standardeinstellungen von Pacemaker identisch. In /var/log/crmsh/crmsh.log können Sie überprüfen, welche Einstellungen das Skript geändert hat. Sämtliche Optionen, die während des Bootstrap-Prozesses festgelegt wurden, können später mit crmsh geändert werden.

Anmerkung
Anmerkung: Clusterkonfiguration für verschiedene Plattformen

Das crm cluster init-Skript erkennt die Systemumgebung (z. B. Microsoft Azure) und passt bestimmte Clustereinstellungen basierend auf dem Profil für diese Umgebung an. Weitere Informationen finden Sie in der Datei /etc/crm/profiles.yml.

6.2 Initialisieren des Clusters auf dem ersten Knoten

Um den Cluster auf dem ersten Knoten einzurichten, verwenden Sie das crm cluster init-Skript. Das Skript fordert Sie zur Eingabe grundlegender Informationen zum Cluster auf und konfiguriert die erforderlichen Einstellungen und Dienste. Führen Sie für weitere Informationen den Befehl crm cluster init --help aus.

Anforderungen
  • SUSE Linux Enterprise High Availability ist installiert und auf dem aktuellen Stand.

  • Alle Knoten verfügen über mindestens zwei Netzwerkschnittstellen oder einen Netzwerk-Bond mit statischen IP-Adressen, die in der Datei /etc/hosts zusammen mit dem FQDN und dem kurzen Hostnamen des jeweiligen Knotens aufgeführt sind.

  • Der QNetd-Server ist installiert. Wenn Sie sich beim QNetd-Server als root-Benutzer anmelden, muss die SSH-Authentifizierung ohne Passwort aktiviert sein.

Führen Sie dieses Verfahren nur auf einem Knoten aus:

  1. Melden Sie sich beim ersten Knoten entweder als root-Benutzer oder als Benutzer mit sudo-Rechten an.

  2. Starten Sie das crm cluster init-Skript:

    > sudo crm cluster init

    Das Skript prüft, ob chrony ausgeführt wird, öffnet die erforderlichen Firewall-Ports, konfiguriert Csync2 und sucht nach SSH-Schlüsseln. Wenn keine SSH-Schlüssel vorhanden sind, generiert das Skript sie.

  3. Konfigurieren Sie Corosync für die Clusterkommunikation:

    1. Geben Sie eine IP-Adresse für den ersten Kommunikationskanal ein (ring0). Standardmäßig schlägt das Skript die Adresse der ersten verfügbaren Netzwerkschnittstelle vor. Dabei kann es sich um eine einzelne Schnittstelle oder um ein Bond-Gerät handeln. Akzeptieren Sie diese Adresse oder geben Sie eine andere ein.

    2. Wenn das Skript mehrere Netzwerkschnittstellen erkennt, fragt es, ob Sie einen zweiten Kommunikationskanal konfigurieren möchten (ring1). Wenn Sie den ersten Kanal mit einem Bond-Gerät konfiguriert haben, können Sie mit n ablehnen. Wenn Sie einen zweiten Kanal konfigurieren müssen, bestätigen Sie mit y und geben Sie die IP-Adresse einer anderen Netzwerkschnittstelle ein. Die beiden Schnittstellen müssen sich in unterschiedlichen Teilnetzen befinden.

    Das Skript konfiguriert die Standard-Firewall-Ports für die Corosync-Kommunikation.

  4. Wählen Sie aus, ob Sie SBD als Knoten-Fencing-Mechanismus einrichten möchten:

    1. Bestätigen Sie mit y, dass Sie SBD verwenden möchten.

    2. Wenn Sie nach einem Pfad zu einem Blockgerät gefragt werden, geben Sie none ein, um festplattenloses SBD zu konfigurieren.

    Das Skript konfiguriert SBD, einschließlich der entsprechenden Zeitüberschreitungseinstellungen. Im Gegensatz zu plattenbasiertem SBD benötigt festplattenloses SBD keine STONITH-Clusterressource.

    Wenn kein Hardware-Watchdog verfügbar ist, konfiguriert das Skript den Software-Watchdog softdog.

  5. Konfigurieren Sie eine virtuelle IP-Adresse für die Clusterverwaltung mit der Hawk-Weboberfläche:

    1. Bestätigen Sie mit y, dass Sie eine virtuelle IP-Adresse konfigurieren möchten.

    2. Geben Sie eine nicht verwendete IP-Adresse ein, die als Verwaltungs-IP für Hawk verwendet werden soll.

    Sie können auch eine Verbindung mit der virtuellen IP-Adresse herstellen, statt sich an einem einzelnen Clusterknoten bei Hawk anzumelden.

  6. Wählen Sie aus, ob QDevice und QNetd konfiguriert werden soll:

    1. Bestätigen Sie mit y, dass Sie QDevice und QNetd konfigurieren möchten.

    2. Geben Sie die IP-Adresse oder den Hostnamen des QNetd-Servers mit oder ohne Benutzernamen ein.

      • Wenn Sie einen Nicht-root-Benutzernamen einfügen, werden zur Eingabe des Passworts aufgefordert und das Skript konfiguriert die SSH-Authentifizierung ohne Passwort vom Knoten zum QNetd-Server.

      • Wenn Sie keinen Benutzernamen auslassen, verwendet das Skript standardmäßig den root-Benutzer. Daher muss die SSH-Authentifizierung ohne Passwort bereits für den Knoten konfiguriert sein, um auf den QNetd-Server zugreifen zu können.

      Akzeptieren Sie für die restlichen Felder die Standardwerte:

    3. Übernehmen Sie den vorgeschlagenen Port (5403) oder geben Sie einen anderen ein.

    4. Wählen Sie den Algorithmus aus, der bestimmt, wie Stimmen vergeben werden. Der Standardwert ist ffsplit.

    5. Wählen Sie die Methode aus, die verwendet werden soll, wenn ein Tie-Breaker erforderlich ist. Der Standardwert ist lowest.

    6. Wählen Sie aus, ob TLS für die Client-Zertifikatüberprüfung aktiviert werden soll. Der Standardwert ist on (Versuchen Sie, eine Verbindung mit TLS herzustellen, stellen Sie jedoch eine Verbindung ohne TLS her, wenn es nicht verfügbar ist.).

    7. (Optional) Geben Sie Heuristikbefehle ein, um die Art und Weise zu beeinflussen, wie Stimmen ermittelt werden. Um diesen Schritt zu überspringen, lassen Sie das Feld leer.

    Das Skript konfiguriert QDevice und QNetd, einschließlich SSH-Schlüssel, Zertifizierungsstellen- und Serverzertifikaten, und den Firewall-Port. Außerdem aktiviert es die erforderlichen Dienste auf den Clusterknoten und auf dem QNetd-Server.

Das Skript startet den Clusterdienst, um den Cluster online zu schalten und Hawk zu aktivieren. Die URL, die für Hawk verwendet werden muss, wird auf dem Bildschirm angezeigt. Sie können den Status des Clusters auch mit dem Befehl crm status überprüfen.

Wichtig
Wichtig: Sicheres Passwort für hacluster

Das crm cluster init-Skript erstellt einen Standard-Clusterbenutzer und ein Standardpasswort. Ersetzen Sie das Standardpasswort möglichst schnell durch ein sicheres Passwort:

> sudo passwd hacluster

7 Hinzufügen des zweiten Knotens

Fügen Sie dem Cluster mit dem crm cluster join-Skript weitere Knoten hinzu. Das Skript benötigt lediglich Zugriff auf einen vorhandenen Clusterknoten. Es führt die grundlegende Einrichtung auf dem aktuellen Rechner automatisch durch. Führen Sie für weitere Informationen den Befehl crm cluster join --help aus.

Anforderungen
  • SUSE Linux Enterprise High Availability ist installiert und auf dem aktuellen Stand.

  • Ein bestehender Cluster wird bereits auf mindestens einem Knoten ausgeführt.

  • Alle Knoten verfügen über mindestens zwei Netzwerkschnittstellen oder einen Netzwerk-Bond mit statischen IP-Adressen, die in der Datei /etc/hosts zusammen mit dem FQDN und dem kurzen Hostnamen des jeweiligen Knotens aufgeführt sind.

  • Wenn Sie sich als sudo-Benutzer anmelden: Auf allen Knoten und dem QNetd-Server muss derselbe Benutzer vorhanden sein. Dieser Benutzer muss über das sudo-Recht ohne Passwort verfügen.

  • Wenn Sie sich als root-Benutzer anmelden: Die SSH-Authentifizierung ohne Passwort muss auf allen Knoten und dem QNetd-Server konfiguriert werden.

Führen Sie dieses Verfahren für jeden weiteren Knoten aus:

  1. Melden Sie sich bei diesem Knoten als derselbe Benutzer an, mit dem Sie den ersten Knoten eingerichtet haben.

  2. Starten Sie das crm cluster join-Skript:

    • Wenn Sie den ersten Knoten als root-Benutzer einrichten, können Sie das Skript ohne zusätzliche Parameter starten:

      # crm cluster join
    • Wenn Sie den ersten Knoten als sudo-Benutzer einrichten, geben Sie für diesen Benutzer die Option -c an:

      > sudo crm cluster join -c USER@NODE1

    Das Skript prüft, ob chrony ausgeführt wird, öffnet die erforderlichen Firewall-Ports und konfiguriert Csync2.

  3. Wenn Sie für den ersten Knoten noch nicht die Option -c angegeben haben, werden Sie zur Eingabe der IP-Adresse oder des Hostnamens aufgefordert.

  4. Wenn Sie die SSH-Authentifizierung ohne Passwort zwischen den Knoten nicht bereits konfiguriert haben, werden Sie aufgefordert, das Passwort für den ersten Knoten einzugeben.

  5. Konfigurieren Sie Corosync für die Clusterkommunikation:

    1. Das Skript schlägt eine IP-Adresse für ring0 vor. Diese IP-Adresse muss sich in demselben Teilnetz befinden wie die IP-Adresse, die für ring0 auf dem ersten Knoten verwendet wird. Ist dies nicht der Fall, geben Sie die richtige IP-Adresse ein.

    2. Wenn für den Cluster zwei Corosync-Kommunikationskanäle konfiguriert wurden, fordert das Skript Sie zur Eingabe einer IP-Adresse für ring1 auf. Diese IP-Adresse muss sich in demselben Teilnetz befinden wie die IP-Adresse, die für ring1 auf dem ersten Knoten verwendet wird.

Das Skript kopiert die Clusterkonfiguration des ersten Knotens, passt die Zeitüberschreitungseinstellungen an, damit der neue Knoten berücksichtigt wird, und schaltet den neuen Knoten online.

Sie können den Status des Clusters mit dem Befehl crm status überprüfen.

Wichtig
Wichtig: Sicheres Passwort für hacluster

Das crm cluster join-Skript erstellt einen Standard-Clusterbenutzer und ein Standardpasswort. Ersetzen Sie das Standardpasswort auf jedem Knoten möglichst schnell durch ein sicheres Passwort:

> sudo passwd hacluster

8 Anmelden bei Hawk

Mit Hawk können Sie einen High Availability-Cluster über einen grafischen Webbrowser überwachen und verwalten. Sie können auch eine virtuelle IP-Adresse konfigurieren, über die Clients eine Verbindung mit Hawk herstellen können, und zwar unabhängig davon, auf welchem Knoten es ausgeführt wird.

Anforderungen
  • Der Client-Rechner muss eine Verbindung mit den Clusterknoten herstellen können.

  • Der Client-Rechner muss über einen grafischen Webbrowser mit aktiviertem JavaScript und aktivierten Cookies verfügen.

Sie können dieses Verfahren auf jedem Rechner ausführen, der eine Verbindung mit den Clusterknoten herstellen kann:

  1. Starten Sie einen Webbrowser und geben Sie folgende URL ein:

    https://HAWKSERVER:7630/

    Ersetzen Sie HAWKSERVER durch die IP-Adresse oder den Hostnamen eines Clusterknotens oder die virtuelle Hawk-IP-Adresse, wenn eine solche konfiguriert wurde.

    Anmerkung
    Anmerkung: Warnmeldung bezüglich des Zertifikats

    Wenn bei Ihrem ersten Zugriff auf die URL eine Warnmeldung hinsichtlich des Zertifikats angezeigt wird, wird ein eigensigniertes Zertifikat verwendet. Bitten Sie den Clusteroperator um die Details des Zertifikats, damit Sie es überprüfen können. Falls Sie dennoch fortfahren möchten, können Sie im Browser eine Ausnahme hinzufügen und die Warnmeldung auf diese Weise umgehen.

  2. Geben Sie auf dem Hawk-Anmeldebildschirm den Benutzernamen und das Passwort des hacluster-Benutzers ein.

  3. Klicken Sie auf Anmelden. Die Hawk-Weboberfläche zeigt standardmäßig den Bildschirm Status an:

Der Bildschirm „Status“ zeigt eine konfigurierte Ressource an: die virtuelle IP-Adresse admin-ip, die auf einem Knoten mit dem Namen alice ausgeführt wird.
Abbildung 1: Der Hawk-Bildschirm „Status“

9 Anzeigen des Quorum-Status

Sie können den Status von QDevice und QNetd von jedem Knoten im Cluster aus überprüfen. Diese Beispiele zeigen einen Cluster mit zwei Knoten – alice und bob.

Beispiel 1: Anzeigen des Status von QDevice
> sudo crm corosync status quorum
1 alice member
2 bob member

Quorum information
------------------
Date:             [...]
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          2
Ring ID:          1.e
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   3
Highest expected: 3
Total votes:      3
Quorum:           2
Flags:            Quorate Qdevice

Membership information
----------------------
    Nodeid      Votes    Qdevice Name
         1          1    A,V,NMW alice
         2          1    A,V,NMW bob (local)
         0          1            Qdevice

In Abschnitt Membership information werden die folgenden Statuscodes angezeigt:

A (für „Alive“ – aktiv) oder NA (für „Not Alive“ – nicht aktiv)

Zeigt den Verbindungsstatus zwischen QDevice und Corosync an.

V (für „Vote“ – Stimme) oder NV (für „Non Vote“ – keine Stimme)

Zeigt an, ob der Knoten eine Stimme hat. V bedeutet, dass beide Knoten miteinander kommunizieren können. In einem Split Brain-Szenario wäre ein Knoten auf V und der andere Knoten auf NV festgelegt.

MW (für „Master Wins“ – Meister gewinnt) oder NMW (für „Not Master Wins“ – Nicht-Meister gewinnt)

Zeigt an, ob das Flag master_wins festgelegt wurde. Standardmäßig ist das Flag nicht festgelegt, der Status ist also NMW.

NR (für „Not Registered“ – nicht registriert)

Zeigt an, dass der Cluster kein Quorum-Gerät verwendet.

Beispiel 2: Anzeigen des Status von QNetd
> sudo crm corosync status qnetd
1 alice member
2 bob member

Cluster "hacluster":
    Algorithm:          Fifty-Fifty split (KAP Tie-breaker)
    Tie-breaker:        Node with lowest node ID
    Node ID 1:
        Client address:         ::ffff:192.168.122.185:45676
        HB interval:            8000ms
        Configured node list:   1, 2
        Ring ID:                1.e
        Membership node list:   1, 2
        Heuristics:             Undefined (membership: Undefined, regular: Undefined)
        TLS active:             Yes (client certificate verified)
        Vote:                   ACK (ACK)
    Node ID 2:
        Client address:         ::ffff:192.168.100.168:55034
        HB interval:            8000ms
        Configured node list:   1, 2
        Ring ID:                1.e
        Membership node list:   1, 2
        Heuristics:             Undefined (membership: Undefined, regular: Undefined)
        TLS active:             Yes (client certificate verified)
        Vote:                   No change (ACK)

10 Testen des Clusters

Mit den folgenden Tests können Sie grundlegende Probleme bei der Einrichtung des Clusters feststellen. Realistische Tests beinhaltet jedoch spezifische Anwendungsfälle und Szenarien. Bevor Sie den Cluster in einer Produktionsumgebung einsetzen, müssen Sie ihn anhand Ihrer Anwendungsfälle gründlich testen.

10.1 Testen des Ressourcen-Failovers

Überprüfen Sie, ob der Cluster Ressourcen auf einen anderen Knoten verschiebt, wenn der aktuelle Knoten auf standby festgelegt ist. Dieses Verfahren verwendet Beispielknoten mit den Namen alice und bob sowie eine virtuelle IP-Ressource mit dem Namen admin-ip und der Beispiel-IP-Adresse 192.168.1.10.

  1. Öffnen Sie zwei Terminals.

  2. Pingen Sie auf dem ersten Terminal die virtuelle IP-Adresse an:

    > ping 192.168.1.10
  3. Melden Sie sich auf dem zweiten Terminal bei einem der Clusterknoten an.

  4. Überprüfen Sie, auf welchem Knoten die virtuelle IP-Adresse ausgeführt wird:

    > sudo crm status
    [..]
    Node List:
      * Online: [ alice bob ]
    
    Full List of Resources:
      * admin-ip  (ocf:heartbeat:IPaddr2):    Started alice
  5. Versetzen Sie alice in den Standby-Modus:

    > sudo crm node standby alice
  6. Überprüfen Sie den Clusterstatus erneut. Die Ressource admin-ip sollte zu bob migriert sein:

    > sudo crm status
    [...]
    Node List:
      * Node alice: standby
      * Online: [ bob ]
    
    Full List of Resources:
      * admin-ip  (ocf:heartbeat:IPaddr2):    Started bob
  7. Auf dem ersten Terminal sollte während der Migration ein ununterbrochener Fluss an Ping-Signalen an die virtuelle IP-Adresse zu beobachten sein. Dies zeigt, dass die Clustereinrichtung und die Floating-IP-Adresse ordnungsgemäß funktionieren.

  8. Brechen Sie den Befehl ping mit StrgC ab.

  9. Schalten Sie auf dem zweiten Terminal alice wieder online:

    > sudo crm node online alice

10.2 Testen von Clusterausfällen

Der Befehl crm cluster crash_test simuliert Clusterausfälle und meldet die Ergebnisse.

Das Kommando unterstützt folgende Prüfungen:

--split-brain-iptables

Simuliert ein Split Brain-Szenario, indem es den Corosync-Port blockiert, und überprüft, ob ein Knoten wie erwartet umgrenzt werden kann. Sie müssen iptables installieren, bevor Sie diesen Test ausführen können.

--kill-sbd/--kill-corosync/ --kill-pacemakerd

Beendet die Daemons für SBD, Corosync oder Pacemaker. Nachdem Sie einen dieser Tests ausgeführt haben, finden Sie einen Bericht im Verzeichnis /var/lib/crmsh/crash_test/. Der Bericht enthält eine Testfallbeschreibung, eine Vorgangsprotokollierung und eine Erläuterung möglicher Ergebnisse.

--fence-node NODE

Umgrenzt einen spezifischen Knoten, der von der Kommandozeile aus weitergeleitet wurde.

Führen Sie für weitere Informationen den Befehl crm cluster crash_test --help aus.

Im folgenden Beispiel werden Knoten mit den Namen alice und bob verwendet und das Fencing von bob wird getestet. Um den Änderungsstatus für bob während des Tests zu beobachten, können Sie sich bei Hawk anmelden und zu Status › Knoten navigieren.

Beispiel 3: Testen des Clusters: Knoten-Fencing
> sudo crm status
[...]
Node List:
  * Online: [ alice bob ]

Active Resources:
  * admin-ip     (ocf:heartbeat:IPaddr2):    Started alice

> sudo crm cluster crash_test --fence-node bob

==============================================
Testcase:          Fence node bob
Fence action:      reboot
Fence timeout:     95

!!! WARNING WARNING WARNING !!!
THIS CASE MAY LEAD TO NODE BE FENCED.
TYPE Yes TO CONTINUE, OTHER INPUTS WILL CANCEL THIS CASE [Yes/No](No): Yes
INFO: Trying to fence node "bob"
INFO: Waiting 71s for node "bob" reboot...
INFO: Node "bob" will be fenced by "alice"!
INFO: Node "bob" was successfully fenced by "alice"

11 Nächste Schritte

Dieses Handbuch beschreibt einen einfachen High Availability-Cluster, der zu Testzwecken verwendet werden kann. Um diesen Cluster für die Verwendung in Produktionsumgebungen zu erweitern, werden weitere Schritte empfohlen:

Hinzufügen weiterer Knoten

Fügen Sie dem Cluster mit dem crm cluster join-Skript weitere Knoten hinzu.

Aktivieren eines Hardware-Watchdog

Ersetzen Sie softdog durch einen Hardware-Watchdog, bevor Sie den Cluster in einer Produktionsumgebung verwenden.

Hinzufügen weiterer STONITH-Geräte

Für kritische Workloads werden dringend zwei oder drei STONITH-Geräte empfohlen, wobei entweder physische STONITH-Geräte oder festplattenbasiertes SBD verwendet werden.