qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 0/4] export internal snapshot by qemu-nbd


From: Wenchao Xia
Subject: Re: [Qemu-devel] [PATCH 0/4] export internal snapshot by qemu-nbd
Date: Fri, 19 Jul 2013 18:02:29 +0800
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20130620 Thunderbird/17.0.7

于 2013-7-19 17:19, Kevin Wolf 写道:
Am 19.07.2013 um 11:03 hat Wenchao Xia geschrieben:
于 2013-7-18 13:43, Stefan Hajnoczi 写道:
On Wed, Jul 17, 2013 at 10:03:51PM +0800, Wenchao Xia wrote:
This series allow user to read internal snapshot's contents without qemu-img
convert. Another purpose is that, when qemu is online and have taken an
internal snapshot, let user invoke qemu-nbd to do any thing on it except write.

I agree with Eric and Kevin that we cannot access image files while QEMU
has them open.

A bit more detail about using the run-time NBD server to do this safely:

Internal snapshots are not first-class block layer objects today.  They
are not BlockDriverStates, instead you must access their data through
bdrv_snapshot_goto() or bdrv_snapshot_load_tmp().

   Also cc to Fam Zheng an Kevin:
   I think BlockDriverStates modification, is based on a more basic
question: does qcow2's data structure on disk, allow multiple snapshot
reader, while one active writer, without lock? I think the modification
showed above, already said "yes" to this question.

What exactly do you mean by "without lock"?

  I mean read of old snapshot and write on qcow2 except snapshot
operation, can happen in same time, without a mutex in qemu.

But yes, there's no fundamental problem in the format specification that
would make it impossible to write a driver that accesses multiple
snapshots at the same time from the same qemu process. (Even r/w in
theory, though we're treating snapshots as immutable traditionally.)

  What about one writer process and one snapshot reader process? I think
it works if manager forbid snapshot operation in writer process. It
works with a rule: "only snapshot operation and * operation, would
change the data on disk, which is used by reading pre-existing
snapshots".

  I know in principle, one process owning one image, make things
clear, but this can leverage internal snapshot as easy to use as
external ones.

Kevin



--
Best Regards

Wenchao Xia




reply via email to

[Prev in Thread] Current Thread [Next in Thread]