一种基于重复数据删除的差量压缩方法

文档序号:6573809阅读:466来源:国知局
专利名称:一种基于重复数据删除的差量压缩方法
技术领域
本发明属于计算机存储的数据压缩领域,更具体地,涉及一种基于重复数据删除的数据差量压缩方法。
背景技术
近年来,随着计算机技术和网络的发展普及,全球的数据信息存储量呈爆炸式增长的趋势。虽然存储设备的售价一直在不停的下降,但也远远赶不上数据扩张增长的速度。重复数据删除(Data Deduplication)作为一种通过大规模地有效地消除冗余数据的技术,成为了近年来存储系统研究的热点。简单来讲,目前新兴的重复数据删除就是一种通过大规模地有效地消除冗余数据,从而降低数据存储成本的重要技术。举例来说现在某核心部门有200GB的数据需要每天备份,那么一年就需要备份73TB,事实上每天修改的数据不到1GB,这样导致了很多冗余数据重复备份存储。而传统的备份存储技术不能识别备份数据中 的冗余数据,因而会备份大量的重复数据,无端浪费了网络带宽和存储空间,降低了数据备份和归档的存储效率。随着备份次数的增多和备份数据量的迅猛增长,存储系统中的冗余数据越来越多,消耗在冗余数据上的存储和管理资源会成倍增长。而重复数据删除技术正好迎合了这一需求,通过有效识别和消除重复的冗余的数据降低数据存储管理的开销和提高存储资源的利用率。但是随着重复数据删除技术的发展,重复数据删除技术也面临诸多的挑战。由于传统的重复数据删除技术是基于数据块的指纹来进行重复数据判断,所以这限制了重复数据删除技术只能识别完全重复的数据块,而不能识别那些很相似的数据块。比如两个数据块Al和A2仅几个字节不同的情况,虽然Al和A2接近完全相似,但是重复数据删除技术会产生截然不同的数据指纹从而忽略了对这些相似数据的处理。于是差量(Delta)压缩技术就被提出来应用在这种场合,差量压缩是一项高效的数据压缩技术,它能够根据引用数据块4对其相似数据块Ai进行高度压缩。数据块的相似度越高,则压缩效率越高。如公式所示,把4和Ai输入Delta算法器,Delta算法器会输出一个差量数据Λ ra代表文件Ai的压缩版本。如需要解压数据Ai,则读取差量数据Λ u和引用数据块\即可以计算得出数据

权利要求
1.一种基于重复数据删除的差量压缩方法,其特征在于,包括以下步骤 (1)对数据流中的文件进行分块,得到多个数据块; (2)计算每个数据块的数据块指纹,用于重复数据查找; (3)对所有数据块进行分组,以建立数据块组及其双向链表,并对数据块组内的每个数据块进行重复数据删除的指纹查找,以确定是否存在指纹记录,如果有指纹记录,则标记该数据块为重复数据块;如果没有,则标记该数据块为非重复数据块; (4)对于重复数据删除处理后的数据块组,利用该数据块组的双向链表中的重复数据信息进行基于局部性的相似数据查找,具体包括如下子步骤 (4-1)查找数据块组所在的双向链表,设置计数器i=l ; (4-2)判断双向链表中的第i个数据块是否为重复数据块;如果是,则取出该重复数据块对应的重复数据块Cd所在数据块组的双向链表,设置j = i,并转入步骤(4-3);否则设置i=i+l,并进入步骤(4-7);在这里,称重复数据块CdS重复数据块的引用数据块; (4-3)判断第i-Ι个数据块是否为空值,或是重复或相似数据块,如果都不是,则转入步骤(4-4);若是,则进入步骤(4-5); (4-4)对第i-Ι个数据块读取重复数据块Cd所在数据块组的双向链表所对应的数据块,把该数据块作为差量压缩的引用数据块,对第i_l个数据块和引用数据块进行差量压缩并判断压缩效率是否小于1/2,如果压缩效率小于1/2,则认为第i-Ι个数据块不是相似的数据块,并进入步骤(4-5);如果压缩效率大于等于1/2,则标记第i-Ι个数据块和引用数据块是相似的,则设置i=i_l,并返回步骤(4-3); (4-5)判断第j+Ι个数据块是否为空值,或是重复或者相似数据块,如果都不是,则转入(4-6);若是,则设置i = j+Ι,并返回(4-7); (4-6)对第j+Ι个数据块读取重复数据块Cd所在数据块组的双向链表所对应的数据块,把该数据块作为差量压缩的引用数据块,对第j+Ι个数据块和引用数据块进行差量压缩并判断压缩效率是否小于1/2,如果压缩效率小于1/2,则认为第j+Ι个数据块不是相似的数据块,则设置i = j+Ι,并进入步骤(4-7);如果压缩效率大于等于1/2,则标记第j+Ι个数据块和引用数据块是相似的,则设置j = j+1,并返回步骤(4-5); (4-7)判断第i个数据块是否为双向链表中的最后一个数据块,如果是,则过程结束,否则返回步骤(4-2); (5)对该数据块组进行相似判断补充; (6)重复执行步骤(4)和(5),直到处理完步骤(3)中划分的所有数据块组为止。
2.根据权利要求I所述的差量压缩方法,其特征在于,步骤(2)中采用SHA-I算法、SHA-256或SHA-512算法计算每个数据块的数据块指纹。
3.根据权利要求I所述的差量压缩方法,其特征在于,数据块组的大小为2MB。
4.根据权利要求I所述的差量压缩算法,其特征在于,步骤(4)具体为,对于重复数据删除处理后的数据块组,利用该数据块组的双向链表中的重复数据信息进行基于局部性的相似数据查找;通过查找重复数据块相邻的非重复数据块,将其认定为潜在的相似数据块,差量压缩这些数据块和对应的引用数据块块,并验证这些数据块和引用数据块真实相似性。
5.根据权利要求I所述的差量压缩方法,其特征在于,步骤(5)具体为,遍历该数据块组中的双向链表, 对于仍然非重复并非相似的数据块,计算该数据块的一个低开销的超级指纹,通过查找超级指纹索引表判断是否有匹配的超级指纹,如果有,则读取出匹配的超级指纹所指的引用数据块,标记当前数据块和引用数据块相似,并对这两个相似数据块进行差量压缩;若没有,则继续遍历双向链表。
全文摘要
本发明公开了一种基于重复数据删除的差量压缩方法,包括以下步骤对数据流中的文件进行分块,得到多个数据块,计算每个数据块的数据块指纹,用于重复数据查找,对所有数据块进行分组,以建立数据块组及其双向链表,并对数据块组内的每个数据块进行重复数据删除的指纹查找,以确定是否为重复数据块,对于重复数据删除处理后的数据块组,利用该数据块组的双向链表中的重复数据信息进行基于局部性的相似数据查找,即将那些跟重复数据块相邻的非重复数据块认定为潜在的相似数据块并加以差量压缩验证其相似性,最后对数据块组进行基于相似性的相似性数据查找补充。本发明具有相似数据查找快、计算和索引开销少、数据压缩效率高的优点。
文档编号G06F17/30GK102831222SQ201210303650
公开日2012年12月19日 申请日期2012年8月24日 优先权日2012年8月24日
发明者冯丹, 夏文, 江泓, 田磊, 付忞 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1