Pools en cluster

Le clustering fournit des fonctionnalités supplémentaires requises pour les pools de ressources qui utilisent les SR GFS2. Pour plus d’informations sur GFS2, reportez-vous à la sectionConfigurer le stockage.

Un cluster est un pool d’hôtes Citrix Hypervisor qui sont plus étroitement connectés et coordonnés que les pools non en cluster. Les hôtes du cluster maintiennent une communication constante entre eux sur un réseau sélectionné. Tous les hôtes du cluster connaissent l’état de chaque hôte du cluster. Cette coordination de l’hôte permet au cluster de contrôler l’accès au contenu du GFS2 SR.

Quorum

Chaque hôte d’un cluster doit toujours être en communication avec au moins la moitié des hôtes du cluster (y compris lui-même). Cet état est connu comme un hôte ayant quorum.

La valeur de quorum pour un pool impair est la moitié d’un plus le nombre total d’hôtes dans le cluster : (n + 1) / 2. La valeur de quorum pour un pool de nombres pairs est la moitié du nombre total d’hôtes dans le cluster : n/2.

Pour un pool à numéro pair, il est possible que le cluster en cours d’exécution se divise exactement en deux. Le cluster en cours d’exécution décide quelle moitié des auto-clôtures du cluster et quelle moitié du cluster a quorum. Lorsqu’un pool en cluster à numéro pair se met en marche à partir d’un démarrage à froid, (n/2) + 1 hôtes doivent être disponibles avant que les hôtes aient le quorum. Une fois que les hôtes ont quorum, le cluster devient actif.

Si un hôte n’a pas de quorum, cet hôte s’auto-clôture.

Auto-clôtures

Si un hôte détecte qu’il n’a pas de quorum, il s’auto-clôture en quelques secondes. Lorsqu’un hôte s’auto-clôture, il redémarre immédiatement. Toutes les machines virtuelles exécutées sur l’hôte sont tuées car l’hôte effectue un arrêt dur. Dans un pool en cluster qui utilise la haute disponibilité, Citrix Hypervisor redémarre les machines virtuelles en fonction de leur configuration de redémarrage sur les autres membres du pool. Hôte auto-clôturé redémarre et tente de rejoindre le cluster.

Si le nombre d’hôtes en direct dans le cluster devient inférieur à la valeur de quorum, tous les hôtes restants perdent le quorum.

Dans un scénario idéal, votre pool en cluster a toujours plus d’hôtes en direct que requis pour quorum et Citrix Hypervisor ne clôtures jamais. Pour rendre ce scénario plus probable, tenez compte des recommandations suivantes lors de la configuration de votre pool en cluster :

  • Assurez-vous que vous disposez d’une bonne redondance matérielle.

  • Utilisez un réseau lié dédié pour le réseau de cluster. Assurez-vous que les cartes réseau liées sont sur le même segment L2. Pour de plus amples informations, consultez la section Gestion des réseaux.

  • Configurez le multiacheminement de stockage entre le pool et le GFS2 SR. Pour de plus amples informations, consultez la section Multiacheminement de stockage.

  • Configurez la haute disponibilité sur le pool en cluster. Dans les pools groupés, la fréquence cardiaque SR doit être une SR GFS2. Pour de plus amples informations, consultez la section Haute disponibilité.

Créer un pool en cluster

Avant de commencer, assurez-vous que les conditions préalables suivantes sont remplies :

  • Tous les serveurs Citrix Hypervisor du pool en cluster doivent disposer d’au moins 2 Gio de mémoire de domaine de contrôle.

  • Tous les hôtes du cluster doivent utiliser des adresses IP statiques pour le réseau de cluster.

  • Nous vous recommandons d’utiliser le clustering uniquement dans les pools contenant au moins trois hôtes, car les pools de deux hôtes sont sensibles à l’auto-clôture de l’ensemble du pool.

  • Si vous disposez d’un pare-feu entre les hôtes de votre pool, assurez-vous que les hôtes peuvent communiquer sur le réseau de cluster à l’aide des ports suivants :
    • TCP : 8892, 21064
    • UDP : 5404, 5405

    Pour de plus amples informations, consultez la section Ports de communication utilisés par Citrix Technologies.

  • Si vous mettez en cluster un pool existant, assurez-vous que la haute disponibilité est désactivée. Vous pouvez réactiver la haute disponibilité après l’activation du clustering.

Si vous préférez, vous pouvez configurer le clustering sur votre pool à l’aide de XenCenter. Pour plus d’informations, consultez la Documentation produit XenCenter.

Pour utiliser l’interface de ligne de commande xe pour créer un pool en cluster :

  1. Créez un réseau lié à utiliser comme réseau de clustering. Sur le serveur Citrix Hypervisor que vous souhaitez être le maître de pool, procédez comme suit :

    1. Ouvrez une console sur le serveur Citrix Hypervisor.

    2. Nommez votre pool de ressources à l’aide de la commande suivante :

      xe pool-param-set name-label="New Pool" uuid=<pool_uuid>
      
    3. Créez un réseau à utiliser avec la carte réseau liée à l’aide de la commande suivante :

      xe network-create name-label=bond0
      

      L’UUID du nouveau réseau est renvoyé.

    4. Recherchez les UUID des PIF à utiliser dans la liaison à l’aide de la commande suivante :

      xe pif-list
      
    5. Créez votre réseau lié en mode actif-actif, actif-passif ou liaison LACP. Selon le mode de liaison que vous souhaitez utiliser, effectuez l’une des actions suivantes :

      • Pour configurer la liaison en mode actif-actif (par défaut), utilisez la commande bond-create pour créer la liaison. À l’aide de virgules pour séparer les paramètres, spécifiez l’UUID réseau nouvellement créé et les UUID des PIF à coller :

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

        Tapez deux UUID lorsque vous liez deux cartes réseau et quatre UUID lorsque vous liez quatre cartes réseau. L’UUID de la liaison est retourné après l’exécution de la commande.

      • Pour configurer la liaison en mode actif-passif ou liaison LACP, utilisez la même syntaxe, ajoutez le paramètre facultatif mode et spécifiez lacp ou active-backup :

         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
        

    Après avoir créé votre réseau lié sur le maître de pool, lorsque vous joignez d’autres serveurs Citrix Hypervisor au pool, les informations réseau et liaison sont automatiquement répliquées sur le serveur de jointure.

    Pour de plus amples informations, consultez la section Gestion des réseaux.

  2. Créez un pool de ressources d’au moins trois serveurs Citrix Hypervisor.

    Répétez les étapes suivantes sur chaque serveur Citrix Hypervisor qui est un membre du pool (non maître) :

    1. Ouvrez une console sur le serveur Citrix Hypervisor.
    2. Joignez le serveur Citrix Hypervisor au pool sur le maître de pool à l’aide de la commande suivante :

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

      La valeur dumaster-address paramètre doit être définie sur le nom de domaine complet du serveur Citrix Hypervisor qui est le maître de pool. Lepassword doit être le mot de passe administrateur défini lors de l’installation du maître de pool.

    Pour de plus amples informations, consultez la section Hôtes et pools de ressources.

  3. Pour chaque PIF appartenant à ce réseau, définissezdisallow-unplug=true.

    1. Recherchez les UUID des PIF appartenant au réseau à l’aide de la commande suivante :

      xe pif-list
      
    2. Exécutez la commande suivante sur un serveur Citrix Hypervisor dans votre pool de ressources :

      xe pif-param-set disallow-unplug=true uuid=<pif_uuid>
      
  4. Activez le clustering sur votre pool. Exécutez la commande suivante sur un serveur Citrix Hypervisor dans votre pool de ressources :

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

    Indiquez l’UUID du réseau lié que vous avez créé lors d’une étape antérieure.

Gérer votre pool en cluster

Lors de la gestion de votre pool en cluster, les pratiques suivantes peuvent réduire le risque de perte du quorum du pool.

Assurez-vous que les hôtes sont correctement fermés

Lorsqu’un hôte est correctement arrêté, il est temporairement supprimé du cluster jusqu’à ce qu’il soit redémarré. Lorsque l’hôte est arrêté, il ne compte pas dans la valeur de quorum du cluster. L’absence de l’hôte n’entraîne pas la perte du quorum d’autres hôtes.

Toutefois, si un hôte est arrêté de façon forcée ou inattendue, il n’est pas supprimé du cluster avant qu’il ne se déconnecte. Cet hôte compte dans la valeur de quorum du cluster. Son arrêt peut entraîner la perte de quorum d’autres hôtes.

Utiliser le mode de maintenance

Avant de faire quelque chose sur un hôte qui pourrait entraîner la perte du quorum de cet hôte, mettez l’hôte en mode de maintenance. Lorsqu’un hôte est en mode de maintenance, les machines virtuelles en cours d’exécution sont migrées vers un autre hôte du pool. En outre, si cet hôte était le maître de pool, ce rôle est transmis à un autre hôte du pool. Si vos actions provoquent l’auto-clôture d’un hôte en mode maintenance, vous ne perdez aucune machine virtuelle ni votre connexion XenCenter au pool.

Les hôtes en mode de maintenance comptent toujours dans la valeur de quorum du cluster.

Vous ne pouvez modifier l’adresse IP d’un hôte qui fait partie d’un pool en cluster que lorsque cet hôte est en mode de maintenance. La modification de l’adresse IP d’un hôte entraîne l’hôte à quitter le cluster. Lorsque l’adresse IP a été modifiée avec succès, l’hôte rejoint le cluster. Une fois que l’hôte rejoint le cluster, vous pouvez le sortir du mode de maintenance.

Récupérer les hôtes qui se sont auto-clôturés ou qui sont hors ligne

Il est important de récupérer les hôtes qui se sont auto-clôturés. Lorsque ces membres du cluster sont hors ligne, ils comptent dans le nombre de quorum pour le cluster et diminuent le nombre de membres du cluster qui peuvent être contactés. Cette situation augmente le risque d’une défaillance ultérieure de l’hôte entraînant la perte du quorum et l’arrêt complet du cluster.

Le fait d’avoir des hôtes hors connexion dans votre cluster vous empêche également d’effectuer certaines actions. Dans un pool groupé, chaque membre du pool doit accepter chaque changement d’appartenance au pool avant que le changement puisse être réussi. Si un membre du cluster n’est pas contactable, Citrix Hypervisor empêche les opérations qui modifient l’appartenance au cluster (comme l’ajout d’hôte ou la suppression d’hôte).

Marquer les hôtes comme morts

Si un ou plusieurs hôtes hors connexion ne peuvent pas être récupérés, vous pouvez les marquer comme morts dans le cluster. Marquer les hôtes comme morts les supprime définitivement du cluster. Une fois les hôtes marqués comme morts, ils ne comptent plus dans la valeur du quorum.

Contraintes

  • Les pools en cluster ne prennent en charge que 16 hôtes par pool.
  • Si un réseau a été utilisé à la fois pour la gestion et le clustering, vous ne pouvez pas séparer le réseau de gestion sans recréer le cluster.
  • La modification de l’adresse IP du réseau de cluster à l’aide de XenCenter nécessite la mise en cluster et la désactivation temporaire de GFS2.
  • Ne modifiez pas la liaison de votre réseau de clustering lorsque le cluster est actif et dispose de machines virtuelles en cours d’exécution. Cette action peut entraîner la clôture du cluster.
  • Si vous avez un conflit d’adresses IP (plusieurs hôtes ayant la même adresse IP) sur votre réseau de clustering impliquant au moins un hôte dont le clustering est activé, les hôtes ne sont pas clôturés. Pour résoudre ce problème, résolvez le conflit d’adresse IP.