【技术实现步骤摘要】
一种锁类型切换方法、装置及集群文件系统
本申请涉及计算机
,尤其涉及一种锁类型切换方法、装置及集群文件系统。
技术介绍
集群文件系统通过加锁机制保证多个主机访问文件的一致性,目前常用的加锁机制包括:(1)网络锁,主机访问文件时,向文件的网络锁拥有者(master)请求对文件加锁,在获得文件的锁权限后访问该文件。(2)磁盘锁,与网络锁不同,文件的加锁信息保存在创建文件系统的存储设备中,主机访问文件时,在存储设备中写入对文件的加锁信息,在成功写入加锁信息后访问该文件。采用不同的锁类型对文件进行加锁,文件的访问性能可以不同,因此,根据文件系统的使用场景的变化切换文件的锁类型。现有技术中,锁类型的切换过程为:在创建文件系统的存储设备中写入表征要切换的目标锁类型的全局标记位,然后集群文件系统中的所有主机暂停访问文件系统,并卸载文件系统,然后,重新挂载文件系统,并在挂载文件系统时,主机初始化目标锁类型的数据结构,进而能够根据目标锁类型的数据结构,按照目标锁类型的流程对文件加锁。但是,上述锁类型切换方式存在耗时较长的问题。
技术实现思路
本申请提供一种锁类型切换方法、装置及集群文件系统,用以解决现有技术中存在锁类型切换耗时较长的问题。第一方面,本申请提供一种锁类型切换方法,应用于运行文件系统的主机,所述主机的内存保存有第一锁类型的数据结构以及第二锁类型的数据结构,所述方法包括:接收管理节点发送的第一指示,该第一指示用于指示主机悬挂上层应用针对目标资源的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请求存储在等待队列中;以及在响应所述第二指...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。