一种跨数据中心的数据同步方法

文档序号:7795515阅读:188来源:国知局
一种跨数据中心的数据同步方法
【专利摘要】本发明提供一种跨数据中心的数据同步方法,其具体实现过程为:完成数据的写入与日志的记录;同步调度与推送;日志回放,完成数据同步;进行跨数据中心的数据访问,实现异步数据同步操作。该一种跨数据中心的数据同步方法和现有技术相比,能够实现跨数据中心的异步数据同步操作,提高数据的安全性;有效地利用数据中心内部的IO资源和数据中心之间的网络资源,实用性强,易于推广。
【专利说明】一种跨数据中心的数据同步方法
【技术领域】
[0001]本发明涉及计算机数据存储【技术领域】,具体的说是一种跨数据中心的数据同步方法。
【背景技术】
[0002]随着的互联网时代已经到来:社交网络、微博、位置服务等面向普通互联网用户的交互型网站正蓬勃兴起,如Google、Facebook、Twitter以及国内的人人网、微博等,向数以亿计的用户提供基于互联网和无线网络的交互服务。遍布全世界的互联网用户每天都进行多种多样的交互,随时都在制造各种各样的数据,这些数据的数量是单机时代数据量的数倍。
[0003]为存储这些数据,各互联网公司在世界各地建立了庞大的数据中心,单个数据中心的主机数量在几百至数万的数量级不等。来自Google的信息表明,Google在全球有数十个数据中心和过千万台服务器,存储其全球用户每天产生的海量数据。对这些数据的管理和使用都是巨大的挑战:包括数据的读取和存储、索引和寻址、配置和管理的接口、数据中心之间的数据复制等,这其中,对多数据中心之间数据同步的支持和研究需求尤为迫切。
[0004]目前针对海量的数据存储的研究仍处于刚刚起步的阶段,对于数据中心之间的数据同步方法仍有许多值得研究和改进的方面,以Hbase为例,Hbase的复制依赖于Master/Slave的体系结构,在0.90.0版本才加入了简单的在两个数据中心之间进行数据复制的特性,复制任务没有优先级队列的实现,没有针对数据中心的负载做统一的调度。另一方面,传统的跨数据中心的数据同步算法通常以整块数据的传输和覆盖为主要方法,这种方法会占用大量的网络资源和IO资源。
[0005]针对这一情况,本专利发明了 一种基于日志回放的跨数据中心的数据同步方法。
【发明内容】

[0006]本发明的技术任务是解决现有技术的不足,提供一种跨数据中心的数据同步方法。
[0007]本发明的技术方案是按以下方式实现的,该一种跨数据中心的数据同步方法,其具体实现过程为:
一、完成数据的写入与日志的记录:在主数据中心运行日志记录模块,当主数据中心接收到客户端发来的数据请求时,该模块将请求所要求的操作以日志的方式记录在主数据中心,该模块以嵌入式或插件的方式,整合到主数据中心的业务流程中。
[0008]二、同步调度与推送:设置调度模块运行在主数据中心,该调度模块负责调度数据回放操作,根据主数据中心的负载、备份数据中心的负载、调度策略信息,激活日志的推送和回放操作;调度模块要求的推送操作通过日志推送模块完成,该日志推送模块在主数据中心运行,将数据操作日志传输到备份数据中心。
[0009]三、日志回放,完成数据同步:主数据中心日志推送模块推送过来的数据操作执行由日志回放模块接收,该日志回放模块运行在备份数据中心,并在当前数据中心回放数据操作日志,实现两个数据中心的数据同步。
[0010]四、进行跨数据中心的数据访问,实现异步数据同步操作。
[0011]所述步骤一的详细过程为:客户端根据本地的配置识别到客户数据所在的主数据中心,并将所有的数据操作全部发送到主数据中心,交由主数据中的数据节点进行处理;主数据中心收到客户端的请求后,根据请求的操作和内容执行客户操作,在这一过程中,日志记录模块通过截取请求的方式捕捉到客户请求的操作及相关数据;日志记录模块判断客户端的操作是否需要对数据中心的数据进行修改,如果需要,则该数据操作需要作为跨数据中心数据同步操作的内容,此时日志记录模块将请求的操作及相关的数据以专有的日志格式保存到主数据中心的异步日志记录区域,该区域的内容都是需要进行跨数据中心数据回放的内容。
[0012]所述步骤二的详细过程为:首先由运行在主数据中心的调度模块监控以下条件。
[0013]I)异步日志记录区域中日志的数目和涉及到的数据量;
2)主数据中心的负载情况,包括网络IO和磁盘IO;
3)备份数据中心的负载情况,包括网络IO和磁盘IO;
当以上三者满足配置管理员设置的调度策略时,触发日志推送操作,日志推送操作由日志推送模块执行,该模块负责将主数据中心异步日志记录区域中的数据操作日志写入到备份数据中心的异步日志执行区域;当日志推送模块完成日志的跨数据中心传输后,会通知调度模块,然后调度模块驱动备份数据中心的日志回放模块执行日志的回放。
[0014]所述步骤三的详细过程为:运行在备份数据中心的日志回放模块在接收到调度模块的通知后,开始执行日志的回放操作,日志回放模块读取存储在异步日志执行区域中的数据日志,然后对日志的内容进行解码,取得日志对应的操作以及相关数据,然后在备份数据中心的相关节点上再次执行该操作,使备份数据中心的数据与主数据中心中的数据一致,实现数据的跨数据中心同步。
[0015]所述步骤四的客户端在下述两种情况下通过访问备份数据中心获取数据,客户端无法连接主数据中心时;客户端可以连接主数据中心,但主数据中心业务繁忙时。
[0016]本发明与现有技术相比所产生的有益效果是:
本发明的一种跨数据中心的数据同步方法能够实现跨数据中心的异步数据同步操作,提高数据的安全性;用户在无法访问主数据中心时,还可以通过访问备用数据中心获取数据;由于在回放过程中,只需要传输数据的差异,而无需传输数据本身,因此本方法还可以降低传输的数据量,减少同步操作对数据中心之间带宽的占用;另外,系统中的调度模块能够根据数据中心的负载进行调度,有效地利用数据中心内部的IO资源和数据中心之间的网络资源,起到负载平衡的作用;实用性强,易于推广。
【专利附图】

【附图说明】
[0017]附图1是本发明的实现过程示意图。
【具体实施方式】
[0018]下面结合附图对本发明的一种跨数据中心的数据同步方法作以下详细说明。[0019]如附图1所示,一种跨数据中心的数据同步方法,通过数据操作日志的回放,实现数据中心之间的异步数据同步。其具体实现过程为:
首先通过编程设置以下几个模块:
(I)日志记录模块。运行在主数据中心,负责当主数据中心接收到客户端发来的数据请求时,将请求所要求的操作以日志的方式记录在主数据中心。该模块以嵌入式或插件的方式,整合到主数据中心的业务流程中。
[0020](2)调度模块。运行在主数据中心,负责调度数据回放操作。根据主数据中心的负载、备份数据中心的负载、调度策略等信息,激活日志的推送和回放操作。
[0021](3)日志推送模块。运行在主数据中心,负责执行调度模块要求的推送操作,将数据操作日志传输到备份数据中心。
[0022](4)日志回放模块。运行在备份数据中心,负责接收主数据中心日志推送模块推送过来的数据操作执行,并在当前数据中心回放数据操作日志,实现两个数据中心的数据同
止/J/ O
通过以上模块完成下述操作:
一、数据的写入与日志的记录。
[0023]在正常的情况下,客户端根据本地的配置识别到客户数据所在的主数据中心,并将所有的数据操作,包括读取、写入、删除等,全部发送到主数据中心,交由主数据中的数据节点进行处理。
[0024]主数据中心收到客户端的请求后,会根据请求的操作和内容执行客户操作。在这一过程中,日志记录模块会通过截取请求的方式捕捉到客户请求的操作及相关数据。
[0025]日志记录模块会判断客户端的操作是否需要对数据中心的数据进行修改,如果需要,则说明该数据操作需要作为跨数据中心数据同步操作的内容。这个时候,日志记录模块会将请求的操作及相关的数据以专有的日志格式保存到主数据中心的异步日志记录区域,该区域的内容都是需要进行跨数据中心数据回放的内容。
[0026]二、同步调度与日志的推送。
[0027]运行在主数据中心的调度模块,会监控以下条件:
I)异步日志记录区域中日志的数目和涉及到的数据量。
[0028]2)主数据中心的负载情况,包括网络IO和磁盘10。
[0029]3)备份数据中心的负载情况,主包括网络IO和磁盘10。
[0030]当以上三者满足配置管理员设置的调度策略时,触发日志推送操作。触发的前提通常是条件I)较高,而条件2)和条件3)较低。
[0031]日志推送操作由日志推送模块执行,该模块负责将主数据中心异步日志记录区域中的数据操作日志写入到备份数据中心的异步日志执行区域。
[0032]当日志推送模块完成日志的跨数据中心传输后,会通知调度模块。然后调度模块驱动备份数据中心的日志回放模块执行日志的回放。
[0033]三、日志的回放。
[0034]运行在备份数据中心的日志回访模块在接收到调度模块的通知后,开始执行日志的回放操作。
[0035]日志回访模块读取存储在异步日志执行区域中的数据日志,然后对日志的内容进行解码,取得日志对应的操作以及相关数据,然后在备份数据中心的相关节点上再次执行该操作,使备份数据中心的数据与主数据中心中的数据一致。从而实现了数据的跨数据中心同步。
[0036]四、跨数据中心的数据访问。
[0037]客户端在两种情况下可能会通过访问备份数据中心获取数据:
第一,客户端无法连接主数据中心时。这种情况有可能是主数据中心发生了故障,也可能是由于主数据中心与客户端之间的网络中断。
[0038]当出现这种情况时,客户端将尝试从备份数据中心读取操作,且只能执行读取操作。另外,由于此时不确定备份数据中心与主数据中心之间的数据是否已经完成了同步操作,因此客户端会对用户显示相关的提示信息,通知用户此时数据的来源是备份数据中心,且存在数据一致性问题。
[0039]第二,客户端可以连接主数据中心,但主数据中心业务繁忙时。
[0040]当出现这种情况时,客户端如果判断客户的操作是只读操作,则会向主数据中心确认操作涉及的数据是否已经同步到备份数据中心,如果主数据中心告知客户端数据已经同步完成,则客户端可以通过访问备份数据中心获取客户要读取的数据。此时,备份数据中心起到一个负载平衡的作用。
[0041]本发明的跨数据中心的数据同步方法,能够实现跨数据中心的异步数据同步操作,提高数据的安全性。用户在无法访问主数据中心时,还可以通过访问备用数据中心获取数据。能够有效减少数据中心之间同步所产生的数据量。由于在回放过程中,只需要传输数据的差异,而无需传输数据本身,因此可以降低传输的数据量,减少同步操作对数据中心之间带宽的占用。能够根据数据中心的负载进行调度,有效地利用数据中心内部的IO资源和数据中心之间的网络资源,起到负载平衡的作用。
[0042]以上所述仅为本发明的实施例而已,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种跨数据中心的数据同步方法,其特征在于其具体实现过程为: 一、完成数据的写入与日志的记录:在主数据中心运行日志记录模块,当主数据中心接收到客户端发来的数据请求时,该模块将请求所要求的操作以日志的方式记录在主数据中心,该模块以嵌入式或插件的方式,整合到主数据中心的业务流程中; 二、同步调度与推送:设置调度模块运行在主数据中心,该调度模块负责调度数据回放操作,根据主数据中心的负载、备份数据中心的负载、调度策略信息,激活日志的推送和回放操作;调度模块要求的推送操作通过日志推送模块完成,该日志推送模块在主数据中心运行,将数据操作日志传输到备份数据中心; 三、日志回放,完成数据同步:主数据中心日志推送模块推送过来的数据操作执行由日志回放模块接收,该日志回放模块运行在备份数据中心,并在当前数据中心回放数据操作日志,实现两个数据中心的数据同步; 四、进行跨数据中心的数据访问,实现异步数据同步操作。
2.根据权利要求1所述的一种跨数据中心的数据同步方法,其特征在于:所述步骤一的详细过程为:客户端根据本地的配置识别到客户数据所在的主数据中心,并将所有的数据操作全部发送到主数据中心,交由主数据中的数据节点进行处理;主数据中心收到客户端的请求后,根据请求的操作和内容执行客户操作,在这一过程中,日志记录模块通过截取请求的方式捕捉到客户请求的操作及相关数据;日志记录模块判断客户端的操作是否需要对数据中心的数据进行修改,如果需要,则该数据操作需要作为跨数据中心数据同步操作的内容,此时日志记录模块将请求的操作及相关的数据以专有的日志格式保存到主数据中心的异步日志记录区域,该区域的内容都是需要进行跨数据中心数据回放的内容。
3.根据权利要求1或2所述的一种跨数据中心的数据同步方法,其特征在于:所述步骤二的详细过程为:首先由运行在主数据中心的调度模块监控以下条件, 1)异步日志记录区域中日志的数目和涉及到的数据量; 2)主数据中心的负载情况,包括网络IO和磁盘IO; 3)备份数据中心的负载情况,包括网络IO和磁盘IO; 当以上三者满足配置管理员设置的调度策略时,触发日志推送操作,日志推送操作由日志推送模块执行,该模块负责将主数据中心异步日志记录区域中的数据操作日志写入到备份数据中心的异步日志执行区域;当日志推送模块完成日志的跨数据中心传输后,会通知调度模块,然后调度模块驱动备份数据中心的日志回放模块执行日志的回放。
4.根据权利要求3所述的一种跨数据中心的数据同步方法,其特征在于:所述步骤三的详细过程为:运行在备份数据中心的日志回放模块在接收到调度模块的通知后,开始执行日志的回放操作,日志回放模块读取存储在异步日志执行区域中的数据日志,然后对日志的内容进行解码,取得日志对应的操作以及相关数据,然后在备份数据中心的相关节点上再次执行该操作,使备份数据中心的数据与主数据中心中的数据一致,实现数据的跨数据中心同步。
5.根据权利要求4所述的一种跨数据中心的数据同步方法,其特征在于:所述步骤四的客户端在下述两种情况下通过访问备份数据中心获取数据,客户端无法连接主数据中心时;客户端可以连接主数据中心,但主数据中心业务繁忙时。
【文档编号】H04L12/803GK103763368SQ201410023373
【公开日】2014年4月30日 申请日期:2014年1月20日 优先权日:2014年1月20日
【发明者】王恩东, 文中领, 张立强, 袁冬 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1