qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC] qemu snapshot enchancement


From: Wenchao Xia
Subject: Re: [Qemu-devel] [RFC] qemu snapshot enchancement
Date: Thu, 24 Jan 2013 11:14:31 +0800
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20130107 Thunderbird/17.0.2


I like the use cases section.  I think it would be best to start there
and fill in the details all the way down to the QMP API calls that need
to be made.

At that point we can be sure the use cases are covered and the API
proposal will be easy to put together from the wiki page.

Comments about the use cases:

Case 1:

  * "Step 3: Copy out data" may take some time.  It must be possible to
    resume the guest before Step 3 completes.  This can be supported
    easily since backing files are read-only (but care needs to be taken
    with the commit blockjob and anything else which might write to the
    backing file).

  My understanding is that it is ready in qemu now, only problems are
vmstatesize, speed of merging on host server, and speed of block access
on host(must keep an external chain with length of two always).

Case 2:

  * Why take an LVM snapshot after the internal snapshot (block +
    vmstate)?

  My mistake, I think it is not reasonable and will be removed. Actually
because we lack an interface to export those internal data, so it is
hard to be used to form daily backup, only suits for desktop usage now.

Case 3:

  * What does "blank data" mean?  Besides that the use case
    makes sense.

  Will remove the words.

  * When discussing this use case in the past it was suggested that the
    guest doesn't need to be paused during the LVM snapshot.  Instead the
    QEMU block layer might be able to queue I/O requests, allowing the
    guest to run.

  That is a good idea, but seems need more work(event, block layer...),
hope it can be added as an enchancement of this case. Now let the
dedicated storage software/hardware take the job by pausing for a while
(<200ms?)

Case 4:

  * Like Case 2, the benefit isn't clear to me.  In a scenario where you
    use both QEMU and LVM snapshots there is now an extra management
    overhead of cleaning up 2 snapshots instead of just 1 when the user
    wants to delete a snapshot.  I think this will be a headache.

  My understanding is internal snapshots is obvious fast in both
deleting and reading, and I have similar questions, Dietmar, could
u tip more how you use this case while 2 snapshot layer exist?


I had trouble understanding the "General Summary", "Subtask Details",
"General Goals" sections.  Not much is explained, new words are used
without defining them, and the reader is left to puzzle together what
you're thinking.  But I think they can be dropped if we focus on the use
cases instead.

  OK, let's focus on cases now.

Here are the specific things I was wondering about before I skipped to
the use cases section:

"1 block device live snapshot as internal/external/blank delta data,
export sync API for all type."

  * What does "blank delta data" mean?  Sounds like an external snapshot.

  It is request draining case, sorry for bad spelling.

  * "all type" means both internal and external snapshots?

  Also include drain case.

  * I guess this point really means adding internal snapshot support to 
qmp_transaction()?

  internal snapshot and drain case.

"2 vmstate live save as internal/external data, export async API for
external data, fix the size problem."

  * I think the first part means the following:
    * Saving vmstate to external files.
    * Saving iteratively while the guest is running (like live migration).

  yes.

  * What is the "async API for external data"?

  API to start and query the progress, and related event should be
provided, now qemu have migration to file API, it will be enchanced or
most likely a new API dedicated for vmstate saving will be added.

  * What is the "size problem"?

  Now qemu streaming vmstate to file, that means file size will continue
growing before complete, and if the progress take too long there will
be many duplicated data got written, and the size may be too large.

"Subtask Details"

  * "static internal block snapshot + internal vmstate save" - this must
    be savevm.  And I guess "static" means that the user cannot combine
    it with other snapshot or live migration operations.

    The text is too brief and fails to define the new words it uses.

  Yes, this is hmp savevm command, I'll refine the words, thanks for
point it out.


Stefan



--
Best Regards

Wenchao Xia




reply via email to

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