Citrix XenServer - Pools et haute disponibilité (HA)

Page 5 / 5

12. Configurer la HA : haute disponibilité

La haute disponibilité permet de configurer votre pool de serveur de façon à obtenir le maximum de disponibilité pour vos différents services.
Grâce à la HA, lorsqu'un serveur sera indisponible ou en panne, les machines virtuelles impactées pourront être redémarrées automatiquement sur un autre serveur du pool, si cela est possible.
De plus, vous pourrez aussi gérer l'ordre de démarrage de vos machines virtuelles pour pouvoir, par exemple, lancer votre serveur DNS local avant d'autres machines virtuelles qui en dépendraient.

Comme indiqué par Citrix, la HA devrait toujours être utilisée avec :
- le stockage supportant des trajets multiples : multipathed storage (multipathing)
- des réseaux liés (cartes réseau liées) : bonded networking

Pour le multipathing, nous l'avons déjà activé et c'est la raison pour laquelle nous avons finalement utilisé un stockage iSCSI qui supporte cette technologie.
Il ne reste donc que le "bonded networking" à configurer.

12.1. Liaison des réseaux (cartes réseau) de vos serveurs XenServer

Que vos serveurs XenServer soient membres d'un pool ou non, vous pourrez dans tous les cas lier vos cartes réseau entre elles pour bénéficier d'une plus grande bande passante et/ou pour faire de la tolérance de panne.
Dans ce cas-ci, Citrix précise que les réseaux liés devraient toujours être utilisés avec la HA et c'est pour cette raison que nous allons le mettre en place.

Comme indiqué en intro de ce tutoriel, nos 2 serveurs XenServer possèdent 2 cartes réseau chacun.

Pour lier les réseaux (et donc aussi les cartes réseau) d'un serveur XenServer, sélectionnez-le, puis allez dans l'onglet "NICs" (qui signifie "interfaces réseau", autrement dit : cartes réseau).
Ensuite, sélectionnez une carte réseau et cliquez sur Create Bond.

Comme vous pouvez le voir, XenServer vous propose 4 types de réseaux liés :
- Active-active : augmentation de la bande passante du serveur + tolérance de panne. (Les 2 cartes réseau doivent être connectées sur le même switch.)
- Active-passive : tolérance de panne uniquement (fail-over support) pour tous les modes de trafic. (Les 2 cartes réseau doivent être connectées sur le même switch.)
- LACP with load balancing based on IP and port of source and destination
- LACP with load balancing based on source MAC address

Sources :
- Active/Active : XCP NIC Bonding
- Active/Passive : Network Interface Card Bonds in XenServer - Characteristics Active/Passive or Active/Backup

Etant donné que l'on modifie les interfaces réseau, la connexion à votre pool sera temporairement indisponible (quelques secondes).

Une fois créé, vous verrez un Bond x+x apparaitre dans les onglets NICs et Networking de votre serveur XenServer.

Pour les autres serveurs du pool, il est possible que le Bond se soit créé automatiquement suite au Bond que vous aurez effectué sur un des serveurs du pool.

12.2. Configuration des VM pour être agiles

Pour que vos VM soient agiles, vous devez :
- éviter de laisser un CD dans le lecteur virtuel de la VM
- utiliser les réseaux partagés (shared network).

Pour retirer le CD présent dans le lecteur CD de la VM (si tel est le cas), il suffit de sélectionner la VM, allez dans l'onglet "Console" et de cliquer sur le lien "Eject".

Pour les réseaux partagés, il s'agit d'utiliser le nouveau réseau "Bond 0+1" créé précédemment sur nos serveurs XenServer.
Etant donné que nous avions créé et installé la VM AVANT de lier les réseaux de nos serveurs XenServer, la VM ne démarre plus et HA vous indiquera que la VM n'est pas agile pour la raison "The vm is not using a shared network".

Pour régler ce souci, sélectionnez la VM installée précédemment et allez dans l'onglet "Networking" de celle-ci.
Supprimez les réseaux listés.

Ajoutez une nouvelle interface.

Sélectionnez le réseau "Bond 0+1" et cliquez sur Add.
Note : si vous ouvrez la liste, vous verrez que les 2 autres réseaux (Network 0 et 1) n'y sont plus.

Et voilà, notre machine utilise le nouveau réseau de notre serveur XenServer.
Maintenant, votre VM est agile et pourra être redémarrée sur n'importe quel serveur du pool.

12.3. Activer la HA : haute disponibilité

Pour activer la HA, vous devez posséder un partage iSCSI, NFS ou Fibre Channel LUN d'au moins 356 Mo :
- 4 Mo pour le heartbeat
- 256 pour le volume metadata

Dans notre cas, nous possédons un partage iSCSI de 80 Go sur lequel nous avons déjà stocké les fichiers de notre machine virtuelle.
Comme les pré-requis sont déjà remplis, sélectionnez votre pool, allez dans l'onglet "HA" et cliquez sur : Configure HA.

L'assistant de configuration de la HA s'affiche.
Comme vous pouvez le voir, l'assistant signale aussi que vos VM doivent être agiles. (D'où la modification effectuée précédemment.)

Sélectionnez le stockage partagé où vous souhaitez stocker le heartbeat de la HA.

A l'étape "HA Plan", vous pourrez choisir ce que vous voulez faire avec chacune de vos machines virtuelles :
- si il faut en redémarrer obligatoirement
- si il faut en redémarrer (si c'est possible). Les autres seront donc prioritaires par rapport à celles-ci.
- si il ne faut pas les redémarrer.
- dans quel ordre les redémarrer. Par exemple : des serveurs Windows Server dépendant d'un Active Directory.
- si il faut attendre x secondes (le temps qu'une autre VM spécifique démarre) avant de redémarrer la VM souhaitée.
- le nombre maximum de serveurs qui pourra tomber en panne. Tout dépend des ressources (RAM, ...) de vos serveurs XenServer, du nombre de machines virtuelles que vous possédez et du nombre de serveurs XenServer que vous possédez dans ce pool.

L'assistant affiche un résumé de la configuration.

Patientez pendant l'activation de la HA.

Une fois activée, vous pourrez consulter l'état des heartbeats concernant le réseau et la connexion au serveur iSCSI pour les serveurs XenServer de votre pool.
Notez que le statut "Error" (ou autre erreur) risque de s'afficher pendant plusieurs secondes après l'activation de la HA. Pas de soucis, patientez 30 secondes, et le statut passera à Healthy (en vert).

12.4. Tester la HA

Démarrez une VM de test sur un des serveurs XenServer du pool protégé par la HA.

Puis, une fois lancée, déconnectez les câbles réseau du serveur XenServer.
Notez que cela va provoquer un redémarrage automatique (mais pas brutal) du serveur XenServer concerné.

Après 30 secondes, voire une minute, XenCenter va considérer que le serveur est définitivement inaccessible ou en panne et va donc chercher un nouveau serveur maître après 60 secondes.

Patientez, et XenCenter se reconnectera automatiquement sur un des autres serveurs XenServer de votre pool.
Notez que le serveur déconnecté du réseau sera en statut "Disabled" dans XenCenter.

Patientez encore un peu et vous remarquerez que votre VM apparaitra sur un de vos autres serveurs XenServer.
Et celle-ci démarrera automatiquement.

Bien entendu, étant donné que XenServer n'est pas en mesure de sauvegarder la mémoire vive dans le partage réseau (iSCSI ou NFS), la VM redémarrera, mais son arrêt aura été brutal.
D'où l'écran de récupération d'erreurs affiché par Windows au redémarrage.
Sélectionnez "Démarrer Windows normalement" et appuyez sur Enter (mais ça, vous le savez).

Et Windows terminera son démarrage.

Si vous regardez dans les alertes et les évenements de XenCenter, vous remarquerez plusieurs choses.

Dans les évenements :
- perdu la connexion avec votre pool de serveur
- qu'il a cherché automatiquement un nouveau serveur maître parmi ceux de votre pool
- et qu'il s'est connecté à un de vos autres serveurs

Dans les alertes, vous verrez que :
- le serveur maître du pool a changé. (xenserver-2 est le nouveau serveur maître)
- le serveur 1 est considéré comme en panne (inaccessible)
- et la tolérance de panne a baissée de 1 (1 serveur en panne) et qu'elle est arrivée à 0.
Du coup, au prochain serveur inaccessible, les services ne pourront plus être assurés correctement.

12.5. Désactiver la HA pour arrêter les serveurs

Lorsque la HA est activée, vous ne pourrez plus mettre en maintenance le serveur maître du pool.

Si vous voulez arrêter vos serveurs, pour une opération de maintenance ou parce que votre entreprise est en vacances, vous devrez d'abord désactiver la HA.
Pour cela, sélectionnez votre pool et allez dans l'onglet HA.
Ensuite, cliquez sur Disable HA.

Cliquez sur Yes.

Une fois désactivée, vous pourrez mettre en maintenance vos serveurs XenServer.
Notez que lorsque vous souhaitez mettre en maintenance le serveur maître du pool, XenCenter vous demandera de désigner un autre serveur du pool comme nouveau serveur maître.

Pour le dernier serveur, il suffira de laisser la liste vide.

Maintenant, il suffit d'arrêter les serveurs comme d'habitude en cliquant sur Shut Down.
Un conseil : terminez par le serveur maître (qui est aussi en maintenance) pour éviter d'être déconnecté trop souvent.

Cliquez sur : Yes, Shut Down.

13. Conclusion

Bref, grâce à ce tutoriel complet, vous aurez pu :

  • créer un pool (homogène ou hétérogène) de serveurs XenServer
  • gérer de manière optimale la tolérance de pannes (cartes réseau doublées (bonded networking), haute disponibilité (HA), possibilité de déplacer des machines virtuelles d'un serveur à l'autre, ...).