CN108924124B - 一种文件访问方法、装置、设备及可读存储介质 - Google Patents
一种文件访问方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN108924124B CN108924124B CN201810697802.0A CN201810697802A CN108924124B CN 108924124 B CN108924124 B CN 108924124B CN 201810697802 A CN201810697802 A CN 201810697802A CN 108924124 B CN108924124 B CN 108924124B
- Authority
- CN
- China
- Prior art keywords
- access
- state
- target file
- metadata
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004590 computer program Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文件访问方法,该方法包括以下步骤:接收目标客户端访问目标文件的访问请求;其中,访问请求包括对目标文件请求访问的访问方式;获取目标文件对应的访问信息,并利用访问信息确定目标文件的元数据锁的当前状态;利用当前状态并按照元数据锁的各个状态与访问方式的对应关系,确定是否授予目标客户端相应地访问权限;如果是,则允许目标客户端访问目标文件。通过权限管理的方式,对资源竞争问题进行提前规避,保障数据的一致性,提升了系统稳定性。本发明还公开了一种文件访问装置、设备及可读存储介质,具有相应的技术效果。
Description
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种文件访问方法、装置、设备及可读存储介质。
背景技术
分布式集群是一种对外表现为具有高性能、高可用性、可扩展的计算资源。但是,当多个用户同时访问同一个文件时,会出现资源竞争问题。即多个进程争夺同一个共享资源的情况,这种情况往往会导致系统崩溃或读取到错误的数据,写入错误数据,破坏数据的一致性,影响系统的性能。
现有的,通常利用集群锁解决资源竞争问题。但是,利用集群锁解决资源竞争问题时,如果一个线程(客户端)持有一个锁(即已经得到了一个锁的授权),当其申请另一个锁得不到授权被挂起时,就形成了依赖路径,如果此依赖路径环回到发起节点,则形成闭环,即形成死锁。而在分布式集群中,死锁是非常致命的问题,会影响系统性能。例如,当锁住一个进程对一个文件的读写时,当形成死锁之后,其他进程则无法访问该文件,非常影响用户体验。
综上所述,如何有效地解决分布式系统中的资源竞争等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种文件访问方法、装置、设备及可读存储介质,以利用实时调整的元数据锁状态,对访问权限进行管理,以解决资源竞争问题。
为解决上述技术问题,本发明提供如下技术方案:
一种文件访问方法,包括:
接收目标客户端访问目标文件的访问请求;其中,所述访问请求包括对所述目标文件请求访问的访问方式;
获取所述目标文件对应的访问信息,并利用所述访问信息确定所述目标文件的元数据锁的当前状态;
利用所述当前状态并按照所述元数据锁的各个状态与访问方式的对应关系,确定是否授予所述目标客户端相应地访问权限;
如果是,则允许所述目标客户端访问所述目标文件。
优选地,所述利用所述访问信息确定所述目标文件的元数据锁的当前状态,包括:
利用所述访问信息中的访问方式和访问量,确定所述目标文件的元数据锁的当前状态;其中,所述元数据锁的状态包括空闲状态、独占状态和共享状态。
优选地,利用所述访问信息中的访问方式和访问量,确定所述目标文件的元数据锁的当前状态,包括:
当无客户端访问所述目标文件时,所述目标文件的元数据锁的当前状态为所述空闲状态;
当只有一个客户端访问所述目标文件时,所述目标文件的元数据锁的当前状态为所述独占状态;
当两个或两个以上的客户端均以读的方式访问所述目标文件时,所述目标文件的元数据锁的当前状态为所述共享状态。
优选地,利用所述当前状态并按照所述元数据锁的各个状态与访问方式的对应关系,确定是否授予所述目标客户端相应地访问权限,包括:
利用所述元数据锁的各个状态与访问方式的对应关系,确定所述当前状态对应的目标访问方式;
当所述访问请求对应的访问方式与所述目标访问方式一致时,确定授予所述目标客户端与所述访问请求对应的访问权限;
其中,所述元数据锁的各个状态与访问方式的对应关系,包括:
所述空闲状态对应的访问方式包括读、写、删除中的至少一个;
所述独占状态无对应的访问方式;
所述共享状态对应的访问方式为读。
优选地,所述元数据锁包括filelock、authlock、xattrlock、linklock。
优选地,还包括:
将目标文件的元数据进行分类;
为每个类别的元数据设置对应的元数据锁。
优选地,获取所述目标文件对应的访问信息,并利用所述访问信息确定所述目标文件的元数据锁的当前状态,包括:
获取所述目标文件对应的访问信息和分布式系统的系统状态信息,并利用所述访问信息确定所述目标文件的元数据锁的当前状态。
一种文件访问装置,包括:
访问请求接收模块,用于接收目标客户端访问目标文件的访问请求;其中,所述访问请求包括对所述目标文件请求访问的访问方式;
元数据锁的当前状态确定模块,用于获取所述目标文件对应的访问信息,并利用所述访问信息确定所述目标文件的元数据锁的当前状态;
访问权限授予模块,用于利用所述当前状态并按照所述元数据锁的各个状态与访问方式的对应关系,确定是否授予所述目标客户端相应地访问权限;
访问服务模块,用于当所述访问请求基于访问权限时,允许所述目标客户端访问所述目标文件。
一种文件访问设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述文件访问方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述文件访问方法的步骤。
应用本发明实施例所提供的方法,接收目标客户端访问目标文件的访问请求;其中,访问请求包括对目标文件请求访问的访问方式;获取目标文件对应的访问信息,并利用访问信息确定目标文件的元数据锁的当前状态。即,利用当前目标文件的访问信息对元数据锁的状态进行确定。利用当前状态并按照元数据锁的各个状态与访问方式的对应关系,确定是否授予目标客户端相应地访问权限。元数据锁的各个状态与相应的访问方式对应,也就是说,当基于当前的访问信息确定出元数据锁的当前状态之后,便可得知目前能够向目标客户端提供的访问目标文件的方式有哪些。然后,通过判断当前的访问请求的访问方式与当前允许的访问方式是否一致,进而确定是否赋予该访问请求相应的访问权限。当访问请求具有访问权限时,允许目标客户端访问目标文件,即向目标客户端通过访问服务。也就是说,在接收到客户端的访问请求之后,基于当前访问情况确定目标文件对应的元数据锁的当前状态,进一步确定是否允许客户端进行相应的访问操作。
如此,便可通过目标文件的元数据锁的当前状态,确定是否对接收到的访问请求进行授权,进而允许具有访问权限的客户端访问目标文件。从而在源头上避免产生资源竞争问题。即,通过权限管理的方式,对资源竞争问题进行提前规避,保障数据的一致性,提升了系统稳定性。
相应地,本发明实施例还提供了与上述文件访问方法相对应的文件访问装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种文件访问方法的实施流程图;
图2为本发明实施例中另一种文件访问方法的实施流程图;
图3为本发明实施例中一种文件访问装置的结构示意图;
图4为本发明实施例中一种文件访问设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
请参考图1,图1为本发明实施例中一种文件访问方法的流程图,可用于与分布式存储系统中,该方法包括以下步骤:
S101、接收目标客户端访问目标文件的访问请求。
其中,访问请求包括对目标文件请求访问的访问方式。
目标客户端在用户的操作下,或在内部程序的驱动下,向服务器发送访问目标文件的访问请求。其中,目标客户端为任一个客户端。访问请求中可以包括访问目标文件的方式,访问方式包括读、缓存读,写入,缓存写,删除,复制,移动等常见的访问方式中的至少一个。另外,目标文件指图片、文档、表格、音频、视频等存储在分布式系统中的可被客户端访问的任意一种文件。
服务器接收到访问请求之后,可以执行步骤S102的操作。
S102、获取目标文件对应的访问信息,并利用访问信息确定目标文件的元数据锁的当前状态。
可以通过监听器对目标文件的访问进程进行监听的方式,访问信息。
在本申请中,可以预先为目标文件设置一个或多个控制元数据的元数据锁,每一个元数据锁可具备两个或两个以上的状态。对于元数据类别如何划分,以及具有为哪些类别的元数据设置对应的元数据锁,可根据实际的应用场景进行划分和设置,在此次不做限定。可为每一个元数据锁设置对应的状态机。其中,状态机,表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。它反映从系统开始到现在时刻的输入变化,转移指示状态变更,并且用必须满足来确使转移发生的条件来描述它;动作是在给定时刻要进行的活动的描述。具体的,每个状态机的状态个数,以及状态转移条件,状态的具体情况均可预先进行设置,也可根据实际情况进行确定和调整,在此不再赘述。
将访问信息与预先设置的状态机的状态调整条件进行匹配对应,将各个元数据锁的状态调整为当前时刻的访问信息所对应的状态。也就是说,将元数据锁的状态,调整为与当前时刻对应的访问情况相匹配。
S103、利用当前状态并按照元数据锁的各个状态与访问方式的对应关系,确定是否授予目标客户端相应地访问权限。
在本实施例中,可以预先建立元数据锁的各个状态与访问方式的对应关系。在确定元数据锁的当前状态之后,可利用该对应关系确定当前状态下对应的访问方式。然后,将访问请求的访问方式与当前状态下允许的访问方式进行比较,确定是否授予该访问请求相应的访问权限。具体的,当访问请求的访问方式与当前状态下允许的访问方式一致时,则授予该访问请求对应的访问权限;如果不一致,则不授予相应的访问权限。未授予目标客户端访问权限时,可以向目标客户端发送暂时无响应、当前系统繁忙或稍后重试的提示信息。
当元数据状态锁为多个时,还可根据多个元数据状态锁的各个状态与访问方式的对应关系,确定是否授予相应的访问权限。例如,可将各个元数据状态锁的状态构成22位长度的capabilitity,capabilitity为服务器分配给客户端的操作能力权限。由于,元数据锁的状态,可基于当前的分布式系统状态以及访问情况进行调整,由于各个客户端的访问权限更新请求不同或客户端本身的用户权限不同,会出现各个客户端之间的访问权限不同的情况;另外,即使是同一个客户端在不同时刻,同样的访问权限更新请求的访问权限也可能会不同。即,本发明实施例所提供的访问权限是根据实际情况进行实时调整的,而非一成不变的,可以更加符合实际情况的需求。确定目标客户端的访问权限之后,可将访问权限发送给客户端。
当对访问请求授予访问权限之后,可执行步骤S104的操作。
S104、允许目标客户端访问目标文件。
服务器对目标客户端通过与访问请求对应的服务。例如,当访问请求为读目标文件的请求时,则允许客户端读取目标文件。
应用本发明实施例所提供的方法,接收目标客户端访问目标文件的访问请求;其中,访问请求包括对目标文件请求访问的访问方式;获取目标文件对应的访问信息,并利用访问信息确定目标文件的元数据锁的当前状态。即,利用当前目标文件的访问信息对元数据锁的状态进行确定。利用当前状态并按照元数据锁的各个状态与访问方式的对应关系,确定是否授予目标客户端相应地访问权限。元数据锁的各个状态与相应的访问方式对应,也就是说,当基于当前的访问信息确定出元数据锁的当前状态之后,便可得知目前能够向目标客户端提供的访问目标文件的方式有哪些。然后,通过判断当前的访问请求的访问方式与当前允许的访问方式是否一致,进而确定是否赋予该访问请求相应的访问权限。当访问请求具有访问权限时,允许目标客户端访问目标文件,即向目标客户端通过访问服务。也就是说,在接收到客户端的访问请求之后,基于当前访问情况确定目标文件对应的元数据锁的当前状态,进一步确定是否允许客户端进行相应的访问操作。
如此,便可通过目标文件的元数据锁的当前状态,确定是否对接收到的访问请求进行授权,进而允许具有访问权限的客户端访问目标文件。从而在源头上避免产生资源竞争问题。即,通过权限管理的方式,对资源竞争问题进行提前规避,保障数据的一致性,提升了系统稳定性。
需要说明的是,基于上述实施例一,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例一中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。
实施例二:
请参考图2,图2为本发明实施例中另一种文件访问方法的流程图,可用于与分布式存储系统中,该方法包括以下步骤:
S201、接收目标客户端访问目标文件的访问请求。
S202、利用访问信息中的访问方式和访问量,确定目标文件的元数据锁的当前状态。
其中,元数据锁的状态包括空闲状态、独占状态和共享状态。
可以预先规定相应的访问方式和相应访问量与元数据锁的状态建立对应关系,在获得访问信息时,便可直接确定元数据锁的当前状态。
具体的,在利用访问信息中的访问方式和访问量,确定目标文件的元数据锁的当前状态,具体包括:
当无客户端访问目标文件时,目标文件的元数据锁的当前状态为空闲状态;
当只有一个客户端访问目标文件时,目标文件的元数据锁的当前状态为独占状态;
当两个或两个以上的客户端均以读的方式访问目标文件时,目标文件的元数据锁的当前状态为共享状态。
也就是说,空闲状态为无客户端访问目标文件;独占状态为仅一个客户端访问目标文件;共享状态为两个或两个以上的客户端均以读的方式访问目标文件。
S203、利用元数据锁的各个状态与访问方式的对应关系,确定当前状态对应的目标访问方式。
S204、当访问请求对应的访问方式与目标访问方式一致时,确定访问请求具有访问权限。
其中,元数据锁的各个状态与访问方式的对应关系,包括:
空闲状态对应的访问方式包括读、写、删除中的至少一个;
独占状态无对应的访问方式;
共享状态对应的访问方式为读。
为了便于描述,下面将步骤S203和步骤S204结合起来进行描述。
确定元数据锁的当前状态之后,在元数据锁的各个状态与访问方式的对应关系中,确定当前状态对应的目标访问方式,然后判断访问请求对应的访问方式是否与目标访问方式一致,如果一致,则可以向该访问请求授予访问权限。具体的,各个访问状态对应的访问方式可以为空闲状态对应的访问方式包括读、写、删除中的至少一个;独占状态无对应的访问方式;共享状态对应的访问方式为读。当然,在本发明的其他实施例中,元数据锁的各个状态与访问方式的对应关系可与上述关系不同。
S205、允许目标客户端访问目标文件。
优选地,为了更符合实际应用情况对访问权限进行赋权,在确定元数据锁的当前状态时,还可以结合分布式系统的系统状态信息对元数据锁的状态进行调整。具体的,获取目标文件对应的访问信息和分布式系统的系统状态信息,并利用访问信息确定目标文件的元数据锁的当前状态。例如,当系统处于恢复、重建状态时,可以认为当前的系统不便对外提供服务。可将元数据锁的当前状态设置为独占状态。
优选地,在为目标文件创建元数据锁时,可将目标文件的元数据进行分类,并为每一个分类设置不同的元数据锁,具体包括:
步骤一、将目标文件的元数据进行分类;
步骤二、为每个类别的元数据设置对应的元数据锁。
即不同的元数据锁控制不同的元数据对应的访问操作。具体的,可为目标文件设置filelock、authlock、xattrlock、linklock四种元数据锁。其中,filelock为文件读写锁、authlock为用户权限锁、xattrlock扩展属性锁、linklock连接锁。每个元数据锁的状态,以及状态数目可与对应的元数据类型匹配。例如,filelock状态可以包括共享(SYNC)、EXCL(独占)、MIX(混合)以及其他中间状态。当然,在本发明的其他实施例中,还可以设置其他类型的元数据锁,对元数据锁的元数据类型、数目不做限定。
相应于上面的方法实施例,本发明实施例还提供了一种文件访问装置,下文描述的文件访问装置与上文描述的文件访问方法可相互对应参照。
参见图3所示,该装置包括以下模块:
访问请求接收模块101,用于接收目标客户端访问目标文件的访问请求;其中,访问请求包括对目标文件请求访问的访问方式;
元数据锁的当前状态确定模块102,用于获取目标文件对应的访问信息,并利用访问信息确定目标文件的元数据锁的当前状态;
访问权限授予模块103,用于利用当前状态并按照元数据锁的各个状态与访问方式的对应关系,确定是否授予目标客户端相应地访问权限;
访问服务模块104,用于当访问请求基于访问权限时,允许目标客户端访问目标文件。
应用本发明实施例所提供的装置,接收目标客户端访问目标文件的访问请求;其中,访问请求包括对目标文件请求访问的访问方式;获取目标文件对应的访问信息,并利用访问信息确定目标文件的元数据锁的当前状态。即,利用当前目标文件的访问信息对元数据锁的状态进行确定。利用当前状态并按照元数据锁的各个状态与访问方式的对应关系,确定是否授予目标客户端相应地访问权限。元数据锁的各个状态与相应的访问方式对应,也就是说,当基于当前的访问信息确定出元数据锁的当前状态之后,便可得知目前能够向目标客户端提供的访问目标文件的方式有哪些。然后,通过判断当前的访问请求的访问方式与当前允许的访问方式是否一致,进而确定是否赋予该访问请求相应的访问权限。当访问请求具有访问权限时,允许目标客户端访问目标文件,即向目标客户端通过访问服务。也就是说,在接收到客户端的访问请求之后,基于当前访问情况确定目标文件对应的元数据锁的当前状态,进一步确定是否允许客户端进行相应的访问操作。
如此,便可通过目标文件的元数据锁的当前状态,确定是否对接收到的访问请求进行授权,进而允许具有访问权限的客户端访问目标文件。从而在源头上,避免产生资源竞争问题。即,通过权限管理的方式,对资源竞争问题进行提前规避,保障数据的一致性,提升系统稳定性。
在本发明的一种具体实施方式中,元数据锁的当前状态确定模块102,具体用于利用访问信息中的访问方式和访问量,确定目标文件的元数据锁的当前状态;其中,元数据锁的状态包括空闲状态、独占状态和共享状态。
在本发明的一种具体实施方式中,元数据锁的当前状态确定模块102,包括:
空闲状态确定单元,用于当无客户端访问目标文件时,目标文件的元数据锁的当前状态为空闲状态;
独占状态确定单元,用于当只有一个客户端访问目标文件时,目标文件的元数据锁的当前状态为独占状态;
共享状态确定单元,用于当两个或两个以上的客户端均以读的方式访问目标文件时,目标文件的元数据锁的当前状态为共享状态。
在本发明的一种具体实施方式中,访问权限授予模块103,包括:
目标访问方式确定单元,用于利用元数据锁的各个状态与访问方式的对应关系,确定当前状态对应的目标访问方式;
访问权限授予单元,用于访问当访问请求对应的访问方式与目标访问方式一致时,确定授予目标客户端与访问请求对应的访问权限;
其中,元数据锁的各个状态与访问方式的对应关系,包括:
空闲状态对应的访问方式包括读、写、删除中的至少一个;
独占状态无对应的访问方式;
共享状态对应的访问方式为读。
在本发明的一种具体实施方式中,元数据锁包括filelock、authlock、xattrlock、linklock。
在本发明的一种具体实施方式中,还包括:
元数据锁创建模块,用于将目标文件的元数据进行分类;为每个类别的元数据设置对应的元数据锁。
在本发明的一种具体实施方式中,元数据锁的当前状态确定模块102,具体用于获取目标文件对应的访问信息和分布式系统的系统状态信息,并利用访问信息确定目标文件的元数据锁的当前状态。
相应于上面的方法实施例,本发明实施例还提供了一种文件访问设备,下文描述的一种文件访问设备与上文描述的一种文件访问方法可相互对应参照。
参见图4所示,该文件访问设备包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例的文件访问方法的步骤。
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种文件访问方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的文件访问方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (8)
1.一种文件访问方法,其特征在于,包括:
接收目标客户端访问目标文件的访问请求;其中,所述访问请求包括对所述目标文件请求访问的访问方式;
获取所述目标文件对应的访问信息,并利用所述访问信息确定所述目标文件的元数据锁的当前状态;为所述目标文件设置一个或多个控制元数据的所述元数据锁,每一个所述元数据锁具备两个或两个以上的状态;所述元数据锁采用状态机来表示状态;
利用所述当前状态并按照所述元数据锁的各个状态与访问方式的对应关系,确定是否授予所述目标客户端相应地访问权限;
如果是,则允许所述目标客户端访问所述目标文件;
其中,所述利用所述访问信息确定所述目标文件的元数据锁的当前状态,包括:利用所述访问信息中的访问方式和访问量,确定所述目标文件的元数据锁的当前状态;其中,所述元数据锁的状态包括空闲状态、独占状态和共享状态;
获取所述目标文件对应的访问信息,并利用所述访问信息确定所述目标文件的元数据锁的当前状态,包括:
获取所述目标文件对应的访问信息和分布式系统的系统状态信息,并利用所述访问信息确定所述目标文件的元数据锁的当前状态。
2.根据权利要求1所述的文件访问方法,其特征在于,利用所述访问信息中的访问方式和访问量,确定所述目标文件的元数据锁的当前状态,包括:
当无客户端访问所述目标文件时,所述目标文件的元数据锁的当前状态为所述空闲状态;
当只有一个客户端访问所述目标文件时,所述目标文件的元数据锁的当前状态为所述独占状态;
当两个或两个以上的客户端均以读的方式访问所述目标文件时,所述目标文件的元数据锁的当前状态为所述共享状态。
3.根据权利要求1所述的文件访问方法,其特征在于,利用所述当前状态并按照所述元数据锁的各个状态与访问方式的对应关系,确定是否授予所述目标客户端相应地访问权限,包括:
利用所述元数据锁的各个状态与访问方式的对应关系,确定所述当前状态对应的目标访问方式;
当所述访问请求对应的访问方式与所述目标访问方式一致时,确定授予所述目标客户端与所述访问请求对应的访问权限;
其中,所述元数据锁的各个状态与访问方式的对应关系,包括:
所述空闲状态对应的访问方式包括读、写、删除中的至少一个;
所述独占状态无对应的访问方式;
所述共享状态对应的访问方式为读。
4.根据权利要求1所述的文件访问方法,其特征在于,所述元数据锁包括filelock、authlock、xattrlock、linklock。
5.根据权利要求4所述的文件访问方法,其特征在于,还包括:
将目标文件的元数据进行分类;
为每个类别的元数据设置对应的元数据锁。
6.一种文件访问装置,其特征在于,包括:
访问请求接收模块,用于接收目标客户端访问目标文件的访问请求;其中,所述访问请求包括对所述目标文件请求访问的访问方式;
元数据锁的当前状态确定模块,用于获取所述目标文件对应的访问信息,并利用所述访问信息确定所述目标文件的元数据锁的当前状态;为所述目标文件设置一个或多个控制元数据的所述元数据锁,每一个所述元数据锁具备两个或两个以上的状态;所述元数据锁采用状态机来表示状态;
访问权限授予模块,用于利用所述当前状态并按照所述元数据锁的各个状态与访问方式的对应关系,确定是否授予所述目标客户端相应地访问权限;
访问服务模块,用于当所述访问请求基于访问权限时,允许所述目标客户端访问所述目标文件;
其中,所述元数据锁的当前状态确定模块,具体用于利用所述访问信息中的访问方式和访问量,确定所述目标文件的元数据锁的当前状态;其中,所述元数据锁的状态包括空闲状态、独占状态和共享状态;
其中,所述元数据锁的当前状态确定模块,具体用于获取所述目标文件对应的访问信息和分布式系统的系统状态信息,并利用所述访问信息确定所述目标文件的元数据锁的当前状态。
7.一种文件访问设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述文件访问方法的步骤。
8.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述文件访问方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810697802.0A CN108924124B (zh) | 2018-06-29 | 2018-06-29 | 一种文件访问方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810697802.0A CN108924124B (zh) | 2018-06-29 | 2018-06-29 | 一种文件访问方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108924124A CN108924124A (zh) | 2018-11-30 |
CN108924124B true CN108924124B (zh) | 2021-08-10 |
Family
ID=64424308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810697802.0A Active CN108924124B (zh) | 2018-06-29 | 2018-06-29 | 一种文件访问方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108924124B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033857B (zh) * | 2018-07-25 | 2022-04-22 | 郑州云海信息技术有限公司 | 一种访问数据的方法、装置、设备及可读存储介质 |
CN112765106B (zh) * | 2019-10-21 | 2024-05-14 | 伊姆西Ip控股有限责任公司 | 文件访问方法、电子设备和计算机程序产品 |
CN110928841A (zh) * | 2019-11-27 | 2020-03-27 | 深信服科技股份有限公司 | 一种文件操作控制方法、装置、设备及存储介质 |
CN111552987A (zh) * | 2020-04-16 | 2020-08-18 | 重庆富民银行股份有限公司 | 页面访问权限控制方法 |
CN113760932A (zh) * | 2021-08-24 | 2021-12-07 | 北京金山云网络技术有限公司 | 数据库表的加锁方法、装置、存储介质和电子设备 |
CN114021195B (zh) * | 2021-11-15 | 2022-07-12 | 国网区块链科技(北京)有限公司 | 基于信用值的数据共享权限控制方法及装置 |
CN114996180B (zh) * | 2022-05-31 | 2024-08-09 | 上海阵量智能科技有限公司 | 一种访问控制方法、系统、芯片、板卡和电子设备 |
CN115277145B (zh) * | 2022-07-20 | 2023-05-02 | 北京志凌海纳科技有限公司 | 分布式存储访问授权管理方法、系统、设备和可读介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753608B (zh) * | 2008-12-09 | 2013-06-05 | 中国移动通信集团公司 | 分布式系统的调度方法及系统 |
CN101567003B (zh) * | 2009-05-27 | 2012-05-16 | 清华大学 | 并行文件系统中资源的管理和分配方法 |
CN102546664A (zh) * | 2012-02-27 | 2012-07-04 | 中国科学院计算技术研究所 | 用于分布式文件系统的用户与权限管理方法及系统 |
CN103458036B (zh) * | 2013-09-03 | 2017-02-15 | 杭州华三通信技术有限公司 | 一种集群文件系统的访问装置和方法 |
US11669320B2 (en) * | 2016-02-12 | 2023-06-06 | Nutanix, Inc. | Self-healing virtualized file server |
-
2018
- 2018-06-29 CN CN201810697802.0A patent/CN108924124B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108924124A (zh) | 2018-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108924124B (zh) | 一种文件访问方法、装置、设备及可读存储介质 | |
US9384056B2 (en) | Virtual resource allocation and resource and consumption management | |
RU2501082C2 (ru) | Управление доступом к документам с использованием блокировок файла | |
JP6013594B2 (ja) | ローカル支援されるクラウドベースのストレージ | |
US11425434B2 (en) | Managing concurrent content playback | |
US6499031B1 (en) | Systems and methods for using locks with computer resources | |
US8972448B2 (en) | Cloud storage of game state | |
US8433693B2 (en) | Locking semantics for a storage system based on file types | |
US8868610B2 (en) | File system with optimistic I/O operations on shared storage | |
US20080071804A1 (en) | File system access control between multiple clusters | |
US20090006402A1 (en) | Methods and systems for the dynamic selection of a locking strategy | |
KR20090106541A (ko) | 시간 기반 권한부여 | |
CN104639650A (zh) | 一种细粒度分布式接口访问控制方法及装置 | |
CN113342507B (zh) | 一种分布式锁服务实现方法、装置及计算机设备 | |
US20160014155A1 (en) | Abstract evaluation of access control policies for efficient evaluation of constraints | |
JP2007122663A (ja) | 情報処理方法および情報処理装置 | |
CN115277145A (zh) | 分布式存储访问授权管理方法、系统、设备和可读介质 | |
JP7486677B2 (ja) | リンクプラットフォーム及びパートナーサービスによるリンクの共同管理 | |
CN113612802B (zh) | 一种访问控制方法、装置、设备及可读存储介质 | |
US20100106744A1 (en) | Conflict prevention for peer-to-peer replication | |
GB2623225A (en) | Method, system, and apparatus for securely sharing video stream, and storage medium | |
US10248316B1 (en) | Method to pass application knowledge to a storage array and optimize block level operations | |
CN116974983A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
Zhang | AWS Identity-based Policies with" Read"," Write" and" Execute" Actions | |
CN115510018A (zh) | 数据库集群扩容方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |