Installieren eines einfachen High Availability-Clusters mit zwei Knoten
- 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:
Lesen Sie Abschnitt 3, „Systemanforderungen“, um sicherzustellen, dass Sie alles haben, was Sie benötigen.
Installieren Sie SUSE Linux Enterprise High Availability auf den Clusterknoten gemäß Abschnitt 4, „Aktivieren der High Availability-Erweiterung“.
In Abschnitt 5, „Einrichten des QNetd-Servers“ installieren Sie QNetd auf einem Nicht-Cluster-Server.
Initialisieren Sie den Cluster auf dem ersten Knoten gemäß Abschnitt 6, „Einrichtung des ersten Knotens“.
In Abschnitt 7, „Hinzufügen des zweiten Knotens“ fügen Sie Ihrem Cluster weitere Knoten hinzu.
In Abschnitt 8, „Anmelden bei Hawk“ melden Sie sich bei der Hawk-Weboberfläche an, um den Cluster zu überwachen.
In Abschnitt 9, „Anzeigen des Quorum-Status“ überprüfen Sie den Status von QDevice und QNetd.
In Abschnitt 10, „Testen des Clusters“ führen Sie grundlegende Tests durch, um sicherzustellen, dass der Cluster wie erwartet funktioniert.
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
chronyfür NTP. Wenn Sie den Cluster initialisieren, werden Sie gewarnt, fallschronynicht 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/hostsmit 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:root-SSH-Zugriff in SUSE Linux Enterprise 16In 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 denroot-Benutzer ein, bevor Sie den Cluster initialisieren.Wenn Sie den Cluster mit einem
sudo-Benutzer initialisieren, erfordern bestimmtecrmsh-Befehle auch einsudo-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.
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:
Melden Sie sich entweder als
root-Benutzer oder als Benutzer mitsudo-Rechten an.Überprüfen Sie, ob die High Availability-Erweiterung bereits aktiviert ist:
>sudo SUSEConnect --list-extensionsÜberprüfen Sie, ob die High Availability-Pakete bereits installiert sind:
>zypper search ha_slesAktivieren der SUSE Linux Enterprise High Availability-Erweiterung:
>sudo SUSEConnect -p sle-ha/16.0/x86_64 -r HA_REGCODEInstallieren 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.
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:
Melden Sie sich entweder als
root-Benutzer oder als Benutzer mitsudo-Rechten an.Aktivieren der SUSE Linux Enterprise High Availability-Erweiterung:
>sudo SUSEConnect -p sle-ha/16.0/x86_64 -r HA_REGCODEInstallieren Sie das Paket corosync-qnetd:
>sudo zypper install corosync-qnetdSie 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
chronyzum 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.
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.
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.
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/hostszusammen 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:
Melden Sie sich beim ersten Knoten entweder als
root-Benutzer oder als Benutzer mitsudo-Rechten an.Starten Sie das
crm cluster init-Skript:>sudo crm cluster initDas Skript prüft, ob
chronyausgefü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.Konfigurieren Sie Corosync für die Clusterkommunikation:
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.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 mitnablehnen. Wenn Sie einen zweiten Kanal konfigurieren müssen, bestätigen Sie mityund 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.
Wählen Sie aus, ob Sie SBD als Knoten-Fencing-Mechanismus einrichten möchten:
Bestätigen Sie mit
y, dass Sie SBD verwenden möchten.Wenn Sie nach einem Pfad zu einem Blockgerät gefragt werden, geben Sie
noneein, 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.Konfigurieren Sie eine virtuelle IP-Adresse für die Clusterverwaltung mit der Hawk-Weboberfläche:
Bestätigen Sie mit
y, dass Sie eine virtuelle IP-Adresse konfigurieren möchten.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.
Wählen Sie aus, ob QDevice und QNetd konfiguriert werden soll:
Bestätigen Sie mit
y, dass Sie QDevice und QNetd konfigurieren möchten.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:
Übernehmen Sie den vorgeschlagenen Port (
5403) oder geben Sie einen anderen ein.Wählen Sie den Algorithmus aus, der bestimmt, wie Stimmen vergeben werden. Der Standardwert ist
ffsplit.Wählen Sie die Methode aus, die verwendet werden soll, wenn ein Tie-Breaker erforderlich ist. Der Standardwert ist
lowest.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.).(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.
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.
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/hostszusammen 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 dassudo-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:
Melden Sie sich bei diesem Knoten als derselbe Benutzer an, mit dem Sie den ersten Knoten eingerichtet haben.
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 joinWenn Sie den ersten Knoten als
sudo-Benutzer einrichten, geben Sie für diesen Benutzer die Option-can:>sudo crm cluster join -c USER@NODE1
Das Skript prüft, ob
chronyausgeführt wird, öffnet die erforderlichen Firewall-Ports und konfiguriert Csync2.Wenn Sie für den ersten Knoten noch nicht die Option
-cangegeben haben, werden Sie zur Eingabe der IP-Adresse oder des Hostnamens aufgefordert.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.
Konfigurieren Sie Corosync für die Clusterkommunikation:
Das Skript schlägt eine IP-Adresse für
ring0vor. Diese IP-Adresse muss sich in demselben Teilnetz befinden wie die IP-Adresse, die fürring0auf dem ersten Knoten verwendet wird. Ist dies nicht der Fall, geben Sie die richtige IP-Adresse ein.Wenn für den Cluster zwei Corosync-Kommunikationskanäle konfiguriert wurden, fordert das Skript Sie zur Eingabe einer IP-Adresse für
ring1auf. Diese IP-Adresse muss sich in demselben Teilnetz befinden wie die IP-Adresse, die fürring1auf 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.
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.
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:
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: Warnmeldung bezüglich des ZertifikatsWenn 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.
Geben Sie auf dem Hawk-Anmeldebildschirm den und das des
hacluster-Benutzers ein.Klicken Sie auf . Die Hawk-Weboberfläche zeigt standardmäßig den Bildschirm an:
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.
>sudo crm corosync status quorum1 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) oderNA(für „Not Alive“ – nicht aktiv)Zeigt den Verbindungsstatus zwischen QDevice und Corosync an.
V(für „Vote“ – Stimme) oderNV(für „Non Vote“ – keine Stimme)Zeigt an, ob der Knoten eine Stimme hat.
Vbedeutet, dass beide Knoten miteinander kommunizieren können. In einem Split Brain-Szenario wäre ein Knoten aufVund der andere Knoten aufNVfestgelegt.MW(für „Master Wins“ – Meister gewinnt) oderNMW(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.
>sudo crm corosync status qnetd1 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.
Öffnen Sie zwei Terminals.
Pingen Sie auf dem ersten Terminal die virtuelle IP-Adresse an:
>ping 192.168.1.10Melden Sie sich auf dem zweiten Terminal bei einem der Clusterknoten an.
Ü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 aliceVersetzen Sie
alicein den Standby-Modus:>sudo crm node standby aliceÜberprüfen Sie den Clusterstatus erneut. Die Ressource
admin-ipsollte zubobmigriert sein:>sudo crm status[...] Node List: * Node alice: standby * Online: [ bob ] Full List of Resources: * admin-ip (ocf:heartbeat:IPaddr2): Started bobAuf 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.
Brechen Sie den Befehl
pingmit Strg–C ab.Schalten Sie auf dem zweiten Terminal
alicewieder 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-pacemakerdBeendet 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 › navigieren.
>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):YesINFO: 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
softdogdurch 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.
12 Rechtliche Hinweise #
Copyright © 2006–2025 , SUSE LLC und Mitwirkende. Alle Rechte vorbehalten.
Es wird die Genehmigung erteilt, dieses Dokument unter den Bedingungen der GNU Free Documentation License, Version 1.2 oder (optional) Version 1.3 zu vervielfältigen, zu verbreiten und/oder zu verändern; die unveränderlichen Abschnitte hierbei sind der Urheberrechtshinweis und die Lizenzbedingungen. Eine Kopie dieser Lizenz (Version 1.2) finden Sie in Abschnitt „GNU Free Documentation License“.
Die SUSE Marken finden Sie in https://www.suse.com/company/legal/. Alle anderen Marken von Drittanbietern sind Besitz ihrer jeweiligen Eigentümer. Markensymbole (®, ™ usw.) kennzeichnen Marken von SUSE und ihren Tochtergesellschaften. Sternchen (*) kennzeichnen Marken von Drittanbietern.
Alle Informationen in diesem Buch wurden mit größter Sorgfalt zusammengestellt. Auch hierdurch kann jedoch keine hundertprozentige Richtigkeit gewährleistet werden. Weder SUSE LLC noch ihre Tochtergesellschaften noch die Autoren noch die Übersetzer können für mögliche Fehler und deren Folgen haftbar gemacht werden.
