37.5 Clusterkonfiguration

Sie müssen die Clustersoftware konfigurieren, um jeden Clusterknoten als Mitglied des Clusters zu registrieren. Als Teil der Konfiguration können Sie auch Fencing und STONITH-Ressourcen („Shoot The Other Node In The Head“) einrichten, um die Clusterkonsistenz zu gewährleisten.

WICHTIG:Die Prozeduren in diesem Abschnitt verwenden die Befehle rcopenais und openais, die nur mit SLES 11 SP4 funktionieren. Verwenden Sie für SLES 12 SP2 und höher den Befehl systemctl pacemaker.service.

Verwenden Sie beispielsweise für den Befehl /etc/rc.d/openais start den Befehl systemctl start pacemaker.service.

Verwenden Sie die folgende Prozedur für die Clusterkonfiguration:

Für diese Lösung verwenden Sie private IP-Adressen für die interne Clusterkommunikation und Unicast, um zu vermeiden, dass eine Multicast-Adresse von einem Netzwerkadministrator angefragt werden muss. Außerdem müssen Sie ein iSCSI-Ziel verwenden, das auf derselben virtuellen SLES-Maschine konfiguriert ist, auf der auch der freigegebene Speicher gehostet wird, um als SBD-Gerät (Systemspaltungserkennung) für Fencing-Zwecke zu dienen.

SBD-Einrichtung

  1. Stellen Sie eine Verbindung zu storage03 her und starten Sie eine Konsolensitzung. Erstellen Sie mit dem folgenden Befehl eine leere Datei beliebiger Größe:

    dd if=/dev/zero of=/sbd count=<Dateigröße> bs=<Bit-Größe>

    Mit folgendem Befehl erstellen Sie zum Beispiel eine 1-MB-Datei voller Nullen, die vom Pseudogerät /dev/zero kopiert wird:

    dd if=/dev/zero of=/sbd count=1024 bs=1024
  2. Führen Sie YaST von der Befehlszeile oder der grafischen Benutzeroberfläche aus: /sbin/yast

  3. Wählen Sie Netzwerkdienste > iSCSI-Ziel aus.

  4. Klicken Sie auf Ziele und wählen Sie das vorhandene Ziel aus.

  5. Wählen Sie Bearbeiten aus. Auf der Benutzeroberfläche wird eine Liste von verfügbaren LUNs (Laufwerken) angezeigt.

  6. Wählen Sie Hinzufügen aus, um ein neues LUN hinzuzufügen.

  7. Belassen Sie die LUN-Nummer bei 2. Durchsuchen Sie das Dialogfeld Pfad und wählen Sie die Datei /sbd aus, die Sie erstellt haben.

  8. Belassen Sie die anderen Optionen wie standardmäßig eingestellt, wählen Sie OK und dann Weiter aus und klicken Sie anschließend erneut auf Weiter, um die Standardoptionen für die Authentifizierung auszuwählen.

  9. Beenden Sie die Konfiguration mit Fertig stellen. Starten Sie die Dienste neu, falls erforderlich. Beenden Sie YaST.

HINWEIS:Bei den folgenden Schritten müssen alle Clusterknoten den Hostnamen aller anderen Clusterknoten auflösen können (im Dateisynchronisierungsdienst csync2 treten andernfalls Fehler auf). Wenn das DNS nicht eingerichtet oder verfügbar ist, fügen Sie jedem Host in Datei /etc/hosts Einträge hinzu, die jede IP-Adresse und deren Hostnamen auflisten (wie durch den Hostnamenbefehl gemeldet). Achten Sie auch darauf, einer Loopback-IP-Adresse keinen Hostnamen zuzuweisen.

Führen Sie die folgenden Schritte aus, um am Server unter der IP-Adresse 10.0.0.3 (storage03) ein iSCSI-Ziel für das SBD-Gerät auszuweisen.

Knotenkonfiguration

Stellen Sie eine Verbindung zu einem Clusterknoten (node01) her und öffnen Sie eine Konsole:

  1. YaST ausführen.

  2. Öffnen Sie Netzwerkdienste > iSCSI-Initiator.

  3. Wählen Sie Verbundene Ziele aus und anschließend das iSCSI-Ziel, das Sie oben konfiguriert haben.

  4. Wählen Sie die Option Abmelden aus und melden Sie sich vom Ziel ab.

  5. Wechseln Sie zur Registerkarte Erkannte Ziele, wählen Sie das Ziel aus und melden Sie sich erneut an, um die Geräteliste zu aktualisieren (lassen Sie für den Start die Option automatisch aktiviert und deaktivieren Sie Keine Authentifizierung).

  6. Wählen Sie OK aus, um das iSCSI-Inititor-Werkzeug zu beenden.

  7. Öffnen Sie System > Partitionierer und kennzeichnen Sie das SBD-Gerät als 1MB IET-VIRTUAL-DISK. Es wird als /dev/sdd oder ähnlich aufgeführt – notieren Sie sich, wie es heißt.

  8. Beenden Sie YaST.

  9. Führen Sie den Befehl ls -l /dev/disk/by-id/ und notieren Sie sich die Geräte-ID, die mit dem Gerätenamen verknüpft ist, den Sie oben gefunden haben.

  10. (Bedingt) Führen Sie einen der folgenden Befehle aus:

    • Unter SLES 11 SP4:

      sleha-init

    • Unter SLES 12 SP1 oder höher:

      ha-cluster-init

  11. Wenn Sie aufgefordert werden, die Netzwerkadresse für die Verbindung einzugeben, geben Sie die IP-Adresse des externen NIC an (172.16.0.1).

  12. Akzeptieren Sie die standardmäßige Multicast-Adresse und den Port. Sie werden später überschrieben.

  13. Geben Sie y ein, um SBD zu aktivieren. Geben Sie anschließend die /dev/disk/by-id/<Geräte-ID> an, wobei <Geräte-ID> die ID bezeichnet, die Sie oben gefunden haben (Sie können die Tabulatortaste verwenden, um den Pfad automatisch einzutragen).

  14. (Bedingt) Geben Sie N ein, wenn die folgende Aufforderung angezeigt wird:

    Do you wish to configure an administration IP? [y/N]

    Zur Konfiguration einer IP-Adresse für die Verwaltung, geben Sie während der in Ressourcenkonfiguration beschriebenen Prozedur die virtuelle IP-Adresse an.

  15. Beenden Sie den Assistenten und vergewissern Sie sich, dass keine Fehler gemeldet wurden.

  16. Starten Sie YaST.

  17. Wählen Sie Hochverfügbarkeit > Cluster aus (oder bei einigen Systemen nur „Cluster“).

  18. Vergewissern Sie sich, dass im Feld auf der linken Seite die Option Kommunikationskanäle ausgewählt ist.

  19. Gehen Sie mit der Tabulatortaste zur ersten Zeile der Konfiguration und ändern Sie die Auswahl von udp zu udpu (dadurch wird Multicast deaktiviert und Unicast ausgewählt).

  20. Wählen Sie die Option Mitgliedsadresse hinzufügen aus und geben Sie diesen Knoten (172.16.0.1) an. Wiederholen Sie dies und fügen Sie den (die) anderen Clusterknoten hinzu: 172.16.0.2.

  21. Wählen Sie zum Beenden der Konfiguration Fertig stellen aus.

  22. Beenden Sie YaST.

  23. Führen Sie den Befehl /etc/rc.d/openais aus, um die Clusterdienste mit dem neuen Synchronisierungsprotokoll neu zu starten.

Stellen Sie eine Verbindung zu jedem weiteren Clusterknoten (node02) her und öffnen Sie die Konsole:

  1. YaST ausführen.

  2. Öffnen Sie Netzwerkdienste > iSCSI-Initiator.

  3. Wählen Sie Verbundene Ziele aus und anschließend das iSCSI-Ziel, das Sie oben konfiguriert haben.

  4. Wählen Sie die Option Abmelden aus und melden Sie sich vom Ziel ab.

  5. Wechseln Sie zur Registerkarte Erkannte Ziele, wählen Sie das Ziel aus und melden Sie sich erneut an, um die Geräteliste zu aktualisieren (lassen Sie für den Start die Option automatisch aktiviert und deaktivieren Sie Keine Authentifizierung).

  6. Wählen Sie OK aus, um das iSCSI-Inititor-Werkzeug zu beenden.

  7. (Bedingt) Führen Sie einen der folgenden Befehle aus:

    • Unter SLES 11 SP4:

      sleha-join

    • Unter SLES 12 SP1 oder höher:

      ha-cluster-join

  8. Geben Sie die IP-Adresse des ersten Clusterknotens ein.

(Bedingt) Wenn der Cluster nicht richtig gestartet wird, führen Sie die folgenden Schritte aus:

  1. Führen Sie den Befehl crm status aus, um zu überprüfen, ob die Knoten verbunden sind. Wenn die Knoten nicht verbunden sind, starten Sie alle Knoten im Cluster neu.

  2. Kopieren Sie die Datei /etc/corosync/corosync.conf manuell von node01 zu node02 oder führen Sie csync2 -x -v auf node01 aus. Sie können den Cluster auch manuell über YaST im node02 einrichten.

  3. (Bedingt) Wenn mit dem Befehl csync2 -x -v aus Schritt 1 nicht alle Dateien synchronisiert werden, führen Sie folgende Prozedur durch:

    1. Leeren Sie die csync2-Datenbank im Verzeichnis /var/lib/csync2 auf allen Knoten.

    2. Aktualisieren Sie auf allen Knoten die csync2-Datenbank, um sie auf den Stand des Dateisystems zu bringen. Merken Sie dabei nichts für die Synchronisierung mit anderen Servern vor:

      csync2 -cIr /

    3. Führen Sie auf dem aktiven Knoten Folgendes aus:

      1. Ermitteln Sie alle Unterschiede zwischen den aktiven und passiven Knoten und kennzeichnen Sie diese Unterschiede für die Synchronisierung:

        csync2 -TUXI

      2. Setzen Sie die Datenbank zurück, um zu erzwingen, dass der aktive Knoten alle Konflikte überschreibt:

        csync2 -fr /

      3. Starten Sie die Synchronisierung für alle anderen Knoten:

        csync2 -xr /

    4. Überprüfen Sie auf allen Knoten, ob alle Dateien synchronisiert sind:

      csync2 -T

      Dieser Befehl listet nur die nicht synchronisierten Dateien auf.

  4. Führen Sie auf Knoten node02 den folgenden Befehl aus:

    Unter SLES 11 SP4:

    /etc/rc.d/openais start

    Unter SLES 12 SP1 oder höher:

    systemctl start pacemaker.service

    (Bedingt) Wenn der xinetd-Service den neuen csync2-Service nicht ordnungsgemäß hinzufügt, funktioniert das Skript nicht richtig. Der xinetd-Service ist erforderlich, damit der andere Knoten die Clusterkonfigurationsdateien bis zu diesem Knoten synchronisieren kann. Wenn Sie Fehler wie csync2 run failed sehen, könnte dieses Problem bei Ihnen aufgetreten sein.

    Führen Sie zur Fehlerbehebung den Befehl kill -HUP `cat /var/run/xinetd.init.pid aus und führen Sie anschließend das Skriptsleha-join erneut aus.

  5. Führen Sie auf jedem Clusterknoten crm_mon aus, um zu überprüfen, ob der Cluster richtig ausgeführt wird. Sie können den Cluster auch mit 'hawk', der Webkonsole, überprüfen. Der standardmäßige Anmeldename ist hacluster, das Passwort lautet linux.

(Bedingt) Führen Sie je nach Umgebung die folgenden Aufgaben aus, um zusätzliche Parameter zu bearbeiten:

  1. Um zu verhindern, dass der Ausfall eines Knotens in einem Cluster mit zwei Knoten nicht das gesamte Cluster beendet, legen Sie die globale Clusteroption no-quorum-policy auf ignore fest:

    crm configure property no-quorum-policy=ignore

    HINWEIS:Wenn der Cluster aus mehr als zwei Knoten besteht, legen Sie diese Option nicht fest.

  2. Um sicherzustellen, dass der Clustermanager zulässt, dass Ressourcen vor Ort ausgeführt oder verschoben werden, legen Sie die globale Clusteroption default-resource-stickiness auf 1 fest:

    crm configure property default-resource-stickiness=1.