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操作。
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。