CN104461779B - 一种分布式数据的存储方法、装置及*** - Google Patents

一种分布式数据的存储方法、装置及*** Download PDF

Info

Publication number
CN104461779B
CN104461779B CN201410713367.8A CN201410713367A CN104461779B CN 104461779 B CN104461779 B CN 104461779B CN 201410713367 A CN201410713367 A CN 201410713367A CN 104461779 B CN104461779 B CN 104461779B
Authority
CN
China
Prior art keywords
file
data
operation instruction
storage
write operation
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.)
Active
Application number
CN201410713367.8A
Other languages
English (en)
Other versions
CN104461779A (zh
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.)
Shenzhen Huawei Cloud Computing Technology 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 CN201410713367.8A priority Critical patent/CN104461779B/zh
Publication of CN104461779A publication Critical patent/CN104461779A/zh
Application granted granted Critical
Publication of CN104461779B publication Critical patent/CN104461779B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施例提供一种分布式数据的存储方法、装置及***,将绝大部分数据读写操作限制在指定的DC内进行,从而提升分布式IMDG数据的存储性能。该方案包括:第一DC获取本地用户发起的对第一文件的写操作指令;若跨DC数据地址信息中不包括第一文件的标识,且第一DC中有存储第一文件的存储资源,则为第一文件在第一DC中分配存储地址,以便将第一文件写入第一DC中的存储地址;若跨DC数据地址信息中不包括第一文件的标识,且第一DC没有存储第一文件的存储资源,则将第一文件的写操作指令为第一文件分配发送写入给第二DC;第一DC将第一文件的标识和第一文件在第二DC的存储地址的对应关系保存至跨DC数据地址信息中。

Description

一种分布式数据的存储方法、装置及***
技术领域
本发明涉及数据存储技术领域,尤其涉及一种分布式数据的存储方法、装置及***。
背景技术
内存数据网格(In-Memory Data Grid,IMDG),是分布式数据技术中的一种典型代表,它可以将数据存储到内存中,并使数据均衡分布到多个服务器上,具有良好的扩展性,因而被广泛应用于高性能、大规模、易扩展的分布式数据业务处理领域。
具体的,如图1所示,为IMDG数据服务的架构示意图,运营商在IaaS(Infrastructure as a Service,基础设施即服务)层部署IMDG软件以形成数据中心(DataCenter,DC),并统一对PaaS(Platform as a Service,平台即服务)层不同租户的虚拟机提供IMDG数据的访问和存储服务。租户在发送虚拟机创建请求后,DC会根据虚拟机创建请求中该租户所在的物理地域位置优先在指定的本地DC内进行虚拟机的数据存取,当发生本地DC资源迁移等异常场景时,需要跨Internet(因特网)对租户的虚拟机进行跨DC的数据处理。
为了解决IMDG数据的跨DC处理问题,如图2所示,现有技术中通常在DC之间配置VPN(Virtual Private Network,虚拟专用网络)通道,从而将跨Internet连接的DC形成一个虚拟局域网,这样一来,IMDG数据可以在VPN通道内流通至其他DC。这样一来,所有DC内的IMDG数据会在所有服务器内均衡分布,因此,当DC1的租户需要调度DC1内的IMDG数据时,会出现近一半的IMDG数据访问操作都需要通过VPN通道进行跨DC通讯,降低了分布式IMDG数据的存储性能。
发明内容
本发明的实施例提供一种分布式数据的存储方法、装置及***,将绝大部分数据读写操作限制在指定的DC内进行,避免频繁使用VPN通道进行跨DC数据通信,从而提升IMDG数据的存储性能。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明的实施例提供一种分布式数据的存储方法,所述方法应用于分布式数据存储***中N个数据中心DC的任一个DC,N>1,所述方法包括:
第一DC获取本地用户发起的对第一文件的写操作指令,所述写操作指令至少包括第一文件的标识,所述第一DC为所述N个DC中的任一个;
若跨DC数据地址信息中不包括所述第一文件的标识,且所述第一DC中有存储所述第一文件的存储资源,所述第一DC则为所述第一文件在所述第一DC中分配存储地址,以便将所述第一文件写入所述第一DC中的存储地址;
若所述跨DC数据地址信息中不包括所述第一文件的标识,且所述第一DC没有存储所述第一文件的存储资源,所述第一DC则将所述第一文件的写操作指令发送给第二DC,以使得所述第二DC写入所述第一文件,并发送所述第一文件在所述第二DC内的存储地址至所述第一DC,所述第二DC为所述N个DC中除所述第一DC中的任一个;
所述第一DC将所述第一文件的标识和所述第一文件在所述第二DC的存储地址的对应关系保存至所述跨DC数据地址信息中;
其中,所述跨DC数据地址信息中保存有存储在所述第二DC中的本地用户文件的标识,及所述本地用户文件存储在所述第二DC中的存储地址的对应关系。
结合第一方面,在第一方面的第一种可能的实现方式中,在第一DC接收本地用户发起的对第一文件的写操作指令之后,还包括:
若所述跨DC数据地址信息中包括所述第一文件的标识,所述第一DC则在所述跨DC数据地址信息中查找所述第一文件在所述第二DC中的存储地址;
所述第一DC将所述第一文件的写操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC,以使得所述第二DC将所述第一文件写入所述第二DC中的存储地址。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述第一DC获取本地用户发起的对第一文件的写操作指令,包括:
所述第一DC查询发起所述第一文件的写操作指令的用户的信息;
若所述用户的信息符合预置的本地用户信息,所述第一DC则确定所述第一文件的写操作指令为本地用户发起的对第一文件的写操作指令。
结合第一方面或第一方面的第一至第二种可能的实现方式中的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:
所述第一DC获取本地用户发起的对第一文件的读操作指令,所述读操作指令至少包括第一文件的标识;
若所述跨DC数据地址信息中不包括所述第一文件的标识,所述第一DC则根据所述第一文件的标识在所述第一DC中读取所述第一文件。
结合前述的第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,在所述第一DC获取本地用户发起的对第一文件的读操作指令之后,还包括:
若所述跨DC数据地址信息中包括所述第一文件的标识,所述第一DC则在所述跨DC数据地址信息中查找所述第一文件在所述第二DC中的存储地址;
所述第一DC将所述第一文件的读操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC,以使得所述第二DC所述第二DC中的存储地址处读取所述第一文件。
结合前述的第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,在所述第一DC将所述第一文件的读操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC之后,还包括:
所述第一DC从所述第二DC获取所述第一文件;
所述第一DC将所述第一文件和所述第一文件的标识保存至所述第一DC的高速缓存中,以便所述第一DC再次接收到所述第一文件的读操作指令时,从所述第一DC的高速缓存中读取所述第一文件。
结合前述的第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,在所述第一DC获取本地用户发起的对第一文件的读操作指令之后,还包括:
若所述第一DC的高速缓存中包含有所述第一文件的标识,所述第一DC则从所述第一DC的高速缓存中读取所述第一文件。
结合前述的第一方面的第一至第六种可能的实现方式中的任一种可能的实现方式,在第一方面的第七种可能的实现方式中,所述方法还包括:
所述第一DC获取备份策略信息,所述备份策略信息用于指示分别对其他M个DC中的数据进行数据备份,N-1≥M≥1;
所述第一DC根据所述备份策略信息建立与所述其他M个DC建立备份通道,以便根据所述备份策略信息将所述其他M个DC中的数据备份至所述第一DC。
结合前述的第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述方法还包括:
若所述第二DC发生故障,所述第一DC则获取针对所述第二DC的数据恢复指令;
所述第一DC根据所述数据恢复指令,将所述第一DC内已备份的所述第二DC的数据恢复至所述第一DC;
所述第一DC将已恢复的所述第二DC的数据在所述第一DC的存储地址更新至所述跨DC数据地址信息。
第二方面,本发明的实施例提供一种分布式数据的存储方法,所述方法应用于分布式数据存储***中N个数据中心DC的任一个DC,N>1,所述方法包括:
转发设备获取第一文件的写操作指令或读操作指令;
所述转发设备查询发起所述第一文件的写操作指令或读操作指令的用户的信息;
所述转发设备根据所述用户的信息以及预置的所述N个DC的用户信息,确定所述第一文件的写操作指令或读操作指令为针对第一DC的写操作指令或读操作指令,所述第一DC为所述N个DC中的任一个,N>1;
所述转发设备将所述第一文件的写操作指令或读操作指令发送至所述第一DC。
第三方面,本发明的实施例提供一种数据中心DC,所述DC应用于包含有N个DC的分布式数据存储***,其中,所述DC中存储有跨DC数据地址信息,N>1,所述DC包括:
获取单元,用于获取本地用户发起的对第一文件的写操作指令,所述写操作指令至少包括第一文件的标识;
本地读写单元,用于若跨DC数据地址信息中不包括所述第一文件的标识,且第一DC中有存储所述第一文件的存储资源,则为所述第一文件在所述第一DC中分配存储地址,以便将所述第一文件写入所述第一DC中的存储地址,所述第一DC为所述N个DC中的任一个;
跨DC读写单元,用于若所述跨DC数据地址信息中不包括所述第一文件的标识,且所述第一DC没有存储所述第一文件的存储资源,则将所述第一文件的写操作指令发送给第二DC,以使得所述第二DC写入所述第一文件,并发送所述第一文件在所述第二DC内的存储地址至所述第一DC,所述第二DC为所述N个DC中除所述第一DC中的任一个;
存储单元,用于将所述第一文件的标识和所述第一文件在所述第二DC的存储地址的对应关系保存至所述跨DC数据地址信息中;
其中,所述跨DC数据地址信息中保存有存储在所述第二DC中的本地用户文件的标识,及所述本地用户文件存储在所述第二DC中的存储地址的对应关系。
结合第三方面,在第三方面的第一种可能的实现方式中,所述DC还包括发送单元,其中,
所述跨DC读写单元,还用于若所述跨DC数据地址信息中包括所述第一文件的标识,则在所述跨DC数据地址信息中查找所述第一文件在所述第二DC中的存储地址;
所述发送单元,用于将所述第一文件的写操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC,以使得所述第二DC将所述第一文件写入所述第二DC中的存储地址。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,
所述获取单元,具体用于查询发起所述第一文件的写操作指令的用户的信息;若所述用户的信息符合预置的本地用户信息,则确定所述第一文件的写操作指令为本地用户发起的对第一文件的写操作指令。
结合第三方面以及第三方面的第一至第二种可能的实现方式,在第三方面的第三种可能的实现方式中,
所述获取单元,还用于获取本地用户发起的对第一文件的读操作指令,所述读操作指令至少包括第一文件的标识;
所述本地读写单元,还用于若所述跨DC数据地址信息中不包括所述第一文件的标识,则根据所述第一文件的标识在所述第一DC中读取所述第一文件。
结合第三方面以及第三方面的第一至第三种可能的实现方式,在第三方面的第四种可能的实现方式中,
所述跨DC读写单元,还用于若所述跨DC数据地址信息中包括所述第一文件的标识,则在所述跨DC数据地址信息中查找所述第一文件在所述第二DC中的存储地址;
所述地发送单元,还用于将所述第一文件的读操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC,以使得所述第二DC所述第二DC中的存储地址处读取所述第一文件。
结合第三方面以及第三方面的第一至第四种可能的实现方式,在第三方面的第五种可能的实现方式中,
所述获取单元,还用于从所述第二DC获取所述第一文件;
所述存储单元,还用于将所述第一文件和所述第一文件的标识保存至所述第一DC的高速缓存中,以便所述第一DC再次接收到所述第一文件的读操作指令时,从所述第一DC的高速缓存中读取所述第一文件。
结合前述的第三方面的第一至第五种可能的实现方式,在第三方面的第六种可能的实现方式中,
所述本地读写单元,还用于若所述第一DC的高速缓存中包含有所述第一文件的标识,则从所述第一DC的高速缓存中读取所述第一文件。
结合前述的第三方面的第一至第六种可能的实现方式,在第三方面的第七种可能的实现方式中,所述DC还包括备份单元,其中,
所述获取单元,还用于获取备份策略信息,所述备份策略信息用于指示分别对其他M个DC中的数据进行数据备份,N-1≥M≥1;
所述备份单元,用于根据所述备份策略信息建立与所述其他M个DC建立备份通道,以便根据所述备份策略信息将所述其他M个DC中的数据备份至所述第一DC。
结合前述的第三方面的第七种可能的实现方式,在第三方面的第八种可能的实现方式中,所述DC还包括容灾单元,其中,
所述获取单元,还用于若所述第二DC发生故障,则获取针对所述第二DC的数据恢复指令;
所述容灾单元,用于根据所述数据恢复指令,将所述第一DC内已备份的所述第二DC的数据恢复至所述第一DC;
所述存储单元,还用于将已恢复的所述第二DC的数据在所述第一DC的存储地址更新至所述跨DC数据地址信息。
第四方面,本发明实施例提供一种转发设备,包括:
获取单元,用于获取第一文件的写操作指令或读操作指令;
查找单元,用于查询发起所述第一文件的写操作指令或读操作指令的用户的信息;
确定单元,用于根据所述用户的信息以及预置的N个数据中心DC的用户信息,确定所述第一文件的写操作指令或读操作指令为针对第一DC的写操作指令或读操作指令,所述第一DC为所述N个DC中的任一个,N>1;
转发单元,用于将所述第一文件的写操作指令或读操作指令发送至所述第一DC。
第五方面,本发明的实施例提供一种分布式数据存储***,所述***包含至少一个如第三方面以及第三方面的第一至第八种可能的实现方式中的任一种所述的数据中心DC,其中,
每一个DC中存储有跨DC数据地址信息,所述跨DC数据地址信息中保存有存储在其他DC中的本地用户文件的标识,及所述本地用户文件存储在所述其他DC中的存储地址的对应关系信息,N>1。
结合第五方面,在第五方面的第一种可能实现的方式中,所述***还包括如第四方面所述的转发设备,所述转发设备与所述每一个DC均相连。
本发明的实施例提供一种分布式数据的存储方法、装置及***,通过获取本地用户发起的对第一文件的写操作指令,并根据本地的第一DC自身的存储资源和已存储的跨DC数据地址信息,确定所述第一文件的写入操作是否属于第一DC,若属于第一DC则直接执行第一文件的写操作指令,若属于第二DC则确定写入第二DC的存储地址,并且更新该跨DC数据地址信息,以便再次接收到第一文件的写操作指令时及时将第一文件的写操作指令转发至第二DC中执行,这样一来,第一DC将绝大部分本地用户发起写操作指令的执行操作限制在本地第一DC内进行,同时,在因存储资源不足等异常场景需要对写操作指令进行跨DC操作时,及时根据跨DC数据地址信息将写操作指令调度至其他DC内进行,避免了在现有技术中,对于使用VPN通道将各个DC内的数据均衡存储至各个DC的服务器中的数据进行访问时,可能带来的VPN通道拥塞或者IMDG数据的存储性能降低的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中内存数据网格服务的架构示意图;
图2为现有技术中跨DC内存数据网格服务的架构示意图;
图3为本发明实施例提供的一种分布式数据的存储***的架构示意图一;
图4为本发明实施例提供的一种分布式数据的存储***的架构示意图二;
图5为本发明实施例提供的一种分布式数据的存储方法的流程示意图一;
图6为本发明实施例提供的一种分布式数据的存储方法的流程示意图二;
图7为本发明实施例提供的一种分布式数据的存储方法的流程示意图三
图8为本发明实施例提供的一种分布式数据的读取方法的流程示意图;
图9为本发明实施例提供的一种分布式数据的备份方法的流程示意图;
图10为本发明实施例提供的一种分布式数据的恢复方法的流程示意图;
图11为本发明实施例提供的一种DC的硬件示意图;
图12为本发明实施例提供的一种转发设备的硬件示意图;
图13为本发明实施例提供的一种DC的结构示意图一;
图14为本发明实施例提供的一种DC的结构示意图二;
图15为本发明实施例提供的一种DC的结构示意图三;
图16为本发明实施例提供的一种DC的结构示意图四;
图17为本发明实施例提供的一种转发设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、接口、技术之类的具体细节,以便透彻理解本发明。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
实施例一
本发明的实施例提供一种分布式数据的存储***,如图3所示,该分布式数据的存储***包括至少一个数据中心DC(例如第一DC01和第二DC02),其中,每一个DC中还可以包括收发模块、备份模块以及高速缓存等。
为方便描述,本发明的实施例中的分布式数据的存储***以两个数据中心(即第一DC01和第二DC02)为例进行详细说明。另外,本发明实施例以及后续实施例中所涉及的文件(例如第一文件)中所包括含的数据可以是以IMDG数据为代表的分布式数据,也可以是其他格式的数据,而本发明对比不做限定。
具体的,由于数据中心DC通常是根据用户物理地域信息使用就近原则在与物理地域信息对应的本地DC内进行数据读写,只有在所属DC资源不足或数据发生迁移的异常场景下才会存在少量同一个用户跨DC读写数据的场景,因此,可以将这些本应在第一DC01内进行读写的数据,却因为第一DC01资源不足或数据发生迁移而发放至第二DC02内进行读写的数据称为跨DC数据。
其中,第一DC01中存储有跨DC数据地址信息,该跨DC数据地址信息中保存有存储在第二DC02中的本地用户文件的标识(例如文件所对应的KEY值,即文件所对应的虚拟编码),及本地用户文件存储在第二DC02中的存储地址(例如文件的在DC内的存储块datablock位置)的对应关系信息。
相应的,第二DC02中也存储有相应的跨DC数据地址信息,该跨DC数据地址信息中保存有存储在第一DC01中的本地用户文件的标识(例如文件所对应的KEY值),及本地用户文件存储在第一DC01中的存储地址(例如文件的在DC内的存储块位置)的对应关系信息。
当然,为了方便实施,该跨DC数据地址信息可以将该分布式数据的存储***中所有的跨DC数据地址信息制成表格进行保存,而每一个DC只需要缓存自己的跨DC数据地址信息即可。
在本发明的实施例中,第一DC01获取本地用户发起的对第一文件的写操作指令,该写操作指令至少包括第一文件的标识(例如第一文件的KEY值);若跨DC数据地址信息中不包括第一文件的标识,且第一DC01中有存储第一文件的存储资源,第一DC01则为第一文件在第一DC01中分配存储地址,以便将第一文件写入第一DC01中的存储地址;若跨DC数据地址信息中不包括第一文件的标识,且第一DC01没有存储第一文件的存储资源,第一DC01则将第一文件的写操作指令发送给第二DC02,以使得第二DC02写入该第一文件,并且,第二DC02将第一文件在第二DC02内的存储地址发送至第一DC01,这样,第一DC01将第一文件的标识和第一文件在第二DC02的存储地址的对应关系保存至跨DC数据地址信息中,以便于第一DC01再次接收到该第一文件的写操作指令时及时将该写操作指令发送至第二DC02进行写操作。
进一步地,在第一DC01接收本地用户发起的对第一文件的写操作指令之后,还可以具体包括:若跨DC数据地址信息中包括第一文件的标识,第一DC01则在跨DC数据地址信息中查找第一文件在第二DC02中的存储地址;第一DC01将第一文件的写操作指令和第一文件在第二DC02中的存储地址发送至第二DC02,以使得第二DC02将第一文件写入第二DC02中的存储地址。
进一步地,第一DC01获取本地用户发起的对第一文件的写操作指令,可以具体包括:第一DC01首先查询发起第一文件的写操作指令的用户的信息;若用户的信息符合预置的本地用户信息,第一DC01则确定第一文件的写操作指令为本地用户发起的对第一文件的写操作指令。
当然,第一DC01内还可以存储有其他DC的用户信息,如果第一DC01查询到的发起第一文件的写操作指令的用户的信息符合其他DC的用户信息,第一DC01还可以将该写操作指令发送至其他DC,以使得其他DC根据该写操作指令写入第一文件。
进一步地,第一DC01获取第一DC01的写操作指令,可以具体包括:第一DC01通过统一API接口03获取所述写操作指令所属的用户的信息;并根据预置的用户物理地域信息和所述用户的信息确定所述写操作指令为所述第一DC01的写操作指令。
本发明的实施例提供的一种分布式数据的存储方法,还可以包括步骤:第一DC01获取本地用户发起的对第一文件的读操作指令,该读操作指令至少包括第一文件的标识;若跨DC数据地址信息中不包括第一文件的标识,第一DC01则根据第一文件的标识在第一DC01中读取第一文件。
进一步地,在第一DC01获取本地用户发起的对第一文件的读操作指令之后,若跨DC数据地址信息中包括第一文件的标识,第一DC01则在跨DC数据地址信息中查找第一文件在第二DC02中的存储地址;第一DC01将第一文件的读操作指令和第一文件在第二DC02中的存储地址发送至第二DC02,以使得第二DC02从该第二DC02中的存储地址处读取第一文件。
进一步地,在第一DC01将第一文件的读操作指令和第一文件在第二DC02中的存储地址发送至第二DC02之后,还可以包括步骤:第一DC01从第二DC02获取第一文件;第一DC01将第一文件和第一文件的标识保存至第一DC01的高速缓存中,以便第一DC01再次接收到第一文件的读操作指令时,直接从第一DC01的高速缓存中读取第一文件,无需进行跨DC操作。
相应的,在第一DC01获取本地用户发起的对第一文件的读操作指令之后,还可以包括步骤:若第一DC01的高速缓存中包含有第一文件的标识,第一DC01则直接从第一DC01的高速缓存中读取第一文件。
本发明的实施例提供的一种分布式数据的存储方法,还可以包括步骤:第一DC01获取第一DC01的备份策略信息,所述备份策略信息用于指示分别对第二DC02中的数据进行数据备份;第一DC01根据所述备份策略信息与所述第二DC02建立备份通道,以便根据所述备份策略信息将所述第二DC02中的数据备份至所述第一DC01,这样,每一个DC都可以获取针对其他DC的备份策略,在自身DC内设置备份模块,并建立与其他DC的备份通道,使用该备份通道按照备份策略对其他DC的数据进行备份,一旦分布式数据的存储***中某个DC发生故障,数据遭到破坏,其他DC可以快速的从自己的备份模块获取发生故障的DC内的数据,提高了IMDG数据的存储性能,并提高了整个分布式数据的存储***的稳定性。
进一步地,本发明的实施例提供的一种分布式数据的存储方法,还可以包括步骤:若第二DC02发生故障,第一DC01则获取针对第二DC02的数据恢复指令;第一DC01根据数据恢复指令,将第一DC01内已备份的第二DC02的数据恢复至第一DC01;进而,第一DC01将已恢复的第二DC02的数据在第一DC01的存储地址更新至跨DC数据地址信息。
至此,第一DC通过获取本地用户发起的对第一文件的写操作指令,并根据本地的第一DC自身的存储资源和已存储的跨DC数据地址信息,确定所述第一文件的写入操作是否属于本地的第一DC,若属于第一DC则直接执行第一文件的写操作指令,若属于第二DC则确定写入第二DC的存储地址,并且更新该跨DC数据地址信息,以便再次接收到第一文件的写操作指令时及时将第一文件的写操作指令转发至第二DC执行,这样一来,第一DC将绝大部分本地用户发起写操作指令的执行操作限制在本地第一DC内进行,同时,在因存储资源不足等异常场景需要对写操作指令进行跨DC操作时,及时根据跨DC数据地址信息将写操作指令调度至其他DC内进行,避免了在现有技术中,对于使用VPN通道将各个DC内的数据均衡存储至各个DC的服务器中的数据进行访问时,可能带来的VPN通道拥塞或者IMDG数据的存储性能降低的问题。
进一步地,如图4所示,本发明的实施例提供一种分布式数据的存储***中还可以包括转发设备03,该转发设备03分别于第一DC01和第二DC02相连,其中,转发设备03中存储有预置的第一DC01和第二DC02的用户信息,该转发设备03中还可以设有API(ApplicationProgramming Interface,应用程序编程接口),可以为各个DC转发用户下发的读/写操作指令、用户的信息、数据备份指令以及数据恢复指令等,实现对各个DC的同一调度。
具体的,该转发设备03可以获取用户发起的第一文件的写操作指令或读操作指令;转发设备03查询发起所述第一文件的写操作指令或读操作指令的用户的信息;并根据所述用户的信息以及预置的第一DC01和第二DC02的用户信息,确定所述第一文件的写操作指令或读操作指令为针对第一DC01或第二DC02的写操作指令或读操作指令;此时,转发设备03将所述第一文件的写操作指令或读操作指令发送至第一DC01或第二DC02。
进一步地,该转发设备03还可以接收管理员为第一DC01和第二DC02配置的备份策略信息,该策略信息用于指示对第一DC01和第二DC02中的数据进行数据备份,然后,转发设备03将备份策略信息分别发送给第一DC01和第二DC02,以使得第一DC01和第二DC02根据该备份策略信息的备份策略进行数据备份。
再进一步地,若第一DC01发生故障后,转发设备03还可以接收第一DC01或管理员下发的数据恢复指令,进而将该数据恢复指令发送至第二DC02,以使得第二DC02根据所述数据恢复指令将第二DC02中已备份的第一DC01的数据恢复至第二DC02,防止第一DC01的数据丢失,提高了IMDG数据的存储性能。
至此,转发设备通过查询发起写操作指令或读操作指令的用户的信息,根据已经预置的N个DC的用户信息,确定接收到的写操作指令或读操作指令是针对哪一个DC的写操作指令或读操作指令,进而将写操作指令或读操作指令转发至对应的DC中执行写操作指令或读操作指令,这样一来,各个DC可以为所有用户提供统一的转发设备接收写操作指令或读操作指令,不用区分用户的地域区别,转发设备又可以针对各个DC根据已经预置的N个DC的用户信息定向的确定写操作指令或读操作指令是针对哪一个指定DC的,这样一来,可以将绝大部分本地用户发起写操作指令的执行操作限制在指定的本地DC内进行,无需像现有技术那样频繁执行跨DC数据的读/写操作指令,提高提升数据的存储性能。
实施例二
本发明的实施例提供一种分布式数据的存储方法,如图5所示,所述方法应用于分布式数据存储***,该***中包括N个DC,其中,每一个DC中存储有跨DC数据地址信息,本实施例中以第一DC和第二DC为例进行说明,所述方法包括:
101、第一DC获取本地用户发起的对第一文件的写操作指令,该写操作指令至少包括第一文件的标识。
102、若跨DC数据地址信息中不包括第一文件的标识,且第一DC中有存储第一文件的存储资源,第一DC则为第一文件在第一DC中分配存储地址,以便将第一文件写入第一DC中的存储地址。
103、若跨DC数据地址信息中不包括第一文件的标识,且第一DC没有存储第一文件的存储资源,第一DC则将第一文件的写操作指令发送给第二DC,以使得第二DC写入第一文件,并将第一文件在第二DC内的存储地址发送至第一DC。
104、第一DC将第一文件的标识和该第一文件在第二DC的存储地址的对应关系保存至跨DC数据地址信息中。
针对以IMDG数据为代表的分布式数据,为了对分布式数据的存储***中各个DC内的数据进行统一管理,同时实现将绝大部分数据读写操作限制在本地DC内进行,可以在每一个DC中存储有跨DC数据地址信息,这里,以第一DC和第二DC为例进行说明,由于DC通常是根据用户物理地域信息使用就近原则在与物理地域信息对应的本地DC内进行数据读写,只有在所属DC资源不足或数据发生迁移的异常场景下才会存在少量同一个用户跨DC读写数据的场景,因此,可以将这些本应在第一DC内进行读写的数据,却因为第一DC资源不足或数据发生迁移而发放至第二DC内进行读写的数据称为跨DC数据。
例如,第一DC中存储有跨DC数据地址信息,该跨DC数据地址信息中保存有存储在第二DC中的本地用户文件的标识(例如文件所对应的KEY值),及本地用户文件存储在第二DC中的存储地址(例如文件的在DC内的存储块位置)的对应关系信息。
在步骤101中,第一DC获取本地用户发起的对第一文件的写操作指令,该写操作指令至少包括第一文件的标识,该第一文件的标识,可以为第一文件的KEY值,即对待写入的第一文件的逻辑编址,以便于第一DC确定待写入的第一文件实际存储的DC和物理位置。
具体的,当接收到用户A的写操作指令时,第一DC获取该写操作指令所属的用户A的信息,由于每个DC内的数据都是为固定的一些用户服务的,因此,第一DC可以根据用户A的信息在预置的第一DC的用户信息中确定该用户A的写操作指令是否为本地用户(即第一DC对应的用户)发起的写操作指令。
若第一DC确定该第一文件的写操作指令为本地用户发起的写操作指令,那么,第一DC就可以根据该写操作指令中的第一文件的标识和第一DC中已存储的跨DC数据地址信息确定写入第一文件的具体物理位置,以便于将该第一文件写入该物理位置,从而完成用户A的写操作指令。
在步骤102中,在获取第一文件的写操作指令之后,第一DC根据跨DC数据地址信息、第一文件的标识以及第一DC内可用的存储资源,确定第一文件应该写入哪一个DC,以及在确定写入的DC中第一文件的存储地址。其中,该存储地址可以为第一文件的存储块位置。
由于,第一DC内数据可能会发生迁移等异常场景,此时,该第一DC的写操作指令可能需要进行跨DC数据处理,即在第二DC内完成写操作指令,因此,在获取到第一文件的写操作指令之后需要确定该第一文件所属的DC是哪一个。
而且,在每一个DC内可能会设置有多个节点存储数据(参见图3),因此,在确定写入的DC中第一文件的存储地址时,还需要确定第一文件在DC内的存储块位置(datablock),这样一来,第一DC就可以准确的将第一文件写入相应DC内的相应存储块位置处。
具体的,在获取第一文件的写操作指令之后,第一DC判断第一文件的标识是否在跨DC数据地址信息中,若跨DC数据地址信息中不包括第一文件的标识(即第一文件是第一次写入的文件),第一DC则判断第一DC中是否有存储第一文件的存储资源,若第一DC中有存储第一文件的存储资源,第一DC则为第一文件在第一DC中分配存储地址,以便将第一文件写入第一DC中的存储地址,从而完成用户发起的对第一文件的写操作指令。
在步骤103中,与步骤102对应的,在获取第一文件的写操作指令之后,若跨DC数据地址信息中不包括第一文件的标识(即第一文件是第一次写入的文件),但是,第一DC中没有存储第一文件的存储资源,此时,第一DC则将第一文件的写操作指令发送给第二DC,以使得第二DC写入第一文件,从而完成用户发起的对第一文件的写操作指令,同时第二DC在写入第一文件之后还可以将第一文件在第二DC内的存储地址发送至第一DC,以使得第一DC将第一文件在第二DC的存储地址和第一文件的标识的对应关系保存至跨DC数据地址信息中。
具体的,可以在第一DC内配置向其他DC转发写操作指令的转发策略,例如,优先选取与第一DC的物理位置靠近的DC或者存储资源丰富的DC为第一DC的备选DC(即第二DC),这样,当跨DC数据地址信息中不包括第一文件的标识,同时,第一DC中没有存储第一文件的存储资源时,第一DC就可以根据该转发策略,将第一文件的写操作指令发送给第二DC,以使得第二DC写入第一文件,从而完成用户发起的对第一文件的写操作指令。
在步骤104中,由于第一文件本来是属于第一DC的数据,但因为存储资源不足写入了第二DC,因此,第一文件可作为跨DC数据更新至跨DC数据地址信息中,即将第一文件的标识和第二DC的存储地址的对应关系保存至跨DC数据地址信息中,以便第一DC在此接收到第一文件的写操作指令之后,根据更新后的跨DC数据地址信息将该写操作指令发送至第二DC,以便于第二DC将第一文件写入所述第二DC中的存储地址。
另外,在第一DC接收本地用户发起的对第一文件的写操作指令之后,第一DC判断第一文件的标识是否在跨DC数据地址信息中,若跨DC数据地址信息中包括第一文件的标识(即第一文件之前已经写入过第二DC),此时,由于跨DC数据地址信息中包含有第一文件的标识与第一文件的存储地址的对应关系,第一DC根据第一文件的标识在跨DC数据地址信息中查找第一文件在第二DC中的存储地址;并将第一文件的写操作指令和第一文件在第二DC中的存储地址发送至第二DC,以使得第二DC将第一文件写入第二DC中的存储地址,这样,在完成本地用户的写操作指令的同时,对写入的第一文件完成跨DC操作。
类似的,第一DC获取本地用户发起的对第一文件的读操作指令,读操作指令至少包括第一文件的标识(例如KEY值);相应的,第一DC在获取到第一文件的读操作指令之后,在跨DC数据地址信息中查询是否包含该第一文件的标识,若跨DC数据地址信息中不包括第一文件的标识(即第一文件没有存储第二DC中),第一DC则根据第一文件的标识在第一DC中读取第一文件。
相应的,若跨DC数据地址信息中包含第一文件的标识,由于跨DC数据地址信息中包含有第一文件的标识与第一文件的存储地址的对应关系,第一DC就可以在跨DC数据地址信息中查找第一文件在第二DC中的存储地址;然后,第一DC将第一文件的读操作指令和第一文件在第二DC中的存储地址发送至第二DC,以使得第二DC从第二DC中的存储地址处读取第一文件。
另外,在第一DC将第一文件的读操作指令和第一文件在第二DC中的存储地址发送至第二DC之后,第一DC还可以从第二DC获取第一文件;并将第一文件和第一文件的标识保存至第一DC的高速缓存中,以便第一DC再次接收到第一文件的读操作指令时,可以直接从第一DC的高速缓存中读取第一文件。这样一来,用户下一次触发相同的读操作指令时,第一DC可以根据高速缓存中以保存的该文件的标识,及时为用户获取该待读的文件。而高速缓存中缓存的其他DC的数据可以定期的进行更新,以保证待读取的数据的订阅关系的时效性。
另外,本发明的后续实施例中还提供了为避免某个DC出现故障导致该DC内数据不能及时恢复的解决方案,故此处不再赘述。
至此,第一DC通过获取本地用户发起的对第一文件的写操作指令,并根据本地的第一DC自身的存储资源和已存储的跨DC数据地址信息,确定所述第一文件的写入操作是否属于本地的第一DC,若属于第一DC则直接执行第一文件的写操作指令,若属于第二DC则确定写入第二DC的存储地址,并且更新该跨DC数据地址信息,以便再次接收到第一文件的写操作指令时及时将第一文件的写操作指令转发至第二DC执行,这样一来,第一DC将绝大部分本地用户发起写操作指令的执行操作限制在本地第一DC内进行,同时,在因存储资源不足等异常场景需要对写操作指令进行跨DC操作时,及时根据跨DC数据地址信息将写操作指令调度至其他DC内进行,避免了在现有技术中,对于使用VPN通道将各个DC内的数据均衡存储至各个DC的服务器中的数据进行访问时,可能带来的VPN通道拥塞或者IMDG数据的存储性能降低的问题。
本发明的实施例提供一种分布式数据的存储方法,如图6所示,包括:
201、转发设备获取第一文件的写操作指令或读操作指令。
具体的,该转发设备心可以应用于N(N>1)个DC构成的分布式数据存储***中,该转发设备与N个DC分别相连,具体的,该转发设备中可以设有API接口,为各个DC转发用户下发的读/写操作指令、用户的信息、数据备份指令以及数据恢复指令等,实现对各个DC的同一调度。
这样一来,属于不同DC的不同用户可以不用区分地域的不同,同一向转发设备发送第一文件的写操作指令或读操作指令,转发设备可进一步根据写操作指令或读操作指令所对应的用户的信息,将写操作指令或读操作指令转发至相应的DC中。
202、转发设备查询发起第一文件的写操作指令或读操作指令的用户的信息。
具体的,在转发设备获取用户A发起的第一文件的写操作指令或读操作指令之后,由于每个DC内的数据都是为固定的一些用户服务的,因此,转发设备可以查询发起第一文件的写操作指令或读操作指令的用户A的信息。
203、转发设备根据用户的信息以及预置的N个DC的用户信息,确定第一文件的写操作指令或读操作指令为针对第一DC的写操作指令或读操作指令,该第一DC为N个DC中的任一个,N>1。
转发设备内存储有N个DC的用户信息,因此,转发设备得到用户A的信息之后,根据预置的N个DC的用户信息,确定第一文件的写操作指令或读操作指令为针对第一DC的写操作指令或读操作指令,该第一DC为N个DC中的任一个,N>1。
204、转发设备将第一文件的写操作指令或读操作指令发送至第一DC,以使得第一DC执行该写操作指令或读操作指令。
具体的,第一DC执行该写操作指令或读操作指令的步骤可参见步骤101至103。
至此,转发设备通过查询发起写操作指令或读操作指令的用户的信息,根据已经预置的N个DC的用户信息,确定接收到的写操作指令或读操作指令是针对哪一个DC的写操作指令或读操作指令,进而将写操作指令或读操作指令转发至对应的DC中执行写操作指令或读操作指令,这样一来,各个DC可以为所有用户提供统一的转发设备接收写操作指令或读操作指令,不用区分用户的地域区别,转发设备又可以针对各个DC根据已经预置的N个DC的用户信息定向的确定写操作指令或读操作指令是针对哪一个指定DC的,这样一来,可以将绝大部分本地用户发起写操作指令的执行操作限制在指定的本地DC内进行,无需像现有技术那样频繁执行跨DC数据的读/写操作指令,提高提升数据的存储性能。
实施例三
本发明的实施例提供一种分布式数据的存储方法,如图7所示,方法应用于分布式数据存储***,分布式数据存储***中可以包含多个DC和转发设备,本发明实施例以第一DC和第二DC为例进行说明,其中,每一个DC中存储有跨DC数据地址信息表,例如,第一DC的跨DC数据地址信息中保存有存储在第二DC中的本地用户文件的标识,及本地用户文件存储在第二DC中的存储地址的对应关系信息,该方法包括:
301、第一DC获取转发设备发送的第一文件的写操作指令,该写操作指令至少包括第一文件的标识。
302a、若跨DC数据地址信息表中不包含第一文件的标识,且第一DC中有存储第一文件的存储资源,第一DC则为第一文件在第一DC中分配存储地址,以便将第一文件写入第一DC中的存储块位置。
302b、若跨DC数据地址信息中不包括第一文件的标识,且第一DC没有存储第一文件的存储资源,第一DC将第一文件的写操作指令发送给第二DC,以使得第二DC写入该第一文件,并将第一文件在第二DC内的存储块位置发送至第一DC。
302c、第一DC将第一文件的标识和第一文件在第二DC的存储块位置的对应关系保存至跨DC数据地址信息中,以便将第一文件写入第二DC中的存储块位置。
303a、若跨DC数据地址信息表中包含第一文件的标识,第一DC则根据跨DC数据地址信息获取写入第一文件的第二DC和第一文件在第二DC内的存储块位置。
303b、第一DC将第一文件的写操作指令和第一文件在第二DC中的存储块位置发送至第二DC,以使得第二DC将第一文件写入第二DC中的存储块位置。
本发明实施例中涉及的第一DC和第二DC可以分别与转发设备相连,组成分布式数据的存储***,该转发设备中包括API接口,该API接口可以用于为DC转发用户下发的读/写操作指令、用户物理地域信息、数据备份指令以及数据恢复指令等,实现对DC的同一调度。
在步骤301中,第一DC获取转发设备发送的第一文件的写操作指令,该写操作指令至少包括第一文件的标识。
具体的,转发设备接收到第一文件的写操作指令后,查询发起第一文件的写操作指令的用户的信息;若转发设备根据用户的信息以及预置的N个DC的用户信息,确定第一文件的写操作指令为针对第一DC的写操作指令,转发设备则将第一文件的写操作指令发送至第一DC。
其中,该写操作指令至少包括第一文件的标识,该第一文件的标识可以为待写入的第一文件的KEY值。
另外,第一DC内存储有跨DC数据地址信息表,该第一DC的跨DC数据地址信息表如表1所示。
表1
由于,第一DC内数据可能会发生迁移等异常场景,此时,该第一DC的写操作指令可能需要进行跨DC数据处理,即在第二DC内完成写操作指令,该第二DC为除所述第一DC外的N-1个DC中的一个,因此,在获取到第一文件的写操作指令之后,需要确定该写操作指令所属的DC是哪一个。
而且,在每一个DC内可能会设置有多个节点存储数据(参见图3),因此,还需要确定该该写操作指令在指定DC内的存储块位置(datablock),这样一来,根据指定DC和存储块位置,DC就可以准确的将待写入的第一文件写入指定DC的相应存储块位置处。
在执行完步骤301后,第一DC在跨DC数据地址信息表中查询该跨DC数据地址信息表中是否包含待写入的第一文件的标识,若跨DC数据地址信息表中不包含第一文件的标识,则执行步骤302a-302c,若跨DC数据地址信息表中包含第一文件的标识,则执行步骤303a-303b。
在步骤302a中,若跨DC数据地址信息表中不包含第一文件的标识(即第一文件是第一次写入的文件),第一DC则判断第一DC中是否有存储第一文件的存储资源,若第一DC中有存储第一文件的存储资源,第一DC则为第一文件在第一DC中分配存储块位置,以便将第一文件写入第一DC中的存储块位置,从而完成用户发起的对第一文件的写操作指令。
在步骤302b中,若跨DC数据地址信息中不包括第一文件的标识(即第一文件是第一次写入的文件),但是,第一DC中没有存储第一文件的存储资源,此时,第一DC则将第一文件的写操作指令发送给第二DC,以使得第二DC写入第一文件,从而完成用户发起的对第一文件的写操作指令,同时第二DC在写入第一文件之后还可以将第一文件在第二DC内的存储块位置发送至第一DC,以使得第一DC将第一文件在第二DC的存储块位置和第一文件的标识的对应关系保存至跨DC数据地址信息中。
在步骤302c中,由于第一文件本来是属于第一DC的数据,但因为存储资源不足写入了第二DC,因此,第一文件可作为跨DC数据更新至跨DC数据地址信息中,即将第一文件的标识和第二DC的存储块位置的对应关系保存至如表1中的跨DC数据地址信息中,以便第一DC在此接收到第一文件的写操作指令之后,直接根据更新后的跨DC数据地址信息将该写操作指令发送至第二DC,以便于第二DC将所述第一文件写入第二DC中的存储块位置。
在步骤303a中,若跨DC数据地址信息表中包含第一文件的标识,由于跨DC数据地址信息中包含有第一文件的标识与第一文件的存储块位置的对应关系(如表1所示),第一DC根据第一文件的标识在跨DC数据地址信息中查找第一文件在第二DC中的存储块位置,以确定第一文件在第二DC中应写入的存储块位置。
在步骤303b中,在执行完步骤303a之后,第一DC将第一文件的写操作指令和第一文件在第二DC中的存储块位置发送至第二DC,以使得第二DC将第一文件写入第二DC中的存储块位置处。
至此,第一DC通过获取本地用户发起的对第一文件的写操作指令,并根据本地的第一DC自身的存储资源和已存储的跨DC数据地址信息,确定所述第一文件的写入操作是否属于本地的第一DC,若属于第一DC则直接执行第一文件的写操作指令,若属于第二DC则确定写入第二DC的存储地址,并且更新该跨DC数据地址信息,以便再次接收到第一文件的写操作指令时及时将第一文件的写操作指令转发至第二DC执行,这样一来,第一DC将绝大部分本地用户发起写操作指令的执行操作限制在本地第一DC内进行,同时,在因存储资源不足等异常场景需要对写操作指令进行跨DC操作时,及时根据跨DC数据地址信息将写操作指令调度至其他DC内进行,避免了在现有技术中,对于使用VPN通道将各个DC内的数据均衡存储至各个DC的服务器中的数据进行访问时,可能带来的VPN通道拥塞或者IMDG数据的存储性能降低的问题。
相应的,本发明的实施例提供一种分布式数据的读取方法,如图8所示,仍以两个数据中心(即第一DC和第二DC)为例进行说明,其中,每一个DC中存储有如表1所示的跨DC数据地址信息表,所述方法包括:
401、第一DC获取转发设备发送的第一文件的读操作指令,该读操作指令至少包括第一文件的标识。
402、若跨DC数据地址信息表中不包含第一文件的标识,第一DC则根据第一文件的标识在第一DC中读取第一文件。
403a、若跨DC数据地址信息表中包含第一文件的标识,在跨DC数据地址信息表中查找第一文件在第二DC中的存储块位置。
403b、第一DC将第一文件的读操作指令和第一文件在第二DC中的存储块位置发送至第二DC,以使得第二DC从第二DC中的存储块位置处读取第一文件。
403c、第一DC将第一文件和第一文件的标识保存至第一DC的高速缓存中,以便第一DC再次接收到第一文件的读操作指令时,可以直接从第一DC的高速缓存中读取第一文件。
在步骤401中,转发设备接收到第一文件的读操作指令后,查询发起第一文件的读操作指令的用户的信息;若转发设备根据用户的信息以及预置的N个DC的用户信息,确定第一文件的读操作指令为针对第一DC的读操作指令,转发设备则将第一文件的读操作指令发送至第一DC。
其中,该读操作指令至少包括第一文件的标识,该第一文件的标识可以为待写入的第一文件的KEY值。
与上述实施例中的写操作指令类似的,该第一DC的跨DC数据地址信息表如上述表1所示,其中,跨DC数据的标识可以为跨DC数据的KEY值,以便于第一DC确定待写入或带读取的文件在DC中的实际存储的物理位置(存储块位置)。
在执行完步骤401后,第一DC在跨DC数据地址信息表中查询该跨DC数据地址信息表中是否包含第一文件的标识,若跨DC数据地址信息表中不包含第一文件的标识,则执行步骤402,若跨DC数据地址信息表中包含第一文件的标识,则执行步骤403a-403c。
在步骤402中,若跨DC数据地址信息表中不包含第一文件的标识(即第一文件没有存储第二DC中),第一DC则根据第一文件的标识在第一DC中读取第一文件。
在步骤403a中,若跨DC数据地址信息中包含第一文件的标识,由于跨DC数据地址信息中包含有第一文件的标识与第一文件的存储块位置的对应关系,第一DC就可以在跨DC数据地址信息中查找第一文件在第二DC中的存储块位置。
在步骤403b中,在执行完步骤403a之后,第一DC将第一文件的读操作指令和第一文件在第二DC中的存储地址发送至第二DC,以使得第二DC从第二DC中的存储地址处读取第一文件。
在步骤403c中,在第一DC将第一文件的读操作指令和第一文件在第二DC中的存储地址发送至第二DC之后,第一DC还可以从第二DC获取第一文件;并将第一文件和第一文件的标识保存至第一DC的高速缓存中,以便第一DC再次接收到第一文件的读操作指令时,可以直接从第一DC的高速缓存中读取第一文件。这样一来,用户下一次触发相同的读操作指令时,第一DC可以根据高速缓存中以保存的该文件的标识,及时为用户获取该待读的文件。而高速缓存中缓存的其他DC的数据可以定期的进行更新,以保证待读取的数据的订阅关系的时效性。
至此,本发明的实施例提供一种读取方法,通过获取本地用户发起的对第一文件的读操作指令,确定所述第一文件的读取操作是否属于本地的第一DC,若属于第一DC则直接执行第一文件的读操作指令,若属于第二DC则确定在第二DC内读取第一文件的存储地址,并且将第一文件和第一文件的标识保存至第一DC的高速缓存中,以便第一DC再次接收到第一文件的读操作指令时,可以直接从第一DC的高速缓存中读取第一文件,这样一来,第一DC将绝大部分本地用户发起读操作指令的执行操作限制在本地第一DC内进行,同时,在因存储资源不足等异常场景需要对读操作指令进行跨DC操作时,及时根据跨DC数据地址信息将读操作指令调度至其他DC内进行。
进一步的,本发明的实施例提供该一种分布式数据的备份方法,如图9所示,仍以两个数据中心(即第一DC和第二DC)为例进行说明,所述方法包括:
501、第一DC获取第一DC的第一备份策略信息,该第一备份策略信息用于指示对第二DC中的数据进行数据备份。
502、第二DC获取第二DC的第二备份策略信息,该第二备份策略信息用于指示对第一DC中的数据进行数据备份。
503、第一DC和第二DC建立第一DC与第二DC之间备份通道。
504、第一DC使用备份通道根据第一备份策略信息进行数据备份,第二DC使用备份通道根据第二备份策略信息进行数据备份。
本发明实施例中涉及的第一DC和第二DC可以分别与转发设备连接,该转发设备中设有API接口相连,该API接口可以用于为各个DC转发用户下发的读/写操作指令、用户物理地域信息、数据备份指令以及数据恢复指令等,实现对各个DC的同一调度。
在步骤501中,第一DC可以从转发设备的API接口获取管理员针对第一DC配置的第一备份策略信息,该第一备份策略信息用于指示对第二DC中的数据进行数据备份。
具体的,该第一备份策略信息中可以以表2的形式下发,其中,第一备份策略信息中具体包括了第一DC的备份内容,例如,第一DC需要备份第二DC中的那些数据,需要将这些数据备份几个副本,每个副本存放到哪些位置,是否需要备份第二DC中的指定数据进行定时备份等。
表2
在步骤502中,与步骤401类似的,第二DC可以从转发设备的API接口获取管理员针对第二DC配置的第一备份策略信息,该第二备份策略信息用于指示对第一DC中的数据进行数据备份。
当然,为了节省信令开销,管理员也可以为分布式数据的存储***中的N个DC确定统一的备份策略信息,各个DC在接收到该备份策略信息后,确定自己需要对其他M个DC中的数据进行数据备份的具体策略,其中,N-1≥M≥1,然后,各个DC分别按照备份策略信息对其他M个DC中的数据进行备份。另外,各个DC从转发设备的API接口获取的备份策略信息可以是以控制消息的形式传输的信令,各个DC从API接口获取的备份策略信息之后,可以进一步的将以控制消息的形式传输的备份策略信息转化为执行消息传输的信令,进而,各个DC分别按照备份策略信息对其他M个DC中的数据进行备份。
在步骤503中,第一DC获取到第一DC的第一备份策略信息后,第一DC内部的备份模块可以与第二DC内部的备份模块建立备份通道,专门用于数据备份。
在步骤504中,第一DC使用备份通道根据第一备份策略信息中的备份策略进行数据备份,第二DC使用备份通道根据第二备份策略信息的备份策略进行数据备份。
至此,本发明的实施例提供一种分布式数据备份方法,各个DC通过转发设备的API接口获取本地DC针对其他DC的备份策略,在自身的本地DC内设置备份模块,并建立与其他DC的备份通道,使用该备份通道按照备份策略对其他DC的数据进行备份,这样一来,一旦分布式数据的存储***中某个DC发生故障,数据遭到破坏,其他DC可以快速的从自己的备份模块获取发生故障的DC内的数据,提高了IMDG数据的存储性能,并提高了整个分布式数据的存储***的稳定性。
进一步的,相应的,本发明的实施例提供该一种分布式数据的恢复方法,如图10所示,仍以两个数据中心(即第一DC和第二DC)为例进行说明,所述方法包括:
601、若第二DC内的第二DC发生故障,第一DC则获取第二DC的备份恢复指令。
602、第一DC根据备份恢复指令,将第一DC内已备份的第二DC的数据恢复至第一DC。
603、第一DC将已恢复的第二DC的数据在第一DC的存储地址更新至第一DC的跨DC数据地址信息表中。
本发明实施例中涉及的第一DC和第二DC可以分别与转发设备相连,该转发设备中设有API接口,该API接口可以用于为各个DC转发用户下发的读/写操作指令、用户物理地域信息、数据备份指令以及数据恢复指令等,实现对各个DC的同一调度。
在步骤601中,一旦第二DC内的第二DC发生故障,第二DC内的数据遭到破坏无法恢复,管理员可以通过转发设备的API接口向第一DC下发针对第二DC的备份恢复指令,其中,第二DC可以是分布式数据的存储***中的多个DC中的任一个。
在步骤602中,在第一DC则获取第二DC的备份恢复指令之后,第一DC根据备份恢复指令,将第一DC中的备份模块中已备份的第二DC的数据恢复至第一DC,这样,第一DC可以快速的从自己的备份模块获取发生故障的DC内的数据,提高了IMDG数据的存储性能。
在步骤603中,在第一DC根据备份恢复指令,将第一DC内已备份的第二DC的数据恢复至第一DC之后,由于恢复到第一DC的数据原本属于第二DC,因此,原来使用第二DC进行业务处理的用户无法从第二DC内找到第二DC的数据,因此,该恢复到第一DC的数据也是第一DC的跨DC数据,所以,第一DC将已恢复的第二DC的数据在第一DC的逻辑地址和存储地址更新至第一DC的跨DC数据地址信息表中,以便于用户下一次需要读取所述第二DC的数据时,可以根据更新后的跨DC数据地址信息在所述第一DC中查找需要读取所述第二DC的数据。
至此,本发明的实施例提供一种分布式数据备份方法,各个DC通过转发设备的API接口获取本地DC针对其他DC的备份策略,在自身DC内设置备份模块,并建立与其他DC的备份通道,使用该备份通道按照备份策略对其他DC的数据进行备份,这样一来,一旦分布式数据的存储***中某个DC发生故障,数据遭到破坏,其他DC可以快速的从自己的备份模块获取发生故障的DC内的数据,并更新跨DC数据地址信息,在提高IMDG数据的存储性能和整个分布式数据的存储***的稳定性的同时,便于用户下一次需要读取所述第二DC的数据时,可以根据更新后的跨DC数据地址信息在所述第一DC中查找需要读取所述第二DC的数据。
实施例四
如图11所示,为本发明的实施例提供一种数据中心(DC)的硬件示意图。
该数据中心可以应用于N(N>1)个数据中心构成的分布式数据存储***,其中,每一个DC的存储器中存储有跨DC数据地址信息,具体的,以分布式数据存储***中包含两个DC(第一DC和第二DC)为例,所述第一DC中的跨DC数据地址信息中保存有存储在所述第二DC中的本地用户文件的标识,及所述本地用户文件存储在所述第二DC中的存储地址的对应关系信息。
另外,本发明实施例中涉及的分布式数据可以是以IMDG数据为代表的多种分布式数据,本发明对此不做限定。
如图11,所述数据中心包括处理器11、收发器12、高速缓存13、存储器14以及总线15。
其中,处理器11、收发器12、高速缓存13和存储器14通过总线15通信连接。
处理器11,是所述数据中心的控制中心,处理器11通过对收发器12接收到的数据进行处理,并调用存储器14中的软件或程序,执行所述数据中心的各项功能。
收发器12,可用于收发信息或通话过程中,信号的接收和发送,收发器12接收终端发送的信息后,给处理器11处理;另外,收发器12可以通过无线通信与网络和其他DC或者数据中心进行通信,接收由其他DC或者数据中心下发的读/写操作指令。
高速缓存(cache)13,是存在于存储器14与处理器11之间的一级存储器14,由静态存储芯片(SRAM)组成,容量比较小但速度比存储器14高得多,接近于处理器11的速度。存储器14存取速度一直比处理器11操作速度慢得多,使处理器11的高速处理能力不能充分发挥,整个计算机***的工作效率受到影响。高速缓存13的容量一般只有主存储器14的几百分之一,但它的存取速度能与处理器11相匹配,因此,为了提高计算机的工作效率,处理器11可以先将数据写入高速缓存13中,在定期的将高速缓存13中的数据刷新至存储器14内,或者定期的将高速缓存13中的数据进行更新以提高数据的处理速度。
存储器14,是计算机硬件的一个重要部件,其作用是存放指令和数据,相较于高速缓存13,存储器14的存储容量大大提高,具有容量大且存储数据的稳定性较高,但存储器14的读写速度远远不如高速缓存13的读写速度,存储器14可用于存储软件程序,处理器11通过运行存储在存储器14的软件程序,从而执行所述数据中心的各种功能应用以及数据处理。
具体的,在本发明的实施例中,处理器11通过收发器12获取本地用户发起的对第一文件的写操作指令,该写操作指令至少包括第一文件的标识,若存储器14中的跨DC数据地址信息中不包括所述第一文件的标识,且所述第一DC中有存储所述第一文件的存储资源,处理器11则为所述第一文件在所述第一DC中分配存储地址,以便将所述第一文件写入所述第一DC中的存储地址;若存储器14中的跨DC数据地址信息中不包括所述第一文件的标识,且所述第一DC没有存储所述第一文件的存储资源,处理器11则通过收发器12将第一文件的写操作指令发送给第二DC,以使得第二DC写入第一文件,从而完成用户发起的对第一文件的写操作指令,同时第二DC在写入第一文件之后还可以将第一文件在第二DC内的存储地址发送至第一DC的收发器12,以使得第一DC的处理器11将第一文件在第二DC的存储地址和第一文件的标识的对应关系保存至跨DC数据地址信息中。
进一步地,在处理器11通过收发器12获取本地用户发起的对第一文件的写操作指令之后,还可以包括步骤:若存储器14中的跨DC数据地址信息中包括所述第一文件的标识,处理器11则在所述跨DC数据地址信息中查找所述第一文件在所述第二DC中的存储地址;处理器11通过收发器12将所述第一文件的写操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC,以使得所述第二DC将所述第一文件写入所述第二DC中的存储地址。
进一步地,处理器11通过收发器12获取本地用户发起的对第一文件的写操作指令,可以具体包括步骤:处理器11在存储器14中查询发起所述第一文件的写操作指令的用户的信息;若所述用户的信息符合预置的本地用户信息,处理器11则确定所述第一文件的写操作指令为本地用户发起的对第一文件的写操作指令。
进一步地,本发明的实施例提供的一种分布式数据的存储方法,还可以包括步骤:处理器11通过收发器12获取本地用户发起的对第一文件的读操作指令,所述读操作指令至少包括第一文件的标识;若存储器14中的跨DC数据地址信息中不包括所述第一文件的标识,处理器11则根据所述第一文件的标识在所述第一DC中读取所述第一文件。
进一步地,在处理器11通过收发器12获取本地用户发起的对第一文件的读操作指令之后,还可以包括步骤:若存储器14中的跨DC数据地址信息中包括所述第一文件的标识,处理器11则在所述跨DC数据地址信息中查找所述第一文件在所述第二DC中的存储地址;处理器11通过收发器12将所述第一文件的读操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC,以使得所述第二DC所述第二DC中的存储地址处读取所述第一文件。
进一步地,在处理器11通过收发器12将所述第一文件的读操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC之后,还可以包括步骤:收发器12从所述第二DC获取所述第一文件并发送至处理器11;处理器11将所述第一文件和所述第一文件的标识保存至所述第一DC的高速缓存13中,以便所述第一DC再次接收到所述第一文件的读操作指令时,从所述第一DC的高速缓存13中读取所述第一文件。
进一步地,在处理器11通过收发器12获取本地用户发起的对第一文件的读操作指令之后,还可以包括步骤:若所述第一DC的高速缓存13中包含有所述第一文件的标识,处理器11则从所述第一DC的高速缓存13中读取所述第一文件。
进一步地,本发明的实施例提供的一种分布式数据的存储方法,还可以包括步骤:处理器11通过收发器12获取备份策略信息,所述备份策略信息用于指示分别对其他M个DC中的数据进行数据备份,N-1≥M≥1;处理器11根据所述备份策略信息建立与所述其他M个DC建立备份通道,以便根据所述备份策略信息将所述其他M个DC中的数据备份至所述第一DC的存储器14中。这样,第一DC通过获取本地DC针对其他DC的备份策略,在自身三维存储器14中内设置备份模块,并建立与其他DC的备份通道,使用该备份通道按照备份策略对其他DC的数据进行备份,一旦分布式数据的存储***中某个DC发生故障,数据遭到破坏,其他DC可以快速的从自己的备份模块获取发生故障的DC内的数据,提高了IMDG数据的存储性能,并提高了整个分布式数据的存储***的稳定性。
进一步地,本发明的实施例提供的一种分布式数据的存储方法,还可以包括步骤:若所述第二DC发生故障,收发器12则获取针对所述第二DC的数据恢复指令并发送至处理器11;处理器11根据所述数据恢复指令,将所述第一DC内存储器14中已备份的所述第二DC的数据恢复至所述第一DC;处理器11将已恢复的所述第二DC的数据在所述第一DC的存储地址更新至所述跨DC数据地址信息。
另外,本发明实施例中涉及的各个DC还可以分别与设有API接口的转发设备相连,一同组成分布式数据的存储***,该统一API接口可以用于为各个DC转发用户下发的读/写操作指令、用户的信息、数据备份指令以及数据恢复指令等,实现对各个DC的同一调度。
本发明的实施例提供一种数据中心,通过获取本地用户发起的对第一文件的写操作指令,并根据本地的第一DC自身的存储资源和已存储的跨DC数据地址信息,确定所述第一文件的写入操作是否属于本地的第一DC,若属于第一DC则直接执行第一文件的写操作指令,若属于第二DC则确定写入第二DC的存储地址,并且更新该跨DC数据地址信息,以便再次接收到第一文件的写操作指令时及时将第一文件的写操作指令转发至第二DC执行,这样一来,第一DC将绝大部分本地用户发起写操作指令的执行操作限制在本地第一DC内进行,同时,在因存储资源不足等异常场景需要对写操作指令进行跨DC操作时,及时根据跨DC数据地址信息将写操作指令调度至其他DC内进行,避免了在现有技术中,对于使用VPN通道将各个DC内的数据均衡存储至各个DC的服务器中的数据进行访问时,可能带来的VPN通道拥塞或者IMDG数据的存储性能降低的问题。
如图12所示,为本发明的实施例提供一种转发设备的硬件示意图。
该转发设备心可以应用于N(N>1)个数据中心构成的分布式数据存储***,该转发设备与所述N个数据中心分别相连,具体的,该转发设备中可以设有API接口,为各个DC转发用户下发的读/写操作指令、用户的信息、数据备份指令以及数据恢复指令等,实现对各个DC的同一调度。
如图12,所述转发设备包括处理器21、收发器22、存储器23以及总线24。
其中,处理器21、收发器22和存储器23通过总线24通信连接。
处理器21,是所述转发设备的控制中心,处理器11通过对收发器12接收到的数据进行处理,并调用存储器14中的软件或程序,执行所述转发设备的各项功能。
收发器22,可用于收发信息或通话过程中,信号的接收和发送,收发器12接收终端发送的信息后,给处理器11处理;另外,收发器12可以通过无线通信与网络和各个DC进行通信,向各个DC发送读/写操作指令。
存储器23,是计算机硬件的一个重要部件,其作用是存放指令和数据,可用于存储软件程序,处理器11通过运行存储在存储器14的软件程序,从而执行所述转发设备的各种功能应用以及数据处理。
具体的,在本发明的实施例中,收发器22获取第一文件的写操作指令或读操作指令并发送至处理器21;处理器21在存储器23中查询发起所述第一文件的写操作指令或读操作指令的用户的信息;处理器21根据所述用户的信息以及预置的所述N个DC的用户信息,确定所述第一文件的写操作指令或读操作指令为针对第一DC的写操作指令或读操作指令,所述第一DC为所述N个DC中的任一个;处理器21通过收发器22将所述第一文件的写操作指令或读操作指令发送至所述第一DC。
进一步地,该转发设备的收发器22还可以接收管理员为各个DC配置的备份策略信息,该备份策略信息用于指示对各个DC中的数据进行数据备份,然后处理器21通过收发器22将备份策略信息分别发送给各个DC,以使得各个DC根据该备份策略信息的备份策略对其他DC内的数据进行数据备份。
再进一步地,若第一DC发生故障后,转发设备的收发器22可以接收第一DC或管理员下发的数据恢复指令,进而通过收发器22将该数据恢复指令发送至第二DC,以使得第二DC根据所述数据恢复指令将第二DC中已备份的第一DC的数据恢复至第二DC,防止第一DC的数据丢失,提高了IMDG数据的存储性能。
本发明的实施例提供一种转发设备,通过查询发起写操作指令或读操作指令的用户的信息,根据已经预置的N个DC的用户信息,确定接收到的写操作指令或读操作指令是针对哪一个DC的写操作指令或读操作指令,进而将写操作指令或读操作指令转发至对应的DC中执行写操作指令或读操作指令,这样一来,各个DC可以为所有用户提供统一的转发设备接收写操作指令或读操作指令,不用区分用户的地域区别,转发设备又可以针对各个DC根据已经预置的N个DC的用户信息定向的确定写操作指令或读操作指令是针对哪一个指定DC的,这样一来,可以将绝大部分本地用户发起写操作指令的执行操作限制在指定的本地DC内进行,无需像现有技术那样频繁执行跨DC数据的读/写操作指令,提高提升数据的存储性能。
实施例五
本发明的实施例提供一种数据中心DC,如图13所示,所述DC应用于包含有N个DC的分布式数据存储***,其中,所述DC中存储有跨DC数据地址信息,N>1,所述DC包括:
获取单元31,用于获取本地用户发起的对第一文件的写操作指令,所述写操作指令至少包括第一文件的标识;
本地读写单元32,用于若跨DC数据地址信息中不包括所述获取单元31中的第一文件的标识,且第一DC中有存储所述第一文件的存储资源,则为所述第一文件在所述第一DC中分配存储地址,以便将所述第一文件写入所述第一DC中的存储地址,所述第一DC为所述N个DC中的任一个;
跨DC读写单元33,用于若所述跨DC数据地址信息中不包括所述获取单元31中的第一文件的标识,且所述第一DC没有存储所述第一文件的存储资源,则将所述第一文件的写操作指令发送给第二DC,以使得所述第二DC写入所述第一文件,并将所述第一文件在所述第二DC内的存储地址发送至所述第一DC,所述第二DC为所述N个DC中除所述第一DC中的任一个;
存储单元34,用于将所述第一文件的标识和所述第一文件在所述第二DC的存储地址的对应关系保存至所述跨DC数据地址信息中;
其中,所述跨DC数据地址信息中保存有存储在所述第二DC中的本地用户文件的标识,及所述本地用户文件存储在所述第二DC中的存储地址的对应关系信息。
进一步地,如图14所示,所述DC还包括发送单元35,其中,
所述跨DC读写单元33,还用于若所述跨DC数据地址信息中包括所述第一文件的标识,则在所述跨DC数据地址信息中查找所述第一文件在所述第二DC中的存储地址;
所述发送单元35,用于将所述第一文件的写操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC,以使得所述第二DC将所述第一文件写入所述第二DC中的存储地址。
进一步地,所述获取单元31,具体用于查询发起所述第一文件的写操作指令的用户的信息;若所述用户的信息符合预置的本地用户信息,则确定所述第一文件的写操作指令为本地用户发起的对第一文件的写操作指令。
进一步地,所述获取单元31,还用于获取本地用户发起的对第一文件的读操作指令,所述读操作指令至少包括第一文件的标识;
所述本地读写单元32,还用于若所述跨DC数据地址信息中不包括所述第一文件的标识,则根据所述第一文件的标识在所述第一DC中读取所述第一文件。
进一步地,所述跨DC读写单元33,还用于若所述跨DC数据地址信息中包括所述第一文件的标识,则在所述跨DC数据地址信息中查找所述第一文件在所述第二DC中的存储地址;
所述地发送单元35,还用于将所述第一文件的读操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC,以使得所述第二DC所述第二DC中的存储地址处读取所述第一文件。
进一步地,所述获取单元31,还用于从所述第二DC获取所述第一文件;
所述存储单元34,还用于将所述第一文件和所述第一文件的标识保存至所述第一DC的高速缓存中,以便所述第一DC再次接收到所述第一文件的读操作指令时,从所述第一DC的高速缓存中读取所述第一文件。
进一步地,所述本地读写单元32,还用于若所述第一DC的高速缓存中包含有所述第一文件的标识,则从所述第一DC的高速缓存中读取所述第一文件。
进一步地,如图15所示,所述DC还包括备份单元36,其中,
所述获取单元31,还用于获取备份策略信息,所述备份策略信息用于指示分别对其他M个DC中的数据进行数据备份,N-1≥M≥1;
所述备份单元36,用于根据所述备份策略信息建立与所述其他M个DC建立备份通道,以便根据所述备份策略信息将所述其他M个DC中的数据备份至所述第一DC。
这样,DC通过统一的API接口获取本地DC针对其他DC的备份策略,在自身DC内设置备份模块,并建立与其他DC的备份通道,使用该备份通道按照备份策略对其他DC的数据进行备份,一旦分布式数据的存储***中某个DC发生故障,数据遭到破坏,其他DC可以快速的从自己的备份模块获取发生故障的DC内的数据,提高了IMDG数据的存储性能,并提高了整个分布式数据的存储***的稳定性。
进一步地,如图16所示,所述DC还包括容灾单元37,其中,
所述获取单元31,还用于若所述第二DC发生故障,则获取针对所述第二DC的数据恢复指令;
所述容灾单元37,用于根据所述数据恢复指令,将所述第一DC内已备份的所述第二DC的数据恢复至所述第一DC;
所述存储单元34,还用于将已恢复的所述第二DC的数据在所述第一DC的存储地址更新至所述跨DC数据地址信息。
本发明的实施例提供一种数据中心,通过获取本地用户发起的对第一文件的写操作指令,并根据本地的第一DC自身的存储资源和已存储的跨DC数据地址信息,确定所述第一文件的写入操作是否属于本地的第一DC,若属于第一DC则直接执行第一文件的写操作指令,若属于第二DC则确定写入第二DC的存储地址,并且更新该跨DC数据地址信息,以便再次接收到第一文件的写操作指令时及时将第一文件的写操作指令转发至第二DC执行,这样一来,第一DC将绝大部分本地用户发起写操作指令的执行操作限制在本地第一DC内进行,同时,在因存储资源不足等异常场景需要对写操作指令进行跨DC操作时,及时根据跨DC数据地址信息将写操作指令调度至其他DC内进行,避免了在现有技术中,对于使用VPN通道将各个DC内的数据均衡存储至各个DC的服务器中的数据进行访问时,可能带来的VPN通道拥塞或者IMDG数据的存储性能降低的问题。
本发明的实施例提供一种转发设备,如图16所示,包括:
获取单元41,用于获取第一文件的写操作指令或读操作指令;
查找单元42,用于查询发起所述获取单元41中的第一文件的写操作指令或读操作指令的用户的信息;
确定单元43,用于根据所述查找单元42中的用户的信息以及预置的N个数据中心DC的用户信息,确定所述第一文件的写操作指令或读操作指令为针对第一DC的写操作指令或读操作指令,所述第一DC为所述N个DC中的任一个,N>1;
转发单元44,用于将所述获取单元41中的第一文件的写操作指令或读操作指令发送至所述确定单元42中确定的第一DC。
进一步地,该转发设备还可以接收管理员为各个DC配置的备份策略信息,该第一备份策略信息用于指示对各个DC中的数据进行数据备份,然后将备份策略信息分别发送给各个DC,以使得各个DC根据该备份策略信息的备份策略对其他DC内的数据进行数据备份。
再进一步地,若第一DC发生故障后,转发设备可以接收第一DC或管理员下发的数据恢复指令,进而将该数据恢复指令发送至第二DC,以使得第二DC根据所述数据恢复指令将第二DC中已备份的第一DC的数据恢复至第二DC,防止第一DC的数据丢失,提高了IMDG数据的存储性能。
本发明的实施例提供一种转发设备,通过查询发起写操作指令或读操作指令的用户的信息,根据已经预置的N个DC的用户信息,确定接收到的写操作指令或读操作指令是针对哪一个DC的写操作指令或读操作指令,进而将写操作指令或读操作指令转发至对应的DC中执行写操作指令或读操作指令,这样一来,各个DC可以为所有用户提供统一的转发设备接收写操作指令或读操作指令,不用区分用户的地域区别,转发设备又可以针对各个DC根据已经预置的N个DC的用户信息定向的确定写操作指令或读操作指令是针对哪一个指定DC的,这样一来,可以将绝大部分本地用户发起写操作指令的执行操作限制在指定的本地DC内进行,无需像现有技术那样频繁执行跨DC数据的读/写操作指令,提高提升数据的存储性能。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (22)

1.一种分布式数据的存储方法,其特征在于,所述方法应用于分布式数据存储***中N个数据中心DC的任一个DC,N>1,所述方法包括:
第一DC获取本地用户发起的对第一文件的写操作指令,所述写操作指令至少包括第一文件的标识,所述第一DC为所述N个DC中的任一个;
若跨DC数据地址信息中不包括所述第一文件的标识,且所述第一DC中有存储所述第一文件的存储资源,所述第一DC则为所述第一文件在所述第一DC中分配存储地址,以便将所述第一文件写入所述第一DC中的存储地址;
若所述跨DC数据地址信息中不包括所述第一文件的标识,且所述第一DC没有存储所述第一文件的存储资源,所述第一DC则将所述第一文件的写操作指令发送给第二DC,以使得所述第二DC写入所述第一文件,并发送所述第一文件在所述第二DC内的存储地址至所述第一DC,所述第二DC为所述N个DC中除所述第一DC中的任一个;
所述第一DC将所述第一文件的标识和所述第一文件在所述第二DC的存储地址的对应关系保存至所述跨DC数据地址信息中;
其中,所述跨DC数据地址信息中保存有存储在所述第二DC中的本地用户文件的标识,及所述本地用户文件存储在所述第二DC中的存储地址的对应关系。
2.根据权利要求1所述的方法,其特征在于,在第一DC接收本地用户发起的对第一文件的写操作指令之后,还包括:
若所述跨DC数据地址信息中包括所述第一文件的标识,所述第一DC则在所述跨DC数据地址信息中查找所述第一文件在所述第二DC中的存储地址;
所述第一DC将所述第一文件的写操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC,以使得所述第二DC将所述第一文件写入所述第二DC中的存储地址。
3.根据权利要求1或2所述的方法,其特征在于,所述第一DC获取本地用户发起的对第一文件的写操作指令,包括:
所述第一DC查询发起所述第一文件的写操作指令的用户的信息;
若所述用户的信息符合预置的本地用户信息,所述第一DC则确定所述第一文件的写操作指令为本地用户发起的对第一文件的写操作指令。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述第一DC获取本地用户发起的对第一文件的读操作指令,所述读操作指令至少包括第一文件的标识;
若所述跨DC数据地址信息中不包括所述第一文件的标识,所述第一DC则根据所述第一文件的标识在所述第一DC中读取所述第一文件。
5.根据权利要求4所述的方法,其特征在于,在所述第一DC获取本地用户发起的对第一文件的读操作指令之后,还包括:
若所述跨DC数据地址信息中包括所述第一文件的标识,所述第一DC则在所述跨DC数据地址信息中查找所述第一文件在所述第二DC中的存储地址;
所述第一DC将所述第一文件的读操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC,以使得所述第二DC从所述第二DC中的存储地址处读取所述第一文件。
6.根据权利要求5所述的方法,其特征在于,在所述第一DC将所述第一文件的读操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC之后,还包括:
所述第一DC从所述第二DC获取所述第一文件;
所述第一DC将所述第一文件和所述第一文件的标识保存至所述第一DC的高速缓存中,以便所述第一DC再次接收到所述第一文件的读操作指令时,从所述第一DC的高速缓存中读取所述第一文件。
7.根据权利要求6所述的方法,其特征在于,在所述第一DC获取本地用户发起的对第一文件的读操作指令之后,还包括:
若所述第一DC的高速缓存中包含有所述第一文件的标识,所述第一DC则从所述第一DC的高速缓存中读取所述第一文件。
8.根据权利要求1或2或5至7中任一项所述的方法,其特征在于,所述方法还包括:
所述第一DC获取备份策略信息,所述备份策略信息用于指示分别对其他M个DC中的数据进行数据备份,N-1≥M≥1;
所述第一DC根据所述备份策略信息建立与所述其他M个DC建立备份通道,以便根据所述备份策略信息将所述其他M个DC中的数据备份至所述第一DC。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
若所述第二DC发生故障,所述第一DC则获取针对所述第二DC的数据恢复指令;
所述第一DC根据所述数据恢复指令,将所述第一DC内已备份的所述第二DC的数据恢复至所述第一DC;
所述第一DC将已恢复的所述第二DC的数据在所述第一DC的存储地址更新至所述跨DC数据地址信息。
10.一种分布式数据的存储方法,其特征在于,所述方法应用于分布式数据存储***中N个数据中心DC的任一个DC,N>1,所述方法包括:
转发设备获取第一文件的写操作指令或读操作指令;
所述转发设备查询发起所述第一文件的写操作指令或读操作指令的用户的信息;
所述转发设备根据所述用户的信息以及预置的所述N个DC的用户信息,确定所述第一文件的写操作指令或读操作指令为针对第一DC的写操作指令或读操作指令,所述第一DC为所述N个DC中的任一个,N>1;
所述转发设备将所述第一文件的写操作指令或读操作指令发送至所述第一DC。
11.一种数据中心DC,其特征在于,所述DC应用于包含有N个DC的分布式数据存储***,其中,所述DC中存储有跨DC数据地址信息,N>1,所述DC包括:
获取单元,用于获取本地用户发起的对第一文件的写操作指令,所述写操作指令至少包括第一文件的标识;
本地读写单元,用于若跨DC数据地址信息中不包括所述第一文件的标识,且第一DC中有存储所述第一文件的存储资源,则为所述第一文件在所述第一DC中分配存储地址,以便将所述第一文件写入所述第一DC中的存储地址,所述第一DC为所述N个DC中的任一个;
跨DC读写单元,用于若所述跨DC数据地址信息中不包括所述第一文件的标识,且所述第一DC没有存储所述第一文件的存储资源,则将所述第一文件的写操作指令发送给第二DC,以使得所述第二DC写入所述第一文件,并将所述第一文件在所述第二DC内的存储地址发送至所述第一DC,所述第二DC为所述N个DC中除所述第一DC中的任一个;
存储单元,用于将所述第一文件的标识和所述第一文件在所述第二DC的存储地址的对应关系保存至所述跨DC数据地址信息中;
其中,所述跨DC数据地址信息中保存有存储在所述第二DC中的本地用户文件的标识,及所述本地用户文件存储在所述第二DC中的存储地址的对应关系。
12.根据权利要求11所述的DC,其特征在于,所述DC还包括发送单元,其中,
所述跨DC读写单元,还用于若所述跨DC数据地址信息中包括所述第一文件的标识,则在所述跨DC数据地址信息中查找所述第一文件在所述第二DC中的存储地址;
所述发送单元,用于将所述第一文件的写操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC,以使得所述第二DC将所述第一文件写入所述第二DC中的存储地址。
13.根据权利要求11或12所述的DC,其特征在于,
所述获取单元,具体用于查询发起所述第一文件的写操作指令的用户的信息;若所述用户的信息符合预置的本地用户信息,则确定所述第一文件的写操作指令为本地用户发起的对第一文件的写操作指令。
14.根据权利要求11或12所述的DC,其特征在于,
所述获取单元,还用于获取本地用户发起的对第一文件的读操作指令,所述读操作指令至少包括第一文件的标识;
所述本地读写单元,还用于若所述跨DC数据地址信息中不包括所述第一文件的标识,则根据所述第一文件的标识在所述第一DC中读取所述第一文件。
15.根据权利要求14所述的DC,其特征在于,
所述跨DC读写单元,还用于若所述跨DC数据地址信息中包括所述第一文件的标识,则在所述跨DC数据地址信息中查找所述第一文件在所述第二DC中的存储地址;
所述发送单元,还用于将所述第一文件的读操作指令和所述第一文件在所述第二DC中的存储地址发送至所述第二DC,以使得所述第二DC所述第二DC中的存储地址处读取所述第一文件。
16.根据权利要求15所述的DC,其特征在于,
所述获取单元,还用于从所述第二DC获取所述第一文件;
所述存储单元,还用于将所述第一文件和所述第一文件的标识保存至所述第一DC的高速缓存中,以便所述第一DC再次接收到所述第一文件的读操作指令时,从所述第一DC的高速缓存中读取所述第一文件。
17.根据权利要求16所述的DC,其特征在于,
所述本地读写单元,还用于若所述第一DC的高速缓存中包含有所述第一文件的标识,则从所述第一DC的高速缓存中读取所述第一文件。
18.根据权利要求11或12或15至17中任一项所述的DC,其特征在于,所述DC还包括备份单元,其中,
所述获取单元,还用于获取备份策略信息,所述备份策略信息用于指示分别对其他M个DC中的数据进行数据备份,N-1≥M≥1;
所述备份单元,用于根据所述备份策略信息建立与所述其他M个DC建立备份通道,以便根据所述备份策略信息将所述其他M个DC中的数据备份至所述第一DC。
19.根据权利要求18所述的DC,其特征在于,所述DC还包括容灾单元,其中,
所述获取单元,还用于若所述第二DC发生故障,则获取针对所述第二DC的数据恢复指令;
所述容灾单元,用于根据所述数据恢复指令,将所述第一DC内已备份的所述第二DC的数据恢复至所述第一DC;
所述存储单元,还用于将已恢复的所述第二DC的数据在所述第一DC的存储地址更新至所述跨DC数据地址信息。
20.一种转发设备,其特征在于,包括:
获取单元,用于获取第一文件的写操作指令或读操作指令;
查找单元,用于查询发起所述第一文件的写操作指令或读操作指令的用户的信息;
确定单元,用于根据所述用户的信息以及预置的N个数据中心DC的用户信息,确定所述第一文件的写操作指令或读操作指令为针对第一DC的写操作指令或读操作指令,所述第一DC为所述N个DC中的任一个,N>1;
转发单元,用于将所述第一文件的写操作指令或读操作指令发送至所述第一DC。
21.一种分布式数据存储***,其特征在于,所述***包含至少一个如权利要求11至19中任一项所述的数据中心DC,其中,
每一个DC中存储有跨DC数据地址信息,所述跨DC数据地址信息中保存有存储在其他DC中的本地用户文件的标识,及所述本地用户文件存储在所述其他DC中的存储地址的对应关系信息,N>1。
22.根据权利要求21所述的***,其特征在于,所述***还包括如权利要求20所述的转发设备,所述转发设备与所述每一个DC均相连。
CN201410713367.8A 2014-11-28 2014-11-28 一种分布式数据的存储方法、装置及*** Active CN104461779B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410713367.8A CN104461779B (zh) 2014-11-28 2014-11-28 一种分布式数据的存储方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410713367.8A CN104461779B (zh) 2014-11-28 2014-11-28 一种分布式数据的存储方法、装置及***

Publications (2)

Publication Number Publication Date
CN104461779A CN104461779A (zh) 2015-03-25
CN104461779B true CN104461779B (zh) 2018-02-23

Family

ID=52907875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410713367.8A Active CN104461779B (zh) 2014-11-28 2014-11-28 一种分布式数据的存储方法、装置及***

Country Status (1)

Country Link
CN (1) CN104461779B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108011737B (zh) * 2016-10-28 2021-06-01 华为技术有限公司 一种故障切换方法、装置及***
CN112306376B (zh) * 2019-08-01 2024-05-17 兆易创新科技集团股份有限公司 用户数据搬移的恢复方法、装置、电子设备及存储介质
CN111158636B (zh) * 2019-12-03 2022-04-05 中国人民解放军战略支援部队信息工程大学 可重构计算结构及计算处理阵列的路由寻址方法、装置
CN112698957B (zh) * 2021-02-02 2024-02-20 北京东方通科技股份有限公司 一种基于内存数据网格的数据处理方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760126A (zh) * 2011-04-26 2012-10-31 阿里巴巴集团控股有限公司 一种分布式***中的数据同步方法和分布式***
CN102938784A (zh) * 2012-11-06 2013-02-20 无锡江南计算技术研究所 应用于分布式存储***中的数据存储方法和***
CN103581332A (zh) * 2013-11-15 2014-02-12 武汉理工大学 HDFS架构及HDFS架构中NameNode节点的压力分解方法
CN104113574A (zh) * 2013-04-19 2014-10-22 中国科学院计算技术研究所 一种广域网可信虚拟机的安全迁移方法及***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8015343B2 (en) * 2008-08-08 2011-09-06 Amazon Technologies, Inc. Providing executing programs with reliable access to non-local block data storage

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760126A (zh) * 2011-04-26 2012-10-31 阿里巴巴集团控股有限公司 一种分布式***中的数据同步方法和分布式***
CN102938784A (zh) * 2012-11-06 2013-02-20 无锡江南计算技术研究所 应用于分布式存储***中的数据存储方法和***
CN104113574A (zh) * 2013-04-19 2014-10-22 中国科学院计算技术研究所 一种广域网可信虚拟机的安全迁移方法及***
CN103581332A (zh) * 2013-11-15 2014-02-12 武汉理工大学 HDFS架构及HDFS架构中NameNode节点的压力分解方法

Also Published As

Publication number Publication date
CN104461779A (zh) 2015-03-25

Similar Documents

Publication Publication Date Title
US10990490B1 (en) Creating a synchronous replication lease between two or more storage systems
US10452316B2 (en) Switched direct attached shared storage architecture
CN103765372B (zh) 配置用于输入/输出操作的对象存储***
CN104468521B (zh) 在线迁移方法、装置和***
DE102021113808A1 (de) Handhabung von Replikationen zwischen verschiedenen Netzwerken
CN103095834B (zh) 一种跨虚拟化数据中心的虚拟机在线迁移方法
CN104461779B (zh) 一种分布式数据的存储方法、装置及***
CN103678337B (zh) 数据清除方法、装置及***
CN106168884A (zh) 访问对象存储***的计算机***
CN109309631A (zh) 一种基于通用网络文件***写入数据的方法及装置
CN106528327A (zh) 一种数据处理方法以及备份服务器
CN102316043B (zh) 端口虚拟化方法、交换机及通信***
CN102662992A (zh) 一种海量小文件的存储、访问方法及装置
CN105095103A (zh) 用于云环境下的存储设备管理方法和装置
CN103051479B (zh) 虚拟机网络控制策略的迁移处理方法及***
CN102413183B (zh) 云智能交换机及其处理方法、***
CN107870954A (zh) 一种分布式数据库的扩展方法及装置
CN105357042A (zh) 一种高可用集群***及其主节点和从节点
CN108038236A (zh) 文件共享方法、装置、***及可读存储介质
CN105373746B (zh) 一种分布式数据处理方法和装置
CN104536852B (zh) 数据恢复方法及装置
CN107894874A (zh) 基于超融合存储***的数据读写控制方法、终端及***
CN104517067A (zh) 访问数据的方法、装置及***
CN108512753A (zh) 一种集群文件***中消息传输的方法及装置
CN106209933A (zh) 源主机、迁移架构及数据迁移方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220211

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

Patentee after: Huawei Cloud Computing Technologies Co.,Ltd.

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

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221207

Address after: 518129 Huawei Headquarters Office Building 101, Wankecheng Community, Bantian Street, Longgang District, Shenzhen, Guangdong

Patentee after: Shenzhen Huawei Cloud Computing Technology Co.,Ltd.

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

Patentee before: Huawei Cloud Computing Technologies Co.,Ltd.