一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于重复数据删除云分层的垃圾收集的制作方法

2021-12-14 22:34:00 来源:中国专利 TAG:


1.本发明的实施方式涉及用于保护数据的系统、方法和设备。更特别地,本发明的实施方式涉及数据保护操作,包括备份操作、恢复操作、重复数据删除操作以及垃圾收集操作。更具体地,实施方式涉及用于收集重复数据删除云分层中的垃圾的系统和方法。


背景技术:

2.在很多计算系统中,数据通常本地或现场存储在内部部署网络中。出于很多原因,一些实体期望将其数据中的至少一些移动到目标站点,诸如基于云的存储系统(云)。为了降低与云相关联的存储成本,有用的是在数据被写入云之前对数据进行重复数据删除。以重复数据删除方式将其数据存储在云中的实体可能期望其云存储成本将随着数据被删除而降低。事实并不总是这样。
3.事实证明,删除对象可能会产生成本。这是因为重复数据删除。在新对象被写入云时,先前对象中的数据的一部分可能被新文件引用。当旧对象被删除时,并非对象中的所有内容都变成未被引用。为了删除未被引用的部分,需要通过读取对象的被引用部分并将其写入新对象来对这些对象进行碎片整理。尽管写入云是便宜且经常免费的,但从云读取数据可能很昂贵。更具体地,在常规垃圾收集操作的上下文中,需要传送大量的数据。读取和传送数据很昂贵。
4.例如,从云服务提供商传送数据的成本可能对于传送的前10tb而言是每gb 0.09美元。每周读取1tb的成本是每年约4,800美元。删除很多tb的数据的实体在垃圾收集操作期间可能会产生高网络成本,这至少是因为需要将数据传送回到本地系统以便适当地删除以重复数据删除的形式存储的数据。
附图说明
5.为了描述可获得本发明的至少一些优点和特征的方式,将参考在附图中示出的本发明的特定实施方式来呈现本发明的实施方式的更具体描述。应理解,这些附图仅描绘了本发明的典型实施方式并且因此不应被视为是其范围的限制,通过使用附图将用附加特征和细节来描述并解释本发明的实施方式,在附图中:
6.图1a示出了存储在云存储系统中的容器中的数据的示例;
7.图1b示出了在内部部署活动分层和云分层中提供数据保护操作的数据保护系统的示例,所述数据保护操作包括重复数据删除和垃圾收集;
8.图2示出了拷贝转发云分层中的容器的示例;
9.图3示出了被配置为在存储在基于云的存储器中的数据的云分层上执行垃圾收集操作的基于云的无服务器架构的示例;
10.图4示出了被配置为在数据的云分层上执行包括拷贝转发的垃圾收集操作的无服务器架构的另一个示例;
11.图5示出了可在云存储器中如何表示对象或文件以及在容器中如何存储对象的示
例;
12.图6示出了用于在云分层中执行垃圾收集的方法的示例;以及
13.图7示出了成本分析。
具体实施方式
14.本发明的实施方式总体上涉及数据保护,并且涉及用于执行数据保护操作的系统、方法和设备。数据保护操作的示例包括但不限于备份操作、恢复操作、复制操作、灾难复原操作、灾难复原测试操作、故障转移或部分故障转移操作、数据同步操作、复制操作、垃圾收集操作、拷贝转发操作等或它们的组合。更特别地,本发明的实施方式涉及用于在云中执行包括垃圾收集操作的数据保护操作的系统、硬件、软件、计算机可读介质和方法。
15.本发明的实施方式涉及数据保护系统(例如,dell emc data domain),该数据保护系统包括或提供例如用于数据存储的本地或活动分层以及用于数据存储的云分层。更特别地,本发明的实施方式涉及在活动分层和/或云分层上执行的垃圾收集操作。在重复数据删除存储系统中,数据(对象、文件等)通常分成组块或片段。执行垃圾收集操作以移除不再对应于仍应存储在存储系统中的数据的片段。未被引用的片段是死片段的示例并且可通过垃圾收集操作被移除,而活片段不应通过垃圾收集操作被移除。移除死片段可降低存储需求。
16.数据保护系统可为提供存储器的活动分层的现场设备,并且客户可将云分层用于某些数据。类似于内部部署数据,云中的数据被进行重复数据删除并且可被存储在包括片段的压缩区的容器中。
17.图1a示出了存储在云存储器中的数据的示例。图1a示出了云存储器150。用户的数据可存储在云中的容器中。在该示例中,云存储器150包括容器,所述容器被表示为容器152、158、160、162和164。容器的数量不受限制,并且容器可为不同的类型。一些容器(诸如容器152、158、160和162)可将片段存储在压缩区中。诸如容器164(cmeta容器)的容器可为元数据容器并且可被配置为存储元数据。元数据也可作为片段存储,并且因此,cmeta容器在元数据变成死的时也可被清理。
18.例如,容器152将片段存储在压缩区中。容器152的压缩区被表示为压缩区154和156。每个压缩区包括数据的片段。因此,压缩区154和156可各自存储一些数量的片段。压缩区154和156还可被压缩和/或加密。
19.如下面更详细地描述,压缩区154(类似于其他压缩区)可包含活片段和死片段两者。为了清理容器152,例如,可将至少部分是活的(或包括任何活片段)的压缩区拷贝转发到新容器中。死的或不包含任何活片段的压缩区不被拷贝转发。一旦活压缩区被拷贝转发到新的容器中,就可删除源容器或旧容器。这通过从容器移除死压缩区来收回存储空间。例如,如果压缩区154被认为是活的而压缩区156被认为是死的,则垃圾收集操作可将压缩区154拷贝到新容器中且然后删除容器152以移除压缩区156、和压缩区154的旧版本。这些改变被反映在cmeta容器164中(其可以类似方式被清理)。这确保数据保护系统知道片段的位置并且能够执行重复数据删除。
20.通过识别特定的压缩区,可在无需对压缩区或存储在其中的片段进行解压缩和/或解密的情况下清理容器152。
21.因此,为了在数据删除之后空出存储空间,将活压缩区(包括部分是活的压缩区)从旧容器拷贝到新容器,然后删除旧容器。更具体地,或将活压缩区拷贝到新容器(拷贝转发的示例),并且通过删除旧容器来删除死片段或死压缩区。以此方式,存储需求可降低,因为不再需要先前用于存储死压缩区的存储空间。因此,有效地移除了死片段。
22.另外,当将垃圾收集操作应用于压缩区或应用于容器中的数据范围时,可在不必对压缩区进行压缩和/或解密的情况下执行拷贝转发操作。在这种情况下,数据保护系统知道压缩区的起始地址或偏移,并且所述起始地址或偏移被包括在本地存储的元数据中或可从本地存储的元数据得出。因此,可通过识别源容器、源容器中的活压缩区的起始地址、压缩区的大小、以及活压缩区被拷贝转发的目的地容器来拷贝转发活压缩区。
23.可通过内部部署设备或内部部署数据保护系统来管理重复数据删除,并且本发明的实施方式通过使用指令或方案使得可在云本身内进行较大的数据传送或拷贝转发以减少对内部部署数据保护系统的读取和数据传送来降低成本(云内传送不产生成本)。这大幅减少了原本将在网络上传送到内部部署系统的数据量。
24.本发明的实施方式推进了系统的功能并且涉及无服务器架构,该无服务器架构可从现场或内部部署数据保护系统接收指令。数据保护系统维护元数据,该元数据允许对数据进行重复数据删除并且允许识别和清理云分层(和活动分层)中的活压缩区和/或死压缩区。包括在元数据中或从元数据得出的该信息允许生成指令并将其发送到云以供执行。来自数据保护系统的指令可以包括描述拷贝转发哪些压缩区的方案。可应用这些方案以将活压缩区从现有容器拷贝转发到新容器。这显著消除了网络传送并且大幅降低了客户成本,而同时支持对存储在云分层中的数据的细粒度清理。更一般地,本发明的实施方式允许通过识别被认为是活的或部分是活的数据范围且然后拷贝转发那些范围来清理掉内部部署数据保护系统的死片段。在一个示例中,这允许在无需对云对象进行解压缩/解密的情况下收回存储空间。在一个示例中,所述范围可与或可不与压缩区的边界一致。
25.用于执行垃圾收集操作的架构包括数据保护系统(例如,data domain)的垃圾收集引擎,在一个示例中该垃圾收集引擎能够通过向存储器或指定的url(统一资源定位符)写入指令来访问无服务器云系统(诸如amazon lambda)中的功能。一旦向指定的url写入指令或检测到其他事件,就基于指令或指令中包括的信息对函数进行实例化并执行。因此,gc引擎启动垃圾收集操作,该垃圾收集操作然后由数据的云分层中的无服务器架构中的函数实例执行。
26.图1b示出了包括数据保护系统110(例如,dell/emc data domain)或与其相关联的系统的示例。数据保护系统110可被实施为例如设备(物理的或虚拟的)或使用服务器/代理配置来实施。
27.图1示出了网络102。网络102表示内部部署计算系统,并且可与服务器/应用程序108(例如,数据库、电子邮件、文件服务器、虚拟化)相关联。客户端104能够通过网络102的基础设施来使用和访问服务器和应用程序108。网络102还与可存储在存储装置上的数据106相关联。数据106可存储在存储装置上并且由数据保护系统110使用存储器112进行备份。
28.数据保护系统110提供数据保护服务,所述数据保护服务可包括但不限于备份操作、恢复操作、重复数据删除操作、垃圾收集操作等。数据保护系统可提供存储器112(也被
称为活动或本地分层)。数据106(和/或虚拟机、应用程序、对象(例如,文件)的备份可存储在存储器112中。此外,存储器112可通过数据保护系统被进行重复数据删除。数据保护系统110还可包括垃圾收集(gc)引擎114,该垃圾收集引擎被配置为从存储器112移除未被引用的对象或片段。
29.数据保护系统110还可提供云存储器(云120)或与其相关联。在一个示例中,云120可用来提供分层存储器122(也被称为云分层)。数据保护系统110可使用分层存储器122来存储被存储在存储器112上的数据中的一些。例如,客户可从存储器112选择应被迁移到云分层存储器122并存储在其中的某些文件或数据。因此,数据保护系统110可向云分层存储器122写入对象、从云分层存储器122删除对象,以及对云分层存储器122执行其他基于文件或对象的操作。
30.同时,数据保护系统110可负责对存储器112和云分层存储器122两者处的数据进行重复数据删除。数据保护系统110还可维护元数据116,该元数据标识存储器112和/或存储器122中的活片段和/或死片段或者允许识别活片段和/或死片段。更广泛地,元数据116允许识别活压缩区/死压缩区。因此,数据保护系统110还够识别活的或部分是活的数据范围和/或死数据范围(例如,死压缩区/活压缩区)。在一个示例中,对活片段的识别有效地将相关联的压缩区识别为活压缩区。一旦确定压缩区是活压缩区,可以不必重复或评估与该压缩区相关联的所有片段。
31.数据保护系统110被配置为至少在垃圾收集的上下文中最小化或降低去往云/来自云的数据传送需求,并且被配置为确定活压缩区以及被配置为通过从云分层存储器122移除或至少部分地移除死压缩区由此移除死片段来清理容器。本地存储在数据保护系统110的元数据116允许gc引擎114在垃圾收集操作期间确定片段或压缩区的存活性并且做出关于将哪些数据(例如,范围、压缩区)从现有的云容器拷贝转发到云分层存储器122中的新云容器的判定。
32.图2示出了存储在云分层中的容器的示例并且示出了拷贝转发过程。图2示出了容器202。在该示例中,容器202是在垃圾收集操作开始之前存在于云中的现有容器。容器202包括压缩区(由压缩区204和208表示)。类似于容器202的其他压缩区,压缩区204包括片段206。压缩区208包括片段210。
33.在垃圾收集操作开始时,gc引擎114可确定片段206中的至少一些包括活片段。gc引擎114还可确定片段210都不是活片段。换句话说,gc引擎114可确定压缩区208是死压缩区,而压缩区204是活压缩区。在一个示例中,只要压缩区包括至少一个活片段,该压缩区就是活的。
34.在垃圾收集操作期间,创建新容器212。新容器212在被写入时将包括压缩区(由压缩区214表示)。类似于其他压缩区,压缩区214在被写入时将包括片段216。在拷贝转发过程期间,当向容器212写入时,可将容器202的活压缩区写入容器212中。在该示例中,压缩区204被写入容器212中成为压缩区214。因此,在一个示例中,当在压缩区级(level)执行垃圾收集操作时,片段216与片段206相同。在这一级,诸如压缩区208的完全死的压缩区通过垃圾收集操作被删除。更具体地,删除压缩区208,因为压缩区208未被拷贝转发。然后,删除容器202。
35.在垃圾收集期间,写入新容器212中的活压缩区可来自多个源容器。另外,根据需
要创建并存储元数据,使得由数据保护系统维护压缩区的新位置、其内容以及片段216的位置。
36.当在压缩区级执行垃圾收集操作时,通过基于容器202内的压缩区204的位置进行拷贝转发来拷贝转发压缩区204。在该示例中,gc引擎可向图1b所示的url 126写入指令或方案。这个事件触发执行拷贝转发操作的函数。在该示例中,向url 126写入的指令(或其他事件)可包括容器202的标识符、容器202内的压缩区204的起始位置以及压缩区204的大小。这允许通过向url 126写入方案或指令的事件来对函数124(参见图1b)进行实例化,以将压缩区204拷贝到容器212中。此外,可在无需理解压缩区204的格式且不必执行诸如解压缩和/或解密的计算上昂贵的过程的情况下拷贝转发压缩区204。换句话说,压缩区204可在处于压缩和/或加密状态时被拷贝转发。
37.本发明的实施方式允许拷贝转发判定而不必将数据网络传送回源站点(例如,网络102)。可通过创建响应于事件而执行的函数来避免网络传送。这些函数或实例具有优点,在于它们可在没有读回到内部部署数据保护系统110的传送成本的情况下读取云容器并在云内传送数据。当垃圾收集操作完成时,函数退出,因此计算成本保持较低。
38.当在压缩级清理时,来自数据保护系统的写入url 126的方案可包括一系列指令,诸如:
39.从容器a从length1(长度1)个字节中的start1(起点1)拷贝到容器c。
40.从容器a从length2个字节中的start2拷贝到容器c。
41.从容器b从length3个字节中的start3拷贝到容器c。
42.确认容器c具有校验和值并写入对象存储器。
43.删除容器a和b。
44.尽管以上示例方案聚焦于将字节范围从旧容器拷贝到新容器,但是可选择这些字节范围以与容器内的压缩区匹配。
45.作为完整性检查,当数据保护系统不具有片段本身而是仅具有它们的引用时,可在容器内的指纹上计算校验和。指纹存储在与云中的容器相关联的元数据116中。与存储在云中的片段、压缩区和容器相关的元数据也可存储在云中。
46.图3示出了用于在与活动分层相关联的系统300(例如,内部部署系统)和与云分层相关联的云系统310的上下文中执行垃圾收集操作的系统和方法。图3示出了数据保护系统302(数据保护系统110的示例),该数据保护系统302包括gc引擎304并且可访问与存储在云310中的容器320相关的元数据306。容器320可各自包括压缩区。然而,容器中的一些可存储cmeta(容器元数据)。因此,云存储器318还可存储其他容器,诸如cmeta容器。
47.在垃圾收集操作期间,gc引擎304可通过向url 324(其也可为api)写入方案308或通过执行导致函数312的执行的另一个动作来访问无服务器函数。函数312被配置为清理容器320。如图所示,数据保护系统302或gc引擎304通过执行调用函数312的事件来对云中的函数312进行实例化。函数312与云存储器318中的容器320交互并清理所述容器,而不会产生如先前所述的数据传送成本。更具体地,gc实例314和316是函数312的具体实例。实例314和316中的每一者可执行不同的方案。例如,每一者可对不同组或范围的容器起作用。
48.垃圾收集操作是可扩展的并且可对一批容器起作用。例如,容器可按批处理(该批也被称为一系列容器)。当处理第一批时,gc引擎308可将方案配置为将该批的一部分分配
到函数312。该一系列容器可在指令或方案308中指定。当对多个函数进行实例化时,每个函数可对该批的不同部分起作用。这允许并行地清理该批。可连续地清理多批。
49.图3还示出了轮询文件322。当完成垃圾收集或垃圾收集的拷贝转发方面时,可由实例314和316创建轮询文件322。gc引擎304可周期性地对云存储器318进行轮询,并且当存在轮询文件322时,gc引擎304理解已经完成函数。在一个示例中,轮询文件322可包括新容器的校验和,该校验和可与本地存储的校验和进行比较以确认垃圾收集操作。
50.图4示出了使用无服务器配置(例如,amazon lambda)的远程垃圾收集的示例。无服务器配置可包括可由事件(例如,诸如通过访问url或api)触发的函数或多个函数实例。
51.图4示出了源站点420(例如,内部部署站点),该源站点包括作为数据保护系统的一部分的gc引擎402。当gc引擎402启动时,gc引擎402可启动、配置并部署云中的无服务器层422中的gc函数404、406和408。更具体地,gc引擎402可生成包括足够的信息以清理存储在云对象存储器424中的容器的方案或指令。当向指定的url写入该方案或指令时,例如,函数404、406和408被实例化,并且在云对象存储器的容器上执行该方案。该方案可配置函数404、406和408的操作参数。
52.一旦部署并运行函数404、406和408,就通过拷贝转发指令或方案中指定的活范围来清理容器。当指令处于压缩区级时,拷贝转发活压缩区(由如先前讨论的偏移和大小标识)。在该示例中,将来自容器c1和c2的活压缩区拷贝到容器c3中,将来自容器c4和c5的活压缩区拷贝到容器c6中,并且将来自容器c7和c8的活压缩区拷贝到容器c9中。一旦完成拷贝转发,就删除容器c1、c2、c4、c5、c7和c8,并且在云存储器中创建一个或多个轮询文件。
53.在一个示例中,在无服务器配置中,拷贝转发方法或过程被封装在无服务器框架内。数据保护系统然后访问适当的url并且供应指定要应用的方案的值。
54.gc引擎402可创建用于函数404、406和408的每个实例的方案(例如,每个函数处理一系列容器)。gc引擎402创建方案并且将该方案写入对象存储器424或其他指定的url。指定的url可为对象存储器424。这个事件触发函数404、406和408。当检测到事件时,可解析方案。当被识别为方案时,调用对应于该事件的可执行该方案的函数。
55.当函数404、406和408已经完成时,它们可被配置为将轮询文件或其他对象写入对象存储器424。在一个示例中,可将校验和写入对象存储器424。gc引擎402可周期性地轮询对象存储器424以检查该校验和或其他对象。当存在对象或校验和时,如先前所述,可将该校验和与本地存储的校验和进行比较。这可确认拷贝转发操作被正确地执行。另外,在源站点420处写入cmeta容器并将其复制到云存储器424。
56.仅以示例方式,容器可具有两个部分:元数据区段、和数据区段或压缩区。在数据区段中,每个压缩区包括一堆经压缩的片段。对于每个片段,可出于重复数据删除目的来计算指纹。元数据区段表示或存储容器的元信息并且可包括各种字段,诸如但不限于:容器中有多少个压缩区、压缩区的压缩大小和未压缩大小、每个压缩区中的片段的数量、容器中的片段的总数、以及存储在容器中的所有片段的指纹的表。
57.图5示出了可在活动分层中或在云分层中如何表示文件或对象的示例。存储系统可将对象或文件表示为片段树,如图5所示。内容处理502可指向超级片段504(其可为l6片段的示例)。元数据片段510可包括lp片段(例如,l1至l6片段)。数据片段l0 508是文件或对象的实际数据并且可存储在片段树500的叶节点中。元数据片段510和数据片段508通常存
储在单独的容器中。因此,存储lp片段的容器可被称为lp容器,并且存储l0片段的容器可被称为l0容器。
58.cmeta容器是存储元数据的容器。更具体地,cmeta容器可存储l0容器和lp容器的元数据区段的集合。在垃圾收集期间,元数据(cmeta和lp)用来识别活片段和死片段或者用来识别活压缩区和死压缩区。为了避免从云读取元数据,将元数据(例如,cmeta容器和lp容器)存储在本地并复制到云。在一个实施方式中,l0容器仅被写入到云。因此,在一个实施方式中,数据相对于活动分层和云分层两者被进行重复数据删除。在一个示例中,将cmeta容器和lp容器维护在本地和在云中。
59.在垃圾收集期间,gc引擎可读取本地cmeta容器。通过读取本地cmeta容器,可获得实际l0容器和lp容器的元数据。该元数据可包括实际l0容器和lp容器的所有片段的指纹。
60.使用该元数据,gc引擎可查找指纹以确定lp容器的活和死压缩区或范围。然后将现有lp容器的活压缩区或范围拷贝到新的lp容器中。在本地写入新的lp容器并且将其写入到云。接下来,将新的lp容器的元数据区段拷贝到新的cmeta容器,并且在本地写入新的cmeta容器并将其作为对象写入到云。
61.接下来,读取本地cmeta容器的元数据区段以识别源或现有l0容器的活压缩区或范围。这可为重复过程。这允许识别用于现有容器中的活压缩区的方案(源_对象_id、偏移、大小)。向url写入这些方案,使得可通过无服务器架构中的函数将活压缩区拷贝转发到云中的新容器或对象中。
62.接下来,将对应于新容器中的压缩区的元数据在本地拷贝转发到新的cmeta容器中并复制到云。最后,可删除源lp、l0和cmeta容器(从其拷贝转发区或范围的容器),以收回或释放云空间。
63.在重复数据删除存储系统中,如先前所讨论,容器可存储不同类型的数据。一些容器可存储数据片段(例如,l0容器),而其他容器可存储用于存储和重构对象的数据(例如,lp容器)。在垃圾收集期间可类似地处理这些容器。在一个示例中,这些片段被存储在压缩区中。
64.在一个示例中,gc引擎知道云分层中的存储数据的容器。例如并参考图4,gc引擎存储或可访问描述容器c1、c2、c4、c5、c7和c8的元数据。这允许从元数据识别源容器、活/死压缩区并且将其包括在一个或多个方案中。
65.在一个示例中,方案可包括从其拷贝活范围的源容器的列表、压缩区中的该范围的起始位置和大小、目的地容器列表、目的地cmeta列表。因此,方案标识待清理的容器、标识诸如活压缩区的活数据区的范围、目的地容器列表、以及目的地cmeta。向适当的位置写入该方案,使得作为响应而调用函数。一旦在云分层中完成了这个过程,就在本地写入新的cmeta容器并且在一个示例中将其复制到云。cmeta容器对应于云分层容器并且可包含与云分层中存储的内容相关的元数据。因此,cmeta容器实现重复数据删除。也在本地写入lp容器。
66.当完成并验证了这个过程时,gc引擎可针对文件来轮询云对象存储器,以验证完成并正确地执行拷贝转发或垃圾收集。
67.通过在云中用无服务器架构执行垃圾收集,避免了导入/导出成本。然而,存在运行这些函数的计算成本。因此,可将无服务器方法的成本与在网络上传送这些对象的成本
(导入/导出成本)进行比较。在一个示例中,当读取5000万个对象并写入2500万个对象(每个对象为4mb)时,计算成本加请求成本加取(get)成本加放(put)成本可为每垃圾收集周期约422美元。这通常小于与在网络上传送这些对象相关联的成本。
68.图6示出了用于在云分层上执行数据保护操作(诸如垃圾收集)的方法的示例。图6示出了由数据保护系统作为整体执行的方法并且示出了可由各种部件执行的垃圾收集操作的方面。例如,gc引擎600可为内部部署的并且可被配置为控制数据保护操作,包括对于活动分层和云分层的垃圾收集操作。本发明的实施方式还可适用于源是基于云的系统的情形。
69.gc引擎600可与响应于事件(诸如通过gc引擎600的写入)而在云中实例化的无服务器函数620通信。无服务器函数620可被配置为通过执行从gc引擎600接收到的方案或控制其性能来管理云中的垃圾收集操作。无服务器函数620可执行包括拷贝转发的垃圾收集操作的一部分。
70.图6所示的方法可通过处理602关于云分层的元数据来开始。内部部署系统通常存储描述存储在云中的容器的元数据,并且处理元数据可包括评估存储在云分层中的容器的元数据,以识别存储在容器中的数据的存活性和死亡性。在一个示例中,元数据可允许gc引擎600识别哪些压缩区包括活片段以及哪些压缩区仅包含死片段。如先前所述,元数据还可用于识别活/死压缩区。
71.由于gc引擎600知道压缩区的位置和容器的其他方面,并且由于可确定片段和/或压缩区的状态,因此可生成604方案,使得可拷贝转发活范围或压缩区。在压缩区级,这些方案允许在不考虑格式、压缩或加密的情况下拷贝转发压缩区。
72.更具体地,在一个示例中,gc引擎600知道数据被如何压缩和/或加密。因此,可确定范围在其压缩/加密形式下的大小。在一个示例中,该信息存在于描述存储在容器中的信息的cmeta中。
73.由gc引擎600生成的方案通常标识源容器、数据位置(例如,容器中的偏移或起始地址)、长度或大小、以及目的地容器。该信息允许函数将在对应于活范围或压缩区的位置处的数据拷贝到新目的地容器。
74.一旦生成,就将方案写入606到指定位置(特定url,诸如对象云存储器)。检测622并评估写入。当写入被解译为特定事件时,将对应于检测到的事件的函数实例化624。方案可被配置为调用多个函数或实例。可替选地,可发送多个方案,使得每个实例化的函数对不同组的容器进行操作。因此,被启动的函数接收方案并且根据方案来执行626垃圾收集操作。
75.可执行拷贝转发,例如,将在方案中识别的范围或压缩区从源容器拷贝到新的容器。对lp容器和l0容器两者都可这样执行。可确定关于新容器的cmeta并且将其存储在新的cmeta容器中。在一个示例中,以类似方式创建新的cmeta容器。
76.在一个示例中,函数可各自向对象存储器写入轮询文件,从而发信号表明628完成垃圾操作。这些文件可构成校验和,该校验和可与可用于gc引擎600的本地存储的校验和进行比较,以确认已经正确地执行垃圾收集或拷贝转发操作。因此,gc引擎600可轮询608对象存储器,直到检测到这些文件为止。
77.一旦检测到并验证了文件,就可更新610关于云分层的元数据。这可包括接收与新
容器相关联的元数据。由gc引擎600来更新610关于云分层的元数据。这可包括在本地生成新的元数据容器并且将新的元数据容器复制到云。
78.图7示出了在云提供商处每月运行一次gc的成本。该云提供商具有两种存储配置:标准和标准低频存取。其他云提供商的成本类似。
79.在该示例中,假定1pb的云分层。根据经验,确定每gc周期可能有10%流失。因此,在1pb中,预期100tb的数据将是死的。由于分割,活数据和死数据将被分配在容器中(即,容器将具有活数据和死数据两者)。被清理的容器的平均存活性是50%(即,50%的片段是死的且50%是活的)。基于这些假定,为了清理平均存活性为50%的100tb的死数据,gc需要从云读取200tb的数据并且向云写入100tb的新数据。如果每个对象大小为4mb,则gc需要读取200tb/4mb=52428800个对象并且向云写入52428800/2=26214400个对象。放(put)操作的事务成本是每1,000个请求0.005美元,并且取(get)成本是每1000个请求0.0004美元。因此,读取52428800个对象的事务成本是262美元且写入是10美元。但主要成本是数据传送成本:导入/导出成本。读取200tb且写入100tb的数据传送成本对于标准存储是14,994美元且对于低频存取是7826美元。
80.如图7所示,因被清理的数据而节省的成本是2126.25美元,因为在云上的每月数据存储成本被降低。
81.检查与无服务器配置相关联的计算成本。在一个示例中,该配置可具有16核、64gb的内存并且每小时成本为0.8美元。另外,这种实例的速度也可变化。在一个示例中,可实现至少200mb/s的拷贝速度。如果启动8个实例,则可实现1.6gb/s的速度。在该示例中且在该速度下,拷贝转发200tb的数据将需要约12800秒或约35小时。这产生227美元的成本。
82.因此,本发明的实施方式实现每gc周期的成本降低大约66x(倍)。此外,这样更快,因为可按期望启动许多实例或者可基于要拷贝的数据来控制数量。相比之下,通过网络进行拷贝转发的成本显著更高且更慢。假定网络具有100mb带宽,在最佳情况的情形下也无法实现100mb/s的读取。因此,本发明的实施方式节省了网络带宽以供数据移动到云,而不是将网络带宽浪费在常规的垃圾收集方法上。
83.以下是对用于本发明的各种实施方式的示例操作环境的方面的讨论。以下论述不意图以任何方式限制本发明的范围或实施方式的适用性。
84.一般而言,本发明的实施方式可以结合单独地和/或共同地实施和/或致使实施数据管理操作的系统、软件和部件一起来实施。此类数据管理操作可包括但不限于数据读取/写入/删除操作、数据备份操作、数据恢复操作、数据克隆操作、数据归档操作以及灾难复原操作。因此,尽管在一些方面,本文中的讨论可涉及数据保护环境和操作的讨论,但本发明的范围不限于此。于是更一般地,本发明的范围涵盖所公开的概念可有用的任何操作环境。以说明而非限制的方式,本发明的实施方式可与数据备份和恢复平台(诸如dell

emc networker和avamar以及data domain平台)结合使用。
85.数据保护环境可采用公共或私有云存储环境、内部部署存储环境以及包括公共和私有元素的混合存储环境的形式,但本发明的范围也扩展到任何其他类型的数据保护环境。这些示例存储环境中的任一个可部分地或完全地虚拟化。所述存储环境可包括数据中心或由数据中心组成,所述数据中心可操作成为由一个或多个客户端发起的读取和写入操作服务。
86.除了存储环境外,操作环境还可包括各自托管一个或多个应用程序的一个或多个主机装置,例如,诸如客户端。因此,特定客户端可采用一个或多个应用程序中的每一个的一个或多个实例或者以其他方式与该一个或多个实例相关联。一般而言,客户端采用的应用程序不限于任何特定功能或任何特定功能类型。例如,一些示例应用程序和数据包括电子邮件应用程序(诸如ms exchange)、文件系统、以及数据库(诸如oracle数据库和sql服务器数据库)。客户端上的应用程序可生成期望保护的新数据和/或修改的数据。
87.本文公开的装置或实体中的任一者可由根据本发明的各种实施方式的一个或多个数据保护策略保护。可通过根据本发明的实施方式的数据保护策略保护的装置的另外的其他示例包括但不限于容器和vm。
88.操作环境中的任何装置(包括客户端、服务器和主机)可采取软件、物理机、或虚拟机(vm)、或者这些的任何组合的形式,但任何实施方式都不要求特定装置实施方式或配置。类似地,数据保护系统部件(例如,诸如数据库、存储服务器、存储卷(lun)、存储盘、复制服务、备份服务器、恢复服务器、备份客户端和恢复客户端)可同样采取软件、物理机、或虚拟机(vm)的形式,但任何实施方式不要求特定部件实施方式。在使用vm的情况下,可使用管理程序或其他虚拟机监视程序(vmm)来创建和控制vm。
89.如本文所使用,术语“数据”的范围意图是广泛的。因此,该术语以示例而非限制的方式涵盖诸如可由数据流分段过程产生的数据片段、数据组块、数据块、原子数据、电子邮件、任何类型的对象、文件、联系人、目录、子目录、卷、容器、以及上述一项或多项的任何组。
90.本发明的示例实施方式适用于能够存储和处理呈模拟、数字或其他形式的各种类型的对象的任何系统。尽管可以示例的方式使用诸如文档、文件、块或对象的术语,但是本发明的原理不限于表示和存储数据或其他信息的任何特定形式。而是,此类原理等同地适用于能够表示信息的任何对象。
91.本文所公开的实施方式可包括对包括各种计算机硬件或软件模块的专用或通用计算机的使用,如下面更详细地讨论的。计算机可包括处理器和携载指令的计算机存储介质,所述指令在被处理器执行和/或致使被处理器执行时执行本文所公开的方法中的任一者或多者。
92.如上所指示,在本发明的范围内的实施方式还包括计算机存储介质,所述计算机存储介质是用于携载或在其上存储计算机可执行指令或数据结构的物理介质。此类计算机存储介质可为可由通用或专用计算机访问的任何可用物理介质。
93.以示例而非限制的方式,此类计算机存储介质可包括硬件存储器,诸如固态盘/装置(ssd)、ram、rom、eeprom、cd

rom、快闪存储器、相变存储器(“pcm”)、或其他光盘存储装置、磁盘存储装置或其他磁性存储装置、或者可用来存储呈计算机可执行指令或数据结构的形式的程序代码的任何其他硬件存储装置,所述程序代码可由通用或专用计算机系统访问和执行以实施本发明所公开的功能。上述的组合也应被包括在计算机存储介质的范围内。此类介质也是非暂时性存储介质的示例,并且非暂时性存储介质还涵盖基于云的存储系统和结构,但是本发明的范围不限于非暂时性存储介质的这些示例。
94.计算机可执行指令包括例如致使通用计算机、专用计算机、或专用处理装置执行特定功能或功能组的指令和数据。尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应理解,所附权利要求中限定的主题不一定限于以上描述的特定特征或动作。
而是,本文所公开的特定特征和动作是作为实施权利要求的示例形式公开的。
95.如本文所使用,术语“模块”或“部件”可指代在计算系统上执行的软件对象或例程。本文所公开的不同部件、模块、引擎和服务可被实施为在计算系统上例如作为单独线程执行的对象或进程。尽管本文所描述的系统和方法可在软件中实施,但是在硬件、或者软件和硬件的组合中实施也是可能的并且是可设想的。在本发明中,“计算实体”可为如本文先前所述的任何计算系统或者是在计算系统上运行的任何模块或模块的组合。
96.在至少一些情况下,提供硬件处理器,该硬件处理器可操作来执行可执行指令以执行方法或过程,诸如本文所公开的方法和过程。硬件处理器可包括或可不包括其他硬件的元件,诸如本文所公开的计算装置和系统。
97.就计算环境而言,本发明的实施方式可在客户端

服务器环境(不论是网络环境还是本地环境)中执行或在任何其他合适的环境中执行。本发明的至少一些实施方式的合适操作环境包括其中客户端、服务器或其他机器中的一者或多者可在云环境中驻留并操作的云计算环境。
98.在不脱离本发明的精神或本质特性的情况下,本发明可以其他特定形式体现。所描述的实施方式应在所有方面仅被视为说明性而非限制性的。因此,本发明的范围由所附权利要求而非前述描述指示。在权利要求的等效含义和范围内的所有改变将被涵盖在其范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献