CN108027757B - 用于从不透明数据备份流恢复数据的***和方法 - Google Patents

用于从不透明数据备份流恢复数据的***和方法 Download PDF

Info

Publication number
CN108027757B
CN108027757B CN201680052857.5A CN201680052857A CN108027757B CN 108027757 B CN108027757 B CN 108027757B CN 201680052857 A CN201680052857 A CN 201680052857A CN 108027757 B CN108027757 B CN 108027757B
Authority
CN
China
Prior art keywords
data
block
data backup
server
opaque
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680052857.5A
Other languages
English (en)
Other versions
CN108027757A (zh
Inventor
S·保罗扎加德
N·阿南德
S·杰恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Veritas Technologies LLC
Original Assignee
Veritas Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Veritas Technologies LLC filed Critical Veritas Technologies LLC
Publication of CN108027757A publication Critical patent/CN108027757A/zh
Application granted granted Critical
Publication of CN108027757B publication Critical patent/CN108027757B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本发明公开了一种用于从不透明数据备份流恢复数据的计算机实现的方法,所述方法可包括(1)启动被设计为由创建了所述流的数据备份应用程序唯一地解析的不透明数据备份流的虚拟恢复,(2)针对数据的每个块,基于所述块在所述客户端上的恢复版本来确定所述块的原始标头和尾部,(3)将所述块的所述原始标头和尾部发送到服务器,(4)在所述服务器处,创建所述数据的块在所述服务器上的所述流中的位置与所述块的所述原始标头和尾部之间的映射,以及(5)在不使用所述数据备份应用程序的情况下,通过使用所述映射以恢复所述块的所述原始标头和尾部来恢复所述流中的数据。本发明还公开了各种其他方法、***和计算机可读介质。

Description

用于从不透明数据备份流恢复数据的***和方法
背景技术
在信息时代初期,应用程序和数据的备份被存储在打孔卡、磁带以及磁盘上。如今,虚拟备份被创建并存储在遍布全球的本地和远程服务器上。创建数据和操作***的备份的便易性已使得许多个人和组织创建大量冗余备份。最近,数据管理的趋势正不断改变。副本数据管理是一组原则,其建议数据应该被保存在更少地方,而非更多。理想情况下,在副本数据管理方案下,全套数据应该仅存在于两个地方—即生产和单个完整备份中。数据集的其他用途(诸如测试环境)应该利用差异或快照,仅存储被改变的数据部分,而非整个数据集。
不幸的是,用于创建和管理备份的传统***尚未跟上这种趋势。许多用于维护备份的传统***只允许对数据进行全面恢复,而不允许进行部分恢复。一些用于创建备份的传统***可能将备份数据存储为不透明的格式,而尝试创建数据的快照或差异的其他应用程序可能无法读取这些格式。因此,本公开确定并解决了对用于从不透明数据备份流恢复数据的额外且改善的***和方法的需要。
发明内容
如将在下文更详细描述的,本公开描述了用于通过执行虚拟恢复并且为所恢复的数据块被数据备份应用程序模糊化的部分和存储的数据块在不透明数据备份流中的位置之间的每个数据块创建映射来从不透明数据备份流恢复数据的各种***和方法。
在一个示例中,用于从不透明数据备份流恢复数据的计算机实现的方法可包括:(1)从客户端启动对不透明数据备份流的虚拟恢复,该不透明数据备份流托管在服务器上并且包括具有已修改的标头和尾部的数据的块,该已修改的标头和尾部被设计为由创建了该不透明数据备份流的数据备份应用程序唯一地解析;(2)针对不透明数据备份流中的数据的每个块:(a)基于该块在客户端上的恢复版本来确定块的原始标头和尾部、(b)将该块的原始标头和尾部从客户端发送到服务器,以及(c)在服务器处,创建该数据的块在服务器上的不透明数据备份流中的位置与该块的原始标头和尾部之间的映射;以及(3)在不使用数据备份应用程序的情况下,通过使用该映射以恢复包括数据的块的原始标头和尾部来恢复不透明数据备份流中的数据。
在一个实施方案中,计算机实现的方法还可包括:(1)在服务器处创建服务器上的数据的每个块的散列;(2)在客户端处创建在虚拟恢复期间客户端所见的数据的块的散列;以及(3)针对客户端所见的数据的每个块,查询服务器以确定服务器是否具有数据的块的该散列的副本,并且在服务器不具有该散列的副本时将数据的该块发送到服务器。在一些示例中,创建数据的块的散列可包括创建排除标头和尾部的数据的块的一部分的散列。
在一个实施方案中,数据备份应用程序可不被配置为从不透明数据备份流执行部分恢复,并且在不使用数据备份应用程序的情况下恢复数据可包括恢复不透明数据备份流的子组,同时排除不透明数据备份流的一部分。在一些示例中,恢复不透明数据备份流中的数据可包括基于不透明数据备份流来创建差异备份。
在一些示例中,在客户端上执行虚拟恢复可包括避免将数据存储在客户端上的不透明数据备份流中。在一个实施方案中,可响应于对不透明数据备份流的修改来启动虚拟恢复。
在一个实施方案中,用于实现上述方法的***可包括:(1)存储在存储器中的启动模块,其从客户端启动对不透明数据备份流的虚拟恢复,该不透明数据备份流托管在服务器上并且可包括具有已修改的标头和尾部的数据的块,该已修改的标头和尾部被设计为由创建了该不透明数据备份流的数据备份应用程序唯一地解析;(2)存储在存储器中的确定模块,其针对每个块,基于该块在客户端上的恢复版本来确定块的原始标头和尾部;(3)存储在存储器中的发送模块,其将该块的原始标头和尾部从客户端发送到服务器;(4)存储在存储器中的创建模块,其在服务器处创建该数据的块在服务器上的不透明数据备份流中的位置与该块的原始标头和尾部之间的映射;(5)存储在存储器上的恢复模块,其在不使用数据备份应用程序的情况下,通过使用该映射以恢复包括数据的块的原始标头和尾部来恢复不透明数据备份流中的数据;以及(6)被配置为执行启动模块、确定模块、发送模块、创建模块和恢复模块的至少一个物理处理器。
在一些实施例中,上述方法可被编码为非暂态计算机可读介质上的计算机可读指令。例如,计算机可读介质可包括一个或多个计算机可执行指令,当由计算设备的至少一个处理器执行时,这些指令可使得该计算设备:(1)从客户端启动对不透明数据备份流的虚拟恢复,该不透明数据备份流托管在服务器上并且包括具有已修改的标头和尾部的数据的块,该已修改的标头和尾部被设计为由创建了该不透明数据备份流的数据备份应用程序唯一地解析;(2)针对每个块,基于该块在客户端上的恢复版本来确定块的原始标头和尾部;(3)将该块的原始标头和尾部从客户端发送到服务器;(4)在服务器处,创建该数据的块在服务器上的不透明数据备份流中的位置与该块的原始标头和尾部之间的映射;以及(5)在不使用数据备份应用程序的情况下,通过使用该映射以恢复包括数据的块的原始标头和尾部来恢复不透明数据备份流中的数据。
来自任意上述实施方案的特征可根据本文所述的一般原理彼此结合使用。在结合附图和权利要求阅读以下详细描述后,将更全面地理解这些以及其他实施方案、特征和优点。
附图说明
附图示出多个示例性实施方案,且是说明书的一部分。这些附图与以下描述一起展示并说明本公开的各种原理。
图1是用于从不透明数据备份流恢复数据的示例性***的框图。
图2是用于从不透明数据备份流恢复数据的附加示例性***的框图。
图3是用于从不透明数据备份流恢复数据的示例性方法的流程图。
图4是示例性数据块的框图。
图5是用于从不透明数据备份流恢复数据的示例性计算***的框图。
图6是能够实现本文所描述和/或示出的实施方案中的一者或多者的示例性计算***的框图。
图7是能够实现本文所描述和/或示出的实施方案中的一者或多者的示例性计算网络的框图。
在整个附图中,相同的参考字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施方案易存在各种修改形式和替代形式,但附图中以举例的方式示出了具体实施方案,这些实施方案将在本文中详细描述。然而,本文所述的示例性实施方案并不旨在限于所公开的特定形式。相反,本公开涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。
具体实施方式
本公开总体涉及用于从不透明数据备份流恢复数据的***和方法。如将在下文更详细说明的,通过存储不透明数据备份流中的模糊化数据块与数据块的模糊化部分的原始版本之间的映射,本文描述的***可允许由创建了该不透明数据备份流的应用程序之外的应用程序对来自该不透明数据备份流的备份进行全面和部分恢复。
以下将参考图1、图2和图5提供用于从不透明数据备份流恢复数据的示例性***的详细描述。还将结合图3提供对应的计算机实现的方法的详细描述。将结合图4提供示例性数据块的详细描述。另外,将分别结合图6和图7提供能够实现本文所述的实施方案中的一者或多者的示例性计算***和网络架构的详细描述。
图1是用于从不透明数据备份流恢复数据的示例性***100的框图。如该图所示,示例性***100可包括用于执行一个或多个任务的一个或多个模块102。例如,并且如将在下文更详细说明的,示例性***100可包括启动模块104,该启动模块从客户端启动对不透明数据备份流的虚拟恢复,该不透明数据备份流托管在服务器上并且可包括具有已修改的标头和尾部的数据的块,该已修改的标头和尾部被设计为由创建了该不透明数据备份流的数据备份应用程序唯一地解析。示例性***100可另外包括确定模块106,该确定模块针对数据的每个块,基于该块在客户端上的恢复版本来确定块的原始标头和尾部。示例性***100还可包括发送模块108,该发送模块将该块的原始标头和尾部从客户端发送到服务器。示例性***100可另外包括创建模块110,该创建模块在服务器处创建该数据的块在服务器上的不透明数据备份流中的位置与该块的原始标头和尾部之间的映射。示例性***100还可包括恢复模块112,该恢复模块在不使用数据备份应用程序的情况下,通过使用该映射以恢复组成数据的块的原始标头和尾部来恢复不透明数据备份流中的数据。虽然示出为单独元件,但图1的模块102中的一者或多者可表示单个模块或应用程序的若干部分。
在某些实施方案中,图1中的模块102中的一者或多者可表示一个或多个软件应用程序或程序,其在由计算设备执行时可致使计算设备执行一个或多个任务。例如,并且如将在下文更详细描述的,模块102中的一者或多者可表示被存储并且被配置为在一个或多个计算设备上运行的软件模块,所述计算设备诸如为图2所示的设备(例如,客户端202、客户端214和/或服务器206)、图6中的计算***610和/或图7中的示例性网络架构700的部分。图1中的模块102中的一者或多者还可表示被配置为执行一个或多个任务的一个或多个专用计算机的全部或部分。
图1中的示例性***100可以多种方式来实现。例如,示例性***100的全部或部分可表示图2中的示例性***200的部分。如图2所示,***200可包括经由网络204与服务器206进行通信的客户端202和/或客户端214。在一个示例中,客户端202可被编程具有模块102中的一者或多者。在一些示例中,客户端214可被编程具有模块102中的一者或多者。除此之外或另选地,服务器206可被编程具有模块102中的一者或多者。
在一个实施方案中,当由客户端202、客户端214和/或服务器206的至少一个处理器执行时,来自图1的模块102中的一者或多者使得客户端202、客户端214和/或服务器206能够从不透明数据备份流恢复数据。例如,并且如将在下文更详细描述的,启动模块104可从客户端202启动对不透明数据备份流208的虚拟恢复,该不透明数据备份流托管在服务器206上并且可包括具有已修改的标头和尾部的数据的块,该已修改的标头和尾部被设计为由创建了不透明数据备份流208的数据备份应用程序唯一地解析。针对不透明数据备份流208中的每个块,确定模块106可基于块210在客户端202上的恢复版本来确定块210的原始标头和尾部。接下来,发送模块108可将块210的原始标头和尾部从客户端202发送到服务器206。最后,创建模块110可在服务器206处,创建该数据的块210在服务器206上的不透明数据备份流208中的位置与块210的原始标头和尾部之间的映射212。在稍后的某个时间,恢复模块112可在不使用数据备份应用程序的情况下,通过使用映射212以恢复组成数据的块的原始标头和尾部来恢复不透明数据备份流208中的数据。
客户端202和/或客户端214通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。客户端202和/或客户端214的示例包括但不限于:膝上型电脑、平板电脑、台式计算机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放器、嵌入式***、可穿戴设备(例如,智能手表、智能眼镜等)、游戏机、其中一者或多者的组合、图6中的示例性计算***610,或任何其他合适的计算设备。
服务器206通常表示能够托管备份数据的任何类型或形式的计算设备。服务器206的示例包括但不限于被配置为提供各种数据库服务和/或运行某些软件应用程序的应用程序服务器和数据库服务器。
网络204通常表示能够促进通信或数据传送的任何介质或架构。网络204的示例包括但不限于:内联网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如,全球移动通信***(GSM)网络)、图7中的示例性网络架构700等。网络204可使用无线或有线连接促进通信或数据传送。在一个实施方案中,网络204可促进客户端202、客户端214和/或服务器206之间的通信。
图3是用于从不透明数据备份流恢复数据的示例性计算机实现的方法300的流程图。图3所示的步骤可由任何合适的计算机可执行代码和/或计算***执行。在一些实施方案中,图3所示的步骤可由图1中的***100、图2中的***200、图6中的计算***610和/或图7中的示例性网络架构700的部分的部件中的一者或多者执行。
如图3所示,在步骤302处,本文所述的***中的一者或多者可从客户端启动对不透明数据备份流的虚拟恢复,该不透明数据备份流托管在服务器上并且包括具有已修改的标头和尾部的数据的块,该已修改的标头和尾部被设计为由创建了该不透明数据备份流的数据备份应用程序唯一地解析。例如,作为图2中的客户端202的部分的启动模块104可从客户端202启动对不透明数据备份流208的虚拟恢复,该不透明数据备份流托管在服务器206上并且可包括具有已修改的标头和尾部的数据的块,该已修改的标头和尾部被设计为由创建了不透明数据备份流208的数据备份应用程序唯一地解析。
如本文所用的术语“数据备份应用程序”通常是指被设计和/或被配置为创建和/或管理数据的备份副本的任何应用程序。在一些实施方案中,数据备份应用程序可通过创建从生产环境到备份服务器的备份数据流来创建数据的备份。在一些示例中,数据备份应用程序可创建被设计为不可被其他数据备份应用程序读取的不透明数据备份流。数据备份应用程序的示例可包括ORACLE RECOVERY MANAGER和/或SYMANTEC NETBACKUP。
如本文所用的术语“不透明数据备份流”通常是指以使数据被部分或完全模糊化的方式存储的任何数据。在一些实施方案中,不透明数据备份流可以是由备份应用程序创建并存储在备份服务器上的数据流。在一个实施方案中,不透明数据备份流可包括具有已修改的标头和/或尾部的数据的块。除此之外或另选地,不透明数据备份流可以与数据的块被存储在生产环境中的顺序不同的顺序来存储数据的块。在一些实施方案中,数据备份应用程序可在创建不透明数据备份流时修复损坏的数据块。在一个示例中,不透明数据备份流可包括由ORACLE RECOVERY MANAGER创建的数据备份流。
如本文所用的术语“数据的块”通常是指数据流的任何限定的部分。在一些实施方案中,数据的块可表示单个文件。在一个实施方案中,数据的块可包括标头和尾部。如本文所用的术语“标头”通常是指在包括有关该块的信息和/或该块中包含的数据的数据的块的开始处的部分。例如,标头可包括数据的块的相对地址和/或数据的块的标头的其余部分的校验和。如本文所用的术语“尾部”通常是指在包括有关该块的信息和/或该块中包含的数据的数据的块的末端处的部分。例如,尾部可包括整个块的校验和。
在一些实施方案中,数据备份应用程序可修改不透明数据备份流中的数据块的标头和尾部。如图4所示,原始数据块402可表示生产环境中的数据块的原始版本和/或数据块的全面恢复版本。已修改的数据块404可表示由不透明数据备份流中的数据备份应用程序创建的数据块的版本。在一些示例中,原始数据块402可具有与已修改的数据块404不同的标头。例如,由于已修改的数据块404在不透明数据备份流中的位置,已修改的数据块404的标头中的相对数据块地址可能不同,导致已修改的数据块404的标头校验和也发生改变。在一些示例中,数据块中较早的改变可导致已修改的数据块404具有与原始数据块402不同的尾部。例如,已修改的数据块404的尾部中的块校验和可因为对已修改的数据块404的标头做出的改变而改变。因此,查看整个数据块(包括标头和尾部)的应用程序可能无法确定已修改的数据块404表示与原始数据块402相同的数据。
如本文所用的术语“虚拟恢复”通常是指不旨在全面恢复一组数据并将全面恢复的该组数据存储在计算***上的恢复操作。在一些示例中,本文所述的***可避免将整个恢复的数据存储在任何计算***上。例如,数据块一被检查到,本文所述的***就可丢弃恢复的数据块。
启动模块104可在各种各样的情境中启动虚拟恢复。在一个实施方案中,启动模块104可响应于对不透明数据备份流的修改来启动虚拟恢复。例如,可修改该不透明数据备份流,因为由该流备份的生产数据可能已被修改。在另一个实施方案中,启动模块104可以预定的时间间隔启动虚拟恢复。例如,启动模块104可每天、每周或每月地启动虚拟恢复。
除此之外或另选地,启动模块104可响应于来自另一应用程序的请求而启动虚拟恢复。例如,附加的数据备份应用程序可能正试图从不透明数据备份流恢复数据的一部分,并且可提示启动模块104启动虚拟恢复,以便确保不透明数据备份流中的数据是可被附加的备份应用程序读取的。在另一个实施方案中,启动模块104可监视不透明数据备份流和/或附加的数据备份应用程序,并且可响应于检测到附加的数据备份应用程序正试图对不透明数据备份流执行恢复操作而启动虚拟恢复。
返回至图3,在步骤304处,本文所述的***中的一者或多者可针对数据的每个框,基于该块在客户端上的恢复版本来确定块的原始标头和尾部。例如,作为图2中的客户端202的部分的确定模块106可基于块210在客户端202上的恢复版本来确定块210的原始标头和尾部。
确定模块106可以各种各样的方式来确定块的原始标头和尾部。例如,确定模块106可检查恢复的块并识别标头和尾部。在另一个实施方案中,确定模块106可将不透明数据备份流中的已修改的块与恢复的块进行比较,以便识别对该块做出的改变。
在一些实施方案中,确定模块106可创建每个块的散列。在一些示例中,确定模块106可通过排除块的标头和尾部来创建块的散列。如本文所用的术语“散列”可以是指文件的任何缩略表示和/或文件的内容。例如,术语“散列”可以是指一个或多个散列函数的输出、指纹、校验和以及/或者独一无二地识别文件和/或文件内容(从而禁止冲突)的任何其他类型的文件标识符。
在步骤306处,本文所述的***中的一者或多者可将块的原始标头和尾部从客户端发送到服务器。例如,作为图2中的客户端202的部分的发送模块108可将块210的原始标头和尾部从客户端202发送到服务器206。
发送模块108可在各种各样的情境中将块的原始标头和尾部发送到服务器。例如,块的标头和尾部一被识别,发送模块108就可将块的标头和尾部发送到服务器。
在另一个实施方案中,发送模块106可首先将块的散列发送到服务器。在该实施方案中,如果服务器响应其也具有该块的散列,则发送模块106然后可将该块的标头和尾部发送到服务器。如果服务器响应该服务器不具有该块的散列,则发送模块106可将整个数据的块发送到服务器。在一些示例中,服务器可能不具有数据的块的散列,因为数据的块可能不在不透明数据备份流中,而是代替地可能在恢复操作期间被数据备份应用程序重建。例如,数据备份应用程序可能不存储用于不透明数据备份流的标头块和/或块零。在该示例中,发送模块106可将块零的散列发送到服务器,服务器可响应服务器不具有块零的散列,并且发送模块106可将块零发送到服务器。发送模块106可以同一信息或单独信息形式来将块零的标头和尾部发送到服务器。
在步骤308处,本文所述的***中的一者或多者可在服务器处创建该数据的块在服务器上的不透明数据备份流中的位置与该块的原始标头和尾部之间的映射。例如,作为图2中的服务器206的部分的创建模块110可在服务器206处,创建该数据的块210在服务器206上的不透明数据备份流208中的位置与块210的原始标头和尾部之间的映射212。
创建模块110可以各种各样的方式来创建映射。例如,创建模块110可存储该数据的块在不透明数据流中的位置与数据在散列中的原始标头和尾部之间的映射。在另一个实施方案中,创建模块110可将该映射存储在数据库中。在一些实施方案中,创建模块110可在映射中存储块的原始标头和尾部。在其他实施方案中,原始标头和尾部可被存储在服务器上的其他地方,并且创建模块110可存储指向原始标头和尾部的指针。
在一些实施方案中,在创建映射之前,创建模块110可首先创建存储在服务器上的数据的每个块的散列。在该实施方案中,服务器可从客户端接收询问服务器是否具有数据的特定块的散列的消息。如果服务器响应服务器确实具有数据的块的散列,则创建模块110可接收要放入映射中的数据的块的原始标头和尾部。如果服务器响应服务器不具有数据的块的散列,则服务器可接收数据的块,并且创建模块110可创建未存储在不透明数据备份流中的数据的块的位置与数据的块的原始标头和尾部之间的映射。
在一些实施方案中,创建模块110可通过省略块的标头和尾部来创建数据的块的散列。在该实施方案中,由已修改的块的服务器创建的散列将与由恢复的块的客户端创建的散列相匹配,因为块中不在标头和尾部中的数据可能不会被数据备份应用程序改变。
在一些实施方案中,服务器和客户端可在为数据块创建映射的过程中进行多次通信。图5是用于通过创建映射来从不透明数据备份流恢复数据的示例性计算***500的框图。如图5所示,客户端502可启动由最初创建了不透明数据备份流510的备份应用程序508执行的虚拟恢复。不透明数据备份流510可具有可从服务器506请求流数据的应用编程接口(API)504。服务器506可经由API 504将来自不透明数据备份流510的数据发送到备份应用程序508。然后,备份应用程序508可将恢复的流数据发送到客户端502,该客户端可由数据的块来创建块散列514。客户端502还可识别每个数据的块的原始标头和尾部516。客户端502可将块散列514各个地和/或以组的方式发送到服务器506。服务器506可尝试将块散列514中的散列与块散列512中的散列相匹配。然后,服务器506可回复客户端502有关块散列514中的哪些散列存在于块散列512中以及哪些散列不存在于其中的信息。客户端502可将针对服务器506无法在块散列512中找到的任何块散列的数据块发送到服务器506。客户端502也可将原始标头和尾部516发送到服务器506。最后,服务器506可创建数据的每个块在不透明数据备份流510中的位置与原始标头和尾部516之间的映射518。通过仅发送尚未在服务器506上的完整块,以及另外仅仅发送针对已经存在于506上的块的原始标头和尾部516,本文所述的***可显著地减少生成完整的一组映射518所需的网络流量。
在一些实施方案中,备份应用程序508可包括ORACLE RECOVERY MANAGER内核,服务器506可包括ORACLE RECOVERY MANAGER服务器,并且/或者客户端502可包括ORACLERECOVERY MANAGER客户端。在一些实施方案中,API 504可以是ORACLE RECOVERY MANAGER的部分。在其他实施方案中,API 504可以是SYMANTEC NETBACKUP的部分。在一些实施方案中,备份应用程序508、客户端502和/或API 504全部都可以是NETAPP SNAPMANAGER实例的部分,并且/或者服务器506可以是SYMANTEC NETBACKUP装置的部分。
返回至图3,在步骤310处,本文所述的***中的一者或多者可在不使用数据备份应用程序的情况下,通过使用该映射以恢复组成数据的块的原始标头和尾部来恢复不透明数据备份流中的数据。例如,作为图2中的客户端214的部分的恢复模块112可在不使用数据备份应用程序的情况下,通过使用映射212以恢复组成数据的块的原始标头和尾部来恢复不透明数据备份流208中的数据。
恢复模块112可在各种各样的情境中恢复不透明数据备份流中的数据。例如,恢复模块112可被托管在执行了虚拟恢复的同一客户端上。在另一个实施方案中,恢复模块112可被托管在不同的客户端上。
在一些实施方案中,数据备份应用程序可不被配置为从不透明数据备份流执行部分恢复,并且恢复模块112可在不使用数据备份应用程序的情况下恢复数据以恢复不透明数据备份流的子组,同时排除不透明数据备份流的一部分。例如,通过基于不透明数据备份流来创建差异备份,恢复模块112可恢复不透明数据备份流中的数据。在该示例中,恢复模块112可读取不透明数据备份流中的数据的部分,并且可存储对数据做出的任何改变而不存储数据本身。在一些示例中,恢复模块112可以这种方式为测试环境创建差异备份。在一些实施方案中,恢复模块112可通过写入大小显著地比不透明数据备份流中的数据的总体小的一定量的数据来创建不透明数据备份流中的数据的差异备份和/或快照。
在一些实施方案中,恢复模块112可通过创建合成备份(即,前滚备份)来恢复数据,通过组合来自不透明数据备份流的增量备份数据与全面备份图像来创建合成备份。在一些示例中,创建了不透明数据备份流的应用程序可使用与附加的备份应用程序不同的块大小,并且因此附加的备份应用程序可能无法由不透明数据备份流本身来创建合成备份。在一些实施方案中,本文所述的***可使用上述过程结合步骤306、步骤308和步骤310来创建新的一组数据块和表示合成备份的散列映射。在一个实施方案中,该新的一组数据块和散列也可映射到现有块(即,增量备份中的块的已修改版本可映射到全面备份中的块的原始版本)。
如上文结合方法300所说明的,本文所述的***和方法可实现对不透明数据备份流的副本数据管理,否则这些不透明数据备份流将不能用于由创建了该不透明数据备份流的原始数据备份应用程序执行的完整恢复之外的任何事。本文所述的***和方法可执行虚拟恢复以便从不透明数据备份流捕获数据块的原始标头和尾部,并且然后可创建标头和尾部与数据块在不透明数据备份流内的位置之间的映射。通过使用该映射,其他备份应用程序能够恢复数据的任何或全部。在一些示例中,其他备份应用程序可创建数据的差异,从而允许测试环境和其他***访问数据而不创建数据的全新副本。通过使用本文所述的***和方法来将副本数据管理技术应用于不透明数据备份流,管理员能够配置具有多组数据的许多环境,而不消耗通过配置具有数据的完整副本的环境所需的存储资源或者对不透明数据备份流执行完整恢复所需的计算资源。
图6是能够实现本文所描述和/或示出的实施方案中的一者或多者的示例性计算***610的框图。例如,计算***610的全部或一部分可单独地或与其他元件组合地执行并且/或者作为一种装置用于执行本文所述的步骤中的一者或多者(诸如图3所示的步骤中的一者或多者)。计算***610的全部或一部分还可执行并且/或者作为一种装置用于执行本文所描述和/或示出的任何其他步骤、方法或过程。
计算***610在广义上表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或***。计算***610的示例包括但不限于:工作站、膝上型电脑、客户端侧终端、服务器、分布式计算***、手持设备或任何其他计算***或设备。在其最基本的配置下,计算***610可包括至少一个处理器614和***存储器616。
处理器614通常表示能够处理数据或解译并执行指令的任何类型或形式的物理处理单元(例如,硬件实现的中央处理单元)。在某些实施方案中,处理器614可接收来自软件应用程序或模块的指令。这些指令可使得处理器614执行本文所描述和/或示出的一个或多个示例性实施方案的功能。
***存储器616通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。***存储器616的示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器或任何其他合适的存储器设备。尽管不是必需的,但在某些实施方案中,计算***610可包括易失性存储器单元(例如诸如,***存储器616)和非易失性存储设备(例如诸如,主存储设备632,如下文详细描述的)两者。在一个实施方案中,来自图1的模块102中的一者或多者可被加载到***存储器616中。
在某些实施方案中,除处理器614和***存储器616之外,示例性计算***610还可包括一个或多个部件或元件。例如,如图6所示,计算***610可包括存储器控制器618、输入/输出(I/O)控制器620和通信接口622,其中的每一者都可经由通信基础结构612互连。通信基础结构612通常表示能够促进计算设备的一个或多个部件之间的通信的任何类型或形式的基础结构。通信基础结构612的示例包括但不限于:通信总线(诸如工业标准架构(ISA)、***部件互连(PCI)、PCI Express(PCIe)或类似的总线)和网络。
存储器控制器618通常表示能够处理存储器或数据或者控制计算***610的一个或多个部件之间的通信的任何类型或形式的设备。例如,在某些实施方案中,存储器控制器618可经由通信基础结构612控制处理器614、***存储器616和I/O控制器620之间的通信。
I/O控制器620通常表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,在某些实施方案中,I/O控制器620可控制或促进计算***610的一个或多个元件之间的数据传输,所述一个或多个元件诸如为处理器614、***存储器616、通信接口622、显示适配器626、输入接口630和存储接口634。
通信接口622在广义上表示能够促进示例性计算***610与一个或多个附加设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施方案中,通信接口622可促进计算***610与包括附加计算***的私有或公共网络之间的通信。通信接口622的示例包括但不限于有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器以及任何其他合适的接口。在至少一个实施方案中,通信接口622可经由到网络(诸如互联网)的直接链路来提供到远程服务器的直接连接。通信接口622还可通过例如局域网(诸如以太网网络)、个人区域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接提供此类连接。
在某些实施方案中,通信接口622还可表示主机适配器,该主机适配器被配置为经由外部总线或通信信道来促进计算***610与一个或多个附加网络或存储设备之间的通信。主机适配器的示例包括但不限于小型计算机***接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、电气与电子工程师协会(IEEE)1394主机适配器、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)和外部SATA(eSATA)主机适配器、光纤信道接口适配器、以太网适配器等。通信接口622还可允许计算***610参与分布式或远程计算。例如,通信接口622可接收来自远程设备的指令或将指令发送到远程设备以供执行。
如图6所示,计算***610还可包括至少一个显示设备624,该显示设备经由显示适配器626耦接到通信基础结构612。显示设备624通常表示能够以可视地显示由显示适配器626转发的信息的任何类型或形式的设备。类似地,显示适配器626通常表示被配置为转发来自通信基础结构612(或来自帧缓冲器,如本领域所已知)的图形、文本和其他数据以供在显示设备624上显示的任何类型或形式的设备。
如图6所示,示例性计算***610还可包括经由输入接口630耦接到通信基础结构612的至少一个输入设备628。输入设备628通常表示能够向示例性计算***610提供输入(由计算机或人类生成)的任何类型或形式的输入设备。输入设备628的示例包括但不限于键盘、指向设备、语音识别设备或任何其他输入设备。
如图6所示,示例性计算***610还可包括主存储设备632和经由存储接口634耦接到通信基础结构612的备用存储设备633。存储设备632和存储设备633通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备632和存储设备633可以是磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口634通常表示用于在存储设备632和存储设备633与计算***610的其他部件之间传输数据的任何类型或形式的接口或设备。
在某些实施方案中,存储设备632和存储设备633可被配置为对被配置为存储计算机软件、数据或其他计算机可读信息的可移除存储单元执行读取和/或写入。合适的可移除存储单元的示例包括但不限于软盘、磁带、光盘、闪存设备等。存储设备632和存储设备633还可包括用于允许将计算机软件、数据或其他计算机可读指令加载到计算***610中的其他类似结构或设备。例如,存储设备632和存储设备633可被配置为读取和写入软件、数据或其他计算机可读信息。存储设备632和存储设备633还可以是计算***610的一部分,或者可以是通过其他接口***访问的独立设备。
可将许多其他设备或子***连接到计算***610。相反地,图6所示的所有部件和设备都不必存在用于实践本文所描述和/或示出的实施方案。还可以与图6所示不同的方式互连上文提及的设备和子***。计算***610也可采用任何数量的软件、固件和/或硬件配置。例如,本文所公开的示例性实施方案中的一个或多个可被编码为计算机可读介质上的计算机程序(也被称为计算机软件、软件应用程序、计算机可读指令或计算机控制逻辑)。如本文所用,术语“计算机可读介质”通常是指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括但不限于传输型介质,诸如载波,和非暂态型介质,诸如磁存储介质(例如,硬盘驱动器、磁带驱动器和软盘)、光存储介质(例如,光盘(CD)、数字视频盘(DVD)、BLU-RAY磁盘)、电子存储介质(例如,固态驱动器和闪存介质)和其他分配***。
可将包含计算机程序的计算机可读介质加载到计算***610中。然后可将计算机可读介质上存储的全部或一部分计算机程序存储在***存储器616中和/或存储设备632和存储设备633的各个部分中。当由处理器614执行时,加载到计算***610中的计算机程序可使得处理器614执行和/或作为一种装置用于执行本文所描述和/或示出的示例性实施方案中的一者或多者的功能。除此之外或作为另外一种选择,可以固件和/或硬件实施本文描述和/或示出的示例性实施方案中的一个或多个。例如,计算***610可被配置为适于实现本文所公开的示例性实施方案中的一者或多者的专用集成电路(ASIC)。
图7是示例性网络架构700的框图,其中客户端***710、客户端***720和客户端***730以及服务器740和服务器745可耦接到网络750。如上文所详述,网络架构700的全部或一部分可单独地或与其他元件组合地执行并且/或者作为一种装置用于执行本文所公开的步骤中的一者或多者(诸如图3所示的步骤中的一者或多者)。网络架构700的全部或一部分还可用于执行并且/或者作为一种装置用于执行本公开中阐述的其他步骤和特征。
客户端***710、客户端***720和客户端***730通常表示任何类型或形式的计算设备或***,诸如图6中的示例性计算***610。类似地,服务器740和服务器745通常表示被配置为提供各种数据库服务并且/或者运行某些软件应用程序的计算设备或***,诸如应用程序服务器或数据库服务器。网络750通常表示任何电信或计算机网络,包括例如内联网、WAN、LAN、PAN或互联网。在一个实施方案中,客户端***710、客户端***720和/或客户端***730和/或服务器740和/或服务器745可包括图1的***100的全部或一部分。
如图7所示,可将一个或多个存储设备760(1)-(N)直接附接到服务器740。类似地,可将一个或多个存储设备770(1)-(N)直接附接到服务器745。存储设备760(1)-(N)和存储设备770(1)-(N)通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。在某些实施方案中,存储设备760(1)-(N)和存储设备770(1)-(N)可表示附网存储(NAS)设备,该附网存储(NAS)设备被配置为使用各种协议与服务器740和服务器745进行通信,所述协议诸如为网络文件***(NFS)、服务器消息块(SMB)或通用互联网文件***(CIFS)。
服务器740和服务器745还可连接到存储区域网络(SAN)结构780。SAN结构780通常表示能够促进多个存储设备之间的通信的任何类型或形式的计算机网络或架构。SAN结构780可促进服务器740和服务器745与多个存储设备790(1)-(N)和/或智能存储阵列795之间的通信。SAN结构780还可经由网络750以及服务器740和服务器745以如下方式促进客户端***710、客户端***720和客户端***730与存储设备790(1)-(N)和/或智能存储阵列795之间的通信:设备790(1)-(N)和阵列795呈现为到客户端***710、客户端***720和客户端730的本地附接设备。与存储设备760(1)-(N)和存储设备770(1)-(N)一样,存储设备790(1)-(N)和智能存储阵列795通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。
在某些实施方案中,并且参考图6的示例性计算***610,通信接口(诸如图6中的通信接口622)可用于提供每个客户端***710、客户端***720和客户端***730与网络750之间的连接性。客户端***710、客户端***720和客户端***730能够使用例如web浏览器或其他客户端软件来访问服务器740或服务器745上的信息。此类软件可允许客户端***710、客户端***720和客户端***730访问由服务器740、服务器745、存储设备760(1)-(N)、存储设备770(1)-(N)、存储设备790(1)-(N)或智能存储阵列795托管的数据。尽管图7描绘了使用网络(诸如互联网)来交换数据,但本文所描述和/或示出的实施方案并非限于互联网或任何特定的基于网络的环境。
在至少一个实施方案中,本文所公开的一个或多个示例性实施方案中的全部或一部分可被编码为计算机程序并且加载到服务器740、服务器745、存储设备760(1)-(N)、存储设备770(1)-(N)、存储设备790(1)-(N)、智能存储阵列795或其任何组合上并加以执行。本文所公开的一个或多个示例性实施方案中的全部或一部分还可被编码为计算机程序、存储在服务器740中、由服务器745运行,并且通过网络750分配到客户端***710、客户端***720和客户端***730。
如上文所详述,计算***610和/或网络架构700的一个或多个部件可单独地或与其他元件组合地执行并且/或者作为一种装置用于执行用于从不透明数据备份流恢复数据的示例性方法的一个或多个步骤。
虽然上述公开使用特定框图、流程图和示例阐述了各种实施方案,但每个框图组件、流程图步骤、操作和/或本文描述和/或示出的组件可使用多种硬件、软件或固件(或它们的任意组合)配置单独和/或共同地实施。此外,包含在其他组件内的组件的任何公开应当被视为在本质上是示例性的,因为可实施许多其他体系结构来实现相同的功能。
在一些实施例中,图1中的示例性***100的全部或部分可表示基于云计算或网络的环境的部分。云计算环境可经由互联网提供各种服务和应用程序。这些基于云的服务(例如软件即服务、平台即服务、基础结构即服务等)可通过网页浏览器或其他远程接口访问。本文所述的各种功能可通过远程桌面环境或任何其他基于云的计算环境提供。
在各种实施方案中,图1中的示例性***100的全部或部分可促进基于云的计算环境内的多重租赁。换句话讲,本文所述的软件模块可配置计算***(例如,服务器)以促进本文所述的功能中的一种或多种的多租户应用。例如,本文所述的软件模块中的一个或多个可对服务器进行编程以允许两个或更多个客户端(例如,顾客)共享正在服务器上运行的应用程序。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作***、处理***和/或存储***。本文所述的模块中的一个或多个还可为每个顾客分割多租户应用程序的数据和/或配置信息以使得一个顾客不能访问另一个顾客的数据和/或配置信息。
根据各种实施方案,图1中的示例性***100的全部或部分可在虚拟环境内实现。例如,本文所述的模块和/或数据可在虚拟机内驻留和/或执行。如本文所用,术语“虚拟机”通常是指由虚拟机管理器(例如,超级管理程序)从计算硬件中提取出来的任何操作***环境。除此之外或作为另外一种选择,本文所述的模块和/或数据可在虚拟化层内驻留和/或执行。如本文所用,术语“虚拟化层”通常是指覆盖操作***环境和/或从操作***环境中提取出来的任何数据层和/或应用程序层。虚拟化层可由软件虚拟化解决方案(例如,文件***过滤器)管理,该软件虚拟化解决方案将虚拟化层呈现为如同它是底层基本操作***的一部分。例如,软件虚拟化解决方案可将最初定向至基本文件***和/或注册表内的位置的调用重定向至虚拟化层内的位置。
在一些实施例中,图1中的示例性***100的全部或部分可表示移动计算环境的部分。移动计算环境可由多种移动计算设备来实施,所述移动计算设备包括移动电话、平板电脑、电子书阅读器、个人数字助理、可穿戴计算设备(例如,具有头戴式显示器的计算设备、智能手表等),等等。在一些实施例中,移动计算环境可具有一个或多个显著特征,包括例如依赖电池供电、在任何给定时间只呈现一个前台应用程序、远程管理特征、触摸屏特征、(例如,由全球定位***、陀螺仪、加速计等提供的)位置和移动数据、用于限制对***级配置的修改和/或限制第三方软件检查其他应用程序的行为的能力的受限平台、用于限制应用程序的安装(例如,仅限于安装来源于经批准的应用程序商店的应用程序)的控制设备,等等。本文所述的各种功能可被提供用于移动计算环境和/或可与移动计算环境交互。
另外,图1中的示例性***100的全部或部分可表示一个或多个信息管理***的部分,与一个或多个信息管理***交互,消费由一个或多个信息管理***产生的数据,且/或产生被一个或多个信息管理***消费的数据。如本文所用,术语“信息管理”可以是指数据的保护、组织和/或存储。信息管理***的示例可包括但不限于存储***、备份***、存档***、复制***、高可用性***、数据搜索***、虚拟化***等。
在一些实施方案中,图1中的示例性***100的全部或部分可表示一个或多个信息安全***的部分,产生受一个或多个信息安全***保护的数据,且/或与一个或多个信息安全***通信。如本文所用,术语“信息安全”可以是指对受保护数据的访问控制。信息安全***的示例可包括但不限于提供受管理的安全服务的***、数据丢失防护***、身份验证***、访问控制***、加密***、策略遵循***、入侵检测与防护***、电子发现***等。
根据一些实施例,图1中的示例性***100的全部或部分可表示一个或多个端点安全***的部分,与一个或多个端点安全***通信,且/或从一个或多个端点安全***接收保护。如本文所用,术语“端点安全”可以是指保护端点***以避免未授权和/或非法的使用、访问和/或控制。端点保护***的示例可包括但不限于反恶意软件***、用户验证***、加密***、保密***、垃圾邮件过滤服务等。
本文描述和/或示出的过程参数和步骤序列仅以举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不必以示出或讨论的顺序来执行。本文描述和/或示出的各种示例性方法也可省略本文描述或示出的步骤中的一个或多个,或除了所公开的那些步骤之外还包括另外的步骤。
虽然本文已经在全功能计算***的背景中描述和/或示出了各种实施方案,但这些示例性实施方案中的一个或多个可作为各种形式的程序产品来分配,而不考虑用于实际开展分配的计算机可读介质的特定类型。本文所公开的实施方案还可使用执行某些任务的软件模块来实施。这些软件模块可包括脚本文件、批文件或可存储在计算机可读存储介质上或计算***中的其他可执行文件。在一些实施方案中,这些软件模块可将计算***配置为执行本文所公开的示例性实施方案中的一个或多个。
此外,本文所述的模块中的一个或多个可将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,本文所列举的模型中的一者或多者可接收要转换的模糊化的数据块、将数据块转换成未模糊化的数据块、将转换的结果输出到服务器、使用转换的结果来创建模糊化的块和未模糊化的数据之间的映射,并且将转换的结果存储到服务器。除此之外或作为另外一种选择,本文所述的模块中的一个或多个可通过在计算设备上执行、在计算设备上存储数据和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。
前文的描述旨在使本领域的其他技术人员能够最好地利用本文所公开的示例性实施方案的各个方面。该示例性描述并非旨在是详尽的或限于所公开的任何确切形式。在不脱离本公开的精神和范围的前提下,可进行许多修改和变化。本文所公开的实施方案在所有方面均应被视为示例性的而非限制性的。应参考所附权利要求及其等同形式来确定本公开的范围。
除非另有说明,否则本说明书和权利要求中所用的术语“连接到”和“联接到”(以及它们的衍生形式)应被理解为既允许直接的连接,又允许间接(即,经由其他元件或组件)的连接。此外,本说明书和权利要求中所用的术语“一”或“一个”应被理解为意指“至少一个…”。最后,为了便于使用,本说明书和权利要求中所用的术语“包括”和“具有”(以及它们的衍生形式)与词语“包含”可互换并且与词语“包含”具有相同含义。

Claims (12)

1.一种用于在不使用数据备份应用程序执行完整的恢复操作的情况下允许从由所述数据备份应用程序创建的不透明数据备份流恢复数据的计算机实现的方法,所述方法的至少一部分由包括至少一个处理器的计算设备执行,所述方法包括:
从客户端启动对不透明数据备份流的虚拟恢复,所述不透明数据备份流托管在服务器上并且包括具有已修改的标头和尾部的数据的块,所述不透明数据备份流被设计为由创建所述不透明数据备份流的数据备份应用程序唯一地解析,其中所述虚拟恢复避免了将来自所述不透明数据备份流的完全恢复的一组数据存储在所述客户端或所述服务器上,其中,所述不透明数据备份流包括部分或完全模糊化数据的存储的数据,并且其中,已修改的标头和尾部包括针对具有已修改的标头和尾部的数据的块的相对数据块地址和块校验和的改变;
针对所述不透明数据备份流中的每个数据的块:
通过检查所述块并识别块标头和块尾部,基于已被恢复的所述块在所述客户端上的版本来确定所述块的原始标头和尾部;
将所述块的所述原始标头和尾部从所述客户端发送到所述服务器;以及
在所述服务器处创建所述数据的块在所述服务器上的所述不透明数据备份流中的位置与所述块的所述原始标头和尾部之间的映射;以及
在不使用所述数据备份应用程序执行完整的恢复操作的情况下,通过使用所述映射以恢复包括所述不透明数据备份流中的所述数据的所述块的所述原始标头和尾部来恢复所述不透明数据备份流中的数据。
2.根据权利要求1所述的计算机实现的方法,还包括:
在所述服务器处创建所述服务器上的数据的每个块的散列;
在所述客户端处创建在所述虚拟恢复期间所述客户端所见的所述数据的块的散列;以及
针对所述客户端所见的数据的每个块:
查询所述服务器以确定所述服务器是否具有所述数据的块的所述散列的副本;以及
如果所述服务器不具有所述散列的所述副本,将所述数据的块发送到所述服务器。
3.根据权利要求1所述的计算机实现的方法,其中创建所述数据的块的散列包括创建排除所述标头和尾部的所述数据的块的一部分的散列。
4.根据权利要求1所述的计算机实现的方法,其中:
所述数据备份应用程序不被配置为从所述不透明数据备份流执行部分恢复;以及
在不使用所述数据备份应用程序的情况下恢复所述数据包括恢复所述不透明数据备份流的子组,同时排除所述不透明数据备份流的一部分。
5.根据权利要求1所述的计算机实现的方法,其中恢复所述不透明数据备份流中的所述数据包括基于所述不透明数据备份流创建差异备份。
6.根据权利要求1所述的计算机实现的方法,响应于对所述不透明数据备份流的修改来启动所述虚拟恢复。
7.一种用于在不使用数据备份应用程序执行完整的恢复操作的情况下允许从由所述数据备份应用程序创建的不透明数据备份流恢复数据的***,所述***包括:
用于从客户端启动对不透明数据备份流的虚拟恢复的装置,所述不透明数据备份流托管在服务器上并且包括具有已修改的标头和尾部的数据的块,所述不透明数据备份流被设计为由创建所述不透明数据备份流的数据备份应用程序唯一地解析,其中所述虚拟恢复避免了将来自所述不透明数据备份流的完全恢复的一组数据存储在所述客户端或所述服务器上,其中,所述不透明数据备份流包括部分或完全模糊化数据的存储的数据,并且其中,已修改的标头和尾部包括针对具有已修改的标头和尾部的数据的块的相对数据块地址和块校验和的改变;
用于针对所述不透明数据备份流中的每个块,通过检查所述块并识别块标头和块尾部,基于已被恢复的所述块在所述客户端上的版本来确定所述块的原始标头和尾部的装置;
用于将所述块的所述原始标头和尾部从所述客户端发送到所述服务器的装置;
用于在所述服务器处创建所述数据的块在所述服务器上的所述不透明数据备份流中的位置与所述块的所述原始标头和尾部之间的映射的装置;
用于在不使用所述数据备份应用程序执行完整的恢复操作的情况下,通过使用所述映射以恢复包括所述不透明数据备份流中的所述数据的所述块的所述原始标头和尾部来恢复所述不透明数据备份流中的数据的装置;以及
至少一个物理处理器,所述至少一个物理处理器被配置为执行用于启动的所述装置、用于确定的所述装置、用于发送的所述装置、用于创建的所述装置以及用于恢复的所述装置。
8.根据权利要求7所述的***,其中:
用于创建的所述装置在所述服务器处创建所述服务器上的数据的每个块的散列;
用于确定的所述装置在所述客户端处创建在所述虚拟恢复期间所述客户端所见的所述数据的块的散列;以及
针对所述客户端所见的数据的每个块,用于发送的所述装置查询所述服务器以确定所述服务器是否具有所述数据的块的所述散列的副本,如果所述服务器不具有所述散列的所述副本,将所述数据的块发送到所述服务器。
9.根据权利要求7所述的***,其中
用于创建的所述装置通过创建排除所述标头和尾部的所述数据的块的一部分的散列来创建所述数据的块的散列;以及
用于确定的所述装置通过创建排除所述标头和尾部的所述数据的块的一部分的散列来创建所述数据的块的散列。
10.根据权利要求7所述的***,其中:
所述数据备份应用程序不被配置为从所述不透明数据备份流执行部分恢复;以及
用于恢复的所述装置在不使用所述数据备份应用程序的情况下通过恢复所述不透明数据备份流的子组来恢复所述数据,同时排除所述不透明数据备份流的一部分。
11.根据权利要求7所述的***,其中用于恢复的所述装置通过基于所述不透明数据备份流创建差异备份来恢复所述不透明数据备份流中的所述数据。
12.根据权利要求7所述的***,用于启动的所述装置响应于对所述不透明数据备份流的修改来启动所述虚拟恢复。
CN201680052857.5A 2015-09-29 2016-09-26 用于从不透明数据备份流恢复数据的***和方法 Active CN108027757B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
IN3107/DEL/2015 2015-09-29
IN3107DE2015 2015-09-29
IN3148/DEL/2015 2015-09-30
IN3148DE2015 2015-09-30
US14/965,249 US9979785B2 (en) 2015-09-29 2015-12-10 Systems and methods for restoring data from opaque data backup streams
US14/965249 2015-12-10
PCT/US2016/053848 WO2017058736A1 (en) 2015-09-29 2016-09-26 Systems and methods for restoring data from opaque data backup streams

Publications (2)

Publication Number Publication Date
CN108027757A CN108027757A (zh) 2018-05-11
CN108027757B true CN108027757B (zh) 2022-05-10

Family

ID=58407492

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680052857.5A Active CN108027757B (zh) 2015-09-29 2016-09-26 用于从不透明数据备份流恢复数据的***和方法

Country Status (5)

Country Link
US (1) US9979785B2 (zh)
EP (1) EP3356941B1 (zh)
JP (1) JP6589054B2 (zh)
CN (1) CN108027757B (zh)
WO (1) WO2017058736A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9766987B2 (en) 2013-01-11 2017-09-19 Commvault Systems, Inc. Table level database restore in a data storage system
US20160210306A1 (en) 2015-01-15 2016-07-21 Commvault Systems, Inc. Managing structured data in a data storage system
US10108687B2 (en) 2015-01-21 2018-10-23 Commvault Systems, Inc. Database protection using block-level mapping
US9904598B2 (en) 2015-04-21 2018-02-27 Commvault Systems, Inc. Content-independent and database management system-independent synthetic full backup of a database based on snapshot technology
US10949311B2 (en) * 2018-02-15 2021-03-16 Wipro Limited Method and system for restoring historic data of an enterprise
US11455409B2 (en) * 2018-05-21 2022-09-27 Pure Storage, Inc. Storage layer data obfuscation
US11675503B1 (en) 2018-05-21 2023-06-13 Pure Storage, Inc. Role-based data access
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
US11269732B2 (en) 2019-03-12 2022-03-08 Commvault Systems, Inc. Managing structured data in a data storage system
US11093380B1 (en) * 2020-05-29 2021-08-17 EMC IP Holding Company LLC Automated testing of backup component upgrades within a data protection environment
US11599291B2 (en) * 2021-03-05 2023-03-07 EMC IP Holding Company LLC Optimized data restore from object storage for directly written data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038594A (zh) * 2006-03-09 2007-09-19 国际商业机器公司 使用不透明对象属性来控制增量备份的方法和***
CN102737715A (zh) * 2011-04-02 2012-10-17 航天信息股份有限公司 用于nor闪存的数据掉电保护方法
CN104813276A (zh) * 2012-11-26 2015-07-29 亚马逊科技公司 从备份***流式恢复数据库
CN104937570A (zh) * 2013-01-29 2015-09-23 惠普发展公司,有限责任合伙企业 从原始图像备份数据恢复文件***对象

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732293B1 (en) * 1998-03-16 2004-05-04 Symantec Corporation Method, software and apparatus for recovering and recycling data in conjunction with an operating system
US8949471B2 (en) * 2000-11-02 2015-02-03 Oracle America, Inc. TCP/UDP acceleration
TW561358B (en) * 2001-01-11 2003-11-11 Force Corp Z File switch and switched file system
US7296237B2 (en) * 2002-03-15 2007-11-13 Shinkuro, Inc. Data replication system and method
US7398272B2 (en) * 2003-03-24 2008-07-08 Bigfix, Inc. Enterprise console
US20060265489A1 (en) * 2005-02-01 2006-11-23 Moore James F Disaster management using an enhanced syndication platform
US7634627B1 (en) 2005-08-19 2009-12-15 Symantec Operating Corporation System and method for performing extent level backups that support single file restores
US8856289B2 (en) * 2006-12-29 2014-10-07 Prodea Systems, Inc. Subscription management of applications and services provided through user premises gateway devices
US8655939B2 (en) * 2007-01-05 2014-02-18 Digital Doors, Inc. Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor
US8706914B2 (en) * 2007-04-23 2014-04-22 David D. Duchesneau Computing infrastructure
US8577845B2 (en) 2008-06-13 2013-11-05 Symantec Operating Corporation Remote, granular restore from full virtual machine backup
US20100037056A1 (en) * 2008-08-07 2010-02-11 Follis Benjamin D Method to support privacy preserving secure data management in archival systems
US9244779B2 (en) 2010-09-30 2016-01-26 Commvault Systems, Inc. Data recovery operations, such as recovery from modified network data management protocol data
US9122692B1 (en) 2011-09-15 2015-09-01 Symantec Corporation Systems and methods for reducing file-system fragmentation when restoring block-level backups utilizing an identification module, an optimization module, and a restore module
US8990162B1 (en) 2011-09-30 2015-03-24 Emc Corporation Metadata generation for incremental backup
US9582297B2 (en) * 2013-05-16 2017-02-28 Vmware, Inc. Policy-based data placement in a virtualized computing environment
WO2015074033A1 (en) * 2013-11-18 2015-05-21 Madhav Mutalik Copy data techniques
US9348703B1 (en) * 2013-12-23 2016-05-24 Emc Corporation Image recovery from volume image files
WO2016117022A1 (ja) * 2015-01-20 2016-07-28 株式会社日立製作所 ログの管理方法及び計算機システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038594A (zh) * 2006-03-09 2007-09-19 国际商业机器公司 使用不透明对象属性来控制增量备份的方法和***
CN102737715A (zh) * 2011-04-02 2012-10-17 航天信息股份有限公司 用于nor闪存的数据掉电保护方法
CN104813276A (zh) * 2012-11-26 2015-07-29 亚马逊科技公司 从备份***流式恢复数据库
CN104937570A (zh) * 2013-01-29 2015-09-23 惠普发展公司,有限责任合伙企业 从原始图像备份数据恢复文件***对象

Also Published As

Publication number Publication date
EP3356941A1 (en) 2018-08-08
JP6589054B2 (ja) 2019-10-09
WO2017058736A1 (en) 2017-04-06
CN108027757A (zh) 2018-05-11
JP2018537749A (ja) 2018-12-20
US9979785B2 (en) 2018-05-22
EP3356941B1 (en) 2022-12-07
US20170093972A1 (en) 2017-03-30

Similar Documents

Publication Publication Date Title
CN108027757B (zh) 用于从不透明数据备份流恢复数据的***和方法
US9424136B1 (en) Systems and methods for creating optimized synthetic backup images
EP3374922B1 (en) Systems and methods for protecting backed-up data from ransomware attacks
US9430332B1 (en) Systems and methods for enabling efficient access to incremental backups
US9298724B1 (en) Systems and methods for preserving deduplication efforts after backup-job failures
US9256612B1 (en) Systems and methods for managing references in deduplicating data systems
CN108369487B (zh) 用于在去重虚拟文件***中拍摄快照的***和方法
US10127119B1 (en) Systems and methods for modifying track logs during restore processes
US9524215B1 (en) Systems and methods for managing virtual machine backups
US11061603B1 (en) Systems and methods for switching replication modes in a volume replication system
US11113152B1 (en) Systems and methods for managing file backup
US9003139B1 (en) Systems and methods for recovering virtual machines after disaster scenarios
US8565545B1 (en) Systems and methods for restoring images
JP6677803B2 (ja) 頻繁に使用されるイメージセグメントをキャッシュからプロビジョニングするためのシステム及び方法
US9753810B1 (en) Systems and methods for backing up virtual machines deployed in virtual storage area networks
US9477677B1 (en) Systems and methods for parallel content-defined data chunking
US10366076B1 (en) Systems and methods for repairing corrupted data segments in deduplicated data systems
US9830230B1 (en) Systems and methods for storing updated storage stack summaries
US10372607B2 (en) Systems and methods for improving the efficiency of point-in-time representations of databases
US9836515B1 (en) Systems and methods for adding active volumes to existing replication configurations
US10002050B1 (en) Systems and methods for improving rehydration performance in data deduplication systems
US10437683B1 (en) Systems and methods for protecting data affected by system changes
US9424189B1 (en) Systems and methods for mitigating write-back caching failures
US10176055B1 (en) Systems and methods for generating full backups of applications
US9852200B1 (en) Systems and methods for restoring data files

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant