5.9. 安装 NFS-Ganesha 网关

Ceph NFS Ganesha 网关是在 Ceph 对象网关基础上构建的 NFS 接口,为应用提供 POSIX 文件系统接口到 Ceph 对象网关,以便在文件系统内将文件迁移到 Ceph 对象存储。

先决条件

  • 正在运行的 Ceph 存储集群,最好处于 active + clean 状态。
  • 至少一个运行 Ceph 对象网关的节点.
  • 在尝试运行 NFS-Ganesha 之前,禁用将运行 NFS-Ganesha 的任何主机上运行的任何内核 NFS 服务实例。如果另一个 NFS 实例正在运行,NFS-Ganesha 将不会启动。

*启用免密码 SSH 访问

  • 确保 rpcbind 服务正在运行:

    # systemctl start rpcbind
    注意

    默认情况下,通常安装提供 rpcbind 的 rpcbind 软件包。否则,请先安装软件包。

  • 如果 nfs-service 服务正在运行,请停止并禁用该服务:

    # systemctl stop nfs-server.service
    # systemctl disable nfs-server.service

流程

在 Ansible 管理节点上执行下列任务:

  1. 从示例文件创建 nfss.yml 文件:

    [root@ansible ~]# cd /usr/share/ceph-ansible/group_vars
    [root@ansible ~]# cp nfss.yml.sample nfss.yml
  2. 将网关主机添加到 [nfss] 组下的 /etc/ansible/hosts 文件中,以识别其组成员资格。

    [nfss]
    NFS_HOST_NAME_1
    NFS_HOST_NAME_2
    NFS_HOST_NAME[3..10]

    如果主机具有连续命名,则可以使用范围指定符,例如: [3..10]

  3. 进入 Ansible 配置目录:

    [root@ansible ~]# cd /usr/share/ceph-ansible
  4. 要将管理员密钥复制到 Ceph 对象网关节点,请取消注释 /usr/share/ceph-ansible/group_vars/nfss.yml 文件中的 copy_admin_key 设置:

    copy_admin_key: true
  5. 配置 /usr/share/ceph-ansible/group_vars/nfss.yml 文件的 FSAL (File System Abstraction Layer) 部分。提供导出 ID (NUMERIC_EXPORT_ID)、S3 用户 ID (S3_USER)、S3 访问密钥 (ACCESS_KEY) 和密钥密钥 (SECRET_KEY):

    # FSAL RGW Config #
    
    ceph_nfs_rgw_export_id: NUMERIC_EXPORT_ID
    #ceph_nfs_rgw_pseudo_path: "/"
    #ceph_nfs_rgw_protocols: "3,4"
    #ceph_nfs_rgw_access_type: "RW"
    ceph_nfs_rgw_user: "S3_USER"
    ceph_nfs_rgw_access_key: "ACCESS_KEY"
    ceph_nfs_rgw_secret_key: "SECRET_KEY"
    警告

    访问和密钥是可选的,可以生成。

  6. 运行 Ansible playbook:

    1. 裸机部署:

      [ansible@admin ceph-ansible]$ ansible-playbook site.yml --limit nfss -i hosts
    2. 容器部署:

      [ansible@admin ceph-ansible]$ ansible-playbook site-container.yml --limit nfss -i hosts