CN110858168A - 集群节点故障处理方法、装置及集群节点 - Google Patents
集群节点故障处理方法、装置及集群节点 Download PDFInfo
- Publication number
- CN110858168A CN110858168A CN201810975090.4A CN201810975090A CN110858168A CN 110858168 A CN110858168 A CN 110858168A CN 201810975090 A CN201810975090 A CN 201810975090A CN 110858168 A CN110858168 A CN 110858168A
- Authority
- CN
- China
- Prior art keywords
- cluster node
- cluster
- fault
- node
- memory
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0709—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及内存集群技术领域,提供一种集群节点故障处理方法、装置及集群节点,所述方法包括:当检测到所述临时节点被删除时,将与被删除的临时节点对应的集群节点确定为故障集群节点;清除非故障集群节点的内存中的预设容量的内存数据;将与所述故障集群节点对应的外部数据存入所述非故障集群节点的内存中。本发明及时地检测到故障集群节点,并有效地对故障集群节点进行处理,解决了集群节点故障后导致的整个系统无法使用或内存数据不完整的问题,提高了内存集群系统的稳定性和可靠性。
Description
技术领域
本发明涉及内存集群技术领域,具体而言,涉及一种集群节点故障处理方法、装置及集群节点。
背景技术
随着摄像机部署越来越普及,一个系统中能够提取的特征数据呈现爆发式增长,这些海量数据的存储检索和挖掘一般需要用到分布式集群才能完成。而成熟的搜索引擎Elasticsearch或Solr不支持图片的半结构化检索,为实现半结构化数据的快速检索,现有技术采取了基于内存分布式的集群系统,将半结构化数据均衡地分布在内存集群系统中的每个集群节点上。但是这些内存集群系统存在的问题是:由于没有有效的故障处理机制,不能及时地检测到故障集群节点,也不能有效地对故障集群节点进行处理,当其中一个集群节点故障后会导致整个内存集群系统无法使用或内存数据不完整等问题。
发明内容
本发明实施例的目的在于提供一种集群节点故障处理方法、装置及集群节点,通过提供一种集群节点故障处理方法,可以及时地检测到故障集群节点,并有效地对故障集群节点进行处理,解决了集群节点故障后导致的整个系统无法使用或内存数据不完整的问题,提高了内存集群系统的稳定性和可靠性。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种集群节点故障处理方法,应用于内存集群系统中的多个集群节点,每个集群节点预先存储多个临时节点,每个临时节点与内存集群系统中的每个集群节点一一对应,每个集群节点的内存按照预设规则预先存储与集群节点对应的外部数据,所述方法包括:当检测到临时节点被删除时,将与被删除的临时节点对应的集群节点确定为故障集群节点;清除非故障集群节点的内存中的预设容量的内存数据;将与故障集群节点对应的外部数据存入非故障集群节点的内存中。
第二方面,本发明实施例还提供了一种集群节点故障处理装置,所述装置包括第一确定模块、第一清除模块和第一存储模块。其中,第一确定模块用于当检测到临时节点被删除时,将与被删除的临时节点对应的集群节点确定为故障集群节点;第一清除模块用于清除非故障集群节点的内存中的预设容量的内存数据,第一存储模块用于将与故障集群节点对应的外部数据存入非故障集群节点的内存中。
第三方面,本发明实施例还提供了一种集群节点,所述集群节点包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的集群节点故障处理方法。
相对现有技术,本发明实施例提供的一种集群节点故障处理方法、装置及集群节点,首先,当集群节点检测到临时节点被删除时,将与被删除的临时节点对应的集群节点确定为故障集群节点;然后,非故障集群节点清除非故障集群节点的内存中的预设容量的内存数据;最后,非故障集群节点将与所述故障集群节点对应的外部数据存入所述非故障集群节点的内存中。与现有技术相比,本发明实施例通过提供一种集群节点故障处理方法,可以及时地检测到故障集群节点,并有效地对故障集群节点进行处理,解决了集群节点故障后导致的整个系统无法使用或内存数据不完整的问题,提高了内存集群系统的稳定性和可靠性。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的集群节点的方框示意图。
图2示出了本发明实施例提供的集群节点故障处理方法之一流程图。
图3示出了集群节点上临时节点的举例图。
图4为图2示出的步骤S104的子步骤流程图。
图5示出了本发明实施例提供的集群节点故障处理方法之二流程图。
图6示出了本发明实例提供的集群节点故障处理方法之三流程图。
图7示出了本发明实施例提供的集群节点故障处理装置的方框示意图。
图标:100-集群节点;101-存储器;102-通信接口;103-处理器;104-总线;200-集群节点故障处理装置;201-第一确定模块;202-第一加入模块;203-第一清除模块;204-第一存储模块;205-第二确定模块;206-第二加入模块;207-第二清除模块;208-第二存储模块;209-注册模块;210-删除模块;211-第三清除模块;212-加载模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1示出了本发明实施例提供的集群节点100的方框示意图。集群节点100可以是内存集群系统中的任意一个非故障集群节点,集群节点100可以是,但不限于,主机、虚拟机、实体服务器、实体服务器上的虚拟机等能提供与所述服务器或者虚拟机有相同功能的实体或者虚拟的服务端。集群节点100的操作系统可以是,但不限于,Windows系统、Linux系统等。所述集群节点100包括存储器101、通信接口102、处理器103和总线104,所述存储器101、通信接口102和处理器103通过总线104连接,处理器103用于执行存储器101中存储的可执行模块,例如计算机程序。
其中,存储器101可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口102(可以是有线或者无线)实现该集群节点100与至少一个其他集群节点100、以及外部存储设备之间的通信连接。
总线104可以是ISA总线、PCI总线或EISA总线等。图1中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器101用于存储程序,例如图7所示的集群节点故障处理装置200。该集群节点故障处理装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器101中或固化在所述集群节点100的操作系统(operating system,OS)中的软件功能模块。所述处理器103在接收到执行指令后,执行所述程序以实现本发明上述实施例揭示的集群节点故障处理方法。
第一实施例
请参照图2,图2示出了本发明实施例提供的集群节点故障处理方法之一流程图。处理方法包括以下步骤:
步骤S101,当检测到临时节点被删除时,将与被删除的临时节点对应的集群节点确定为故障集群节点。
在本发明实施例中,内存集群系统中包括多个集群节点100,在多个集群节点100上部署一个集群管理工具,以对多个集群节点100进行统一管理,保持多个集群节点100上的数据的一致性,为多个集群节点100上的分布式应用提供一致性服务,当前常用的集群管理工具是ZooKeeper,客户端在和ZooKeeper建立会话时,会通过ZooKeeper注册临时节点,每个临时节点与每个集群节点100一一对应,注册临时节点可以通过ZooKeeper在每个集群节点100指定的地点创建的一个文件目录实现,且由于多个集群节点100由ZooKeeper统一管理,因此每个集群节点100看到的临时节点是一致的,当客户端和ZooKeeper之间会话断开时,临时节点在预设超时时间后会被ZooKeeper自动删除。例如,集群节点100有3个,分别为1号集群节点、2号集群节点和3号集群节点,假设客户端在和ZooKeeper建立会话时,ZooKeeper在\file目录下创建目录a_1、目录a_2和目录a_3,如图3所示,其中,目录a_1与1号集群节点对应,目录a_2与2号集群节点对应,目录a_3与3号集群节点对应,1号集群节点、2号集群节点和3号集群节点均可以看到如图3所示的目录结构,当2号集群节点故障后,在预设超时时间后,与2号集群节点对应的目录a_2会被ZooKeeper删掉,此时,1号集群节点和3号集群节点均看不到目录a_2了,当1号集群节点和3号集群节点各自检测到目录a_2被删除了,由此判定目录a_2对应的2号集群节点故障,将2号集群节点确定为故障集群节点。
在本发明实施例中,为了使多个集群节点100可以提供分布式内存集群服务,将多个集群节点100部署成一个内存集群系统,内存集群系统负责将多个集群节点100中的内存统一管理,对外提供统一的分布式内存服务,内存集群系统中的集群节点100通过临时节点检测内存集群系统中的其他集群节点100是否出现故障,由于临时节点的创建、删除、查询等维护工作是由ZooKeeper完成的,因此内存集群系统中的集群节点100要获取临时节点时,必须通过ZooKeeper获取。
步骤S102,将故障集群节点加入故障列表。
在本发明实施例中,故障列表中的集群节点是依据临时节点判定当前处于故障状态的集群节点,故障列表中的故障集群节点可以用集群节点的唯一标识来表示,例如节点编号或者节点名称等,故障列表是当临时节点被注册时便于区分是新加入的集群节点100还是故障恢复集群节点,若是故障恢复集群节点,需要做相应的处理。
步骤S103,清除非故障集群节点的内存中的预设容量的内存数据。
在本发明实施例中,每个非故障集群节点的内存按照预设规则预先存储与本非故障集群节点对应的外部数据。其中,外部数据包括历史数据和实时数据,历史数据是集群节点100启动服务时从存储在分布式文件系统(Hadoop Distributed File System,HDFS)上的parquet文件中加载到集群节点100的内存,parquet文件是按照parquet格式存储的文件,parquet是面向分析型业务的列存储格式,parquet文件中每条数据有一个RecordID,全局唯一并递增分配,且加载历史数据的时候是从距离当前日期和时间最近的文件中的记录开始加载。实时数据是从kafka的topic的分区中消费后写入集群节点100的内存,kafka是一个分布式、支持分区的(partition)、多副本的(replica)、基于ZooKeeper协调的分布式消息系统,每条发布到kafka的消息都有一个类别,这个类别被称为topic,每一个topic包含很多分区,每个分区设置有一个从0开始编号的分区索引PID。每个集群节点100设置有一个从0开始编号的集群节点ID,对于历史数据,预设规则是RecordID%集群节点的总个数=加载该RecordID的数据的集群节点ID,对于实时数据,预设规则是PID%集群节点的总个数=加载该PID的数据的集群节点ID。由于分区的数量和集群节点的总数存在整数倍数关系,可以保证每个集群节点100消费的分区的数量是相同的,又因为每个分区的数据是不重复的,且均衡的,这样可以保证实时数据在每个集群节点100即不存在冗余,又均衡分布。
在本发明实施例中,为了接管故障集群节点内存中的数据,非故障集群节点要将自身的内存的空间释放一部分,释放的空间大小为故障集群节点内存的1/N,其中,N为内存集群系统中集群节点100的总数。例如,内存集群系统中有3个集群节点,分别为1号集群节点、2号集群节点和3号集群节点,预设规格的大小均为3GB,当2号集群节点故障后,1号集群节点和3号集群节点均释放1GB大小的空间,以接管与2号集群节点对应的外部数据。
需要说明是,由于集群节点100的内存资源有限,因此,无法将所有外部数据均加载至集群节点100的内存中,集群节点100在存储对应的外部数据时,按照预设缓存算法只保存距离当前系统时间最近的预设规格大小的外部数据,当集群节点100发生故障时,非故障集群节点也只是接管与故障集群节点对应的距离当前系统时间最近的部分数据。
步骤S104,将与故障集群节点对应的外部数据存入非故障集群节点的内存中。
在本发明实施例中,在检测到集群节点故障时,每个非故障集群节点根据故障集群节点的集群节点ID及本集群节点自身的集群节点ID按照预设编码规则生成一个集群节点临时编号,其中,预设编码规则可以是排除掉故障集群节点后,按照集群节点ID从0开始重新编号,例如,内存集群系统中有3个集群节点100,集群节点ID分别为0、1、2,当集群节点ID为1的集群节点故障后,集群节点ID为0的集群节点的集群节点临时编号为0,集群节点ID为2的集群节点的集群节点临时编号为1。
在本发明实施例中,集群节点100首先根据故障集群节点对应的外部数据的每个数据记录的记录号及非故障集群节点的总数,从多个集群节点100的临时编号中确定目标集群节点临时编号,然后,将该数据记录保存在目标集群节点临时编号对应的非故障节点的内存中。
请参照图4,步骤S104的还可以包括以下子步骤:
子步骤S1041,获取非故障集群节点的总数。
在本发明实施例中,非故障集群节点的总数可以通过临时节点得到,例如,集群节点100有3个,分别为1号集群节点、2号集群节点和3号集群节点,当前从ZooKeeper获取到\file目录下存在目录a_1和目录a_3,一共两个目录,则非故障集群节点的总数为2。
需要指出的是,临时节点对应的目录下存储的信息包括集群节点IP、集群节点ID、集群节点对应的topic分区PID、集群节点接管故障集群节点对应的topic分区PID,因此,在需要的时候可以通过向ZooKeeper读取临时节点对应的目录下存储的信息获取该临时节点对应的集群节点100的相关信息。
子步骤S1042,依据故障集群节点对应的外部数据的每个数据记录的记录号及非故障集群节点的总数,从多个集群节点临时编号中确定目标集群节点临时编号。
在本发明实施例中,当外部数据为历史数据时,记录号为parquet文件中每条数据的RecordID,当满足如下公式:
(RecordID%N=DeadID)and(RecordID%M=NewID)时,将RecordID对应的数据存储在与NewID对应的集群节点100中,其中,NewID为目标集群节点临时编号,DeadID表示故障节点的集群节点ID,N为内存集群系统中集群节点100的总数,M为内存集群系统中非故障集群节点的总数,例如,内存集群系统中有3个集群节点100,集群节点ID分别为0、1、2,一共有5条数据记录,RecordID分别为0、1、2、3、4,按照预设规则,ID为0的集群节点的内存中存储RecordID为0和3的数据记录,ID为1的集群节点的内存中存储RecordID为1和4的数据记录,ID为2的集群节点的内存中存储RecordID为2的数据记录,当检测到ID为1的集群节点故障后,ID为0的集群节点的集群节点临时编号NewID为0,ID为2的集群节点的集群节点临时编号NewID为1,内存集群系统中集群节点100的总数N为3,内存集群系统中非故障集群节点的总数M为2,则RecordID为1的数据记录的对应的目标集群节点临时编号为RecordID%M=1%2=1,RecordID为4的数据记录的对应的目标集群节点临时编号为RecordID%M=4%2=0。
当外部数据为实时数据时,记录号为分区索引PID,当满足如下公式:
(PID%N=DeadID)and(PID%M=NewID)时,将PID对应的数据存储在与NewID对应的集群节点100中。
子步骤S1043,将数据记录保存在目标集群节点临时编号对应的非故障集群节点的内存中。
在本发明实施例中,对于故障集群节点对应的外部数据,通过步骤S1042中的公式计算得到的是集群节点100的临时编号,此时,需要将故障集群节点对应的外部数据存储在与集群节点100的临时编号对应的集群节点100,对于非故障集群节点对应的外部数据,仍然按照步骤S103中描述的预设规则计算得到的是集群节点ID,此时,需要将非故障集群节点对应的外部数据存储在与集群节点ID对应的集群节点100中。
内存集群系统中存在故障集群节点,且该故障集群节点对应的临时节点已经被删除,当其中非故障集群节点重启后,该重启后的非故障集群节点无法检测故障集群节点对应的临时节点被删除,因而无法通过临时节点被删除的事件确定故障集群节点,为了使重启后的非故障集群节点确定故障集群节点并针对故障集群节点进行相应的处理,本发明实施例还包括步骤S201-S204。
请参照图5,图5示出了本发明实施例提供的集群节点故障处理方法之二流程图。
步骤S201,当集群节点重启后,依据多个临时节点及所有集群节点确定故障集群节点。
在本发明实施例中,集群节点100重启后,向ZooKeeper获取临时节点及所有集群节点100,将不存在临时节点的集群节点100确定为故障集群节点,例如,集群节点100有3个,分别为1号集群节点、2号集群节点和3号集群节点,当前从ZooKeeper获取到\file目录下存在目录a_1和目录a_3,一共两个目录,则2号集群节点不存在临时节点,因此确定2号集群节点确定为故障集群节点。
在本发明实施例中,确定故障集群节点后,针对故障集群节点的处理步骤S202-S204与前述步骤S102-S104一致,此处不再赘述。
步骤S202,将故障集群节点加入故障列表。
步骤S203,清除非故障集群节点的内存中的预设容量的内存数据。
步骤S204,将与故障集群节点对应的外部数据存入非故障集群节点的内存中。
在本发明实施例中,故障集群节点恢复时,为了将非故障恢复集群节点中存储的故障恢复集群节点对应的外部数据清除掉,将故障恢复集群节点对应的外部数据存储在故障恢复集群节点的内存中,将内存集群恢复到正常状态,其中,正常状态为内存集群中的集群节点100的内存可以存储与本集群节点100对应的外部数据,因此,本发明实施例还包括步骤S301-S304。
请参照图6,图6示出了本发明实施例提供的集群节点故障处理方法之三流程图。
步骤S301,当检测到临时节点被注册,且故障列表中存在与被注册临时节点对应的集群节点时,将与被注册临时节点对应的集群节点确定为故障恢复集群节点。
在本发明实施例中,当检测到临时节点被注册且故障列表中存在与被注册临时节点对应的集群节点100时,可以认为与被注册的临时节点对应的集群节点处于集群节点故障恢复的阶段,当集群节点故障恢复时,首先检测ZooKeeper上该故障恢复集群节点的临时节点是否存在,若存在,证明该故障恢复集群节点在预设超时时间内恢复的,即非故障恢复集群节点尚未检测到该故障恢复集群节点发生过故障,此时,将临时节点标记为手动删除,若非故障恢复集群节点检测到该临时节点为手动删除,认为该临时节点对应的集群节点100正常,不做处理,故障恢复集群节点重新注册临时节点,并将原有标记为手动删除的临时节点删除;若不存在,则证明该故障恢复集群节点的临时节点已经被删除,且非故障恢复集群节点之前已经感知到集群节点发生故障这一事件,并针对故障事件做了相应的处理,即在非故障恢复集群节点故障期间接管了其对应的外部数据。
需要指出的是,当检测到临时节点被注册,且故障列表中不存在与被注册临时节点对应的集群节点100时,证明没有故障集群节点恢复的事件发生,而是有新的集群节点100加入到内存集群中,此时,由ZooKeeper对新加入的集群节点100进行管理,内存集群系统暂时不对该新加入的集群节点100进行处理。
步骤S302,将故障恢复集群节点从故障列表中删除。
步骤S303,清除每个非故障恢复集群节点的内存中与故障恢复集群节点对应的外部数据。
在本发明实施例中,在故障恢复集群节点故障期间,该故障恢复集群节点对应的外部数据是由非故障恢复集群节点接管的,因此,当故障恢复集群节点从故障状态恢复到正常状态的过程中,需要将非故障恢复集群节点接管的与故障恢复集群节点对应的外部数据清除掉,以使非故障恢复集群节点按照故障恢复集群节点故障前的状态存储与非故障恢复集群节点对应的外部数据。
步骤S304,重新加载与每个非故障恢复集群节点对应的历史数据到非故障恢复集群节点的内存中。
在本发明实施例中,每个非故障恢复集群节点在清除掉接管的故障恢复集群节点的外部数据的内存后,在该内存区重新加载与自身对应的历史数据。
需要说明的是,在本发明实施例中,故障恢复集群节点在恢复后,也需要将与本集群节点100对应的外部数据保存至本集群节点100的内存中。
在本发明实施例中,通过提供一种集群节点故障处理方法,可以及时地检测到故障集群节点,并有效地对故障集群节点进行处理,与现有技术相比,具有以下有益效果:
第一,内存集群系统中每个集群节点100都是相互独立的,没有主从之分,根据统一的预设规则将外部数据均匀分配到每一个集群节点100,由于外部数据是均匀分布的,就可以保证每个集群节点100的内存中的外部数据在时间上是连续的,且每个集群节点100内存中的数据量是均衡的。
第二,根据集群节点100的临时节点可以及时地检测到发生故障集群节点,从而可以及时地进行相应的处理,不影响内存集群系统的正常提供内存服务。
第三,当内存集群系统中的集群节点100发生故障时,故障集群节点对应的外部数据根据计算公式由非故障集群节点共同接管,即保证了各集群节点100内存中数据的连续性,又避免了由同一个集群节点100接管一个故障集群节点对应的外部数据造成的内存资源压力不均衡。
第四,在故障集群节点故障恢复时,可以将非故障集群节点中接管故障集群节点对应的外部数据的内存及时地释放出来,以存储非故障集群节点本身对应的外部数据,以使内存集群系统及时地恢复正常。
第二实施例
请参照图7,图7示出了本发明实施例提供的集群节点故障处理装置200的方框示意图。集群节点故障处理装置200应用于集群节点100,其包括第一确定模块201;第一加入模块202;第一清除模块203;第一存储模块204;第二确定模块205;第二加入模块206;第二清除模块207;第二存储模块208;注册模块209;删除模块210;第三清除模块211及加载模块212。
第一确定模块201,用于当检测到临时节点被删除时,将与被删除的临时节点对应的集群节点确定为故障集群节点。
在本发明实施例中,第一确定模块201用于执行步骤S101。
第一加入模块202,用于将故障集群节点加入故障列表。
在本发明实施例中,第一加入模块202用于执行步骤S102。
第一清除模块203,用于清除非故障集群节点的内存中的预设容量的内存数据。
在本发明实施例中,第一清除模块203用于执行步骤S103。
第一存储模块204,用于将与故障集群节点对应的外部数据存入非故障集群节点的内存中。
在本发明实施例中,第一存储模块204用于执行步骤S104及其子步骤S1041-S1043。
第二确定模块205,用于当集群节点重启后,依据多个临时节点及所有集群节点确定故障集群节点。
在本发明实施例中,第二确定模块205用于执行步骤S201。
第二加入模块206,用于将故障集群节点加入故障列表。
在本发明实施例中,第二加入模块206用于执行步骤S202。
第二清除模块207,用于清除非故障集群节点的内存中的预设容量的内存数据。
在本发明实施例中,第二清除模块207用于执行步骤S203。
第二存储模块208,用于将与故障集群节点对应的外部数据存入非故障集群节点的内存中。
在本发明实施例中,第二存储模块208用于执行步骤S204。
注册模块209,用于当检测到临时节点被注册,且故障列表中存在与被注册临时节点对应的集群节点时,将与被注册临时节点对应的集群节点确定为故障恢复集群节点。
在本发明实施例中,注册模块209用于执行步骤S301。
删除模块210,用于将故障恢复集群节点从故障列表中删除。
在本发明实施例中,删除模块210用于执行步骤S302。
第三清除模块211,用于清除每个非故障恢复集群节点的内存中与故障恢复集群节点对应的外部数据。
在本发明实施例中,第三清除模块211用于执行步骤S303。
加载模块212,用于重新加载与每个非故障恢复集群节点对应的历史数据到非故障恢复集群节点的内存中。
在本发明实施例中,加载模块212用于执行步骤S304。
综上所述,本发明提供的一种集群节点故障处理方法、装置及集群节点,应用于内存集群系统中的多个集群节点,每个集群节点预先存储多个临时节点,每个临时节点与内存集群系统中的每个集群节点一一对应,每个集群节点的内存按照预设规则预先存储与集群节点对应的外部数据,所述方法包括:当检测到临时节点被删除时,将与被删除的临时节点对应的集群节点确定为故障集群节点;清除非故障集群节点的内存中的预设容量的内存数据;将与故障集群节点对应的外部数据存入非故障集群节点的内存中。与现有技术相比,本发明提供一种集群节点故障处理方法,可以及时地检测到故障集群节点,并有效地对故障集群节点进行处理,解决了集群节点故障后导致的整个系统无法使用或内存数据不完整的问题,提高了内存集群系统的稳定性和可靠性。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
Claims (10)
1.一种集群节点故障处理方法,其特征在于,应用于内存集群系统中的多个集群节点,每个所述集群节点预先存储多个临时节点,每个临时节点与所述内存集群系统中的每个集群节点一一对应,所述每个集群节点的内存按照预设规则预先存储与所述集群节点对应的外部数据,所述方法包括:
当检测到所述临时节点被删除时,将与被删除的临时节点对应的集群节点确定为故障集群节点;
清除非故障集群节点的内存中的预设容量的内存数据;
将与所述故障集群节点对应的外部数据存入所述非故障集群节点的内存中。
2.如权利要求1所述的集群节点故障处理方法,其特征在于,所述外部数据包括多个数据记录,且每个数据记录预先设置一个记录号,每个非故障集群节点预先设置一个集群节点临时编号,所述将与所述故障集群节点对应的外部数据存入所述非故障集群节点的内存中的步骤,包括:
获取非故障集群节点的总数;
依据所述故障集群节点对应的外部数据的每个数据记录的记录号及非故障集群节点的总数,从多个集群节点临时编号中确定目标集群节点临时编号;
将所述数据记录保存在所述目标集群节点临时编号对应的非故障集群节点的内存中。
3.如权利要求1所述的集群节点故障处理方法,其特征在于,所述集群节点上预先存储故障列表,所述方法还包括:
当集群节点重启后,依据所述多个临时节点及所有集群节点确定故障集群节点;
将所述故障集群节点加入故障列表;
清除非故障集群节点的内存中的预设容量的内存数据;
将与所述故障集群节点对应的外部数据存入所述非故障集群节点的内存中。
4.如权利要求1所述的集群节点故障处理方法,其特征在于,所述集群节点预先存储故障列表,所述当检测到所述临时节点被删除时,将与被删除的临时节点对应的集群节点确定为故障集群节点的步骤之后,还包括:
将所述故障集群节点加入故障列表。
5.如权利要求3或4所述的方法,其特征在于,所述外部数据包括历史数据,所述方法还包括:
当检测到所述临时节点被注册,且故障列表中存在与被注册临时节点对应的集群节点时,将与所述被注册临时节点对应的集群节点确定为故障恢复集群节点;
将所述故障恢复集群节点从故障列表中删除;
清除每个非故障恢复集群节点的内存中与所述故障恢复集群节点对应的外部数据;
重新加载与每个非故障恢复集群节点对应的历史数据到所述非故障恢复集群节点的内存中。
6.一种集群节点故障处理装置,其特征在于,应用于内存集群系统中的多个集群节点,每个所述集群节点预先存储多个临时节点,每个临时节点与所述内存集群系统中的每个集群节点一一对应,所述每个集群节点的内存按照预设规则预先存储与所述集群节点对应的外部数据,所述装置包括:
第一确定模块,用于当检测到所述临时节点被删除时,将与被删除的临时节点对应的集群节点确定为故障集群节点;
第一清除模块,用于清除非故障集群节点的内存中的预设容量的内存数据;
第一存储模块,用于将与所述故障集群节点对应的外部数据存入所述非故障集群节点的内存中。
7.如权利要求6所述的集群节点故障处理装置,其特征在于,所述外部数据包括多个数据记录,且每个数据记录预先设置一个记录号,每个非故障集群节点预先设置一个集群节点临时编号,所述第一存储模块具体用于:
获取非故障集群节点的总数;
依据所述故障集群节点对应的外部数据的每个数据记录的记录号及非故障集群节点的总数,从多个集群节点临时编号中确定目标集群节点临时编号;
将所述数据记录保存在所述目标集群节点临时编号对应的非故障节点的内存中。
8.如权利要求6所述的集群节点故障处理装置,其特征在于,所述集群节点上预先存储故障列表,所述装置还包括:
第二确定模块,用于当集群节点重启后,依据所述多个临时节点及所有集群节点确定故障集群节点;
第二加入模块,用于将所述故障集群节点加入故障列表;
第二清除模块,用于清除非故障集群节点的内存中的预设容量的内存数据;
第二存储模块,用于将与所述故障集群节点对应的外部数据存入所述非故障集群节点的内存中。
9.如权利要求6所述的集群节点故障处理装置,其特征在于,所述集群节点预先存储故障列表,所述第一确定模块之后,还包括:
第一加入模块,用于将所述故障集群节点加入故障列表。
10.一种集群节点,其特征在于,所述集群节点包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810975090.4A CN110858168B (zh) | 2018-08-24 | 2018-08-24 | 集群节点故障处理方法、装置及集群节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810975090.4A CN110858168B (zh) | 2018-08-24 | 2018-08-24 | 集群节点故障处理方法、装置及集群节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110858168A true CN110858168A (zh) | 2020-03-03 |
CN110858168B CN110858168B (zh) | 2023-08-18 |
Family
ID=69635769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810975090.4A Active CN110858168B (zh) | 2018-08-24 | 2018-08-24 | 集群节点故障处理方法、装置及集群节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110858168B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737658A (zh) * | 2020-06-21 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种限制ZooKeeper数据节点配额的方法、系统、设备及介质 |
CN112437146A (zh) * | 2020-11-18 | 2021-03-02 | 青岛海尔科技有限公司 | 一种设备状态同步方法、装置及系统 |
CN112887367A (zh) * | 2021-01-11 | 2021-06-01 | 华云数据控股集团有限公司 | 实现分布式集群高可用的方法、系统及计算机可读介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040059805A1 (en) * | 2002-09-23 | 2004-03-25 | Darpan Dinker | System and method for reforming a distributed data system cluster after temporary node failures or restarts |
CN102739775A (zh) * | 2012-05-29 | 2012-10-17 | 宁波东冠科技有限公司 | 物联网数据采集服务器集群的监控和管理方法 |
CN102782656A (zh) * | 2010-02-26 | 2012-11-14 | 赛门铁克公司 | 管理应用程序可用性的系统和方法 |
CN102932210A (zh) * | 2012-11-23 | 2013-02-13 | 北京搜狐新媒体信息技术有限公司 | 一种PaaS云平台的节点监控方法和系统 |
CN103731312A (zh) * | 2014-01-26 | 2014-04-16 | 飞狐信息技术(天津)有限公司 | 对远程方法调用的服务进行故障检查的方法和装置 |
US20150278039A1 (en) * | 2014-03-25 | 2015-10-01 | International Business Machines Corporation | Handling failed cluster members when replicating a database between clusters |
CN105338028A (zh) * | 2014-07-30 | 2016-02-17 | 浙江宇视科技有限公司 | 一种分布式服务器集群中主从节点选举方法及装置 |
CN106254100A (zh) * | 2016-07-27 | 2016-12-21 | 腾讯科技(深圳)有限公司 | 一种数据容灾方法、装置和系统 |
CN106484530A (zh) * | 2016-09-05 | 2017-03-08 | 努比亚技术有限公司 | 一种分布式任务调度运维监控系统及方法 |
US20170228286A1 (en) * | 2016-02-05 | 2017-08-10 | Petros Koutoupis | Systems and methods for managing digital data in a fault tolerant matrix |
CN107508694A (zh) * | 2016-06-14 | 2017-12-22 | 中兴通讯股份有限公司 | 一种集群内的节点管理方法及节点设备 |
-
2018
- 2018-08-24 CN CN201810975090.4A patent/CN110858168B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040059805A1 (en) * | 2002-09-23 | 2004-03-25 | Darpan Dinker | System and method for reforming a distributed data system cluster after temporary node failures or restarts |
CN102782656A (zh) * | 2010-02-26 | 2012-11-14 | 赛门铁克公司 | 管理应用程序可用性的系统和方法 |
CN102739775A (zh) * | 2012-05-29 | 2012-10-17 | 宁波东冠科技有限公司 | 物联网数据采集服务器集群的监控和管理方法 |
CN102932210A (zh) * | 2012-11-23 | 2013-02-13 | 北京搜狐新媒体信息技术有限公司 | 一种PaaS云平台的节点监控方法和系统 |
CN103731312A (zh) * | 2014-01-26 | 2014-04-16 | 飞狐信息技术(天津)有限公司 | 对远程方法调用的服务进行故障检查的方法和装置 |
US20150278039A1 (en) * | 2014-03-25 | 2015-10-01 | International Business Machines Corporation | Handling failed cluster members when replicating a database between clusters |
CN105338028A (zh) * | 2014-07-30 | 2016-02-17 | 浙江宇视科技有限公司 | 一种分布式服务器集群中主从节点选举方法及装置 |
US20170228286A1 (en) * | 2016-02-05 | 2017-08-10 | Petros Koutoupis | Systems and methods for managing digital data in a fault tolerant matrix |
CN107508694A (zh) * | 2016-06-14 | 2017-12-22 | 中兴通讯股份有限公司 | 一种集群内的节点管理方法及节点设备 |
CN106254100A (zh) * | 2016-07-27 | 2016-12-21 | 腾讯科技(深圳)有限公司 | 一种数据容灾方法、装置和系统 |
CN106484530A (zh) * | 2016-09-05 | 2017-03-08 | 努比亚技术有限公司 | 一种分布式任务调度运维监控系统及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737658A (zh) * | 2020-06-21 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种限制ZooKeeper数据节点配额的方法、系统、设备及介质 |
CN111737658B (zh) * | 2020-06-21 | 2022-07-12 | 苏州浪潮智能科技有限公司 | 一种限制ZooKeeper数据节点配额的方法、系统、设备及介质 |
CN112437146A (zh) * | 2020-11-18 | 2021-03-02 | 青岛海尔科技有限公司 | 一种设备状态同步方法、装置及系统 |
CN112887367A (zh) * | 2021-01-11 | 2021-06-01 | 华云数据控股集团有限公司 | 实现分布式集群高可用的方法、系统及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110858168B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9235606B1 (en) | Simplified database/log backup and restore | |
US10949401B2 (en) | Data replication in site recovery environment | |
US11347600B2 (en) | Database transaction log migration | |
CN111124755A (zh) | 集群节点的故障恢复方法、装置、电子设备及存储介质 | |
CN106062717A (zh) | 一种分布式存储复制系统和方法 | |
CN101136728A (zh) | 群集系统和用于备份群集系统中的副本的方法 | |
CN112199356B (zh) | 故障处理方法、装置、服务器以及存储介质 | |
CN111897558A (zh) | 容器集群管理系统Kubernetes升级方法和装置 | |
WO2021120968A1 (zh) | 一种服务器扩容方法及扩容系统 | |
CN110858168A (zh) | 集群节点故障处理方法、装置及集群节点 | |
US11403176B2 (en) | Database read cache optimization | |
JP6447258B2 (ja) | 管理プログラム、管理方法、および管理装置 | |
CN111078667A (zh) | 一种数据迁移的方法以及相关装置 | |
US11061889B2 (en) | Systems and methods of managing manifest refresh in a database | |
CN101763321A (zh) | 数据容灾的方法、装置及系统 | |
CN109271376A (zh) | 数据库升级方法、装置、设备及存储介质 | |
CN105740049B (zh) | 一种控制方法及装置 | |
CN111787113B (zh) | 一种节点故障的处理方法、装置、存储介质和电子设备 | |
CN104793981A (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN113986450A (zh) | 一种虚拟机备份方法及装置 | |
CN113946471A (zh) | 基于对象存储的分布式文件级备份方法及系统 | |
CN108509296B (zh) | 一种处理设备故障的方法和系统 | |
CN112231150B (zh) | 数据库集群中故障数据库恢复方法和装置 | |
CN117763046A (zh) | 集群间数据同步的方法、装置、设备及存储介质 | |
CN111176886A (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 |