专利名称:基于采样消除重复数据的系统和方法
技术领域:
本发明概要地涉及数据存储压缩,更具体来说,涉及重复数据的 基于采样的消除(重复数据删除)。
背景技术:
存储系统通常包括一个或多个存储设备,根据需要,可将信息输 入其中并且可从其中获得信息。存储系统包括存储操作系统,它通过 其它操作和调用支持该系统所实现的存储服务的存储操作从而在功 能上组织该系统。存储系统可按照多种存储架构来实现,其中包括但 不限于依附网络的存储环境、存储区域网络以及直接与客户机或主计 算机附连的磁盘组件。存储设备通常是组织为磁盘阵列的磁盘驱动 器,其中术语"磁盘"通常描述独立的旋转磁介质存储设备。在本上
下文中,术语"磁盘"与硬盘驱动器(HDD)或直接访问存储设备(DASD) 同义。
数据存储是在存档和一致应用环境中经营的许多行业的中心部 分,例如银行、国有企业/承包商和股票经纪。在许多这些环境中, 需要以不可改变方式、可能长期地存储所选数据,例如电子邮件消息、 金融文档和/或交易记录。通常执行数据备份操作以确保在出故障的 情况下保护和恢复这类数据。但是,备份操作往往在备份存储资源(如 磁盘)上造成数据的重复,从而导致低效地消耗资源上的存储空间。 一种形式的长期档案存储是在电子磁带介质上存储数据。物理磁带介 质的显著缺点是緩慢的数据访问速率以及用于管理大量物理磁带的 额外要求。为了应付这些显著的缺点,若干存储系统供应商提供虚拟 磁带库(VTL)系统,它们使用多个磁盘驱动器来模拟磁带存储设备。在典型的VTL环境中,充当主存储的存储系统执行存储系统的文件系 统(或其它数据仓库(data store))到VTL系统的完全备份操作。多 个完全备份可随时间而发生,由此导致低效地消耗VTL系统上的存储 空间。因此,希望消除例如与VTL系统关联的磁盘的存储资源上的重 复数据,并确保仅存储数据的单一实例,由此实现存储压缩。
在Ross Wi 11 iams于1999年11月23日发表的标题为"METHOD FOR PARTITIONING A BLOCK OF DATA INTO BLOCKS AND FOR STORING AND COMMUNICATING SUCH SUBBLOCKS"的美国专利No. 5990810 (以下称作 ",810专利")中描述了一种用于实现减少数据重复(重复数据删除) 的技术。,810专利中所述的方法首先利用滚动哈希函数生成多个数据 子块。滚动哈希利用产生置于两个子块之间的边界的固定大小的数据 窗口。 一旦数据块已经分为子块,计算各子块的哈希值以形成哈希值 表。然后,哈希表用来确定新的子块是否与其哈希值先前已经存储在 哈希表中的任何子块相同。为了执行这种确定,新子块的哈希值被计 算,并且与哈希表中包含的值进行比较。如果新子块的哈希值先前已 经存储在哈希表中,则已存储的哈希值所识别的子块被看作与新子块 相同。在这种情况下,用指向先前存储的子块的指针取代新子块,由 此减少该子块所需的存储空间量。,810专利中所述的技术的一个显著 缺点在于,它需要执行大量计算密集的哈希计算,这会影响实现这种 方法的存储/VTL系统的整体性能。另一个显著缺点在于,哈希表随 着凄t据集的大小增加而将变得更大,并且不可升级到大数据集,例如 千吉字节(terabyte)或百万吉字节(petabyte)的数据。
在Ling Zheng等人于2005年4月13日提交的标题为"METHOD AND APPARATUS FOR IDENTIFYING AND ELIMINATING DUPLICATE DATA BLOCKS AND SHARING DATA BLOCKS IN A STORAGE SYSTEM"的美国专 利申请序号11/105895中描述了另一种用于消除重复数据的技术。在 这个专利申请所述的系统中,对于说明性地为4千字节(KB)大小的固 定大小的块执行所有重复数据删除操作。在要存储新的块时,4 KB块的哈希被计算,并与包含先前存储的块的哈希值的哈希表进行比 较。如果新块的哈希值与先前存储的块相同,则存在新的块与先前存 储的块相同的高概率度。在这种情况下,用指向先前存储块的指针取 代新子块,由此降低存储资源消耗。然而,这个系统的一个显著缺点 在于,它局限"f固定大小的块。在操作中,在数据集的中间的单个比
特的添加都会引起所有后续块的未对准(misalignment),并且阻止 重复数据删除,由此导致存储资源的低效使用。
如Chris Reichenberger的"DELTA STORAGE FOR ARBITRARY NONTEXT FILES" (Proceedings of f力e lrd /"fer/2af/o/ a7 /Tori^^op 0/2 5^/7附re 6b/2/7^/ra〃0/ 鹏/zage7z/e/^, Trondheim, Norway, 1214, 1991年6月,ACM,第144-152页)中所述的第三种技术是使用数据 的哈希来查找最长的公共数据序列。但是,计算和比较数据集中的所 有可能的子串的哈希的上述方法没有采用任何采样技术。因此,它对 于大数据集将不是可升级的。
发明内容
本发明通过提供用于消除存储资源(如^P兹盘)上存储的重复数据 (重复数据删除)的基于采样的技术,克服了现有技术的缺点。根据本 发明,在由例如实施本发明的存储系统或虚拟磁带库(VTL)系统的服
务器接收到如备份数据流的新数据集时,识别新数据集中的一个或多 个锚(anchor)。本文所使用的"锚"定义为数据集中定义关于可能 的重复数据删除的关注区的点。锚可通过执行数据集的滚动哈希来定 位。在这些情况下,锚点("锚")位于定义签名宽度的固定大小区域 中。还可才艮据数据容器(如文件)中的位置或者例如其它上下文信息 (如凝:据集中的预定偏移量)。
对于新数据集中已识别的各锚,确定锚是否先前已经存储在锚数 据库(或其它数据仓库)中。如果它尚未存储在锚数据库中,则将该锚 连同识别它在数据集中的位置的信息一起存储在锚数据库中。但是,在备选实施例中,锚位置可以只是数据集中的偏移量。如果已识别的
锚先前存储在锚数据库中,则服务器定位模式数据库(pattern database)中的锚,并且从锚点开始向前和向后执行新数据集与包含 模式数据库中存储的锚的数据集之间逐个比特(或逐个字节)的数据 比较。这个数据比较的结果是分别识别从锚点向前和向后的存储的数 据集与新数据集之间匹配的数据的连续比特的数量的前向增量值
(delta value)和后向增量值。在新数据集中,用识别锚以及前向 和后向增量值的存储指示符取代重复数据,即锚点周围的后向增量值 与前向增量值之间的数据范围。
通过参照以下结合附图的描述,可以更好地了解本发明的上述及 其它优点,附图中相同的参考标号表示相同或功能相似的元件
图1是包括根据本发明的实施例的虚拟磁带库(VTL)系统的示范 存储系统环境的示意框图2是根据本发明的实施例的VTL系统的示意框图3是根据本发明的实施例、详细说明用于执行基于采样的重复 数据删除过程的过程步骤的流程图4是示出根据本发明的实施例、锚周围的后向和前向增量的形 成的图;以及
图5是示出根据本发明的实施例、用存储指示符取代重叠数据的 框图。
具体实施例方式
A. 存储系统环境
图1是可有利地与本发明配合使用的存储系统环境100的示意框 图。存储系统环境100包括通过网络120与多个客户机110互连的存 储系统125。网络120可以说明性地体现为以太网或光纤信道(FC)网
9络。还与网络120互连的是虚拟磁带库(VTL)系统200,它说明性地 实现本发明的重复数据删除技术。在操作上还与VTL系统200连接的 是一个或多个存储设备,例如组织成存储阵列160的磁盘130。
在操作中,存储系统125服务于来自客户机110的数据访问请求。 每个客户机110可以是配置成运行应用并按照信息传送的客户机/服 务器模型与存储系统125进行交互的通用计算机。也就是说,客户机 可请求存储系统的服务,而该系统可通过经由网络120交换分组来返 回客户机所请求的服务的结果。当访问例如文件和目录的数据容器的 形式中的例如数据的信息时,客户机可在TCP/IP上发出包括基于文 件的访问协议的分组,例如公共因特网文件系统(CIFS)协议或网络文 件系统(NFS)协议。备选地,当访问例如块的数据容器的形式中的信 息时,客户机可发出包括基于块的访问协议的分组,例如在TCP上封 装的小型计算机系统接口 (SCSI)协议(iSCSI)以及在光纤信道(FCP) 上封装的SCSI。
当存储系统125的管理员希望执行备份操作时,常^U兹带备份软 件可与存储系统125配合使用,以便执行到VTL系统200的备份操作。 VTL系统200对于存储系统125表现为远程》兹带驱动器;因此,存储 系统125可使用常失JW兹带备份软件来执行到VTL系统200的常关JUt带 备份操作。通常,各备份搡作引起存储系统125所存储的整个文件系 统到VTL系统200的复制,例如作为"备份"。这种复制的一个显著 的结果在于,VTL系统200可能包括大量重复数据,即存储系统125 的备份的每个之中保持为相同的数据和/或不同客户机110的备份之 间的冗余数据。本发明说明性地根据新颖的基于采样的重复数据删除 技术来消除重复数据,下面进一步进行描述。
B. 虛拟磁带库系统
图2是可有利地与本发明配合使用的VTL系统200的示意框图。 VTL系统200说明性地是计算机,它提供与例如本地存储(磁盘)阵列 160的A兹盘130的存储设备上的信息组织相关的存储服务。VTL系统200说明性地包括通过系统总线225互连的处理器222、存储器224、 一个或多个网络适配器226以及一个或多个存储适配器228。各网络 适配器226包括通过网络120将VTL系统200与存储系统125连接所 需的机械的、电气的和信令的电路。VTL系统200还包括操作系统250, 它与各种模块(如虛拟磁带库(VTL)模块260 )进行交互,下面进一 步进行描述。操作系统250可在磁盘130上实现逻辑数据对象仓库并 且由例如运行于VTL系统200上的VTL模块260的应用程序所使用。 如本文所述,逻辑数据对象仓库说明性地体现为锚数据库(DB) 270和 模式DB 280。
在说明性实施例中,存储器224包括由处理器和适配器可寻址的 存储位置,用于存储软件程序代码,例如操作系统250和VTL模块 260。处理器和适配器又可包括配置成运行軟件代码并操纵数据结构 的处理元件和/或逻辑电路。本领域的技术人员清楚地知道,包括各 种计算机可读介质在内的其它处理和存储部件可用于存储和运行与 本文所述的发明技术有关的程序指令。
存储适配器228与运行于VTL系统200上的操作系统250合作, 以在例如录像带、光学、DVD、磁带、磁泡存储器、电子随机访问存 储器、微机电以及适于存储包括数据和奇偶校验信息在内的信息的任
储和检索所请求的信息。但是,如本文说明性地所述,信息优选地存 ^f诸在本地存储阵列160的^F兹盘130 (如HDD和/或DASK )上。存储适 配器包括输入/输出(1/0)接口电路,它通过I/0互连设置(如常规高 性能FC串行链路拓朴结构)与磁盘耦合。
如上所述,操作系统250说明性地在》兹盘130上实现逻辑数据对 象仓库。还应当注意,在备选实施例中,可利用其它形式的数据组织, 包括例如文件系统。因此,利用数据对象仓库的描述应当仅作为示范。 此外,VT1^莫块260与#:作系统250合作以实现VTL系统200的虚拟 磁带库功能性。VTL模块260说明性地存储来自使用数据对象仓库的数据。值得注意,VTL模块260还实现本发明的重复数据删除技术。 C. 基于采样的重复数据删除
本发明提供一种用于消除存储资源(如》兹盘130)上存储的重复 数据(重复数据删除)的基于采样的技术。根据本发明,在由服务器、 例如存储系统125或系统200接收到新数据集时,识别新数据集中的 一个或多个锚。本文所使用的"锚"定义为数据集中定义关于可能的 重复数据删除的关注区的点。锚可通过执行数据集的滚动哈希来定 位。在这类情况下,锚点("锚")位于定义签名宽度的固定大小区域 中。还可根据数据容器(如文件)中的位置或者其它上下文信息(如 数据集中的预定偏移量)来选择锚。应当注意,锚可使用各种技术来 识别。因此,本文所述的技术应当看作只是示范。
对于新数据集中已识别的各锚,确定锚是否先前已经存储在锚数 据库270中。如果它尚未存储在锚数据库中,则将该锚连同识别它在 数据集中的位置的信息一起存储在锚数据库270中。数据集说明性地 存储在模式数据库250中,其中模式数据库250在例如数据对象仓库 之上布置或实现。但是,在备选实施例中,锚位置可以只是数据集中 的偏移量。如果已识别的锚先前存储在锚数据库中,则服务器定位模 式数据库250中的锚,并且从锚点开始向前和向后执行新数据集与包 含模式数据库250中存储的锚的数据集之间逐个比特的数据比较。这 个数据比较的结果是分別识别从锚点向前和向后的存储的数据集与 新数据集之间匹配的数据的连续比特的数量的前向增量值和后向增 量值。在新数据集中,用识别锚以及前向和后向增量值的存储指示符 取代重复数据,即锚周围的后向增量值与前向增量值之间的数据范 围。
图3是根据本发明的说明性实施例、详细说明基于采样的重复数 据删除过程300的步骤的流程图。过程300在步骤305开始,并继续 进行到步骤310,其中由服务器(如VTL系统200 )接收新数据集。 在图1的说明性环境100中,所接收的数据集可包括从存储系统125送往VTL系统200的新磁带4^数据流。但是,在备选实施例中,可 在包括例如存储系统125中存储的文件的任何计算机上使用任何数 据集。因此,对于作为送往VTL系统200的磁带备份流的数据集的描 述应当仅作为示范。如上所述,在备选实施例中,任何形式的数据集 可在任何计算机上利用。因此,本发明的教导可在与以下所述的VTL 系统环境不同的环境中利用。
响应对新数据集的接收,在步骤315, VTL模块260识别新数据 集中的一个或多个锚。根据本发明,可通过多种方式来识别锚。 一种 锚识别技术是在数据集中预定偏移处放置锚。这些偏移量可以是固定 的,或者可基于数据集中的数据类型。例如,如果数据集是磁带存档 备份数据流,则锚可放置在数据流中的各记录的开头。另一种用于识 别锚的示范技术是使用固定大小窗口 ,沿数据集执行滚动哈希。然后, 当哈希值(以常数为模)等于预定值时,锚可放置在窗口中。例如,可 利用使用512比特的窗口大小的滚动哈希。当以N为模的哈希值等于 0时,锚可放置在窗口的开始。
一旦已经识别锚,则在步骤320, VTL模块260确定已识别的锚 是否位于锚数据库270中。如果已识别的锚没有存储在锚数据库中, 则过程300转到步骤325,其中VTL模块将锚放置在锚数据库中。某 些锚可能不存储在锚数据库中,例如过于频繁出现以致于没用的锚。 VTL;f莫块可用这些频繁出现的锚来配置,或者在备选实施例中可跟踪 频繁出现的锚以识别不应当保持在锚数据库中的那些锚。然后,在步 骤330,确定数据集中是否有其它锚。如果是,则过程300返回步骤 315,其中VTL模块260识别数据集中的另一个锚。否则,过程300 在步骤335完成。
但是,如果已识别的锚处于锚数据库270中,则VTL模块260开 始逐个比特(或逐个字节)比较包围模式数据库280中的锚与所接收 凄史据集中的锚点的区域,以识别前向和后向增量值(步骤340)。增量 值识别从锚点开始向前/向后的保留比特的数量,所述比特在模式数据库280中的与所接收数据集中的区域之间是相同的。例如,如果数 据对于锚点前面的1000个比特以及锚点之后的15个比特是相同的, 则后向增量值将设置成等于15,而前向增量值将设置成1000。应当 注意,在—某些情况下,根据锚的放置,特定增量值可等于0。例如, 如果在滚动哈希所使用的窗口的开始选择锚点,则在锚点之前没有比 特可与模式数据库匹配。后向/前向增量值("增量")通常包含滑动 哈希窗口的宽度;但是,这不是本发明的要求。通过利用锚点以及前 向和后向增量,可识别重复数据的区域,即范围从锚点后面的后向增 量(比特数)到锚点前面的前向增量(比特数)的数据。根据本发明,重 复数据的这个已识别区域可从存储设备消除,由此实现压缩并提高使 用存储资源的效率。
然后在步骤345,用存储指示符取代新数据集中的重复数据的已 识别区域。存储指示符说明性地识别锚以及前向和后向增量。当存储 指示符具有比被取代的重复数据更小的大小时,则得到数据集的压 缩。因此,根据实现细节,在取代重复数据之前可能需要最小大小。 例如,如果存储指示符需要256比特,除非(前向增量值+后向增量 值)〉256,否则不会发生压缩。应当注意,在备选实施例中,系统可 包括发生取代之前的最小大小的管理员控制阈值。这种阈值可使管理 员能够根据期望的数据的性质来调整系统的性能。因此,系统可包括 例如存储指示符的大小的静态阈值以及例如管理员设置的动态阈值。 同样,如果数据集中没有其它锚,则过程在步骤335完成。
在步骤340中,所识别的重复凄t据的区域可具有这个区域中的其 它锚点。但是,那些锚点不需要由步骤315进行处理。待处理的下一 个锚点将在重复数据的已识别区域之后的新数据中。此外,忽略的锚 点可不需要使用锚识别技术来计算。重复数据区域中的新锚点集合将 与原始数据区域中的集合相同。性能有益效果在于,当处理长的匹配 数据流时将必须计算和处理的锚点较少。
另外,如果在将新数据写入存储服务器之前能够识别重复数据,则新的重复数据可以根本不需要写入VTL系统200。其有益效果是减 少的网络上的1/0操作。
图4是环境400的示意图,示出先前存储的数据集405与新数据 集410之间的后向和前向增量的生成。在先前数据集405、即先前由 VTL系统200接收和处理的数据集中,已经识别三个锚A1、 A2、 A3。 在新数据集410、即当前所处理的数据集中,确定存在单个锚A2。作 为响应,VTL系统200开始在先前数据集405以及新数据集410中的 锚A2前面和后面的区域的逐个比特的数据比较。假定各数据集上在 前向点420之前以及到后向点415的数据匹配。在这种情况下,在新 数据集410中用存储指示符取代点415、 420之间的区域。
图5是环境500的示意图,示出根据本发明的实施例、用存储指 示符取代数据。先前数据集405和新数据集410均集中于锚A2周围。 在先前数据集405中,锚周围的区域包含具有值N、 C、 D、 E(锚点)、 F、 G、 H、 O等的数据。类似地,在新数据集410中的锚周围的数据 是A、 B、 C、 D、 E(锚点)、F、 G、 H、 I等。根据说明性实施例, 一旦 识别了锚点,从锚点开始向前和向后进行逐个比特比较。确定只有各 数据集的锚点前面的数据F、 G和H是相同的,即下一个数据在先前 数据集405中具有值0以及在新数据集410中具有值I。类似地,确 定只有各数据集的锚点后面的数据C和D是相同的。然后,用存储指 示符505取代新数据集410中的数据(包括锚E)的这六个区域(即C 与H之间的区域)。因此,新数据集410修改为由数据A、 B、存储指 示符505、 I、 J、 K、 L、 M等组成的新数据集410'。
存储指示符505说明性地包括锚识别符(ID)字段510、前向增量 字段515和后向增量字段520。锚ID字段510识别与这个存储指示 符505关联的锚。前向和后向增量字段515、 520识别已被取代的锚 的每侧上的连续比特的数量。因此,在这个示例中,前向增量值将识 别数据F、 G和H中包含的比特的数量,而后向增量识别数据C和D 中包含的比特的数量。当重构原始数据(重复数据删除)时,系统检索模式数据库中存储的由存储指示符所识别的数据,并将它插入重构数 据。例如,在识别存在存储指示符时,系统定位已识别锚,并检索增 量值所识别的锚点开始向后/向前的数据。然后,将那个区域重新替 代入数据集,代替存储指示符。
在步骤320中,锚数据库270用来识别先前数据集405与新数据 集410之间的重复数据。对于写入VTL系统200的新数据集410, VTL 能知道新数据集410中的重复凄t据可能所处的位置。例如,当前完全 备份的新数据将具有与上一次完全备份的数据的大部分重复的数据。 重复数据的区域还将以相同顺序出现在两个完全备份中。因此,为了 识别重复数据,与前一个完全备份对应的锚点能顺序地加载到存储器 中,以便与新数据集410中的锚进行比较。这允许以极小的存储器需 求极有效地识别重复数据区域。
在备选实施例中,锚分级结构可由计算机超锚(super anchor) 生成。超锚说明性地通过根据多个相邻锚计算哈希生成。超锚的数量 将小于锚的数量,由此提高可识别超锚的速度。如果在超锚上识别到 匹配,则系统识别了跨越多个相邻锚的重复数据的区域。
此外,虽然本描述按照存储重复数据删除来撰写,但是,本发明 的原理可用于提供通信链路上的重复数据删除。在这种备选实施例 中,发送系统可执行上述重复数据删除技术,以使用于传送数据的带 宽量为最小。源和目标系统将需要进行工作,以确保它们共享同步模 式和锚数据库。
以上描述针对本发明的具体实施例。但是,显而易见,可对所述 实施例进行其它变更和修改,达到其部分或全部优点。例如,明确地 考虑,本发明的教导能实现为其中包括具有在计算机中运行的程序指 令的计算机可读介质的软件、硬件、固件或者它们的组合。此外,应 当注意,虽然本描述按照VTL系统撰写,但是本发明的教导并不局限 于此。本发明可用于使用任何数据仓库、包括例如文件系统的任何计 算机环境。因此,本描述仅作为示例而不是限制本发明的范围。因此,
16所附权利要求的目的是涵盖在本发明实质和范围内的所有这类变更 和修改。
权利要求
1. 一种用于从数据集中删除重复数据的方法,所述方法包括以下步骤识别所述数据集中的锚;确定所述已识别的锚是否存在于锚数据库中;响应确定所述锚存在于所述锚数据库中,执行所述数据集与已存储数据集之间的数据比较,以识别相对于所述已识别的锚的前向增量值和后向增量值;以及用存储指示符取代由所述锚、所述前向增量值和所述后向增量值所识别的所述数据集的区域,以形成修改的数据集。
2. 如权利要求1所述的方法,其中,识别所述锚的步骤包括对 所述数据集执行滚动哈希的步骤。
3. 如权利要求1所述的方法,其中,识别所述锚的步骤包括在 所述数据集中的预定位置放置所述锚。
4. 如权利要求1所述的方法,其中,所述已存储数据集存储在 模式数据库中。
5. 如权利要求1所述的方法,其中,所述存储指示符包括锚识 别符、所述前向增量值和所述后向增量值。
6. 如权利要求1所述的方法,还包括将所述修改的数据集存储 在数据对象仓库中的步骤。
7. 如权利要求6所述的方法,其中,所述数据对象仓库包括文 件系统。
8. 如权利要求1所述的方法,还包括查找两个相似数据集之间 的重复数据的步骤。
9. 如权利要求8所述的方法,其中,所述相似数据集包括具有 混合的共同数据和唯一数据的数据集。
10. 如权利要求8所述的方法,其中,通过将所述新数据集的锚点与相似数据的锚点进行比较,来找到重复数据。
11. 如权利要求10所述的方法,其中,根据所述新数据集中的锚点的模式来识别相似数据的锚点。
12. 如权利要求l所述的方法,还包括通过对所述数据集中的多 个相邻锚计算哈希来形成锚分级结构的步骤。
13. —种配置成从数据集中删除重复数据的系统,所述系统包括用于识别所述数据集中的锚的部件;用于确定已识别的锚是否存在于锚数据库中的部件;用于响应确定所述锚存在于所述锚数据库中,执行所述数据集与已存储数据集之间的数据比较,以识别相对于所述已识别锚的前向增量值和后向增量值的部件;以及用于用存储指示符取代由所述锚、所述前向增量值和所述后向增量值所识别的所述数据集的区域的部件。
14. 如权利要求13所述的系统,其中,用于识别锚的所述部件 包括用于对所述数据集执行滚动哈希的部件。
15. 如权利要求13所述的系统,其中,用于识别锚的所述部件 包括用于在所述数据集中的预定位置放置所述锚的部件。
16. 如权利要求13所述的系统,其中,所述已存储数据集存储 在模式数据库中。
17. 如权利要求13所述的系统,其中,所述存储指示符包括锚 识别符、所述前向增量值和所述后向增量值。
18. 如权利要求13所述的系统,还包括用于通过对所述数据集 中的多个相邻锚计算哈希来形成锚分级结构的部件。
19. 一种配置成从数据集中删除重复数据的系统,所述系统包括存储系统,配置成服务于所述数据集;以及虛拟磁带库系统,适合于从所述存储系统接收所述数据集,所述虚拟磁带库系统适合于识别所述数据集中的锚,并且还适合于确定已识别的锚是否存在于锚数据库中。
20. 如权利要求19所述的系统,其中,所述虚拟磁带库系统还适合于响应确定所述锚存在于所述锚数据库中而执行所述数据集与已存储数据集之间的数据比较,以识别前向增量值和后向增量值。
21. 如权利要求20所述的系统,还包括适合于存储所述已存储数据集的模式数据库。
22. 如权利要求20所述的系统,其中,所述虚拟磁带库系统还适合于用存储指示符取代由所述锚、所述前向增量值和所述后向增量值所识别的所述数据集的区域,以形成修改的数据集。
23. 如权利要求22所述的系统,其中,所述存储指示符包括锚识别符、所述前向增量值和所述后向增量值。
24. 如权利要求19所述的系统,其中,所述锚通过对所述数据集执行滚动哈希来识别。
25. 如权利要求19所述的系统,其中,通过在所述数据集中的预定位置放置所述锚来识别所述锚。
26. 如权利要求19所述的系统,其中,所述数据集包括备份数据流。
27. 如权利要求19所述的系统,其中,所述虚拟磁带库系统还适合于通过对所述数据集中的多个相邻锚计算哈希,来形成锚分级结构。
28. —种用于从数据集中删除重复数据的计算机可读介质,所述计算机可读介质包括用于执行以下步骤的程序指令识别所述数据集中的锚;确定已识别的锚是否存在于锚数据库中;响应确定所述锚存在于所述锚数据库中,执行所述数据集与已存储数据集之间的数据比较,以识别相对于所述已识别的锚的前向增量值和后向增量值;以及用存储指示符取代由所述锚、所述前向增量值和所述后向增量值 所识别的所述数据集的区域,以形成修改的数据集。
全文摘要
提供一种用于消除重复数据的技术。在接收到新数据集时,在所述数据集中识别一个或多个锚点。然后,对于所接收数据集中的锚点周围的区域与模式数据库中存储的锚点周围的区域执行逐个比特的数据比较,以识别前向/后向增量值。然后用存储指示符取代所接收数据集中由锚点、前向和后向增量值所识别的重复数据。
文档编号H03M7/00GK101479944SQ200780023662
公开日2009年7月8日 申请日期2007年4月26日 优先权日2006年4月28日
发明者C·约翰斯顿, D·特林默, L·郑, R·斯塔格尔, Y·弗兰策尔 申请人:网络装置公司