qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Image streaming and live block copy


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] Image streaming and live block copy
Date: Sat, 18 Jun 2011 10:17:43 +0100

On Sat, Jun 18, 2011 at 10:15 AM, Stefan Hajnoczi <address@hidden> wrote:
> On Fri, Jun 17, 2011 at 1:31 PM, Marcelo Tosatti <address@hidden> wrote:
>> On Thu, Jun 16, 2011 at 04:30:18PM +0100, Stefan Hajnoczi wrote:
>>> On Thu, Jun 16, 2011 at 11:52:43AM -0300, Marcelo Tosatti wrote:
>>> This approach does not use the backing file feature?
>>>
>>> > blkstream block driver:
>>> >
>>> > - Maintain in memory whether given block is allocated in local image,
>>> > if not, read from remote, write to local. Set block as local.
>>> > Local and remote simply two block drivers from image streaming driver
>>> > POV.
>>> > - Once all blocks are local, notify mgmt so it can switch to local
>>> > copy.
>>> > - Writes are mirrored to source and destination, minding guest writes
>>> > over copy writes.
>>>
>>> We open the remote file read-only for image streaming and do not want to
>>> mirror writes.
>>
>> Why not? Is there any disadvantage of mirroring writes?
>
> Think of the use case with a Fedora master image over NFS.  You want a
> local clone of that master image and use the stream command to copy
> the data from the master image into the local clone.
>
> You cannot modify that master image because other VMs are using it too
> and/or you want to be able to clone new VMs from it in the future.

BTW the workaround is to create two local images:
1. Local clone with master image as a backing file.  This is the live
block copy source image.
2. Local image without a backing file.  This is the live block copy
destination image.

But this is not very elegant.  Writes get mirrored so that crash recovery works.

Compare that to image streaming, which works across crash and doesn't
duplicate I/O.

Stefan



reply via email to

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