【分析】Ganesha详解

NFS-Ganesha是一个用户空间NFS文件服务器,支持NFSv3、NFSv4.0、NFSv4.1和pNFS等协议,还有Plan9操作系统的9p.2000L协议。

NFS-Ganesha通过FSAL(File System Abstraction Layer)同时支持多种文件系统,也可以同时多种协议

NFS-GANESHA支持运行的平台包括Linux,BSDvariants和POSIX-compliant Unixes。

目前社区积极的参与者:IBM,Panasas,Redhat,LinuxBox,CES


作者:Younger Liu,

本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可。

原文地址:http://blog.csdn.net/younger_china/article/details/73412295


NFS-Ganesha作为一个用户空间服务器,相比内核空间服务存在较多的好处。

1   User Server > Kernel Server

1.   内核级服务需要提供更多的up-calls

Ø  Mounted和exportfs信息

Ø  ID映射

Ø  GSS API

Ø  客户端ID跟踪

Ø  Statd

Ø  集群相关的服务

2.   为什么用户空间更好

Ø  用户空间比内核空间更具有灵活性

Ø  更容易的实现restart、failover、failback

Ø  不需要实现系统调用

Ø  不需要与用户空间的upcalls交互

Ø  Clustering实现变得比较容易

Ø  可以提供有针对性的缓存功能

Ø  更加灵活的FSAL

Ø  可以更好的利用文件系统的特定功能

Ø  可以支持通用的DLM分布式锁管理来支持多种协议

Ø  易于实现Multi-tenancy

Ø  容易监测和控制资源消耗

Ø  调试和管理更加方便:由于在用户空间实现,因此不需要考虑kernel Crash。

 

3.   内核级服务的好处哪?

Ø  文件句柄(Filehandles):作为主要优势,内核已经实现了通用的文件句柄

Ø  性能:用户空间可能相对比较差一些,但是通过针对性的缓存方案、定制化的RPC方案、线程化/并行化执行等手段来提供性能

Ø  所有权/权限:内核态基本不需要考虑所有权和权限问题,用户态针对每个进程均需要考虑。可以通过统一的系统调用或者lib库来实现

Ø  没有重复的缓存和零拷贝读/写减少了方案的复杂性

 

2  架构分析

 

2.1 FSAL

FSAL(File System Abstraction Layer),文件系统抽象层,将后端存储抽象为统一的、命名空间独立的API,供应用层来调用。

上段所述的API是基于句柄(FileHandle)来实现的,而句柄在最新内核(3.10后版本)已经完全支持。

FSAL实现了用户空间指定的认证机制。

FSAL支持多种的文件系统,见“文件系统后端”

 

2.2 File Content Cache

为FSAL entries管理数据cache。

 

 

2.3 Cache inode

为FSAL管理metadata cache

 

2.4 RPC Layer

使用 ntirpc。

 

2.5 Log管理

日志管理接口,支持写入文件和syslog

 

2.6 Hash Table

提供一个基于HashTable的红黑树,提供关联寻址到内部结构。此层被广泛用于建立各种高速缓存,包括元数据缓存。

provides a Red-Black Tree based hash table to provide associative addressingto internal structure. This layer is widely used to build various cache, includingthe metadata cache.

 

2.7 FSAL UP / Cache Inode UP

启动一个守护进程(daemon)来通知FSAL,底层的文件系统已经发生了改变。这些信息用于失效Cache Inode或更新Cache Inode。

provides the daemon with a way to be notified by the FSAL thatchanges have been made to the underlying FS outside Ganesha.

These information is used to invalidate or update the Cache Inode.

 

2.8 文件系统后端

从V2.0开始。内置的FASL能够动态加载API模块,API的设计是为了使得用户或者开发者更容易的添加额外的模块支持。

2.8.1  CEPH

Ganesha Ceph FSAL提供一套 Ganesha Re-Export映射——能够映射到一个或多个Ceph集群(1 per export)。在内部,是由libcephfs库提供到Ceph的驱动接口。

Ceph FSAL支持RPC5661文件布局的pNFS原型,但是由于文件布局条带化模式的限制,pNFS在Ganesha2.0中无法使用。

[The Ceph FSAL has prototype pNFS support usingthe RFC5661 files layout. Due to limitations (striping patterns) in the fileslayout, pNFS is not a supported capability in Ganesha 2.0.]

 

2.8.2  GLUSTER

FSAL Layer是集成了Nfs-Ganesha和GlusterFS文件系统。如果在nfs-ganesha conf配置文件中设置了FSAL GLUSTER enabled,那么就可以通过nfs-ganesha导出GlusterFS卷。这就意味者,NFSv3和NFSv4客户端均可以使用GlusterFS卷。

nfs-ganesha可以部署在 GlusterFS 节点,也可以部署在GlusterFS集群以外。使用 GlusterFS 除了基于社区许可证(www.gluster.org) 外,没有其他特别许可证。

nfs-ganesha和 GlusterFS 集成通过 FSAL_GLUSTERenable 使得 Gluster 卷导出(export)和可用。FSAL_GLUSTER 层与 GlusterFS 文件系统的是libgfapi库(Libgfapi是GlusterFS 社区的一部分)来实现。

用户安装GlusterFS过程中,启动nfs-ganesha之前必须保证libgfapi是可用的。而开发人员需要几个额外的头文件 ︰ glfs.h 和 glfs handles.h。

在源码包中,为GlusterFS提供了简单的nfs-ganesha配置文件,在$TOP/src/FSAL/FSAL_GLUSTER的README中。需要修改主机名、IP、导出卷的名字,v4需要使用的block和伪路径。

参见 https://forge.gluster.org/nfs-ganesha-and-glusterfs-integration

 

2.8.3  VFS

VFS FSAL 可以使用任何文件提供给操作系统的 Posix 接口。唯一的要求是文件系统能够生成和使用"file handles"。XFS在 Linux 系统中是较早支持"filehandles"的,因此,在旧的linux内核版本中,FSAL可以使用 XFS 。在2.6.38及之后版本,添加了一组通用的“file handles”系统调用,所以FSAL可以支持linux系统的任何文件系统类型。这是这个 FSAL的默认句柄管理。

VFS FSAL 还支持 Linux中EXOFS文件系统的pNFS 布局 、还支持linux和FreeBSD的 PanFS (Panasas 专有) 文件系统的pNFS 布局。它是由export定义的选项启用。

等等


作者:Younger Liu,

本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可。

原文地址:http://blog.csdn.net/younger_china/article/details/73412295


 

作者:Younger Liu,

本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可。

原文地址:http://blog.csdn.net/younger_china/article/details/73412295

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Ceph NFS-Ganesha是一个在Ceph分布式存储系统上部署的NFS网关服务。Ceph是一个开源的分布式存储系统,它提供了高度可扩展的对象存储和块存储服务。而NFS-Ganesha是一个开源的用户空间NFS服务器,它允许将Ceph存储系统通过NFS协议暴露给客户端。 通过部署Ceph NFS-Ganesha,用户可以使用标准的NFS协议从客户端访问Ceph存储。这样一来,用户可以像访问本地文件系统一样访问Ceph存储,而无需额外的客户端软件或驱动程序。这提供了更方便和统一的访问方式,并增强了Ceph存储的可用性和可访问性。 Ceph NFS-Ganesha提供了多种配置选项和管理功能,用户可以根据自己的需求和场景来灵活配置和管理NFS-Ganesha服务。它支持多种NFS协议版本(如NFSv3、NFSv4)和安全认证机制(如Kerberos、SASL),并提供了高级的特性,如文件锁定、ACL支持等。 此外,Ceph NFS-Ganesha还具备高可用性和容错性。通过多个NFS-Ganesha网关的部署,可以实现NFS服务的冗余和负载均衡。当某个网关节点故障时,其他节点可以接管服务,确保数据的持续可访问性。 总之,Ceph NFS-GaneshaCeph存储系统提供了一个方便、高效、可扩展的NFS接口,使得用户可以更加灵活地使用Ceph存储,并提供了高可用性和容错性保证。这是一个强大的工具,可用于构建大规模分布式存储和数据共享解决方案。 ### 回答2: Ceph NFS-Ganesha是一个基于Ceph存储集群的分布式文件系统解决方案。它结合了Ceph的高可用、可伸缩性和数据冗余特性,与NFS-Ganesha的协议转换能力相结合,提供了一种可靠、高效的共享文件系统。 在Ceph NFS-Ganesha中,NFS-Ganesha作为一个用户空间的文件系统服务器,负责将NFS请求转换为与Ceph存储集群通信的RADOS Gateway请求。RADOS Gateway是Ceph存储集群的一部分,负责与客户端通信,提供对象存储和块存储的功能。 通过将NFS请求转换为RADOS Gateway请求,Ceph NFS-Ganesha可以将数据分布到Ceph存储集群的多个节点上,实现数据的冗余和可靠性。同时,由于Ceph存储集群的分布式特性,可以实现高可用和可伸缩性,提供更好的性能和扩展性。 另外,Ceph NFS-Ganesha还支持多种认证机制,可以通过Kerberos、LDAP等方式进行用户认证和授权管理,以确保数据的安全性和访问控制。 总的来说,Ceph NFS-Ganesha是一个强大而灵活的分布式文件系统解决方案,结合了Ceph存储集群和NFS-Ganesha的优势,提供可靠、高效的共享文件系统功能。无论是在大规模的数据存储环境还是小型的个人或企业需求中,Ceph NFS-Ganesha都可以提供稳定、可靠的文件系统服务。 ### 回答3: Ceph NFS-Ganesha是一个基于Ceph存储系统的开源文件共享解决方案。它通过将Ceph的分布式存储和NFS协议相结合,为用户提供了一个可靠、高性能的共享文件系统。 NFS-Ganesha充分利用了Ceph的特性,如分布式存储、数据冗余和自动恢复等。它通过将Ceph集群的存储空间划分为多个块,每个块由多个存储节点组成,来实现数据的高可靠性和可扩展性。该解决方案还提供了快速的数据访问速度,支持高吞吐量和低延迟的文件访问。 NFS-Ganesha还具有灵活性和可配置性。用户可以根据自己的需求调整不同的参数,以优化性能和功能。它支持多种NFS版本,可以与其他存储系统和应用程序集成,并提供高级功能,如文件锁定、权限控制和文件级别的快照。 通过使用Ceph NFS-Ganesha,用户可以轻松共享和访问数据。无论是在企业中的文件共享,还是在科学研究中的数据交换,都可以通过该解决方案实现高效的文件共享和传输。同时,Ceph的分布式存储能力保证了数据的可靠性和可扩展性,为用户提供了一个可靠的存储基础设施。 总之,Ceph NFS-Ganesha是一个功能强大的文件共享解决方案,它结合了Ceph的分布式存储和NFS协议,并提供了高性能、可靠性和可配置性,为用户提供了一个完整的文件共享和访问解决方案。无论是在企业还是科研领域,它都是一个值得考虑的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YoungerChina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值