CN104461705B - 一种业务访问的方法及存储控制器、集群存储*** - Google Patents
一种业务访问的方法及存储控制器、集群存储*** Download PDFInfo
- Publication number
- CN104461705B CN104461705B CN201410655484.3A CN201410655484A CN104461705B CN 104461705 B CN104461705 B CN 104461705B CN 201410655484 A CN201410655484 A CN 201410655484A CN 104461705 B CN104461705 B CN 104461705B
- Authority
- CN
- China
- Prior art keywords
- storage
- storage control
- operation object
- resource lock
- operational order
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种业务访问的方法及存储控制器、集群存储***,涉及计算机领域,以解决现有集群存储***中的主存储控制器易出现性能瓶颈的问题。该方法包括:集群存储***中的所有存储控制器均存储有所述集群储存***的存储空间中的所有操作对象的资源锁,任一存储控制器在接收到主机业务的操作指令时,所述操作指令包括操作对象标识,根据所述操作对象标识确定所述第一存储控制器存储的所述操作对象的资源锁为未使用状态;对所述操作对象的资源锁进行加锁,加锁后的所述资源锁为已使用状态;按照所述操作指令访问所述操作对象。本发明实施例用于业务访问。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种业务访问的方法及存储控制器、集群存储***。
背景技术
为了满足用户对存储需求的不断提高,现有技术提出了“集群存储***”,提高了存储资源的容量、可靠性及可用性。
如图1所示,现有技术所提出的集群存储***由多个存储控制器、存储空间及交换机组成。其中,存储空间可以由多个独立的磁盘组成,其用于存储数据;存储控制器用于在存储空间中读取或写入数据;存储控制器和存储空间通过交换机连接组网,任一存储控制器通过该交换机可以访问存储空间中的所有操作对象。
由于存储空间中的同一操作对象可能同时被访问多次,为了保证存储空间数据的唯一性与确定性,通常会对操作对象设置资源锁,基于资源锁的加锁和释放机制可保证对访问同一操作对象的业务之间的互斥。具体地,当该操作对象被某一业务访问时,可设置该操作对象对应的资源锁为已使用状态,禁止其他业务对该操作对象进行访问,此过程为资源锁的加锁过程;当该业务执行完毕,将该操作对象对应的资源锁设置为未使用状态,允许其他业务对该操作对象进行访问,此过程为资源锁的释放过程。
然而,现有的集群存储***通常会将多个存储控制器中的某一存储控制器作为主存储控制器,其它的存储控制器作为备存储控制器。每一个存储控制器在执行业务时,均会向主存储控制器申请对资源锁进行加锁或释放,这样,当有大量业务并发向该主存储控制器发出申请时,主存储控制器将成为整个集群存储***的瓶颈。
发明内容
本发明提供一种业务访问的方法及存储控制器、集群存储***,以解决现有集群存储***中的主存储控制器易出现性能瓶颈的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种业务访问的方法,所述方法应用于包括至少两个存储控制器的集群存储***,所述至少两个存储控制器均存储有所述集群储存***的存储空间中的所有操作对象的资源锁,所述方法包括:
第一存储控制器接收主机业务的操作指令;所述操作指令包括操作对象标识;所述第一存储控制器为所述至少两个存储控制器中的任一个;
根据所述操作对象标识确定所述第一存储控制器存储的所述操作对象的资源锁为未使用状态;
对所述操作对象的资源锁进行加锁,加锁后的所述资源锁为已使用状态;
按照所述操作指令访问所述操作对象。
在第一方面的第一种可能的实现方式中,所述方法还包括:
接收后台业务的操作指令,所述后台业务的操作指令包括所述操作对象标识;
在确定所述第一存储控制器存储的所述操作对象的资源锁为未使用状态时,对所述操作对象的资源锁进行加锁;
分别向所述集群存储***中除所述第一存储控制器以外的所有存储控制器发送加锁请求消息,所述加锁请求消息用于指示存储控制器对所述操作对象的资源锁进行加锁;
在所述集群存储***中所有存储控制器对所述操作对象的资源锁加锁完成后,按照所述后台业务的操作指令访问所述操作对象。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
接收第二存储控制器发送的包括所述操作对象标识的加锁请求消息;所述第二存储控制器为所述集群存储***中除所述第一存储控制器以外的任一存储控制器;
根据所述加锁请求消息对所述第一存储控制器存储的所述操作对象的资源锁进行加锁;
向所述第二存储控制器发送加锁响应消息。
结合第一方面或者第一方面的第一种可能的实现方式,在第三种可能的实现方式中,在所述按照所述操作指令访问所述操作对象之后,包括:
将所述第一存储控制器存储的所述操作对象的资源锁释放,释放后的所述资源锁为未使用状态;
在所述按照所述后台业务的操作指令访问所述操作对象之后,包括:
将所述第一存储控制器存储的所述操作对象的资源锁释放;
向所述集群存储***中的除所述第一存储控制器以外的所有存储控制器发送状态变更消息,以便接收到所述状态变更消息的存储控制器将所述操作对象的资源锁释放。
第二方面,提供一种存储控制器,包括:
存储单元,用于存储集群储存***的存储空间中的所有操作对象的资源锁;
第一接收单元,用于接收主机业务的操作指令,所述操作指令包括操作对象标识;
加锁单元,用于根据所述操作对象标识确定所述存储控制器存储的所述操作对象的资源锁为未使用状态,对所述操作对象的资源锁进行加锁;加锁后的所述资源锁为已使用状态;
第一访问单元,用于按照所述操作指令访问所述操作对象。
在第二方面的第一种可能的实现方式中,还包括:
第二接收单元,用于接收后台业务的操作指令,所述后台业务的操作指令包括所述操作对象标识;
发送单元,用于分别向所述集群存储***中除所述存储控制器以外的所有存储控制器发送加锁请求消息,所述加锁请求消息用于指示存储控制器对所述操作对象的资源锁进行加锁;
第二访问单元,用于在所述集群存储***中所有存储控制器对所述操作对象的资源锁加锁完成后,按照所述后台业务的操作指令访问所述操作对象。
结合第二方面或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
第三接收单元,用于接收第二存储控制器发送的包括所述操作对象标识的加锁请求消息;所述第二存储控制器为所述集群存储***中除所述存储控制器以外的任一存储控制器;
所述加锁单元还用于,根据所述加锁请求消息对所述存储控制器存储的所述操作对象的资源锁进行加锁;
所述发送单元,用于向所述第二存储控制器发送加锁响应消息。
结合第二方面或者第二方面的第一种可能的实现方式,在第三种可能的实现方式中,还包括:
释放单元,用于在所述第一访问单元按照所述操作指令访问所述操作对象之后,将所述存储控制器存储的所述操作对象的资源锁释放,释放后的所述资源锁为未使用状态;
在所述第二访问单元按照所述后台业务的操作指令访问所述操作对象之后,将所述存储控制器存储的所述操作对象的资源锁释放;
所述发送单元还用于,向所述集群存储***中的除所述存储控制器以外的所有存储控制器发送状态变更消息,以便接收到所述状态变更消息的存储控制器将所述操作对象的资源锁释放。
第三方面,提供一种集群存储***,包括存储空间和至少两个存储控制器,所述至少两个存储控制器均与所述存储空间相连,所述至少两个存储控制器中的任一存储控制器分别与其他所有存储控制器相连;
所述存储控制器为第二方面至第二方面的第三种可能的实现方式中的任一种可能的实现方式所述的存储控制器;
所述存储空间用于存储操作对象。
采用上述方案,集群存储***中的任一存储控制器在接收到主机业务的操作指令时,只需对该存储控制器存储的对应操作对象的资源锁进行加锁,即可按照该操作指令访问操作对象,无需向其他存储控制器发送加锁请求消息,相比现有技术中,存储控制器在接收到主机业务的操作指令时,需发送加锁请求消息至主存储控制器请求加锁,本发明提高了主机业务的执行效率,并且由于各存储控制器的加锁地位平等,不会造成某一存储控制器发生性能瓶颈。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的一种集群存储***的结构示意图;
图2为现有集群存储***中存储控制器之间申请加锁的示意图;
图3为本发明实施例提供的一种业务访问的方法的流程示意图;
图4为本发明实施例提供的一种存储控制器之间申请加锁的示意图;
图5为本发明实施例提供的一种存储控制器的结构示意图;
图6为本发明实施例提供的另一种存储控制器的结构示意图;
图7为本发明实施例提供的一种集群存储***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了使本领域技术人员能够快速地理解本发明提供的技术方案与现有技术的区别,下面对与本发明相关的术语进行说明,并对现有的业务访问的方法进行介绍。
1)后台业务:集群存储***为维护自身的可靠性,而自发在后台执行的保障措施,例如数据备份,数据迁移等,由于***的维护无需实时操作,因此,该后台业务具有发生频率低的特点。
2)主机业务:集群存储***接收用户下发的指令执行的数据读写操作,主机业务是实时进行的,具有发生频率高的特点,并且该集群存储***的主机业务在同一时间不会多次访问同一操作对象。
3)操作对象:存储空间中用于存储数据的地址。
4)资源锁:存储控制器访问操作对象所需要的唯一“钥匙”,存储控制器只有在确定将要访问的操作对象对应的资源锁处于未使用状态时,才能够对该操作对象进行访问。
现有的集群存储***如图2所示,该集群存储***包括:主存储控制器、至少一个备存储控制器、以及存储空间,其中,该主存储控制器与每个备存储控制器相连,所有存储控制器(包括主存储控制器和备存储控制器)分别与该存储空间相连;所有的存储控制器均用于访问存储空间中的操作对象;该主存储控制器还用于管理存储空间中的每个操作对象对应的资源锁。由图2可知,每一个存储控制器不管是执行主机业务还是后台业务,均会向主存储控制器申请对资源锁进行加锁,由于该主机业务的发生频率高的特点,很可能发生大量业务高并发向该主存储控制器发出申请的情况,造成该主存储控制器发生性能瓶颈。
本发明实施例提供一种业务访问的方法,应用于集群存储***,该集群存储***包括至少两个存储控制器,所述至少两个存储控制器均存储有该集群储存***的存储空间中的所有操作对象的资源锁,如图3所示,该方法包括:
S301、第一存储控制器接收主机业务的操作指令;该操作指令包括操作对象标识。
其中,该第一存储控制器为该至少两个存储控制器中的任一个。
S302、该第一存储控制器根据该操作对象标识确定该第一存储控制器存储的该操作对象的资源锁为未使用状态。
S303、该第一存储控制器对该操作对象的资源锁进行加锁,加锁后的该资源锁为已使用状态。
S304、该第一存储控制器按照该操作指令访问该操作对象。
示例地,步骤S302和步骤S303包括:该第一存储控制器在自身存储的锁配置表中查询对应该操作对象标识的资源锁的使用状态,其中,该锁配置表中包括操作对象标识、与操作对象标识一一对应的资源锁的使用状态;若该资源锁当前处于未使用状态,则将该资源锁的该未使用状态更改为已使用状态;若该资源锁当前处于已使用状态,则在查询到该资源锁处于未使用状态后,将该未使用状态更改为已使用状态。
其中,该锁配置表可以以表格的形式存储于该第一存储控制器中,如下表1所示:
表1
操作对象标识 | 资源锁的状态 |
操作对象1 | 资源锁1未使用 |
操作对象2 | 资源锁2已使用 |
…… | …… |
操作对象N | 资源锁3未使用 |
由表1,若该操作对象标识为操作对象1,则该第一存储控制器在表1中查询操作对象1对应的资源锁1的状态,若该资源锁1的状态为未使用状态,则该第一存储控制器将该资源锁1的状态更改为已使用状态,并按照该主机业务的操作指令访问该操作对象1,执行该主机业务;若该资源锁1的状态为已使用状态,则该第一存储控制器等待当前占用该资源锁1的业务(该业务是该第一存储控制器的后台业务或者是其他存储控制器的后台业务)执行完毕,将该资源锁1的状态更改为未使用状态后,将该资源锁1的状态更改为已使用状态。
上述表1只是举例说明,该锁配置表还可以以其他形式存储于该第一存储控制器中,其具体形式可以根据实际需求进行确定,本发明对此不作限定。
采用上述方法,集群存储***中的任一存储控制器在接收到主机业务的操作指令时,只需对该存储控制器存储的对应操作对象的资源锁进行加锁,即可按照该操作指令访问操作对象,无需向其他存储控制器发送加锁请求消息,相比现有技术中,存储控制器在接收到主机业务的操作指令时,需发送加锁请求消息至主存储控制器请求加锁,本发明提高了主机业务的执行效率,并且由于各存储控制器的加锁地位平等,不会造成某一存储控制器发生性能瓶颈。
然而,为了保证该第一存储控制器在执行主机业务时,只需对该第一存储控制器存储的对应操作对象的资源锁进行加锁即可与其他业务的互斥,在本发明实施例的一种可能的实现方式中,该集群存储***的中任一存储控制器在执行后台业务之前,需向该集群存储***中的所有存储控制器请求加锁。
具体地,该第一存储控制器接收后台业务的操作指令,该后台业务的操作指令包括该操作对象标识;在确定该第一存储控制器存储的该操作对象的资源锁为未使用状态时,对该操作对象的资源锁进行加锁;分别向该集群存储***中除该第一存储控制器以外的所有存储控制器发送加锁请求消息,该加锁请求消息用于指示存储控制器对该操作对象的资源锁进行加锁;在该集群存储***中所有存储控制器对该操作对象的资源锁加锁完成后,按照该后台业务的操作指令访问该操作对象。
示例地,该加锁请求消息携带该操作对象标识,该第二存储控制器在接收到该加锁请求消息后,根据该操作对象标识对该第二存储控制器存储的该操作对象的资源锁进行加锁,并在加锁成功后,向该第一存储控制器发送加锁响应消息,该第二存储控制器对资源锁加锁的过程可参照上述第一存储控制器对该操作对象标识对应的资源锁加锁的过程,此处不再赘述。
进一步地,该第一存储控制器在该集群存储***中的所有存储控制器加锁成功后执行该后台业务,也就是说,该第一存储控制器在对自身存储的对应该操作对象标识的资源锁加锁成功,且接收到该集群存储***中除该第一存储控制器以外的所有存储控制器发送的加锁响应消息后,执行该后台业务。
示例地,该集群储存***中的每一个存储控制器都存储了如上表1所示的锁配置表。如图4所示,该第一存储控制器向第二存储控制器发送加锁申请消息,该加锁申请消息包括操作对象1的标识,则该第二存储控制器在接收到该加锁申请消息后,查询该第二存储控制器存储的锁配置表,若该第二存储控制器存储的锁配置表中,操作对象1对应的资源锁1的状态为未使用状态,则该第二存储控制器将该资源锁1的状态更改为已使用状态,并向该第一存储控制器发送加锁响应消息,指示该第一存储控制器加锁成功。若该操作对象1对应的资源锁1的状态为已使用状态,则等待当前占用该资源锁1的业务执行完毕并释放该资源锁1后,确定该资源锁1处于未使用状态,则该第二存储控制器将该资源锁1的状态更改为已使用状态,并向该第一存储控制器发送加锁响应消息,指示该第一存储控制器加锁成功。
另外,该第一存储控制器在接收到第二存储控制器发送的包括该操作对象标识的加锁请求消息时,根据该加锁请求消息对该第一存储控制器存储的该操作对象的资源锁进行加锁,并在加锁完成后向该第二存储控制器发送加锁响应消息,该第二存储控制器为该集群存储***中除该第一存储控制器以外的任一存储控制器。
这样,该第一存储控制器在执行后台业务时,该集群存储***中每个存储控制器存储的锁配置表中对应该后台业务的操作对象的资源锁的状态均为已使用状态,此时,该集群存储***中每个存储控制器都无法针对该操作对象执行其他的业务,保证了业务间的互斥。
此外,在第二存储控制器执行后台业务时,该第一存储控制器也将接收该第二存储控制器发送的加锁请求消息进行加锁。这样,该集群存储***的任一存储控制器在对操作对象执行后台业务时,该集群存储***中的所有存储控制器对应该操作对象的资源锁均处于已使用状态。也就是说,若某一存储控制器自身存储的对应该操作对象的资源锁处于未使用状态,表明此时不存在任何存储控制器对该操作对象执行后台业务,此时,若该存储控制器接收到对该操作对象执行主机业务的操作指令,只需对自身存储的对应该操作对象的资源锁进行加锁即可执行该主机业务(由于该集群存储***的主机业务在同一时间不会多次访问同一操作对象,因此不用考虑不同主机业务之间的互斥)。
进一步地,该第一存储控制器在执行完业务后,均需要对该业务占用的资源锁进行释放。具体地,该第一存储控制器在按照该主机业务的操作指令访问该操作对象之后,将该第一存储控制器存储的该操作对象的资源锁释放,释放后的该资源锁为未使用状态;该第一存储控制器在按照该后台业务的操作指令访问该操作对象之后,将该第一存储控制器存储的该操作对象的资源锁释放,并向该集群存储***中的除该第一存储控制器以外的所有存储控制器发送状态变更消息,以便接收到该状态变更消息的存储控制器将该操作对象的资源锁释放。
由上可知,本发明实施例中的存储控制器在执行主机业务时,未向其他存储控制器申请加锁,不会造成某一存储控制器发生性能瓶颈,同时,另外,由于该集群存储***中各个存储控制器均存储了操作对象标识与资源锁的使用状态的对应关系,因此,某一个存储控制器发生故障,不影响该集群存储***的业务访问。
本发明实施例提供一种存储控制器50,对应上述图3的方法实施例,该存储控制器50的各个功能单元均可用于上述方法步骤。如图5所示,该存储控制器50包括:
存储单元51,用于存储集群储存***的存储空间中的所有操作对象的资源锁。
第一接收单元52,用于接收主机业务的操作指令,该操作指令包括操作对象标识。
加锁单元53,用于根据该操作对象标识确定该存储控制器存储的该操作对象的资源锁为未使用状态,对该操作对象的资源锁进行加锁;加锁后的该资源锁为已使用状态。
第一访问单元54,用于按照该操作指令访问该操作对象。
采用上述方法,集群存储***中的任一存储控制器在接收到主机业务的操作指令时,只需对该存储控制器存储的对应操作对象的资源锁进行加锁,即可按照该操作指令访问操作对象,无需向其他存储控制器发送加锁请求消息,相比现有技术中,存储控制器在接收到主机业务的操作指令时,需发送加锁请求消息至主存储控制器请求加锁,本发明提高了主机业务的执行效率,并且由于各存储控制器的加锁地位平等,不会造成某一存储控制器发生性能瓶颈。
然而,为了保证该存储控制器在执行主机业务时,只需对该存储控制器存储的对应操作对象的资源锁进行加锁即可与其他业务的互斥,在本发明实施例的一种可能的实现方式中,该集群存储***的中任一存储控制器在执行后台业务之前,需向该集群存储***中的所有存储控制器请求加锁。
因此,可选地,该存储控制器还包括:
第二接收单元55,用于接收后台业务的操作指令,该后台业务的操作指令包括该操作对象标识。
发送单元56,用于分别向该集群存储***中除该存储控制器以外的所有存储控制器发送加锁请求消息,该加锁请求消息用于指示存储控制器对该操作对象的资源锁进行加锁。
第二访问单元57,用于在该集群存储***中所有存储控制器对该操作对象的资源锁加锁完成后,按照该后台业务的操作指令访问该操作对象。
示例地,该加锁请求消息携带该操作对象标识,该第二存储控制器在接收到该加锁请求消息后,根据该操作对象标识对该第二存储控制器存储的该操作对象的资源锁进行加锁,并在加锁成功后,向该存储控制器发送加锁响应消息。
进一步地,该存储控制器在该集群存储***中的所有存储控制器加锁成功后执行该后台业务,也就是说,该存储控制器在对自身存储的对应该操作对象标识的资源锁加锁成功,且接收到该集群存储***中除该存储控制器以外的所有存储控制器发送的加锁响应消息后,执行该后台业务。
可选地,该存储控制器还包括:
第三接收单元58,用于接收第二存储控制器发送的包括该操作对象标识的加锁请求消息;该第二存储控制器为该集群存储***中除该存储控制器以外的任一存储控制器。
该加锁单元53还用于,根据该加锁请求消息对该存储控制器存储的该操作对象的资源锁进行加锁。
该发送单元56,用于向该第二存储控制器发送加锁响应消息。
这样,该存储控制器在执行后台业务时,该集群存储***中每个存储控制器存储的锁配置表中对应该后台业务的操作对象的资源锁的状态均为已使用状态,此时,该集群存储***中每个存储控制器都无法针对该操作对象执行其他的业务,保证了业务间的互斥。
此外,在第二存储控制器执行后台业务时,该存储控制器也将接收该第二存储控制器发送的加锁请求消息进行加锁。这样,该集群存储***的任一存储控制器在对操作对象执行后台业务时,该集群存储***中的所有存储控制器对应该操作对象的资源锁均处于已使用状态。也就是说,若某一存储控制器自身存储的对应该操作对象的资源锁处于未使用状态,表明此时不存在任何存储控制器对该操作对象执行后台业务,此时,若该存储控制器接收到对该操作对象执行主机业务的操作指令,只需对自身存储的对应该操作对象的资源锁进行加锁即可执行该主机业务(由于该集群存储***的主机业务在同一时间不会多次访问同一操作对象,因此不用考虑不同主机业务之间的互斥)。
进一步地,该存储控制器在执行完业务后,均需要对该业务占用的资源锁进行释放。因此,可选地,该存储控制器还包括:
释放单元59,用于在该第一访问单元按照该操作指令访问该操作对象之后,将该存储控制器存储的该操作对象的资源锁释放,释放后的该资源锁为未使用状态;在该第二访问单元按照该后台业务的操作指令访问该操作对象之后,将该存储控制器存储的该操作对象的资源锁释放;该发送单元56还用于,向该集群存储***中的除该存储控制器以外的所有存储控制器发送状态变更消息,以便接收到该状态变更消息的存储控制器将该操作对象的资源锁释放。
另外,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例提供一种存储控制器60,该存储控制器60为集群存储***中的任一个存储控制器,如图6所示,包括:
处理器(processor)61、通信接口(Communications Interface)62、存储器(memory)63和通信总线64;其中,所述处理器61、所述通信接口62和所述存储器63通过所述通信总线64完成相互间的通信。
处理器61可能是一个多核中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器63用于存放程序代码以及操作对象的资源锁,所述程序代码包括计算机操作指令和网络流图。存储器63可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
所述通信接口62,用于实现这些装置之间的连接通信。
所述处理器61用于执行所述存储器63中的程序代码,以实现以下操作:
所述方法应用于包括至少两个存储控制器的集群存储***,所述至少两个存储控制器均存储有所述集群储存***的存储空间中的所有操作对象的资源锁,所述方法包括:
接收主机业务的操作指令;所述操作指令包括操作对象标识;所述存储控制器为所述至少两个存储控制器中的任一个;
根据所述操作对象标识确定所述存储控制器存储的所述操作对象的资源锁为未使用状态;
对所述操作对象的资源锁进行加锁,加锁后的所述资源锁为已使用状态;
按照所述操作指令访问所述操作对象。
可选地,所述操作还包括:
接收后台业务的操作指令,所述后台业务的操作指令包括所述操作对象标识;
在确定所述存储控制器存储的所述操作对象的资源锁为未使用状态时,对所述操作对象的资源锁进行加锁;
分别向所述集群存储***中除所述存储控制器以外的所有存储控制器发送加锁请求消息,所述加锁请求消息用于指示存储控制器对所述操作对象的资源锁进行加锁;
在所述集群存储***中所有存储控制器对所述操作对象的资源锁加锁完成后,按照所述后台业务的操作指令访问所述操作对象。
可选地,所述操作还包括:
接收第二存储控制器发送的包括所述操作对象标识的加锁请求消息;所述第二存储控制器为所述集群存储***中除所述存储控制器以外的任一存储控制器;
根据所述加锁请求消息对所述存储控制器存储的所述操作对象的资源锁进行加锁;
向所述第二存储控制器发送加锁响应消息。
可选地,在所述按照所述操作指令访问所述操作对象之后,所述操作还包括:
将所述存储控制器存储的所述操作对象的资源锁释放,释放后的所述资源锁为未使用状态;
在所述按照所述后台业务的操作指令访问所述操作对象之后,所述操作还包括:
将所述存储控制器存储的所述操作对象的资源锁释放;
向所述集群存储***中的除所述存储控制器以外的所有存储控制器发送状态变更消息,以便接收到所述状态变更消息的存储控制器将所述操作对象的资源锁释放。
本发明实施例提供一种集群存储***70,如图7所示,包括:
存储空间71、存储控制器72和存储控制器73,其中,该存储空间71分别与该存储控制器72和该储控制器73相连,该存储控制器72与该储控制器73相连。
该存储空间71用于存储操作对象。
该存储控制器72为图5或者图6所示的存储控制器50或者存储控制器60,该73存储控制器为图5或者图6所示的存储控制器50或者存储控制器60,具体可参照图5或者图6对应的描述,此处不再赘述。
采用上述集群存储***,该集群存储***中的任一存储控制器在接收到主机业务的操作指令时,只需对该存储控制器存储的对应操作对象的资源锁进行加锁,即可按照该操作指令访问操作对象,无需向其他存储控制器发送加锁请求消息,相比现有技术中,存储控制器在接收到主机业务的操作指令时,需发送加锁请求消息至主存储控制器请求加锁,本发明提高了主机业务的执行效率,并且由于各存储控制器的加锁地位平等,不会造成某一存储控制器发生性能瓶颈。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种业务访问的方法,其特征在于,所述方法应用于包括至少两个存储控制器的集群存储***,所述至少两个存储控制器均存储有所述集群储存***的存储空间中的所有操作对象的资源锁,所述方法包括:
第一存储控制器接收主机业务的操作指令;所述操作指令包括操作对象标识;所述第一存储控制器为所述至少两个存储控制器中的任一个;
根据所述操作对象标识确定所述第一存储控制器存储的所述操作对象的资源锁为未使用状态;
对所述操作对象的资源锁进行加锁,加锁后的所述资源锁为已使用状态;
按照所述操作指令访问所述操作对象。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收后台业务的操作指令,所述后台业务的操作指令包括所述操作对象标识;
在确定所述第一存储控制器存储的所述操作对象的资源锁为未使用状态时,对所述操作对象的资源锁进行加锁;
分别向所述集群存储***中除所述第一存储控制器以外的所有存储控制器发送加锁请求消息,所述加锁请求消息用于指示存储控制器对所述操作对象的资源锁进行加锁;
在所述集群存储***中所有存储控制器对所述操作对象的资源锁加锁完成后,按照所述后台业务的操作指令访问所述操作对象。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收第二存储控制器发送的包括所述操作对象标识的加锁请求消息;所述第二存储控制器为所述集群存储***中除所述第一存储控制器以外的任一存储控制器;
根据所述加锁请求消息对所述第一存储控制器存储的所述操作对象的资源锁进行加锁;
向所述第二存储控制器发送加锁响应消息。
4.根据权利要求1或2所述的方法,其特征在于,在所述按照所述操作指令访问所述操作对象之后,包括:
将所述第一存储控制器存储的所述操作对象的资源锁释放,释放后的所述资源锁为未使用状态;
在按照后台业务的操作指令访问所述操作对象之后,包括:
将所述第一存储控制器存储的所述操作对象的资源锁释放;
向所述集群存储***中的除所述第一存储控制器以外的所有存储控制器发送状态变更消息,以便接收到所述状态变更消息的存储控制器将所述操作对象的资源锁释放。
5.一种存储控制器,其特征在于,包括:
存储单元,用于存储集群储存***的存储空间中的所有操作对象的资源锁;
第一接收单元,用于接收主机业务的操作指令,所述操作指令包括操作对象标识;
加锁单元,用于根据所述操作对象标识确定所述存储控制器存储的所述操作对象的资源锁为未使用状态,对所述操作对象的资源锁进行加锁;加锁后的所述资源锁为已使用状态;
第一访问单元,用于按照所述操作指令访问所述操作对象。
6.根据权利要求5所述的存储控制器,其特征在于,还包括:
第二接收单元,用于接收后台业务的操作指令,所述后台业务的操作指令包括所述操作对象标识;
发送单元,用于分别向所述集群存储***中除所述存储控制器以外的所有存储控制器发送加锁请求消息,所述加锁请求消息用于指示存储控制器对所述操作对象的资源锁进行加锁;
第二访问单元,用于在所述集群存储***中所有存储控制器对所述操作对象的资源锁加锁完成后,按照所述后台业务的操作指令访问所述操作对象。
7.根据权利要求5或6所述的存储控制器,其特征在于,还包括:
第三接收单元,用于接收第二存储控制器发送的包括所述操作对象标识的加锁请求消息;所述第二存储控制器为所述集群存储***中除所述存储控制器以外的任一存储控制器;
所述加锁单元还用于,根据所述加锁请求消息对所述存储控制器存储的所述操作对象的资源锁进行加锁;
发送单元,用于向所述第二存储控制器发送加锁响应消息。
8.根据权利要求5或6所述的存储控制器,其特征在于,还包括:
释放单元,用于在所述第一访问单元按照所述操作指令访问所述操作对象之后,将所述存储控制器存储的所述操作对象的资源锁释放,释放后的所述资源锁为未使用状态;
在第二访问单元按照后台业务的操作指令访问所述操作对象之后,将所述存储控制器存储的所述操作对象的资源锁释放;
发送单元还用于,向所述集群存储***中的除所述存储控制器以外的所有存储控制器发送状态变更消息,以便接收到所述状态变更消息的存储控制器将所述操作对象的资源锁释放。
9.一种集群存储***,其特征在于,包括存储空间和至少两个存储控制器,所述至少两个存储控制器均与所述存储空间相连,所述至少两个存储控制器中的任一存储控制器分别与其他所有存储控制器相连;
所述存储控制器为权利要求5至8任一项所述的存储控制器;
所述存储空间用于存储操作对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410655484.3A CN104461705B (zh) | 2014-11-17 | 2014-11-17 | 一种业务访问的方法及存储控制器、集群存储*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410655484.3A CN104461705B (zh) | 2014-11-17 | 2014-11-17 | 一种业务访问的方法及存储控制器、集群存储*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461705A CN104461705A (zh) | 2015-03-25 |
CN104461705B true CN104461705B (zh) | 2019-02-19 |
Family
ID=52907807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410655484.3A Active CN104461705B (zh) | 2014-11-17 | 2014-11-17 | 一种业务访问的方法及存储控制器、集群存储*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461705B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372030A (zh) * | 2016-10-27 | 2017-02-01 | 郑州云海信息技术有限公司 | 一种双控制器存储***数据同步方法及装置 |
CN110008031B (zh) * | 2018-01-05 | 2022-04-15 | 北京金山云网络技术有限公司 | 设备操作方法、集群***、电子设备及可读取存储介质 |
CN110209641A (zh) * | 2018-02-12 | 2019-09-06 | 杭州宏杉科技股份有限公司 | 一种应用于多控存储***中的集群业务处理方法及装置 |
CN108572876B (zh) * | 2018-03-07 | 2020-11-20 | 北京神州绿盟信息安全科技股份有限公司 | 一种读写锁的实现方法及装置 |
CN110580232B (zh) * | 2018-06-08 | 2021-10-29 | 杭州宏杉科技股份有限公司 | 一种锁管理的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1945539A (zh) * | 2006-10-19 | 2007-04-11 | 华为技术有限公司 | 计算机集群***中共享资源锁分配方法与计算机及集群*** |
CN101013381A (zh) * | 2007-01-26 | 2007-08-08 | 华中科技大学 | 基于对象存储***的分布式锁 |
CN103248667A (zh) * | 2012-02-14 | 2013-08-14 | 阿里巴巴集团控股有限公司 | 一种分布式***的资源访问方法和*** |
CN103731485A (zh) * | 2013-12-26 | 2014-04-16 | 华为技术有限公司 | 一种网络设备、集群存储***及分布式锁管理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050165938A1 (en) * | 2003-12-24 | 2005-07-28 | Linden Cornett | Method, system, and program for managing shared resources |
-
2014
- 2014-11-17 CN CN201410655484.3A patent/CN104461705B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1945539A (zh) * | 2006-10-19 | 2007-04-11 | 华为技术有限公司 | 计算机集群***中共享资源锁分配方法与计算机及集群*** |
CN101013381A (zh) * | 2007-01-26 | 2007-08-08 | 华中科技大学 | 基于对象存储***的分布式锁 |
CN103248667A (zh) * | 2012-02-14 | 2013-08-14 | 阿里巴巴集团控股有限公司 | 一种分布式***的资源访问方法和*** |
CN103731485A (zh) * | 2013-12-26 | 2014-04-16 | 华为技术有限公司 | 一种网络设备、集群存储***及分布式锁管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104461705A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461705B (zh) | 一种业务访问的方法及存储控制器、集群存储*** | |
US10691187B2 (en) | Persistent reservations for virtual disk using multiple targets | |
EP3217248B1 (en) | Method and system for writing data | |
CN104932953B (zh) | 一种数据分发方法、数据存储方法、相关装置以及*** | |
CN103297456B (zh) | 一种分布式***下共享资源的访问方法及分布式*** | |
CN103425592B (zh) | 一种多进程***中的内存管理方法及装置 | |
EP3073374A1 (en) | Thread creation method, service request processing method and related device | |
CN106302702A (zh) | 数据的分片存储方法、装置及*** | |
CN103152390B (zh) | 分布式存储***的节点配置方法、装置、节点及*** | |
CN109525658A (zh) | 一种产号方法、服务器、设备、存储介质和业务*** | |
CN109634720B (zh) | 一种多虚拟机共享fpga板卡的方法、***及装置 | |
CN103744719A (zh) | 锁管理方法及***、锁管理***的配置方法及装置 | |
CN110008031A (zh) | 设备操作方法、集群***、电子设备及可读取存储介质 | |
CN106708608A (zh) | 一种分布式锁服务方法、获取方法及相应装置 | |
CN104793981B (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN105335235A (zh) | 一种基于IaaS模式的资源管理***及方法 | |
CN104052799B (zh) | 一种利用资源环实现高可用存储的方法 | |
CN109379223A (zh) | 一种实现网卡自动化设置的方法和装置 | |
CN106776032A (zh) | 分布式块存储的io请求的处理方法和装置 | |
CN110046138B (zh) | 一种iSCSI目标器多实例处理方法及分布式存储*** | |
CN105450679A (zh) | 进行数据云存储的方法及*** | |
CN110659303A (zh) | 一种数据库节点的读写控制方法及装置 | |
CN104657240B (zh) | 多内核操作***的失效控制方法及装置 | |
CN102868594B (zh) | 一种消息处理方法和装置 | |
CN110275772A (zh) | 一种数据处理方法及其相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |