中国数据存储服务平台

盘点存储技术:重复数据删除技术漫谈

重复数据删除是一种目前主流且非常热门的存储技术,可对存储容量进行有效优化。它通过删除数据集中重复的数据,只保留其中一份,从而消除冗余数据。

一、重复数据删除的原理

每一个数据块通过散列算法(例如MD5 或者SHA-1)为每一个数据产生一个特定的散列值。将这个散列值与现有的散列值索引相比较,如果它已经存在于索引中,那么这个数据就是重复的,不需要进行存储。否则,这个新的散列值将被添加到索引中,这个新的数据也因此被存储。

要使重复删除平台处理更精确,就需要更大的索引。例如,基于文件的重复删除只需要一个百万大小或千万大小的单一散列值索引。相比之下基于块的重复删除会涉及到更多的单一数据块,这个数字通常会达到十亿级。这样精确的重复删除需要更强的处理能力以便可以为其提供更大的索引。除非硬件的设计与对索引的要求相适应,否则随索引的不断扩展,平台的性能将随之下降。

一般而言,散列算法很少会将两个不同的数据块产生出相同的值。当这样的“散列碰撞”发生时,系统就不会存储新的数据,因为系统看到同一个散列值已经存在。这被称为“false positive”(误报),会导致数据丢失。一些厂商结合不同的散列算法,以降低散列碰撞的可能性。另一些厂商还会检查元数据来确认数据,从而避免散列碰撞。

二、in-band(带内)重复删除和out-of-band(带外)重复删除的对比

目前重复数据删除有两种技术架构,即在线处理(in-line)和后处理(Post-Processing)。也有叫源端消重技术和目标端消重技术。In-line是指数据保存到二级存储系统前进行重复数据删除。这样降低了对存储性能和容量的需求,但是却增加了一个需要管理的设备,有可能影响备份的性能;而Post-process 是指在数据备份处理之后才进行重复数据删除。它需要暂时存储全部数据,因而需要更大的存储空间,所以虽然对备份性能影响较小,但减少备份介质数量的效果并不明显。In-band 处理效率较高,但处理速度会稍慢一些,因为额外的处理需要更多的存储时间,从而导致备份窗口占用更久的时间。Out-of-band 处理不会影响系统的性能,但它需要略多一些的磁盘空间。

In-band 的优点在于它只对数据执行一次处理。而缺点是,它会减慢写入备份的速度,影响备份窗口,具体情况视实施而定。在线(inline)阵营认为,虽然它们可能会在某种程度上减慢备份速度,但它们执行完成后,就完成工作了。但是out-of-band 仍然还有重要的工作未完成,即存储数据。In-band能够减少需要传输的备份数据量,从而简化了传统的远端备份问题。对移动办公的用户、远程的服务器和工作站,能高效地通过现有广域网(WAN)把数据传输给数据中心。

Out-of-band 处理的方式为,写入原始数据,读取,并确认其是否为冗余数据,若是,则用一个或多个指针进行代替。其优点是,out-of-band 能够提供并行处理(多处理器)能力解决问题,而in-band 只能为每个备份流提供一种处理能力。其缺点是,需要对数据进行多次读写,而多次的读写会导致磁盘空间的占用。另外,由于out-of-band 系统在完成重复数据删除之前,必须有足够的磁盘空间来存储最新的备份集,所以,out-of-band 处理方式需要比in-band 处理方式需要多一些磁盘空间。Out-of-band 阵营反驳说,减慢原始备份速度是不能接受的,但是他们能够为第二天的备份及时完成重复数据删除。

正因为In-band、Out-of-band各有优势,现在很多软件备份产品具有源端和目标端的重复数据删除功能,例如,CommVault的Simpana、EMC的NetWorker,IBM的Tivoli(TSM)管理系统和赛门铁克的NetBackup,都会在他们的软件中提供源和目标端重复数据删除功能。源端重复数据删除主要是适用于小数据集以及远程数据,而目标端重复数据删除主要是用于对大量的数据集合备份的情况下,这时备份客户端和备份服务器之间不受带宽限制。

虽然重复数据删除是一项对吞吐量很高的技术,大多数用户表示他们在这方面的体验并不明显。在选择重复数据删除产品的时候,我们建议用户首先考虑切身需求,这就包括了估算的数据增长速度、预算以及所需要的特性。相对而言,备份软件、虚拟带库的兼容性、可靠性、可操作性等更加重要。最后,要对重复删除产品进行足够数据量的输入的检测,以检验其是否满足你每天的备份数据量。如果你所购买的产品无法在第二天晚上备份任务开始之前,及时完成重复数据删除工作,那你肯定要有麻烦了

三、重复数据删除产品的去重比率

真要计算出你的数据的去重比率,并非易事。厂商所公布的去重比率其实是在一种特定条件下的人为控制因素介入之后的结果。“有厂商竟然夸张的声称可以达到400:1的比率,这种情况基本上你永远无法遇到。”  “假设你对一个由500个文件组成的数据集进行去重操作,为了便于备份,每个文件1GB大小。” EMC的CTO Dan Codd说道,“第二天,有一个文件变化了,你对其进行了去重操作,这样的话,备份相当于只备份了这个变化的文件,那么此时的去重比率是多少呢?你可以说它是500:1”。 

对于同一个重复数据删除过程,其结果随着你计算式所使用的时间段的不同而不同。“结果可能是40:1甚至20:1。因此这个指标仅有参考意义。

四、火星舱重复数据删除技术优势

火星舱提供数据块级重复数据删除功能,重复数据删除是在内部进行的,可根据文件系统的大小进行调整,不需要使用特殊的存储阵列来对数据进行重复删除。火星舱在数据集级上的适用性表明你只需对包含冗余数据的数据集进行重复删除,而不用牵扯到其他的数据集。由于它是内部重复数据删除功能,因此增加处理核心和内存就可以提高重复数据删除的速度。

目前数据备份的需求主要在数据中心、信息中心,而数据中心、信息中心需要备份的主要是数据库数据,并且数据中心、信息中心的瓶颈不在于网络带宽,但重复数据删除引擎通过检查冗余数据中的唯一重复特征来判断是否可以将冗余的部分存储为一个符号链接,从而降低数据对存储空间的需求。这个过程是一个极其消耗CPU资源的过程。所以一般源端的重复数据删除不能很好的运行在数据库或者其他事物性系统上,因为它会在主机端增加处理负载,可能高达25%。当这些类型的应用在目标端进行重复数据删除时就不会产生那种负载了。因此火星舱的重复数据删除无需担心由于重复删除处理使CPU 负担加重而导致备份服务器和二级存储目标之间出现瓶颈。

对于远程备份而言,火星舱是通过自己专有的远程传输技术来达到数据压缩、稳定传输的目的。而如果仅仅只考虑重复数据删除技术,会遇到网络断线数据重传等问题。

未经允许不得转载:存储在线 » 盘点存储技术:重复数据删除技术漫谈
分享到: 更多 (0)