qemu-img 在不同 ceph 集群之间转换 rbd 卷加速

问题描述

是否有一种优雅的方式将 RBD 卷复制到另一个 Ceph 集群?

我计算了 qemu-img 2.5 版本或 qemu-img 6.0 版本的转换时间方法是将一个卷(容量为 2.5T,仅使用 18G)复制到另一个 Ceph 集群。

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]

测试 qemu-img convert 结果:

qemu-img 2.5 花费 2 小时 40 分钟,没有选项参数:

enter image description here

qemu-img 6.0 花费 3 小时 3 分钟 和选项参数 (-m 16 -W -S 4k):

enter image description here

问题:

1、为什么2.5版本只写磁盘容量(18G),而6.0版本写孔磁盘2.5T?

2、如何使用qemu-img(2.5或6.0版本)加速将RBD卷转换到另一个Ceph集群或者有其他方法吗?

解决方法

主要功能是qemu-img convert -n -n 选项参数。

如果使用 '-n' skips the target volume creation (useful if the volume is created prior to running qemu-img) 参数转换磁盘,它将把空磁盘能力写入目标 rbd 卷。没有它,qemu-img convert 只会读取源卷使用的功能并将它们写入目标卷

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...