XenServer

Fehlerbehebung bei GFS2-Cluster-Pools

XenServer®-Pools, die GFS2 zur Thin Provisioning ihres gemeinsam genutzten Blockspeichers verwenden, sind geclustert. Diese Pools verhalten sich anders als Pools, die dateibasierten Speicher oder LVM mit gemeinsam genutztem Blockspeicher verwenden. Infolgedessen können in XenServer-Cluster-Pools und GFS2-Umgebungen einige spezifische Probleme auftreten.

Verwenden Sie die folgenden Informationen zur Fehlerbehebung bei kleineren Problemen, die bei der Verwendung dieser Funktion auftreten können.

Alle meine Hosts können sich gegenseitig anpingen, aber ich kann keinen Cluster erstellen. Warum?

Der Clustering-Mechanismus verwendet bestimmte Ports. Wenn Ihre Hosts auf diesen Ports nicht kommunizieren können (auch wenn sie auf anderen Ports kommunizieren können), können Sie das Clustering für den Pool nicht aktivieren.

Stellen Sie sicher, dass die Hosts im Pool auf den folgenden Ports kommunizieren können:

  • TCP: 8892, 8896, 21064
  • UDP: 5404, 5405 (nicht Multicast)

Wenn sich Firewalls oder Ähnliches zwischen den Hosts im Pool befinden, stellen Sie sicher, dass diese Ports geöffnet sind.

Wenn Sie zuvor HA im Pool konfiguriert haben, deaktivieren Sie HA, bevor Sie das Clustering aktivieren.

Warum erhalte ich eine Fehlermeldung, wenn ich versuche, einen neuen Host einem bestehenden Cluster-Pool hinzuzufügen?

Wenn Clustering in einem Pool aktiviert ist, muss jede Änderung der Pool-Mitgliedschaft von jedem Mitglied des Clusters genehmigt werden, bevor sie erfolgreich sein kann. Wenn ein Cluster-Mitglied nicht erreichbar ist, schlagen Vorgänge, die die Cluster-Mitgliedschaft ändern (z. B. Hinzufügen oder Entfernen eines Hosts), fehl.

So fügen Sie Ihren neuen Host dem Cluster-Pool hinzu:

  1. Stellen Sie sicher, dass alle Ihre Hosts online und erreichbar sind.

  2. Stellen Sie sicher, dass die Hosts im Pool auf den folgenden Ports kommunizieren können:

    • TCP: 8892, 8896, 21064
    • UDP: 5404, 5405 (kein Multicast)
  3. Stellen Sie sicher, dass dem beitretenden Host eine IP-Adresse auf der NIC zugewiesen ist, die dem Clusternetzwerk des Pools beitritt.

  4. Stellen Sie sicher, dass das Clustering kein Nicht-Management-VLAN-Netzwerk im Pool verwendet.

  5. Stellen Sie sicher, dass kein Host im Pool offline ist, wenn ein neuer Host versucht, dem geclusterten Pool beizutreten.

  6. Wenn ein Offline-Host nicht wiederhergestellt werden kann, markieren Sie ihn als tot, um ihn aus dem Cluster zu entfernen. Weitere Informationen finden Sie unter Ein Host in meinem geclusterten Pool ist offline und ich kann ihn nicht wiederherstellen. Wie entferne ich den Host aus meinem Cluster?

Was tue ich, wenn einige Mitglieder des geclusterten Pools dem Cluster nicht automatisch beitreten?

Dieses Problem könnte dadurch verursacht werden, dass Mitglieder des geclusterten Pools die Synchronisation verlieren.

Um die Mitglieder des geclusterten Pools neu zu synchronisieren, verwenden Sie den folgenden Befehl:

xe cluster-pool-resync cluster-uuid=<cluster_uuid>

Wenn das Problem weiterhin besteht, können Sie versuchen, den GFS2 SR erneut anzuhängen. Sie können diese Aufgabe über die xe CLI oder über XenCenter ausführen.

Hängen Sie den GFS2 SR mit der xe CLI erneut an:

  1. Trennen Sie den GFS2 SR vom Pool. Führen Sie auf jedem Host den xe CLI-Befehl xe pbd-unplug uuid=<uuid_of_pbd> aus.

  2. Deaktivieren Sie den geclusterten Pool mit dem Befehl xe cluster-pool-destroy cluster-uuid=<cluster_uuid>

    Wenn der vorherige Befehl nicht erfolgreich ist, können Sie einen geclusterten Pool zwangsweise deaktivieren, indem Sie xe cluster-host-force-destroy uuid=<cluster_host> auf jedem Host im Pool ausführen.

  3. Aktivieren Sie den geclusterten Pool erneut mit dem Befehl xe cluster-pool-create network-uuid=<network_uuid> [cluster-stack=cluster_stack] [token-timeout=token_timeout] [token-timeout-coefficient=token_timeout_coefficient]

  4. Binden Sie den GFS2 SR erneut an, indem Sie den Befehl xe pbd-plug uuid=<uuid_of_pbd> auf jedem Host ausführen.

Alternativ können Sie XenCenter verwenden, um den GFS2 SR erneut anzubinden:

  1. Klicken Sie in der Registerkarte Speicher des Pools mit der rechten Maustaste auf den GFS2 SR und wählen Sie Trennen….
  2. Wählen Sie in der Symbolleiste Pool > Eigenschaften.
  3. Deaktivieren Sie in der Registerkarte Clustering die Option Clustering aktivieren.
  4. Klicken Sie auf OK, um Ihre Änderung zu übernehmen.
  5. Wählen Sie in der Symbolleiste Pool > Eigenschaften.
  6. Wählen Sie in der Registerkarte Clustering die Option Clustering aktivieren und wählen Sie das für das Clustering zu verwendende Netzwerk aus.
  7. Klicken Sie auf OK, um Ihre Änderung zu übernehmen.
  8. Klicken Sie in der Registerkarte Speicher des Pools mit der rechten Maustaste auf den GFS2 SR und wählen Sie Reparieren.

Woher weiß ich, ob sich mein Host selbst abgeschottet hat?

Wenn sich Ihr Host selbst abgeschottet hat, hat er sich möglicherweise beim Neustart wieder dem Cluster angeschlossen. Um zu sehen, ob sich ein Host selbst abgeschottet und wiederhergestellt hat, können Sie die Datei /var/opt/xapi-clusterd/boot-times überprüfen, um die Startzeiten des Hosts zu sehen. Wenn in der Datei Startzeiten aufgeführt sind, die Sie nicht erwartet haben, hat sich der Host selbst abgeschottet.

Warum ist mein Host offline? Wie kann ich ihn wiederherstellen?

Es gibt viele mögliche Gründe, warum ein Host offline gehen kann. Je nach Grund kann der Host entweder wiederhergestellt werden oder nicht.

Die folgenden Gründe für einen Offline-Host sind häufiger und können durch die Wiederherstellung des Hosts behoben werden:

  • Sauberes Herunterfahren
  • Erzwungenes Herunterfahren
  • Temporärer Stromausfall
  • Neustart

Die folgenden Gründe für einen Offline-Host sind seltener:

  • Permanenter Hardwarefehler des Hosts
  • Permanenter Stromversorgungsfehler des Hosts
  • Netzwerkpartition
  • Netzwerk-Switch-Fehler

Diese Probleme können durch den Austausch von Hardware oder durch das Markieren ausgefallener Hosts als tot behoben werden.

Ein Host in meinem Cluster-Pool ist offline und ich kann ihn nicht wiederherstellen. Wie entferne ich den Host aus meinem Cluster?

Sie können dem Cluster mitteilen, den Host zu vergessen. Diese Aktion entfernt den Host dauerhaft aus dem Cluster und verringert die Anzahl der aktiven Hosts, die für ein Quorum erforderlich sind.

Um einen nicht wiederherstellbaren Host zu entfernen, verwenden Sie den folgenden Befehl:

xe host-forget uuid=<host_uuid>

Dieser Befehl entfernt den Host dauerhaft aus dem Cluster und verringert die Anzahl der aktiven Hosts, die für ein Quorum erforderlich sind.

Hinweis:

Wenn der Host nicht offline ist, kann dieser Befehl zu Datenverlust führen. Sie werden aufgefordert, zu bestätigen, dass Sie sicher sind, bevor Sie mit dem Befehl fortfahren.

Nachdem ein Host vergessen wurde, kann er nicht wieder zum Cluster hinzugefügt werden. Um diesen Host wieder zum Cluster hinzuzufügen, müssen Sie eine Neuinstallation von XenServer auf dem Host durchführen.

Ich habe einen Host repariert, der als tot markiert war. Wie füge ich ihn wieder meinem Cluster hinzu?

Ein XenServer-Host, der als tot markiert wurde, kann nicht wieder zum Cluster hinzugefügt werden. Um dieses System wieder zum Cluster hinzuzufügen, müssen Sie eine Neuinstallation von XenServer durchführen. Diese Neuinstallation erscheint dem Cluster als neuer Host.

Was tue ich, wenn mein Cluster ständig den Quorum verliert und seine Hosts immer wieder abgeschottet werden?

Wenn einer oder mehrere der XenServer-Hosts im Cluster aufgrund kontinuierlichen Quorumverlusts in eine Abschottungsschleife geraten, können Sie den Host mit dem dom0-Befehlszeilenargument nocluster starten. Verbinden Sie sich mit der physischen oder seriellen Konsole des Hosts und führen Sie an der dom0-Befehlszeile den folgenden Befehl aus: /opt/xensource/libexec/xen-cmdline --set-dom0 nocluster. Beim nächsten Neustart versucht der Host nicht, dem Cluster beizutreten.

Nachdem Sie das Problem mit dem Host diagnostiziert und behoben haben, können Sie das Clustering aktivieren, indem Sie das Argument nocluster entfernen. Führen Sie dazu den folgenden Befehl aus: /opt/xensource/libexec/xen-cmdline --remove-dom0 nocluster. Starten Sie Ihren Host neu, damit die Änderung wirksam wird.

Weitere Informationen zum Zugriff auf Hosts über die serielle Konsole und zum Bearbeiten der Xen-Befehlszeile finden Sie unter Erweiterte Fehlerbehebung.

Was passiert, wenn der Pool-Koordinator in einem geclusterten Pool neu gestartet wird?

In den meisten Fällen ist das Verhalten beim Herunterfahren oder Neustarten des Pool-Koordinators in einem geclusterten Pool dasselbe wie beim Herunterfahren oder Neustarten eines anderen Pool-Mitglieds.

Die Art und Weise, wie der Host heruntergefahren oder neu gestartet wird, kann den Quorum des geclusterten Pools beeinflussen. Weitere Informationen zum Quorum finden Sie unter Quorum.

Der einzige Verhaltensunterschied hängt davon ab, ob HA in Ihrem Pool aktiviert ist:

  • Wenn HA aktiviert ist, wird ein neuer Koordinator ausgewählt und der allgemeine Dienst aufrechterhalten.
  • Wenn HA nicht aktiviert ist, gibt es keinen Koordinator für den Pool. Laufende VMs auf den verbleibenden Hosts laufen weiter. Die meisten administrativen Vorgänge sind nicht verfügbar, bis der Koordinator neu gestartet wird.

Warum ist mein Pool verschwunden, nachdem ein Host im geclusterten Pool zum Herunterfahren gezwungen wurde?

Wenn Sie einen Host normal (nicht erzwungen) herunterfahren, wird er vorübergehend aus den Quorum-Berechnungen entfernt, bis er wieder eingeschaltet wird. Wenn Sie jedoch einen Host zwangsweise herunterfahren oder er die Stromversorgung verliert, zählt dieser Host weiterhin zu den Quorum-Berechnungen. Wenn Sie beispielsweise einen Pool von 3 Hosts hatten und 2 davon zwangsweise heruntergefahren haben, wird der verbleibende Host abgeschottet, da er kein Quorum mehr hat.

Versuchen Sie, Hosts in einem geclusterten Pool immer sauber herunterzufahren. Weitere Informationen finden Sie unter Verwalten Ihres geclusterten Pools.

Warum wurden alle Hosts im geclusterten Pool gleichzeitig neu gestartet?

Alle Hosts in einem aktiven Cluster gelten als Quorum-verloren, wenn die Anzahl der kontaktierbaren Hosts im Pool kleiner ist als diese Werte:

  • Für einen Pool mit einer geraden Anzahl von Hosts: n/2
  • Für einen Pool mit einer ungeraden Anzahl von Hosts: (n+1)/2

Der Buchstabe n gibt die Gesamtzahl der Hosts im geclusterten Pool an. Weitere Informationen zum Quorum finden Sie unter Quorum.

In dieser Situation schotten sich alle Hosts selbst ab, und Sie sehen, wie alle Hosts neu starten.

Um zu diagnostizieren, warum der Pool das Quorum verloren hat, können die folgenden Informationen nützlich sein:

  • Überprüfen Sie in XenCenter den Abschnitt Benachrichtigungen für den Zeitpunkt des Problems, um festzustellen, ob eine Selbstabschottung stattgefunden hat.
  • Überprüfen Sie auf den Cluster-Hosts /var/opt/xapi-clusterd/boot-times, um festzustellen, ob ein Neustart zu einem unerwarteten Zeitpunkt aufgetreten ist.
  • Überprüfen Sie in Crit.log, ob Meldungen zur Selbstabschottung ausgegeben werden.
  • Überprüfen Sie die Ausgabe des Befehls dlm_tool status auf Abschottungsinformationen.

    Beispiel dlm_tool status Ausgabe:

     dlm_tool status
    
     cluster nodeid 1 quorate 1 ring seq 8 8
     daemon now 4281 fence_pid 0
     node 1 M add 3063 rem 0 fail 0 fence 0 at 0 0
     node 2 M add 3066 rem 0 fail 0 fence 0 at 0 0
     <!--NeedCopy-->
    

Beim Sammeln von Protokollen für die Fehlerbehebung sollten Sie Diagnoseinformationen von allen Hosts im Cluster sammeln. In dem Fall, dass sich ein einzelner Host selbst abgeschottet hat, enthalten die anderen Hosts im Cluster wahrscheinlich nützlichere Informationen.

Sammeln Sie vollständige Serverstatusberichte für die Hosts in Ihrem geclusterten Pool. Weitere Informationen finden Sie unter XenServer-Serverstatusberichte.

Warum kann ich meinen geclusterten Pool nicht wiederherstellen, wenn ich Quorum habe?

Wenn Sie einen geclusterten Pool mit einer geraden Anzahl von Hosts haben, ist die Anzahl der Hosts, die zum Erreichen des Quorums erforderlich ist, um eins höher als die Anzahl der Hosts, die zum Beibehalten des Quorums erforderlich ist. Weitere Informationen zum Quorum finden Sie unter Quorum.

Wenn Sie sich in einem Pool mit gerader Anzahl befinden und die Hälfte der Hosts wiederhergestellt haben, müssen Sie einen weiteren Host wiederherstellen, bevor Sie den Cluster wiederherstellen können.

Sie können überprüfen, ob Ihr Cluster Quorum hat, indem Sie den folgenden Befehl ausführen:

xe cluster-list params=is-quorate uuid=<cluster_id>

Warum wird beim Ändern der Clustereinstellungen ein Invalid token-Fehler angezeigt?

Beim Aktualisieren der Konfiguration Ihres Clusters erhalten Sie möglicherweise die folgende Fehlermeldung bezüglich eines ungültigen Tokens ("[[\"InternalError\",\"Invalid token\"]]").

Sie können dieses Problem beheben, indem Sie die folgenden Schritte ausführen:

  1. (Optional) Sichern Sie die aktuelle Clusterkonfiguration, indem Sie einen Serverstatusbericht sammeln, der die xapi-clusterd- und Systemprotokolle enthält.

  2. Verwenden Sie XenCenter, um den GFS2-SR vom geclusterten Pool zu trennen.

    Klicken Sie auf der Registerkarte Speicher des Pools mit der rechten Maustaste auf den GFS2-SR und wählen Sie Trennen….

  3. Führen Sie auf einem beliebigen Host im Cluster diesen Befehl aus, um den Cluster zwangsweise zu zerstören:

    xe cluster-pool-force-destroy cluster-uuid=<uuid>
    
  4. Verwenden Sie XenCenter, um die Clusterbildung in Ihrem Pool wieder zu aktivieren.

    1. Wählen Sie in der Symbolleiste Pool > Eigenschaften.
    2. Wählen Sie auf der Registerkarte Clustering die Option Clustering aktivieren und wählen Sie das Netzwerk aus, das für das Clustering verwendet werden soll.
    3. Klicken Sie auf OK, um Ihre Änderung zu übernehmen.
  5. Verwenden Sie XenCenter, um den GFS2 SR erneut an den Pool anzuhängen.

    Klicken Sie im Speicher-Tab des Pools mit der rechten Maustaste auf den GFS2 SR und wählen Sie Reparieren.

Fehlerbehebung bei GFS2-Cluster-Pools