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 SR zu steuern.

Quorum

Jeder Host in einem Cluster muss immer mit mindestens der Hälfte der Hosts im Cluster (einschließlich sich selbst) kommunizieren. Dieser Zustand ist als Host mit Quorum bekannt.

Der Quorumwert für einen Pool mit ungerader Anzahl ist die Hälfte von eins plus die Gesamtzahl der Hosts im Cluster: (n+1) /2. Der Quorumwert für einen Pool mit gerader Anzahl entspricht der Hälfte der Gesamtzahl der Hosts im Cluster: n/2.

Bei einem Pool mit gerader Anzahl ist es möglich, dass der laufende Cluster genau in zwei Hälften geteilt wird. Der laufende Cluster entscheidet, welche Hälfte der Cluster-Selbstzäune und welche Hälfte des Clusters über ein Quorum verfügt. 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.

Wenn ein Host kein Quorum hat, zäunt dieser Host selbst.

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

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 Cluster-Pools 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.

  • Konfigurieren Sie die Hochverfügbarkeit im Cluster-Pool. In Cluster-Pools muss der Heartbeat-SR ein GFS2-SR sein. Weitere Informationen finden Sie unter Hochverfügbarkeit.

Erstellen eines Cluster-Pools

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

  • Alle Citrix Hypervisor-Server im Clusterpool müssen mindestens 2 GiB an Steuerdomänenspeicher haben.

  • 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, 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.

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

So verwenden Sie die xe CLI zum Erstellen eines Cluster-Pool:

  1. Erstellen Sie ein gebundenes Netzwerk, das als Clusternetzwerk verwendet werden kann. 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 mit dem folgenden Befehl ein Netzwerk zur Verwendung mit der verklebten NIC:

      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. Geben Sie durch Kommas getrennt die neu erstellte Netzwerk-UUID und die UUIDs der zu verklebenden 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 die gleiche 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, mit dem folgenden Befehl:

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

Sie können einen Cluster-Pool 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 Cluster-Pool

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.

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

Markieren Sie Hosts als tot

Wenn ein oder mehrere Offline-Hosts nicht wiederhergestellt werden können, können Sie sie als tot für den Cluster markieren. Wenn Hosts als tot markiert werden, werden sie dauerhaft aus dem Cluster entfernt. Nachdem Hosts als tot markiert wurden, werden sie nicht mehr auf den Quorumwert angerechnet.

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