On 05/31/2011 07:06 PM, Marcelo Tosatti wrote:
On Sun, May 29, 2011 at 11:54:25AM +0300, Avi Kivity wrote:
> On 05/24/2011 12:31 AM, Marcelo Tosatti wrote:
> >Support live image copy + switch. That is, copy an image backing
> >a guest hard disk to a destination image (destination image must
> >be created separately), and switch to this copy.
> >
> >Command syntax:
> >
> >block_copy device filename [-i] -- live block copy device to image
> > -i for incremental copy (base image shared between src and
destination)
> >
> >Please refer to qmp-commands diff for more details.
>
> IMO it would have been nicer to use the mirror driver for all
> copying; there would be no STAGE_DIRTY; simply a background process
> that copies over all blocks, taking care not to conflict with
> ongoing writes.
Don't see the advantage of doing that.
No dirty logging
No conflict with migration
Simpler conceptually (IMO)
Disadvantages:
- Guest write performance is affected during copying (guest writes
compete with stream of writes from copy).
Competes anyway with your background task?
- Complexity to handle copy write conflict (there is no need to handle
that with current solution).
If new write from source A overlaps an in-flight write from source B,
hold it in a list off the B request, and re-issue it on B completion.
- Unability to have the mirror functionality in a separate driver.
Why?
> It would also remove the conflict with migration.
There is no fundamental problem with migration, its simply unsupported
now.
Why?
> But that's an implementation detail and can be changed later.
--
error compiling committee.c: too many arguments to function