Scenario (A) ---------------------------------------------------------------------- (1) Create fedora-33 "dirty" disk image (simulating a long-running VM) on a remote SSH server. See "create.sh" script. (2) The remote server is located over a 100 Mbps ethernet link. Both the client and server have plenty of local CPU and are otherwise idle during the test. (3) scp test: scp remote:fedora-33.img local.img (4) qcow2 snapshot + sparsify + qemu-img convert. The time taken to run all of the following operations in series. See "testA4.sh". (5) As above but without sparsify. See "testA5.sh". (6) As above but using nbdkit + nbdcopy. See "testA6.sh". Results of scenario (A) ---------------------------------------------------------------------- (3) (scp) 48m40 ls -lsh local.img : (4) (sparsify + qemu-img convert) 2m21 (5) (qemu-img convert) 59m39 ls -lsh local.img : 4.1G -rw-r--r--. 1 rjones rjones 32G Feb 10 11:11 local.img (6) (nbdkit + nbdcopy) 3m49 [probably lock contention in cow filter] $ ls -lsh local.img 1.2G -rw-r--r--. 1 rjones rjones 32G Feb 10 11:16 local.img Scenario (B) ---------------------------------------------------------------------- (1) Create local OVA file from disk image in scenario (A) using: tar -cf test.ova -C /path/to/remote fedora-33.img # -S option is not usually used with OVA files (2) Time how long it takes to copy the file: time cp test.ova test2.ova (3) Time how long it takes to unpack this using tar -xf: time tar -xf test.ova fedora-33.img (4) Time how long it takes to copy out the sparsified image. See "testB4.sh". Results of scenario (B) ---------------------------------------------------------------------- (2) (cp) 40s (3) (tar xf) 43s (4) (sparsify + qemu-img convert) 7.6s