一种分布式锁管理器及其实现方法技术

技术编号:20164689 阅读:26 留言:0更新日期:2019-01-19 00:17
本发明专利技术公开了一种分布式锁管理器及其实现方法。该方法包括:在集群的共享磁盘中划分通信地址空间,所述通信地址空间包含多个消息槽,每个消息槽对应一个所述集群中的节点;将待向节点发送的锁信息写入所述节点对应的消息槽。本发明专利技术提供的技术方案适用于集群系统中节点间锁信息同步,实现了高可靠性的DLM。

【技术实现步骤摘要】
一种分布式锁管理器及其实现方法
本专利技术涉及集群文件系统技术,尤指一种分布式锁管理器(DLM)及其实现方法。
技术介绍
由于集群文件系统可以同时被多个服务器同时共享并进行挂载,在服务器虚拟化领域,集群文件系统会被用作多个计算节点与集中式存储之间的桥梁。集群文件系统能够提供文件并发访问控制、完整性保证、以及冗余性等功能,被虚拟化系统用于存储虚拟机镜像、共享存储池等。而DLM是构成集群文件系统的关键组件,用于对共享资源的并发访问进行管理,解决了集群节点之间磁盘缓存一致性问题,提高了共享文件访问的效率。常见的集群文件系统如GFS,VMFS,OpenVMSFiles,ocfs2等都实现了自己的DLM。在DLM工作过程中,需要依赖于网络进行节点间通信以同步锁信息,包括锁信息查询、获取远程锁、锁降级等操作,因此网络的可靠性直接影响了DLM的效率与稳定性。常见的DLM实现方法中,在集群的节点之间基于指定端口建立长连接,对锁消息进行封装后通过TCP/IP来进行锁信息交互。但网络的稳定性较差,网络的波动、延迟都会影响到DLM消息的传输,直接影响到了集群文件系统的工作,乃至引发文件系统的保护机制fence,造成集群的部分节点瘫痪。问题的根源在于整个系统的稳定性依赖于TCP/IP的可靠性,而在服务器虚拟化场景中,TCP/IP网络的可靠性是较低的,因此该设计会大大影响系统的整体可靠性。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种DLM及其实现方法。在集群的共享磁盘中划分通信地址空间,通过该通信地址空间完成节点之间的锁信息交互,实现了高可靠性的DLM,解决了现在的DLM机制高度依赖网络造成的容易出现故障误差的问题。为了达到本专利技术目的,本专利技术提供了一种分布式锁管理器实现方法,包括:在集群的共享磁盘中划分通信地址空间,所述通信地址空间包含多个消息槽,每个消息槽对应一个所述集群中的节点;将待向节点发送的锁信息写入所述节点对应的消息槽。优选的,将待向节点发送的锁信息写入所述节点对应的消息槽的步骤包括:争夺向所述节点发送锁信息的发送权;在获取所述发送权后,向所述节点对应的消息槽写入所述锁信息。优选的,该方法还包括:节点轮询通信地址空间中所述节点对应的消息槽,读取所述消息槽中的锁信息。优选的,节点轮询通信地址空间中所述节点对应的消息槽,读取所述消息槽中的锁信息的步骤之后,还包括:所述节点在读取该节点对应的消息槽中的锁信息后,执行所述锁信息指示的操作;在操作完成后,向发送所述锁信息的节点对应的消息槽写入处理完成标志。优选的,在操作完成后,向发送所述锁信息的节点对应的消息槽写入处理完成标示的步骤之后,还包括:所述节点在读取到其他节点发送的处理完成标志后,清理本节点对应的消息槽。本专利技术还提供了一种分布式锁管理器,包括:通信空间管理模块,用于在集群的共享磁盘中划分通信地址空间,所述通信地址空间包含多个消息槽,每个消息槽对应一个所述集群中的节点;消息写入模块,用于将待向节点发送的锁信息写入所述节点对应的消息槽。优选的,所述消息写入模块包括:发送权获取单元,用于争夺向所述节点发送锁信息的发送权;写入单元,用于在获取所述发送权后,向所述节点对应的消息槽写入所述锁信息。优选的,所述分布式锁管理器还包括:信息轮询读取模块,用于轮询通信地址空间中所述节点对应的消息槽,读取所述消息槽中的锁信息。优选的,所述分布式锁管理器还包括:操作执行模块,用于在读取该节点对应的消息槽中的锁信息后,执行所述锁信息指示的操作;所述消息写入模块,还用于在操作完成后,向发送所述锁信息的节点对应的消息槽写入处理完成标志。优选的,所述消息写入模块,还用于在读取到其他节点发送的处理完成标志后,清理本节点对应的消息槽。本专利技术提供了一种DLM及其实现方法,在集群的共享磁盘中划分通信地址空间,所述通信地址空间包含多个消息槽,每个消息槽对应一个所述集群中的节点,然后将待向节点发送的锁信息写入所述节点对应的消息槽。通过共享磁盘中转节点间交互的锁信息,脱离了实时消息发送对网络的依赖,解决了现在的DLM机制高度依赖网络造成的容易出现故障误差的问题,实现了高可靠性的DLM。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本专利技术技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本专利技术的技术方案,并不构成对本专利技术技术方案的限制。图1为本专利技术的一实施例提供的一种DLM实现方法的流程示意图;图2为本专利技术的一实施例提供的一种DLM的结构示意图;图3为图2中消息写入模块202的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。在DLM工作过程中,需要依赖于网络进行节点间通信以同步锁信息,包括锁信息查询、获取远程锁、锁降级等操作,因此网络的可靠性直接影响了DLM的效率与稳定性。常见的DLM实现方法中,在集群的节点之间基于指定端口建立长连接,对锁消息进行封装后通过TCP/IP来进行锁信息交互。但网络的稳定性较差,网络的波动、延迟都会影响到DLM消息的传输,直接影响到了集群文件系统的工作,乃至引发文件系统的保护机制fence,造成集群的部分节点瘫痪。问题的根源在于整个系统的稳定性依赖于TCP/IP的可靠性,而在服务器虚拟化场景中,TCP/IP网络的可靠性是较低的,因此该设计会大大影响系统的整体可靠性。为了解决上述问题,本专利技术的实施例提供了一种DLM及其实现方法。下面结合附图,对本专利技术的实施例进行说明。本专利技术的一实施例提供了一种DLM实现方法,使用该方法通过DLM完成集群内节点间锁信息交互的流程如图1所示,包括:步骤101、在集群的共享磁盘中划分通信地址空间,所述通信地址空间包含多个消息槽,每个消息槽对应一个所述集群中的节点。本专利技术实施例中,在共享磁盘上指定位置预留一段通信地址空间,将通信地址空间分成N个消息槽(slot),预留给集群中的每个节点。步骤102、将待向节点发送的锁信息写入所述节点对应的消息槽。本专利技术实施例中,每个节点都从自己的消息槽中接收其他节点发过来的消息,通过向其他节点的消息槽写入来发送消息。本专利技术实施例中所涉及的锁信息包括锁信息查询、获取远程锁、锁降级等信息。本步骤具体包括:1、争夺向所述节点发送锁信息的发送权。例如,在发消息时首先通过diskpaxos的算法来获取向指定节点发消息的发送权,一旦获得该权力后就可向对应的消息槽写入消息。2、在获取所述发送权后,向所述节点对应的消息槽写入所述锁信息。步骤103、节点轮询通信地址空间中所述节点对应的消息槽,读取所述消息槽中的锁信息。本步骤中,节点通过轮询机制来查看是否有节点向其发送消息,一旦收到消息就对消息进行解析,并调用相应的消息处理本文档来自技高网...

【技术保护点】
1.一种分布式锁管理器实现方法,其特征在于,包括:在集群的共享磁盘中划分通信地址空间,所述通信地址空间包含多个消息槽,每个消息槽对应一个所述集群中的节点;将待向节点发送的锁信息写入所述节点对应的消息槽。

【技术特征摘要】
1.一种分布式锁管理器实现方法,其特征在于,包括:在集群的共享磁盘中划分通信地址空间,所述通信地址空间包含多个消息槽,每个消息槽对应一个所述集群中的节点;将待向节点发送的锁信息写入所述节点对应的消息槽。2.根据权利要求1所述的分布式锁管理器实现方法,其特征在于,将待向节点发送的锁信息写入所述节点对应的消息槽的步骤包括:争夺向所述节点发送锁信息的发送权;在获取所述发送权后,向所述节点对应的消息槽写入所述锁信息。3.根据权利要求1或2所述的分布式锁管理器实现方法,其特征在于,该方法还包括:节点轮询通信地址空间中所述节点对应的消息槽,读取所述消息槽中的锁信息。4.根据权利要求3所述的分布式锁管理器实现方法,其特征在于,节点轮询通信地址空间中所述节点对应的消息槽,读取所述消息槽中的锁信息的步骤之后,还包括:所述节点在读取该节点对应的消息槽中的锁信息后,执行所述锁信息指示的操作;在操作完成后,向发送所述锁信息的节点对应的消息槽写入处理完成标志。5.根据权利要求4所述的分布式锁管理器实现方法,其特征在于,在操作完成后,向发送所述锁信息的节点对应的消息槽写入处理完成标示的步骤之后,还包括:所述节点在读取到其他节点发送的处理完...

【专利技术属性】
技术研发人员:李宏伟
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1