KVM Block Device Driver

Spensky, Chad - 0559 - MITLL
2013-08-13T21:09:51Z

Hi All,

I'm working with some disk introspection on KVM, and we trying to create
a shadow image of the disk. We've hooked the functions in block.c, in
particular bdrv_aio_writev. However we are seeing writes go through,
pausing the VM, and the comparing our shadow image with the actual VM
image, and they aren't 100% synced up. The first 1-2 sectors appear to be
always be correct, however, after that, there are sometimes some
discrepancies. I believe we have exhausted most obvious bugs (malloc
bugs, incorrect size calculations etc.). Has anyone had any experience
with this or have any insights?

Our methodology is as follows:
1. Boot the VM.
2. Pause VM.
3. Copy the disk to our shadow image.
4. Perform very few reads/writes.
5. Pause VM.
6. Compare shadow copy with active vm disk.

And this is where we are seeing discrepancies. Any help is much
appreciated! We are running on Ubuntu 12.04 with a modified Debian build.

- Chad

--
Chad S. Spensky

MIT Lincoln Laboratory
Group 59 (Cyber Systems Assessment)
Ph: (781) 981-4173