nfs-ganesha 架构
- 参考
NFS Ganesha 是一个 NFSv3、v4、v4.1 文件服务器,在大多数 UNIX/Linux 系统上以 用户模式 运行。它还支持 9p.2000L 协议。
Ganesha 是一个 基于模块 的程序,每个模块都负责各自的任务和目标。
1 架构图



2 Ganesha 的核心模块
- Memory Manager :负责 Ganesha 的内存管理。
- RPCSEC_GSS :负责使用 RPCSEC_GSS 的数据传输,通常使用 krb5, SPKM3 或 LIPKEY 来管理安全。
- NFS 协议模块:负责 NFS 消息结构的管理
- Metadata(Inode) Cache: 负责元数据缓存管理
- File Content Cache:负责数据缓存管理
- File System Abstraction Layer(FSAL): 非常重要的模块,通过一个接口来完成对命名空间的访问。所访问的对象随后会放置在 inode cache 和 file content cache 中。
- Hash Tables:提供了基于红黑树的哈希表,这个模块在 Ganesha 里用到很多。
3 RPCSEC_GSS
- 编写使用 GSS-API 的应用程序
GSS-API 是一个以通用方式为调用方提供安全服务的框架。许多底层机制和技术(如 Kerberos v5 或公钥技术)都支持 GSS-API 框架。
针对网络应用程序使用 RPC(Remote Procedure Call,远程过程调用)协议的程序员可以使用 RPCSEC_GSS 来提供安全性。 RPCSEC_GSS 是位于 GSS-API 上面的一个独立层。 RPCSEC_GSS 可提供 GSS-API 的所有功能,但其方式是针对 RPC 进行了调整的。 实际上,RPCSC_GSS 可用于向程序员隐藏 GSS-API 的许多方面,从而使 RPC 安全性具有更强的可访问性和可移植性。
