一种分布式集群融合NFS协议的实现方法及装置与流程

文档序号:12377375阅读:532来源:国知局
一种分布式集群融合NFS协议的实现方法及装置与流程

本发明涉及分布式集群技术领域,特别是涉及一种分布式集群融合NFS协议的实现方法及装置。



背景技术:

分布式集群存储系统可以将多个存储节点组成一个整体,用元数据与数据统一存储的架构,用户数据的传输只发生在客户端和数据节点之间,保证集群整体性能的线性增长,系统中包含监控服务(Monitor,后简写Mon)、元数据服务(MDS)、数据服务(OSD:Object Storage Device对象存储设备)和客户端,系统对外提供标准的POSIX接口数据服务。

系统的监控服务、元数据服务和数据服务都采用集群模式,能够保障在任一节点出现故障时,不影响主机业务,实现了系统的高可用。通常情况下,采用三个监控服务,实现系统的监控、日志收集、系统管理等功能;元数据集群在规模较小情况下可以采用主备模式,在规模较大或者性能要求较高时采用集群模式,线性扩展文件并发访问能力;系统支持数据服务在线横向扩展,且性能随其线性增长。在软硬件设计上做到无单点故障,在任一监控服务、数据服务或者应用主机发生故障的情况下仍可保证数据存取服务不中断。

分布式文件系统最为常用的访问接口是Native协议接口,即基于FUSE实现的POSIX兼容接口。这种接口相对于NAS访问接口,性能较好,而且对传统应用或遗留系统具有良好的适用性,应用程序不需要做任何修改。之前的NFS访问协议,也都是在FUSE接口基础上通过增加一层NFS服务来实现相应功能,从而构成集群NFS的系统形态。但是由于FUSE是一种用户态的文件系统接口,需要多次在用户态和内核态进行上下文交换(context switch),从而产生一定的性能损耗,尤其是对NAS访问来说,性能损耗更为严重。



技术实现要素:

本发明的目的是提供一种分布式集群融合NFS协议的实现方法及装置,以减少现有分布式集群融合NFS协议的实现过程中性能消耗较大、访问效率较低的问题。

为解决上述技术问题,本发明提供一种分布式集群融合NFS协议的实现方法,包括:

接收用户输入的启动指令;

调用用户空间数据访问接口API访问节点对象存储设备数据,通过网络传递至存储集群;

所述存储集群加载NFS模块,启动NFS服务,监听客户端连接请求;

当监听到有客户端连接请求时,对所述客户端的身份进行识别,识别通过后与所述客户端建立连接。

可选地,在所述监听客户端连接请求之前还包括:

所述NFS模块加载配置文件,读取配置目录列表以及用户权限配置信息。

可选地,所述对所述客户端的身份进行识别,识别通过后与所述客户端建立连接包括:

根据配置文件项识别所述客户端;如果所述配置文件项判定是允许的请求,则识别通过。

可选地,在与所述客户端建立连接之后还包括:

返回连接响应,以使所述客户端进行读写操作。

可选地,在所述对所述客户端的身份进行识别之后还包括:

当识别出所述客户端没有权限时,生成告警信息。

可选地,还包括:

对所述配置目录列表中的子目录文件进行显示。

可选地,还包括:

接收用户输入的修改共享目录的命令,对所述配置文件中的共享目录列表进行更新。

可选地,还包括:

接收用户输入的查询共享目录的命令,向所述用户显示共享目录列表。

本发明还提供了一种分布式集群融合NFS协议的实现装置,包括:

接收模块,用于接收用户输入的启动指令;

调用模块,用于调用用户空间数据访问接口API访问节点对象存储设备数据,通过网络传递至存储集群;

监听模块,用于所述存储集群加载NFS模块,启动NFS服务,监听客户端连接请求;

识别模块,用于当监听到有客户端连接请求时,对所述客户端的身份进行识别,识别通过后与所述客户端建立连接。

本发明所提供的分布式集群融合NFS协议的实现方法及装置,通过接收用户输入的启动指令;调用用户空间数据访问接口API访问节点对象存储设备数据,通过网络传递至存储集群;存储集群加载NFS模块,启动NFS服务,监听客户端连接请求;当监听到有客户端连接请求时,对客户端的身份进行识别,识别通过后与客户端建立连接。本发明所提供的分布式集群融合NFS协议的实现方法及装置,针对融合多个存储节点于一体的分布式集群,通过横向可扩展的文件系统NFS模块,实现NFS共享提高访问效率,减小IO访问路径,减少了性能消耗,从而提高整个集群的访问效率。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明所提供的分布式集群融合NFS协议的实现方法的一种具体实施方式的流程图;

图2为现有技术中原始拓扑示意图;

图3为本发明所提供的实施例中增加API后拓扑示意图;

图4为本发明所提供的实施例中NFS启动流程图;

图5为本发明所提供的实施例中配置文件加载流程图;

图6为本发明所提供的实施例中读操作流程图;

图7为本发明所提供的实施例中共享目录操作流程;

图8为本发明实施例提供的分布式集群融合NFS协议的实现装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明所提供的分布式集群融合NFS协议的实现方法的一种具体实施方式的流程图如图1所示,该方法包括:

步骤S101:接收用户输入的启动指令;

步骤S102:调用用户空间数据访问接口API访问节点对象存储设备数据,通过网络传递至存储集群;

步骤S103:所述存储集群加载NFS模块,启动NFS服务,监听客户端连接请求;

步骤S104:当监听到有客户端连接请求时,对所述客户端的身份进行识别,识别通过后与所述客户端建立连接。

本发明所提供的分布式集群融合NFS协议的实现方法,通过接收用户输入的启动指令;调用用户空间数据访问接口API访问节点对象存储设备数据,通过网络传递至存储集群;存储集群加载NFS模块,启动NFS服务,监听客户端连接请求;当监听到有客户端连接请求时,对客户端的身份进行识别,识别通过后与客户端建立连接。本发明所提供的分布式集群融合NFS协议的实现方法,针对融合多个存储节点于一体的分布式集群,通过横向可扩展的文件系统NFS模块,实现NFS共享提高访问效率,减小IO访问路径,减少了性能消耗,从而提高整个集群的访问效率。

在上述实施例的基础上,本发明所提供的分布式集群融合NFS协议的实现方法中,在所述监听客户端连接请求之前还可以包括:

所述NFS模块加载配置文件,读取配置目录列表以及用户权限配置信息。

进一步地,对所述客户端的身份进行识别,识别通过后与所述客户端建立连接的过程可以具体为:

根据配置文件项识别所述客户端;如果所述配置文件项判定是允许的请求,则识别通过。

在上述任一实施例的基础上,本发明所提供的分布式集群融合NFS协议的实现方法中,在与所述客户端建立连接之后还可以包括:

返回连接响应,以使所述客户端进行读写操作。

优选地,在所述对所述客户端的身份进行识别之后还可以进一步包括:

当识别出所述客户端没有权限时,生成告警信息。

此外,本发明所提供的实施例还可以包括:

对所述配置目录列表中的子目录文件进行显示。

分布式集群融合NFS协议的实现方法还可以包括:对共享目录进行修改以及查询的过程,具体可以为:

接收用户输入的修改共享目录的命令,对所述配置文件中的共享目录列表进行更新;

接收用户输入的查询共享目录的命令,向所述用户显示共享目录列表。

如图2现有技术中原始拓扑示意图以及图3本发明所提供的实施例中增加API后拓扑示意图所示,本申请实施例通过设计调用用户空间数据访问接口API函数库绕开FUSE挂载点直接访问osd。用户可以直接在应用程序通过调用该API来访问osd数据。它缩减了FUSE和内核VFS层的I/O访问路径,通过它访问节点osd,性能和latency均可以得到大幅提升。此函数库定义并实现了一组POSIX兼容API,与FUSE接口中的API一一对应。

请参照图4本发明所提供的实施例中NFS启动流程图、图5配置文件加载流程图、图6读操作流程图以及图7共享目录操作流程,下面对本发明实施例的实现过程进行进一步详细描述。

系统管理员通过应用程序下达启动命令,后台调用API通过网络传递给存储集群,集群系统加载NFS模块,启动NFS服务,此时NFS会加载配置文件,读取配置目录列表及用户权限,便可以监听客户端请求,随时对外提供NFS服务;当有客户端连接请求时,存储系统会根据配置文件项识别客户端,如果是允许的请求,便与客户端建立连接,返回连接响应;此时客户端便可以正常进行读写操作。后台调用连接过程对前端是透明的,所以用户可能感知不到与非融合NFS有太大的区别。

应用程序中调用API的过程,可以分为如下三个步骤:

(1)icfs环境初始化

icfs=icfs_new(“volname”);

icfs_set_volfile_server(icfs,transport,server,port);

icfs_init(icfs)

(2)libicfsapi接口调用

icfspreadv_async(),icfs_writev_async()

icfs_open(),icfs_creat(),icfs_close()

icfs_truncate(),icfs_fstat()

icfs_fsync_async()

(3)icfs环境释放

icfs_fini()

下面对本发明实施例提供的分布式集群融合NFS协议的实现装置进行介绍,下文描述的分布式集群融合NFS协议的实现装置与上文描述的分布式集群融合NFS协议的实现方法可相互对应参照。

图8为本发明实施例提供的分布式集群融合NFS协议的实现装置的结构框图,参照图8分布式集群融合NFS协议的实现装置可以包括:

接收模块100,用于接收用户输入的启动指令;

调用模块200,用于调用用户空间数据访问接口API访问节点对象存储设备数据,通过网络传递至存储集群;

监听模块300,用于所述存储集群加载NFS模块,启动NFS服务,监听客户端连接请求;

识别模块400,用于当监听到有客户端连接请求时,对所述客户端的身份进行识别,识别通过后与所述客户端建立连接

本发明所提供的分布式集群融合NFS协议的实现装置,减少了用户态和内核态的交互,缩短了NFS的访问路径;同时调用步骤简单,容易上手;提升了系统访问效率,性能提高。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的分布式集群融合NFS协议的实现方法以及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1