Par souci de performance on utilise des volumes logiques (LV) pour installer les machines virtuelle. Ce gain de performance se paye par un système de backup un peut moins habituel que dans le cas d’un fichier. Voici comment proceder.
Commencons par obtenir la description du LV utilisé par la machine virtuelle actuelle.# lvdiplay
--- Logical volume ---
LV Name /dev/vg_srv0/lv_vm2
VG Name vg_srv0
LV UUID MIzDop-R7NY-qvQP-kmN1-C9hT-jD1p-7zQFTP
LV Write Access read/write
LV Status available
# open 1
LV Size 20.00 GiB
Current LE 640
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:4
Le LV /dev/vg_srv0/lv_vm2, qui contient la machine virtuelle vm2, fait donc exactement 20Go.
On va créer, une fois pour toute, le LV /dev/vg_srv0/lv_vm2_back, de la même taille, pour y stoker un clone de la machine existante vm2.
lvcreate -L 20G -n lv_vm2_back vg_srv0
Ensuite il suffit de faire le clonage, en prenant soin d’arreter la machine virtuelle vm2 pendant le clonage.
virsh shutdown vm2
virt-clone -o vm2 -n vm2_back -f /dev/vg_srv0/lv_vm2_back
virsh start vm2
-o donne le nom de la machine virtuelle Originale
-n donne le nom de la Nouvelle machine virtuelle
-f désigne la destination du clonage (le LV crée avec lvcreate)
Il faut environ 6 min pour : arrêter, cloner 20Go, redémarrer.
Notez que virt-clone a créé le fichier /etc/libvirt/qemu/vm2_back.xml en personnalisant l’adresse mac et le uuid pour éviter les conflits avec l’original mais il n’a pas changer les fichiers dans le clone. Des paramètres, comme l’adresse ip, restent donc les mêmes.
Si on veut exécuter vm2_back en parallèle de son origianl vm2, il faudra eviter les conflits et donc reconfigurer certains fichiers de vm2_back avec des commandes du type :
guestfish -d vm2_back -i edit xxxxx
Pour plus d'info sur l'utilisation de guestfish voir ce post.