[Top][All Lists]

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

Re: [Qemu-block] [PATCH] mirror: add target-zeroed flag

From: Denis V. Lunev
Subject: Re: [Qemu-block] [PATCH] mirror: add target-zeroed flag
Date: Fri, 3 Jun 2016 18:45:49 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1

On 06/03/2016 06:06 PM, Eric Blake wrote:
On 06/03/2016 08:05 AM, Vladimir Sementsov-Ogievskiy wrote:
Add target-zeroed flag to allow user specify that target is already
zeroed. With this flag set zeroes which was in source before mirror
start will not be copyed.
With this flag set, any runs of zeroes in the source before the mirror
starts will not be copied.

Without this libvirt migration of empty disk takes too long time.

Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>

I've tested it with
time virsh migrate --live test qemu+ssh://other_node/system --copy-storage-all
Presumably with a libvirt patch to turn on the optional flag.

I'm not sure I like this patch.  Libvirt uses NBD to implement
--copy-storage-all, I think we're better off improving NBD to
automatically handle sparse writes, than we are to add a one-off hack
that requires libvirt to change.  That is, once NBD is smarter, the copy
will be faster without needing a tweak.  And we ARE working on making
NBD smarter (one of my goals for the 2.7 release is to get all the
sparse file additions to NBD implemented)

That said, I'll still review it.
this is not enough, definitely.

There is a problem that mirror_iteration code sleeps even for
not read zeroes (and this IS slow). Moreover, even sending sparcified
zeroes takes a lot of time for round trips.

We have started with that and spent a lot of time trying to improve
the situation.

Also, as a side note, the QCOW2 file on a source and a target will
be different without the flag - original image has empty blocks,
target image will have blocks explicitly marked with zeroes.

Though this is a matter of taste... For us this approach is the simplest.


reply via email to

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