CN113515408A - 一种数据容灾方法、装置、设备及介质 - Google Patents

一种数据容灾方法、装置、设备及介质 Download PDF

Info

Publication number
CN113515408A
CN113515408A CN202010279154.4A CN202010279154A CN113515408A CN 113515408 A CN113515408 A CN 113515408A CN 202010279154 A CN202010279154 A CN 202010279154A CN 113515408 A CN113515408 A CN 113515408A
Authority
CN
China
Prior art keywords
data center
cluster
nodes
data
node
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.)
Pending
Application number
CN202010279154.4A
Other languages
English (en)
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010279154.4A priority Critical patent/CN113515408A/zh
Publication of CN113515408A publication Critical patent/CN113515408A/zh
Pending legal-status Critical Current

Links

Images

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments

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

本申请提供了一种数据容灾方法,应用于第一数据中心和第二数据中心,第一数据中心部署有M个节点,第二数据中心部署有N个节点,M为偶数,N为奇数,M大于N,其中,第一数据中心的M个节点和第二数据中心的N个节点形成第一集群,第二数据中心获取第一数据中心的工作状态,当第一数据中心故障时,第二数据中心的节点启动第二集群以通过第二集群的领导节点提供服务,该第二集群的领导节点为N个节点中的一个节点,用于维护数据在第二集群中N个节点之间的一致性。如此,解决了相关技术中第一数据中心故障时,第一集群可能无法对外提供服务,难以满足高可用性需求的问题。

Description

一种数据容灾方法、装置、设备及介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据容灾方法、装置、设备以及计算机可读存储介质。
背景技术
随着用户对数据安全性的要求越来越高,越来越多的应用采用集群方式进行数据存储。例如,采用ETCD集群进行数据存储。ETCD集群是一个分布式***,一般包括多个节点。多个节点之间相互通信构成整体对外服务。其中,每个节点存储有完整的数据,而且节点之间采用一致性协议如raft协议保证每个节点维护的数据是一致的。
上述分布式***如果部署在单个数据中心,则可能存在数据中心的基础设施如水、电、网络等发生故障,导致无法对外提供服务的问题。为此,业界常常将分布式***部署在两个独立的数据中心,以提高可用性。
一种典型的部署方式是将两个节点部署于一个数据中心,一个节点部署于另一个数据中心,从而形成三节点集群。当部署有两个节点的数据中心故障时,集群可能无法对外提供服务,难以满足高可用性需求。
发明内容
本申请提供了一种数据容灾方法,该方法解决了双数据中心架构的集群在部署有较多节点的数据中心故障时,无法对外提供服务的问题,满足了高可用性需求。本申请还提供了该数据容灾方法对应的装置、设备、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种数据容灾方法。该方法应用于第一数据中心和第二数据中心。其中,第一数据中心部署有M个节点,第二数据中心部署有N个节点。M为偶数,N为奇数,M大于N。所述第一数据中心的M个节点和所述第二数据中心的N个节点形成第一集群,该第一集群基于第一集群中的领导节点提供服务。
第二数据中心可以获取第一数据中心的工作状态,当第一数据中心的工作状态指示第一数据中心故障时,第二数据中心启动第二集群(第一集群的子集群)以通过第二集群的领导节点提供服务。该第二集群的领导节点为N个节点中的一个节点,第二集群的领导节点用于维护数据在所述第二集群中N个节点之间的一致性。
如此,第一数据中心故障时,应用仍能通过第二集群对外提供服务,解决了相关技术中由于只剩一个节点无法选出领导节点导致集群无法对外提供服务的问题。此外,第二数据中心故障时,第一集群中仍有过半的节点工作,能够正常对外提供服务。也即第一数据中心和第二数据中心中的任一个故障时,均可以对外提供服务,满足了高可用性的要求。
其中,第二集群可以预先创建,然后在第一数据中心故障时激活该第二集群。在一些可能的实现方式中,第二数据中心可以在第一数据中心故障时创建第二集群,然后激活该第二集群。第二集群的创建时间不影响本申请的具体实现。
在一些可能的实现方式中,当所述第一数据中心恢复时,所述第二数据中心可以将所述第一数据中心的节点添加至所述第二集群。如此,可以实现第一数据中心的M个节点和第二数据中心的N个节点之间的数据一致性,进一步提高应用可用性。
在一些可能的实现方式中,第二数据中心可以向仲裁节点发送查询请求,该查询请求用于查询所述第一数据中心的工作状态,然后接收所述仲裁节点发送的查询响应,从而实现从查询响应中获得第一数据中心的工作状态。
在一些可能的实现方式中,第二数据中心从故障中恢复时,第二数据中心还可以从第二数据中心部署的N个节点中确定所述第一集群的领导节点。具体地,第二数据中心可以响应于所述第一数据中心的节点触发的领导节点转移操作,从所述第二数据中心中确定领导节点。也即,第二数据中心正常时,始终以第二数据中心中的节点为领导节点,从而保障第二数据中心故障或者正常时,写入到第二数据中心的节点的数据是完整的。第一数据中心和第二数据中心均可以保存完整的数据,保障了数据一致性。
在一些可能的实现方式中,第一数据中心包括2K个节点,第二数据中心包括2K-1个节点。所述K为正整数。作为一个示例,K可以取值为1或2,对应地,第一集群可以是3节点集群或者7节点集群。第一集群为3节点集群时,所述第一数据中心包括2个节点,所述第二数据中心包括1个节点。第一集群为7节点集群时,所述第一数据中心包括3个节点,所述第二数据中心包括4个节点。如此,可以实现容错能力和性能的均衡。
第二方面,本申请提供了一种数据容灾装置。该装置应用于第一数据中心和第二数据中心。第一数据中心部署有M个节点,第二数据中心部署有N个节点。M为偶数,N为奇数,M大于N。第一数据中心的M个节点和第二数据中心的N个节点形成第一集群,第一集群基于第一集群中的领导节点提供服务。
所述装置包括通信模块和启动模块。其中,通信模块用于获取所述第一数据中心的工作状态,启动模块用于当所述第一数据中心故障时,启动第二集群以通过所述第二集群的领导节点提供服务。所述第二集群的领导节点为所述N个节点中的一个节点,所述第二集群的领导节点用于维护数据在所述第二集群中N个节点之间的一致性。
在一些可能的实现方式中,所述装置还包括:
添加模块,用于当所述第一数据中心恢复时,将所述第一数据中心的节点添加至所述第二集群。
在一些可能的实现方式中,所述通信模块具体用于:
向仲裁节点发送查询请求,所述查询请求用于查询所述第一数据中心的工作状态;
接收所述仲裁节点发送的查询响应,所述查询响应包括所述第一数据中心的工作状态。
在一些可能的实现方式中,所述装置还包括:
确定模块,用于所述第二数据中心从故障中恢复时,从所述第二数据中心中确定所述第一集群的领导节点。
在一些可能的实现方式中,所述第一数据中心包括2K个节点,所述第二数据中心包括2K-1个节点,所述K为正整数。作为一个示例,K可以取值为1或2。K取值为1时,所述第一数据中心包括2个节点,所述第二数据中心包括1个节点,K取值为2时,所述第一数据中心包括4个节点,所述第二数据中心包括3个节点。
第三方面,本申请提供一种设备,所述设备可以是服务器、云服务器等计算机设备。所述设备包括处理器和存储器。所述处理器、所述存储器进行相互的通信。所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行如第一方面或第一方面的任一种实现方式中的数据容灾方法。
第四方面,本申请提供一种计算机可读存储介质。所述计算机可读存储介质中包括指令,所述指令指示执行上述第一方面或第一方面的任一种实现方式所述的数据容灾方法。
第五方面,本申请提供了一种包含指令的计算机程序产品。所述计算机程序产品在设备如计算机设备上运行时,使得设备执行上述第一方面或第一方面的任一种实现方式所述的数据容灾方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种数据容灾方法的***架构图;
图2为本申请实施例提供的一种数据容灾方法的流程图;
图3为本申请实施例提供的一种数据容灾方法的***架构图;
图4为本申请实施例提供的一种数据容灾方法的***架构图;
图5为本申请实施例提供的一种数据容灾装置的结构示意图;
图6为本申请实施例提供的一种设备的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请提供的实施例中的方案进行描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。
为了便于理解本申请的技术方案,下面对本申请涉及的一些技术术语进行介绍。
数据容灾是一种保护数据安全以及提高数据持续可用性的技术。数据容灾通常是通过对数据进行备份,实现保障数据安全以及提高数据持续可用性。根据数据备份方式不同,数据容灾一般可以分为不同的等级。例如将数据备份在本地的磁带机以及将数据备份在异地的数据中心的容灾等级显然是不同的,后者容灾能力明显高于前者。
数据中心(data center)是一种用于传递、加速、展示、计算以及存储数据的基础设施。该基础设施可以理解为提供电源、网络、散热***及其他服务的机房。数据中心中部署有节点,节点是实现数据计算和/或存储的设备,数据中心通过部署在其中的节点实现数据传递、加速、展示、计算以及存储等功能。其中,节点可以是物理设备,例如服务器。当然,节点也可以是逻辑设备,如服务器上的虚拟机(virtual machine,VM)等等。数据中心为节点提供电源以及网络服务,以保障节点能够正常对外提供服务。
考虑到数据安全性和持续可用性,许多应用采用双数据中心架构,防止单个数据中心故障导致无法提供服务。在双数据中心架构下,两个数据中心可以同时接受交易,处理相同数据。当一个数据中心发生故障时,交易可以在另一个数据中心继续进行,无需进行***切换。
其中,数据中心故障时切换到另一个数据中心的关键即在于两个数据中心之间保持数据一致性。两个数据中心一般可以通过建立集群的方式保持数据一致性。为了便于理解,本申请实施例以ETCD集群进行示例说明。
ETCD集群是用于共享配置和服务发现的分布式存储***。ETCD集群使用Raft协议来维护集群内各个节点状态的一致性。Raft协议也称作Raft算法,该算法属于一种共识算法(consensus algorithm)。所谓共识是指即使在部分节点故障、网络延时或者网络分割等情况下,多个节点对某个事情达成一致的看法。一般情况下,ETCD集群中超过一半的节点对某个事情达成一致的看法,则认为该看法是可信的。例如,ETCD集群中包括4K-1个节点,K为正整数时,如果有2K个节点对写入数据达成一致的看法,则ETCD集群中的各节点可以写入数据。即使部分节点由于网络或者其他原因未更新数据,但最终会保持数据一致。
业界提供了一种双数据中心架构的ETCD集群。该ETCD集群包括DC1和DC2两个数据中心。其中,DC1包括两个节点,分别记作VM1和VM3。DC2包括一个节点,记作VM2。当DC2故障时,VM1、VM3可以组成集群继续对外提供服务。但是当DC1故障时,因为只剩VM2一个节点,ETCD集群无法选出领导(leader)节点而导致集群无法对外提供服务。此时,应用对外服务异常,不满足高可用性的要求。
有鉴于此,本申请实施例提供了一种数据容灾方法。该方法应用于双数据中心,具体为第一数据中心和第二数据中心,其中,第一数据中心部署有M个节点,第二数据中心部署有N个节点。M为偶数,N为奇数,M大于N。第一数据中心的M个节点和第二数据中心的N个节点形成大小为M+N的第一集群。第一集群基于该第一集群的领导节点对外提供服务。第二数据中心可以获取第一数据中心的工作状态,当第一数据中心的工作状态指示第一数据中心故障时,则第二数据中心可以启动第二集群(第一集群的子集群),第二数据中心的一个节点作为该第二集群的领导节点,维护数据在第二集群中的N个节点之间的一致性,从而使得第一数据中心故障时应用仍能对外提供服务。如此,解决了相关技术中由于只剩一个节点无法选出领导节点导致集群无法对外提供服务的问题,满足了高可用性的要求。
在具体实现时,第一数据中心可以包括2K个节点,第二数据中心可以包括2K-1个节点。其中,K为正整数。通过上述设置可以使得节点在第一数据中心和第二数据中心的分布较为均匀,可以实现容错能力和性能的均衡。
为了使得本申请的技术方案更加清楚、易于理解,接下来将结合附图对本申请实施例提供的数据容灾方法的应用环境进行介绍。
本申请实施例提供的数据容灾方法包括但不限于如图1所示的应用环境中。如图1所示,该场景中包括数据中心102和数据中心104。其中,数据中心102中部署有2K个节点,记作节点1至节点2K。数据中心104中部署有2K-1个节点,记作节点2K+1至节点4K-1。K为正整数,例如可以为1或者2。对应地,数据中心102可以包括2个节点,数据中心104包括1个节点。当然,数据中心102也可以包括4个节点,对应地,数据中心104包括3个节点。
数据中心104可以获取数据中心102的工作状态。当数据中心102故障时,数据中心104可以启动第二集群。该第二集群包括数据中心104中的2K-1个节点,即节点2K+1至4K-1。
其中,第二集群的领导(leader)节点为上述节点2K+1至4K-1中的一个。具体地,集群中的一个节点在任一时刻处于以下三种状态之一:领导节点、候选(candidate)节点和跟随(follower)节点。所有节点在启动时都是follower节点,当一段时间内没有收到来自leader节点的心跳消息时,从follower节点切换为candidate节点。candidate节点可以为自己投票,并向其他节点发送选举请求,当一个candidate节点获得大部分选票(例如超过一半的节点的选票)时,在该candidate节点赢得选举,成为leader节点。leader节点负责接收来自于客户端的更新请求(如数据写入请求),然后复制更新请求到follower节点,并在“安全”时(例如超过一半以上的节点同意时)执行这些更新请求,从而维护数据在第二集群中的2K-1个节点之间的一致性。
接下来,从数据中心104的角度对本申请实施例提供的数据容灾方法进行介绍。
参见图2所示的数据容灾方法的流程图,该方法包括:
S202:所述数据中心104获取所述数据中心102的工作状态。当所述数据中心102的工作状态指示所述数据中心102故障时,执行S204。
数据中心102的工作状态具体包括两种状态。一种状态为正常工作状态,此时,数据中心102能够为节点提供电源、网络以及散热***等等,使得节点能够正常对外提供服务。另一种状态为故障工作状态,此时,数据中心102不能为节点提供电源、网络或者散热***,导致节点不能正常对外提供服务。
需要说明的是,数据中心102处于故障工作状态与数据中心102中的节点处于故障工作状态是完全不同的。数据中心102处于故障工作状态如断电时,该数据中心102中的所有节点均不能对外提供服务。数据中心102中的某个节点处于故障工作状态时,该数据中心102中的其他节点仍然能够对外提供服务。
数据中心104可以通过该数据中心104中部署的任一节点获取数据中心102的工作状态,以便根据数据中心102的工作状态进行数据处理,从而实现数据容灾。数据中心104的节点在获取数据中心102的工作状态时,可以通过仲裁节点实现。
参见图3所示的数据容灾***的结构示意图,该数据容灾***包括数据中心102和数据中心104,此外还包括仲裁节点106。仲裁节点106用于与数据中心102和数据中心104交互。如此,数据中心104可以通过仲裁节点106获取数据中心102的工作状态。
在一些可能的实现方式中,数据中心104可以向所述仲裁节点106发送查询请求,该查询请求用于查询所述数据中心102的工作状态。仲裁节点106可以基于与数据中心102中节点的心跳消息确定数据中心102的工作状态。例如,仲裁节点106在预设时间段内接收到来自于数据中心102中至少一个节点的心跳消息,则确定数据中心102处于正常工作状态。仲裁节点106在预设时间段内未接收到来自于数据中心102中任一个节点发送的心跳消息,则确定数据中心102处于故障工作状态。仲裁节点106根据数据中心102的工作状态生成查询响应,然后向数据中心104发送上述查询响应,以使数据中心104根据查询响应获知数据中心102的工作状态。
当数据中心104获知数据中心102故障时,则数据中心104可以执行S204,以使得数据中心102故障时仍能维持各节点之间数据一致性,并正常对外提供服务。
S204:所述数据中心104的节点启动第二集群以通过所述第二集群的领导节点提供服务。
所述第二集群的领导节点为所述第二数据中心的节点中的一个节点。第二数据中心部署有N个节点时,第二集群的领导节点即为N个节点中的一个节点,N等于2K-1时,第二集群的领导节点即为2K-1个节点中的一个。所述第二集群的领导节点具体用于维护数据在所述第二集群中的N(N可以取值为2K-1)个节点之间的一致性。
当数据中心102故障时,数据中心104中的任意一个节点或者数据中心104中的第一预设节点可以创建第二集群,例如通过force-new-cluster等命令创建上述第二集群。该第二集群包括数据中心104中部署的2K-1个节点。该第二集群以上述2K-1个节点中的一个节点为领导节点,该领导节点可以维护数据在第二集群中2K-1个节点之间的一致性。
其中,第二集群的领导节点可以是2K-1个节点中的第二预设节点。该第二预设节点与第一预设节点可以是同一节点,也可以是不同节点。当数据中心104的节点创建第二集群时,第二预设节点可以向第二集群中其他节点发送通知消息,以向该第二集群中其他节点通知领导节点为上述第二预设节点。如此,可以减少选举等操作导致的额外开销。
在一些实现方式中,第二集群的领导节点也可以通过选举方式确定。在创建第二集群时,数据中心104中部署的2K-1个节点由follower节点变为candidate节点,candidate节点为自己投票,并向第二集群中其他节点发送选举请求,当一个candidate节点获得大部分(majority)选票时,该candidate节点切换为leader节点。
在一些实现方式中,数据中心104还可以预先创建第二集群,确定该第二集群的领导节点,然后在第一数据中心故障时,启动该第二集群,以通过第二集群的领导节点提供服务。
当数据中心104故障时,数据中心102中包括2K个节点,其数量超过第一集群包括节点的数量,因此,这2K个节点对于更新请求(如数据写入请求)达成一致时,仍可维持第一集群中这2K个节点之间的数据一致性。当数据中心104恢复时,第一集群中的领导节点可以再执行更新请求(如数据写入请求),将数据写入到数据中心104中部署的2K-1个节点,从而维持第一集群中4K-1个节点之间的数据一致性。
在本申请实施例中,数据中心102和数据中心104部署的节点的数量可以根据业务需求而设置。考虑到容错能力,可以在数据中心102和数据中心104中部署较多的节点。考虑到性能,可以在数据中心102和数据中心104中部署较少的节点。综合考虑容错能力和性能,K可以取值为1或2。
基于此,在一些可能的实现方式中,数据中心102可以部署2个节点,数据中心104可以部署1个节点。在该实现方式中,数据中心102故障时,数据中心104中的节点可以创建单节点集群,该单节点集群即为上文所述的第二集群。该单节点集群可以以数据中心104包括的一个节点作为领导节点,用于维护第二集群中不同节点之间的数据一致性。
在另一些可能的实现方式中,数据中心102可以部署4个节点,数据中心104可以部署3个节点。在该实现方式中,数据中心102故障时,数据中心104中的节点可以创建一个三节点集群,该三节点集群即为上文所述的第二集群。三节点集群中的领导节点可以是第二预设节点,也可以通过选举方式确定的一个节点,本实施例对此不作限定。
基于上述内容描述,本申请实施例提供的数据容灾方法支持双中心的数据容灾***中包括节点数量较多的数据中心(即第一数据中心)故障时,另一个数据中心(即第二数据中心)能够单独创建第二集群,第二数据中心的一个节点作为该第二集群的领导节点,维护数据在第二集群中不同节点之间的一致性,从而使得第一数据中心故障时应用仍能对外提供服务。如此,解决了相关技术中由于只剩一个节点无法选出领导节点导致集群无法对外提供服务的问题,满足了高可用性的要求。
在图2所示实施例中,当数据中心102恢复,也即由故障工作状态切换为正常工作状态时,数据中心104将所述数据中心102的节点添加至所述第二集群。具体地,数据中心104的节点中包括第二集群的领导节点,该领导节点可以通过成员添加命令如member add命令将数据中心102中部署的节点添加至第二集群。
在一些可能的实现方式中,数据中心104从故障中恢复,即数据中心104由故障工作状态切换为正常工作状态时,所述数据中心104可以从数据中心104部署的节点中确定第一集群的领导节点。具体地,数据中心104可以响应于所述数据中心102的节点触发的领导节点转移操作,从所述数据中心104中确定领导节点。其中,数据中心102中作为领导节点的节点可以通过领导转移命令,如move leader命令将leader权限转移至数据中心104的节点中。第一集群的领导节点由数据中心102中部署的节点切换为数据中心104中部署的节点。
为了便于理解本申请的技术方案,下面以数据中心102部署2个节点即VM1和VM3,数据中心104部署1个节点即VM2,对数据容灾方法进行示例说明。
参见图4所示的数据容灾***的结构示意图,数据中心102和数据中心104部署的节点VM1、VM2和VM3形成一个三节点的ETCD集群。ETCD集群中的每个节点具有监控程序,当监控程序运行时,节点可以调用仲裁节点106提供的仲裁服务对应的仲裁代理接口进行仲裁。
具体地,数据中心104部署的节点VM2的监控程序调用仲裁节点106的仲裁代理接口,确定数据中心102的工作状态。当数据中心102故障时,VM2使用force-new-cluster命令自动将ETCD集群改造为单节点集群。其中,VM2为单节点集群的leader节点。
当VM2的监控程序通过调用仲裁节点106的仲裁代理接口确定数据中心102恢复时,作为leader节点的VM2使用member add命令将VM1和VM3加入新的集群中。
当数据中心104故障时,数据中心102中的节点VM1、VM3仍然可用,ETCD集群可以依靠自身选举能力确定VM1或VM3为领导节点,基于该领导节点仍然可以实现集群服务的高可用。当数据中心104恢复时,即由故障工作状态切换为正常工作状态时,ETCD集群可以将VM2纳入到集群管理中。VM1或VM3通过move leader命令将leader权限进行转移,使得VM2成为领导节点。如此可以使得数据在数据中心102故障或者正常时,写入到VM2的数据均是完整的,数据中心102和数据中心104中均保存有完整的数据,从而保障了数据一致性。
通过本申请实施例提供的上述方法,可以解决双数据中心的数据容灾***中包括较多节点的数据中心整体故障时,因为无法选出leader导致服务不可用的问题,满足了高可用性要求。此外,该方法无需建设3个数据中心来保证ETCD集群的奇数节点要求,减少了数据容灾成本。
以上结合图1至图4对本申请实施例提供的数据容灾方法进行详细说明,接下来,结合附图对本申请实施例提供的数据容灾装置、设备进行介绍。
参见图5所示的数据容灾装置500的结构示意图,该装置500应用于第一数据中心和第二数据中心。第一数据中心部署有M个节点,第二数据中心部署有N个节点。M为偶数,N为奇数,M大于N。所述第一数据中心的M个节点和所述第二数据中心的N个节点形成第一集群。
所述装置500包括:
通信模块502,用于获取所述第一数据中心的工作状态;
启动模块504,用于当所述第一数据中心的工作状态指示所述第一数据中心故障时,启动所述第二集群以通过所述第二集群的领导节点提供服务,所述第二集群的领导节点为所述N个节点中的一个节点,所述领导节点用于维护数据在所述第二集群中的N个节点之间的一致性。
其中,通信模块502的具体实现可以参见图2所示实施例中S202相关内容描述,启动模块504的具体实现可以参见图2所示实施例中S204相关内容描述,在此不再赘述。
在一些可能的实现方式中,所述装置500还包括:
添加模块506,用于当所述第一数据中心恢复时,将所述第一数据中心的节点添加至所述第二集群。
其中,添加模块506的具体实现可以参见图2所示实施例中相关内容描述,在此不再赘述。
在一些可能的实现方式中,
所述通信模块502具体用于:
向仲裁节点发送查询请求,所述查询请求用于查询所述第一数据中心的工作状态;
接收所述仲裁节点发送的查询响应,所述查询响应包括所述第一数据中心的工作状态。
在一些可能的实现方式中,所述装置500还包括:
确定模块508,用于所述第二数据中心从故障中恢复时,从所述第二数据中心中确定领导节点。
其中,确定模块508的具体实现可以参见图2所示实施例中相关内容描述,在此不再赘述。
在一些可能的实现方式中,所述第一数据中心包括2K个节点,所述第二数据中心包括2K-1个节点,所述K为正整数。
根据本申请实施例的数据容灾装置500可对应于执行本申请实施例中描述的方法,并且数据容灾装置500的各个模块/单元的上述和其它操作和/或功能分别为了实现图2所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种设备。该设备可以是服务器等物理设备,或者云服务器等虚拟化设备。该设备具体用于实现如图5所示实施例中数据容灾装置500的功能。
图6提供了一种设备600的结构示意图,如图6所示,设备600包括总线601、处理器602、通信接口603和存储器604。处理器602、存储器604和通信接口603之间通过总线601通信。总线601可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口603用于与外部通信。例如,接收更新请求(如数据写入请求),向仲裁节点106发送查询请求,接收仲裁节点106发送的查询响应等等。
其中,处理器602可以为中央处理器(central processing unit,CPU)。存储器604可以包括易失性存储器(volatile memory),例如随机存取存储器(random accessmemory,RAM)。存储器604还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器,HDD或SSD。
存储器604中存储有可执行代码,处理器602执行该可执行代码以执行前述数据容灾方法。
具体地,在实现图5所示实施例的情况下,且图5实施例中所描述的数据容灾装置500的各模块为通过软件实现的情况下,执行图5中的启动模块504、添加模块506、确定模块508功能所需的软件或程序代码存储在存储器604中。通信模块102获取第一数据中心如数据中心102的工作状态,通过总线601传输至处理器602,处理器602执行存储器604中存储的各模块对应的程序代码,如启动模块504对应的程序代码,以在第一数据中心的工作状态指示第一数据中心故障时,启动第二集群以通过所述第二集群的领导节点提供服务。如此,应用仍可以基于第二集群对外提供服务,从而实现数据容灾。
当然,处理器602还可以执行添加模块506对应的程序代码,以在第一数据中心恢复时,将第一数据中心的节点添加至第二集群。处理器602还可以执行确定模块508对应的程序代码,以在第二数据中心从故障中恢复时,响应于第一数据中心的节点触发的领导节点转移操作,从所述第二数据中心中重新确定领导节点。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括指令,所述指令指示设备600执行上述应用于数据容灾装置500的数据容灾方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括指令,所述指令指示设备600执行上述应用于数据容灾装置500的数据容灾方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品被计算机执行时,所述计算机执行前述数据容灾方法的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前述数据容灾方法的任一方法的情况下,可以下载该计算机程序产品并在计算机上执行该计算机程序产品。

Claims (12)

1.一种数据容灾方法,其特征在于,应用于第一数据中心和第二数据中心,所述第一数据中心部署有M个节点,所述第二数据中心部署有N个节点,M为偶数,N为奇数,M大于N,所述第一数据中心的M个节点和所述第二数据中心的N个节点形成第一集群,所述第一集群基于所述第一集群中的领导节点提供服务,所述方法包括:
所述第二数据中心获取所述第一数据中心的工作状态;
当所述第一数据中心的工作状态指示所述第一数据中心故障时,所述第二数据中心启动第二集群以通过所述第二集群的领导节点提供服务,所述第二集群的领导节点为所述N个节点中的一个节点,所述第二集群的领导节点用于维护数据在所述第二集群中的N个节点之间的一致性。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一数据中心恢复时,所述第二数据中心将所述第一数据中心的节点添加至所述第二集群。
3.根据权利要求1或2所述的方法,其特征在于,所述第二数据中心获取所述第一数据中心的工作状态,包括:
所述第二数据中心向仲裁节点发送查询请求,所述查询请求用于查询所述第一数据中心的工作状态;
所述第二数据中心接收所述仲裁节点发送的查询响应,所述查询响应包括所述第一数据中心的工作状态。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
所述第二数据中心从故障中恢复时,从所述第二数据中心中确定所述第一集群的领导节点。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一数据中心包括2K个节点,所述第二数据中心包括2K-1个节点,所述K为正整数。
6.一种数据容灾装置,其特征在于,应用于第一数据中心和第二数据中心,所述第一数据中心部署有M个节点,所述第二数据中心部署有N个节点,M为偶数,N为奇数,M大于N,所述第一数据中心的M个节点和所述第二数据中心的N个节点形成第一集群,所述第一集群基于所述第一集群中的领导节点提供服务,所述装置包括:
通信模块,用于获取所述第一数据中心的工作状态;
启动模块,用于当所述第一数据中心的工作状态指示所述第一数据中心故障时,启动第二集群以通过所述第二集群的领导节点提供服务,所述第二集群的领导节点为所述N个节点中的一个节点,所述第二集群的领导节点用于维护数据在所述第二集群中的N个节点之间的一致性。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
添加模块,用于当所述第一数据中心恢复时,将所述第一数据中心的节点添加至所述第二集群。
8.根据权利要求6或7所述的装置,其特征在于,所述通信模块具体用于:
向仲裁节点发送查询请求,所述查询请求用于查询所述第一数据中心的工作状态;
接收所述仲裁节点发送的查询响应,所述查询响应包括所述第一数据中心的工作状态。
9.根据权利要求6至8任一项所述的装置,其特征在于,所述装置还包括:
确定模块,用于所述第二数据中心从故障中恢复时,从所述第二数据中心中确定所述第一集群的领导节点。
10.根据权利要求6至9任一项所述的装置,其特征在于,所述第一数据中心包括2K个节点,所述第二数据中心包括2K-1个节点,所述K为正整数。
11.一种设备,其特征在于,所述设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行如权利要求1至5中任一项所述的数据容灾方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,所述指令指示计算机执行如权利要求1至5中任一项所述的数据容灾方法。
CN202010279154.4A 2020-04-10 2020-04-10 一种数据容灾方法、装置、设备及介质 Pending CN113515408A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010279154.4A CN113515408A (zh) 2020-04-10 2020-04-10 一种数据容灾方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010279154.4A CN113515408A (zh) 2020-04-10 2020-04-10 一种数据容灾方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN113515408A true CN113515408A (zh) 2021-10-19

Family

ID=78060512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010279154.4A Pending CN113515408A (zh) 2020-04-10 2020-04-10 一种数据容灾方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN113515408A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114461438A (zh) * 2022-04-12 2022-05-10 北京易鲸捷信息技术有限公司 非对称中心模式的分布式数据库容灾***及方法
CN115037745A (zh) * 2022-05-18 2022-09-09 阿里巴巴(中国)有限公司 一种在分布式***中选举的方法及装置
CN115208743A (zh) * 2022-07-18 2022-10-18 中国工商银行股份有限公司 基于etcd的跨站点集群的部署方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114461438A (zh) * 2022-04-12 2022-05-10 北京易鲸捷信息技术有限公司 非对称中心模式的分布式数据库容灾***及方法
CN115037745A (zh) * 2022-05-18 2022-09-09 阿里巴巴(中国)有限公司 一种在分布式***中选举的方法及装置
CN115037745B (zh) * 2022-05-18 2023-09-26 阿里巴巴(中国)有限公司 一种在分布式***中选举的方法及装置
CN115208743A (zh) * 2022-07-18 2022-10-18 中国工商银行股份有限公司 基于etcd的跨站点集群的部署方法和装置

Similar Documents

Publication Publication Date Title
US10983880B2 (en) Role designation in a high availability node
CN113515408A (zh) 一种数据容灾方法、装置、设备及介质
EP4083786A1 (en) Cloud operating system management method and apparatus, server, management system, and medium
CN105159798A (zh) 一种虚拟机的双机热备方法、双机热备管理服务器和***
US20140317438A1 (en) System, software, and method for storing and processing information
US8032786B2 (en) Information-processing equipment and system therefor with switching control for switchover operation
CN112181660A (zh) 一种基于服务器集群的高可用方法
CN111935244B (zh) 一种业务请求处理***及超融合一体机
US20210271420A1 (en) Method and apparatus for performing data access management of all flash array server
CN116881053B (zh) 数据处理方法及交换板、数据处理***、数据处理装置
CN111147274A (zh) 为集群解决方案创建高度可用的仲裁集的***和方法
JP2012190175A (ja) フォールトトレラントシステム、サーバ、フォールトトレラント化方法およびプログラム
JP2011034161A (ja) サーバシステム及びサーバシステムの管理方法
CN114124803B (zh) 设备管理方法、装置、电子设备及存储介质
CN114553900B (zh) 一种分布式块存储管理***、方法及电子设备
CN116126457A (zh) 容器迁移方法和服务器集群
CN112131201B (zh) 一种网络附加存储高可用性的方法、***、设备及介质
CN111416726B (zh) 一种资源管理的方法、发送端设备和接收端设备
JP2009075710A (ja) 冗長化システム
JP3621634B2 (ja) 冗長構成切替システム
WO2024051577A1 (zh) 分布式***部署方法、配置方法、***、设备及介质
JP2005115472A (ja) 運行管理装置
US20220215001A1 (en) Replacing dedicated witness node in a stretched cluster with distributed management controllers
US7484124B2 (en) Method and system for fault protection in communication networks, related network and computer program product
CN114945023B (zh) 一种网络连接复用方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220215

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Applicant after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination