差别文件以及从对等点和云恢复的系统的制作方法

文档序号:6348833阅读:189来源:国知局

专利名称::差别文件以及从对等点和云恢复的系统的制作方法差别文件以及从对等点和云恢复的系统
背景技术
:因为计算设备变得更加普遍且在普通人群中广泛使用,因此这种设备所产生和使用的数据量迅速增大。例如,计算和数据存储技术的最新进步可使甚至最受外形尺寸限制的设备也能够存储各种需要大量数据的应用(诸如文档编辑、媒体处理等)的大量信息并对其进行处理。此外,通信技术的最新进步可使计算设备能够以高速率传送数据。这些进步连同其它技术一起已经导致实现了可利用位于网络上的多个位置处的计算设备实施的分布式计算服务。另外,这些进步可使得能够实现诸如基于网络的备份之类的服务,该服务允许计算设备的用户在位于网络上的远程位置处维护与计算设备相关联的数据的一个或多个备份拷贝。现有系统和/或数据备份解决方案可使用户能够将备份信息存储在与其原始源相分离的位置和/或介质中。因此,例如,可将来自计算设备的数据从硬盘驱动器备份到诸如磁带驱动器、外部硬盘驱动器等等这样的外部介质。然而,在基于网络的备份的实现和/或可用于物理地提供用于存储备份数据的远程位置的其他解决方案中,与用户机器与远程存储位置之间的用户数据的传输和恢复相关的成本及复杂性能够显著地限制备份系统的可用性。例如,在将备份数据存储在远程网络位置处的情况下,可将与文件和/或系统映像的原始拷贝的相应版本相关联的数据传送到远程存储设备,其中可以稍后取出相应版本以便恢复。然而,在这种示例中,一般通过网络传输相当大的数据量,由此耗费昂贵的带宽。鉴于上述,期望实现效率提高的基于网络的备份技术。
发明内容以下给出了所要求保护主题的简单概要以便提供对所请求保护的主题的一些方面的基本了解。该
发明内容不是对所请求保护的主题的广泛概述。它既不用于标识出所请求保护的主题的关键或重要元素,也不划定所请求保护的主题的范围。其唯一目的是以简单形式给出所请求保护的主题的一些概念以作为对随后给出的更详细描述的前奏。在这里提供了便于基于网络的备份系统的高效恢复技术的系统和方法。可利用基于差别的分析以便对于要恢复的项目的特定版本的给定恢复而言,在网络上传输数据之前计算一个或多个远程备份位置与备份客户端之间的新的完全差别。可通过例如对与位于备份客户端上的要恢复项目的当前版本和位于远程备份位置处的期望版本相对应的签名进行比较来在备份客户端与远程备份位置二者处计算差别。基于所计算的差别,可仅对确定为在项目的当前版本与其期望版本之间为独有的块进行传输,由此降低恢复的延时以及所消耗的网络带宽。一旦获得了,则可以将从远程备份位置所获得的独有块与存在于早已位于备份客户端上的项目的当前版本中的非独有块进行合并以获得完全恢复的版本。根据一个方面,可采用混合体系结构,其中可以从在网络或互连网络之内(例如“云”)的全球位置以及来自与备份客户端位于其上的机器相关联的一个或多个对等点机器使进行恢复所需的签名和/或数据可用于备份客户端。相应地,备份客户端可获得要执行从云或附近对等点恢复所需的一些或所有信息,由此进一步减低延时和带宽耗费。在一个示例中,可基于诸如网络位置可用性、相对负载、网络拓扑结构等等这样的因素而以智能化和自动化方式来选择被利用用于存储和/或恢复备份信息的位置选择。以下描述和附图详细地阐述了所请求保护的主题的某些说明性方面。然而,这些方面是对其中可以采用所请求保护主题的原则的各种方式中的少数几个的指示,并且所请求保护的主题包括所有这些方面及其等效体。根据对所请求保护的主题的以下结合附图考虑的详细说明,可显而易见地得知所请求保护主题的其它优点和区别特征。图1是根据各个方面的用于从备份信息进行差别恢复的系统的高级别框图。图2是根据各个方面的用于产生备份信息的系统的框图。图3是根据各个方面的用于产生与备份信息相对应的签名的系统的框图。图4是根据各个方面的用于执行基于签名的差别的系统的框图。图5是根据各个方面的用于实现混合的基于云和点对点备份存储的系统的框图。图6是根据各个方面的用于在混合的基于云和点对点备份体系结构中进行差别恢复的系统的框图。图7说明了可与这里所述的各个方面相结合使用的示例性网络实现。图8是用于执行差别文件恢复的方法的流程图。图9是用于实施文件的基于签名的差别处理的方法的流程图。图10是用于从混合的点对点/基于云的系统获得文件段的方法的流程图。图11是这里所述的各个方面可在其中起作用的计算系统的框图。图12说明了示例性网络计算环境的示意框图。具体实施例方式现在参考附图对所要求保护的主题进行描述,其中相同参考数字自始至终用于指示相同元件。在下面的描述中,为了说明的目的而对许多细节进行了阐述以便提供对所要求保护主题的透彻理解。然而,显而易见的是可以实践所要求保护的主题而不用这些细节。在其他情况下,以框图的形式示出了众所周知的结构和设备以便于对所要求保护的主题进行描述。如在该申请中所使用的,术语“组件”、“模块”、“系统”、“接口”、“模式”、“算法”等等通常是指与计算机有关的实体,其要么为硬件、硬件和软件的组合、软件、要么为在执行中的软件。例如,组件可以是但不局限于在处理器上所运行的处理、处理器、对象、可执行应用(executable)、执行线程、程序、和/或计算机。举例来说,运行在控制器上的应用以及控制器这两者都可以是组件。一个或多个组件可以驻留在执行的处理和/或线程之内,并且可使组件位于在一个计算机上和/或分布在两个或多个计算机之间。此外,可以使用标准程序和/或工程技术来将所请求保护的主题实现为方法、装置、或者制品以生成软件、固件、硬件、或者其任何组合以控制计算机实现所公开的主题。如这里所使用的术语“制品”意图涵盖可从任何计算机可读设备、载体、或者介质访问的计算机程序。例如,计算机可读介质包括但不局限于磁存储设备(例如硬盘、软盘、磁条...)、光盘(紧致盘片(⑶)、数字多功能磁盘(DVD)...)、智能卡、以及闪速存储器设备(例如,卡、条、键驱动...)。此外,应该理解的是,可采用载波以携带诸如在发送和接收电子邮件或者访问诸如因特网或局域网(LAN)这样的网络的过程中所使用的计算机可读电子数据之类的计算机可读电子数据。当然,本领域普通技术人员会认识到可对该配置做出许多修改而不脱离所要求保护的主题的范围或精神。此外,词语“示例”在这里用来表示充当例子、实例或说明。这里描述为“示例”的任何方面或设计不必被理解为优于其他方面或设计。相反,词语示例的使用意图给出抽象形式的概念。如在本申请中所使用的,术语“或”意图表示包括性的“或”而非排他性的“或”。也就是说,除非特别指出或从上下文清楚理解,“X采用A或B”意图表示任何自然的包括性枚举。即,如果X采用A;X采用B;或X采用A和B两者,则在任何前述实例下均满足“X采用A或B”。此外,本申请和所附权利要求中所使用的不定冠词“一”或“一个”可通常被理解为“一个或多个”,除非特别指出或从上下文清楚理解为针对单数形式。现在参考附图,图1说明了根据这里所述的各个方面的用于实施从备份信息进行差别恢复的系统100的框图。在一个示例中,可以利用系统100以将文件、系统映像和/或其它数据从驻留在客户端机器(其实现系统100和/或否则与系统100相关联)上的当前版本恢复到驻留在备份系统上的期望版本。根据一个方面,系统100可与基于网络的或者在线备份解决方案(例如,如在下面进一步详细描述的云备份系统)相结合地使用,其中基于网络的或者在线备份解决方案在与客户端机器相关联的网络或互连网络上的一个或多个远程存储位置处存储来自客户端机器的备份信息。传统的在线备份解决方案通过将在各个时间点从备份客户端从获得的文件集维持在远程存储位置处来进行操作。随后,通过在请求时从存储位置取出一个或多个文件来实施恢复。然而,应清楚的是,按照这种方式从在线备份系统恢复出信息可耗费过度的与从在线备份存储设备中取出完整文件相关联的时间量和/或带宽。此外,应理解的是,该系统通常取出完整文件用于恢复操作,甚至在例如仅给定文件中的很小数据部分在存储在客户端上的当前版本与远程位置上的期望版本之间已经变化了也是如此。例如,这样系统在某些情况下被配置成即使当客户端处的文件当前版本与要取出的版本仅在名称和/或元数据方面不同时也取出完整文件。其他传统的在线备份解决方案通过例如存储信息的原始版本并且随后存储反映出原始版本的变化的增量更新而不是存储信息的多个完整版本来提供增量远程存储。然而,增量更新按照累积方式传统地存储在该系统中并从中取出,以致希望使文件或其它信息回滚过多个先前版本的备份客户端被要去取出与该信息要回滚经过的每个先前版本相对应的增量更新。在有些情况下,经过版本的变化量可以很大,这可能会导致通过网络传送大量信息以及对带宽消耗和/或时间很大的结果要求,即使当前版本与期望版本之间的净变化相对小也是如此。因此,为了提供与从远程存储备份信息的恢复相关的增加的效率以及更低的时间和带宽消耗要求,系统100可便于信息的差别恢复。更具体地,当用户希望恢复一个或多个文件的先前版本时,可使用差别组件110以实施期望版本与用户机器目前所存储的当前版本之间的差别处理。根据一个方面,代替使在文件(多个)以及所有相关备份的生命周期上使用的增量差别更新处理反转的是,差别组件110可代之以利用一组签名和/或其它指示符以仅确定所存在的、在期望版本与当前版本之间独有的段或块而无需使任何增量处理反转。根据另一个方面,在识别出当前文件版本与期望版本之间的独有块列表时,可以使用块位置组件120以识别出各独有块在相关联网络上的相应位置。因此,应当理解的是,通过仅仅识别、定位、和/或取出被确定为从给定文件的期望版本至其当前版本已经发生变化的文件中的各块和段,系统100所实施的恢复处理相对于传统的在线备份解决方案可提供降低的延时和带宽要求以及提高的性能。在一个示例中,块位置组件120可利用与相关联网络上的相应块的位置有关的地图、索引、和/或其他元数据以取出被确定为在当前与期望文件版本之间不同的相应块。在另一示例中,块位置组件120以智能和/或自动方式定位块以找到用于获得相应块的阻力最小路径。因此,例如,块位置组件120可利用诸如网路可用性、负载等等这样的因素以确定用于获得各文件段或块的最有效方式。通过特定示例而言,块位置组件120可确定出给定块位于国际互联网上的云存储位置以及与局域网相关的一个或多个对等点机器处。在该示例中,块位置组件120可便于从最近的可用对等点取出该块以便于更快地取出并节省网络带宽,这只有在如果没有对等点可用的情况下后退到云。在下面进一步详细描述中提供了可用于点对点和/或基于云的存储体系结构的实现示例。根据附加方面,在块位置组件120识别出与给定文件相对应的相应独有块的位置之后,可使用恢复组件130以从块位置组件120所给出的位置取出识别块并且根据所取出的块恢复文件的期望版本。在一个例子中,恢复组件130取出相应识别块的位置可以由块位置组件120来设置。或者,块位置组件120可提供一个或多个给定块所处的位置列表,根据该位置列表,恢复组件130可基于可用性、负载、带宽考虑和/或其他适当因素而以自动方式选择从其中取出块(多个)的位置。例如,块位置组件120可向恢复组件130提供给定块所处的一个或多个对等点以及国际互联网上的云存储系统上的相应位置,并且恢复组件130可通过侧重于在节省带宽并降低延时是可行时利用对等点机器来取出块(多个)。在恢复组件130已取出与文件的期望版本相对应的各识别块之后,恢复组件130可通过对所取出的块与已本地存在于文件的当前版本之中的非独有块进行合并来重建文件的期望版本。可利用例如下述反转差别算法来执行对文件的期望版本的重建,在所述反转差别算法中,利用所获得的、与文件的当前版本与期望版本之间的差别相对应的块来回滚当前版本相比期望版本的变化。然而,应该理解的是,文件恢复可以由恢复组件130利用用于使当前文件版本与和期望文件版本相关的各独有文件段合并的任何适当算法来执行。此外,应理解的是,各块或文件段的构造、识别、和/或使用可以由系统100以任何适当方式来执行,并且否则除非明确说明,附加到此的权利要求不局限于文件分段或恢复的任何特定示例。现在转到图2,其中说明了用于根据各个方面生成备份信息的系统200。如图2所示,系统200可包括备份组件210,该备份组件210可生成各文件、各系统快照、和/或与备份客户端相关联的其他信息的备份拷贝并便于对这些备份拷贝的存储。在一个示例中,备份组件210可驻留在要备份的客户端信息所处的机器上和/或从所述机器操作。另外或者替代地,备份组件210可驻留在完全不同的计算设备上(例如,作为远程执行组件)。在一个示例中,备份组件210可用于以有规律的时间间隔、在触发一个或多个事件时(例如,修改文件)和/或基于任何其他适当激活标准来对文件集和/或其他信息进行备份。根据一个方面,备份组件210可以增量方式来实施对文件的备份以便降低要实现系统200所需的带宽和/或存储空间量。这可以由例如首先利用分段组件212将要备份的文件划分成相应文件段(例如块、大块等等)来实现。在一个示例中,对文件的分段或成块可以由分段组件212以按照便于相应文件段的去重复的方式来执行。例如,在图3中的系统300所说明的特定且非限制性示例中,分段组件310可将文件的第一版本(例如,版本A302)划分成在图3中被表示为Al至A4的一组均勻块和/或不均勻块。随后,在检测到对文件的修改时(例如,修改至版本B304)时,分段组件310可按照与版本A302的分段一致的方式重新对文件进行分段以便很容易识别出从版本A302至版本B304的状态不同的文件中的任何块。例如,如在图3中所说明的那样,版本B304包含从版本A302到版本B304发生了改变的、在版本B304中被表示为Bl的一个块。在检测到文件的更新版本中的独有块时,分段组件310(以及类似地,系统200中的分段组件212)可便于增量存储与文件相对应的新的和/或变化的块以及与文件的相应版本之间的变化有关的其它信息。如系统300进一步说明的,还可执行在这里通常称为增量或者Δ更新的这些更新以便于存储与新文件块的添加(例如版本C306中添加块Cl)、除去文件块(例如,版本D308中删除块Α4)、和/或任何其它适当文件操作和/或修改有关的fn息ο返回到图2中的系统200,在生成了与文件相对应的块或段时,可将与相应文件和/或文件更新相对应的各个块提供给段分发组件214。段分发组件214可接着在一个或多个网络存储位置上的一个或多个段存储设备220当中分发各块。例如,段存储设备220可与局域网中的对等点机器、云存储服务和/或其他适当的基于因特网的存储位置、和/或任何其它存储站点相关联。在下面进一步详细说明中描述了用于在各网络存储位置当中分发信息的技术。根据一个方面,备份组件210可另外采用签名生成组件216以生成与分段组件212所分段的一个或多个文件和/或其版本相对应的签名信息。例如,如在图3中的示意图300所说明的,可使用签名生成组件320以生成与特定文件的相应版本302-308相对应的相应签名322-328。另外或者替代地,签名生成组件216所生成的签名与单个块、块组(例如,文件中的块和/或文件的增量更新)、整个文件和/或文件版本、和/或任何其它适当分组相对应。通过特定的非限制性示例,将各相应块预先配置成统一大小(例如,4千字节ab)),并且可将相应签名配置成表示预定统一数目的块(例如12)。然而,应理解的是,可使用任何适当的块大小和/或签名结构。在一个例子中,可使用签名生成组件216所创建的签名以识别存在于文件的给定版本之中的块或段。此外,可将分段组件212配置成在文件的相应版本上执行一致分段以便为文件的相应版本所生成的签名表示相应版本的变化。因此,如图4中的系统400所说明的那样,可识别出文件的当前版本与期望版本之间的独有块集。如图4所说明的,差别组件420可与此相关联和/或否则被配置为获得与要恢复的文件的当前版本相对应的签名424。在确定出希望将文件恢复回到给定先前版本时,签名源410可提供与期望版本相关联的对应签名。基于与这两个版本相关联的签名,比较器部件422然后可对相应签名进行比较以获得期望版本与当前版本之间所独有的块的身份。因此,应理解的是,在一个示例中,比较器部件420可执行基于签名的差别处理以确定要成功恢复给定文件所需的相应独有块的身份。在另一示例中,签名源410可与差别组件420与之相关联的设备和/或其他适当设备(例如,云服务提供商、对等点或超对等点等等)相关联。就非限制性示例而言,签名源410可以实现为版本列表索引,其跟踪相关联系统中的信息的相应版本以及它们的相应签名。在一个示例中,这种索引可分布在相关系统中的诸如对等点、超对等点、或者云存储位置这样的多个网络位置上。然而,应该理解的是,这样的实现仅仅是可使用的实现的示例,并且除非明确说明,否则附加到此的权利要求不局限于该实现。现在参考图5,其中说明了根据各个方面的用于实现混合的基于云和点对点备份存储的系统500的框图。如图5所说明的,系统500包括分段组件510,该分段组件510可如上所述生成与文件和/或其相应版本相对应的文件段或块。在一个示例中,可将分段组件510所生成的块提供给段分发组件520,该段分发组件520将相应块提供给一个或多个相关联存储位置。根据一个方面,系统500可使用混合的点对点(P2P)和基于云的体系结构,以便段分发组件520可使得用于实施恢复操作的数据片和/或与此相关的签名在诸如对等点(多个)532和/或超级对等点(多个)534这样的一个或多个信任对等点上以及一个或多个云存储位置536上可用。如进一步在系统500中所说明的,对等点(多个)532、超级对等点(多个)534、和/或云存储设备536可以进一步操作来在彼此之间传送文件段、签名和/或其它信息。另外,应该理解的是,系统500的分段组件510、段分发组件520和/或任何其它组件可以另外与一个或多个对等点532、超级对等点534、或者与云存储设备536相关联的实体相关联。下面提供与可使用对等点(多个)532、超级对等点(多个)534、或者云存储设备536有关的技术进一步详情以及与混合体系结构之内的这种实体的功能有关的进一步详情。根据另一方面,段分发组件520包括索引组件522和/或否则与索引组件522相关联,该索引组件522可维护这样的索引,该索引列出了分段组件510所生成的块与块已分发到的对应位置之间的相应映射关系。在一个示例中,将该索引与其中所表示的块一起分发给一个或多个对等点532、超级对等点534、或者云存储位置536。应理解的是,可将整个索引分发给一个或多个位置,或者索引本身可被分段并且在多个位置当中分发。根据附加方面,段分发组件520可进一步可选地包括网络分析器组件524,该网络分析器组件5M对与系统500相关联的计算网络进行分析以确定一个或多个位置以分发相应块、索引、索引段等等。在一个示例中,网络分析器组件5M可基于网络负载、存储位置的可用性(例如基于设备活动级别、加电或断电状态、相应位置处的可用存储空间等)等来选择要分发的信息的一个或多个目的地。例如,可以这样做以平衡各种数据的可用性与最佳位置。如系统500进一步说明的,网络分析器组件5可另外采用机器学习和推理(MLR)组件526以便于对相应信息的存储位置进行智能自动选择。在一个示例中,MLR组件526可利用通常为本
技术领域
所知的任何适当人工智能(Al)、机器学习和/或其他的算法(多种)。如在这里所描述的,术语“智能“是指例如根据与该系统有关的现有信息推断或得出(推理)与系统的当前或将来状态有关的结论这样的能力。可采用人工智能以识别出特定环境或动作,或者产生系统的特定状态的概率分布而无需人工干预。人工智能依赖于将高级数学算法(例如决策树、神经网络、回归分析、聚类分析、遗传算法、以及强化学习)应用于该系统的一组可用数据(信息)上。例如,可以采用众多方法中的一个或多个方法用于根据数据来学习并且此后从如此所构造的模型进行推论,这些模型例如为隐马尔可夫模型(HMMs)以及相关原型依存模型、例如由利用贝叶斯模型记分或近似的结构搜索所创建的诸如贝叶斯网络这样的更一般概率图模型、诸如支持向量机(SVM的)这样的线性分类器、诸如被称为“神经网络“方法这样的非线性分类器、模糊逻辑方法、以及根据实现这里所述的各个自动方面的其他方法(执行数据融合等)。参考图6,对根据各个方面的用于在基于混合云和点对点备份体系结构中实施差别恢复的系统600进行说明。如系统600所说明的,可使用混合的P2P/云备份体系结构,其中与一个或多个计算设备相对应的备份数据在一个或多个对等点机器610或640和/或一个或多个超级对等点机器650以及一个或多个云存储位置660当中分发。在一个示例中,对等点机器640可包括可用于接收并维护与一个或多个文件或者对相应文件的Δ更新相对应的块集合的相应块存储设备642。文件和/或更新(例如由分段组件510创建并且由段分发组件520分发)可与例如恢复对等点610相关联。另外,虽然在系统600中未说明,但是恢复对等点610可另外或者替代地包括用于本地存储与本地驻留在恢复对等点610上的文件和/或文件的Δ更新相对应的一个或多个块的块存储设备。在另一示例中,系统600中的一个或多个超级对等点650可另外包括块存储设备652以及可提供存储在系统600之内的文件块及其相应位置(例如由索引组件522创建)的主列表的文件块索引654。虽然说明了文件块索引6Μ位于系统600中的超级对等点650处,但是应理解的是,文件块索引6Μ中的一些或所有可另外或者替代地位于一个或多个对等点610和/或640以及云存储设备660上。根据一个方面,在识别出期望从驻留在恢复对等点610上的信息的版本到先前版本的恢复时,根据上述各个方面,可以实施在驻留在恢复对等点610上的版本与期望版本之间基于签名的差别处理以确定在各版本之间不匹配的一个或多个块的身份。继签名比较之后,块位置组件620可利用索引查找组件622以从文件块索引6Μ和/或下述任何其它适当源获得元数据,所述任何其它适当源指向被确定为在位于恢复对等点610上要恢复的信息的版本与期望版本之间是独有的块的相应位置。基于索引查找组件622所获得的位置,块位置组件620和/或恢复组件630可从块存储设备(多个)642或652、块存储器662、和/或系统600之内的任何其它适当存储位置之内的其相应位置取出各独有块。一旦获得了,则可以将各块与已存在于要恢复的信息的当前版本中的非独有块进行合并以重新创建期望版本。因此,在一个示例中,通过在当前文件版本与要恢复的文件版本之间实施基于签名的差别处理,可以通过仅取出版本之间不同的各位或块来实施恢复而与增量更新无关。在一个示例中,可确定出(例如,通过索引查找组件622或者相反)一个或多个块已本地存在于恢复对等点610处(例如,由于各块是恢复对等点610处的一个或多个其他文件的一部分)。在这种情况下,可使用所确定的本地块来代替从系统600中的一个或多个其它位置取出块。因此,以在云存储设备660上的所说明的特定示例为例,指明为原始版本和后续版本Y和Z的文件的相应版本可与连续版本(例如,原始与Y、Y与Z等等)之间的增量更新一起存储。随后,如果用户期望从版本Z恢复出该文件的原始版本,则可使用基于签名的差别处理以仅取出原始版本与版本Z之间独有的块而无需原始版本与版本Y之间以及版本Y与版本Z之间的增量更新的全部反转或者下载整个这些更新。在另一示例中,可采用系统600的混合P2P/云备份体系结构以使在恢复对等点610处恢复一个或多个文件所需的延时和/或带宽最小化。例如,块位置组件620可利用网络分析组件624,该网络分析组件6可对系统600进行分析并且以便从在系统600中阻力最小的路径取出相应文件段。因此,例如,如果给定块驻留在对等点640或超级对等点650上的块存储设备642或652上以及云存储设备660处,则优选首先从最近的网络节点获取出块。其结果是,对等点640和/或超级对等点650可优先于云存储设备660以使与和云存储设备660的通信相关联的延时和带宽使用最小化。此外或者替代地,网络分析组件拟4可对系统600中的相应节点的可用性、相对网络负载、和/或其它因素进行分析以便于智能选择从其获得相应块的节点。因此,可将恢复对等点610配置成首先尝试从对等点机器640或超级对等点650获得块集合,仅当没有具有所需块(多个)的对等点640和/或650可用时,而后退到云存储设备660上。在另一示例中,可使用MLR组件626以便于使选择从其获得块的网络节点的处理自动化。在替代示例中,虽然在系统600中将网络分析组件624说明为与恢复对等点610相关联,但是可以理解的是,恢复对等点610可从其访问文件块索引6M的超级对等点650和/或另一实体可利用相似网络分析以便从文件块索引6M所指示的相应块的多个位置当中选择相应块的最佳位置。一旦选择了,则随后可将这种位置(多个)提供给恢复对等点610。根据一个方面,在获得了要将一个或多个文件恢复到期望版本所需的独有块时,可使用恢复对等点610处的恢复组件630以对所获得的各独有块与已本地存在于文件(多个)的当前版本中的非独有块进行合并,从而将文件(多个)恢复到期望版本。以特定的非限制性示例为例,恢复组件630可使用反转差别算法,其中从当前版本中减去当前版本与期望版本之间的一个或多个指出的差别以便回滚到期望版本。这种减法基于与相应文件版本和/或与相应文件版本有关的任何其它适当信息相对应的签名或散列。然而,应该理解的是,该算法仅仅是可利用的恢复技术的示例,而除了该算法之外或者代替该算法可使用任何其它恢复算法。参考图7,提供了用于对可与这里所述的各方面相结合地使用的示例性网络实现进行说明的示意图700。如示意图700所说明的,网络实现可利用混合的点对点和基于云的结构,其中云服务提供商710与一个或多个超级对等点720以及一个或多个对等点730-740相交互。根据一个方面,可利用云服务提供商710以从与超级对等点(多个)720和/或对等点(多个)730-740相关联的网络/互连网络(例如国际互联网)上的给定位置远程地实现一个或多个计算操作。云服务提供商710可以来自于一个位置,或者替代地云服务提供商710可以实现为分布式的基于国际互联网的服务提供商。在一个示例中,可利用云服务提供商710以向与云服务提供商710相关联的一个或多个对等点720-740提供备份功能。因此,云服务提供商710可以实现备份服务712和/或提供相关数据存储设备714。在一个示例中,数据存储设备714可与超级对等点720上的备份客户端722和/或相应对等点730或740上的备份客户端732或742相交互以作为驻留在相应对等点实体720-740上的数据的中央存储位置。按照这种方式,云服务提供商710通过数据存储设备714可有效地用作位于对等点720-740上的数据的在线“保险箱“。可以理解的是,可对诸如文件(例如,文档、照片、音频、视频等等)、系统信息等这样的任何适当类型(多种)的信息实施备份。另外或者替代地,可以实现分布式网络存储,以便还将超级对等点720和/或对等点730-740配置成包括用于与相关局域网上的一个或多个机器相关联的数据备份的相应数据存储设备724,734,和/或744。在另一示例中,可使用诸如去重复、增量存储、和/或其他适当技术这样的技术以降低由示意图700所表示的网络中、用于实现基于云的备份服务的一个或多个相应实体上的数据存储设备714,724,734,和/或747所需的存储空间量。根据另一方面,云服务提供商710可与一个或多个对等点机器720,730,和/或740相交互。如在示意图700中所说明的,一个或多个对等点720可被指定为超级对等点并且可以用作云服务提供商710与相关联局域网中的一个或多个其他对等点730-740之间的联络方。虽然在图7中未说明,但是应该理解的是,在适当情况下,任何适当对等点730和/或740以及指定的超级对等点(多个)720可以直接与云服务提供商710相交互。因此,可理解的是,云服务提供商710、超级对等点(多个)720、和/或对等点730或740可以在任何适当时间相互通信以使示意图700所说明的相应实体之间的文件或其他信息同步。在一个示例中,超级对等点720可以是诸如内容分发网络(⑶N)、企业级服务器、家庭服务器、和/或被确定为具有按照这里所述的方式而起超级对等点作用的任何其他适当计算设备(多个)这样的、在与对等点720-740相关联的网络上的中央实体。除了标准对等点功能之外,超级对等点(多个)720可负责收集、分发、和/或索引局域网中的对等点720-740当中的数据。例如,超级对等点720可维护下述存储索引726,该存储索引7可包括与对等点720-740相对应的各相应文件和/或文件段的身份以及指向其中可找到这些文件或其分段的网络和/或云数据存储设备714中的相应位置(多个)的指针(多个)。另外或者替代地,超级对等点720通过例如在指定的非高峰期经由云上传组件7将相应数据上传到云服务提供商710而可起在其他对等点730-740与云服务提供商710之间的网关的作用。在另一示例中,超级对等点720可用作"热"或“冷“数据的高速缓存,以便很可能被恢复的数据具有靠近恢复或发源对等点的备份,并且随着时间的推移将更多拷贝分发到分布式系统的“更冷“部分(例如,云服务提供商710上的数据存储设备714)。转到图8-10,通过相应动作系列来对根据这里所给出的各种特征而可以实现的方法进行说明。应理解的是,这里所要求保护的方法并不局限于动作的顺序,因为一些动作可以不同顺序出现,或者与这里所示和所描述的其他动作同时发生。例如,对于本领域普通技术人员来说应理解和明白的是,方法可被替代地表示为诸如状态图这样的一系列相互关联的状态或事件。此外,不是需要所有说明的动作以实现这里所要求保护的方法。参考图8,其中说明了执行差别文件恢复的方法800。在802,识别出一个或多个文件的本地可用版本与一个或多个文件将要恢复到的期望版本。在804,识别出在802所识别出的一个或多个文件中的、本地可用版本与期望版本不同的块。至少部分地通过在本地可用版本与期望版本之间实施差别处理(例如,利用差别组件110)而进行804的识别。在806,从一个或多个数据存储设备(例如,对等点532,超级对等点534和/或云存储设备536)获得在804所识别出的块(例如,通过块位置组件120和/或恢复组件130)。在808,至少部分地通过将在806所获得的块与一个或多个文件的本地可用版本中的一个或多个块进行合并来恢复在802所识别出的一个或多个文件的期望版本。现在参考图9,提供了用于对文件实施基于签名的差别处理的方法900的流程图。在902,识别出与文件的当前版本中的相应块相对应的一个或多个签名(例如,签名似4)。在904,(例如,从签名源410)接收与在902所识别出的文件要恢复到的期望版本中的相应块相对应的一个或多个签名。在906,通过对在902和904所识别出的签名进行比较(例如,经由比较器组件422)来识别出文件的当前版本与文件的期望版本之间所独有的一个或多个块。在908,从一个或多个相关联的块存储设备获得在906所识别出的独有块。图10说明了用于从混合的点对点/基于云的系统获得各文件段的方法1000。在1002,识别出要从网络上的一组对等点(例如,对等点610或640和/或超级对等点650)和/或云存储位置(例如,云存储设备660)获得的一组文件段。在1004,根据网络负载、位置可用性、网络延时、和/或带宽利用率来选择(例如,通过网络分析组件6来确定)网络上的一个或多个位置以获得相应文件段(例如,通过块位置组件620)。在1006,从在1004所选择的位置获得文件段。为了提供对这里所描述的各个方面的额外背景,图11及其下面的论述意图提供对其中可实现所要求保护的主题的各个方面的适当计算环境1100的简要和一般描述。另外,虽然上面已经在可以运行在一个或多个计算机上的计算机可执行指令的一般背景下对上述特征进行了描述,但是本领域普通技术人员会认识到,所述特征还可以与其它程序模块相结合和/或作为硬件和软件的组合而实现。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构等等。此外,本领域普通技术人员会理解,利用包括有单处理器或多处理器计算机系统、小型计算机、大型计算机、以及个人计算机,手提式计算设备、基于微处理器或可编程消费类电子设备等等(其中每一个可操作地与一个或多个相关设备相耦合)的其它计算机系统配置可实践所要求保护的主题。还可在下述分布式计算环境中实践所说明的方面,在所述分布计算环境中,由通过通信网络链接的远程处理设备来执行某些任务。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备二者中。计算机典型地包括各种计算机可读介质。计算机可读介质可以是计算机可访问的任何可用介质并且包括易失性和非易失性介质、可移动和不可移动介质。举例来说但不是限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质可以包括用于存储诸如计算机可读指令、数据结构、程序模块、或其它数据这样的信息的、以任何方法或技术所实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不局限于RAM、ROM、EEPR0M、闪存或其他存储技术、CD-ROM、数字多功能盘片(DVD)或其他光盘存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储设备、或者可用于存储期望信息并且计算机可访问的任何其他介质。通信介质典型地包含了计算机可读指令、数据结构、程序模块、或者在诸如载波或其他传输机制这样的调制数据信号中的其他数据,并且包括任何信息传送介质。术语“调制数据信号”是指具有一个或多个其特征按照为了在信号中编码信息这样的方式进行设置和改变的信号。举例来说但不是限制,通信介质包括诸如有线网络或直接有线连接这样的有线介质以及诸如声学、射频、红外及其他无线介质这样的无线介质。上述任何组合也应包含在计算机可读介质的范围之内。再次参考图11,用于实现这里所述的各个方面的示例性环境1100包括计算机1102,该计算机1102包括处理单元1104、系统存储器1106、以及系统总线1108。系统总线1108与各系统组件相耦合,其包括但不局限于系统存储器1106和处理单元1104。处理单元1104可以是各种市场上可买得到的处理器中的任何一种。还可采用双微处理器和其他多处理器体系结构以作为处理单元1104。系统总线1108可以是利用各种市场上可买到的总线体系结构而进一步与存储器总线(具有或者不具有存储器控制器)、外围总线、以及本地总线互连的几类总线结构中的任何一种。系统存储器1106包括只读存储器(ROM)1110和随机存取存储器(RAM)1112。基本输入/输出系统(BIOS)存储在诸如ROM、EPROM、EEPROM这样的非易失性存储器1110中,其中BIOS包含有助于在诸如启动期间在计算机1102之内的元件之间传输信息的基本例程。RAM1112还可以包括诸如静态RAM这样的用于高速缓存数据的高速RAM。计算机1102进一步包括内部硬盘驱动器(HDD)1114(例如,EIDE,SATA,该内部硬盘驱动器1114还可以被配置成在适当机壳(未示出)中外用)、磁软盘驱动器(FDD)1116(例如,从可移动磁盘1118读取或写入到可移动磁盘1118)、以及光盘驱动器1120(例如,读取CD-ROM盘片1122,或者从诸如DVD这样的高容量光学介质中读取或写入到其中)。硬盘驱动器1114、磁盘驱动器1116、以及光盘驱动器1120可分别通过硬盘驱动器接口1124、磁盘驱动器接口1126、以及光盘驱动器接口11与系统总线1108相连。用于外部驱动实现的接口IlM包括通用串行总线(USB)和IEEE-1394接口技术中的至少一个或这两者。其它外部驱动连接技术在该主题公开的考虑之内。驱动器及其相关的计算机可读介质提供了对数据、数据结构、计算机可执行指令等等的非易失性存储。对于计算机1102,驱动器和介质可供以适当数字格式存储任何数据。虽然上面对计算机可读介质的描述是指HDD、可移动磁性盘、以及诸如⑶或DVD这样的可移动光学介质,但是本领域普通技术人员应理解的是,诸如zip驱动器、磁带盒、闪存卡、盒式磁带等等这样的计算机可读的其他类型介质也可用在该示例性操作环境中,并且此外任何这种介质可以包含用于执行这里所述的方法的计算机可执行指令。可将包括操作系统1130、一个或多个应用程序1132、其它程序模块1134、以及程序数据1136的多个程序模块存储在各驱动器和RAM1112中。还可将操作系统、各应用、各模块、和/或数据全部或一部分高速缓存在RAM1112中。应理解的是,所要求保护的主题可以利用各种市场上可买到的操作系统或者操作系统的组合来实现。用户可通过例如键盘1138以及诸如鼠标1140这样的指向设备的一个或多个有线/无线输入设备将指令和信息输入到计算机1102中。其他输入设备(未显示)可包括麦克风UR遥控器、操纵杆、游戏手柄、记录笔、触摸屏等等。这些及其它输入设备通常通过与系统总线1108相耦合的输入设备接口1142而与处理单元1104相连,但是可通过诸如并行端口、串行端口、IEEE-1394端口、游戏端口、USB接口、IR接口等等这样的其他接口相连。监视器1144或其他类型的显示设备也经由诸如视频适配器1146这样的接口与系统总线1108相连。除了监视器1144之外,计算机典型地包括诸如扬声器、打印机等等这样的其他外围输出设备(未显示)。计算机1102可以在经由有线和/或无线通信而与诸如远程计算机(多个)1148这样的一个或多个远程计算机逻辑连接的联网环境中进行操作。远程计算机(多个)1148可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等点设备、或者其它常见的网络节点,并且典型地包括就计算机1102所描述的元件中的许多或全部(虽然为了简洁目的,仅说明了存储器/存储设备1150)。所述逻辑连接包括与局域网(LAN)1152和/或例如广域网(WAN)1154之类的更大网络的有线/无线连接。这种LAN和WAN网络环境在办公室和公司中很常见,并且便于诸如内部网这样的均可以与例如国际互联网这样的全球通信网相连的企业计算机网络。当在LAN网络环境中使用时,计算机1102通过有线和/或无线通信网络接口或者适配器1156与局域网络1152相连。适配器1156可便于与LAN1152的有线或无线通信,其还包括布置于其上的、用于与无线适配器1156进行通信的无线接入点。当在WAN网络环境中使用时,计算机1102可以包括调制解调器1158,或者与WANIlM上的通信服务器相连,或者具有用于通过诸如国际互联网而在WANIlM上建立通信的其它装置。可以是内部或外部且有线或无线设备的调制解调器158经由串行端口接口1142与系统总线1108相连。在网络环境中,可将关于计算机1102而描述的程序模块或其一部分存储在远程存储器/存储设备1150中。应理解的是,所示的网络连接是示例性的并且可使用用于在计算机之间建立通信链路的其它装置。计算机1102可操作地以与任何下述可操作地布置在无线通信中的无线设备或实体进行通信,所述无线设备或实体例如为打印机、扫描仪、台式和/或便携式计算机、便携式数据助理、通信卫星、与无线可检测的标签(例如报亭、报摊、洗手间)相关联的任何一件设备或位置以及电话。这至少包括Wi-Fi和蓝牙无线技术。因此,通信可以是如同传统网络一样的预定结构或者简单地至少两个设备之间的特定通信。Wi-Fi或者无线保真度是与在蜂窝电话中所使用的技术相似的无线技术,其能够使设备在基站范围内的任何地方发送和接收数据。Wi-Fi网络使用IEEE-802.11(a,b,g等等)无线电技术以提供安全、可靠、快速的无线连接。Wi—Fi网络可用于使计算机彼此相连,与国际互联网相连,并且与有线网络相连(使用IEEE-802.3或以太网)。Wi—Fi网络以例如13Mbps的(802.Ila)或MMbps(802.lib)的数据率或者利用包含这两个频带(双频)的产品而在未经许可的2.4和5GHz无线电频带中操作。因此,使用Wi-Fi无线技术的网络可提供与IOBaseT有线以太网相似的现实世界性能。现在参考图12,其中说明了可操作以执行该公开体系结构的示例性计算机编译系统的示意性方框图。系统1200包括一个或多个客户端(多个)1202。客户端(多个)1202可以是硬件和/或软件(例如,线程、进程、计算设备)。在一个示例中,客户端(多个)1202通过采用这里所述的一个或多个特征而容纳cookie(多个)和/或相关的上下文信息。系统1200还包括一个或多个服务器(多个)1204。服务器(多个)1204也可以是硬件和/或软件(例如,线程、进程、计算设备)。在一个示例中,服务器1204可容纳通过采用这里所述的一个或多个特征来进行转换的线程。客户端1202与服务器1204之间的一个可能通信可以是适于在两个或更多计算机处理之间传输的数据包的形式。例如,该数据包可以包括cookie和/或相关上下文信息。系统1200包括可被采用来便于客户端(多个)1202与服务器(多个)1204之间的通信的通信框架1206(例如,诸如国际互联网这样的全球通信网)经由有线(包括光纤)和/或无线技术可便于进行通信。客户端(多个)1202可操作地与可被采用来存储对客户端1202而言是本地的信息(例如cookie(多个)和/或相关上下文信息)的一个或多个客户端数据存储设备1208相连。类似地,服务器(多个)1204可操作地与可被采用来存储对服务器1204而言是本地的信息的的一个或多个服务器数据存储设备1210相连。上述已经包括了所要求保护的主题的示例。当然,不可能为了描述所要求保护的主题的目的而对每个可想得到的组件或方法的组合进行描述,但是本领域普通技术人员可以认识到进一步的组合和置换是可能的。因此,详细描述意图为了包含在所附权利要求的精神和范围之内的所有改动、修改、以及变化。尤其是并且就上述组件、设备、电路、系统等等所执行的各种功能而言,除非另有陈述,用于对这种组件进行描述的术语(包括对“装置“的引用)意图与用于执行所述组件的特定功能(例如功能等同)的任何组件相对应,即使在结构上与用于执行这里所说明的示例性方面中的功能的公开结构不等同也是如此。在这方面,还将认识到,所述方面包括系统以及具有用于执行各种方法的动作和/或事件的计算机可执行指令的计算机可读介质。另外,虽然就若干实现之一而公开了特定特征,但是根据期望或且对任何给定或特定应用有利时,这种特征可以与其他实现的一个或多个其他特征相结合。此外,就术语“包括“和“包含“及其变型用在详细说明或者权利要求书中所达到的程度而言,这些术语意图为与术语“包含“相似方式的非排他性。权利要求1.一种用于从备份系统恢复信息的系统(100),包括处理器(1104),用于执行存储在计算机可读介质(1106,1114,1118,1122)上的机器可执行组件,所述组件包括差别组件(110,420),用于识别出要恢复的信息的当前版本、要恢复的信息的期望版本、以及与此相对应的相应各块集合,并且识别出当前版本与期望版本之间不同的一个或多个块;块位置组件(120,620),用于确定要从中取出被发现为当前版本与期望版本之间不同的相应块的网络位置(610,640,650,660);以及恢复组件(130,630),用于从所确定的网络位置取出被发现为当前版本与期望版本之间不同的相应块并且利用所取出的块恢复所述期望版本。2.根据权利要求1所述的系统,其中所述差别组件(110,420)至少部分地通过对与和当前版本相对应的各块相关联的各相应签名与和期望版本相对应的各块相关联的各签名进行比较来识别在要恢复的信息的当前版本与要恢复的信息的期望版本之间不同的一个或多个块。3.根据权利要求1所述的系统,其中所述块位置组件(120,620)包括索引查找组件(622),该索引查找组件利用存储在预定网络位置(610,640,650,660)上的索引(654)查找要从其取出各相应块的各网络位置。4.根据权利要求1所述的系统,其中所述块位置组件(120,620)所确定的各网络位置(610,640,650,660)包括各对等点(610,640)、各超级对等点(650)或者各云存储位置(660)中的一个或多个。5.根据权利要求4所述的系统,其中所述块位置组件(120,620)至少部分地通过将高优选级别应用于与各对等点(610,640,650)相对应的各网络位置而不是与各云存储位置(660)相对应的各网络位置来确定要在其处取出各相应块的各网络位置(610,640,650,660)。6.根据权利要求1所述的系统,其中所述块位置组件(120,620)包括网络分析组件(6M),该网络分析组件基于网络负载、网络位置可用时间、相应网络位置接近所述块位置组件的接近度、或者与在相应网络位置处的取出信息相关的带宽消耗中的至少一个来确定要在其处取出各相应块的各网络位置(610,640,650,660)。7.根据权利要求1所述的系统,其中由所述块位置组件(120,620)所确定的网络位置(610,640,650,660)存储一个或多个文件或者对一个或多个文件的一个或多个递增Δ更新。8.根据权利要求1所述的系统,其中所述恢复组件(130,630)通过对所取出的块与和要恢复的信息的当前版本相对应的一个或多个块进行合并来恢复出要恢复的信息的期望版本。9.根据权利要求8所述的系统,其中所述恢复组件(130,630)至少部分地通过从要恢复的信息的当前版本中的各相应块中减去所取出的块中的一个或多个差别来对所取出的块与和要恢复的信息的当前版本相对应的一个或多个块进行合并。10.一种执行一个或多个文件的差别恢复的方法,包括识别出存储在至少一个存储器上的一个或多个文件的本地可用版本以及一个或多个文件要恢复到的期望版本;至少部分地通过对本地可用版本与期望版本之间进行差别处理来识别与其本地可用版本不同的一个或多个文件的期望版本中的相应分段;从一个或多个数据存储设备获得所述一个或多个文件的期望版本中所识别出的分段;以及至少部分地基于所获得的一个或多个文件的期望版本中的分段来恢复一个或多个文件的期望版本。11.根据权利要求10所述的方法,其中所述识别相应分段包括对与一个或多个文件的期望版本的相应分段相关联的各相应签名与和一个或多个文件的本地可用版本的相应分段相关联的各签名进行比较。12.根据权利要求10所述的方法,其中所述获得包括利用存储在相关联网络中的分段与相应分段驻留其上的相应网络数据存储设备的列表来选择要从中取出一个或多个文件的期望版本的相应识别出的分段的网络数据存储设备;以及从所选择的网络数据存储设备中获得一个或多个文件的期望版本的所识别出的分段。13.根据权利要求12所述的方法,其中所述网络数据存储设备包括对等点存储位置、超级对等点存储位置或者云存储位置中的至少一个。14.根据权利要求12所述的方法,其中所述选择网络数据存储设备包括基于网络负载、网络数据存储设备可用性、或者与在相应网络存储设备处取出信息相关的带宽消耗中的至少一个来确定要从中取出一个或多个文件的期望版本的相应识别出的分段的网络数据存储设备。15.一种具有存储在其上的指令的机器可读介质(1106,1114,1118,1122),当机器(1102)执行所述指令时,可使机器(1102)起用于从混合点对点/基于云的备份系统中恢复信息的系统的作用,该系统包括装置(110,420),用于实施在一个或多个文件的当前本地可用版本中的相应块与一个或多个文件要恢复到的期望版本中的相应块之间的基于签名的差别处理;装置(120,420),用于利用指向相应块在一个或多个对等点(610,640,650,720,730,740)以及云存储位置(660,710)上的相应位置的元数据来定位与一个或多个文件的当前版本与期望版本之间的基于签名的差别不匹配的至少一个独有块;装置(732,742),用于从一个或多个对等点(610,640,650,720,730,740)或者云存储位置(660,710)中的至少一个获得所述至少一个独有块,其中与从云存储位置(660,710)获得至少一个独有块相比,将较高的重要性施加于从一个或多个对等点(610,640,650,720,730,740)获得至少一个独有块;以及装置(130,630),用于对至少一个独有块与存在于一个或多个文件的当前版本中的一个或多个非独有块进行合并以创建一个或多个文件的期望版本。全文摘要这里提供了一种用于在基于网络的备份系统中进行高效恢复的系统和方法。如这里所述,可使用基于差别的分析以便在取出备份数据之前基于签名和/或与要恢复的给定项有关的其它信息来计算新的完全差别。根据该差别,仅传输被确定为该项的当前版本与期望版本之间独有的块,此后对该块与非独有的本地存在块进行合并以获得该项的完全恢复的版本。此外,可采用混合结构,其中将签名和/或数据存储在网络之内的全球位置以及一个或多个本地对等点上。因此,备份客户端可从全球位置或者附近对等点获得要恢复所必需的信息,这可进一步降低延时和带宽消耗。文档编号G06F15/16GK102388361SQ201080015305公开日2012年3月21日申请日期2010年3月26日优先权日2009年4月3日发明者E.墨菲E.,D.梅尔J.,R.哈米尔顿J.,M.索斯诺斯基L.,维尔克N.申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1