6.4. 镜像 Ceph 块设备的管理


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

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

先决条件

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

6.4.1. 查看有关同级的信息

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

先决条件

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

流程

  1. 查看对等点的信息:

    语法

    rbd mirror pool info POOL_NAME

    示例

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

6.4.2. 启用对池的镜像

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

先决条件

  • 一个正在运行的 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 的池上启用镜像模式镜像。

其它资源

6.4.3. 禁用对池的镜像

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

注意

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

先决条件

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

流程

  1. 在池上禁用镜像:

    语法

    rbd mirror pool disable POOL_NAME

    示例

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

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

6.4.4. 启用命名空间镜像

您可以在池中的一个命名空间中配置镜像功能。必须已经启用池以进行镜像。将命名空间镜像到远程集群(次要集群)的远程池中具有相同或不同名称的命名空间。

您可以使用-- remote-namespace 选项,将命名空间镜像到远程池中具有不同名称的命名空间。命名空间的默认行为是镜像到远程池中具有相同名称的命名空间。

先决条件

  • 节点的根级别访问权限。
  • 2 运行 Red Hat Ceph Storage 集群。
  • 两个集群中都启用了 rbd-mirror 守护进程服务。
  • 为添加命名空间的池启用镜像功能。

流程

  • 在要在命名空间上启用镜像的两个集群中运行以下命令。

    语法

    rbd mirror pool enable POOL_NAME/LOCAL_NAMESPACE_NAME _MODE --remote-namespace REMOTE_NAMESPACE_NAME

    注意

    --remote-namespace 参数是可选的。

    镜像模式可以是 imagepool

  • 镜像 模式 :在镜像模式中配置时,必须在每个镜像上 显式启用 镜像。
  • 池模式(默认): 在池 模式中配置时,所有启用了日志记录功能的镜像都会被镜像。

    示例

    [root@rbd-client ~]# rbd mirror pool enable image-pool/namespace-a image --remote-namespace namespace-b
    
    Remote cluster:
    [root@rbd-client ~]#  rbd mirror pool enable image-pool/namespace-b image --remote-namespace namespace-a

    本例启用第一个集群上的 image-pool/namespace-a 镜像模式镜像(mirror)和第二个集群上的 image-pool/namespace-b 镜像模式。

第一个集群上的命名空间和远程命名空间必须分别与远程集群中的远程命名空间和命名空间匹配。

注意

如果没有提供 -remote-namespace 选项,则命名空间会镜像到远程池中具有相同名称的命名空间。

6.4.5. 禁用命名空间镜像

您可以在命名空间中禁用 Ceph Block Device 镜像。

先决条件

  • 正在运行的 Red Hat Ceph Storage 集群。
  • 节点的根级别访问权限。
  • 如果在镜像模式中配置,则必须在命名空间中禁用镜像前明确禁用命名空间中的 镜像

流程

  • 在您要在命名空间中禁用镜像的两个集群中运行以下命令。

    语法

    rbd mirror pool disable POOL_NAME/NAMESPACE_NAME

    示例

    [root@rbd-client ~]# rbd mirror pool disable image-pool/namespace-a
    [root@rbd-client ~]# rbd mirror pool disable image-pool/namespace-b

要启用具有不同远程命名空间的命名空间,必须在重新启用它们前禁用这两个集群上的命名空间和对应的远程命名空间。

6.4.6. 启用镜像镜像

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

先决条件

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

流程

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

    语法

    rbd mirror image enable POOL_NAME/IMAGE_NAME

    示例

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

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

其它资源

6.4.7. 禁用镜像镜像

您可以在镜像中禁用 Ceph Block Device 镜像。

先决条件

  • 一个运行的 Red Hat Ceph Storage 集群,带有基于快照的镜像配置。
  • 节点的根级别访问权限。

流程

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

    语法

    rbd mirror image disable POOL_NAME/IMAGE_NAME

    示例

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

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

其它资源

6.4.8. 镜像提升和降级

您可以升级或降级池中的镜像。

注意

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

先决条件

  • 一个运行的 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

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

    语法

    rbd mirror image promote --force POOL_NAME/IMAGE_NAME

    示例

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

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

其它资源

6.4.9. 镜像重新同步

您可以重新同步镜像。如果两个对等集群之间状态不一致,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

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

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

6.4.11. 删除存储集群 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 命令。

6.4.12. 获取池的镜像状态

您可获取存储集群中池的镜像状态。

先决条件

  • 一个运行的 Red Hat Ceph Storage 集群,带有基于快照的镜像配置。
  • 节点的根级别访问权限。

流程

  1. 获取镜像池概述:

    语法

    rbd mirror pool status POOL_NAME

    示例

    [root@site-a ~]# rbd mirror pool status data
    health: OK
    daemon health: OK
    image health: OK
    images: 1 total
        1 replaying

    提示

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

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

您可以通过运行 mirror image status 命令获取镜像的镜像状态。

先决条件

  • 一个运行的 Red Hat Ceph Storage 集群,带有基于快照的镜像配置。
  • 节点的根级别访问权限。

流程

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

    语法

    rbd mirror image status POOL_NAME/IMAGE_NAME

    示例

    [root@site-a ~]# rbd mirror image status data/image2
    image2:
      global_id:   1e3422a2-433e-4316-9e43-1827f8dbe0ef
      state:       up+unknown
      description: remote image is non-primary
      service:     pluto008.yuoosv on pluto008
      last_update: 2021-10-06 09:37:58

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

6.4.14. 延迟块设备复制

无论您使用的是单向复制还是双向复制,您都可以延迟 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 分钟。

6.4.15. 将基于日志的镜像转换为基于快照的镜像

您可以通过禁用镜像并启用快照,将基于日志的镜像转换为基于快照的镜像。

先决条件

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

流程

  1. 登录到 Cephadm shell:

    示例

    [root@rbd-client ~]# cephadm shell

  2. 为池中的特定镜像禁用镜像功能:

    语法

    rbd mirror image disable POOL_NAME/IMAGE_NAME

    示例

    [ceph: root@rbd-client /]# rbd mirror image disable mirror_pool/mirror_image
    Mirroring disabled

  3. 为镜像启用基于快照的镜像:

    语法

    rbd mirror image enable POOL_NAME/IMAGE_NAME snapshot

    示例

    [ceph: root@rbd-client /]# rbd mirror image enable mirror_pool/mirror_image snapshot
    Mirroring enabled

    本例为 mirror_pool 池中 mirror_image 镜像启用基于快照的镜像功能。

6.4.16. 创建镜像 mirror-snapshot

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

先决条件

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

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

流程

  • 创建 image-mirror 快照:

    语法

    rbd --cluster CLUSTER_NAME mirror image snapshot POOL_NAME/IMAGE_NAME

    示例

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

其它资源

6.4.17. 调度 mirror-snapshot

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

6.4.17.1. 创建 mirror-snapshot 调度

您可以使用 snapshot schedule 命令创建 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 add --pool POOL_NAME --image IMAGE_NAME INTERVAL [START_TIME]

    只有在集群名称与默认名称 ceph 不同时,才应使用 CLUSTER_NAME。间隔可以分别使用 d、h 或 m 后缀以天、小时或分钟为单位指定。可选的 START_TIME 可以使用 ISO 8601 时间格式指定。

    示例

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

    示例

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

其它资源

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

您可以在特定级别列出所有快照计划。

先决条件

  • 至少运行两个健康的 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 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

其它资源

6.4.17.3. 删除 mirror-snapshot 调度

您可以使用 snapshot schedule remove 命令删除 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 POOL_NAME --image IMAGE_NAME INTERVAL START_TIME

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

    示例

    [root@site-a ~]# rbd mirror snapshot schedule remove --pool data --image image1 6h

    示例

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

其它资源

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

查看要为基于快照的镜像 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 POOL_NAME] [--image IMAGE_NAME]

    示例

    [root@rbd-client ~]# rbd mirror snapshot schedule status
    SCHEDULE    TIME       IMAGE
    2021-09-21 18:00:00 data/image1

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.