Citrix Hypervisor

Problembehandlung bei Cluster-Pools

Citrix Hypervisor-Pools, die GFS2 zur Thin-Bereitstellung ihres gemeinsam genutzten Blockspeichers verwenden, sind geclustert. Diese Pools verhalten sich anders als Pools, die gemeinsam genutzten dateibasierten Speicher oder LVM mit gemeinsam genutztem Blockspeicher verwenden. Daher können in Citrix Hypervisor Clusterpools und GFS2-Umgebungen einige spezifische Probleme auftreten.

Verwenden Sie die folgenden Informationen, um kleinere Probleme zu beheben, die bei der Verwendung dieser Funktion auftreten können.

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

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

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

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

Wenn es Firewalls oder ähnliches zwischen den Hosts im Pool gibt, stellen Sie sicher, dass diese Ports geöffnet sind.

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

Warum erhalte ich eine Fehlermeldung, wenn ich versuche, einen neuen Host mit einem vorhandenen Clusterpool zu verbinden?

Wenn Clustering für einen Pool aktiviert ist, muss jede Änderung der Poolmitgliedschaft von jedem Mitglied des Clusters genehmigt werden, bevor sie erfolgreich sein kann. Wenn ein Clustermitglied nicht erreichbar ist, schlagen Operationen, die die Clustermitgliedschaft ändern (wie das Hinzufügen oder Entfernen von Hosts), fehl.

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

  1. Stellen Sie sicher, dass alle Hosts online sind und kontaktiert werden können.

  2. Stellen Sie sicher, dass die Hosts im Pool über die 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 Netzwerkkarte zugewiesen ist, die dem Cluster-Netzwerk des Pools beitritt.

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

  5. 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 Clusterpool ist offline und ich kann ihn nicht wiederherstellen. Wie entferne ich den Host aus meinem Cluster?

Was mache ich, wenn einige Mitglieder des Cluster-Pools dem Cluster nicht automatisch beitreten?

Dieses Problem kann dadurch verursacht werden, dass Mitglieder des Cluster-Pools die Synchronisation verlieren.

Verwenden Sie den folgenden Befehl, um die Mitglieder des geclusterten Pools erneut zu synchronisieren:

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

Wenn das Problem weiterhin besteht, können Sie versuchen, den GFS2 SR erneut anzuschließen. Sie können diese Aufgabe mithilfe der Xe-CLI oder über XenCenter ausführen.

Hängen Sie den GFS2 SR mithilfe der Xe-CLI erneut an:

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

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

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

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

  4. Verbinden Sie den GFS2 SR erneut, 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 anzuschließen:

  1. Klicken Sie auf der Registerkarte Poolspeicher mit der rechten Maustaste auf den GFS2 SR und wählen Sie Trennen….
  2. Wählen Sie in der Werkzeugleiste Pool > Eigenschaftenaus.
  3. Deaktivieren Sie auf der Registerkarte Clustering die Option Clustering aktivieren.
  4. Klicken Sie auf OK, um Ihre Änderung zu übernehmen.
  5. Wählen Sie in der Werkzeugleiste Pool > Eigenschaftenaus.
  6. 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.
  7. Klicken Sie auf OK, um Ihre Änderung zu übernehmen.
  8. Klicken Sie auf der Registerkarte Poolspeicher mit der rechten Maustaste auf den GFS2 SR und wählen Sie Reparieren.

Woher weiß ich, ob mein Host sich umgrenzt hat?

Wenn Ihr Host sich umgrenzt hat, ist er beim Neustart möglicherweise wieder dem Cluster beigetreten. Um zu sehen, ob ein Host sich selbst eingezäunt und wiederhergestellt hat, können Sie in der Datei /var/opt/xapi-clusterd/boot-times nachsehen, wann der Host gestartet wurde. Wenn die Datei Startzeiten enthält, von denen Sie nicht erwartet haben, dass sie angezeigt werden, hat sich der Host selbst umgrenzt.

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

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

Die folgenden Gründe dafür, dass ein Host offline ist, treten häufiger auf und können durch eine Wiederherstellung des Hosts behoben werden:

  • Sauberes Herunterfahren
  • Erzwungene Abschaltung
  • Vorübergehender Stromausfall
  • Reboot

Die folgenden Gründe dafür, dass ein Host offline ist, sind seltener:

  • Dauerhafter Host-Hardwarefehler
  • Dauerhafter Ausfall der Host-Stromversorgung
  • Netzwerkpartition
  • Ausfall des Netzwerk-Switches

Diese Probleme können behoben werden, indem Hardware ausgetauscht oder ausgefallene Hosts als tot markiert werden.

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

Sie können dem Cluster sagen, dass er den Host vergessen soll. Diese Aktion entfernt den Host dauerhaft aus dem Cluster und verringert die Anzahl der Live-Hosts, die für das Quorum erforderlich sind.

Verwenden Sie den folgenden Befehl, um einen nicht wiederherstellbaren Host zu entfernen:

xe host-forget uuid=<host_uuid>

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

Hinweis:

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

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

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

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

Was mache ich, wenn mein Cluster ständig das Quorum verliert und seine Hosts sich weiterhin umgrenzen?

Wenn einer oder mehrere der Citrix Hypervisor-Hosts im Cluster in eine Umgrenzungsschleife geraten, weil sie ständig das Quorum verlieren und gewinnen, können Sie den Host mit dem Kernel-Befehlszeilenargument nocluster starten. Stellen Sie eine Verbindung zur physischen oder seriellen Konsole des Hosts her und bearbeiten Sie die Boot-Argumente in Grub.

Beispiel:

/boot/grub/grub.cfg
menuentry 'XenServer' {
        search --label --set root root-oyftuj
        multiboot2 /boot/xen.gz dom0_mem=4096M,max:4096M watchdog ucode=scan dom0_max_vcpus=1-16 crashkernel=192M,below=4G console=vga vga=mode-0x0311
        module2 /boot/vmlinuz-4.4-xen root=LABEL=root-oyftuj ro nolvm hpet=disable xencons=hvc console=hvc0 console=tty0 quiet vga=785 splash plymouth.ignore-serial-consoles nocluster
        module2 /boot/initrd-4.4-xen.img
}
menuentry 'Citrix Hypervisor (Serial)' {
        search --label --set root root-oyftuj
        multiboot2 /boot/xen.gz com1=115200,8n1 console=com1,vga dom0_mem=4096M,max:4096M watchdog ucode=scan dom0_max_vcpus=1-16 crashkernel=192M,below=4G
        module2 /boot/vmlinuz-4.4-xen root=LABEL=root-oyftuj ro nolvm hpet=disable console=tty0 xencons=hvc console=hvc0 nocluster
        module2 /boot/initrd-4.4-xen.img
}
<!--NeedCopy-->

Was passiert, wenn der Poolmaster in einem Cluster-Pool neu gestartet wird?

In den meisten Fällen ist das Verhalten beim Herunterfahren oder Neustarten des Poolmasters in einem Clusterpool dasselbe wie beim Herunterfahren oder Neustarten eines anderen Poolmitglieds.

Wie der Host heruntergefahren oder neu gestartet wird, kann sich auf das Quorum des Cluster-Pools auswirken. Weitere Informationen zum Quorum finden Sie unter Quorum.

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

  • Wenn HA aktiviert ist, wird ein neuer Master ausgewählt und der allgemeine Service wird aufrechterhalten.
  • Wenn HA nicht aktiviert ist, gibt es keinen Master für den Pool. Laufende VMs auf den verbleibenden Hosts werden weiterhin ausgeführt. Die meisten Verwaltungsvorgänge sind erst verfügbar, wenn der Master neu gestartet wird.

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

Wenn Sie einen Host normal (nicht gewaltsam) herunterfahren, wird er vorübergehend aus den Quorumberechnungen entfernt, bis er wieder eingeschaltet wird. Wenn Sie jedoch einen Host zwangsweise herunterfahren oder er nicht mehr mit Strom versorgt wird, wird dieser Host trotzdem bei den Quorumberechnungen berücksichtigt. Wenn Sie beispielsweise einen Pool mit 3 Hosts haben und 2 von ihnen zwangsweise herunterfahren, wird der verbleibende Host eingezäunt, weil er kein Quorum mehr hat.

Versuchen Sie, Hosts in einem Clusterpool immer sauber herunterzufahren. Weitere Informationen finden Sie unter Verwalten Ihres Clusterpools.

Warum wurden alle Hosts im Clusterpool gleichzeitig neu gestartet?

Es wird davon ausgegangen, dass alle Hosts in einem aktiven Cluster das Quorum verloren haben, wenn die Anzahl der kontaktierbaren Hosts im Pool unter diesen Werten liegt:

  • 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 Clusterpool an. Weitere Informationen zum Quorum finden Sie unter Quorum.

In dieser Situation sperren sich alle Hosts automatisch ab und Sie sehen, wie alle Hosts neu gestartet werden.

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

  • Überprüfen Sie in XenCenter im Abschnitt Benachrichtigungen den Zeitpunkt des Problems, um festzustellen, ob Self-Fencing aufgetreten ist.
  • Überprüfen Sie /var/opt/xapi-clusterd/boot-times auf den Cluster-Hosts, um zu prüfen, ob zu einem unerwarteten Zeitpunkt ein Neustart stattgefunden hat.
  • Prüfen Sie unter Crit.log, ob Meldungen zur Selbstabschottung ausgegeben werden.
  • Informationen zum Fencing finden Sie in der Ausgabe des Befehls dlm_tool status.

    Beispielausgabe für dlm_tool status:

     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-->
    

Sammeln Sie beim Sammeln von Protokollen für das Debuggen Diagnoseinformationen von allen Hosts im Cluster. Wenn ein einzelner Host über eine eigene Umzäunung verfügt, verfügen die anderen Hosts im Cluster mit größerer Wahrscheinlichkeit über nützliche Informationen.

Erfassen Sie vollständige Serverstatusberichte für die Hosts in Ihrem Clusterpool. Weitere Informationen finden Sie unter Citrix Hypervisor Hostprotokolle.

Warum kann ich meinen Cluster-Pool nicht wiederherstellen, obwohl ich Quorum habe?

Wenn Sie einen Clusterpool mit einer geraden Anzahl von Hosts haben, ist die Anzahl der Hosts, die zum Erreichen des Quorums erforderlich sind, um eins höher als die Anzahl der Hosts, die für die Aufrechterhaltung des Quorums erforderlich sind. Weitere Informationen zum Quorum finden Sie unter Quorum.

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

Warum sehe ich einen Fehler Invalid token, wenn ich die Cluster-Einstellungen ändere?

Wenn Sie die Konfiguration Ihres Clusters aktualisieren, erhalten Sie möglicherweise die folgende Fehlermeldung über ein ungültiges Token ("[[\"InternalError\",\"Invalid token\"]]").

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

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

  2. Verwenden Sie XenCenter, um den GFS2 SR vom Clusterpool zu trennen.

    Klicken Sie auf der Registerkarte Poolspeicher 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 gewaltsam zu zerstören:

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

    1. Wählen Sie in der Werkzeugleiste Pool > Eigenschaftenaus.
    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 anzuschließen

    Klicken Sie auf der Registerkarte Poolspeicher mit der rechten Maustaste auf den GFS2 SR und wählen Sie Reparieren.

Problembehandlung bei Cluster-Pools