CN103548003B - 用于提高去重复系统备份性能的客户端侧指纹缓存的方法和系统 - Google Patents
用于提高去重复系统备份性能的客户端侧指纹缓存的方法和系统 Download PDFInfo
- Publication number
- CN103548003B CN103548003B CN201280008047.1A CN201280008047A CN103548003B CN 103548003 B CN103548003 B CN 103548003B CN 201280008047 A CN201280008047 A CN 201280008047A CN 103548003 B CN103548003 B CN 103548003B
- Authority
- CN
- China
- Prior art keywords
- data segment
- data
- data object
- deduplication server
- cache
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012545 processing Methods 0.000 claims abstract description 61
- 230000000694 effects Effects 0.000 claims abstract description 26
- 230000004044 response Effects 0.000 claims description 12
- 230000005055 memory storage Effects 0.000 claims description 2
- 241000406668 Loxodonta cyclotis Species 0.000 claims 1
- 230000008569 process Effects 0.000 description 24
- 238000007726 management method Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000002377 Fourier profilometry Methods 0.000 description 4
- 238000000151 deposition Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000005553 drilling Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
在此提供了一种用于在客户端高速缓存中缓存指纹的系统和方法。对包括一组数据段并描述备份处理的数据对象进行识别。此后,向去重复服务器发出引用该数据对象的请求,以请求将任务标识符添加至该数据对象。如果去重复服务器能够成功地向该数据对象添加任务标识符,那么在位于客户端系统内的高速缓存中将活动的标识符添加至该组数据段的每一个数据段。
Description
发明领域
本发明涉及去重复系统备份,并且更具体地涉及缓存指纹从而提高去重复备份性能。
相关技术说明
进行备份通常包括备份例如文件形式的数据流。这些文件可以分解为多个数据单元,例如数据段。在这些数据中常常存在一定程度的重复,所以当前的(备份)策略采用去重复技术。这些备份处理包括确定去重复服务器是否具有目前存储在备份中的数据段。另外,备份处理还可以包括确定去重复服务器是否将在备份处理的整个生命期中将这些数据段的每一个保存在存储器中。
这些确定通常通过客户端和去重复服务器所发送和接收的查询或消息来进行。这些查询和消息例如通过任意网络传送,其中每个查询和/或消息转换为每个备份操作的附加时间和网络成本。
因此,令人希望的是在备份处理中将客户端系统和去重复服务器之间交换的全部查询和消息的数量最小化,以便加快备份处理的速度、最小化网络成本、并减少服务器上的额外负载,同时确保在这两个系统之间不发生数据丢失。
发明概述
在此披露了各种用于在客户端处缓存指纹的系统和方法。例如,一种方法包括识别一个第一数据对象,该对象包括一组数据段。该第一数据对象用于描述一个备份处理。一旦识别,向一个去重复服务器做出请求以便请求将一个活动任务标识符添加到该第一数据对象。当做出时这种请求包括对该第一数据对象的引用。如果该去重复服务器能够成功地向该第一数据对象添加一个任务标识符,那么在位于一个客户端系统内的一个高速缓存中将一个活动标识符添加至该组数据段的每个数据段。在一个实施例中,将一个活动标识符添加至对应于该组数据段中每个数据段的一个引用列表。
在另一个实施例中,响应于该客户端系统的查询,从该去重复服务器接收该第一数据对象。该查询是针对一个数据对象的查询,该数据对象包括针对该组数据段的一个指纹匹配。这种类型的查询在对该客户端系统进行一次初始完整备份之前执行。
该方法还包括在将该活动标识符添加至该每个数据段之后对该客户端系统执行一次备份处理。在一个实施例中,确定该备份处理所引用的一个数据段是否需要发送至该去重复服务器。这种确定是通过确定针对该数据段的一个指纹是否位于该高速缓存中以及确定该高速缓存是否具有针对该数据段的一个活动标识符而做出。
在另一个实施例中,当成功地完成该备份处理时,创建该备份处理的一个记录。该记录包括备份策略信息、该备份处理所引用的一个数据段列表、该数据对象的一个指纹以及一个备份类型指示器中的至少一个。
在另一个实施例中,当成功地完成该备份处理时,接收描述该备份处理的一个数据对象,将针对该数据对象的一个指纹添加至对应于该数据对象中每个数据段的一个引用列表,并且从该数据对象移除一个任务标识符。
一种系统的示例可以包括一个或多个处理器和连接至这些处理器的内存。该内存存储了可用于执行类似上述一种方法的程序指令。类似地,这些程序指令存储在一个计算机可读存储介质上。
前述内容是一个概述,因此不可避免地包含细节的简化、概括以及省略;因而本领域技术人员将认识到概述仅仅是说明性的并且在任何情况下不用于限制。如权利要求所唯一定义的本发明的其他方面、发明特征和优点在以下提供的非限制性详细描述中将变得明显。
附图简述
通过参考附图,本发明可以得到更好的理解,并且其众多目标、特征以及优点对本领域的普通技术人员是明显的。
图1的方框图根据本发明的一个实施例展示了缓存客户端上的指纹的一个系统。
图2A根据本发明的一个实施例展示了支持指纹高速缓存的一个客户端系统的架构。
图2B根据本发明的一个实施例展示了一个客户端系统所引用的示例性内存高速缓存。
图3A根据本发明的一个实施例展示了一个去重复服务器的架构。
图3B根据本发明的一个实施例展示了一个去重复服务器引用的示例性内存高速缓存。
图4的流程图根据本发明的一个实施例展示了缓存一个客户端系统上的指纹的示例过程。
图5A的流程图根据本发明的一个实施例展示了在客户端系统上预填入一个高速缓存的示例过程。
图5B的流程图根据本发明的一个实施例展示了在客户端系统上预填入一个高速缓存的另一个示例过程。
图6的流程图根据本发明的一个实施例展示了在对一个客户端系统进行备份之前执行高速缓存一致性检查的示例过程。
图7的流程图根据本发明的一个实施例展示了利用一个客户端系统上的高速缓存进行备份的示例过程。
图8是根据本发明的一个实施例的一种计算系统的方框图。
图9是根据本发明的一个实施例的一种网络系统的方框图。
尽管易于对本发明做出各种修改和替代,但在附图和详细说明中将本发明的具体实施例作为示例来提供。应当理解的是,附图和详细说明不用于将本发明限制于所披露的具体形式。相反,本发明应该涵盖落在所附权利要求定义的本发明的精神和范围之内的所有修改形式、等同形式以及替代形式。
详细说明
图1的方框图展示了一种用于在客户端处缓存指纹的系统。指纹是为给定的数据段而产生的值。通常,这种指纹值基本上需要对于每个数据段是唯一的,并因此将数据段彼此区别开。指纹的一个示例是散列值。例如,散列算法(例如消息摘要算法5(MD5)、安全散列算法1(SHA-1)和安全散列算法256(SHA-256)等)可用于产生这些值。图1展示了一种用于在客户端处缓存这些指纹的系统。如图所示,图1包括N个客户端110,示为客户端110(1)、客户端110(2)…客户端110(N),并且进一步描绘了网络120和去重复服务器130。
客户端110总体上代表任意类型或形式的计算装置。客户端110的示例可以包括笔记本电脑、台式机、服务器和/或这些装置中的一个或多个的组合。客户端110可以采用完整或增量备份形式来发起备份处理。备份处理(不论是完整的还是增量的)可以由数据对象描述。数据对象对应于备份镜像,备份镜像包括在完整或增量备份处理中将要备份的数据段。
在备份处理中,客户端110可以包括有待备份的一组数据内的重复数据。另外,如果多次备份一组数据,未发生变化的数据还产生了预先备份的数据的副本。为了防止从一个客户端或从多个客户端备份重复数据,备份系统可以实施去重复操作(例如,去除数据的重复副本的处理)以便在备份客户端系统的数据时保留存储空间。在这种情况中,去重复的备份数据可以存储在去重复服务器130中。去重复服务器130可以包括备份系统(备份很多不同客户端系统的数据)或是其一部分。
网络120帮助客户端110和去重复服务器130之间出现的通信和数据传送。这种通信可以利用有线或无线连接来进行。网络120的示例可以包括广域网(WAN)、局域网(LAN)、存储区域网(SAN)、互联网、或这些网络的某种组合。
在备份操作过程中客户端110和去重复服务器130之间交换的每次通信都转换为操作成本、管理成本和需要完成备份的总时间。因此,将执行备份操作所需要的这些往返通信的数量最小化是可取的。
出现在客户端110之一与去重复服务器130之间的数据通信的数量可以通过使用一种预填入技术(在客户端系统上进行初始完整备份之前执行)得到最小化以便将指纹预先填入客户端的高速缓存,这些指纹对应于在去重复服务器130内存储的数据段并且在备份处理过程中具有数据保护。通过这样来做,客户端系统可以不需要向去重复服务器发送进一步的查询(目的是知道是否数据段目前存储在去重复服务器中以及是否该数据段在备份处理中受到保护以免无意删除)。避免对每个数据段的这些附加查询转换为需要对客户端系统执行初始备份操作的总成本和时间的显著缩减。
另外,在客户端和去重复服务器之间交换的数据通信还可以利用客户端的高速缓存的指纹内容来最小化,以便执行后续的备份处理(例如,对客户端的初始备份之后执行的完整或增量备份)。在备份操作过程中客户端可以使用客户端的指纹高速缓存中的指纹之前,可以执行高速缓存一致性检查以确保在备份操作过程中备份操作所引用的数据段将受到去重复服务器的保护(例如,不删除)。这种方法可用于保护数据对象和数据对象中的对应数据段。这种保护允许客户端跟踪在备份处理过程中哪些数据段目前存储在去重复服务器上并受到保护以免无意删除。因此,客户端可能不需要查询去重复服务器以确定是否去重复服务器具有已经存储的数据段或者(如果是这样的话)是否去重复服务器将在备份操作的整个生命期中保存数据段。避免对每个数据段的这些附加查询还显著地减少了执行备份操作的总成本以及需要在客户端系统上进行备份的时间量。
图2A展示了支持指纹缓存的客户端系统的架构。客户端系统110包括内存205(由备份处理模块210、接收模块220、高速缓存处理模块230以及内存高速缓存240组成)和磁盘250(由数据存储器260和磁盘高速缓存270组成)。
备份处理模块210协调对在客户端110处存储的数据的一些或全部所执行的备份处理。对客户端110执行的备份处理可以是完整备份或增量备份。执行完整备份是为了备份数据存储器260中的给定数据子集(或全部数据)。相比之下,执行增量备份是为了备份自从前一次完整或增量备份以来已经发生变化的部分数据。
在备份处理过程中,备份处理模块210与接收模块220和高速缓存处理模块230一起从数据存储器260获取备份数据、识别来自每个数据文件的数据段、查询去重复服务器、搜索客户端的高速缓存(例如,内存高速缓存240和/或磁盘高速缓存270)以用于指纹和数据对象信息、并根据需要添加或删除高速缓存条项。
接收模块220收集从去重复服务器接收到的信息。这种信息可以包括指纹列表、指示数据对象存在的消息、数据段、和/或去重复服务器处的数据段的指纹、或指示数据对象和/或数据段将在备份处理的整个生命期中受到保护的消息。这种信息可以响应于客户端110所发送的查询来接收并且可以在客户端系统上执行备份处理之前、期间或之后来接收。
高速缓存处理模块230创建、管理并更新内存高速缓存240和磁盘高速缓存270。通常,高速缓存处理模块230与内存高速缓存240一起工作以便对客户端110执行备份操作。典型地,高速缓存处理模块230不依赖于磁盘高速缓存270,因为磁盘高速缓存比内存高速缓存240慢很多。然而,内存高速缓存的副本保存在磁盘高速缓存270上,以确保在客户端110出现故障或掉电时高速缓存内容不会丢失。内存高速缓存240的内容可以在客户端110出现故障或掉电期间擦除,因此在校正客户端110的故障或其重启时不可利用。在这种情况下,内存高速缓存240能够在恢复备份操作之前或结合高速缓存处理模块230开始新的备份操作之前从磁盘高速缓存270获取高速缓存内容的副本。
磁盘250是用于客户端110的数据存储机构。磁盘250的示例可以包括硬盘驱动器。磁盘250被描绘为包括数据存储器260以及磁盘高速缓存270。另外,磁盘250还可以包括其他文件,这些文件可由在客户端110上执行的操作系统使用。
数据存储器260包括将要备份的数据文件流。例如,完整备份可以包括备份10个数据文件,所有这些文件可以存储在数据存储器260中。存储在数据存储器260中的这些数据文件的一些可以包括数据的副本。通过存储对相同数据集执行的多次备份的数据也可以产生数据的副本。这样做是可行的,例如如果对相同数据集执行多次备份并且这些数据的一些仍未变化。在一些实施例中,数据存储器260还可以将数据文件的分解部分存储为独立的数据段。
图2B展示了由客户端系统所引用的示例性内存高速缓存。如图所示,内存高速缓存240包括数据对象记录242、数据段信息245和引用列表246。
数据对象记录242包含数据对象列表。数据对象通常用于描述对客户端系统执行的不同备份。例如,数据对象可以针对于对客户端系统执行的每次完整备份和针对于对该客户端系统执行的每次增量备份而存在。如图所示,数据对象记录242包括对客户端系统执行的两次不同备份的记录,DO1记录243和DO2记录244。DO1记录243描述了对客户端系统执行的一次完整备份,而DO2记录244描述了对客户端系统执行的第二次完整备份。
DO1记录243和DO2记录244包括与活动状态、指纹值、每个数据对象的内容以及每个数据对象的策略信息相关的信息。活动状态信息用于指示哪些数据对象目前处于活动状态,因此在内存高速缓存清除过程中内存高速缓存240不应当擦除它们。在这种情况下,DO1是不活动的,而DO2是活动的。
数据对象内容是数据对象中的数据段的有序指纹列表。例如,数据对象内容中的第一指纹对应于数据对象内的第一数据段。数据对象指纹是产生自数据对象内容的指纹值。例如,该指纹值可以通过连接数据对象所表示的独立段的指纹值来计算。如图所示,DO1具有产生自其内容的DO1FP的数据对象指纹(例如,SO1、SO2、…、SO(N)的指纹,这些指纹描述DO1中的数据段)。类似地,DO2具有产生自其内容的DO2FP的数据对象指纹(例如,SO1、…、SO(N)的指纹,这些指纹描述DO2中的数据段)。指纹策略信息PL1和PL2分别用于描述DO1和DO2中每一个的备份策略信息。
数据段信息245保存各个数据段的指纹信息。这些指纹值可以采用多种不同方式计算。例如,指纹值可以通过对数据段的内容运行一种散列算法来计算。如图所示,数据段信息245包括数据段列表,其中每个数据段包括它的指纹值。例如,数据段信息245可以包括与N个数据段有关的信息,数据段1SO1具有指纹值FP1,第二数据段SO2具有指纹值FP2,以此类推。
引用列表246进一步分解成多个独立的引用列表,其中每个引用列表对应于各自的数据段,这些数据段与数据段信息245中的那些数据段相匹配。如图所示,引用列表246包括数据段1的独立引用列表(表示为SO1引用列表247)、数据段2的引用列表(表示为SO2引用列表248)、以及数据段(N)的引用列表(表示为SO(N)引用列表249)。
独立引用列表用于列出对特定数据段进行引用的数据对象。例如,如果DO1包含SO1、SO2、…、SO(N),那么对DO1的引用被添加到SO1引用列表、SO2引用列表、…、以及SO(N)引用列表。类似地,如果DO2包含SO1、…、SO(N),那么对DO2的引用被添加到SO1引用列表、…、以及SO(N)引用列表。
在一个实施例中,引用列表可用于跟踪并识别引用不同数据段的数据对象。每当从高速缓存中移除数据对象以试图清理高速缓存并因此为未来的数据对象腾出空间时,也可以从各个引用列表中移除对数据对象的引用。因此,如果DO1和DO2从内存高速缓存250中移除(例如,因为两个DO不再是活动的),将从SO1引用列表中移除对DO1和DO2的引用。一旦数据段引用列表为空,那么还可以从内存高速缓存250移除段引用列表。这两种移除是在内存高速缓存240中执行的垃圾回收处理的示例。
垃圾回收是一种内存管理处理,执行这种处理是试图通过回收应用程序不再使用的对象所占据的内存来最大化计算机资源。对客户端的高速缓存进行的垃圾回收可以在频率上发生变化。例如,客户端高速缓存可以在该客户端高速缓存正达到其容量极限时进行清理或者可以在对客户端系统进行两次成功的完整备份之后进行清理。
尽管图2B展示了内存高速缓存240的内容,但磁盘高速缓存270还包括例如内存高速缓存240这样的内容,从而使得磁盘高速缓存270能够充当内存高速缓存240的防故障装置。这帮助确保内存高速缓存内容保存在其他地方,并因此在客户端110的故障或停机时可用来复制到内存高速缓存。
图3A展示了一个去重复服务器。去重复服务器130包括备份处理模块310(它包括高速缓存处理模块320)、去重复模块330、去重复数据存储器340以及存储管理模块350。
备份处理模块310与高速缓存处理模块320一起与其他客户端系统进行协调,以便能够进行客户端系统的备份。例如,备份处理模块320处理来自客户端系统的查询的接收和/或从去重复服务器到客户端系统的响应或消息的传输。从去重复服务器到客户端系统的响应或消息可以包括匹配指纹列表、指示数据段和/或数据对象存在于去重复服务器中的消息、和/或指示特定的数据段和/或数据对象在备份处理过程中将得到保护以免无意删除的消息。
高速缓存处理模块320引用存储管理模块350以确定哪些数据段、数据对象和/或数据段指纹存在于去重复服务器130中。存储管理模块350保存了与对每个客户端系统执行的数据对象、数据段和/或数据段指纹相关的信息。因此,存储管理模块350可以添加从客户端接收的信息(例如,数据对象、数据段、或数据段指纹)以更新它的信息或可以检索必要的信息以响应于客户端查询。
如果需要的话,去重复模块330移除从客户端系统接收的数据的副本。在一些实施例中,数据的副本可以由客户端系统来移除。在其他实施例中,如果客户端系统不移除数据的副本或如果客户端系统对相同的数据集进行多次备份处理,数据的副本可以存在,并且可以由去重复服务器130来接收。去重复模块330确定存在多少副本(如果有的话)并随后移除这些副本以确保只有一个单一的数据副本存储在去重复数据存储器340中。一旦去重复模块330对数据进行了去重复,去重复数据存储器340就存储数据的备份副本。
图3B展示了去重复服务器所引用的示例性内存管理模块。内存管理模块350包括数据对象记录351、数据段信息352和引用列表353。
数据对象记录351包括用于每个客户端系统的数据对象记录。如图所示,内存管理模块350包括客户端1、2、…、N的数据对象记录,示为客户端1DO记录354、客户端2DO记录355、…、客户端N DO记录356。数据对象记录反映了针对每个独立客户端系统的数据对象记录。因此,存储管理模块350包括对各个独立客户端系统所执行的全部完整和增量备份的数据对象记录。
数据段信息352包括每个独立数据段的指纹信息。如图所示,数据段信息352包括数据段1、2、…、N的列表(表示为SO1、SO2、…、SO(N))以及每个数据段的对应指纹值。通常,数据段信息352中的数据段列表包括在多个客户端的任意一个上使用的所有数据段。
引用列表353包括用于每个数据段的独立引用列表。如图所示,引用列表353包括数据段1、2、…、N的引用列表,表示为SO1引用列表357、SO2引用列表358、…、SO(N)引用列表359。存储管理模块350中的引用列表用于跟踪数据对象所引用的数据段。
图4的流程图展示了在客户端系统上缓存指纹的示例过程400。在此示例中,该过程开始于410,其中对客户端系统的高速缓存进行预填入。预填入出现在对客户端系统执行第一次完整备份之前。如何实施这种预填入的示例结合图5A和5B进行讨论。
接着,在420进行高速缓存一致性检查。执行高速缓存一致性检查是为了确保客户端高速缓存中包含的指纹目前存储在去重复服务器上并受到保护以免在备份处理过程中无意删除。一旦从去重复服务器接收到指纹存在和数据保护的确认,就可以在客户端高速缓存中将备份所引用的指纹设置为活动状态,以防止在客户端高速缓存上的指纹的无意删除。如果不执行这种高速缓存一致性检查,可能出现数据丢失。实施这种高速缓存一致性检查的方式的示例结合图6进行讨论。
在执行一致性检查之后,确定是否应该在430执行完整备份。如果将要执行完整备份,在440对客户端系统进行完整备份。否则,在450进行增量备份。
一旦完成了完整或增量备份,在460更新客户端的高速缓存。客户端的高速缓存在每次成功的备份操作之后进行更新,以指示与备份有关的各种信息。例如,可以在高速缓存中创建一条记录以识别代表该备份的数据对象、该数据对象的内容、所执行备份的类型(或完整的或增量的)、该备份的策略信息以及该备份的状态标识符(例如,活动标识符,以指示具体数据对象的备份处理是否完成或正在进行)。另外,相同的信息还可以传输并添加至去重复服务器。
作为垃圾回收处理的一部分,客户端的高速缓存可以进行清理以移除高速缓存内容的一些或全部。这种处理可以例如在对客户端系统成功地完成第二或后续完整备份之后或高速缓存正在达到其容量时进行。当决定哪些高速缓存条项(如果有的话)可以移除时,客户端将考虑数据对象的状态。如果数据对象是不活动的,该数据对象可以从高速缓存中移除。同样,如果段引用列表未引用任意数据对象,可以从高速缓存中移除该段引用列表。
在470,确定是否到达过程的末尾(例如,在不需要进一步的完整或增量备份的情况下)。如果未达到过程的末尾,该过程在420继续进行,其中进行高速缓存一致性检查以备下一次完整或增量备份使用。否则,该过程结束。
如所提及,高速缓存预填入是在执行客户端系统的初始备份之前进行的。通常,执行预填入是为了最小化从客户端系统发送至去重复服务器的查询以及为了最小化初始完整备份处理中从去重复服务器发送至客户端系统的响应数量。执行客户端高速缓存的预填入的两个示例性方式在图5A和5B中讨论。
图5A展示了对客户端高速缓存进行预填入的第一示例过程500。该过程开始于505,其中有待备份的数据段由客户端来识别。通常,备份数据流由一定数量的描述良好的数据单元(例如,一组文件)组成,这些数据单元将在备份处理过程中进行备份。这些文件分解成多个数据段。
在510,对这些数据段的一部分进行采样。执行采样处理是为了对一定数量的数据段进行采样。例如,对数据段进行采样的方式可以是选择将要备份的每个数据文件中的第一数据段。通常,采样率越高,从去重复服务器接收可能匹配的数据对象(例如,十分类似于将要备份的数据的数据对象)的概率越高。
一旦进行采样,为每个相应的数据段产生指纹,如515所示。可以基于数据段中的元数据和/或实际数据为数据段产生指纹。指纹生成算法的示例包括散列值,其中散列算法的应用不产生散列碰撞或统计学上的微小概率的这种碰撞。对于数据段而言,计算的指纹值应当是唯一的,并且也是有意使其唯一,因此对每个对应的数据段是可区分的。
在520,客户端查询去重复服务器以确定去重复服务器是否具有包含采样数据段的匹配指纹的数据对象。当去重复服务器接收到查询时,去重复服务器将搜索它的段引用列表以确定包含针对采样数据段的至少一些匹配指纹的任意数据对象是否存在,如525。在一些情况中,去重复服务器可能未发现包含针对所有采样数据段的指纹匹配的数据对象。在这种情况中,去重复服务器可能发现包含大部分分采样数据段的数据对象,并替代地使用该数据段对象。
根据本披露将认识到,数据对象的指纹发送至去重复服务器,并期望去重复服务器将具有包括数据段(具有匹配指纹)的数据对象,前提是假定相同的数据段已经由另一个客户端系统、由相同的客户端系统通过其他方式(例如,复制到移动存储装置)发送至去重复客户端系统、通过将该移动装置运送至于去重复服务器、或通过将数据备份至去重复服务器。在去重复服务器未发现具有任何匹配指纹的数据对象的情况下,指示这种情况的消息可以发送至客户端,并且预填入过程结束。
然而经常出现的是,去重复服务器会发现若干数据对象,这些数据对象具有在一个段引用列表中引用的一些匹配指纹。在这种情况中,去重复服务器接着可以选择一个或多个数据对象以返回到客户端。这可以通过存储具有匹配指纹的数据对象并找到包含最匹配的指纹的数据对象来执行。可替代地,去重复服务器可以简单地发送包括最常遇到的数据段的数据对象。然后以此方式识别的这个或这些数据对象发送至客户端系统。在530,客户端系统获取该数据对象。
此后,在535,客户端系统查询去重复服务器以便将对应于当前备份操作的任务标识符添加至对应的数据对象,以防止去重复服务器的无意删除。这种查询使得去重复服务器试图将任务标识符作为对这个或这些数据对象(对应于匹配的指纹)的临时引用进行添加。这种任务标识符要持续在整个备份操作过程中。例如,这种任务标识符可以与存储任务相关联,该存储任务至少部分地代表用于客户端和去重复服务器之间的客户端/服务器通信的会话,从而持续在该会话处于活动的整个时期中。每当去重复服务器向数据对象添加任务标识符时,去重复服务器都承诺保护该数据对象以及它的对应数据段以防止至少在备份处理过程中不被删除。还可以使用类似的处理保护各个数据段。
在540,确定去重复服务器是否已经成功地向这个或这些数据对象添加了任务标识符。如果去重复服务器不能向这个或这些数据对象添加任务标识符,在545处理过程将识别错误。可替代地,如果成功地向这个或这些数据对象添加了任务标识符,那么客户端可以向高速缓存添加数据对象和/或匹配的指纹并向数据对象和/或数据段引用列表添加活动标识符,如550中所示。一旦完成了该操作,此过程就结束。
图5B展示了对客户端高速缓存进行预填入的第二示例过程555。过程开始于560,其中客户端系统向去重复服务器发送某种形式的统计信息。统计信息可以包括与客户端或备份处理本身相关的信息。
在565,去重复服务器分析该统计信息并查找数据对象和/或由其他备份高度引用的数据段,并在570进行确定。高度引用的数据段可以包括例如去重复服务器上的常用数据段,该数据段也可以作为客户端备份数据集的一部分。当去重复服务器未发现任何数据对象和/或其他备份高度引用的数据段时,该过程结束。
相反,如果去重复服务器的确发现了数据对象和/或其他备份高度引用的数据段时,就将这些数据对象和/或对应于数据段的指纹发送至客户端系统,如575中所示。
此后,在580客户端系统查询去重复服务器以便向一个或多个对应的数据对象和/或数据段添加任务标识符,以防止去重复服务器导致的无意删除。在585,确定去重复服务器是否成功地向这个或这些数据对象和/或数据段添加了任务标识符。如果去重复服务器不能向这个或这些数据对象和/或这个或这些数据段添加任务标识符,在590该过程将识别错误。可替代地,如果成功地向这个或这些数据对象和/或这个或这些数据段添加了任务标识符,那么客户端可以向高速缓存添加数据对象和/或匹配的指纹并借助于数据段引用列表向这个或这些数据对象和/或这个或这些数据段添加活动的标识符,如595中所示。一旦完成了该操作,此过程就结束。
图6的流程图展示了对客户端系统进行备份之前执行高速缓存一致性检查的过程600的示例。高速缓存一致性检查是在对客户端系统进行任意备份处理之前执行的。
该过程开始于610,识别高速缓存中的数据对象和/或数据段。如果前一次备份已经对客户端系统执行过,在610识别与对该客户端系统执行的前一次完整和增量备份有关的数据对象。否则,如果未执行前一次备份,在610识别预填入过程中客户端系统接收的每个数据对象和/或数据段。
在620该过程继续进行,其中客户端系统请求去重复服务器向在610中识别的数据对象和/或数据段添加任务标识符。该请求可以通过向去重复服务器发送消息或查询来进行并且可以包括在备份处理的整个生命期中保持活动的数据对象和/或数据段的识别。
去重复服务器试图向数据对象和/或数据段添加任务标识符,如630中所示。如果客户端系统未从去重复服务器接收到任务标识符已经添加到数据对象和/或数据段的确认,该过程结束。
可替代地,如果客户端系统的确接收到去重复服务器已经向数据对象和/或数据段添加了任务标识符的确认,那么客户端系统通过向每个数据段引用列表添加活动标识符来标记每个相应的数据段,如640中所示。通过这样做,可以在客户端高速缓存和去重复服务器之间保持一致性。此时,该过程结束。接着通过引用高速缓存可以启动对客户端系统的增量或完整备份。
图7的流程图展示了利用客户端系统上的高速缓存执行备份操作的过程700的示例。该过程开始于710,其中识别有待备份的数据段。
一旦识别,在720可以计算对应于数据段的指纹。指纹通常基于数据段的内容来计算。指纹的示例是散列值。因为指纹是基于元数据和/或数据段的内容来计算的,每个数据段的指纹应当是唯一的并可区别于其他数据段的其他指纹,以便唯一地识别这些数据段。然而,如果数据段是一个数据段的副本,那么这两个数据段应当产生完全相同的指纹。
在730,客户端系统搜索它的高速缓存以确定是否在720计算的指纹与它的高速缓存中的指纹相同并确定是否匹配的指纹包括活动的标识符,如740中所示。客户端的高速缓存可以是空的或者可以包含预先或在前一次完整或增量备份处理中输入的指纹条项。
如果客户端的高速缓存处理模块确定相同的指纹存在于该高速缓存中并且包括活动的标识符,针对该具体数据段的分析就完成了并且在760可以接着进行分析附加的数据段(如果有的话)。相反,如果客户端的高速缓存处理模块确定在该高速缓存中未发现相同的指纹,那么在750客户端系统向去重复服务器发送相应的数据段。
接着,该过程在760继续进行以确定是否存在更多的数据段。如果存在更多的数据段,该过程返回到710以便开始分析下一个数据段。如果不存在另外的数据段,该过程在770继续进行,其中将备份处理的数据对象发送至去重复服务器。一旦接收到该数据对象,去重复服务器向每个数据段引用列表(对应于数据对象中的数据段)添加数据对象指纹,如780中所示。在790,最近完成的备份处理的任务标识符被认为已过期并因此从操作的去重复服务器引用列表中删除。然后该过程结束。
图8是适于实施以上描述的消息去重复的计算系统810的方框图。计算机系统810包括总线812,该总线将计算机系统810的主要子系统连接相互,例如中央处理器814、系统内存817(通常是RAM,但是还可以包括ROM、闪存RAM等,并且还可以包括实施像图2A中所示的高速缓存处理模块230的软件)、输入/输出控制器818、外部音频装置(如经由音频输出接口822的扬声器系统820)、外部装置(如经由显示适配器826的显示屏824)、串行端口828和830、键盘832(与键盘控制器833连接)、存储接口834、可操作用于接收软盘838的软盘驱动器837、可操作用于与光纤通道网络890相连接的主机总线适配器(HBA)接口卡835A、可操作用于连接到SCSI总线839上的主机总线适配器(HBA)接口卡835B、以及可操作用于接收光盘842的光盘驱动器840。还包括鼠标846(或其他点击装置,该装置经由串行端口828连接至总线812)、调制解调器847(经由串行端口830连接至总线812)、以及网络接口848(直接连接至总线812)。
如前所述,总线812允许中央处理器814与系统内存817之间的数据通信,该系统内存可以包括只读存储器(ROM)或闪存(均未示出)、以及随机存取存储器(RAM)(未示出)。RAM通常是加载操作系统和应用程序的主存储器。除其他代码之外,ROM或闪存可以包含基本输入输出系统(BIOS),该系统控制基本的硬件操作,例如与外围部件的交互。与计算机系统810共同驻留的多个应用程序通常存储在一种计算机可读介质上,如硬盘驱动器(例如,固定盘844)、光盘驱动器(例如,光盘驱动器840)、软盘单元837、或者其他存储介质,并且可以通过该计算机可读介质来访问这些应用程序。此外,当通过网络调制解调器847或接口848来访问时,应用程序可以是根据应用程序和数据通信技术进行调制的电子信号的形式。
如计算机系统810的其他存储器接口一样,存储器接口834可以连接至标准计算机可读介质用于信息的存储和/或检索,例如固定盘驱动器844。固定盘驱动器844可以是计算机系统810的一部分或可以是分离的并且可以通过其他接口系统来访问。调制解调器847可以通过一个电话链路提供到远程服务器上的直接连接、或者通过互联网服务提供商(ISP)提供到互联网的直接连接。网络接口848可以通过一个直接网络链路提供到一个远程服务器的直接连接、或者通过一个POP(存在点)提供到互联网的直接连接。网络接口848还可以使用无线技术提供此类连接,包括数字蜂窝电话连接、蜂窝数字包数据(CDPD)连接、数字卫星数据连接或类似的连接。
许多其他装置或子系统(未示出)可以以类似的方式(例如,文档扫描仪、数码照相机等)进行连接。相反,实施本披露并不要求图8中示出的所有装置都存在。装置和子系统可以以图8中所示的不同方式相互连接。计算机系统的操作在本领域中是易于了解的并且在本专利申请中不做详细讨论。实施本披露的代码可以存储在计算机可读存储介质上,例如系统内存817、固定盘844、光盘842或软盘838中的一个或多个。计算机系统810上提供的操作系统可以是 或另一种已知的操作系统。
另外,就本文描述的信号而言,本领域技术人员将认识到,信号可以从第一模块直接传递到第二模块,或可以在模块之间修改(例如,放大、衰减、延迟、锁存、缓冲、反转、滤波或以其他方式进行修改)信号。尽管以上所述实施例的信号的特征为从一个模块向下一个模块传输,但只要信号的信息和/或功能方面在模块之间进行传输,本披露的其他实施例就可以包括修改的信号以替代这种直接传输的信号。在某种程度上,在第二模块上输入的信号可以概念化为来源于第一信号的第二信号,而该第一信号输出自第一模块,这是因为所涉及的电路的物理限制(例如,不可避免地存在一些衰减和延迟)。因此,如本文所用,源自第一信号的第二信号包括第一信号或第一信号的任意修改形式,是由于电路限制还是由于经过其他电路元件并不会改变第一信号的信息和/或最终功能方面。
图9是示例性网络架构900的方框图,在该网络架构中客户端系统910、920和930以及服务器940和945可以连接至网络950。客户端系统910、920和930通常代表任意类型或形式的计算装置或系统,例如图8中的示例性计算系统810。
类似地,服务器940和945总体上代表被配置为用于提供不同的数据库服务和/或运行某种软件应用程序的计算装置或系统,例如应用程序服务器或数据库服务器。网络950总体上代表任何电信或计算机网络,包括例如:内部网、广域网(WAN)、局域网(LAN)、个人区域网(PAN)、或互联网。在一个示例中,客户端系统910、920和/或930和/或服务器940和/或945可以包括高速缓存处理模块230和320,如图2A和3A所示。
如图9所示,一个或多个存储装置960(1)-(N)可以直接附接至服务器940。类似地,一个或多个存储装置970(1)-(N)可以直接附接至服务器945。存储装置960(1)-(N)和存储装置970(1)-(N)总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或介质。在某些实施例中,存储装置960(1)-(N)和存储装置970(1)-(N)可代表被配置为用于使用不同协议(例如NFS、SMB、或CIFS)与服务器940和945进行通信的网络附联存储(NAS)装置。
服务器940和945还可以连接至存储区域网络(SAN)结构980。SAN结构980总体上代表能够协助多个存储装置之间通信的任意类型或形式的计算机网络或体系结构。SAN结构980可以协助服务器940和945与多个存储装置990(1)-(N)和/或一个智能存储器阵列995之间的通信。SAN结构980还可以通过网络950以及服务器940和945协助客户端系统910、920和930与存储装置990(1)-(N)和/或智能存储器阵列995之间的通信,其方式为装置990(1)-(N)和阵列995对客户端系统910、920和930呈现为本地附接的装置。与存储装置960(1)-(N)和存储装置970(1)-(N)一样,存储装置990(1)-(N)和存储阵列995总体上代表能够存储数据和/或其他计算机可读指令的任意类型或形式的存储装置或介质。
在某些实施例中,并且参照图8的示例性计算系统810,通信接口可用于在每个客户端系统910、920和930以及网络950之间提供连接性。客户端系统910、920和930能够利用例如网络浏览器或其他客户端软件来访问服务器940或945上的信息。这种软件可以允许客户端系统910、920和930访问由服务器940、服务器945、存储装置960(1)-(N)、存储装置970(1)-(N)、存储装置990(1)-(N)或智能存储器阵列995管理的数据。尽管图9描绘了使用网络(例如互联网)交换数据,但在此描述和/或展示的实施例不限于互联网或任意具体的基于网络的环境。
在至少一个实施例中,在此披露的示例性实施例中的一个或多个的全部或一部分可被编码为一种计算机程序并且由服务器940、服务器945、存储装置960(1)-(N)、存储装置970(1)-(N)、存储装置990(1)-(N)、智能存储阵列995、或它们中的任意组合加载并执行。在此披露的多个示例性实施例的一个或多个的全部或一部分还可以被编码为计算机程序,存储在服务器940中,由服务器945运行,并在网络950上分发给客户端系统910、920和930。
在一些实例中,图1、图2A-3B、图8和图9中的计算装置的所有或一部分可以代表云计算或基于网络的环境的多个部分。云计算环境可以通过互联网提供各种服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等)可以通过网络浏览器或其他的远程接口进行访问。在此所述的不同功能可以通过远程桌面环境或任何其他的基于云的计算环境来提供。
另外,在此所述的这些模块中的一个或多个可以将数据、物理装置、和/或物理装置的表示从一种形式转换到另一种形式。例如,图2A中的高速缓存处理模块230可以将数据段转换为指纹并且可以将指纹转换为高速缓存条项。相同方式可用于图3A中的高速缓存处理模块320。
尽管已经结合一些实施例描述了本发明,但本发明无意限制于本文提供的具体形式上。相反,本文意在涵盖可以合理地包括在所附权利要求定义的本发明的精神范围之内的这些替代形式、修改形式和等同形式。
Claims (15)
1.一种缓存方法,包括:
识别一个数据对象,其中
该数据对象包括要在备份处理期间备份的一组数据段;
向一个去重复服务器发送一条请求,其中
该请求包括请求该去重复服务器将任务标识符添加到存储在该去重复服务器处的该数据对象的副本,
该请求包括对该数据对象的一个引用,并且
该任务标识符向该数据对象的该副本的添加保护该数据对象的该副本以及存储在该去重复服务器处的该组数据段的副本免于在该备份处理期间从该去重复服务器被删除;以及
响应于确定该去重复服务器已经成功地向存储在该去重复服务器处的该数据对象的该副本添加该任务标识符,向存储在一个高速缓存中的该组数据段中的每个数据段添加活动标识符,其中
该高速缓存位于一个客户端系统处,并且
该活动标识符向该每个数据段的添加指示存储在该去重复服务器处的该每个数据段的对应副本在该备份处理期间将被保持在该去重复服务器处。
2.如权利要求1所述的方法,进一步包括:
接收该数据对象,其中
该数据对象从该去重复服务器接收,以响应于来自该客户端系统的一个查询,
该查询包括针对一个数据对象的查询,该数据对象包括针对该组数据段的一个指纹匹配,并且
该查询在进行该客户端系统的一次初始完整备份之前执行。
3.如权利要求1所述的方法,进一步包括:
将一个活动标识符添加至对应于该组数据段中的该每个数据段的一个引用列表。
4.如权利要求1所述的方法,进一步包括:
在将该活动标识符添加至该每个数据段之后,对该客户端系统执行该备份处理。
5.如权利要求4所述的方法,进一步包括:
确定该备份处理所引用的另一个数据段是否需要发送至该去重复服务器,其中该确定包括:
确定针对该另一个数据段的一个指纹是否位于该高速缓存中,以及
确定该高速缓存是否具有针对该另一个数据段的一个活动标识符。
6.一种缓存系统,包括:
用于识别一个数据对象的装置,其中
该数据对象包括要在备份处理期间备份的一组数据段;
用于向一个去重复服务器发送一条请求的装置,其中
该请求包括请求该去重复服务器将任务标识符添加到存储在该去重复服务器处的该数据对象的副本,
该请求包括对该数据对象的一个引用,并且
该任务标识符向该数据对象的该副本的添加保护该数据对象的该副本以及存储在该去重复服务器处的该组数据段的副本免于在该备份处理期间从该去重复服务器被删除;以及
用于响应于确定该去重复服务器已经成功地向存储在该去重复服务器处的该数据对象的该副本添加该任务标识符,向存储在一个高速缓存中的该组数据段中的每个数据段添加活动标识符的装置,其中
该高速缓存位于一个客户端系统处,并且
该活动标识符向该每个数据段的添加指示存储在该去重复服务器处的该每个数据段的对应副本在该备份处理期间将被保持在该去重复服务器处。
7.如权利要求6所述的系统,进一步包括:
用于接收该数据对象的装置,其中
该数据对象从该去重复服务器接收,以响应于来自该客户端系统的一个查询,
该查询包括针对一个数据对象的查询,该数据对象包括针对该组数据段的一个指纹匹配,并且
该查询在进行该客户端系统的一次初始完整备份之前执行。
8.如权利要求6所述的系统,进一步包括:
用于将一个活动标识符添加至对应于该组数据段中的该每个数据段的一个引用列表的装置。
9.如权利要求6所述的系统,进一步包括:
用于在将该活动标识符添加至该每个数据段之后,对该客户端系统执行该备份处理的装置。
10.如权利要求9所述的系统,进一步包括:
用于通过以下操作确定该备份处理所引用的另一个数据段是否需要发送至该去重复服务器的装置:
确定针对该另一个数据段的一个指纹是否位于该高速缓存中,以及
确定该高速缓存是否具有针对该另一个数据段的一个活动标识符。
11.一种缓存系统,包括:
一个或多个处理器;以及
连接至该一个或多个处理器的内存,其中该内存存储可由该一个或多个处理器执行的程序指令以便:
识别一个数据对象,其中
该数据对象包括要在备份处理期间备份的一组数据段;
向一个去重复服务器发送一条请求,其中
该请求包括请求该去重复服务器将任务标识符添加到存储在该去重复服务器处的该数据对象的副本,
该请求包括对该数据对象的一个引用,并且
该任务标识符向该数据对象的该副本的添加保护该数据对象的该副本以及存储在该去重复服务器处的该组数据段的副本免于在该备份处理期间从该去重复服务器被删除;以及
响应于确定该去重复服务器已经成功地向存储在该去重复服务器处的该数据对象的该副本添加该任务标识符,向存储在一个高速缓存中的该组数据段中的每个数据段添加活动标识符,其中
该高速缓存位于一个客户端系统处,并且
该活动标识符向该每个数据段的添加指示存储在该去重复服务器处的该每个数据段的对应副本在该备份处理期间将被保持在该去重复服务器处。
12.如权利要求11所述的系统,其中这些程序指令进一步可执行用于:
接收该数据对象,其中
该数据对象从该去重复服务器接收,以响应于来自该客户端系统的一个查询,
该查询包括针对一个数据对象的查询,该数据对象包括针对该组数据段的一个指纹匹配,并且
该查询在进行该客户端系统的一次初始完整备份之前执行。
13.如权利要求11所述的系统,其中这些程序指令进一步可执行用于:
将一个活动标识符添加至对应于该组数据段中的该每个数据段的一个引用列表。
14.如权利要求11所述的系统,其中这些程序指令进一步可执行用于:
在将该活动标识符添加至该每个数据段之后,对该客户端系统执行该备份处理。
15.如权利要求14所述的系统,其中这些程序指令进一步可执行用于:
通过以下操作确定该备份处理所引用的另一个数据段是否需要发送至该去重复服务器:
确定针对该另一个数据段的一个指纹是否位于该高速缓存中,以及
确定该高速缓存是否具有针对该另一个数据段的一个活动标识符。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/026188 | 2011-02-11 | ||
US13/026,188 US8874520B2 (en) | 2011-02-11 | 2011-02-11 | Processes and methods for client-side fingerprint caching to improve deduplication system backup performance |
US13/026,188 | 2011-02-11 | ||
PCT/US2012/023320 WO2012109056A1 (en) | 2011-02-11 | 2012-01-31 | Processes and methods for client-side fingerprint caching to improve deduplication system backup performance |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103548003A CN103548003A (zh) | 2014-01-29 |
CN103548003B true CN103548003B (zh) | 2017-06-23 |
Family
ID=45615071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280008047.1A Active CN103548003B (zh) | 2011-02-11 | 2012-01-31 | 用于提高去重复系统备份性能的客户端侧指纹缓存的方法和系统 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8874520B2 (zh) |
EP (1) | EP2673710B1 (zh) |
CN (1) | CN103548003B (zh) |
AU (1) | AU2012214744B2 (zh) |
WO (1) | WO2012109056A1 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8874520B2 (en) | 2011-02-11 | 2014-10-28 | Symantec Corporation | Processes and methods for client-side fingerprint caching to improve deduplication system backup performance |
US8595243B1 (en) * | 2011-10-31 | 2013-11-26 | Symantec Corporation | Systems and methods for deduplicating archived data |
US9495379B2 (en) * | 2012-10-08 | 2016-11-15 | Veritas Technologies Llc | Locality aware, two-level fingerprint caching |
US9436697B1 (en) * | 2013-01-08 | 2016-09-06 | Veritas Technologies Llc | Techniques for managing deduplication of data |
US10353818B1 (en) * | 2013-02-27 | 2019-07-16 | EMC IP Holding Company LLC | Dataset paging cache for storage system |
US9940069B1 (en) * | 2013-02-27 | 2018-04-10 | EMC IP Holding Company LLC | Paging cache for storage system |
US9110601B2 (en) * | 2013-06-24 | 2015-08-18 | Sap Se | Backup lifecycle management |
CN103885859B (zh) * | 2014-03-12 | 2017-09-26 | 华中科技大学 | 一种基于全局统计的去碎片方法及系统 |
CN103902686B (zh) * | 2014-03-25 | 2017-11-17 | 华为技术有限公司 | 一种数据去重方法及装置 |
US9846718B1 (en) * | 2014-03-31 | 2017-12-19 | EMC IP Holding Company LLC | Deduplicating sets of data blocks |
WO2015183269A1 (en) * | 2014-05-29 | 2015-12-03 | Hewlett-Packard Development Company, L.P. | Backup storage |
US10241708B2 (en) * | 2014-09-25 | 2019-03-26 | Hewlett Packard Enterprise Development Lp | Storage of a data chunk with a colliding fingerprint |
CN104504347A (zh) * | 2015-01-20 | 2015-04-08 | 网易宝有限公司 | 一种数据一致性匹配处理方法和设备 |
CN104636477B (zh) * | 2015-02-15 | 2017-11-24 | 山东卓创资讯股份有限公司 | 一种信息推送前推送列表的去重方法 |
US9983796B2 (en) * | 2015-09-17 | 2018-05-29 | Veritas Technologies Llc | Systems and methods for provisioning frequently used image segments from caches |
US9864655B2 (en) | 2015-10-30 | 2018-01-09 | Google Llc | Methods and apparatus for mobile computing device security in testing facilities |
EP3519965B1 (en) * | 2016-09-29 | 2023-05-03 | Veritas Technologies LLC | Systems and methods for healing images in deduplication storage |
US10567539B2 (en) | 2016-11-23 | 2020-02-18 | Cisco Technology, Inc. | Managing metadata in cloud driven, thin client video applications |
CN108228083A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于数据去重的方法和设备 |
US10795860B1 (en) * | 2017-04-13 | 2020-10-06 | EMC IP Holding Company LLC | WAN optimized micro-service based deduplication |
CN107220122A (zh) * | 2017-05-25 | 2017-09-29 | 深信服科技股份有限公司 | 一种基于云平台的任务识别方法及装置 |
CN109964217B (zh) * | 2017-08-25 | 2021-11-09 | 华为技术有限公司 | 去重数据装置和方法 |
CN110389859B (zh) * | 2018-04-20 | 2023-07-07 | 伊姆西Ip控股有限责任公司 | 用于复制数据块的方法、设备和计算机程序产品 |
CN109101365A (zh) * | 2018-08-01 | 2018-12-28 | 南京壹进制信息技术股份有限公司 | 一种基于源端数据重删的数据备份和恢复方法 |
US11940956B2 (en) | 2019-04-02 | 2024-03-26 | Hewlett Packard Enterprise Development Lp | Container index persistent item tags |
CN112835740A (zh) * | 2019-11-22 | 2021-05-25 | 伊姆西Ip控股有限责任公司 | 用于管理数据备份的方法、电子设备和计算机程序产品 |
WO2022031989A1 (en) * | 2020-08-06 | 2022-02-10 | Level 3 Communications, Llc | Packet processing of streaming content in a communications network |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1294514C (zh) * | 2001-08-20 | 2007-01-10 | 信息中心科技有限公司 | 高效的计算机文件备份系统和方法 |
US20090217091A1 (en) * | 2008-02-26 | 2009-08-27 | Kddi Corporation | Data backing up for networked storage devices using de-duplication technique |
US7676503B2 (en) * | 2006-11-27 | 2010-03-09 | Microsoft Corporation | Hybrid computer restore using network service |
US20100250858A1 (en) * | 2009-03-31 | 2010-09-30 | Symantec Corporation | Systems and Methods for Controlling Initialization of a Fingerprint Cache for Data Deduplication |
US20100312752A1 (en) * | 2009-06-08 | 2010-12-09 | Symantec Corporation | Source Classification For Performing Deduplication In A Backup Operation |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI241489B (en) * | 2004-06-16 | 2005-10-11 | High Tech Comp Corp | Multimedia data management method and capture/storage device |
US7587398B1 (en) | 2004-06-30 | 2009-09-08 | Google Inc. | System and method of accessing a document efficiently through multi-tier web caching |
US8782368B2 (en) | 2007-10-25 | 2014-07-15 | Hewlett-Packard Development Company, L.P. | Storing chunks in containers |
WO2010045262A1 (en) * | 2008-10-14 | 2010-04-22 | Wanova Technologies, Ltd. | Storage-network de-duplication |
US8166261B1 (en) | 2009-03-31 | 2012-04-24 | Symantec Corporation | Systems and methods for seeding a fingerprint cache for data deduplication |
US8214428B1 (en) * | 2010-05-18 | 2012-07-03 | Symantec Corporation | Optimized prepopulation of a client side cache in a deduplication environment |
US8943023B2 (en) | 2010-12-29 | 2015-01-27 | Amazon Technologies, Inc. | Receiver-side data deduplication in data systems |
US9122639B2 (en) | 2011-01-25 | 2015-09-01 | Sepaton, Inc. | Detection and deduplication of backup sets exhibiting poor locality |
US8874520B2 (en) | 2011-02-11 | 2014-10-28 | Symantec Corporation | Processes and methods for client-side fingerprint caching to improve deduplication system backup performance |
US9823981B2 (en) | 2011-03-11 | 2017-11-21 | Microsoft Technology Licensing, Llc | Backup and restore strategies for data deduplication |
US9495379B2 (en) | 2012-10-08 | 2016-11-15 | Veritas Technologies Llc | Locality aware, two-level fingerprint caching |
-
2011
- 2011-02-11 US US13/026,188 patent/US8874520B2/en active Active
-
2012
- 2012-01-31 CN CN201280008047.1A patent/CN103548003B/zh active Active
- 2012-01-31 EP EP12704481.6A patent/EP2673710B1/en active Active
- 2012-01-31 WO PCT/US2012/023320 patent/WO2012109056A1/en active Application Filing
- 2012-01-31 AU AU2012214744A patent/AU2012214744B2/en not_active Ceased
-
2014
- 2014-10-27 US US14/524,397 patent/US9830231B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1294514C (zh) * | 2001-08-20 | 2007-01-10 | 信息中心科技有限公司 | 高效的计算机文件备份系统和方法 |
US7676503B2 (en) * | 2006-11-27 | 2010-03-09 | Microsoft Corporation | Hybrid computer restore using network service |
US20090217091A1 (en) * | 2008-02-26 | 2009-08-27 | Kddi Corporation | Data backing up for networked storage devices using de-duplication technique |
US20100250858A1 (en) * | 2009-03-31 | 2010-09-30 | Symantec Corporation | Systems and Methods for Controlling Initialization of a Fingerprint Cache for Data Deduplication |
US20100312752A1 (en) * | 2009-06-08 | 2010-12-09 | Symantec Corporation | Source Classification For Performing Deduplication In A Backup Operation |
Also Published As
Publication number | Publication date |
---|---|
US9830231B2 (en) | 2017-11-28 |
CN103548003A (zh) | 2014-01-29 |
US20150046403A1 (en) | 2015-02-12 |
AU2012214744A1 (en) | 2013-08-29 |
EP2673710B1 (en) | 2017-09-27 |
US20120209814A1 (en) | 2012-08-16 |
WO2012109056A1 (en) | 2012-08-16 |
EP2673710A1 (en) | 2013-12-18 |
AU2012214744B2 (en) | 2015-12-03 |
US8874520B2 (en) | 2014-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103548003B (zh) | 用于提高去重复系统备份性能的客户端侧指纹缓存的方法和系统 | |
US9715507B2 (en) | Techniques for reconciling metadata and data in a cloud storage system without service interruption | |
US9495379B2 (en) | Locality aware, two-level fingerprint caching | |
Scanlon | Battling the digital forensic backlog through data deduplication | |
US7680998B1 (en) | Journaled data backup during server quiescence or unavailability | |
US8589347B2 (en) | Systems and methods for performing data replication | |
EP3508978B1 (en) | Distributed catalog, data store, and indexing | |
JP2020038623A (ja) | データを記憶するための方法、装置及びシステム | |
US10452487B2 (en) | Data processing apparatus and method | |
CN104932841A (zh) | 一种云存储系统中节约型重复数据删除方法 | |
WO2007068600B1 (en) | Generating backup sets to a specific point in time | |
US20200117543A1 (en) | Method, electronic device and computer readable storage medium for data backup and recovery | |
CN110727727B (zh) | 一种数据库的统计方法及装置 | |
CN106874399B (zh) | 一种联网备份系统及备份方法 | |
CN110287201A (zh) | 数据访问方法、装置、设备及存储介质 | |
US8195612B1 (en) | Method and apparatus for providing a catalog to optimize stream-based data restoration | |
CN113761059A (zh) | 数据处理方法及装置 | |
CN110737635A (zh) | 一种数据分块方法 | |
CN115328864A (zh) | 被删除文件的管理方法、装置、设备和存储介质 | |
CN112988474A (zh) | 一种海量小文件备份热数据的方法、系统、设备及介质 | |
CN117648297B (zh) | 基于对象存储小文件离线合并方法、系统、设备及介质 | |
CN117149724B (zh) | 一种云环境系统重复数据删除的方法及系统 | |
US20240036983A1 (en) | Server-side inline generation of virtual synthetic backups using group fingerprints | |
CN118860751A (zh) | 基于异常检测的数据备份恢复方法及装置 | |
CN118035207A (zh) | 基于HDFS Federation架构的小文件合并方法、装置及相关介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |