CN113467960B - 基于共享锁的多路径存储方法、系统、终端及存储介质 - Google Patents
基于共享锁的多路径存储方法、系统、终端及存储介质 Download PDFInfo
- Publication number
- CN113467960B CN113467960B CN202110591750.0A CN202110591750A CN113467960B CN 113467960 B CN113467960 B CN 113467960B CN 202110591750 A CN202110591750 A CN 202110591750A CN 113467960 B CN113467960 B CN 113467960B
- Authority
- CN
- China
- Prior art keywords
- client
- holding
- clients
- application
- application client
- 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 52
- 238000013507 mapping Methods 0.000 claims abstract description 35
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于共享锁的多路径存储方法、系统、终端及存储介质,包括:将多个客户端分为多个访问组;接收申请客户端发送的抢锁请求,判断所述申请客户端与卷排它锁的持有客户端是否同组:若是,则向所述申请客户端发送持有所述卷的排它锁的提示,并授予所述申请客户端对所述卷的写权限;若否,则向所述申请客户端发送申请未通过的提示。本发明降低了抢占排它锁的客户端数量,避免了多个客户端不断发生排它锁持有申请,大大减少抢锁带来的资源消耗,成倍提升卷的IO性能,并且不影响基于排它锁的对象映射特性。
Description
技术领域
本发明涉及存储技术领域,具体涉及一种基于共享锁的多路径存储方法、系统、终端及存储介质。
背景技术
应用主机若要获取存储资源,一般是利用iSCSI(Internet Small ComputerSystem Interface基于互联网的小型计算机系统接口)或者FC网络(Fibre Channel网状通道技术),连接存储服务器集群,将远端的卷映射为本地设备,令远端的卷为应用主机提供裸盘设备。受限于网络连接带宽或者存储服务器单节点IO处理能力,应用主机通过单路径连接存储服务器单节点时,存储服务器集群的性能难以全部发挥,即应用主机访问远端卷的IO性能差。
为提升应用主机访问远端卷IO性能,简单的思路是通过多路径链路聚合方式连接存储集群,即同时连接存储服务器集群的多个节点,多个存储服务器节点同时访问卷,实现IO在多条路径上并发,成倍提升卷的IO性能。
存储集群节点访问卷时,为了防止多个客户端同时写同一个卷引起数据冲突,客户端在对卷进行写操作前需要获取到卷的排它锁,即同一时刻只能有一个客户端对卷进行写操作。并且当多个客户端同时写卷时,相互抢锁会带来严重的资源消耗,进一步降低了卷的输入输出性能。
本发明旨在提供一种利用共享锁提升存储多路径性能的方法,不影响基于排它锁的Object Map特性的前提下,多个客户端共享排它锁,并发访问同一个卷,成倍提升卷的输入输出性能。
发明内容
针对现有技术的上述不足,本发明提供一种基于共享锁的多路径存储方法、系统、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种基于共享锁的多路径存储方法,包括:
将多个客户端分为多个访问组;
接收申请客户端发送的抢锁请求,判断所述申请客户端与卷排它锁的持有客户端是否同组:
若是,则向所述申请客户端发送持有所述卷的排它锁的提示,并授予所述申请客户端对所述卷的写权限;
若否,则向所述申请客户端发送申请未通过的提示。
进一步的,将多个客户端分为多个访问组,包括:
为每个访问组生成唯一的标识符;
将访问组的唯一标识符下发至访问组的客户端。
通过生成访问组唯一标识符并将标识符分配至组内客户端,能够实现访问组成员辨别,辨别过程简单,大大提升了客户端申请的处理效率。
进一步的,判断所述申请客户端与卷排它锁的持有客户端是否同组,包括:
获取持有客户端的标识符和申请客户端的标识符,并比对两者是否一致:
若是,则判定持有客户端与申请客户端同组;
若否,则判定持有客户端与申请客户端不同组。
进一步的,所述方法还包括:
在排它锁的多个持有客户端完成写操作之后,刷新各持有客户端的对象映射表至存储集群;
对各持有客户端的对象映射表进行汇总,得到统一对象映射表,所述统一对象映射表加载至各访问客户端。
第二方面,本发明提供一种基于共享锁的多路径存储系统,包括:
分组执行单元,用于将多个客户端分为多个访问组;
同组判断单元,用于接收申请客户端发送的抢锁请求,判断所述申请客户端与卷排它锁的持有客户端是否同组;
共享执行单元,用于若所述申请客户端与卷排它锁的持有客户端同组,则向所述申请客户端发送持有所述卷的排它锁的提示,并授予所述申请客户端对所述卷的写权限;
申请驳回单元,用于若所述申请客户端与卷排它锁的持有客户端不同组,则向所述申请客户端发送申请未通过的提示。
进一步的,所述分组执行单元包括:
标识生成模块,用于为每个访问组生成唯一的标识符;
标识下发模块,用于将访问组的唯一标识符下发至访问组的客户端。
进一步的,所述同组判断单元包括:
标识比对模块,用于获取持有客户端的标识符和申请客户端的标识符,并比对两者是否一致;
同组判定模块,用于若持有客户端的标识符和申请客户端的标识符一致,则判定持有客户端与申请客户端同组;
否定判定模块,用于若持有客户端的标识符和申请客户端的标识符不一致,则判定持有客户端与申请客户端不同组。
进一步的,所述系统还包括:
数据刷新单元,用于在排它锁的多个持有客户端完成写操作之后,刷新各持有客户端的对象映射表至存储集群;
数据汇总单元,用于对各持有客户端的对象映射表进行汇总,得到统一对象映射表,所述统一对象映射表加载至各访问客户端。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,
本发明提供的基于共享锁的多路径存储方法,通过为客户端进行分组,并为客户端分配分组标识,在排它锁被某个客户端抢占持有后,通过客户端分组标识判别持有客户端的同组客户端,默认同组客户端可以与持有客户端共享排它锁,由此降低了抢占排它锁的客户端数量,避免了多个客户端不断发生排它锁持有申请,大大减少抢锁带来的资源消耗,成倍提升卷的IO性能,并且不影响基于排它锁的对象映射特性。
本发明提供的基于共享锁的多路径存储系统,通过分组执行客户端为客户端进行分组,并为客户端分配分组标识。之后同组判断单元在排它锁被某个客户端抢占持有后,通过客户端分组标识判别持有客户端的同组客户端,共享执行单元默认同组客户端可以与持有客户端共享排它锁,由此降低了抢占排它锁的客户端数量,避免了多个客户端不断发生排它锁持有申请,大大减少抢锁带来的资源消耗,成倍提升卷的IO性能,并且不影响基于排它锁的对象映射特性。
本发明提供的终端,执行基于共享锁的多路径存储方法,通过为客户端进行分组,并为客户端分配分组标识,在排它锁被某个客户端抢占持有后,通过客户端分组标识判别持有客户端的同组客户端,默认同组客户端可以与持有客户端共享排它锁,由此降低了抢占排它锁的客户端数量,避免了多个客户端不断发生排它锁持有申请,大大减少抢锁带来的资源消耗,成倍提升卷的IO性能,并且不影响基于排它锁的对象映射特性。
本发明提供的存储介质存储一种程序,该程序执行基于共享锁的多路径存储方法,通过为客户端进行分组,并为客户端分配分组标识,在排它锁被某个客户端抢占持有后,通过客户端分组标识判别持有客户端的同组客户端,默认同组客户端可以与持有客户端共享排它锁,由此降低了抢占排它锁的客户端数量,避免了多个客户端不断发生排它锁持有申请,大大减少抢锁带来的资源消耗,成倍提升卷的IO性能,并且不影响基于排它锁的对象映射特性。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的系统的示意性框图。
图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面对本发明中出现的关键术语进行解释。
iSCSI Internet Small Computer System Interface基于互联网的小型计算机系统接口;
FC Fibre Channel网状通道技术;
I/O Input/output输入输出;
Librbd library of rados block device分布式块存储链接库;
Object Map对象映射数据对象的位图指示。
图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种基于共享锁的多路径存储系统。
如图1所示,该方法包括:
步骤110,将多个客户端分为多个访问组;
步骤120,接收申请客户端发送的抢锁请求,判断所述申请客户端与卷排它锁的持有客户端是否同组:
步骤130,若是,则向所述申请客户端发送持有所述卷的排它锁的提示,并授予所述申请客户端对所述卷的写权限;
步骤140,若否,则向所述申请客户端发送申请未通过的提示。
本发明运行在Linux平台,多个客户端共享排它锁,通过多个存储节点并发访问同一个卷,大大减少抢锁带来的资源消耗,成倍提升卷的IO性能,并且不影响基于排它锁的Object Map特性。为了便于对本发明的理解,下面以本发明基于共享锁的多路径存储方法的原理,结合实施例中对存储排它锁进行共享分配的过程,对本发明提供的基于共享锁的多路径存储方法做进一步的描述。
实施例1
本实施例提供一种基于共享锁的多路径存储方法,包括:
S1、将多个客户端分为多个访问组。
为每个访问组生成唯一的标识符;将访问组的唯一标识符下发至访问组的客户端。通过生成访问组唯一标识符并将标识符分配至组内客户端,能够实现访问组成员辨别,辨别过程简单,大大提升了客户端申请的处理效率。
具体的,为存储的卷分配一组客户端,每组客户端分配唯一的key,作为申请排它锁的tag,每个客户端申请排它锁时,需要在申请请求中携带自身的key。
S2、接收申请客户端发送的抢锁请求,判断所述申请客户端与卷排它锁的持有客户端是否同组:
若是,则向所述申请客户端发送持有所述卷的排它锁的提示,并授予所述申请客户端对所述卷的写权限;
若否,则向所述申请客户端发送申请未通过的提示。
具体的,若排它锁没有被任何客户端持有,则按照默认持有规则,最先发送持有请求的客户端持有排它锁。当有客户端持有排它锁后,在接收到其他客户端的持有请求后,需要进行同组判断。
具体的同组判断方法即为预留排它锁持有客户端的key,从接收的持有请求中提取申请客户端的key,若两者一致则说明两个客户端为同组客户端,可共享排它锁,与持有客户端非同组的申请客户端不可与持有客户端共享排它锁。
其中共享排它锁即多个客户端均可对排它锁所属的卷进行写操作。
本实施例通过为客户端进行分组,并为客户端分配分组标识,在排它锁被某个客户端抢占持有后,通过客户端分组标识判别持有客户端的同组客户端,默认同组客户端可以与持有客户端共享排它锁,由此降低了抢占排它锁的客户端数量,避免了多个客户端不断发生排它锁持有申请,大大减少抢锁带来的资源消耗,成倍提升卷的IO性能,并且不影响基于排它锁的对象映射特性。
实施例2
本实施例提供一种基于共享锁的多路径存储方法,包括以下步骤:
S1、将多个客户端分为多个访问组。
根据访问组创建分组列表,在分组列表中将客户端IP进行分组存储。
S2、接收申请客户端发送的抢锁请求,判断所述申请客户端与卷排它锁的持有客户端是否同组:
若是,则向所述申请客户端发送持有所述卷的排它锁的提示,并授予所述申请客户端对所述卷的写权限;
若否,则向所述申请客户端发送申请未通过的提示。
具体的,若排它锁没有被任何客户端持有,则按照默认持有规则,最先发送持有请求的客户端持有排它锁。当有客户端持有排它锁后,在接收到其他客户端的持有请求后,需要进行同组判断。
具体的同组判断方法即为根据分组列表判断持有客户端IP与申请客户端IP是否属于同组。
其中共享排它锁即多个客户端均可对排它锁所属的卷进行写操作。
本实施例能够降低抢占排它锁的客户端数量,避免了多个客户端不断发生排它锁持有申请,大大减少抢锁带来的资源消耗,成倍提升卷的IO性能,并且不影响基于排它锁的对象映射特性。
实施例3
S1、将多个客户端分为多个访问组。
根据客户端业务类型对客户端进行分组,获取客户端之间的业务相关性,将业务相关性不大的客户端划分至同组,由此可避免客户端同时写的数据存在冲突。
为每个访问组生成唯一的标识符;将访问组的唯一标识符下发至访问组的客户端。通过生成访问组唯一标识符并将标识符分配至组内客户端,能够实现访问组成员辨别,辨别过程简单,大大提升了客户端申请的处理效率。
具体的,为存储的卷分配一组客户端,每组客户端分配唯一的key,作为申请排它锁的tag,每个客户端申请排它锁时,需要在申请请求中携带自身的key。
S2、接收申请客户端发送的抢锁请求,判断所述申请客户端与卷排它锁的持有客户端是否同组:
若是,则向所述申请客户端发送持有所述卷的排它锁的提示,并授予所述申请客户端对所述卷的写权限;
若否,则向所述申请客户端发送申请未通过的提示。
其中,判断申请客户端与卷排它锁的持有客户端是否同组,包括:获取持有客户端的标识符和申请客户端的标识符,并比对两者是否一致:若是,则判定持有客户端与申请客户端同组;若否,则判定持有客户端与申请客户端不同组。
具体的,若排它锁没有被任何客户端持有,则按照默认持有规则,最先发送持有请求的客户端持有排它锁。当有客户端持有排它锁后,在接收到其他客户端的持有请求后,需要进行同组判断。
具体的同组判断方法即为预留排它锁持有客户端的key,从接收的持有请求中提取申请客户端的key,若两者一致则说明两个客户端为同组客户端,可共享排它锁,与持有客户端非同组的申请客户端不可与持有客户端共享排它锁。
其中共享排它锁即多个客户端均可对排它锁所属的卷进行写操作。
本实施例能够降低抢占排它锁的客户端数量,避免了多个客户端不断发生排它锁持有申请,大大减少抢锁带来的资源消耗,成倍提升卷的IO性能,并且不影响基于排它锁的对象映射特性。
实施例4
S1、将多个客户端分为多个访问组。
根据客户端业务类型对客户端进行分组,获取客户端之间的业务相关性,将业务相关性不大的客户端划分至同组,由此可避免客户端同时写的数据存在冲突。
为每个访问组生成唯一的标识符;将访问组的唯一标识符下发至访问组的客户端。通过生成访问组唯一标识符并将标识符分配至组内客户端,能够实现访问组成员辨别,辨别过程简单,大大提升了客户端申请的处理效率。
具体的,为存储的卷分配一组客户端,每组客户端分配唯一的key,作为申请排它锁的tag,每个客户端申请排它锁时,需要在申请请求中携带自身的key。
S2、接收申请客户端发送的抢锁请求,判断所述申请客户端与卷排它锁的持有客户端是否同组:
若是,则向所述申请客户端发送持有所述卷的排它锁的提示,并授予所述申请客户端对所述卷的写权限;客户端接收到持有所述卷的排它锁的提示后,不再发生持有请求,并开始执行对卷的写操作。
若否,则向所述申请客户端发送申请未通过的提示。
其中,判断申请客户端与卷排它锁的持有客户端是否同组,包括:获取持有客户端的标识符和申请客户端的标识符,并比对两者是否一致:若是,则判定持有客户端与申请客户端同组;若否,则判定持有客户端与申请客户端不同组。
具体的,若排它锁没有被任何客户端持有,则按照默认持有规则,最先发送持有请求的客户端持有排它锁。当有客户端持有排它锁后,在接收到其他客户端的持有请求后,需要进行同组判断。
具体的同组判断方法即为预留排它锁持有客户端的key,从接收的持有请求中提取申请客户端的key,若两者一致则说明两个客户端为同组客户端,可共享排它锁,与持有客户端非同组的申请客户端不可与持有客户端共享排它锁。
其中共享排它锁即多个客户端均可对排它锁所属的卷进行写操作。
S3、组内客户端写数据时,由于都持有锁,直接进行数据写入操作,不再相互发起抢锁操作。客户端数据写入卷完成后,刷新数据对应的Object Map至存储集群。对各持有客户端的对象映射表进行汇总,得到统一对象映射表,所述统一对象映射表加载至各访问客户端。由于组内每个客户端只负载刷新自己写入数据的Object Map(对象映射表),各个客户端内存中的Object Map信息并不完整,其它进程使用Object Map时,需要从存储集群中加载完整的统一对象映射表。
S4、当前次排它锁被客户端持有后,只有在所有的共享客户端的写操作都完成后,排它锁的持有才能被解除。具体的,监控卷的写操作,若写操作的中断时间达到预设时间阈值,如2s,则解除排它锁的持有状态,其他客户端可申请持有。由此可以避免写操作被强行中断,导致数据丢失。
本实施例能够降低抢占排它锁的客户端数量,避免了多个客户端不断发生排它锁持有申请,大大减少抢锁带来的资源消耗,成倍提升卷的IO性能,并且不影响基于排它锁的对象映射特性。
如图2所示,该系统200包括:
分组执行单元210,用于将多个客户端分为多个访问组;
同组判断单元220,用于接收申请客户端发送的抢锁请求,判断所述申请客户端与卷排它锁的持有客户端是否同组;
共享执行单元230,用于若所述申请客户端与卷排它锁的持有客户端同组,则向所述申请客户端发送持有所述卷的排它锁的提示,并授予所述申请客户端对所述卷的写权限;
申请驳回单元240,用于若所述申请客户端与卷排它锁的持有客户端不同组,则向所述申请客户端发送申请未通过的提示。
可选地,作为本发明一个实施例,所述分组执行单元包括:
标识生成模块,用于为每个访问组生成唯一的标识符;
标识下发模块,用于将访问组的唯一标识符下发至访问组的客户端。
可选地,作为本发明一个实施例,所述同组判断单元包括:
标识比对模块,用于获取持有客户端的标识符和申请客户端的标识符,并比对两者是否一致;
同组判定模块,用于若持有客户端的标识符和申请客户端的标识符一致,则判定持有客户端与申请客户端同组;
否定判定模块,用于若持有客户端的标识符和申请客户端的标识符不一致,则判定持有客户端与申请客户端不同组。
可选地,作为本发明一个实施例,所述系统还包括:
数据刷新单元,用于在排它锁的多个持有客户端完成写操作之后,刷新各持有客户端的对象映射表至存储集群;
数据汇总单元,用于对各持有客户端的对象映射表进行汇总,得到统一对象映射表,所述统一对象映射表加载至各访问客户端。
图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的基于共享锁的多路径存储方法。
其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器310可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明通过为客户端进行分组,并为客户端分配分组标识,在排它锁被某个客户端抢占持有后,通过客户端分组标识判别持有客户端的同组客户端,默认同组客户端可以与持有客户端共享排它锁,由此降低了抢占排它锁的客户端数量,避免了多个客户端不断发生排它锁持有申请,大大减少抢锁带来的资源消耗,成倍提升卷的IO性能,并且不影响基于排它锁的对象映射特性,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种基于共享锁的多路径存储方法,其特征在于,包括:
根据业务相关性,将多个客户端分为多个访问组;
接收申请客户端发送的抢锁请求,判断所述申请客户端与卷排它锁的持有客户端是否同组:
若是,则向所述申请客户端发送持有所述卷的排它锁的提示,并授予所述申请客户端对所述卷的写权限;
若否,则向所述申请客户端发送申请未通过的提示;
所述方法还包括:
在排它锁的多个持有客户端完成写操作之后,刷新各持有客户端的对象映射表至存储集群;
对各持有客户端的对象映射表进行汇总,得到统一对象映射表,所述统一对象映射表加载至各访问客户端。
2.根据权利要求1所述的方法,其特征在于,根据业务相关性,将多个客户端分为多个访问组,包括:
为每个访问组生成唯一的标识符;
将访问组的唯一标识符下发至访问组的客户端。
3.根据权利要求2所述的方法,其特征在于,判断所述申请客户端与卷排它锁的持有客户端是否同组,包括:
获取持有客户端的标识符和申请客户端的标识符,并比对两者是否一致:
若是,则判定持有客户端与申请客户端同组;
若否,则判定持有客户端与申请客户端不同组。
4.一种基于共享锁的多路径存储系统,其特征在于,包括:
分组执行单元,用于根据业务相关性,将多个客户端分为多个访问组;
同组判断单元,用于接收申请客户端发送的抢锁请求,判断所述申请客户端与卷排它锁的持有客户端是否同组;
共享执行单元,用于若所述申请客户端与卷排它锁的持有客户端同组,则向所述申请客户端发送持有所述卷的排它锁的提示,并授予所述申请客户端对所述卷的写权限;
申请驳回单元,用于若所述申请客户端与卷排它锁的持有客户端不同组,则向所述申请客户端发送申请未通过的提示;
所述系统还包括:
数据刷新单元,用于在排它锁的多个持有客户端完成写操作之后,刷新各持有客户端的对象映射表至存储集群;
数据汇总单元,用于对各持有客户端的对象映射表进行汇总,得到统一对象映射表,所述统一对象映射表加载至各访问客户端。
5.根据权利要求4所述的系统,其特征在于,所述分组执行单元包括:
标识生成模块,用于为每个访问组生成唯一的标识符;
标识下发模块,用于将访问组的唯一标识符下发至访问组的客户端。
6.根据权利要求5所述的系统,其特征在于,所述同组判断单元包括:
标识比对模块,用于获取持有客户端的标识符和申请客户端的标识符,并比对两者是否一致;
同组判定模块,用于若持有客户端的标识符和申请客户端的标识符一致,则判定持有客户端与申请客户端同组;
否定判定模块,用于若持有客户端的标识符和申请客户端的标识符不一致,则判定持有客户端与申请客户端不同组。
7.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-3任一项所述的方法。
8.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110591750.0A CN113467960B (zh) | 2021-05-28 | 2021-05-28 | 基于共享锁的多路径存储方法、系统、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110591750.0A CN113467960B (zh) | 2021-05-28 | 2021-05-28 | 基于共享锁的多路径存储方法、系统、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113467960A CN113467960A (zh) | 2021-10-01 |
CN113467960B true CN113467960B (zh) | 2024-02-27 |
Family
ID=77871673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110591750.0A Active CN113467960B (zh) | 2021-05-28 | 2021-05-28 | 基于共享锁的多路径存储方法、系统、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113467960B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103795813A (zh) * | 2014-03-10 | 2014-05-14 | 上海亦存网络科技有限公司 | 文件锁定、解锁方法及系统 |
CN104391935A (zh) * | 2014-11-21 | 2015-03-04 | 华为技术有限公司 | 一种范围锁的实现方法及装置 |
CN106156126A (zh) * | 2015-04-08 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 处理数据任务中的数据冲突检测方法及服务器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375955A (zh) * | 2010-08-17 | 2012-03-14 | 伊姆西公司 | 网络文件系统联合命名空间内文件加锁的系统与方法 |
-
2021
- 2021-05-28 CN CN202110591750.0A patent/CN113467960B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103795813A (zh) * | 2014-03-10 | 2014-05-14 | 上海亦存网络科技有限公司 | 文件锁定、解锁方法及系统 |
CN104391935A (zh) * | 2014-11-21 | 2015-03-04 | 华为技术有限公司 | 一种范围锁的实现方法及装置 |
CN106156126A (zh) * | 2015-04-08 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 处理数据任务中的数据冲突检测方法及服务器 |
Non-Patent Citations (2)
Title |
---|
一种检测竞争并自调节的动态读写锁;张恒;陈海波;;小型微型计算机系统;20160915(第09期);全文 * |
基于客户机/服务器模式的数据共享访问;杨扬, 周兴社;西北大学学报(自然科学版);19991225(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113467960A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11218364B2 (en) | Network-accessible computing service for micro virtual machines | |
US9563426B1 (en) | Partitioned key-value store with atomic memory operations | |
US20170364697A1 (en) | Data interworking method and data interworking device | |
EP1493105B1 (en) | Key-value repository with a pluggable architecture | |
CN107196982B (zh) | 一种用户请求的处理方法和装置 | |
CN113296792B (zh) | 存储方法、装置、设备、存储介质和系统 | |
US8695079B1 (en) | Allocating shared resources | |
CN109614206A (zh) | 区块链事务处理的装置、方法及存储介质 | |
CN109213571B (zh) | 一种内存共享方法、容器管理平台及计算机可读存储介质 | |
US10282120B2 (en) | Method, apparatus and system for inserting disk | |
CN106533961B (zh) | 一种流量控制方法及装置 | |
US10360057B1 (en) | Network-accessible volume creation and leasing | |
CN112087401B (zh) | 分布式存储中实现服务质量的方法和装置 | |
CN112685148A (zh) | 海量终端的异步通信方法、装置、计算机设备和存储介质 | |
CN114185558A (zh) | 基于K8s的原生应用选主方法、装置及存储介质 | |
CN115086166A (zh) | 计算系统、容器网络配置方法及存储介质 | |
CN105592134A (zh) | 一种负载分担的方法和装置 | |
CN113051038A (zh) | 云服务多租户环境下的数据访问方法及装置 | |
CN117170820A (zh) | 集群节点的配置共享方法、系统、终端及存储介质 | |
CN113467960B (zh) | 基于共享锁的多路径存储方法、系统、终端及存储介质 | |
US10397130B2 (en) | Multi-cloud resource reservations | |
CN110019043B (zh) | 一种区块链数据存储方法 | |
CN116028290A (zh) | 一种固态硬盘测试方法、装置、设备及介质 | |
CN109376135B (zh) | 一种集群文件系统管理方法和系统 | |
US10481963B1 (en) | Load-balancing for achieving transaction fault tolerance |
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 |