用于在具有最小协作的数据中心之间进行全局去重的技术的制作方法

文档序号:9925278阅读:371来源:国知局
用于在具有最小协作的数据中心之间进行全局去重的技术的制作方法
【技术领域】
[0001]本公开涉及数据去重,更具体地,涉及在服务于多个数据中心的基于云存储的环境中的全局数据去重。
【背景技术】
[0002]许多大型组织可以利用云存储(“云”)作为企业数据的公共全局存储库,可以在地理上分离的数据中心之间访问和共享,即供应这些企业数据。这些组织通常采用已知的数据去重技术,来以数据中心级别降低或消除重复数据的存储。例如,除了数据中心级别去重之外,组织还可以采用“全局去重”技术,该技术在来自数据中心的不同办公室的、存入网络(例如广域网(WAN)链接)上的云中的数据流之间进行去重。该全局去重技术的实现可以使全局存储库有能力在办公室之间同步去重元数据,例如指纹。然而,随着全球办公室数量的增大,这种实现出现问题,从而增大了来自数据中心的WAN链接之间的网络流量。另外,办公室之间的WAN连通性的任何中断,会导致过时的去重元数据。
[0003]针对该全局去重问题的一个解决方案为:使各数据中心进行局部数据去重处理,来降低在网络上发送的用于存储在云中的数据量。然而,由于源于不同数据中心的冗余数据可能仍存储在云中,因此这种解决方案未实现最优性能。另一解决方案可以为:将数据去重引擎安装在云中;然而,云存储环境中的计算成本非常升高,从而使这种解决方案的成本高到无法接受并且有时不切实际。
[0004]因此,需要一种具有成本效益的技术,来实现服务于多个数据中心的云存储环境中的全局数据去重。
【附图说明】
[0005]通过接下来参照结合以下附图的描述,将更好地理解这里描述的实施例的优点,其中,相同的附图标记指示相同或功能上相似的元件:
[0006]图1是示例性云存储环境的示意性框图;
[0007]图2是用作云存储网关设备的备份式(备份)系统的示意性框图;
[0008]图3是详述用于进行云存储环境中的全局数据去重的过程的步骤的流程图;
[0009]图4是详述用于将数据流分块为多个数据对象的过程的步骤的流程图;
[0010]图5是示例性数据流的框图;
[0011 ]图6是示出了滑动窗口的示例性数据流的框图;
[0012]图7是已根据分块算法截取的示例性数据流的框图;
[0013]图8是示出了已从数据流中截取的多个数据对象的框图;以及
[0014]图9是示例性映射数据结构的框图。
【具体实施方式】
[0015]本发明的实施例针对一种用于在服务于多个数据中心的云存储环境中提供全局数据去重的系统和方法。云存储环境可以包括公共云或私有云,公共云对来自不同公司和不同管理域的数据进行多路复用,私有云为诸如来自单个实体(例如公司)的单个管理域服务。在各数据中心,一个或更多个云存储网关设备提供接口,以管理数据在云中的存储。云存储网关设备可以包括例如存储系统、虚拟磁带库、存档服务器等。各云存储网关设备可以被配置为将数据流分块(分割)为一个或更多个用于在云中存储的数据对象。这里所使用的数据流可以包括例如文件、备份、磁带数据流等,该磁带数据流被分割为用于形成数据对象的较小组的数据块。每个数据对象与键相关联,作为例如键值对,以存储在云中。
[0016]在实施例中,云存储网关设备可以通过利用数据对象内的数据块的基于内容的哈希,来生成与数据对象相关联的键。说明性地,每个数据块可以是与通过云存储网关设备利用的底层文件系统布局相关联的固定大小的数据块,例如4千字节(4KB)。在实施例中,对象的键可以包括与对象内的底层数据块相对应的基于内容的哈希的串联。说明性地,这些数据块为4KB的固定大小;然而,在可替换实施例中,数据块可以是不同大小。通过利用密码性强的哈希技术,与每个数据对象相关联的键可以被理解为,在具有不同数据内容的数据对象之间很可能是唯一的。
[0017]在将数据流分块为一个或更多个数据对象并生成每个数据对象的键之后,云存储网关设备可以尝试通过采用由云存储提供商支持的不可变写入(IMMUTABLE PUT)操作,来将数据对象作为键值对存储在云中。说明性地,不可变写入操作尝试将数据对象(值)存储在云存储系统中的位置(键)。如果先前的数据对象未存储在键位置,则不可变写入操作将数据对象存储在云存储系统的键位置。作为响应,云存储系统返回成功指示。然而,如果数据对象先前已存储在键位置,则不可变写入操作返回失败指示,并且不覆写先前写入的数据。换句话说,如果不可变写入操作返回成功指示,则云存储系统能够成功地将数据对象存储在相关联的键位置。然而,如果不可变写入操作返回失败指示,则先前的数据对象存储在相同的键位置。因此,失败指示表明数据对象具有相同的内容,并且因此,无需存储重复副本。因此,实现了数据对象之间的全局数据去重的目标,所述数据对象是根据正在使用相同的云存储系统的多个数据流而生成的。
[0018]
[0019]图1是根据这里描述的一个或更多个实施例的示例性云存储环境100的示意性框图。环境100以网络105为中心,网络105可以包括任何形式的网络,例如包括TCP/IP网络、虚拟专用网络(VPN)、局域网(LAN)或诸如已知的互联网的广域网(WAN)。本领域技术人员应当意识到,网络105可以包括多个不同的网络(未示出)。应当指出,根据这里描述的可替换实施例,各种网络可以包括不同类型和/或协议。另外,根据各种实施例,网络105的部分可以包括有线网络、无线网络等。因此,被实施为以太网、光纤通道等的网络105的任何描述应当仅被视为示例性描述。
[0020]包括网络云110的云存储系统与网络105可操作地互连,网络云110与云管理系统135和多个存储设备115可操作地互连。云存储系统可以包括任何类型的公共云存储环境,例如包括亚马逊S3、谷歌云存储、微软蓝云等。此外,在可替换实施例中,可以利用私有云存储部署,例如可从例如Nutanix、CloudStack、OpenStack等得到的私有云存储部署。应当指出,在可替换实施例中,网络云110可以包括网络105。也就是说,云存储系统的网络云110可以包括与由云存储环境利用的网络相同的网络105。因此,单独的网络云110的描述应当仅被视为示例性描述。
[0021 ]云存储系统提供了键值查找表抽象概念,以访问数据对象,其中,每个数据对象与用于存储/检索数据对象的用户定义的键相关联。以下描述的云存储网关设备可以使用例如超文本传输协议(HTTP)的原语操作,来与云存储系统通信。
[0022]在实施例中,原语操作(原语)包括获取(GET)原语、写入(PUT)原语、删除(DELETE)原语和不可变写入原语,所述原语中的每个可以由云存储系统提供。说明性地,云存储系统可以利用原语来以(键,值)对关系存储数据。例如,获取原语说明性地以键作为输入,这使云存储系统返回存储在云存储系统内与该键相关联的值(即数据对象)。类似地,删除原语以键作为输入,并使得删除与该键相关联的数据对象。写入原语和不可变写入原语以(键,数据对象)对作为输入。这两个操作导致了云存储系统尝试将数据对象存储在与键相关联的存储位置。说明性地,写入原语与不可变写入原语
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1