Another thing I tried was to change the NBD server (nbdkit) so that it
doesn't advertise zero support to the client:
$ nbdkit --filter=log --filter=nozero memory size=6G logfile=/tmp/log \
--run './qemu-img convert ./fedora-28.img -n $nbd'
$ grep '\.\.\.$' /tmp/log | sed 's/.*\([A-Z][a-z]*\).*/\1/' | uniq -c
2154 Write
Not surprisingly no zero commands are issued. The size of the write
commands is very uneven -- it appears to be send one command per block
of zeroes or data.
Nir: If we could get information from imageio about whether zeroing is
implemented efficiently or not by the backend, we could change
virt-v2v / nbdkit to advertise this back to qemu.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html