6.4. 镜像 Ceph 块设备的管理
作为存储管理员,您可以执行各种任务来帮助您管理 Ceph 块设备镜像环境。您可以执行以下任务:
- 查看有关存储群集对等点的信息.
- 添加或删除对等存储群集。
- 获取池或镜像的镜像状态。
- 启用对池或镜像的镜像。
- 禁用对池或镜像的镜像。
- 延迟块设备复制。
- 提升和降级镜像。
先决条件
- 至少运行两个健康的 Red Hat Ceph Storage 集群。
- 对 Ceph 客户端节点的根级别访问权限。
- 单向或双向 Ceph 块设备镜像关系。
- 具有管理员级别功能的 CephX 用户。
6.4.1. 查看有关同级的信息
查看有关存储集群对等点的信息。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 节点的根级别访问权限。
流程
查看对等点的信息:
语法
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 集群。
- 节点的根级别访问权限。
流程
在池上启用镜像:
语法
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
的池上启用镜像模式镜像。
其它资源
- 详情请参阅 Red Hat Ceph Storage 块设备指南中的镜像 Ceph块设备 部分。
6.4.3. 禁用对池的镜像
在禁用镜像前,删除对等集群。
当您禁用对池的镜像时,您还会在池中在镜像模式中单独启用镜像的镜像禁用它。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 节点的根级别访问权限。
流程
在池上禁用镜像:
语法
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
参数是可选的。镜像模式可以是
image
或pool
:-
镜像
模式 :在镜像模式中配置时,必须在每个镜像上显式启用
镜像。 池模式(默认):
在池
模式中配置时,所有启用了日志记录功能的镜像都会被镜像。示例
[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 集群。
- 节点的根级别访问权限。
流程
为池中的特定镜像启用镜像功能:
语法
rbd mirror image enable POOL_NAME/IMAGE_NAME
示例
[root@rbd-client ~]# rbd mirror image enable data/image2
本例启用对
data
池中的image2
镜像启用镜像。
其它资源
- 详情请参阅 Red Hat Ceph Storage 块设备指南中的 在池上启用镜像 部分。
6.4.7. 禁用镜像镜像
您可以在镜像中禁用 Ceph Block Device 镜像。
先决条件
- 一个运行的 Red Hat Ceph Storage 集群,带有基于快照的镜像配置。
- 节点的根级别访问权限。
流程
禁用特定镜像的镜像:
语法
rbd mirror image disable POOL_NAME/IMAGE_NAME
示例
[root@rbd-client ~]# rbd mirror image disable data/image2
本例禁用
data
池中image2
镜像的镜像。
其它资源
-
如需了解有关 将客户端添加到
cephadm-ansible
清单 的详细信息,请参阅 Red Hat Ceph Storage 安装指南中的配置 Ansible 清单位置部分。
6.4.8. 镜像提升和降级
您可以升级或降级池中的镜像。
不要强制提升仍在同步的非主镜像,因为镜像在提升后无效。
先决条件
- 一个运行的 Red Hat Ceph Storage 集群,带有基于快照的镜像配置。
- 节点的根级别访问权限。
流程
将镜像降级为非主要镜像:
语法
rbd mirror image demote POOL_NAME/IMAGE_NAME
示例
[root@rbd-client ~]# rbd mirror image demote data/image2
本例降级
data
池中的image2
镜像。将镜像提升为主要步骤:
语法
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 存储群集时,请使用强制提升。例如,由于集群失败或通信中断。
其它资源
- 详情请参阅 Red Hat Ceph Storage Block Device Guide 中的 Failover after a non-orderly shutdown 部分。
6.4.9. 镜像重新同步
您可以重新同步镜像。如果两个对等集群之间状态不一致,rbd-mirror
守护进程不会尝试镜像导致不一致的镜像。
先决条件
- 一个运行的 Red Hat Ceph Storage 集群,带有基于快照的镜像配置。
- 节点的根级别访问权限。
流程
请求到主镜像的重新同步:
语法
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 集群。
- 节点的根级别访问权限。
流程
将 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 集群。
- 节点的根级别访问权限。
流程
指定池名称和同级通用唯一标识符 (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 集群,带有基于快照的镜像配置。
- 节点的根级别访问权限。
流程
获取镜像池概述:
语法
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 集群,带有基于快照的镜像配置。
- 节点的根级别访问权限。
流程
获取已镜像镜像的状态:
语法
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 集群。
- 节点的根级别访问权限。
流程
要使用特定镜像的延迟复制,在主镜像上运行以下
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 集群。
- 节点的根级别访问权限。
流程
登录到 Cephadm shell:
示例
[root@rbd-client ~]# cephadm shell
为池中的特定镜像禁用镜像功能:
语法
rbd mirror image disable POOL_NAME/IMAGE_NAME
示例
[ceph: root@rbd-client /]# rbd mirror image disable mirror_pool/mirror_image Mirroring disabled
为镜像启用基于快照的镜像:
语法
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
其它资源
- 详情请参阅 Red Hat Ceph Storage 块设备指南中的镜像 Ceph块设备 部分。
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 集群。
流程
创建 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
其它资源
- 详情请参阅 Red Hat Ceph Storage 块设备指南中的镜像 Ceph块设备 部分。
6.4.17.2. 列出特定级别的所有快照计划
您可以在特定级别列出所有快照计划。
先决条件
- 至少运行两个健康的 Red Hat Ceph Storage 集群。
- 对 Red Hat Ceph Storage 集群的 Ceph 客户端节点的根级别访问权限。
- 具有管理员级别功能的 CephX 用户。
- 访问需要调度镜像的 Red Hat Ceph Storage 集群。
流程
使用可选池或镜像名称列出特定全局、池或镜像级别的所有快照调度:
语法
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
其它资源
- 详情请参阅 Red Hat Ceph Storage 块设备指南中的镜像 Ceph块设备 部分。
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 集群。
流程
删除 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
其它资源
- 详情请参阅 Red Hat Ceph Storage 块设备指南中的镜像 Ceph块设备 部分。
6.4.17.4. 查看要创建的下一个快照的状态
查看要为基于快照的镜像 RBD 镜像创建下一快照的状态。
先决条件
- 至少运行两个健康的 Red Hat Ceph Storage 集群。
- 对 Red Hat Ceph Storage 集群的 Ceph 客户端节点的根级别访问权限。
- 具有管理员级别功能的 CephX 用户。
- 访问需要调度镜像的 Red Hat Ceph Storage 集群。
流程
查看要创建的下一个快照的状态:
语法
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 Ceph Storage 块设备指南中的镜像 Ceph块设备 部分。