Citrix Hypervisor

Clusterpools

Clustering bietet zusätzliche Funktionen, die für Ressourcenpools erforderlich sind, die GFS2-SRs verwenden. Weitere Informationen zu GFS2 finden Sie unter Konfigurieren des Speichers.

Ein Cluster ist ein Pool von Citrix Hypervisor Hosts, die enger miteinander verbunden und koordiniert sind als Hosts in nicht geclusterten Pools. Die Hosts im Cluster kommunizieren ständig miteinander in einem ausgewählten Netzwerk. Alle Hosts im Cluster kennen den Status jedes Hosts im Cluster. Diese Host-Koordination ermöglicht es dem Cluster, den Zugriff auf den Inhalt des GFS2-SRs zu steuern.

Hinweis:

Die Clustering-Funktion kommt nur Pools zugute, die eine GFS2-SR enthalten. Wenn Ihr Pool keine GFS2-SR enthält, aktivieren Sie das Clustering in Ihrem Pool nicht.

Quorum

Jeder Host in einem Cluster muss immer mit der Mehrheit der Hosts im Cluster kommunizieren (einschließlich sich selbst). Dieser Zustand ist als Host mit Quorum bekannt. Wenn ein Host kein Quorum hat, grenzt dieser Host sich selbst ein.

Die Anzahl der Hosts, die miteinander kommunizieren müssen, um das Quorum zu erreichen, kann sich von der Anzahl der Hosts unterscheiden, die ein Cluster benötigt, um das Quorum aufrechtzuerhalten.

Die folgende Tabelle fasst dieses Verhalten zusammen. Der Wert von n ist die Gesamtzahl der Hosts im Clusterpool.

  Anzahl der Hosts, die zum Erreichen des Quorums erforderlich sind Anzahl der Hosts, die erforderlich sind, um quoriert zu bleiben
Ungerade Anzahl von Hosts im Pool (n+1)/2 (n+1)/2
Gerade Anzahl der Hosts im Pool (n/2)+1 n/2

Pools mit ungerader Nummerierung

Um den Quorumwert für einen Pool mit ungerader Nummer zu erreichen, benötigen Sie die Hälfte von eins mehr als die Gesamtzahl der Hosts im Cluster: (n+1) /2. Dies ist auch die Mindestanzahl von Hosts, die erreichbar bleiben müssen, damit der Pool quorat bleibt.

In einem Clusterpool mit 5 Hosts müssen beispielsweise 3 Hosts erreichbar sein, damit der Cluster sowohl aktiv wird als auch quorat bleibt [(5+1) /2 = 3].

Wenn möglich, wird empfohlen, eine ungerade Anzahl von Hosts in einem Clusterpool zu verwenden, da dies sicherstellt, dass Hosts immer feststellen können, ob sie über einen Quoratssatz verfügen.

Pools mit geraden Nummern

Wenn ein Pool mit gerader Anzahl von einem Kaltstart hochgefahren wird, müssen (n/2) +1 Hosts verfügbar sein, bevor die Hosts über ein Quorum verfügen. Nachdem die Hosts das Quorum haben, wird der Cluster aktiv.

Ein aktiver Pool mit gerader Nummer kann jedoch quorat bleiben, wenn die Anzahl der kontaktierbaren Hosts mindestens n/2 beträgt. Daher ist es möglich, dass ein laufender Cluster mit einer geraden Anzahl von Hosts exakt in zwei Hälften aufgeteilt wird. Der laufende Cluster entscheidet, welche Hälfte der Cluster-Selbstzäune und welche Hälfte des Clusters über ein Quorum verfügt. Die Hälfte des Clusters, die den Knoten mit der niedrigsten ID enthält, der vor der Clusteraufteilung als aktiv angesehen wurde, bleibt aktiv, und die andere Hälfte des Clusters grenzt sich selbst ab.

In einem Clusterpool mit 4 Hosts müssen beispielsweise 3 Hosts erreichbar sein, damit der Cluster aktiv wird [4/2 + 1 = 3]. Nachdem der Cluster aktiv ist, müssen nur 2 Hosts kontaktiert werden können, um quorat zu bleiben [4/2 = 2], und diese Gruppe von Hosts muss den Host mit der niedrigsten Knoten-ID enthalten, von der bekannt ist, dass sie aktiv ist.

Fechten

Wenn ein Host feststellt, dass er kein Quorum hat, zäunt er sich innerhalb weniger Sekunden selbst ein. Wenn ein Host sich selbst zäunt, wird er sofort neu gestartet. Alle virtuellen Maschinen, die auf dem Host ausgeführt werden, werden sofort angehalten, da der Host einen Hard-Shutdown durchführt. In einem Clusterpool, der Hochverfügbarkeit verwendet, startet Citrix Hypervisor die VMs entsprechend ihrer Neustartkonfiguration für andere Poolmitglieder neu. Der Host, der sich selbst eingezäunt hat, wird neu gestartet und versucht, dem Cluster erneut beizutreten.

Wenn die Anzahl der Live-Hosts im Cluster unter dem Quorumwert liegt, verlieren alle verbleibenden Hosts das Quorum.

In einem idealen Szenario verfügt Ihr Clusterpool immer über mehr Live-Hosts als für Quorum erforderlich sind, und Citrix Hypervisor umfasst niemals Zäune. Um dieses Szenario wahrscheinlicher zu machen, sollten Sie beim Einrichten Ihres Clusterpools die folgenden Empfehlungen berücksichtigen:

  • Stellen Sie eine gute Hardwareredundanz sicher.

  • Verwenden Sie ein dediziertes Bonded Network für das Cluster-Netzwerk. Stellen Sie sicher, dass sich die gebundenen NICs auf demselben L2-Segment befinden. Weitere Informationen finden Sie unter Netzwerk.

  • Konfigurieren Sie das Speicher-Multipathing zwischen dem Pool und dem GFS2-SR. Weitere Informationen finden Sie unter Speicher-Multipathing.

Erstellen eines Clusterpools

Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:

  • Alle Citrix Hypervisor-Server im Clusterpool müssen über mindestens 2 GiB Kontrolldomänenspeicher verfügen.

  • Alle Hosts im Cluster müssen statische IP-Adressen für das Cluster-Netzwerk verwenden.

  • Es wird empfohlen, Clustering nur in Pools mit mindestens drei Hosts zu verwenden, da Pools von zwei Hosts empfindlich auf das Selbst-Fencing des gesamten Pools reagieren.

  • Wenn Sie eine Firewall zwischen den Hosts in Ihrem Pool haben, stellen Sie sicher, dass Hosts über die folgenden Ports im Cluster-Netzwerk kommunizieren können:
    • TCP: 8892, 8896, 21064
    • UDP: 5404, 5405

    Weitere Informationen finden Sie unter Kommunikationsports, die von Citrix Technologien verwendet werden.

  • Wenn Sie einen vorhandenen Pool clustern, stellen Sie sicher, dass die Hochverfügbarkeit deaktiviert ist. Sie können die Hochverfügbarkeit erneut aktivieren, nachdem das Clustering aktiviert wurde.

  • Wir empfehlen dringend, dass Sie für Ihren Clusterpool ein gebundenes Netzwerk verwenden, das nicht für anderen Datenverkehr verwendet wird.

Wenn Sie möchten, können Sie mit XenCenter Clustering in Ihrem Pool einrichten. Weitere Informationen finden Sie in der XenCenter-Produktdokumentation.

So verwenden Sie die xe CLI zum Erstellen eines Clusterpool:

  1. Erstellen Sie ein gebundenes Netzwerk, das als Clusternetzwerk verwendet werden kann.

    Hinweis:

    Wir empfehlen dringend, ein dediziertes gebundenes Netzwerk für Ihren Clusterpool zu verwenden. Verwenden Sie dieses Netzwerk nicht für anderen Datenverkehr.

    Führen Sie auf dem Citrix Hypervisor-Server, der der Poolmaster sein soll, die folgenden Schritte aus:

    1. Öffnen Sie eine Konsole auf dem Citrix Hypervisor-Server.

    2. Benennen Sie Ihren Ressourcenpool mit dem folgenden Befehl:

      xe pool-param-set name-label="New Pool" uuid=<pool_uuid>
      
    3. Erstellen Sie ein Netzwerk zur Verwendung mit der gebundenen NIC, indem Sie den folgenden Befehl verwenden:

      xe network-create name-label=bond0
      

      Die UUID des neuen Netzwerks wird zurückgegeben.

    4. Suchen Sie die UUIDs der PIFs, die in der Bindung verwendet werden sollen, indem Sie den folgenden Befehl verwenden:

      xe pif-list
      
    5. Erstellen Sie Ihr gebundenes Netzwerk entweder im aktiv-aktiven Modus, im aktiv-passiven Modus oder im LACP-Bond-Modus. Führen Sie je nach dem Bond-Modus, den Sie verwenden möchten, eine der folgenden Aktionen aus:

      • Um die Bindung im Aktiv-Aktiv-Modus (Standard) zu konfigurieren, verwenden Sie den Befehl bond-create, um die Bindung zu erstellen. Trennen Sie die Parameter durch Kommas und geben Sie die neu erstellte Netzwerk-UUID und die UUIDs der zu verbindenden PIFs an:

         xe bond-create network-uuid=<network_uuid> /
              pif-uuids=<pif_uuid_1>,<pif_uuid_2>,<pif_uuid_3>,<pif_uuid_4>
        

        Geben Sie zwei UUIDs ein, wenn Sie zwei NICs und vier UUIDs verbinden, wenn Sie vier Netzwerkkarten verbinden. Die UUID für die Bindung wird nach Ausführung des Befehls zurückgegeben.

      • Um die Bindung im Aktiv-Passiv- oder LACP-Bond-Modus zu konfigurieren, verwenden Sie dieselbe Syntax, fügen Sie den optionalen Parameter mode hinzu und geben Sie lacp oder active-backup an:

         xe bond-create network-uuid=<network_uuid> pif-uuids=<pif_uuid_1>, /
              <pif_uuid_2>,<pif_uuid_3>,<pif_uuid_4> /
              mode=balance-slb | active-backup | lacp
        

    Nachdem Sie Ihr gebundenes Netzwerk auf dem Poolmaster erstellt haben und andere Citrix Hypervisor-Server mit dem Pool verbinden, werden die Netzwerk- und Bindungsinformationen automatisch auf den beitretenden Server repliziert.

    Weitere Informationen finden Sie unter Netzwerk.

  2. Erstellen Sie einen Ressourcenpool mit mindestens drei Citrix Hypervisor-Servern.

    Wiederholen Sie die folgenden Schritte auf jedem Citrix Hypervisor-Server, der ein (Nicht-Master-) Poolmitglied ist:

    1. Öffnen Sie eine Konsole auf dem Citrix Hypervisor-Server.
    2. Verbinden Sie den Citrix Hypervisor-Server mit dem Pool auf dem Poolmaster, indem Sie den folgenden Befehl verwenden:

      xe pool-join master-address=master_address master-username=administrators_username master-password=password
      

      Der Wert des Parameters master-address muss auf den vollqualifizierten Domänennamen des Citrix Hypervisor-Servers festgelegt werden, der der Poolmaster ist. password muss das Administratorkennwort sein, das bei der Installation des Poolmasters festgelegt wurde.

    Weitere Informationen finden Sie unter Hosts und Ressourcenpools.

  3. Stellen Sie für jedes PIF, das zu diesem Netzwerk gehört, ein disallow-unplug=true.

    1. Suchen Sie die UUIDs der PIFs, die zum Netzwerk gehören, indem Sie den folgenden Befehl verwenden:

      xe pif-list
      
    2. Führen Sie den folgenden Befehl auf einem Citrix Hypervisor-Server in Ihrem Ressourcenpool aus:

      xe pif-param-set disallow-unplug=true uuid=<pif_uuid>
      
  4. Aktivieren Sie das Clustering in Ihrem Pool. Führen Sie den folgenden Befehl auf einem Citrix Hypervisor-Server in Ihrem Ressourcenpool aus:

    xe cluster-pool-create network-uuid=<network_uuid>
    

    Geben Sie die UUID des gebundenen Netzwerks an, das Sie in einem früheren Schritt erstellt haben.

Zerstören eines Clusterpool

Sie können einen Clusterpool löschen. Nachdem Sie einen Clusterpool gelöscht haben, besteht der Pool weiterhin, ist jedoch nicht mehr geclustert und kann keine GFS2-SRs mehr verwenden.

Um einen Clusterpool zu löschen, führen Sie den folgenden Befehl aus:

xe cluster-pool-destroy cluster-uuid=<uuid>

Verwalten Sie Ihren Clusterpool

Bei der Verwaltung Ihres geclusterten Pools können die folgenden Vorgehensweisen das Risiko verringern, dass der Pool das Quorum verliert.

Stellen Sie sicher, dass Hosts sauber heruntergefahren werden

Wenn ein Host sauber heruntergefahren wird, wird er vorübergehend aus dem Cluster entfernt, bis er neu gestartet wird. Während der Host heruntergefahren wird, wird er nicht auf den Quorumwert des Clusters angerechnet. Die Abwesenheit des Hosts führt nicht dazu, dass andere Hosts das Quorum verlieren.

Wenn ein Host jedoch zwangsweise oder unerwartet heruntergefahren wird, wird er nicht aus dem Cluster entfernt, bevor er offline geht. Dieser Host wird auf den Quorumwert des Clusters angerechnet. Sein Herunterfahren kann dazu führen, dass andere Hosts das Quorum verlieren.

Wenn ein Host zwangsweise heruntergefahren werden muss, überprüfen Sie zunächst, wie viele Live-Hosts sich im Cluster befinden. Sie können dies mit dem Befehl tun corosync-quorumtool. In der Befehlsausgabe ist die Anzahl der Live-Hosts der Wert Total votes: und die Anzahl der Live-Hosts, die zur Aufrechterhaltung des Quorums erforderlich sind, ist der Wert Quorum:.

  • Wenn die Anzahl der Live-Hosts der Anzahl der Hosts entspricht, die benötigt werden, um die Quoration aufrechtzuerhalten, sollten Sie den Host nicht zwangsweise herunterfahren. Dadurch wird der gesamte Cluster eingezäunt.

    Versuchen Sie stattdessen, andere Hosts wiederherzustellen und die Anzahl der Live-Hosts zu erhöhen, bevor Sie den Host zwangsweise herunterfahren.

  • Wenn die Anzahl der Live-Hosts in etwa der Anzahl der Hosts entspricht, die benötigt werden, um die Quoration aufrechtzuerhalten, können Sie den Host zwangsweise herunterfahren. Dadurch ist der Cluster jedoch anfälliger für ein vollständiges Fencing, wenn andere Hosts im Pool Probleme haben.

Versuchen Sie immer, den heruntergefahrenen Host so schnell wie möglich neu zu starten, um die Resilienz Ihres Clusters zu erhöhen.

Wartungsmodus verwenden

Bevor Sie etwas auf einem Host tun, das dazu führen könnte, dass dieser Host das Quorum verliert, versetzen Sie den Host in den Wartungsmodus. Wenn sich ein Host im Wartungsmodus befindet, werden laufende VMs von ihm auf einen anderen Host im Pool migriert. Wenn dieser Host der Poolmaster war, wird diese Rolle auch an einen anderen Host im Pool übergeben. Wenn Ihre Aktionen dazu führen, dass sich ein Host im Wartungsmodus selbst abgrenzt, verlieren Sie keine VMs und verlieren keine XenCenter-Verbindung zum Pool.

Hosts im Wartungsmodus werden immer noch auf den Quorumwert für den Cluster angerechnet.

Sie können die IP-Adresse eines Hosts, der Teil eines Clusterpools ist, nur ändern, wenn sich dieser Host im Wartungsmodus befindet. Durch das Ändern der IP-Adresse eines Hosts verlässt der Host den Cluster. Wenn die IP-Adresse erfolgreich geändert wurde, tritt der Host dem Cluster wieder bei. Nachdem der Host dem Cluster wieder beigetreten ist, können Sie ihn aus dem Wartungsmodus entfernen.

Stellen Sie Hosts wieder her, die selbst eingezäunt sind oder offline sind

Es ist wichtig, Hosts wiederherzustellen, die sich selbst eingezäunt haben. Während diese Cluster-Mitglieder offline sind, werden sie auf die Quorumnummer für den Cluster angerechnet und verringern die Anzahl der Cluster-Mitglieder, die kontaktiert werden können. Diese Situation erhöht das Risiko eines nachfolgenden Hostausfalls, der dazu führt, dass der Cluster das Quorum verliert und vollständig heruntergefahren wird.

Wenn Sie Offline-Hosts in Ihrem Cluster haben, können Sie auch bestimmte Aktionen ausführen. In einem Clusterpool muss jedes Mitglied des Pools jeder Änderung der Poolmitgliedschaft zustimmen, bevor die Änderung erfolgreich sein kann. Wenn ein Clustermitglied nicht kontaktierbar ist, verhindert Citrix Hypervisor Vorgänge, die die Clustermitgliedschaft ändern (z. B. Host-Hinzufügen oder Entfernen des Hosts).

Hosts als nicht wiederherstellbar markieren

Wenn ein oder mehrere Offline-Hosts nicht wiederhergestellt werden können, können Sie den Clusterpool anweisen, sie zu vergessen. Diese Hosts werden dauerhaft aus dem Pool entfernt. Nachdem Hosts aus dem Pool entfernt wurden, zählen sie nicht mehr zum Quorumwert.

Verwenden Sie den folgenden Befehl, um einen Host als nicht wiederherstellbar zu markieren:

xe host-forget uuid=<host_uuid>

Stellen Sie einen vergessenen Host wieder her

Nachdem ein Cluster-Pool angewiesen wurde, einen Host zu vergessen, kann der Host nicht wieder zum Pool hinzugefügt werden.

Um dem Clusterpool wieder beizutreten, müssen Sie XenServer auf dem Host neu installieren, damit er als neuer Host im Pool angezeigt wird. Sie können den Host dann wie gewohnt mit dem Cluster-Pool verbinden.

Problembehandlung bei Ihrem Cluster-Pool

Wenn Probleme mit Ihrem Clusterpool auftreten, finden Sie weitere Informationen unter Problembehandlung bei Cluster-Pools.

Einschränkungen

  • Clusterpools unterstützen nur bis zu 16 Hosts pro Pool.
  • Für den Cluster-Verkehr müssen Sie ein gebundenes Netzwerk verwenden, das mindestens zwei verschiedene Netzwerk-Switches verwendet. Verwenden Sie dieses Netzwerk nicht für andere Zwecke.
  • Um die IP-Adresse des Cluster-Netzwerks mithilfe von XenCenter zu ändern, müssen Clustering und GFS2 vorübergehend deaktiviert werden.
  • Ändern Sie nicht die Bindung Ihres Clusternetzwerks, während der Cluster aktiv ist und über laufende VMs verfügt. Diese Aktion kann zum Fence des Clusters führen.
  • Wenn Sie in Ihrem Clusternetzwerk einen IP-Adresskonflikt (mehrere Hosts mit derselben IP-Adresse) haben, an dem mindestens ein Host mit aktiviertem Clustering beteiligt ist, werden die Hosts nicht eingezäunt. Um dieses Problem zu beheben, lösen Sie den IP-Adresskonflikt.
Clusterpools