机房360首页
当前位置:首页 » 云存储 » 解决重复数据删除与可靠性的矛盾

解决重复数据删除与可靠性的矛盾

来源:机房360 作者:GOCN编辑 更新时间:2013-2-3 13:14:02

摘要:童复数据删除技术近年来获得了学术界和工业界的广泛关注,并日益成为大规模存储系统中的一个通用组件。重复数据删除是一种在文件内部层次通过无损的数据压缩方法来缩减垂复数据的技术。它首先将文件分割成互不交叠的数据块,然后将内容相同的块在存储系统中只保留一份。通过这种发现重复数据并且进行消除的方法,带重复数据删除的存储系统能够达到很大的无损数据压缩比,尤其在数据归档等应用类型的存储系统中具有很高的应用价值。

  童复数据删除技术近年来获得了学术界和工业界的广泛关注,并日益成为大规模存储系统中的一个通用组件。重复数据删除是一种在文件内部层次通过无损的数据压缩方法来缩减垂复数据的技术。它首先将文件分割成互不交叠的数据块,然后将内容相同的块在存储系统中只保留一份。通过这种发现重复数据并且进行消除的方法,带重复数据删除的存储系统能够达到很大的无损数据压缩比,尤其在数据归档等应用类型的存储系统中具有很高的应用价值。在带茧复数据删除的存储系统中,一个被保存的数据块可能属于同一个文件的不同部分,也可能属于多个文件的不同部分。

  一些用户或者应用软件经常使用复制重复数据的方式来提高数据的可靠性。而在重复数据删除的系统申,这些重复的数据却被缩减成了一份以提高存储空间利用率,这就又降低了数据可靠性,或者说提高了数据出错的概率。而且,如果多个文件共享同一份去重后

  的数据块,那么这种数据块的损坏将会导致多个文件无法访问,进而影响到了这些文件包含的所有数据块的可靠性,即该数据块的损坏所导致的可靠性降低,与其包含的数据量所占比茧不成比例。如果一个数据块的重要性是由其丢失所造成的数据丢失量来衡量的话,那么传统存储系统中各个数据块是同等重要的,而带重复数据删除的存储系统中因为数据块可能被多个文件所包含和共用,故其重要性是不同的。特别是当一个数据片段i损坏时,则系统中不可访问的数据最可表示为

  Lossi=commonalityi*chunksize             (4-1)

  由上述分析可知,在带重复数据删除的存储系统中如何保证高数据可靠性是一个十分重要的问题。虽然针对存储系统中数据可靠性已经有了许多研究工作和成果,但是重复数据删除的存储系统,尤其是大规模存储系统中的数据可靠性,却面临着一些新的问题和挑战,现归纳如下。

  (1)可靠性主要是依靠数据冗余来获得的,因此重复数据删除和可靠性保证在很大

  程度上是相互矛盾的。一种比较自然的想法是根据数据块的重要性为其保存若干份副木,如Bhagwat等人提出的方法[100]。但是这种方法需要占用很大的存储空间,并且系统通信量也随着副本份数的增多而增大。因此,有必要对存储空间利用率和数据可靠性进行权衡考虑。

  (2)在重复数据删除的存储系统中使用的分块算法 (如 Rabin Fingerprinting[57]和Metadata aware chunking[101])生成的数据块通常是变长的。而大多数可靠性保证算法都是针对定长数据块的,如XOR-based coding[102]、纠错码Error correcting coding(ECC)和基于复制的可靠性保证机制[34].[107]。而且,变长的数据块会导致存储设备产生许多磁盘碎片,以及大量的磁盘随机读/写,使得存储系统低效。因此,有必要对如何利用现有的可靠性保证算法对变长数据块起到有效的作用这一间题加以专门的考虑。

  (3)因为数据块可能被多个文件所包含,所以负载均衡就成为一个在设计数据冗余和分布算法时需要考虑的重要因素。可以针对运行时的访问热点利用冗余数据块来提供动态的负载均衡。

  目前常用的刀法是直接使用RAID作为底层存储,该方法对上层透明,容易实现知部署。但是RAID系统的容错能力有限且很难扩展。另外,类似RAID系统的数据恢复时延大,恢复时间长[108],[109],因此并不适用于大规模存储系统。Bhagwat等人[100]提出了根据数据块重要性为其保存若干份副本的方法。该方法取得了一定的效果,但需要占用很大的存储空间,还增加了系统通信量,在大规模存储系统中表现低效,而且其没有考虑数据块的实际放置方法。

  针对以上问题,本章提出了一种新的用于带重复数据删除的大规模归档存储系统的数据可靠性保证机制——R-ADNAD。它将去重生成的变长数据块打包成定长的数据对象,然后使用能够比简单复制机制提供更高容错度的ECC纠锚编码[107]来生成新的带纠错功能的数据对象,再分布到根据各存储节点运行时的状态和出错的概率动态挑选出的存储节点冗余组 (Redundancy Group)中。这样,在部分符储节点发生故障肘,R-ADMAD就可以在运行时分布式地恢复出错的数据。

  R-ADMAD利用ECC编码算法,茬重复数据删除的大规模存储系统中提高数据可靠性,并且可以在存储究间利用率和可靠性之间进行细致的调节和权衡。这在RAID类系统和基于复制冗余的机制下是不可能实现的。通过使用定长数据对象进行存储和数据纠错,R-ADMAD也优化和提高了存储系统的性能。通过在运行时动态分布式地恢复数据,R-ADMAD能够极大地缩短数据的恢复时延,并且能够在不需要超负荷存储节点参与的前提下提供动态的负载均衡。

  实验结果表明,R-ADMAD能够在保持与使用RAID类系统纠错机制相同的空间利用率和性能。同时,提供与使用多倍复制冗余机制的系统相近的数据可靠性和可扩展性。例如,在一些数据集下,一个典型的Tornado lO0/68的R-ADMAD配置可以提供与RAID5 2/3配置相近的存储空间利用率,而其可靠性与3倍复制冗余的配置相近,比RAID5 2/3的可靠性高大约10%,同肘数据块平均恢复时延只有RAID5 2/3的33%。

  责任编辑:GOCN

本文地址:http://www.jifang360.com/news/201323/n246944998.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
更多
推荐图片