基于librados的分布式NFS系统及其构建方法技术方案

技术编号:21184439 阅读:16 留言:0更新日期:2019-05-22 15:04
本发明专利技术提出一种基于librados的分布式NFS系统及其构建方法,所述系统包括客户端、NFS服务端、RADOS对象存储集群、迁移统计信息数据库,所述NFS服务端中集成有NFS服务功能、文件系统接口功能和元数据管理功能,并与RADOS对象存储集群和迁移统计信息数据库相连,向客户端提供服务。该系统可减少NFS读写IO的路径,降低读写延迟,提高读写性能,对高并发创建大量小文件的场景提供较好的支持,并且各NFS服务节点上的元数据可保持一致。系统支持多实例的分布式NFS服务,访问请求被负载均衡到各个服务节点,提高访问性能。系统还支持冷热池机制,根据访问情况将冷热数据进行定时迁移,始终在热池中存放访问频率最高的数据,有效提升热数据访问速度。

Distributed NFS System Based on Librados and Its Construction Method

The invention provides a distributed NFS system based on librados and its construction method. The system includes client, NFS server, RADOS object storage cluster and migration statistical information database. The NFS server integrates NFS service function, file system interface function and metadata management function, and is connected with RADOS object storage cluster and migration statistical information database. Client provides services. The system can reduce the path of NFS read-write IO, reduce the read-write delay, improve the read-write performance, provide better support for the scenario of creating a large number of small files in high concurrency, and the metadata on each NFS service node can be consistent. The system supports distributed NFS services with multiple instances, and access requests are loaded to each service node to improve access performance. The system also supports the mechanism of hot and cold pool, migrates the hot and cold data regularly according to the access situation, and stores the most frequently accessed data in the hot pool, which effectively improves the speed of hot data access.

【技术实现步骤摘要】
基于librados的分布式NFS系统及其构建方法
本专利技术涉及分布式文件系统,具体涉及一种分布式NFS文件系统及其构建方法。
技术介绍
网络文件系统(NetworkFileSystem,NFS)是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。参照图1和图2,当在NFS服务器设置好一个共享目录/home/public后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到自己文件系统的某个挂载点,这个挂载点可以自己定义,如图1中客户端A与客户端B挂载的目录就不相同。并且挂载好后客户端在本地能够看到服务端/home/public的所有数据。如果服务器端配置的客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。NFS通信过程基于远程过程调用协议(RemoteProcedureCallProtocol,RPC),主要过程如下:a)首先服务器端启动RPC服务,并开启111端口;b)启动NFS服务,并向RPC注册端口信息;c)客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口;d)服务端的RPC(portmap)服务反馈NFS端口信息给客户端;e)客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。尽管NFS文件系统是使用广泛的文件系统,但是由于NFS文件系统是基于单机文件系统设计,NFS文件服务只能作为一个单服务实例导出,单服务端性能较低,且可靠性无法保证。Ceph是一种为高性能、高可靠性和高可扩展性而设计的分布式存储系统,其核心为RADOS(Reliable,AutonomicDistributedObjectStore)存储系统,能够在动态变化和异质结构的存储设备机群之上提供一种稳定、可扩展、高性能的单一逻辑对象存储接口和能够实现节点的自适应和自管理的存储系统。Ceph以RADOS作为核心存储系统同时提供对象存储、块存储和文件系统存储三种功能,以便在满足不同应用需求的前提下简化部署和运维。Ceph文件系统(CephFS)是个POSIX兼容的文件系统,它使用Ceph存储集群来存储数据,在RADOS之上提供文件存储。参照图3,Ceph通过两种类型的实体合作来提供文件系统接口:客户端和元数据服务器(MetadataServer,MDS)。因为文件系统的元数据操作通常占到了文件系统将近一半的工作量,因此高效的元数据管理对整个系统的性能起着重要的作用。MDS是文件系统中所有元数据的同步点和缓存层,其主要功能是允许客户端安全地存储关于文件系统的元数据而不会变得不一致。目前主流使用cephfs或者分布式块设备RBD作为NFS服务的存储后端。如图4所示,客户端通过挂载NFS服务访问分布式文件系统。可进行的操作包括文件系统的所有操作:获取文件属性,读文件,写文件,创建文件,创建目录等。通过将分布式文件系统或者分布式块设备挂载在本地,然后重新导出NFS服务的方式,由于客户端访问NFS服务时,首先通过网络调用RPC访问NFS服务节点,然后再通过NFS服务去调用cephfs文件系统的接口libcephfs,然后再通过libcephfs的网络接口去访问MDS,网络服务路径较长,IO性能较低,对于高并发创建大量小文件的场景支持较差。如使用多NFS服务,由于原生NFS服务基于本地数据,分布式文件系统挂载到本地后,则系统内核会生成缓存用以加速,导致分布式文件系统的元数据在不同的NFS服务节点上不一致。此外,现有的基于librados的文件系统没有冷热池机制,不能有效地分离冷数据和热数据到不同的物理介质上面,未能充分地利用硬件资源。
技术实现思路
专利技术目的:针对现有技术的不足,本专利技术提出一种基于librados的分布式NFS系统,能够减少NFS读写IO的路径,降低读写延迟,提高读写性能,对高并发创建大量小文件的场景提供较好的支持,并且多个不同NFS服务节点上的元数据可保持一致。本专利技术的另一目的在于提供一种基于librados的分布式NFS系统的构建方法。技术方案:根据本专利技术的第一方面,提供了一种基于librados的分布式NFS系统,所述系统包括客户端、若干个NFS服务端、RADOS对象存储集群,所述若干个NFS服务端中的每一个均集成有NFS服务功能、文件系统接口功能和元数据管理功能,并均与RADOS对象存储集群相连,其中NFS文件系统直接挂载到客户端,向客户端提供服务。优选地,所述NFS服务端与客户端通过NFSV3协议进行文件操作。当客户端访问服务端时,服务端建立客户端缓存机制,记录已访问过的客户端信息;建立文件元数据缓存机制,记录最近访问的元数据信息;建立直接查找类型的元数据管理机制,使得能够直接根据文件fileID找到对应的元数据位置。优选地,所述NFS服务端包括:portmap模块:用于注册NFS相关的服务端口,包括mount服务端口和NFS读写服务端口;NFS协议处理模块:用于接收客户端的NFS请求,并交由核心处理模块进行处理,在处理完成后,将响应封装成RPC报文返回给客户端;核心处理模块:用于处理NFS请求,根据请求类型使用客户端缓存模块、元数据管理模块、rados连接池模块进行相关读写操作或者元数据修改操作;客户端缓存模块:用于管理客户端的连接数据,以保存客户端的相关信息以及客户端最近操作的元数据信息;元数据管理模块:用于根据客户端请求建立或修改元数据,其中元数据的单个文件块大小为1M,文件块的名称依次递增,单个元数据长度为512字节;rados连接池模块:用于维护一定数量的存储集群的rados连接,对外提供rados连接的获取和返回方法。优选地,所述客户端缓存模块中以key-value键值对形式保存每个客户端的连接信息,其中key是客户端IP地址,value是客户端连接信息。优选地,所述元数据管理模块还被配置为:基于LRU算法保存最近使用的一定数量的元数据的连接信息。所述元数据管理模块通过key-value键值对形式保存元数据连接信息,其中key是文件ID,value是文件元数据信息。优选地,所述系统还包括迁移统计信息数据库,所述迁移统计信息数据库与NFS服务端相连,用于统计整个分布式NFS系统的数据访问信息。所述NFS服务端还包括迁移模块,用于定期访问迁移统计信息数据库,将低于一定频率的数据过滤掉,只保留高频访问文件的统计信息存入数据库。根据本专利技术的第二方面,提供了一种基于librados的分布式NFS的构建方法,所述方法通过在NFS服务端中集成NFS服务功能、文件系统接口功能和元数据管理功能,向客户端提供服务,具体包括以下步骤:1)建立一个ceph集群,启动两个基本服务ceph-mon和ceph-osd;2)在ceph集群中创建元数据池、冷数据池、热数据池;3)在NFS服务端节点上面安装rados连接库模块librados,将集群连接相关配置拷贝到NFS配置节点上面;4)配置NFS服务相关冷热池信息、冷热统计信息数据库,启动NFS服务。有益效果:1、针对NFS服务读本文档来自技高网
...

【技术保护点】
1.一种基于librados的分布式NFS系统,其特征在于,所述系统包括客户端、若干个NFS服务端、RADOS对象存储集群,所述若干个NFS服务端中的每一个均集成有NFS服务功能、文件系统接口功能和元数据管理功能,并均与RADOS对象存储集群相连,其中NFS文件系统直接挂载到客户端,向客户端提供服务。

【技术特征摘要】
1.一种基于librados的分布式NFS系统,其特征在于,所述系统包括客户端、若干个NFS服务端、RADOS对象存储集群,所述若干个NFS服务端中的每一个均集成有NFS服务功能、文件系统接口功能和元数据管理功能,并均与RADOS对象存储集群相连,其中NFS文件系统直接挂载到客户端,向客户端提供服务。2.根据权利要求1所述的基于librados的分布式NFS系统,其特征在于,所述NFS服务端与客户端通过NFSV3协议进行文件操作。3.根据权利要求1所述的基于librados的分布式NFS系统,其特征在于,当客户端访问服务端时,服务端建立客户端缓存机制,记录已访问过的客户端信息;建立文件元数据缓存机制,记录最近访问的元数据信息;建立直接查找类型的元数据管理机制,使得能够直接根据文件fileID找到对应的元数据位置。4.根据权利要求3所述的基于librados的分布式NFS系统,其特征在于,所述NFS服务端包括:portmap模块:用于注册NFS相关的服务端口,包括mount服务端口和NFS读写服务端口;NFS协议处理模块:用于接收客户端的NFS请求,并交由核心处理模块进行处理,在处理完成后,将响应封装成RPC报文返回给客户端;核心处理模块:用于处理NFS请求,根据请求类型使用客户端缓存模块、元数据管理模块、rados连接池模块进行相关读写操作或者元数据修改操作;客户端缓存模块:用于管理客户端的连接数据,以保存客户端的相关信息以及客户端最近操作的元数据信息;元数据管理模块:用于根据客户端请求建立或修改元数据,其中元数据的单个文件块大小为1M,文件块的名称依次递增,单个元数据长度为512字节;rados连接池模块:用于维护一定数量的存储集群的rados连接,对外提供rados...

【专利技术属性】
技术研发人员:袁东陈小锁陶毅昊冯骏
申请(专利权)人:南京华讯方舟通信设备有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1