[发明专利]一种分布式锁实现方法和系统有效
申请号: | 201811213656.6 | 申请日: | 2018-10-18 |
公开(公告)号: | CN109408485B | 公开(公告)日: | 2020-12-01 |
发明(设计)人: | 马怀旭 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F16/182 | 分类号: | G06F16/182;G06F9/52 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 王康;解婷婷 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 实现 方法 系统 | ||
本发明公开了一种分布式锁实现方法和系统。涉及集群文件系统技术,解决了现有的共享存储型分布式锁兼容性差及容易发生锁残留影响正常使用的问题。该方法包括:在节点需要进行I/O时,获取RBD的服务器端的RBD信息,根据所述RBD信息;在所述服务器端的资源管理进程中对所述RBD的映像进行注册,对所述RBD的映像进行独占锁。适用于共享存储型分布式锁,实现了基于进程的支持RBD的分布式锁。
技术领域
本发明涉及集群文件系统技术,尤指一种分布式锁实现方法和系统。
背景技术
随着计算机技术和网络技术的快速发展,大型集群在实际生产环境中使用,通过虚拟化,组成云计算平台。在虚拟化系统中,常常需要协调动作,不同系统或者是在同一个系统的不同主机之间共享同一个或一组资源,往往需要互斥来防止彼此的干扰,保证一致性,因此需要分布式锁来保证上述互斥规则的实现。
分布式锁一般来说需要支撑大规格环境下的使用,共享存储型的分布式锁能够很好的达到上述效果。但共享存储型的分布式锁对于分布式文件系统块设备(Rados BlockDevice,RBD)并不支持。且由于使用过程中节点离线等原因,会造成节点获取的资源锁无法释放,进而导致锁残留,阻止了其他节点来获取该锁资源。
发明内容
为了解决上述技术问题,本发明提供了一种分布式锁实现方法和系统。
为了达到本发明目的,本发明提供了一种分布式锁实现方法,包括:
在节点需要进行I/O时,获取分布式文件系统块设备(RBD)的服务器端的RBD信息;
根据所述RBD信息,在所述服务器端的资源管理进程中对所述RBD的映像进行注册,对所述RBD的映像进行独占锁。
优选的,在节点需要进行I/O时,获取分布式文件系统块设备RBD的服务器端的RBD信息的步骤之后,还包括:
在所述RBD信息指示所述节点不是唯一一个打开所述RBD的映像的节点时,判定对所述RBD的映像独占锁失败。
优选的,获取分布式文件系统块设备RBD的服务器端的RBD信息的步骤包括:
获取所述RBD服务器端的监控Watcher信息,在所述Watcher信息中记录有占用所述RBD的节点的历史信息。
优选的,根据所述RBD信息,在所述服务器端的资源管理进程中对所述RBD的映像进行注册,对所述RBD的映像进行独占锁的步骤之后,还包括:
在所述服务器端在监控到与所述节点的连接断开时,终止所述节点对所述RBD进行独占锁的进程。
本发明还提供了一种分布式锁实现系统,包括:
客户端信息获取模块,用于在节点需要进行I/O时,获取RBD的服务器端的RBD信息;
客户端锁占用模块,用于根据所述RBD信息,在所述服务器端的资源管理进程中对所述RBD的映像进行注册,对所述RBD的映像进行独占锁。
优选的,所述客户端锁占用模块,还用于在所述RBD信息指示所述节点不是唯一一个打开所述RBD的映像的节点时,判定对所述RBD的映像独占锁失败。
优选的,所述客户端信息获取模块,具体用于获取所述RBD服务器端的监控Watcher信息,在所述Watcher信息中记录有占用所述RBD的节点的历史信息。
优选的,该系统还包括:
服务器端锁管理模块,用于在所述服务器端在监控到与所述节点的连接断开时,终止所述节点对所述RBD进行独占锁的进程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811213656.6/2.html,转载请声明来源钻瓜专利网。