注意
本文档适用于 Ceph 开发版本。
NFS
CephFS 命名空间可以通过 NFS 协议使用NFS-Ganesha NFS 服务器. 本文档提供有关手动配置 NFS-Ganesha 集群的信息。管理 NFS-Ganesha 集群和 CephFS 导出的最简单和首选方法是使用ceph nfs ...
命令。有关详细信息,请参阅CephFS 和 RGW 导出 over NFS。由于部署是使用 cephadm 或
要求
Ceph 文件系统
libcephfs2
,nfs-ganesha
和nfs-ganesha-ceph
在 NFS 服务器主机上安装 Ceph 文件系统软件包。连接到 Ceph 公共网络的 NFS-Ganesha 服务器主机
Note
建议使用 3.5 或更高版本的稳定版 NFS-Ganesha 软件包以及 pacific (16.2.x) 或更高版本的 Ceph 软件包。
配置 NFS-Ganesha 以导出 CephFS
NFS-Ganesha 提供了一个文件系统抽象层 (FSAL),用于插入不同的存储后端。FSAL_CEPH是用于 CephFS 的插件 FSAL。对于每个 NFS-Ganesha 导出,FSAL_CEPH使用 libcephfs 客户端挂载 NFS-Ganesha 导出的 CephFS 路径。
设置 NFS-Ganesha 与 CephFS,涉及设置 NFS-Ganesha 和 Ceph 的配置文件以及 NFS-Ganesha 为访问 CephFS 创建的 Ceph 客户端的 CephX 访问凭证。
NFS-Ganesha 配置
这是一个示例 ganesha.conf配置为使用FSAL_CEPH。它适用于独立的 NFS-Ganesha 服务器,或由某种集群软件(例如,Pacemaker)管理的 NFS-Ganesha 服务器的主动/被动配置。示例配置中的选项的重要详细信息作为注释添加。有选项可以执行以下操作:
尽可能最小化 Ganesha 缓存,因为FSAL_CEPH的 libcephfs 客户端也积极缓存
从存储在 RADOS 对象中的 Ganesha 配置文件中读取
将客户端恢复数据存储在 RADOS OMAP 键值接口
强制执行 NFSv4.1+ 访问
启用读取委托(至少需要 v13.0.1
libcephfs2
软件包和 v2.6.0 稳定nfs-ganesha
和nfs-ganesha-ceph
软件包)
重要
在某些情况下,使用 CephFS FSAL 的 NFS 访问会失败。这会导致抛出读取“输入/输出错误”的错误。在这种情况下,必须为 CephFS 元数据和数据池设置应用程序元数据。通过运行以下命令执行此操作:
ceph osd pool application set <cephfs_metadata_pool> cephfs <cephfs_data_pool> cephfs
libcephfs 客户端的配置
ceph.conf
libcephfs 客户端的配置包括一个[client]
部分与mon_host
选项设置为让客户端连接到 Ceph 集群的监视器,通常通过ceph config generate-minimal-conf
生成。
[client]
mon host = [v2:192.168.1.7:3300,v1:192.168.1.7:6789], [v2:192.168.1.8:3300,v1:192.168.1.8:6789], [v2:192.168.1.9:3300,v1:192.168.1.9:6789]
使用 NFSv4 客户端挂载
建议使用 NFSv4.1+ 协议挂载 NFS-Ganesha 导出以获得会话的好处。
挂载 NFS 资源的约定是平台特定的。以下约定适用于 Linux 和某些 Unix 平台:
mount -t nfs -o nfsvers=4.1,proto=tcp <ganesha-host-name>:<ganesha-pseudo-path> <mount-point>
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.