跳转至

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 安全性具有更强的可访问性和可移植性。

RPCSEC_GSS 和 GSS-API