CN107516048A - 一种控制分布式文件系统中文件访问的方法与设备 - Google Patents
一种控制分布式文件系统中文件访问的方法与设备 Download PDFInfo
- Publication number
- CN107516048A CN107516048A CN201610427819.5A CN201610427819A CN107516048A CN 107516048 A CN107516048 A CN 107516048A CN 201610427819 A CN201610427819 A CN 201610427819A CN 107516048 A CN107516048 A CN 107516048A
- Authority
- CN
- China
- Prior art keywords
- lease
- user equipment
- file destination
- request
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6272—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请的目的是提供一种控制分布式文件系统中文件访问的方法与设备。与现有技术相比,本申请的控制设备获取用户设备发送的关于分布式文件系统中目标文件的租约请求,若所述目标文件可供租约,为所述用户设备分配关于所述目标文件的租约,并向所述用户设备发送所述租约的租约序号信息;本申请通过增加所述租约序号信息表示各用户设备请求租约的先后顺序,在设备故障时仍可保证数据不错乱,从而提高服务可用性,减少服务故障时间,而且,本申请通过控制设备、用户设备、存储设备三端维护所述租约序号信息,保证多用户设备访问数据的正确性。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种控制分布式文件系统中文件访问的技术。
背景技术
典型的分布式文件系统由用户设备(包括客户端)、控制设备(Master)和存储设备(ChunkServer)三个角色组成。其中,用户通过用户设备访问数据;Master存储用户的元数据,即文件名、文件长度以及数据实际的存储位置等信息;ChunkServer实际存储了用户的数据。例如,用户读写数据时,先访问Master查询实际数据实际的存储在哪台ChunkServer上,再访问相应的ChunkServer读写数据。
若不加限制,多个用户设备访问同一文件会产生数据错乱。例如,假设某个文件同时被两个用户设备写;用户设备A从文件首开始依次写入“123”三个字节,每秒写一个字节;类似地,用户设备B从文件首开始依次写入“456”三个字节,每秒写一个字节。由于两个用户设备之间没有协议,数据写入请求到ChunkServer的先后顺序不定,可能最终的结果是“123”,也可能是“456”,亦有可能是两者的结合如“143”,这种现象称为数据错乱。为了避免这种情况,通常采取基于租约的互斥机制。租约是一种简单的互斥机制,就像现实中的租房子一样。同一个文件只能“租”给一个用户设备。用户设备只能在自己的租约期内访问文件,租约快到期时需要及时续租。若Master发生宕机无法续租时,为了保险起见用户设备必须默认得不到新的租约,不能访问文件(否则在网络分区的情况下若另一用户设备取得了真正的租约,会发生脑裂)。
为解决Master宕机后用户设备不能服务的问题,可利用Paxos协议由多台服务器组成Master服务,申请租约和续租请求必须经过超过半数Master服务器的投票确认才能生效,少于半数的服务器宕机不会影响整体的Master服务。现有技术利用Paxos协议实现多个Master服务器的状态同步,即所有操作须经过超过半数服务器的确认。然而,因此产生的网络交互过程,会造成Master服务能力损失。此外,Paxos协议不能容许超过半数的服务器宕机,若此情况发生,仍然会造成用户设备无法续租成功,造成不可服务。
发明内容
本申请的一个目的是提供一种控制分布式文件系统中文件访问的方法与设备,以解决提高分布式文件系统服务可用性的问题。
根据本申请的一个方面,提供了一种在控制设备端控制分布式文件系统中文件访问的方法,其中,该方法包括:
获取用户设备发送的关于分布式文件系统中目标文件的租约请求;
若所述目标文件可供租约,为所述用户设备分配关于所述目标文件的租约,其中,所述目标文件在所述租约的租约期内被所述用户设备锁定;
向所述用户设备发送所述租约的租约序号信息,其中,所述租约序号信息递增。
根据本申请的另一个方面,还提供了一种在用户设备端控制分布式文件系统中文件访问的方法,其中,该方法包括:
向控制设备发送关于分布式文件系统中目标文件的租约请求;
当所述租约请求成功,获取所述控制设备发送的对应租约的租约序号信息。
根据本申请的又一个方面,还提供了一种在存储设备端控制分布式文件系统中文件访问的方法,其中,该方法包括:
获取用户设备发送的关于目标文件的访问请求,以及所述用户设备存储的租约序号信息;
根据所述租约序号信息,确定是否允许所述用户设备访问所述目标文件;
若允许所述用户设备访问所述目标文件,执行所述访问请求并更新所述存储设备存储的所述租约序号信息。
根据本申请的再一个方面,还提供了一种控制分布式文件系统中文件访问的控制设备,其中,该设备包括:
租约请求获取装置,用于获取用户设备发送的关于分布式文件系统中目标文件的租约请求;
租约分配装置,用于若所述目标文件可供租约,为所述用户设备分配关于所述目标文件的租约,其中,所述目标文件在所述租约的租约期内被所述用户设备锁定;
租约序号信息发送装置,用于向所述用户设备发送所述租约的租约序号信息,其中,所述租约序号信息递增。
根据本申请的又一个方面,还提供了一种控制分布式文件系统中文件访问的用户设备,其中,该设备包括:
租约请求发送装置,用于向控制设备发送关于分布式文件系统中目标文件的租约请求;
租约序号信息获取装置,用于当所述租约请求成功,获取所述控制设备发送的对应租约的租约序号信息。
根据本申请的又一个方面,还提供了一种控制分布式文件系统中文件访问的存储设备,其中,该设备包括:
访问请求获取装置,用于获取用户设备发送的关于目标文件的访问请求,以及所述用户设备存储的租约序号信息;
访问控制装置,用于根据所述租约序号信息,确定是否允许所述用户设备访问所述目标文件;
租约序号信息更新装置,用于若允许所述用户设备访问所述目标文件,执行所述访问请求并更新所述存储设备存储的所述租约序号信息。
与现有技术相比,本申请的控制设备获取用户设备发送的关于分布式文件系统中目标文件的租约请求,若所述目标文件可供租约,为所述用户设备分配关于所述目标文件的租约,并向所述用户设备发送所述租约的租约序号信息;本申请通过增加所述租约序号信息表示各用户设备请求租约的先后顺序,在设备故障时仍可保证数据不错乱,从而提高服务可用性,减少服务故障时间,而且,本申请通过控制设备、用户设备、存储设备三端维护所述租约序号信息,保证多用户设备访问数据的正确性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种控制分布式文件系统中文件访问的系统拓扑图;
图2示出根据本申请另一个方面的一种控制分布式文件系统中文件访问的控制设备与用户设备的示意图;
图3示出根据本申请一个优选实施例的一种控制分布式文件系统中文件访问的控制设备与用户设备的示意图;
图4示出根据本申请又一个方面的一种控制分布式文件系统中文件访问的用户设备与存储设备的示意图;
图5示出根据本申请再一个方面的一种在控制设备端及用户设备端控制分布式文件系统中文件访问的方法流程图;
图6示出根据本申请另一个优选实施例的一种在控制设备端及用户设备端控制分布式文件系统中文件访问的方法流程图;
图7示出根据本申请又一个方面的一种在用户设备端及存储设备端控制分布式文件系统中文件访问的方法流程图;
图8示出根据本申请又一个优选实施例的一种控制分布式文件系统中文件访问的方法流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图1示出根据本申请一个方面的一种控制分布式文件系统中文件访问的系统拓扑图,其中包括控制设备1及多个经由网络相连接的用户设备2及多个经由网络相连的存储设备3。
在此,所述分布式文件系统可以包括运行在多台服务器上协同工作的软件,它提供类似单机文件系统的编程接口,例如文件读写接口。所述分布式文件系统可以由控制设备、用户设备(包括客户端)和存储设备三个角色组成;其中,用户通过用户设备访问数据;控制设备存储用户的元数据,即文件名、文件长度以及数据实际的存储位置等信息;存储设备实际存储了用户的数据。例如,用户读写数据时,先访问控制设备查询实际数据实际的存储在哪台存储设备上,再访问相应的存储设备读写数据。
在此,所述控制设备1可以是所述分布式文件系统中的主控(Master)节点,用于管理元数据,另外,所述控制设备1可以是由多台服务器组成的Master服务,也可以是一台高可用的服务器;所述存储设备3可以是所述分布式文件系统中用于存储数据的服务器(ChunkServer);所述用户设备2可以包括用于访问所述分布式文件系统的用户程序,包括运行于手机、平板电脑或笔记本电脑等设备上的脚本程序。
本领域技术人员应能理解,图1中仅为简明起见而示出的各类网络元素的数量可能小于一个实际网络中的数量,但这种省略无疑地是以不会影响对本发明进行清楚、充分的公开为前提的。为简明起见,下面以控制设备1及一个用户设备2及一个存储设备3组成的系统为例进行描述。
图2示出根据本申请另一个方面的一种控制分布式文件系统中文件访问的控制设备与用户设备的示意图,包括控制设备1和用户设备2。其中,所述控制设备1包括租约请求获取装置11、租约分配装置12和租约序号信息发送装置13;所述用户设备2包括租约请求发送装置21和租约序号信息获取装置22。
具体地,所述用户设备2的租约请求发送装置21向控制设备1发送关于分布式文件系统中目标文件的租约请求;所述控制设备1的租约请求获取装置11获取用户设备2发送的关于分布式文件系统中目标文件的租约请求;然后,所述控制设备1的租约分配装置12若所述目标文件可供租约,为所述用户设备2分配关于所述目标文件的租约,其中,所述目标文件在所述租约的租约期内被所述用户设备2锁定;接着,所述控制设备1的租约序号信息发送装置13向所述用户设备2发送所述租约的租约序号信息,其中,所述租约序号信息递增;所述用户设备2的租约序号信息获取装置22当所述租约请求成功,获取所述控制设备1发送的对应租约的租约序号信息。
例如,首先由所述用户设备2向所述控制设备1申请关于所述目标文件的租约,所述控制设备1获取所述用户设备2关于所述目标文件的租约请求。若所述目标文件可供租约,则在租约期内为所述用户设备2锁定所述目标文件,那么其他用户设备在该租约期内无法锁定所述目标文件;而且,分配关于所述目标文件的租约包括为所述目标文件分配租约序号信息,其中,所述租约序号信息根据各用户设备请求关于所述目标文件的租约的先后顺序,按照单调递增的规律分配。当所述租约请求成功,所述用户设备2获取并保存所述控制设备1返回的所述租约序号信息。
优选地,所述目标文件可供租约包括:所述目标文件未被其他用户设备锁定;所述目标文件对应的当前租约失效时间信息小于或等于所述租约请求对应的当前时间信息。
例如,所述控制设备1检查所述目标文件是否已被其他用户设备锁定,具体地,可以通过比较所述目标文件对应的当前租约失效时间信息与所述租约请求对应的当前时间信息之间的大小关系来进行判断。在具体的实施例中,可以通过UNIX时间戳来记录各时间信息。假设所述目标文件对应的当前租约失效时间信息为t失效(t失效初始化为零),所述租约请求对应的当前时间信息为t当前,所述租约期为T租约,当所述租约请求成功,则将t失效更新为t当前+T租约。
优选地,所述控制设备1还包括租约失败结果返回装置(图中未示出);所述租约失败结果返回装置向所述用户设备2返回所述租约请求的租约失败结果。
在此,当所述租约请求失败(例如所述目标文件已被其他用户设备锁定),所述控制设备1会向所述用户设备2返回所述租约请求的租约失败结果(例如报错)。
图3示出根据本申请一个优选实施例的一种控制分布式文件系统中文件访问的控制设备与用户设备的示意图,包括控制设备1和用户设备2。其中,所述控制设备1包括租约请求获取装置11’、租约分配装置12’、租约序号信息发送装置13’、续租请求获取装置14’、租约更新装置15’和续租成功结果返回装置16’;所述用户设备2包括租约请求发送装置21’、租约序号信息获取装置22’、续租请求发送装置23’和续租成功结果接收装置24’。
在此,所述控制设备1的租约请求获取装置11’、租约分配装置12’、租约序号信息发送装置13’与图2中的租约请求获取装置11、租约分配装置12、租约序号信息发送装置13内容相同或基本相同,所述用户设备2的租约请求发送装置21’、租约序号信息获取装置22’与图2中的租约请求发送装置21、租约序号信息获取装置22内容相同或基本相同,为简明起见,不再赘述。
具体地,所述用户设备2的续租请求发送装置23’在所述租约的租约期内,向所述控制设备1发送关于所述目标文件的续租请求;所述控制设备1的续租请求获取装置14’获取所述用户设备2发送的关于所述目标文件的续租请求;所述控制设备1的租约更新装置15’若所述续租请求满足对应的续租条件,更新所述用户设备2关于所述目标文件的所述租约;所述控制设备1的续租成功结果返回装置16’向所述用户设备2返回所述续租请求的续租成功结果;所述用户设备2的续租成功结果接收装置24’接收所述控制设备1返回的所述续租请求的续租成功结果。
例如,当所述租约请求成功,可以设置在续租期T续租后所述用户设备2向所述控制设备1发送关于所述目标文件的续租请求,其中,所述续租期T续租小于所述租约期T租约。当所述控制设备1获取关于所述目标文件的续租请求,判断所述续租请求是否满足对应的续租条件。
优选地,所述续租条件包括所述目标文件在所述控制设备1与所述用户设备2中分别记录的所述租约序号信息相等,并且,所述目标文件对应的当前租约失效时间信息大于所述续租请求对应的当前时间信息。
例如,若所述续租请求满足对应的续租条件,说明所述目标文件已被所述用户设备2锁定,则可以允许所述用户设备2续租;若所述续租请求不满足对应的续租条件,可能所述目标文件已被其他用户设备锁定,则拒绝所述用户设备2的续租请求。
优选地,所述更新所述用户设备2关于所述目标文件的所述租约包括:更新所述用户设备2关于所述目标文件的租约失效时间信息。
例如,假设所述目标文件对应的当前租约失效时间信息为t失效,所述续租请求对应的当前时间信息为t当前,所述租约期为T租约,当所述续租请求成功,则将t失效更新为t当前+T租约,那么其他用户设备在租约期T租约内无法锁定所述目标文件,所述控制设备1向所述用户设备2返回所述续租请求的续租成功结果。
优选地,所述用户设备2还包括续租请求重发装置(图中未示出);所述续租请求重发装置若在请求超时阈值内未收到所述控制设备1返回的续租成功结果,在所述租约期内重新向所述控制设备1发送关于所述目标文件的续租请求。
例如,当所述用户设备2向所述控制设备1发送关于所述目标文件的续租请求时,可以设置若所述控制设备1在请求超时阈值T请求超时内未响应,所述用户设备2在续租期T续租后重新向所述控制设备1发送关于所述目标文件的续租请求。
图4示出根据本申请又一个方面的一种控制分布式文件系统中文件访问的用户设备与存储设备的示意图,包括用户设备2和存储设备3。其中,所述用户设备2包括租约请求发送装置21”、租约序号信息获取装置22”和访问请求发送装置25”;所述存储设备3包括访问请求获取装置31”、访问控制装置32”和租约序号信息更新装置33”。
在此,所述用户设备2的租约请求发送装置21”、租约序号信息获取装置22”与图2中的租约请求发送装置21、租约序号信息获取装置22内容相同或基本相同,为简明起见,不再赘述。
具体地,所述用户设备2的访问请求发送装置25”向存储设备3发送关于所述目标文件的访问请求及所述租约序号信息;所述存储设备3的访问请求获取装置31”获取用户设备2发送的关于目标文件的访问请求,以及所述用户设备2存储的租约序号信息;所述存储设备3的访问控制装置32”根据所述租约序号信息,确定是否允许所述用户设备2访问所述目标文件;所述存储设备3的租约序号信息更新装置33”若允许所述用户设备2访问所述目标文件,执行所述访问请求并更新所述存储设备3存储的所述租约序号信息。
例如,所述用户设备2可以通过调用读写接口,向所述存储设备3发送关于所述目标文件的访问请求,同时,还会向所述存储设备3发送所述租约序号信息。所述存储设备3根据所述租约序号信息,确定是否允许所述用户设备2访问所述目标文件。
优选地,所述根据所述租约序号信息,确定是否允许所述用户设备2访问所述目标文件,包括:若所述存储设备3存储的所述目标文件的所述租约信号信息小于或等于所述用户设备2存储的所述目标文件的所述租约序号信息,允许所述用户设备2访问所述目标文件。
例如,可以将所述存储设备3存储的所述目标文件的所述租约信号信息初始化为零,当所述存储设备3获取所述用户设备2发送的关于目标文件的访问请求时,即通过比较所述存储设备3存储的所述目标文件的所述租约信号信息与所述用户设备2存储的所述目标文件的所述租约序号信息之间的大小关系,来确定是否允许所述用户设备2访问所述目标文件。若所述存储设备3存储的所述目标文件的所述租约信号信息大于所述用户设备2存储的所述目标文件的所述租约序号信息,说明所述目标文件已被其他用户设备打开,则拒绝所述用户设备2关于所述目标文件的访问请求。若所述存储设备3存储的所述目标文件的所述租约信号信息小于或等于所述用户设备2存储的所述目标文件的所述租约序号信息,则允许所述用户设备2访问所述目标文件,并将所述存储设备3存储的所述目标文件的所述租约信号信息更新为所述用户设备2存储的所述目标文件的所述租约序号信息。当所述用户设备2关于所述目标文件的访问请求被所述存储设备3拒绝,则认为租约失效。
图5示出根据本申请再一个方面的一种在控制设备端及用户设备端控制分布式文件系统中文件访问的方法流程图。该方法包括控制设备端的步骤S11、步骤S12和步骤S13,以及用户设备端的步骤S21和步骤S22。
具体地,在步骤S21中,所述用户设备2向控制设备1发送关于分布式文件系统中目标文件的租约请求;在步骤S11中,所述控制设备1获取用户设备2发送的关于分布式文件系统中目标文件的租约请求;然后,在步骤S12中,所述控制设备1若所述目标文件可供租约,为所述用户设备2分配关于所述目标文件的租约,其中,所述目标文件在所述租约的租约期内被所述用户设备2锁定;接着,在步骤S13中,所述控制设备1向所述用户设备2发送所述租约的租约序号信息,其中,所述租约序号信息递增;在步骤S22中,所述用户设备2当所述租约请求成功,获取所述控制设备1发送的对应租约的租约序号信息。
例如,首先由所述用户设备2向所述控制设备1申请关于所述目标文件的租约,所述控制设备1获取所述用户设备2关于所述目标文件的租约请求。若所述目标文件可供租约,则在租约期内为所述用户设备2锁定所述目标文件,那么其他用户设备在该租约期内无法锁定所述目标文件;而且,分配关于所述目标文件的租约包括为所述目标文件分配租约序号信息,其中,所述租约序号信息根据各用户设备请求关于所述目标文件的租约的先后顺序,按照单调递增的规律分配。当所述租约请求成功,所述用户设备2获取并保存所述控制设备1返回的所述租约序号信息。
优选地,所述目标文件可供租约包括:所述目标文件未被其他用户设备锁定;所述目标文件对应的当前租约失效时间信息小于或等于所述租约请求对应的当前时间信息。
例如,所述控制设备1检查所述目标文件是否已被其他用户设备锁定,具体地,可以通过比较所述目标文件对应的当前租约失效时间信息与所述租约请求对应的当前时间信息之间的大小关系来进行判断。在具体的实施例中,可以通过UNIX时间戳来记录各时间信息。假设所述目标文件对应的当前租约失效时间信息为t失效(t失效初始化为零),所述租约请求对应的当前时间信息为t当前,所述租约期为T租约,当所述租约请求成功,则将t失效更新为t当前+T租约。
优选地,所述方法还包括:所述控制设备1向所述用户设备2返回所述租约请求的租约失败结果。
在此,当所述租约请求失败(例如所述目标文件已被其他用户设备锁定),所述控制设备1会向所述用户设备2返回所述租约请求的租约失败结果(例如报错)。
图6示出根据本申请另一个优选实施例的一种在控制设备端及用户设备端控制分布式文件系统中文件访问的方法流程图。该方法包括控制设备端的步骤S11’、步骤S12’、步骤S13’、步骤S14’、步骤S15’和步骤S16’,以及用户设备端的步骤S21’、步骤S22’、步骤S23’和步骤S24’。
在此,所述步骤S11’、步骤S12’、步骤S13’、步骤S21’、步骤S22’与图5中步骤S11、步骤S12、步骤S13、步骤S21、步骤S22内容相同或基本相同,为简明起见,不再赘述。
具体地,在步骤S23’中,所述用户设备2在所述租约的租约期内,向所述控制设备1发送关于所述目标文件的续租请求;在步骤S14’中,所述控制设备1获取所述用户设备2发送的关于所述目标文件的续租请求;在步骤S15’中,所述控制设备1若所述续租请求满足对应的续租条件,更新所述用户设备2关于所述目标文件的所述租约;在步骤S16’中,所述控制设备1向所述用户设备2返回所述续租请求的续租成功结果;在步骤S24’中,所述用户设备2接收所述控制设备1返回的所述续租请求的续租成功结果。
例如,当所述租约请求成功,可以设置在续租期T续租后所述用户设备2向所述控制设备1发送关于所述目标文件的续租请求,其中,所述续租期T续租小于所述租约期T租约。当所述控制设备1获取关于所述目标文件的续租请求,判断所述续租请求是否满足对应的续租条件。
优选地,所述续租条件包括所述目标文件在所述控制设备1与所述用户设备2中分别记录的所述租约序号信息相等,并且,所述目标文件对应的当前租约失效时间信息大于所述续租请求对应的当前时间信息。
例如,若所述续租请求满足对应的续租条件,说明所述目标文件已被所述用户设备2锁定,则可以允许所述用户设备2续租;若所述续租请求不满足对应的续租条件,可能所述目标文件已被其他用户设备锁定,则拒绝所述用户设备2的续租请求。
优选地,所述更新所述用户设备2关于所述目标文件的所述租约包括:更新所述用户设备2关于所述目标文件的租约失效时间信息。
例如,假设所述目标文件对应的当前租约失效时间信息为t失效,所述续租请求对应的当前时间信息为t当前,所述租约期为T租约,当所述续租请求成功,则将t失效更新为t当前+T租约,那么其他用户设备在租约期T租约内无法锁定所述目标文件,所述控制设备1向所述用户设备2返回所述续租请求的续租成功结果。
优选地,所述方法还包括:所述用户设备2若在请求超时阈值内未收到所述控制设备1返回的续租成功结果,在所述租约期内重新向所述控制设备1发送关于所述目标文件的续租请求。
例如,当所述用户设备2向所述控制设备1发送关于所述目标文件的续租请求时,可以设置若所述控制设备1在请求超时阈值T请求超时内未响应,所述用户设备2在续租期T续租后重新向所述控制设备1发送关于所述目标文件的续租请求。
图7示出根据本申请又一个方面的一种在用户设备端及存储设备端控制分布式文件系统中文件访问的方法流程图。该方法包括用户设备端的步骤S21”、步骤S22”和步骤S25”,以及存储设备端的步骤S31”、步骤S32”和步骤S33”。
在此,所述步骤S21”、步骤S22”与图5中步骤S21、步骤S22内容相同或基本相同,为简明起见,不再赘述。
具体地,在步骤S25”中,所述用户设备2向存储设备3发送关于所述目标文件的访问请求及所述租约序号信息;在步骤S31”中,所述存储设备3获取用户设备2发送的关于目标文件的访问请求,以及所述用户设备2存储的租约序号信息;在步骤S32”中,所述存储设备3根据所述租约序号信息,确定是否允许所述用户设备2访问所述目标文件;在步骤S33”中,所述存储设备3若允许所述用户设备2访问所述目标文件,执行所述访问请求并更新所述存储设备3存储的所述租约序号信息。
例如,所述用户设备2可以通过调用读写接口,向所述存储设备3发送关于所述目标文件的访问请求,同时,还会向所述存储设备3发送所述租约序号信息。所述存储设备3根据所述租约序号信息,确定是否允许所述用户设备2访问所述目标文件。
优选地,所述根据所述租约序号信息,确定是否允许所述用户设备2访问所述目标文件,包括:若所述存储设备3存储的所述目标文件的所述租约信号信息小于或等于所述用户设备2存储的所述目标文件的所述租约序号信息,允许所述用户设备2访问所述目标文件。
例如,可以将所述存储设备3存储的所述目标文件的所述租约信号信息初始化为零,当所述存储设备3获取所述用户设备2发送的关于目标文件的访问请求时,即通过比较所述存储设备3存储的所述目标文件的所述租约信号信息与所述用户设备2存储的所述目标文件的所述租约序号信息之间的大小关系,来确定是否允许所述用户设备2访问所述目标文件。若所述存储设备3存储的所述目标文件的所述租约信号信息大于所述用户设备2存储的所述目标文件的所述租约序号信息,说明所述目标文件已被其他用户设备打开,则拒绝所述用户设备2关于所述目标文件的访问请求。若所述存储设备3存储的所述目标文件的所述租约信号信息小于或等于所述用户设备2存储的所述目标文件的所述租约序号信息,则允许所述用户设备2访问所述目标文件,并将所述存储设备3存储的所述目标文件的所述租约信号信息更新为所述用户设备2存储的所述目标文件的所述租约序号信息。当所述用户设备2关于所述目标文件的访问请求被所述存储设备3拒绝,则认为租约失效。
图8示出根据本申请又一个优选实施例的一种控制分布式文件系统中文件访问的方法流程图。其中,所述控制设备可以是Master服务器,所述存储设备可以是ChunkServer服务器,所述用户设备可以是客户端;t当前表示当前时间的UNIX时间戳,t失效表示租约失效的UNIX时间戳(t失效初始化为零);租约期T租约表示一个租约的有效时间,续租期T续租表示客户端申请新租约或续租成功后至下次续租的时间,请求超时阈值T请求超时表示一次网络交互的超时时间,它们之间的关系是T租约≥T续租≥T请求超时,例如可以预先配置为T租约=1分钟、T续租=30秒、T请求超时=5秒。
在本实施例中,首先,客户端向Master发送关于目标文件的租约请求申请租约,若t当前≥t失效,说明没有其他客户端锁定所述目标文件,则根据各客户端请求关于所述目标文件的租约的先后顺序,为所述客户端分配关于所述目标文件的租约的单调递增的序号master,那么在租约期T租约内所述目标文件无法被其他客户端锁定,并将t失效更新为t当前+T租约。当租约请求成功,客户端获取Master发送的序号master,并将其保存为序号客户端,设置定时器A在续租期T续租后触发。
当续租时间到(定时器A被触发),所述客户端向Master发送关于所述目标文件的续租请求,并设置定时器B在t当前+T请求超时时触发。若序号master=序号客户端且t当前<t失效,说明所述目标文件已被所述客户端锁定,则允许所述客户端关于所述目标文件的续租请求,并将t失效更新为t当前+T租约,那么在租约期T租约内所述目标文件无法被其他客户端锁定。若Master没有在T请求超时时间内响应(定时器B被触发),清除定时器A和定时器B,重新设置定时器A在t当前+T续租时触发(所述客户端向Master发送关于所述目标文件的续租请求)。
当用户调用了读写接口,所述客户端向ChunkServer发送关于所述目标文件的访问请求,同时向ChunkServer发送序号客户端。ChunkServer保存的关于所述目标文件的租约的序号ChunkServer初始化为零。若序号客户端≥序号ChunkServer,则允许所述客户端关于所述目标文件的访问请求,并将序号ChunkServer更新为序号客户端。若序号客户端<序号ChunkServer,说明所述目标文件已被其他客户端锁定,则拒绝所述客户端关于所述目标文件的访问请求,所述客户端若发现请求被ChunkServer拒绝便认为租约失效。
与现有技术相比,本申请的控制设备获取用户设备发送的关于分布式文件系统中目标文件的租约请求,若所述目标文件可供租约,为所述用户设备分配关于所述目标文件的租约,并向所述用户设备发送所述租约的租约序号信息;本申请通过增加所述租约序号信息表示各用户设备请求租约的先后顺序,在设备故障时仍可保证数据不错乱,从而提高服务可用性,减少服务故障时间,而且,本申请通过控制设备、用户设备、存储设备三端维护所述租约序号信息,保证多用户设备访问数据的正确性。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (24)
1.一种在控制设备端控制分布式文件系统中文件访问的方法,其中,该方法包括:
获取用户设备发送的关于分布式文件系统中目标文件的租约请求;
若所述目标文件可供租约,为所述用户设备分配关于所述目标文件的租约,其中,所述目标文件在所述租约的租约期内被所述用户设备锁定;
向所述用户设备发送所述租约的租约序号信息,其中,所述租约序号信息递增。
2.根据权利要求1所述的方法,其中,所述方法还包括:
获取所述用户设备发送的关于所述目标文件的续租请求;
若所述续租请求满足对应的续租条件,更新所述用户设备关于所述目标文件的所述租约;
向所述用户设备返回所述续租请求的续租成功结果。
3.根据权利要求2所述的方法,其中,所述续租条件包括所述目标文件在所述控制设备与所述用户设备中分别记录的所述租约序号信息相等,并且,所述目标文件对应的当前租约失效时间信息大于所述续租请求对应的当前时间信息。
4.根据权利要求2所述的方法,其中,所述更新所述用户设备关于所述目标文件的所述租约包括:
更新所述用户设备关于所述目标文件的租约失效时间信息。
5.根据权利要求1所述的方法,其中,所述目标文件可供租约包括:
所述目标文件未被其他用户设备锁定;
所述目标文件对应的当前租约失效时间信息小于或等于所述租约请求对应的当前时间信息。
6.根据权利要求1所述的方法,其中,所述方法还包括:
向所述用户设备返回所述租约请求的租约失败结果。
7.一种在用户设备端控制分布式文件系统中文件访问的方法,其中,该方法包括:
向控制设备发送关于分布式文件系统中目标文件的租约请求;
当所述租约请求成功,获取所述控制设备发送的对应租约的租约序号信息。
8.根据权利要求7所述的方法,其中,所述方法还包括:
在所述租约的租约期内,向所述控制设备发送关于所述目标文件的续租请求;
接收所述控制设备返回的所述续租请求的续租成功结果。
9.根据权利要求8所述的方法,其中,所述方法还包括:
若在请求超时阈值内未收到所述控制设备返回的续租成功结果,在所述租约期内重新向所述控制设备发送关于所述目标文件的续租请求。
10.根据权利要求7所述的方法,其中,所述方法还包括:
向存储设备发送关于所述目标文件的访问请求及所述租约序号信息。
11.一种在存储设备端控制分布式文件系统中文件访问的方法,其中,该方法包括:
获取用户设备发送的关于目标文件的访问请求,以及所述用户设备存储的租约序号信息;
根据所述租约序号信息,确定是否允许所述用户设备访问所述目标文件;
若允许所述用户设备访问所述目标文件,执行所述访问请求并更新所述存储设备存储的所述租约序号信息。
12.根据权利要求11所述的方法,其中,所述根据所述租约序号信息,确定是否允许所述用户设备访问所述目标文件,包括:
若所述存储设备存储的所述目标文件的所述租约信号信息小于或等于所述用户设备存储的所述目标文件的所述租约序号信息,允许所述用户设备访问所述目标文件。
13.一种控制分布式文件系统中文件访问的控制设备,其中,该设备包括:
租约请求获取装置,用于获取用户设备发送的关于分布式文件系统中目标文件的租约请求;
租约分配装置,用于若所述目标文件可供租约,为所述用户设备分配关于所述目标文件的租约,其中,所述目标文件在所述租约的租约期内被所述用户设备锁定;
租约序号信息发送装置,用于向所述用户设备发送所述租约的租约序号信息,其中,所述租约序号信息递增。
14.根据权利要求13所述的设备,其中,所述设备还包括:
续租请求获取装置,用于获取所述用户设备发送的关于所述目标文件的续租请求;
租约更新装置,用于若所述续租请求满足对应的续租条件,更新所述用户设备关于所述目标文件的所述租约;
续租成功结果返回装置,用于向所述用户设备返回所述续租请求的续租成功结果。
15.根据权利要求14所述的设备,其中,所述续租条件包括所述目标文件在所述控制设备与所述用户设备中分别记录的所述租约序号信息相等,并且,所述目标文件对应的当前租约失效时间信息大于所述续租请求对应的当前时间信息。
16.根据权利要求14所述的设备,其中,所述更新所述用户设备关于所述目标文件的所述租约包括:
更新所述用户设备关于所述目标文件的租约失效时间信息。
17.根据权利要求13所述的设备,其中,所述目标文件可供租约包括:
所述目标文件未被其他用户设备锁定;
所述目标文件对应的当前租约失效时间信息小于或等于所述租约请求对应的当前时间信息。
18.根据权利要求13所述的设备,其中,所述设备还包括:
租约失败结果返回装置,用于向所述用户设备返回所述租约请求的租约失败结果。
19.一种控制分布式文件系统中文件访问的用户设备,其中,该设备包括:
租约请求发送装置,用于向控制设备发送关于分布式文件系统中目标文件的租约请求;
租约序号信息获取装置,用于当所述租约请求成功,获取所述控制设备发送的对应租约的租约序号信息。
20.根据权利要求19所述的设备,其中,所述设备还包括:
续租请求发送装置,用于在所述租约的租约期内,向所述控制设备发送关于所述目标文件的续租请求;
续租成功结果接收装置,用于接收所述控制设备返回的所述续租请求的续租成功结果。
21.根据权利要求20所述的设备,其中,所述设备还包括:
续租请求重发装置,用于若在请求超时阈值内未收到所述控制设备返回的续租成功结果,在所述租约期内重新向所述控制设备发送关于所述目标文件的续租请求。
22.根据权利要求19所述的设备,其中,所述设备还包括:
访问请求发送装置,用于向存储设备发送关于所述目标文件的访问请求及所述租约序号信息。
23.一种控制分布式文件系统中文件访问的存储设备,其中,该设备包括:
访问请求获取装置,用于获取用户设备发送的关于目标文件的访问请求,以及所述用户设备存储的租约序号信息;
访问控制装置,用于根据所述租约序号信息,确定是否允许所述用户设备访问所述目标文件;
租约序号信息更新装置,用于若允许所述用户设备访问所述目标文件,执行所述访问请求并更新所述存储设备存储的所述租约序号信息。
24.根据权利要求23所述的设备,其中,所述根据所述租约序号信息,确定是否允许所述用户设备访问所述目标文件,包括:
若所述存储设备存储的所述目标文件的所述租约信号信息小于或等于所述用户设备存储的所述目标文件的所述租约序号信息,允许所述用户设备访问所述目标文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610427819.5A CN107516048B (zh) | 2016-06-16 | 2016-06-16 | 一种控制分布式文件系统中文件访问的方法与设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610427819.5A CN107516048B (zh) | 2016-06-16 | 2016-06-16 | 一种控制分布式文件系统中文件访问的方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107516048A true CN107516048A (zh) | 2017-12-26 |
CN107516048B CN107516048B (zh) | 2021-01-08 |
Family
ID=60720506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610427819.5A Active CN107516048B (zh) | 2016-06-16 | 2016-06-16 | 一种控制分布式文件系统中文件访问的方法与设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107516048B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324764A (zh) * | 2018-11-01 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种分布式独占锁的实现方法和装置 |
CN109918356A (zh) * | 2019-03-15 | 2019-06-21 | 深信服科技股份有限公司 | 文件读取方法、装置、设备及计算机可读存储介质 |
CN110928841A (zh) * | 2019-11-27 | 2020-03-27 | 深信服科技股份有限公司 | 一种文件操作控制方法、装置、设备及存储介质 |
CN112905556A (zh) * | 2021-02-09 | 2021-06-04 | 山东英信计算机技术有限公司 | 分布式系统的目录租约管理方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136003A (zh) * | 2011-03-25 | 2011-07-27 | 上海交通大学 | 大规模分布式存储系统 |
CN102521224A (zh) * | 2010-09-17 | 2012-06-27 | 微软公司 | 目录租赁 |
CN102546751A (zh) * | 2011-12-06 | 2012-07-04 | 华中科技大学 | 一种分布式文件系统分级元数据缓存控制方法 |
CN102609271A (zh) * | 2012-02-20 | 2012-07-25 | 山东大学 | 一种元数据驱动的SaaS应用的可视化定制方法及系统 |
CN103581122A (zh) * | 2012-07-25 | 2014-02-12 | 腾讯科技(深圳)有限公司 | 数据的写入方法、系统和装置 |
US20150161832A1 (en) * | 2013-12-05 | 2015-06-11 | Ford Global Technologies, Llc | Method and Apparatus for Virtual Key Delivery |
CN105208124A (zh) * | 2015-09-29 | 2015-12-30 | 华为技术有限公司 | 管理锁的方法及装置、确定锁管理服务器的方法及装置 |
CN105631023A (zh) * | 2015-12-30 | 2016-06-01 | 华为技术有限公司 | 分布式锁服务的方法和装置 |
-
2016
- 2016-06-16 CN CN201610427819.5A patent/CN107516048B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521224A (zh) * | 2010-09-17 | 2012-06-27 | 微软公司 | 目录租赁 |
CN102136003A (zh) * | 2011-03-25 | 2011-07-27 | 上海交通大学 | 大规模分布式存储系统 |
CN102546751A (zh) * | 2011-12-06 | 2012-07-04 | 华中科技大学 | 一种分布式文件系统分级元数据缓存控制方法 |
CN102609271A (zh) * | 2012-02-20 | 2012-07-25 | 山东大学 | 一种元数据驱动的SaaS应用的可视化定制方法及系统 |
CN103581122A (zh) * | 2012-07-25 | 2014-02-12 | 腾讯科技(深圳)有限公司 | 数据的写入方法、系统和装置 |
US20150161832A1 (en) * | 2013-12-05 | 2015-06-11 | Ford Global Technologies, Llc | Method and Apparatus for Virtual Key Delivery |
CN105208124A (zh) * | 2015-09-29 | 2015-12-30 | 华为技术有限公司 | 管理锁的方法及装置、确定锁管理服务器的方法及装置 |
CN105631023A (zh) * | 2015-12-30 | 2016-06-01 | 华为技术有限公司 | 分布式锁服务的方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324764A (zh) * | 2018-11-01 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种分布式独占锁的实现方法和装置 |
CN109918356A (zh) * | 2019-03-15 | 2019-06-21 | 深信服科技股份有限公司 | 文件读取方法、装置、设备及计算机可读存储介质 |
CN109918356B (zh) * | 2019-03-15 | 2023-05-12 | 深信服科技股份有限公司 | 文件读取方法、装置、设备及计算机可读存储介质 |
CN110928841A (zh) * | 2019-11-27 | 2020-03-27 | 深信服科技股份有限公司 | 一种文件操作控制方法、装置、设备及存储介质 |
CN112905556A (zh) * | 2021-02-09 | 2021-06-04 | 山东英信计算机技术有限公司 | 分布式系统的目录租约管理方法、装置、设备及存储介质 |
CN112905556B (zh) * | 2021-02-09 | 2022-11-15 | 山东英信计算机技术有限公司 | 分布式系统的目录租约管理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107516048B (zh) | 2021-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102947797B (zh) | 使用横向扩展目录特征的在线服务访问控制 | |
US11316708B2 (en) | Gx session recovery for policy and charging rules function | |
EP4202694A1 (en) | Node memory-based data processing method and apparatus, device, and medium | |
CN107516048A (zh) | 一种控制分布式文件系统中文件访问的方法与设备 | |
CN106648903B (zh) | 调用分布式文件系统的方法和装置 | |
US9830091B2 (en) | Policy-based data tiering using a cloud architecture | |
CN109684285A (zh) | 一种用户态网络文件系统文件锁方法、装置及设备 | |
CN109547512A (zh) | 一种基于NoSQL的分布式Session管理的方法及装置 | |
CN109873839B (zh) | 数据访问的方法、服务器与分布式系统 | |
TW201405324A (zh) | 雲端資料儲存系統及基於該系統的資料儲存與共用方法 | |
CN111950019A (zh) | 一种基于区块链的物联网访问控制系统及方法 | |
CN108259218A (zh) | 一种ip地址分配方法和装置 | |
CN110022333A (zh) | 分布式系统的通信方法及装置 | |
CN109962961A (zh) | 一种内容分发网络cdn服务节点的重定向方法及系统 | |
US7725489B2 (en) | Node for providing a file service to a mobile terminal | |
CN105224541B (zh) | 数据的唯一性控制方法、信息存储方法及装置 | |
US20220103500A1 (en) | Method and device for managing group member, and method for processing group message | |
JP5659016B2 (ja) | ファイルの並列ダウンロード方法 | |
CN112422611A (zh) | 基于分布式对象存储的虚拟桶存储处理方法和系统 | |
CN107528703A (zh) | 一种用于管理分布式系统中节点设备的方法与设备 | |
CN105516343A (zh) | 一种网络动态自组织的文件共享系统及实现方法 | |
US10148766B2 (en) | Methods, systems, and computer readable media for subscriber binding repository reconfiguration | |
US11563806B1 (en) | Content distribution network system and method | |
CN108228750A (zh) | 一种分布式数据库及其对数据进行管理的方法 | |
CN112579343B (zh) | 区块链节点数据的恢复方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |