CN114461141A - 一种etcd系统、节点仲裁方法及系统 - Google Patents

一种etcd系统、节点仲裁方法及系统 Download PDF

Info

Publication number
CN114461141A
CN114461141A CN202111666925.6A CN202111666925A CN114461141A CN 114461141 A CN114461141 A CN 114461141A CN 202111666925 A CN202111666925 A CN 202111666925A CN 114461141 A CN114461141 A CN 114461141A
Authority
CN
China
Prior art keywords
node
etcd
network
arbitration
nodes
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
Application number
CN202111666925.6A
Other languages
English (en)
Other versions
CN114461141B (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202111666925.6A priority Critical patent/CN114461141B/zh
Publication of CN114461141A publication Critical patent/CN114461141A/zh
Application granted granted Critical
Publication of CN114461141B publication Critical patent/CN114461141B/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/0614Improving the reliability of storage 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/079Root cause analysis, i.e. error or fault diagnosis
    • 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
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请公开了一种ETCD系统和节点仲裁方法、系统,该节点仲裁方法应用于ETCD系统的每个ETCD节点,包括:按照预设周期将自身的心跳数据写入仲裁盘中;判断是否存在网络故障节点;若存在,则判断每个网络故障节点写入仲裁盘的心跳数据是否正常;若是,则判定该网络故障节点与自身之间网络不通,在所有ETCD节点中确定领导者;若否,则判定该网络故障节点发生故障,在未发生故障的所有ETCD节点中确定领导者。本申请通过其他ETCD节点能否网络通信、仲裁盘中心跳数据是否正常,来判定ETCD节点的通信故障原因,并进一步确定领导者,从而消除了网络不通时各ETCD节点的集群不可用的情况,提高了ETCD系统的可靠性。

Description

一种ETCD系统、节点仲裁方法及系统
技术领域
本发明涉及ETCD系统领域,特别涉及一种ETCD系统、节点仲裁方法及系统。
背景技术
ETCD系统,是一种稳定可靠的Key/Value的存储系统,常在分布式存储系统中承担关键角色,一般用于集群的节点发现,同时作为分布式的数据库存储数据。ETCD系统中使用Raft协议保证数据的强一致性,同时采用leader-follower模式保证有状态服务的高可用性,即使有节点损坏可以保证有其他节点提供服务。由于ETCD系统采用leader-follower模式,当前的Leader会定期向follower发送心跳数据以确保自己存活,同时Leader通过follower的响应确认其状态。
在分布式存储的应用中,ETCD有可能被部署在多个节点上,当多个ETCD节点的网络不通时则会产生网络分区,从而导致多个节点的ETCD集群不可用,进而影响分布式存储的数据存储流程。
因此,如何提供一种解决上述技术问题的方案是目前本领域技术人员需要解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种ETCD系统、节点仲裁方法及系统。其具体方案如下:
一种节点仲裁方法,应用于ETCD系统的每个ETCD节点,所述ETCD系统包括多个所述ETCD节点和一个仲裁盘,所述仲裁盘分别与所有所述ETCD节点连接,所有所述ETCD节点均通过网络连接,该节点仲裁方法包括:
按照预设周期将自身的心跳数据写入所述仲裁盘中;
判断是否存在网络故障节点,所述网络故障节点具体为无法通过所述网络与自身通信的其他所述ETCD节点;
若存在所述网络故障节点,则判断每个所述网络故障节点写入所述仲裁盘的所述心跳数据是否正常;
若是,则判定该网络故障节点与自身之间网络不通,按照默认规则在所有所述ETCD节点中确定领导者;
若否,则判定该网络故障节点发生故障,并按照所述默认规则在未发生故障的所有所述ETCD节点中确定所述领导者。
优选的,所述按照预设周期将自身的心跳数据写入所述仲裁盘中之后,还包括:
获取其他所有所述ETCD节点写入所述仲裁盘的所述心跳数据。
优选的,所述判断每个所述网络故障节点写入所述仲裁盘的所述心跳数据是否正常的过程,包括:
判断每个所述网络故障节点写入所述仲裁盘的所述心跳数据的时间戳与当前时刻的时间差是否在所述预设周期内;
若是,则判定该心跳数据正常;
若否,则判定该心跳数据不正常。
优选的,所述判断每个所述网络故障节点写入所述仲裁盘的所述心跳数据是否正常的过程,还包括:
当任一所述网络故障节点写入所述仲裁盘的所述心跳数据的时间戳与当前时刻的时间差超过第一预设时间,则判定该网络故障节点离开所述网络。
优选的,所述节点仲裁方法还包括:
若所述领导者与自身之间网络不通,则将自身的状态设为不可用。
优选的,所述ETCD系统包括两个所述ETCD节点。
优选的,所述按照预设周期将自身的心跳数据写入所述仲裁盘中的过程,包括:
根据所述仲裁盘中位置分配区域存储的所述ETCD节点的slot号与slot数据区域的对应关系,将自身的心跳数据写入对应的所述slot数据区域。
优选的,所述判断是否存在网络故障节点的过程,包括:
由自身通过所述网络向其他所述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为本发明实施例中一种节点仲裁方法的步骤流程图;
图2为本发明实施例中一种ETCD系统的结构分布图;
图3为本发明实施例中一种仲裁盘的存储区域的结构分布图;
图4为本发明实施例中一种节点仲裁系统的结构分布图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在分布式存储的应用中,ETCD有可能被部署在多个节点上,当多个ETCD节点的网络不通时则会产生网络分区,从而导致多个节点的ETCD集群不可用,进而影响分布式存储的数据存储流程。
本申请通过其他ETCD节点能否网络通信、仲裁盘中心跳数据是否正常,来判定ETCD节点的通信故障原因,并进一步确定领导者,从而消除了网络不通时各ETCD节点的集群不可用的情况,提高了ETCD系统的可靠性。
本发明实施例公开了一种节点仲裁方法,应用于ETCD系统的每个ETCD节点,所述ETCD系统包括多个所述ETCD节点和一个仲裁盘,所述仲裁盘分别与所有所述ETCD节点连接,所有所述ETCD节点均通过网络连接,参见图1所示,该节点仲裁方法包括:
S1:按照预设周期将自身的心跳数据写入仲裁盘中;
可以理解的是,本实施例中节点仲裁方法由每个ETCD节点实施,此处自身指的是实施节点仲裁方法的ETCD节点自身,该心跳数据中的主要信息包括当前的时间戳和自身的节点ID,预设周期可根据实际情况进行设置,例如设为2s。
进一步的,在步骤S1之后,还可获取其他所有ETCD节点写入仲裁盘的心跳数据。
S2:判断是否存在网络故障节点,网络故障节点具体为无法通过网络与自身通信的其他ETCD节点;
可以理解的是,在现有技术的常规leader-follower模式下,当前的Leader会定期向follower发送心跳数据以确保自己存活,同时Leader通过follower的响应确认其状态,该过程中,leader和follower均通过网络通信,作为leader的节点发送心跳数据来告知follower的节点当前leader存活,follower的节点通过响应该心跳数据来告知leader的节点当前follower存活。
进一步的,本实施例中S2判断网络故障节点时,并不局限于leader-follower之间的网络通信,follower之间也可通信,从而任一ETCD节点均能够掌握所有ETCD节点的网络通信状态,因此步骤S2具体可包括:
由自身通过网络向其他ETCD节点发送通讯请求,并判断第二预设时间内是否收到通讯请求对应的通讯响应;
若是,则判定对应的ETCD节点不是网络故障节点;
若否,则判定对应的ETCD节点为网络故障节点。
当然,除此外,如果在自身未发送通讯请求前,已收到其他ETCD节点发送的通讯请求,则可直接判定该通讯请求对应的ETCD节点不是网络故障节点,并向该ETCD节点返回通讯响应,由于收到其他ETCD节点的通讯请求,已经能够确定网络畅通,因此不需要在第二预设时间内再向该ETCD节点发送通讯请求,其中第二预设时间是网络正常通信的允许延时,这里的通讯请求和通讯响应相当于现有技术leader和follower之间的心跳数据和响应
S3:若存在网络故障节点,则判断每个网络故障节点写入仲裁盘的心跳数据是否正常;
S4:若是,则判定该网络故障节点与自身之间网络不通,按照默认规则在所有ETCD节点中确定领导者leader;
S5:若否,则判定该网络故障节点发生故障,并按照默认规则在未发生故障的所有ETCD节点中确定领导者。
可以理解的是,默认规则为原本选取领导者规则,可根据实际需求进行设置,确定依据通常建立在ETCD节点均与仲裁盘连接的基础上,例如ETCD节点均在仲裁盘中保留了相应的ID,每个ETCD节点均可按照默认规则从可选ETCD节点写入仲裁盘的ID中确定领导者。
进一步的,步骤S3具体包括:
判断每个网络故障节点写入仲裁盘的心跳数据的时间戳与当前时刻的时间差是否在预设周期内;
若是,则判定该心跳数据正常,进入步骤S4;
若否,则判定该心跳数据不正常,进入步骤S5。
可以理解的是,此处的心跳数据可以是预先在步骤S1之后从仲裁盘中获取的所有的ETCD节点的心跳数据中找出的,也可以是在步骤S3时临时从仲裁盘中直接获取网络故障节点的心跳数据。前者在步骤S2确定网络故障节点之前即可根据心跳数据判定ETCD节点是否存活,进而对ETCD节点是否为网络故障节点、是否心跳数据正常的两个判断可并行进行,进而步骤S3的结果得出的速度较快,但需要提前读取存储所有ETCD节点的心跳数据,这些心跳数据中对应网络故障节点的可能性不高,并且会持续占用节点的存储资源和与仲裁盘的通信资源;后者中对ETCD节点是否为网络故障节点、是否心跳数据正常的两个判断存在先后顺序,导致步骤S3的结果得出的速度降低,但提取的心跳数据具有明确的目标范围、涉及数据量少、占用资源较少,因此如何获取网络故障节点的心跳数据,可根据实际应用时ETCD系统的实时数据特征和需求取舍。
进一步的,步骤S3还包括:
当任一网络故障节点写入仲裁盘的心跳数据的时间戳与当前时刻的时间差超过第一预设时间,则判定该网络故障节点离开网络。
进一步的,节点仲裁方法还包括:
若领导者与自身之间网络不通,则将自身的状态设为不可用。
可以理解的是,经过步骤S3-S5的判断,保证了网络不通或存在节点故障的情况下,ETCD系统依然能够确定ETCD节点中的领导者leader,避免了ETCD集群因为没有leader而无法提供服务的情况出现,此外与领导者不同的ETCD节点将因为状态不可用而停用,从而避免数据不一致的情况发生。
本申请公开了一种节点仲裁方法,应用于ETCD系统的每个ETCD节点,包括:按照预设周期将自身的心跳数据写入仲裁盘中;判断是否存在网络故障节点,网络故障节点具体为无法通过网络与自身通信的其他ETCD节点;若存在网络故障节点,则判断每个网络故障节点写入仲裁盘的心跳数据是否正常;若是,则判定该网络故障节点与自身之间网络不通,按照默认规则在所有ETCD节点中确定领导者;若否,则判定该网络故障节点发生故障,并按照默认规则在未发生故障的所有ETCD节点中确定领导者。本申请通过其他ETCD节点能否网络通信、仲裁盘中心跳数据是否正常,来判定ETCD节点的通信故障原因,并进一步确定领导者,从而消除了网络不通时各ETCD节点的集群不可用的情况,提高了ETCD系统的可靠性。
本发明实施例公开了一种具体的节点仲裁方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
应用本实施例中节点仲裁方法的ETCD系统,包括多个ETCD节点和一个仲裁盘quorum disk,其中ETCD节点的数量为两个或以上,本实施例中以两个ETCD节点为例进行具体说明,参见图2所示,每个ETCD节点中增加了仲裁守护进程quorum daemon,以用于按照预设周期将自身的心跳数据写入仲裁盘中,并读取另一ETCD节点的心跳数据,根据心跳数据是否正常来判定另一ETCD节点是否存活。
进一步的,在ETCD系统的部署前,仲裁盘按照预设分区方案进行格式化,预设分区方案中仲裁盘的存储区域可参见图3所示,该存储区域包括元数据区域和数据区域,其中数据区域用于存储每个ETCD节点的心跳数据,每个ETCD集群中的ETCD节点分别写入对应的Slot数据区域,该心跳数据包括ETCD节点的时间戳;元数据区域主要包括Magic,Cluster_name,Version,Slot_bitmap和reserved等部分,其中Magic用于记录ETCD节点的相关信息,Cluster_name为ETCD集群的名称,Version为仲裁盘的数据格式版本号,Slot_bitmap为数据区域的Slot的分配信息,每对一个ETCD节点分配一个对应的slot数据区域,则将slot_bitmap中对应slot号的位置置位为1;reserved为预留区域,以便后续扩展。
可以理解的是,根据仲裁盘的预设分区方案可知,按照预设周期将自身的心跳数据写入仲裁盘中的过程,包括:
根据仲裁盘中位置分配区域存储的ETCD节点的slot号与slot数据区域的对应关系,将自身的心跳数据写入对应的slot数据区域。
进一步的,根据格式化后的仲裁盘,ETCD系统的配置将包括如下步骤:
在ETCD进程中增加Cluster_name的信息,Cluster_name用于判断集群中所有节点的所属是否是同一个集群;
当ETCD集群中所有节点上线后,使用原有的RAFT协议和选主逻辑选取Leader;
Leader根据ETCD节点的个数,为每个ETCD节点分配slot号,同时更新仲裁盘中对应的slot_bitmap区域;
每个ETCD节点根据已分配的slot号,向仲裁盘中对应的心跳区域写入心跳数据,心跳数据为当前节点的时间,同时读取slot_bitmap区域记录的所有其他ETCD节点的心跳数据,并记录至内存中;
根据读取到的其他ETCD节点的时间戳,比较每个时间戳与当前时刻是否相差不超过预设周期,若超过则认定其他节点未成功更新心跳数据,也即该心跳数据不正常;
若存在ETCD节点的时间戳与当前时刻的时间差超过第一预设时间,则认为该ETCD节点离开。
进一步的,基于本实施例中ETCD系统的配置,即使ETCD节点在网络不通的情况下,也可以通过读取仲裁盘中的心跳数据判断其余ETCD节点是否存活,进而分辨出网络不通或ETCD节点故障两种情况。
仍以两个ETCD节点为例,如果两个ETCD节点之间网络不通,同时另一ETCD节点的心跳数据不更新,则判定不更新的ETCD节点发生故障,此时只有另一个ETCD节点存活,则强制选取存活的ETCD节点为领导者;如果两个ETCD节点之间网络不通,同时每个ETCD节点的心跳数据都在正常更新,则判定两个ETCD节点网络故障,通常默认规则可选为:已分配的slot号中,默认选择slot号小的节点为领导者,因此每个ETCD节点通过仲裁盘确定各自slot号与其他ETCD节点的slot号的大小关系,如果自身slot号最小,则默认自身为领导者,如果自身slot号并非最小,则退出选举领导者逻辑,同时将自身节点设置为不可用状态。
进一步的,当ETCD系统中包括两个以上的ETCD节点时,该判定方法依然有效,即如果存在ETCD节点与自身节点仅为网络不通,则按默认规则在所有ETCD节点中确定领导者即可,如果存在网络故障节点发生故障,则按默认规则在其余未发生故障的正常ETCD节点中确定领导者;如果某一ETCD节点自身故障,则无法正常发出心跳信号,同时失去网络通信的能力,不能也不需要参与领导者的确定过程;如果某一ETCD节点自身与其他ETCD节点网络不通,则该ETCD节点能够通过仲裁盘中的相关信息如slot号确定领导者,如果领导者与该ETCD节点网络连通,则该ETCD节点可继续正常工作,如果该ETCD节点与领导者网络不通,则该ETCD节点将自身状态设置为不可用,以停止服务,从而避免数据发生不一致。
相应的,本申请还公开了一种节点仲裁系统,应用于ETCD系统的每个ETCD节点,所述ETCD系统包括多个所述ETCD节点和一个仲裁盘,所述仲裁盘分别与所有所述ETCD节点连接,所有所述ETCD节点均通过网络连接,参见图4所示,该节点仲裁系统包括:
写入模块1,用于按照预设周期将自身的心跳数据写入所述仲裁盘中;
第一判断模块2,用于判断是否存在网络故障节点,所述网络故障节点具体为无法通过所述网络与自身通信的其他所述ETCD节点;若存在所述网络故障节点,则触发第二判断模块3;
第二判断模块3,用于判断每个所述网络故障节点写入所述仲裁盘的所述心跳数据是否正常;若是,则判定该网络故障节点与自身之间网络不通,按照默认规则在所有所述ETCD节点中确定领导者;若否,则判定该网络故障节点发生故障,并按照默认规则在未发生故障的所有所述ETCD节点中确定所述领导者。
本申请实施例通过其他ETCD节点能否网络通信、仲裁盘中心跳数据是否正常,来判定ETCD节点的通信故障原因,并进一步确定领导者,从而消除了网络不通时各ETCD节点的集群不可用的情况,提高了ETCD系统的可靠性。
在一些具体的实施例中,写入模块1还用于:
获取其他所有所述ETCD节点写入所述仲裁盘的所述心跳数据。
在一些具体的实施例中,第二判断模块3具体用于:
判断每个所述网络故障节点写入所述仲裁盘的所述心跳数据的时间戳与当前时刻的时间差是否在所述预设周期内;
若是,则判定该心跳数据正常;
若否,则判定该心跳数据不正常。
在一些具体的实施例中,第二判断模块3还用于:当任一所述网络故障节点写入所述仲裁盘的所述心跳数据的时间戳与当前时刻的时间差超过第一预设时间,则判定该网络故障节点离开所述网络。
在一些具体的实施例中,节点仲裁系统还包括:
状态设置模块,用于若所述领导者与自身之间网络不通,则将自身的状态设为不可用。
在一些具体的实施例中,所述ETCD系统包括两个所述ETCD节点。
在一些具体的实施例中,写入模块1具体用于:
根据所述仲裁盘中位置分配区域存储的所述ETCD节点的slot号与slot数据区域的对应关系,将自身的心跳数据写入对应的所述slot数据区域。
在一些具体的实施例中,第一判断模块2具体用于:
由自身通过所述网络向其他所述ETCD节点发送通讯请求,并判断第二预设时间内是否收到所述通讯请求对应的通讯响应;
若是,则判定对应的所述ETCD节点不是所述网络故障节点;
若否,则判定对应的所述ETCD节点为所述网络故障节点。
相应的,本申请实施例还公开了一种ETCD系统,包括多个ETCD节点和一个仲裁盘,所有所述ETCD节点均通过网络连接,每个所述ETCD节点均与所述仲裁盘连接,每个所述ETCD节点用于执行如上文任一项所述节点仲裁方法。
其中,具体有关节点仲裁方法的细节内容可以参照上文实施例中的相关描述,此处不再赘述。
其中,本实施例中ETCD系统具有与上文实施例中节点仲裁方法相同的技术效果,此处不再赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种ETCD系统、节点仲裁方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种节点仲裁方法,其特征在于,应用于ETCD系统的每个ETCD节点,所述ETCD系统包括多个所述ETCD节点和一个仲裁盘,所述仲裁盘分别与所有所述ETCD节点连接,所有所述ETCD节点均通过网络连接,该节点仲裁方法包括:
按照预设周期将自身的心跳数据写入所述仲裁盘中;
判断是否存在网络故障节点,所述网络故障节点具体为无法通过所述网络与自身通信的其他所述ETCD节点;
若存在所述网络故障节点,则判断每个所述网络故障节点写入所述仲裁盘的所述心跳数据是否正常;
若是,则判定该网络故障节点与自身之间网络不通,按照默认规则在所有所述ETCD节点中确定领导者;
若否,则判定该网络故障节点发生故障,并按照所述默认规则在未发生故障的所有所述ETCD节点中确定所述领导者。
2.根据权利要求1所述节点仲裁方法,其特征在于,所述按照预设周期将自身的心跳数据写入所述仲裁盘中之后,还包括:
获取其他所有所述ETCD节点写入所述仲裁盘的所述心跳数据。
3.根据权利要求1所述节点仲裁方法,其特征在于,所述判断每个所述网络故障节点写入所述仲裁盘的所述心跳数据是否正常的过程,包括:
判断每个所述网络故障节点写入所述仲裁盘的所述心跳数据的时间戳与当前时刻的时间差是否在所述预设周期内;
若是,则判定该心跳数据正常;
若否,则判定该心跳数据不正常。
4.根据权利要求3所述节点仲裁方法,其特征在于,所述判断每个所述网络故障节点写入所述仲裁盘的所述心跳数据是否正常的过程,还包括:
当任一所述网络故障节点写入所述仲裁盘的所述心跳数据的时间戳与当前时刻的时间差超过第一预设时间,则判定该网络故障节点离开所述网络。
5.根据权利要求1所述节点仲裁方法,其特征在于,还包括:
若所述领导者与自身之间网络不通,则将自身的状态设为不可用。
6.根据权利要求1所述节点仲裁方法,其特征在于,所述ETCD系统包括两个所述ETCD节点。
7.根据权利要求1所述节点仲裁方法,其特征在于,所述按照预设周期将自身的心跳数据写入所述仲裁盘中的过程,包括:
根据所述仲裁盘中位置分配区域存储的所述ETCD节点的slot号与slot数据区域的对应关系,将自身的心跳数据写入对应的所述slot数据区域。
8.根据权利要求1至7任一项所述节点仲裁方法,其特征在于,所述判断是否存在网络故障节点的过程,包括:
由自身通过所述网络向其他所述ETCD节点发送通讯请求,并判断第二预设时间内是否收到所述通讯请求对应的通讯响应;
若是,则判定对应的所述ETCD节点不是所述网络故障节点;
若否,则判定对应的所述ETCD节点为所述网络故障节点。
9.一种节点仲裁系统,其特征在于,应用于ETCD系统的每个ETCD节点,所述ETCD系统包括多个所述ETCD节点和一个仲裁盘,所述仲裁盘分别与所有所述ETCD节点连接,所有所述ETCD节点均通过网络连接,该节点仲裁系统包括:
写入模块,用于按照预设周期将自身的心跳数据写入所述仲裁盘中;
第一判断模块,用于判断是否存在网络故障节点,所述网络故障节点具体为无法通过所述网络与自身通信的其他所述ETCD节点;若存在所述网络故障节点,则触发第二判断模块;
所述第二判断模块,用于判断每个所述网络故障节点写入所述仲裁盘的所述心跳数据是否正常;若是,则判定该网络故障节点与自身之间网络不通,按照默认规则在所有所述ETCD节点中确定领导者;若否,则判定该网络故障节点发生故障,并按照默认规则在未发生故障的所有所述ETCD节点中确定所述领导者。
10.一种ETCD系统,其特征在于,包括多个ETCD节点和一个仲裁盘,所有所述ETCD节点均通过网络连接,每个所述ETCD节点均与所述仲裁盘连接,每个所述ETCD节点用于执行如权利要求1至8任一项所述节点仲裁方法。
CN202111666925.6A 2021-12-30 2021-12-30 一种etcd系统、节点仲裁方法及系统 Active CN114461141B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111666925.6A CN114461141B (zh) 2021-12-30 2021-12-30 一种etcd系统、节点仲裁方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111666925.6A CN114461141B (zh) 2021-12-30 2021-12-30 一种etcd系统、节点仲裁方法及系统

Publications (2)

Publication Number Publication Date
CN114461141A true CN114461141A (zh) 2022-05-10
CN114461141B CN114461141B (zh) 2023-08-18

Family

ID=81407652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111666925.6A Active CN114461141B (zh) 2021-12-30 2021-12-30 一种etcd系统、节点仲裁方法及系统

Country Status (1)

Country Link
CN (1) CN114461141B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389551B1 (en) * 1998-12-17 2002-05-14 Steeleye Technology, Inc. Method of preventing false or unnecessary failovers in a high availability cluster by using a quorum service
CN102402395A (zh) * 2010-09-16 2012-04-04 上海中标软件有限公司 基于仲裁磁盘的高可用系统不间断运行方法
CN103763155A (zh) * 2014-01-24 2014-04-30 国家电网公司 分布式云存储系统多服务心跳监测方法
CN105934929A (zh) * 2014-12-31 2016-09-07 华为技术有限公司 一种集群脑裂后仲裁处理方法、仲裁存储装置以及系统
CN106878382A (zh) * 2016-12-29 2017-06-20 北京华为数字技术有限公司 一种分布式仲裁集群中动态改变集群规模的方法及装置
CN112468596A (zh) * 2020-12-02 2021-03-09 苏州浪潮智能科技有限公司 一种集群仲裁方法、装置、电子设备及可读存储介质
CN212785387U (zh) * 2020-05-29 2021-03-23 深圳市瑞驰信息技术有限公司 一种低成本的多集群仲裁系统
CN113595836A (zh) * 2021-09-27 2021-11-02 云宏信息科技股份有限公司 一种高可用集群的心跳检测方法、存储介质和计算节点

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389551B1 (en) * 1998-12-17 2002-05-14 Steeleye Technology, Inc. Method of preventing false or unnecessary failovers in a high availability cluster by using a quorum service
CN102402395A (zh) * 2010-09-16 2012-04-04 上海中标软件有限公司 基于仲裁磁盘的高可用系统不间断运行方法
CN103763155A (zh) * 2014-01-24 2014-04-30 国家电网公司 分布式云存储系统多服务心跳监测方法
CN105934929A (zh) * 2014-12-31 2016-09-07 华为技术有限公司 一种集群脑裂后仲裁处理方法、仲裁存储装置以及系统
CN106878382A (zh) * 2016-12-29 2017-06-20 北京华为数字技术有限公司 一种分布式仲裁集群中动态改变集群规模的方法及装置
CN212785387U (zh) * 2020-05-29 2021-03-23 深圳市瑞驰信息技术有限公司 一种低成本的多集群仲裁系统
CN112468596A (zh) * 2020-12-02 2021-03-09 苏州浪潮智能科技有限公司 一种集群仲裁方法、装置、电子设备及可读存储介质
CN113595836A (zh) * 2021-09-27 2021-11-02 云宏信息科技股份有限公司 一种高可用集群的心跳检测方法、存储介质和计算节点

Also Published As

Publication number Publication date
CN114461141B (zh) 2023-08-18

Similar Documents

Publication Publication Date Title
US11320991B2 (en) Identifying sub-health object storage devices in a data storage system
US8055735B2 (en) Method and system for forming a cluster of networked nodes
EP3518110B1 (en) Designation of a standby node
CN111880751B (zh) 一种硬盘迁移方法、分布式存储集群系统和存储介质
CN106484565B (zh) 多数据中心间的数据同步方法及相关设备
WO2020248507A1 (zh) 基于容器云的系统资源监控方法及相关设备
CN106878473A (zh) 一种消息处理方法、服务器集群及系统
CN111857592B (zh) 基于对象存储系统的数据存储方法及装置、电子设备
CN109446169A (zh) 一种双控磁盘阵列共享文件系统
CN109639773A (zh) 一种动态构建的分布式数据集群控制系统及其方法
CN114253743A (zh) 消息同步方法、装置、节点及可读存储介质
CN115150419B (zh) 一种混合云对象存储的配置和访问方法及系统
CN112866408A (zh) 一种集群中业务切换方法、装置、设备及存储介质
CN110069365A (zh) 管理数据库的方法和相应的装置、计算机可读存储介质
CN110209526A (zh) 一种存储层同步系统、及存储介质
US20050234919A1 (en) Cluster system and an error recovery method thereof
CN114020279A (zh) 应用软件分布式部署方法、系统、终端及存储介质
CN114461141A (zh) 一种etcd系统、节点仲裁方法及系统
CN116455920A (zh) 一种数据存储方法、系统、计算机设备及存储介质
CN112055052B (zh) 物联网系统的服务探活及信息分发方法、系统和介质
CN114124903A (zh) 一种虚ip地址管理方法及装置
CN114500289A (zh) 控制平面恢复方法、装置、控制节点及存储介质
CN115687250A (zh) 一种存储方法、设备、系统和计算机存储介质
CN115328880B (zh) 分布式文件在线恢复方法、系统、计算机设备及存储介质
CN118503022B (zh) Redis Cluster集群数据中心故障切换隔离方法及系统

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