Migrer vers un autre hyperviseur KVM

Migration ServeurJ’ai une série de machines virtuelles dans un hyperviseur KVM tournant sous Slackware Linux 14.1 64-bits (alphamule). Je souhaite les migrer vers un nouvel hyperviseur, un serveur HP Proliant tournant sous CentOS 7 (nestor). La procédure n’est pas tout à fait triviale, mais j’ai réussi au bout d’une matinée de tentative et échec.

Avant d’entreprendre quoi que ce soit, il faut bien évidemment éteindre toutes les machines virtuelles. Voici la liste complète.

# virsh list --all
ID Nom État
----------------------------------------------------
- MLED-14.1-32bit fermé
- MLED-14.1-64bit fermé
- MLED-14.2-32bit fermé
- MLED-14.2-64bit fermé
- MLES-14.0-32bit fermé
- MLES-14.0-64bit fermé
- MLES-14.1-32bit fermé
- MLES-14.1-64bit fermé
- MLES-14.2-32bit fermé
- MLES-14.2-64bit fermé

Pour commencer, je vais tenter de migrer la machine MLES-14.2-32bit. Je dois d’abord copier l’image disque vers le nouveau serveur.

# cd /var/lib/libvirt/images/
# scp MLES-14.2-32bit.qcow2 nestor:/var/lib/libvirt/images/

J’effectue un dump de la configuration, et je la copie également sur la nouvelle machine.

# virsh dumpxml MLES-14.2-32bit > /tmp/MLES-14.2-32bit.xml
# scp /tmp/MLES-14.2-32bit.xml nestor:/tmp/

Je me connecte au nouveau serveur. Dans un premier temps, je règle les permissions de mon image disque.

# cd /var/lib/libvirt/images/
# chown qemu:qemu MLES-14.2-32bit.qcow2

Je sauvegarde la configuration de l’ancienne machine.

# cd /tmp/
# cp MLES-14.2-32bit.xml MLES-14.2-32bit.xml.orig

J’essaie d’importer telle quelle l’ancienne configuration, ce qui se solde par une erreur.

# virsh define MLES-14.2-32bit.xml
erreur :Impossible de définir le domaine depuis MLES-14.2-32bit.xml
erreur :Cannot check QEMU binary /usr/bin/qemu-kvm: Aucun fichier ou
        dossier de ce type

Mon système MLES-14.2-32bit est basé sur Slackware Linux 14.2 32-bits. L’approche pragmatique consiste ici à installer un tel système sur le nouvel hyperviseur et d’exporter la configuration au format XML, ce qui permettra de comparer les différentes options sur l’ancienne et la nouvelle machine. À partir de là, je peux éditer MLES-14.2-32bit.xml en rectifiant le tir pour les options qui posent problème.

Le nombre de processeurs passe de 8 à 2.

<vcpu placement='static'>2</vcpu>

Je rectifie le type de machine.

<os>
  <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
  <boot dev='hd'/>
</os>

Je supprime une paire de fonctionnalités non supportées.

<features>
  <acpi/>
  <apic/>
  <pae/>
  <vmport state='off'/>
</features>

J’adapte le modèle de processeur.

<cpu mode='custom' match='exact'>
  <model fallback='allow'>phenom</model>
</cpu>

Le chemin vers l’exécutable qemu-kvm n’est pas le même sur les deux systèmes.

<devices>
  <emulator>/usr/libexec/qemu-kvm</emulator>
  <disk type='file' device='disk'>

L’interface réseau a également changé de nom.

<interface type='bridge'>
  <mac address='52:54:00:00:00:07'/>
  <source bridge='virbr0'/>
  <model type='virtio'/>

Je retente le coup.

# virsh define MLES-14.2-32bit.xml
Domain MLES-14.2-32bit defined from MLES-14.2-32bit.xml

Je lance Virt-Manager et je démarre la machine virtuelle. À présent, tout fonctionne parfaitement.

Ce contenu a été publié dans CentOS, Documentation Microlinux, Slackware, avec comme mot(s)-clé(s) , , , . Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *