qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] qemu drive-mirror to rbd storage : no sparse rbd image


From: Alexandre DERUMIER
Subject: Re: [Qemu-devel] qemu drive-mirror to rbd storage : no sparse rbd image
Date: Sun, 12 Oct 2014 12:33:45 +0200 (CEST)

>>These don't tell me much. Maybe it's better to show the actual commands and 
>>how
>>you tell sparse from no sparse?


Well,

I create 2 empty source images files of 10G. (source.qcow2 and source.raw)

then:

du -sh source.qcow2  : 2M
du -sh source.raw  : 0M


then I convert them with qemu-img convert : (source.qcow2 -> target.qcow2 , 
source.raw -> target.raw)

du -sh target.qcow2  : 2M
du -sh target.raw  : 0M

(So it's ok here)

But If I convert them with drive-mirror:

du -sh target.qcow2  : 11G
du -sh target.raw  : 11G



I have also double check with #df, and I see space allocated on filesystem when 
using drive-mirror.

I have the same behavior if target is a rbd storage.

Also I have done test again ext3,ext4, and I see the same problem than with xfs.


I'm pretty sure that drive-mirror copy zero block, qemu-img convert take around 
2s to convert the empty file
(because it's skipping zero block), and drive mirror take around 5min.

----- Mail original -----

De: "Fam Zheng" <address@hidden>
À: "Alexandre DERUMIER" <address@hidden>
Cc: "qemu-devel" <address@hidden>, "Ceph Devel" <address@hidden>
Envoyé: Samedi 11 Octobre 2014 10:25:35
Objet: Re: [Qemu-devel] qemu drive-mirror to rbd storage : no sparse rbd image

On Sat, 10/11 10:00, Alexandre DERUMIER wrote:
> >>What is the source format? If the zero clusters are actually unallocated in 
> >>the
> >>source image, drive-mirror will not write those clusters either. I.e. with
> >>"drive-mirror sync=top", both source and target should have the same 
> >>"qemu-img
> >>map" output.
>
> Thanks for your reply,
>
> I had tried drive mirror (sync=full) with
>
> raw file (sparse) -> rbd (no sparse)
> rbd (sparse) -> rbd (no sparse)
> raw file (sparse) -> qcow2 on ext4 (sparse)
> rbd (sparse) -> raw on ext4 (sparse)
>
> Also I see that I have the same problem with target file format on xfs.
>
> raw file (sparse) -> qcow2 on xfs (no sparse)
> rbd (sparse) -> raw on xfs (no sparse)
>

These don't tell me much. Maybe it's better to show the actual commands and how
you tell sparse from no sparse?

Does "qcow2 -> qcow2" work for you on xfs?

>
> I only have this problem with drive-mirror, qemu-img convert seem to simply 
> skip zero blocks.
>
>
> Or maybe this is because I'm using sync=full ?
>
> What is the difference between full and top ?
>
> ""sync": what parts of the disk image should be copied to the destination;
> possibilities include "full" for all the disk, "top" for only the sectors
> allocated in the topmost image".
>
> (what is topmost image ?)

For "sync=top", only the clusters allocated in the image itself is copied; for
"full", all those clusters allocated in the image itself, and its backing
image, and it's backing's backing image, ..., are copied.

The image itself, having a backing image or not, is called the topmost image.

Fam



reply via email to

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