第 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 镜像 模块进行管理,这是推荐的控制接口。

Ceph Manager 模块和接口

Ceph Manager mirroring 默认为禁用。它提供用于管理目录快照镜像的接口。Ceph 管理器接口主要是监控命令来管理 CephFS 镜像的打包程序。它们是推荐的控制接口。

Ceph Manager mirroring 模块作为 Ceph Manager 插件实现。它负责为同步分配目录到 cephfs-mirror 守护进程。

Ceph Manager mirroring 模块还提供了一系列命令来控制目录快照的镜像。mirroring 模块不管理 cephfs-mirror 守护进程。cephfs-mirror 守护进程的停止、启动、重启和启用由 systemctl 控制,但由 cephadm 管理。

注意

与带有 fs mirror 前缀的 monitor 命令相比,mirror 模块命令使用 fs snapshot mirror 前缀。确保您使用 module 命令前缀来控制目录快照的镜像。

Snapshot incarnation

可能会删除快照,并使用相同的名称和不同的内容重新创建快照。用户可以提前同步"旧"快照,并在禁用镜像时重新创建快照。使用快照名称来推断连续的时间会导致 "new" 快照(一个 incarnation )永远不会被选择进行同步。

二级文件系统上的快照存储了从中进行同步的快照的 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 重新添加到之前同步的同一主文件系统,则不需要此项。

11.1. 为 Ceph 文件系统配置快照镜像

您可以配置 Ceph 文件系统(CephFS),以镜像(CephFS)在远程 Red Hat Ceph Storage 集群上将快照复制到另一个 CephFS。

注意

同步到远程存储集群所需的时间取决于文件大小和镜像路径中的文件总数。

先决条件

  • 源和目标集群必须健康,且运行 Red Hat Ceph Storage 8.0 或更高版本。
  • 对源和目标集群中的 Ceph Monitor 节点的 root 级别访问。
  • 存储集群中至少部署了一个 Ceph 文件系统。

流程

  1. 登录到 Cephadm shell:

    示例

    [root@host01 ~]# cephadm shell

  2. 在源存储集群中,部署 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 守护进程。

    1. 可选:部署多个 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 -
  3. 在目标存储集群中,为每个 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==

  4. 在源存储集群中,启用 CephFS 镜像模块:

    示例

    [ceph: root@host01 /]# ceph mgr module enable mirroring

  5. 在源存储集群中,在 Ceph 文件系统上启用镜像功能:

    语法

    ceph fs snapshot mirror enable FILE_SYSTEM_NAME

    示例

    [ceph: root@host01 /]# ceph fs snapshot mirror enable cephfs

    1. 可选:禁用快照镜像:

      语法

      ceph fs snapshot mirror disable FILE_SYSTEM_NAME

      示例

      [ceph: root@host01 /]# ceph fs snapshot mirror disable cephfs

      警告

      禁用文件系统上的快照镜像会删除配置的对等点。您需要通过引导方式再次导入同级服务器。

  6. 准备目标对等存储集群。

    1. 在目标节点上,启用 mirroring Ceph Manager 模块:

      示例

      [ceph: root@host01 /]# ceph mgr module enable mirroring

    2. 在同一个目标节点上,创建 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=="}

      在双引号之间复制令牌字符串,以便在下一步中使用。

  7. 在源存储集群中,从目标存储集群导入 bootstrap 令牌:

    语法

    ceph fs snapshot mirror peer_bootstrap import FILE_SYSTEM_NAME TOKEN

    示例

    [ceph: root@host01 /]# ceph fs snapshot mirror peer_bootstrap import cephfs eyJmc2lkIjogIjBkZjE3MjE3LWRmY2QtNDAzMC05MDc5LTM2Nzk4NTVkNDJlZiIsICJmaWxlc3lzdGVtIjogImJhY2t1cF9mcyIsICJ1c2VyIjogImNsaWVudC5taXJyb3JfcGVlcl9ib290c3RyYXAiLCAic2l0ZV9uYW1lIjogInNpdGUtcmVtb3RlIiwgImtleSI6ICJBUUFhcDBCZ0xtRmpOeEFBVnNyZXozai9YYUV0T2UrbUJEZlJDZz09IiwgIm1vbl9ob3N0IjogIlt2MjoxOTIuMTY4LjAuNTo0MDkxOCx2MToxOTIuMTY4LjAuNTo0MDkxOV0ifQ==

  8. 在源存储集群中,列出 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]"}}

    1. 可选:删除快照对等点:

      语法

      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

      注意

      有关如何查找对等 UUID 值时,请参阅查看 Ceph 文件系统的镜像状态

  9. 在源存储集群中,为快照镜像配置目录:

    语法

    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。为镜像添加了目录后,禁止为镜像添加自己的目录和子目录。

    1. 可选:停止目录的快照镜像:

      语法

      ceph fs snapshot mirror remove FILE_SYSTEM_NAME PATH

      示例

      [ceph: root@host01 /]# ceph fs snapshot mirror remove cephfs /home/user1

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.