Bien copier ses VMs / astuce sauvegarde
Publié : mar. 19 déc. 2017, 02:34
On a beau avoir de la bouteille, on découvre tous les jours de nouvelles subtilités sous notre OS préféré.
Imagez que vous ayez la chance d'avoir deux SSD sous la main, et que vous voulez copier les VMs du SDD1 vers le SSD2.
Normalement, la commande en console serait quelque chose du genre :
Oui mais... non !Les images de nos machines virtuelles sont elles aussi... virtuelles !
Prenons une machine virtuelle KVM créée en assignant un disque dynamique de 20Go, mais n'occupant réellement que 6Go. La place disque réelle occupée sera de 6Go sur disque dur, et pourtant, si je fais un
le système me renvoie bien les 20 Go !
Et là : c'est le drame !
Avec ma commande cp précédente, je vais copier les 20Go "bestialement" sur la destination au lieu des 6Go de la source !
Pour corriger les choses, il suffit alors de faire un
qui lui va détecter les fichiers de machines virtuelles, et les copier correctement côté destination.
Il semble qu'rsync ait le même problème : de ce que j'ai lu (mais pas encore testé, donc à prendre avec des pincettes), il faudrait utiliser les options --ignore-existing --sparse pour la première copie, puis --inplace les fois suivantes.
Si quelqu'un a envie de s'amuser...
Imagez que vous ayez la chance d'avoir deux SSD sous la main, et que vous voulez copier les VMs du SDD1 vers le SSD2.
Normalement, la commande en console serait quelque chose du genre :
Code : Tout sélectionner
cp -a chemin_SSD1/VMs/src/* chemin_SSD2/VMs/dst/
Prenons une machine virtuelle KVM créée en assignant un disque dynamique de 20Go, mais n'occupant réellement que 6Go. La place disque réelle occupée sera de 6Go sur disque dur, et pourtant, si je fais un
Code : Tout sélectionner
ls -l ma_vm.img
Et là : c'est le drame !
Avec ma commande cp précédente, je vais copier les 20Go "bestialement" sur la destination au lieu des 6Go de la source !
Pour corriger les choses, il suffit alors de faire un
Code : Tout sélectionner
cp -a --sparse=always chemin_SSD1/VMs/src/* chemin_SSD2/VMs/dst/
Il semble qu'rsync ait le même problème : de ce que j'ai lu (mais pas encore testé, donc à prendre avec des pincettes), il faudrait utiliser les options --ignore-existing --sparse pour la première copie, puis --inplace les fois suivantes.
Si quelqu'un a envie de s'amuser...