论文部分内容阅读
随着近些年电子信息和数据的爆炸性增长,数据去重和差量压缩作为有效检测和消除大规模备份系统中冗余数据的关键技术,获得了越来越多的关注。相对于传统的哈弗曼编码和字典编码的压缩技术而言,数据去重和差量压缩具有更好的可扩展性,更加适应现在存储系统规模的增长,可有效地帮助存储系统节省存储空间和提高网络带宽利用率。但是数据去重和差量压缩面对现在非结构化数据的持续增长,仍然面临着诸多的问题和挑战。比如数据规模增长带来的重复数据和相似数据查找的磁盘索引瓶颈问题、数据去重和差量压缩带来的计算延迟与日益增长的存储和网络带宽的矛盾等。所以如何高效地压缩在存储系统中的海量数据,是现在数据去重和差量压缩研究的迫切需求和研究热点。随着数据去重的规模从TB向PB级扩展,指纹的存储索引管理逐步从内存走向磁盘,这导致了指纹查找速度越来越慢。针对这一问题,提出一种近乎精确的数据去重索引算法SiLo,能够有效挖掘和利用备份数据流中的相似性和局部性来达到很高的数据去重索引性能。具体而言,SiLo通过对备份数据流分成多个相似性单元并提取其相似性特征存放在内存中建立索引,通过挖掘这种备份数据流的相似性来大大减少去重索引的内存开销,通过对相似性数据的查找匹配再进一步进行具体的数据块指纹匹配;另外SiLo对多个连续的相似性单元组装成一个局部性单元,然后挖掘这种相似性单元的局部性来补充前面的基于相似性的重复数据检测。实验测试表明:SiLo通过有效地联合挖掘备份数据流的相似性和局部性,仅仅使用了目前主流的Extreme Binning去重系统1/10和ChunkStash去重系统1/25的指纹索引内存开销,同时获得了大于99%的冗余识别率和较高的指纹索引吞吐率。现有主流的数据去重技术采用了基于Rabin的分块算法、基于SHA-1的指纹算法,这使得数据去重技术在压缩存储空间的同时,不可避免地带来了计算开销和时延。针对这个问题,提出一套加速数据去重的流水线和并行计算的解决方案P-Dedupe,来降低数据去重中的计算延迟。P-Dedupe通过有效利用现在多核计算机系统的闲置计算资源,流水化数据去重的功能任务(即数据分块、指纹计算、指纹索引以及存储管理),并且集中并行化计算密集型的功能单元(即数据分块和指纹计算),最终达到降低计算时延的效果。其流水线去重子任务和并行哈希计算的理念符合多核和众核处理器行业的发展趋势。实验测试表明:P-Dedupe通过有效地并行数据去重任务和哈希计算,获得了2-4倍的数据去重系统吞吐率的提升。如何在数据去重系统中最大化地、高效率地检测和消除冗余数据,一直是数据去重研究的热点之一。针对这一问题,提出一种数据去重感知的相似数据检测和差量压缩算法DARE,利用现有的数据去重系统中的冗余数据信息来检测非重复但是相似的数据并进行差量压缩,进一步检测并且消除数据去重系统中的数据冗余,同时有效地减少在相似数据检测的计算和索引开销。具体而言,DARE首先利用重复数据的局部性来查找相似数据,即尝试对两个重复数据相邻的非重复数据块进行差量压缩从而判定其是否相似,然后对剩下的非重复非相似数据来计算超级特征值从而进一步补充查找相似数据并且进行差量压缩。实验数据表明:DARE仅仅使用了传统的超级特征值方法的1/4的计算开销和1/2的索引开销,而且多检测到了2~10%的冗余数据并获得了更高的系统吞吐率。差量压缩是一项有效消除相似文件和相似数据块中的冗余数据的经典压缩技术,但差量编码速率慢成为其应用和推广的潜在瓶颈。针对这一问题,提出一种新颖的基于数据去重启发的差量编码算法Ddelta,通过有效地结合数据去重技术中的基于内容分块算法来简化和加速相似数据的差量计算(即重复内容匹配)。Ddelta的具体内容包括:提出一种基于Gear哈希的分块算法并与基于Spooky哈希的指纹算法结合,加速了差量计算过程中的重复字符串查找的过程;针对基于内容分块算法导致的数据压缩率下降的问题,挖掘冗余数据的局部性,即在重复数据相邻区域贪心检测出更多重复的字节内容,从而保证了Ddelta差量压缩的效果。实验测试显示:相比较于传统的差量压缩算法Xdelta和Zdelta,Ddelta获得了2.5~8倍的差量编码加速比和2~20倍的差量解码加速比,且Ddelta达到与Xdelta和Zdelta近似的数据压缩效果。