[pve-devel] drive-mirror to rbd don't do thin provisioning .

Dietmar Maurer dietmar at proxmox.com
Wed Oct 8 09:03:08 CEST 2014


> It's working fine with backup-restore.
> 
> I have check the code of rbd block driver,
> 
> and it's seem to miss the bdrv_co_write_zeroes feature.
> 
> (Which is not use by backup-restore).

in block/backup.c:

      if (buffer_is_zero(iov.iov_base, iov.iov_len)) {
            if (job->dump_cb) {
	# Note: passing NULL is same as write_zeroes ...
                ret = job->dump_cb(job->common.opaque, job->target, start_sec, n, NULL);
            }
            if (job->target) {
                ret = bdrv_co_write_zeroes(job->target, start_sec, n, BDRV_REQ_MAY_UNMAP);
            }

and for restore we simply skip regions with zero (sparse file).

> Dietmar, could you confirm that bdrv_co_write_zeroes could be the problem ?
>
> (I think you have a better understanding of this code ?)

Sorry, but I don't really understand the code in block/mirror.c. But I cannot see any 
code to handle zero regions ...

> I'll ask to the ceph and qemu mailing, but I would like to have confirmation
> before ask.

Yes, please ask there.




More information about the pve-devel mailing list