3.4. 准备实时迁移过程
您可以在同一 Red Hat Ceph Storage 集群中为 RBD 镜像准备默认的实时迁移过程。rbd migration prepare
命令接受与 rbd create
命令相同的所有布局选项。rbd create
命令允许更改不可变镜像的磁盘上的布局。如果您只想更改磁盘布局并希望保留原始镜像名称,请跳过 migration_target
参数。在准备实时迁移之前,所有使用源镜像的客户端都必须停止。如果准备步骤发现任何在读/写模式下打开的镜像的客户端,则准备
步骤将失败。在准备
步骤完成后,您可以使用新目标镜像重启客户端。
您不能使用源镜像重启客户端,因为它会导致失败。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 两个块设备池。
- 一个块设备镜像。
克隆的镜像在导入过程中隐式扁平化(使用 --import-only
参数),这些镜像在迁移到另一个 Ceph 集群时从源集群中的任何父链中分离。
流程
可选: 如果要将镜像从一个 Ceph 集群迁移到另一个 Ceph 集群,请将两个集群的
ceph.conf
和ceph.client.admin.keyring
复制到一个通用节点。这样可确保客户端节点可访问两个集群进行迁移。示例
将 cluster c1 的
ceph.conf
和ceph.client.admin.keyring
复制到一个通用节点:[root@rbd1-client /]# scp /etc/ceph/ceph.conf root@10.0.67.67:/etc/ceph/c1.conf root@10.0.67.67's password: ceph.conf 100% 263 1.2MB/s 00:00 [root@rbd1-client /]# scp /etc/ceph/ceph.client.admin.keyring root@10.0.67.67:/etc/ceph/c1.keyring root@10.0.67.67's password: ceph.client.admin.keyring
将
ceph.conf
和ceph.client.admin.keyring
的集群 c2 复制到一个通用节点:[root@rbd2-client]# scp /etc/ceph/ceph.conf root@10.0.67.67:/etc/ceph/c2.conf ceph.conf 100% 261 864.5KB/s 00:00 [root@rbd2-client]# scp /etc/ceph/ceph.client.admin.keyring root@10.0.67.67:/etc/ceph/c2.keyring root@10.0.67.67's password: ceph.client.admin.keyring
在存储集群中准备实时迁移:
语法
rbd migration prepare SOURCE_POOL_NAME/SOURCE_IMAGE_NAME TARGET_POOL_NAME/SOURCE_IMAGE_NAME
示例
[ceph: root@rbd-client /]# rbd migration prepare sourcepool1/sourceimage1 targetpool1/sourceimage1
或者
如果要重命名源镜像:
语法
rbd migration prepare SOURCE_POOL_NAME/SOURCE_IMAGE_NAME TARGET_POOL_NAME/NEW_SOURCE_IMAGE_NAME
示例
[ceph: root@rbd-client /]# rbd migration prepare sourcepool1/sourceimage1 targetpool1/newsourceimage1
在示例中,
newsourceimage1
是重命名的源镜像。您可以使用以下命令检查实时迁移过程的当前状态:
语法
rbd status TARGET_POOL_NAME/SOURCE_IMAGE_NAME
示例
[ceph: root@rbd-client /]# rbd status targetpool1/sourceimage1 Watchers: none Migration: source: sourcepool1/sourceimage1 (adb429cb769a) destination: targetpool2/testimage1 (add299966c63) state: prepared
重要在迁移过程中,源镜像被移到 RBD 回收站中,以防止使用错误。
示例
[ceph: root@rbd-client /]# rbd info sourceimage1 rbd: error opening image sourceimage1: (2) No such file or directory
示例
[ceph: root@rbd-client /]# rbd trash ls --all sourcepool1 adb429cb769a sourceimage1