一种基于分布式锁的存储的IO操作方法及装置制造方法及图纸

技术编号:16365288 阅读:31 留言:0更新日期:2017-10-10 21:15
本发明专利技术公开了一种基于分布式锁的存储的IO操作方法,应用于第一主机,第一主机与多个其他主机均连接于同一共享存储,按照预设的读取周期读取每个其他主机按照预设的写入周期写入至共享存储的时间戳,在对共享存储中的目标数据下发第一IO操作指令时,检测目标数据是否被第二主机占用,如果是,则读取第二主机的时间戳,根据此次读取的第二主机的时间戳和上一次读取的第二主机的时间戳,确定第二主机是否离线,如果是,则解除第二主机对目标数据的占用并进行IO操作。应用本发明专利技术所提供的技术方案,避免了第二主机并未离线,但由于第二主机的IO超时被意外隔离的情况。本发明专利技术还公开了一种基于分布式锁的存储的IO操作装置,具有相应技术效果。

Storage based IO operation method and device based on distributed lock

The invention discloses a method of operation of IO storage distributed lock based on the application in the first host, the first host and many other hosts are connected to the same shared memory, in accordance with the read cycle to read each other host according to the preset write cycle is written to share the timestamp stored in the default, in shared memory the target data issued the first IO operating instructions, the target detection data is second if the host is occupied, the timestamp is read second hosts, according to the timestamp of the read second host and a reading of the second hosts, to determine whether the host second is offline, if yes, released from the second host the target data of the occupation and the operation of IO. The technical scheme provided by the invention avoids the fact that the second host is not off-line but is accidentally isolated due to the IO timeout of the second host. The invention also discloses a storage based IO operating device based on the distributed lock, and has corresponding technical effects.

【技术实现步骤摘要】
一种基于分布式锁的存储的IO操作方法及装置
本专利技术涉及计算机应用
,特别是涉及一种基于分布式锁的存储的IO操作方法及装置。
技术介绍
随着计算机技术以及网络技术的发展,在存储的实际生产环境中,常常出现虚拟化的大型集群。在虚拟化系统中,可能有不同系统或者同一系统的多个主机连接至同一个或者一组资源,这时就需要分布式锁来避免获取资源的各个主机间的相互干扰。现有技术中,通常采用共享存储的方案来实现分布式锁。对于连接至同一共享存储的每个主机,当其中一个主机对共享存储进行占用时,例如其中一个主机对共享存储进行写操作时,将其称为一号主机,其他主机要等待一号主机的写操作进程结束才能对共享存储进行IO操作。通常,现有技术的分布式锁方案中会采用一个超时机制,即当一号主机断开与共享存储的连接超过一定时间时,分布式锁会解除一号主机对共享存储的占用,使得其他主机可以占用该共享存储。然而,如果共享存储的IO压力大,即使一号主机并未断开与共享存储的连接,分布式锁也会误将一号主机对共享存储的占用解除,当共享存储重新接收到一号主机的IO操作指令时,由于其他主机此时占用了该共享存储,使得一号主机被隔离,无法完成此前未完成的IO操作。因此,如何找到一个稳定的分布式锁方案,是目前本领域技术人员急需解决的技术问题。
技术实现思路
本专利技术的目的是提供一种基于分布式锁的存储的IO操作方法及装置,避免了第二主机并未离线,但由于第二主机的IO超时造成对第二主机的意外的隔离,从而无法完成对共享存储的IO操作的情况。为解决上述技术问题,本专利技术提供如下技术方案:一种基于分布式锁的存储的IO操作方法,应用于第一主机,所述第一主机与多个其他主机均连接于同一共享存储,该方法包括:按照预设的读取周期读取每个其他主机按照预设的写入周期写入至所述共享存储的时间戳;在对所述共享存储中的目标数据下发第一IO操作指令时,检测所述目标数据是否被第二主机占用,所述第二主机为多个其他主机中的任意一个;如果是,则读取所述第二主机的时间戳,根据此次读取的所述第二主机的时间戳和上一次读取的所述第二主机的时间戳,确定所述第二主机是否离线;如果是,则解除所述第二主机对所述目标数据的占用并进行IO操作。优选的,所述根据此次读取的所述第二主机的时间戳和上一次读取的所述第二主机的时间戳,确定所述第二主机是否离线,包括:获得所述第二主机的IO等待时间;确定上一次读取的所述第二主机的时间戳加上所述IO等待时间是否大于此次读取的所述第二主机的时间戳;如果否,则确定所述第二主机离线。优选的,所述获得所述第二主机的IO等待时间,包括:根据所述第二主机的第二IO指令队列的等待时间,确定所述第二主机的IO等待时间;其中,所述第二IO指令队列具有非超时属性,包含所述第二主机对所述目标数据下发的第二IO操作指令。优选的,所述第一IO操作指令为具有非超时属性的第一IO指令队列中的指令。优选的,所述读取周期大于或等于所述写入周期。一种基于分布式锁的存储的IO操作装置,应用于第一主机,所述第一主机与多个其他主机均连接于同一共享存储,该装置包括:时间戳读取模块,用于按照预设的读取周期读取每个其他主机按照预设的写入周期写入至所述共享存储的时间戳;目标数据检测模块,用于在对所述共享存储中的目标数据下发第一IO操作指令时,检测所述目标数据是否被第二主机占用,如果是,则触发第二主机离线确定模块,所述第二主机为多个其他主机中的任意一个;所述第二主机离线确定模块,用于读取所述第二主机的时间戳,根据此次读取的所述第二主机的时间戳和上一次读取的所述第二主机的时间戳,确定所述第二主机是否离线,如果是,则触发IO操作模块;所述IO操作模块,用于解除所述第二主机对所述目标数据的占用并进行IO操作。优选的,所述第二主机离线确定模块,包括:IO等待时间获得子模块,用于获得所述第二主机的IO等待时间;时间戳确定子模块,用于确定上一次读取的所述第二主机的时间戳加上所述IO等待时间是否大于此次读取的所述第二主机的时间戳,如果否,则进入第二主机离线确定子模块;所述第二主机离线确定子模块,用于确定所述第二主机离线。优选的,所述IO等待时间获得子模块,具体用于:根据所述第二主机的第二IO指令队列的等待时间,确定所述第二主机的IO等待时间;其中,所述第二IO指令队列具有非超时属性,包含所述第二主机对所述目标数据下发的第二IO操作指令。优选的,所述第一IO操作指令为具有非超时属性的第一IO指令队列中的指令。优选的,所述读取周期大于或等于所述写入周期。应用本专利技术实施例所提供的技术方案,按照预设的读取周期读取每个其他主机按照预设的写入周期写入至共享存储的时间戳,在对共享存储中的目标数据下发第一IO操作指令时,检测目标数据是否被第二主机占用,如果是,则读取第二主机的时间戳,根据此次读取的第二主机的时间戳和上一次读取的第二主机的时间戳,确定第二主机是否离线,如果是,则解除第二主机对目标数据的占用并进行IO操作。当共享存储的读写压力比较大时,可能无法及时对第二主机的IO操作进行响应,因此第二主机下发的IO操作指令出现IO超时,可能是第二主机断开了与共享存储的连接导致第二主机的IO超时,也可能是共享存储的IO压力大造成第二主机的IO超时。本专利技术的方案中,当第一主机检测到目标数据被第二主机占用时,读取第二主机的时间戳,将此次读取的第二主机的时间戳与上一次读取的第二主机的时间戳进行比较,确定第二主机是否离线。当共享存储的IO压力大时,第二主机的IO出现超时,但第二主机可以通过下发时间戳,使得第一主机确定第二主机是否离线,避免了第二主机并未离线,但由于第二主机的IO超时造成对第二主机的意外的隔离,从而无法完成对共享存储的IO操作的情况。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术中一种基于分布式锁的存储的IO操作方法实施场景示意图;图2为本专利技术中一种基于分布式锁的存储的IO操作方法的实施流程图;图3为本专利技术中一种基于分布式锁的存储的IO操作装置的结构示意图。具体实施方式本专利技术的核心是提供一种基于分布式锁的存储的IO操作方法,第一主机通过读取第二主机的时间戳确定第二主机是否离线,避免了第二主机并未离线,但由于第二主机的IO超时造成对第二主机的意外的隔离,从而无法完成对共享存储的IO操作的情况。为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参考图1,为本专利技术中一种基于分布式锁的存储的IO操作方法实施场景示意图。主机101、主机102、主机103以及主机104都连接至同一共享存储105中。每个主机可以在共享存储的对应的位置写下各自的时间戳,在每次写下时间戳的同时,向共享存储下发IO操作的等待时间。请参考图2,为本本文档来自技高网
...
一种基于分布式锁的存储的IO操作方法及装置

【技术保护点】
一种基于分布式锁的存储的IO操作方法,其特征在于,应用于第一主机,所述第一主机与多个其他主机均连接于同一共享存储,包括:按照预设的读取周期读取每个其他主机按照预设的写入周期写入至所述共享存储的时间戳;在对所述共享存储中的目标数据下发第一IO操作指令时,检测所述目标数据是否被第二主机占用,所述第二主机为多个其他主机中的任意一个;如果是,则读取所述第二主机的时间戳,根据此次读取的所述第二主机的时间戳和上一次读取的所述第二主机的时间戳,确定所述第二主机是否离线;如果是,则解除所述第二主机对所述目标数据的占用并进行IO操作。

【技术特征摘要】
1.一种基于分布式锁的存储的IO操作方法,其特征在于,应用于第一主机,所述第一主机与多个其他主机均连接于同一共享存储,包括:按照预设的读取周期读取每个其他主机按照预设的写入周期写入至所述共享存储的时间戳;在对所述共享存储中的目标数据下发第一IO操作指令时,检测所述目标数据是否被第二主机占用,所述第二主机为多个其他主机中的任意一个;如果是,则读取所述第二主机的时间戳,根据此次读取的所述第二主机的时间戳和上一次读取的所述第二主机的时间戳,确定所述第二主机是否离线;如果是,则解除所述第二主机对所述目标数据的占用并进行IO操作。2.根据权利要求1所述的方法,其特征在于,所述根据此次读取的所述第二主机的时间戳和上一次读取的所述第二主机的时间戳,确定所述第二主机是否离线,包括:获得所述第二主机的IO等待时间;确定上一次读取的所述第二主机的时间戳加上所述IO等待时间是否大于此次读取的所述第二主机的时间戳;如果否,则确定所述第二主机离线。3.根据权利要求2所述的方法,其特征在于,所述获得所述第二主机的IO等待时间,包括:根据所述第二主机的第二IO指令队列的等待时间,确定所述第二主机的IO等待时间;其中,所述第二IO指令队列具有非超时属性,包含所述第二主机对所述目标数据下发的第二IO操作指令。4.根据权利要求1所述的方法,其特征在于,所述第一IO操作指令为具有非超时属性的第一IO指令队列中的指令。5.根据权利要求1至4任一项所述的方法,其特征在于,所述读取周期大于或等于所述写入周期。6.一种基于分布式锁的存储的IO操作装置,其特征在于,应用于第一主机,所述第一主机与多...

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

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

1