Am 16.08.2012 14:56, schrieb Eric Blake: > On 08/16/2012 04:00 AM, Peter Maydell wrote: >> On 16 August 2012 10:00, Kevin Wolf <kw...@redhat.com> wrote: >>> People have repeatedly expected that you can do things like snapshotting >>> an image with qemu-img while a qemu instance is running. Maybe we need >>> to consider locking the files while they are in use, > > Sounds like a nice feature bit to add to qcow2v3, where both qemu-img > and qemu check if the locking feature is enabled for an image, as well > as maintain a header bit that is set when the image is open read-write > and refuse to use the image if the lock bit is set.
I thought the same. However, then you need some way to override this mechanism when recovering from a crash etc., so it's not a trivial addition and it would be user-visible. >> but having a >>> warning in the qemu-img manpage is doable for 1.2 and can't hurt anyway. >>> >>> Signed-off-by: Kevin Wolf <kw...@redhat.com> > >> >>> + >>> +@b{Warning:} Never use qemu-img to modify images in use by a running >>> virtual >>> +machine or any other process, this may destroy the image. >> >> ";" or ", because". > > Is this strong enough? Remember, with qcow2v3 and qed, the mere act of > opening an image will perform refcount checks that modify the image, > unless you explicitly request otherwise, which means even a query of the > file metadata may result in modifying the image as part of the default > open. Not for read-only opens. I think qemu-img gets this right meanwhile, so that images are opened read-only when they are only queried. (And for qcow2v3 the check only happens with lazy refcounting enabled, which is not the default) > Maybe incorporate some ideas from this attempt: > > Never use qemu-img to modify files in use by a running virtual machine > or any other process; this may destroy the image. Be aware that some > image formats perform modifications even on query operations. Also, be > aware that querying an image that is being modified by another process > may encounter inconsistent state. Adding the last sentence is probably a good idea anyway. Kevin