Implementierung eines Hochverfügbarkeitsclusters für SUSE Linux Enterprise Server
Verwenden Sie die folgenden Informationen und Anleitungen, um einen SUSE Linux®-Enterprise (SLE)-Cluster zu implementieren, der die SUSE High Availability Extension (HAE) nutzt. Der Cluster nutzt Instanzen unter IBM® Power® Virtual Server, die als Clusterknoten dienen.
Die folgenden Informationen beschreiben, wie die einzelnen virtuellen Serverinstanzen in einen Cluster umgewandelt werden.
Diese Verfahren umfassen die Installation der Hochverfügbarkeitspakete und -agenten auf jedem Clusterknoten sowie die Konfiguration der Fencing-Geräte.
Diese Informationen richten sich an Architekten und Spezialisten, die eine hochverfügbare Bereitstellung von SAP-Anwendungen auf Power Virtual Server planen. Sie sind nicht als Ersatz für die bestehende Dokumentation unter SAP oder SUSE gedacht.
Vorbereitende Schritte
Bevor Sie beginnen, lesen Sie bitte die allgemeinen Anforderungen, die Produktdokumentation, die Support-Artikel und die SAP-Hinweise durch, die unter Implementierung von Hochverfügbarkeit für SAP-Anwendungen auf IBMPower Virtual Server Referenzen aufgeführt sind.
Die Konfiguration nutzt SBD-Fencing in Kombination mit dem Hardware-Watchdog-Timer. Erstellen Sie die virtuellen Serverinstanzen unter Verwendung eines der Power10 Maschinentypen im Profil, um die Unterstützung für den Hardware-Watchdog
zu aktivieren.
Erstellen Sie virtuelle Serverinstanzen für den Cluster
Befolgen Sie die Anweisungen unter Bereitstellen einer Power Virtual Server-Instanz für das SAP HANA-System bzw. unter Bereitstellen einer Power Virtual Server-Instanz für SAP NetWeaver, um die virtuellen Serverinstanzen zu erstellen, die Sie als Clusterknoten verwenden möchten.
Bereiten Sie die Knoten für die Installation der SLE High Availability Extension vor
Im folgenden Abschnitt werden die grundlegenden Vorbereitungsschritte auf den Clusterknoten beschrieben. Stellen Sie sicher, dass alle Schritte auf beiden Knoten ausgeführt werden.
Melden Sie sich an jedem Cluster-Knoten als Root-Benutzer an.
Hinzufügen von Cluster-Knoten-Einträgen zur Hosts-Datei
Fügen Sie auf beiden Knoten die IP-Adressen aller Clusterknoten zusammen mit ihrem vollqualifizierten Hostnamen und ihrem Kurzhostnamen zur Datei /etc/hosts hinzu.
Weitere Informationen finden Sie unter Hostname und IP-Adresse im Abschnitt Systemanforderungen und Empfehlungen des Administrationshandbuchs für SUSE Linux Enterprise High Availability.
Umgebungsvariablen vorbereiten
Um den Einrichtungsprozess zu vereinfachen, richten Sie einige Umgebungsvariablen für den Root-Benutzer ein. Diese Umgebungsvariablen werden in Verbindung mit den nachfolgenden Betriebssystembefehlen in dieser Anleitung verwendet.
Erstellen Sie auf beiden Knoten eine Datei mit den folgenden Umgebungsvariablen und passen Sie diese an Ihre Umgebung an.
# General settings
export CLUSTERNAME="SAP_CLUSTER" # Cluster name
# Virtual server instance 1
export NODE1=<HOSTNAME_1> # Virtual server instance hostname
# Virtual server instance 2
export NODE2=<HOSTNAME_2> # Virtual server instance hostname
Installieren und Konfigurieren eines SLE-HA-Clusters
Führen Sie die folgenden Schritte aus, um einen Cluster mit zwei Knoten einzurichten.
Die Anleitungen basieren auf der Dokumentation SUSE sowie auf den Artikeln, die unter Implementierung von Hochverfügbarkeit für SAP-Anwendungen auf IBMPower Virtual Server Referenzen aufgeführt sind.
Einige Schritte müssen auf beiden Knoten ausgeführt werden, während andere entweder auf NODE1 oder auf NODE2 ausgeführt werden können.
Installation der HAE-Software für SUSE
Befolgen Sie diese Schritte, um zu überprüfen, ob die HAE-Repositorys von SUSE verfügbar sind, und installieren Sie die erforderlichen Softwarepakete.
Überprüfung der HAE-Repositorys unter SUSE
-
Überprüfen Sie, ob die Repositorys SUSE und Linux ® Enterprise High Availability Extension aktiviert sind, indem Sie den folgenden Befehl auf beiden Knoten ausführen.
zypper repos --show-enabled-only | grep HighÜberspringen Sie die folgenden Schritte, wenn die Ausgabe die SLE-HAE-Repositorys sowohl für Pool als auch für Updates enthält. Beispiel:
SUSE_Linux_Enterprise_High_Availability_Extension_ppc64le:SLE-Product-HA15-SP6-PoolSUSE_Linux_Enterprise_High_Availability_Extension_ppc64le:SLE-Product-HA15-SP6-Updates
-
Wenn die HAE-Repositorys nicht aufgeführt sind, verwenden Sie, um
yast2sie zu aktivieren.- Software
- Zusatzprodukte
- Hinzufügen
- Erweiterungen und Module vom Registrierungsserver
- Yast2 durchläuft beide Repositorys Pool und Updates
- Beide Repositories hinzufügen
- Die Anwendung yast2 beenden
-
Wenn Sie fertig sind, führen Sie denselben Befehl erneut auf beiden Knoten aus.
zypper repos --show-enabled-only | grep High
Beide SLE-HAE-Repositorys sind aufgeführt.
Installation der SLE HAE-Softwarepakete
Verwenden Sie den folgenden Befehl, um die erforderlichen Softwarepakete zu installieren.
Führen Sie auf beiden Knoten den folgenden Befehl aus.
zypper install -t pattern ha_sles
Konfigurieren eines SLE-Hochverfügbarkeitsclusters
Verwenden Sie die folgenden Informationen, um einen SLE-Hochverfügbarkeitscluster zu konfigurieren.
Überprüfung der Hardwareanforderungen
Beachten Sie die folgenden Hardwareanforderungen, um einen SLE-Hochverfügbarkeitscluster zu konfigurieren.
Detaillierte Hardwareanforderungen finden Sie in der Dokumentation zu SUSE unter Linux Enterprise High Availability im Abschnitt Schnellstart: Installation und Einrichtung.
- Zwei virtuelle Server oder logische Partitionen, die als Clusterknoten dienen.
- Ein zweiter Netzwerkkommunikationskanal oder eine gebündelte Netzwerkschnittstelle für Corosync.
- Ein freigegebenes Volume, das als STONITH-Blockgerät (SBD) verwendet werden soll.
- Ein Hardware-Watchdog-Timer für zuverlässiges Node-Fencing.
Konfigurieren des Hardware-Watchdogs
Der Hardware-Watchdog-Timer ist auf logischen Partitionen von Power10 standardmäßig aktiviert. Um die Verfügbarkeit zu überprüfen, führen Sie den folgenden Befehl aus.
ls /dev/watchdog*
Die Ausgabe listet zwei Geräte auf: und /dev/watchdog /dev/watchdog0.
Wenn kein Watchdog-Gerät aufgeführt ist, führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Prozessor-Kompatibilitätsmodus auf Power10 eingestellt ist.
LD_SHOW_AUXV=1 /bin/true | grep _PLATFORM
Achten Sie in der Ausgabe auf die folgenden Felder.
- AT_BASE_PLATFORM – gibt den tatsächlichen Prozessortyp an.
- AT_PLATFORM – zeigt den Prozessorkompatibilitätsmodus an.
Der Prozessorkompatibilitätsmodus muss auf Power10 eingestellt sein. Wenn eine frühere Version eingestellt ist, steht der Hypervisor-Watchdog nicht zur Verfügung.
Schlichter
Für einen Cluster mit zwei Knoten wird eine dritte LPAR als Schlichter empfohlen. Der Arbitrator ist eine logische Partition, die nicht zum Cluster gehört. Es hostet den QNetd-Server als dritte Instanz, um die Ermittlung des Cluster-Quorums in Split-Brain-Szenarien zu unterstützen. Bei einer geraden Anzahl von Cluster-Knoten sind Arbitratoren unverzichtbar, da sie dem Quorum eine Instanz hinzufügen.
Weitere Informationen finden Sie in der Dokumentation zu SUSE unter den Einträgen QDevice und QNetd.
Der Arbitrator wird in der Regel eingerichtet, nachdem der Cluster bereits läuft. Verwenden Sie den Ansatz crm cluster init qdevice, wie er in der Dokumentation SUSE beschrieben ist.
Konfiguration der Zeitsynchronisation
Beide Clusterknoten benötigen eine Zeitsynchronisation, um einen ordnungsgemäßen Betrieb zu gewährleisten. Wenn logische Partitionen auf PowerVS, ausgeführt werden, erfolgt die Zeitsynchronisation automatisch über Hardware Management Console (HMC). In dieser Konfiguration ist der chrony-Daemon nicht erforderlich.
Konfigurieren des ersten Cluster-Knotens
Die Installationsskripte für die SUSE und die Linux Enterprise High Availability Extension konfigurieren automatisch viele wichtige Komponenten der Clusterumgebung.
sudo crm cluster init --name "$CLUSTERNAME" --sbd-device "$SBD_DEVICE"
Drücken Sie die Eingabetaste, um die Standardwerte zu übernehmen, oder geben Sie ein y und drücken Sie die Eingabetaste, wenn Sie dazu aufgefordert werden.
INFO: Loading "default" profile from /etc/crm/profiles.yml
WARNING: chronyd.service is not configured to start at system boot.
Do you want to continue anyway (y/n)? y
INFO: The user 'hacluster' will have the login shell configuration changed to /bin/bash
Continue (y/n)? y
INFO: A new ssh keypair is generated for user hacluster.
INFO: Configuring csync2
INFO: Starting csync2.socket service on ths-3
INFO: BEGIN csync2 checking files
INFO: END csync2 checking files
INFO: Configure Corosync (unicast):
This will configure the cluster messaging layer. You will need
to specify a network address over which to communicate (default
is eth0's network, but you can use the network address of any
active interface).
Address for ring0 [10.51.0.84]
Port for ring0 [5405]
INFO: Initializing SBD
INFO: Hawk cluster interface is now running. To see cluster status, open:
INFO: https://10.51.0.84:7630/
INFO: Log in with username 'hacluster', password 'linux'
WARNING: You should change the hacluster password to something more secure!
INFO: Starting pacemaker.service on ths-3
INFO: BEGIN Waiting for cluster
........... INFO: END Waiting for cluster
INFO: Loading initial cluster configuration
WARNING: "stonith-enabled" in crm_config is set to true, it was false
INFO: Configure Administration IP Address:
Optionally configure an administration virtual IP
address. The purpose of this IP address is to
provide a single IP that can be used to interact
with the cluster, rather than using the IP address
of any specific cluster node.
Do you wish to configure a virtual IP address (y/n)? y
Virtual IP []10.51.0.12
INFO: BEGIN Configuring virtual IP (10.51.0.12)
. INFO: END Configuring virtual IP (10.51.0.12)
INFO: Configure Qdevice/Qnetd:
QDevice participates in quorum decisions. With the assistance of
a third-party arbitrator Qnetd, it provides votes so that a cluster
is able to sustain more node failures than standard quorum rules
allow. It is recommended for clusters with an even number of nodes
and highly recommended for 2 node clusters.
Do you want to configure QDevice (y/n)? n
INFO: Done (log saved to /var/log/crmsh/crmsh.log on ths-3)
Der Cluster ist nun mit einem einzelnen Knoten in Betrieb.
Konfigurieren des zweiten Cluster-Knotens
Verwenden Sie die folgenden Informationen, um den zweiten Clusterknoten zu konfigurieren.
-
Melden Sie sich beim zweiten Cluster-Knoten an.
-
Um den Knoten in den bestehenden Cluster zu integrieren, verwenden Sie den Befehl ha-cluster-join. Für diesen Befehl sind ein Benutzerkonto und der Hostname des ersten Clusterknotens erforderlich.
sudo crm cluster join -u root -c $NODE1 -
Drücken Sie die Eingabetaste, um die Standardwerte zu übernehmen, oder geben Sie einen Wert ein und
ydrücken Sie die Eingabetaste, wenn Sie dazu aufgefordert werden.WARNING: chronyd.service is not configured to start at system boot. Do you want to continue anyway (y/n)? y INFO: The user 'hacluster' will have the login shell configuration changed to /bin/bash Continue (y/n)? y INFO: A new ssh keypair is generated for user hacluster. INFO: Configuring csync2 INFO: Starting csync2.socket service INFO: BEGIN csync2 syncing files in cluster INFO: END csync2 syncing files in cluster INFO: Merging known_hosts Warning: Permanently added 'ths-4' (ED25519) to the list of known hosts. INFO: BEGIN Probing for new partitions INFO: END Probing for new partitions Address for ring0 [10.51.0.230] INFO: Got SBD configuration INFO: Hawk cluster interface is now running. To see cluster status, open: INFO: https://10.51.0.230:7630/ INFO: Log in with username 'hacluster', password 'linux' WARNING: You should change the hacluster password to something more secure! INFO: Starting pacemaker.service on ths-4 INFO: BEGIN Waiting for cluster .. INFO: END Waiting for cluster INFO: BEGIN Adjusting sbd related timeout values WARNING: "stonith-timeout" in crm_config is set to 83, it was 43 INFO: END Adjusting sbd related timeout values INFO: Set property "priority" in rsc_defaults to 1 WARNING: "priority-fencing-delay" in crm_config is set to 60, it was 0 INFO: BEGIN Reloading cluster configuration INFO: END Reloading cluster configuration INFO: Done (log saved to /var/log/crmsh/crmsh.log on ths-4) -
Um zu überprüfen, ob der SLE-Cluster läuft, führen Sie den folgenden Befehl aus.
sudo crm statusWenn keine Fehler aufgetreten sind, zeigt der Abschnitt Node sliste in der Ausgabe beide Knoten an, die als
Online. aufgeführt sind.Node List: * Online: [ ths-3 ths-4 ]Im Abschnitt Ressourcen sind zwei Ressourcen aufgeführt, die sich im Status Gestartet befinden, was bedeutet, dass sie aktiv sind und ordnungsgemäß funktionieren.
Full List of Resources: * stonith-sbd (stonith:external/sbd): Started ths-3 * admin-ip (ocf::heartbeat:IPaddr2): Started ths-3
Festlegen eines Passworts für die Benutzer-ID hacluster
Führen Sie auf beiden Knoten den folgenden Befehl aus, um das Passwort für das Benutzerkonto hacluster festzulegen.
passwd hacluster
Überprüfen des SBD-Status
Verwenden Sie die folgenden Informationen, um zu überprüfen, ob die Variable SBD_DEVICE gesetzt ist.
Um den Status der SBD-Steckplätze von einem der Clusterknoten aus zu überprüfen, führen Sie den folgenden Befehl aus.
sbd -d $SBD_DEVICE list
Die Ausgabe listet beide Cluster-Knoten auf, jeweils mit dem Status clean, was darauf hinweist, dass der SBD-Mechanismus ordnungsgemäß funktioniert und keine Fencing-Aktionen anstehen.
Konfigurieren Sie die Fencing-Aktion
Standardmäßig wird der fenced Knoten nach einem Fencing-Ereignis automatisch neu gestartet.
Eine alternative Vorgehensweise besteht jedoch darin, den Knoten auszuschalten und ihn nach der Untersuchung der Ursache des Fehlers manuell neu zu starten.
Die manuelle Aktivierung des Knotens hat mehrere Vorteile.
- Dadurch werden unnötige Endlosschleifen verhindert, die auftreten können, wenn das Grundproblem weiterhin besteht.
- Dadurch wird sichergestellt, dass jedes Fencing-Ereignis erkannt und behandelt wird, was die Stabilität und Zuverlässigkeit des Clusters verbessert.
Um die Fencing-Aktion zum Ausschalten des Knotens zu konfigurieren, verwenden Sie den folgenden Befehl.
sudo crm configure property stonith-action="off"
Überprüfen Sie die aktuelle Clusterkonfiguration mit dem folgenden Befehl.
sudo crm configure show
Testen von Fencing-Vorgängen
Um die STONITH-Konfiguration zu testen, müssen Sie auf einem der Knoten manuell eine Fencing-Aktion auslösen.
-
Führen Sie den folgenden Befehl aus, um NODE2 manuell in eine Sicherheitszone zu verschieben.
crm node fence ${NODE2} -
Geben Sie ein und
ydrücken Sie die Eingabetaste, um fortzufahren, wenn die folgende Meldung angezeigt wird, wodurch NODE2: beendet wirdFencing ths-4 will shut down the node and migrate any resources that are running on it! Do you want to fence ths-4 (y/n)? y -
Aktivieren Sie NODE2, warten Sie, bis der Knoten wieder dem Cluster beitritt, und testen Sie das Fencing aus der entgegengesetzten Richtung.
Führen Sie auf NODE2 den folgenden Befehl aus.
crm status -
Wenn beide Knoten im
OnlineClusterstatus als angezeigt werden, warten Sie etwa eine Minute, um die Stabilität zu gewährleisten. Starten Sie anschließend über NODE2 eine Fencing-Aktion auf NODE1, indem Sie den folgenden Befehl ausführen, der NODE1: stopptcrm node fence ${NODE1} -
Aktivieren Sie NODE1 und starten Sie anschließend die Cluster-Dienste auf dem Knoten.