XenServer

Gérer les pannes de machines

Cette section fournit des détails sur la façon de récupérer après divers scénarios de panne. Tous les scénarios de récupération après panne nécessitent l’utilisation d’un ou plusieurs des types de sauvegarde répertoriés dans Sauvegarde.

Pannes des membres

En l’absence de HA, les nœuds coordinateurs de pool détectent les pannes des membres en recevant des messages de pulsation réguliers. Si aucune pulsation n’a été reçue pendant 600 secondes, le coordinateur de pool suppose que le membre est hors service. Il existe deux façons de résoudre ce problème :

  • Réparer l’hôte hors service (par exemple, en le redémarrant physiquement). Lorsque la connexion au membre est rétablie, le coordinateur de pool marque le membre comme étant de nouveau actif.

  • Arrêter l’hôte et demander au coordinateur de pool d’oublier le nœud membre à l’aide de la commande CLI xe host-forget. Une fois le membre oublié, toutes les machines virtuelles qui y étaient exécutées sont marquées comme 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 une corruption des données de la machine virtuelle pourrait se produire.

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

Avertissement :

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

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

Avertissement :

Une utilisation incorrecte de cette commande peut entraîner une corruption des données. N’utilisez cette commande qu’en cas de nécessité.

Avant de pouvoir démarrer des machines virtuelles sur un autre hôte XenServer, vous devez également libérer les verrous sur le stockage des machines virtuelles. Un seul hôte à la fois peut utiliser chaque disque dans un SR. Il est essentiel de rendre le disque accessible aux autres hôtes XenServer une fois qu’un hôte est tombé en panne. Pour ce faire, exécutez le script suivant sur le coordinateur de pool pour chaque SR contenant des disques de machines virtuelles affecté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 de pool SR au moment du crash. (Le coordinateur de pool SR est le coordinateur de pool ou un hôte XenServer utilisant le stockage local.)

Avertissement :

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

Si vous tentez de démarrer une VM sur un autre hôte XenServer avant d’exécuter le script resetvdis.py, vous recevrez le message d’erreur suivant : 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 prendre le rôle de coordinateur de pool si nécessaire. Lorsqu’un nœud coordinateur de pool tombe en panne, la séquence d’événements suivante se produit :

  1. Si la haute disponibilité (HA) est activée, un autre coordinateur de pool est élu automatiquement.

  2. Si la haute disponibilité (HA) n’est pas activée, chaque membre attend le retour du coordinateur de pool.

Si le coordinateur de pool redémarre à ce stade, il rétablit la communication avec ses membres et le fonctionnement redevient normal.

Si le coordinateur de pool est hors service, 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 de pool, exécutez la commande xe pool-recover-slaves et les membres pointeront alors vers le nouveau coordinateur de pool.

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

Lorsqu’un hôte XenServer membre est transformé en 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.

Défaillances du pool

Dans le cas malheureux où l’intégralité de votre pool de ressources tombe en panne, vous devez recréer la base de données du pool à partir de zéro. Assurez-vous de sauvegarder régulièrement les métadonnées de votre pool à l’aide de la commande CLI xe pool-dump-database (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 commande xe pool-restore-database (voir pool-restore-database).

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

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

Gérer les 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 corrompu :

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

    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 de la sauvegarde.

Défaillance de la machine physique

Si la machine hôte physique est tombée en panne, utilisez la procédure appropriée de la liste suivante pour la récupérer.

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 une mesure de sécurité. Le démarrage simultané d’une machine virtuelle sur deux hôtes différents entraînerait une grave corruption de disque. Si vous êtes sûr que les machines (et les machines virtuelles) sont hors ligne, vous pouvez réinitialiser l’état d’alimentation de la machine virtuelle à Halted :

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

Les machines virtuelles peuvent ensuite être redémarrées à l’aide de XenCenter ou de la CLI.

Pour remplacer un coordinateur de pool défaillant par un membre toujours en cours d’exécution :

  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.

Pour restaurer un pool dont tous les hôtes ont échoué :

  1. Exécutez la commande :

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

    Avertissement :

    Cette commande ne réussit que si la machine cible dispose d’un nombre approprié de cartes réseau nommées de manière appropriée.

  2. Si la machine cible a une vue différente du stockage par rapport à la machine d’origine, modifiez la configuration du stockage à l’aide de la commande pbd-destroy. Ensuite, utilisez la commande pbd-create pour recréer les configurations de stockage. Consultez commandes pbd pour la documentation de ces commandes.

  3. Si vous avez créé une configuration de stockage, utilisez pbd-plug ou l’é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 VMs.

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 :

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

    Cette commande tente de restaurer les métadonnées de la machine virtuelle sur la base du « meilleur effort ».

  3. Redémarrez toutes les VMs.

Gérer les pannes de machines