5.7. 镜像 Ceph 块设备的管理

作为存储管理员,您可以执行各种任务来帮助您管理 Ceph 块设备镜像环境。您可以执行以下任务:

  • 查看有关存储群集对等点的信息.
  • 添加或删除对等存储群集。
  • 获取池或镜像的镜像状态。
  • 启用对池或镜像的镜像。
  • 禁用对池或镜像的镜像。
  • 延迟块设备复制。
  • 提升和降级镜像。

5.7.1. 先决条件

  • 至少运行两个健康的 Red Hat Ceph Storage 集群。
  • 对 Ceph 客户端节点的根级别访问权限。
  • 单向或双向 Ceph 块设备镜像关系。

5.7.2. 查看有关同级的信息

查看有关存储集群对等点的信息。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点的根级别访问权限。

流程

  1. 查看对等点的信息:

    语法

    rbd mirror pool info POOL_NAME

    示例

    [root@rbd-client ~]# rbd mirror pool info data
    Mode: pool
    Site Name: site-a
    
    Peer Sites:
    
    UUID: 950ddadf-f995-47b7-9416-b9bb233f66e3
    Name: site-b
    Mirror UUID: 4696cd9d-1466-4f98-a97a-3748b6b722b3
    Direction: rx-tx
    Client: client.site-b

5.7.3. 启用对池的镜像

在两个对等集群中运行以下命令,在池上启用镜像功能。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点的根级别访问权限。

流程

  1. 在池上启用镜像:

    语法

    rbd mirror pool enable POOL_NAME MODE

    示例

    [root@rbd-client ~]# rbd mirror pool enable data pool

    这个示例启用对名为 data 的完整池进行镜像。

    示例

    [root@rbd-client ~]# rbd mirror pool enable data image

    这个示例在名为 data 的池上启用镜像模式镜像。

其它资源

5.7.4. 禁用对池的镜像

在禁用镜像前,删除对等集群。

注意

当您禁用对池的镜像时,您还会在池中在镜像模式中单独启用镜像的镜像禁用它。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点的根级别访问权限。

流程

  1. 在池上禁用镜像:

    语法

    rbd mirror pool disable POOL_NAME

    示例

    [root@rbd-client ~]# rbd mirror pool disable data

    此示例禁用名为 data 的池的镜像。

其它资源

5.7.5. 启用镜像镜像

在两个对等存储集群中,以镜像模式对整个池启用镜像功能。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点的根级别访问权限。

流程

  1. 为池中的特定镜像启用镜像功能:

    语法

    rbd mirror image enable POOL_NAME/IMAGE_NAME

    示例

    [root@rbd-client ~]# rbd mirror image enable data/image2

    本例启用对 data 池中的 image2 镜像启用镜像。

其它资源

  • 详情请参阅 Red Hat Ceph Storage Block Device 指南 中的 对池启用镜像部分。

5.7.6. 禁用镜像镜像

禁用镜像的镜像。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点的根级别访问权限。

流程

  1. 禁用特定镜像的镜像:

    语法

    rbd mirror image disable POOL_NAME/IMAGE_NAME

    示例

    [root@rbd-client ~]# rbd mirror image disable data/image2

    本例禁用 data 池中 image2 镜像的镜像。

5.7.7. 镜像提升和降级

提升或降级镜像。

注意

不要强制提升仍在同步的非主镜像,因为镜像在提升后无效。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点的根级别访问权限。

流程

  1. 将镜像降级为非主要镜像:

    语法

    rbd mirror image demote POOL_NAME/IMAGE_NAME

    示例

    [root@rbd-client ~]# rbd mirror image demote data/image2

    本例降级 data 池中的 image2 镜像。

  2. 将镜像提升为主要步骤:

    语法

    rbd mirror image promote POOL_NAME/IMAGE_NAME

    示例

    [root@rbd-client ~]# rbd mirror image promote data/image2

    本例提升了 data 池中的 image2

    根据您使用的镜像类型,请参阅通过单向镜像从灾难中恢复,或者通过双向镜像从灾难中恢复

  3. 使用 --force 选项强制提升非主镜像:

    语法

    rbd mirror image promote --force POOL_NAME/IMAGE_NAME

    示例

    [root@rbd-client ~]# rbd mirror image promote --force data/image2

    当降级无法传播到对等 Ceph 存储群集时,请使用强制提升。例如,由于集群失败或通信中断。

其它资源

  • 有关详细信息,请参阅 Red Hat Ceph Storage 块设备指南中的故障切换部分。

5.7.8. 镜像重新同步

重新同步镜像.如果两个对等集群之间状态不一致,rbd-mirror 守护进程不会尝试镜像导致不一致的镜像。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点的根级别访问权限。

流程

  1. 请求主镜像重新同步:

    语法

    rbd mirror image resync POOL_NAME/IMAGE_NAME

    示例

    [root@rbd-client ~]# rbd mirror image resync data/image2

    这个示例请求在 data 池中重新同步 image2

其它资源

5.7.9. 添加存储集群对等集群

rbd-mirror 守护进程添加一个存储集群 peer,以发现其对等存储集群。例如,要将 site-a 存储集群添加为 site-b 存储集群的对等点,然后从 site-b 存储集群中的客户端节点按照以下步骤操作。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点的根级别访问权限。

流程

  1. 将 peer 注册到池:

    语法

    rbd --cluster CLUSTER_NAME mirror pool peer add POOL_NAME PEER_CLIENT_NAME@PEER_CLUSTER_NAME -n CLIENT_NAME

    示例

    [root@rbd-client ~]# rbd --cluster site-b mirror pool peer add data client.site-a@site-a -n client.site-b

5.7.10. 删除存储集群 peer

通过指定对等 UUID 来删除存储群集 peer。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点的根级别访问权限。

流程

  1. 指定池名称和同级通用唯一标识符 (UUID)。

    语法

    rbd mirror pool peer remove POOL_NAME PEER_UUID

    示例

    [root@rbd-client ~]# rbd mirror pool peer remove data 7e90b4ce-e36d-4f07-8cbc-42050896825d

    提示

    若要查看对等 UUID,可使用 rbd mirror pool info 命令。

5.7.11. 获取池的镜像状态

获取池的镜像状态。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点的根级别访问权限。

流程

  1. 获取镜像池概述:

    语法

    rbd mirror pool status POOL_NAME

    示例

    [root@rbd-client ~]# rbd mirror pool status data
    health: OK
    images: 1 total

    提示

    要输出池中每个镜像的状态详情,请使用 --verbose 选项。

5.7.12. 获取单个镜像的镜像状态

获取镜像的镜像状态。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点的根级别访问权限。

流程

  1. 获取已镜像镜像的状态:

    语法

    rbd mirror image status POOL_NAME/IMAGE_NAME

    示例

    [root@rbd-client ~]# rbd mirror image status data/image2
    image2:
      global_id:   703c4082-100d-44be-a54a-52e6052435a5
      state:       up+replaying
      description: replaying, master_position=[object_number=0, tag_tid=3, entry_tid=0], mirror_position=[object_number=0, tag_tid=3, entry_tid=0], entries_behind_master=0
      last_update: 2019-04-23 13:39:15

    本例获取 data 池中 image2 镜像的状态。

5.7.13. 延迟块设备复制

无论您使用的是单向复制还是双向复制,您都可以延迟 RADOS 块设备 (RBD) 镜像镜像之间的复制。如果您要在复制到次要镜像之前恢复对主镜像的更改,则可能需要实施延迟复制。

为实施延迟复制,目标存储集群内的 rbd-mirror 守护进程应设置 rbd_mirroring_replay_delay = MINIMUM_DELAY_IN_SECONDS 配置选项。此设置可以在 rbd-mirror 守护进程使用的 ceph.conf 文件中全局应用,也可以在单个镜像基础上应用。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 节点的根级别访问权限。

流程

  1. 要使用特定镜像的延迟复制,在主镜像上运行以下 rbd CLI 命令:

    语法

    rbd image-meta set POOL_NAME/IMAGE_NAME conf_rbd_mirroring_replay_delay MINIMUM_DELAY_IN_SECONDS

    示例

    [root@rbd-client ~]# rbd image-meta set vms/vm-1 conf_rbd_mirroring_replay_delay 600

    本例在 vms 池中设置镜像 vm-1 的最小复制延迟 10 分钟。

5.7.14. 异步更新和 Ceph 块设备镜像

使用带有异步更新的 Ceph 块设备镜像来更新存储集群时,请遵循 Red Hat Ceph Storage 安装指南中的更新说明。完成更新后,重新启动 Ceph 块设备实例。

注意

在重启实例时不需要按照一定顺序进行。红帽建议重启实例,使其指向主镜像池,然后实例指向镜像池。

5.7.15. 创建镜像 mirror-snapshot

在使用基于快照的镜像功能时,创建镜像 mirror-snapshot,以镜像 RBD 镜像已更改的内容。

先决条件

  • 至少运行两个健康的 Red Hat Ceph Storage 集群。
  • 对 Red Hat Ceph Storage 集群的 Ceph 客户端节点的根级别访问权限。
  • 具有管理员级别功能的 CephX 用户。
  • 访问创建快照镜像的 Red Hat Ceph Storage 集群。
重要

默认情况下,每个镜像只能创建 3 个镜像 mirror-snapshot。如果达到限制,则最新镜像 mirror-snapshot 会自动被删除。如果需要,可以通过 rbd_mirroring_max_mirroring_snapshots 配置覆盖限制。镜像 mirror-snapshot 会在镜像被删除或禁用镜像时自动删除。

流程

  1. 创建 image-mirror 快照:

    语法

    rbd --cluster CLUSTER_NAME mirror image snapshot POOL_NAME/IMAGE_NAME

    示例

    root@rbd-client ~]# rbd --cluster site-a mirror image snapshot data/image1

其它资源

5.7.16. 调度 mirror-snapshot

在定义 mirror-snapshot 调度时,可以自动创建 mirror-snapshots。mirror-snapshot 可以按池或镜像级别进行全局调度。可以在任何级别上定义多个 mirror-snapshot 调度,但只有与单个镜像的镜像匹配的最具体的快照调度才会运行。

其它资源

5.7.17. 创建 mirror-snapshot 调度

创建 mirror-snapshot 调度。

先决条件

  • 至少运行两个健康的 Red Hat Ceph Storage 集群。
  • 对 Red Hat Ceph Storage 集群的 Ceph 客户端节点的根级别访问权限。
  • 具有管理员级别功能的 CephX 用户。
  • 访问创建快照镜像的 Red Hat Ceph Storage 集群。

流程

  1. 创建 mirror-snapshot 调度:

    语法

    rbd mirror snapshot schedule add --pool POOL_NAME --image IMAGE_NAME INTERVAL START_TIME

    间隔可以分别使用 d、h 或 m 后缀以天、小时或分钟为单位指定。可选的 START_TIME 可以使用 ISO 8601 时间格式指定。

    示例

    在镜像级别调度:

    [root@rbd-client ~]# rbd mirror snapshot schedule add --pool data --image image1 6h

    在池级别调度:

    [root@rbd-client ~]# rbd mirror snapshot schedule add --pool data 24h 14:00:00-05:00

    按全局级别调度:

    [root@rbd-client ~]# rbd mirror snapshot schedule add 48h

其它资源

5.7.18. 列出特定级别的所有快照计划

列出特定级别的所有快照计划。

先决条件

  • 至少运行两个健康的 Red Hat Ceph Storage 集群。
  • 对 Red Hat Ceph Storage 集群的 Ceph 客户端节点的根级别访问权限。
  • 具有管理员级别功能的 CephX 用户。
  • 访问创建快照镜像的 Red Hat Ceph Storage 集群。

流程

  1. 使用可选池或镜像名称列出特定全局、池或镜像级别的所有快照调度:

    语法

    rbd --cluster site-a mirror snapshot schedule ls --pool POOL_NAME --recursive

    此外,还可指定 `--recursive 选项来列出指定级别的所有调度,如下所示:

    示例

    [root@rbd-client ~]# rbd --cluster site-a mirror snapshot schedule ls --pool data --recursive
    POOL        NAMESPACE IMAGE  SCHEDULE
    data         -         -      every 1d starting at 14:00:00-05:00
    data         -        image1   every 6h

其它资源

5.7.19. 删除 mirror-snapshot 调度

删除 mirror-snapshot 调度。

先决条件

  • 至少运行两个健康的 Red Hat Ceph Storage 集群。
  • 对 Red Hat Ceph Storage 集群的 Ceph 客户端节点的根级别访问权限。
  • 具有管理员级别功能的 CephX 用户。
  • 访问创建快照镜像的 Red Hat Ceph Storage 集群。

流程

  1. 删除 mirror-snapshot 调度:

    语法

    rbd --cluster CLUSTER_NAME mirror snapshot schedule remove POOL_NAME/IMAGE_NAME INTERVAL START_TIME

    间隔可以分别使用 d、h 和 m 后缀来以天数、小时或分钟为单位指定。可选的 START_TIME 可以使用 ISO 8601 时间格式指定。

    示例

    [root@rbd-client ~]# rbd --cluster site-a mirror snapshot schedule remove data/image1 6h

    示例

    [root@rbd-client ~]# rbd --cluster site-a mirror snapshot schedule remove data/image1 24h 14:00:00-05:00

其它资源

5.7.20. 查看要创建的下一个快照的状态

查看要为基于快照的镜像 RBD 镜像创建下一快照的状态。

先决条件

  • 至少运行两个健康的 Red Hat Ceph Storage 集群。
  • 对 Red Hat Ceph Storage 集群的 Ceph 客户端节点的根级别访问权限。
  • 具有管理员级别功能的 CephX 用户。
  • 访问创建快照镜像的 Red Hat Ceph Storage 集群。

流程

  1. 查看要创建的下一个快照的状态:

    语法

    rbd --cluster site-a mirror snapshot schedule status POOL_NAME/IMAGE_NAME

    示例

    [root@rbd-client ~]# rbd --cluster site-a mirror snapshot schedule status
    SCHEDULE    TIME       IMAGE
    2020-02-26 18:00:00 data/image1

其它资源