4.9. 使用 Ceph 对象网关配置 NFS
使用 Ceph 对象存储后端的 NFS 不是全面的 NFS 服务。它的主要目的是,通过 NFS 文件系统优化数据,对传统应用进行无缝迁移,以使用文件与 Ceph 对象存储进行对象存储。然后,通过 S3 端点作为 S3 存储桶访问数据。对于具有高可用性和透明故障转移等功能的完整 NFS 解决方案,您应该将 NFS 与 CephFS 后端搭配使用。
NFS 服务使用 Cephadm 通过 Ceph 对象存储后端部署。NFS 的配置存储在 nfs-ganesha 池中,导出通过命令行界面(CLI)命令和 Ceph 控制面板进行管理。如需更多信息,请参阅使用 Ceph 对象存储后端部署 NFS 服务 ,将命名空间导出到 NFS-Ganesha,以及管理 NFS Ganesha 导出。
Ceph 对象网关命名空间可以通过基于文件的 NFSv4 协议导出,以及传统的 HTTP 访问协议(S3 和 Swift)。特别是,现在可将 Ceph 对象网关配置为在 NFS-Ganesha NFS 服务器中嵌入时提供基于文件的访问。
在使用基于 Cephadm 或 Rook 的部署时,只支持 NFSv4 协议。
命名空间约定
NFS 符合 Amazon Web Services (AWS)层次结构命名空间惯例,将 UNIX 样式的路径名称映射到 S3 存储桶和对象。
附加命名空间的顶级由 S3 存储桶组成,以 NFS 目录表示。文件和目录(对应于 bucket)各自代表为对象、遵循 S3 前缀和分隔符惯例。/ 是唯一受支持的路径分隔符。
例如,如果 NFS 客户端已将 RGW 命名空间挂载到 /nfs
,那么 NFS 命名空间中的文件 /nfs/mybucket/www/index.html
对应于 bucket/container mybucket
中的 RGW 对象 www/index.html
。
支持的操作的限制
Ceph Object Storage NFS 接口支持对文件和目录的大部分操作,其限制如下:
- 不支持链接,包括符号链接。
不支持 NFS ACL。
- 支持 UNIX 用户和组所有权和权限。
目录可能无法移动/重新命名。
- 文件可以在目录之间移动。
仅支持 full, sequential write I/O
- 写入操作受限于 上传。
- 许多典型的 I/O 操作(如编辑文件)将失败,因为它们执行非排序存储。
- 有些文件实用程序按顺序编写(例如,一些 GNU tar 版本)可能会因为不常的非排序存储而失败。
-
当通过 NFS 挂载时,顺序应用程序 I/O 通常可以通过同步挂载选项按顺序写入 NFS 服务器。例如: Linux 中的
-osync
。 - 无法同步挂载的 NFS 客户端(例如 MS Windows)将无法上传文件。
4.9.1. 将命名空间导出到 NFS-Ganesha
若要配置新的 NFS Ganesha 导出以用于 Ceph 对象网关,您必须使用 Red Hat Ceph Dashboard。如需了解更多详细信息,请参阅 Red Hat Ceph Storage 仪表板指南中的在 Ceph 仪表板中管理 NFS Ganesha 导出 部分。
对于使用 Ceph 对象网关的现有 NFS 环境,目前不支持从 Red Hat Ceph Storage 4 升级到 Red Hat Ceph Storage 5。
红帽仅支持使用 Ceph 对象网关导出 NFS 版本 4。
您只能使用命令行界面(CLI)创建用户级 NFS Ganesha 导出。
先决条件
- 正在运行的 Red Hat Ceph Storage
- 已创建的用户。如需更多信息,请参阅 创建用户。
流程
登录 Cephadm shell。
语法
[root@host01 ~]# cephadm shell
在根目录中创建用户级导出。
语法
ceph nfs export create rgw --cluster-id NFS_CLUSTER_NAME --pseudo-path PATH_FROM_ROOT --user-id USER_ID
示例
[ceph:root@host01 /]# ceph nfs export create rgw --cluster-id cluster1 --pseudo-path root/testnfs1/ --user-id nfsuser
挂载 NFS。
语法
mount -t nfs IP_ADDRESS:PATH_FROM_ROOT -osync MOUNT_POINT
示例
[ceph:root@host01 /]# mount -t nfs 10.0.209.0:/root/testnfs1 -osync /mnt/mount1
对于大型上传 >200 GB,使用 -osync
挂载可能会影响输入/输出操作。将 S3 与多部分搭配使用,以上传此类对象。
如果您在存储桶上运行 setattr
,它会静默阻止在代表存储桶的路径上设置属性。