Pools en cluster
Le clustering fournit des fonctionnalités supplémentaires requises pour les pools de ressources qui utilisent des SR GFS2. Pour plus d’informations sur GFS2, voir Configurer le stockage.
Un cluster est un pool d’hôtes Citrix Hypervisor qui sont plus étroitement connectés et coordonnés que les hôtes de 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 sous le nom d’hôte ayant quorum.
La valeur du 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 du quorum pour un pool pair est la moitié du nombre total d’hôtes dans le cluster : n/2.
Pour un pool pair, il est possible que le cluster en cours d’exécution soit divisé exactement en deux. Le cluster en cours d’exécution décide quelle moitié du cluster est auto-clôturée et quelle moitié du cluster possède le quorum. Lorsqu’un pool en cluster pair se met sous tension à la suite d’un démarrage à froid, (n/2) +1 hôtes doivent être disponibles pour que les hôtes atteignent le quorum. Une fois que les hôtes ont atteint le quorum, le cluster devient actif.
Si un hôte n’a pas le quorum, cet hôte se limite à lui-même.
Dans la mesure du possible, il est recommandé d’utiliser un nombre impair d’hôtes dans un pool en cluster, car cela garantit que les hôtes sont toujours en mesure de déterminer s’ils ont un quorate défini.
Auto-clôture
Si un hôte détecte qu’il n’a pas le quorum, il se bloque automatiquement en quelques secondes. Lorsqu’un hôte se bloque, il redémarre immédiatement. Toutes les machines virtuelles exécutées sur l’hôte sont immédiatement arrêtées en raison d’un arrêt brutal de l’hôte. 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. L’hôte qui s’est auto-clôturé redémarre et tente de rejoindre le cluster.
Si le nombre d’hôtes actifs dans le cluster devient inférieur à la valeur du quorum, tous les hôtes restants perdent le quorum.
Dans un scénario idéal, votre pool en cluster possède toujours plus d’hôtes actifs que nécessaire pour le quorum et Citrix Hypervisor ne se limite jamais. Pour rendre ce scénario plus probable, tenez compte des recommandations suivantes lors de la configuration de votre pool en cluster :
-
Assurez-vous de disposer d’une bonne redondance matérielle.
-
Utilisez un réseau lié dédié pour le réseau de clusters. Assurez-vous que les cartes réseau liées se trouvent sur le même segment L2. Pour plus d’informations, reportez-vous à la section Mise en réseau.
-
Configurez le multiacheminement du stockage entre le pool et le GFS2 SR. Pour plus d’informations, voir Multiacheminement de stockage.
-
Configurez la haute disponibilité sur le pool en cluster. Dans les pools en cluster, la SR de pulsation doit être une SR GFS2. Pour plus d’informations, consultez 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 du domaine de contrôle.
-
Tous les hôtes du cluster doivent utiliser des adresses IP statiques pour le réseau du cluster.
-
Nous vous recommandons de n’utiliser le clustering que dans les pools contenant au moins trois hôtes, car les pools de deux hôtes sont susceptibles d’isoler automatiquement 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 du cluster à l’aide des ports suivants :
- TCP : 8892, 21064
- UDP : 5404, 5405
Pour plus d’informations, consultez Ports de communication utilisés par les technologies Citrix.
-
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é une fois le clustering activé.
- Nous vous recommandons vivement d’utiliser un réseau lié pour votre pool en cluster qui n’est utilisé pour aucun autre trafic.
Si vous préférez, vous pouvez configurer le clustering sur votre pool à l’aide de XenCenter. Pour plus d’informations, consultez la documentation du produit XenCenter.
Pour utiliser l’interface de ligne de commande xe pour créer un pool en cluster :
-
Créez un réseau lié à utiliser comme réseau de clustering.
Remarque :
Nous vous recommandons vivement d’utiliser un réseau lié dédié pour votre pool en cluster. N’utilisez pas ce réseau pour d’autres trafics.
Sur le serveur Citrix Hypervisor dont vous souhaitez être le maître du pool, procédez comme suit :
-
Ouvrez une console sur le serveur Citrix Hypervisor.
-
Nommez votre pool de ressources à l’aide de la commande suivante :
xe pool-param-set name-label="New Pool" uuid=<pool_uuid>
-
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é.
-
Recherchez les UUID des PIF à utiliser dans la liaison à l’aide de la commande suivante :
xe pif-list
-
Créez votre réseau lié en mode actif-actif, en mode actif-passif ou en mode 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 à lier :xe bond-create network-uuid=<network_uuid> / pif-uuids=<pif_uuid_1>,<pif_uuid_2>,<pif_uuid_3>,<pif_uuid_4>
Saisissez 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 renvoyé après l’exécution de la commande.
-
Pour configurer la liaison en mode de liaison actif-passif ou LACP, utilisez la même syntaxe, ajoutez le
mode
paramètre facultatif et spécifiezlacp
ouactive-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
-
Une fois que vous avez créé votre réseau lié sur le maître du pool, lorsque vous joignez d’autres serveurs Citrix Hypervisor au pool, les informations de réseau et de liaison sont automatiquement répliquées sur le serveur de jonction.
Pour plus d’informations, reportez-vous à la section Mise en réseau.
-
-
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 de pool (non maître) :
- Ouvrez une console sur le serveur Citrix Hypervisor.
-
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 du paramètre
master-address
doit être définie sur le nom de domaine complet du serveur Citrix Hypervisor qui est le maître du pool. Lepassword
doit être le mot de passe administrateur défini lors de l’installation du pool master.
Pour plus d’informations, consultez Hôtes et pools de ressources.
-
Pour chaque PIF appartenant à ce réseau, définissez
disallow-unplug=true
.-
Recherchez les UUID des PIF appartenant au réseau à l’aide de la commande suivante :
xe pif-list
-
Exécutez la commande suivante sur un serveur Citrix Hypervisor de votre pool de ressources :
xe pif-param-set disallow-unplug=true uuid=<pif_uuid>
-
-
Activez le clustering sur votre pool. Exécutez la commande suivante sur un serveur Citrix Hypervisor de votre pool de ressources :
xe cluster-pool-create network-uuid=<network_uuid>
Fournissez l’UUID du réseau lié que vous avez créé lors d’une étape précédente.
Détruire un pool en cluster
Vous pouvez détruire un pool en cluster. Une fois que vous avez détruit un pool en cluster, le pool continue d’exister, mais n’est plus mis en cluster et ne peut plus utiliser les SR GFS2.
Pour détruire un pool en cluster, exécutez la commande suivante :
xe cluster-pool-destroy cluster-uuid=<uuid>
Gérer votre pool en cluster
Lors de la gestion de votre pool en cluster, les pratiques suivantes peuvent réduire le risque que le pool perde le quorum.
Assurez-vous que les hôtes sont correctement arrêtés
Lorsqu’un hôte est arrêté proprement, il est temporairement supprimé du cluster jusqu’à ce qu’il soit redémarré. Lorsque l’hôte est arrêté, il n’est pas pris en compte dans la valeur de quorum du cluster. L’absence de l’hôte n’entraîne pas la perte du quorum des autres hôtes.
Toutefois, si un hôte est arrêté de manière forcée ou inattendue, il n’est pas supprimé du cluster avant d’être mis hors ligne. Cet hôte est pris en compte dans la valeur de quorum du cluster. Son arrêt peut entraîner la perte du quorum d’autres hôtes.
Utiliser le mode maintenance
Avant de faire quelque chose sur un hôte qui pourrait entraîner la perte de quorum de cet hôte, mettez l’hôte en mode maintenance. Lorsqu’un hôte est en mode maintenance, les machines virtuelles en cours d’exécution sont migrées hors de celui-ci vers un autre hôte du pool. En outre, si cet hôte était le maître du pool, ce rôle est transmis à un autre hôte du pool. Si vos actions entraînent 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 maintenance sont toujours pris en compte dans la valeur du 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 maintenance. La modification de l’adresse IP d’un hôte entraîne la sortie de l’hôte du cluster. Lorsque l’adresse IP a été modifiée avec succès, l’hôte rejoint le cluster. Une fois que l’hôte a rejoint le cluster, vous pouvez le sortir du mode de maintenance.
Restaurer les hôtes qui se sont autogéré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 sont pris en compte dans le quorum du cluster et diminuent le nombre de membres du cluster joignables. 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.
La présence d’hôtes hors ligne dans votre cluster vous empêche également d’effectuer certaines actions. Dans un pool en cluster, chaque membre du pool doit accepter chaque changement d’adhésion au pool pour que le changement puisse être effectué. Si un membre du cluster n’est pas joignable, Citrix Hypervisor empêche les opérations qui modifient l’appartenance au cluster (telles que l’ajout ou la suppression d’hôtes).
Marquer les hôtes comme morts
Si un ou plusieurs hôtes hors ligne ne peuvent pas être récupérés, vous pouvez les marquer comme morts dans le cluster. Le fait de marquer les hôtes comme morts les supprime définitivement du cluster. Une fois que les hôtes sont marqués comme morts, ils ne sont plus pris en compte dans la valeur du quorum.
Contraintes
- Les pools en cluster ne prennent en charge que 16 hôtes par pool.
- Pour le trafic de cluster, vous devez utiliser un réseau lié qui utilise au moins deux commutateurs réseau différents. N’utilisez pas ce réseau à d’autres fins.
- Pour modifier l’adresse IP du réseau de cluster à l’aide de XenCenter, le clustering et GFS2 doivent être temporairement désactivés.
- 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.
- En cas de conflit d’adresse IP (plusieurs hôtes ayant la même adresse IP) sur votre réseau de clustering impliquant au moins un hôte sur lequel 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.