第 11 章 Ceph 文件系统快照镜像
作为存储管理员,您可以将 Ceph 文件系统(CephFS)复制到另一个 Red Hat Ceph Storage 集群上的远程 Ceph 文件系统。
先决条件
- 源和目标集群必须运行 Red Hat Ceph Storage 6.0 或更高版本。
Ceph 文件系统(CephFS)支持将快照异步复制到另一个 Red Hat Ceph Storage 集群上的远程 CephFS。快照同步会将快照数据复制到远程 Ceph 文件系统,并在带有相同名称的远程目标上创建新快照。您可以配置特定的目录以进行快照同步。
管理 CephFS 快照镜像由 CephFS 镜像守护进程(cephfs-mirror
)来完成。此快照数据通过对远程 CephFS 进行批量副本来同步。所选同步快照对的顺序使用 snap-id
创建。
不支持同步硬链接。硬链接的文件作为常规文件同步。
CephFS 快照镜像包括功能,如快照调用或高可用性。它们可以通过 Ceph Manager mirroring
模块进行管理,这是推荐的控制接口。
Ceph 管理器模块和接口
Ceph Manager mirroring
默认为禁用。它提供了用于管理目录快照镜像的接口。Ceph 管理器接口主要是监控用于管理 CephFS 镜像的命令的打包程序。它们是推荐的控制接口。
Ceph Manager mirroring
模块是作为 Ceph Manager 插件实现的。它负责分配目录到 cephfs-mirror
守护进程以进行同步。
Ceph Manager mirroring
模块还提供了一系列命令来控制目录快照的镜像。mirroring
模块不管理 cephfs-mirror
守护进程。cephfs-mirror
守护进程的停止、启动、重新启动和启用由 systemctl
控制,但由 cephadm
管理。
与 monitor 命令与 fs mirror
前缀相比,mirror 模块命令使用 fs snapshot mirror
前缀。确保您使用 module 命令前缀来控制目录快照的镜像。
快照警告
可以使用相同名称和不同的内容删除和重新创建快照。用户可以在之前同步"旧的"快照,并在禁用镜像时重新创建快照。使用快照名称推断点的延时会导致"新"快照(警告),永远不会获取同步。
二级文件系统上的快照存储了从中进行同步的快照的 snap-id
。此元数据存储在 Ceph 元数据服务器上的 SnapInfo
结构中。
高可用性
您可以在两个或多个节点上部署多个 cephfs-mirror
守护进程,以便在同步目录快照时实现并发。当 cephfs-mirror
守护进程部署或终止时,Ceph Manager mirroring
模块会发现修改后的 cephfs-mirror
守护进程集合,并在新集合之间重新平衡目录分配,从而提供高可用性。
CephFS-mirror
守护进程使用简单的 M/N 策略共享同步负载,其中 M 是目录的数量,N 是 cephfs-mirror
守护进程的数量。
重新添加 Ceph 文件系统镜像对等点
在重新添加或重新分配另一个集群中的 CephFS 时,请确保所有镜像守护进程都已停止与对等点同步。您可以使用 fs mirror status
命令验证它。Peer UUID 不应显示在命令输出中。
在将同步的目录重新添加到另一个 CephFS 之前,从 peer 中清除同步的目录,特别是新主文件系统中可能存在的目录。如果您要将对等点重新添加到之前从中同步的同一主文件系统,则不需要此项。
其它资源
-
如需有关
fs mirror status
命令的更多详细信息,请参阅查看 Ceph 文件系统的镜像状态。
11.1. 为 Ceph 文件系统配置快照镜像
您可以配置 Ceph 文件系统(CephFS),以镜像(CephFS)在远程 Red Hat Ceph Storage 集群上将快照复制到另一个 CephFS。
同步到远程存储集群所需的时间取决于文件大小和镜像路径中的文件总数。
先决条件
- 源和目标集群必须健康,且运行 Red Hat Ceph Storage 7.0 或更高版本。
- 对源和目标集群中的 Ceph Monitor 节点的 root 级别访问。
- 您的存储集群中至少部署一个 Ceph 文件系统。
流程
登录到 Cephadm shell:
示例
[root@host01 ~]# cephadm shell
在源存储集群中,部署 CephFS 镜像守护进程:
语法
ceph orch apply cephfs-mirror ["NODE_NAME"]
示例
[ceph: root@host01 /]# ceph orch apply cephfs-mirror "node1.example.com" Scheduled cephfs-mirror update...
此命令创建名为
cephfs-mirror
的 Ceph 用户,并在给定的节点上部署cephfs-mirror
守护进程。可选:部署多个 CephFS 镜像守护进程并实现高可用性:
语法
ceph orch apply cephfs-mirror --placement="PLACEMENT_SPECIFICATION"
示例
[ceph: root@host01 /]# ceph orch apply cephfs-mirror --placement="3 host1 host2 host3" Scheduled cephfs-mirror update...
本例在不同的主机上部署了三个
cephfs-mirror
守护进程。警告不要将主机与逗号分开,因为它会产生以下错误:
Error EINVAL: name component must include only a-z, 0-9, and -
在目标存储集群中,为每个 CephFS 对等用户创建一个用户:
语法
ceph fs authorize FILE_SYSTEM_NAME CLIENT_NAME / rwps
示例
[ceph: root@host01 /]# ceph fs authorize cephfs client.mirror_remote / rwps [client.mirror_remote] key = AQCjZ5Jg739AAxAAxduIKoTZbiFJ0lgose8luQ==
在源存储集群中,启用 CephFS 镜像模块:
示例
[ceph: root@host01 /]# ceph mgr module enable mirroring
在源存储集群中,在 Ceph 文件系统上启用镜像功能:
语法
ceph fs snapshot mirror enable FILE_SYSTEM_NAME
示例
[ceph: root@host01 /]# ceph fs snapshot mirror enable cephfs
可选:禁用快照镜像:
语法
ceph fs snapshot mirror disable FILE_SYSTEM_NAME
示例
[ceph: root@host01 /]# ceph fs snapshot mirror disable cephfs
警告禁用文件系统上的快照镜像会删除配置的对等点。您需要通过引导方式再次导入同级服务器。
准备目标对等存储集群。
在目标节点上,启用
mirroring
Ceph Manager 模块:示例
[ceph: root@host01 /]# ceph mgr module enable mirroring
在同一个目标节点上,创建 peer bootstrap:
语法
ceph fs snapshot mirror peer_bootstrap create FILE_SYSTEM_NAME CLIENT_NAME SITE_NAME
SITE_NAME 是用户定义的字符串,用于识别目标存储集群。
示例
[ceph: root@host01 /]# ceph fs snapshot mirror peer_bootstrap create cephfs client.mirror_remote remote-site {"token": "eyJmc2lkIjogIjBkZjE3MjE3LWRmY2QtNDAzMC05MDc5LTM2Nzk4NTVkNDJlZiIsICJmaWxlc3lzdGVtIjogImJhY2t1cF9mcyIsICJ1c2VyIjogImNsaWVudC5taXJyb3JfcGVlcl9ib290c3RyYXAiLCAic2l0ZV9uYW1lIjogInNpdGUtcmVtb3RlIiwgImtleSI6ICJBUUFhcDBCZ0xtRmpOeEFBVnNyZXozai9YYUV0T2UrbUJEZlJDZz09IiwgIm1vbl9ob3N0IjogIlt2MjoxOTIuMTY4LjAuNTo0MDkxOCx2MToxOTIuMTY4LjAuNTo0MDkxOV0ifQ=="}
在双引号之间复制令牌字符串,以便在下一步中使用。
在源存储集群中,从目标存储集群导入 bootstrap 令牌:
语法
ceph fs snapshot mirror peer_bootstrap import FILE_SYSTEM_NAME TOKEN
示例
[ceph: root@host01 /]# ceph fs snapshot mirror peer_bootstrap import cephfs eyJmc2lkIjogIjBkZjE3MjE3LWRmY2QtNDAzMC05MDc5LTM2Nzk4NTVkNDJlZiIsICJmaWxlc3lzdGVtIjogImJhY2t1cF9mcyIsICJ1c2VyIjogImNsaWVudC5taXJyb3JfcGVlcl9ib290c3RyYXAiLCAic2l0ZV9uYW1lIjogInNpdGUtcmVtb3RlIiwgImtleSI6ICJBUUFhcDBCZ0xtRmpOeEFBVnNyZXozai9YYUV0T2UrbUJEZlJDZz09IiwgIm1vbl9ob3N0IjogIlt2MjoxOTIuMTY4LjAuNTo0MDkxOCx2MToxOTIuMTY4LjAuNTo0MDkxOV0ifQ==
在源存储集群中,列出 CephFS 镜像对等点:
语法
ceph fs snapshot mirror peer_list FILE_SYSTEM_NAME
示例
[ceph: root@host01 /]# ceph fs snapshot mirror peer_list cephfs {"e5ecb883-097d-492d-b026-a585d1d7da79": {"client_name": "client.mirror_remote", "site_name": "remote-site", "fs_name": "cephfs", "mon_host": "[v2:10.0.211.54:3300/0,v1:10.0.211.54:6789/0] [v2:10.0.210.56:3300/0,v1:10.0.210.56:6789/0] [v2:10.0.210.65:3300/0,v1:10.0.210.65:6789/0]"}}
可选:删除快照对等点:
语法
ceph fs snapshot mirror peer_remove FILE_SYSTEM_NAME PEER_UUID
示例
[ceph: root@host01 /]# ceph fs snapshot mirror peer_remove cephfs e5ecb883-097d-492d-b026-a585d1d7da79
注意请参阅查看 Ceph 文件系统的镜像状态, 了解如何查找对等 UUID 值。
在源存储集群中,为快照镜像配置目录:
语法
ceph fs snapshot mirror add FILE_SYSTEM_NAME PATH
示例
[ceph: root@host01 /]# ceph fs snapshot mirror add cephfs /volumes/_nogroup/subvol_1
重要只有 Ceph 文件系统中的绝对路径有效。
注意Ceph Manager
mirroring
模块规范路径。例如,/d1/d2/./dN
目录等同于/d1/d2
。为镜像添加了目录后,禁止为镜像添加自己的目录和子目录。可选:停止目录的快照镜像:
语法
ceph fs snapshot mirror remove FILE_SYSTEM_NAME PATH
示例
[ceph: root@host01 /]# ceph fs snapshot mirror remove cephfs /home/user1
其它资源
- 如需更多信息,请参阅 Red Hat Ceph Storage 文件系统指南中的查看 Ceph 文件系统的镜像状态部分。
- 请参阅 Red Hat Ceph Storage 文件系统指南中的 Ceph 文件系统镜像部分。