High Availability-Clustering

Wenn Oracle Linux-Instanzen auf Oracle Cloud Infrastructure (OCI) ausgeführt werden, können Sie High Availability-(HA-)Cluster erstellen, die kontinuierlichen Zugriff auf Anwendungen und Services bieten, die auf mehreren Knoten ausgeführt werden. HA-Clustering minimiert Ausfallzeiten und bietet kontinuierlichen Service, wenn und wenn Systemkomponenten ausfallen.

Sie können HA-Cluster mit OCI-Instanzen erstellen, indem Sie Pacemaker, einen Open-Source-Ressourcenmanager für High Availability, und Corosync, eine Open-Source-Cluster-Engine installieren und verwenden. Weitere Informationen über HA-Clustering und die Pacemaker- und Corosync-Technologien finden Sie in den folgenden Quellen:

Voraussetzung

Bevor Sie beginnen, konfigurieren Sie ein Shared Storage Device so, dass es von allen Knoten aus zugänglich ist, die Sie im HA-Cluster möchten. Für Cluster-Service und Anwendungs-Messaging sowie für Cluster-SBD-Fencing ist ein Shared Storage Device erforderlich. Weitere Informationen zum Einrichten eines Shared Storage-Geräts finden Sie in den folgenden Quellen:

High Availability-Clustering mit OCI-Instanzen einrichten

So richten Sie High-Availability-Clustering mit OCI-Instanzen ein:

  1. Installieren der Pacemaker-Software
  2. HA-Cluster erstellen
  3. Fechten konfigurieren

Schrittmacher installieren

Um ein High Availability-(HA-)Cluster mit Oracle Cloud Infrastructure-(OCI-)Instanzen zu erstellen, müssen Sie zuerst die Pacemaker- und Corosync-Packages auf jeder Instanz oder jedem Knoten installieren, den Sie im Cluster möchten. Anschließend können Sie jeden Clusterknoten konfigurieren und sicherstellen, dass der Pacemaker-Service automatisch auf jedem Knoten beim Booten gestartet und ausgeführt wird.

Hinweis

OCI-Instanz, -Knoten und -Clusterknoten werden austauschbar mit HA-Clustering für OCI verwendet.

Best-Practice

Öffnen Sie für jede OCI-Instanz, die Sie im Cluster möchten, ein Terminalfenster, und stellen Sie eine Verbindung zur Instanz her.

Beispiel: Wenn zwei OCI-Instanzen Knoten im Cluster sein sollen, öffnen Sie zwei Terminalfenster, und stellen Sie mit ssh eine Verbindung zu jeder Instanz her:
ssh instance-IP-address

Wenn für jeden Knoten ein Terminalfenster geöffnet ist, müssen Sie sich bei der Konfiguration des HA-Clusters nicht wiederholt bei den Knoten anmelden und diese verlassen.

Installieren von Pacemaker und Corosync

So installieren Sie die Pakete Pacemaker und Corosync und konfigurieren die HA-Clusterknoten:

  1. Füllen Sie die Voraussetzung im High-Availability-Clustering aus.
  2. Aktivieren Sie das Repository auf dem Oracle Linux yum-Server, auf dem sich die Pacemaker- und Corosync-Packages befinden.

    Oracle Linux 10:
    sudo dnf config-manager --enable ol10_addons

    Oracle Linux 9:

    sudo dnf config-manager --enable ol9_addons

    Oracle Linux 8:

    sudo dnf config-manager --enable ol8_addons
  3. Installieren Sie auf jedem Knoten die Pacemaker pcs-Befehlsshell, Softwarepakete und alle verfügbaren Ressourcen- und Fence-Agents:

    sudo dnf install pcs pacemaker resource-agents fence-agents-sbd
  4. Konfigurieren Sie die Firewall so, dass die Servicekomponenten über das Netzwerk kommunizieren können:

    sudo firewall-cmd --permanent --add-service=high-availability
    sudo firewall-cmd --add-service=high-availability
  5. Legen Sie auf jedem Knoten ein Kennwort für den Benutzer hacluster fest:

    sudo passwd hacluster
    Tipp

    Legen Sie dasselbe Kennwort auf jedem Knoten fest, um Autorisierungsprobleme zu vermeiden, wenn Sie pcs-Befehle auf verschiedenen Knoten im selben Cluster ausführen.

  6. Legen Sie auf jedem Knoten fest, dass der pcsd-Service beim Booten ausgeführt und gestartet werden soll:

    sudo systemctl enable --now pcsd.service
  7. Erstellen Sie ein HA-Cluster mit den von Ihnen konfigurierten Knoten. Siehe HA-Cluster erstellen.

HA-Cluster erstellen

Mit der Pacemaker- und Corosync-Software können Sie ein High Availability-(HA-)Cluster mit Linux-Instanzen erstellen, die auf Oracle Cloud Infrastructure (OCI) ausgeführt werden.

So erstellen Sie ein HA-Cluster:

  1. Installieren Sie die Softwarepakete Pacemaker und Corosync auf jedem Knoten, den Sie im Cluster verwenden möchten. Siehe Pacemaker installieren.
  2. Authentifizieren Sie von einem der Knoten aus das Clusterkonfigurationstool pcs für den Benutzer hacluster jedes Clusterknotens.

    Beispiel: Wenn zwei Knoten das HA-Cluster bilden sollen, führen Sie den folgenden Befehl von einem der Clusterknoten aus:

    sudo pcs host auth node1 node2 -u hacluster

    Ersetzen Sie node1 und node2 durch die auflösbaren Hostnamen der Knoten, die das Cluster bilden sollen.

    Wenn die Hostnamen nicht aufgelöst werden können, geben Sie alternativ die IP-Adresse für jeden Knoten an, wie im folgenden Beispiel dargestellt:

    sudo pcs host auth node1 addr=192.0.2.1 node2 addr=192.0.2.2 -u hacluster

    Ersetzen Sie 192.0.2.1 und 192.0.2.2 durch die IP-Adresse jedes einzelnen Hosts im Cluster.

  3. Wenn Sie dazu aufgefordert werden, geben Sie das Kennwort ein, das Sie für den Benutzer hacluster definiert haben, als Sie die Pacemaker-Software auf jedem Knoten installiert und konfiguriert haben.

  4. Erstellen Sie das HA-Cluster mit dem Befehl pcs cluster setup, und geben Sie Folgendes an:

    • Name des Clusters
    • Der Hostname und die IP-Adresse jedes Knotens, den Sie im Cluster verwenden möchten

    Beispiel: So erstellen Sie ein HA-Cluster mit zwei Knoten:

    sudo pcs cluster setup cluster-name node1 addr=192.0.2.1 node2 addr=192.0.2.2

    Ersetzen Sie 192.0.2.1 und 192.0.2.2 durch die IP-Adresse jedes einzelnen Hosts im Cluster.

  5. Starten Sie auf einem der Knoten das Cluster auf allen Knoten:

    sudo pcs cluster start --all
  6. Optional können Sie diese Services beim Booten aktivieren, sodass ein Knoten beim Neustart automatisch wieder mit dem Cluster verbunden wird. Führen Sie dazu den folgenden Befehl auf einem der Knoten aus:

    sudo pcs cluster enable --all
    Hinweis

    Einige Benutzer bevorzugen es, diese Services nicht zu aktivieren, damit ein Knotenfehler, der zu einem vollständigen Systemneustart führt, ordnungsgemäß debuggt werden kann, bevor er dem Cluster erneut beitritt.

  7. Konfigurieren Sie das SBD-Fencing für das neu erstellte HA-Cluster. Siehe Konfigurieren von Fencing.

Fencing konfigurieren

STONITH Block Device (SBD) Fechten arbeitet mit der Pacemaker Software, um Daten zu schützen, wenn ein Knoten in einem High Availability (HA) Cluster nicht mehr reagiert. Fechten verhindert, dass die Live-Knoten im HA-Cluster auf Daten auf dem nicht reagierenden Knoten zugreifen, bis die Pacemaker-Software diesen nicht reagierenden Knoten offline setzt.

Die SBD-Fencing-Konfiguration ist der letzte Schritt bei der Einrichtung eines HA-Clusters mit OCI-Instanzen. Informationen zum Erstellen eines HA-Clusters finden Sie unter HA-Cluster erstellen.

Hinweis

Um HA-Cluster mit OCI-Instanzen zu erstellen, dürfen Sie nur den SBD-Cluster-Fencing-Mechanismus verwenden. Andere Cluster-Fencing-Mechanismen werden derzeit in dieser Umgebung nicht unterstützt.

SBD-Fechten für ein HA-Cluster konfigurieren

So konfigurieren Sie SBD-Fencing für ein HA-Cluster:

  1. Aktivieren Sie von einem der Clusterknoten aus stonith (Shoot The Other Node In The Head), eine Fencing-Technik, die als Teil der SBD-Fencing-Strategie verwendet wird.

    sudo pcs property set stonith-enabled=true
  2. Stoppen Sie auf einem der Knoten das Cluster:

    sudo pcs cluster stop --all
  3. Installieren und konfigurieren Sie den SBD-Daemon auf jedem Knoten:

    sudo dnf install sbd
  4. Aktivieren Sie auf jedem Knoten den systemd-Service sbd:

    sudo systemctl enable sbd
    Hinweis

    Wenn diese Option aktiviert ist, wird der systemd-Service sbd automatisch als Abhängigkeit vom Pacemaker-Service gestartet und gestoppt. Das bedeutet, dass Sie den sbd-Service nicht unabhängig ausführen müssen und den Service nicht manuell starten oder stoppen können. Wenn Sie versuchen, den Service manuell zu starten oder zu stoppen, bleibt der Status des Service unverändert, und es wird eine Fehlermeldung angezeigt, die angibt, dass es sich bei dem Service um einen abhängigen Service handelt.
  5. Bearbeiten Sie auf jedem Knoten die Datei /etc/sysconfig/sbd, und legen Sie den Parameter SBD_DEVICE fest, um das Shared Storage Device zu identifizieren. Verwenden Sie dazu einen persistenten Gerätepfad, wie einen Link im /dev/disk/by-id/-Directory-System.

    Beispiel: Wenn das Shared Storage Device auf /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90 verfügbar ist, stellen Sie sicher, dass die Datei /etc/sysconfig/sbd auf jedem Knoten die folgende Zeile enthält:

    SBD_DEVICE="/dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90"

    Informationen zu Shared Storage-Geräten finden Sie in den Links im Abschnitt Voraussetzung.

  6. Bearbeiten Sie die Datei /etc/sysconfig/sbd auf jedem Knoten weiter, indem Sie das Watchdog-Gerät auf /dev/null setzen:
    SBD_WATCHDOG_DEV=/dev/null
  7. Erstellen Sie auf einem der Knoten das SBD-Nachrichtenlayout auf dem Shared Storage-Gerät, und bestätigen Sie, dass es vorhanden ist.

    Beispiel: So richten Sie Nachrichten auf dem Shared Storage-Gerät unter /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90 ein und prüfen sie:

    sudo sbd -d /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90 create 
    sudo sbd -d /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90 list
  8. Starten Sie auf einem der Knoten das Cluster, und konfigurieren Sie den fence_sbd-Fencing-Agent für das Shared Storage Device.

    Beispiel: So starten Sie das Cluster und konfigurieren das Shared Storage Device unter /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90:

    sudo pcs cluster start --all 
    sudo pcs stonith create sbd_fencing fence_sbd devices=/dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90
  9. Um zu prüfen, ob die stonith-Konfiguration korrekt eingerichtet wurde, führen Sie die folgenden Befehle aus:

    sudo pcs stonith config
    sudo pcs cluster verify --full
  10. Um den Status der stonith-Konfiguration zu prüfen, führen Sie den folgenden Befehl ein:

    sudo pcs stonith
  11. Um den Status des Clusters zu prüfen, führen Ihnen den folgenden Befehl durch:

    sudo pcs status