[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-fr] Xem :Migrer une VM.img vers une VM sur des partitions LVM



Bonjour Christophe,

Il existe plusieurs méthodes avec chacune leurs avantages et leurs défaut, pour un domaine linux je vous consillerai la méthode rsync (la dernière).

Je vous expose ci dessous les methodes avec des exemples de ligne de commande, mais dans tous les cas vous devez d'abord créer votre partition lvm (qu'on va appeler /dev/vg/monlv) qui a la même taille que votre disque virtuel.

La méthode qui marche avec toutes les vms indépendemment de l'OS:
1) Depuis le shell du dom0, vm arrêtée, vous montez l'image dans le dom0:
# xm block-attach 0 tap:aio://mon/chemin/VM.img xvdb r
tap:aio://mon/chemin/VM.img étant à remplacer par la definition de votre image (idem que le fichier de configuration). Normatement, /dev/xvdb doit être créé dans le dom0 avec le "contenu de l'image"
2) Vous copier le block device :
# dd if=/dev/xvdb of=/dev/vg/monlv
3) Vous libérez le fichier image
# xm block-detach 0 xvdb

Une méthode plus "facile" mais qui ne marche que si l'image est de type "raw"
Cette méthode consiste à faire simplement :
# dd if=/mon/chemin/VM.img of=/dev/vg/monlv

La méthode "rsync" (la meilleure en général pour un domU linux (!?) )
Les deux méthodes ci dessus ont tout de même un défaut:
1) Elles prennent beaucoups de temps car copient "octet" à "octet" les clusters qu'ils soient vides ou occupés.
2) Pour la même raison, votre lv occupera beaucoup trop d'espace physique (physical extent) indépendamment de l'espace réellement utilisé sur votre disque virtuel.
3) Si dans l'image de base il y déja a une table de partitions, dans votre lv de destination il y aura une table de partitions. Ce n'est pas un problème en soit sauf que voila, ce sera très compliqué le jour ou vous voudrez agrandir votre LV pour proposer plus d'espace.

La methode rsync permet de répondre à tout cela. Le principe :
1) Formatez votre lv avec un fs qu'on peut étendre par lvm  (ext2,reiserfs ...).
2) Attachez votre image au dom 0 comme block device:
# xm block-attach 0 tap:aio://mon/chemin/VM.img xvdb r
S'il y a des partitions elles apparaitrons sur /dev/xvdb1 2 ...
3) Montez votre lv dans un répértoire et votre partition dans un autre :
# mkdir /tmp/lv
# mount /dev/vg0/monlv /tmp/lv
# mkdir /tmp/img
# mount /dev/xvdb2 /tmp/img

4) Faites un rsync :
# rsync -av /tmp/img/ /tmp/lv
(Attention, le dernier slash après /tmp/img/ est important ! à défaut vous aurez un dossier img à l'interieur de /tmp/lv ....)
Cette opération aurais pu se faire avec un cp, install ... mais j'ai l'impression que le rsync est plus fiable et performant ...
5) Démontez le tout et détachez votre image du DOM0:
# unmount /tmp/lv
# unmount /tmp/img
# xm block-detach 0 xvdb

6) Adapter la configuration de votre domaine pour qu'il trouve bien le kernel et consider /dev/vg/monlv directement comme racine.

NOTA: Je ne saurais trops vous recommander de ... faire une sauvegarde de votre image pour éviter toute fausse manipulation !


Sincèrement,
--
Omar BENHAMID
Bewigo Technologies
Email: o.benhamid@xxxxxxxxx
Tel: +33 9 51 99 35 19
http://www.bewigo.fr


Découvrez comment la virtualisation innovante peut vous aider à protéger vos postes, déployer
vos environnements en avance ou réduire vos coûts de matériel informatique de plus de 60% !
> Visitez http://www.bewigo.fr/
_______________________________________________
Xen-fr mailing list
Xen-fr@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-fr

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.