On Wed, May 27, 2015 at 09:38:38AM +0300, NoxDaFox wrote: > Greetings, > > I am suffering of several weird errors which show randomly and make me > suspect some concurrency issue. > > Libguestfs version is 1.28.1, linux kernel 3.16, libvirt 1.2.9 and qemu 2.1. > > What I'm trying to do is comparing the disk state at two different point of > a guest execution. > Disk snapshots are taken through libvirt in different moments (I am aware > of caching issue), from such snapshots, new disks are created using the > "qemu-img convert" command with backing file pointing to the disk being > executed.
Am I right in understanding that the guest VM is /running/ while you invoke 'qemu-img convert' ? If so, that is bad practice - it is not supported to invoke qemu-img against /any/ disk image that is currently open by a running QEMU process. You /might/ get away with it if the disk image is raw, since you'll (usually) just end up with a dirty guest filesystem that can be recovered by replaying the journal. With qcow2 though it is worse because QEMU may have in-memory changes to the qcow2 sector allocation tables which are in-flight and so qemu-img can end up with inconsistent data. You really need to use the libvirt live snapshot APIs/tools to take copies of disks attached to running VMs. This further gives the option to quiesce the guest, if consistency of guest OS data is desired too. There are quite a few ways to use the libvirt APIs, but one example is shown here http://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://www.redhat.com/mailman/listinfo/libguestfs