CN109947704A - 一种锁类型切换方法、装置及集群文件系统 - Google Patents
一种锁类型切换方法、装置及集群文件系统 Download PDFInfo
- Publication number
- CN109947704A CN109947704A CN201711160646.6A CN201711160646A CN109947704A CN 109947704 A CN109947704 A CN 109947704A CN 201711160646 A CN201711160646 A CN 201711160646A CN 109947704 A CN109947704 A CN 109947704A
- Authority
- CN
- China
- Prior art keywords
- instruction
- host
- lock type
- target resource
- label
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种锁类型切换方法、装置及集群文件系统,用以解决锁类型切换耗时较长的问题。该方法应用于运行文件系统的主机,主机的内存保存有第一锁类型的数据结构以及第二锁类型的数据结构,该方法包括:接收管理节点的第一指示,第一指示指示主机悬挂针对目标资源的IO请求;悬挂针对目标资源的IO请求;接收管理节点在目标资源的锁类型标记由第一标记更改为第二标记后发送的第二指示,第一标记表示锁类型为第一锁类型,第二标记表示锁类型为第二锁类型,第二指示用于指示主机恢复上层应用针对目标资源的IO请求;恢复上层应用针对目标资源的IO请求;根据保存的第二锁类型的数据结构、以第二锁类型的加锁方式对目标资源加锁。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种锁类型切换方法、装置及集群文件系统。
背景技术
集群文件系统通过加锁机制保证多个主机访问文件的一致性,目前常用的加锁机制包括:(1)网络锁,主机访问文件时,向文件的网络锁拥有者(master)请求对文件加锁,在获得文件的锁权限后访问该文件。(2)磁盘锁,与网络锁不同,文件的加锁信息保存在创建文件系统的存储设备中,主机访问文件时,在存储设备中写入对文件的加锁信息,在成功写入加锁信息后访问该文件。采用不同的锁类型对文件进行加锁,文件的访问性能可以不同,因此,根据文件系统的使用场景的变化切换文件的锁类型。
现有技术中,锁类型的切换过程为:在创建文件系统的存储设备中写入表征要切换的目标锁类型的全局标记位,然后集群文件系统中的所有主机暂停访问文件系统,并卸载文件系统,然后,重新挂载文件系统,并在挂载文件系统时,主机初始化目标锁类型的数据结构,进而能够根据目标锁类型的数据结构,按照目标锁类型的流程对文件加锁。
但是,上述锁类型切换方式存在耗时较长的问题。
发明内容
本申请提供一种锁类型切换方法、装置及集群文件系统,用以解决现有技术中存在锁类型切换耗时较长的问题。
第一方面,本申请提供一种锁类型切换方法,应用于运行文件系统的主机,所述主机的内存保存有第一锁类型的数据结构以及第二锁类型的数据结构,所述方法包括:接收管理节点发送的第一指示,该第一指示用于指示主机悬挂上层应用针对目标资源的IO请求;响应所述第一指示,悬挂上层应用针对所述目标资源的IO请求,向所述管理节点发送表示第一指示响应成功的第一响应消息;接收所述管理节点发送的第二指示,所述第二指示由所述管理节点在所述目标资源的锁类型标记由第一标记更改为第二标记后发送,所述第一标记表示所述目标资源的锁类型为第一锁类型,所述第二标记表示所述目标资源的锁类型为第二锁类型,所述第二指示用于指示所述主机恢复上层应用针对所述目标资源的IO请求;响应所述第二指示,恢复针对所述目标资源的IO请求。主机在访问所述目标资源时,根据保存的所述第二锁类型的数据结构、以所述第二锁类型的加锁方式对所述目标资源加锁。上述技术方案中由于锁类型切换过程无需主机先卸载文件系统(即卸载创建文件系统的存储设备)再重新挂载文件系统,所以可以显著减少锁类型切换的耗时。
在第一方面的一些实现方式中,主机在向所述管理节点发送响应消息之后以及接收所述第二指示之前,接收所述管理节点发送的第三指示,所述第三指示用于指示所述主机将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记;响应所述第三指示,将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记,向所述管理节点发送表示所述第三指示响应成功的第二响应消息。虽然主机悬挂上层应用针对目标资源的IO请求,但主机自身仍然能够访问创建文件系统的存储设备,能够更改存储设备中的锁类型标记,实现锁类型的切换。上述切换锁类型的方式实现方式简单、高效。
在第一方面的一些实现方式中,所述目标资源为所述文件系统时,主机将所述文件系统的超级块中的所述第一标记更改为所述第二标记。上述技术方案中,文件系统中的文件和目录可以采用相同的锁类型,管理节点可以在运行文件系统的主机不卸载文件系统(或创建文件系统的存储设备)的情况下指示第一主机更改文件系统的锁类型标记,由于主机保存有要更改后锁类型标记指示的锁类型的数据结构,因此,主机可以根据切换后的锁类型规定的流程对文件系统中的文件和目录加锁,进而访问文件和目录。由于无需进行存储设备的卸载以及重新挂载,可以减少锁类型切换过程的耗时。
在第一方面的一些实现方式中,在所述目标资源为所述文件系统的超级块或目标文件时,主机将所述超级块或所述目标文件的元数据中的所述第一标记更改为所述第二标记。上述技术方案中,管理节点可以在主机不卸载文件系统以及不改变该文件系统中其它文件或目录的锁类型的情况下,指示第一主机更改目标文件的锁类型标记,由于主机保存有切换后锁类型的数据结构,因此,文件系统中的主机可以根据切换后锁类型规定的流程对目标文件加锁,进而访问目标文件。由于无需进行文件系统的卸载以及重新挂载,可以减少锁类型切换过程的耗时。不仅如此,管理节点可以更改文件系统中一个或部分文件的锁类型,而保持其余文件的锁类型不变,换言之,文件系统中不同的文件可以根据其使用场景、文件特性等不同因素采用不同的锁类型,使得主机能够根据与文件相适应的锁类型访问该文件,提高主机访问文件系统中文件的效率。再者,上述方案以文件为粒度进行加锁,可以避免现有技术中以逻辑单元号(logical unit number,LUN)为粒度进行加锁存在的当节点规模扩大锁性能急剧下降的问题,提高文件系统的加锁效率。
在第一方面的一些实现方式中,在所述目标资源为所述文件系统的目标目录时,主机新建临时目录,将所述目标目录下的子目录以及文件移动到所述临时目录,将所述临时目录、所述临时目录下的子目录以及文件的元数据中的锁类型标记设置为所述第二标记;删除所述目标目录,并将所述临时目录的目录标识更改为所述目标目录的目录标识。上述技术方案中,管理节点可以在主机不卸载文件系统以及不改变文件系统中其它目录的锁类型的情况下,通过创建临时目录,将原目标目录下子目录以及文件移动至该临时目录,将该临时目录及其子目录、下属文件的锁类型标识设置为指示要切换的第二锁类型的第二标记,再删除原目标目录,将临时目录更改为目标目录,实现目标目录及其下属子目录、锁类型的快速切换。由于主机保存有要切换后锁类型的数据结构,因此可以根据切换后锁类型规定的流程对目标目录或其下属文件加锁。由于无需进行文件系统的卸载以及重新挂载,可以减少锁类型切换过程的耗时。不仅如此,由于可以更改存储设备中一个或部分目录的锁类型,而保持其余目录的锁类型不变,文件系统中不同的目录可以根据其使用场景、包括文件特性等不同因素采用不同的锁类型,使得主机能够根据与目录相适应的锁类型访问该目录,提高主机访问文件系统中目录的效率。再者,上述方案以目录为粒度进行加锁,可以避免现有技术中以LUN为粒度进行加锁存在的当节点规模扩大锁性能急剧下降的问题,提高文件系统的加锁效率。
在第一方面的一些实现方式中,主机在响应所述第一指示,悬挂针对所述目标资源的IO请求之后,将上层应用针对所述目标资源的IO请求存储在等待队列中。以及,主机在响应所述第二指示,恢复上层应用针对所述目标资源的IO请求之后,向创建所述文件系统的存储设备下发所述等待队列中存储的针对所述目标资源的IO请求。上述技术方案中,主机根据管理节点悬挂针对目标资源的IO请求后,将上层应用针对目标资源的IO请求存储在等待队列中,以便在根据管理节点的指示恢复针对目标资源的IO请求后,可以快速下发上层应用已产生的IO请求,快速满足上层应用访问目标资源的需求。
在第一方面的一些实现方式中,主机在启动时或挂载所述文件系统时,保存所述第一锁类型的数据结构以及所述第二锁类型的数据结构,上述方案实现简单、效率较高。
在第一方面的一些实现方式中,主机在接收所述第一指示之前,接收所述管理节点的第四指示,所述第四指示用于指示所述主机保存所述第二锁类型的数据结构;响应所述第四指示,保存所述第二锁类型的数据结构,上述方案实现简单、效率较高。
第二方面,本申请提供一种锁类型切换方法,该方法应用于集群文件系统,该集群文件系统包括至少两个主机,该至少两个主机保存有第一锁类型以及第二锁类型的数据结构,锁类型的数据结构可以包括要切换加锁类型的操作数据、锁类型上下文数据、回调函数等,该第一锁类型、第二锁类型为不同的锁类型,可以有多种实现,例如,磁盘锁、集中式网络锁、分布式网络锁。该至少两个主机运行文件系统,该文件系统创建在至少一个存储设备上,本锁类型切换方法由集群文件系统中的管理节点执行,包括:管理节点向运行文件系统的至少两个主机发送第一指示,所述第一指示用于指示所述至少两个主机悬挂上层应用针对目标资源的IO请求;接收所述至少两个主机在响应第一指示,悬挂针对目标资源的IO请求后返回的表明IO已悬挂的第一响应消息;在接收所有主机返回的第一响应消息之后,向所述至少两个主机中第一主机发送第三指示,第一主机可以为运行文件系统的任一主机,该第三指示用于指示第一主机将所述目标资源的锁类型标记由表征所述第一锁类型的第一标记更改为表征所述第二锁类型的第二标记,所述锁类型标记用于指示对所述目标资源加锁的方式;接收所述第一主机返回的表示所述第三指示响应成功的第二响应消息;向所述至少两个主机发送第三指示,所述第三指示用于指示所述至少两个主机恢复上层应用针对所述目标资源的IO请求的第二指示。上述技术方案中,运行文件系统的主机保存原第一锁类型的数据结构以及要切换的第二锁类型的数据结构,因此在目标文件的锁类型标记更改为指示第二锁类型的第二标记之后,在主机读取该目标资源的锁类型标记确定锁类型标记为第二标记后,可以基于已经保存的第二锁类型的数据结构,通过第二锁类型的流程对目标资源加锁,进而访问目标资源。由于锁类型切换过程无需主机先卸载文件系统(即卸载创建文件系统的存储设备)再重新挂载文件系统,所以可以显著减少锁类型切换的耗时。
在第二方面的一些实施方式中,管理节点在向所述第一主机发送所述第三指示之前,判断是否有主机尚在访问所述目标资源,若有主机尚在访问所述目标资源,则等待所述主机对所述目标资源的访问操作结束。上述技术方案可以避免因在针对目标资源的访问操作未结束更改目标资源的锁类型标记导致的目标资源的数据损坏或者该主机针对目标资源的访问不能成功完成。
在第二方面的一些实施方式中,所述目标资源为所述文件系统时,所述第三指示用于指示所述第一主机将所述文件系统的超级块中的所述第一标记更改为所述第二标记。上述技术方案中,文件系统中的文件和目录可以采用相同的锁类型,管理节点可以在运行文件系统的主机不卸载文件系统(或创建文件系统的存储设备)的情况下指示第一主机更改文件系统的锁类型标记,由于主机保存有要更改后锁类型标记指示的锁类型的数据结构,因此,主机可以根据切换后的锁类型规定的流程对文件系统中的文件和目录加锁,进而访问文件和目录。由于无需进行存储设备的卸载以及重新挂载,可以减少锁类型切换过程的耗时。
在第二方面的一些实施方式中,所述目标资源为所述文件系统的超级块或目标文件时,所述第三指示用于指示所述第一主机将所述超级块或所述目标文件的元数据中的所述第一标记更改为所述第二标记。上述技术方案中,管理节点可以在主机不卸载文件系统以及不改变该文件系统中其它文件或目录的锁类型的情况下,指示第一主机更改目标文件的锁类型标记,由于主机保存有切换后锁类型的数据结构,因此,文件系统中的主机可以根据切换后锁类型规定的流程对目标文件加锁,进而访问目标文件。由于无需进行文件系统的卸载以及重新挂载,可以减少锁类型切换过程的耗时。不仅如此,管理节点可以更改文件系统中一个或部分文件的锁类型,而保持其余文件的锁类型不变,换言之,文件系统中不同的文件可以根据其使用场景、文件特性等不同因素采用不同的锁类型,使得主机能够根据与文件相适应的锁类型访问该文件,提高主机访问文件系统中文件的效率。再者,上述方案以文件为粒度进行加锁,可以避免现有技术中以逻辑单元号(logical unit number,LUN)为粒度进行加锁存在的当节点规模扩大锁性能急剧下降的问题,提高文件系统的加锁效率。
在第二方面的一些实施方式中,所述目标资源为所述文件系统的目标目录时,所述第三指示用于指示所述第一主机:新建临时目录,将所述目标目录下的子目录以及文件移动到所述临时目录,将所述临时目录、所述临时目录下的子目录以及文件的元数据中的锁类型标记设置为所述第二标记;删除所述目标目录,并将所述临时目录的目录标识更改为所述目标目录的目录标识。上述技术方案中,管理节点可以在主机不卸载文件系统以及不改变文件系统中其它目录的锁类型的情况下,通过创建临时目录,将原目标目录下子目录以及文件移动至该临时目录,将该临时目录及其子目录、下属文件的锁类型标识设置为指示要切换的第二锁类型的第二标记,再删除原目标目录,将临时目录更改为目标目录,实现目标目录及其下属子目录、锁类型的快速切换。由于主机保存有要切换后锁类型的数据结构,因此可以根据切换后锁类型规定的流程对目标目录或其下属文件加锁。由于无需进行文件系统的卸载以及重新挂载,可以减少锁类型切换过程的耗时。不仅如此,由于可以更改存储设备中一个或部分目录的锁类型,而保持其余目录的锁类型不变,文件系统中不同的目录可以根据其使用场景、包括文件特性等不同因素采用不同的锁类型,使得主机能够根据与目录相适应的锁类型访问该目录,提高主机访问文件系统中目录的效率。再者,上述方案以目录为粒度进行加锁,可以避免现有技术中以LUN为粒度进行加锁存在的当节点规模扩大锁性能急剧下降的问题,提高文件系统的加锁效率。
在第二方面的一些实施方式中,若所述目标目录为虚拟机或虚拟机的磁盘的入参目录,则所述第一主机为运行所述虚拟机的主机,以减少更改锁类型标记的耗时。
在第二方面的一些实施方式中,管理节点在向所述至少两个主机发送所述第一指示之前,还向所述至少两个主机发送第四指示,所述第四指示用于指示所述至少两个主机保存所述第二锁类型的数据结构,上述方案实现简单、效率较高。
在第二方面的一些实施方式中,在向所述至少两个主机发送所述第一指示之前,管理节点根据用户对访问时效的需求(例如用户允许的中断时间窗口长度)和/或创建所述文件系统的存储设备的性能参数(例如存储设备的IO时延、剩余空间等)确定所述目标资源为所述文件系统还是所述文件系统中的文件或目录。上述技术方案,管理节点可以根据用户访问需求、创建文件系统的存储设备的性能参数等确定锁类型切换的粒度,提高文件系统中锁类型切换的灵活度以及智能程度。
第三方面,本申请提供一种切换锁类型的装置,该装置用于执行上述第一方面或第一方面的任意可能的实现中的方法。具体的,该装置包括用于执行上述第一方面或第一方面的任意可能的实现中的方法的模块。
可选的,该装置包括:存储器、通信接口以及处理器,处理器通过总线与所述处理器以及所述通信接口连接。存储器用于存储计算机指令;通信接口用于与管理节点以及创建文件系统的至少一个存储设备通信;处理器用于执行所述存储器中的所述计算机指令,以通过所述通信接口执行上述第一方面或第一方面的任意可能的实现中的方法。
第四方面,本申请提供一种切换锁类型的装置,该装置用于执行上述第二方面或第二方面的任意可能的实现中的方法。具体的,该装置包括用于执行上述第二方面或第二方面的任意可能的实现中的方法的模块。
可选的,该装置包括:存储器、通信接口以及处理器,处理器通过总线与所述处理器以及所述通信接口连接。存储器用于存储计算机指令;通信接口用于与运行文件系统的至少两个主机通信;处理器用于执行所述存储器中的所述计算机指令,以通过所述通信接口执行上述第二方面或第二方面的任意可能的实现中的方法。
第五方面,本申请提供一种集群文件系统,包括:创建有文件系统的至少一个存储设备、运行所述文件系统的至少两个主机以及管理节点;其中,所述至少两个主机的内存保存有第一锁类型的数据结构以及第二锁类型的数据结构,用于执行上述第一方面或第一方面的任意可能的实现中的方法;所述管理节点用于执行上述第二方面或第二方面的任意可能的实现中的方法。
第六方面,本申请提供了一种计算机可读存储介质,该可读存储介质中存储有计算机指令,所述指令在计算机上运行时,使得计算机执行第一至第二方面、第一至第二方面的任意可能的实现中的方法。
第七方面,本申请提供了一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行第一至第二方面、第一至第二方面的任意可能的实现中的方法。
本申请在上述各方面提供的实现的基础上,还可以进行进一步组合以提供更多实现。
附图说明
图1为本申请实施例的集群文件系统的示意图;
图2为本申请实施例的一种锁类型切换方法的流程示意图;
图3为本申请实施例的锁类型切换方法的另一流程示意图;
图4为本申请实施例的锁类型切换方法的又一流程示意图;
图5为本申请实施例中确定锁类型切换的粒度的流程的示意图;
图6为本申请实施例中一种锁类型切换装置的示意图;
图7为本申请实施例中锁类型切换装置的另一示意图;
图8为本申请实施例中另一锁类型切换装置的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。
本申请提供一种锁类型切换方法、装置及集群文件系统,用以解决现有技术中存在的锁类型切换方式存在耗时较长的问题。其中,方法和装置、系统是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置、系统与方法的实施可以相互参见,重复之处不再赘述。
本申请中所涉及的多个,是指两个或两个以上。另外,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
应理解,本申请实施例的技术方案可以应用于各种文件系统,例如,基于存储区域网络(storage area network,SAN)的集群文件系统,或基于本地磁盘的分布式文件系统等,本发明实施例对此不作限制。
下面先介绍本申请涉及的一些概念:
磁盘锁:文件的加锁信息保存在创建文件系统的存储设备上,主机要读写文件,需要先在存储设备上写入文件的加锁信息。
网络锁:文件的加锁信息保存在网络的主机的内存中,如锁master主机。文件系统中的主机要读写文件,需要先通过网络消息向锁master主机请求对文件进行加锁。根据锁master的个数不同,网络锁也可分为集中式网络锁以及分布式网络锁,请参照相关现有技术,本发明实施例不再详述。
存储设备:用于创建文件系统,主机通过挂载该存储设备运行文件系统。存储设备可以格式化为与文件系统匹配的格式,格式化后的存储设备又可称为数据存储。本申请实施例中,文件系统可以基于多个存储设备实现。
输入输出(input output,IO)悬挂/IO恢复:IO悬挂指的是上层应用的IO请求冻结,不向存储设备下发上层应用的IO请求;IO恢复指的是恢复将上层应用的IO请求下发给存储设备。
图1所示为本申请实施例的锁类型切换方法所适用的系统架构的示意图,需要理解的是,图1仅为方便理解的示意性说明图,并不限定该系统架构的组成模式。如图1所示,该系统架构可以包括:存储设备11~12、主机13~14、管理节点15。
存储设备11、存储设备12,格式化为与文件系统适配的格式,并创建有文件系统。本申请实施例中,一个文件系统可以基于一个或多个存储设备实现,图1所示的文件系统基于两个存储设备实现,仅为方便理解的示意性说明,应理解,本申请实施例提供的方法同样适用于文件系统基于一个存储设备、三个或更多存储设备实现的文件系统的锁类型的切换。
主机13、主机14,可以是物理主机、终端计算机等,本发明不做限定。主机13~14可以包括:处理器、存储器以及通信接口,存储器用于存储指令代码以及数据,通信接口用于通过网络或总线与存储设备11、存储设备12通信。处理器可以运行数据库、虚拟机等应用程序,应用程序通过文件接口访问文件系统,文件接口有open、read、write、close等接口。在文件接口调用的过程中,可能需要加锁,防止该文件被多个主机同时写。同时,主机13~14挂载存储设备11~12,运行文件系统,文件系统的数据信息保存在存储设备11~12上。应理解,该系统架构也可以只包括一个主机,或包括三个或更多主机。
管理节点15,用于管理文件系统的锁类型的切换。可选的,该管理节点15还可以具有其他管理功能,例如,管理节点15可以获取主机的状态信息,当有主机故障或者有新主机加入集群文件系统时,管理节点15可以根据主机状态的变化进行相应的处理,使整个集群文件系统能够保持一致性。又例如,管理节点15还可以记录对文件系统中的操作进行日志记录,便于问题定位与维护。再例如,管理节点15还可以执行集群文件系统初始化时的空间分配。
可选的,管理节点15、主机13以及主机14通过网络交换机16相互通信。可选的,主机13~14通过存储交换机17与存储设备11~12通信连接。应理解,上述网络交换机16、存储交换机17的个数可以为一个或多个。
本申请实施例中,主机13~14的内存中保存有原第一锁类型的数据结构以及要切换的第二锁类型的数据结构,在进行锁类型切换时,管理节点指示主机13~14悬挂针对待切换锁类型的目标资源的IO请求,指示主机13~14中任一主机将目标资源的锁类型标记更改为指示第二锁类型的第二标记,然后,指示主机13~14恢复针对目标资源的IO请求。由于主机13~14中已保存有第二锁类型的数据结构,所以可以根据第二锁类型规定的流程对目标资源加锁。上述锁类型切换过程无需先卸载再挂载存储设备11~12,耗时较短。
图2示出本申请实施例提供的锁类型切换方法,包括:
步骤201、运行文件系统的主机保存第一锁类型的数据结构以及第二锁类型的数据结构。
为了简化描述,本申请实施例以下内容中,将运行文件系统的所有主机(其数量可以为一个或多个)简称为“主机”。第一锁类型与第二锁类型为两种不同的锁类型,本申请实施例并不限定两种锁类型的具体形式,例如,第一锁类型为磁盘锁、第二锁类型为集中式网络锁,或者,第一锁类型为分布式网络锁,第二锁类型为磁盘锁。锁类型的数据结构为使主机支持该锁类型、使主机通过该锁类型对资源加锁使能的数据、信息的集合,包括要切换加锁类型的操作数据、锁类型上下文数据、回调函数等。锁类型的数据结构的具体实现可以参照现有技术中磁盘锁、网络锁的数据结构,本申请实施例在此不予详述。
步骤202、管理节点向主机发送第一指示,该第一指示用于指示主机悬挂上层应用针对目标资源的IO请求。
步骤203、主机接收第一指示,并响应第一指示,悬挂上层应用针对目标资源的IO请求,并向管理节点发送表示第一指示响应成功的第一响应消息。
步骤204、管理节点在接收运行文件系统的所有主机返回的第一响应消息之后,向运行文件系统的第一主机发送第三指示,该第三指示用于指示第一主机将目标资源的锁类型标记由表征第一锁类型的第一标记更改为表征第二锁类型的第二标记。
第一主机可以有多种实现,例如,第一主机可以为运行文件系统的任一主机;又例如,运行文件系统的主机中的一个主机被配置为该第一主机,在需要对文件系统中资源的锁类型进行切换时,管理节点可以指示该配置的第一主机响应该第三指示;再例如,在目标资源为文件系统的目录,该目录对应虚拟机或虚拟机磁盘时,该第一主机可以为运行该虚拟机的主机。文件系统为资源设置锁类型标记,该锁类型标记指示该资源的加锁类型,主机在访问资源时,可以查看该资源的加锁类型标记,进而采用该锁类型标记指示的锁类型的流程对资源加锁。
步骤205、第一主机接收第三指示,并响应第三指示,将目标资源的锁类型标记更改为表征第二锁类型的第二标记,向管理节点发送表示所述第三指示响应成功的第二响应消息。应理解,该第三指示可以不包含表明目标资源的原锁类型标记为第一标记的信息。另外,第一主机悬挂上层应用针对目标资源的IO请求,指的是第一主机冻结上层应用访问目标资源的请求,第一主机本身仍然能够访问创建文件系统的存储设备,更改目标资源的锁类型标记。
步骤206、管理节点接收第二响应消息,向主机发送第二指示,用于指示主机恢复上层应用针对所述目标资源的IO请求。
步骤207、主机接收第二指示,响应第二指示,恢复上层应用针对所述目标资源的IO请求。
步骤208、主机在访问所述目标资源时,根据保存的所述第二锁类型的数据结构、以所述第二锁类型的加锁方式对所述目标资源加锁。
需要说明的是,上述步骤201并不是实施一次锁类型切换所必需的步骤。例如,文件系统中的主机可以在集群文件系统初始化时、该主机加入集群文件系统时,或该主机挂载文件系统时在内存中保存第一锁类型的数据结构以及第二锁类型的数据结构,在以后要切换目标资源的锁类型时,由于文件系统中的主机本身就保存有第一锁类型的数据结构以及第二锁类型的数据结构,因此在该次目标资源的锁类型切换流程中步骤201可以不执行。
另外,虽然本申请实施例中只介绍了第一锁类型与第二锁类型之间的切换,但是本申请实施例中锁类型切换方法可以适用于三种或更多种锁类型之间的切换,在这些场景中,步骤201中主机可以保存所有可能使用的锁类型的数据结构。
上述技术方案中,运行文件系统的主机保存原第一锁类型的数据结构以及要切换的第二锁类型的数据结构,在进行锁类型切换时,管理节点指示文件系统中的其他主机悬挂针对目标资源的IO请求,然后指示一个主机将目标资源的锁类型更改为指示要切换的第二锁类型的第二标记,然后指示运行文件系统的主机恢复针对目标资源的IO请求。在主机要访问目标资源时,读取该目标资源的锁类型标记,确定锁类型标记为第二标记后,可以基于已经保存的第二锁类型的数据结构,通过第二锁类型的流程对目标资源加锁,进而访问目标资源。上述技术方案与现有技术相比,无需主机先卸载文件系统(即卸载创建文件系统的存储设备),再重新挂载文件系统,可以显著减少锁类型切换的耗时。
作为一种可替换方式,管理节点本身可以访问创建文件系统的至少一个存储设备,例如,管理节点自身为运行文件系统的一个主机,被选举为针对目标资源的锁类型切换的服务器,选举管理节点的具体实现方式可以参照现有技术中各种相关技术,本申请实施例不予详述。在上述场景中,步骤204~步骤205的替换方案可以为:管理节点自己更改目标资源的锁类型标记。本方案可以减少锁类型切换过程中管理节点与主机之间的交互,进一步减少锁类型切换的耗时。
作为一种可选的方式,参照图3,在步骤203之后、步骤204之前,还可以包括如下步骤:
步骤208、若有主机尚在访问目标资源,管理节点等待该主机对目标资源的访问操作结束。
应理解,步骤203中,主机悬挂针对目标资源的IO请求,指悬挂上层应用针对目标资源的新生成的IO请求,而针对主机已经向创建文件系统的存储设备下发的IO请求,则继续执行。
上述技术方案中,在切换目标资源的锁类型时,如果有访问目标资源的IO尚未返回,则管理节点等待针对目标资源的IO返回之后,再执行步骤204,指示第一主机更改目标资源的锁类型标记,可以避免因在针对目标资源的访问操作未结束更改目标资源的锁类型标记导致的目标资源的数据损坏或者该主机针对目标资源的访问不能成功完成。
作为一种可选的方式,主机执行步骤203之后,还执行:将上层应用针对所述目标资源的IO请求存储在等待队(pending)列中。并在执行步骤207之后,还执行:向创建所述文件系统的存储设备下发所述等待队列中存储的针对所述目标资源的IO请求。上述技术方案中,主机根据管理节点悬挂针对目标资源的IO请求后,将上层应用针对目标资源的IO请求存储在等待队列中,以便在根据管理节点的指示恢复针对目标资源的IO请求后,可以快速下发上层应用已产生的IO请求,快速满足上层应用访问目标资源的需求。
本申请实施例中,目标资源可以有多种实现,下面结合目标资源的多种实现详细介绍锁类型切换方法。
(一)目标资源为文件系统整体,或者,目标资源为创建文件系统的存储设备。
本申请实施例中,文件系统中所有文件、目录可以采用相同的锁类型,指示该锁类型的锁类型标记又可称为全局锁类型标记,该全局锁类型标记保存在创建文件系统的存储设备中,比如,全局锁类型标记保存在文件系统的超级块中,应理解,该全局锁类型标记也可以存储在超级块之外的位置。
步骤205的实现方式可以为:第一主机访问创建文件系统的存储设备,将文件系统的超级块中的全局锁类型标记更改为第二标记。
上述技术方案中,文件系统中的文件和目录可以采用相同的锁类型,管理节点可以在运行文件系统的主机不卸载文件系统(或创建文件系统的存储设备)的情况下指示第一主机更改文件系统的全局锁类型标记,由于主机保存有要更改后锁类型标记指示的锁类型的数据结构,因此,主机可以根据切换后的锁类型规定的流程对文件系统中的文件和目录加锁,进而访问文件和目录。由于无需进行存储设备的卸载以及重新挂载,可以减少锁类型切换过程的耗时。
(二)目标资源为文件系统中的目标文件。
目标文件可以为一个或多个文件,换言之,本申请实施例中可以更改文件系统中一个或多个文件的锁类型,而保持其余文件的锁类型不变。
步骤205的实现方式可以为:第一主机将目标文件的锁类型标记由指示原第一锁类型的第一标记更改为指示要切换的第二锁类型的第二标记。其中,目标文件的锁类型标记可以保存在目标文件的元数据(例如:目标文件的inode)中,该元数据可以保存在创建文件系统的存储设备的元数据存储区中,也可以保存在集群文件系统的元数据服务器中。无论采用上述哪种设定,主机可以在访问目标文件前,在约定的保存位置查看目标文件的锁类型标记,确定对目标文件的加锁方式。
上述技术方案中,管理节点可以在主机不卸载文件系统以及不改变该文件系统中其它文件或目录的锁类型的情况下,指示第一主机更改目标文件的锁类型标记,由于主机保存有切换后锁类型的数据结构,因此,文件系统中的主机可以根据切换后锁类型规定的流程对目标文件加锁,进而访问目标文件。由于无需进行文件系统的卸载以及重新挂载,可以减少锁类型切换过程的耗时。不仅如此,管理节点可以更改文件系统中一个或部分文件的锁类型,而保持其余文件的锁类型不变,换言之,文件系统中不同的文件可以根据其使用场景、文件特性等不同因素采用不同的锁类型,使得主机能够根据与文件相适应的锁类型访问该文件,提高主机访问文件系统中文件的效率。再者,上述方案以文件为粒度进行加锁,可以避免现有技术中以逻辑单元号(logical unit number,LUN)为粒度进行加锁存在的当节点规模扩大锁性能急剧下降的问题,提高文件系统的加锁效率。
可选的,目标资源也可以为文件系统的超级块,超级块的锁类型切换方式与目标文件的锁类型切换方式类似,由第一主机将超级块的元数据中的锁类型标记更改为指示要切换的第二锁类型的第二标记。
(三)目标资源为文件系统中的目标目录。
目标目录可以为一个或多个目录。换言之,本申请实施例中,可以更改文件系统一个或多个目录的锁类型,而保持其余目录或该非该目录下文件的锁类型不变。
参照图4,步骤205的实现方式可以包括:
步骤2051、第一主机创建临时目录。
步骤2052、第一主机将目标目录下的子目录以及文件移动到该临时目录。
其中,目标目录下的子目录以及文件在临时目录中的层次结构与在原目标目录中的层级结构相同,即,临时目录下子目录的父目录、子目录、兄弟目录、包含的文件与其在原目标目录时相同,临时目录下文件所属的父目录与其在原目标目录中时相同。若子目录或文件在原目标目录中的父目录为目标目录本身,则在迁移至临时目录后的父目录为临时目录。
步骤2053、第一主机将临时目录、临时目录下的子目录以及文件的元数据中的锁类型标记设置为指示要切换的第二锁类型的第二标记。第一主机可以根据临时目录的目录树结构,从目录树的最下层文件开始设置锁类型标记,递归从底向上设置目录树中的每一层子目录及该子目录下文件的锁类型标记,直至设置临时目录的锁类型标记。
步骤2054、第一主机删除原目标目录,并将临时目录的目录标识更改为原目标目录的目录标识。由于将临时目录的目录标识更改为原目标目录的目录标识,所以临时目录替代了原目标目录。
上述技术方案中,管理节点可以在主机不卸载文件系统以及不改变文件系统中其它目录的锁类型的情况下,通过创建临时目录,将原目标目录下子目录以及文件移动至该临时目录,将该临时目录及其子目录、下属文件的锁类型标识设置为指示要切换的第二锁类型的第二标记,再删除原目标目录,将临时目录更改为目标目录,实现目标目录及其下属子目录、锁类型的快速切换。由于主机保存有要切换后锁类型的数据结构,因此可以根据切换后锁类型规定的流程对目标目录或其下属文件加锁。由于无需进行文件系统的卸载以及重新挂载,可以减少锁类型切换过程的耗时。不仅如此,由于可以更改存储设备中一个或部分目录的锁类型,而保持其余目录的锁类型不变,文件系统中不同的目录可以根据其使用场景、包括文件特性等不同因素采用不同的锁类型,使得主机能够根据与目录相适应的锁类型访问该目录,提高主机访问文件系统中目录的效率。再者,上述方案以目录为粒度进行加锁,可以避免现有技术中以LUN为粒度进行加锁存在的当节点规模扩大锁性能急剧下降的问题,提高文件系统的加锁效率。
需要说明的是,目标目录可以对应主机运行的虚拟机或虚拟机的磁盘,在该场景下,不同的虚拟机或虚拟机磁盘可以采用不同的锁类型进行加锁,以满足不同虚拟机运行的不同业务的不同需求。例如,虚拟机VM1和VM2处理对时延要求较高的业务,例如联机事务处理过程(on-line transaction processing,OLTP)业务,采用加锁耗时较短的网络锁对其加锁。虚拟机VM3和VM4执行电信计费系统业务,采用磁盘锁对其进行加锁以避免网络分割后部分主机无法访问虚拟机。
可选的,目标目录可以对应主机运行的虚拟机或虚拟机的磁盘时,该目标目录又可称为虚拟机的入参目录,该场景下,管理节点可以选择运行该虚拟机的主机作为执行更改锁类型标记的第一主机,以减少更改锁类型标记的耗时。
可选的,如果目标目录包括虚拟机的镜像文件,则第一主机在执行步骤2052之前,先关闭该镜像文件,待该镜像文件的元数据信息的缓存不存在后,再执行步骤2052,待步骤2054完成之后,再打开该镜像文件。上述技术方案可以避免因镜像文件在锁类型切换前的缓存保留导致无法正常访问镜像文件。
可选的,在步骤5024之后,第一主机检查是否还存在目标目录的文件或目录的锁资源,若不存在,才向管理节点返回表明锁类型标记已更改的第二响应消息;若还存在目标目录的文件或目录的锁资源,则表明锁切换失败,可以根据切换失败流程检查切换失败的原因,待切换失败的原因解决后,重新切换目标目录的锁类型。
应理解,本申请实施例以上各可能的实现方式中,管理节点向第一主机发送的第三指示,可以只向第一主机下发更改目标资源的锁类型标记的任务,而不向第一主机指示更改锁类型标记的具体方法,第一主机可以根据目标资源的具体形式(文件系统整体、文件或目录),基于保存的目标资源的锁类型的切换规则执行更改目标资源的锁类型标记。
作为一种可选的方式,第一主机在将文件系统中目标文件或目标目录的锁类型标记更改为指示第二锁类型的第二标记之后,将文件系统的超级块中的全局锁类型标记设置为无效。主机在访问文件系统的文件时,可以先查看超级块中的全局锁类型标记,若全局锁类型标记被设置为无效,则可以查看要读取的文件的元数据中该文件的锁类型标记,根据该锁类型标记确定对文件的加锁方式。
作为一种可选的方式,在步骤201之前,还包括如下步骤:
管理节点向所述至少两个主机发送第四指示,所述第四指示用于指示所述至少两个主机保存所述第二锁类型的数据结构。
上述技术方案中,文件系统中的主机可以只保存原锁类型的数据结构,管理节点可以在要切换目标资源的锁类型时,指示主机初始化要切换的第二锁类型的数据结构,在内存中保存第二锁类型的数据结构,实现方式简单,效率较高。
作为一种可选的方式,步骤201之后,主机还可以在内存中初始化第一锁类型的锁资源以及第二锁类型的锁资源,该锁资源可以包括读写(read/write,RW)的锁资源、元数据锁资源、文件打开(open)的锁资源等。锁资源的具体实现方式可以参照现有技术中磁盘锁、网络锁的锁资源,本申请实施例在此不予详述。
作为一种可选的方式,管理节点可以根据用户访问需求、创建文件系统的存储设备的性能参数等指标确定目标资源为文件系统整体(或创建文件系统的存储设备)或文件系统中的文件/目录,换言之,管理节点可以根据用户访问需求、存储设备的性能等确定以文件系统的文件/目录为粒度,还是以整个文件系统为粒度进行锁类型切换。
其中,用户访问需求可以为用户允许的中断时间窗口长度,例如,如果用户允许的中断时间窗口不超过阈值(如10s),则管理节点可以以文件/目录为粒度进行锁类型切换,以避免切换整个存储设备的锁类型导致中断时间窗口超过阈值,保证用户能够及时访问文件系统。
存储设备的性能参数可以为存储设备的IO时延,例如,如果存储设备的IO时延超过阈值(比如100ms),则管理节点可以以文件/目录为粒度进行锁类型切换,以避免切换整个存储设备的锁类型导致中断时间窗口超过阈值,保证用户能够及时访问文件系统。
存储设备的性能参数还可以存储设备的剩余空间大小,例如,如果需要将文件系统的锁类型从网络锁切换为磁盘锁,如果存储设备剩余空间不大于1%且可用空间不大于1G,则管理节点可以以文件/目录为粒度进行锁类型切换,将文件系统中重要或高频使用的文件的锁类型切换为磁盘锁,避免以文件系统整体为粒度切换锁类型时,由于存储设备要保存每个文件的锁信息而导致存储设备写满,甚至因存储设备剩余空间无法保存所有文件的锁信息而导致锁类型切换失败。
参照图5,在将文件系统由网络锁切换为磁盘锁时,管理节点可以根据图5所示的流程确定以文件/目录为粒度进行锁类型切换,还是以文件系统整体为粒度进行锁类型切换。
上述技术方案,管理节点可以根据用户访问需求、创建文件系统的存储设备的性能参数等确定锁类型切换的粒度,提高文件系统中锁类型切换的灵活度以及智能程度。
上述确定锁类型切换粒度的一种可能的应用为:在需要切换文件系统整体的锁类型时,管理节点根据用户访问需求、存储设备的性能参数确定以文件系统的文件为粒度,逐文件切换锁类型,直至将文件系统中所有文件的锁类型进行切换。具体的,管理节点指示主机悬挂针对文件系统中第一个文件的IO请求,然后指示第一主机更改第一个文件的锁类型标记,指示主机恢复针对第一个文件的IO请求。然后,针对第二个文件重复上述过程,直至切换文件系统中所有文件的锁类型。该方案的好处为:在锁类型切换过程中,始终只中断针对单个文件的IO,针对文件系统中其它文件的IO操作可以正常进行,对用户访问文件系统的影响较小。
图6示出一种锁类型切换装置,该装置用于实现本申请实施例提供的上述锁类型切换方法的各种可能实现方式中管理节点的功能,用于执行上述锁类型切换方法中管理节点执行的步骤。如图6所示,该装置包括:发送模块31以及接收模块32。
发送模块31,用于向运行文件系统的至少两个主机发送第一指示,所述第一指示用于指示所述至少两个主机悬挂上层应用针对目标资源的IO请求,所述至少两个主机的内存中保存有第一锁类型的数据结构以及第二锁类型的数据结构。接收模块32,用于接收所述至少两个主机返回的表示所述第一指示响应成功的第一响应消息。所述发送模块31,还用于:向所述至少两个主机中第一主机发送第三指示,所述第三指示用于指示所述第一主机将所述目标资源的锁类型标记由第一标记更改为第二标记,所述第一标记表示所述目标资源的锁类型为第一锁类型,所述第二标记表示所述目标资源的锁类型为第二锁类型。所述接收模块32,还用于接收所述第一主机返回的表示所述第三指示响应成功的第二响应消息。所述发送模块31,还用于向所述至少两个主机发送第三指示,所述第三指示用于指示所述至少两个主机恢复上层应用针对所述目标资源的IO请求。
作为一种可选的方式,该装置还包括:判断模块33,用于在所述发送模块向所述第一主机发送所述第三指示之前,判断是否有主机尚在访问所述目标资源,若存在,则等待所述主机对所述目标资源的访问操作结束之后,指示所述发送模块向所述第一主机发送所述第三指示。
作为一种可选的方式,若所述目标目录为虚拟机或虚拟机的磁盘的入参目录时,则所述第一主机为运行所述虚拟机的主机。
作为一种可选的方式,所述发送模块31还用于:在向所述至少两个主机发送所述第一指示之前,向所述至少两个主机发送第四指示,所述第四指示用于指示所述至少两个主机保存所述第二锁类型的数据结构。
作为一种可选的方式,该装置还包括:确定模块34,用于在所述发送模块向所述至少两个主机发送所述第一指示之前,根据用户对访问时效的需求和/或创建所述文件系统的存储设备的性能参数确定所述目标资源为所述文件系统还是所述文件系统中的文件或目录。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本发明各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
其中,集成的模块既可以采用硬件的形式实现时,如图7所示,锁类型切换装置可以包括处理器41。上述判断模块33、确定模块34对应的实体的硬件可以为处理器41。处理器41,可以是一个中央处理模块(central processing unit,CPU),或者为数字处理模块等。锁类型切换装置还可以包括通信接口42,上述发送模块31、接收模块32可以基于通信接口42实现,通信接口42可以包括基于光纤通道(fiber channel,FC)网络的接口、因特网协议(internet protocol,IP)网络的接口等中的一个或多个接口。处理器41通过通信接口42向运行文件系统的主机发送指示,以及接收主机返回的响应消息。该装置还包括:存储器43,用于存储处理器41执行的程序。存储器43可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器43是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
上述锁类型切换装置的具体实现可以参照前述锁类型切换方法中由管理节点执行的各步骤,在此不再重复。
图8示出示一种锁类型切换装置,该装置用于实现本申请实施例提供的上述锁类型切换方法的各种可能实现方式中主机的功能,用于执行上述锁类型切换方法中主机执行的步骤。如图8所示,该装置包括:接收模块51、处理模块52以及发送模块53。
接收模块51,用于接收管理节点发送的第一指示,所述第一指示用于指示所述主机悬挂上层应用。处理模块52,用于响应所述第一指示,悬挂上层应用针对所述目标资源的IO请求。发送模块53,用于在所述处理模块悬挂上层应用针对所述目标资源的IO请求之后,向所述管理节点发送表示所述第一指示响应成功的第一响应消息。所述接收模块51,还用于:接收所述管理节点发送的第二指示,所述第二指示由所述管理节点在所述目标资源的锁类型标记由第一标记更改为第二标记后发送,所述第一标记表示所述目标资源的锁类型为第一锁类型,所述第二标记表示所述目标资源的锁类型为第二锁类型,所述第二指示用于指示所述主机恢复上层应用针对所述目标资源的IO请求。所述处理模块52,还用于:根据所述第二指示恢复针对所述目标资源的IO请求,以及在访问所述目标资源时,根据保存的所述第二锁类型的数据结构、以所述第二锁类型的加锁方式对所述目标资源加锁。
作为一种可选的方式,所述接收模块51还用于:在所述发送模块向所述管理节点发送第一响应消息之后以及所述接收模块接收所述第二指示之前,接收所述管理节点发送的第三指示,所述第三指示用于指示所述主机将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记。所述处理模块52,还用于响应所述第三指示,将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记。所述发送模块53,还用于:在所述处理模块将所述目标资源的锁类型标记更改为所述第二标记之后,向所述管理节点发送表示所述第三指示响应成功的第二响应消息。
作为一种可选的方式,所述处理模块52具体用于:在所述目标资源为所述文件系统时,将所述文件系统的超级块中的所述第一标记更改为所述第二标记。
作为一种可选的方式,所述处理模块52具体用于:在所述目标资源为所述文件系统的超级块或目标文件时,将所述超级块或所述目标文件的元数据中的所述第一标记更改为所述第二标记。
作为一种可选的方式,所述处理模块52具体用于:在所述目标资源为所述文件系统的目标目录时,新建临时目录,将所述目标目录下的子目录以及文件移动到所述临时目录,将所述临时目录、所述临时目录下的子目录以及文件的元数据中的锁类型标记设置为所述第二标记;删除所述目标目录,并将所述临时目录的目录标识更改为所述目标目录的目录标识。
作为一种可选的方式,所述处理模块52,还用于:在响应所述第一指示,悬挂上层应用针对所述目标资源的IO请求之后,将上层应用针对所述目标资源的IO请求存储在等待队列中;以及,在响应所述第二指示,恢复上层应用针对所述目标资源的IO请求之后,向创建所述文件系统的存储设备下发所述等待队列中存储的针对所述目标资源的IO请求。
作为一种可选的方式,所述处理模块52还用于:在所述主机启动时或所述主机挂载所述文件系统时,保存所述第一锁类型的数据结构以及所述第二锁类型的数据结构。
作为一种可选的方式,所述接收模块51还用于:在接收所述第一指示之前,接收所述管理节点的第四指示,所述第四指示用于指示所述主机保存所述第二锁类型的数据结构。所述处理模块52,还用于:响应所述第四指示,保存所述第二锁类型的数据结构。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本发明各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
其中,集成的模块既可以采用硬件的形式实现时,如图6所示,锁类型切换装置可以包括处理器。上述处理模块52对应的实体的硬件可以为处理器。处理器,可以是一个CPU,或者为数字处理模块等。锁类型切换装置还可以包括通信接口,上述发送模块53、接收模块51可以基于通信接口实现,通信接口可以包括基于FC网络的接口、IP网络的接口等中的一个或多个接口。处理器通过通信接口接收管理节点发送的指示,以及向管理节点返回响应消息。该装置还包括:存储器,用于存储处理器执行的程序以及第一锁类型的数据结构以及第二锁类型的数据结构。存储器可以是非易失性存储器,比如HDD或SSD等,还可以是易失性存储器,例如RAM。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
上述锁类型切换装置的具体实现可以参照前述锁类型切换方法中由运行文件系统的主机执行的各步骤,在此不再重复。
本申请实施例提供了一种计算机可读存储介质,该可读存储介质中存储有计算机指令,所述指令在计算机上运行时,使得计算机执行上述锁类型切换方法中由管理节点执行的方法。
本申请实施例提供了一种计算机可读存储介质,该可读存储介质中存储有计算机指令,所述指令在计算机上运行时,使得计算机执行上述锁类型切换方法中由运行文件系统的主机执行的方法。
本申请实施例提供了一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行上述锁类型切换方法中由管理节点执行的方法。
本申请实施例提供了一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行上述锁类型切换方法中由运行文件系统的主机执行的方法。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (45)
1.一种锁类型切换方法,其特征在于,应用于运行文件系统的主机,所述主机的内存保存有第一锁类型的数据结构以及第二锁类型的数据结构,所述方法包括:
接收管理节点发送的第一指示,所述第一指示用于指示所述主机悬挂上层应用针对目标资源的输入输出IO请求;
响应所述第一指示,悬挂上层应用针对所述目标资源的IO请求,向所述管理节点发送表示所述第一指示响应成功的第一响应消息;
接收所述管理节点发送的第二指示,所述第二指示由所述管理节点在所述目标资源的锁类型标记由第一标记更改为第二标记后发送,所述第一标记表示所述目标资源的锁类型为第一锁类型,所述第二标记表示所述目标资源的锁类型为第二锁类型,所述第二指示用于指示所述主机恢复上层应用针对所述目标资源的IO请求;
响应所述第二指示,恢复上层应用针对所述目标资源的IO请求;
在访问所述目标资源时,根据保存的所述第二锁类型的数据结构、以所述第二锁类型的加锁方式对所述目标资源加锁。
2.根据权利要求1所述的方法,其特征在于,在向所述管理节点发送所述第一响应消息之后,以及接收所述第二指示之前,还包括:
接收所述管理节点发送的第三指示,所述第三指示用于指示所述主机将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记;
响应所述第三指示,将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记,向所述管理节点发送表示所述第三指示响应成功的第二响应消息。
3.根据权利要求2所述的方法,其特征在于,所述将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记,包括:
所述目标资源为所述文件系统时,将所述文件系统的超级块中的所述第一标记更改为所述第二标记。
4.根据权利要求2所述的方法,其特征在于,所述将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记,包括:
所述目标资源为所述文件系统的超级块或目标文件时,将所述超级块或所述目标文件的元数据中的所述第一标记更改为所述第二标记。
5.根据权利要求2所述的方法,其特征在于,所述将所述目标资源的锁类型标记由所述第一标记更改为所述第二标记,包括:
所述目标资源为所述文件系统的目标目录时,新建临时目录,将所述目标目录下的子目录以及文件移动到所述临时目录,将所述临时目录、所述临时目录下的子目录以及文件的元数据中的锁类型标记设置为所述第二标记;以及,删除所述目标目录,并将所述临时目录的目录标识更改为所述目标目录的目录标识。
6.根据权利要求1至5任一项所述的方法,其特征在于:
在响应所述第一指示之后,还包括:
将上层应用针对所述目标资源的IO请求存储在等待队列中;
在响应所述第二指示之后,还包括:
向创建所述文件系统的存储设备下发所述等待队列中存储的针对所述目标资源的IO请求。
7.根据权利要求1至6任一项所述的方法,其特征在于,在接收所述第一指示之前,还包括:
在启动时或挂载所述文件系统时,保存所述第一锁类型的数据结构以及所述第二锁类型的数据结构。
8.根据权利要求1至6任一项所述的方法,其特征在于,在接收所述第一指示之前,还包括:
接收所述管理节点的第四指示,所述第四指示用于指示所述主机保存所述第二锁类型的数据结构;
响应所述第四指示,保存所述第二锁类型的数据结构。
9.一种锁类型切换方法,其特征在于,包括:
向运行文件系统的至少两个主机发送第一指示,所述第一指示用于指示所述至少两个主机悬挂上层应用针对目标资源的IO请求,所述至少两个主机的内存中保存有第一锁类型的数据结构以及第二锁类型的数据结构;
接收所述至少两个主机返回的表示所述第一指示响应成功的第一响应消息;
向所述至少两个主机中第一主机发送第三指示,所述第三指示用于指示所述第一主机将所述目标资源的锁类型标记由第一标记更改为第二标记,所述第一标记表示所述目标资源的锁类型为第一锁类型,所述第二标记表示所述目标资源的锁类型为第二锁类型;
接收所述第一主机返回的表示所述第三指示响应成功的第二响应消息;
向所述至少两个主机发送第三指示,所述第三指示用于指示所述至少两个主机恢复上层应用针对所述目标资源的IO请求。
10.根据权利要求9所述的方法,其特征在于,在向所述第一主机发送所述第三指示之前,还包括:
若所述至少两个主机中有主机尚在访问所述目标资源,则等待所述主机对所述目标资源的访问操作结束。
11.根据权利要求9或10所述的方法,其特征在于,所述目标资源为所述文件系统时,所述第三指示用于指示所述第一主机将所述文件系统的超级块中的所述第一标记更改为所述第二标记。
12.根据权利要求9或10所述的方法,其特征在于,所述目标资源为所述文件系统的超级块或目标文件时,所述第三指示用于指示所述第一主机将所述超级块或所述目标文件的元数据中的所述第一标记更改为所述第二标记。
13.根据权利要求9或10所述的方法,其特征在于,所述目标资源为所述文件系统的目标目录时,所述第三指示用于指示所述第一主机:
新建临时目录,将所述目标目录下的子目录以及文件移动到所述临时目录,将所述临时目录、所述临时目录下的子目录以及文件的元数据中的锁类型标记设置为所述第二标记;以及,删除所述目标目录,并将所述临时目录的目录标识更改为所述目标目录的目录标识。
14.根据权利要求13所述的方法,其特征在于,若所述目标目录为虚拟机或虚拟机的磁盘的入参目录时,则所述第一主机为运行所述虚拟机的主机。
15.根据权利要求9-14任一项所述的方法,其特征在于,在向所述至少两个主机发送所述第一指示之前,还包括:
向所述至少两个主机发送第四指示,所述第四指示用于指示所述至少两个主机保存所述第二锁类型的数据结构。
16.根据权利要求9至15任一项所述的方法,其特征在于,在向所述至少两个主机发送所述第一指示之前,还包括:
根据用户对访问时效的需求和/或创建所述文件系统的存储设备的性能参数确定所述目标资源为所述文件系统还是所述文件系统中的文件或目录。
17.一种锁类型切换装置,其特征在于,应用于运行文件系统的主机,所述主机的内存保存有第一锁类型的数据结构以及第二锁类型的数据结构,所述装置包括:
接收模块,用于接收管理节点发送的第一指示,所述第一指示用于指示所述主机悬挂上层应用针对目标资源的IO请求;
处理模块,用于响应所述第一指示,悬挂上层应用针对所述目标资源的IO请求,向所述管理节点发送表示所述第一指示响应成功的第一响应消息;
发送模块,用于在所述处理模块悬挂上层应用针对所述目标资源的IO请求之后,向所述管理节点发送表示所述第一指示响应成功的第一响应消息;
所述接收模块,还用于:接收所述管理节点发送的第二指示,所述第二指示由所述管理节点在所述目标资源的锁类型标记由第一标记更改为第二标记后发送,所述第一标记表示所述目标资源的锁类型为第一锁类型,所述第二标记表示所述目标资源的锁类型为第二锁类型,所述第二指示用于指示所述主机恢复上层应用针对所述目标资源的IO请求;
所述处理模块,还用于:响应所述第二指示,恢复上层应用针对所述目标资源的IO请求;以及
在访问所述目标资源时,根据保存的所述第二锁类型的数据结构、以所述第二锁类型的加锁方式对所述目标资源加锁。
18.根据权利要求17所述的装置,其特征在于,所述接收模块还用于:在所述发送模块向所述管理节点发送所述第一响应消息之后以及所述接收模块接收所述第二指示之前,接收所述管理节点发送的第三指示,所述第三指示用于指示所述主机将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记;
所述处理模块,还用于响应所述第三指示,将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记;
所述发送模块,还用于:在所述处理模块将所述目标资源的锁类型标记更改为所述第二标记之后,向所述管理节点发送表示所述第三指示响应成功的第二响应消息。
19.根据权利要求18所述的装置,其特征在于,所述处理模块具体用于:在所述目标资源为所述文件系统时,将所述文件系统的超级块中的所述第一标记更改为所述第二标记。
20.根据权利要求18所述的装置,其特征在于,所述处理模块具体用于:在所述目标资源为所述文件系统的超级块或目标文件时,将所述超级块或所述目标文件的元数据中的所述第一标记更改为所述第二标记。
21.根据权利要求18所述的装置,其特征在于,所述处理模块具体用于:在所述目标资源为所述文件系统的目标目录时,新建临时目录,将所述目标目录下的子目录以及文件移动到所述临时目录,将所述临时目录、所述临时目录下的子目录以及文件的元数据中的锁类型标记设置为所述第二标记;以及,删除所述目标目录,并将所述临时目录的目录标识更改为所述目标目录的目录标识。
22.根据权利要求17至21任一项所述的装置,其特征在于,所述处理模块,还用于:
在响应所述第一指示之后,将上层应用针对所述目标资源的IO请求存储在等待队列中;以及
在响应所述第二指示之后,向创建所述文件系统的存储设备下发所述等待队列中存储的针对所述目标资源的IO请求。
23.根据权利要求17至22任一项所述的方法,其特征在于,所述处理模块还用于:
在所述主机启动时或所述主机挂载所述文件系统时,保存所述第一锁类型的数据结构以及所述第二锁类型的数据结构。
24.根据权利要求17至22任一项所述的方法,其特征在于,所述接收模块还用于:在接收所述第一指示之前,接收所述管理节点的第四指示,所述第四指示用于指示所述主机保存所述第二锁类型的数据结构;
所述处理模块,还用于:响应所述第四指示,保存所述第二锁类型的数据结构。
25.一种锁类型切换装置,其特征在于,包括:
发送模块,用于向运行文件系统的至少两个主机发送第一指示,所述第一指示用于指示所述至少两个主机悬挂上层应用针对目标资源的IO请求,所述至少两个主机的内存中保存有第一锁类型的数据结构以及第二锁类型的数据结构;
接收模块,用于接收所述至少两个主机返回的表示所述第一指示响应成功的第一响应消息;
所述发送模块,还用于:向所述至少两个主机中第一主机发送第三指示,所述第三指示用于指示所述第一主机将所述目标资源的锁类型标记由第一标记更改为第二标记,所述第一标记表示所述目标资源的锁类型为第一锁类型,所述第二标记表示所述目标资源的锁类型为第二锁类型;
所述接收模块,还用于接收所述第一主机返回的表示所述第三指示响应成功的第二响应消息;
所述发送模块,还用于向所述至少两个主机发送第三指示,所述第三指示用于指示所述至少两个主机恢复上层应用针对所述目标资源的IO请求。
26.根据权利要求25所述的装置,其特征在于,还包括:
判断模块,用于在所述发送模块向所述第一主机发送所述第三指示之前,判断是否有主机尚在访问所述目标资源,若存在,则等待所述主机对所述目标资源的访问操作结束之后,指示所述发送模块向所述第一主机发送所述第三指示。
27.根据权利要求25或26所述的装置,其特征在于,所述目标资源为所述文件系统时,所述第三指示用于指示所述第一主机将所述文件系统的超级块中的所述第一标记更改为所述第二标记。
28.根据权利要求25或26所述的装置,其特征在于,所述目标资源为所述文件系统的超级块或目标文件时,所述第三指示用于指示所述第一主机将所述超级块或所述目标文件的元数据中的所述第一标记更改为所述第二标记。
29.根据权利要求25或26所述的装置,其特征在于,所述目标资源为所述文件系统的目标目录时,所述第三指示用于指示所述第一主机:
新建临时目录,将所述目标目录下的子目录以及文件移动到所述临时目录,将所述临时目录、所述临时目录下的子目录以及文件的元数据中的锁类型标记设置为所述第二标记;以及,删除所述目标目录,并将所述临时目录的目录标识更改为所述目标目录的目录标识。
30.根据权利要求29所述的装置,其特征在于,若所述目标目录为虚拟机或虚拟机的磁盘的入参目录时,则所述第一主机为运行所述虚拟机的主机。
31.根据权利要求25-30任一项所述的装置所述,其特征在于,所述发送模块还用于:在向所述至少两个主机发送所述第一指示之前,向所述至少两个主机发送第四指示,所述第四指示用于指示所述至少两个主机保存所述第二锁类型的数据结构。
32.根据权利要求25至31任一项所述的装置,其特征在于,还包括:
确定模块,用于在所述发送模块向所述至少两个主机发送所述第一指示之前,根据用户对访问时效的需求和/或创建所述文件系统的存储设备的性能参数确定所述目标资源为所述文件系统还是所述文件系统中的文件或目录。
33.一种主机,其特征在于,包括:
存储器,用于存储计算机指令以及第一锁类型的数据结构以及第二锁类型的数据结构;
通信接口,用于与管理节点以及创建文件系统的至少一个存储设备通信;
处理器,通过总线与所述处理器以及所述通信接口连接,用于执行所述存储器中的所述计算机指令,以通过所述通信接口执行如权利要求1至8任一项所述的方法。
34.一种管理节点,其特征在于,包括:
存储器,用于存储计算机指令;
通信接口,用于与运行文件系统的至少两个主机通信;
处理器,通过总线与所述处理器以及所述通信接口连接,用于执行所述存储器中的所述计算机指令,以通过所述通信接口执行如权利要求9至16任一项所述的方法。
35.一种集群文件系统,其特征在于,包括:创建有文件系统的至少一个存储设备、运行所述文件系统的至少两个主机以及管理节点;其中,所述至少两个主机的内存保存有第一锁类型的数据结构以及第二锁类型的数据结构;
所述管理节点用于:向所述至少两个主机发送第一指示,所述第一指示用于指示所述至少两个主机悬挂上层应用针对目标资源的IO请求;
所述至少两个主机用于:接收并响应所述第一指示,悬挂上层应用针对所述目标资源的IO请求,并向所述管理节点发送表示所述第一指示响应成功的第一响应消息;
所述管理节点还用于:接收所述第一响应消息,并在接收所述至少两个主机中所有主机发送的所述第一响应消息之后,向所述至少两个主机中的第一主机发送第三指示,所述第三指示用于指示所述第一主机将所述目标资源的锁类型标记由第一标记更改为第二标记,所述第一标记表示所述目标资源的锁类型为第一锁类型,所述第二标记表示所述目标资源的锁类型为第二锁类型;
所述第一主机用于:响应所述第三指示,将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记,向所述管理节点发送表示所述第三指示响应成功的第二响应消息;
所述管理节点还用于:接收所述第二响应消息,向所述至少两个主机发送第三指示,所述第三指示用于指示所述至少两个主机恢复上层应用针对所述目标资源的IO请求;
所述至少两个主机还用于:响应所述第二指示,恢复上层应用针对所述目标资源的IO请求;并在访问所述目标资源时,根据保存的所述第二锁类型的数据结构、以所述第二锁类型的加锁方式对所述目标资源加锁。
36.根据权利要求35所述的系统,其特征在于,所述管理节点还用于:在向所述第一主机发送所述第三指示之前,判断是否有主机尚在访问所述目标资源,若存在,则等待所述主机对所述目标资源的访问操作结束之后,指示所述发送模块向所述第一主机发送所述第三指示。
37.根据权利要求35或36所述的系统,其特征在于,所述第一主机用于:将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记,包括:
所述目标资源为所述文件系统时,将所述文件系统的超级块中的所述第一标记更改为所述第二标记。
38.根据权利要求35或36所述的系统,其特征在于,所述第一主机用于:将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记,包括:
所述目标资源为所述文件系统的超级块或目标文件时,将所述超级块或所述目标文件的元数据中的所述第一标记更改为所述第二标记。
39.根据权利要求35或36所述的系统,其特征在于,所述第一主机用于:将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记,包括:
所述目标资源为所述文件系统的目标目录时,新建临时目录,将所述目标目录下的子目录以及文件移动到所述临时目录,将所述临时目录、所述临时目录下的子目录以及文件的元数据中的锁类型标记设置为所述第二标记;删除所述目标目录,并将所述临时目录的目录标识更改为所述目标目录的目录标识。
40.根据权利要求39所述的系统,其特征在于,若所述目标目录为虚拟机或虚拟机的磁盘的入参目录时,则所述第一主机为运行所述虚拟机的主机。
41.根据权利要求35至40任一项所述的系统,其特征在于,所述至少两个主机还用于:在悬挂针对所述目标资源的IO请求之后,将上层应用针对所述目标资源的IO请求存储在等待队列中;以及,在恢复针对所述目标资源的IO请求之后,向创建所述文件系统的存储设备下发所述等待队列中存储的针对所述目标资源的IO请求。
42.根据权利要求35至41任一项所述的方法,其特征在于,所述至少两个主机还用于:
在启动时或挂载所述文件系统时,保存所述第一锁类型的数据结构以及所述第二锁类型的数据结构。
43.根据权利要求35至41任一项所述的方法,其特征在于,所述管理节点该用于:在向所述至少两个主机发送第一指示之前,发送第四指示,所述第四指示用于指示所述主机保存所述第二锁类型的数据结构;
所述至少两个主机还用于:接收并响应所述第四指示,保存所述第二锁类型的数据结构。
44.根据权利要求35至43任一项所述的系统,其特征在于,所述管理节点还用于:在指示所述至少两个主机悬挂针对目标资源的输入输出IO请求之前,根据用户对访问时效的需求和/或创建所述文件系统的存储设备的性能参数确定所述目标资源为所述文件系统还是所述文件系统中的文件或目录。
45.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有计算机指令,所述指令在计算机上运行时,使得计算机执行如权利要求1至16任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711160646.6A CN109947704B (zh) | 2017-11-20 | 2017-11-20 | 一种锁类型切换方法、装置及集群文件系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711160646.6A CN109947704B (zh) | 2017-11-20 | 2017-11-20 | 一种锁类型切换方法、装置及集群文件系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947704A true CN109947704A (zh) | 2019-06-28 |
CN109947704B CN109947704B (zh) | 2021-06-04 |
Family
ID=67003987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711160646.6A Active CN109947704B (zh) | 2017-11-20 | 2017-11-20 | 一种锁类型切换方法、装置及集群文件系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947704B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685094A (zh) * | 2020-12-24 | 2021-04-20 | 北京浪潮数据技术有限公司 | 一种服务卸载方法、装置、设备及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1195144A (zh) * | 1997-03-27 | 1998-10-07 | 国际商业机器公司 | 框架环境中工具数据对象的锁定 |
US20140351231A1 (en) * | 2013-05-22 | 2014-11-27 | International Business Machines Corporation | Low Overhead Contention-Based Switching Between Ticket Lock And Queued Lock |
-
2017
- 2017-11-20 CN CN201711160646.6A patent/CN109947704B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1195144A (zh) * | 1997-03-27 | 1998-10-07 | 国际商业机器公司 | 框架环境中工具数据对象的锁定 |
US20140351231A1 (en) * | 2013-05-22 | 2014-11-27 | International Business Machines Corporation | Low Overhead Contention-Based Switching Between Ticket Lock And Queued Lock |
Non-Patent Citations (2)
Title |
---|
LIFANG ZHANG: "Lock-in Strategy in Network Industries:A Network Effect Perspective", 《INTERNATIONAL CONFERENCE ON SERVICE SYSTEMS & SERVICE MANAGEMENT,IEEE,2009》 * |
刘芬,王芳,田昊: "基于Zookeeper的分布式锁服务及性能优化", 《计算机研究与发展》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685094A (zh) * | 2020-12-24 | 2021-04-20 | 北京浪潮数据技术有限公司 | 一种服务卸载方法、装置、设备及计算机可读存储介质 |
CN112685094B (zh) * | 2020-12-24 | 2023-12-22 | 北京浪潮数据技术有限公司 | 一种服务卸载方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109947704B (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7378870B2 (ja) | ファイルシステムデータアクセス方法およびファイルシステム | |
US10178174B2 (en) | Migrating data in response to changes in hardware or workloads at a data store | |
CN105242881B (zh) | 分布式存储系统及其数据读写方法 | |
CN105027070B (zh) | 卷操作的安全性 | |
CN106446159B (zh) | 一种存储文件的方法、第一虚拟机及名称节点 | |
CN102629941B (zh) | 云计算系统中虚拟机镜像缓存的方法 | |
CN102340533B (zh) | 多租户系统及多租户系统存取数据的方法 | |
CN102667772B (zh) | 文件级分级存储管理系统、方法和设备 | |
CN105224255B (zh) | 一种存储文件管理方法及装置 | |
CN105549905A (zh) | 一种多虚拟机访问分布式对象存储系统的方法 | |
US20060047926A1 (en) | Managing multiple snapshot copies of data | |
CN107798130A (zh) | 一种分布式存储的快照方法 | |
CN103503414A (zh) | 一种计算存储融合的集群系统 | |
CN105227672B (zh) | 数据存储及访问的方法和系统 | |
CN109582213A (zh) | 数据重构方法及装置、数据存储系统 | |
CN103500146A (zh) | 虚拟机磁盘存储数据迁移方法和系统 | |
CN101945131A (zh) | 一种基于存储虚拟化的数据迁移方法 | |
CN107329704A (zh) | 一种缓存镜像方法及控制器 | |
CN110460635A (zh) | 一种面向无人驾驶的边缘卸载方法及装置 | |
US7792966B2 (en) | Zone control weights | |
CN104636088B (zh) | 一种将数据写入数据服务器的方法及存储系统 | |
CN104199926B (zh) | 文件归档实现方法和装置以及文件访问方法和装置 | |
US11157456B2 (en) | Replication of data in a distributed file system using an arbiter | |
WO2024021470A1 (zh) | 一种跨区域的数据调度方法、装置、设备及存储介质 | |
CN107408239B (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 |