Comment déplacer efficacement une grande image de disque vide vers un autre système

Je tente actuellement de déplacer une image qcow2 assez vide et nue d'un système à l'autre qui est loin. J'ai essentiellement eu une nouvelle installation de ubuntu LTS (taille réelle 6gb, taille apparente 200gb). La plupart des méthodes de transfert de fichiers (rsync sur ssh) et sftp avec canard tentent de transférer plus de 200gb.

Ceci est inefficace puisque l'image de disque n'utilise pas réellement 200gb (juste qu'elle pourrait, éventuellement). Que dois-je faire pour transférer uniquement ce qui est utilisé par la machine virtuelle?

Les deux extrémités de la course de transfert fedora 22, et je ne voudrais idéalement pas changer les formats d'image du disque, ce serait une option. La vitesse serait agréable – je ne veux pas échanger le temps de transfert pour le temps de traitement.

rsync gère en fait des fichiers clairsemés. Lorsque vous dites une taille réelle de 6 Go et que la taille apparente est de 600 Go, voulez-vous dire que du -h IMAGE.qcow2 affiche " 6G ", mais du -h --apparent-size IMAGE.qcow2 montre " 200G "?

Si tel est le cas, vous pouvez ajouter le drapeau -S à rsync pour le transférer sous peu, ce qui signifie que vous allez envoyer plus de 6GiB de données au lieu de 200GiB.

Il semble également que votre image qcow2 ne soit pas compressée. Si vous disposez des ressources de la CPU et que votre bande passante est inférieure à la rapidité avec laquelle votre CPU peut gzip , vous pouvez également passer le drapeau -z à rsync , ce qui a également compressé son transfert de fichier.

J'ai une touche d' rsync -avzHXShPs pour rsync basée sur cette question Super User et elle permet des transferts de fichiers efficaces et conservateurs la plupart du temps: rsync -avzHXShPs

scp -C utilise la compression, ce qui devrait être assez efficace pour un tel fichier sparse. Un avantage est que vous obtenez un fichier prêt à l'emploi à la destination.