多数据中心数据同步方法及系统与流程

文档序号:17442416发布日期:2019-04-17 04:56阅读:493来源:国知局
多数据中心数据同步方法及系统与流程

本发明涉及网络技术及数据存储技术领域,具体涉及一种多数据中心数据同步方法及系统。



背景技术:

数据中心(datacenter)或称为服务器场,指用于安置计算机系统及相关部件的设施,例如电信和储存系统。一般它包含冗余和备用电源,冗余数据通信连接,环境控制(例如空调、灭火器)和各种安全设备。

随着大数据和云计算近年来在各个领域越来越多被广泛运用,数据存储需求越来越大,传统存储系统已经无法满足需求(传统存储的扩展性十分有限),拥有互联网基因特质的对象存储是不二选择。对象存储的高度扩展性正好符合大容量的非结构化数据(如图片、视频、归档文件等)存储需求。同时,对于存储访问的可用性也提出来极其严苛的要求,多数据中心的数据同步需求应运而生。

多数据中心(multisite)是cephjewel版本新增的功能,旨在实现异地双活,提供了备份容灾的能力。并且具有多个数据中心供用户选择,存放资源。

现有技术的缺点:现有的同步方案有ceph最低版本要求,并且不同数据中心的ceph集群需要版本匹配,低于j版本的老系统无法享受到这个红利。同时,multisite方案刚推出不久,稳定性值得商榷,这对于存储系统来说是个极大的隐患,数据安全性是所有存储系统首要目标。另一方面,multisite内部复杂的处理逻辑即使是专业的存储研发团队也并非那容易能够搞定。因此对于一般中小型公司自建的ceph存储系统,multisite多数据中心同步方案短时间不是一个可行的方案。

因此,需要一种新的多数据中心同步方案。

在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本发明的目的在于提供一种多数据中心数据同步方法及系统,进而解决多数据中心的数据同步问题,实现多数据中心的数据同步以及互为备份,提高数据的安全性,同时降低实施成本并提高多版本的兼容性。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

根据本发明的第一方面,公开一种多数据中心数据同步的方法,其中多个数据中心采用对象存储系统,所述方法包括:

web服务平台接收针对对象存储的http请求并把http请求复制到web服务平台的http拦截器;

当http请求不会引起数据中心的状态变化时,通过http拦截器向目标数据中心发送http请求;以及

当http请求会引起数据中心的状态变化时,通过http拦截器向所有数据中心同步发送http请求。

根据本发明的一示例实施方式,其中

web服务平台还包括中间存储层,当会引起数据中心的状态变化的http请求为上传资源的请求时,通过中间存储层存储上传的资源;以及

http拦截器还用于向所有数据中心同步发送上传的资源。

根据本发明的一示例实施方式,其中在同步发送上传的资源完成后,将中间存储层中的上传的资源删除。

根据本发明的一示例实施方式,其中中间存储层还用于存储同步状态信息;以及中间存储层采用redis数据库。

根据本发明的一示例实施方式,所述的方法还包括通过资源状态app查询数据中心或web服务平台的资源状态并通过资源状态app的用户界面进行展示。

根据本发明的一示例实施方式,其中对象存储系统为ceph存储系统;以及web服务平台为openresty。

根据本发明的一示例实施方式,其中web服务平台与数据中心之间采用cgi协议进行通信;以及http拦截器采用lua脚本语言进行编写。

根据本发明的第二方面,公开一种多数据中心数据同步系统,其特征在于,包括web服务平台以及多个采用对象存储系统的数据中心,其中

web服务平台包括http拦截器,web服务平台接收针对对象存储的http请求并把http请求复制到http拦截器中,其中

当http请求不会引起数据中心的状态变化时,通过http拦截器向目标数据中心发送http请求;以及

当http请求会引起数据中心的状态变化时,通过http拦截器向所有数据中心同步发送http请求。

根据本发明的一示例实施方式,其中

web服务平台还包括中间存储层,当会引起数据中心的状态变化的http请求为上传资源的请求时,通过中间存储层存储上传的资源;以及

http拦截器还用于向所有数据中心同步发送上传的资源。

根据本发明的一示例实施方式,其中中间存储层还用于存储同步状态信息;以及中间存储层采用redis数据库。

根据本发明的一示例实施方式,所述系统还包括资源状态app,用于查询数据中心或web服务平台的资源状态并通过资源状态app的用户界面进行展示。

根据本发明的一示例实施方式,其中对象存储系统为ceph存储系统;以及web服务平台为openresty。

根据本发明的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述任意一项所述的方法步骤。

根据本发明的第四方面,提供一种电子设备,其特征在于,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任意一项所述的方法步骤。

根据本发明的一些示例实施方式,通过设置http拦截器提高数据的安全性,多个数据中心通过数据同步可以实现互为备份,当某数据中心故障时,可以迅速切换到备份的数据中心。

根据本发明的一些示例实施方式,实施成本更低廉,对于现有集群(数据中心)不需要进行变更,而且兼容多版本,对用户无感知。

根据本发明的一些示例实施方式,通过http拦截器可以实现多样的控制手段。

根据本发明的另一些示例实施方式,通过资源状态app的用户界面可以实现更丰富的数据状态展示。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。

图1示出根据本发明一示例实施方式的一多数据中心数据同步的方法流程图。

图2示出根据本发明一示例实施方式的一多数据中心数据同步系统的方框图。

图3示出通过用户界面对资源状态进行展示的示意图。

图4示出根据本发明一示例实施方式的电子设备。

具体示例实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本发明的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本发明的各方面变得模糊。

附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

本发明的目的在于提供一种多数据中心数据同步方法及系统,其中多个数据中心采用对象存储系统,所述方法包括:web服务平台接收针对对象存储的http请求并把http请求复制到web服务平台的http拦截器;当http请求不会引起数据中心的状态变化时,通过http拦截器向目标数据中心发送http请求;以及当http请求会引起数据中心的状态变化时,通过http拦截器向所有数据中心同步发送http请求。通过设置http拦截器提高数据的安全性,多个数据中心通过数据同步可以实现互为备份,当某数据中心故障时,可以迅速切换到备份的数据中心,实施成本更低廉,对于现有集群(数据中心)不需要进行变更,且兼容多版本,对用户无感知。同时通过http拦截器可以实现多样的控制手段。此外,通过资源状态app的用户界面可以实现更丰富的数据状态展示。

下面结合图1-4对本发明的多数据中心数据同步方法及系统进行详细说明,其中,图1示出根据本发明一示例实施方式的一多数据中心数据同步的方法流程图。图2示出根据本发明一示例实施方式的一多数据中心数据同步系统的方框图;图3示出通过用户界面对资源状态进行展示的示意图;图4示出根据本发明一示例实施方式的电子设备。

如图1-2所示,多数据中心数据同步系统采用python的web框架,包括包括web服务平台1以及多个采用对象存储系统(objectstorage:一种采用扁平数据组织形式并通过基于http协议的restful接口访问的分布式存储系统)的数据中心2,其中web服务平台1包括http拦截器11,本发明的多数据中心数据同步方法通过web服务平台1接收针对对象存储的http请求并把http请求复制到http拦截器11中,其中当http请求不会引起数据中心的状态变化时,通过http拦截器向目标数据中心发送http请求;以及当http请求会引起数据中心的状态变化时,通过http拦截器向所有数据中心同步发送http请求。通过设置http拦截器实现了多数据中心的数据同步,提高数据的安全性,多个数据中心通过数据同步可以实现互为备份,当某数据中心故障时,可以迅速切换到备份的数据中心,实施成本更低廉,对于现有数据集群(数据中心)不需要进行变更,且兼容多版本,对用户无感知。同时通过http拦截器可以实现多样的控制手段。

下面结合图1-2对本发明的多数据中心数据同步方法进行具体说明。如图1所示,在s102,web服务平台接收针对对象存储的http请求并把http请求复制到web服务平台的http拦截器。

其中对象(object)是指:系统中数据存储的基本单位,每个object是数据和数据属性集的综合体,数据属性可以根据应用的需求进行设置,包括数据分布、服务质量等。

其中http请求可以来自于客户端,但本发明不限于此,http请求还可以来源于其它源头。

在s104,当http请求不会引起数据中心的状态变化时,通过http拦截器向目标数据中心发送http请求。也就是说,当http请求不会引起数据中心的状态变化时仅向目标数据中心发送http请求即可,而不必涉及其他数据中心。

在s106,当http请求会引起数据中心的状态变化时,通过http拦截器向所有数据中心同步发送http请求。

根据本发明的一示例实施方式,其中web服务平台还包括中间存储层12(如图2所示),当会引起数据中心的状态变化的http请求为上传资源的请求时,通过中间存储层12存储上传的资源;以及http拦截器还用于向所有数据中心同步发送上传的资源。

根据本发明的一示例实施方式,其中在同步发送上传的资源完成后,将中间存储层中的上传的资源删除。

根据本发明的一示例实施方式,其中中间存储层还用于存储同步状态信息。

根据本发明的一示例实施方式,其中中间存储层采用redis数据库。其中redis是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key-value(key-value存储系统,即键-值存储系统,简称kv存储系统)数据库,并提供多种语言的api。但本发明不限于此,中间存储层也可以采用如mysql数据库等其他类型的数据库。

根据本发明的一示例实施方式,所述的方法还包括通过资源状态app3查询数据中心或web服务平台(包括中间存储层等)的(redis和/或mysql等数据库的)资源状态并通过资源状态app3的用户界面(ui)31进行展示(如图3所示)。但本发明不限于此,数据中心或web服务平台(包括中间存储层等)的资源状态也可以通过各自的用户界面进行展示。

根据本发明的一示例实施方式,其中对象存储系统为ceph存储系统。其中,ceph是一种高性能、高可靠、可扩展的统一(包含块、文件、对象)存储系统;而rgw(radosgateway)是ceph对象存储系统网关。

根据本发明的一示例实施方式,其中web服务平台为openresty。

对web服务平台openresty的具体说明如下:

openresty:一个基于nginx与lua的高性能web平台,其内部集成了大量精良的lua库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态web应用、web服务和动态网关。

nginx:一个高性能的http和反向代理服务器,也是一个imap/pop3/smtp代理服务器。

lua:一种简洁、轻量、可扩展的脚本语言,是巴西里约热内卢天主教大学(pontificalcatholicuniversityofriodejaneiro)里的一个研究小组于1993年开发。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。lua由标准c编写而成,几乎在所有操作系统和平台上都可以编译,运行,在目前所有脚本引擎中,lua的速度是最快的。其中lua并非英语的缩写,而是这个脚本语言的葡萄牙语的音译(巴西讲葡萄牙语)。

根据本发明的一示例实施方式,其中web服务平台(openresty)与(ceph)数据中心(的ceph对象存储系统网关即rgw)之间采用cgi协议进行通信。其中cgi(commongatewayinterface)是一个标准协议,它为web服务器提供了一个标准的协议,以便于服务器可以像运行命令行接口程序那样来运行第三方程序,这些第三方程序可以动态地生成web页面。这些第三方程序被称为cgi脚本。进一步的,还可以采用fastcgi进行通信,其中fastcgi是cgi的更高级的一种方式,是用来提高cgi程序性能的。

根据本发明的一示例实施方式,其中http拦截器采用lua脚本语言进行编写。

从客户端视角看,rgw就是一个http服务。与此同时,rgw还支持fastcgi模式,在rgw前面架设一个新web服务(openresty),把正常的http请求通过fastcgi转发给原始(目标数据中心)的rgw,同时“复制”http请求并推送到openresty里的lua处理程序(http拦截器),由它来实现(多个数据中心的)数据同步及相关控制处理。

下面以http请求为上传资源的post请求为例来具体说明采用本发明的多数据中心数据同步方法进行数据同步的处理流程:

1、当一个请求(主要是指上传资源的post请求)通过web服务平台openresty时,根据请求在web服务平台openresty里的处理机制,把请求复制到lua写的http拦截器里;

2、http拦截器把上传的资源放到中间存储层里(redis);

3、http拦截器把资源进行编号,并设置开始同步的状态(此同步状态消息也可以放在redis,并随时查看);

4、http拦截器触发向远程同步(其实也就是构造对象存储的请求发送到异地的ceph集群/ceph数据中心);

5、不断轮训查询同步状态,同步完成时修改状态存储表(redis里表);

6、同步完成后,可以删除在redis里的临时资源;

7、所有状态变化可以在http拦截器设置相关程序,把它们持久化到数据库里(比如mysql数据库)。

下面结合图2对本发明的多数据中心数据同步系统进行具体说明。

如图2所示,多数据中心数据同步系统,采用python的web框架,包括包括web服务平台1以及多个采用对象存储系统(objectstorage:一种采用扁平数据组织形式并通过基于http协议的restful接口访问的分布式存储系统)的数据中心2,其中web服务平台1包括http拦截器11,web服务平台1接收针对对象存储的http请求并把http请求复制到http拦截器11中,其中当http请求不会引起数据中心的状态变化时,通过http拦截器向目标数据中心发送http请求,也就是说,当http请求不会引起数据中心的状态变化时仅向目标数据中心发送http请求即可,而不必涉及其他数据中心;以及当http请求会引起数据中心的状态变化时,通过http拦截器向所有数据中心同步发送http请求。通过设置http拦截器实现了多数据中心的数据同步,提高数据的安全性,多个数据中心通过数据同步可以实现互为备份,当某数据中心故障时,可以迅速切换到备份的数据中心,实施成本更低廉,对于现有数据集群(数据中心)不需要进行变更,且兼容多版本,对用户无感知。同时通过http拦截器可以实现多样的控制手段。

其中http请求可以来自于客户端,但本发明不限于此,http请求还可以来源于其它源头。

根据本发明的一示例实施方式,其中

web服务平台还包括中间存储层12,当会引起数据中心的状态变化的http请求为上传资源的请求时,通过中间存储层12存储上传的资源;以及

http拦截器还用于向所有数据中心同步发送上传的资源。

根据本发明的一示例实施方式,其中在同步发送上传的资源完成后,将中间存储层中的上传的资源删除。

根据本发明的一示例实施方式,其中中间存储层还用于存储同步状态信息。

根据本发明的一示例实施方式,其中中间存储层采用redis数据库。其中redis是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key-value(key-value存储系统,即键-值存储系统,简称kv存储系统)数据库,并提供多种语言的api。但本发明不限于此,中间存储层也可以采用如mysql数据库等其他类型的数据库。

根据本发明的一示例实施方式,还包括资源状态app3,用于查询数据中心或web服务平台(包括中间存储层等)的(redis和/或mysql等数据库的)资源状态并通过资源状态app3的用户界面(ui)31进行展示(如图3所示)。但本发明不限于此,数据中心或web服务平台(包括中间存储层等)的资源状态也可以通过各自的用户界面进行展示。

根据本发明的一示例实施方式,其中对象存储系统为ceph存储系统。

根据本发明的一示例实施方式,其中web服务平台为openresty。

根据本发明的一示例实施方式,其中web服务平台(openresty)与(ceph)数据中心(的ceph对象存储系统网关即rgw)之间采用cgi协议进行通信。其中cgi(commongatewayinterface)是一个标准协议,它为web服务器提供了一个标准的协议,以便于服务器可以像运行命令行接口程序那样来运行第三方程序,这些第三方程序可以动态地生成web页面。这些第三方程序被称为cgi脚本。进一步的,还可以采用fastcgi进行通信,其中fastcgi是cgi的更高级的一种方式,是用来提高cgi程序性能的。

根据本发明的一示例实施方式,其中http拦截器采用lua脚本语言进行编写。

从客户端视角看,rgw就是一个http服务。与此同时,rgw还支持fastcgi模式,在rgw前面架设一个新web服务(openresty),把正常的http请求通过fastcgi转发给原始(目标数据中心)的rgw,同时“复制”http请求并推送到openresty里的lua处理程序(http拦截器),由它来实现(多个数据中心的)数据同步及相关控制处理。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的系统中所包含的;也可以是单独存在,而未装配入该系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该系统执行时,使得该系统可以实现上述任一示例实施方式所述的方法步骤。

图4示出根据本发明一示例实施方式的电子设备。

如图4所示,电子设备400可包括:一个或多个处理器410;存储器420。另外,根据一实施例,电子设备还可包括发射器及接收器。

处理器410可调用存储器420中存储的指令控制相关操作,如控制发射器和接收器进行信号收发等。根据一实施例,存储器420存储用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器410执行时,使得所述一个或多个处理器410实现上述任一示例实施方式所述的方法步骤。处理器410可调用存储器420中存储的指令控制相关操作。易于理解,存储器420还可存储用于处理器410控制根据本发明实施例的其他操作的指令,这里不再赘述。

通过以上的详细描述,本领域的技术人员易于理解,根据本发明实施例的多数据中心数据同步方法及系统具有以下优点中的一个或多个。

根据本发明的一些示例实施方式,通过设置http拦截器提高数据的安全性,多个数据中心通过数据同步可以实现互为备份,当某数据中心故障时,可以迅速切换到备份的数据中心。

根据本发明的一些示例实施方式,实施成本更低廉,对于现有集群(数据中心)不需要进行变更,而且兼容多版本,对用户无感知。

根据本发明的一些示例实施方式,通过http拦截器可以实现多样的控制手段。

根据本发明的另一些示例实施方式,通过资源状态app的用户界面可以实现更丰富的数据状态展示。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1