copyqemuvolumeacceleratelibrbd

qemu-img convert rbd volumes between different ceph clusters accelerate


Is there an elegant way to copy an RBD volume to another Ceph cluster?

I calculate the convert time with qemu-img 2.5 version or qemu-img 6.0 version, by copying a volume(capability is 2.5T and 18G only used) to another Ceph cluster.

qemu-img [2.5 or 6.0] convert -p -f raw rbd:pool_1/volume-orig_id:id=cinder:conf=1_ceph.conf:keyring=1_ceph.client.cinder.keyring -O raw rbd:pool_2/volume-new_id:id=cinder:conf=2_ceph.conf:keyring=2_ceph.client.cinder.keyring [-n -m 16 -W -S 4k]

Test qemu-img convert result:

qemu-img 2.5 spend 2 hours and 40 minutes with no option parameter:

enter image description here

qemu-img 6.0 spend 3 hours and 3 minutes with option parameter (-m 16 -W -S 4k):

enter image description here

Questions:

1, why 2.5 version write only used disk capability(18G), but 6.0 version write the hole disk 2.5T?

2, how to use qemu-img (2.5 or 6.0 version) accelerating convert RBD volume to another Ceph cluster or there is some other ways to approach?


Solution

  • The main feature is qemu-img convert -n the -n option parameter.

    If convert the disk with '-n' skips the target volume creation (useful if the volume is created prior to running qemu-img) parameter, it will write the hole disk capability to the destination rbd volume. Without it, the qemu-img convert only read the source volume used capability and write them to destination volume