用于恢复在基于对象的存储处存档的数据容器的方法和系统与流程

文档序号:18547620发布日期:2019-08-27 21:49阅读:219来源:国知局
用于恢复在基于对象的存储处存档的数据容器的方法和系统与流程

本公开总体上涉及网络存储系统,并且更具体地,涉及恢复在基于对象的存储系统处存档的数据容器。



背景技术:

基于网络的存储通常用于数据备份、地理上分布式数据可访问性以及其他目的。在典型的网络存储环境中,存储服务器通过向客户端呈现或导出数据的一个或多个数据的逻辑容器来使数据对于客户端可用。存在各种形式的网络存储,例如网络附加存储(nas)和存储区域网络(san)。对于nas,存储服务器通常服务于来自客户端的文件级请求,而san存储服务器则服务于块级请求。一些存储服务器系统可以支持文件级请求和块级请求两者。

存在被用于访问存储在网络存储系统中的数据的多种机制和协议。例如,网络文件系统(nfs)协议或公共因特网文件系统(cifs)协议可以被用于以类似于如何访问本地存储的方式通过网络访问文件。客户端还可以使用对象协议,诸如超文本传输协议(http)协议或云数据管理接口(cdmi)协议,以通过局域网(lan)或通过广域网(诸如因特网)访问所存储的数据

基于对象的存储(obs)是一个可扩展的系统,其用于存储和管理数据对象,而无需使用分层命名模式。obs系统将可变大小数据项作为具有唯一标识符(id)密钥的对象集成或“摄取”到平面名称空间结构中。可以使用经由网络服务接口(诸如基于表述性状态转移(rest)架构或简单对象访问协议(soap)的网络服务接口)实现的基于密钥的搜索来访问和检索对象。这允许应用使用“get”和“put”命令直接访问网络上的对象,而无需处理更复杂的文件系统和/或块访问命令。

obs还可以被用于存储备份/存档文件。在任何给定时间,来自存档数据容器的特定数据容器可能必须被恢复。不断努力开发能够高效地从基于obs的系统恢复特定数据容器的计算技术。

附图说明

现在将参考各方面的附图来描述本公开的各种特征。在附图中,相同的组件可以具有相同的附图标记。所示出的方面旨在说明而不是限制本公开。附图包括以下图:

图1示出了提供基于对象的存储(obs)的网络存储系统;

图2示出了根据本公开的一个方面的创建用于从obs恢复数据容器的元数据对象的各个阶段的示例;

图3示出了根据本公开的一个方面的用于创建元数据对象的过程流程;

图4是根据本公开的一个方面的用于从基于对象的存储恢复特定数据容器的过程流程;以及

图5示出了用于执行本公开的各种过程块的计算系统的框图。

具体实施方式

作为初步注释,如本文中所使用的术语“组件”、“模块”、“系统”等旨在指代计算机相关实体,或是软件执行的通用处理器、硬件、固件及其组合。例如,组件可以是,但不限于,在硬件处理器上运行的进程、基于硬件的处理器、对象、可执行件、执行的线程、程序、和/或计算机。

作为说明,在服务器上运行的应用和服务器都可以是组件。一个或多个组件可以驻留在执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。此外,这些组件可以从其上存储有各种数据结构的各种计算机可读介质执行。组件可以经由本地和/或远程过程进行通信,诸如根据具有一个或多个数据包(例如,来自与另一组件在本地系统、分布式系统中和/或诸如因特网经由信号与其他系统进行通信的跨网络中交互的一个组件的数据)的信号。

计算机可执行组件可以存储在例如非瞬态的计算机可读介质处,该计算机可读介质包括但不限于asic(专用集成电路)、cd(压缩盘)、dvd(数字视频盘)、rom(只读存储)、软盘、硬盘、eeprom(电可擦除可编程只读存储)、记忆棒或根据所要求保护的主题的任何其他存储设备。

本文所描述的系统和技术是可应用的,并且在云计算环境中特别有益,在云计算环境中,在不同的平台上呈现和共享存储。云计算表示计算能力,计算能力在计算资源与其底层技术架构(例如,服务器、存储装置、网络)之间提供抽象,该抽象使得能够方便、按需的网络访问可配置计算资源的共享池,该可配置计算资源能够以最小管理工作或服务提供商交互快速地供应和释放。术语“云”旨在指代网络,例如因特网,以及云计算允许共享的资源,例如,可用的按需的软件和信息,如公共实用程序。

典型的云计算提供者在线地递送从另一网络服务或诸如网络浏览器的软件访问的常见商业应用,而软件和数据被远程存储在服务器上。云计算架构使用分层的方法来提供应用服务。第一层是在客户端计算机处执行的应用层。在该示例中,应用允许客户端经由云访问存储。

在应用层之后,是云平台和云基础设施,之后是包括被设计用于云特定服务的硬件和计算机软件的“服务器”层。本文描述的存储系统可以是用于提供存储服务的服务器层的一部分。

在高级别,本公开的文件系统包括用于组织文件系统对象、访问文件系统对象以及维护文件系统的分层命名空间的数据结构和方法/功能。文件系统对象包括目录和文件。由于本公开涉及中基于对象的存储(obs)和obs中的对象,所以文件系统对象在本文中被称为“文件系统实体”,而不是“文件系统对象”,以减少术语“对象”的过载。“对象”指的是符合一个或多个obs协议的数据结构。因此,在本公开中使用的“索引节点对象”不是表示类型的操作系统中的文件的数据结构。如本文所使用的术语数据容器包括文件、目录或任何结构化和非结构化数据。贯穿本说明书,术语数据容器和文件可互换使用。

本说明书还可以使用类似“命令”、“操作”以及“请求”之类的术语。尽管这些术语可以被用作所请求动作的变型,但是本说明书将术语与所请求动作的协议和源域对齐。本说明书使用“文件系统命令”或“命令”来指代由文件系统协议定义的并且从文件系统客户端接收或发送到文件系统客户端的所请求的动作。说明书使用“基于对象的操作”或“操作”来指代由基于对象的存储协议定义并由对象存储备份的文件系统生成的所请求的动作。说明书使用“对象存储请求”来指代由特定基于对象的存储协议(例如,s3)定义并从基于对象的存储系统接收或发送到基于对象的存储系统的动作。

在本公开的一个方面,提供了用于基于对象的存储的方法和系统。作为示例,公开了一种用于生成用于具有多个数据容器的存档数据容器的元数据对象的方法。该方法包括使用存档数据容器标识符、存档数据容器内的多个数据容器以及存档数据容器内的每个数据容器的放置信息来生成用于存档数据容器的第一元数据签名;将多个块指派给中间逻辑对象,多个块用于将用于多个数据容器的数据存储在基于对象的存储处;使用中间逻辑对象内的多个块的放置信息来更新有效载荷签名;以及将第一元数据签名和更新的有效载荷签名放置在元数据对象内,其中元数据对象用于检索用于存档数据容器内的特定数据容器的放置信息。

综述

在一个方面,本公开提供了用于高效地存储存档数据并且从obs恢复相同的数据的计算技术。计算技术有效地使用元数据对象跟踪存档数据,并且使用元数据对象来恢复特定数据容器。

图1描绘了在本公开的一个方面中的存储环境100,该存储环境100提供对基于对象的存储(obs)系统的文件系统协议访问。存储环境100可以包括obs客户端122和文件系统客户端102,文件系统客户端102使用各种设备、介质和通信协议访问基于对象的存储120。基于对象的存储120可以包括一个或多个存储服务器(未示出),一个或多个存储服务器(未示出)从诸如硬盘驱动器和/或固态驱动器(ssd)设备(未示出)的存储硬件设备访问数据。存储服务器通过诸如基于代表性状态转移(rest)的接口或(restful接口)和简单对象访问协议(soap)之类的网络服务接口跨广域网(wan)110服务客户端存储请求。

obs客户端122可以通过wan110相对地直接地连接到对象存储120。obs客户端122可以是,例如,使用网络服务调用来访问基于对象的存储项目(即,对象)的云服务客户端应用。例如,obs客户端122可以使用基于restful[“rest”]协议的直接呼叫来访问对象存储120内的对象。应注意的是,作为“客户端”的引用是相对于描述的焦点的,因为如果在与其他服务器的文件共享安排中配置了obs客户端122和/或文件系统客户端102,那么它们都可能是“服务器”。与obs客户端122不同,文件系统客户端102包括文件系统应用,诸如,由底层类型文件系统支持的数据库应用。文件系统客户端102利用nas架构中常见的基于文件系统的网络协议来访问文件系统实体,诸如,以分层方式配置的文件和目录。例如,文件系统客户端102可以利用网络文件系统(nfs)或公共因特网文件系统(cifs)协议。

在一方面,存储环境100包括复制引擎130。复制引擎130生成具有一个或多个用户文件的存档文件。存档文件被提供给obs桥118并且作为存档数据文件126存储在对象存储120处。为了有效地使用存储空间,可以使用去重和压缩来存储存档数据文件的数据。数据去重减少了用于存储信息的存储空间量。通常,大多数存储系统包括许多数据片段的复制副本。例如,相同的数据容器/块可以保存在几个不同的地方,或者可能不相同的两个或更多个数据容器仍然可以包括相同的数据。去重通过仅保存数据的一个版本并且用返回到所保存的副本的指针替换其他副本来消除额外的副本。

在一个方面,obs118包括元数据模块123,元数据模块123管理存储在具有存档数据126的obs120处的元数据对象124。去重引擎119维护哈希查找表119a,哈希查找表119a用于将存档文件数据存储在对象存储120处。安全引擎125用于加密存档文件数据和/或元数据对象124。压缩/解压缩模块121用于压缩和解压缩在对象存储120处存储的信息。

为了恢复特定的用户文件,提供多个恢复节点132a-132n(简称为132)。恢复节点132可以执行恢复库134a-134n,其下载元数据对象124以恢复特定的文件。值得注意的是,尽管分别示出了恢复节点,但是恢复库功能可以结合在任何其它计算设备硬件/软件中。生成元数据对象124和恢复特定的文件的细节将在下面参考图2-5被详细地提供。

在一个方面,存储环境100还可以包括提供桥和nas服务器服务的nas网关115,文件系统客户端102可以通过这种服务访问和利用对象存储120。值得注意的是,复制引擎130可以是nas网关115的一部分。在一个方面,nas网关115包括硬件和软件处理特征,诸如虚拟文件系统(vfs)交换机112和obs桥118。vfs交换机112建立协议和持久命名空间一致性,通过协议和持久命名空间一致性vfs交换机112从文件系统客户机102接收文件系统命令并向文件系统客户机102发送响应。

值得注意的是,obs118可以被实现为独立的计算设备/系统,并且本公开的各个方面不限于obs118作为网关115的一部分。

obs桥接器118还可包括对象存储备份文件系统(osf)114和相关联的osfs高速缓存116。osfs114和osfs高速缓存116一起创建和管理对象存储120中的对象,以适应分层的文件系统命名空间111(“文件系统命名空间”)到文件系统客户端102。示例文件系统命名空间111包括跨三个目录级分布的若干文件和目录实体。顶层根目录“root”包含子目录“dir1”和“dir2”。目录“dir1”包含子目录“dir3”和文件“file1”。目录“dir3”包含文件“file2”和“file3”。

osfs114以提供用于文件系统命令的中间obs协议接口并且同时生成文件系统命名空间(诸如文件系统命名空间111)的方式处理文件系统命令,文件系统命名空间被利用于obs桥事务中并且持久地存储在后端对象存储120中。为了创建文件系统命名空间,osfs114为每个文件系统实体(例如,文件或目录)生成命名空间对象和对应的索引节点对象。为了实现事务协议桥接,osfs114生成对应于每个文件系统命令的基于对象的操作的相关组,并且每个文件系统实体结构应用双重对象。

文件系统命令(诸如来自文件系统客户端102),由vfs交换机112接收并被转发到osfs114。vfs交换机112可以部分地处理文件系统命令并将结果传递到osfs114。例如,vfs交换机112可以访问其自己的目录高速缓存和索引节点高速缓存,以将文件系统实体的名称解析为对应于文件系统命令中指示的文件系统实体的索引节点号。此信息可与文件系统命令一起传递到osfs114。

osfs114处理文件系统命令以生成一个或多个对应的基于对象的操作。例如,osfs114可以包括被配置为生成一起执行文件系统命令的一个或多个基于对象的操作的组的多个文件系统命令特定的处理程序。以这种方式,osfs114将所接收的文件系统命令转换成包括多个基于对象的操作的以对象为中心的文件系统事务。osfs114使用对象而不是文件系统实体来确定实现文件系统命令的n个基于对象的操作的集合。基于对象的操作是被限定的符合obs语义的方法或函数,例如指定密钥值参数。osfs114根据文件系统命令的参数和由vfs交换机112提供的任何其他信息来实例化基于对象的操作。osfs114利用基于对象的操作实例形成文件系统事务。osfs114向osfs高速缓存116提交该事务,并且可以将该事务记录到事务日志(未示出)中,该事务日志可以在另一个节点接管托管osfs114的节点(例如,虚拟机或物理机器)时被重放。

为了创建文件系统实体,诸如响应于接收到指定文件或目录的创建的文件系统命令,osfs114确定文件系统实体的新索引节点号。osfs114可以将索引节点号从整数值转换为ascii值,其可以用作用于形成文件系统事务的基于对象的操作中的参数值。osfs114实例化第一对象存储操作以创建具有从文件系统实体确定的索引节点号导出的第一对象密钥的第一对象,以及具有指示文件系统实体的属性的元数据。osfs114实例化第二对象存储操作以创建具有第二对象密钥以及元数据的第二对象,该元数据将第二对象密钥与第一对象密钥相关联。第二对象密钥包括文件系统实体的父目录的索引节点号以及文件系统实体的名称。

如图1所示,对象存储120包括对应于所描绘的分层的文件系统命名空间111的合成命名空间对象(nso)和索引节点对象。命名空间对象和索引节点对象由流经软件栈的命令、操作和请求产生。如所描绘的,文件系统命名空间111中的每个文件系统实体具有命名空间对象和索引节点对象。例如,顶层目录“root”由与命名空间对象nsoroot相关联(指向)的根索引节点对象ioroot表示。根据命名空间配置,索引节点对象ioroot也与每个子目录(dir1和dir2)命名空间对象相关联。命名空间对象与索引节点对象的多个关联使得文件系统客户端能够以分层的文件系统类似的方式遍历命名空间,虽然osfs114实际上不需要从根遍历到目标,而osfs仅从目标的父级到达目标,从而避免从根遍历。

osfs高速缓存116试图使用本地存储的数据来实现从osfs114接收的文件系统事务。如果不能使用本地存储的数据来实现事务,则osfs高速缓存116将转发形成事务的基于对象的操作实例到对象存储适配器(osa)117。osa117通过生成与操作对应的并且符合特定的对象存储协议(诸如s3)的对象存储请求来响应。

响应于该请求,对象存储120提供由osa117处理并且通过obs桥117传播回的响应。更具体地,osfs高速缓存116生成传送到osfs114的事务响应。osfs114可以更新事务日志以移除与事务响应对应的事务。osfs114还基于事务响应生成文件系统命令响应,并且经由vfs开关112将响应传递回文件系统客户端102。

除了以实现本地以及支持桥接的访问的方式提供文件系统命名空间可访问性之外,所描述的方面提供了针对地理分布式客户端的命名空间可移植性和并发性。与文件数据及其相关联的元数据一起,对象存储120经由图1中描绘的索引节点和命名空间对象的存储来存储命名空间的持久表示形式。该特征使得其他类似配置的obs桥能够附接/安装到相同的后端对象存储库并且遵循相同的模式来访问命名空间对象,并且因此与它们各自的文件系统客户端共享相同的文件系统。因此,obs桥配置可以被应用在多节点(包括多站点)应用中,以便跨多个站点向多个客户端同时地提供公共文件系统命名空间。因此,本公开内容的方面可以包括:在集群配置中将多个obs桥分组以建立多个对应的nas网关。

元数据对象124:图2示出了用于高效地生成和存储可用于从备份存档数据容器(或备份存档文件)恢复单个数据容器的元数据对象124的新颖计算技术200。备份存档数据容器是用户数据的聚合,其可包括用户定义的文件(可以被称为“用户文件”),但被写为单个文件。作为示例,备份存档数据容器使用加密、压缩和去重将数据存储在基于对象的存储120中。

本文公开的创新计算技术检查备份存档文件并理解备份存档文件中的每个用户文件的偏移量和大小。然后,该信息与用于每个备份存档文件的备份数据一起被存储为对象存储120中的元数据对象124的一部分。元数据对象124使用高效压缩技术存储在对象存储120中,使得元数据的存储和查找不是资源密集的。

在恢复节点132处,元数据对象124由恢复库模块134读取以允许在解密、解压缩和将数据组装成存储的数据存档数据的原始格式之后的任何文件的目标恢复。因为多个节点可以分担恢复过程的工作量,所公开的技术的恢复过程使用最小的网络带宽并且提供更好的性能。

现在参考图2,作为示例,两个用户文件u1202a和u2202b在被标识为a1的存档文件中被聚合并且通过复制引擎130标记为204。当obs118接收到存档文件时,去重引擎119在a1内获取u1和u2的放置信息。例如,假设u1的长度是l1,u2的长度是l2。如果o1是a1内u1的偏移并且o2是a1内u2的偏移,则用户文件的元数据可以由下式表示:[<o1,l1>,<o2,l2>]。然后,备份存档文件a1的初始元数据签名被确定。初始元数据签名是映射,其中密钥是用户文件的名称,并且该值是a1内的用户文件的放置信息。因此,a1的初始元数据签名可以由下式表示:

u1=><o1,l1>

u2=><o2,l2>

前述初始签名被转换为归一化序列,该转换基于:<用户文件数量>,<用户文件1的名称>,<用户文件1的放置信息>,<用户文件2的名称>,<用户文件2的放置信息>,……,<用户文件n的名称>,<用户文件n的放置信息>。使用前述归一化序列并且继续图2的示例,可以通过元数据模块123将a1的元数据签名表示为:[2,u1,o1,l1,u2,o2,l2]。

然后,存档文件a1内的数据被拆分成不同的块,示为b1206a和bn206n。在存储任何块之前,去重引擎119对照存储密钥-值映射的查找表119a检查数据块。查找表119a的密钥是可以基于数据块的校验和以及块标识符的数据块的签名。作为示例,由去重引擎119生成和维护的查找表119a可以被表示为:

hash(b1)=>b1

hash(b2)=>b2

hash(b3)=>b3

如果查找表产生匹配,则更新块id参考计数。这确保该块在物理存储设备处仅被存储一次,但是被不止一个逻辑实体引用。

如果不存在匹配,则在查找表119a处创建新条目。假设初始块b1、b2在查找表中产生命中,而其余块{b3…bn}不产生命中。未产生的块被创建为新的块,如b4、b5、…bn,并且更新的查找表被表示为:

hash(b1)=>b1

hash(b2)=>b2

hash(b3)=>b3

hash(b4)=>b4

hash(b5)=>b5

|

|

hash(bn)=>bn

基于前述内容,a1的有效载荷签名可以由下式表示:b1,b2,b3,b4,b5,…bn。备份存档文件a1的更新签名可以由备份id、元数据签名和数据签名来表示。例如,使用图2的示例,更新的签名可以由以下表示:a1,2,u1,o1,l1,u2,o2,l2,b1,b2,b3,b4,b5,…,bn。

为了进一步改善存储效率,各种数据块被进一步聚集成大块,也被称为“二进制大对象(blobs)”。例如,块b1、b2和b3由压缩引擎121压缩并且由安全引擎125加密,例如,通过使用对称加密密钥k,压缩和加密块208a-208c随后被放置在二进制大对象210内或被指派到二进制大对象210。二进制大对象是唯一地被标识并包括压缩/加密数据的一个或多个块的逻辑对象。在二进制大对象内的每个压缩/加密块的放置被用于从b1、b2—bn更新有效载荷签名到:bb1,pb1,szb1,pb2,szb2,bb2,pb3,szb3,pb4,szb4,…,bbk,pbn,szbn,其中bb1=二进制大对象#1的二进制大对象id、pb1=包括在bb1内的块b1的偏移和长度的块内的放置信息、szb1=块b1的规范化的未处理(意味着未压缩和未加密)大小,等等。

存档文件的更新的元数据签名现在可以由下式表示:a1,a2,u1,o1,l1,u2,o2,l2,bb1,pb1,szb1,pb2,szb2,bb2,pb3,szb3,pb4,szb4,bbk,pbn,szbn。

然后,由压缩引擎121使用压缩算法来压缩前述元数据序列,以获得进一步的空间节省,并且使用上面提到的相同的加密密钥k对其进行加密。然后,将经压缩的和经加密的元数据被存储在元数据对象124内,元数据对象124被存储在对象存储120处。对象的名称,例如c1(示为212),通过取得对象的内容的校验和来获取。

图2作为示例,示出了两个元数据对象c1212和c2214。c1包括一个存档文件的经压缩的/经加密的元数据,c2包括另一个存档文件的签名。数据块也被压缩并存储在二进制大对象216和218内。

过程流程:图3示出了根据本公开的一个方面的用于生成元数据对象124的处理器、可执行过程流程300。下面参照图2的符号/附图标记来描述过程300。

当obs118和复制引擎130被初始化并可操作时,过程300在框b302中开始。在框b304中,obs118接收具有多个用户文件的存档文件,例如,a1具有文件u1和u2,如图2所示以及如上所述。

在框b306中,由元数据模块123生成用于存档文件的初始元数据签名。初始元数据签名基于存档文件中的文件的数量、文件标识符、存档文件中的用户文件的放置信息。如上面关于a1、u1和u2所示,初始元数据签名可以表示为:[2,u1,o1,l1,u2,o2,l2]。

在框b308中,去重引擎119将用户文件中的有效载荷拆分成多个块,例如,b1、b2、b3、…、bn[参见图2]。块大小可以是固定的或可变的。

在框b310中,由去重引擎119生成每个块的hash签名(例如,b1、b2、…、bn[图2])。hash签名可以基于每个块的数据内容的校验和。

在框b312中,去重引擎199使用存储密钥值映射的hash查找表119a来验证每个数据块的hash签名,其中该密钥是与块标识符相关联的每个块的签名。如果块的块标识符已经在查找表119a中,则该块的参考计数被更新。如果块标识符不在查找表119a中,则用新的块签名和块标识符来更新查找表119a。

在框b314中,首先利用hash签名(即,b1-bn)来更新有效负载签名。存档文件a1的签名随后被更新以包括备份id、元数据签名和更新的有效载荷签名,例如,a1,2,u1,o1,l1,u2,o2,l2,b1,b2,b3,b4,b5,…,bn。存储数据块“这样(as-is)”可能是资源集中的。因此,在块b316中,块被压缩引擎121压缩并且加密,并由安全引擎125加密。在一个方面,加密是使用对称密钥k来执行的。然后,经压缩的和经加密的块被指派给上面提到和描述为二进制大对象(示为图2中的216、218以及210)的另一逻辑结构。有效载荷签名随后在框b318中被变换/更新以包括每个二进制大对象内的经压缩的/经加密的块的放置信息。然后更新存档文件的完整签名,并且可以将其表示为:a1,a2,u1,o1,l1,u2,o2,l2,bb1,pb1,szb1,pb2,szb2,bb2,pb3,szb3,pb4,szb4,bbk,…,pbn,szbn。

在块b320中,使用相同的加密密钥k对完整签名进行压缩/加密。经压缩的/经加密的签名被存储在对象内,例如,c1212、c2214[图2]。对象c1/c2被存储为可以用于恢复特定文件的元数据对象124,如下面关于图4所描述。

图4示出了根据本公开的一个方面的用于恢复被存档并存储在对象存储库120处的用户文件的过程400。过程400在框b402中开始,在为存档文件126创建元数据对象124之后,如上文关于图2和3所描述。

在块b404中,接收恢复特定文件的请求。该请求可以由执行恢复库134的恢复节点132接收[参见图1]。

响应于该请求,在框b406中,恢复库134下载包括存档文件(例如,c1212)的完整签名的元数据对象124,存档文件包括用户文件,例如,u2。

在框b408中,元数据对象由恢复库134使用用于加密元数据对象的密钥来解压缩和解密,如上所述。

在块b410中,确定在存档文件a1中的用户文件u2的放置。例如上面关于图2所描述的[o2,l2]。然后标识与文件u2相关联的二进制大对象。在框b414中确定所标识的二进制大对象内的块。然后,通过obs118从对象存储库120读取所述块,并在块b416中将所述块提供给恢复库134。然后将所请求的块提供给请求者。

本文公开的技术改进了计算技术和基于云的存储系统。数据在对象存储处被有效地复制而且使用的元数据对象被恢复,在上文详细描述。

处理系统:图5是示出可根据一个方面使用的处理系统500的架构的示例的高级别框图。处理系统500可以代表恢复节点132、obs118、复制引擎130、nas网关115、fs客户端102、obs客户端122和其他组件。注意,在图5中未示出与本方面没有密切关系的某些标准的和众所周知的组件。

处理系统500包括被耦接到总线系统505的一个或多个处理器502和存储器504。图5中所示的总线系统505是表示由适当的桥接器、适配器和/或控制器连接的任何一个或多个单独的物理总线和/或点对点连接的抽象。因此,总线系统505可以包括例如系统总线、外围部件互连(pci)总线、超传输或工业标准架构(isa)总线、小型计算机系统接口(scsi)总线、通用串行总线(usb)、或电气和电子工程师协会(ieee)标准1394总线(有时被称为“火线”)。

处理器502是处理系统500的中央处理单元(cpu),并且因此控制处理系统500的整体操作。在某些方面,处理器502通过执行存储在存储器504中的软件来实现这一点。处理器502可以是或可以包括一个或多个可编程的通用或专用微处理器、数字信号处理器(dsp)、可编程控制器、专用集成电路(asic),可编程逻辑器件(pld)等,或这些器件的组合。

存储器504表示任何形式的随机存取存储(ram)、只读存储(rom)、闪存等,或这些设备的组合。存储器504包括处理系统500的主存储。实现上述图2-4的过程步骤的指令506可以驻留在来自存储器504的处理器502中并由处理器502执行。

还通过总线系统505连接到处理器502的是一个或多个内部的大容量存储设备510和网络适配器512。内部的大容量存储设备510可以是或者可以包括用于以非易失性方式存储大量数据的任何常规介质,诸如一个或多个磁性磁盘或光学磁盘。网络适配器512向处理系统500提供与远程设备(例如,存储服务器)通信的能力,通过网络以及可以是例如以太网适配器、光纤通道适配器,等等。

处理系统500还包括被耦接到总线系统505的一个或多个输入/输出(i/o)设备508。i/o设备508可以包括例如显示设备、键盘、鼠标等。

变型

提供流程图是为了帮助理解说明,而不是用于限制权利要求的范围。流程图描绘了可以在权利要求的范围内变化的示例操作。可以执行附加的操作;可以执行更少的操作;操作可以并行地执行;并且这些操作可以以不同的顺序执行。应当理解,流程图和/或框图的每个框以及流程图图示和/或框图中框的组合,都可以由程序代码实现。程序代码可以提供给通用计算机、专用计算机或其他可编程机器或装置的处理器。

如应当理解的,本发明的各方面可以被实施为系统、方法或存储于一或多个机器可读介质中的程序代码/指令。因此,各方面可以采取硬件、软件(包括固件、常驻软件、微代码等)、或者软件和硬件方面的组合的形式,这些在本文中通常可以被称为“电路”、“模块”或“系统”。在示例图示中作为单个模块/单元而被提供的功能可以根据平台(操作系统和/或硬件)、应用生态系统、接口、程序员偏好、编程语言、管理员偏好等中的任意一个来被不同地组织。

可以利用一个或多个非瞬态机器可读介质的任何组合。机器可读存储介质可以是,例如但不限于,采用电子、磁、光、电磁、红外或半导体技术中的任何一种或组合来存储程序代码的系统、装置或设备。机器可读存储介质的更具体的示例(非详尽列表)包括以下多项:便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、便携式光盘只读存储器(cd-rom)、光存储设备、磁存储设备、或上述的任何合适的组合。在本文的上下文中,非瞬态机器可读存储介质可以是可以包含或存储由或结合指令执行系统、装置或设备使用的程序的任何有形介质。非瞬态机器可读存储介质不是机器可读信号介质。

机器可读信号介质可以包括其中具有机器可读程序代码的传播的数据信号,例如在基带中或作为载波的部分。这种传播的信号可以采取各种形式(包括但不限于电磁、光学或其任何合适的组合)中的任何形式。机器可读信号介质可以是非机器可读存储介质并且可以传达、传播或传送程序用于由或结合指令执行系统、装置或设备使用的任何机器可读介质。

呈现在机器可读介质上的程序代码可以使用任何适当的介质来传输,适当的介质包括但不限于:无线、有线、光纤电缆、rf等、或前述的任何合适的组合。

用于执行本公开的各方面操作的计算机程序代码可以用一种或多种编程语言的任何组合来编写,一种或多种语言包括面向对象的编程语言,诸如编程语言、c++等;动态编程语言,诸如python;脚本语言,诸如perl编程语言或powershell脚本语言;和传统的程序性编程语言,诸如“c”编程语言或类似的编程语言。程序代码可以完全在独立的机器上执行、可以以分布式的方式跨多台机器执行、并且可以在一台机器上执行,同时在另一台机器上提供结果和/或接受输入。

程序代码/指令还可以存储在可以指导机器以特定方式运行的非瞬态机器可读介质中,使得存储在机器可读介质中的指令产生:包括实现在流程图和/或框图块中指定的功能/动作的指令的制品。

虽然参照各种实现和开发描述了本公开的各方面,但是应当理解,这些方面是说明性的,并且权利要求的范围不限于它们。通常,用于从本文所述的对象存储恢复数据容器的技术可以利用与任何硬件系统或多个硬件系统相一致的设施来实现。很多变型、修改、添加和改进是可能的。

可以为本文中描述的组件、操作和结构提供多个实例作为单个实例。最后,各种组件、操作和数据存储之间的边界在某种程度上是任意的,并且在特定说明性配置的上下文中示出了具体的操作。其他功能分配被设想,并且可以落入本公开的范围内。通常,在示例配置中示出为单独组件的结构和功能可以被实现为组合结构或组件。类似地,示出为单个组件的结构和功能可以实现为分离的组件。这些以及其他变化、修改、添加和改进可以落入本公开的范围内。

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