[Libguestfs] [PATCH nbdkit 7/8] vddk: Implement extents.

Richard W.M. Jones rjones at redhat.com
Wed Mar 27 13:44:57 UTC 2019


FYI I now have a VDDK extents function which now works and is tested
against a real server on real guests:

  https://github.com/rwmjones/nbdkit/commit/b327a79ee3fa0af0fe27d5d18ac7b5f44a7c243e

There were quite a lot of changes:

 - The offset and length of the hole before each block was
   plain wrong: fixed.

 - I needed to add the implicit hole after the list of blocks
   returned by QueryAllocatedBlocks.

 - Don't consider req_one until we've got past the initial offset.

 - Centralise the add_extents code into one function and add
   a debug flag (-D) so we can debug it.

Unfortunately qemu's habit of setting req_one on every request hurts
performance quite a lot, because calling QueryAllocatedBlocks is very
expensive.  You end up having to call QAB before each pread and
constantly re-requesting data which we've already asked for.  We might
cache the QAB output but that's complex and hairy.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top




More information about the Libguestfs mailing list