一种网络设备、集群存储系统及分布式锁管理方法

文档序号:7782166阅读:222来源:国知局
一种网络设备、集群存储系统及分布式锁管理方法
【专利摘要】本发明实施例提供了一种网络设备、集群存储系统及分布式锁管理方法,涉及计算机领域,实现高性能高可用性的分布式锁管理。本发明实施例采用的方法包括:通过部署在集群存储系统的关键访问路径上的网络设备接收第一节点发送的锁申请信息,锁申请信息包含第一节点申请访问的资源标识;根据第一节点申请访问的资源标识查询锁配置表,若确定第一锁的状态为未使用状态,则生成授权第一节点使用第一锁的授权信息,并将授权信息发送至第一节点,其中,锁配置表包含资源标识信息、与资源标识一一对应的锁、以及锁的状态信息,第一锁为锁配置表中与第一节点申请访问的资源标识对应的锁;授权信息包含第一锁。
【专利说明】一种网络设备、集群存储系统及分布式锁管理方法
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种网络设备、集群存储系统及分布式锁管理方法。
【背景技术】
[0002]随着存储领域的不断发展,单个节点或一对节点已经在性能、容量、可靠性方面难以满足存储的客户需求,进而有了向外扩大(scale-out)集群存储技术,并得到了很大的发展。分布式锁作为scale-out集群存储技术中的一个重要技术,主要负责多个节点对同一个资源的同时互斥访问。当节点需要对资源进行访问时,需要向分布式锁管理设备申请授权,当节点获取到对应锁的时候才能对加锁资源进行相关操作。所以,分布式锁的性能高低、可用性以及可靠性直接影响到整个集群的性能、可用性和可靠性。
[0003]业界常用的两种分布式锁管理方法分别为中心式分布式锁管理和去中心式分布式锁管理;
[0004]中心式分布式锁管理方法,将所有的锁部署在一个节点上,通常为主节点,主节点管理了整个集群的所有锁资源;当节点需要访问资源申请锁的时候,需要通过节点间的通信网络(通常为互为冗余的两个心跳交换机)向主节点申请对应的锁;
[0005]去中心式分布式锁管理方法,将所有的锁通过分布式哈希表(Distributed HashTable,简称DHT)算法或一致性散列(hash)算法布局到集群的所有节点之上,每个节点将负责一部分的锁;在每个节点上设计一个代理(Proxy),用于通过节点间的心跳交换机向对应的分布式锁管理设备申请对应的锁资源,并将其缓存在本地Proxy中;当节点需要访问资源申请锁的时候,将本节点内的Proxy申请对应的锁资源,再由该Proxy通过节点间的心跳交换机向对应的分布式锁管理设备申请对应的锁。
[0006]发明人发现现有技术至少有以下缺点:对于中心式分布式锁管理方法,当有大量节点申请锁资源时,主节点将成为整个集群的瓶颈,且当主节点故障后,无法进行锁恢复,使得集群存储系统的性能及可用性下降。对于去中心式分布式锁管理方法,当多个节点同时发出锁申请信息时,由于需要节点间的心跳交换机进行来回通信,且当某节点发生故障时,该节点管理的锁需要恢复甚至迁移,使得集群存储系统的性能及可用性下降。

【发明内容】

[0007]本发明实施例提供一种网络设备、集群存储系统及分布式锁管理方法,实现高性能高可用性的分布式锁管理。
[0008]为达到上述目的,本发明实施例采用的技术方案是,
[0009]第一方面,提供一种用于分布式锁管理的网络设备,应用于集群存储系统,所述集群存储系统包含所述网络设备以及与所述网络设备直接连接的各个节点,所述网络设备包括:处理器,存储器,以及通信交换芯片,
[0010]其中,所述存储器用于,存储锁配置表,所述锁配置表包含资源标识、与所述资源标识一一对应的锁、以及所述锁的状态信息;
[0011]所述通信交换芯片用于,接收第一节点发送的锁申请信息,以及将所述锁申请信息传输至所述处理器,其中,所述锁申请信息包含所述第一节点申请访问的资源标识;
[0012]所述处理器用于,根据所述第一节点申请访问的资源标识查询所述存储器中的锁配置表,若确定第一锁的状态为未使用状态,则生成授权所述第一节点使用所述第一锁的授权信息,并将所述授权信息传输至所述通信交换芯片,其中,所述第一锁为所述锁配置表中与所述第一节点申请访问的资源标识对应的锁,所述授权信息中包含所述第一锁;
[0013]所述通信交换芯片还用于,将所述授权信息发送至所述第一节点。
[0014]结合第一方面,在第一方面的第一种可能的实现方式中,所述网络设备部署在集群存储系统的关键访问路径上。
[0015]结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述网络设备与冗余网络设备连接,其中,所述冗余网络设备是与所述网络设备通过硬件通道连接,且与所述网络设备功能相同的网络设备;
[0016]所述处理器还用于,将锁状态更改操作通过发送锁状态更改通知同步至所述冗余网络设备,其中,所述锁状态更改通知包括第一锁及第一锁的第一状态;
[0017]或者,
[0018]所述处理器还用于,接收所述锁状态更改通知,根据所述锁状态更改通知的指示,将所述锁配置表中第一锁的状态更改为第一状态。
[0019]结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述处理器还用于:
[0020]若确定所述第一锁的状态为使用状态,则根据所述锁配置表,在所述第一锁的状态恢复为未使用状态时,生成授权所述第一节点使用所述第一锁的授权信息。
[0021]结合第一方面、第一方面的第一种可能的实现方式至第一方面的第三种可能的实现方式任一项,在第一方面的第四种可能的实现方式中,所述处理器还用于:
[0022]在将所述授权信息传输给所述通信交换芯片之前,将所述锁配置表中所述第一锁的状态修改为使用状态。
[0023]结合第一方面、第一方面的第一种可能的实现方式至第一方面的第四种可能的实现方式任一项,在第一方面的第五种可能的实现方式中,其特征在于,
[0024]所述通信交换芯片还用于,接收所述第一节点发送的故障信息,以及将所述第一节点的故障信息传输至所述处理器;
[0025]所述处理器还用于,若确定所述第一锁正在给所述第一节点授权使用,根据所述第一节点的故障信息,将所述锁配置表中所述第一锁的状态修改为未使用状态。
[0026]结合第一方面、第一方面的第一种可能的实现方式至第一方面的第五种可能的实现方式任一项,在第一方面的第六种可能的实现方式中,
[0027]所述通信交换芯片还用于,接收所述第一节点发送的释放所述第一锁的通知,以及将所述第一节点释放所述第一锁的通知传输至所述处理器,其中,所述释放所述第一锁的通知包括所述第一锁;
[0028]所述处理器还用于,根据所述第一节点释放所述第一锁的通知,将所述锁配置表中所述第一锁的状态修改为未使用状态,生成第一锁回收成功的通知并传输至通信交换芯片;
[0029]所述通信交换芯片还用于,向所述第一节点发送所述第一锁回收成功的通知。
[0030]第二方面、提供一种集群存储系统,包括,
[0031]如第五方面或上述任一种可能的实现方式所述的网络设备;
[0032]与所述网络设备连接的N个节点,其中,所述N大于等于2 ;
[0033]冗余网络设备,所述冗余网络设备与所述网络设备通过硬件通道连接,且与所述网络设备功能相同;
[0034]所述网络设备还用于,将锁状态更改操作通过发送锁状态更改通知同步至所述冗余网络设备,其中,所述锁状态更改通知包括第一锁及第一锁的第一状态;
[0035]所述冗余网络设备用于,接收所述锁状态更改通知,根据所述锁状态更改通知的指示,将所述锁配置表中第一锁的状态更改为第一状态。
[0036]第三方面、提供一种分布式锁管理方法,应用于集群存储系统,所述集群存储系统包含所述网络设备以及与所述网络设备直接连接的各个节点,所述方法包括:
[0037]所述网络设备接收第一节点发送的锁申请信息,所述锁申请信息包含所述第一节点申请访问的资源标识;
[0038]所述网络设备根据所述第一节点申请访问的资源标识查询锁配置表,若确定第一锁的状态为未使用状态,则生成授权所述第一节点使用所述第一锁的授权信息,并将所述授权信息发送至所述第一节点,其中,所述锁配置表包含资源标识信息、与所述资源标识一一对应的锁、以及所述锁的状态信息,所述第一锁为所述锁配置表中与所述第一节点申请访问的资源标识对应的锁;所述授权信息包含所述第一锁。
[0039]结合第三方面,在第三方面的第一种可能的实现方式中,所述网络设备部署在集群存储系统的关键访问路径上。
[0040]结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述方法还包括,
[0041]将锁状态更改操作通过发送锁状态更改通知同步至所述冗余网络设备,其中,所述锁状态更改通知包括第一锁及第一锁的第一状态;
[0042]或者,
[0043]接收所述锁状态更改通知,根据所述锁状态更改通知的指示,将所述锁配置表中第一锁的状态更改为第一状态。所述网络设备还用于,
[0044]结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述方法还包括:
[0045]所述网络设备若确定所述第一锁的状态为使用状态,则根据所述锁配置表,在所述第一锁的状态恢复为未使用状态时,生成授权所述第一节点使用所述第一锁的授权信息并发送给所述第一节点。
[0046]结合第三方面、第三方面的第一种可能的实现方式至第三方面的第三种可能的实现方式任一项,在第三方面的第四种可能的实现方式中,在将所述授权信息发送给所述第一节点之前,所述方法还包括:
[0047]所述网络设备将所述锁配置表中所述第一锁的状态修改为使用状态。
[0048]结合第三方面、第三方面的第一种可能的实现方式至第三方面的第四种可能的实现方式任一项,在第三方面的第五种可能的实现方式中,所述方法还包括:
[0049]所述网络设备接收所述第一节点发送的故障信息;
[0050]所述网络设备若确定所述第一锁正在给所述第一节点授权使用,根据所述第一节点的故障信息,将所述锁配置表中所述第一锁的状态修改为未使用状态。
[0051]结合第三方面、第三方面的第一种可能的实现方式至第三方面的第五种可能的实现方式任一项,在第三方面的第六种可能的实现方式中,所述方法还包括:
[0052]所述网络设备接收所述第一节点发送的释放所述第一锁的通知,其中,所述释放所述第一锁的通知包括所述第一锁;
[0053]所述网络设备根据所述第一节点释放所述第一锁的通知,将所述锁配置表中所述第一锁的状态修改为未使用状态;
[0054]所述网络设备向所述第一节点发送所述第一锁回收成功的通知。
[0055]本发明提供一种网络设备、集群存储系统及分布式锁管理方法,通过部署在集群存储系统的关键访问路径上的网络设备接收第一节点发送的锁申请信息,所述锁申请信息包含所述第一节点申请访问的资源标识;根据所述第一节点申请访问的资源标识查询锁配置表,若确定第一锁的状态为未使用状态,则生成授权所述第一节点使用所述第一锁的授权信息,并将所述授权信息发送至所述第一节点,其中,所述锁配置表包含资源标识信息、与所述资源标识一一对应的锁、以及所述锁的状态信息,所述第一锁为所述锁配置表中与所述第一节点申请访问的资源标识对应的锁;所述授权信息包含所述第一锁;实现高性能高可用性的分布式锁管理。
【专利附图】

【附图说明】
[0056]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0057]图1为本发明实施例提供的一种集群存储系统的结构示意图;
[0058]图2为本发明实施例提供的一种网络设备的结构示意图;
[0059]图3为本发明实施例提供的一种分布式锁管理方法的流程示意图;
[0060]图4为本发明实施例提供的另一种分布式锁管理方法的流程示意图。
【具体实施方式】
[0061]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0062]参见图1,为一种集群存储系统,该集群存储系统包含所述网络设备20、与网络设备20直接连接的各个节点以及与网络设备20通过硬件通道连接的冗余网络设备30,该网络设备20部署在集群存储系统的关键路径上,当多个节点同时发送锁申请信息时,可以避免公共通路中的进行来回通信,从而提高了分布式锁的性能。
[0063]需要说明的是,将网络设备20部署在集群存储系统的关键路径上,可以将网络设备集群存储系统的心跳交换机上或节点间的大背板上或其他关键路径上,本发明对此不进行限制。[0064]本发明实施例以将网络设备20部署在集群存储系统的心跳交换机为例,对分布式锁管理进行说明,例如,在图1中所示的与各个节点直接连接的互为冗余的心跳交换机A和冗余心跳交换机B中分别部署网络设备20和冗余网络设备30 ;其中,心跳交换机可以包括常用的PCIe交换机、千兆以太网(Gigabit Ethernet,简称GE)交换机、万兆以太网(IOGigabit Ethernet,简称 10GE)交换机、IB (InfiniBand)交换机等;
[0065]需要说明的是,参见图1,该集群存储系统的关键路径,即互为冗余的心跳交换机A和冗余心跳交换机B中分别部署网络设备20和冗余网络设备30,冗余网络设备30与网络设备20完全相同,网络设备和冗余网络设备是相对的概念,互为冗余,其中任意一个均可作为主网络设备,另外一个作为冗余网络设备,两个网络设备20通过专用通道连接,主网络设备可以将每次的操作通过专用通道同步至冗余网络设备中,这种双冗余镜像同步的方式保证了数据的可靠性进而提高了集群存储系统的可靠性。
[0066]一方面,本发明实施例提供一种用于分布式锁管理的网络设备20,以图1所示的集群存储系统中的主网络设备为例,描述网络设备20的装置结构。
[0067]参见图2,网络设备20可以包括:处理器201,存储器202,以及通信交换芯片203 ;
[0068]需要说明的是,网络设备所包含的处理器201,存储器202,以及通信交换芯片203可以复用网络设备20在集群存储系统中部署的关键路径上的处理器、存储器及通信交换芯片,也可以是单独的处理器、存储器及通信交换芯片,本发明对此不进行具体限制。
[0069]存储器202可以为随机存取存储器,并向处理器201提供指令和数据。存储器202的一部分还可以包括非易失行随机存取存储器(NVRAM)。存储器202可以用来存储分布式锁管理过程中分布式锁管理设备包含的所有信息。
[0070]处理器201可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0071]其中,存储器202可以用于存储锁配置表,锁配置表包含资源标识、与资源标识一一对应的锁、以及锁的状态信息;
[0072]资源标识是网络设备20所管理的每个资源的唯一标识;与资源标识一一对应的锁是节点访问与资源标识对应资源时需要使用的“钥匙”节点需要访问资源时,需要向网络设备20申请;锁的状态信息是指示锁是否被节点使用,可以包括使用状态和未使用状态。
[0073]锁配置表中包含的资源标识、与资源标识一一对应的锁及锁的状态可以以表格的形式存储于存储器202中,例如,参见表1,为一种锁配置表;需要说明的是,本发明实施例仅以表格形式为例说明存储器202中的锁配置表包含的内容及内容之间的对应关系,当然,锁配置表还可以以其他形式存储于存储器202中,锁配置表的具体形式可以根据实际需求进行确定,本发明对此不进行具体限定。
[0074]表I
[0075]
资源标识I锁I锁的状态~
WMi未使用状态
【权利要求】
1.一种用于分布式锁管理的网络设备,其特征在于,应用于集群存储系统,所述集群存储系统包含所述网络设备以及与所述网络设备直接连接的各个节点,所述网络设备包括:处理器,存储器,以及通信交换芯片, 其中,所述存储器用于,存储锁配置表,所述锁配置表包含资源标识、与所述资源标识一一对应的锁、以及所述锁的状态信息; 所述通信交换芯片用于,接收第一节点发送的锁申请信息,以及将所述锁申请信息传输至所述处理器,其中,所述锁申请信息包含所述第一节点申请访问的资源标识; 所述处理器用于,根据所述第一节点申请访问的资源标识查询所述存储器中的锁配置表,若确定第一锁的状态为未使用状态,则生成授权所述第一节点使用所述第一锁的授权信息,并将所述授权信息传输至所述通信交换芯片,其中,所述第一锁为所述锁配置表中与所述第一节点申请访问的资源标识对应的锁,所述授权信息中包含所述第一锁; 所述通信交换芯片还用于,将所述授权信息发送至所述第一节点。
2.根据权利要求1所述的网络设备,其特征在于,所述网络设备部署在集群存储系统的关键访问路径上。
3.根据权利要求1或2所述的网络设备,其特征在于,所述网络设备与冗余网络设备连接,其中,所述冗余网络设备是与 所述网络设备通过硬件通道连接,且与所述网络设备功能相同的网络设备; 所述处理器还用于,将锁状态更改操作通过发送锁状态更改通知同步至所述冗余网络设备,其中,所述锁状态更改通知包括第一锁及第一锁的第一状态;或者, 所述处理器还用于,接收所述锁状态更改通知,根据所述锁状态更改通知的指示,将所述锁配置表中第一锁的状态更改为第一状态。
4.根据权利要求1-3任一项所述的网络设备,其特征在于,所述处理器还用于: 若确定所述第一锁的状态为使用状态,则根据所述锁配置表,在所述第一锁的状态恢复为未使用状态时,生成授权所述第一节点使用所述第一锁的授权信息。
5.根据权利要求1-4任一项所述的网络设备,其特征在于,所述处理器还用于: 在将所述授权信息传输给所述通信交换芯片之前,将所述锁配置表中所述第一锁的状态修改为使用状态。
6.根据权利要求1-5任一项所述的网络设备,其特征在于, 所述通信交换芯片还用于,接收所述第一节点发送的故障信息,以及将所述第一节点的故障信息传输至所述处理器; 所述处理器还用于,若确定所述第一锁正在给所述第一节点授权使用,根据所述第一节点的故障信息,将所述锁配置表中所述第一锁的状态修改为未使用状态。
7.根据权利要求1-6任一项所述的网络设备,其特征在于, 所述通信交换芯片还用于,接收所述第一节点发送的释放所述第一锁的通知,以及将所述第一节点释放所述第一锁的通知传输至所述处理器,其中,所述释放所述第一锁的通知包括所述第一锁; 所述处理器还用于,根据所述第一节点释放所述第一锁的通知,将所述锁配置表中所述第一锁的状态修改为未使用状态,生成第一锁回收成功的通知并传输至通信交换芯片;所述通信交换芯片还用于,向所述第一节点发送所述第一锁回收成功的通知。
8.一种集群存储系统,其特征在于,包括, 如权利要求1-7任一项所述的网络设备; 与所述网络设备连接的N个节点,其中,所述N大于等于2 ; 冗余网络设备,所述冗余网络设备与所述网络设备通过硬件通道连接,且与所述网络设备功能相同; 所述网络设备用于,将锁状态更改操作通过发送锁状态更改通知同步至所述冗余网络设备,其中,所述锁状态更改通知包括第一锁及第一锁的第一状态; 所述冗余网络设备用于,接收所述锁状态更改通知,根据所述锁状态更改通知的指示,将所述锁配置表中第一锁的状态更改为第一状态。
9.一种分布式锁管理方法,其特征在于,应用于集群存储系统,所述集群存储系统包含所述网络设备以及与所述网络设备直接连接的各个节点,所述方法包括: 所述网络设备接收第一节点发送的锁申请信息,所述锁申请信息包含所述第一节点申请访问的资源标识; 所述网络设备根据所述第一节点申请访问的资源标识查询锁配置表,若确定第一锁的状态为未使用状态,则生成授权所述第一节点使用所述第一锁的授权信息,并将所述授权信息发送至所述第一节点,其中,所述锁配置表包含资源标识信息、与所述资源标识一一对应的锁、以及所述锁的状态信息,所述第一锁为所述锁配置表中与所述第一节点申请访问的资源标识对应的锁;所述授权信息包含所述第一锁。
10.根据权利要求9所述的分布式锁管理方法,其特征在于,所述网络设备部署在集群存储系统的关键访问路径上。
11.根据权利要求9或10所`述的分布式锁管理方法,其特征在于,所述方法还包括, 将锁状态更改操作通过发送锁状态更改通知同步至所述冗余网络设备,其中,所述锁状态更改通知包括所述第一锁及第一状态; 或者, 接收所述锁状态更改通知,根据所述锁状态更改通知的指示,将所述锁配置表中所述第一锁的状态更改为第一状态。
12.根据权利要求9-11任一项所述的分布式锁管理方法,其特征在于,所述方法还包括: 所述网络设备若确定所述第一锁的状态为使用状态,则根据所述锁配置表,在所述第一锁的状态恢复为未使用状态时,生成授权所述第一节点使用所述第一锁的授权信息并发送给所述第一节点。
13.根据权利要求9-12任一项所述的分布式锁管理方法,其特征在于,在将所述授权信息发送给所述第一节点之前,所述方法还包括: 所述网络设备将所述锁配置表中所述第一锁的状态修改为使用状态。
14.根据权利要求9-13任一项所述的分布式锁管理方法,其特征在于,所述方法还包括: 所述网络设备接收所述第一节点发送的故障信息; 所述网络设备若确定所述第一锁正在给所述第一节点授权使用,根据所述第一节点的故障信息,将所述锁配置表中所述第一锁的状态修改为未使用状态。
15.根据权利要求9-14任一项所述的分布式锁管理方法,其特征在于,所述方法还包括: 所述网络设备接收所述第一节点发送的释放所述第一锁的通知,其中,所述释放所述第一锁的通知包括所述第一锁; 所述网络设备根据所述第一节点释放所述第一锁的通知,将所述锁配置表中所述第一锁的状态修改为未使用状态; 所述网络设备向所述第一节`点发送所述第一锁回收成功的通知。
【文档编号】H04L29/08GK103731485SQ201310728958
【公开日】2014年4月16日 申请日期:2013年12月26日 优先权日:2013年12月26日
【发明者】胡华, 梁明旭, 易永江 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1