文档介绍:(2011届)
毕业论文(设计)
文献综述
题目: 重复数据删除中的可变分块算法
学院: 商学院
专业: 信息管理与信息系统
班级:
学号:
姓名:
指导教师:
教务处制
一、前言部分
在存储备份过程存在大量内容相同的数据,将这些内容相同的数据删除,只保留其中一份。这种技术称为重复数删除技术。重复数据删除技术的宗旨就是为企业用户提供重复数据的备份解决方案,增加有效存储空间,提高存储效率,使企业备份解决方案更加完善、高效。按照部署位置的不同,重复数据删除可分为源端重复数据删除和目标端重复数据删除。源端重复数据删除是先删除重复数据,再将数据传到备份设备。目标端重复数据删除是先将数据传到备份设备,存储时再删除重复数据。按照检查重复数据的算法不同,重复数据删除可以分为对象/文件级和块级的重复数据删除。对象级的重复数据删除保证文件不重复。块级重复数据删除则将文件分成数据块进行比较。根据切分数据块方法的不同,又可分为定长块和变长块的重复数据删除技术。变长块的重复数据删除,数据块的长度是变动的。定长块的重复数据删除,数据块的长度是固定的。根据应用场合的不同,可以分为通用型重复数据删除系统和专用型重复数据删除系统。通用型重复数据删除系统是指厂商提供通用的重复数据删除产品,而不是和特定虚拟磁带库或备份设备相联系。专用型重复数据删除系统是和特定虚拟磁带或备份设备相联系,一般采取目标端重复数删除方式[1]。
根据目前的研究现状,我们可以分析得出,随着重复数据删除技术的研究与应用,其理论得到不断发展和完善,人们对重复数据删除的认识也越来越清晰。但是,如何充分挖掘数据的内在特性,将其应用到已有的技术中,发挥各技术的优势,弥补其中的不足是一个可深入探究的领域;从重复数据删除技术的可靠性研究角度,如何在吸收现有成果的同时,引入其他机制打破现有技术的局限性是一个需要更深入研究的方面;从重复数据删除技术的性能研究角度,如何融合各种现有技术的同时,提供通用性、可扩展性和自适应性也是一个需要更深入研究的方面。
二、主题部分
在关于重复数据删除中的可变分块算法的实现上,本文运用VC2005中的MFC,在MFC中可以拥有很好界面操作,同时C++在各个系统有很好的兼容性。
在算法设计方面,我在文件分块方面,采用rabinhash算法对于文件分块(同时对于数据块有1kbit到8kbit的限制)时的31bit的数据进行加密,让后对于所得的hash值进行32的模值运算,得到模值为0的hash值的指纹为分块指纹,记录下分块的位置,同时对于每一个分块的数据块进行MD5算法求hash值,保存分快点位置和对应的MD5的值。当更新文件到来时,对于更新文件采取相同的算法然后比较两个文件的hash值对于不同hash值的数据块采用基于CDC的算法。对于文件进行更新。在对于更新的文件在对于其进行指纹和MD5运算计算hash值,然后跟新指纹库和hash值库,保存下来。
rabinhash算法满足两个规则:(1)hash值相同的时候内容不一定相同,hash值不同的时候内容一定不同。(2)hash的冲突尽可能的频繁,这样可以避免文件块变得异常的大。同时这个算法扥到一个9到10位的10进制hash值方便下一步计算。这样在于文件的指纹计算上有