Hi Sam! 10.06.2020 08:28, Sam Eiderman wrote:
Hi,168468fe19c8 ("qemu-img: Add --target-is-zero to convert") has added a nice functionality for cloud scenarios: * Create a virtual disk
What is the format of your target?
* Convert a sparse image (qcow2, vmdk) to the virtual disk using --target-is-zero * Use the virtual disk This saves many unnecessary writes - a qcow2 with 1MB of allocated data but with 100GB virtual size will be converted efficiently. However, does this pose a problem if the virtual disk is not zero initialized? Theoretically - if all unallocated blocks contain garbage - this shouldn't matter, however what about allocated blocks of zero? Will convert skip copying allocated zero blocks in the source image to the target since it assumes that the target is zeroed out first thing?
Yes, the feature is only for really zero-initialized target, it will skip "allocated" zeroes as well. What you want - copying only allocated blocks of backing-supporting format - looks like "top" mode of mirror and backup block jobs. Didn't you considered using qemu itself (in stopped mode, i.e. cpus are not running) or new qemu-storage-daemon instead of qemu-img? With this approach you'll have the whole power of QMP commands to manage block-layer, including block-jobs. -- Best regards, Vladimir
