[发明专利]一种分布式独占锁的实现方法和装置有效
| 申请号: | 201811291978.2 | 申请日: | 2018-11-01 |
| 公开(公告)号: | CN109324764B | 公开(公告)日: | 2021-11-26 |
| 发明(设计)人: | 马怀旭 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
| 主分类号: | G06F3/06 | 分类号: | G06F3/06 |
| 代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 林桐苒;解婷婷 |
| 地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 分布式 独占 实现 方法 装置 | ||
本发明公开了一种分布式独占锁的实现方法和装置。涉及虚拟化计算平台技术,解决了基于RBD的分布式锁锁资源残留的问题。该方法包括:维护租约进程;节点在获取锁资源时,注册至所述租约进程,通过所述租约进程完成对分布式锁的I/O操作。本发明提供的技术方案适用于Sanlock分布式锁,实现了支持租约的分布式锁系统。
技术领域
本发明涉及虚拟化计算平台技术,尤指一种分布式独占锁的实现方法和装置。
背景技术
随着计算机技术和网络技术的快速发展,大型集群在实际生产环境中得到广泛使用。通过将服务器集群虚拟化,组成云计算平台虚拟化系统,在虚拟化系统中,常常需要协调动作,不同系统或者是在同一个系统不同主机之间共享同一个或一组资源,往往需要互斥来防止彼此的干扰,保证一致性,因此需要分布式锁来保证上述情况下系统的正常运行。
分布式锁一般来说需要支撑大规格环境下的使用,因此需要使用带租约的分布式锁来保证获取锁资源的节点的唯一性,同时还要保证同一个节点唯一的获取该资源。由于分布式锁的获取者是集群中的主机成员,因此分布式锁的实现方式分为两种:一种为网络型的,即DLM实现方式;一种是共享存储型的,即sanlock实现方式。但是sanlock并不支持ceph的可靠的自动的分布式存储块设备(RBD),因此需要实现一套基于RBD的分布式锁系统。现有的基于RBD的分布式锁系统中,当节点离线或者是网络断开时后容易造成锁资源的残留。
发明内容
为了解决上述技术问题,本发明提供了一种分布式独占锁的实现方法和装置。通过租约进程对锁资源进行管理,解决了基于RBD的分布式锁锁资源残留的问题。
为了达到本发明目的,本发明提供了一种分布式独占锁的实现方法,包括:
维护租约进程;
节点在获取锁资源时,注册至所述租约进程,通过所述租约进程完成对分布式锁的I/O操作。
优选的,该方法还包括:
定时向所述分布式锁的存储池下发所述节点的时间戳,表明所述节点在线。
优选的,该方法还包括:
在预置的检测间隔没有接收到所述节点更新的时间戳时,判定所述节点已经离线。
优选的,该方法还包括:
在检测到节点离线后,释放所述节点占用的锁资源。
优选的,节点在获取锁资源时,注册至所述租约进程,通过所述租约进程完成对分布式锁的I/O操作的步骤之前,还包括:
进行锁信息查询,根据所述节点请求的锁资源的标识,查询占用所述锁资源的主机;
在所述锁资源未被任何主机占用或占用所述锁资源的主机已离线时,将所述锁资源分配给所述节点。
优选的,所述锁资源的标识包含所述租约进程的进程ID信息和节点ID信息。
优选的,该方法还包括:
当所述租约进程终结时,释放所述租约进程涉及的全部锁资源。
本发明还提供了一种分布式独占锁的实现装置,包括:
进程管理模块,用于维护租约进程;
I/O操作模块,用于在获取锁资源时,注册至所述租约进程,通过所述租约进程完成对分布式锁的I/O操作。
优选的,该装置还包括:
检测模块,用于接收定时向所述分布式锁的存储池下发所述节点的时间戳,并在预置的检测间隔没有接收到所述节点更新的时间戳时,判定所述节点已经离线。
优选的,该装置还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811291978.2/2.html,转载请声明来源钻瓜专利网。





