文件访问控制方法和装置与流程

文档序号:12377551阅读:265来源:国知局
文件访问控制方法和装置与流程

本发明实施例涉及存储技术领域,尤其涉及一种文件访问控制方法和装置。



背景技术:

分布式锁管理(英文:Distributed Lock Manager,DLM)分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。分布式锁一般分为两个角色:锁的代理(英文:proxy)和锁的主控(英文:master):锁的proxy处理从本存储节点接入的加锁者的竞争;锁的master处理各个锁的proxy之间的加锁者的竞争,以确定是否可以对文件进行IO操作。分布式锁为了保证每个节点的负载均衡,一般会把锁请求在每个节点之间进行负载均衡处理,采用一致性哈希实现,即通过一致性hash算法计算出的hash值落入哪个区间,此个锁请求对应的锁的master就由这个区间对应的存储节点来执行。当锁的proxy与锁的master不属于同一存储节点,则需要进行锁请求的转发。

同时,一般的分布式系统上的网络文件系统(英文:Network File System,NFS)实现文件系统有两种形式:文件系统有归属和全分布式架构;其中,文件系统有归属的架构文件系统的处理只能在归属节点上处理。当客户端接入的存储节点与客户端需要访问的文件所存储的节储节点不是同一存储节点时,客户端向其接入的存储节点发送IO请求,经过其接入的存储节点的转发,该IO请求才能到达其需要访问的文件所属的存储节点,然后才能执行IO操作。

但是,完成上述的IO操作需要经过多次网络转发才能完成,IO操作效率低下。



技术实现要素:

本发明实施例提供一种文件访问控制方法和装置,用于减少节点间的交互过程,提高文件访问效率。

第一方面,本发明实施例提供一种文件访问控制方法,包括:第一存储节点接收客户端基于网络附加存储(英文:Network Attached Storage,简称:NAS)协议发送的文件访问请求,所述文件访问请求用于请求访问待访问文件;向第二存储节点发送文件共享锁请求和所述文件访问请求,所述第二存储节点为存储所述待访问文件的存储节点,所述文件共享锁请求用于请求为所述待访问文件分配共享锁;所述待访问文件的锁管理由所述第二存储节点执行,所述第二存储节点上设置有所述待访问文件的锁的主控;接收所述第二存储节点发送的所述待访问文件的访问结果;向所述客户端转发所述访问结果。

可选地,所述第一存储节点向第二存储节点发送文件共享锁请求和所述文件访问请求,包括:通过DLM通道向所述第二存储节点发送文件共享锁请求和所述文件访问请求。

所述第一存储节点接收所述第二存储节点发送的所述待访问文件的访问结果,包括:通过所述DLM通道接收所述第二存储节点发送的所述待访问文件的访问结果。

第二方面,本发明实施例提供一种文件访问控制方法,包括:第二存储节点接收第一存储节点发送的文件共享锁请求和文件访问请求;所述文件访问请求用于请求访问待访问文件,所述第二存储节点为存储所述待访问文件的存储节点,所述文件共享锁请求用于请求为所述待访问文件分配共享锁;所述待访问文件的锁管理由所述第二存储节点执行,所述第二存储节点上设置有所述待访问文件的锁的主控;根据所述文件共享锁请求,为所述待访问文件分配共享锁;根据所述共享锁,对所述待访问文件执行句柄打开操作;根据所述文件访问请求,对所述待访问文件进行访问;向所述第一存储节点发送所述待访问文件的访问结果。

可选地,所述第二存储节点根据所述文件访问请求,对所述待访问文件进行访问之前,还包括:确定其它客户端当前是否根据所述待访问文件的存储地址进行访问;

所述第二存储节点根据所述文件访问请求,对所述待访问文件进行访问,包括:当确定其它客户端当前未根据所述待访问文件的存储地址进行访问时,根据所述文件访问请求,对所述待访问文件进行访问。

可选地,所述第二存储节点接收第一存储节点发送的文件共享锁请求和文件访问请求,包括:通过DLM通道接收所述第一存储节点发送的文件共享锁请求和文件访问请求;

所述第二存储节点向所述第一存储节点发送所述待访问文件的访问结果,包括:通过所述DLM通道向所述第一存储节点发送所述待访问文件的访问结果。

第三方面,本发明实施例提供一种存储节点,作为第一存储节点,包括:接收模块,用于接收客户端基于NAS协议发送的文件访问请求,所述文件访问请求用于请求访问待访问文件;发送模块,用于向第二存储节点发送文件共享锁请求和所述文件访问请求,所述第二存储节点为存储所述待访问文件的存储节点,所述文件共享锁请求用于请求为所述待访问文件分配共享锁;所述待访问文件的锁管理由所述第二存储节点执行,所述第二存储节点上设置有所述待访问文件的锁的主控;所述接收模块,还用于接收所述第二存储节点发送的所述待访问文件的访问结果;所述发送模块,还用于所述第一存储节点向所述客户端转发所述访问结果。

可选地,所述发送模块在向第二存储节点发送文件共享锁请求和所述文件访问请求时,具体用于:通过DLM通道向所述第二存储节点发送文件共享锁请求和所述文件访问请求。

所述接收模块在接收所述第二存储节点发送的所述待访问文件的访问结果时,具体用于:通过所述DLM通道接收所述第二存储节点发送的所述待访问文件的访问结果。

第四方面,本发明实施例提供一种存储节点,作为第二存储节点,包括:接收模块,用于接收第一存储节点发送的文件共享锁请求和文件访问请求;所述文件访问请求用于请求访问待访问文件,所述第二存储节点为存储所述待访问文件的存储节点,所述文件共享锁请求用于请求为所述待访问文件分配共享锁;所述待访问文件的锁管理由所述第二存储节点执行,所述第二存储节点上设置有所述待访问文件的锁的主控;处理模块,用于根据所述文件共享锁请求,为所述待访问文件分配共享锁;根据所述共享锁,对所述待访问文件执行句柄打开操作;根据所述文件访问请求,对所述待访问文件进行访问;发送模块,用于向所述第一存储节点发送所述待访问文件的访问结果。

可选地,所述处理模块,还用于在根据所述文件访问请求,对所述待访问文件进行访问之前,确定其它客户端当前是否根据所述待访问文件的存储地址进行访问;所述处理模块在根据所述文件访问请求,对所述待访问文件进行访问时,具体包括:当确定其它客户端当前未根据所述待访问文件的存储地址进行访问时,根据所述文件访问请求,对所述待访问文件进行访问。

可选地,所述接收模块具体用于:通过DLM通道接收所述第一存储节点发送的文件共享锁请求和文件访问请求;所述发送模块具体用于:通过所述DLM通道向所述第一存储节点发送所述待访问文件的访问结果。

本发明实施例提供一种文件访问控制方法和装置,由于待访问文件的锁管理由所述第二存储节点执行,所述第二存储节点上设置有所述待访问文件的锁的主控,因此,第一存储节点接收到文件访问请求后,可以将文件共享锁请求和所述文件访问请求一并发送给第二存储节点,再由第二存储节点根据文件共享锁请求分配共享锁,以及根据文件访问请求对待访问文件进行访问,减少了节点间的交互过程,提高了文件访问效率。

附图说明

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

图1为本发明实施例一提供的文件访问控制方法的流程图;

图2为本发明实施例二提供的文件访问控制方法的流程图;

图3为本发明实施例一提供的存储节点的结构示意图;

图4为本发明实施例二提供的存储节点的结构示意图;

图5为本发明实施例三提供的存储节点的结构示意图;

图6为本发明实施例四提供的存储节点的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例一提供的文件访问控制方法的流程图,如图1所示,本实施例的方法可以包括:

S101、客户端基于NAS协议向第一存储节点发送文件访问请求。

本实施例中,客户端通过第一存储节点接入以获取文件服务,当客户端需要访问待访问文件时,客户端均是基于NAS协议向第一存储节点发送文件访问请求,所述文件访问请求用于请求访问待访问文件;相应地,第一存储节点接收客户端基于NAS协议发送的文件访问请求。

S102、所述第一存储节点向第二存储节点发送文件共享锁请求和所述文件访问请求。

本实施例中,当待访问文件未存储在第一存储节点中,而是存储第二存储节点中,即所述第二存储节点为存储所述待访问文件的存储节点,因此第一存储节点需要将该文件访问请求转发给第二存储节点,而且本实施例中所述待访问文件的锁管理由所述第二存储节点执行,所述第二存储节点上设置有所述待访问文件的锁的主控。

但现有技术中,需要通过一致性hash算法来计算出锁的master由哪个存储节点来执行。而本实施例中,将锁的master和对应的文件系统(包括各待访问文件)均固定部署在同一个存储节点中,即第二存储节点,本实施例中锁的master是固定部署在第二存储节点中,无需通过hash算法来计算的。因此,在这种场景下,本实施例中的第一存储节点可以向第二存储节点发送文件共享锁请求并且同时也向第二存储节点转发该文件访问请求,所述文件共享锁请求用于请求为所述待访问文件分配共享锁。相应地,第二存储节点接收第一存储节点发送的文件共享锁请求和文件访问请求。

S103、所述第二存储节点根据所述文件共享锁请求,为所述待访问文件分配共享锁。

本实施例中,由于该待访问文件对应的锁管理是由第二存储节点执行的,因此,第二存储节点根据接收的文件共享锁请求,为该待访问文件分配共享锁,例如:调用DLM锁检查以决定发送该文件访问请求的客户端允许打开该文件。

S104、所述第二存储节点根据所述共享锁,对所述待访问文件执行句柄打开操作。

本实施例中,第二存储节点根据分配的共享锁,对该待访问文件执行句柄打开操作,例如:调用文件系统接口执行句柄打开操作。

S105、所述第二存储节点根据所述文件访问请求,对所述待访问文件进行访问。

本实施例中,在对该待访问文件执行句柄打开操作后,根据该文件访问请求,对该待访问文件进行访问,以获是对该待访问文件的访问结果。

S106、所述第二存储节点向所述第一存储节点发送所述待访问文件的访问结果。

S107、所述第一存储节点向所述客户端转发所述访问结果。

本实施例中,第二存储节点向第一存储节点发送该待待访问文件的访问结果,然后第一存储节点向客户端转发该访问结果。

本实施例提供的文件访问控制方法,由于待访问文件的锁管理由所述第二存储节点执行,所述第二存储节点上设置有所述待访问文件的锁的主控,因此,第一存储节点接收到文件访问请求后,可以将文件共享锁请求和所述文件访问请求一并发送给第二存储节点,再由第二存储节点根据文件共享锁请求分配共享锁,以及根据文件访问请求对待访问文件进行访问,减少了节点间的交互过程,提高了文件访问效率。

图2为本发明实施例二提供的文件访问控制方法的流程图,如图2所示,本实施例的方法可以包括:

S201、客户端基于NAS协议向第一存储节点发送文件访问请求。

本实施例中,S201的具体实现过程可以参见图1所示实施例中的相关描述,此处不再赘述。

S202、所述第一存储节点通过DLM通道向所述第二存储节点发送文件共享锁请求和所述文件访问请求。

本实施例中,当待访问文件未存储在第一存储节点中,而是存储第二存储节点中,即所述第二存储节点为存储所述待访问文件的存储节点,因此第一存储节点需要将该文件访问请求转发给第二存储节点,而且当本实施例中所述待访问文件的锁管理由所述第二存储节点执行,所述第二存储节点上设置有所述待访问文件的锁的主控;因此,本实施例中的第一存储节点通过DLM通道向第二存储节点发送文件共享锁请求和该文件访问请求,所述文件共享锁请求用于请求为所述待访问文件分配共享锁。相应地,第二存储节点通过DLM通道接收第一存储节点发送的文件共享锁请求和文件访问请求。例如:第一存储节点通过DLM通道将文件共享锁请求和文件访问请求打包,一次发送到第二存储节点。

S203、所述第二存储节点根据所述文件共享锁请求,为所述待访问文件分配共享锁。

S204、所述第二存储节点根据所述共享锁,对所述待访问文件执行句柄打开操作。

本实施例中,S203和S204的具体实现过程可以参见图1所示实施例中的相关描述,此处不再赘述。

S205、所述第二存储节点确定其它客户端当前是否根据所述待访问文件的存储地址进行访问;当确定其它客户端当前未根据所述待访问文件的存储地址进行访问时,根据所述文件访问请求,对所述待访问文件进行访问。

本实施例中,第二存储节点还判断其它客户端当前是否根据该待访问文件的存储地址进行访问,其它客户端是指除S201中的客户端之外的任一客户端,当确定其它客户端当前未根据该待访问文件的存储地址进行访问时,说明访问不存在冲突,然后第二存储节点根据所述文件访问请求,对所述待访问文件进行访问;若确定其它客户端当前根据该待访问文件的存储地址进行访问时,说明访问存在冲突,然后第二存储节点暂时不根据所述文件访问请求,对所述待访问文件进行访问。

S206、所述第二存储节点通过所述DLM通道向所述第一存储节点发送所述待访问文件的访问结果。

本实施例中,第二存储节点将该待访问文件的访问结果通过DLM通道发送给第一存储节点;相应地,第一存储节点通过DLM通道接收该待访问文件的访问结果。

S207、所述第一存储节点向所述客户端转发所述访问结果。

本实施例中,S207的具体实现过程可以参见图1所示实施例中的相关描述,此处不再赘述。

本实施例提供的文件访问控制方法,由于待访问文件的锁管理由所述第二存储节点执行,所述第二存储节点上设置有所述待访问文件的锁的主控,因此,第一存储节点接收到文件访问请求后,可以通过DLM通道将文件共享锁请求和所述文件访问请求一并发送给第二存储节点,再由第二存储节点根据文件共享锁请求分配共享锁,以及根据文件访问请求对待访问文件进行访问,减少了节点间的交互过程,提高了文件访问效率。

可选地,上述的文件访问请求可以为文件读请求,也可以为文件写请求。

图3为本发明实施例一提供的存储节点的结构示意图,如图3所示,本实施例的存储节点作为第一存储节点,可以包括:接收模块11和发送模块12。

接收模块11,用于接收客户端基于NAS协议发送的文件访问请求,所述文件访问请求用于请求访问待访问文件;

发送模块12,用于向第二存储节点发送文件共享锁请求和所述文件访问请求,所述第二存储节点为存储所述待访问文件的存储节点,所述文件共享锁请求用于请求为所述待访问文件分配共享锁;所述待访问文件的锁管理由所述第二存储节点执行,所述第二存储节点上设置有所述待访问文件的锁的主控;

所述接收模块11,还用于接收所述第二存储节点发送的所述待访问文件的访问结果;

所述发送模块12,还用于所述第一存储节点向所述客户端转发所述访问结果。

可选地,所述发送模块12在向第二存储节点发送文件共享锁请求和所述文件访问请求时,具体用于:通过DLM通道向所述第二存储节点发送文件共享锁请求和所述文件访问请求。

所述接收模块11在接收所述第二存储节点发送的所述待访问文件的访问结果时,具体用于:通过所述DLM通道接收所述第二存储节点发送的所述待访问文件的访问结果。

本实施例的存储节点,可以用于执行本发明上述各方法实施例中第一存储节点执行的技术方案,其实现原理和技术效果类似,此处不再赘述。

图4为本发明实施例二提供的存储节点的结构示意图,如图4所示,本实施例的存储节点作为第二存储节点,可以包括:接收模块21、处理模块22和发送模块23。

接收模块21,用于接收第一存储节点发送的文件共享锁请求和文件访问请求;所述文件访问请求用于请求访问待访问文件,所述第二存储节点为存储所述待访问文件的存储节点,所述文件共享锁请求用于请求为所述待访问文件分配共享锁;所述待访问文件的锁管理由所述第二存储节点执行,所述第二存储节点上设置有所述待访问文件的锁的主控;

处理模块22,用于根据所述文件共享锁请求,为所述待访问文件分配共享锁;根据所述共享锁,对所述待访问文件执行句柄打开操作;根据所述文件访问请求,对所述待访问文件进行访问;

发送模块23,用于向所述第一存储节点发送所述待访问文件的访问结果。

可选地,所述处理模块22,还用于在根据所述文件访问请求,对所述待访问文件进行访问之前,确定其它客户端当前是否根据所述待访问文件的存储地址进行访问;

所述处理模块22在根据所述文件访问请求,对所述待访问文件进行访问时,具体包括:当确定其它客户端当前未根据所述待访问文件的存储地址进行访问时,根据所述文件访问请求,对所述待访问文件进行访问。

可选地,所述接收模块21具体用于:通过DLM通道接收所述第一存储节点发送的文件共享锁请求和文件访问请求;

所述发送模块23具体用于:通过所述DLM通道向所述第一存储节点发送所述待访问文件的访问结果。

本实施例的存储节点,可以用于执行本发明上述各方法实施例中第二存储节点执行的技术方案,其实现原理和技术效果类似,此处不再赘述。

图5为本发明实施例三提供的存储节点的结构示意图,如图5所示,本实施例的存储节点作为第一存储节点,可以包括:处理器31、第一通信接口32和第二通信接口33,所述处理器31分别与第一通信接口32、第二通信接口33连接。

处理器31,用于通过第一通信接口32接收客户端基于NAS协议发送的文件访问请求,所述文件访问请求用于请求访问待访问文件;通过第二通信接口33向第二存储节点发送文件共享锁请求和所述文件访问请求,所述第二存储节点为存储所述待访问文件的存储节点,所述文件共享锁请求用于请求为所述待访问文件分配共享锁;所述待访问文件的锁管理由所述第二存储节点执行,所述第二存储节点上设置有所述待访问文件的锁的主控;通过第二通信接口33接收所述第二存储节点发送的所述待访问文件的访问结果;通过第一通信接口32向所述客户端转发所述访问结果。

可选地,处理器31通过第二通信接口33,向第二存储节点发送文件共享锁请求和所述文件访问请求时,具体用于:通过DLM通道向所述第二存储节点发送文件共享锁请求和所述文件访问请求。

处理器31通过第二通信接口33,接收所述第二存储节点发送的所述待访问文件的访问结果时,具体用于:通过所述DLM通道接收所述第二存储节点发送的所述待访问文件的访问结果。

本实施例的存储节点,可以用于执行本发明上述各方法实施例中第一存储节点执行的技术方案,其实现原理和技术效果类似,此处不再赘述。

图6为本发明实施例四提供的存储节点的结构示意图,如图6所示,本实施例的存储节点作为第二存储节点,可以包括:处理器41和通信接口42。

处理器41,用于通过通信接口42接收第一存储节点发送的文件共享锁请求和文件访问请求;所述文件访问请求用于请求访问待访问文件,所述第二存储节点为存储所述待访问文件的存储节点,所述文件共享锁请求用于请求为所述待访问文件分配共享锁;所述待访问文件的锁管理由所述第二存储节点执行,所述第二存储节点上设置有所述待访问文件的锁的主控;以及根据所述文件共享锁请求,为所述待访问文件分配共享锁;根据所述共享锁,对所述待访问文件执行句柄打开操作;根据所述文件访问请求,对所述待访问文件进行访问;向所述第一存储节点发送所述待访问文件的访问结果。

可选地,所述处理器41还用于在根据所述文件访问请求,对所述待访问文件进行访问之前,确定其它客户端当前是否根据所述待访问文件的存储地址进行访问;

所述处理器41的根据所述文件访问请求,对所述待访问文件进行访问时,当确定其它客户端当前未根据所述待访问文件的存储地址进行访问时,根据所述文件访问请求,对所述待访问文件进行访问。

可选地,处理器41通过通信接口42,接收第一存储节点发送的文件共享锁请求和文件访问请求时,具体用于:通过DLM通道接收所述第一存储节点发送的文件共享锁请求和文件访问请求;

处理器41通过通信接口42,向所述第一存储节点发送所述待访问文件的访问结果时,具体用于:通过所述DLM通道向所述第一存储节点发送所述待访问文件的访问结果。

本实施例的存储节点,可以用于执行本发明上述各方法实施例中第二存储节点执行的技术方案,其实现原理和技术效果类似,此处不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读内存(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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