CN111752488B - 存储集群的管理方法、装置、管理节点及存储介质 - Google Patents

存储集群的管理方法、装置、管理节点及存储介质 Download PDF

Info

Publication number
CN111752488B
CN111752488B CN202010620157.XA CN202010620157A CN111752488B CN 111752488 B CN111752488 B CN 111752488B CN 202010620157 A CN202010620157 A CN 202010620157A CN 111752488 B CN111752488 B CN 111752488B
Authority
CN
China
Prior art keywords
cluster
data node
node
version number
configuration information
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
Application number
CN202010620157.XA
Other languages
English (en)
Other versions
CN111752488A (zh
Inventor
刘保林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Unisinsight Technology Co Ltd
Original Assignee
Chongqing Unisinsight Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chongqing Unisinsight Technology Co Ltd filed Critical Chongqing Unisinsight Technology Co Ltd
Priority to CN202010620157.XA priority Critical patent/CN111752488B/zh
Publication of CN111752488A publication Critical patent/CN111752488A/zh
Application granted granted Critical
Publication of CN111752488B publication Critical patent/CN111752488B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

本发明涉及存储集群技术领域,提供一种存储集群的管理方法、装置、管理节点及存储介质,所述方法包括:接收第二数据节点上报的身份信息及与第二数据节点所属的存储集群的集群配置信息对应的版本号;当第二数据节点满足预设条件且第二数据节点的版本号大于全局版本号时,获取第二数据节点的集群配置信息;用第二数据节点的版本号更新全局版本号、并用第二数据节点集群配置信息更新全局版本号对应的集群配置信息;当更新后的全局版本号大于第一数据节点的版本号时,向第一数据节点发送更新后的全局版本号对应的集群配置信息,以使第一数据节点将更新后的全局版本号对应的集群配置信息更新至本地。本发明能够在存储集群恢复时保证存储业务的连续性。

Description

存储集群的管理方法、装置、管理节点及存储介质
技术领域
本发明涉及存储集群技术领域,具体而言,涉及一种存储集群的管理方法、装置、管理节点及存储介质。
背景技术
存储集群通常包括客户端、管理节点和数据节点。用户通过客户端将需要存储的数据存储至数据节点,管理节点通过管理存储集群的元数据信息,实现对数据节点的统一管理,数据节点用于存储用户实际需要存储的数据。对于存储集群的管理包括存储集群的恢复、向存储集群中添加数据节点,从存储集群中删除数据节点等。现有的存储集群在恢复时需要恢复的数据节点达到预设个数时,存储集群才能对外提供存储服务,无法保证存储业务的连续性。
发明内容
本发明的目的在于提供了一种存储集群的管理方法、装置、管理节点及存储介质,其能够在接收到一个数据节点上报的身份信息、版本号信息后就对存储集群进行恢复,由此在存储集群恢复时保证存储业务的连续性。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本发明提供了一种存储集群的管理方法,应用于存储集群的主管理节点,主管理节点与数据节点通信连接,数据节点存储有身份信息、数据节点所属的存储集群的集群配置信息及与集群配置信息对应的版本号,数据节点包括已上报身份信息的第一数据节点和未上报身份信息的第二数据节点,主管理节点预先存储全局版本号及与全局版本号对应的集群配置信息,全局版本号为第一数据节点的集群配置信息对应的最大版本号,所述方法包括:接收第二数据节点上报的身份信息及与第二数据节点所属的存储集群的集群配置信息对应的版本号;当第二数据节点满足预设条件且第二数据节点的版本号大于全局版本号时,获取第二数据节点的集群配置信息;用第二数据节点的版本号更新全局版本号、并用第二数据节点的集群配置信息更新全局版本号对应的集群配置信息;当更新后的全局版本号大于第一数据节点的版本号时,向第一数据节点发送更新后的全局版本号对应的集群配置信息,以使第一数据节点将更新后的全局版本号对应的集群配置信息更新至本地。
第二方面,本发明提供了一种存储集群的管理装置,应用于存储集群的主管理节点,主管理节点与数据节点通信连接,数据节点存储有身份信息、数据节点所属的存储集群的集群配置信息及与集群配置信息对应的版本号,数据节点包括已上报身份信息的第一数据节点和未上报身份信息的第二数据节点,主管理节点预先存储全局版本号及与全局版本号对应的集群配置信息,全局版本号为第一数据节点的集群配置信息对应的最大版本号,所述装置包括接收模块、获取模块、更新模块及发送模块,其中,接收模块用于接收第二数据节点上报的身份信息及与第二数据节点所属的存储集群的集群配置信息对应的版本号;获取模块用于当第二数据节点满足预设条件且第二数据节点的版本号大于全局版本号时,获取第二数据节点的集群配置信息;更新模块用于用第二数据节点的版本号更新全局版本号、并用第二数据节点的集群配置信息更新全局版本号对应的集群配置信息;发送模块用于当更新后的全局版本号大于第一数据节点的版本号时,向第一数据节点发送更新后的全局版本号对应的集群配置信息,以使第一数据节点将更新后的全局版本号对应的集群配置信息更新至本地。
第三方面,本发明提供了一种管理节点,所述管理节点包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的存储集群的管理方法。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的存储集群的管理方法。
相对于现有技术,本发明中,主管理节点在接收到每个第二数据节点上报的身份信息、版本号信息后,在第二数据节点满足预设条件后,通过对比第二数据节点上报的版本号和全局版本号,将存储集群中主管理节点中的存储集群配置信息更新为当前最大版本号对应的存储集群配置信息,将每个数据节点中的集群配置信息更新为当前最大版本号对应的存储集群配置信息,保证了存储集群中的主管理节点和所有数据节点中集群配置信息均为最新的,且是一致性,由此可以保证存储集群的存储业务的连续性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的应用场景示意图。
图2示出了本发明实施例提供的管理节点的方框示意图。
图3示出了本发明实施例提供的一种存储集群的管理方法的流程图。
图4示出了本发明实施例提供的另一种存储集群的管理方法的流程图。
图5示出了本发明实施例提供的另一种存储集群的管理方法的流程图。
图6示出了本发明实施例提供的另一种存储集群的管理方法的流程图。
图7示出了本发明实施例提供的另一种存储集群的管理方法的流程图。
图8示出了本发明实施例提供的另一种存储集群的管理方法的流程图。
图9示出了本发明实施例提供的另一种存储集群的管理方法的流程图。
图10示出了本发明实施例提供的另一种存储集群的管理方法的流程图。
图11示出了本发明实施例提供的另一种存储集群的管理方法的流程图。
图12示出了本发明实施例提供的另一种存储集群的管理方法的流程图。
图13示出了本发明实施例提供的存储集群的管理装置的方框示意图。
图标:10-管理节点;11-存储器;12-处理器;13-总线;14-通信接口;20-数据节点;30-客户端;100-存储集群的管理装置;110-接收模块;120-获取模块;130-更新模块;140-发送模块;150-数据节点增加模块;160-数据节点删除模块;170-重启模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
请参考图1,图1示出了本发明实施例提供的应用场景示意图,图1中,存储集群包括管理节点10、数据节点20及客户端30,管理节点10与数据节点20及客户端30均通信连接,客户端30与数据节点20通信连接,每一数据节点均存储有身份信息、数据节点所属的存储集群的集群配置信息及与所述集群配置信息对应的版本号,管理节点预先存储全局版本号及与全局版本号对应的集群配置信息,全局版本号为已上报的数据节点的集群配置信息对应的最大版本号,数据节点20定时将自身的身份信息及所属的存储集群的集群配置信息对应版本号上报至管理节点10,管理节点10在接收到任意一个数据节点20上报的身份信息及版本号后,判断该数据节点20是否满足预设条件,当满足预设条件且该数据节点20上报的版本号大于全局版本号时,用该数据节点20上报的版本号更新全局版本号,并用该数据节点20存储的集群配置信息更新管理节点存储的全局版本号对应的集群配置信息,同时,将其他数据节点20中版本号及对应的集群配置信息更新为当前版本号最大的全局版本号及对应的集群配置信息,由此保证,任意一个数据节点20上报后,存储集群中管理节点10及各数据节点20中的集群配置信息均为最新的,且保持一致,进而保证了业务的连续性。
需要说明的是,为了提高可靠性,管理节点10通常为多个,多个管理节点10通过同一个虚拟IP和数据节点20或者客户端30通信,多个管理节点10通过竞选机制(例如keepalived方式)竞选出主管理节点,除主管理节点之外的管理节点为从管理节点,当主管理节点出现故障时,主管理节点上的业务会切换至从管理节点,该从管理节点变为新的主管理节点,此时,虚拟IP也会漂移至新的主管理节点,也就是说,不管主管理节点如何变化,管理节点统一对外的虚拟IP是不变的。在图1中,两个管理节点的IP分别为:10.11.1.1和10.11.1.2,虚拟IP在IP为10.11.1.2的管理节点上,但是管理节点对外的虚拟IP为:10.11.1.254,当虚拟IP在IP为10.11.1.1的管理节点上时,管理节点对外的虚拟IP仍然为:10.11.1.254。
管理节点10可以为一个主机或服务器等实体的计算机,也可以是多个主机组成的主机组,或者是多个服务器组成的服务器组,还可以是能够实现与实体的计算机具有相同功能的虚拟主机或者虚拟服务器、或者虚拟主机组或者虚拟服务器组。
数据节点20可以为用于存储数据的存储服务器,或者是多个存储服务器组成的存储服务器组。
客户端30可以为一个主机或服务器等实体的计算机,也可以是多个主机组成的主机组,或者是多个服务器组成的服务器组,还可以是能够实现与实体的计算机具有相同功能的虚拟主机或者虚拟服务器、或者虚拟主机组或者虚拟服务器组。
在图1的基础上,本发明实施例还提供了图1中管理节点10的方框示意图,请参照图2,图2示出了本发明实施例提供的管理节点10的方框示意图。管理节点10包括存储器11、处理器12、总线13、通信接口14。存储器11、处理器12通过总线13连接,处理器12通过通信接口14与数据节点20及客户端30通信连接。
存储器11用于存储程序,例如上述的存储集群的管理装置,该存储集群的管理装置包括至少一个可以软件或固件(firmware)的形式存储于存储器11中的软件功能模块,处理器12在接收到执行指令后,执行所述程序以实现上述实施例揭示的存储集群的管理方法。
存储器11可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器11可以是内置于处理器12中的存储装置,也可以是独立于处理器12的存储装置。
总线13可以是ISA总线、PCI总线或EISA总线等。图2仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器12可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器12中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器12可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
通过至少一个通信接口14(可以是有线或者无线)实现管理节点10与至少一个数据节点20、以及客户端30之间的通信连接。
在图1和图2的基础上,本发明实施例提供一种存储集群的管理方法,存储集群的管理方法可以用于图1和图2中的管理节点10,当管理节点10为多个时,存储集群的管理方法可以用于主管理节点。请参照图3,图3示出了本发明实施例提供的一种存储集群的管理方法的流程图,该方法包括以下步骤:
步骤S100,接收第二数据节点上报的身份信息及与第二数据节点所属的存储集群的集群配置信息对应的版本号。
在本实施例中,每一数据节点20均存储有身份信息、该数据节点20所属的存储集群的集群配置信息及与集群配置信息对应的版本号,数据节点20的身份信息包括、但不限于该数据节点20的IP地址、端口号、标识、集群号等,数据节点20的标识用于唯一标识该数据节点20,集群号为该数据节点20所属的存储集群的集群号,数据节点20尚未加入任何存储集群之前,该集群号可以初始化为一个预设值,例如,此时集群号为-1。
在本实施例中,每一数据节点20还存储有该数据节点20所属的存储集群的集群配置信息,该集群配置信息包括、但不限于该存储集群中数据节点20的个数、所有数据节点20的身份信息等,每一个集群配置信息都对应一个版本号,版本号相同的集群配置信息的内容是相同的。
在本实施例中,管理节点10存储有全局版本号及全局版本号对应的集群配置信息,全局版本号为数据节点20存储的集群配置信息对应的版本号中最大的版本号,在集群正常运行时,全局版本号与数据节点的版本号相同,也就是说,管理节点10存储的集群配置信息与数据节点存储的集群配置信息相同。
需要说明的是,当数据节点尚未加入任何存储集群之间,该数据节点存储的集群配置信息均被初始化成预设值,对应的版本号也被初始化成预设值,例如,版本号初始化为0,在数据节点加入存储集群之后,管理节点会将全局版本号及全局版本号对应的集群配置信息同步至新加入的数据节点。当有新数据节点加入存储集群,或者存储集群中的数据节点被删除时,会导致管理节点存储的集群配置信息发生变化,对应的全局版本号也会递增,管理节点会将最新的全局版本号及最新的全局版本号对应的集群配置信息同步至存储集群的所有数据节点,以使同一个存储集群中管理节点和数据节点中的集群配置信息及对应的版本号保持一致。
在本实施例中,第二数据节点为未向主管理节点上报其身份信息的数据节点,第一数据节点为已经向主管理节点上报其身份信息的数据节点。
步骤S110,当第二数据节点满足预设条件且第二数据节点的版本号大于全局版本号时,获取第二数据节点的集群配置信息。
在本实施例中,存储集群在恢复或者正常运行时,存储集群中的数据节点20均会周期性地向管理节点10上报自己的身份信息及该数据节点20存储的集群配置信息对应的版本号,管理节点10根据每一数据节点20上报的身份信息和版本号判断是否需要更新全局版本号及对应的集群配置信息,当上报的版本号等于全局版本号,则可以认为存储集群处于正常运行,当上报的版本号小于全局版本号,则认为该数据节点20存储的集群配置信息不是最新的,管理节点10会将最新的集群配置信息同步至该数据节点20。
在本实施例中,第二数据节点满足预设条件可以是存储集群当前处于恢复阶段,第二数据节点可以是存储集群中首个恢复的数据节点20,第二数据节点也可以是存储集群中非首个恢复的数据节点20。
步骤S120,用第二数据节点的版本号更新全局版本号、并用第二数据节点的集群配置信息更新全局版本号对应的集群配置信息。
步骤S130,当更新后的全局版本号大于第一数据节点的版本号时,向第一数据节点发送更新后的全局版本号对应的集群配置信息,以使第一数据节点将更新后的全局版本号对应的集群配置信息更新至本地。
在本实施中,由于管理节点10并不需要将集群配置信息保存至本地的非易失性存储器中,每个数据节点20需要将本地的集群配置信息保存至本地的非易失性存储器中,因此,当管理节点10重新上电后,需要将集群配置信息从数据节点20中恢复至管理节点10的内存中。在此过程中,需要对全局版本号进行更新,直至存储集群中所有数据节点20均上报完成,最终全局版本号为所有数据节点的版本号最大的,而恢复的过程中,在任意一个数据节点20上报后,存储集群中所有已上报的数据节点20的版本号与全局版本号相同,所有已上报的数据节点20的存储的集群配置信息与管理节点10存储的集群配置信息相同,此时,存储集群即可对外提供存储服务,由此达到上报即恢复的目的,进而保证存储集群上业务的连续性。
本发明实施例提供的上述存储集群的管理方法,能够在接收到一个数据节点上报的身份信息、版本号信息后就对存储集群进行恢复,由此保证存储集群恢复时保证存储业务的连续性。
在图3的基础上,本发明实施例给出第二数据节点是否满足预设条件的具体判断方法,请参照图4,图4示出了本发明实施例提供的另一种存储集群的管理方法的流程图,该方法包括还以下步骤:
步骤S101,判断存储集群是否处于第一状态。
在本实施例中,第一状态可以用于表征存储集群处于不包括任何数据节点的初始状态或者存储集群处于可对外提供存储服务的状态。判断存储集群是否处理第一状态的方式至少包括以下两种。
方式一:
首先,若第一数据节点的个数为0,则判定存储集群处于第一状态。
在本实施例中,第一数据节点的个数为0意味着此时存储集群处于不包括任何数据节点的初始状态。
其次,若第一数据节点的个数大于0,且存储集群中在线的数据节点的个数大于0,则判定存储集群处于第一状态。
在本实施例中,第一数据节点的个数大于0,且存储集群中在线的数据节点的个数大于0,表明存储集群处于可对外提供存储服务的状态。
方式二:
若第一数据节点的个数大于0,具有相同版本号的第一数据节点的个数与存储集群中数据节点的总个数之比大于或者等于预设比值时,则判定存储集群处于第一状态。
在本实施例中,例如,预设比值设置为1/2,存储集群包括3个数据节点20:节点1~节点3,其版本号分别为1、2、2,上报顺序为节点1、节点2、节点3,当节点1上报时,版本号为1的节点个数为1,占存储集群的总个数的比值为:1/3,小于1/2,则判定存储集群未处于第一状态,当节点2上报时,版本号为1的节点个数为1,占存储集群的总个数的比值为:1/3,版本号为2的节点个数为1,占存储集群的总个数的比值为:1/3,二者均小于1/2,则判定存储集群未处于第一状态,当节点3上报时,版本号为1的节点个数为1,占存储集群的总个数的比值为:1/3,版本号为2的节点个数为2,占存储集群的总个数的比值为:2/3,版本号为2的节点个数与存储集群中数据节点的总个数之比大于1/2,则判定存储集群处于第一状态。
需要说明的是,预设比值可以根据实际需要进行设置,预设比值越高,存储集群的可靠性越高,预设比值越低,存储集群的业务连续性越好。上述方式一和方式二可以根据实际需要进行选择,当对业务的连续性要求高于数据的可靠性时,可以采用方式一,当对业务的连续性要求低于数据的可靠性时,可以采用方式二。
步骤S102,若存储集群处于第一状态且第一集群号与第二集群号不一致时,则判定第二数据节点为待添加节点。
在本实施例中,待添加节点为新加入存储集群中的数据节点20,需要说明的是,此时,待添加节点只是在网络上进入存储集群,管理节点10的集群配置信息中并没有该待添加节点的身份信息,需要用户通过客户端30确认添加该第二数据节点后,才会进行真正的添加处理流程。
步骤S103,若存储集群处于第一状态、第一集群号与第二集群号一致且第二数据节点不属于存储集群,则判定第二数据节点为已删除节点。
在本实施例中,第二数据节点不属于存储集群意味着管理节点10的集群配置信息中不存在第二数据节点的身份信息。可能的一种场景是:之前用户通过客户端30下发删除第二数据节点的删除命令,管理节点10更新了本地的集群配置信息,但更新后的集群配置信息还未同步至该第二数据节点时,第二数据节点被重启了,重启后的第二数据节点向存储集群上报自己的身份信息,就会出现本步骤的情况。
步骤S104,若第二数据节点既非已删除节点又非待添加节点时,则判定第二数据节点满足预设条件。
本发明实施例提供的上述存储集群的管理方法,一方面,将待添加节点和已删除节点识别出来单独处理,保证了存储集群在真正需要恢复的情况下得以正确恢复,另一方面,又给出了两种分别侧重存储集群的可靠性和连续性的恢复方法,满足了不同场景的需求,丰富了本发明实施例提供的存储集群的管理方法的应用场景。
在图3的基础上,本发明实施例给出当第二数据节点是已删除节点时的具体处理方法,请参照图5,图5示出了本发明实施例提供的另一种存储集群的管理方法的流程图,该方法包括还以下步骤:
步骤S200,向第二数据节点发送删除节点的命令,以使第二数据节点清除本地的集群配置信息。
在本实施例中,第二数据节点在清除本地的集群配置信息的同时,也会将该集群配置信息对应的版本号设置为初始值。
需要说明的是,作为一种具体实施方式,第二数据节点在添加至存储集群时会启动并运行一个进程,第二数据节点通过该进程和主管理节点进行集群配置信息等存储集群的元数据信息的交互,第二数据节点通过该进程向客户端30提供数据存储或者数据读取服务,在本步骤中,由于此时第二数据节点已经从存储集群中删除,因此,在第二数据节点清除本地的集群配置信息后,第二数据节点中运行的该进程会自动退出。
本发明实施例提供的上述存储集群的管理方法,当第二数据节点为待删除节点时,本发明实施例在收到已删除节点的上报后及时将其残留的旧的集群配置信息清除,避免已删除节点残留的旧的集群配置信息影响存储集群的正常恢复。
在图3的基础上,本发明实施例给出当第二数据节点是待添加节点时的具体处理方法,请参照图6,图6示出了本发明实施例提供的另一种存储集群的管理方法的流程图,该方法包括还以下步骤:
步骤S300,接收客户端发送的将第二数据节点添加至存储集群的添加命令。
步骤S310,判断存储集群是否处于第二状态。
在本实施例中,第二状态用于表征存储集群处于不包括任何数据节点的初始状态或者正常运行的状态。存储集群处于第二状态的情况至少包括以下两种:
情况一:若第一数据节点的个数为0,则判定存储集群处于第二状态。
在本实施例中,第一数据节点的个数为0意味着此时存储集群处于不包括任何数据节点的初始状态。
情况二:若第一数据节点的个数大于0,且存储集群中的数据节点均在线,则判定存储集群处于第二状态。
在本实施例中,存储集群中第一数据节点的个数大于0,此时,存储集群中的数据节点即为第一数据节点,即所有的第一数据节点均在线,此时存储集群处于正常运行状态。
步骤S320,若存储集群处于第二状态,则将第二数据节点的身份信息更新至全局版本号对应的集群配置信息并递增全局版本号。
在本实施例中,作为一种具体实施方式,集群配置信息可以用如下结构体表示:
Figure BDA0002562771040000121
Figure BDA0002562771040000131
在本实施例中,作为一种具体实现方式,在管理节点10识别出第二数据节点为待添加节点时,可以首先将第二数据节点加入待确认链表中,待确认链表可以用如下结构体表示:
typedef struct tagUnconfirmDnList
Figure BDA0002562771040000141
当用户通过客户端30确定将第二数据节点加入存储集群后,管理节点10首先将第二数据节点从待确认链表中删除,加入至全局版本号对应的集群配置信息,并将全局版本号递增。
需要说明的是,当集群未处于第二状态时,不允许添加第二数据节点,向客户端30反馈添加第二数据节点失败。
步骤S330,将更新后的全局版本号对应的集群配置信息及递增后的全局版本号发送至第一数据节点和第二数据节点,以使第一数据节点和第二数据节点依据更新后的全局版本号对应的集群配置信息及递增后的全局版本号更新本地的集群配置信息及与本地的集群配置信息对应的版本号。
在本实施例中,由于将第二数据节点加入存储集群更新了管理节点10存储的集群配置信息及对应的全局版本号,为了使第一数据节点和第二数据节点中的集群配置信息及对应的版本号进行同步更新,因此,将将更新后的全局版本号对应的集群配置信息及递增后的全局版本号发送至第一数据节点和第二数据节点。
步骤S340,当接收到第一数据节点和第二数据节点中的任意一个数据节点反馈的更新成功的响应后,则向客户端反馈添加命令执行成功。
在本实施例中,为了尽快使存储集群恢复至正常对外提供服务的状态,不影响存储业务的连续性,当第一数据节点和第二数据节点中任意一个数据节点反馈更新成功的响应后,管理节点10向客户端30反馈添加命令执行成功,对于本次更新失败的数据节点可以通过后续定时上报身份信息和版本号,最终使存储集群中的所有数据节点20存储的集群配置信息与管理节点10存储的集群配置信息相同。
在本实施例中,只有当第一数据节点和第二数据节点均反馈更新失败时,管理节点10才会向客户端30反馈添加命令执行失败,此时,还需要将全局版本号及全局版本号对应的集群配置信息回滚至添加第二数据节点之间的状态。
本发明实施例提供的上述存储集群的管理方法,一方面,当第二数据节点为待添加节点时,本发明实施例在收到确认将待添加节点加入至存储集群的添加命令后,及时更新至存储集群的集群配置信息及对应的全局版本号,使集群尽快恢复至正常状态,进而提高了存储集群的可靠性;另一方面,在接收到第一数据节点和第二数据节点中的任意一个数据节点反馈的更新成功的响应后,及时向客户端30反馈命令执行成功的响应消息,提高了存储集群的响应速度。
在本实施例中,为了提高存储集群的可靠性,当管理节点10还包括从管理节点时,当第一数据节点个数为0、即第二数据节点为存储集群中首个添加的数据节点20时,还需要将相关信息同步至从管理节点。在图6的基础上,本发明实施例给出当第一数据节点个数为0时的具体处理方法,请参照图7,图7示出了本发明实施例提供的另一种存储集群的管理方法的流程图,该方法包括还以下步骤:
步骤S350,若第一数据节点的个数为0,则将标志位进行置位并将置位后的标志位发送至从管理节点,以使从管理节点将置位后的标志位进行存储。
在本实施例中,标志位用于表征存储集群中是否存在数据节点20,作为一种具体实施方式,当存储集群中存在数据节点20时,将标志位进行置位,即将标志位置1,当存储集群中不存在数据节点20时,将标志位清除,即将标志位置0。
在本实施例中,从管理节点将置位后的标志位进行存储可以是存储于从管理节点的非易失性存储介质中,也可以是与从管理节点通信连接的存储服务器的非易失性存储介质中。
步骤S360,当接收到从管理节点反馈的存储成功的消息后,向客户端反馈添加命令执行成功。
在本实施例中,当从管理节点为多个时,当管理节点10接收到多个从管理节点反馈存储成功的消息后,向客户端反馈添加命令执行成功。多个从管理节点中任意一个从管理节点反馈存储失败,则向客户端反馈添加命令执行失败。
需要说明的是,作为一种具体实施方式,步骤S350和步骤S330可以同时执行,管理节点10在执行步骤S340和步骤S360后,根据两者反馈的结果,再最终确定向客户端反馈添加命令执行成功或者添加命令执行失败,即步骤S340和步骤S360中任意一个步骤反馈添加命令执行失败,则管理节点10最终确定向客户端反馈添加命令执行失败。
还需要说明的是,在存储集群正常运行时,用户也可以通过客户端30向存储集群下发添加新数据节点20的添加命令,存储集群处理添加新数据节点的过程如上述当第二数据节点为待添加节点时,用户通过客户端30确定将第二数据节点加入存储集群后的过程类似,此处不再赘述。
本发明实施例提供的上述存储集群的管理方法,通过将表征存储集群中是否存在数据节点20的标志位进行置位时,及时将置位后的标志位同步至从管理节点,使得从管理节点既无需存储集群配置信息,又可以在主管理节点出现故障时,快速地将集群配置信息快速地按照前述实施例中记载的存储集群的恢复方法(例如,步骤S100~步骤S130)接手主管理节点的业务。
在本实施例中,在管理存储集群时,当存储集群中的某个数据节点及其存储的数据不再需要时,可以将该数据节点强制删除,本发明实施例提供了一种具体强制删除数据节点的实现方式,请参照图8,图8示出了本发明实施例提供的另一种存储集群的管理方法的流程图,该方法包括还以下步骤:
步骤S400,接收客户端删除数据节点中的第一目标数据节点的强制删除命令。
在本实施例中,第一目标数据节点为存储集群中的数据节点20中待强制删除的数据节点。
步骤S410,当存储集群处于第二状态时,将全局版本号对应的集群配置信息中的第一目标数据节点的身份信息清除并递增全局版本号。
在本实施例中,第二状态用于表征存储集群处于不包括任何数据节点的初始状态或者正常运行的状态。
在本实施例中,第二状态的判断方法与步骤S310相同,此处不再赘述。
在本实施例中,当第一目标数据节点被强制删除后,管理节点10存储的集群配置信息会发生变化,即集群配置信息中的第一目标数据节点的身份信息会被删除,此时,对应的全局版本号也会递增。
需要说明的是,当集群未处于第二状态时,不允许强制删除第一目标数据节点,向客户端30反馈强制删除第一目标数据节点失败。
步骤S420,将清除第一目标数据节点的身份信息后的全局版本号对应的集群配置信息及递增后的全局版本号发送至存储集群中的所有数据节点,以使存储集群中的所有数据节点依据清除第一目标数据节点的身份信息后的全局版本号对应的集群配置信息及递增后的全局版本号更新本地的集群配置信息及与本地的集群配置信息对应的版本号。
在本实施例中,当全局版本号及对应的集群配置信息会发生变化时,为了保证存储集群中其他数据节点的集群配置信息及对应的版本号同步更新,管理节点10会将更新后的全局版本号及对应的集群配置信息发送至存储集群中的每一个数据节点20。
步骤S430,当接收到存储集群中的所有数据节点中任意一个数据节点反馈的更新成功的响应后,则向客户端反馈强制删除命令执行成功。
在本实施例中,只要存储集群中的所有数据节点中任意一个数据节点反馈的更新成功,管理节点10就向客户端反馈强制删除命令执行成功。当存储集群中的所有数据节点均反馈更新失败时,管理节点10向客户端反馈强制删除命令执行失败,当强制删除命令执行失败时,还需要将全局版本号及对应的集群配置信息回滚至更新前的状态。
需要说明的是,为了提高存储集群的可靠性,作为一种具体的实现方式,也可以当存储集群中的所有数据节点中反馈更新成功的数据节点20的个数大于或者等于预设个数时,向客户端反馈强制删除命令执行成功,当存储集群中的所有数据节点中反馈更新成功的数据节点20的个数小于预设个数时,管理节点10向客户端反馈强制删除命令执行失败,当强制删除命令执行失败时,还需要将全局版本号及对应的集群配置信息回滚至更新前的状态,并将更新成功的数据节点20的版本号及对应的集群配置信息也回滚至更新前的状态。
还需要说明的是,也可以强制删除多个数据节点,此时的处理与强制删除一个数据节点类似,只不过将全局版本号对应的集群配置信息中的待强制删除的多个数据节点的身份信息清除并递增全局版本号,再将全局版本号对应的集群配置信息及递增后的全局版本号发送至存储集群中的所有数据节点。
本发明实施例提供的上述存储集群的管理方法,在存储集群中的数据节点20及其存储的数据均不再使用时,将该数据节点20从存储集群中强制删除,更新管理节点10存储的集群配置信息,并对全局版本号进行递增,同时依据更新后的集群配置信息及全局版本号更新存储集群中每个数据节点的集群配置信息及对应的版本号,保证了存储集群中管理节点10和数据节点20中的集群配置信息及版本号的同步更新,同时,在任意一个数据节点20反馈更新成功后,向客户端30反馈强制删除命令执行成功,保证了存储集群相应强制删除命令的及时性。
在本实施例中,当存在从管理节点并且待强制删除的数据节点为存储集群中唯一的数据节点时,为了保证存储集群中从管理节点可以在主管理节点出现异常时快速、正确地接手主管理节点的业务,本实施例还提供了一种具体更新从管理节点的实施方式,请参照图9,图9示出了本发明实施例提供的另一种存储集群的管理方法的流程图,该方法包括还以下步骤:
步骤S440,若第一目标数据节点为存储集群中唯一的数据节点,则将标志位进行清除并将清除后的标志位发送至从管理节点,以使从管理节点将清除后的标志位进行存储。
在本实施例中,标志位用于表征存储集群中是否存在数据节点20,与步骤S350中的标志位一样,当第一目标数据节点为存储集群中唯一的数据节点时,即一旦第一目标数据节点被强制删除后,此时,存储集群中不再存在任何数据节点20,此时,需要将该标志位清除,并将清除后的标志位发送至从管理节点。作为一种具体实现方式,可以将该标志位置0。
步骤S450,当接收到从管理节点反馈的存储成功的消息后,向客户端反馈强制删除命令执行成功。
在本实施例中,步骤S450的处理方式同步骤S360,此处不再赘述。
本发明实施例提供的上述存储集群的管理方法,通过将表征存储集群中是否存在数据节点20的标志位进行清除时,及时将清除后的标志位同步至从管理节点,使得从管理节点既无需存储集群配置信息,又可以在主管理节点出现故障时,快速地将集群配置信息快速地按照前述实施例中记载的存储集群的恢复方法(例如,步骤S100~步骤S130)接手主管理节点的业务。
在本实施例中,当用户删除某个数据节点20时,但是该数据节点20上的数据还需要使用时,此时需要对该数据节点20进行正常删除,请参照图10,图10示出了本发明实施例提供的另一种存储集群的管理方法的流程图,该方法包括还以下步骤:
步骤S500,接收客户端删除数据节点中的第二目标数据节点的正常删除命令。
在本实施例中,第二目标数据节点为存储集群中的数据节点20中待正常删除的数据节点。
步骤S510,当存储集群处于第二状态时,将全局版本号对应的集群配置信息中的第二目标数据节点的状态信息更新为待删除并递增全局版本号。
在本实施例中,全局版本号对应的集群配置信息中包括存储集群中每一数据节点的状态信息,当管理节点10接收到客户端30发送的正常删除第二目标数据节点的正常删除命令时,管理节点10会将全局版本号对应的集群配置信息中第二目标数据节点的状态信息更新为待删除状态,意味着第二目标数据节点此时还未完全从存储集群中删除。
需要说明的是,当集群未处于第二状态时,不允许正常删除第二目标数据节点,向客户端30反馈正常删除第二目标数据节点失败。
步骤S520,将更新后的全局版本号对应的集群配置信息及递增后的全局版本号发送至存储集群中的所有数据节点,以使存储集群中的所有数据节点依据更新后的全局版本号对应的集群配置信息及递增后的全局版本号更新本地的集群配置信息及与本地的集群配置信息对应的版本号。
步骤S530,当接收到存储集群中的所有数据节点中任意一个数据节点反馈的更新成功的响应后,则向客户端反馈正常删除命令执行成功。
在本实施例中,本步骤与步骤S430类似,此处不再赘述。
本发明实施例提供的上述存储集群的管理方法,通过将正常删除的数据节点20的状态信息更新为待删除,并将存储集群中管理节点10和数据节点20中的集群配置信息及版本号的同步更新,从而保证了在存储集群中对正常删除的数据节点进行处理时,存储集群仍然可以对外正常提供服务,保证了存储集群中的业务的连续性。
在本实施例中,为了保证正常删除的数据节点中存储的数据可以继续正常使用,本发明实施例还提供了一种具体地对正常删除的数据节点中存储的数据的处理方式,请参照图11,图11示出了本发明实施例提供的另一种存储集群的管理方法的流程图,该方法包括还以下步骤:
步骤S540,将第二目标数据节点存储的数据迁移至备用节点。
在本实施例中,备用节点可以是存储集群中数据节点中除第二目标数据节点之外的一个数据节点或者几个数据节点,例如,存储集群中的数据节点20为:节点1~节点5,第二目标数据节点为节点3,则备用节点可以是节点1、节点2、节点4和节点5中的任意一个节点,例如节点4,也可以是其中的两个或两个以上的节点,例如,节点1、节点4和节点5。
步骤S550,当第二目标数据节点存储的数据迁移完成后,将全局版本号对应的集群配置信息中的第二目标数据节点的身份信息清除并递增全局版本号。
在本实施例中,步骤S550与步骤S410的处理过程类似,此处不再赘述。
步骤S560,将清除第二目标数据节点的身份信息后的全局版本号对应的集群配置信息及递增后的全局版本号发送至存储集群中的所有数据节点,以使存储集群中的所有数据节点依据清除第二目标数据节点的身份信息后的全局版本号对应的集群配置信息及递增后的全局版本号更新本地的集群配置信息及与本地的集群配置信息对应的版本号。
在本实施例中,步骤S560与步骤S420的处理过程类似,此处不再赘述。
需要说明的是,当正常删除的数据节点为存储集群中的唯一的数据节点时,不允许对该数据节点进行正常删除。
需要说明的是,可以创建专门的线程执行步骤S550和S560。该线程可以周期性地检测处于待删除状态的第二目标数据节点存储的数据是否迁移完成。
本发明实施例提供的上述存储集群的管理方法,通过将正常删除的数据节点中存储的数据迁移至存储集群中的备用节点,保证了正常删除的数据节点中存储的数据的可用性。
需要说明的是,根据实际场景的需要,管理节点10存储的集群配置信息中还可以存储数据节点20间的共享信息,如根目录信息,容量信息等信息,当这些信息的变更时,管理节点10存储的集群配置信息也会更新,对应的全局版本号也会递增,同样地,也会将更新后的集群配置信息及递增后的全局版本号同步至存储集群中的数据节点20。
在本实施例中,管理节点10在进行主从切换时,通常会导致旧的主管理节点和切换后的新的主管理节点都认为自己是主管理节点,此时,存储集群处于脑裂状态,从而造成存储集群无法正常工作,为了防止脑裂的发生,本发明实施例还提供一种防止脑裂的具体实现方式,请参照图12,图12示出了本发明实施例提供的另一种存储集群的管理方法的流程图,该方法包括还以下步骤:
步骤S600,当检测到虚拟IP不存在时,重启主管理节点。
在本实施例中,管理节点使用虚拟IP对外通信,当主管理节点正常时,虚拟IP自动设置在主管理节点,当主管理节点出现异常时,从管理节点接管主管理节点,成为新的主管理节点,此时虚拟IP自动设置在新的主管理节点,主管理节点实施监测是否存在虚拟IP,当不存在虚拟IP时,意味着,此时主管理节点的业务已经被新的主管理节点接管,本管理节点已经不再充当主管理节点,此时,重启本管理节点,以避免本管理节点和新的主管理节点都认为自己是主管理节点而导致的脑裂。
本发明实施例提供的上述存储集群的管理方法,主管理节点发现自己的业务已经被新的管理节点接管,重启自身,避免了脑裂的发生,保证了存储集群的可靠性。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种存储集群的管理装置100的实现方式。请参照图13,图13示出了本发明实施例提供的存储集群的管理装置100的方框示意图。需要说明的是,本实施例所提供的存储集群的管理装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出。
存储集群的管理装置100包括接收模块110、获取模块120、更新模块130、发送模块140、数据节点增加模块150、数据节点删除模块160及重启模块170。
接收模块110,用于接收第二数据节点上报的身份信息及与第二数据节点所属的存储集群的集群配置信息对应的版本号。
获取模块120,用于当第二数据节点满足预设条件且第二数据节点的版本号大于全局版本号时,获取第二数据节点的集群配置信息。
作为一种具体实施方式,第二数据节点的身份信息还包括第二数据节点所属的存储集群的第一集群号,主管理节点预先存储有存储集群的第二集群号,获取模块120在执行当第二数据节点满足预设条件且第二数据节点的版本号大于全局版本号时,获取第二数据节点的集群配置信息的步骤之前,具体还用于:判断存储集群是否处于第一状态;若存储集群处于第一状态且第一集群号与第二集群号不一致时,则判定第二数据节点为待添加节点;若存储集群处于第一状态、第一集群号与第二集群号一致且第二数据节点不属于存储集群,则判定第二数据节点为已删除节点;若第二数据节点既非已删除节点又非待添加节点时,则判定第二数据节点满足预设条件。
作为一种具体实施方式,获取模块120在执行判断存储集群是否处于第一状态的步骤时,具体用于:若第一数据节点的个数为0,则判定存储集群处于第一状态;若第一数据节点的个数大于0,且存储集群中在线的数据节点的个数大于0,则判定存储集群处于第一状态。
作为一种具体实施方式,获取模块120在执行判断存储集群是否处于第一状态的步骤时,具体还用于:若第一数据节点的个数大于0,具有相同版本号的第一数据节点的个数与存储集群中数据节点的总个数之比大于或者等于预设比值时,则判定存储集群处于第一状态。
作为一种具体实施方式,在判定第二数据节点为已删除节点的步骤之后,获取模块120还用于:向第二数据节点发送删除节点的命令,以使第二数据节点清除本地的集群配置信息。
更新模块130,用于用第二数据节点的版本号更新全局版本号、并用第二数据节点的集群配置信息更新全局版本号对应的集群配置信息。
发送模块140,用于当更新后的全局版本号大于第一数据节点的版本号时,向第一数据节点发送更新后的全局版本号对应的集群配置信息,以使第一数据节点将更新后的全局版本号对应的集群配置信息更新至本地。
数据节点增加模块150,用于在判定第二数据节点为待添加节点的步骤之后,用于:接收客户端发送的将第二数据节点添加至存储集群的添加命令;判断存储集群是否处于第二状态;若存储集群处于第二状态,则将第二数据节点的身份信息更新至全局版本号对应的集群配置信息并递增全局版本号;将更新后的全局版本号对应的集群配置信息及递增后的全局版本号发送至第一数据节点和第二数据节点,以使第一数据节点和第二数据节点依据更新后的全局版本号对应的集群配置信息及递增后的全局版本号更新本地的集群配置信息及与本地的集群配置信息对应的版本号;当接收到第一数据节点和第二数据节点中的任意一个数据节点反馈的更新成功的响应后,则向客户端反馈添加命令执行成功。
作为一种具体实施方式,数据节点增加模块150在怕判断存储集群是否处于第二状态时,具体用于:若第一数据节点的个数为0,则判定存储集群处于第二状态;若第一数据节点的个数大于0,且存储集群中的数据节点均在线,则判定存储集群处于第二状态。
作为一种具体实施方式,主管理节点还包括用于表征存储集群中是否存在数据节点的标志位,存储集群还包括从管理节点,数据节点增加模块150具体还用于:若第一数据节点的个数为0,则将标志位进行置位并将置位后的标志位发送至从管理节点,以使从管理节点将置位后的标志位进行存储;当接收到从管理节点反馈的存储成功的消息后,向述客户端反馈添加命令执行成功。
数据节点删除模块160,用于:接收客户端删除数据节点中的第一目标数据节点的强制删除命令;当存储集群处于第二状态时,将全局版本号对应的集群配置信息中的第一目标数据节点的身份信息清除并递增全局版本号;将清除第一目标数据节点的身份信息后的全局版本号对应的集群配置信息及递增后的全局版本号发送至存储集群中的所有数据节点,以使存储集群中的所有数据节点依据清除第一目标数据节点的身份信息后的全局版本号对应的集群配置信息及递增后的全局版本号更新本地的集群配置信息及与本地的集群配置信息对应的版本号;当接收到存储集群中的所有数据节点中任意一个数据节点反馈的更新成功的响应后,则向客户端反馈强制删除命令执行成功。
作为一种具体实施方式,主管理节点还包括用于表征存储集群中是否存在数据节点的标志位,存储集群还包括从管理节点,数据节点删除模块160具体用于:若第一目标数据节点为存储集群中唯一的数据节点,则将标志位进行清除并将清除后的标志位发送至从管理节点,以使从管理节点将清除后的标志位进行存储;当接收到从管理节点反馈的存储成功的消息后,向客户端反馈强制删除命令执行成功。
作为一种具体实施方式,全局版本号对应的集群配置信息中包括存储集群中每一数据节点的状态信息,数据节点删除模块160具体还用于:接收客户端删除数据节点中的第二目标数据节点的正常删除命令;当存储集群处于第二状态时,将全局版本号对应的集群配置信息中的第二目标数据节点的状态信息更新为待删除并递增全局版本号;将更新后的全局版本号对应的集群配置信息及递增后的全局版本号发送至存储集群中的所有数据节点,以使存储集群中的所有数据节点依据更新后的全局版本号对应的集群配置信息及递增后的全局版本号更新本地的集群配置信息及与本地的集群配置信息对应的版本号;当接收到存储集群中的所有数据节点中任意一个数据节点反馈的更新成功的响应后,则向客户端反馈正常删除命令执行成功。
作为一种具体实施方式,存储集群还包括备用节点,数据节点删除模块160具体还用于:将第二目标数据节点存储的数据迁移至备用节点;当第二目标数据节点存储的数据迁移完成后,将全局版本号对应的集群配置信息中的第二目标数据节点的身份信息清除并递增全局版本号;将清除第二目标数据节点的身份信息后的全局版本号对应的集群配置信息及递增后的全局版本号发送至存储集群中的所有数据节点,以使存储集群中的所有数据节点依据清除第二目标数据节点的身份信息后的全局版本号对应的集群配置信息及递增后的全局版本号更新本地的集群配置信息及与本地的集群配置信息对应的版本号。
重启模块170,用于当检测到虚拟IP不存在时,重启主管理节点。
综上所述,本发明实施例提供了一种存储集群的管理方法、装置、管理节点及存储介质,应用于存储集群的主管理节点,主管理节点与数据节点通信连接,数据节点存储有身份信息、数据节点所属的存储集群的集群配置信息及与集群配置信息对应的版本号,数据节点包括已上报身份信息的第一数据节点和未上报身份信息的第二数据节点,主管理节点预先存储全局版本号及与全局版本号对应的集群配置信息,全局版本号为第一数据节点的集群配置信息对应的最大版本号,所述方法包括:接收第二数据节点上报的身份信息及与第二数据节点所属的存储集群的集群配置信息对应的版本号;当第二数据节点满足预设条件且第二数据节点的版本号大于全局版本号时,获取第二数据节点的集群配置信息;用第二数据节点的版本号更新全局版本号、并用第二数据节点的集群配置信息更新全局版本号对应的集群配置信息;当更新后的全局版本号大于第一数据节点的版本号时,向第一数据节点发送更新后的全局版本号对应的集群配置信息,以使第一数据节点将更新后的全局版本号对应的集群配置信息更新至本地。相对于现有技术,本发明实施例在主管理节点在接收到每个第二数据节点上报的身份信息、版本号信息后,在第二数据节点满足预设条件后,通过对比第二数据节点上报的版本号和全局版本号,将存储集群中主管理节点中的存储集群配置信息更新为当前最大版本号对应的存储集群配置信息,将每个数据节点中的集群配置信息更新为当前最大版本号对应的存储集群配置信息,保证了存储集群中的主管理节点和所有数据节点中集群配置信息均为最新的,且是一致性,由此可以保证存储集群的存储业务的连续性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种存储集群的管理方法,其特征在于,应用于所述存储集群的主管理节点,所述主管理节点与数据节点通信连接,所述数据节点存储有身份信息、所述数据节点所属的存储集群的集群配置信息及与所述集群配置信息对应的版本号,所述数据节点包括已上报身份信息的第一数据节点和未上报身份信息的第二数据节点,所述主管理节点预先存储全局版本号及与所述全局版本号对应的集群配置信息,所述全局版本号为所述第一数据节点的集群配置信息对应的最大版本号,所述方法包括:
接收所述第二数据节点上报的身份信息及与所述第二数据节点所属的存储集群的集群配置信息对应的版本号,所述第二数据节点的身份信息包括所述第二数据节点所属的存储集群的第一集群号;
当所述第二数据节点满足预设条件且所述第二数据节点的版本号大于所述全局版本号时,获取所述第二数据节点的集群配置信息;
用所述第二数据节点的版本号更新所述全局版本号、并用所述第二数据节点的集群配置信息更新所述全局版本号对应的集群配置信息;
当更新后的所述全局版本号大于所述第一数据节点的版本号时,向所述第一数据节点发送所述更新后的全局版本号对应的集群配置信息,以使所述第一数据节点将所述更新后的全局版本号对应的集群配置信息更新至本地;
所述当所述第二数据节点满足预设条件且所述第二数据节点的版本号大于所述全局版本号时,获取所述第二数据节点的集群配置信息的步骤之前还包括:
判断所述存储集群是否处于第一状态;
若所述存储集群处于第一状态且所述第一集群号与所述主管理节点预先存储的所述存储集群的第二集群号不一致时,则判定所述第二数据节点为待添加节点;
若所述存储集群处于第一状态、所述第一集群号与所述第二集群号一致且所述第二数据节点不属于所述存储集群,则判定所述第二数据节点为已删除节点;
若所述第二数据节点既非已删除节点又非待添加节点时,则判定所述第二数据节点满足所述预设条件。
2.如权利要求1所述的存储集群的管理方法,其特征在于,所述判断所述存储集群是否处于第一状态的步骤包括:
若所述第一数据节点的个数为0,则判定所述存储集群处于第一状态;
若所述第一数据节点的个数大于0,且所述存储集群中在线的数据节点的个数大于0,则判定所述存储集群处于第一状态。
3.如权利要求1所述的存储集群的管理方法,其特征在于,所述判断所述存储集群是否处于第一状态的步骤还包括:
若所述第一数据节点的个数大于0,具有相同版本号的第一数据节点的个数与所述存储集群中数据节点的总个数之比大于或者等于预设比值时,则判定所述存储集群处于第一状态。
4.如权利要求1所述的存储集群的管理方法,其特征在于,所述当所述存储集群处于第一状态、所述第一集群号与所述第二集群号一致且所述第二数据节点不属于所述存储集群,判定所述第二数据节点为已删除节点的步骤之后还包括:
向所述第二数据节点发送删除节点的命令,以使所述第二数据节点清除本地的集群配置信息。
5.如权利要求1所述的存储集群的管理方法,其特征在于,所述存储集群还包括客户端,所述客户端与所述主管理节点通信连接,所述当所述存储集群处于第一状态且所述第一集群号与所述第二集群号不一致时,判定所述第二数据节点为待添加节点的步骤之后还包括:
接收所述客户端发送的将所述第二数据节点添加至所述存储集群的添加命令;
判断所述存储集群是否处于第二状态;
若所述存储集群处于第二状态,则将所述第二数据节点的身份信息更新至所述全局版本号对应的集群配置信息并递增所述全局版本号;
将所述更新后的所述全局版本号对应的集群配置信息及递增后的所述全局版本号发送至所述第一数据节点和所述第二数据节点,以使所述第一数据节点和所述第二数据节点依据所述更新后的所述全局版本号对应的集群配置信息及递增后的所述全局版本号更新本地的集群配置信息及与所述本地的集群配置信息对应的版本号;
当接收到所述第一数据节点和所述第二数据节点中的任意一个数据节点反馈的更新成功的响应后,则向所述客户端反馈所述添加命令执行成功。
6.如权利要求5所述的存储集群的管理方法,其特征在于,所述判断所述存储集群是否处于第二状态的步骤包括:
若所述第一数据节点的个数为0,则判定所述存储集群处于第二状态;
若所述第一数据节点的个数大于0,且所述存储集群中的数据节点均在线,则判定所述存储集群处于第二状态。
7.如权利要求5所述的存储集群的管理方法,其特征在于,所述主管理节点还包括用于表征所述存储集群中是否存在数据节点的标志位,所述存储集群还包括从管理节点,所述方法还包括:
若所述第一数据节点的个数为0,则将所述标志位进行置位并将置位后的所述标志位发送至所述从管理节点,以使所述从管理节点将置位后的所述标志位进行存储;
当接收到所述从管理节点反馈的存储成功的消息后,向所述客户端反馈所述添加命令执行成功。
8.如权利要求5所述的存储集群的管理方法,其特征在于,所述方法还包括:
接收所述客户端删除所述数据节点中的第一目标数据节点的强制删除命令;
当所述存储集群处于所述第二状态时,将所述全局版本号对应的集群配置信息中的所述第一目标数据节点的身份信息清除并递增所述全局版本号;
将清除所述第一目标数据节点的身份信息后的所述全局版本号对应的集群配置信息及递增后的所述全局版本号发送至所述存储集群中的所有数据节点,以使所述存储集群中的所有数据节点依据清除所述第一目标数据节点的身份信息后的所述全局版本号对应的集群配置信息及递增后的所述全局版本号更新本地的集群配置信息及与所述本地的集群配置信息对应的版本号;
当接收到所述存储集群中的所有数据节点中任意一个数据节点反馈的更新成功的响应后,则向所述客户端反馈所述强制删除命令执行成功。
9.如权利要求8所述的存储集群的管理方法,其特征在于,所述主管理节点还包括用于表征所述存储集群中是否存在数据节点的标志位,所述存储集群还包括从管理节点,所述方法还包括:
若所述第一目标数据节点为所述存储集群中唯一的数据节点,则将所述标志位进行清除并将清除后的所述标志位发送至所述从管理节点,以使所述从管理节点将清除后的所述标志位进行存储;
当接收到所述从管理节点反馈的存储成功的消息后,向所述客户端反馈所述强制删除命令执行成功。
10.如权利要求5所述的存储集群的管理方法,其特征在于,所述全局版本号对应的集群配置信息中包括所述存储集群中每一数据节点的状态信息,所述方法还包括:
接收所述客户端删除所述数据节点中的第二目标数据节点的正常删除命令;
当所述存储集群处于第二状态时,将所述全局版本号对应的集群配置信息中的所述第二目标数据节点的状态信息更新为待删除并递增所述全局版本号;
将更新后的所述全局版本号对应的集群配置信息及递增后的所述全局版本号发送至所述存储集群中的所有数据节点,以使所述存储集群中的所有数据节点依据更新后的所述全局版本号对应的集群配置信息及递增后的所述全局版本号更新本地的集群配置信息及与所述本地的集群配置信息对应的版本号;
当接收到所述存储集群中的所有数据节点中任意一个数据节点反馈的更新成功的响应后,则向所述客户端反馈所述正常删除命令执行成功。
11.如权利要求10所述的存储集群的管理方法,其特征在于,所述存储集群还包括备用节点,所述方法还包括:
将所述第二目标数据节点存储的数据迁移至所述备用节点;
当所述第二目标数据节点存储的数据迁移完成后,将所述全局版本号对应的集群配置信息中所述的第二目标数据节点的身份信息清除并递增所述全局版本号;
将清除所述第二目标数据节点的身份信息后的所述全局版本号对应的集群配置信息及递增后的所述全局版本号发送至所述存储集群中的所有数据节点,以使所述存储集群中的所有数据节点依据清除所述第二目标数据节点的身份信息后的所述全局版本号对应的集群配置信息及递增后的所述全局版本号更新本地的集群配置信息及与所述本地的集群配置信息对应的版本号。
12.如权利要求1所述的存储集群的管理方法,其特征在于,所述主管理节点配置有虚拟IP,所述方法还包括:
当检测到所述虚拟IP不存在时,重启所述主管理节点。
13.一种存储集群的管理装置,其特征在于,应用于所述存储集群的主管理节点,所述主管理节点与数据节点通信连接,所述数据节点存储有身份信息、所述数据节点所属的存储集群的集群配置信息及与所述集群配置信息对应的版本号,所述数据节点包括已上报身份信息的第一数据节点和未上报身份信息的第二数据节点,所述主管理节点预先存储全局版本号及与所述全局版本号对应的集群配置信息,所述全局版本号为所述第一数据节点的集群配置信息对应的最大版本号,所述装置包括:
接收模块,用于接收所述第二数据节点上报的身份信息及与所述第二数据节点所属的存储集群的集群配置信息对应的版本号,所述第二数据节点的身份信息包括所述第二数据节点所属的存储集群的第一集群号;
获取模块,用于当所述第二数据节点满足预设条件且所述第二数据节点的版本号大于所述全局版本号时,获取所述第二数据节点的集群配置信息;
更新模块,用于用所述第二数据节点的版本号更新所述全局版本号、并用所述第二数据节点的集群配置信息更新所述全局版本号对应的集群配置信息;
发送模块,用于当更新后的所述全局版本号大于所述第一数据节点的版本号时,向所述第一数据节点发送所述更新后的全局版本号对应的集群配置信息,以使所述第一数据节点将所述更新后的全局版本号对应的集群配置信息更新至本地;
所述获取模块在用于当所述第二数据节点满足预设条件且所述第二数据节点的版本号大于所述全局版本号时,获取所述第二数据节点的集群配置信息之前,还用于:判断所述存储集群是否处于第一状态;若所述存储集群处于第一状态且所述第一集群号与所述主管理节点预先存储的所述存储集群的第二集群号不一致时,则判定所述第二数据节点为待添加节点;若所述存储集群处于第一状态、所述第一集群号与所述第二集群号一致且所述第二数据节点不属于所述存储集群,则判定所述第二数据节点为已删除节点;若所述第二数据节点既非已删除节点又非待添加节点时,则判定所述第二数据节点满足所述预设条件。
14.一种管理节点,其特征在于,应用于集群存储,所述管理节点与多个存储节点均通信连接,所述管理节点包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-12中任一项所述的存储集群的管理方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-12中任一项所述的存储集群的管理方法。
CN202010620157.XA 2020-06-30 2020-06-30 存储集群的管理方法、装置、管理节点及存储介质 Active CN111752488B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010620157.XA CN111752488B (zh) 2020-06-30 2020-06-30 存储集群的管理方法、装置、管理节点及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010620157.XA CN111752488B (zh) 2020-06-30 2020-06-30 存储集群的管理方法、装置、管理节点及存储介质

Publications (2)

Publication Number Publication Date
CN111752488A CN111752488A (zh) 2020-10-09
CN111752488B true CN111752488B (zh) 2022-11-01

Family

ID=72680168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010620157.XA Active CN111752488B (zh) 2020-06-30 2020-06-30 存储集群的管理方法、装置、管理节点及存储介质

Country Status (1)

Country Link
CN (1) CN111752488B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112699122A (zh) * 2020-12-29 2021-04-23 浙江中控技术股份有限公司 一种分布式情况下位号组态数据同步处理的方法和系统
CN113157808B (zh) * 2021-04-27 2023-02-03 北京计算机技术及应用研究所 基于内存和轻量级数据库的配置文件同步系统及方法
CN113342785B (zh) * 2021-07-06 2023-06-27 多点生活(成都)科技有限公司 数据处理方法和装置、服务端设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102394901A (zh) * 2011-06-23 2012-03-28 北京新媒传信科技有限公司 一种服务器集群系统及其中的监控策略更新方法
CN102984174A (zh) * 2012-12-21 2013-03-20 北京邮电大学 一种发布订阅系统中可靠性保障方法及系统
CN103580918A (zh) * 2013-10-30 2014-02-12 华为技术有限公司 一种配置数据处理方法及装置
CN106789291A (zh) * 2016-12-29 2017-05-31 郑州云海信息技术有限公司 一种集群成员控制方法和装置
CN107465714A (zh) * 2017-01-23 2017-12-12 北京思特奇信息技术股份有限公司 一种基于应用集群的配置数据动态更新系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9720626B2 (en) * 2014-09-19 2017-08-01 Netapp Inc. Cluster configuration information replication

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102394901A (zh) * 2011-06-23 2012-03-28 北京新媒传信科技有限公司 一种服务器集群系统及其中的监控策略更新方法
CN102984174A (zh) * 2012-12-21 2013-03-20 北京邮电大学 一种发布订阅系统中可靠性保障方法及系统
CN103580918A (zh) * 2013-10-30 2014-02-12 华为技术有限公司 一种配置数据处理方法及装置
CN106789291A (zh) * 2016-12-29 2017-05-31 郑州云海信息技术有限公司 一种集群成员控制方法和装置
CN107465714A (zh) * 2017-01-23 2017-12-12 北京思特奇信息技术股份有限公司 一种基于应用集群的配置数据动态更新系统及方法

Also Published As

Publication number Publication date
CN111752488A (zh) 2020-10-09

Similar Documents

Publication Publication Date Title
CN111752488B (zh) 存储集群的管理方法、装置、管理节点及存储介质
CN110071821B (zh) 确定事务日志的状态的方法,节点和存储介质
CN104036043B (zh) 一种mysql高可用的方法及管理节点
WO2021136422A1 (zh) 状态管理方法、主备应用服务器的切换方法及电子设备
US20210320977A1 (en) Method and apparatus for implementing data consistency, server, and terminal
WO2022036901A1 (zh) 一种Redis副本集的实现方法及装置
CN111130879B (zh) 一种基于pbft算法的集群异常恢复方法
CN112463448B (zh) 分布式集群数据库同步方法、装置、设备及存储介质
EP3291487B1 (en) Method for processing virtual machine cluster and computer system
CN112506702B (zh) 数据中心容灾方法、装置、设备及存储介质
CN106452836B (zh) 主节点设置方法及装置
CN113905005A (zh) 即时通讯的客户端状态更新方法和装置
CN110635941A (zh) 一种数据库节点集群故障迁移方法与装置
CN114124650A (zh) 一种sptn网络控制器主从部署方法
CN111342986B (zh) 分布式节点管理方法及装置、分布式系统、存储介质
CN109189854B (zh) 提供持续业务的方法及节点设备
JP6421516B2 (ja) サーバ装置、冗長構成サーバシステム、情報引継プログラム及び情報引継方法
CN112015595B (zh) 主从数据库的切换方法、计算设备及存储介质
CN115314361B (zh) 一种服务器集群管理方法及其相关组件
CN107087021B (zh) 主从服务器确定方法及装置
CN113596195B (zh) 公共ip地址管理方法、装置、主节点及存储介质
CN115145782A (zh) 一种服务器切换方法,MooseFS系统及存储介质
CN110502460B (zh) 数据处理的方法和节点
CN112131201A (zh) 一种网络附加存储高可用性的方法、系统、设备及介质
CN112667449B (zh) 一种集群管理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant