Migration à froid de machines virtuelles KVM vers un nouvel hôte

Cet article détaille le processus de migration à froid d'une machine virtuelle (VM) KVM, en transférant sa configuration et son disque d'un hôte KVM à un autre, tout en conservant le même hyperviseur.

Environnement expérimental

  • Nom de la VM source : vm01-centos6.8
  • Hôte KVM source : kvm-host-2
  • Nom de la VM cible : vm01-cloud-centos6.8
  • Hôte KVM cible : kvm-host-2

Procédure de migration

Préparation initiale

Avant de commencer la migration, arrêtez la VM source. Vérifiez ensuite la liste des VMs pour confirmer son état et inspectez les disques attachés à la VM.

# Arrêter la machine virtuelle source
[root@kvm-host ~]# virsh shutdown vm01-centos6.8

# Vérifier la liste des machines virtuelles
[root@kvm-host ~]# virsh list --all

# Lister les périphériques de bloc de la machine virtuelle
[root@kvm-host ~]# virsh domblklist vm01-centos6.8

Configuration de l'environnement cible

Assurez-vous que l'environnement KVM est correctement configuré sur l'hôte cible. Référez-vous à la documentation pertinente pour le déploiement de l'environnement KVM si nécessaire.

Exportation du fichier de configuration

Exportez la configuration XML de la VM source. Cela génère un fichier décrivant tous les paramètres de la VM.

[root@kvm-host ~]# virsh dumpxml vm01-centos6.8 > /tmp/vm01-cloud-centos6.8.xml

Copie de la configuration vers la cible

Transférez le fichier XML exporté vers le répertoire de configuration de libvirt sur l'hôte cible.

[root@kvm-host ~]# scp /tmp/vm01-cloud-centos6.8.xml user@kvm-host-target:/etc/libvirt/qemu/

Copie du disque virtuel vers la cible

Copiez le fichier image du disque virtuel de la VM source vers le répertoire de stockage des images sur l'hôte cible.

[root@kvm-host ~]# scp /path/to/vm01-centos6.8.img user@kvm-host-target:/path/to/images/vm01-cloud-centos6.8.img

Ajustements sur l'hôte cible

Une fois le fichier XML et le disque copiés sur l'hôte cible, vous devrez peut-être modifier certains paramètres dans le fichier XML pour éviter les conflits et adapter la configuration au nouvel environnement. Les modifications courantes incluent le nom de la VM, son UUID, le chemin d'accès au disque virtuel, et l'adresse MAC de la carte réseau.

# Vérifier la liste des machines virtuelles sur l'hôte cible
[root@kvm-host-target ~]# virsh list --all

# Modifier le fichier de configuration XML de la VM sur l'hôte cible
[root@kvm-host-target ~]# vi /etc/libvirt/qemu/vm01-cloud-centos6.8.xml

Dans le fichier XML, recherchez et modifiez les sections suivantes :

  • <name>vm01-cloud-centos6.8</name> : Changez le nom de la VM.
  • <uuid>...</uuid> : Générez et insérez un nouvel UUID unique pour la VM migrée.
  • <source file='/path/to/images/vm01-cloud-centos6.8.img'/> : Mettez à jour le chemin d'accès au fichier image du disque pour qu'il corresponde à l'emplacement sur l'hôte cible.
  • <mac address='...' /> : Modifiez l'adresse MAC de la carte réseau pour éviter les conflits sur le réseau.

Il est fortement recommandé de modifier ces paramètres pourr qu'ils diffèrent des valeurs originales afin de prévenir tout conflit.

Enregistrement de la VM cible

Définissez la VM sur l'hôte cible en utilisant le fichier XML modifié.

[root@kvm-host-target ~]# virsh define /etc/libvirt/qemu/vm01-cloud-centos6.8.xml

Vérification

Vérifiez que la VM est maintenant correctement enregistrée dans la liste des VMs gérées par libvirt sur l'hôte cible.

[root@kvm-host-target ~]# virsh list --all

Démarrage et ajustements post-migration

Après avoir défini la VM, vous pouvez la démarrrer. Une fois la VM démarrée, il peut être nécessaire d'ajuster la configuration réseau à l'intérieur du système d'exploitation invité. Cela peut inclure la mise à jour des adresses IP et MAC des interfaces réseau dans le système d'exploitation, et potentiellement dans le fichier /etc/udev/rules.d/70-persistent-net.rules pour que les interfaces correspondent aux configurations définies dans le fichier XML.

# Démarrer la machine virtuelle
[root@kvm-host-target ~]# virsh start vm01-cloud-centos6.8

# Vérifier la liste des machines virtuelles
[root@kvm-host-target ~]# virsh list --all

Ajustez les adresses MAC et IP dans le système d'exploitation invité, ainsi que dans le fichier /etc/udev/rules.d/70-persistent-net.rules pour qu'elles correspondent à celles spécifiées dans le fichier XML. Un redémarrage de la VM après ces ajustements peut être nécessaire.

Étiquettes: kvm virtualization migration cold migration libvirt

Publié le 25 septembre à 21h48