6.3. 通过 NFS 协议导出 Ceph 文件系统命名空间(有限的可用性)


Ceph 文件系统(CephFS)命名空间可通过 NFS 协议使用 NFS Ganesha 文件服务器导出。要导出 CephFS 命名空间,您必须首先有一个正在运行的 NFS Ganesha 集群。

注意

该技术是有限可用性。如需更多信息,请参阅 已弃用的功能 章节。

重要

红帽只支持 NFS 版本 4.0 或更高版本。

重要

NFS 客户端无法通过其原生 NFS 挂载创建 CephFS 快照。它们必须使用服务器端操作器工具来满足其快照需求。

先决条件

  • 一个运行良好、健康的 Red Hat Ceph Storage 集群。
  • 使用 ceph nfs cluster create 命令创建的 NFS 集群。

流程

  1. 创建 CephFS 导出:

    注意

    在创建 NFS 导出时不要使用 cmount_path 选项。这是因为,如果在使用 '/' 以外的任何其他值的 cmount_path,则之前定义的 NFS 导出变得不可访问。

    语法

    ceph nfs export create cephfs CLUSTER_NAME BINDING FILE_SYSTEM_NAME [--readonly] [--path=PATH_WITHIN_CEPHFS]
    Copy to Clipboard Toggle word wrap

    示例

    [ceph: root@host01 /]# ceph nfs export create cephfs nfs-cephfs /ceph cephfs01 --path=/
    
    {
      "bind": "/ceph",
      "cluster": "nfs-cephfs",
      "fs": "cephfs01",
      "mode": "RW",
      "path": "/"
    }
    Copy to Clipboard Toggle word wrap

    在本例中,BINDING (/ceph)是伪根路径,该路径必须是唯一且绝对路径。

    注意

    --readonly 选项导出具有只读权限的路径,默认是读取和写入权限。

    注意

    PATH_WITHIN_CEPHFS 可以是一个子卷。您可以使用以下命令获取绝对路径:

    语法

    ceph fs subvolume getpath VOLUME_NAME SUBVOLUME_NAME [--group_name SUBVOLUME_GROUP_NAME]
    Copy to Clipboard Toggle word wrap

    示例

    [ceph: root@host01 /]# ceph fs subvolume getpath cephfs sub0
    Copy to Clipboard Toggle word wrap

  2. 根据伪根名称查看导出块:

    语法

    ceph nfs export get CLUSTER_NAME BINDING
    Copy to Clipboard Toggle word wrap

    示例

    [ceph: root@host01 /]# ceph nfs export get nfs-cephfs /ceph
    {
      "export_id": 1,
      "path": "/",
      "cluster_id": "nfs-cephfs",
      "pseudo": "/ceph",
      "access_type": "RW",
      "squash": "no_root_squash",
      "security_label": true,
      "protocols": [
        4
      ],
      "transports": [
        "TCP"
      ],
      "fsal": {
        "name": "CEPH",
        "user_id": "cephnfs11",
        "fs_name": "cephfs",
        "sec_label_xattr": ""
      },
      "clients": []
    }
    Copy to Clipboard Toggle word wrap

  3. 列出 NFS 导出:

    语法

    ceph nfs export ls CLUSTER_NAME [--detailed]
    Copy to Clipboard Toggle word wrap

    示例

    [ceph: root@host01 /]# ceph nfs export ls nfs-cephfs
    [
      "/ceph/"
    ]
    [ceph: root@host01 /]# ceph nfs export ls nfs-cephfs --detailed
    [
      {
        "export_id": 100,
        "path": "/",
        "cluster_id": "nfs-cephfs",
        "pseudo": "/ceph/",
        "access_type": "RW",
        "squash": "no_root_squash",
        "security_label": true,
        "protocols": [
          4
        ],
        "transports": [
          "TCP"
        ],
        "fsal": {
          "name": "CEPH",
          "user_id": "nfstest01",
          "fs_name": "cephfs",
          "sec_label_xattr": ""
        },
        "clients": []
      }
    ]
    Copy to Clipboard Toggle word wrap

  4. 获取 NFS 导出的信息:

    语法

    ceph nfs export info CLUSTER_NAME [PSEUDO_PATH]
    Copy to Clipboard Toggle word wrap

    示例

    [ceph: root@host01 /]# ceph nfs export info nfs-cephfs /ceph
    
    {
      "export_id": 1,
      "path": "/",
      "cluster_id": "nfs-cephfs",
      "pseudo": "/ceph",
      "access_type": "RW",
      "squash": "none",
      "security_label": true,
      "protocols": [
        4
      ],
      "transports": [
        "TCP"
      ],
      "fsal": {
        "name": "CEPH",
        "user_id": "nfs.nfs-cephfs.1",
        "fs_name": "cephfs"
      },
      "clients": []
    }
    Copy to Clipboard Toggle word wrap

  5. 在客户端主机上挂载导出的 Ceph 文件系统:

    语法

    mount -t nfs -o port=GANESHA_PORT HOST_NAME:BINDING LOCAL_MOUNT_POINT
    Copy to Clipboard Toggle word wrap

    示例

    [root@client01 ~]# mount -t nfs -o port=2049 host01:/ceph/ /mnt/nfs-cephfs
    Copy to Clipboard Toggle word wrap

    1. 要在启动时自动挂载,请通过添加新行来打开并编辑 /etc/fstab 文件:

      语法

      HOST_NAME:BINDING   LOCAL_MOUNT_POINT   nfs4   defaults,seclabel,vers=4.2,proto=tcp,port=2049  0  0
      Copy to Clipboard Toggle word wrap

      示例

      host01:/ceph/   /mnt/nfs-cephfs   nfs4   defaults,seclabel,vers=4.2,proto=tcp,port=2049  0  0
      Copy to Clipboard Toggle word wrap

  6. 在客户端主机上挂载使用 入口 服务创建的导出的 NFS Ceph 文件系统:

    语法

    mount -t nfs VIRTUAL_IP_ADDRESS:BINDING LOCAL_MOUNT_POINT
    Copy to Clipboard Toggle word wrap

    • VIRTUAL_IP_ADDRESS 替换为用于创建 NFS 集群的 --ingress --virtual-ip IP 地址。
    • 使用伪根路径替换 BINDING
    • LOCAL_MOUNT_POINT 替换为挂载导出的挂载点。

      示例

      [root@client01 ~]# mount -t nfs 10.10.128.75:/nfs-cephfs /mnt
      Copy to Clipboard Toggle word wrap

      本例将导出 nfs-cephfs 挂载到使用 --ingress --virtual-ip 10.10.128.75 创建的 NFS 集群上,该集群位于挂载点 /mnt 上。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat