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 _______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
