vMotion vous permet de migrer une machine virtuelle en direct d’un serveur physique à un autre. Cela signifie que vous n’avez pas besoin de temps d’arrêt pour effectuer la maintenance de l’hôte vSphere et qu’il est également possible, sans temps d’arrêt, d’équilibrer les machines virtuelles sur un cluster sans avoir besoin de les éteindre.
VMware prend également en charge vMotion longue distance et vMotion cross-vCenter, ce qui vous permet de migrer des charges de travail vers un autre centre de données ou le cloud. Cela permet d’éviter les catastrophes lorsqu’une menace est imminente, d’exécuter des charges de travail dans un fuseau horaire spécifique et d’utiliser l’éclatement du cloud si vous commencez à manquer de ressources.
Avant d’implémenter vMotion, assurez-vous d’avoir suffisamment de mémoire et de bande passante réseau pour prendre en charge le processus de migration, vos machines virtuelles sont optimisées pour la migration en direct et vous savez comment la fonctionnalité fonctionne dans l’infrastructure.
Exigences de migration vMotion live
Presque toutes les éditions de vSphere contiennent vMotion ; seul le kit vSphere Essentials ne prend pas en charge cette fonctionnalité. vMotion est un processus entre deux hôtes ESXi, mais il est initié via vCenter, il nécessite donc une licence vCenter.
Le reste des exigences – telles que la bande passante réseau et la RAM – ne sont pas très exigeantes. La migration se fait entre deux hôtes ESXi qui doivent avoir une interface VMkernel avec la fonctionnalité vMotion activée et peuvent se rejoindre via une connexion réseau.
Pour les machines virtuelles que vous décidez de migrer, l’exigence est qu’elles restent dans le même réseau de couche 2. Il y a une bande passante minimale requise de 250 Mbps par migration vMotion, mais il est préférable d’avoir plus de bande passante disponible.
La bande passante plus disponible signifie que vous pouvez effectuer des migrations plus rapidement, ce qui est le plus important avec les machines virtuelles avec de grandes quantités de RAM.
Fonctionnement de vMotion
Pour déplacer la machine virtuelle vers un autre ordinateur physique, vous devez déplacer le contenu de la mémoire et basculer les flux de travail de traitement vers l’autre ordinateur. vCenter lance vMotion et démarre la migration après une vérification de compatibilité avec l’hôte ESXi source et de destination.
Le processus commence par une copie initiale de la mémoire via le réseau compatible vMotion. L’image ci-dessous montre où vous devez copier 16 Go de RAM pour une machine virtuelle avec la quantité de mémoire requise.
Idéalement, cette étape serait instantanée. Mais il faut plusieurs secondes pour copier 16 Go, et au cours de ce processus, certaines pages de mémoire dans la mémoire source changent. Le VMkernel suit les pages modifiées, puis les copie sur l’hôte de destination.
Considérez que ce serait un autre gigaoctet de RAM. Pendant que vous copiez ces 16 Go, la mémoire change à nouveau. Cela devient un processus itératif, comme le montre l’image ci-dessous.
Après plusieurs itérations, vous devriez avoir copié la plupart de la mémoire et il reste une quantité qui peut être copiée en moins de 500 millisecondes. Si vous pouvez atteindre ce point en raison de l’évolution rapide de la RAM source, la machine virtuelle ralentira la source avec Étourdissement Lors de l’envoi de la page pour permettre de copier toute la mémoire.
Une bande passante suffisante est l’exigence la plus importante pour les grandes machines virtuelles. Par exemple, copier une machine virtuelle de 768 Go sur un lien de 1 Gbit/s prend trop de temps pour atteindre un point de basculement stable.
C’est une bonne idée d’avoir un réseau vMotion dédié avec 10 Gbps ou plus et plusieurs cartes réseau. Plusieurs ports VMkernel sont également recommandés si vous effectuez plusieurs migrations simultanément ou si vous migrez de grandes machines virtuelles.
Une fois que vous avez copié la mémoire, le traitement des instructions s’arrête sur l’hôte ESXi source et se poursuit sur l’hôte ESXi de destination. Du point de vue du système d’exploitation invité, rien ne s’est passé car toutes les instructions sont traitées, mais sur un autre hôte.
Vous devez agir sur le réseau car le trafic réseau doit être envoyé à l’hôte ESXi de destination – et non à l’hôte ESXi source. L’hôte ESXi de destination envoie un paquet de protocole de résolution d’adresse inversée au commutateur physique, ce qui déclenche le processus d’apprentissage MAC pour répertorier l’adresse MAC de la machine virtuelle sur le port sortant sur lequel vous connectez l’hôte ESXi.
Maintenant, la charge de travail est migrée de manière transparente et vous pouvez affirmer en toute sécurité que vous pouvez déplacer n’importe quelle application compatible TCP sans interruption.
Améliorations et considérations
Au fil des ans, la plupart des améliorations apportées à vMotion ont été mises en œuvre en raison de spécifications de machines virtuelles en constante augmentation. C’est le cas de vSphere 7, où dans la mise à jour 2, vous pouvez configurer une machine virtuelle avec un maximum de 896 vCPU et 24 To de RAM.
VMware a apporté d’importantes améliorations dans vSphere 7 U1 à la façon dont VMkernel lance le processus qui suit les modifications des pages mémoire pendant le processus de copie de la mémoire.
La fonction d’installation de Trace de page lâche élimine le besoin de bloquer tous les VCPU lorsque vous insérez un traceur de page. Il consacre un vCPU pour effectuer ce processus afin que tous les autres vCPU puissent continuer à exécuter les instructions du système d’exploitation invité.
Une autre amélioration est que le processus de la machine virtuelle est déjà basculé avant de déplacer toute la mémoire vers sa destination. La mémoire de l’autre hôte est marquée comme distante et est récupérée plus tard.
Si vous concevez et dimensionnez correctement vos hôtes et composants réseau, vMotion ne présente aucun inconvénient majeur.