N-PN White-Hat Project
[SYS] Importer une VM Xen sous VMware Workstation/Fusion - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Informatique (https://dev.n-pn.fr/forum/forumdisplay.php?fid=12)
+--- Forum : GNU/Linux | Unix (https://dev.n-pn.fr/forum/forumdisplay.php?fid=31)
+--- Sujet : [SYS] Importer une VM Xen sous VMware Workstation/Fusion (/showthread.php?tid=3777)



[SYS] Importer une VM Xen sous VMware Workstation/Fusion - Junky - 27-10-2014

Bonjour,

Voilà un petit moment que je n'ai pas posté de topic SYS sur le fofo. Je vais
alors remédier à tout ça dans ce topic.

Ici je vais vous parler d'une XP d'entreprise.

La demande:


Un client avait une VM (Xen) qui lui servait de frontale web a l'époque. Tout
leur ancien site était dessus. Aujourd'hui nous l'avons fait passer sur une
nouvelle archi à base de haproxy, django, gunicorn etc... Le site est devenu
plus robuste et accepte beaucoup mieux les surcharges. Bref ce n'est pas
le sujet.

Donc notre client voulais récupérer la VM sans la laisser sur le parc. (Il
voulait pas payer pour une VM non exploité, ce qui est totalement compréhensible)

J'ai du donc réfléchir à une solution pour récupérer cette VM. Il faut savoir
que d'un côté nous avons de la Virtualisation et de l'autre de la
Para-virtualisation. Je ne vais pas vous comparer les deux car ce n'est pas du
tout le sujet de ce topic.


Aller c'est tipar:

Dans un premier temps j'ai bien entendu effectué des recherches sur la toile.
Malheureusement, beaucoup de celle-ci utilise VMConvert. Un tool VMWare a
licence. Il est HORS de question que j'achète une licence pour une seul
opération, et pas envie de me faire ièche a chercher un crack moisi sur
astalavista.sk ou autre.

Malgré tout j'ai pu trouver une chose sur la toile à base de Qemu. Il peut
effectuer une conversion. Hummm intéressant. Je suis donc partie sur cette
piste.

Voici comment j'ai procédé:

Mes VM étant toutes dans des LV, j'ai commencé a en créer un nouveau de la
taille + un peu + de la VM a convertir. (Il ne faut pas hésiter a rajouter
5/10G. Ca ne mange pas de pain. De toute façon a la fin de l'opération celui-ci
va être delete).

Une fois celui-ci créé, j'ai effectué la convertion avec qemu:

Code BASH :

qemu-img convert -p -O vmdk my-domu-root.disk my-vm.vmdk
 


Bon ma VM faisait 150G so ca a prit un peu de tps. Smile Une fois celle-ci ok, il
vous faut la récupérer sur une machine disposant de place et ou il vous ait
possible d'installer un VMWare.

Une fois le tout sur la machine, voici la démarche:
  • Installation d'une debian (vous n'êtes pas obligé de le faire, mais je
    n'avais pas de debian d'installé dans un VMWare so j'en ai profité. Mais un
    liveCD est largement suffisant)
  • Une fois la Debian ok, j'ai créé 2 autre disk vmdk. Un nouveau, et UN
    qui n'est que l'ancienne machine fraichement convert à coup de qemu
  • On rajute les 2 nouveaux disques au démarrage de notre Debian fraichement
    installé.
  • Une fois la VM booté, on mount les 2 autre vmdk dans le /mnt/DIR
  • Copie de ancienne_vm.vmdk to nouvelle_VM.vmdk
  • une fois la copie ok, on va chrooter la nouvelle VM (Ne pas oublier de
    monter les sys, proc, dev en bind avec mount)
  • On chroot et on install grub2 + le kernel qui va bien.
  • Unmount du tout et boot sur la nouvelle machine.

Il est possible que votre machine ne boot pas. Il vous faudra alors regarder
votre 'fstab' et/ou 'inittab' et les configurer correctement.

Je n'ai pas eu d'autre problème, donc je peux difficilement faire une section
troubleshooting, mais si un jour vous en rencontrez, n'hésitez pas a poser des
questions. Smile

Conclusion:


Je m'attendais a avoir vraiment plus de travail et que celui-ci soit plus
fastidieux car j'importais une VM du libre sur un Hyperviseur demandant des
licences, mais en faite non. Il y a surement plus simple ou même d'autre façon
de faire (avec dd par exemple (cc is001_fred)) mais celle-ci a fonctionné. Si
un jour l'opération doit se reproduire, je testerai avec dd.

N'hésitez pas a poser des questions Smile

Junky,