[pve-devel] Sparse clone/move over a thin LVM ?

Alexandre DERUMIER aderumier at odiso.com
Thu Jul 28 10:39:10 CEST 2016


>>* From lvm thin to qcow2:
>>Since lvm-thin doesn't catch SEEK_DATA/SEEK_HOLE it'll consider the
>>entire device as being allocated and reaches the slow path for detectin
>>zeroes, this part should still work however and the qcow2 file should be
>>smaller.


>>>I'm not sure here, because when I convert a source nfs raw file to ceph rbd, it's full allocated.
>>
>>(because nfs (< 4.2) don't support seek_hole)

Sorry, it's working fine offline with qemu-img convert.
It's only online with drive-mirror that it's not working.



----- Mail original -----
De: "aderumier" <aderumier at odiso.com>
À: "Wolfgang Bumiller" <w.bumiller at proxmox.com>
Cc: "pve-devel" <pve-devel at pve.proxmox.com>
Envoyé: Jeudi 28 Juillet 2016 10:25:43
Objet: Re: [pve-devel] Sparse clone/move over a thin LVM ?

>>* From lvm thin to qcow2: 
>>Since lvm-thin doesn't catch SEEK_DATA/SEEK_HOLE it'll consider the 
>>entire device as being allocated and reaches the slow path for detectin 
>>zeroes, this part should still work however and the qcow2 file should be 
>>smaller. 


I'm not sure here, because when I convert a source nfs raw file to ceph rbd, it's full allocated. 

(because nfs (< 4.2) don't support seek_hole) 


----- Mail original ----- 
De: "Wolfgang Bumiller" <w.bumiller at proxmox.com> 
À: "aderumier" <aderumier at odiso.com> 
Cc: "pve-devel" <pve-devel at pve.proxmox.com> 
Envoyé: Jeudi 28 Juillet 2016 09:46:00 
Objet: Re: [pve-devel] Sparse clone/move over a thin LVM ? 

On Thu, Jul 28, 2016 at 07:20:21AM +0200, Alexandre DERUMIER wrote: 
> also wolfgang has added his zeroinit filter to qemu-img command some time ago, 
> so it should work. 

Like mentioned in another thread it doesn't cover 100% of the use cases, 
but should cover qcow2=>thin. 

(...) 
> 
> ----- Mail original ----- 
> De: "aderumier" <aderumier at odiso.com> 
> À: "dietmar" <dietmar at proxmox.com>, "pve-devel" <pve-devel at pve.proxmox.com> 
> Envoyé: Jeudi 28 Juillet 2016 06:52:39 
> Objet: Re: [pve-devel] Sparse clone/move over a thin LVM ? 
> 
> >>Why not fix qemu-img instead? 
> 
> This is strange, I am pretty sure that qemu-img was skipping zero writes 
> 
> 
> " '-S' indicates the consecutive number of bytes (defaults to 4k) that must\n" 
> " contain only zeros for qemu-img to create a sparse image during\n" 
> " conversion. If the number of bytes is 0, the source will not be scanned for\n" 
> " unallocated or zero sectors, and the destination image will always be\n" 
> " fully allocated\n" 
> 
> it should be sparse by default, until we setup "-S 0" 

* From qcow2 to lvm thin: 
It'll detect zeroes coming from the source via qcow2's metadata, this 
part works and makes it call blk_write_zeroes(). 
This calls the BlockDriver's bdrv_co_write_zeroes, which for devices 
ends up with a BLKZEROOUT ioctl(), which lvm-thin does not have a 
special case for so it literally zeroes out the entire devices. This is 
where the zeroinit filter kicks in: if the LV was just created and is 
thus not fully allocated it'll turn all file-extending zero-writes into 
seeks. 

* From lvm thin to qcow2: 
Since lvm-thin doesn't catch SEEK_DATA/SEEK_HOLE it'll consider the 
entire device as being allocated and reaches the slow path for detectin 
zeroes, this part should still work however and the qcow2 file should be 
smaller. 

_______________________________________________ 
pve-devel mailing list 
pve-devel at pve.proxmox.com 
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel 



More information about the pve-devel mailing list