[发明专利]一种磁盘锁的管理方法、装置和系统在审
申请号: | 201610895164.4 | 申请日: | 2016-10-13 |
公开(公告)号: | CN106648909A | 公开(公告)日: | 2017-05-10 |
发明(设计)人: | 程菊生;薛玖飞;江毅文;王义彬 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 磁盘 管理 方法 装置 系统 | ||
技术领域
本发明实施例涉及计算机领域,尤其涉及一种资源访问的方法、装置和系统。
背景技术
在分布式系统中,分布式锁是不可或缺。而分布式锁有很多种实现方法。
磁盘锁是分布式锁的一种实现形式,拥有磁盘锁的节点用于访问磁盘锁对应资源的权限,节点通过光纤存储区域网络(Fiber Channel Storage Area Network,FC SAN)或互联网协议存储区域网络(Internet Protocol Storage Area Network,IP SAN)以小型计算机系统接口(Small computer system interface,SCSI)命令的形式将加锁、解锁的消息写入磁盘,或者通过FC-SAN或IP-SAN以SCSI命令的形式从磁盘读出锁的状态,从而决定是否加锁或解锁。
磁盘锁存储于磁盘上的,每次要刷新锁的信息就是不断地读磁盘,然后将新的锁信息写到磁盘,对磁盘锁的频繁刷新会锁消耗大量的磁盘输入输出(Input Output,IO)。在一个中等规模的分布式系统中,如果所有节点都这样不断地从磁盘读锁信息,然后将锁信息写到磁盘,那么大量地IO将被磁盘锁占用,系统的性能将会受到很大的影响。
发明内容
有鉴于此,本发明实施例公开了一种磁盘锁的管理方法、装置和系统。以根据实际的需求,来对磁盘锁进行操作,减少了对磁盘锁的频繁更新,提升了分布式系统的性能。
第一方面,本申请提供了一种磁盘锁的管理方法,资源和资源的磁盘锁保存在数据存储系统中,占有磁盘锁的节点拥有访问资源的权限,该方法包括:第一节点向数据存储系统发送获取请求,获取请求用于请求获取磁盘锁;第一节点接收释放请求,释放请求用于请求第一节点释放磁盘锁;第一节点向数据存储系统发送释放消息,释放消息用于释放磁盘锁。
结合第一方面,在第一方面第一种可能的实现方式中,第一节点接收释放请求包括:第一节点接收来自第二节点的释放请求,第二节点为待请求获取磁盘锁的节点。
如果第一节点和第二节点互联,则第二节点需要访问资源时,可以直接向第一节点发送释放请求,请求第一节点释放该资源的磁盘锁。
结合第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,第一节点向数据存储系统发送释放消息之后,该方法还包括:第一节点向第二节点发送确认消息,确认消息用于指示第一节点已经释放磁盘锁。
第一节点释放磁盘锁后,可以通过向第二节点发送确认消息,用于指示已经释放了磁盘锁,第二节点接收到确认消息后,可以去申请磁盘锁,从而获得访问资源的权限。
结合第一方面或第一方面以上任一种可能的实现方式,在第一方面第三种可能的实现方式中,第一节点接收释放请求包括:第一节点接收来自数据存储系统的释放请求。
当第二节点和第一节点没有互联时,可以通过数据存储系统向第一节点发送释放请求,从而使第一节点释放磁盘锁。
结合第一方面或第一方面以上任一种可能的实现方式,在第一方面第四种可能的实现方式中,第一节点向数据存储系统发送释放消息之前,该方法还包括:第一节点确定第一节点占用磁盘锁的时间超过预设的阈值。
为了避免频繁的锁申请和锁释放,可以为每个节点设置一个预设的时间阈值,当一个节点对磁盘锁的占用时间超过这个预设的阈值后,才会释放磁盘锁。
结合第一方面或第一方面以上任一种可能的实现方式,在第一方面第五种可能的实现方式中,磁盘锁包含占有字段,占有字段用于记录占有磁盘锁的节点,获取请求中携带第一节点的标识,获取请求用于将第一节点的标识写入磁盘锁的占有字段。
第二方面,本申请提供一种磁盘锁的管理方法,资源和资源的磁盘锁保存在数据存储系统中,磁盘锁包含占有字段,占有字段用于记录占有磁盘锁的节点,占有磁盘锁的节点拥有访问资源的权限,该方法包括:第二节点读取磁盘锁;第二节点根据读取的磁盘锁的占有字段,确定磁盘锁被第一节点占用;第二节点向第一节点发送释放请求,释放请求用于请求第一节点释放磁盘锁。
结合第二方面,在第二方面第一种可能的实现方式中,第二节点向第一节点发送释放请求之后,该方法还包括:第二节点接收第一节点发送的确认消息,确认消息用于指示第一节点已经释放磁盘锁。
第一节点释放磁盘锁后,可以通过主动通知的形式,使得第二节点获取这一消息,第二节点获取确认消息后,可以去申请磁盘锁,从而可以避免第二节点对磁盘锁状态频繁的确认操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610895164.4/2.html,转载请声明来源钻瓜专利网。