Hello community,
I would like to ask if there is a way to do a sparse blockdev-mirror from a host_device to ceph RBD object. I saw rbd driver has already implemented write_zeroes as well as block_status such that a blockdev-mirror rbd object from one ceph pool to another is sparsed but when I try to block-copy from SAN based mulitpath device mapper (host_device) to RBD, the rbd image is still filled with zeroes. Right now, my workaround seems to enable detect_zeroes and make granularity larger than rbd object size (2^22 for example). but detect_zeroes will on the other hand causes intensive unnecessary computations.
after skimming through the code base, my current impression is that host_device does not implement with a block_status method so somehow it could not determine holes.
My question is there way to determine if a host_device is sparsed? or if it not possible, is it possible to switch on detect_zeroes during blocdev-mirror and disable it when the copy completes? thank you.
--
Best Regards,
Jiatong Shen