基于指纹的数据重复删除制造技术

技术编号:10282745 阅读:178 留言:0更新日期:2014-08-04 10:01
在计算环境中备份的存储对象常常是包括许多个别存储对象的合成存储对象。计算环境的计算设备通过对数据范围确定哈希值把存储对象分成数据块。当到达存储对象的结束时,计算设备创建人工块边界。当为存储对象的数据结束创建人工块边界时,计算设备存储用于该人工块边界的伪指纹。如果哈希值匹配指纹或伪指纹,则计算设备确定该数据范围对应于块并且计算设备定义块边界。人工块边界的伪指纹允许在合成文件中识别人工块边界。基于在伪指纹列表上所存储的伪指纹,在重复删除过程中冗余数据被更高效地消除。

【技术实现步骤摘要】
【国外来华专利技术】基于指纹的数据重复删除
本专利技术一般而言涉及数据存储和数据存储系统中的检索操作,并且更具体地说,涉及为了基于指纹的重复删除的优化而识别块边界。
技术介绍
数据重复删除消除冗余数据,以提高存储利用率并减少经网络发送的数据量。重复删除减少所需的存储容量和网络带宽,这是因为一个独特的数据单元只有一个拷贝被存储和/或发送。基于盘的存储系统,诸如存储管理服务器和卷带库(VTL),可以通过避免这种数据的冗余传送和/或存储来实现检测冗余数据并减少重复的重复删除技术。
技术实现思路
所描述的是计算环境中用于为基于指纹的重复删除的优化而识别块边界的一个专利技术的实施例。在计算环境中备份的存储对象常常是包括许多个别存储对象的合成存储对象。计算环境的计算设备通过对数据范围确定哈希值来把存储对象分成数据块。当到达存储对象的结束时,计算设备创建人工块边界。当为存储对象的数据结束创建人工块边界时,计算设备存储用于该人工块边界的伪指纹。如果哈希值匹配指纹或伪指纹,则计算设备确定该数据范围对应于块并且计算设备定义块边界。人工块边界的伪指纹允许在合成文件中识别人工块边界。因而,基于在伪指纹列表上所存储的伪指纹,计算环境在重复删除过程中更高效地消除冗余数据。例如,用于删除存储对象的重复的计算机实现的方法的一个实施例包括为存储对象的数据窗口确定块识别哈希值并且确定该块识别哈希值是否匹配指纹或存储的伪指纹。另外,该方法确定该数据窗口是否是该存储对象的数据结束。如果确定该数据窗口是该存储对象的数据结束,该方法定义该存储对象中对应于该数据窗口的块的块边界,并且存储该块的块边界。该方法还确定关于存储对象的该块的块唯一性哈希并且在用于存储对象的该块的重复删除索引中存储该块唯一性哈希信息。该方法通过确定该块识别哈希值是否满足预定的数学性质来确定该块识别哈希值是否匹配已知的指纹。在一种实施例中,存储对象的该块的伪指纹作为伪指纹存储在伪指纹列表上。另外,在一种实施例中,确定块识别哈希值是否匹配伪指纹的方法包括确定块识别哈希值是否存储在伪指纹列表上。该方法可以通过计算存储对象的数据窗口的滚动哈希值来确定存储对象的数据窗口的块识别哈希值。在一种实施例中,滚动哈希可以是Karp-Rabin滚动哈希。该方法还包括当确定该块识别哈希值匹配指纹时,定义存储对象中对应于数据窗口的块,并且存储该块的块边界。最后,该方法包括,当确定该数据窗口不是存储对象的数据结束时,确定另一数据窗口的块识别哈希值。该方法确定所确定的另一块的块识别哈希值是否匹配指纹或存储的伪指纹。在包括其中包含计算机可读程序代码的计算机可读存储介质的计算机程序产品的一个实施例中,程序代码执行以执行操作,其中操作包括为存储对象的数据窗口确定块识别哈希值并且确定该块识别哈希值是否匹配指纹或存储的伪指纹。该操作还包括,如果确定存储对象的数据窗口的块识别哈希值不匹配指纹或存储的伪指纹,则确定该数据窗口是否是存储对象的数据结束。如果确定该数据窗口是存储对象的数据结束,该操作还定义存储对象中对应于该数据窗口的块的块边界,并且存储该块的块边界。在计算环境的计算设备的另一种实施例中,该设备包括耦合到处理器的存储器。存储器包括由处理器实现的指令,以便为存储对象的数据窗口确定块识别哈希值并且确定该块识别哈希值是否匹配指纹或存储的伪指纹。如果确定存储对象的数据窗口的块识别哈希值既不匹配指纹又不匹配所存储的伪指纹,则处理器确定该数据窗口是否是存储对象的数据结束。如果确定该数据窗口是存储对象的数据结束,处理器还定义存储对象中对应于该数据窗口的块的块边界,并且存储该块的块边界。附图说明仅仅是作为例子,现在将参考附图描述本专利技术的实施例,其中:图1说明了根据本专利技术一个实施例、执行数据操作的计算环境;图2说明了根据本专利技术一个实施例的重复删除索引条目;图3说明了根据本专利技术一个实施例的伪指纹列表条目;图4是说明根据本专利技术一个实施例、定义存储对象的块边界的流程图;图5是说明根据本专利技术一个实施例、定义存储对象的块边界的图;图6是说明根据本专利技术一个实施例的计算环境的执行的图;及图7说明了可以根据某些实施例使用的计算系统。根据一种或多种实施例,在不同的图中用相同标号引用的本专利技术的特征、元素和方面代表相同的、等效的或者相似的特征、元素或方面。具体实施方式所描述的是计算环境中用于为基于指纹的重复删除的优化而识别块边界的一个专利技术的实施例。在计算环境中备份的存储对象常常是包括许多个别存储对象的合成存储对象。计算环境的计算设备通过对数据范围确定哈希值来把存储对象分成数据块。当到达存储对象的结束时,计算设备创建人工块边界。当为存储对象的数据结束创建人工块边界时,计算设备存储用于该人工块边界的伪指纹。如果哈希值匹配指纹或伪指纹,则计算设备确定该数据范围对应于块并且计算设备定义块边界。人工块边界的伪指纹允许合成文件中人工块边界的识别。因而,基于在伪指纹列表上所存储的伪指纹,计算环境在重复删除过程中更高效地消除冗余数据。但是,对本领域技术人员来说很显然,本专利技术的实施例也可以在没有这些具体细节中的一些或全部的情况下实践。在其它情况下,众所周知的过程操作没有详细描述,以防止模糊本文所述本专利技术的实施例。数据重复删除是一种用于消除冗余数据以提高存储利用率并减少经网络发送的数据量的数据压缩技术。重复删除减少所需的存储容量和网络带宽,因为一个独特数据单元,也称为块,只有一个拷贝被存储和/或发送。执行重复删除的计算环境通过把存储对象分成一系列块来操作,其中每个块由块边界定义。边界,或者说块边界,指数据中定义块的终点的位置。两个相继的边界定义对应块的两个终点。在一种实施例中,存储对象可以利用哈希函数(诸如滚动哈希)分成块。这个初始哈希值识别块的边界,而不确定块的唯一性。初始哈希在本文中被称为块识别哈希,并且块的块识别哈希值在本文中可以被称为指纹。在一种实施例中,块识别哈希可以是诸如Karp-Rabin哈希(也称为Karp-Rabin指纹)的滚动哈希,但是,可以使用任何分块算法。计算环境确定是否已经存储了任何块。通过对每个块利用辅助哈希函数,诸如MD5(消息摘要算法5)或SHA-1(安全哈希算法1),以产生用于块的辅助哈希值(也称为摘要),然后比较这些辅助哈希值与块的已经在系统上存储的哈希值,可以检测冗余的块。辅助哈希确定块的唯一性并且在本文中可以被称为块唯一性哈希,以便与块识别哈希区分。用于所存储的块的哈希值可以在诸如重复删除索引的索引中维护。块可以通过哈希值和块尺寸唯一地识别。所考虑的块的哈希值在重复删除索引中查找。如果对该哈希值和尺寸找到一个条目,则识别出冗余的块,并且集合或对象中的该块可以用指向储存器中所维护的匹配块的指针代替。因而,计算环境只存储非冗余的块。对缓冲区数组中的数据滑动窗口,例如48个字节,执行确定块边界的块识别哈希。计算环境确定对该数据窗口确定的哈希值是否匹配指纹。在一种实施例中,通过确定哈希值是否满足用于确定块边界的预定数学性质,计算设备确定该哈希值是否匹配指纹。如果所确定的块识别哈希值不匹配预定的数学性质,则数组中最旧的字节被最新的字节代替并且再次确定哈希值。如果所确定的哈希值匹配预定的数学性质,则为该块定义块边界。但是,当计算环境到达存储对象的数据结束本文档来自技高网...
基于指纹的数据重复删除

【技术保护点】
一种用于为了数据重复删除而处理存储对象的计算机实现的方法,包括:为所述存储对象的数据窗口确定块识别哈希值;确定所述数据窗口的所述块识别哈希值是否匹配指纹或存储的伪指纹;当确定所述数据窗口的所述块识别哈希值不匹配所述指纹或所述存储的伪指纹时,确定所述数据窗口是否是所述存储对象的数据结束;当确定所述数据窗口是所述存储对象的所述对象结束时,定义所述存储对象中对应于所述数据窗口的块的块边界并且存储所述块的块边界;及当确定所述存储对象的所述数据窗口是所述存储对象的所述数据结束时,存储所确定的块识别哈希值为所述存储对象中对应于所述数据窗口的所述块的伪指纹。

【技术特征摘要】
【国外来华专利技术】2011.11.28 US 13/305,2181.一种用于为了数据重复删除而处理存储对象的计算机实现的方法,包括:为所述存储对象的数据窗口确定块识别哈希值;确定所述数据窗口的所述块识别哈希值是否匹配指纹或存储的伪指纹;当确定所述数据窗口的所述块识别哈希值不匹配所述指纹或所述存储的伪指纹时,确定所述数据窗口是否是所述存储对象的数据结束;当确定所述数据窗口是所述存储对象的所述对象结束时,定义所述存储对象中对应于所述数据窗口的块的块边界并且存储所述块的块边界;及当确定所述存储对象的所述数据窗口是所述存储对象的所述数据结束时,存储所确定的块识别哈希值为所述存储对象中对应于所述数据窗口的所述块的伪指纹。2.如权利要求1所述的计算机实现的方法,还包括确定关于所述存储对象的所述块的块唯一性哈希并且在用于所述存储对象的所述块的重复删除索引中存储块唯一性哈希信息。3.如权利要求1所述的计算机实现的方法,其中所述确定所述块识别哈希值是否匹配已知的指纹包括确定所述块识别哈希值是否满足预定的数学性质。4.如权利要求1所述的计算机实现的方法,其中存储所述伪指纹包括在伪指纹列表中存储所述伪指纹。5.如权利要求4所述的计算机实现的方法,其中确定所述块识别哈希值是否匹配伪指纹包括确定所述块识别哈希值是否存储在所述伪指纹列表上。6.如权利要求1所述的计算机实现的方法,其中确定所述存储对象的所述数据窗口的所述块识别哈希值包括计算所述存储对象的所述数据窗口的滚动哈希值。7.如权利要求6所述的计算机实现的方法,其中计算所述存储对象的所述数据窗口的所述滚动哈希值包括计算所述存储对象的所述数据窗口的Karp-Rabin滚动哈希。8.如权利要求1至7中任一项所述的计算机实现的方法,还包括当确定所述块识别哈希值匹配所述指纹时,定义所述存储对象中对应于所述数据窗口的块并且存储所述块的块边界。9.如权利要求1至7中任一项所述的计算机实现的方法,还包括:当确定所述数据窗口不是所述存储对象的所述数据结束时,确定另一数据窗口的块识别哈希值,并且确定所述另一数据窗口的所确定的块识别哈希值是否匹配所述指纹或所述存储的伪指纹。10.一种用于为了数据重复删除而处理存储对象的计算设备,包括:处理器和耦合到所述处理器的存储器;所述存储器包括具有代码的计算机可读存储介质,所述代码在被所述处理器执行时执行操作,其中所述操作包括:为所述存储对象的数据窗口确定块识别哈希值;确定所述数据窗口的所述块识别哈希值是否匹配指纹或存储的伪指纹;当确定所述数据窗口的所述块识别哈希值不匹配所述指纹或所述存储的伪指纹时,确定所述数据窗口是否是所述存储对象的数据结束;当确定所述数据窗口是所述存储对象的所述对象结束时,定义所述存储对象中对应于所述数据窗口的块的块边界并且存储所述块的块边界;及当确定所述存储对象的所述数据窗口是所述存储对象的所述数据结束时,存储所确定的块识别哈希值为所述存储对象中对应于所述数据窗口的所述块的伪指纹在所述存储器中。11.如权利要求10所述的计算设备,其中所述操作还包括:确定关于所述存储对象的所述块的块唯一性哈希并且在用于所述存储对象的所述块的重复删除索引中存储块唯一性哈希信息。12.如权利要求10所述的计算设备,其中确定所述块识别哈希值是否匹配已知的指纹...

【专利技术属性】
技术研发人员:M·亚库谢夫M·A·史密斯
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1