发送去冗余数据和修复代理的制作方法

文档序号:16595805发布日期:2019-01-14 19:37阅读:157来源:国知局
发送去冗余数据和修复代理的制作方法

计算机系统可产生大量数据。这样的数据的损失可能对使用该计算机系统的实体是有害的。为了保护免受这样的损失,数据备份系统可存储计算机系统的数据的至少一部分。如果计算机系统的故障防止数据的某个部分的取回,则从数据备份系统取回该数据也许是可能的。

附图说明

下面的详细描述参考附图,其中:

图1是根据一些例子的将去冗余数据(deduplicateddata)的时间上一致的数据集和修复代理(rehydratingagent)的可执行副本发送到存储资源的计算设备的框图。

图2a是根据一些例子的与修复代理的可执行副本成对地发送的去冗余数据的时间上一致的数据集的图。

图2b是根据一些例子的与修复代理的可执行副本分开发送的去冗余数据的时间上一致的数据集的图。

图2c是根据一些例子的与修复代理的可执行副本成对地发送到多个存储资源的去冗余数据的时间上一致的数据集的图。

图2d是根据一些例子的与修复代理的可执行副本分开地发送到多个存储资源的去冗余数据的时间上一致的数据集的图。

图3是根据一些例子的发送去冗余数据的时间上一致的数据集和修复代理的可执行副本的系统的框图。

图4是根据一些例子的将去冗余数据的时间上一致的数据集和修复代理发送到远程存储资源的方法的流程图。

图5a是将去冗余数据的时间上一致的数据集和修复代理的可执行副本发送到物理磁带(包括分开发送时间上一致的数据集和可执行副本)的示例方法的流程图。

图5b是将去冗余数据的时间上一致的数据集和修复代理的可执行副本发送到物理磁带(包括一起发送时间上一致的数据集和可执行副本)的示例方法的流程图。

图5c是将去冗余数据的时间上一致的数据集和修复代理的可执行副本发送到基于对象的仓库(包括分开发送时间上一致的数据集和可执行副本)的示例方法的流程图。

图5d是将去冗余数据的时间上一致的数据集和修复代理的可执行副本发送到基于对象的仓库(包括一起发送时间上一致的数据集和可执行副本)的示例方法的流程图。

图6是根据一些例子的使用修复代理的可执行副本来恢复去冗余数据的时间上一致的数据集的示例方法的流程图。

具体实施方式

数据备份系统可使用几种技术来确保数据保护。一种这样的技术是数据去冗余,一种将一序列输入备份数据分成数据的非重叠区块的有序集合的技术。在去冗余过程中,当找到原始数据的复制本时,可建立对原始数据的指针,而不是存储原始数据的另一副本(即复制本)。通过存储数据的唯一区块,去冗余使备份数据能够通过减少所需的存储空间而紧凑地和廉价地被存储。

数据备份系统也可将备份数据存储在远离数据生成地点的位置上(例如来自存储客户端的数据),需要使用所建立的通信协议进行数据的传输。例如,去冗余数据可存储在模仿磁带库(被称为虚拟磁带库(vtl))的磁盘阵列中。因为去冗余数据比输入备份数据更紧凑,因此去冗余数据的传输时间可小于输入备份数据的传输时间。因此,去冗余也可减小带宽要求。

当去冗余数据被存储时,它可以以允许数据容易与创建去冗余数据的方法(例如去冗余工具或软件)通过接口连接的方式被存储。这是因为去冗余数据取决于创建它的机制(即,数据是格式不透明的)。例如,在一些情况下,去冗余数据的恢复需要用创建去冗余数据的相同工具或工具的相同版本来完成。因此,以将去冗余数据链接到原始去冗余方法的方式存储去冗余数据允许去冗余数据在需要时使用原始去冗余方法被修复(或恢复)回到它的原始重复形式。

这对数据备份系统产生问题,因为数据备份系统除了存储去冗余数据以外还可保护已经被去冗余的数据。例如,例如物理磁盘(例如线性磁带开放(lto)等)的存储资源或在网络(例如s3、swift等)上操作的基于对象的仓库可用于归档目的并且可用于保持在去冗余数据中的信息的长期存储。除了由去冗余数据提供的二级保护水平以外,这还提供三级保护水平。在一些情况下,将数据归档到物理磁带可用于帮助遵守政府或工业法规。

然而,用于归档目的的存储资源并不链接到创建去冗余数据的去冗余方法。在没有去冗余方法的情况下,很难修复去冗余数据以及从去冗余数据提取信息。这在将去冗余数据以其去冗余形式进行归档时是个问题,因为在档案中保持的数据可能在归档日期之后的长时间段期间是不需要的,且可能难以确保创建去冗余数据的去冗余方法在从档案恢复的时间是可访问的或可得到的。

因此常常为了以有用的形式归档去冗余数据,去冗余数据在它被发送到存储资源之前被修复。但这个修复过程是耗时的。此外,以原始的重复形式存储数据给数据备份系统的带宽和存储空间增加负担。

本文所述的例子通过提供存储去冗余数据的方式和修复去冗余数据的机制来处理这些问题。在一些例子中,产生去冗余数据的时间上一致的数据集并产生修复代理。时间上一致的数据集和修复代理的可执行副本然后被发送到存储资源用于存储。

在一些例子中,计算设备被提供有处理器、产生修复代理的指令、产生去冗余数据的时间上一致的数据集的指令和将时间上一致的数据集和修复代理的可执行副本发送到存储资源的指令。指令由处理器可执行。

在一些例子中,系统被提供有去冗余引擎、策略引擎、数据生成引擎、代理生成引擎和传输引擎。去冗余引擎产生去冗余数据。策略引擎确定触发事件的出现。响应于触发事件的出现,数据生成引擎产生去冗余数据的时间上一致的数据集。代理生成引擎响应于触发事件的出现而产生修复代理的可执行副本。传输引擎然后将时间上一致的数据集和修复代理的可执行副本发送到存储资源。

在一些例子中,提供产生去冗余数据的时间上一致的数据集并产生修复代理的方法。该方法包括将时间上一致的数据集和修复代理的可执行副本发送到远离去冗余数据的存储资源。

因此,本文所述的例子允许去冗余数据为了归档目的而被存储而不依赖于产生去冗余数据的原始方法。这释放数据备份系统的存储空间和带宽资源,允许数据备份系统在数据保护的三级水平中使用去冗余数据。

现在参考附图,图1是将去冗余数据和修复代理的可执行副本发送到存储资源150的示例计算设备100的框图。如在本文使用的,“计算设备”可以是服务器、计算机联网设备、芯片集、桌上型计算机、工作站或任何其它处理设备或装备。在一些例子中,计算设备100可以是与远程存储客户端通过接口连接的存储服务器。

图1的计算设备100包括处理资源120和存储介质110。存储介质110可以采用非临时机器可读介质的形式,例如适当的电子、磁性、光学或其它物理存储装置,以包含或存储例如指令111、112和113、有关数据等的信息。

如在本文使用的,“机器可读存储介质”可包括存储驱动器(例如硬盘驱动器)、闪存、随机存取存储器(ram)、任何类型的存储盘(例如光盘只读存储器(cd-rom)、任何其它类型的光盘、dvd等)等或其组合。在一些例子中,存储介质可对应于包括例如随机存取存储器(ram)(其中软件可在运行时间存在)的主存储器和辅助存储器的存储器。辅助存储器可例如包括非易失性存储器,其中软件或其它数据例如去冗余数据的副本被存储。

在图1的例子中,指令111、112和113在存储介质110上被存储(即,编码)并由处理资源120可执行来实现在本文关于图1所述的功能。在一些例子中,存储介质110可包括额外的指令,例如实现在本文关于图3和图5a-5d所述的一些功能的指令。在一些例子中,指令111-113和在本文关于存储介质110所述的任何其它指令可存储在远离计算设备100和处理资源120但计算设备100和处理资源120可访问的机器可读存储介质上。在其它例子中,存储介质110的任何指令的功能可采用电子电路的形式、采用机器可读存储介质上编码的可执行指令的形式或其组合实现。

处理资源120可以例如采用中央处理单元(cpu)、基于半导体的微处理器、例如数字图像处理单元的数字信号处理器(dsp)、适合于取回并执行存储在存储介质中的指令的其它硬件设备或处理元件或其适当组合的形式。处理器可例如包括芯片上的单个或多个核、跨越多个芯片的多个核、跨越多个设备的多个核或其适当组合。处理器可起作用来取出、解码并执行指令111、112和113,如本文所述。

在图1的例子中,去冗余数据131存储在存储器130中。存储器130可与存储指令111-113的机器可读存储介质110分离或可由机器可读存储介质110实现。在一些例子中,存储器130包括如上面讨论的辅助存储器部分。如在本文使用的,“去冗余数据”包括从原始输入数据(例如由存储客户端产生的数据)创建的数据,其中在原始输入数据中找到的至少一些重复数据被移除(例如大部分或全部重复数据可被移除)。去冗余数据包括已被处理而移除重复数据的原始输入数据和存在于缓冲器中以待被处理来移除重复数据的原始输入数据。处理资源120与存储器130通信。虽然存储器130在图1的例子中被示为容纳在计算设备100中,但在其它例子中,存储器130可与计算设备100分离,但存储器130是计算设备100的处理资源120可访问的。如将关于图3讨论的,在一些例子中,去冗余数据131可与去冗余引擎相关。

指令111可以由处理资源120可执行,使得计算设备100操作来产生去冗余数据131的时间上一致的数据集。如在本文使用的,“去冗余数据的时间上一致的数据集”是包括已被处理而移除重复数据的原始输入数据的去冗余数据131的副本。时间上一致的数据集不包括存在于缓冲器中以待被处理的原始输入数据。去冗余数据131中的、包括缓冲器中的待处理的原始输入数据的那部分在它可被考虑为时间上一致的数据集的部分之前被冲掉。换句话说,时间上一致的数据集是到单个时间点为止时已被去冗余的数据的副本。在一些例子中,时间上一致的数据集用于确保在由时间上一致的数据集捕获的去冗余数据内没有不一致。在一些例子中,指令111可包括暂停去冗余引擎(见图3)的去冗余过程以确保去冗余数据131的池不改变。在一些例子中,指令111可包括获取去冗余数据131的快照以及读取快照以产生时间上一致的数据集。

在一些例子中,去冗余数据的时间上一致的数据集不捕获所有去冗余数据131,但更确切地仅仅捕获去冗余数据131的子集。在这些例子中,指令111可包括确定去冗余数据131的适当子集的指令,时间上一致的数据集从该子集产生。在一些例子中,这些指令可(至少部分地)基于对跟踪之前已被发送到存储介质的去冗余数据的卷的目录的参考,来确定去冗余数据的适当子集。在一些例子中,这些指令可(至少部分地)基于去冗余数据的年代的年代规则或自从上一次归档以来已过去了多长时间的时间规则,来确定去冗余数据的适当子集。在一些例子中,这些指令可(至少部分地)基于来自选择要归档的特定数据的存储客户端的输入来确定去冗余数据的适当子集。例如,存储客户端可选择待归档的特定虚拟盒或特定文件共享或在文件共享内的文件。在一些例子中,这些方法中的至少一个的组合可用于确定适当的子集。

适当的子集可包括子集所依赖的任何其它数据,即使其它数据将不独自被包括在子集中。这个其它数据的包括使子集变得独立地连贯和一致且摆脱对外部源的依赖。例如,如果规则是从在时间周期3-4期间产生的数据产生子集,则子集将包括在时间周期3-4期间产生的数据,但如果在时间3-4中产生的数据取决于在时间周期3-4之外产生的数据,子集还可包括在时间周期3-4之外(例如在时间周期1-2期间)产生的数据。

在一些例子中,可在接收到归档请求之后执行产生时间上一致的数据集的指令111。该请求可在存储客户端侧(未示出)上由与gui通过接口连接的用户输入。

指令112可由处理资源120可执行,使得计算设备100产生修复代理。如在本文使用的,“修复代理”包括将去冗余数据的时间上一致的数据集恢复到它的原始重复的(即修复或恢复的)形式的任何机制,包括适当的软件应用、工具、虚拟工具、软件代理、智能软件代理、计算机程序等。修复代理的非限制性例子包括独立的可执行文件和虚拟工具(包括虚拟存储工具(vsa),其在虚拟机上运行以合并不同物理主机的直接连接存储容量以创建虚拟存储池)。在这个方面中,修复代理的副本132可存储在存储器130中或与处理资源120通信的远程存储器中。存储器130的存储有修复代理的副本132的那部分可以是非易失性存储器(例如辅助存储器)。在一些例子中,修复代理的产生涉及从存储器130的非易失性部分读取修复代理的副本132。然后从主存储器(例如ram)中的修复代理的副本132产生修复代理。

图1的例子包括由处理资源120可执行来将时间上一致的数据集发送到存储资源150的指令113。此外,指令113由处理资源120可执行,使得计算设备根据所产生的修复代理将修复代理的可执行副本发送到存储资源150。在图1中由140表示时间上一致的数据集和修复代理的可执行副本的发送。示例传输协议包括任何基于网络的协议,例如光纤通道协议(fcp)、以太网、端口控制协议(pcp)、表述性状态传递(rest)、简单对象访问协议(soap)等,但不限于基于网络的协议。

如在本文使用的,“修复代理的可执行副本”包括在特定的时间点的所产生的修复代理。可执行副本允许修复代理被产生,因为修复代理在由指令112产生时就存在。

存储资源150包括存储介质和依赖于底层存储介质的任何存储服务。存储资源150可以不同于机器可读存储介质110和存储器130,因为存储资源150不链接到修复代理。在一些例子中,存储资源150可包括物理磁带、网络附属存储(nas)、在通信网络(例如swift、s3等)上运行的基于对象的数据仓库。在一些例子中,可在三级存储中使用存储资源150。

在一些例子中,计算设备100可实现数据备份系统的至少一部分。例如,指令111、112和113可以是实现备份系统的功能的指令的较大集合的部分,且存储器130可实现备份系统的存储的至少一部分。

图2a至图2d示出时间上一致的数据集和修复代理的可执行副本可被发送到存储资源150的各种方式的图。在图2a的例子中,从计算设备100到存储资源150的数据流140可同时包括时间上一致的数据集140a连同修复代理140b的可执行副本。因此,时间上一致的数据集140a与修复代理140b的可执行副本组合。在一些例子中,这是因为指令113包括使用从指令112产生的修复代理来产生时间上一致的数据集的指令。这允许时间上一致的数据集140a与修复代理140b的可执行副本组合。在本文关于图5b和图5d描述实现此的一些示例方法。

在图2b的例子中,数据流140包括至少两个单独的数据流。一个数据流包括时间上一致的数据集141。另一数据流包括修复代理142的可执行副本。这些分开地被发送到存储资源150且可以采用彼此不同的格式。在本文关于图5a和图5c描述实现此的一些示例方法。

在一些例子中且如图2c和图2d所示,计算设备100可将去冗余数据的时间上一致的数据集和修复代理的可执行副本发送到多个存储资源150。

例如在图2c中,从计算设备100到存储资源150的数据流140可同时包括时间上一致的数据集140a连同修复代理140b的可执行副本。然而,存储这个数据流140所需的空间超过一个存储资源150a的容量。因此,数据流140被分成不同的数据区块:数据区块a、数据区块b和数据区块c,每个数据区块分别存储在存储资源150a、存储资源150b和存储资源150c上。在一些例子中,数据流140还可包括元数据以充当组件清单。这个组件清单可用于确定以什么顺序读取存储资源150a、150b和150c的集合以充分重新产生数据流140的内容。在一些例子中,可以以开放格式(例如扩展标记语言(sml)等)写入元数据。在一些例子中,存储资源150a、150b和150c是彼此相同的类型(例如都是物理磁带)。

在图2d的例子中,从计算设备100到存储资源150的数据流140是单独的数据流141和142。包括修复代理的可执行副本的数据流141可被发送到存储资源150a。然而,时间上一致的数据集142可超过存储资源150a的存储容量。因此,数据流142被分成不同的数据区块:数据区块a、数据区块b和数据区块c,每个数据区块存储在存储资源150a、存储资源150b和存储资源150c上。如参考例子图2c所述的,数据流140还可包括元数据。这可被使用,以便以正确的顺序读取存储资源150a、150b和150c的集合以充分重新产生数据流141和142的内容。

如上面讨论的,修复代理可以是vsa。在一些例子中,修复代理的副本132可以在图2a、图2c的例子与图2b、图2d的例子之间是不同的。在图2b、图2d的例子中,vsa的副本可以是可执行来产生用于运行并摄取数据(例如得到、导入和处理数据)的工具的代码。换句话说,副本可产生具有充分功能的vsa的工具,其具有除了修复能力以外的能力(例如在修复之后管理数据的能力等)。在图2a和图2c的例子中,修复代理的副本132可以是类似的,但为上面讨论的vsa的较小子集。在一些例子中,它可能没有摄取新数据的能力,但仅有修复数据的能力。然而在其它例子中,修复代理的副本132可以在图2a、图2b、图2c和图2c的例子当中是类似的。

图4示出将时间上一致的数据集和修复代理的可执行副本发送到存储资源的方法400的流程图。虽然下面参考图1的计算设备100描述了方法400的执行,但可利用用于方法400的执行的其它适当的系统(例如系统300)。此外,方法400的实现不限于这样的例子,且应认识到,方法400可用于在本文或以另外方式描述的任何适当的设备或系统。

在方法400的410处,处理资源120可执行指令112以从计算设备100的存储器130中的修复代理的副本132产生修复代理。在方法400的420处,处理资源120可执行指令111,以产生存储在存储器130中的去冗余数据131的时间上一致的数据集。在方法400的430处,处理资源120可执行指令113以将时间上一致的数据集和修复代理的可执行副本发送到存储资源。在一些例子中且在示例方法400中,存储资源远离去冗余数据131。在一些例子中,远程存储资源包括不同于存储去冗余数据的存储介质的存储资源。差异除了别的以外还可包括物理位置的差异或类型的差异。

在一些例子中,在430处,指令113可包括将时间上一致的数据集和修复代理的可执行副本发送到例如跨越多于一个物理磁带或对象的同一类型的多于一个存储资源的指令,如上面关于图2c和图2d所述的。

虽然图4的流程图示出某些功能的执行的特定顺序,不过方法400不限于那个顺序。例如,在流程图中连续示出的一些功能可以按不同的顺序执行,可同时或部分同时地执行,或其组合。在一些例子中,420可以在410完成之前开始。此外,虽然图4的流程图将某些功能显示为在一个步骤中出现,不过一个步骤的功能可在至少一个步骤(例如多个步骤)中完成。在一些例子中,在430处,指令113可发送时间上一致的数据集连同(即,以同一格式组合)修复代理的可执行副本,如上面关于图2a和图2c所述的。在其它例子中,在430处,指令113可将时间上一致的数据集与修复代理的可执行副本分开地(即,作为两个单独的数据流)发送,如上面关于图2b和图2d所述的。

图3是将去冗余数据的时间上一致的数据集和修复代理的可执行副本发送到存储资源的示例系统300的框图。引擎301、310、320、330和340操作来执行本文所述的至少一个计算机指令。

引擎301、310、320、330和340和任何其它引擎中的每个可以是硬件(例如处理器,例如集成电路或其它电路)和软件(例如机器或处理器可执行指令、命令或代码,如固件、编程或对象代码)的任何组合以实现相应引擎的功能。可以用多种不同的方式实现硬件和编程的这样的组合。硬件和软件的组合可以包括仅硬件(即,没有软件元件的硬件元件)、在硬件处托管的软件(例如存储在存储器中并在处理器处执行或解释的软件)或在硬件处和在硬件处托管的软件。此外,如在本文使用的,单数形式“一”和“该(所述)”包括复数所指物,除非上下文另外清楚地指示。因此,例如术语“引擎”意欲意指至少一个引擎或引擎的组合。在一些例子中,系统300可包括额外的引擎。

系统300的每个引擎可包括至少一个机器可读存储介质(例如多于一个)和至少一个计算机处理器(例如多于一个)。例如,在系统300上提供引擎的功能的软件可存储在计算机的存储器上以由计算机的处理器执行。从包含硬件和软件的功能引擎方面所述的图3的系统300可包括图1的计算设备100的一个或多个结构或功能方面,其从处理器和机器可读存储介质方面被描述。

在一些例子中且如图3所示,系统300包括去冗余引擎301、策略引擎310、数据生成引擎320、代理生成引擎330和传输引擎340。下面将描述系统300的这些方面中的每个。应认识到,为了额外或可选的功能,其它引擎可添加到系统300。

去冗余引擎301是系统300的引擎,其包括允许系统300产生去冗余数据的硬件和软件的组合。去冗余引擎301可通过使用在重复数据被找到的位置处的指针而不是存储原始数据的另一副本(即复制本)来将原始输入数据组织成非重叠区块。在一些例子中,去冗余引擎301可包括以在单个集成电路上的微处理器的形式的硬件、有关固件或用于允许微处理器与系统300的其它硬件操作地通信的其它软件。上面关于图1的去冗余数据131的讨论在这里是可应用的。

策略引擎310是系统300的引擎,其包括允许系统300确定触发事件的出现的硬件和软件的组合。在一些例子中,触发事件可包括存储客户端输入用信号通知对去冗余数据的归档的请求。在一些例子中,触发事件可包括对去冗余数据在特定的时间段期间以其去冗余形式被存储的确定。例如,存储客户端可通过用户界面规定去冗余数据应每30天被归档。因此在那些例子中,触发事件将包括30天的流逝。在一些例子中,触发事件可包括对去冗余数据具有特定的数据类型或来自特定的起源的确定。

在一些例子中且如在图3的例子中的,策略引擎310初始化数据生成引擎320和代理生成引擎330。这由图3中的连接线315表示。在一些例子中,策略引擎也可将查询(即,对信息的请求)发送到存储资源,以确定在存储资源上的存储空间可用性。因此在一些例子中,策略引擎310可包括以在单个集成电路上的微处理器的形式的硬件、有关固件或用于允许微处理器与系统300的其它硬件操作地通信的其它软件。

数据生成引擎320是系统300的功能引擎,其包括允许系统300响应于来自策略引擎310的触发事件已出现的输入,而产生存在于系统300上或系统300可访问的去冗余数据存储的时间上一致的数据集的硬件和软件的组合。与计算设备100的指令111有关的时间上一致的数据集的讨论可应用于数据生成引擎320的时间上一致的数据集。

在一些例子中,数据生成引擎320允许系统300产生已由去冗余引擎301产生的去冗余数据的子集的时间上一致的数据集。在一些例子中,可(至少部分地)基于上面关于策略引擎310讨论的触发事件的边界来确定去冗余数据的适当子集。例如,如果策略引擎310中的操作规则是每30天产生档案,则数据生成引擎320可在第30天和在第60天产生不同的时间上一致的数据集。对于第30天,数据生成引擎320可产生去冗余数据的全部的时间上一致的数据集,假设第0天是去冗余的第一天。然而对于第60天,数据生成引擎320可产生特别从第31天到第60天的去冗余数据的一部分的时间上一致的数据集。关于计算设备100的指令111的去冗余数据的子集的讨论在这里是可应用的。

在一些例子中且如在图3的例子中的,数据生成引擎320与去冗余引擎301通过接口连接以产生时间上一致的数据集。这由图3中的连接线305表示。当数据生成引擎320由策略引擎310初始化时,数据生成引擎320操作地与去冗余引擎301通信以暂停去冗余引擎301的去冗余过程。数据生成引擎320也操作地命令去冗余引擎301冲掉所有未决的输入数据流。在一些例子中且如将关于图5a-5d讨论的,数据生成引擎320获取去冗余引擎301和与去冗余引擎301相关的去冗余数据存储的快照。

代理生成引擎330是系统300的功能引擎,其包括允许系统300产生修复代理的硬件和软件的组合。在一些例子中,这包括读取存储在辅助存储器(例如硬盘)中的修复代理的副本,如关于图1中的132所述的,以及执行主存储器(例如ram)中的副本。因此在一些例子中,代理生成引擎330可包括以在单个集成电路上的微处理器的形式的硬件、有关固件或用于允许微处理器与系统300的其它硬件操作地通信的其它软件。

传输引擎340是系统300的功能引擎,其包括允许系统300将由数据生成引擎320产生的时间上一致的数据集和修复代理的可执行副本发送到存储资源的硬件和软件的组合。传输引擎340与代理生成引擎330和数据生成引擎320的接口由图3中的线325表示。在一些例子中,传输引擎340提供与下面所述的方法500的531、532、533和534有关的功能。在其它例子中,传输引擎340提供与如下所述的方法600的631和632有关的功能。在另外其它例子中,传输引擎340提供与如下所述的方法700的731、732、733、734、735和736有关的功能。在额外的例子中,传输引擎340提供与如下所述的方法800的831、832和833有关的功能。

在一些例子中,传输引擎340可将时间上一致的数据集和修复代理的可执行副本发送到物理磁带(见图5a和图5b)。传输协议的例子类似于上面关于指令113所述的那些传输协议。在这些例子中,传输引擎340可包括具有用于在物理磁带上读或写多个轨道的多个读和写元件的驱动头。在一些例子中,传输引擎340还可包括驱动卷筒以接受物理磁带。在操作期间,传输引擎340将物理磁带缠绕在驱动卷筒周围,同时绕过驱动头以更新物理磁带。在一些例子中,传输引擎340可包括以在单个集成电路上的微处理器的形式的硬件、有关固件或用于允许微处理器与系统300的其它硬件操作地通信的其它软件。

在一些例子中,传输引擎340可将时间上一致的数据集和修复代理的可执行副本发送到基于对象的仓库。在对象结构中,每个对象可包括基础数据、一些元数据和全局唯一标识符。在那些例子中,传输引擎340可以给系统300提供将时间上一致的数据集和修复代理的可执行副本写为对象的功能。对象存在于临时(主)存储器中,直到它被发送到仓库为止。此外,传输引擎340可包括数据连接器引擎。数据连接器引擎是系统300的功能引擎,其包括允许系统300将对象从一个对象格式转换成另一对象格式的硬件和软件的组合。当正被使用的存储介质是基于对象的仓库时,数据连接器引擎可存在,如在图5c和图5d的示例方法中的。在一些例子中,数据连接器引擎可以是允许与基于对象的仓库的连接的应用编程接口(api)。

图5a示出用于将时间上一致的数据集和修复代理的可执行副本发送到物理磁带驱动器的方法500的流程图。虽然下面参考图3的系统300描述了方法500的执行,但可利用用于方法500的执行的其它适当的系统(例如计算设备100)。此外,方法500的实现不限于这样的例子,且应认识到,方法500可用于在本文或以另外方式描述的任何适当的设备或系统。

在方法500的501处,系统300的策略引擎310可确定触发事件的出现。与策略引擎310有关的触发事件的上面的讨论在501处也是可应用的。在502处,如果存在触发事件已出现的确定,则方法500继续进行到510。在一些例子中,如果策略引擎310接收到对归档的请求的输入,则策略引擎310可确定触发事件已出现,如关于上面的策略引擎310讨论的。如果没有触发事件已出现的确定,则方法500迭代回到501以确定触发事件的出现。在方法500的510处,代理生成引擎330产生修复代理。方法500的510类似于方法400的410,且上面关于410的讨论在这里是可应用的。

在521处,数据生成代理320暂停系统300的去冗余引擎301的去冗余过程。这个暂停可被特征化为去冗余引擎300的静止操作。在522处,数据生成引擎320指示系统300的去冗余引擎301冲掉在去冗余引擎301的缓冲器存储器中未决的任何输入备份数据流。在523处,数据生成引擎320获取去冗余引擎301和去冗余引擎301的相关数据存储(包括去冗余数据存储、指数、元数据、日志文件、os文件等)的快照。在523处的这个快照生成允许去冗余引擎301重新开始它的去冗余过程,因为数据生成引擎320可从快照创建时间上一致的数据集。

在方法500的524处,数据生成引擎320从在523处产生的快照产生时间上一致的数据集。在一些例子中,通过读取快照来产生时间上一致的数据集,允许数据生成引擎320创建包含去冗余数据以及指数、元数据、日志文件等的数据驱动器。在一些例子中,方法500可以不包括获取快照的523。替代地,方法500可跳过523并转到524。在这些例子中,不通过读取快照而通过复制来自与去冗余引擎301相关的存储器的去冗余数据来产生时间上一致的数据集。

在方法500的531处,传输引擎340可将由代理生成引擎330在510产生的修复代理的可执行副本写到物理磁带。在532处,方法500将修复代理的可执行副本更新(即,交付)到物理磁带。在一些例子中,传输引擎340可控制物理磁带,且是在物理磁带和系统300的其它引擎之间的接口。传输引擎300可将修复代理的可执行副本写入和交付(即,更新)到物理磁带,如上面关于图3所述的。

在533处,传输引擎340可将由数据生成引擎320在521-524产生的时间上一致的数据集写到物理磁带。在534处,传输引擎可以用时间上一致的数据集更新物理磁带。在一些例子中,传输引擎可在多于一个物理磁带上交付时间上一致的数据集和修复代理的可执行副本的写入,如关于图2d讨论的。在图5a的方法例子中,修复代理的可执行副本和时间上一致的数据集作为单独的文件被存储在物理磁带上,如上面关于图2b和图2d讨论的。

虽然图5a的流程图示出某些功能的执行的特定顺序,不过方法500不限于那个顺序。例如,在流程图中连续示出的一些功能可以按不同的顺序执行,可同时或部分同时地执行,或其组合,除非上下文与那个解释(例如关于501和502)相反。在一些例子中,521可以在510完成之前开始。在其它例子中,510可在521-524之后开始。在一些例子中,533-534可在531-532之前开始。

图5b示出将时间上一致的数据集和修复代理的可执行副本发送到物理磁带的方法600的流程图。虽然下面参考图3的系统300描述了方法600的执行,但可利用用于方法600的执行的其它适当的系统(例如计算设备100)。此外,方法600的实现不限于这样的例子,且应认识到,方法600可用于在本文或以另外方式描述的任何适当的设备或系统。

在601处,策略引擎310确定触发事件的出现。这个确定可以如上面关于方法500的501所述的执行。在602处,如果策略引擎310确定触发事件已出现,则策略引擎310可触发代理生成引擎330产生修复代理。这可以如上面关于方法500的502所述的执行。在610处,系统300的代理生成引擎330可产生修复代理。这可以如上面关于方法500的510所述的执行。

在621、622和623处,数据生成引擎320暂停去冗余引擎301的去冗余过程,冲掉任何未决的输入数据流,并获取快照。621、622和623可以如上面关于方法500的521、522和523所述的执行。

在624处,系统300的数据生成引擎320使用由代理生成引擎330产生的修复代理从在623产生的快照产生时间上一致的数据集。在一些例子中,这包括使用修复代理来读取快照和写入时间上一致的数据。从这产生的东西是组合到修复代理的可执行副本的去冗余数据的时间上一致的数据集。换句话说,修复代理的可执行副本与它一起包含去冗余数据的时间上一致的数据集。在一些例子中,修复代理的可执行副本可以是虚拟存储工具的图像(即,在特定的时间点的工具的副本)。在这个方面中,修复代理的可执行副本可被认为是载波,该载波允许修复与该载波组合的数据,且时间上一致的数据集可被认为是数据。

在方法600的631处,传输引擎340将时间上一致的数据集与在624中产生的修复代理的可执行副本一起写到物理磁带。这如上面关于方法500中的531所述的执行,差异在这里是631包括时间上一致的数据集与修复代理的可执行副本。在方法600的632处,传输引擎340用时间上一致的数据集和修复代理的可执行副本更新物理磁带。这如上面关于方法500的532所述的执行,差异在这里是更新包括时间上一致的数据集和修复代理的可执行副本。

虽然图5b的流程图示出某些功能的执行的特定顺序,方法600不限于那个顺序。例如,在流程图中连续示出的一些功能可以按不同的顺序执行,可同时或部分同时地执行,或其组合,除非上下文与那个重新排列(例如关于601、602、610和624)相反。在一些例子中,可以在完成610之前完成621-623。

图5c示出将时间上一致的数据集和修复代理的可执行副本发送到基于对象的仓库的方法700的流程图。虽然下面参考图3的系统300描述了方法700的执行,但可利用用于方法700的执行的其它适当的系统(例如计算设备100)。此外,方法700的实现不限于这样的例子,且应认识到,方法700可用于在本文或以另外方式描述的任何适当的设备或系统。

方法700的701和702类似于方法600的601、602和方法500的501、502,并根据上面的描述被执行。此外,上面关于610、510、621、521、622、522、623、523和524的讨论可分别应用于710、721、722、723和724。在方法700的731处,在710处产生的修复代理的可执行副本由传输引擎340写入。如上面关于图3讨论的,传输引擎340可以以对象格式写修复代理的可执行副本。

因为存在具有不同格式的各种类型的基于对象的仓库(例如swiftopensource、s3等),系统300的传输引擎340可在732处将在731处写入的对象转换成与预期基于对象的仓库兼容的格式。在方法700的733处,传输引擎340将包含修复代理的可执行副本的对象传输到基于对象的仓库。传输协议可包括超文本传输协议(http)、soap、rest等。在一些例子中,如果在731中的对象写入与预期基于对象的仓库兼容,则传输引擎340跳过732并直接转到733。图5c中的连接731、732和733的虚线示出从731到733的进展的两条可能的路径。

在734处,传输引擎340将在724中产生的时间上一致的数据写为对象。在735处,系统300的传输引擎340可将在734中写入的对象转换成与预期基于对象的仓库兼容的格式。在方法700的736处,传输引擎340将包含修复代理的可执行副本的对象传输到基于对象的仓库。在一些例子中,如果在734中的对象写入与预期基于对象的仓库兼容,则传输引擎340跳过735并直接转到736。图5c中的连接734、735和736的虚线示出从734到736的进展的两条可能的路径。

虽然图5c的流程图示出某些功能的执行的特定顺序,不过方法700不限于那个顺序。例如,在流程图中连续示出的一些功能可以按不同的顺序执行,可同时或部分同时地执行,或其组合,除非功能的上下文与那个解释(例如关于701和702)相反。在一些例子中,721可以在710完成之前开始。在其它例子中,710可在721-724之后开始。在一些例子中,731-734可在731-733之前开始。

图5d示出将时间上一致的数据集和修复代理的可执行副本发送到基于对象的仓库的方法800的流程图。虽然下面参考图3的系统300描述了方法800的执行,但可利用用于方法800的执行的其它适当的系统(例如计算设备100)。此外,方法800的实现不限于这样的例子,且应认识到,方法800可用于在本文或以另外方式描述的任何适当的设备或系统。

方法800的801和802类似于方法500的501、502、方法600的601、602和方法700的701、702。此外,上面关于710、610、510、721、621、521、722、622、522和723、623、523的讨论可分别应用于810、821、822和823。

在方法800的824处,数据生成引擎320使用修复代理和快照产生时间上一致的数据集。这如上面关于图5b的624所述的产生。在831处,传输引擎340写入包含时间上一致的数据集和修复代理的可执行副本的对象。这如上面关于图5b的631所述的完成。在832处,系统300的传输引擎340可将在831中写入的对象转换成与预期基于对象的仓库兼容的格式。在方法800的833处,传输引擎340将包含时间上一致的数据和修复代理的可执行副本的对象传输到基于对象的仓库。在一些例子中,如果在831中的写入与预期基于对象的仓库兼容,则传输引擎340跳过832并直接转到833。图5d中的连接831、832和833的虚线示出从831到833的进展的两条可能的路径。

图6示出根据一些例子的将时间上一致的数据集和修复代理的可执行副本发送到基于对象的仓库的方法900的流程图。图6的方法900类似于图4的方法400,除了方法900包括990以外。在方法900的990处,不同于计算设备100的存储服务器或另一计算机可以使用修复代理的可执行副本来修复或恢复时间上一致的数据集。在一些例子中,修复时间上一致的数据集的计算机可能没有修复代理的副本。虽然下面参考除了计算设备100以外的另一计算机或存储服务器描述了方法900的执行,但也可使用计算设备100或系统300。

在修复代理的可执行副本连同时间上一致的数据集一起被发送到存储资源(见图2a、2c、5b和5d)的例子中,为了修复,包含修复代理的可执行副本和时间上一致的数据集的存储资源被读取。为了从存储资源读取信息,存储服务器或另一计算机可首先查阅目录数据库以确定哪个存储资源包含该信息。

在存储资源是物理磁带的例子中,存储服务器或另一计算机可指示机器人臂取出磁带并将它放置在驱动器或其它读取器机构中。在存储资源是基于对象的仓库的例子中,可通过适当的命令(例如在swiftrestfulapi上的httpget)来读取或收回对象。

存储资源的读取从修复代理的可执行副本产生修复代理。因为去冗余数据的时间上一致的数据集与修复代理的可执行副本组合,因此该读取修复(或恢复)去冗余数据的时间上一致的数据集的全部。在这个方面中,设想时间上一致的数据集的恢复过程包括将命令发送到相关存储服务器以识别对去冗余数据的原始存储介质容量的需要,提供并分配所需的逻辑单元号(lun),并将去冗余数据恢复到所识别的存储介质。在这些例子中,被修复的去冗余数据是由时间上一致的数据集捕获的去冗余数据。例如,修复代理可以是虚拟存储工具,其在打开时自动修复数据并将数据写到磁盘阵列,允许存储客户端访问来自时间上一致的数据集的修复的数据。

在修复代理的可执行副本与时间上一致的数据集分开地发送(见图2b、2d、5a、5d)的例子中,为了修复,备份资源的读取从修复代理的可执行副本产生修复代理。因为时间上一致的数据集不与修复代理的可执行副本组合,因此修复代理不在其执行时恢复时间上一致的数据集。替代地,所产生的修复代理可用于恢复去冗余数据的时间上一致的数据集。在这个方面中,存储客户端可拾取并选择存在于时间上一致的数据集中的去冗余数据的某些部分以按需要恢复。在一些例子中,方法400、500、600、700和800可包括使用修复代理的可执行副本来修复去冗余数据的时间上一致的数据集。这可在方法400的430之后、在方法500的534之后、在方法700的736之后和在方法800的833之后完成。

在这个说明书(包括附随的权利要求、摘要和附图)中公开的所有特征和/或这样公开的任何方法或过程的所有元件可以以任何组合方式被组合,除了这样的特征和/或元件中的至少一些相互排他的组合以外。

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