搜索

4.3. Ceph 文件系统子卷

download PDF

作为存储管理员,您可以创建、列出、获取绝对路径、获取元数据,以及移除 Ceph 文件系统 (CephFS) 子卷。此外,您也可以创建、列出和删除这些子卷的快照。CephFS 子卷是独立 Ceph 文件系统目录树的抽象。

本节描述了如何:

4.3.1. 创建文件系统子卷

这部分论述了如何创建 Ceph 文件系统 (CephFS) 子卷。

注意

在创建子卷时,您可以指定其子卷组、数据池布局、uid、gid、八进制数字文件模式和大小(以字节为单位)。可以通过指定 --namespace-isolated 选项,在单独的 RADOS 命名空间中创建子卷。默认情况下,子卷在默认子卷组中创建,使用八进制文件模式 '755'、子卷组的 uid、子卷组 gid、其父目录的数据池布局和无大小限制。

先决条件

  • 部署的 Ceph 文件系统正常工作的 Red Hat Ceph Storage 存储群集。
  • 至少对 Ceph 监控器具有读取访问权限。
  • Ceph 管理器节点上的读写功能。

流程

  • 创建 CephFS 子卷:

    语法

    ceph fs subvolume create VOLUME_NAME SUBVOLUME_NAME [--size SIZE_IN_BYTES --group_name SUBVOLUME_GROUP_NAME --pool_layout DATA_POOL_NAME --uid _UID --gid GID --mode OCTAL_MODE] [--namespace-isolated]

    示例

    [root@mon ~]# ceph fs subvolume create cephfs sub0 --group_name subgroup0 --namespace-isolated

    即使子卷已存在,命令也会成功。

4.3.2. 列出文件系统子卷

本节介绍列出 Ceph 文件系统 (CephFS) 子卷的步骤。

先决条件

  • 部署的 Ceph 文件系统正常工作的 Red Hat Ceph Storage 存储群集。
  • 至少对 Ceph 监控器具有读取访问权限。
  • Ceph 管理器节点上的读写功能。
  • CephFS 子卷。

流程

  • 列出 CephFS 子卷:

    语法

    ceph fs subvolume ls VOLUME_NAME [--group_name SUBVOLUME_GROUP_NAME]

    示例

    [root@mon ~]# ceph fs subvolume ls cephfs --group_name subgroup0

4.3.3. 重新定义文件系统子卷大小

本节介绍调整 Ceph 文件系统 (CephFS) 子卷大小的步骤。

注意

ceph fs subvolume resize 命令使用 new_size 指定的大小来调整子卷配额的大小。--no_shrink 标志可防止子卷的大小被减少到当前使用的子卷大小。通过将 new_size 设置为 infinfinite 来将子卷重新设置为一个无限的大小。

先决条件

  • 部署的 Ceph 文件系统正常工作的 Red Hat Ceph Storage 存储群集。
  • 至少对 Ceph 监控器具有读取访问权限。
  • Ceph 管理器节点上的读写功能。
  • CephFS 子卷。

流程

  • 重新定义 CephFS 子卷大小:

    语法

    ceph fs subvolume resize VOLUME_NAME SUBVOLUME_NAME NEW_SIZE [--group_name SUBVOLUME_GROUP_NAME] [--no_shrink]

    示例

    [root@mon ~]# ceph fs subvolume resize cephfs sub0 1024000000 --group_name subgroup0 --no_shrink

4.3.4. 获取文件系统子卷的绝对路径

本节介绍如何获取 Ceph 文件系统 (CephFS) 子卷的绝对路径。

先决条件

  • 部署的 Ceph 文件系统正常工作的 Red Hat Ceph Storage 存储群集。
  • 至少对 Ceph 监控器具有读取访问权限。
  • Ceph 管理器节点上的读写功能。
  • CephFS 子卷。

流程

  • 获取 CephFS 子卷的绝对路径:

    语法

    ceph fs subvolume getpath VOLUME_NAME SUBVOLUME_NAME [--group_name _SUBVOLUME_GROUP_NAME]

    示例

    [root@mon ~]# ceph fs subvolume getpath cephfs sub0 --group_name subgroup0

4.3.5. 获取文件系统子卷的元数据

本节介绍如何获取 Ceph 文件系统 (CephFS) 子卷的元数据。

先决条件

  • 部署的 Ceph 文件系统正常工作的 Red Hat Ceph Storage 存储群集。
  • 至少对 Ceph 监控器具有读取访问权限。
  • Ceph 管理器节点上的读写功能。
  • CephFS 子卷。

流程

  • 获取 CephFS 子卷的元数据:

    语法

    ceph fs subvolume info VOLUME_NAME SUBVOLUME_NAME [--group_name SUBVOLUME_GROUP_NAME]

    示例

    [root@mon ~]# ceph fs subvolume info cephfs sub0 --group_name subgroup0

    输出示例

    # ceph fs subvolume info cephfs sub0
    {
        "atime": "2023-07-14 08:52:46",
        "bytes_pcent": "0.00",
        "bytes_quota": 1024000000,
        "bytes_used": 0,
        "created_at": "2023-07-14 08:52:46",
        "ctime": "2023-07-14 08:53:54",
        "data_pool": "cephfs.cephfs.data",
        "features": [
            "snapshot-clone",
            "snapshot-autoprotect",
            "snapshot-retention"
        ],
        "flavor": "2",
        "gid": 0,
        "mode": 16877,
        "mon_addrs": [
            "10.0.208.172:6789",
            "10.0.211.197:6789",
            "10.0.209.212:6789"
        ],
        "mtime": "2023-07-14 08:52:46",
        "path": "/volumes/_nogroup/sub0/834c5cbc-f5db-4481-80a3-aca92ff0e7f3",
        "pool_namespace": "",
        "state": "complete",
        "type": "subvolume",
        "uid": 0
    }

输出格式为 JSON,包含以下字段:

  • atime :访问子卷路径的时间,格式为 "YYYY-MM-DD HH:MM:SS"。
  • bytes_pcent :如果设置了配额,则以百分比为单位使用的配额,否则会显示"undefined"。
  • bytes_quota :如果设置了配额,则配额大小以字节为单位,否则会显示"infinite"。
  • bytes_used :子卷的当前使用大小(以字节为单位)。
  • created_at :创建子卷的时间,格式为 "YYYY-MM-DD HH:MM:SS"。
  • ctime :更改子卷路径的时间,格式为 "YYYY-MM-DD HH:MM:SS"。
  • data_pool :子卷所属的数据池。
  • features: 子卷支持的功能,如 snapshot-clone"、"snapshot-autoprotect" 或 "snapshot-retention"。
  • 类别 :子卷版本,可以是 1 ( 版本 1)或版本 2
  • GID :子卷路径的组 ID。
  • mode :子卷路径的模式。
  • mon_addrs :监控地址列表。
  • mtime :修改子卷路径的时间,格式为"YYYY-MM-DD HH:MM:SS"。
  • path :子卷的绝对路径。
  • pool_namespace :子卷的 RADOS 命名空间。
  • State :子卷的当前状态,如 "complete" 或 "snapshot-retained"。
  • 类型 :子卷类型,指示它是克隆还是子卷。
  • UID :子卷路径的用户 ID。

4.3.6. 创建文件系统子卷的快照

本节介绍如何创建 Ceph 文件系统 (CephFS) 子卷的快照。

先决条件

  • 部署的 Ceph 文件系统正常工作的 Red Hat Ceph Storage 存储群集。
  • 至少对 Ceph 监控器具有读取访问权限。
  • Ceph 管理器节点上的读写功能。
  • CephFS 子卷。
  • 除了读取 (r) 和写入 (w) 功能外,客户端还需要文件系统的目录路径上的 s 标志。

流程

  1. 验证目录中是否设置了 s 标记:

    语法

    ceph auth get CLIENT_NAME

    示例

    [root@mon ~]# ceph auth get client.0
    [client.0]
        key = AQAz7EVWygILFRAAdIcuJ12opU/JKyfFmxhuaw==
        caps mds = "allow rw, allow rws path=/bar" 1
        caps mon = "allow r"
        caps osd = "allow rw tag cephfs data=cephfs_a" 2

    1 2
    在示例中,client.0 可以在文件系统 cephfs_abar 目录中创建或删除快照。
  2. 创建 Ceph 文件系统子卷的快照:

    语法

    ceph fs subvolume snapshot create VOLUME_NAME SUBVOLUME_NAME SNAP_NAME [--group_name GROUP_NAME]

    示例

    [root@mon ~]# ceph fs subvolume snapshot create cephfs sub0 snap0 --group_name subgroup0

4.3.7. 从快照克隆子卷

可以通过克隆子卷快照来创建子卷。这是一个异步操作,涉及将快照中的数据复制到子卷。

注意

对于非常大的数据集,克隆效率较低。

先决条件

  • 部署的 Ceph 文件系统正常工作的 Red Hat Ceph Storage 存储群集。
  • 至少对 Ceph 监控器具有读取访问权限。
  • Ceph 管理器节点上的读写功能。
  • 要创建或删除快照,除了读写功能外,客户端还需要文件系统中目录路径上的 s 标志。

    语法

    CLIENT_NAME
        key = AQAz7EVWygILFRAAdIcuJ12opU/JKyfFmxhuaw==
        caps mds = allow rw, allow rws path=DIRECTORY_PATH
        caps mon = allow r
        caps osd = allow rw tag cephfs data=DIRECTORY_NAME

    在以下示例中,client.0 可以在文件系统 cephfs_abar 目录中创建或删除快照。

    示例

    [client.0]
        key = AQAz7EVWygILFRAAdIcuJ12opU/JKyfFmxhuaw==
        caps mds = "allow rw, allow rws path=/bar"
        caps mon = "allow r"
        caps osd = "allow rw tag cephfs data=cephfs_a"

流程

  1. 创建 Ceph 文件系统 (CephFS) 卷:

    语法

    ceph fs volume create VOLUME_NAME

    示例

    [root@mon ~]# ceph fs volume create cephfs

    这将创建 CephFS 文件系统、其数据和元数据池。

  2. 创建子卷组。默认情况下,使用八进制文件模式 '755' 创建子卷组,以及其父目录的数据池布局。

    语法

    ceph fs subvolumegroup create VOLUME_NAME GROUP_NAME [--pool_layout DATA_POOL_NAME --uid UID --gid GID --mode OCTAL_MODE]

    示例

    [root@mon ~]# ceph fs subvolumegroup create cephfs subgroup0

  3. 创建子卷。默认情况下,子卷在默认子卷组中创建,使用八进制文件模式 '755'、子卷组的 uid、子卷组 gid、其父目录的数据池布局和无大小限制。

    语法

    ceph fs subvolume create VOLUME_NAME SUBVOLUME_NAME [--size SIZE_IN_BYTES --group_name SUBVOLUME_GROUP_NAME --pool_layout DATA_POOL_NAME --uid _UID --gid GID --mode OCTAL_MODE]

    示例

    [root@mon ~]# ceph fs subvolume create cephfs sub0 --group_name subgroup0

  4. 创建子卷的快照:

    语法

    ceph fs subvolume snapshot create VOLUME_NAME _SUBVOLUME_NAME SNAP_NAME [--group_name SUBVOLUME_GROUP_NAME]

    示例

    [root@mon ~]# ceph fs subvolume snapshot create cephfs sub0 snap0  --group_name subgroup0

  5. 启动克隆操作:

    注意

    默认情况下,克隆的子卷会在默认组中创建。

    1. 如果源子卷和目标克隆位于默认组中,请运行以下命令:

      语法

      ceph fs subvolume snapshot clone VOLUME_NAME SUBVOLUME_NAME SNAP_NAME TARGET_CLONE_NAME

      示例

      [root@mon ~]# ceph fs subvolume snapshot clone cephfs sub0 snap0 clone0

    2. 如果源子卷位于非默认组中,请使用以下命令指定源子卷组:

      语法

      ceph fs subvolume snapshot clone VOLUME_NAME SUBVOLUME_NAME SNAP_NAME TARGET_CLONE_NAME --group_name SUBVOLUME_GROUP_NAME

      示例

      [root@mon ~]# ceph fs subvolume snapshot clone cephfs sub0 snap0 clone0 --group_name subgroup0

    3. 如果目标克隆到非默认组中,请使用以下命令指定目标组:

      语法

      ceph fs subvolume snapshot clone VOLUME_NAME SUBVOLUME_NAME SNAP_NAME TARGET_CLONE_NAME --target_group_name SUBVOLUME_GROUP_NAME

      示例

      [root@mon ~]# ceph fs subvolume snapshot clone cephfs sub0 snap0 clone0 --target_group_name subgroup1

  6. 检查克隆操作的状态:

    语法

    ceph fs clone status VOLUME_NAME CLONE_NAME [--group_name TARGET_GROUP_NAME]

    示例

    [root@mon ~]# ceph fs clone status cephfs clone0 --group_name subgroup1
    
    {
      "status": {
        "state": "complete"
      }
    }

其它资源

4.3.8. 列出文件系统子卷的快照

本节提供列出 Ceph 文件系统 (CephFS) 子卷快照的步骤。

先决条件

  • 部署的 Ceph 文件系统正常工作的 Red Hat Ceph Storage 存储群集。
  • 至少对 Ceph 监控器具有读取访问权限。
  • Ceph 管理器节点上的读写功能。
  • CephFS 子卷。
  • 子卷的快照。

流程

  • 列出 CephFS 子卷的快照:

    语法

    ceph fs subvolume snapshot ls VOLUME_NAME SUBVOLUME_NAME [--group_name SUBVOLUME_GROUP_NAME]

    示例

    [root@mon ~]# ceph fs subvolume snapshot ls cephfs sub0 --group_name subgroup0

4.3.9. 获取文件系统子卷快照的元数据

本节提供获取 Ceph 文件系统 (CephFS) 子卷快照元数据的步骤。

先决条件

  • 部署的 CephFS 正常工作的 Red Hat Ceph Storage 集群。
  • 至少对 Ceph 监控器具有读取访问权限。
  • Ceph 管理器节点上的读写功能。
  • CephFS 子卷。
  • 子卷的快照。

流程

  1. 获取 CephFS 子卷的快照元数据:

    语法

    ceph fs subvolume snapshot info VOLUME_NAME SUBVOLUME_NAME SNAP_NAME [--group_name SUBVOLUME_GROUP_NAME]

    示例

    [root@mon ~]# ceph fs subvolume snapshot info cephfs sub0 snap0 --group_name subgroup0

    输出示例

    {
        "created_at": "2022-05-09 06:18:47.330682",
        "data_pool": "cephfs_data",
        "has_pending_clones": "no",
        "size": 0
    }

输出格式为 JSON,包含以下字段:

  • created_at :创建快照的时间,格式为 "YYYY-MM-DD HH:MM:SS:ffff"。
  • data_pool :快照所属的数据池。
  • has_pending_clones: "yes" 如果快照克隆正在进行中,否则为"no"。
  • size :快照大小,以字节为单位.

4.3.10. 删除文件系统子卷

本节介绍删除 Ceph 文件系统 (CephFS) 子卷的步骤。

注意

ceph fs subvolume rm 命令会在两个步骤中删除子卷及其内容。首先,它会将子卷移到回收文件夹中,然后异步清除其内容。

可以使用 --retain-snapshots 选项删除子卷的现有快照。如果保留快照,则所有不涉及保留快照的操作的子卷将被视为空。保留的快照可用作克隆源来重新创建子卷,或克隆到较新的子卷。

先决条件

  • 部署的 Ceph 文件系统正常工作的 Red Hat Ceph Storage 存储群集。
  • 至少对 Ceph 监控器具有读取访问权限。
  • Ceph 管理器节点上的读写功能。
  • CephFS 子卷。

流程

  1. 删除 CephFS 子卷:

    语法

    ceph fs subvolume rm VOLUME_NAME SUBVOLUME_NAME [--group_name SUBVOLUME_GROUP_NAME] [--force] [--retain-snapshots]

    示例

    [root@mon ~]# ceph fs subvolume rm cephfs sub0 --group_name subgroup0 --retain-snapshots

  2. 从保留的快照重新创建子卷:

    语法

    ceph fs subvolume snapshot clone VOLUME_NAME DELETED_SUBVOLUME RETAINED_SNAPSHOT NEW_SUBVOLUME --group_name SUBVOLUME_GROUP_NAME --target_group_name SUBVOLUME_TARGET_GROUP_NAME

    • NEW_SUBVOLUME 可以是之前删除的同一子卷,也可以克隆到新子卷中。

    示例

    [root@mon ~]# ceph fs subvolume snapshot clone cephfs sub0 snap0 sub1 --group_name subgroup0 --target_group_name subgroup0

4.3.11. 删除文件系统子卷的快照

本节提供删除 Ceph 文件系统 (CephFS) 子卷组快照的步骤。

注意

使用 --force 标志时,命令可以成功,否则如果快照不存在,则会失败。

先决条件

  • 部署的 Ceph 文件系统正常工作的 Red Hat Ceph Storage 存储群集。
  • 至少对 Ceph 监控器具有读取访问权限。
  • Ceph 管理器节点上的读写功能。
  • Ceph 文件系统卷.
  • 子卷组的快照。

流程

  • 移除 CephFS 子卷的快照:

    语法

    ceph fs subvolume snapshot rm VOLUME_NAME SUBVOLUME_NAME SNAP_NAME [--group_name GROUP_NAME --force]

    示例

    [root@mon ~]# ceph fs subvolume snapshot rm cephfs sub0 snap0 --group_name subgroup0 --force

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.