12.9. Dépannage des migrations de machines virtuelles


Si vous rencontrez l'un des problèmes suivants lors de la migration de machines virtuelles (VM), consultez les instructions fournies pour résoudre ou éviter le problème.

12.9.1. La migration en direct d'une VM prend beaucoup de temps sans se terminer

Cause

Dans certains cas, la migration d'une VM en cours d'exécution peut amener la VM à générer dirty memory pages plus rapidement qu'elle ne peut être migrée. Dans ce cas, la migration ne peut pas s'achever correctement.

Les scénarios suivants sont souvent à l'origine de ce problème :

  • Migration en direct d'une VM sous forte charge
  • Migration en direct d'une VM qui utilise une grande quantité de mémoire, par exemple 1 To ou plus

    Important

    Red Hat a testé avec succès la migration en direct de VMs ayant jusqu'à 6 TB de mémoire. Cependant, pour les scénarios de migration en direct qui impliquent des machines virtuelles avec plus de 1 TB de mémoire, les clients doivent contacter le support technique de Red Hat.

Diagnosis

Si la migration en direct de votre VM prend plus de temps que prévu, utilisez la commande virsh domjobinfo pour obtenir les données de la page mémoire de la VM :

# virsh domjobinfo vm-name

Job type:         Unbounded
Operation:        Outgoing migration
Time elapsed:     168286974    ms
Data processed:   26.106 TiB
Data remaining:   34.383 MiB
Data total:       10.586 TiB
Memory processed: 26.106 TiB
Memory remaining: 34.383 MiB
Memory total:     10.586 TiB
Memory bandwidth: 29.056 MiB/s
Dirty rate: 17225 pages/s
Page size: 4096 bytes

Dans cette sortie, la multiplication de Dirty rate et Page size est supérieure à Memory bandwidth, ce qui signifie que la VM génère des pages de mémoire sales plus rapidement que le réseau ne peut les migrer. Par conséquent, l'état de la VM sur l'hôte de destination ne peut pas converger avec l'état de la VM sur l'hôte source, ce qui empêche la migration de se terminer.

Fix

Pour améliorer les chances qu'une migration en direct bloquée se termine avec succès, vous pouvez prendre l'une des mesures suivantes :

  • Réduire la charge de travail de la VM, en particulier les mises à jour de la mémoire.

    • Pour ce faire, arrêtez ou annulez les processus non essentiels dans le système d'exploitation invité de la machine virtuelle source.
  • Augmenter le temps d'arrêt prévu pour la migration en direct :

    1. Affiche le temps d'arrêt maximum actuel à la fin d'une migration en direct pour la VM en cours de migration :

      # virsh migrate-getmaxdowntime vm-name
    2. Fixer un temps d'arrêt maximal plus élevé :

      # virsh migrate-setmaxdowntime vm-name downtime-in-miliseconds

      Plus le temps d'indisponibilité maximal est élevé, plus la migration a de chances de s'achever.

  • Passez la migration en direct en mode post-copy.

    # virsh migrate-start-postcopy vm-name
    • Cela permet de s'assurer que les pages de mémoire de la VM peuvent converger vers l'hôte de destination et que la migration peut s'achever.

      Cependant, lorsque le mode post-copie est actif, la VM peut ralentir de manière significative, en raison des demandes de pages distantes de l'hôte de destination vers l'hôte source. En outre, si la connexion réseau entre l'hôte source et l'hôte de destination cesse de fonctionner pendant la migration post-copie, certains processus de la VM peuvent s'arrêter en raison de pages de mémoire manquantes.

      Par conséquent, n'utilisez pas la migration post-copie si la disponibilité de la VM est critique ou si le réseau de migration est instable.

  • Si votre charge de travail le permet, suspendez la VM et laissez la migration se terminer comme une migration non-live. Cela augmente le temps d'arrêt de la VM, mais dans la plupart des cas, cela garantit que la migration se termine avec succès.

Prevention

La probabilité de réussir la migration d'une VM dépend des éléments suivants :

  • La charge de travail de la VM pendant la migration

    • Avant de commencer la migration, arrêtez ou annulez les processus non essentiels dans le système d'exploitation invité de la VM.
  • La bande passante du réseau que l'hôte peut utiliser pour la migration

    • Pour obtenir des résultats optimaux lors d'une migration en direct, la bande passante du réseau utilisé pour la migration doit être nettement supérieure au taux de génération de pages sales de la machine virtuelle. Pour savoir comment obtenir le taux de génération de pages sales de la VM, reportez-vous à la section Conditions préalables à la migration d'une machine virtuelle à l'aide de l'interface de ligne de commande.
    • L'hôte source et l'hôte de destination doivent disposer d'un contrôleur d'interface réseau (NIC) dédié à la migration. Pour la migration en direct d'une VM avec plus de 1 To de mémoire, Red Hat recommande une carte d'interface réseau avec une vitesse de 25 Gb/s ou plus.
    • Vous pouvez également spécifier la bande passante réseau affectée à la migration en direct en utilisant l'option --bandwidth lorsque vous lancez la migration. Pour la migration de très grandes machines virtuelles, attribuez autant de bande passante que possible pour votre déploiement.
  • Le mode de migration en direct

    • Le mode de migration par défaut pre-copy copie les pages de mémoire à plusieurs reprises si elles sont sales.
    • Post-copy la migration ne copie les pages de mémoire qu'une seule fois.

      Pour permettre à votre migration en direct de passer en mode post-copie si la migration se bloque, utilisez l'option --postcopy avec virsh migrate lors du démarrage de la migration.

  • Le temps d'arrêt spécifié pour le déploiement

    • Vous pouvez l'ajuster pendant la migration en utilisant virsh migrate-setmaxdowntime comme décrit précédemment.
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.