>>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" <[email protected]> 
À: "Alexandre DERUMIER" <[email protected]> 
Cc: "qemu-devel" <[email protected]>, "Ceph Devel" 
<[email protected]> 
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 
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to