Migrer une VM Linux de VMware à Proxmox en plaçant les disques dans des volumes logiques (LVM)…

Pour migrer une machine virtuelle Linux VMware vers Proxmox/KVM, voici comment procéder :

1. VMware peut utiliser des fichiers disque qui grossissent suivant le besoin (ce qui n’est pas grave), mais qui peuvent aussi être découpé en tronçons de 2 Go (ce qui est plus embêtant). Si c’est le cas, il faut avant tout convertir le(s) fichier(s) disque dans un format compatible avec la suite :

$ vmware-vdiskimage -r <fichier>.vmdk -t 0 <nouveau fichier>.vmdk

Cela va faire en sorte que le fichier disque résultant soit unique (pas découpé en parties de 2 Go).

Note : On pourrait me faire remarquer, à raison, que je peux éviter l’étape de la conversion en RAW (point 3), en utilisant plutôt “-t 2″ pour obtenir un fichier non extensible, qu’on pourra ensuite utiliser directement sans l’étape de conversion au format RAW par qemu-img (quoi que je n’ai pas essayé, donc je n’ai pas de certitude sur ce point). Cependant, l’option “-t 2″ génère 2 fichiers, un xxx.vmdk qui décrit le fichier disque, et un fichier xxx-flat.vmdk qui correspond au données réelles. Je trouve cela “confusant”, je préfère ne pas avoir à me poser de question lors du transfert de fichier, je m’en tiens donc à l’option “-t 0″.

2. On copie les fichiers disque (éventuellement nouvellement convertis) vers le serveur KVM

3. On convertit les fichiers VMDK au format RAW :

$ qemu-img -convert -f vmdk <nouveau fichier>.vmdk -O raw <nouveau fichier>.raw

On note la taille des fichiers générés pour le point suivant.

4.  On crée la nouvelle machine virtuelle dans Proxmox, en prenant soin de créer des disques LVM au moins de la même taille que celles relevées dans le point précédent. Je vous invite à vous reporter à la documentation de Proxmox si nécessaire (mais c’est simple à faire). Attention à choisir le même type de périphérique que pour la machine virtuelle VMware initiale, un disque IDE pour un disque IDE, un disque SCSI pour un disque SCSI (sinon c’est le kernel panic garanti ou presque…). On prend soin de noter le VMID de cette nouvelle machine virtuelle. Pour l’exemple, ce sera 101.

5. Grâce à la commande lvs, on note le(s) nom(s) des volumes LVM correspondants aux disques créés dans le point précédent :

$ lvs
LV            VG           Attr   LSize   Origin Snap%  Move Log Copy%  Convert
...
vm-101-disk-1 virtualworld -wi-a-   8.00G
vm-101-disk-2 virtualworld -wi-a-  16.00G

Ici, on découvre 2 volumes vm-101-disk-1 et vm-101-disk-2, qui correspondent aux volumes de notre machine virtuelle, de VMID 101.

6. Il reste maintenant à copier “brutalement” le contenu des fichiers .raw créés dans le point 3 dans les volumes correspondant :

$ dd if=<nouveau fichier>.raw of=/dev/virtualworld/vm-101-disk1 bs=1M

On réitère l’opération pour les autres disques virtuels s’il y en a. Evidemment, il faut éviter de se tromper de destination pour la commande dd, sinon adieu données d’un autre volume LVM…

7. On démarre sa nouvelle machine virtuelle, et ça boote. Bonheur.

Facile, non ?

This entry was posted in KVM, Proxmox, Technologie, Virtualisation, VMware. Bookmark the permalink.

Laisser un commentaire