>>* 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" <aderum...@odiso.com> À: "Wolfgang Bumiller" <w.bumil...@proxmox.com> Cc: "pve-devel" <pve-devel@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.bumil...@proxmox.com> À: "aderumier" <aderum...@odiso.com> Cc: "pve-devel" <pve-devel@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" <aderum...@odiso.com> > À: "dietmar" <diet...@proxmox.com>, "pve-devel" <pve-devel@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@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel