CN102339283A - 集群文件系统访问控制方法及集群节点 - Google Patents

集群文件系统访问控制方法及集群节点 Download PDF

Info

Publication number
CN102339283A
CN102339283A CN2010102311384A CN201010231138A CN102339283A CN 102339283 A CN102339283 A CN 102339283A CN 2010102311384 A CN2010102311384 A CN 2010102311384A CN 201010231138 A CN201010231138 A CN 201010231138A CN 102339283 A CN102339283 A CN 102339283A
Authority
CN
China
Prior art keywords
node
file
token
clustered
lock
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.)
Pending
Application number
CN2010102311384A
Other languages
English (en)
Inventor
欧阳茂春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN2010102311384A priority Critical patent/CN102339283A/zh
Publication of CN102339283A publication Critical patent/CN102339283A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开了一种集群文件系统访问控制方法及集群节点。该方法包括:创建集群文件系统,将集群文件系统挂载在集群系统中的一个集群节点上,将首次访问集群文件系统中某一文件的集群节点设置为文件的主节点,并向主节点分配整体锁令牌和全部的字节锁令牌;在其他集群节点对文件发起访问的情况下,主节点根据其他集群节点的请求将相应的字节锁令牌分配给其他集群节点,并将其他集群节点设置为从节点;主节点或从节点根据字节锁令牌对文件的相应内容进行读/写操作,主节点根据持有的整体锁令牌对其修改的文件相应内容进行更新,并根据从节点的请求,将整体锁令牌传递给从节点,以使从节点对其修改的文件相应内容进行更新。

Description

集群文件系统访问控制方法及集群节点
技术领域
本发明涉及集群技术领域,特别是涉及一种集群文件系统访问控制方法及集群节点。
背景技术
在相关技术中,计算机集群是一种计算机系统,它通过一组松散集成的计算机软件和硬件连接起来,高度紧密地协作完成计算工作。集群系统中的单个计算机通常称为集群节点,各个集群节点之间通过局域网连接。集群计算机通常用来改进单个计算机的计算速度和可靠性。
随着高性能微处理器、高速互联网和高性能分布式计算的快速发展,以及各种应用对于计算能力需求的日益增长,集群技术获得了快速的发展。集群系统具有低成本、高性能、高扩展性、高吞吐量和易用性等特点,提供了强大的批处理和并行计算的能力。
在相关技术中,文件系统所处理的数据主要包括两类:一类是用户使用的数据,即用户数据;另一类是文件系统用于管理用户数据的数据,即元数据。要实现集群文件系统的同步互斥访问,就必须在集群节点之间有效的管理用户数据和元数据,实现这两种数据之间的一致性。
目前,本地文件系统用户数据管理主要依据元数据,文件系统判断用户数据的地址以及是否空闲等特征是通过读取特定元数据而获得,本地文件系统元数据缓存相对较小,磁盘访问占元数据操作开销的大部分,所以文件系统的元数据组织管理方法利用磁盘访问局部性为目标,重点在元数据的磁盘结构组织,元数据的内存结构只是其磁盘结构在缓存中的映像。通常本地文件系统的元数据目录项(dentry)存储在目录文件中,每个目录文件都有目录索引结构以加速查找目录项,元数据索引节点(inode)以表的形式组织存储。
此外,目前的集群文件系统访问管理方法会将第一个访问文件的节点设置为主节点,主节点在本地对该文件进行数据和元数据的更新操作,其他集群节点并不能够与该主节点对文件进行同步访问。
发明内容
本发明提供一种集群文件系统访问控制方法及集群节点,以解决现有技术中其他集群节点不能够与文件的主节点对文件进行同步访问的问题。
本发明提供一种集群文件系统访问控制方法,包括:
在共享存储设备中创建集群文件系统,将集群文件系统挂载在集群系统中的一个集群节点上,将首次访问集群文件系统中某一文件的集群节点设置为文件的主节点,并向主节点分配整体锁令牌和全部的字节锁令牌;
在集群系统中的其他集群节点对文件发起访问的情况下,主节点根据其他集群节点的请求将全部的字节锁令牌中相应的字节锁令牌分配给其他集群节点,并将其他集群节点设置为从节点;
主节点或从节点根据字节锁令牌对文件的相应内容进行读/写操作,主节点根据持有的整体锁令牌对其修改的文件相应内容进行更新,并根据从节点的请求,将整体锁令牌传递给从节点,以使从节点对其修改的文件相应内容进行更新。
本发明还提供了一种集群节点,包括:
创建模块,用于在共享存储设备中创建集群文件系统;
挂载模块,用于挂载集群文件系统;
锁令牌管理模块,用于设置集群文件系统中某一文件的主节点,并向主节点分配整体锁令牌和全部的字节锁令牌,在集群系统中的其他集群节点对文件发起访问的情况下,根据其他集群节点的请求将全部的字节锁令牌中相应的字节锁令牌分配给所述其他集群节点,将所述其他集群节点设置为从节点,并根据从节点的请求,将整体锁令牌传递给从节点,以使从节点对其修改的文件相应内容进行更新;
读写模块,用于根据字节锁令牌对文件的相应内容进行读/写操作;
更新模块,用于根据持有的整体锁令牌对其修改的文件相应内容进行更新。
本发明有益效果如下:
通过向第一个访问该文件的集群节点分配整体锁令牌,并由该集群节点向其他集群节点分配字节锁令牌对文件进行同步访问,解决了现有技术中其他集群节点不能够与文件的主节点对文件进行同步访问的问题,能够保护集群文件系统的用户数据和元数据在被多个集群节点的访问的同时而不会遭到破坏,维护数据的完整性以及用户数据和元数据的一致性,同时也提高了文件系统的访问效率。
附图说明
图1是本发明实施例的集群文件系统访问控制方法的流程图;
图2是本发明实施例的创建集群文件系统的初始化流程示意图;
图3是本发明实施例的分配图管理方法的示意图;
图4是本发明实施例的集群节点访问文件请求处理的示意图;
图5是本发明实施例的集群节点获得文件锁令牌的处理流程图;
图6是本发明实施例的分配图管理模块的处理流程图;
图7是本发明实施例的多个集群节点同步访问更新的处理流程图;
图8是本发明实施例的集群节点的结构示意图。
具体实施方式
为了解决现有技术中其他集群节点不能够与文件的主节点对文件进行同步访问的问题,为了使多个集群节点访问集群文件系统时能够进行同步互斥访问,保证集群文件系统中的用户数据以及元数据的完整性和一致性,本发明针对计算机集群网络系统提供了一种集群文件系统访问控制方法及集群节点,即,共享磁盘设备的文件系统访问技术,使多个集群节点能够同步互斥的访问集群文件系统。
以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
方法实施例
根据本发明的实施例,提供了一种集群文件系统访问控制方法,图1是本发明实施例的集群文件系统访问控制方法的流程图,如图1所示,根据本发明实施例的集群文件系统访问控制方法包括如下处理:
步骤101,在共享存储设备中创建集群文件系统,将集群文件系统挂载在集群系统中的一个集群节点上,将首次访问集群文件系统中某一文件的集群节点设置为该文件的主节点,并向主节点分配整体锁令牌和全部的字节锁令牌;
步骤102,在集群系统中的其他集群节点对文件发起访问的情况下,主节点根据其他集群节点的请求将全部的字节锁令牌中相应的字节锁令牌分配给其他集群节点,并将其他集群节点设置为从节点;
具体地,在步骤102中,主节点接收集群系统中的其他集群节点发送的文件访问请求,并根据文件访问请求从全部的字节锁令牌中撤销相应的字节锁令牌;主节点将撤销的相应的字节锁令牌分配给发送文件访问请求的集群节点,并将该集群节点设置为从节点。
步骤103,主节点或从节点根据字节锁令牌对文件的相应内容进行读/写操作,主节点根据持有的整体锁令牌对其修改的文件相应内容进行更新,并根据从节点的请求,将整体锁令牌传递给从节点,以使从节点对其修改的文件相应内容进行更新。
具体地,在步骤103中,从节点向主节点发送申请整体锁令牌请求;主节点将自身字节锁令牌范围内的文件内存副本更新到共享存储设备,在更新完成后,根据申请整体锁令牌请求,将整体锁令牌传递给从节点,并将从节点设置为当前的主节点;当前的主节点将自身字节锁令牌范围内的文件内存副本更新到共享存储设备,并等待其他从节点发送申请整体锁令牌请求;在主节点不再访问文件的情况下,释放文件的整体锁令牌,在从节点不再访问文件的情况下,释放文件相应的字节锁令牌。
在对修改的文件相应内容进行更新后,还需要将更新的相应内容在所有集群节点之间进行同步,其中,文件相应内容包括用户数据和元数据。
此外,本发明实施例还需要进行以下的处理:
将挂载建集群文件系统的集群节点设置为分配图管理节点;分配图管理节点将集群文件系统的分配图划分为多个锁区域;在主节点和/或从节点使用完当前锁区域中的磁盘空间的情况下,分配图管理节点向主节点和/或从节点分配新的锁区域中空闲的磁盘空间;将与该磁盘空间相对应的区域锁分配给主节点和/或从节点。
需要说明的是,本发明实施例不仅提供对用户数据和元数据访问的锁管理服务,而且相对本地文件系统而言,本集群文件系统技术也使用较大的内存来缓存元数据。在本发明实施例的集群文件系统中,内存中的一部分被专门分配出来用于缓存经常访问的元数据,这部分元数据内存结构一般分配后便驻留内存,直到其目录内的元数据不再访问才予以释放,对于其他类型的元数据,仍以缓存替换的方式来管理元数据的内存结构,元数据磁盘结构仍以优化磁盘访问为目的进行组织。针对访问频率高的元数据采用驻留其内存结构的方式能够提高访问效率,减少对实际磁盘设备的访问。
集群节点是通过集群网络相互连接并作为一个系统进行工作的,集群节点使用集群文件系统路径对共享存储设备上的所有文件进行访问。为了维护文件系统数据的一致性,需要同步多个节点对数据和元数据访问的权限,这将消耗掉文件系统的一些访问效率。如果两个节点同时访问同一个文件,一个节点要么能看到文件的所有变化,要么什么变化都看不到,读写操作能够保证是原子的。
一个集群节点对集群文件系统的读写操作需要首先获得该文件的锁权限,然后才能对文件系统的数据或元数据进行读写操作。集群文件系统的架构基础是分布式锁管理,它来保证对用户数据或元数据访问的同步性。锁管理的粒度同样会影响集群文件系统的性能:锁粒度太小就会消耗更多的访问效率,锁粒度太大,对于频繁使用的锁来说,由于锁的分配和释放过多,则可能造成更多的锁阻塞。为了尽可能的减少锁阻塞对文件系统造成的影响,在本发明实施例中,一个集群节点如果持有了文件的字节锁令牌,除非它在不使用的情况下自行释放或者有其他集群节点申请该字节锁令牌,其他情况下不进行主动回收。
以下结合附图,对本发明实施例的上述技术方案进行详细的说明。
步骤一,创建集群文件系统,将共享存储设备(例如,磁阵或SAN等)格式化为集群文件系统,并将该集群文件系统挂载在某一集群节点上。
具体地,图2是本发明实施例的创建集群文件系统的初始化流程示意图,如图2所示,在加载集群文件系统时,需要向磁盘共享设备(上述共享存储设备)写入集群文件系统的元数据,完成集群文件系统的格式化,并将将该集群文件系统挂载在一个集群节点上。
在节点挂接集群文件系统之后,需要加载分配图管理模块,分配图管理模块主要管理集群文件系统的逻辑数据块分配状态,在对文件进行写操作的时候,需要该模块来控制数据块的状态(例如,数据块为空闲或者被使用),以便对于文件系统数据块的使用有一个整体的掌握。分配图管理模块判断是否已经设置了分配图的管理节点,如果没有设置,该分配图管理模块把首次挂载集群文件系统的节点设置为分配图的管理节点,需要说明的是,一个集群文件系统只能有一个分配图管理节点,其它集群节点对文件中空闲数据块的申请都要由分配图管理节点来处理。分配图管理节点主要负责维护集群文件系统所有分配区的状态表。图3是本发明实施例的分配图管理方法的示意图,如图3所示,分配图管理模块将集群文件系统的分配图划分为若干部分,每一部分包含一组独立的锁区域,锁区域有一个对应的锁来标识该锁区域是否被被占用,每个锁区域又包含该区域内的磁盘块(上述数据块)的分配状态,即锁区域状态表。需要说明的是,锁区域的数量是由集群节点的数量在集群文件系统创建的时候决定的,它能够最大程度的减少锁冲突。在分配图管理模块分配了分配图的管理节点后,该分配图的管理节点等待其他节点申请磁盘空间的请求。
在加载分配图管理模块后,还需要加载锁令牌管理模块,集群节点对文件锁令牌的处理都由该模块来实现。锁令牌管理模块主要负责控制集群节点对文件的访问的权限,其中,锁令牌分为整体锁令牌和字节(局部)锁令牌,只有在集群节点持有锁令牌的时候才能对文件的特定区域进行访问,锁令牌模块同样保证写操作的原子性,使集群文件系统更加有效的支持各种文件操作,对于文件的访问权限需要根据文件的工作量来分配不同权限特性。
具体地,锁令牌管理模块需要把文件的整体锁令牌派发给第一个访问文件的节点,获得文件整体锁令牌的节点会被设置为文件的主节点,其它后面访问文件的集群节点设置为文件的从节点,主节点和从节点只是针对某一个特定文件而言的,一个文件只有一个主节点,可以有多个从节点或没有从节点。在对文件的访问过程中,锁令牌管理模块会将文件的整体锁令牌在访问文件的集群节点间进行传递,以便所有访问文件的集群节点都能把自己对文件写入的缓冲内容更新到共享磁盘设备。
步骤二,集群节点对集群文件系统的某一文件第一个进行访问。
具体地,如图2所示,如上所述,锁令牌管理模块需要首先判断该文件的主节点是否已经被设置,如果未设置,锁令牌管理模块将首次访问某一文件的节点设置为该文件的主节点,并将整体锁令牌和全部的字节锁令牌分配给该主节点。随后,主节点需要等待其他集群节点的申请字节锁令牌的请求,主节点具有分发文件字节锁令牌给从节点的权限以及更新文件的权限,持有字节锁令牌的从节点具有文件部分访问的权限。也就是说,主节点主要负责处理从节点对文件字节锁令牌的请求,并具有刷新文件的内存缓冲到共享磁盘的权限。
步骤三,其它集群节点对集群文件系统的文件发起访问,向主节点请求字节锁令牌,该文件的主节点处理该请求。
首先,主节点在接收到其它节点对文件的访问请求后,主节点会分配字节锁令牌给其它节点,并将该节点设置为文件的从节点,使得从节点即使在没有获得文件整体锁令牌的前提下,也能对文件的部分区域进行访问。如果集群节点访问使用完了它的锁区域的磁盘空间,它会向分配图管理节点发送请求分配新的空闲磁盘空间。分配图管理节点接收到该请求,查询分配图的状态表,将标识为空闲的分配图区域以及控制访问该区域的区域锁分配给该集群节点。
图4是本发明实施例的集群节点访问文件请求处理的示意图,如图4所示,从上述处理可以看出,第一个访问文件的集群节点持有文件的整体锁令牌,它会首先被锁令牌管理模块设置为该文件的主节点,并且它同时持有文件的全部的字节锁令牌。其它节点要访问文件需要向该文件的主节点发送请求,主节点接收到该请求以后,根据节点请求撤销部分字节锁令牌,然后将令牌再分配给其它节点,其它节点获得文件的字节锁令牌以后便能对文件的部分区域进行正常的访问操作了。
例如,如果第一集群节点连续向文件偏移O1处写数据,第二集群节点连续向文件偏移O2处写数据,第一集群节点会交出它的字节锁令牌。如果O2大于O1,交出的锁令牌范围O2到无穷,如果O2小于O1,交出的锁令牌范围为0到O1,这样保证两个集群节点都能对文件同时写入而不会造成锁冲突。对于整体锁令牌而言,字节锁令牌使得多集群节点对同一文件数据的同步写操作变得更加有效,因为仅仅通过不断地单个字节锁令牌的交换,就能访问到整个文件了。
在令牌交换的过程中,需要指定以偏移为基础写入的期望范围,如果集群节点的字节锁令牌范围期望方位相冲突,则将会撤销字节令牌锁的范围,将期望范围的一个子集赋给它,这样就不会与其它持有字节令牌锁的集群节点在该范围的造成冲突。需要说明的是,锁令牌不仅支持正向连续访问文件数据,也支持反向连续访问文件数据的方式,减小了分割字节令牌锁范围的冲突。
图5是本发明实施例的集群节点获得文件锁令牌的处理流程图,如图5所示,第一个写入文件的集群节点申请获取文件的整体锁令牌,锁令牌管理模块处理该申请,将整体锁令牌分配给该集群节点。需要说明的是,只要没有其它的节点访问同一个文件,所有的读写操作都在本地进行,不需要节点之间进行交互。如果文件被关闭了,第一个集群节点会释放该文件整体锁令牌,于是第二个集群节点就能获取该文件的整体锁令牌,对整个文件也就有了访问权限。如果第一个集群节点仍然要对文件数据进行访问,还没有交出整体锁令牌,而这时第二个集群节点开始向同一文件写入数据,第二个集群节点需要撤销至少一部分被第一个集群节点持有的字节锁令牌。第一个集群节点(主节点)先检查从节点申请的锁区域是否被使用(即,相应的字节锁令牌是否被分配),如果没有被使用,则分配相应的字节锁令牌,从节点便可以对文件数据进行访问。
集群节点持有的文件锁区域的空间是有限的,在锁区域的数据块都被分配了以后,需要给它分配新的空闲锁区域,图6是本发明实施例的分配图管理模块的处理流程图,如图6所示,持有字节锁的集群节点对文件的局部锁区域持续写入会造成锁区域的越界,在锁区域的数据块被写满的情况下,集群节点需要向分配图管理节点请求分配新的空闲锁区域。分配图管理节点接收到节点的请求,查询文件系统的分配图的状态表,将空闲的锁区域和区域锁分配给发送请求的集群节点,并将该锁区域进行标记,便于下次查询分配图的状态表时能够正确获取该锁区域的状态。集群节点接收到分配图管理节点返回的信息,继续对新分配的锁区域进行写操作,如果写操作再次越界,重复执行上述操作。
此外,需要说明的是,同一集群节点对集群文件系统的同一文件数据的重复访问只需要申请一次锁令牌,一旦它从主节点那里得到锁令牌,它对文件数据接下来的操作就不要再发消息来申请文件锁令牌。只有当其它从节点对同一文件数据申请锁令牌,该从节点的锁令牌可能被撤销。锁令牌同样也维护节点之间的缓冲一致性。一个从节点持有令牌后,该锁令牌对应的从磁盘读取的缓冲数据在撤消令牌之前不能被其它节点(包括主节点)修改。
步骤四,集群节点对文件的修改在所有集群节点之间进行同步,只有文件的主节点才能更新文件的元数据和用户数据的内存副本到共享磁盘。
具体地,首先,文件的从节点发送要更新文件的请求给文件的主节点。文件的主节点将自己锁令牌范围内的文件内存副本更新到共享存储,更新完成后,交出文件的整体锁令牌,并调用锁令牌管理模块将一个其它持有文件字节锁令牌的从节点设置为该文件的主节点。新的主节点又将自己锁令牌范围内的文件内存副本更新到共享存储,并等待其它集群节点申请文件整体锁令牌的请求。如果主节点也不再访问文件的时候,会释放文件的整体锁令牌。
集群节点写入同一个文件数据导致对索引节点和间接寻址块的同步更新。第一个访问文件的集群节点会被锁管理模块分配文件的整体锁令牌,指派为文件的主节点,只有主节点能够对磁盘上的索引节点进行读写。当一个集群节点的整体锁令牌被锁令牌管理模块撤销时,该集群节点会把它对文件用户数据以及元数据更新的内存副本更新至磁盘。
对于间接寻址块的同步也采用类似的方式。在写入一个文件的时候,每个集群节点都会被分配一个独立的磁盘空间来写入数据块。字节锁令牌来保证只有一个节点会被分配对于某个特定数据块的空间。新的数据块地址会被发到主节点,再由主节点来更新间接寻址块,该方法保证多个节点对于同一文件的同步写入不会造成对文件系统的元数据更新的锁冲突。一个文件的主节点是由令牌锁管理模块动态选择的,主节点不再访问文件的时候会释放文件的整体锁令牌,或者当它连续收到从节点请求文件整体锁令牌时,它会更新本地的文件内存副本到共享存储设备,完成后再交出文件的整体锁令牌。因此,一个文件的主节点令牌会在访问文件的节点间不断传递,这样保证了每个持有文件字节锁令牌的节点能对文件进行同步更新。
图7是本发明实施例的多个集群节点同步访问更新的处理流程图,如图7所示,主节点更新同步该文件的元数据以及用户数据,此时,如果有其他集群节点申请同步,需要向主节点申请整体锁令牌,主节点的锁令牌模块动态选择一个新的主节点,新的主节点更新同步该文件的元数据以及用户数据。
从上述处理看出,本发明实施例的集群文件系统使用字节锁来同步对文件数据的访问操作,获取字节锁令牌访问文件,对文件进行读写操作,访问完成后释放令牌,使用字节锁来控制同步访问,此外,本发明实施例降低了锁申请与释放的过程中可能的阻塞,在对集群节点提供同步互斥访问的同时,也提高文件系统的访问效率。
装置实施例
根据本发明的实施例,提供了一种集群节点,图8是本发明实施例的集群节点的结构示意图,如图8所示,根据本发明实施例的集群节点包括:创建模块80、挂载模块81、锁令牌管理模块82、读写模块83、以及更新模块84,以下对本发明实施例的各个模块进行详细的说明。
具体地,创建模块80用于在共享存储设备中创建集群文件系统;具体地,创建模块80在加载集群文件系统时,需要向磁盘共享设备(上述共享存储设备)写入集群文件系统的元数据,完成集群文件系统的格式化。
挂载模块81用于挂载集群文件系统;
在挂载模块81挂接集群文件系统时,需要加载分配图管理模块,分配图管理模块主要管理集群文件系统的逻辑数据块分配状态,在对文件进行写操作的时候,需要该模块来控制数据块的状态,以便对于文件系统数据块的使用有一个整体的掌握。
具体地,分配图管理模块用于将挂载建集群文件系统的集群节点设置为分配图管理节点,并将集群文件系统的分配图划分为多个锁区域,在集群节点使用完当前锁区域中的磁盘空间的情况下,为集群节点分配新的锁区域中空闲的磁盘空间。需要说明的是,一个集群文件系统只能有一个分配图管理节点,其它集群节点对文件中空闲数据块的申请都要由分配图管理节点来处理。
分配图管理节点主要负责维护集群文件系统所有分配区的状态表。如图3所示,分配图管理模块将集群文件系统的分配图划分为若干部分,每一部分包含一组独立的锁区域,锁区域有一个对应的锁来标识该锁区域是否被被占用,每个锁区域又包含该区域内的磁盘块(上述数据块)的分配状态,即锁区域状态表。需要说明的是,锁区域的数量是由集群节点的数量在集群文件系统创建的时候决定的,它能够最大程度的减少锁冲突。在分配图管理模块分配了分配图的管理节点后,该分配图的管理节点等待其他节点申请磁盘空间的请求。
集群节点持有的文件锁区域的空间是有限的,在锁区域的数据块都被分配了以后,需要给它分配新的空闲锁区域,如图6所示,持有字节锁的集群节点对文件的局部锁区域持续写入会造成锁区域的越界,在锁区域的数据块被写满的情况下,集群节点需要向分配图管理节点请求分配新的空闲锁区域。分配图管理节点接收到节点的请求,查询文件系统的分配图的状态表,将空闲的锁区域和区域锁分配给发送请求的集群节点,并将该锁区域进行标记,便于下次查询分配图的状态表时能够正确获取该锁区域的状态。集群节点接收到分配图管理节点返回的信息,继续对新分配的锁区域进行写操作,如果写操作再次越界,重复执行上述操作。
在加载分配图管理模块后,还需要加载锁令牌管理模块82,集群节点对文件锁令牌的处理都由该模块来实现。锁令牌管理模块82主要负责控制集群节点对文件的访问的权限,其中,锁令牌分为整体锁令牌和字节(局部)锁令牌,只有在集群节点持有锁令牌的时候才能对文件的特定区域进行访问,锁令牌模块同样保证写操作的原子性,使集群文件系统更加有效的支持各种文件操作,对于文件的访问权限需要根据文件的工作量来分配不同权限特性。
具体地,锁令牌管理模块82用于设置集群文件系统中某一文件的主节点,并向主节点分配整体锁令牌和全部的字节锁令牌,在集群系统中的其他集群节点对文件发起访问的情况下,根据其他集群节点的请求将全部的字节锁令牌中相应的字节锁令牌分配给所述其他集群节点,将所述其他集群节点设置为从节点,并根据从节点的请求,将整体锁令牌传递给从节点,以使从节点对其修改的文件相应内容进行更新;
需要说明的是,主节点和从节点只是针对某一个特定文件而言的,一个文件只有一个主节点,可以有多个从节点或没有从节点。在对文件的访问过程中,锁令牌管理模块82会将文件的整体锁令牌在访问文件的集群节点间进行传递,以便所有访问文件的集群节点都能把自己对文件写入的缓冲内容更新到共享磁盘设备。
优选地,锁令牌管理模块82具体包括:
接收模块,用于接收集群系统中的其他集群节点发送的文件访问请求,并根据文件访问请求从全部的字节锁令牌中撤销相应的字节锁令牌;
分配模块,用于将撤销的相应的字节锁令牌分配给发送文件访问请求的集群节点,并将该集群节点设置为从节点;
传递模块,用于在更新完成后,根据从节点发送的申请整体锁令牌请求,将整体锁令牌传递给从节点,并将从节点设置为当前的主节点。
此外,锁令牌管理模块82还用于在集群节点不再访问文件的情况下,释放文件的整体锁令牌或文件相应的字节锁令牌。锁令牌管理模块82的具体操作可以参照方法实施例的相应部分和图2-图5进行理解,在此不再赘述。
读写模块83用于根据字节锁令牌对文件的相应内容进行读写操作;
更新模块84用于根据持有的整体锁令牌对其修改的文件相应内容进行更新,随后调用锁令牌管理模块82,锁令牌管理模块82根据所述从节点的请求,将整体锁令牌传递给所述从节点,以使从节点对其修改的文件相应内容进行更新。
此外,根据本发明实施例的集群节点还包括:
同步模块,用于在对文件的相应内容进行更新后,将更新的相应内容在所有集群节点之间进行同步,其中,文件相应内容包括用户数据和元数据。
具体地,首先,文件的从节点发送要更新文件的请求给文件的主节点。文件的主节点的更新模块84将自己锁令牌范围内的文件内存副本更新到共享存储,更新完成后,交出文件的整体锁令牌,并调用锁令牌管理模块82将一个其它持有文件字节锁令牌的从节点设置为该文件的主节点。新的主节点的更新模块84又将自己锁令牌范围内的文件内存副本更新到共享存储,并等待其它集群节点申请文件整体锁令牌的请求。如果主节点也不再访问文件的时候,会释放文件的整体锁令牌。
集群节点写入同一个文件数据导致对索引节点和间接寻址块的同步更新。第一个访问文件的集群节点会被锁管理模块分配文件的整体锁令牌,指派为文件的主节点,只有主节点能够对磁盘上的索引节点进行读写。当一个集群节点的整体锁令牌被锁令牌管理模块撤销时,该集群节点会把它对文件用户数据以及元数据更新的内存副本更新至磁盘。
对于间接寻址块的同步也采用类似的方式。在写入一个文件的时候,每个集群节点都会被分配一个独立的磁盘空间来写入数据块。字节锁令牌来保证只有一个节点会被分配对于某个特定数据块的空间。新的数据块地址会被发到主节点,再由主节点来更新间接寻址块,该方法保证多个节点对于同一文件的同步写入不会造成对文件系统的元数据更新的锁冲突。一个文件的主节点是由令牌锁管理模块动态选择的,主节点不再访问文件的时候会释放文件的整体锁令牌,或者当它连续收到从节点请求文件整体锁令牌时,它会更新本地的文件内存副本到共享存储设备,完成后再交出文件的整体锁令牌。因此,一个文件的主节点令牌会在访问文件的节点间不断传递,这样保证了每个持有文件字节锁令牌的节点能对文件进行同步更新。
从上述处理可以看出,本发明实施例的集群文件系统中的锁令牌管理模块82处理文件锁令牌的分配与释放,一个集群节点只有持有锁令牌的时候,才能对文件的特定区域进行更新,锁令牌管理模块82是本集群文件系统同步互斥访问控制技术实现的关键。
综上所述,本发明实施例通过向第一个访问该文件的集群节点分配整体锁令牌,并由该集群节点向其他集群节点分配字节锁令牌对文件进行同步访问,解决了现有技术中其他集群节点不能够与文件的主节点对文件进行同步访问的问题,能够保护集群文件系统的用户数据和元数据在被多个集群节点的访问的同时而不会遭到破坏,维护数据的完整性以及用户数据和元数据的一致性,同时也提高了文件系统的访问效率。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。

Claims (10)

1.一种集群文件系统访问控制方法,其特征在于,包括:
在共享存储设备中创建集群文件系统,将所述集群文件系统挂载在集群系统中的一个集群节点上,将首次访问所述集群文件系统中某一文件的集群节点设置为所述文件的主节点,并向所述主节点分配整体锁令牌和全部的字节锁令牌;
在所述集群系统中的其他集群节点对所述文件发起访问的情况下,所述主节点根据所述其他集群节点的请求将所述全部的字节锁令牌中相应的字节锁令牌分配给所述其他集群节点,并将所述其他集群节点设置为从节点;
所述主节点或所述从节点根据所述字节锁令牌对所述文件的相应内容进行读/写操作,所述主节点根据持有的所述整体锁令牌对其修改的文件相应内容进行更新,并根据所述从节点的请求,将所述整体锁令牌传递给所述从节点,以使所述从节点对其修改的文件相应内容进行更新。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
将挂载所述建集群文件系统的集群节点设置为分配图管理节点;
所述分配图管理节点将所述集群文件系统的分配图划分为多个锁区域;
在所述主节点和/或所述从节点使用完当前锁区域中的磁盘空间的情况下,所述分配图管理节点向所述主节点和/或所述从节点分配新的锁区域中空闲的磁盘空间;
将与该磁盘空间相对应的区域锁分配给所述主节点和/或所述从节点。
3.如权利要求1所述的方法,其特征在于,所述主节点根据所述其他集群节点的请求将所述全部的字节锁令牌中相应的字节锁令牌分配给所述其他集群节点,并将所述其他集群节设置为从节点具体包括:
所述主节点接收所述集群系统中的其他集群节点发送的文件访问请求,并根据所述文件访问请求从所述全部的字节锁令牌中撤销相应的字节锁令牌;
所述主节点将撤销的相应的字节锁令牌分配给发送所述文件访问请求的集群节点,并将该集群节点设置为从节点。
4.如权利要求1所述的方法,其特征在于,所述主节点根据持有的所述整体锁令牌对其修改的文件相应内容进行更新,并根据所述从节点的请求,将所述整体锁令牌传递给所述从节点,以使所述从节点对其修改的文件相应内容进行更新具体包括:
所述从节点向所述主节点发送申请整体锁令牌请求;
所述主节点将自身字节锁令牌范围内的文件内存副本更新到共享存储设备,在更新完成后,根据所述申请整体锁令牌请求,将所述整体锁令牌传递给所述从节点,并将所述从节点设置为当前的主节点;
所述当前的主节点将自身字节锁令牌范围内的文件内存副本更新到所述共享存储设备,并等待其他从节点发送所述申请整体锁令牌请求。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
在对修改的文件相应内容进行更新后,将更新的相应内容在所有集群节点之间进行同步,其中,所述文件相应内容包括用户数据和元数据。
6.一种集群节点,其特征在于,包括:
创建模块,用于在共享存储设备中创建集群文件系统;
挂载模块,用于挂载所述集群文件系统;
锁令牌管理模块,用于设置所述集群文件系统中某一文件的主节点,并向所述主节点分配整体锁令牌和全部的字节锁令牌,在所述集群系统中的其他集群节点对所述文件发起访问的情况下,根据所述其他集群节点的请求将所述全部的字节锁令牌中相应的字节锁令牌分配给所述其他集群节点,将所述其他集群节点设置为从节点,并根据所述从节点的请求,将所述整体锁令牌传递给所述从节点,以使所述从节点对其修改的文件相应内容进行更新;
读写模块,用于根据所述字节锁令牌对所述文件的相应内容进行读/写操作;
更新模块,用于根据持有的所述整体锁令牌对其修改的文件相应内容进行更新。
7.如权利要求6所述的集群节点,其特征在于,所述集群节点还包括:
分配图管理模块,用于将挂载所述建集群文件系统的集群节点设置为分配图管理节点,并将所述集群文件系统的分配图划分为多个锁区域,在所述集群节点使用完当前锁区域中的磁盘空间的情况下,为所述集群节点分配新的锁区域中空闲的磁盘空间。
8.如权利要求6所述的集群节点,其特征在于,所述锁令牌管理模块具体包括:
接收模块,用于接收所述集群系统中的其他集群节点发送的文件访问请求,并根据所述文件访问请求从所述全部的字节锁令牌中撤销相应的字节锁令牌;
分配模块,用于将撤销的相应的字节锁令牌分配给发送所述文件访问请求的集群节点,并将该集群节点设置为从节点;
传递模块,用于在更新完成后,根据所述从节点发送的申请整体锁令牌请求,将所述整体锁令牌传递给所述从节点,并将所述从节点设置为当前的主节点。
9.如权利要求6所述的集群节点,其特征在于,所述锁令牌管理模块还用于:在所述集群节点不再访问所述文件的情况下,释放所述文件的所述整体锁令牌或所述文件相应的字节锁令牌。
10.如权利要求6所述的集群节点,其特征在于,所述集群节点还包括:
同步模块,用于在对所述文件的相应内容进行更新后,将更新的相应内容在所有集群节点之间进行同步,其中,所述文件相应内容包括用户数据和元数据。
CN2010102311384A 2010-07-20 2010-07-20 集群文件系统访问控制方法及集群节点 Pending CN102339283A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102311384A CN102339283A (zh) 2010-07-20 2010-07-20 集群文件系统访问控制方法及集群节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102311384A CN102339283A (zh) 2010-07-20 2010-07-20 集群文件系统访问控制方法及集群节点

Publications (1)

Publication Number Publication Date
CN102339283A true CN102339283A (zh) 2012-02-01

Family

ID=45515020

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102311384A Pending CN102339283A (zh) 2010-07-20 2010-07-20 集群文件系统访问控制方法及集群节点

Country Status (1)

Country Link
CN (1) CN102339283A (zh)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102750342A (zh) * 2012-06-07 2012-10-24 浪潮电子信息产业股份有限公司 一种集群文件系统数据一致性的方法
CN102904752A (zh) * 2012-09-25 2013-01-30 新浪网技术(中国)有限公司 一种节点选举方法、节点设备及系统
CN102999571A (zh) * 2012-11-09 2013-03-27 深圳市宜搜科技发展有限公司 一种集群中单机多节点的实现方法
CN103744697A (zh) * 2013-12-26 2014-04-23 乐视网信息技术(北京)股份有限公司 一种系统文件配置方法及装置
CN104035944A (zh) * 2013-03-08 2014-09-10 中兴通讯股份有限公司 文件系统的属性同步控制方法、装置和系统
CN104243554A (zh) * 2014-08-20 2014-12-24 南京南瑞继保工程技术有限公司 一种集群系统中的时序库主备机内存同步方法
CN104391654A (zh) * 2014-11-06 2015-03-04 浪潮(北京)电子信息产业有限公司 一种共享磁盘管理方法及系统
CN105893137A (zh) * 2014-10-21 2016-08-24 伊姆西公司 用于为对象分配锁资源的方法和装置
CN106294842A (zh) * 2016-08-19 2017-01-04 浪潮(北京)电子信息产业有限公司 一种数据交互方法、平台及分布式文件系统
CN106537364A (zh) * 2014-07-29 2017-03-22 慧与发展有限责任合伙企业 存储事务
CN106776798A (zh) * 2016-11-23 2017-05-31 深圳市中博睿存科技有限公司 一种集群文件系统基于客户端的可传播缓存方法
CN106815298A (zh) * 2016-12-09 2017-06-09 中电科华云信息技术有限公司 基于块存储的分布式共享文件系统
CN107391640A (zh) * 2017-07-11 2017-11-24 郑州云海信息技术有限公司 一种实现SQL Server数据库镜像模式自动部署的方法
CN107529696A (zh) * 2017-05-11 2018-01-02 新华三云计算技术有限公司 一种存储资源访问控制方法及装置
CN109101401A (zh) * 2018-08-21 2018-12-28 郑州云海信息技术有限公司 一种分布式存储系统字节锁特性测试方法和装置
CN109213739A (zh) * 2017-06-29 2019-01-15 上海共联通信信息发展有限公司 一种共享文件的信息处理方法
CN109344135A (zh) * 2018-10-18 2019-02-15 中国海洋石油集团有限公司 一种自动负载均衡的文件锁并行地震处理作业调度方法
CN110708187A (zh) * 2019-09-11 2020-01-17 上海爱数信息技术股份有限公司 一种支持集群的磁带库管理装置及方法
CN110851445A (zh) * 2019-11-07 2020-02-28 浪潮云信息技术有限公司 一种基于区块链技术的安全存储数据的方法
WO2020063373A1 (zh) * 2018-09-29 2020-04-02 华为技术有限公司 一种数据存储方法、元数据服务器及客户端
CN111147496A (zh) * 2019-12-27 2020-05-12 北京奇艺世纪科技有限公司 数据处理方法及装置
CN112256443A (zh) * 2020-10-14 2021-01-22 杭州当虹科技股份有限公司 一种基于redis的动态集群锁系统
CN112685137A (zh) * 2021-01-07 2021-04-20 广州市品高软件股份有限公司 一种云计算虚拟机块存储熔断保护方法
CN112839099A (zh) * 2021-01-29 2021-05-25 苏州浪潮智能科技有限公司 一种分布式字节锁检测控制的方法和设备
CN113347250A (zh) * 2021-05-31 2021-09-03 中国工商银行股份有限公司 数据访问方法、数据访问装置、电子设备及可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020161869A1 (en) * 2001-04-30 2002-10-31 International Business Machines Corporation Cluster resource action in clustered computer system incorporating prepare operation
CN1874267A (zh) * 2006-03-21 2006-12-06 华为技术有限公司 保证集群系统中配置信息一致的方法
CN1945539A (zh) * 2006-10-19 2007-04-11 华为技术有限公司 计算机集群系统中共享资源锁分配方法与计算机及集群系统
CN101252603A (zh) * 2008-04-11 2008-08-27 清华大学 基于存储区域网络san的集群分布式锁管理方法
WO2009103221A1 (zh) * 2008-02-22 2009-08-27 中国科学院软件研究所 一种高效的关联主体模型数据处理方法及其系统
CN101689129A (zh) * 2007-07-10 2010-03-31 国际商业机器公司 在群集文件系统中的文件系统安装
CN101764951A (zh) * 2008-11-14 2010-06-30 新奥特(北京)视频技术有限公司 一种基于虚拟锁机制的多人协同字幕编辑方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020161869A1 (en) * 2001-04-30 2002-10-31 International Business Machines Corporation Cluster resource action in clustered computer system incorporating prepare operation
CN1874267A (zh) * 2006-03-21 2006-12-06 华为技术有限公司 保证集群系统中配置信息一致的方法
CN1945539A (zh) * 2006-10-19 2007-04-11 华为技术有限公司 计算机集群系统中共享资源锁分配方法与计算机及集群系统
CN101689129A (zh) * 2007-07-10 2010-03-31 国际商业机器公司 在群集文件系统中的文件系统安装
WO2009103221A1 (zh) * 2008-02-22 2009-08-27 中国科学院软件研究所 一种高效的关联主体模型数据处理方法及其系统
CN101252603A (zh) * 2008-04-11 2008-08-27 清华大学 基于存储区域网络san的集群分布式锁管理方法
CN101764951A (zh) * 2008-11-14 2010-06-30 新奥特(北京)视频技术有限公司 一种基于虚拟锁机制的多人协同字幕编辑方法

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102750342A (zh) * 2012-06-07 2012-10-24 浪潮电子信息产业股份有限公司 一种集群文件系统数据一致性的方法
CN102750342B (zh) * 2012-06-07 2016-09-07 浪潮电子信息产业股份有限公司 一种集群文件系统数据一致性的方法
CN102904752A (zh) * 2012-09-25 2013-01-30 新浪网技术(中国)有限公司 一种节点选举方法、节点设备及系统
CN102904752B (zh) * 2012-09-25 2016-06-29 新浪网技术(中国)有限公司 一种节点选举方法、节点设备及系统
CN102999571B (zh) * 2012-11-09 2015-09-30 深圳市宜搜科技发展有限公司 一种集群中单机多节点的实现方法
CN102999571A (zh) * 2012-11-09 2013-03-27 深圳市宜搜科技发展有限公司 一种集群中单机多节点的实现方法
CN104035944A (zh) * 2013-03-08 2014-09-10 中兴通讯股份有限公司 文件系统的属性同步控制方法、装置和系统
WO2014134905A1 (zh) * 2013-03-08 2014-09-12 中兴通讯股份有限公司 文件系统的属性同步控制方法、装置和系统
CN104035944B (zh) * 2013-03-08 2018-11-09 南京中兴新软件有限责任公司 文件系统的属性同步控制方法、装置和系统
CN103744697A (zh) * 2013-12-26 2014-04-23 乐视网信息技术(北京)股份有限公司 一种系统文件配置方法及装置
CN106537364A (zh) * 2014-07-29 2017-03-22 慧与发展有限责任合伙企业 存储事务
CN104243554A (zh) * 2014-08-20 2014-12-24 南京南瑞继保工程技术有限公司 一种集群系统中的时序库主备机内存同步方法
CN104243554B (zh) * 2014-08-20 2017-10-20 南京南瑞继保工程技术有限公司 一种集群系统中的时序库主备机内存同步方法
CN105893137A (zh) * 2014-10-21 2016-08-24 伊姆西公司 用于为对象分配锁资源的方法和装置
CN105893137B (zh) * 2014-10-21 2019-11-08 伊姆西公司 用于为对象分配锁资源的方法和装置
CN104391654A (zh) * 2014-11-06 2015-03-04 浪潮(北京)电子信息产业有限公司 一种共享磁盘管理方法及系统
CN106294842A (zh) * 2016-08-19 2017-01-04 浪潮(北京)电子信息产业有限公司 一种数据交互方法、平台及分布式文件系统
CN106776798A (zh) * 2016-11-23 2017-05-31 深圳市中博睿存科技有限公司 一种集群文件系统基于客户端的可传播缓存方法
CN106815298A (zh) * 2016-12-09 2017-06-09 中电科华云信息技术有限公司 基于块存储的分布式共享文件系统
CN107529696A (zh) * 2017-05-11 2018-01-02 新华三云计算技术有限公司 一种存储资源访问控制方法及装置
CN109213739A (zh) * 2017-06-29 2019-01-15 上海共联通信信息发展有限公司 一种共享文件的信息处理方法
CN107391640A (zh) * 2017-07-11 2017-11-24 郑州云海信息技术有限公司 一种实现SQL Server数据库镜像模式自动部署的方法
CN107391640B (zh) * 2017-07-11 2020-12-08 浪潮云信息技术股份公司 一种实现SQL Server数据库镜像模式自动部署的方法
CN109101401A (zh) * 2018-08-21 2018-12-28 郑州云海信息技术有限公司 一种分布式存储系统字节锁特性测试方法和装置
WO2020063373A1 (zh) * 2018-09-29 2020-04-02 华为技术有限公司 一种数据存储方法、元数据服务器及客户端
CN109344135A (zh) * 2018-10-18 2019-02-15 中国海洋石油集团有限公司 一种自动负载均衡的文件锁并行地震处理作业调度方法
CN110708187A (zh) * 2019-09-11 2020-01-17 上海爱数信息技术股份有限公司 一种支持集群的磁带库管理装置及方法
CN110851445A (zh) * 2019-11-07 2020-02-28 浪潮云信息技术有限公司 一种基于区块链技术的安全存储数据的方法
CN110851445B (zh) * 2019-11-07 2022-05-03 浪潮云信息技术股份公司 一种基于区块链技术的安全存储数据的方法
CN111147496A (zh) * 2019-12-27 2020-05-12 北京奇艺世纪科技有限公司 数据处理方法及装置
CN112256443A (zh) * 2020-10-14 2021-01-22 杭州当虹科技股份有限公司 一种基于redis的动态集群锁系统
CN112256443B (zh) * 2020-10-14 2024-02-06 杭州当虹科技股份有限公司 一种基于redis的动态集群锁系统
CN112685137A (zh) * 2021-01-07 2021-04-20 广州市品高软件股份有限公司 一种云计算虚拟机块存储熔断保护方法
CN112839099A (zh) * 2021-01-29 2021-05-25 苏州浪潮智能科技有限公司 一种分布式字节锁检测控制的方法和设备
CN112839099B (zh) * 2021-01-29 2022-05-13 苏州浪潮智能科技有限公司 一种分布式字节锁检测控制的方法和设备
CN113347250A (zh) * 2021-05-31 2021-09-03 中国工商银行股份有限公司 数据访问方法、数据访问装置、电子设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN102339283A (zh) 集群文件系统访问控制方法及集群节点
US11068395B2 (en) Cached volumes at storage gateways
CN101382953B (zh) 在用户空间访问文件系统的接口系统与文件读、写方法
CN102063406B (zh) 用于多核处理器的网络共享Cache及其目录控制方法
US6339793B1 (en) Read/write data sharing of DASD data, including byte file system data, in a cluster of multiple data processing systems
US8185716B2 (en) Memory system and method for using a memory system with virtual address translation capabilities
US9274956B1 (en) Intelligent cache eviction at storage gateways
US9268651B1 (en) Efficient recovery of storage gateway cached volumes
CN100590609C (zh) 一种基于非连续页的动态内存管理方法
US9559889B1 (en) Cache population optimization for storage gateways
US10747673B2 (en) System and method for facilitating cluster-level cache and memory space
US6675175B2 (en) Method and system for sharing catalogs in a multiprocessing system utilizing a shared processor
CN110221779B (zh) 分布式持久性内存存储系统的构建方法
CN101419535A (zh) 虚拟机的分布式虚拟磁盘系统
KR20160022226A (ko) 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법
US20080209148A1 (en) High performance storage access environment
JPH0962558A (ja) データベース管理システム及び方法
CN102779132A (zh) 数据更新方法、系统及数据库服务器
CN102117287A (zh) 分布式文件系统访问方法、元数据服务器及客户端
CN114490141A (zh) 一种基于共享内存的高并发ipc数据交互方法
US6732137B1 (en) Performance optimization for data sharing across batch sequential processes and on-line transaction processes
US6651157B1 (en) Multi-processor system and method of accessing data therein
JP2004054845A (ja) データ管理装置
CN114265814B (zh) 一种基于对象存储的数据湖文件系统
US20050154840A1 (en) Cache line ownership transfer in multi-processor computer systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120201