Migration à chaud de machines virtuelles avec VMware vSphere et le vMotion
Sommaire
I. Présentation
- Le vMotion, c’est quoi ?
Le vMotion est un module de la suite VMware vSphere qui permet de migrer des machines virtuelles à chaud sans qu’il y ait d’interruption de service. Bien entendu, il est possible également de migrer à froid une machine virtuelle.
- Migration à chaud ? à froid ?
La migration à chaud signifie que l’on déplace en temps réel - c'est-à-dire pendant qu’elle est en fonctionnement – une machine virtuelle d’un hôte ESX physique vers un autre. A l’inverse, la migration à froid signifie que l’on déplace la machine virtuelle d’un hôte ESX vers l’autre lorsqu’elle est éteinte. Dans ce tutoriel nous verrons, comme son nom l’indique, la migration à chaud.
- Que faut-il pour la migration à chaud ?
Pour pouvoir effectuer une migration à chaud d’une machine virtuelle d’un hôte ESX vers un autre, il faut que la machine virtuelle soit stockée sur une banque de données qui est commune aux hôtes ESX. Par exemple, la banque de données peut être un partage réseau de type NFS.
Pour rappel, une banque de données est un conteneur qui permet de stocker des objets d’inventaires (par exemple : hôtes ESX) mais aussi, et surtout, des machines virtuelles. Ce conteneur peut être un disque dur interne à votre serveur, un stockage NFS,…
De plus, il est conseillé d’isoler la partie vMotion du LAN pour bien séparer les flux d’informations qui transitent sur le réseau, en utilisant une carte réseau pour le LAN et une carte réseau pour la partie vMotion ou, éventuellement, vous pouvez essayer en créant des VLANs sur un vSwitch (switch virtuel). Il est préférable que les liaisons entre les hôtes ESX et le stockage partagé soient en Gigabit/s pour optimiser les performances (au cas où elles ne le sont pas, vMotion vous avertira que c’est mieux d’être en gigabit/s).
En ce qui concerne le réseau, en plus d’utiliser des liaisons en gigabit/s, il faut utiliser un vSwitch avec un VMKernel utilisé pour le vMotion (il faudra préciser que l’on veut l’utiliser sur ce VMKernel).
Pour finir, la fonction de vMotion doit être présente dans la licence « installée » sur chaque hôte ESX pour pouvoir profiter de cette fonction. Dans ce tutoriel nous avons utilisé une version d'évaluation.
- Dans quel état doit être la machine virtuelle pour être migré ?
Pour pouvoir migrer à chaud une machine virtuelle, elle ne doit pas avoir de snapshot en cours (pour voir ce qu’est un snapshot visitez ce tuto : les snapshots avec VMware).
Par ailleurs, il est important d’éviter de laisser montée une image ISO sur une VM, ou de monter le lecteur DVD de l’hôte que l’on utilise en local avec le client vSphere parce que cela peut être difficile à gérer pour le second ESX qui est susceptible d’accueillir la VM en cas de migration. En effet, si l’hôte qui doit accueillir la machine en migration ne connaît pas le chemin vers l’ISO ou le lecteur CD monté dans l’autre ESX cela créera des erreurs (qui vous seront indiquées lors de la validation avant le lancement de la migration).
- Avec ou sans serveur vCenter ?
Vous ne pouvez pas utiliser vMotion si vous ne disposez pas d’un serveur vCenter étant donné que seul le serveur vCenter permet de gérer plusieurs hôtes ESX. Si vous vous connecter avec le client vSphere directement sur l’ESX les fonctionnalités sont limité.
- Comment sont gérées les étiquettes réseaux ?
Pour rappel, les étiquettes réseaux ce sont les noms que vous donnez à vos groupes de ports de machines virtuelles ou VMKernel dans les vSwitchs. Lorsque vous connectez une VM à un réseau, vous sélectionnez dans la liste le groupe de ports de machines virtuelles auquel elle doit être connectée, cela grâce à son nom. Cependant, si sur l’hôte ESX 1 la VM est connectée au groupe de ports appelé « LAN » et qu’il n’y a aucun groupe de ports appelé « LAN » sur l’ESX 2 la VM n’y sera plus connectée. Vous devrez donc manuellement la réattribuer à un nouveau groupe de ports.
Pour éviter ce problème, soyez rigoureux et utiliser les mêmes noms pour vos étiquettes réseaux sur les deux ESX pour que la compatibilité soit totale lors d’une migration à chaud.
- Lors de la migration à chaud, est-ce qu’il y a une interruption ?
La réponse est « non ». En effet, la VM ne sera pas mise en pause (sinon la migration à chaud n’aurait pas grand intérêt) mais ce qui est vraiment intéressant c’est de voir qu’il n’y a même pas d’interruption réseau. Lorsqu’on lance un ping vers un autre équipement du réseau juste avant de lancer la migration on peut observer qu’il n’y a aucune perte, aucune coupure.
II. Schéma du réseau
III. Informations sur les équipements du réseau
- Serveurs VMware ESX : version 5.0
- Serveur NAS : FreeNAS 8 avec partage NFS (voir ce tuto : NFS avec FreeNAS et VMware)
- Switch : DLINK 5 ports gigabits Ethernet
- Serveur vCenter : virtualisé sur l’hôte ESX 1 (IP : 172.21.0.60).
- Réseau 172.21.0.0/16 pour le LAN
- Réseau 192.168.1.0/24 pour le vMotion
- Avec le client vSphere on se connecte au vCenter pour gérer les ESX
IV. Créer un groupe de ports VMKernel sur chaque hôte ESX
Comme nous l’avons vu plus haut, il faut utiliser un groupe de ports VMKernel spécialement pour le vMotion et comme dans ce tutoriel nous utilisons deux serveurs ESX il faut répéter cette étape deux fois. Autrement dit, vous devez effectuer cette étape sur tous les hôtes ESX qui vont utiliser la fonction de vMotion.
- Sélectionnez l’hôte ESX puis allez dans l’onglet « Configuration » puis dans « Mise en réseau » et cliquez sur « Ajouter gestion réseau ».
- Sélectionnez « VMKernel » et faites « Suivant » :
- Maintenant, sélectionnez « Créer un commutateur standard vSphere » et attribuée lui une carte réseau sauf si vous souhaitez tout gérer avec le même vSwitch.
- Donnez un nom à votre VMKernel en remplissant le champ « Étiquette réseau », dans ce cas nous l’appelons « Migration à chaud vMotion ». Ensuite, cochez la case « Utiliser ce groupe port pour vMotion » pour que vMotion puisse fonctionner sur ce VMKernel.
- Attribuez une IP à ce VMKernel, nous donnons l’IP 192.168.1.1 à cet hôte ESX, comme indiqué dans notre schéma. Le second ESX aura l’IP 192.168.1.2.
- Cliquez sur « Terminer » pour valider la création du vSwitch.
V. Ajout de la banque de données commune aux hôtes ESX
Pour utiliser la migration à chaud proposée par vMotion il faut que les hôtes ESX aient une banque de données en commun. Dans notre cas, nous utilisons un stockage réseau NFS mit en place sur un serveur FreeNAS (vous pouvez suivre le tutoriel indiqué dans la partie 2 de ce tutoriel).
Comme pour l’étape précédente, cette étape est à effectuée sur chaque ESX qui va utiliser la fonction vMotion.
- Sélectionnez un ESX, allez dans « Configuration » puis « Stockage » et cliquez sur « Ajouter stockage… »
- Sélectionnez « Système de fichiers réseau » étant donné que le partage NFS est un partage réseau.
- Indiquez l’IP de votre serveur c'est-à-dire 192.168.1.100 dans notre cas (voir le schéma), le dossier correspond au répertoire réseau NFS puis donnez lui un nom.
- Cliquez sur « Terminer » pour valider l’ajout puis patientez.
- La banque de données NFS est maintenant disponible :
VI. Stockage des machines virtuelles
Avant de pouvoir migrer à chaud une machine virtuelle d’un hôte vers l’autre il faut que celle-ci soit stockée sur notre NAS.
- Pour cela, sélectionnez une machine virtuelle dans l’inventaire puis faites clic droit dessus et « Migrer »
-Choisissez l’option « Changer de banque de données » puisque c’est ce que l’on souhaite faire.
- Au moment de choisir la banque de données, choisissez celle correspondante au NAS. Ensuite faites « Suivant » et cliquez sur « Terminer » et patientez pendant le transfert (qui devrait être assez rapide étant donné que la liaison est en Gbit/s).
VII. Test de migration à chaud
Nos hôtes ESX sont désormais prêts à effectuer des migrations à chaud grâce au vMotion étant donné que nous avons configuré le réseau pour le vMotion et que les ESX ont une banque de données en commun.
Nous allons tenter de migrer une machine virtuelle de l’hôte ESX 1 et qui est stockée sur le NAS vers l’hôte ESX 2. Pour que la migration se fasse « à chaud », pensez à démarrer la machine virtuelle.
- Comme pour l’étape précédente, faites clic droit sur la VM puis « Migrer… »
- Ensuite, pour déplacer la VM de l’hôte ESX 1 vers l’hôte ESX 2 sélectionnez « Changer l’hôte »
- Sélectionnez ensuite l’hôte ESX vers lequel la VM doit être déplacée, nous prenons l’hôte ayant pour IP 172.21.2.252 ce qui correspond à l’ESX 2. Lorsque vous sélectionnez un ESX, le vCenter effectue un contrôle de compatibilité entre l’hôte actuel et l’hôte de destination et vous avertira en cas de problème. Selon le type et la gravité de problème vous allez pouvoir poursuivre la migration ou non.
- Indiquez la priorité que vous souhaitez donner à cette migration. Étant donné qu’il y a qu’une migration en cours la priorité n’est pas très importante. Faites « Suivant » et « Terminer ».
- Patientez quelques secondes et vous verrez que la VM est passée sur le second hôte :
Bonjour Florian BURNEL. j’ai bien lu votre votre post et je dois avouer que c’est clair et bien expliqué.
J’aimerai savoir les prérequis pour migrer une VM d’un site à un autre.
Par exemple s’il y’a lieu que les deux VM soient dans le même réseau et donc est ce qu’il faudra étendre le niveau 2 et si oui par quel moyen?
Merci d’avance
Bonjour,
Merci pour ce super Tuto.
Comment faire une migration d’un vCenterA1 avec ESXi01 vers VcenterB1 avec ESXi02 ?
Merci 🙂
Bonjour,
Merci pour tous vos Tutos, c’est super. Je vous avoue qu’actuellement, je suis embêté sur une migration de mon ancienne infrastructure VMWare 6.0 où j’ai une trentaine de VM pour les migrer vers notre nouvelle infra VXRAIL de chez Dell avec VMWare 7.0. Pour notre nouvelle infra, j’ai les licences VMWARE Vsan/vMotion. Je pourrais faire une migration à froid si nécessaire. Sur mon ancienne infra, j’ai juste un VMWare vCenter Serveur 6.0.0, 2559268. Pourriez-vous svp me donner quelques conseils car comme très certainement vous pouvez remarquer, je ne suis pas un pro de VMWare.
Sachez que je vous remercie tout de même quelque soit votre réponse
Merci pour ce travail remarquable.