XenServer

Faire face aux défaillances des machines

Cette section fournit des détails sur la procédure de reprise après différents scénarios de défaillance. Tous les scénarios de reprise après incident nécessitent l’utilisation d’un ou de plusieurs des types de sauvegarde répertoriés dans Sauvegarde.

Échecs des membres

En l’absence de HA, les nœuds coordinateurs de pool détectent les défaillances des membres en recevant régulièrement des messages de pulsation. Si aucun battement de cœur n’a été reçu pendant 600 secondes, le coordinateur du pool suppose que le membre est mort. Il existe deux méthodes pour résoudre ce problème :

  • Réparez l’hôte mort (par exemple, en le redémarrant physiquement). Lorsque la connexion au membre est rétablie, le coordinateur du pool marque à nouveau le membre comme actif.

  • Arrêtez l’hôte et demandez au coordinateur du pool d’oublier le nœud membre à l’aide de la commande xe host-forget CLI. Une fois le membre oublié, toutes les machines virtuelles qui y étaient exécutées sont marquées comme étant hors ligne et peuvent être redémarrées sur d’autres hôtes XenServer.

    Il est important de s’assurer que l’hôte XenServer est réellement hors ligne, sinon les données de la machine virtuelle risquent de se corrompre.

    Ne divisez pas votre pool en plusieurs pools d’un même hôte en utilisant xe host-forget. Cette action peut entraîner le mappage du même stockage partagé et la corruption des données de la machine virtuelle.

Avertissement :

  • Si vous comptez utiliser à nouveau l’hôte oublié comme hôte actif, effectuez une nouvelle installation du logiciel XenServer.
  • N’utilisez pas la commande xe host-forget si HA est activée sur le pool. Désactivez d’abord HA, puis oubliez l’hôte, puis réactivez HA.

Lorsqu’un hôte XenServer membre tombe en panne, il se peut que des machines virtuelles soient toujours enregistrées en cours d’exécution. Si vous êtes sûr que l’hôte XenServer membre est définitivement hors service, utilisez la commande xe vm-reset-powerstate CLI pour définir l’état d’alimentation des machines virtuelles sur. halted Voir vm-reset-powerstatepour plus de détails.

Avertissement :

Une utilisation incorrecte de cette commande peut entraîner une corruption des données. N’utilisez cette commande que si nécessaire.

Avant de démarrer des machines virtuelles sur un autre hôte XenServer, vous devez également déverrouiller le stockage des machines virtuelles. Chaque disque d’une SR ne peut être utilisé que sur un hôte à la fois. Il est essentiel de rendre le disque accessible aux autres hôtes XenServer en cas de défaillance d’un hôte. Pour ce faire, exécutez le script suivant sur le coordinateur du pool pour chaque SR contenant les disques de toutes les machines virtuelles concernées : /opt/xensource/sm/resetvdis.py host_UUID SR_UUID master

Vous n’avez besoin de fournir la troisième chaîne (« master ») que si l’hôte défaillant était le coordinateur du pool SR au moment du crash. (Le coordinateur du pool SR est le coordinateur du pool ou un hôte XenServer utilisant le stockage local.)

Avertissement :

Assurez-vous que l’hôte est hors service avant d’exécuter cette commande. Une utilisation incorrecte de cette commande peut entraîner une corruption des données.

Si vous essayez de démarrer une machine virtuelle sur un autre hôte XenServer avant d’exécuter le resetvdis.py script, le message d’erreur suivant s’affiche :. VDI <UUID> already attached RW

Défaillances du coordinateur de pool

Chaque membre d’un pool de ressources contient toutes les informations nécessaires pour assumer le rôle de coordinateur de pool si nécessaire. En cas de défaillance d’un nœud de coordinateur de pool, la séquence d’événements suivante se produit :

  1. Si HA est activé, un autre coordinateur de pool est automatiquement élu.

  2. Si HA n’est pas activé, chaque membre attend le retour du coordinateur de pool.

Si le coordinateur du pool revient à ce stade, il rétablit la communication avec ses membres et le fonctionnement revient à la normale.

Si le coordinateur de pool est mort, choisissez l’un des membres et exécutez la commande xe pool-emergency-transition-to-master dessus. Une fois qu’il est devenu le coordinateur du pool, exécutez la commande xe pool-recover-slaves et les membres pointent désormais vers le nouveau coordinateur du pool.

Si vous réparez ou remplacez l’hôte qui était le coordinateur du pool d’origine, vous pouvez simplement l’ouvrir, installer le logiciel XenServer et l’ajouter au pool. Étant donné que les hôtes XenServer du pool sont tenus d’être homogènes, il n’est pas vraiment nécessaire de faire de l’hôte remplacé le coordinateur du pool.

Lorsqu’un hôte XenServer membre devient coordinateur de pool, vérifiez que le référentiel de stockage de pool par défaut est défini sur une valeur appropriée. Cette vérification peut être effectuée à l’aide de la commande xe pool-param-list et en vérifiant que le paramètre default-SR pointe vers un référentiel de stockage valide.

Pannes de pool

Dans le cas malheureux où l’ensemble de votre pool de ressources échoue, vous devez recréer la base de données de pool à partir de zéro. Veillez à sauvegarder régulièrement les métadonnées de votre pool à l’aide de la commande xe pool-dump-database CLI (voir pool-dump-database).

Pour restaurer un pool complètement défaillant :

  1. Installez un nouvel ensemble d’hôtes. Ne les regroupez pas à ce stade.

  2. Pour l’hôte désigné comme coordinateur de pool, restaurez la base de données du pool à partir de votre sauvegarde à l’aide de la xe pool-restore-database commande (voir pool-restore-database).

  3. Connectez-vous au coordinateur du pool à l’aide de XenCenter et assurez-vous que l’ensemble de votre stockage partagé et de vos machines virtuelles sont à nouveau disponibles.

  4. Effectuez une opération de jonction de pool sur les hôtes membres fraîchement installés restants et démarrez vos machines virtuelles sur les hôtes appropriés.

Faire face aux défaillances dues à des erreurs de configuration

Si la machine hôte physique est opérationnelle mais que le logiciel ou la configuration de l’hôte est endommagé :

  1. Exécutez la commande suivante pour restaurer le logiciel hôte et la configuration :

    xe host-restore host=host file-name=hostbackup
    <!--NeedCopy-->
    
  2. Redémarrez sur le CD d’installation de l’hôte et sélectionnez Restaurer à partir d’une sauvegarde

Panne physique des machines

Si la machine hôte physique est défaillante, suivez la procédure appropriée de la liste suivante pour effectuer la restauration.

Avertissement :

toutes les machines virtuelles exécutées sur un membre précédent (ou l’hôte précédent) qui ont échoué sont toujours marquées comme Running dans la base de données. Ce comportement est pour des raisons de sécurité. Le démarrage simultané d’une machine virtuelle sur deux hôtes différents entraînerait une grave corruption du disque. Si vous êtes sûr que les machines (et les machines virtuelles) sont hors connexion, vous pouvez réinitialiser l’état d’alimentation de la machine virtuelle sur Halted :

xe vm-reset-powerstate vm=vm_uuid --force

les machines virtuelles peuvent ensuite être redémarrées à l’aide de XenCenter ou de l’interface de ligne de commande.

Pour remplacer un coordinateur de pool défaillant par un membre toujours actif :

  1. Exécutez les commandes suivantes :

    xe pool-emergency-transition-to-master
    xe pool-recover-slaves
    <!--NeedCopy-->
    
  2. Si les commandes réussissent, redémarrez les machines virtuelles.

La restauration d’un pool avec tous les hôtes a échoué :

  1. Exécutez la commande :

    xe pool-restore-database file-name=backup
    <!--NeedCopy-->
    

    Avertissement :

    Cette commande n’aboutit que si la machine cible possède un nombre approprié de cartes réseau nommées correctement.

  2. Si la machine cible a une vue du stockage différente de celle de la machine d’origine, modifiez la configuration du stockage à l’aide de la commande pbd-destroy. Utilisez ensuite la commande pour recréer les configurations de stockage pbd-create. Voir les commandes pbdpour la documentation de ces commandes.

  3. Si vous avez créé une configuration de stockage, utilisez l’ pbd-plug élément de menu Stockage > Réparer le référentiel de stockage dans XenCenter pour utiliser la nouvelle configuration.

  4. Redémarrez toutes les machines virtuelles.

Pour restaurer une machine virtuelle lorsque le stockage de la machine virtuelle n’est pas disponible :

  1. Exécutez la commande suivante :

    xe vm-import filename=backup metadata=true
    <!--NeedCopy-->
    
  2. Si l’importation des métadonnées échoue, exécutez la commande suivante :

    xe vm-import filename=backup metadata=true --force
    <!--NeedCopy-->
    

    Cette commande tente de restaurer les métadonnées de la machine virtuelle « au mieux ».

  3. Redémarrez toutes les machines virtuelles.

Faire face aux défaillances des machines