一种锁类型切换方法、装置及集群文件系统制造方法及图纸

技术编号:21477115 阅读:50 留言:0更新日期:2019-06-29 04:43
一种锁类型切换方法、装置及集群文件系统,用以解决锁类型切换耗时较长的问题。该方法应用于运行文件系统的主机,主机的内存保存有第一锁类型的数据结构以及第二锁类型的数据结构,该方法包括:接收管理节点的第一指示,第一指示指示主机悬挂针对目标资源的IO请求;悬挂针对目标资源的IO请求;接收管理节点在目标资源的锁类型标记由第一标记更改为第二标记后发送的第二指示,第一标记表示锁类型为第一锁类型,第二标记表示锁类型为第二锁类型,第二指示用于指示主机恢复上层应用针对目标资源的IO请求;恢复上层应用针对目标资源的IO请求;根据保存的第二锁类型的数据结构、以第二锁类型的加锁方式对目标资源加锁。

【技术实现步骤摘要】
一种锁类型切换方法、装置及集群文件系统
本申请涉及计算机
,尤其涉及一种锁类型切换方法、装置及集群文件系统。
技术介绍
集群文件系统通过加锁机制保证多个主机访问文件的一致性,目前常用的加锁机制包括:(1)网络锁,主机访问文件时,向文件的网络锁拥有者(master)请求对文件加锁,在获得文件的锁权限后访问该文件。(2)磁盘锁,与网络锁不同,文件的加锁信息保存在创建文件系统的存储设备中,主机访问文件时,在存储设备中写入对文件的加锁信息,在成功写入加锁信息后访问该文件。采用不同的锁类型对文件进行加锁,文件的访问性能可以不同,因此,根据文件系统的使用场景的变化切换文件的锁类型。现有技术中,锁类型的切换过程为:在创建文件系统的存储设备中写入表征要切换的目标锁类型的全局标记位,然后集群文件系统中的所有主机暂停访问文件系统,并卸载文件系统,然后,重新挂载文件系统,并在挂载文件系统时,主机初始化目标锁类型的数据结构,进而能够根据目标锁类型的数据结构,按照目标锁类型的流程对文件加锁。但是,上述锁类型切换方式存在耗时较长的问题。
技术实现思路
本申请提供一种锁类型切换方法、装置及集群文件系统,用以解决现有技术中存在锁类型切换耗时较长的问题。第一方面,本申请提供一种锁类型切换方法,应用于运行文件系统的主机,所述主机的内存保存有第一锁类型的数据结构以及第二锁类型的数据结构,所述方法包括:接收管理节点发送的第一指示,该第一指示用于指示主机悬挂上层应用针对目标资源的IO请求;响应所述第一指示,悬挂上层应用针对所述目标资源的IO请求,向所述管理节点发送表示第一指示响应成功的第一响应消息;接收所述管理节点发送的第二指示,所述第二指示由所述管理节点在所述目标资源的锁类型标记由第一标记更改为第二标记后发送,所述第一标记表示所述目标资源的锁类型为第一锁类型,所述第二标记表示所述目标资源的锁类型为第二锁类型,所述第二指示用于指示所述主机恢复上层应用针对所述目标资源的IO请求;响应所述第二指示,恢复针对所述目标资源的IO请求。主机在访问所述目标资源时,根据保存的所述第二锁类型的数据结构、以所述第二锁类型的加锁方式对所述目标资源加锁。上述技术方案中由于锁类型切换过程无需主机先卸载文件系统(即卸载创建文件系统的存储设备)再重新挂载文件系统,所以可以显著减少锁类型切换的耗时。在第一方面的一些实现方式中,主机在向所述管理节点发送响应消息之后以及接收所述第二指示之前,接收所述管理节点发送的第三指示,所述第三指示用于指示所述主机将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记;响应所述第三指示,将所述目标资源的所述锁类型标记由所述第一标记更改为所述第二标记,向所述管理节点发送表示所述第三指示响应成功的第二响应消息。虽然主机悬挂上层应用针对目标资源的IO请求,但主机自身仍然能够访问创建文件系统的存储设备,能够更改存储设备中的锁类型标记,实现锁类型的切换。上述切换锁类型的方式实现方式简单、高效。在第一方面的一些实现方式中,所述目标资源为所述文件系统时,主机将所述文件系统的超级块中的所述第一标记更改为所述第二标记。上述技术方案中,文件系统中的文件和目录可以采用相同的锁类型,管理节点可以在运行文件系统的主机不卸载文件系统(或创建文件系统的存储设备)的情况下指示第一主机更改文件系统的锁类型标记,由于主机保存有要更改后锁类型标记指示的锁类型的数据结构,因此,主机可以根据切换后的锁类型规定的流程对文件系统中的文件和目录加锁,进而访问文件和目录。由于无需进行存储设备的卸载以及重新挂载,可以减少锁类型切换过程的耗时。在第一方面的一些实现方式中,在所述目标资源为所述文件系统的超级块或目标文件时,主机将所述超级块或所述目标文件的元数据中的所述第一标记更改为所述第二标记。上述技术方案中,管理节点可以在主机不卸载文件系统以及不改变该文件系统中其它文件或目录的锁类型的情况下,指示第一主机更改目标文件的锁类型标记,由于主机保存有切换后锁类型的数据结构,因此,文件系统中的主机可以根据切换后锁类型规定的流程对目标文件加锁,进而访问目标文件。由于无需进行文件系统的卸载以及重新挂载,可以减少锁类型切换过程的耗时。不仅如此,管理节点可以更改文件系统中一个或部分文件的锁类型,而保持其余文件的锁类型不变,换言之,文件系统中不同的文件可以根据其使用场景、文件特性等不同因素采用不同的锁类型,使得主机能够根据与文件相适应的锁类型访问该文件,提高主机访问文件系统中文件的效率。再者,上述方案以文件为粒度进行加锁,可以避免现有技术中以逻辑单元号(logicalunitnumber,LUN)为粒度进行加锁存在的当节点规模扩大锁性能急剧下降的问题,提高文件系统的加锁效率。在第一方面的一些实现方式中,在所述目标资源为所述文件系统的目标目录时,主机新建临时目录,将所述目标目录下的子目录以及文件移动到所述临时目录,将所述临时目录、所述临时目录下的子目录以及文件的元数据中的锁类型标记设置为所述第二标记;删除所述目标目录,并将所述临时目录的目录标识更改为所述目标目录的目录标识。上述技术方案中,管理节点可以在主机不卸载文件系统以及不改变文件系统中其它目录的锁类型的情况下,通过创建临时目录,将原目标目录下子目录以及文件移动至该临时目录,将该临时目录及其子目录、下属文件的锁类型标识设置为指示要切换的第二锁类型的第二标记,再删除原目标目录,将临时目录更改为目标目录,实现目标目录及其下属子目录、锁类型的快速切换。由于主机保存有要切换后锁类型的数据结构,因此可以根据切换后锁类型规定的流程对目标目录或其下属文件加锁。由于无需进行文件系统的卸载以及重新挂载,可以减少锁类型切换过程的耗时。不仅如此,由于可以更改存储设备中一个或部分目录的锁类型,而保持其余目录的锁类型不变,文件系统中不同的目录可以根据其使用场景、包括文件特性等不同因素采用不同的锁类型,使得主机能够根据与目录相适应的锁类型访问该目录,提高主机访问文件系统中目录的效率。再者,上述方案以目录为粒度进行加锁,可以避免现有技术中以LUN为粒度进行加锁存在的当节点规模扩大锁性能急剧下降的问题,提高文件系统的加锁效率。在第一方面的一些实现方式中,主机在响应所述第一指示,悬挂针对所述目标资源的IO请求之后,将上层应用针对所述目标资源的IO请求存储在等待队列中。以及,主机在响应所述第二指示,恢复上层应用针对所述目标资源的IO请求之后,向创建所述文件系统的存储设备下发所述等待队列中存储的针对所述目标资源的IO请求。上述技术方案中,主机根据管理节点悬挂针对目标资源的IO请求后,将上层应用针对目标资源的IO请求存储在等待队列中,以便在根据管理节点的指示恢复针对目标资源的IO请求后,可以快速下发上层应用已产生的IO请求,快速满足上层应用访问目标资源的需求。在第一方面的一些实现方式中,主机在启动时或挂载所述文件系统时,保存所述第一锁类型的数据结构以及所述第二锁类型的数据结构,上述方案实现简单、效率较高。在第一方面的一些实现方式中,主机在接收所述第一指示之前,接收所述管理节点的第四指示,所述第四指示用于指示所述主机保存所述第二锁类型的数据结构;响应所述第四指示,保存所述第二锁本文档来自技高网...

【技术保护点】
1.一种锁类型切换方法,其特征在于,应用于运行文件系统的主机,所述主机的内存保存有第一锁类型的数据结构以及第二锁类型的数据结构,所述方法包括:接收管理节点发送的第一指示,所述第一指示用于指示所述主机悬挂上层应用针对目标资源的输入输出IO请求;响应所述第一指示,悬挂上层应用针对所述目标资源的IO请求,向所述管理节点发送表示所述第一指示响应成功的第一响应消息;接收所述管理节点发送的第二指示,所述第二指示由所述管理节点在所述目标资源的锁类型标记由第一标记更改为第二标记后发送,所述第一标记表示所述目标资源的锁类型为第一锁类型,所述第二标记表示所述目标资源的锁类型为第二锁类型,所述第二指示用于指示所述主机恢复上层应用针对所述目标资源的IO请求;响应所述第二指示,恢复上层应用针对所述目标资源的IO请求;在访问所述目标资源时,根据保存的所述第二锁类型的数据结构、以所述第二锁类型的加锁方式对所述目标资源加锁。

【技术特征摘要】
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请求存储在等待队列中;以及在响应所述第二指...

【专利技术属性】
技术研发人员:张羽江毅文
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1