CN112988882A - 数据的异地灾备***、方法及装置、计算设备 - Google Patents
数据的异地灾备***、方法及装置、计算设备 Download PDFInfo
- Publication number
- CN112988882A CN112988882A CN201911288862.8A CN201911288862A CN112988882A CN 112988882 A CN112988882 A CN 112988882A CN 201911288862 A CN201911288862 A CN 201911288862A CN 112988882 A CN112988882 A CN 112988882A
- Authority
- CN
- China
- Prior art keywords
- backup
- data
- devices
- slave
- synchronization
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000011084 recovery Methods 0.000 title claims abstract description 46
- 230000001360 synchronised effect Effects 0.000 claims abstract description 55
- 238000004891 communication Methods 0.000 claims abstract description 38
- 230000015654 memory Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请公开了一种数据的异地灾备***、方法及装置、计算设备。其中,该***包括:至少一个从设备,用于至少存储主设备同步的同步数据;具有预设的备份标识的备份设备,与每个从设备建立通信关系,用于至少存储主设备同步的同步数据;主设备,与备份设备建立通信关系,用于维护同步队列,基于负载情况来同步数据至每个从设备,并在感知到备份设备的情况下,按照确定的同步进度同步数据给备份设备。本申请解决了由于现有的分布式一致性***需要提前规划一致性***中节点的个数,并将集群所有节点信息写在每个节点的配置文件中造成的分布式一致性***在使用过程中性能较差的技术问题。
Description
技术领域
本申请涉及分布式协调服务领域,具体而言,涉及一种数据的异地灾备***、方法及装置、计算设备。
背景技术
现有的分布式一致性***需要提前规划一致性***中节点的个数,并将集群所有节点信息写在每个节点的配置文件中,如果需要扩容/缩容往往需要修改每个节点的配置,并重启所有一致***单元节点的服务,导致分布式一致性***在使用过程中性能较差。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据的异地灾备***、方法及装置、计算设备,以至少解决由于现有的分布式一致性***需要提前规划一致性***中节点的个数,并将集群所有节点信息写在每个节点的配置文件中造成的分布式一致性***在使用过程中性能较差的技术问题。
根据本申请实施例的一个方面,提供了一种数据的异地灾备***,包括:至少一个从设备,用于至少存储主设备同步的同步数据;具有预设的备份标识的备份设备,与每个从设备建立通信关系,用于至少存储主设备同步的同步数据;主设备,与备份设备建立通信关系,用于维护同步队列,基于负载情况来同步数据至每个从设备,并在感知到备份设备的情况下,按照确定的同步进度同步数据给备份设备。
根据本申请实施例的另一方面,还提供了一种数据的异地灾备方法,包括:主设备基于负载情况来同步数据至每个从设备,其中,主设备与从设备具有通信关系;主设备在感知到备份设备的情况下,按照确定的同步进度同步数据给备份设备;其中,主设备与每个从设备和备份设备具有通信关系,从设备和备份设备用于至少存储主设备同步的数据。
根据本申请实施例的另一方面,还提供了一种数据的异地灾备装置,包括:第一同步模块,用于主设备基于负载情况来同步数据至每个从设备,其中,主设备与从设备具有通信关系;第二同步模块,用于主设备在感知到备份设备的情况下,按照确定的同步进度同步数据给备份设备;其中,主设备与每个从设备和备份设备具有通信关系,从设备和备份设备用于至少存储主设备同步的数据。
根据本申请实施例的再一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行以上的数据的异地灾备方法。
根据本申请实施例的再一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行以上的数据的异地灾备方法。
在本申请实施例提供了一种数据的异地灾备***,包括:至少一个从设备,用于至少存储主设备同步的同步数据;具有预设的备份标识的备份设备,与每个从设备建立通信关系,用于至少存储主设备同步的同步数据;主设备,与备份设备建立通信关系,用于维护同步队列,基于负载情况来同步数据至每个从设备,并在感知到备份设备的情况下,按照确定的同步进度同步数据给备份设备,通过在不影响一致***单元的前提下,增加一致***单元的备份节点,同时提供了一种适合于分布式协调服务的数据同步计算方式,达到了能够迅速在其他集群/区域迅速搭建本集群副本的目的,从而实现了在不需要修改配置文件的前提下,可以随时随地在新的区域增加一致***单元的备份服务,并且通过计算同步进度的方式,在机房故障或者其他灾难的情况下,能够很好地预估能够恢复数据量的技术效果,进而解决了由于现有的分布式一致性***需要提前规划一致性***中节点的个数,并将集群所有节点信息写在每个节点的配置文件中造成的分布式一致性***在使用过程中性能较差的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a是根据本申请实施例的一种一致***单元的结构示意图;
图1b是根据本申请实施例的另一种一致***单元的结构示意图;
图2是根据本申请实施例的一种数据的异地灾备***的结构图;
图3是根据本申请实施例的另一种一致***单元的结构示意图;
图4示出了一种用于实现数据的异地灾备方法的计算设备(或移动设备)的硬件结构框图;
图5是根据本申请实施例的一种数据的异地灾备方法的流程图;
图6是根据本申请实施例的一种数据的异地灾备装置的结构图;
图7是根据本申请实施例的一种计算设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
一致***单元:是一种基于一致性协议(如Paxos、Raft,ZAB等)实现的分布式一致性***,通常由奇数个节点组成,提供高可靠的元数据读写访问服务。
Leader:一致***单元中通过获得多数派选票选举出来的主节点,负责一致性协议中,向其他节点发送提议,如果多数派同意提议,负责发送commit消息到所有Follower节点。
Follower:一致***单元中从节点,一致***单元中参与选举并没变成Leader的角色,将用户的写请求转发给Leader,同时接受Leader的提议,生成redo日志,接受Leader的commit消息,将数据持久化;
Observer/Learner:一致***单元中观察者节点,不参与选举,其他和Follower行为一致,目的主要是增加一致***单元的读性能。
ID:唯一标识一致***单元中Server的信息,在Leader选举中用来区分不同的节点;
分布式协调服务:由一致***单元组成,用于协调、同步分布式计算环境中不同组件的执行逻辑,典型的场景包括分布式锁、分布式队列、服务注册发现等。
异地数据灾备:服务提供者往往部署在一个地域,只对本区域提供服务,如果同时也对其他区域提供服务,就需要考虑服务提供者部署区域发生网络隔离等灾难情况,需要在异地部署备份服务,在灾难发生时,由备份服务提供只读/读写功能。
RPO(Recovery Point Object):即恢复点目标,是指灾难发生后,容灾***能把数据恢复到灾难发生前时间点的数据。
实施例1
目前分布式一致性***需要提前规划一致性***中节点的个数,并将集群所有节点信息写在每个节点的配置文件中,如果需要扩容/缩容往往需要修改每个节点的配置,并重启所有一致***单元节点的服务,导致分布式一致性***在使用过程中性能较差。
目前分布式一致性***异地容灾的策略主要有两种方案:
图1a是根据本申请实施例的一种一致***单元的结构示意图,如图1a所示,将分布式协调服务的节点部署在多区域组成一致***单元,这样即使在单个区域发生网络隔离等故障,其他区域仍然能够提供全量服务。
该方案存在以下缺点:
1)因为一致***单元在异地,写操作需要多个区域进行同步延迟较大;
2)如果需要新建备份区域,需要修改所有节点的配置文件,并重启一致***,对服务造成影响;
3)因为所有节点都在异地,网络抖动可能造成一致***发生重新选举等异常,对服务本身影响较大;
4)过多区域会造成过多的Follower,会影响一致***单元的稳定性。
图1b是根据本申请实施例的另一种一致***单元的结构示意图,如图1b所示,一致***单元仍然只在一个区域,但是在其他区域部署Observer/Learner角色,该角色不参与选举,只是负责从Leader同步一致***单元数据,该方案适用于单个区域写入,多个区域读取的场景。
该方案存在以下缺点:
1)如果需要新建或者删除备份区域,需要修改所有节点的配置文件,并重启所有一致***单元节点,对服务有一定影响;
2)没有一种计算同步进度的算法,无法预估当发生冗灾情况下能够恢复的数据量;
3)在Leader压力大的情况下,过多的Observer/Learner也可能会影响Leader的性能。
基于上述现有的分布式一致性***存在的问题,本申请实施例提出了一种数据的异地灾备***的结构图,图2是根据本申请实施例的一种数据的异地灾备***的结构图,如图2所示,该***包括:
至少一个从设备20,用于至少存储主设备24同步的同步数据。从设备20为一致***单元中的Follower节点。
具有预设的备份标识的备份设备22,与每个从设备20建立通信关系,用于至少存储主设备24同步的同步数据。
主设备24,与备份设备22建立通信关系,用于维护同步队列,基于负载情况来同步数据至每个从设备20,并在感知到备份设备22的情况下,按照确定的同步进度同步数据给备份设备22。
由于主设备(即leader节点)24是通过选举的方式确定的,而在增加备份节点(即backup节点)后,确定主设备的过程可以表现为以下过程,但不限于此:获取一致***单元的选票信息;从选票信息中删除无效选票信息,得到目标选票信息,其中,无效选票信息中至少包括来自备份设备的选票信息。例如:备份设备22为新增加的Backup类型的节点,大部分一致***单元的默认ID由8位组成,这样单个一致***单元最多支持256个节点,但是在实际运行中,往往不需要这么多节点(假设有256个节点,写操作一致性至少需要129个的节点的同意才能提交,该操作的延迟是一致***单元所无法容忍的),此时,可以将其中的最高位作为类型位,0表示普通节点,1表示backup节点,一致***单元参与一致性协议节点的范围是0-127,Backup节点的范围是128-255。同时设定一致***单元的节点并不会拒绝Backup节点的连接,只是会忽略Backup节点选举过程中的选票信息,这样保证了在不需要修改所有一致***单元的配置文件的前提下,Backup节点可以加入到一致***单元中,作为一种特殊的成员存在。
主设备24为一致***单元中的Leader节点。图3是根据本申请实施例的另一种一致***单元的结构示意图,如图3所示,假定一致***单元由A,B,C节点组成,选举A节点作为Leader节点;在新的区域搭建D节点作为Backup节点,D节点连接A,B,C节点,因为D节点的最高位为1,A,B,C识别该节点是Backup节点,所以不会拒绝该节点的连接,D节点进而得知A节点是Leader节点,并连接A节点,A节点将D节点作为Backup节点,并维护同步队列,根据当前的负载情况进行数据同步,同时定期计算同步进度,通过心跳的方式同步给Backup节点。
通过上述***,在不影响一致***单元的前提下,增加一致***单元的备份节点,同时提供了一种适合于分布式协调服务的数据同步方式,即从设备和备份设备均会存储主设备的同步数据,因此,在新建或删除备份区域中的节点时,仅需要在主设备侧进行修改,然后同步给其他节点,而不必对***中的所有节点分别进行配置,也不必重启所有节点,实现了能够迅速在其他集群/区域迅速搭建本集群副本的目的,从而实现了在不需要修改配置文件的前提下,可以随时随地在新的区域增加一致***单元的备份服务,并且通过计算同步进度的方式,在机房故障或者其他灾难的情况下,能够很好地预估能够恢复数据量的。
在本申请的一些可选的实施例中,主设备24和备份设备22布置在不同的地理区域,主设备24定期计算得到同步进度,并基于同步进度通过心跳的方式同步给备份设备22。
根据本申请的一个可选的实施例,主设备24通过扫描每个从设备20,确定发生数据更新的从设备20的数量,并根据发生数据更新的从设备20的数量,以及从设备20的总数量,确定***中的数据更新占比,其中,基于数据更新占比,计算得到同步进度。
根据本申请的一个可选的实施例,基于数据更新占比,计算得到同步进度,包括:
其中,n为主设备24的数量,a为主设备同步数据给备份设备22时备份设备22中增加的设备的数量,u为备份设备22中修改的设备的数量,d为备份设备22中删除的设备的数量。
传统的RPO是以同步到某个时间点为衡量标准,例如故障发生时,可以恢复到某个时间点的数据。在分布式协调服务中,分布式锁和服务发现是重要的两个场景,一旦发生锁切换和服务地址切换,旧的数据便没有了意义,所以对于每个数据节点是否有最新数据便成了一个重要的衡量指标,因此引入一种新的RPO计算方式,通过计算备份节点持有最新数据的比例的方式来计算RPO,假设一致***单元当前的节点个数为n,Leader同步Backup的数据队列中新增的节点个数为a,更改的节点个数为u,需要删除的节点个数为d,我们可以计算出当前Backup节点的最新的数据节点的个数应该是n–a–u,因为当前的节点个数已经将删除的节点排除了,但是在计算同步率的时候我们需要考虑当前已经被删除但未被同步到Backup的节点个数,需要修正当前节点的个数据为n+d,这样通过当前备份节点的含有最新数据节点数除以Leader节点中当前节点的总个数(考虑删除并未被同步到Backup节点的个数),就是新的RPO的计算方式。
通过上述同步进度计算方法,在机房故障或者其他灾难情况下,能够很好地估计数据的恢复程量。
根据本申请的一个可选的实施例,主设备24如果扫描到任意一个外部设备的设备标识与预设的备份标识匹配,则确定扫描到的外部设备为备份设备。
在本申请的一些实施例中,主设备和从设备的标识用预设数量个比特位表示;备份标识用预设数量个比特位中的最高位表示。
例如,大部分一致***单元的默认ID是由8位组成,这样单个一致***单元最多支持256个节点,将最高位作为类型位,其中,0表示普通节点,1表示backup节点,因此主设备可以通过外部设备标识的最高位判断该设备是否为备份设备节点,如果标识最高位为1,则该设备为备份设备,如果标识最高位为0,该设备为普通设备节点。
另外,如图1b所示的传统的基于将一致***单元的节点部署在多个区域的方式,需要修改配置文件并重启服务,同时由于网络异地,本质上会影响一致***单元的稳定性,对写接口的性能产生较大的影响。通过在其他区域部署Observer/Learner角色的方式,同样需要修改一致***单元的配置信息和重启,在主节点压力大的情况下,过多的Observer/Learner节点也可能会影响Leader的性能,而本申请实施例中,则通过同步机制可以先不必修改Observer/Learner节点中的配置信息,因此,可以在不需要修改配置文件的前提下,可以随时随地在新的区域增加一致***单元的备份服务。
可选地,还可以通过设备ID的其他位进行标识,或者给backup节点设置固定的ID。
根据本申请的一个可选的实施例,主设备24通过控制同步速率,并在检测到锁切换和/或服务地址切换的情况下,确定需要同步更新后的数据。
通过上述***,引入新的Backup节点,在不改变一致***单元的配置文件的前提下,Leader节点可以感知Backup节点,控制同步速率,同时可以计算进度,可随时随地在新的区域增加一致***单元的备份服务。
实施例2
根据本申请实施例,还提供了一种数据的异地灾备方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算设备或者类似的运算装置中执行。图4示出了一种用于实现数据的异地灾备方法的计算设备(或移动设备)的硬件结构框图。如图4所示,计算设备40(或移动设备40)可以包括一个或多个(图中采用402a、402b,……,402n来示出)处理器402(处理器402可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器404、以及用于通信功能的传输模块406。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备40还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
应当注意到的是上述一个或多个处理器402和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备40(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器404可用于存储应用软件的软件程序以及模块,如本申请实施例中的数据的异地灾备方法对应的程序指令/数据存储装置,处理器402通过运行存储在存储器404内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据的异地灾备方法。存储器404可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器404可进一步包括相对于处理器402远程设置的存储器,这些远程存储器可以通过网络连接至计算设备40。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备40的通信供应商提供的无线网络。在一个实例中,传输装置406包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置406可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备40(或移动设备)的用户界面进行交互。
在上述运行环境下,本申请提供了如图5所示的数据的异地灾备方法。图5是根据本申请实施例2的数据的异地灾备方法的流程图,该方法包括以下步骤:
步骤S502,主设备基于负载情况来同步数据至每个从设备,其中,主设备与从设备具有通信关系。
根据本申请的一个可选的实施例,步骤S502中的主设备为一致***单元中的Leader节点,从设备为一致***单元中的Follower节点。
步骤S504,按照确定的同步进度同步数据给备份设备;其中,主设备与每个从设备和备份设备具有通信关系,从设备和备份设备用于至少存储主设备同步的数据。该步骤可以在主设备感知到备份设备的时执行。
在本申请的一些实施例中,步骤S504中备份设备为新增加的Backup类型的节点,图3是根据本申请实施例的一种一致***单元的结构示意图,如图3所示,假定一致***单元由A,B,C节点组成,选举A节点作为Leader节点;我们在新的区域搭建D节点作为Backup节点,D节点连接A,B,C节点,因为D节点的最高位为1,A,B,C识别该节点是Backup节点,所以不会拒绝该节点的连接,D节点进而得知A节点是Leader节点,并连接A节点,A节点将D节点作为Backup节点,并维护同步队列,根据当前的负载情况进行数据同步,同时定期计算同步进度,通过心跳的方式同步给Backup节点。
通过上述方法,通过在不影响一致***单元的前提下,增加一致***单元的备份节点,同时提供了一种适合于分布式协调服务的数据同步计算方式,达到了能够迅速在其他集群/区域迅速搭建本集群副本的目的,从而实现了在不需要修改配置文件的前提下,可以随时随地在新的区域增加一致***单元的备份服务,并且通过计算同步进度的方式,在机房故障或者其他灾难的情况下,能够很好地预估能够恢复数据量的技术效果。
根据本申请的一个可选的实施例,主设备和备份设备布置在不同的地理区域,主设备定期计算得到同步进度,并基于同步进度通过心跳的方式同步给备份设备。
在本申请的一些实施例中,主设备通过以下方法定期计算得到同步进度:主设备扫描每个从设备,确定发生数据更新的从设备的数量;根据发生数据更新的从设备的数量,以及从设备的总数量,确定***中的数据更新占比;基于数据更新占比,计算得到同步进度。
优选地,基于数据更新占比,计算得到同步进度,通过以下方式实现:
其中,n为主设备的数量,a为述主设备同步数据给备份设备时备份设备中增加的设备的数量,u为备份设备中修改的设备的数量,d为备份设备中删除的设备的数量。
传统的RPO是以同步到某个时间点为衡量标准,例如故障发生时,我们可以恢复到某个时间点的数据。在分布式协调服务中,分布式锁和服务发现是重要的两个场景,一旦发生锁切换和服务地址切换,旧的数据便没有了意义,所以对于每个数据节点是否有最新数据便成了一个重要的衡量指标,因此我们引入一种新的RPO计算方式,通过计算备份节点持有最新数据的比例的方式来计算RPO,假设一致***单元当前的节点个数为n,Leader同步Backup的数据队列中新增的节点个数为a,更改的节点个数为u,需要删除的节点个数为d,我们可以计算出当前Backup节点的最新的数据节点的个数应该是n–a–u,因为当前的节点个数已经将删除的节点排除了,但是在计算同步率的时候我们需要考虑当前已经被删除但未被同步到Backup的节点个数,我们需要修正当前节点的个数据为n+d,这样通过当前备份节点的含有最新数据节点数除以Leader节点中当前节点的总个数(考虑删除并未被同步到Backup节点的个数),就是新的RPO的计算方式。
在本申请的一个可选的实施例中,在执行步骤S504之前,主设备扫描通信接入的至少一个外部设备;主设备如果扫描到任意一个外部设备的设备标识与预设的备份标识匹配,则确定扫描到的外部设备为备份设备。
可选地,主设备通过控制同步速率,并在检测到锁切换和/或服务地址切换的情况下,确定需要同步更新后的数据。
在上文中提到,大部分一致***单元的默认ID是由8位组成,这样单个一致***单元最多支持256个节点,将最高位作为类型位,其中,0表示普通节点,1表示backup节点,因此主设备可以通过外部设备标识的最高位判断该设备是否为备份设备节点,如果标识最高位为1,则该设备为备份设备,如果标识最高位为0,该设备为普通设备节点。还可以通过设备ID的其他位进行标识,或者给backup节点设置固定的ID。
通过上述方法,引入新的Backup节点,在不改变一致***单元的配置文件的前提下,Leader节点可以感知Backup节点,控制同步速率,同时可以计算进度,可随时随地在新的区域增加一致***单元的备份服务。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的数据的异地灾备方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例3
根据本申请实施例,还提供了一种用于实施上述数据的异地灾备方法的装置,如图6所示,该装置包括:
第一同步模块60,用于主设备基于负载情况来同步数据至每个从设备,其中,主设备与从设备具有通信关系。
第二同步模块62,用于主设备在感知到备份设备的情况下,按照确定的同步进度同步数据给备份设备;其中,主设备与每个从设备和备份设备具有通信关系,从设备和备份设备用于至少存储主设备同步的数据。
此处需要说明的是,上述第一同步模块60和第二同步模块62对应于实施例2中的步骤S2502至步骤S504,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例2提供的计算设备40中。
实施例4
本申请的实施例可以提供一种计算设备,该计算设备可以是计算设备群中的任意一个计算设备。可选地,在本实施例中,上述计算设备也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算设备可以执行应用程序的数据的异地灾备方法中以下步骤的程序代码:主设备基于负载情况来同步数据至每个从设备,其中,主设备与从设备具有通信关系;主设备在感知到备份设备的情况下,按照确定的同步进度同步数据给备份设备;其中,主设备与每个从设备和备份设备具有通信关系,从设备和备份设备用于至少存储主设备同步的数据。
可选地,图7是根据本申请实施例的一种计算设备的结构框图。如图7所示,该计算设备70可以包括:一个或多个(图中仅示出一个)处理器702、存储器704、以及存储控制器,射频模块,音频模块以及显示屏。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的数据的异地灾备方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据的异地灾备方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:主设备基于负载情况来同步数据至每个从设备,其中,主设备与从设备具有通信关系;主设备在感知到备份设备的情况下,按照确定的同步进度同步数据给备份设备;其中,主设备与每个从设备和备份设备具有通信关系,从设备和备份设备用于至少存储主设备同步的数据。
可选的,上述处理器还可以执行如下步骤的程序代码:主设备和备份设备布置在不同的地理区域,主设备定期计算得到同步进度,并基于同步进度通过心跳的方式同步给备份设备。
可选的,上述处理器还可以执行如下步骤的程序代码:主设备扫描每个从设备,确定发生的数据更新的从设备的数量;根据发生数据更新的从设备的数量,以及从设备的总数量,确定***中的数据更新占比;基于数据更新占比,计算得到同步进度。
可选的,上述处理器还可以执行如下步骤的程序代码:主设备扫描通信接入的至少一个外部设备;主设备如果扫描到任意一个外部设备的设备标识与预设的备份标识匹配,则确定扫描到的外部设备为备份设备。
可选的,上述处理器还可以执行如下步骤的程序代码:主设备通过控制同步速率,并在检测到锁切换和/或服务地址切换的情况下,确定需要同步更新后的数据。
采用本申请实施例,提供了一种数据的异地灾备方法的方案。通过在不影响一致***单元的前提下,增加一致***单元的备份节点,同时提供了一种适合于分布式协调服务的数据同步计算方式,从而达到了能够迅速在其他集群/区域迅速搭建本集群副本的目的,从而实现了在不需要修改配置文件的前提下,可以随时随地在新的区域增加一致***单元的备份服务,并且通过计算同步进度的方式,在机房故障或者其他灾难的情况下,能够很好地预估能够恢复数据量的技术效果,进而解决了由于现有的分布式一致性***需要提前规划一致性***中节点的个数,并将集群所有节点信息写在每个节点的配置文件中造成的分布式一致性***在使用过程中性能较差的技术问题。
本领域普通技术人员可以理解,图7所示的结构仅为示意,计算设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图7其并不对上述电子装置的结构造成限定。例如,计算设备70还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据的异地灾备方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算设备群中的任意一个计算设备中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:主设备基于负载情况来同步数据至每个从设备,其中,主设备与从设备具有通信关系;主设备在感知到备份设备的情况下,按照确定的同步进度同步数据给备份设备;其中,主设备与每个从设备和备份设备具有通信关系,从设备和备份设备用于至少存储主设备同步的数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:主设备和备份设备布置在不同的地理区域,主设备定期计算得到同步进度,并基于同步进度通过心跳的方式同步给备份设备。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:主设备扫描每个从设备,确定发生的数据更新的从设备的数量;根据发生数据更新的从设备的数量,以及从设备的总数量,确定***中的数据更新占比;基于数据更新占比,计算得到同步进度。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:主设备扫描通信接入的至少一个外部设备;主设备如果扫描到任意一个外部设备的设备标识与预设的备份标识匹配,则确定扫描到的外部设备为备份设备。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:主设备通过控制同步速率,并在检测到锁切换和/或服务地址切换的情况下,确定需要同步更新后的数据。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (17)
1.一种数据的异地灾备***,其特征在于,包括:
至少一个从设备,用于至少存储主设备同步的同步数据;
具有预设的备份标识的备份设备,与每个从设备建立通信关系,用于至少存储所述主设备同步的同步数据;
所述主设备,与所述备份设备建立通信关系,用于维护同步队列,基于负载情况来同步数据至每个从设备,并按照确定的同步进度同步数据给所述备份设备。
2.根据权利要求1所述的***,其特征在于,所述主设备和所述备份设备布置在不同的地理区域,所述主设备定期计算得到所述同步进度,并基于所述同步进度通过心跳的方式同步给所述备份设备。
3.根据权利要求2所述的***,其特征在于,所述主设备通过扫描每个从设备,确定发生数据更新的从设备的数量,并根据发生所述数据更新的从设备的数量,以及所述从设备的总数量,确定***中的数据更新占比,其中,基于所述数据更新占比,计算得到所述同步进度。
5.根据权利要求1至4中任意一项所述的***,其特征在于,所述主设备如果扫描到任意一个外部设备的设备标识与所述预设的备份标识匹配,则确定扫描到的所述外部设备为所述备份设备。
6.根据权利要求5所述的***,其特征在于,所述主设备通过控制同步速率,并在检测到锁切换和/或服务地址切换的情况下,确定需要同步更新后的数据。
7.根据权利要求1所述的***,其特征在于,所述主设备和从设备的标识用预设数量个比特位表示;所述备份标识用所述预设数量个比特位中的最高位表示。
8.根据权利要求1所述的***,其特征在于,所述主设备通过以下方式确定:
获取一致***单元的选票信息;从所述选票信息中删除无效选票信息,得到目标选票信息,其中,所述无效选票信息中至少包括来自所述备份设备的选票信息。
9.一种数据的异地灾备方法,其特征在于,包括:
主设备基于负载情况来同步数据至每个从设备,其中,所述主设备与所述从设备具有通信关系;
所述主设备按照确定的同步进度同步数据给备份设备;
其中,所述主设备与所述每个从设备和所述备份设备具有通信关系,所述从设备和所述备份设备用于至少存储所述主设备同步的数据。
10.根据权利要求9所述的方法,其特征在于,所述主设备和所述备份设备布置在不同的地理区域,所述主设备定期计算得到所述同步进度,并基于所述同步进度通过心跳的方式同步给所述备份设备。
11.根据权利要求9所述的方法,其特征在于,所述主设备定期计算得到所述同步进度,包括:
所述主设备扫描每个从设备,确定发生的数据更新的从设备的数量;
根据发生所述数据更新的从设备的数量,以及所述从设备的总数量,确定***中的数据更新占比;
基于所述数据更新占比,计算得到所述同步进度。
13.根据权利要求9至12中任意一项所述的方法,其特征在于,在按照确定的同步进度同步数据给所述备份设备之前,所述方法还包括:
所述主设备扫描通信接入的至少一个外部设备;
所述主设备如果扫描到任意一个外部设备的设备标识与预设的备份标识匹配,则确定扫描到的所述外部设备为所述备份设备。
14.根据权利要求13所述的方法,其特征在于,所述主设备通过控制同步速率,并在检测到锁切换和/或服务地址切换的情况下,确定需要同步更新后的数据。
15.一种数据的异地灾备装置,其特征在于,包括:
第一同步模块,用于主设备基于负载情况来同步数据至每个从设备,其中,所述主设备与所述从设备具有通信关系;
第二同步模块,用于按照确定的同步进度同步数据给备份设备;
其中,所述主设备与所述每个从设备和所述备份设备具有通信关系,所述从设备和所述备份设备用于至少存储所述主设备同步的数据。
16.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求9至14中任意一项所述的数据的异地灾备方法。
17.一种计算设备,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:基于负载情况来同步数据至每个从设备,其中,所述从设备与发送所述同步数据的主设备具有通信关系;按照确定的同步进度同步数据给备份设备;其中,所述主设备与所述每个从设备和所述备份设备具有通信关系,所述从设备和所述备份设备用于至少存储所述主设备同步的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911288862.8A CN112988882B (zh) | 2019-12-12 | 2019-12-12 | 数据的异地灾备***、方法及装置、计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911288862.8A CN112988882B (zh) | 2019-12-12 | 2019-12-12 | 数据的异地灾备***、方法及装置、计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112988882A true CN112988882A (zh) | 2021-06-18 |
CN112988882B CN112988882B (zh) | 2024-01-23 |
Family
ID=76342847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911288862.8A Active CN112988882B (zh) | 2019-12-12 | 2019-12-12 | 数据的异地灾备***、方法及装置、计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988882B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023185934A1 (zh) * | 2022-03-31 | 2023-10-05 | 阿里云计算有限公司 | 数据处理方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001016749A2 (en) * | 1999-08-27 | 2001-03-08 | Honeywell, Inc. | System and method for disseminating functional blocks to an on-line redundant controller |
US20060023627A1 (en) * | 2004-08-02 | 2006-02-02 | Anil Villait | Computing system redundancy and fault tolerance |
US7506335B1 (en) * | 2003-11-29 | 2009-03-17 | Cisco Technology, Inc. | Method and apparatus for software loading and initialization in a distributed network |
CN106161495A (zh) * | 2015-03-25 | 2016-11-23 | 中兴通讯股份有限公司 | 一种主节点选举方法、装置及存储*** |
US9619173B1 (en) * | 2014-09-23 | 2017-04-11 | EMC IP Holding Company LLC | Updating synchronization progress |
CN106570007A (zh) * | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 用于分布式缓存***数据同步的方法和设备 |
US20170357553A1 (en) * | 2016-06-14 | 2017-12-14 | EMC IP Holding Company LLC | Method and device for data backup |
WO2018036148A1 (zh) * | 2016-08-23 | 2018-03-01 | 东方网力科技股份有限公司 | 一种服务器集群*** |
CN108964948A (zh) * | 2017-05-19 | 2018-12-07 | 北京金山云网络技术有限公司 | 主从服务***、主节点故障恢复方法及装置 |
-
2019
- 2019-12-12 CN CN201911288862.8A patent/CN112988882B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001016749A2 (en) * | 1999-08-27 | 2001-03-08 | Honeywell, Inc. | System and method for disseminating functional blocks to an on-line redundant controller |
US7506335B1 (en) * | 2003-11-29 | 2009-03-17 | Cisco Technology, Inc. | Method and apparatus for software loading and initialization in a distributed network |
US20060023627A1 (en) * | 2004-08-02 | 2006-02-02 | Anil Villait | Computing system redundancy and fault tolerance |
US9619173B1 (en) * | 2014-09-23 | 2017-04-11 | EMC IP Holding Company LLC | Updating synchronization progress |
CN106161495A (zh) * | 2015-03-25 | 2016-11-23 | 中兴通讯股份有限公司 | 一种主节点选举方法、装置及存储*** |
CN106570007A (zh) * | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 用于分布式缓存***数据同步的方法和设备 |
US20170357553A1 (en) * | 2016-06-14 | 2017-12-14 | EMC IP Holding Company LLC | Method and device for data backup |
WO2018036148A1 (zh) * | 2016-08-23 | 2018-03-01 | 东方网力科技股份有限公司 | 一种服务器集群*** |
CN108964948A (zh) * | 2017-05-19 | 2018-12-07 | 北京金山云网络技术有限公司 | 主从服务***、主节点故障恢复方法及装置 |
Non-Patent Citations (1)
Title |
---|
程艳娜;李安;冯钟葵;陈俊;唐梦辉;: "遥感数据异地备份中数据一致性方法研究与实现", 遥感信息, no. 01 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023185934A1 (zh) * | 2022-03-31 | 2023-10-05 | 阿里云计算有限公司 | 数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112988882B (zh) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3694148A1 (en) | Configuration modification method for storage cluster, storage cluster and computer system | |
EP2902922B1 (en) | Distributed file system and data backup method for distributed file system | |
CN110795496B (zh) | 数据同步方法、装置及*** | |
CN106919465B (zh) | 用于存储***中多重数据保护的方法和装置 | |
JP6431197B2 (ja) | スナップショット処理方法および関係付けられたデバイス | |
WO2016177231A1 (zh) | 基于双主控的主备倒换方法及装置 | |
CN113051110A (zh) | 集群切换方法、装置及设备 | |
CN106815091B (zh) | 同步续传方法、从端设备及*** | |
CN108920489A (zh) | 数据库的部署方法、装置及设备 | |
CN111400263A (zh) | 一种基于文件变化的监控回切方法及装置 | |
CN113269542A (zh) | 区块链***的共识方法、装置以及存储介质 | |
CN111049886B (zh) | 多区域sdn控制器数据同步方法、服务器及*** | |
CN112988882A (zh) | 数据的异地灾备***、方法及装置、计算设备 | |
CN110958287B (zh) | 操作对象数据同步方法、装置及*** | |
CN112929438B (zh) | 一种双站点分布式数据库的业务处理方法及装置 | |
CN112732702B (zh) | 数据库引擎文件处理方法及装置 | |
EP3660679B1 (en) | Data backup method, device and system | |
CN111984474B (zh) | 一种双控集群故障恢复的方法、***及设备 | |
CN111241200B (zh) | 基于SQLite数据库的主备同步处理方法及装置 | |
CN108984346B (zh) | 一种生产数据容灾的方法、***及存储介质 | |
CN112612851A (zh) | 多中心数据同步方法及装置 | |
EP4318243A1 (en) | Data backup method and system, and related device | |
CN115292293A (zh) | 分布式缓存***的数据迁移方法和装置 | |
CN116668269A (zh) | 一种用于双活数据中心的仲裁方法、装置及*** | |
CN110851526B (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 |