Einrichten von Pacemaker unter Red Hat Enterprise Linux in Azure

In diesem Artikel wird beschrieben, wie Sie einen einfachen Pacemaker-Cluster auf Red Hat Enterprise Server (RHEL) konfigurieren. Die Anweisungen umfassen RHEL 7, RHEL 8 und RHEL 9.

Voraussetzungen

Lesen Sie zuerst die folgenden SAP-Hinweise und -Dokumente:

Clusterinstallation

Diagram that shows an overview of Pacemaker on RHEL.

Hinweis

Red Hat unterstützt keinen software emulierten Watchdog. Red Hat unterstützt SBD nicht auf Cloudplattformen. Weitere Informationen finden Sie unter Supportrichtlinien für RHEL High-Availability Clusters – sbd und fence_sbd.

Der einzige unterstützte Fencing-Mechanismus für Pacemaker RHEL-Cluster in Azure ist ein Azure-Zaun-Agent.

Die folgenden Elemente haben eines der folgenden Präfixe:

  • [A] : Gilt für alle Knoten
  • [1]: Gilt nur für Knoten 1
  • [2]: Gilt nur für Knoten 2

Unterschiede bei den Befehlen oder der Konfiguration zwischen RHEL 7 und RHEL 8/RHEL 9 werden im Dokument markiert.

  1. [A] Registrieren Sie sich. Dieser Schritt ist optional. Wenn Sie RHEL SAP HA-fähige Images verwenden, ist dieser Schritt nicht erforderlich.

    Wenn Sie beispielsweise auf RHEL 7 bereitstellen, registrieren Sie Ihre VM, und fügen Sie sie an einen Pool an, der Repositorys für RHEL 7 enthält.

    sudo subscription-manager register
    # List the available pools
    sudo subscription-manager list --available --matches '*SAP*'
    sudo subscription-manager attach --pool=<pool id>
    

    Wenn Sie einen Pool an ein Azure Marketplace-Pay-as-you-go RHEL-Image anfügen, werden Sie effektiv doppelt für Ihre RHEL-Nutzung in Rechnung gestellt. Sie werden einmal für das Pay-as-you-go-Image und einmal für die RHEL-Berechtigung im Pool in Rechnung gestellt, den Sie anfügen. Um diese Situation zu mindern, bietet Azure jetzt RHEL-Images für Ihr eigenes Abonnement an. Weitere Informationen finden Sie unter Bring-Your-Own-Subscription-Gold-Images für Red Hat Enterprise Linux in Azure.

  2. [A] Aktivieren Sie RHEL für SAP-Repositorys. Dieser Schritt ist optional. Wenn Sie RHEL SAP HA-fähige Images verwenden, ist dieser Schritt nicht erforderlich.

    Um die erforderlichen Pakete auf RHEL 7 zu installieren, aktivieren Sie die folgenden Repositorys:

    sudo subscription-manager repos --disable "*"
    sudo subscription-manager repos --enable=rhel-7-server-rpms
    sudo subscription-manager repos --enable=rhel-ha-for-rhel-7-server-rpms
    sudo subscription-manager repos --enable=rhel-sap-for-rhel-7-server-rpms
    sudo subscription-manager repos --enable=rhel-ha-for-rhel-7-server-eus-rpms
    
  3. [A] Installieren Sie das RHEL HA-Add-On.

     sudo yum install -y pcs pacemaker fence-agents-azure-arm nmap-ncat
    

    Wichtig

    Es wird empfohlen, die folgenden Versionen des Azure-Zaun-Agents (oder höher) für Kunden von einer schnelleren Failoverzeit zu profitieren, wenn ein Ressourcenstopp fehlschlägt oder die Clusterknoten nicht mehr miteinander kommunizieren können:

    RHEL 7.7 oder höher verwenden die neueste verfügbare Version des Zaun-Agents-Pakets.

    RHEL 7.6: fence-agents-4.2.1-11.el7_6.8

    RHEL 7.5: fence-agents-4.0.11-86.el7_5.8

    RHEL 7.4: fence-agents-4.0.11-66.el7_4.12

    Weitere Informationen finden Sie unter Azure VM, die als RHEL High-Availability-Clustermitglied ausgeführt wird, eine sehr lange Zeit, um eingezäunt zu werden, oder das Fencing schlägt/Timeout fehl, bevor der virtuelle Computer heruntergefahren wird.

    Wichtig

    Wir empfehlen die folgenden Versionen des Azure-Zaun-Agents (oder höher) für Kunden, die verwaltete Identitäten für Azure-Ressourcen anstelle von Dienstprinzipalnamen für den Zaun-Agent verwenden möchten:

    RHEL 8.4: Zaunmittel-4.2.1-54.el8.

    RHEL 8.2: fence-agents-4.2.1-41.el8_2.4

    RHEL 8.1: fence-agents-4.2.1-30.el8_1.4

    RHEL 7.9: fence-agents-4.2.1-41.el7_9.4.

    Wichtig

    Auf RHEL 9 empfehlen wir die folgenden Paketversionen (oder höher), um Probleme mit dem Azure-Zaun-Agent zu vermeiden:

    Zaunagenten-4.10.0-20.el9_0.7

    Zaunagenten-common-4.10.0-20.el9_0.6

    ha-cloud-support-4.10.0-20.el9_0.6.x86_64.rpm

    Überprüfen Sie die Version des Azure Fence-Agent. Aktualisieren Sie es bei Bedarf auf die mindestens erforderliche Version oder höher.

    # Check the version of the Azure Fence Agent
     sudo yum info fence-agents-azure-arm
    

    Wichtig

    Wenn Sie den Azure-Zaun-Agent aktualisieren müssen und wenn Sie eine benutzerdefinierte Rolle verwenden, müssen Sie die benutzerdefinierte Rolle aktualisieren, um das Action PowerOff einzuschließen. Weitere Informationen finden Sie unter Erstellen einer benutzerdefinierten Rolle für den Zaun-Agent.

  4. Wenn Sie auf RHEL 9 bereitstellen, installieren Sie auch die Ressourcen-Agents für die Cloudbereitstellung.

    sudo yum install -y resource-agents-cloud
    
  5. [A] Einrichten der Auflösung des Hostnamens.

    Sie können entweder einen DNS-Server verwenden oder die Datei /etc/hosts auf allen Knoten ändern. In diesem Beispiel wird die Verwendung der Datei /etc/hosts gezeigt. Ersetzen Sie die IP-Adresse und den Hostnamen in den folgenden Befehlen.

    Wichtig

    Wenn Sie Hostnamen in der Clusterkonfiguration verwenden, ist es wichtig, eine zuverlässige Hostnamenauflösung zu haben. Die Clusterkommunikation schlägt fehl, wenn die Namen nicht verfügbar sind, was zu Clusterfailoververzögerungen führen kann.

    Der Vorteil der Verwendung /etc/hosts besteht darin, dass Ihr Cluster unabhängig von DNS wird, was auch ein einzelner Fehlerpunkt sein könnte.

    sudo vi /etc/hosts
    

    Fügen Sie in /etc/hosts die folgenden Zeilen ein. Ändern Sie die IP-Adresse und den Hostnamen Ihrer Umgebung entsprechend.

    # IP address of the first cluster node
    10.0.0.6 prod-cl1-0
    # IP address of the second cluster node
    10.0.0.7 prod-cl1-1
    
  6. [A] Ändern Sie das hacluster Kennwort in dasselbe Kennwort.

    sudo passwd hacluster
    
  7. [A] Fügen Sie Firewallregeln für Pacemaker hinzu.

    Fügen Sie jeglicher Clusterkommunikation zwischen den Clusterknoten die folgenden Firewallregeln hinzu.

    sudo firewall-cmd --add-service=high-availability --permanent
    sudo firewall-cmd --add-service=high-availability
    
  8. [A] Aktivieren Sie grundlegende Clusterdienste.

    Führen Sie die folgenden Befehle aus, um den Pacemaker-Dienst zu aktivieren und zu starten.

    sudo systemctl start pcsd.service
    sudo systemctl enable pcsd.service
    
  9. [1] Erstellen Sie einen Pacemaker-Cluster.

    Führen Sie die folgenden Befehle aus, um die Knoten zu authentifizieren und den Cluster zu erstellen. Legen Sie das Token auf 30000 fest, um speichererhaltende Standard Zusicherung zu ermöglichen. Weitere Informationen finden Sie in diesem Artikel für Linux.

    Wenn Sie einen Cluster auf RHEL 7.x erstellen, verwenden Sie die folgenden Befehle:

    sudo pcs cluster auth prod-cl1-0 prod-cl1-1 -u hacluster
    sudo pcs cluster setup --name nw1-azr prod-cl1-0 prod-cl1-1 --token 30000
    sudo pcs cluster start --all
    

    Wenn Sie einen Cluster auf RHEL 8.x/RHEL 9.x erstellen, verwenden Sie die folgenden Befehle:

    sudo pcs host auth prod-cl1-0 prod-cl1-1 -u hacluster
    sudo pcs cluster setup nw1-azr prod-cl1-0 prod-cl1-1 totem token=30000
    sudo pcs cluster start --all
    

    Überprüfen Sie den Clusterstatus, indem Sie den folgenden Befehl ausführen:

    # Run the following command until the status of both nodes is online
    sudo pcs status
    
    # Cluster name: nw1-azr
    # WARNING: no stonith devices and stonith-enabled is not false
    # Stack: corosync
    # Current DC: prod-cl1-1 (version 1.1.18-11.el7_5.3-2b07d5c5a9) - partition with quorum
    # Last updated: Fri Aug 17 09:18:24 2018
    # Last change: Fri Aug 17 09:17:46 2018 by hacluster via crmd on prod-cl1-1
    #
    # 2 nodes configured
    # 0 resources configured
    #
    # Online: [ prod-cl1-0 prod-cl1-1 ]
    #
    # No resources
    #
    # Daemon Status:
    #   corosync: active/disabled
    #   pacemaker: active/disabled
    #   pcsd: active/enabled
    
  10. [A] Legen Sie die erwarteten Stimmen fest.

    # Check the quorum votes 
    pcs quorum status
    
    # If the quorum votes are not set to 2, execute the next command
    sudo pcs quorum expected-votes 2
    

    Tipp

    Wenn Sie einen Multinodecluster erstellen, d. h. ein Cluster mit mehr als zwei Knoten, legen Sie die Stimmen nicht auf 2 fest.

  11. [1] Gleichzeitige Zaunaktionen zulassen.

    sudo pcs property set concurrent-fencing=true
    

Erstellen eines Fencinggeräts

Das Fencing-Gerät verwendet entweder eine verwaltete Identität für Azure-Ressource oder einen Dienstprinzipal, um die Autorisierung für Azure auszuführen.

Zum Erstellen einer verwalteten Identität (MSI) erstellen Sie eine systemseitig zugewiesene verwaltete Identität für jeden virtuellen Computer im Cluster. Wenn bereits eine vom System zugewiesene verwaltete Identität vorhanden ist, wird sie verwendet. Verwenden Sie derzeit keine vom Benutzer zugewiesenen verwalteten Identitäten mit Pacemaker. Ein Zaungerät basierend auf verwalteter Identität wird auf RHEL 7.9 und RHEL 8.x/RHEL 9.x unterstützt.

[1] Erstellen einer benutzerdefinierten Rolle für den Fence Agent.

Sowohl die verwaltete Identität als auch der Dienstprinzipal verfügen nicht standardmäßig über Berechtigungen für den Zugriff auf Ihre Azure-Ressourcen. Sie müssen den verwalteten Identitäts- oder Dienstprinzipalberechtigungen erteilen, um alle virtuellen Computer des Clusters zu starten und zu beenden (auszuschalten). Wenn Sie die benutzerdefinierte Rolle noch nicht erstellt haben, können Sie sie mithilfe von PowerShell oder der Azure CLI erstellen.

Verwenden Sie folgenden Inhalt für die Eingabedatei. Sie müssen die Inhalte an Ihre Abonnements anpassen, d. h. ersetzen xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx und yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy durch die IDs Ihres Abonnements. Wenn Sie nur über ein Abonnement verfügen, entfernen Sie den zweiten Eintrag in AssignableScopes.

{
      "Name": "Linux Fence Agent Role",
      "description": "Allows to power-off and start virtual machines",
      "assignableScopes": [
              "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
              "/subscriptions/yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
      ],
      "actions": [
              "Microsoft.Compute/*/read",
              "Microsoft.Compute/virtualMachines/powerOff/action",
              "Microsoft.Compute/virtualMachines/start/action"
      ],
      "notActions": [],
      "dataActions": [],
      "notDataActions": []
}

[A] Zuweisen der benutzerdefinierten Rolle

Verwenden Sie verwaltete Identität oder Dienstprinzipal.

Weisen Sie die benutzerdefinierte Rolle Linux Fence Agent Role , die im letzten Abschnitt erstellt wurde, jeder verwalteten Identität der Cluster-VMs zu. Jeder systemseitig zugewiesenen verwalteten Identität muss die Rolle für jede Cluster-VM-Ressource zugewiesen werden. Weitere Informationen finden Sie unter Zuweisen des Zugriffs einer verwalteten Identität auf eine Ressource über das Azure-Portal. Stellen Sie sicher, dass die Rollenzuweisung der verwalteten Identität jedes virtuellen Computers alle Cluster-VMs enthält.

Wichtig

Beachten Sie, dass die Zuweisung und Entfernung der Autorisierung mit verwalteten Identitäten bis zum Wirksamen verzögert werden können.

[1] Erstellen der Fencinggeräte

Nachdem Sie die Berechtigungen für die virtuellen Computer bearbeitet haben, können Sie die Fencing-Geräte im Cluster konfigurieren.

sudo pcs property set stonith-timeout=900

Hinweis

Die Option pcmk_host_map ist nur im Befehl erforderlich, wenn die RHEL-Hostnamen und die Azure-VM-Namen nicht identisch sind. Geben Sie die Zuordnung im Format hostname:vm-name an. Beachten Sie den fett formatierten Bereich des Befehls. Weitere Informationen finden Sie unter Welches Format soll ich zum Angeben von Knotenzuordnungen zum Fencing von Geräten in pcmk_host_map verwenden?.

Verwenden Sie für RHEL 7.xden folgenden Befehl, um das Fencinggerät zu konfigurieren:

sudo pcs stonith create rsc_st_azure fence_azure_arm msi=true resourceGroup="resource group" \ 
subscriptionId="subscription id" pcmk_host_map="prod-cl1-0:prod-cl1-0-vm-name;prod-cl1-1:prod-cl1-1-vm-name" \
power_timeout=240 pcmk_reboot_timeout=900 pcmk_monitor_timeout=120 pcmk_monitor_retries=4 pcmk_action_limit=3 pcmk_delay_max=15 \
op monitor interval=3600

Verwenden Sie für RHEL 8.x/9.x den folgenden Befehl, um das Zaungerät zu konfigurieren:

# Run following command if you are setting up fence agent on (two-node cluster and pacemaker version greater than 2.0.4-6.el8) OR (HANA scale out)
sudo pcs stonith create rsc_st_azure fence_azure_arm msi=true resourceGroup="resource group" \
subscriptionId="subscription id" pcmk_host_map="prod-cl1-0:prod-cl1-0-vm-name;prod-cl1-1:prod-cl1-1-vm-name" \
power_timeout=240 pcmk_reboot_timeout=900 pcmk_monitor_timeout=120 pcmk_monitor_retries=4 pcmk_action_limit=3 \
op monitor interval=3600

# Run following command if you are setting up fence agent on (two-node cluster and pacemaker version less than 2.0.4-6.el8)
sudo pcs stonith create rsc_st_azure fence_azure_arm msi=true resourceGroup="resource group" \
subscriptionId="subscription id" pcmk_host_map="prod-cl1-0:prod-cl1-0-vm-name;prod-cl1-1:prod-cl1-1-vm-name" \
power_timeout=240 pcmk_reboot_timeout=900 pcmk_monitor_timeout=120 pcmk_monitor_retries=4 pcmk_action_limit=3 pcmk_delay_max=15 \
op monitor interval=3600

Wenn Sie ein Fencing-Gerät basierend auf der Konfiguration des Dienstprinzipals verwenden, lesen Sie "Wechseln von SPN zu MSI für Pacemaker-Cluster mithilfe von Azure-Fencing " und erfahren Sie, wie Sie in die Konfiguration verwalteter Identitäten konvertieren.

Tipp

  • Um Zaunrennen innerhalb eines Zweiknoten-Pacemaker-Clusters zu vermeiden, können Sie die priority-fencing-delay Clustereigenschaft konfigurieren. Diese Eigenschaft führt zu einer zusätzlichen Verzögerung beim Einfassen eines Knotens mit einer höheren Gesamtressourcenpriorität, wenn ein Split-Brain-Szenario auftritt. Weitere Informationen finden Sie unter Kann Pacemaker den Clusterknoten mit den wenigsten ausgeführten Ressourcen einfassen?.
  • Die Eigenschaft priority-fencing-delay gilt für Pacemaker Version 2.0.4-6.el8 oder höher und auf einem Zwei-Knoten-Cluster. Wenn Sie die priority-fencing-delay Clustereigenschaft konfigurieren, müssen Sie die pcmk_delay_max Eigenschaft nicht festlegen. Wenn die Pacemaker-Version jedoch kleiner als 2.0.4-6.el8 ist, müssen Sie die pcmk_delay_max Eigenschaft festlegen.
  • Anweisungen zum Festlegen der priority-fencing-delay Clustereigenschaft finden Sie in den entsprechenden SAP ASCS/ERS- und SAP HANA Scale-up HA-Dokumenten.

Die Überwachungs- und Fencingvorgänge sind deserialisiert. Wenn daher ein länger ausgeführter Überwachungsvorgang und ein gleichzeitiges Fencing-Ereignis vorhanden ist, gibt es keine Verzögerung für das Clusterfailover, da der Überwachungsvorgang bereits ausgeführt wird.

[1] Aktivieren der Verwendung eines Fencinggeräts

sudo pcs property set stonith-enabled=true

Tipp

Der Azure-Zaun-Agent erfordert ausgehende Konnektivität mit öffentlichen Endpunkten. Weitere Informationen sowie mögliche Lösungen finden Sie unter Public Endpoint Connectivity for VMs using standard ILB.

Konfigurieren Sie Pacemaker für geplante Azure-Ereignisse

Azure verfügt über geplante Ereignisse. Geplante Ereignisse werden über den Metadatendienst gesendet und ermöglichen es der Anwendung, sich auf solche Ereignisse vorzubereiten.

Der Pacemaker-Ressourcen-Agent azure-events-az überwacht geplante Azure-Ereignisse. Wenn Ereignisse erkannt werden und der Ressourcen-Agent feststellt, dass ein anderer Clusterknoten verfügbar ist, wird ein Clusterintegritätsattribut festgelegt.

Wenn das Clusterintegritätsattribut für einen Knoten festgelegt wird, werden die Standorteinschränkungen ausgelöst und alle Ressourcen mit Namen, mit denen nicht begonnen health- wird, vom Knoten mit dem geplanten Ereignis migriert. Nachdem der betroffene Clusterknoten frei von ausgeführten Clusterressourcen ist, wird das geplante Ereignis bestätigt und kann seine Aktion ausführen, z. B. einen Neustart.

  1. [A] Stellen Sie sicher, dass das Paket für den azure-events-az Agent bereits installiert ist und auf dem neuesten Stand ist.

    RHEL 8.x: sudo dnf info resource-agents
    RHEL 9.x: sudo dnf info resource-agents-cloud
    

    Mindestversionsanforderungen:

    • RHEL 8.4: resource-agents-4.1.1-90.13
    • RHEL 8.6: resource-agents-4.9.0-16.9
    • RHEL 8.8: resource-agents-4.9.0-40.1
    • RHEL 9.0: resource-agents-cloud-4.10.0-9.6
    • RHEL 9.2 und höher: resource-agents-cloud-4.10.0-34.1
  2. [1] Konfigurieren Sie die Ressourcen in Pacemaker.

    #Place the cluster in maintenance mode
    sudo pcs property set maintenance-mode=true
    
    
  3. [1] Legen Sie die Strategie und Einschränkung des Pacemaker-Cluster-Integritätsknotens fest.

    sudo pcs property set node-health-strategy=custom
    sudo pcs constraint location 'regexp%!health-.*' \
    rule score-attribute='#health-azure' \
    defined '#uname'
    

    Wichtig

    Definieren Sie keine anderen Ressourcen im Cluster, beginnend mit health- den in den nächsten Schritten beschriebenen Ressourcen.

  4. [1] Legen Sie den Anfangswert der Clusterattribute fest. Führen Sie für jeden Clusterknoten und für Skalierungsumgebungen aus, einschließlich der VM des Mehrheitsherstellers.

    sudo crm_attribute --node prod-cl1-0 --name '#health-azure' --update 0
    sudo crm_attribute --node prod-cl1-1 --name '#health-azure' --update 0
    
  5. [1] Konfigurieren Sie die Ressourcen in Pacemaker. Stellen Sie sicher, dass die Ressourcen mit health-azure.

    sudo pcs resource create health-azure-events \
    ocf:heartbeat:azure-events-az op monitor interval=10s
    sudo pcs resource clone health-azure-events allow-unhealthy-nodes=true
    
  6. Nehmen Sie den Pacemaker-Cluster aus dem Standard-Modus heraus.

    sudo pcs property set maintenance-mode=false
    
  7. Löschen Sie alle Fehler während der Aktivierung, und stellen Sie sicher, dass die health-azure-events Ressourcen erfolgreich auf allen Clusterknoten gestartet wurden.

    sudo pcs resource cleanup
    

    Die Erstmalige Abfrageausführung für geplante Ereignisse kann bis zu zwei Minuten dauern. Pacemaker-Tests mit geplanten Ereignissen können Neustart- oder erneutes Bereitstellen von Aktionen für die Cluster-VMs verwenden. Weitere Informationen finden Sie unter Geplante Ereignisse.

Optionale Fencingkonfiguration

Tipp

Dieser Abschnitt gilt nur, wenn Sie das spezielle Fencing-Gerät fence_kdumpkonfigurieren möchten.

Wenn Sie Diagnoseinformationen innerhalb der VM sammeln müssen, kann es hilfreich sein, ein anderes Fencing-Gerät basierend auf dem Zaun-Agent fence_kdumpzu konfigurieren. Der fence_kdump Agent kann erkennen, dass ein Knoten in die Kdump-Absturzwiederherstellung eingegeben wurde und den Absturzwiederherstellungsdienst abschließen kann, bevor andere Fencing-Methoden aufgerufen werden.The agent can detect that a node entered kdump crash recovery and can allow the crash recovery service to complete before other fencing methods are invoked. Beachten Sie, dass fence_kdump es sich nicht um einen Ersatz für herkömmliche Zaunmechanismen wie den Azure-Zaun-Agent handelt, wenn Sie Azure-VMs verwenden.

Wichtig

Beachten Sie, dass bei fence_kdump der Konfiguration als Fencinggerät der ersten Ebene Verzögerungen bei den Fencingvorgängen bzw. Verzögerungen im Failover der Anwendungsressourcen auftreten.

Wenn ein Absturzabbild erfolgreich erkannt wird, wird das Fencing verzögert, bis der Absturzwiederherstellungsdienst abgeschlossen ist. Wenn der fehlgeschlagene Knoten nicht erreichbar ist oder nicht reagiert, wird das Fencing nach zeitbestimmter Zeit verzögert, die konfigurierte Anzahl der Iterationen und das fence_kdump Timeout. Weitere Informationen finden Sie unter Gewusst wie Konfigurieren von fence_kdump in einem Red Hat Pacemaker-Cluster?.

Der vorgeschlagene fence_kdump Timeout muss möglicherweise an die spezifische Umgebung angepasst werden.

Es wird empfohlen, das Fencing nur zu konfigurierenfence_kdump, wenn dies erforderlich ist, um Diagnose innerhalb des virtuellen Computers zu sammeln und immer in Kombination mit herkömmlichen Zaunmethoden wie dem Azure-Zaun-Agent zu verwenden.

Die folgenden Red Hat KB-Artikel enthalten wichtige Informationen zum Konfigurieren von fence_kdump Fencing:

Führen Sie die folgenden optionalen Schritte aus, um zusätzlich zur Konfiguration des Azure-Zaun-Agents als Konfiguration für das Fencing auf erster Ebene hinzuzufügen fence_kdump .

  1. [A] Überprüfen Sie, ob dies kdump aktiv ist und konfiguriert ist.

    systemctl is-active kdump
    # Expected result
    # active
    
  2. [A] Installieren Sie den Fence-Agent fence_kdump.

    yum install fence-agents-kdump
    
  3. [1] Erstellen Sie ein fence_kdump Fencing-Gerät im Cluster.

    pcs stonith create rsc_st_kdump fence_kdump pcmk_reboot_action="off" pcmk_host_list="prod-cl1-0 prod-cl1-1" timeout=30
    
  4. [1] Konfigurieren Sie Fencingebenen so, dass der fence_kdump Fencingmechanismus zuerst aktiviert wird.

    pcs stonith create rsc_st_kdump fence_kdump pcmk_reboot_action="off" pcmk_host_list="prod-cl1-0 prod-cl1-1"
    pcs stonith level add 1 prod-cl1-0 rsc_st_kdump
    pcs stonith level add 1 prod-cl1-1 rsc_st_kdump
    pcs stonith level add 2 prod-cl1-0 rsc_st_azure
    pcs stonith level add 2 prod-cl1-1 rsc_st_azure
    
    # Check the fencing level configuration 
    pcs stonith level
    # Example output
    # Target: prod-cl1-0
    # Level 1 - rsc_st_kdump
    # Level 2 - rsc_st_azure
    # Target: prod-cl1-1
    # Level 1 - rsc_st_kdump
    # Level 2 - rsc_st_azure
    
  5. [A] Lassen Sie die erforderlichen Ports für fence_kdump die Firewall zu.

    firewall-cmd --add-port=7410/udp
    firewall-cmd --add-port=7410/udp --permanent
    
  6. [A] Stellen Sie sicher, dass die initramfs Bilddatei die fence_kdump dateien enthält.hosts Weitere Informationen finden Sie unter Gewusst wie Konfigurieren von fence_kdump in einem Red Hat Pacemaker-Cluster?.

    lsinitrd /boot/initramfs-$(uname -r)kdump.img | egrep "fence|hosts"
    # Example output 
    # -rw-r--r--   1 root     root          208 Jun  7 21:42 etc/hosts
    # -rwxr-xr-x   1 root     root        15560 Jun 17 14:59 usr/libexec/fence_kdump_send
    
  7. [A] Führen Sie die fence_kdump_nodes Konfiguration /etc/kdump.conf aus, um zu vermeiden fence_kdump , dass bei einigen kexec-tools Versionen ein Timeout auftritt. Weitere Informationen finden Sie unter fence_kdump Timeout, wenn fence_kdump_nodes nicht mit kexec-tools Version 2.0.15 oder höher angegeben wird, und fence_kdump mit "Timeout nach X Sekunden" in einem RHEL 6- oder 7 High Availability-Cluster mit kexec-tools-Versionen fehlschlägt, die älter als 2.0.14 sind. Hier wird die Beispielkonfiguration für einen Cluster mit zwei Knoten dargestellt. Nachdem Sie eine Änderung /etc/kdump.confvorgenommen haben, muss das Kdump-Bild neu generiert werden. Um den Dienst neu zu generieren, starten Sie den kdump Dienst neu.

    vi /etc/kdump.conf
    # On node prod-cl1-0 make sure the following line is added
    fence_kdump_nodes  prod-cl1-1
    # On node prod-cl1-1 make sure the following line is added
    fence_kdump_nodes  prod-cl1-0
    
    # Restart the service on each node
    systemctl restart kdump
    
  8. Testen Sie die Konfiguration, indem Sie einen Knoten zum Absturz bringen. Weitere Informationen finden Sie unter Gewusst wie Konfigurieren von fence_kdump in einem Red Hat Pacemaker-Cluster?.

    Wichtig

    Wenn der Cluster bereits produktiv genutzt wird, planen Sie den Test entsprechend, da sich das Abstürzen eines Knotens auf die Anwendung auswirkt.

    echo c > /proc/sysrq-trigger
    

Nächste Schritte