CN110750379B - 一种etcd集群恢复方法、系统、设备及计算机介质 - Google Patents

一种etcd集群恢复方法、系统、设备及计算机介质 Download PDF

Info

Publication number
CN110750379B
CN110750379B CN201911031232.2A CN201911031232A CN110750379B CN 110750379 B CN110750379 B CN 110750379B CN 201911031232 A CN201911031232 A CN 201911031232A CN 110750379 B CN110750379 B CN 110750379B
Authority
CN
China
Prior art keywords
cluster
etcd
node
nodes
target
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
CN201911031232.2A
Other languages
English (en)
Other versions
CN110750379A (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.)
Wuxi Huayun Data Technology Service Co Ltd
Original Assignee
Wuxi Huayun Data Technology Service 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 Wuxi Huayun Data Technology Service Co Ltd filed Critical Wuxi Huayun Data Technology Service Co Ltd
Priority to CN201911031232.2A priority Critical patent/CN110750379B/zh
Publication of CN110750379A publication Critical patent/CN110750379A/zh
Application granted granted Critical
Publication of CN110750379B publication Critical patent/CN110750379B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0709Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0727Error 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 storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0793Remedial or corrective actions
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

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

本申请公开了一种ETCD集群恢复方法、系统、设备及计算机介质,应用于组建ETCD集群的目标集群节点,判断目标集群节点是否属于ETCD集群;若目标集群节点不属于ETCD集群,则判断ETCD集群是否损坏;若ETCD集群损坏,则与组建ETCD集群的其他集群节点进行集群恢复。本申请提供的ETCD集群恢复方法、系统、设备及计算机可读存储介质,目标集群节点先判断自身是否属于ETCD集群,若目标集群节点不属于ETCD集群,则判断ETCD集群是否损坏,若损坏,则与组件ETCD集群的其他集群节点进行集群恢复,从而在ETCD集群损坏的情况下,无需借助人工恢复,便可自动进行集群恢复。

Description

一种ETCD集群恢复方法、系统、设备及计算机介质
技术领域
本申请涉及存储技术领域,更具体地说,涉及一种ETCD集群恢复方法、系统、设备及计算机介质。
背景技术
ETCD是一个分布式一致性键值存储,用于共享配置和服务发现,其具有简单、安全、快速、可靠的优点。通过分布式锁,ETCD内部的leader通过选举和写屏障来开启可靠的分布式协同,ETCD被广泛的引用于Kubernetes为主的各种对于分布式键值存储有需求的分布式环境中,其中,Kubernetes是一种开源的容器编排系统。
在ETCD集群中,ETCD基于Raft一致性算法,可以保证一定程度上的节点一致性和高并发,但是当节点出现故障的数量多于一半以上时就会造成ETCD集群永久性的损坏,此时便需要人为接入才能修复,不仅造成了维护的不便,也严重损害了生产环境的可用性。
综上所述,如何实现ETCD集群的恢复是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种ETCD集群恢复方法,其能在一定程度上解决如何实现ETCD集群的恢复的技术问题。本申请还提供了一种ETCD集群恢复系统、设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种ETCD集群恢复方法,应用于组建所述ETCD集群的目标集群节点,包括:
判断所述目标集群节点是否属于所述ETCD集群;
若所述目标集群节点不属于所述ETCD集群,则判断所述ETCD集群是否损坏;
若所述ETCD集群损坏,则与组建所述ETCD集群的其他集群节点进行集群恢复。
优选的,所述与组建所述ETCD集群的其他集群节点进行集群恢复,包括:
判断所述其他集群节点是否存在已恢复ETCD集群;
若所述其他集群节点存在所述已恢复ETCD集群,则申请加入所述已恢复ETCD集群;
若所述其他集群节点不存在所述已恢复ETCD集群,则通过集群建立请求与所述其他集群节点建立所述已恢复ETCD集群。
优选的,所述通过集群建立请求与所述其他集群节点建立所述已恢复ETCD集群,包括:
按照最早发送所述集群建立请求的集群节点为主集群节点的原则,与所述其他集群节点确定所述主集群节点,以使所述主集群节点建立所述已恢复ETCD集群;
其中,所述主集群节点建立所述已恢复ETCD集群时,将自身数据库中的集群状态信息清除,并以自身数据库为基础建立所述已恢复ETCD集群。
优选的,所述按照最早发送所述集群建立请求的集群节点为主集群节点的原则,与所述其他集群节点确定所述主集群节点,包括:
获取所述目标集群节点发送所述集群建立请求的第一时间戳;
对于每一个所述其他集群节点,获取所述其他集群节点发送所述集群建立请求的第二时间戳;
判断所述第一时间戳是否早于所述第二时间戳;
若所述第一时间戳早于所述第二时间戳,则允许所述目标集群节点自身建立所述已恢复ETCD集群;
若所述第一时间戳晚于所述第二时间戳,则允许所述其他集群节点建立所述已恢复ETCD集群;
其中,所有发送所述集群建立请求的集群节点均允许建立所述已恢复ETCD集群的集群节点为所述主集群节点。
优选的,所述申请加入所述已恢复ETCD集群,包括:
备份所述目标集群节点的本地数据库,并删除原始的所述本地数据库;
发送申请加入所述已恢复ETCD集群的请求信息至所述其他集群节点,以使所述其他集群节点生成用于所述目标集群节点加入所述已恢复ETCD集群的配置文件;
接收所述配置文件,基于所述配置文件加入所述已恢复ETCD集群。
优选的,所述判断所述其他集群节点是否存在已恢复ETCD集群,包括:
获取所述其他集群节点的IP地址;
按照所述IP地址对所述其他集群节点进行排序,得到排列顺序;
按照所述排列顺序,判断所述其他集群节点是否存在已恢复ETCD集群。
优选的,所述获取所述其他集群节点的IP地址,包括:
通过所述ETCD集群的集群信息获取所述IP地址;
或,
通过所述目标集群节点自身的配置文件获取所述IP地址。
优选的,所述按照所述IP地址对所述其他集群节点进行排序,得到排列顺序,包括:
将所述IP地址转换为相应的整型数字;
按照所述整型数字的大小,对所述其他集群节点进行排序,得到所述排列顺序。
优选的,所述判断所述目标集群节点是否属于所述ETCD集群之后,还包括:
若所述目标集群节点属于所述ETCD集群,则定期发送keepalive报文至所述其他集群节点,以确保所述其他集群节点存在。
优选的,所述判断所述ETCD集群是否损坏,包括:
读取所述ETCD集群的实时健康状态信息;
基于所述实时健康状态信息判断所述ETCD集群是否损坏。
一种ETCD集群恢复系统,应用于组建所述ETCD集群的目标集群节点,包括:
第一判断模块,用于判断所述目标集群节点是否属于所述ETCD集群;
第二判断模块,用于所述第一判断模块判定所述目标集群节点不属于所述ETCD集群时,判断所述ETCD集群是否损坏;若所述ETCD集群损坏,则与组建所述ETCD集群的其他集群节点进行集群恢复。
一种ETCD集群恢复设备,应用于所述ETCD集群中的目标集群节点,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述ETCD集群恢复方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述ETCD集群恢复方法的步骤。
本申请提供的一种ETCD集群恢复方法,应用于组建ETCD集群的目标集群节点,判断目标集群节点是否属于ETCD集群;若目标集群节点不属于ETCD集群,则判断ETCD集群是否损坏;若ETCD集群损坏,则与组建ETCD集群的其他集群节点进行集群恢复。本申请提供的一种ETCD集群恢复方法,目标集群节点先判断自身是否属于ETCD集群,若目标集群节点不属于ETCD集群,则可能是ETCD集群已损坏,此时,再判断ETCD集群是否损坏,若损坏,则与组件ETCD集群的其他集群节点进行集群恢复,从而在ETCD集群损坏的情况下,无需借助人工恢复,便可自动进行集群恢复,增强了集群的维护性,保证了生产环境的可用性。本申请提供的一种ETCD集群恢复系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种ETCD集群恢复方法的第一流程图;
图2为本申请实施例提供的一种ETCD集群恢复方法的第二流程图;
图3为本申请实施例提供的一种ETCD集群恢复方法的第三流程图;
图4为本申请实施例提供的一种ETCD集群恢复系统的结构示意图;
图5为本申请实施例提供的一种ETCD集群恢复设备的结构示意图;
图6为本申请实施例提供的一种ETCD集群恢复设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,图1为本申请实施例提供的一种ETCD集群恢复方法的第一流程图。
本申请实施例提供的一种ETCD集群恢复方法,应用于组建ETCD集群的目标集群节点,可以包括以下步骤:
步骤S101:判断目标集群节点是否属于ETCD集群;若目标集群节点不属于ETCD集群,则执行步骤S102。
本申请中涉及的目标集群节点指的是组建ETCD集群的节点,应当指出,ETCD集群中的任一集群节点均可以作为本申请的目标集群节点,也即,ETCD集群中的任一集群节点均可以执行本申请提供的ETCD集群恢复方法。
实际应用中,无论是ETCD集群损坏还是目标集群节点脱离ETCD集群,目标集群节点均不再属于ETCD集群,因此,目标集群节点可以先判断自身是否依然属于ETCD集群,再根据判断结果进行后续处理。
步骤S102:判断ETCD集群是否损坏;若ETCD集群损坏,则执行步骤S103。
步骤S103:与组建ETCD集群的其他集群节点进行集群恢复。
实际应用中,目标集群节点在判定自身不属于ETCD集群后,可能是目标集群节点自身故障再上线后无法加入ETCD集群,也可能是ETCD集群已损坏,所以目标集群节点需再判断ETCD集群是否损坏,若ETCD集群已损坏,则目标集群节点与组建ETCD集群的其他集群节点进行集群恢复,也即本申请通过赋予目标集群节点判断ETCD集群是否损坏以及进行集群恢复的能力,使得在无认为帮助恢复集群的情况下,可以自动对集群进行恢复。
本申请提供的一种ETCD集群恢复方法,应用于组建ETCD集群的目标集群节点,判断目标集群节点是否属于ETCD集群;若目标集群节点不属于ETCD集群,则判断ETCD集群是否损坏;若ETCD集群损坏,则与组建ETCD集群的其他集群节点进行集群恢复。本申请提供的一种ETCD集群恢复方法,目标集群节点先判断自身是否属于ETCD集群,若目标集群节点不属于ETCD集群,则可能是ETCD集群已损坏,此时,再判断ETCD集群是否损坏,若损坏,则与组件ETCD集群的其他集群节点进行集群恢复,从而在ETCD集群损坏的情况下,无需借助人工恢复,便可自动进行集群恢复,增强了集群的维护性,保证了生产环境的可用性。
请参阅图2,图2为本申请实施例提供的一种ETCD集群恢复方法的第二流程图。
本申请实施例提供的一种ETCD集群恢复方法,可以包括以下步骤:
步骤S201:判断目标集群节点是否属于ETCD集群;若目标集群节点不属于ETCD集群,则执行步骤S202。
步骤S202:判断ETCD集群是否损坏;若ETCD集群损坏,则执行步骤S203。
步骤S203:判断其他集群节点是否存在已恢复ETCD集群;若其他集群节点存在已恢复ETCD集群,则执行步骤S204,若其他集群节点不存在已恢复ETCD集群,则执行步骤S205。
步骤S204:申请加入已恢复ETCD集群。
步骤S205:通过集群建立请求与其他集群节点建立已恢复ETCD集群。
实际应用中,目标集群节点在与组建ETCD集群的其他集群节点进行集群恢复时,由于目标集群节点发现ETCD集群损坏的时长无法确定,可能在其他集群节点上已恢复出ETCD集群,因此,目标集群节点可以先判断其他集群节点是否存在已恢复ETCD集群,再根据判断结果进行后续处理,比如在其他集群节点存在已恢复ETCD集群时,目标集群节点可以申请加入已恢复ETCD集群;在其他集群节点不存在已恢复ETCD集群时,可以通过集群建立请求与其他集群节点建立已恢复ETCD集群。
本申请实施例提供的一种ETCD集群恢复方法,目标集群节点在通过集群建立请求与其他集群节点建立已恢复ETCD集群时,可以按照最早发送集群建立请求的集群节点为主集群节点的原则,与其他集群节点确定主集群节点,以使主集群节点建立已恢复ETCD集群;其中,主集群节点建立已恢复ETCD集群时,将自身数据库中的集群状态信息清除,并以自身数据库为基础建立已恢复ETCD集群。
以ETCD集群包括三个集群节点,三个集群节点分别为A、B、C为例,假设集群节点A为目标集群节点,则集群节点B和集群节点C便为其他集群节点,当集群节点A与集群节点B、集群节点C建立已恢复ETCD集群时,集群节点A可以发送集群建立请求至集群节点B和集群节点C,此时,假设集群节点A最早发送集群建立请求,则集群节点A成为主集群节点,集群节点B、集群节点C在集群节点A的主导下,与集群节点A建立已恢复集群。实际应用中,由于集群节点中已有的集群状态信息会阻碍集群节点重新建立集群,所以主集群节点建立已恢复ETCD集群时,需将自身数据库中的集群状态信息清除,并以自身清除后的数据库为基础建立已恢复ETCD集群。
应当指出,实际应用中,在通过集群建立请求与其他集群节点建立已恢复ETCD集群时,还可以综合考虑节点的性能等因素来确定主集群节点,也即目标集群节点除了按照最早发送集群建立请求的集群节点为主集群节点的原则,与其他集群节点确定主集群节点之外,还可以有其他确定主集群节点的方法,本申请在此不做具体限定。
本申请实施例提供的一种ETCD集群恢复方法,为了便于确定主集群节点,可以根据时间戳来确定最早发送集群建立请求的节点,则目标集群节点在按照最早发送集群建立请求的集群节点为主集群节点的原则,与其他集群节点确定主集群节点时,可以获取目标集群节点发送集群建立请求的第一时间戳;对于每一个其他集群节点,获取其他集群节点发送集群建立请求的第二时间戳;判断第一时间戳是否早于第二时间戳;若第一时间戳早于第二时间戳,则允许目标集群节点自身建立已恢复ETCD集群;若第一时间戳晚于第二时间戳,则允许其他集群节点建立已恢复ETCD集群;其中,所有发送集群建立请求的集群节点均允许建立已恢复ETCD集群的集群节点为主集群节点。
仍以ETCD集群包括三个集群节点,三个集群节点分别为A、B、C为例,假设集群节点A为目标集群节点,则集群节点B和集群节点C便为其他集群节点,当集群节点A与集群节点B、集群节点C建立已恢复ETCD集群时,集群节点A判断集群节点B发送集群建立请求的时间是否早于自身,若是,则允许集群节点B建立已恢复ETCD集群,相应的,若集群节点C判定集群节点B发送集群建立请求的时间也早于自身,则集群节点C也允许集群节点B建立已恢复ETCD集群,此时,集群节点B收集到所有集群节点允许建立已恢复ETCD集群的信息,集群节点B成为主节点,集群节点A和集群节点C在集群节点B的主导下,建立已恢复ETCD集群。
应当指出,在根据时间戳来确定最早发送集群建立请求的节点时,所有发送集群建立请求的集群节点均需执行与目标集群节点相同的步骤来确定主集群节点;实际应用中,为了快速确定出主集群节点,集群节点可以通过记录、更新主节点的方式来确定主节点,也即ETCD集群中的每一个集群节点在允许自身建立已恢复ETCD集群时,可以记录主节点为目标集群节点,允许其他集群节点建立已恢复ETCD集群时,可以记录主节点为其他集群节点,待所有发送集群建立请求的集群节点均记录、更新主节点后,便确定出了最终的主节点。
本申请实施例提供的一种ETCD集群恢复方法,为了便于目标集群节点加入已恢复ETCD集群,目标集群节点在申请加入已恢复ETCD集群时,可以执行以下步骤:
步骤11:备份目标集群节点的本地数据库,并删除原始的本地数据库。
实际应用中,由于目标集群节点中可能存在用户需要的信息,为了使得用户后续可以在目标集群节点中应用其所需的信息,目标集群节点可以先备份自身的本地数据库,再删除原始的本地数据库,为后续加入已恢复ETCD集群做准备。
步骤12:发送申请加入已恢复ETCD集群的请求信息至其他集群节点,以使其他集群节点生成用于目标集群节点加入已恢复ETCD集群的配置文件。
步骤13:接收配置文件,基于配置文件加入已恢复ETCD集群。
实际应用中,为了保证目标集群节点可以成功加入已恢复ETCD集群,目标集群节点可以发送申请加入已恢复ETCD集群的请求信息至其他集群节点,其他集群节点在接收到该信息后,生成用于目标集群节点加入已恢复ETCD集群的配置文件,并发送该配置文件至目标集群节点;相应的,目标集群节点接收该配置文件,并基于该配置文件加入已恢复ETCD集群。
本申请实施例提供的一种ETCD集群恢复方法,为了提高目标集群节点判断其他集群节点是否存在已恢复ETCD集群的效率,目标集群节点在判断其他集群节点是否存在已恢复ETCD集群时,可以获取其他集群节点的IP地址;按照IP地址对其他集群节点进行排序,得到排列顺序;按照排列顺序,判断其他集群节点是否存在已恢复ETCD集群。
也即,本申请中,目标集群节点可以按照其他集群节点的IP地址对其他集群节点进行排序,再按照排序结果依次对其他集群节点进行是否存在已恢复ETCD集群的判断,使得目标集群节点可以有规律的对其他集群节点进行判断,提高目标集群节点的判断效率。
实际应用中,目标集群节点在获取其他集群节点的IP地址时,可以通过ETCD集群的集群信息获取IP地址;或者,通过目标集群节点自身的配置文件获取IP地址。应当指出,目标集群节点获取其他集群节点的IP地址的方式可以根据具体应用场景灵活确定,本申请在此不做具体限定。
实际应用中,为了使得目标集群节点可以快速、方便的得到排列顺序,目标集群节点在按照IP地址对其他集群节点进行排序,得到排列顺序时,可以将IP地址转换为相应的整型数字,按照整型数字的大小,对其他集群节点进行排序,得到排列顺序。
请参阅图3,图3为本申请实施例提供的一种ETCD集群恢复方法的第三流程图。
本申请实施例提供的一种ETCD集群恢复方法,可以包括以下步骤:
步骤S301:判断目标集群节点是否属于ETCD集群;若目标集群节点不属于ETCD集群,则执行步骤S302,若目标集群节点属于ETCD集群,则执行步骤S304。
步骤S302:判断ETCD集群是否损坏;若ETCD集群损坏,则执行步骤S303。
步骤S303:与组建ETCD集群的其他集群节点进行集群恢复。
步骤S304:定期发送keepalive报文至其他集群节点,以确保其他集群节点存在。
实际应用中,在目标集群节点判定自身属于ETCD集群时,为了保证ETCD集群的完整性,目标集群节点可以定期发送keepalive报文至其他集群节点,以确保其他集群节点存在。
本申请实施例提供的一种ETCD集群恢复方法,为了便于目标集群节点快速判断ETCD集群是否损坏,目标集群节点可以读取ETCD集群的实时健康状态信息;基于实时健康状态信息判断ETCD集群是否损坏。具体的,目标集群节点可以读取自身数据库中ETCD集群的实时健康状态信息。
请参阅图4,图4为本申请实施例提供的一种ETCD集群恢复系统的结构示意图。
本申请实施例提供的一种ETCD集群恢复系统,应用于组建ETCD集群的目标集群节点,可以包括:
第一判断模块101,用于判断目标集群节点是否属于ETCD集群;
第二判断模块102,用于第一判断模块判定目标集群节点不属于ETCD集群时,判断ETCD集群是否损坏;若ETCD集群损坏,则与组建ETCD集群的其他集群节点进行集群恢复。
本申请实施例提供的一种ETCD集群恢复系统,应用于组建ETCD集群的目标集群节点,第二判断模块可以包括:
第一判断子模块,用于判断其他集群节点是否存在已恢复ETCD集群;若其他集群节点存在已恢复ETCD集群,则申请加入已恢复ETCD集群;若其他集群节点不存在已恢复ETCD集群,则通过集群建立请求与其他集群节点建立已恢复ETCD集群。
本申请实施例提供的一种ETCD集群恢复系统,应用于组建ETCD集群的目标集群节点,第一判断子模块可与包括:
第一建立子模块,用于按照最早发送集群建立请求的集群节点为主集群节点的原则,与其他集群节点确定主集群节点,以使主集群节点建立已恢复ETCD集群;其中,主集群节点建立已恢复ETCD集群时,将自身数据库中的集群状态信息清除,并以自身数据库为基础建立已恢复ETCD集群。
本申请实施例提供的一种ETCD集群恢复系统,应用于组建ETCD集群的目标集群节点,第一建立子模块可以包括:
第一获取单元,用于获取目标集群节点发送集群建立请求的第一时间戳;
第二获取单元,用于对于每一个其他集群节点,获取其他集群节点发送集群建立请求的第二时间戳;
第一判断单元,用于判断第一时间戳是否早于第二时间戳;若第一时间戳早于第二时间戳,则允许目标集群节点自身建立已恢复ETCD集群;若第一时间戳晚于第二时间戳,则允许其他集群节点建立已恢复ETCD集群;
其中,所有发送集群建立请求的集群节点均允许建立已恢复ETCD集群的集群节点为主集群节点。
本申请实施例提供的一种ETCD集群恢复系统,应用于组建ETCD集群的目标集群节点,第二判断模块可以包括:
第一备份单元,用于备份目标集群节点的本地数据库,并删除原始的本地数据库;
第一发送单元,用于发送申请加入已恢复ETCD集群的请求信息至其他集群节点,以使其他集群节点生成用于目标集群节点加入已恢复ETCD集群的配置文件;
第一接收单元,用于接收配置文件,基于配置文件加入已恢复ETCD集群。
本申请实施例提供的一种ETCD集群恢复系统,应用于组建ETCD集群的目标集群节点,第二判断模块可以包括:
第一获取子模块,用于获取其他集群节点的IP地址;
第一排序子模块,用于按照IP地址对其他集群节点进行排序,得到排列顺序;
第二判断子模块,用于按照排列顺序,判断其他集群节点是否存在已恢复ETCD集群。
本申请实施例提供的一种ETCD集群恢复系统,应用于组建ETCD集群的目标集群节点,第一获取子模块可以包括:
第三获取单元,用于通过ETCD集群的集群信息获取IP地址;或,通过目标集群节点自身的配置文件获取IP地址。
本申请实施例提供的一种ETCD集群恢复系统,应用于组建ETCD集群的目标集群节点,第一排序子模块可以包括:
第一转换单元,用于将IP地址转换为相应的整型数字;
第一排序单元,用于按照整型数字的大小,对其他集群节点进行排序,得到排列顺序。
本申请实施例提供的一种ETCD集群恢复系统,应用于组建ETCD集群的目标集群节点,还可以包括:
第一发送模块,用于第一判读模块判断目标集群节点是否属于ETCD集群之后,若目标集群节点属于ETCD集群,则定期发送keepalive报文至其他集群节点,以确保其他集群节点存在。
本申请实施例提供的一种ETCD集群恢复系统,应用于组建ETCD集群的目标集群节点,第二判断模块可以包括:
第一读取单元,用于读取ETCD集群的实时健康状态信息;
第二判断单元,用于基于实时健康状态信息判断ETCD集群是否损坏。
本申请还提供了一种ETCD集群恢复设备及计算机可读存储介质,其均具有本申请实施例提供的一种ETCD集群恢复方法具有的对应效果。请参阅图5,图5为本申请实施例提供的一种ETCD集群恢复设备的结构示意图。
本申请实施例提供的一种ETCD集群恢复设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:
判断目标集群节点是否属于ETCD集群;
若目标集群节点不属于ETCD集群,则判断ETCD集群是否损坏;
若ETCD集群损坏,则与组建ETCD集群的其他集群节点进行集群恢复。
本申请实施例提供的一种ETCD集群恢复设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:判断其他集群节点是否存在已恢复ETCD集群;若其他集群节点存在已恢复ETCD集群,则申请加入已恢复ETCD集群;若其他集群节点不存在已恢复ETCD集群,则通过集群建立请求与其他集群节点建立已恢复ETCD集群。
本申请实施例提供的一种ETCD集群恢复设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:按照最早发送集群建立请求的集群节点为主集群节点的原则,与其他集群节点确定主集群节点,以使主集群节点建立已恢复ETCD集群;其中,主集群节点建立已恢复ETCD集群时,将自身数据库中的集群状态信息清除,并以自身数据库为基础建立已恢复ETCD集群。
本申请实施例提供的一种ETCD集群恢复设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取目标集群节点发送集群建立请求的第一时间戳;对于每一个其他集群节点,获取其他集群节点发送集群建立请求的第二时间戳;判断第一时间戳是否早于第二时间戳;若第一时间戳早于第二时间戳,则允许目标集群节点自身建立已恢复ETCD集群;若第一时间戳晚于第二时间戳,则允许其他集群节点建立已恢复ETCD集群;其中,所有发送集群建立请求的集群节点均允许建立已恢复ETCD集群的集群节点为主集群节点。
本申请实施例提供的一种ETCD集群恢复设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:备份目标集群节点的本地数据库,并删除原始的本地数据库;发送申请加入已恢复ETCD集群的请求信息至其他集群节点,以使其他集群节点生成用于目标集群节点加入已恢复ETCD集群的配置文件;接收配置文件,基于配置文件加入已恢复ETCD集群。
本申请实施例提供的一种ETCD集群恢复设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:获取其他集群节点的IP地址;按照IP地址对其他集群节点进行排序,得到排列顺序;按照排列顺序,判断其他集群节点是否存在已恢复ETCD集群。
本申请实施例提供的一种ETCD集群恢复设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:通过ETCD集群的集群信息获取IP地址;或,通过目标集群节点自身的配置文件获取IP地址。
本申请实施例提供的一种ETCD集群恢复设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:将IP地址转换为相应的整型数字;按照整型数字的大小,对其他集群节点进行排序,得到排列顺序。
本申请实施例提供的一种ETCD集群恢复设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:判断目标集群节点是否属于ETCD集群之后,若目标集群节点属于ETCD集群,则定期发送keepalive报文至其他集群节点,以确保其他集群节点存在。
本申请实施例提供的一种ETCD集群恢复设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:读取ETCD集群的实时健康状态信息;基于实时健康状态信息判断ETCD集群是否损坏。
请参阅图6,本申请实施例提供的另一种ETCD集群恢复设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现ETCD集群恢复设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
判断目标集群节点是否属于ETCD集群;
若目标集群节点不属于ETCD集群,则判断ETCD集群是否损坏;
若ETCD集群损坏,则与组建ETCD集群的其他集群节点进行集群恢复。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:判断其他集群节点是否存在已恢复ETCD集群;若其他集群节点存在已恢复ETCD集群,则申请加入已恢复ETCD集群;若其他集群节点不存在已恢复ETCD集群,则通过集群建立请求与其他集群节点建立已恢复ETCD集群。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:按照最早发送集群建立请求的集群节点为主集群节点的原则,与其他集群节点确定主集群节点,以使主集群节点建立已恢复ETCD集群;其中,主集群节点建立已恢复ETCD集群时,将自身数据库中的集群状态信息清除,并以自身数据库为基础建立已恢复ETCD集群。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:获取目标集群节点发送集群建立请求的第一时间戳;对于每一个其他集群节点,获取其他集群节点发送集群建立请求的第二时间戳;判断第一时间戳是否早于第二时间戳;若第一时间戳早于第二时间戳,则允许目标集群节点自身建立已恢复ETCD集群;若第一时间戳晚于第二时间戳,则允许其他集群节点建立已恢复ETCD集群;其中,所有发送集群建立请求的集群节点均允许建立已恢复ETCD集群的集群节点为主集群节点。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:备份目标集群节点的本地数据库,并删除原始的本地数据库;发送申请加入已恢复ETCD集群的请求信息至其他集群节点,以使其他集群节点生成用于目标集群节点加入已恢复ETCD集群的配置文件;接收配置文件,基于配置文件加入已恢复ETCD集群。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:获取其他集群节点的IP地址;按照IP地址对其他集群节点进行排序,得到排列顺序;按照排列顺序,判断其他集群节点是否存在已恢复ETCD集群。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:通过ETCD集群的集群信息获取IP地址;或,通过目标集群节点自身的配置文件获取IP地址。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:将IP地址转换为相应的整型数字;按照整型数字的大小,对其他集群节点进行排序,得到排列顺序。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:判断目标集群节点是否属于ETCD集群之后,若目标集群节点属于ETCD集群,则定期发送keepalive报文至其他集群节点,以确保其他集群节点存在。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:读取ETCD集群的实时健康状态信息;基于实时健康状态信息判断ETCD集群是否损坏。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的一种ETCD集群恢复系统、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的一种ETCD集群恢复方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (12)

1.一种ETCD集群恢复方法,其特征在于,应用于组建所述ETCD集群的目标集群节点,包括:
判断所述目标集群节点是否属于所述ETCD集群;
若所述目标集群节点不属于所述ETCD集群,则判断所述ETCD集群是否损坏;
若所述ETCD集群损坏,则与组建所述ETCD集群的其他集群节点进行集群恢复;
其中,所述与组建所述ETCD集群的其他集群节点进行集群恢复,包括:
判断所述其他集群节点是否存在已恢复ETCD集群;
若所述其他集群节点存在所述已恢复ETCD集群,则申请加入所述已恢复ETCD集群;
若所述其他集群节点不存在所述已恢复ETCD集群,则通过集群建立请求与所述其他集群节点建立所述已恢复ETCD集群。
2.根据权利要求1所述的方法,其特征在于,所述通过集群建立请求与所述其他集群节点建立所述已恢复ETCD集群,包括:
按照最早发送所述集群建立请求的集群节点为主集群节点的原则,与所述其他集群节点确定所述主集群节点,以使所述主集群节点建立所述已恢复ETCD集群;
其中,所述主集群节点建立所述已恢复ETCD集群时,将自身数据库中的集群状态信息清除,并以自身数据库为基础建立所述已恢复ETCD集群。
3.根据权利要求2所述的方法,其特征在于,所述按照最早发送所述集群建立请求的集群节点为主集群节点的原则,与所述其他集群节点确定所述主集群节点,包括:
获取所述目标集群节点发送所述集群建立请求的第一时间戳;
对于每一个所述其他集群节点,获取所述其他集群节点发送所述集群建立请求的第二时间戳;
判断所述第一时间戳是否早于所述第二时间戳;
若所述第一时间戳早于所述第二时间戳,则允许所述目标集群节点自身建立所述已恢复ETCD集群;
若所述第一时间戳晚于所述第二时间戳,则允许所述其他集群节点建立所述已恢复ETCD集群;
其中,所有发送所述集群建立请求的集群节点均允许建立所述已恢复ETCD集群的集群节点为所述主集群节点。
4.根据权利要求1所述的方法,其特征在于,所述申请加入所述已恢复ETCD集群,包括:
备份所述目标集群节点的本地数据库,并删除原始的所述本地数据库;
发送申请加入所述已恢复ETCD集群的请求信息至所述其他集群节点,以使所述其他集群节点生成用于所述目标集群节点加入所述已恢复ETCD集群的配置文件;
接收所述配置文件,基于所述配置文件加入所述已恢复ETCD集群。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述判断所述其他集群节点是否存在已恢复ETCD集群,包括:
获取所述其他集群节点的IP地址;
按照所述IP地址对所述其他集群节点进行排序,得到排列顺序;
按照所述排列顺序,判断所述其他集群节点是否存在已恢复ETCD集群。
6.根据权利要求5所述的方法,其特征在于,所述获取所述其他集群节点的IP地址,包括:
通过所述ETCD集群的集群信息获取所述IP地址;
或,
通过所述目标集群节点自身的配置文件获取所述IP地址。
7.根据权利要求5所述的方法,其特征在于,所述按照所述IP地址对所述其他集群节点进行排序,得到排列顺序,包括:
将所述IP地址转换为相应的整型数字;
按照所述整型数字的大小,对所述其他集群节点进行排序,得到所述排列顺序。
8.根据权利要求1所述的方法,其特征在于,所述判断所述目标集群节点是否属于所述ETCD集群之后,还包括:
若所述目标集群节点属于所述ETCD集群,则定期发送keepalive报文至所述其他集群节点,以确保所述其他集群节点存在。
9.根据权利要求1所述的方法,其特征在于,所述判断所述ETCD集群是否损坏,包括:
读取所述ETCD集群的实时健康状态信息;
基于所述实时健康状态信息判断所述ETCD集群是否损坏。
10.一种ETCD集群恢复系统,其特征在于,应用于组建所述ETCD集群的目标集群节点,包括:
第一判断模块,用于判断所述目标集群节点是否属于所述ETCD集群;
第二判断模块,用于所述第一判断模块判定所述目标集群节点不属于所述ETCD集群时,判断所述ETCD集群是否损坏;若所述ETCD集群损坏,则与组建所述ETCD集群的其他集群节点进行集群恢复;
其中,所述第二判断模块包括:
第一判断子模块,用于判断所述其他集群节点是否存在已恢复ETCD集群;若所述其他集群节点存在所述已恢复ETCD集群,则申请加入所述已恢复ETCD集群;若所述其他集群节点不存在所述已恢复ETCD集群,则通过集群建立请求与所述其他集群节点建立所述已恢复ETCD集群。
11.一种ETCD集群恢复设备,其特征在于,应用于所述ETCD集群中的目标集群节点,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至9任一项所述ETCD集群恢复方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述ETCD集群恢复方法的步骤。
CN201911031232.2A 2019-10-28 2019-10-28 一种etcd集群恢复方法、系统、设备及计算机介质 Active CN110750379B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911031232.2A CN110750379B (zh) 2019-10-28 2019-10-28 一种etcd集群恢复方法、系统、设备及计算机介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911031232.2A CN110750379B (zh) 2019-10-28 2019-10-28 一种etcd集群恢复方法、系统、设备及计算机介质

Publications (2)

Publication Number Publication Date
CN110750379A CN110750379A (zh) 2020-02-04
CN110750379B true CN110750379B (zh) 2023-10-31

Family

ID=69280464

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911031232.2A Active CN110750379B (zh) 2019-10-28 2019-10-28 一种etcd集群恢复方法、系统、设备及计算机介质

Country Status (1)

Country Link
CN (1) CN110750379B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11397632B2 (en) 2020-10-30 2022-07-26 Red Hat, Inc. Safely recovering workloads within a finite timeframe from unhealthy cluster nodes
CN112667449B (zh) * 2020-12-29 2024-03-08 新华三技术有限公司 一种集群管理方法及装置
CN114390052B (zh) * 2021-12-30 2023-10-10 武汉达梦数据技术有限公司 一种基于vrrp协议实现etcd双节点高可用方法和装置
CN115421971B (zh) * 2022-08-16 2023-07-28 安超云软件有限公司 Etcd灾备故障恢复的方法及应用

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109032830A (zh) * 2018-07-25 2018-12-18 广东浪潮大数据研究有限公司 一种分布式存储系统的故障恢复方法、系统及相关组件
CN109117317A (zh) * 2018-11-01 2019-01-01 郑州云海信息技术有限公司 一种集群故障恢复方法和相关装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109032830A (zh) * 2018-07-25 2018-12-18 广东浪潮大数据研究有限公司 一种分布式存储系统的故障恢复方法、系统及相关组件
CN109117317A (zh) * 2018-11-01 2019-01-01 郑州云海信息技术有限公司 一种集群故障恢复方法和相关装置

Also Published As

Publication number Publication date
CN110750379A (zh) 2020-02-04

Similar Documents

Publication Publication Date Title
CN110750379B (zh) 一种etcd集群恢复方法、系统、设备及计算机介质
CN103827723B (zh) 大规模存储系统
CN103902405B (zh) 一种准连续性数据复制方法及装置
WO2016177231A1 (zh) 基于双主控的主备倒换方法及装置
CN104144124B (zh) 数据转发方法、装置及系统
CN106326031A (zh) 信息处理装置、信息处理系统及信息处理装置的控制方法
CN101771548A (zh) 文件同步方法及系统
CN108123826B (zh) 一种跨区数据的交互系统及方法
CN111405035A (zh) 数据的传输方法及数据通道系统
CN103856511B (zh) 数据包上传方法、客户端、节点、信息服务器及系统
WO2011160582A1 (zh) 一种同步数据清理的方法和系统
JP5176835B2 (ja) 監視装置、情報処理装置、情報処理方法並びにプログラム
CN104243473A (zh) 一种数据传输的方法以及装置
CN107038094A (zh) 一种数据备份方法及装置
CN103530205A (zh) 多副本中故障副本的处理方法和装置
CN104079663A (zh) 分布式实时同步网络系统及其通告数据的方法
JP2009206731A (ja) 監視システム、監視装置、監視方法、およびプラグラム
JP5612012B2 (ja) 情報処理システム及びその処理方法
WO2016086579A1 (zh) 一种网管系统中网元数据智能备份恢复的方法及装置
CN104486215A (zh) 一种消息发送方法及设备
CN114090342A (zh) 存储容灾的链路管理方法及消息执行节点、存储控制集群
JP2007249659A (ja) システム切替方法、その計算機システム及びプログラム
US11381642B2 (en) Distributed storage system suitable for sensor data
JP2010016597A (ja) ノード及びネットワークシステム
CN113472566A (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