CN115421971A - Etcd灾备故障恢复的方法及应用 - Google Patents
Etcd灾备故障恢复的方法及应用 Download PDFInfo
- Publication number
- CN115421971A CN115421971A CN202210982857.2A CN202210982857A CN115421971A CN 115421971 A CN115421971 A CN 115421971A CN 202210982857 A CN202210982857 A CN 202210982857A CN 115421971 A CN115421971 A CN 115421971A
- Authority
- CN
- China
- Prior art keywords
- etcd
- cluster
- data
- main
- etcd cluster
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1489—Generic software techniques for error detection or fault masking through recovery blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种ETCD灾备故障恢复的方法及应用,该方法包括以下步骤:通过主节点的ETCD代理模块决策出主ETCD集群和备ETCD集群;分别通过全量同步和增量同步将所述主ETCD集群中的数据同步至所述备ETCD集群中;以及在所述主ETCD集群故障时,从所述备ETCD集群中重新选举出新主ETCD集群,并将所述新主ETCD集群中的数据同步至新备ETCD集群中。该方法能够通过在ETCD中添加主节点控制对应的主备ETCD集群,并将主备ETCD集群的数据副本备份至本地,在主备ETCD集群进行数据同步或故障恢复时,通过本地数据副本进行数据的同步或恢复,进而减少ETCD的故障恢复时间,适用于跨数据中心的ETCD热备以及故障恢复。
Description
技术领域
本发明是关于云计算领域,特别是关于一种ETCD灾备故障恢复的方法及应用。
背景技术
ETCD是CoreOS基于Raft协议开发的分布式key-value存储,可用于服务发现、共享配置以及一致性保障(如数据库选主、分布式锁等)。在分布式系统中,ETCD提供了数据TTL失效、数据改变监视、多值、目录监听、分布式锁原子操作等功能,可以方便的跟踪并管理集群节点的状态。
ETCD作为一种key-value的分布式存储,在云原生领域发挥着重要的作用。常用的灾备方法是通过定期的快照,将快照备份到外部存储中,定期快照仍然存在上一个快照点到故障发生之间数据丢失的问题,通过快照备份的数据来恢复耗时较长,故障恢复时间较长。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本发明的目的在于提供一种ETCD灾备故障恢复的方法及应用,解决现有技术中ETCD灾难故障时无法快速恢复的问题。
为实现上述目的,本发明的实施例提供了一种ETCD灾备故障恢复的方法。
在本发明的一个或多个实施方式中,所述方法包括:通过主节点的ETCD代理模块决策出主ETCD集群和备ETCD集群;分别通过全量同步和增量同步将所述主ETCD集群中的数据同步至所述备ETCD集群中;以及在所述主ETCD集群故障时,从所述备ETCD集群中重新选举出新主ETCD集群,并将所述新主ETCD集群中的数据同步至新备ETCD集群中。
在本发明的一个或多个实施方式中,所述方法还包括:判断候选节点对应的ETCD状态是否健康;若是,通过RAFT选举从所述候选节点中选举出主节点。
在本发明的一个或多个实施方式中,所述分别通过全量同步和增量同步将所述主ETCD集群中的数据同步至所述备ETCD集群中,包括:通过调用API服务的List接口分别获取所述主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集群是否已同步所述故障的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状态是否健康;若是,通过RAFT选举从所述候选节点中选举出主节点。
在本发明的一个或多个实施方式中,所述同步模块还用于:通过调用API服务的List接口分别获取所述主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的调用请求切换到所述新的主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灾备故障恢复的方法的数据同步流程图;
图7是根据本发明一实施方式的ETCD灾备故障恢复的装置的结构图;
图8是根据本发明一实施方式的ETCD灾备故障恢复的计算设备的硬件结构图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
以下结合附图,详细说明本发明各实施例提供的技术方案。
实施例1
如图1至图6所示,介绍本发明的一个实施例中ETCD灾备故障恢复的方法,该方法包括如下步骤。
在步骤S101中,通过主节点的ETCD代理模块决策出主ETCD集群和备ETCD集群。
如图2所示,ETCD中存在3个节点A、B、C,每个节点中均有一个ETCD代理模块(ETCD-proxy),3个ETCD代理模块动态探测主ETCD集群以及备ETCD集群,ETCD代理模块还具备选主以及故障的时候主备切换的能力。在本实施例中,对外暴露VIP(负载均衡器,对外提供VIP服务,将ETCD的访问请求发送到后端的ETCD代理模块上),ETCD的客户端可以通过VIP来访问ETCD。在ETCD代理模块根据Raft选举出主节点后,由主节点确定主ETCD集群和备ETCD集群,此时所有的读写请求均由主ETCD集群处理,主ETCD集群的数据变化将会实时同步到备ETCD集群主节点。
举例来说,此时ETCD中存在candidate-A、candidate-B、follow-C三个节点,基于Raft共识算法,通过投票的方式选举出来主节点、以及跟随节点。在本实施例中,candidate-A、candidate-B是候选节点,follow-C是跟随节点,Raft共识算法从候选节点中选举出主节点,candidate-A关联ETCD-A,candidate-B关联ETCD-B。因此,当ETCD-A状态正常,candidate-A的状态为健康状态时,candidate-A作为候选人参加选举;当ETCD-B状态正常,candidate-B的状态为健康状态时,candidate-B作为候选人参加选举。由于follow-C是跟随节点并不会作为候选人参与选主,在选举时跟随节点主要是用于投票。当candidate-A、candidate-B、follower-C经过投票,只有获得2票的节点candidate-A才能成为主节点变为leader-A,其他的节点均为跟随节点follow-B、follow-C,主节点与跟随节点之间会通过心跳保持的方式,让集群中的其他节点知道主节点的健康状态。在节点选举完成后,主节点相关联的ETCD将会作为主ETCD集群,另外一个ETCD集群将会作为备ETCD集群。
如图4所示,API服务器用于对外暴露服务接口,提供ETCD转发的能力以及管理员可以通过API服务器获取系统运行的情况以及监控指标。Raft共识模块通过Raft协议使得部署在三个节点上的代理模块能够达成一致性的共识,保证三个节点上的ETCD代理模块数据的一致性。三个节点上的ETCD代理模块通过选主得到一个主节点,主节点确定主ETCD集群以及备ETCD集群,并将信息同步到其他的节点。Controller是ETCD代理模块的控制模块,负责选主以及控制备份,三个节点的ETCD代理模块的controller同时只有一个工作,其他节点的controller模块只同步数据。Storage是系统的存储,用于存储集群的元数据。sync-mirror是主备ETCD集群的数据的同步模块probe用于探测主备ETCD集群的健康状态,ETCD集群不健康上报给controller,触发切主流程。Proxy是ETCD请求转发模块,将ETCD的请求转发给当前的主ETCD集群。
在步骤S102中,分别通过全量同步和增量同步将主ETCD集群中的数据同步至备ETCD集群中。
在主备ETCD集群进行数据同步时,主节点将主备ETCD集群信息写入到Raft共识模块中,并在其他跟随节点间进行传播,其他跟随节点从本地获取到当前主节点上的ETCD配置数据,配置本地的ETCD代理模块,以将ETCD服务的请求转发到主ETCD集群进行处理。主节点按照预设周期检查主ETCD集群的状态,并且会将主备ETCD集群的同步情况更新到集群的配置数据里面,集群的配置数据在各个节点进行传播,通过Raft可以保证一致性。
集群的配置数据包括以下内容:
其中,active_ETCD_member以及back_ETCD_member分别为主ETCD集群和备ETCD集群的节点信息。active_ETCD_rv、back_ETCD_rv分别为主ETCD集群和备ETCD集群最新的数据副本。active_ETCD_mirror_rv、back_ETCD_mirror_rv分别为备份过程中对应的ETCD集群和备ETCD集群的数据副本。update_time为配置数据的更新时间,如果超过ttl未被更新则主备ETCD数据热备处于暂停状态。
ETCD基于mvcc进行数据管理,为了保障数据同步的效率,基于ETCD的数据副本来进行实时数据同步,ETCD中数据副本会随着整个ETCD中的数据变化自增,可以用来表示某个时刻的ETCD的数据副本,可以通过ETCD的数据副本获取到某个时刻的数据,因此在本实施例中,基于数据副本实现主ETCD集群和备ETCD集群的数据同步。
具体的,首先判断ETCD代理模块中是否存在第一变量,第一变量标记了已经完成数据同步的主ETCD集群的数据副本,如果ETCD代理模块中不存在第一变量,则备ETCD集群未从主ETCD集群同步数据,需要先进行全量数据同步。
其次,判断当前主ETCD集群中是否存在第一变量,由于ETCD中的数据副本会定期被压缩掉,如果主ETCD集群中的第一变量不存在,则无法进行增量同步,也需要进行全量数据同步。
全量数据同步:获取当前主ETCD集群最新的数据副本,根据最新的数据副本获取主ETCD集群的全量数据,根据预设范围对主ETCD集群的全量数据进行划分,并与当前备ETCD集群中的数据进行比较。若主ETCD集群和备ETCD集群的数据存在差异,则使用主ETCD集群中的数据进行同步,直到完成初始的全量数据同步,并更新第一变量为最新的数据副本。
最后,根据数据变化事件的类型执行对应的流程,数据变化事件的类型包括:删除数据、更新数据以及新增数据。在处理完数据变化事件后,更新本地的第一变量,并循环处理新的事件以及数据处理。
通过上述流程可以保障主备ETCD集群数据的一致性,备份过程中出现网络中断等可以支持基于数据副本进行增量数据同步。
在步骤S103中,在主ETCD集群故障时,从备ETCD集群中重新选举出新主ETCD集群,并将新主ETCD集群中的数据同步至新备ETCD集群中。
当主ETCD集群故障后,ETCD代理模块会自动完成切主,切主完成后,所有的ETCD读写请求则由新的主ETCD集群来完成。在原主ETCD集群故障恢复后,原主ETCD集群会成为新的备ETCD集群,从主ETCD集群同步数据。主ETCD集群和备ETCD集群可以部署在不同的可用域上,实现不同可用域的ETCD灾备。
具体的,在ETCD集群故障的时候,与之关联的节点将会设置为不健康状态,如果该节点处于主节点状态时,则会重新进入投票选主的流程,一直到新的主节点产生。当主节点不存在的时候,为了保障数据的一致性,将会取消主节点上的ETCD转发规则,不会将对于ETCD的读写请求分发到后端的ETCD;同时当集群缺少主节点的时候,主备之间的同步链路将会断开。当集群缺失对象之后,或者集群成员间出现网络中断的时候,则会让集群丢失主,至少存在2个节点确定主备ETCD集群。
在基于Raft共识算法重新选主后,选举出的主节点重新确定主备ETCD集群。首先基于配置文件中记录的信息,判断当前主ETCD集群是否已同步原主ETCD集群的全部数据,若否,则该新主ETCD集群不能工作,会导致数据的不一致。只有当新主ETCD集群中的数据副本与配置中记录的数据副本一致的时候,才能提升新主ETCD集群为真正的新主ETCD集群,并更新配置数据。
在新主ETCD集群确定后,则会开启主备ETCD集群之间的数据同步,配置ETCD代理模块,ETCD代理模块将ETCD的调用请求切换到新主ETCD集群。
主备ETCD集群之间数据同步存在故障的时候,上报报警,进行干预,则不会影响到主ETCD集群的读写。如果不及时恢复,则会导致主备ETCD集群数据不一致,主ETCD集群故障的时候,无法切换到备ETCD集群;主备ETCD集群恢复链路恢复之后,则支持断点续传,只会增量备份与之前备份任务断开的点继续备份即可。
如图7所示,介绍根据本发明具体实施方式的ETCD灾备故障恢复的装置。
在本发明的实施方式中,ETCD灾备故障恢复的装置包括选举模块701、同步模块702和故障切换模块703。
选举模块701,用于通过主节点的ETCD代理模块决策出主ETCD集群和备ETCD集群。
同步模块702,用于分别通过全量同步和增量同步将主ETCD集群中的数据同步至备ETCD集群中。
故障切换模块703,用于在主ETCD集群故障时,从备ETCD集群中重新选举出新主ETCD集群,并将新主ETCD集群中的数据同步至新备ETCD集群中。
选举模块701还用于:判断候选节点对应的ETCD状态是否健康;若是,通过RAFT选举从候选节点中选举出主节点。
同步模块702还用于:通过调用API服务的List接口分别获取主ETCD集群和备ETCD集群的全量数据,并比较主ETCD集群和备ETCD集群的全量数据是否一致;若是,监听主ETCD集群中的数据,并在主ETCD集群中数据发生变化时,将主ETCD集群中变化的数据同步至备ETCD集群;以及配置ETCD代理模块,以将ETCD客户端的服务请求切换到主ETCD集群上。
同步模块702还用于:主节点将主ETCD集群和备ETCD集群的配置数据写入至选举模块701中,并将配置数据同步至所有的跟随节点;根据配置数据配置ETCD代理模块,并将从客户端接收到的ETCD服务请求转发至主ETCD集群进行处理;以及主节点按照预设周期检查主ETCD集群的状态,并将主备同步情况更新至配置数据中;其中,配置数据包括:主ETCD集群的节点信息、备ETCD集群的节点信息、主ETCD集群的最新数据副本、备ETCD集群的最新数据副本以及配置数据的更新时间。
故障切换模块703还用于:判断故障的ETCD集群关联的节点是否为主节点;若是,将故障的ETCD集群关联的节点的状态设置为不健康,并重新选举主节点;根据配置数据判断新的主节点决策的新主ETCD集群是否已同步故障的ETCD集群的全部数据;若是,更新配置数据,并将新主ETCD集群的数据同步至新的备ETCD集群,并配置ETCD代理模块,以供ETCD代理模块将ETCD的调用请求切换到新的主ETCD集群。
同步模块702还用于:判断ETCD代理模块中是否存在第一变量,其中,第一变量用于标记已经完成数据同步的主ETCD集群的数据副本;若是,判断主ETCD集群中是否存在第一变量;若是,执行数据变化事件,并更新第一变量,其中,数据变化事件包括:删除数据、更新数据以及新增数据。
同步模块702还用于:在ETCD代理模块或主ETCD集群不存在第一变量时,获取主ETCD集群的最新数据副本,根据最新数据副本获取主ETCD集群的全量数据;根据预设范围划分全量数据,并比较划分后的全量数据与备ETCD集群中的数据是否一致;若否,使用主ETCD集群中的数据进行同步,并将第一变量更新为最新数据副本。
图8示出了根据本说明书的实施例的用于ETCD灾备故障恢复的计算设备80的硬件结构图。如图8所示,计算设备80可以包括至少一个处理器801、存储器802(例如非易失性存储器)、内存803和通信接口804,并且至少一个处理器801、存储器802、内存803和通信接口804经由总线805连接在一起。至少一个处理器801执行在存储器802中存储或编码的至少一个计算机可读指令。
应该理解,在存储器802中存储的计算机可执行指令当执行时使得至少一个处理器801进行本说明书的各个实施例中以上结合图1-8描述的各种操作和功能。
在本说明书的实施例中,计算设备80可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。
根据一个实施例,提供了一种比如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-8描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
根据本发明实施方式的ETCD灾备故障恢复的方法及应用,其能够通过在ETCD中添加主节点控制对应的主备ETCD集群,并将主备ETCD集群的数据副本备份至本地,在主备ETCD集群进行数据同步或故障恢复时,通过本地数据副本进行数据的同步或恢复,进而减少ETCD的故障恢复时间,适用于跨数据中心的ETCD热备以及故障恢复。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
Claims (10)
1.一种ETCD灾备故障恢复的方法,其特征在于,所述方法包括:
通过主节点的ETCD代理模块决策出主ETCD集群和备ETCD集群;
分别通过全量同步和增量同步将所述主ETCD集群中的数据同步至所述备ETCD集群中;以及
在所述主ETCD集群故障时,从所述备ETCD集群中重新选举出新主ETCD集群,并将所述新主ETCD集群中的数据同步至新备ETCD集群中。
2.如权利要求1所述的ETCD灾备故障恢复的方法,其特征在于,所述方法还包括:
判断候选节点对应的ETCD状态是否健康;若是,
通过RAFT选举从所述候选节点中选举出主节点。
3.如权利要求1所述的ETCD灾备故障恢复的方法,其特征在于,所述分别通过全量同步和增量同步将所述主ETCD集群中的数据同步至所述备ETCD集群中,包括:
通过调用API服务的List接口分别获取所述主ETCD集群和所述备ETCD集群的全量数据,并比较所述主ETCD集群和所述备ETCD集群的全量数据是否一致;若是,
监听所述主ETCD集群中的数据,并在所述主ETCD集群中数据发生变化时,将所述主ETCD集群中变化的数据同步至所述备ETCD集群;以及
配置所述ETCD代理模块,以将ETCD客户端的服务请求切换到所述主ETCD集群上。
4.如权利要求3所述的ETCD灾备故障恢复的方法,其特征在于,所述配置所述ETCD代理模块,包括:
所述主节点将所述主ETCD集群和所述备ETCD集群的配置数据写入至选举模块中,并将所述配置数据同步至所有的跟随节点;
根据所述配置数据配置所述ETCD代理模块,并将从客户端接收到的ETCD服务请求转发至所述主ETCD集群进行处理;以及
所述主节点按照预设周期检查所述主ETCD集群的状态,并将主备同步情况更新至所述配置数据中;
其中,所述配置数据包括:主ETCD集群的节点信息、备ETCD集群的节点信息、主ETCD集群的最新数据副本、备ETCD集群的最新数据副本以及配置数据的更新时间。
5.如权利要求1所述的ETCD灾备故障恢复的方法,其特征在于,在所述主ETCD集群故障时,从所述备ETCD集群中重新选举出新主ETCD集群,并将所述新主ETCD集群中的数据同步至新备ETCD集群中,包括:
判断故障的ETCD集群关联的节点是否为主节点;若是,
将所述故障的ETCD集群关联的节点的状态设置为不健康,并重新选举主节点;
根据配置数据判断新的主节点决策的新主ETCD集群是否已同步所述故障的ETCD集群的全部数据;若是,
更新所述配置数据,并将所述新主ETCD集群的数据同步至新的备ETCD集群,并配置ETCD代理模块,以供所述ETCD代理模块将ETCD的调用请求切换到所述新的主ETCD集群。
6.如权利要求1所述的ETCD灾备故障恢复的方法,其特征在于,所述方法还包括:
判断所述ETCD代理模块中是否存在第一变量,其中,所述第一变量用于标记已经完成数据同步的主ETCD集群的数据副本;若是,
判断所述主ETCD集群中是否存在第一变量;若是,
执行数据变化事件,并更新所述第一变量,其中,所述数据变化事件包括:删除数据、更新数据以及新增数据。
7.如权利要求6所述的ETCD灾备故障恢复的方法,其特征在于,所述方法还包括:
在所述ETCD代理模块或所述主ETCD集群不存在第一变量时,获取所述主ETCD集群的最新数据副本,根据所述最新数据副本获取所述主ETCD集群的全量数据;
根据预设范围划分所述全量数据,并比较划分后的全量数据与所述备ETCD集群中的数据是否一致;若否,
使用所述主ETCD集群中的数据进行同步,并将所述第一变量更新为最新数据副本。
8.一种ETCD灾备故障恢复的装置,其特征在于,所述装置包括:
选举模块,用于通过主节点的ETCD代理模块决策出主ETCD集群和备ETCD集群;
同步模块,用于分别通过全量同步和增量同步将所述主ETCD集群中的数据同步至所述备ETCD集群中;以及
故障切换模块,用于在所述主ETCD集群故障时,从所述备ETCD集群中重新选举出新主ETCD集群,并将所述新主ETCD集群中的数据同步至新备ETCD集群中。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1至7中任一项所述的ETCD灾备故障恢复的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的ETCD灾备故障恢复的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210982857.2A CN115421971B (zh) | 2022-08-16 | 2022-08-16 | Etcd灾备故障恢复的方法及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210982857.2A CN115421971B (zh) | 2022-08-16 | 2022-08-16 | Etcd灾备故障恢复的方法及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115421971A true CN115421971A (zh) | 2022-12-02 |
CN115421971B CN115421971B (zh) | 2023-07-28 |
Family
ID=84198071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210982857.2A Active CN115421971B (zh) | 2022-08-16 | 2022-08-16 | Etcd灾备故障恢复的方法及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115421971B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750379A (zh) * | 2019-10-28 | 2020-02-04 | 无锡华云数据技术服务有限公司 | 一种etcd集群恢复方法、系统、设备及计算机介质 |
CN111371599A (zh) * | 2020-02-26 | 2020-07-03 | 山东汇贸电子口岸有限公司 | 一种基于etcd的集群容灾管理系统 |
CN112069154A (zh) * | 2020-09-18 | 2020-12-11 | 中国工商银行股份有限公司 | etcd分布式数据库自动运维方法及相关装置 |
CN113407380A (zh) * | 2021-07-14 | 2021-09-17 | 安超云软件有限公司 | 跨集群灾备快速恢复的方法及装置、电子设备和存储介质 |
CN113438111A (zh) * | 2021-06-23 | 2021-09-24 | 华云数据控股集团有限公司 | 基于Raft分布式恢复RabbitMQ网络分区的方法及应用 |
KR102328384B1 (ko) * | 2020-07-23 | 2021-11-18 | 아콘소프트 주식회사 | 관리형 클러스터 자동 프로비저닝 엔진 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체 |
CN113949691A (zh) * | 2021-10-15 | 2022-01-18 | 湖南麒麟信安科技股份有限公司 | 基于etcd的虚拟网络地址高可用实现方法及系统 |
CN113992681A (zh) * | 2021-09-18 | 2022-01-28 | 上海金仕达软件科技有限公司 | 一种保证分布式系统中数据强一致性的方法 |
CN114390052A (zh) * | 2021-12-30 | 2022-04-22 | 武汉达梦数据技术有限公司 | 一种基于vrrp协议实现etcd双节点高可用方法和装置 |
CN114764380A (zh) * | 2021-01-15 | 2022-07-19 | 国电南瑞科技股份有限公司 | 一种基于etcd的分布式集群控制方法和装置 |
-
2022
- 2022-08-16 CN CN202210982857.2A patent/CN115421971B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750379A (zh) * | 2019-10-28 | 2020-02-04 | 无锡华云数据技术服务有限公司 | 一种etcd集群恢复方法、系统、设备及计算机介质 |
CN111371599A (zh) * | 2020-02-26 | 2020-07-03 | 山东汇贸电子口岸有限公司 | 一种基于etcd的集群容灾管理系统 |
KR102328384B1 (ko) * | 2020-07-23 | 2021-11-18 | 아콘소프트 주식회사 | 관리형 클러스터 자동 프로비저닝 엔진 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체 |
CN112069154A (zh) * | 2020-09-18 | 2020-12-11 | 中国工商银行股份有限公司 | etcd分布式数据库自动运维方法及相关装置 |
CN114764380A (zh) * | 2021-01-15 | 2022-07-19 | 国电南瑞科技股份有限公司 | 一种基于etcd的分布式集群控制方法和装置 |
CN113438111A (zh) * | 2021-06-23 | 2021-09-24 | 华云数据控股集团有限公司 | 基于Raft分布式恢复RabbitMQ网络分区的方法及应用 |
CN113407380A (zh) * | 2021-07-14 | 2021-09-17 | 安超云软件有限公司 | 跨集群灾备快速恢复的方法及装置、电子设备和存储介质 |
CN113992681A (zh) * | 2021-09-18 | 2022-01-28 | 上海金仕达软件科技有限公司 | 一种保证分布式系统中数据强一致性的方法 |
CN113949691A (zh) * | 2021-10-15 | 2022-01-18 | 湖南麒麟信安科技股份有限公司 | 基于etcd的虚拟网络地址高可用实现方法及系统 |
CN114390052A (zh) * | 2021-12-30 | 2022-04-22 | 武汉达梦数据技术有限公司 | 一种基于vrrp协议实现etcd双节点高可用方法和装置 |
Non-Patent Citations (4)
Title |
---|
360技术: "一种etcd容灾备份的设计与实现", pages 1 - 5, Retrieved from the Internet <URL:https://blog.51cto.com/u_15293891/3267108> * |
张春辉: "基于Kubernetes的高可用容器云的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 139 - 401 * |
技术分享: "etcd集群备份和数据恢复", pages 1 - 3, Retrieved from the Internet <URL:https://www.vinchin.com/blog/vinchin-technique-share-details.html?id=393> * |
腾讯云原生: "斗鱼直播云原生实践之注册中心篇", pages 1 - 14, Retrieved from the Internet <URL:https://www.cnblogs.com/tencent-cloud-native/p/15351484.html> * |
Also Published As
Publication number | Publication date |
---|---|
CN115421971B (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3694148B1 (en) | Configuration modification method for storage cluster, storage cluster and computer system | |
CN107291787B (zh) | 主备数据库切换方法和装置 | |
CN107870829B (zh) | 一种分布式数据恢复方法、服务器、相关设备及系统 | |
US7032089B1 (en) | Replica synchronization using copy-on-read technique | |
JP4477950B2 (ja) | リモートコピーシステム及び記憶装置システム | |
EP3361383B1 (en) | Modifying membership of replication groups via journal operations | |
CN106062717A (zh) | 一种分布式存储复制系统和方法 | |
EP2434729A2 (en) | Method for providing access to data items from a distributed storage system | |
JP5352115B2 (ja) | ストレージシステム及びその監視条件変更方法 | |
US20070220223A1 (en) | Remote copying of updates to primary and secondary storage locations subject to a copy relationship | |
US20170168756A1 (en) | Storage transactions | |
JP5286212B2 (ja) | ストレージクラスタ環境でのリモートコピー制御方法及びシステム | |
CN114138732A (zh) | 一种数据处理方法及装置 | |
JP6511739B2 (ja) | 冗長システムおよび冗長化方法 | |
CN113326251B (zh) | 数据管理方法、系统、设备和存储介质 | |
CN113986450A (zh) | 一种虚拟机备份方法及装置 | |
WO2015196692A1 (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
WO2023151443A1 (zh) | 同步主备数据库 | |
CN111984474A (zh) | 一种双控集群故障恢复的方法、系统及设备 | |
CN115421971B (zh) | Etcd灾备故障恢复的方法及应用 | |
US20210240351A1 (en) | Remote copy system and remote copy management method | |
JP2004272318A (ja) | 系切り替えシステムおよびその処理方法並びにその処理プログラム | |
US9582384B2 (en) | Method and system for data replication | |
CN113297134B (zh) | 数据处理系统及数据处理方法、装置、电子设备 | |
WO2020027840A1 (en) | Distributed recovery of server information |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230705 Address after: Room 1602, No. 6, Financial Third Street, Wuxi Economic Development Zone, Jiangsu Province, 214,000 Applicant after: Anchao cloud Software Co.,Ltd. Address before: Room 1601, no.6, financial Third Street, Wuxi Economic Development Zone, Jiangsu Province, 214000 Applicant before: Jiangsu Anchao cloud Software Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |