The trashiest blog in the World...

Aller au contenu | Aller au menu | Aller à la recherche

Migration VMWare vers KVM

Pour les besoins de mon travail, j'avais dû, il y a plus d'un an, mettre en place un système de virtualisation sur l'un de nos serveurs (qui tourne sous CentOS 5).

Je m'étais à l'époque tourné vers VMWare server, qui a rempli son office jusqu'ici. Seulement voilà, le module noyau refuse de se compiler aujourd'hui, et je trouve que le client graphique laisse fort à désirer : les touches du clavier ne sont pas mappées correctement, nous avons régulièrement des gels (voire des plantages !) du serveur Xorg sur les postes clients lorsque nous l'utilisons, .... Si nous n'avions virtualisé que des systèmes Linux, cela ne poserait pas vraiment de problèmes, mais ce n'est malheureusement pas le cas.

Aujourd'hui, KVM est disponible sous CentOS, je me suis donc attelé à son installation et à sa configuration. Comme d'habitude, un petit yum install suffit, pas de soucis notables de ce côté là. Restait à migrer les machines virtuelles existantes sous VMWare vers KVM.

Nous avons trois machines virtuelles qu'il fallait migrer :

  • une Mandriva Corporate Server 4 en 32 bits
  • une CentOS 5 en 64 bits
  • un Windows XP en 64 bits

La solution réside en l'utilisation de virt-convert qui prend en entrée le dossier de la VM VMWare, et qui ressort une image et un fichier de configuration pour libvirt. La syntaxe est la suivante :

# virt-convert /var/lib/vmware/Virtual\ Machines/CentOS5 /home/vms/CentOS5

Lancée telle quelle, cette commande faisait plus ou moins son travail : j'avais bien le fichier de configuration XML et un disque au format RAW, mais ce disque était vide !
Je ne sais pas trop si c'est dû à l'utilisation de fichiers successifs de 2Go pour le disque, ou encore à l'allocation dynamique de l'espace ; toujours est-il que virt-convert ne parvenait pas à s'y retrouver.

Fort heureusement, VMWare fournit la commande vmware-vdiskmanager qui m'a permis de solutionner mon problème :

# cd /var/lib/vmware/Virtual\ Machines/CentOS5
# vmware-vdiskmanager -r CentOS5.vmdk -t 0 CentOS5-copy.vmdk
Creating disk 'CentOS5-copy.vmdk'
  Convert: 49% done.

Une fois la conversion du disque terminée, recréons un dossier qui contiendra les données que l'on va migrer :

# cd /var/lib/vmware/Virtual\ Machines
# mkdir mig_CentOS5
# mv CentOS5/CentOS5-copy.vmdk mig_CentOS5/CentOS5.vmdk
# cp -av CentOS5/CentOS5.vmx* mig_CentOS5/

Nous obtenons ainsi le dossier /var/lib/vmware/Virtual\ Machines/mig_CentOS5 que nous allons pouvoir migrer avec virt-convert :

# virt-convert -o virt-image /var/lib/vmware/Virtual\ Machines/mig_CentOS5 /home/vms/CentOS5
Generating output in 'virt-image' format to /home/vms/CentOS5
Converting disk 'CentOS5.vmdk' to type raw...
Converting disk '/dev/hda' to type raw...
Done.

Super, on a désormais une machine virtuelle utilisable :-) Le dossier /var/lib/vmware/Virtual\ Machines/mig_CentOS5 n'est plus utile, on peut le supprimer sans état d'âme aucun.

Reste un petit point de détail : la référencer dans votre système. La commande virsh permet cela normalement, mais le fichier XML généré par virt-convert ne lui plaira pas. Utilisons donc la commande virt-image de la façon suivante :

virt-image /home/vms/CentOS5/CentOS5.virt-image.xml

Si tout s'est passé comme escompté, cette commande va ajouter la nouvelle machine virtuelle, que vous pourrez alors utiliser comme d'habitude.

Dans la théorie, tout cela est bien beau ; mais dans la pratique il en est autrement :

  • la machine CentOS : pas de problème au démarrage, mais l'interface graphique n'a pas réussi à se charger en raison du changement « matériel » de carte graphique. Quelques adaptations dans le xorg.conf ont suffit à corriger le problème, rendant la machine virtuelle à nouveau pleinement opérationnelle.
  • la machine Mandriva : kernel panic au lancement :-( Il est possible qu'en jouant avec les options du noyau je parvienne à la lancer à nouveau, je n'ai cependant pas eu de temps à y consacrer pour le moment.
  • la machine Windows : écran bleu. reboot. écran bleu. reboot. En mode normal ou en mode sans échec, ce ne serait pas rigolo sinon ! Bon, celle là ; je crois qu'il va falloir la réinstaller, je ne vois aucune solution...

Conclusion : un taux de réussite de 33%, c'est mieux que rien ; mais on peut en déduire que la migration de machine virtuelles n'est malheureusement pas une science exacte.