Configurer la haute disponibilité
La haute disponibilité tente de protéger la charge de travail de votre machine virtuelle en cas de défaillance de l’hôte ou du matériel.
Cet article décrit les tâches à effectuer pour configurer la haute disponibilité. Pour plus d’informations sur les concepts, les exigences et les comportements attendus de haute disponibilité, consultez Haute disponibilité.
1. Configurez votre pool pour une haute disponibilité
Pour qu’un pool soit compatible avec la haute disponibilité, il doit répondre à certaines exigences :
-
Assurez-vous que votre pool est homogène, contient trois hôtes ou plus et que tous les hôtes sont en ligne. Pour plus d’informations, voir Créer un pool.
-
Configurez une interface dédiée et liée pour le réseau de gestion du pool et assurez-vous que ce réseau autorise le trafic UDP sur le port 694. Pour plus d’informations, voir Créer des liaisons NIC dans les pools de ressources.
-
Configurez des adresses IP statiques pour tous les hôtes du pool.
-
Configurer un stockage partagé pour tous les hôtes du pool. Pour plus d’informations, voir Créer un SR.
-
Assurez-vous qu’un référentiel de stockage partagé dans le pool se trouve sur un LUN iSCSI, NFS ou Fibre Channel qui répond aux exigences suivantes :
- 4 Go ou plus de taille.
- Dispose d’une communication de stockage résiliente : pour les SR iSCSI et Fibre Channel, configurez le multivoie. Pour les SR NFS, utilisez un réseau lié résilient comme réseau de stockage.
Ce SR est utilisé comme SR de battement de cœur.
2. Préparez vos machines virtuelles pour la haute disponibilité
Effectuez ces étapes pour toutes les machines virtuelles de votre pool que vous souhaitez protéger avec une haute disponibilité :
-
Assurez-vous que la VM est agile :
-
Assurez-vous que ses disques virtuels sont sur un stockage partagé.
Si les disques ne sont pas sur un stockage partagé, utilisez la commande suivante pour les déplacer :
xe vm-copy uuid=<vm_uuid> new-name-label=<name_for_copy> sr-uuid=<uuid_of_sr>Définissez le
sr-uuidsur l’UUID du stockage partagé du pool. -
Assurez-vous que la machine virtuelle n’est pas connectée à un lecteur de DVD local.
-
Identifiez si la machine virtuelle ne dispose pas de lecteurs de CD/DVD vides en saisissant ce qui suit :
xe vbd-list type=CD empty=false vm-uuid=<vm_uuid> <!--NeedCopy-->S’il y a un lecteur connecté, cela renvoie ses informations. Notez le
uuid, qui est le premier élément de la liste. -
Pour vider les lecteurs CD/DVD de la VM, tapez ce qui suit :
xe vbd-eject uuid=<uuid> <!--NeedCopy-->
-
-
Assurez-vous que ses interfaces réseau virtuelles se trouvent sur des réseaux à l’échelle du pool.
-
Assurez-vous que la machine virtuelle répond aux exigences de la migration à chaud. Pour plus d’informations, consultez Exigences de migration.
-
-
Spécifiez un ensemble de priorités qui déterminent les machines virtuelles auxquelles est attribuée la priorité de redémarrage la plus élevée lorsqu’un pool est surchargé.
Définissez la valeur de
ha-restart-prioritysur l’une des options suivantes :-
redémarrerpour que la VM soit redémarrée sur un autre hôte du pool, à condition que le pool ne soit pas surchargé. XenServer réessaye ce redémarrage jusqu’à ce qu’il réussisse. -
meilleur effortpour faire une seule tentative de redémarrage de la VM sur un autre hôte du pool. XenServer effectue cette tentative uniquement après que toutes les machines virtuelles protégées ont été redémarrées avec succès.
Lors de la définition de la valeur pour l’ordre `` des machines virtuelles, définissez les machines virtuelles ayant la priorité la plus élevée pour avoir l’ordre de démarrage le plus bas. La valeur par défaut de ce paramètre est 0 et les machines virtuelles avec cet ordre de démarrage sont démarrées en premier.
xe vm-param-set uuid=<vm_uuid> ha-restart-priority=<priority> order=<start_order> <!--NeedCopy-->Vous pouvez plutôt utiliser XenCenter pour configurer ces paramètres sur vos machines virtuelles. Pour plus d’informations, voir Options de démarrage.
-
3. Activez la haute disponibilité sur votre pool XenServer
Vous pouvez activer la haute disponibilité sur un pool en utilisant XenCenter ou l’interface de ligne de commande (CLI). Pour plus d’informations sur l’utilisation de XenCenter pour activer la haute disponibilité, consultez Activer la haute disponibilité.
Pour activer la haute disponibilité à l’aide de la CLI xe :
-
Pour activer la haute disponibilité sur le pool et, éventuellement, spécifier un délai d’expiration, exécutez la commande suivante :
xe pool-ha-enable heartbeat-sr-uuids=<sr uuid> ha-config:timeout=<timeout_in_seconds> <!--NeedCopy-->Le délai d’expiration configuré par cette commande s’applique uniquement à cette activation de haute disponibilité. Si vous ne spécifiez pas de délai d’attente, la valeur par défaut est de 60 secondes. Pour modifier ce délai d’expiration par défaut pour votre pool, consultez Configurer le délai d’expiration de haute disponibilité.
-
Calculez le nombre maximal d’hôtes pouvant échouer avant que les ressources soient insuffisantes pour exécuter toutes les machines virtuelles protégées du pool en exécutant la commande suivante :
xe pool-ha-compute-max-host-failures-to-tolerate <!--NeedCopy-->Le nombre renvoyé correspond au nombre de pannes d’hôte actuellement possibles dans le pool sans perte de la garantie de vivacité pour les machines virtuelles protégées. Cette valeur peut changer en fonction des changements des conditions dans la piscine.
-
Spécifiez le nombre de pannes d’hôte à tolérer qui est inférieur ou égal à la valeur donnée par l’étape précédente.
xe pool-param-set ha-host-failures-to-tolerate=<failure_value> uuid=<pool uuid> <!--NeedCopy-->Le nombre d’échecs à tolérer détermine le moment où une alerte est envoyée. Le système recalcule un plan de basculement à mesure que l’état du pool change. Il utilise ce calcul pour identifier la capacité du pool et le nombre de pannes supplémentaires possibles sans perte de la garantie de vivacité pour les machines virtuelles protégées. Une alerte système est générée lorsque cette valeur calculée tombe en dessous de la valeur spécifiée.
Configurer le délai d’expiration de la haute disponibilité
Le délai d’attente est la période pendant laquelle le réseau ou le stockage n’est pas accessible par les hôtes de votre pool. Si un hôte XenServer ne parvient pas à accéder au réseau ou au stockage dans le délai imparti, il peut s’auto-isoler et redémarrer. Le délai d’expiration par défaut est de 60 secondes. Cependant, vous pouvez modifier cette valeur en définissant un délai d’expiration de haute disponibilité par défaut pour votre pool :
xe pool-param-set uuid=<pool uuid> other-config:default_ha_timeout=<timeout in seconds>
<!--NeedCopy-->
Si vous activez la haute disponibilité en utilisant XenCenter au lieu de la CLI xe, cette valeur par défaut s’applique toujours.
Supprimer la protection haute disponibilité d’une machine virtuelle
Pour désactiver les fonctionnalités de haute disponibilité pour une machine virtuelle, utilisez la commande suivante :
xe vm-param-set uuid=<vm_uuid> ha-restart-priority=
Cette commande conserve les paramètres d’ordre de démarrage. Vous pouvez réactiver la haute disponibilité pour cette machine virtuelle en définissant le paramètre ha-restart-priority sur restart ou best-effort selon le cas.
Configurer le comportement de redémarrage pour les machines virtuelles arrêtées proprement
Si une machine virtuelle est protégée par HA, elle est redémarrée par défaut à chaque fois qu’elle s’arrête. Ce comportement inclut le redémarrage de la machine virtuelle après son arrêt propre à partir du système d’exploitation invité.
Vous pouvez modifier ce comportement pour garantir que les machines virtuelles du pool compatible HA ne sont redémarrées qu’en cas de panne ou si l’hôte sur lequel elles s’exécutent échoue ou est clôturé, et qu’en cas d’arrêt propre, une machine virtuelle reste arrêtée.
Pour configurer les machines virtuelles protégées par HA afin qu’elles ne redémarrent pas automatiquement après un arrêt propre, définissez la valeur ha-reboot-vm-on-internal-shutdown sur false:
xe pool-param-set uuid=<pool_uuid> ha-reboot-vm-on-internal-shutdown=false
Pour configurer les machines virtuelles protégées par HA afin qu’elles redémarrent automatiquement après un arrêt propre, définissez la valeur ha-reboot-vm-on-internal-shutdown sur true:
xe pool-param-set uuid=<pool_uuid> ha-reboot-vm-on-internal-shutdown=true
Récupérer un hôte inaccessible
Si, pour une raison quelconque, un hôte ne peut pas accéder au fichier d’état de haute disponibilité, il est possible qu’un hôte devienne inaccessible. Pour récupérer votre installation XenServer, vous devrez peut-être désactiver la haute disponibilité à l’aide de la commande host-emergency-ha-disable sur l’hôte :
xe host-emergency-ha-disable --force
<!--NeedCopy-->
Si l’hôte était le coordinateur du pool, il démarre normalement avec la haute disponibilité désactivée. Les membres du pool se reconnectent et désactivent automatiquement la haute disponibilité. Si l’hôte était membre du pool et ne peut pas contacter le coordinateur du pool, vous devrez peut-être effectuer l’une des actions suivantes :
-
Forcer l’hôte à redémarrer en tant que coordinateur de pool (
xe pool-emergency-transition-to-master)xe pool-emergency-transition-to-master uuid=<host uuid> <!--NeedCopy--> -
Dites à l’hôte où se trouve le nouveau coordinateur de pool (
xe pool-emergency-reset-master) :xe pool-emergency-reset-master master-address=<new pool coordinator hostname> <!--NeedCopy-->
Une fois tous les hôtes redémarrés avec succès, réactivez la haute disponibilité :
xe pool-ha-enable heartbeat-sr-uuid=<sr uuid>
<!--NeedCopy-->
Arrêter un hôte lorsque la haute disponibilité est activée
Soyez particulièrement prudent lors de l’arrêt ou du redémarrage d’un hôte pour éviter que le mécanisme de haute disponibilité ne suppose que l’hôte est en panne. Pour arrêter proprement un hôte lorsque la haute disponibilité est activée, désactivez l’hôte, évacuez l’hôte et enfin arrêtez l’hôte à l’aide de XenCenter ou de la CLI. Pour arrêter un hôte dans un environnement où la haute disponibilité est activée, exécutez ces commandes :
xe host-disable host=<host name>
xe host-evacuate uuid=<host uuid>
xe host-shutdown host=<host name>
<!--NeedCopy-->
Arrêter une VM protégée par une haute disponibilité
Lorsqu’une machine virtuelle est protégée par un plan de haute disponibilité et configurée pour redémarrer automatiquement, elle ne peut pas être arrêtée tant que cette protection est active. Pour arrêter une machine virtuelle, désactivez d’abord sa protection haute disponibilité, puis exécutez la commande CLI.
xe vm-param-set uuid=<vm_uuid> ha-restart-priority=
xe vm-shutdown uuid=<vm_uuid>
<!--NeedCopy-->
XenCenter vous propose une boîte de dialogue pour automatiser la désactivation de la protection lorsque vous sélectionnez le bouton Arrêter d’une VM protégée.
Remarque :
Si vous arrêtez une machine virtuelle depuis l’invité et que la machine virtuelle est protégée, elle est automatiquement redémarrée dans des conditions d’échec de haute disponibilité. Le redémarrage automatique permet de garantir qu’une erreur de l’opérateur n’entraîne pas l’arrêt accidentel d’une machine virtuelle protégée. Si vous souhaitez arrêter cette machine virtuelle, désactivez d’abord sa protection haute disponibilité.
Dans cet article
- 1. Configurez votre pool pour une haute disponibilité
- 2. Préparez vos machines virtuelles pour la haute disponibilité
- 3. Activez la haute disponibilité sur votre pool XenServer
- Configurer le délai d’expiration de la haute disponibilité
- Supprimer la protection haute disponibilité d’une machine virtuelle
- Configurer le comportement de redémarrage pour les machines virtuelles arrêtées proprement
- Récupérer un hôte inaccessible
- Arrêter un hôte lorsque la haute disponibilité est activée
- Arrêter une VM protégée par une haute disponibilité