一种存储集群系统的仲裁方法、装置及存储系统与流程

文档序号:11327244阅读:356来源:国知局
一种存储集群系统的仲裁方法、装置及存储系统与流程

本发明涉及存储技术领域,特别是涉及一种存储集群系统的仲裁方法、装置及存储系统。



背景技术:

存储集群系统通常包括多个存储端。为了保证系统运行的可靠性,多个存储端中通常有一些处于活跃状态,用于提供存储服务,另一些处于热备状态,保持与处于活跃状态的存储端的同步更新;这样,当存储端出现故障不能提供存储服务时,热备状态的存储端能够接管存储服务,从而保证服务的继续进行。

然而,存储集群系统通常面临的问题是脑裂,这往往是由于存储端的仲裁判断异常导致的。目前,多个存储端之间通过心跳线相互连接,相互发送心跳信息以判断对方是否存活;当存在两个存储端的心跳线断开时,则这两个存储端均认为对方异常,进一步,两个存储端均会提供存储服务,这样会导致数据异常甚至存储集群系统的崩溃。

因此,如何能够提高存储集群系统的仲裁可靠性,是本领域技术人员亟需解决的技术问题。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种存储集群系统的仲裁方法、装置及存储系统以解决现有技术中存储集群系统的仲裁可靠性差的问题。

为实现上述目的及其他相关目的,根据本发明的第一方面,本发明实施例提供一种存储集群系统的仲裁方法,该方法包括以下步骤:

当接收到上级存储端发送的状态信息后,以第一通信方式,向下级存储端发送当前存储端的状态信息;其中,所述状态信息至少包括服务标识,用于描述存储端能否提供存储服务;

当收到反馈回来的通信失败消息后,以第二通信方式向下级存储端发送当前存储端的状态信息。

可选地,向下级存储端发送当前存储端的状态信息之前,还包括:

当所述状态信息还包括活跃序号时,判断所述活跃序号是否需要更新;其中,所述活跃序号用于指示存储集群系统使用活跃序号对应的存储端提供存储服务;

当所述活跃序号需要更新时,将所述活跃序号更新为当前的存储端序号;

所述向下级存储端发送当前存储端的状态信息包括,将当前存储端的服务标识和更新后的活跃序号发送到下级存储端。

可选地,所述判断所述活跃序号是否需要更新,包括:

当上级存储端的服务标识为异常、且当前存储端的服务标识为存活时,确定所述活跃序号需要更新。

可选地,所述判断所述活跃序号是否需要更新,包括:

如果当前存储端的服务标识为存活,且当前存储端序号小于所述活跃序号,确定所述活跃序号需要更新。

可选地,所述第一通信方式包括有线通信,所述第二通信方式包括无线通信;或者,所述第一通信方式包括无线通信,所述第二通信方式包括有线通信。

可选地,所述存储端均处于相邻存储端的无线通信范围内。

根据本发明的第二方面,本发明实施例还提供一种存储集群系统的仲裁装置,该装置包括:

第一发送模块,用于当接收到上级存储端发送的状态信息后,以第一通信方式,向下级存储端发送当前存储端的状态信息;其中,状态信息至少包括服务标识,用于描述存储端能否提供存储服务;

第二发送模块,用于当收到反馈回来的通信失败消息后,以第二通信方式向下级存储端发送当前存储端的状态信息。

可选地,该装置还包括更新模块用于,

当所述状态信息还包括活跃序号时,判断所述活跃序号是否需要更新;其中,所述活跃序号用于指示存储集群系统使用活跃序号对应的存储端提供存储服务;

当所述活跃序号需要更新时,将所述活跃序号更新为当前的存储端序号;

所述第一发送模块,还用于当所述活跃序号需要更新时,将当前存储端的服务标识和更新后的活跃序号以第一通信方式发送到下级存储端;

所述第二发送模块,还用于将当前存储端的服务标识和更新后的活跃序号以第二通信方式发送到下级存储端。

可选地,所述更新模块还用于,

当上级存储端的服务标识为异常、且当前存储端的服务标识为存活时,确定所述活跃序号需要更新;

或者,

如果当前存储端的服务标识为存活,且当前存储端序号小于所述活跃序号,确定所述活跃序号需要更新。

根据本发明的第三方面,本发明实施例还提供一种存储系统,该存储系统包括多个存储端,其中,所述多个存储端中任意两个存储端之间通过第一通信方式和第二通信方式通信连接;当前存储端接收到上级存储端发送的状态信息后,以第一通信方式,向下级存储端发送当前存储端的状态信息;状态信息至少包括服务标识,用于描述存储端能否提供存储服务;当收到反馈回来的通信失败消息后,以第二通信方式向下级存储端发送当前存储端的状态信息。

如上所述,本发明实施例提供的一种存储集群系统的仲裁方法、装置及存储系统,具有以下有益效果:通过当接收到上级存储端发送的状态信息后,以第一通信方式,向下级存储端发送当前存储端的状态信息;其中,所述状态信息至少包括服务标识,用于描述存储端能否提供存储服务;当收到反馈回来的通信失败消息后,以第二通信方式向下级存储端发送当前存储端的状态信息。本发明实施例中各个存储端之间以第一通信方式无法通信时,还能够调整为以第二通信方式进行互联,从而保证各个存储端之间能够进行状态信息的交互,具有很高的稳定性,基于稳定的状态信息交互有效提高了存储端仲裁的可靠性。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种存储集群系统的仲裁方法的流程示意图;

图2是本发明实施例提供的另一种存储集群系统的仲裁方法的流程示意图;

图3是本发明实施例提供的一种存储集群系统的仲裁装置的结构示意图;

图4是本发明实施例提供的另一种存储集群系统的仲裁装置的结构示意图;

图5是本发明实施例提供的一种存储系统的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

请参阅图1至图5。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

通常的存储集群系统由多个存储端构成;多个存储端可以共享一个多个存储物理硬件设备(例如硬盘)构成的存储资源池,或者,每个存储端可以分别对应自身的存储物理硬件设备;存储端能够向计算节点(例如服务器)提供存储服务。多个存储端之间通过心跳线和/或仲裁线相连接,每个存储端能够向存储集群系统中的其他存储端发送状态信息,以表示自己的健康状况;一示例性实施例中,所述状态信息为异常时,表示该存储端不能提供存储服务器,所述状态信息为存活时,表示该存储端能够提供存储服务。一种常用的仲裁机制是,根据所述状态信息是否为异常或存活,对每个存储端进行投票,投票最低的存储端认为是发生存储服务异常的存储端;进一步,从存储集群系统中将发生存储服务异常的存储端去除,由其他存储端提供存储服务。通过上述存储集群系统,能够保证在任何一个存储端发生存储服务异常的情况下,该系统依然能够提供正常的存储服务,从而保证存储的冗余能力以及服务可靠性。当然,需要说明的是,上述存储集群系统仅是一示例性实施例,本发明实施例提供的存储集群系统的仲裁方法,可以应用于其他任意架构的存储集群系统,在本发明实施例中不做限定。

参见图1,是本发明实施例提供的一种存储集群系统的仲裁方法的流程示意图,如图1所示,该方法包括以下步骤:

步骤s101:当接收到上级存储端发送的状态信息后,以第一通信方式,向下级存储端发送当前存储端的状态信息;其中,所述状态信息至少包括服务标识,用于描述存储端能否提供存储服务。

在本发明实施例中,所述存储集群系统可以包括第一存储端、第二存储端以及第三存储端。第一存储端与第二存储端、第二存储端与第三存储端、以及第三存储端与第一存储端之间均通过第一通信方式通信连接,这样第一存储端、第二存储端以及第三存储端能够以第一通信方式互联成一个通信环路;而且,第一存储端与第二存储端、第二存储端与第三存储端、以及第三存储端与第一存储端之间还可以通过第二通信方式通信连接,这样第一存储端、第二存储端以及第三存储端还能够以第二通信方式互联成第二通信环路。

而且,所述第一通信方式可以理解为有线方式、所述第二通信方式可以理解为无线方式。其中,所述有线方式可以包括通信线缆、心跳线、仲裁线以及通信总线中的一种或多种的组合;所述无线方式可以包括无线网络、蓝牙和zigbee(中文:基于ieee802.15.4标准的低功耗局域网协议)中的一种或多种的组合。当然,在具体实施时,所述第一通信方式还可以理解为无线通信方式,所述第二通信方式还可以理解为有线通信方式;或者所述第一通信方式可以理解为有线通信方式中的多种方式和无线通信方式中的多种方式中的任意一种,所述第二通信方式可以理解为除所述第一通信方式选择的通信方式之外的、有线通信方式中的多种方式和无线通信方式中的多种的方式的任意一种。这样,存储端之间能够通过至少两种通信方式进行互联,当其中任意一种通信方式发生故障时,可以使用另一种通信方式进行通信交互,保证存储端之间通信的稳定性。

另外,需要说明的是,为了保证无线通信互联,每个存储端均应处于相邻存储端的通信范围内。一示例性实施例中,当存储端采用无线网卡进行通信互联,无线网卡的通信范围为30m,则第一存储端处于以第二存储端为中心的30m通信范围内,第二存储端处于以第三存储端为中心的30m通信范围内,第三存储端处于以第一存储端为中心的30m通信范围内。由于在存储系统集群系统的配置时,各个存储端之间可能存在障碍物,此时为了保证无线通信稳定,每个存储端均应处于根据相邻存储端的通信范围以及障碍物结构材质确定的参考通信范围内。同样以上述示例性实施例为例,所述无线网卡的通信范围为30m,存储端之间存在金属材质的障碍物、或者障碍物的厚度较厚时,可以确定参考通信范围为10m,且需要保证,第一存储端处于以第二存储端为中心的10m通信范围内,第二存储端处于以第三存储端为中心的10m通信范围内,第三存储端处于以第一存储端为中心的10m通信范围内。

为了清楚描述本发明实例提供的存储集群系统的仲裁方法,将以包括上述第一存储端、第二存储端以及第三存储端的存储集群系统为例,进行详细描述。

当第二存储端接收到上级存储端发送的状态信息后,以第一通信方式,向下级存储端发送第二存储端的状态信息。所述上级存储端和所述下级存储端可以理解为根据第一存储端、第二存储端和第三存储端构成的通信环路的通信方向确定的上级存储端或下级存储端。当第一存储端将其状态信息发送到第二存储端,第二存储端将其状态信息发送到第三存储端,以及第三存储端将其状态信息发送到第一存储端时,相对于第二存储端而言,所述上级存储端可以理解为第一存储端,所述下级存储端可以理解为第二存储端。

所述状态信息可以包括服务标识,所述服务标识用于描述存储端能否提供存储服务。一示例性实施例中,第二存储端向第三存储端发送第二存储端的状态信息,当所述状态信息中的服务标识为异常时,表示第二存储端不能提供存储服务,当所述状态信息中的服务器标识为存活时,表示第二存储端能够提供存储服务。

步骤s102:当收到反馈回来的通信失败消息后,以第二通信方式向下级存储端发送当前存储端的状态信息。

当第二存储端以第一通信方式向第三存储端发送状态信息后,如果第二存储端与第三存储端之间通信正常,则第三存储端将会向第二存储端反馈通信成功回执消息,用于表示第二存储端与第三存储端之间能够正常通信;如果第二存储端与第三存储端之间通信异常,第三存储端在参考时间内未响应,则会向第二存储端反馈通信失败消息,用于表示第二存储端与第三存储端之间通信异常。

如果第二存储端接收到通信失败消息,将以第二通信方式向第三存储端发送第二存储端的状态信息;如果第二存储单接收到通信成功消息,将继续以第一通信方式向第三存储端发送第二存储端的状态信息。

当然需要说明的是,在具体实施过程中,当第二通信方式反馈回来通信失败消息后,存储端还可以以上述实施例所描述的其他通信方式,建立存储端之间的通信连接,在本发明实施例中不再赘述。

由上述实施例的描述可见,本发明实施例提供的一种存储集群系统的仲裁方法,通过当接收到上级存储端发送的状态信息后,以第一通信方式,向下级存储端发送当前存储端的状态信息;其中,所述状态信息至少包括服务标识,用于描述存储端能否提供存储服务;当收到反馈回来的通信失败消息后,以第二通信方式向下级存储端发送当前存储端的状态信息。本发明实施例中各个存储端之间以第一通信方式无法通信时,还能够调整为以第二通信方式进行互联,从而保证各个存储端之间能够进行状态信息的交互,具有很高的稳定性,基于稳定的状态信息交互有效提高了存储端仲裁的可靠性。

参见图2,是本发明实施例提供的另一种存储集群系统的仲裁方法的流程示意图。如图2所示,该方法包括以下步骤:

步骤s201:当接收到上级存储端发送的状态信息后,所述状态信息还包括活跃序号时,判断所述活跃序号是否需要更新;其中,所述活跃序号用于指示存储集群系统使用活跃序号对应的存储端提供存储服务。

第二存储端接收第一存储端发送的第一存储端的状态信息,在本发明实施例中,所述状态信息还包括活跃序号;其中,所述活跃序号用于指示存储集群系统使用活跃序号对应的存储端提供存储服务。在一示例性实施例中,每个存储端均对应一序号;第一存储端对应第一序号,第二存储端对应第二序号,第三存储端对应第三序号,所述第一序号、第二序号和第三序号可以以自然数或者二进制数表示,在本发明实施例中不做限定。所述活跃序号可以为所述第一序号、第二序号和第三序号中的任意一个,当所述活跃序号为第一序号时,第一序号对应第一存储端,则由第一存储端提供存储服务,第二存储端和第二存储端进行数据同步更新,以在第一存储端发生宕机时,接替第一存储端提供存储服务。

为了判断活跃序号是否需要进行更新,在第一种实施情况下,判断所述活跃序号是否需要更新包括:当上级存储端的服务标识为异常、且当前存储端的服务标识为存活时,确定所述活跃序号需要更新。

第二存储端接收到第一存储端发送的第一存储端的状态信息,在所述第一存储端的状态信息中,所述活跃序号为第一序号,所述服务标识为异常,而且,所述第二存储端的服务标识为存活时,表示第一存储端不能提供存储服务器,而第二存储端能够提供存储服务,则确定所述活跃序号需要更新,在本发明实施例中,所述活跃序号更新为第二序号。在所述第一存储端的状态信息中,所述服务标识为正常,则表示第一存储端能够提供存储服务,确定所述活跃序号不需要更新。在所述第一存储端的状态信息中,所述服务标识为异常,而第二存储端的服务标识也为异常时,表示第一存储端和第二存储端均不能提供存储服务,则确定第二存储端无需进行活跃序号更新,需要由第三存储端进行活跃序号更新判断。

在存储集群系统工作过程中,可能发生第一存储端与第二存储端的通信中断,则第二存储端根据仲裁机制,会将活跃序号更新为第二序号,从而要求存储集群系统以第二存储端提供存储服务,而第一存储端本身服务标识为存活,也会要求存储集群系统以第一存储端提供存储服务,这样会导致脑裂。为了保证仲裁判断的可靠性,防止脑裂,在本发明实施例中,在服务标识为存活的情况下,可以确定存储端序号最小或者最大的存储端用于提供存储服务,本发明实施例以序号最小的存储端提供存储服务为例进行详细描述。在第二种实施情况下,判断所述活跃序号是否需要更新包括:如果当前存储端的服务标识为存活,且当前存储端序号小于所述活跃序号,确定所述活跃序号需要更新。

第一存储端接收到第三存储端发送的第三存储端的状态信息,在所述第三存储端的状态信息中包括活跃序号为第二序号,而第一存储端的服务标识为存活,第一存储端的第一序号小于第二序号,则第一存储端判定活跃序号需要更新。

步骤s202:当所述活跃序号需要更新时,将所述活跃序号更新为当前的存储端序号。

根据步骤s201的活跃序号更新的判定结果,第二存储端判定需要进行序号更新时,将活跃序号更新为第二序号;第一存储端判定需要进行序号更新时,则将活跃序号更新为第一序号。

步骤s203:以第一通信方式,向下级存储端发送当前存储端的状态信息。

步骤s204:当收到反馈回来的通信失败消息后,以第二通信方式向下级存储端发送当前存储端的状态信息。

本发明实施例与上述实施例的相同之处,可参见上述实施例的描述,在此不再赘述。

由上述实施例的描述可见,本发明实施例提供的另一种存储集群系统的仲裁方法,各个存储端之间进行相互校验判断,从而确定需要提供存储服务的存储端,进一步提高了仲裁判断的可靠性;而且,上述仲裁方法,无需配置第三方仲裁盘或者服务器进行仲裁判断,有效降低了仲裁部署成本。

通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(rom)、随机存取存储器(ram)、磁碟或者光盘等各种可以存储程序代码的介质。

与本发明提供的存储集群系统的仲裁方法实施例相对应,本发明还提供了一种存储集群系统的仲裁装置。

参见图3,是本发明实施例提供的一种存储集群系统的仲裁装置的结构示意图。如图3所示,该装置包括:

第一发送模块11,用于当接收到上级存储端发送的状态信息后,以第一通信方式,向下级存储端发送当前存储端的状态信息;其中,状态信息至少包括服务标识,用于描述存储端能否提供存储服务;

第二发送模块12,用于当收到反馈回来的通信失败消息后,以第二通信方式向下级存储端发送当前存储端的状态信息。

参见图4,是本发明实施例提供的另一种存储集群系统的仲裁装置的结构示意图。如图4所示,该装置包括:

更新模块21,用于当所述状态信息还包括活跃序号时,判断所述活跃序号是否需要更新;其中,所述活跃序号用于指示存储集群系统使用活跃序号对应的存储端提供存储服务;当所述活跃序号需要更新时,将所述活跃序号更新为当前的存储端序号;

第一发送模块22,用于当接收到上级存储端发送的状态信息后,以第一通信方式,向下级存储端发送当前存储端的状态信息,以及当所述活跃序号需要更新时,将当前存储端的服务标识和更新后的活跃序号以第一通信方式发送到下级存储端;

第二发送模块23,用于当收到反馈回来的通信失败消息后,以第二通信方式向下级存储端发送当前存储端的状态信息,以及将当前存储端的服务标识和更新后的活跃序号以第二通信方式发送到下级存储端。

为了判断活跃序号是否需要更新,所述更新模块21还用于,

当上级存储端的服务标识为异常、且当前存储端的服务标识为存活时,确定所述活跃序号需要更新;

或者,

如果当前存储端的服务标识为存活,且当前存储端序号小于所述活跃序号,确定所述活跃序号需要更新。

本发明实施例还提供一种存储系统,参见图5,是本发明实施例提供的一种存储系统的结构示意图。如图5所示,该存储系统3包括多个存储端;一示例性实施例中,所述存储系统3包括第一存储端31、第二存储端32以及第三存储端33;第一存储端31与第二存储端32之间、第二存储端32与第三存储端33之间、以及第三存储端33与第一存储端31之间均通过第一通信方式和第二通信方式通信连接。

以第二存储端为例,第二存储端接收到第一存储端发送的状态信息后,以第一通信方式,向第三存储端发送第二存储端的状态信息;状态信息至少包括服务标识,用于描述第二存储端能否提供存储服务;当收到反馈回来的通信失败消息后,以第二通信方式向第三存储端发送第二存储端的状态信息。

而且,上述存储系统可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1