Ceph卷实时迁移

RBD卷可以在同一群集内的不同池之间或不同卷格式和布局之间实时迁移。 启动后,源卷将被深层复制到目标卷,拉出所有快照历史记录,并有选择地保留到源卷父级的任何链接,以帮助保持稀疏性。

使用新的目标卷时,此复制过程可以在后台安全地运行。 当前需要在准备迁移之前暂时停止使用源卷。 这有助于确保使用卷的客户端已更新为指向新的目标卷。

注意

卷实时迁移需要Ceph Nautilus版本或更高版本。 krbd内核模块目前不支持实时迁移。

实时迁移过程包括三个步骤:

  1. 准备迁移: 初始步骤将创建新的目标卷,并交叉链接源卷和目标卷。 与分层卷相似,尝试读取目标卷中未初始化的扩展块将在内部将读取重定向到源卷,并且写入目标中的未初始化扩展块将在内部将重叠的源卷块深层复制到目标卷。
  2. 执行迁移: 这是将所有初始化块从源卷深度复制到目标的后台操作。此步骤可以在客户端主动使用新目标卷时运行。
  3. 完成迁移: 后台迁移过程完成后,即可提交或中止迁移。 提交迁移将删除源卷和目标卷之间的交叉链接,并删除源卷。 中止迁移将删除交叉链接,并删除目标卷。

准备迁移

通过运行rbd migration prepare命令来启动实时迁移过程,并提供源和目标卷:

$ rbd migration prepare migration_source [migration_target]

rbd migration prepare命令接受与rbd create命令相同的所有可选布局,从而可以更改不可变的卷磁盘布局。 如果目标只是更改磁盘布局,并保留原始卷名称,则可以跳过migration_target。

在准备实时迁移之前,必须停止使用源卷的所有客户端。如果准备步骤发现任何正在运行的客户端以读/写模式打开卷,则该步骤将失败。准备步骤完成后,可以使用新的目标卷名称重启客户端。尝试使用源卷名称重启客户端将导致失败。

rbd status命令将显示实时迁移的当前状态:

$ rbd status migration_target
Watchers: none
Migration:
            source: rbd/migration_source (5e2cba2f62e)
            destination: rbd/migration_target (5e2ed95ed806)
            state: prepared

请注意,源卷将被移至RBD回收站,以避免在迁移过程中错误使用:

$ rbd info migration_source
rbd: error opening image migration_source: (2) No such file or directory
$ rbd trash ls --all
5e2cba2f62e migration_source

执行迁移

准备实时迁移后,必须将源卷中的卷块复制到目标卷中。 这是通过运行rbd migration execute命令来完成的:

$ rbd migration execute migration_target
Image migration: 100% complete...done.

rbd status命令还将提供有关迁移块深度复制过程进度的反馈:

$ rbd status migration_target
Watchers:
    watcher=1.2.3.4:0/3695551461 client.123 cookie=123
Migration:
            source: rbd/migration_source (5e2cba2f62e)
            destination: rbd/migration_target (5e2ed95ed806)
            state: executing (32% complete)

提交迁移

一旦实时迁移完成了将所有数据块从源卷复制到目标的深度复制,就可以提交迁移:

$ rbd status migration_target
Watchers: none
Migration:
            source: rbd/migration_source (5e2cba2f62e)
            destination: rbd/migration_target (5e2ed95ed806)
            state: executed
$ rbd migration commit migration_target
Commit image migration: 100% complete...done.

如果migration_source卷是一个或多个克隆的父卷,则在确保所有后代克隆卷均未使用后,需要指定–force选项。

进行实时迁移将删除源卷和目标卷之间的交叉链接,并删除源卷:

$ rbd trash list --all

中止迁移

如果要还原准备或执行步骤,请运行rbd migration abort命令以还原迁移过程:

$ rbd migration abort migration_target
Abort image migration: 100% complete...done.

中止迁移将导致目标卷被删除,并恢复对原始源卷的访问:

$ rbd ls
migration_source
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值