WatchStor.com — 领先的中文存储网络媒体 | 51CTO旗下网站

评测导购 > 数据保护 > 正文
重复数据删除产品技术漫谈
作者: 佚名 2013-04-26 15:10 【比特网】

重复数据删除市场可谓风起云涌,从备份厂商到存储厂商都推出了相应的产品,涵盖了软件和硬件,涉及主存储系统和备份存储设备,一时让人眼花缭乱,难以分辨孰优孰劣。本文透过产品,对重复数据删除的原理、相关术语、模式等要素进行了简明扼要的分析,最后为用户选择重复数据删除产品提供相关建议。

数据缩减(data reduction)

数据缩减(data reduction)是能够降低主存储系统磁盘使用空间的技术总称,数据简缩技术可以分为两类:压缩和重复数据删除。压缩通过把文件中一些无用的数据,例如前置零和空格等删除掉,减少文件占用空间;但压缩仅限于单个文件,无法跨越多个文件,这限制了压缩技术缩减数据的能力。

重复数据删除产品技术漫谈
重复数据删除结构图

了解重复数据删除

目的:通过删除重复数据,节省磁盘使用空间,保护现有存储投资。

原理:在某一级别(文件级、数据块、字节级)通过一次或多次使用哈希算法(MD5 或者SHA-1)或其他相关算法查找重复数据。重复数据只保留一份,其他重复数据用指针替代。

应用:可以在数据备份时进行重复数据删除,同时主存储也支持重复数据删除。备份软件和备份介质(主要应用为虚拟带库(VTL))及主存储设备都提供数据去重功能。

熟悉重复数据删除

备份软件

一般来讲,使用备份软件进行重复数据处理涉及以下4个步骤:(1)将需要备份的文件分割为“块”;(2)采用哈希算法为每个“块”计算一个哈希值;(3)和备份服务器哈希表数据库中的数据进行比对以确定是否存在重复数据;(4)用指针代替重复的数据块并将非重复的数据块传输到目标存储设备。

备份软件可以在源端和目的端进行重复数据删除处理,其主要区别是:“源端去重”在备份客户端执行上述四个步骤,而“目的端去重”在备份服务器上处理。

产品举例:Commvault Simpana 9.0,嵌入式块级重复数据删除解决方案,可以在客户端系统删除重复数据,极大减少网络中的数据传输量;统一的操作视图和启用重复数据删除的复选框简化了管理。

硬件产品

可以在三个技术维度对重复数据硬件进行划分:(1)按照写入数据的时间点可以分为联机去重(Inline,有些技术文章称之为in-band)和后处理去重(post-process,有些技术文章称之为out-of-band);(2)按照对重复数据处理方式的不同可以分为:逆向引用(reverse referencing)和前向引用(forward referencing);(3)按照去重粒度可以分为文件级、块级和字节级去重;块级去重按照数据块大小是否可改变分为固定块和可变块。

Inline/in-band:首先进行“去重”操作,然后再进行“写入”操作。大量的备份数据流到达具有去重功能的硬件设备时,首先驻留在内存中;重复数据删除引擎对备份数据块进行辨识,判断是否存在已保存过的数据块:如果存在对应的数据块,写入指针代替实际数据块的写入过程。否则直接写入该新数据块。

Post-process /out-of-band:大量的备份数据流直接写入具有去重功能的硬件设备,随后启动单独的进程读取已写入磁盘的数据块,进行重复数据删除处理过程:如果存在重复的数据块,删除该数据块并用指针替代;否则将该新数据块留在磁盘上,而无需任何其他操作。

Inline vs.Post-process:Inline实际是实时消重,Post-process实际是异步消重。两者之间的根本区别是消重进程在哪里读取原始数据:如果是从内存中读取,那么就是实时消重;如果是从磁盘中读取,那么就是异步消重。需要指出的是,进行数据备份时,Post-process等待的是一份拷贝的结束,而不是所有备份任务结束后才能进行去重处理。去重和数据备份是可以并行进行的。

reverse referencing:即数据只有第一次是完全写:当系统发现当前处理的数据块与已保存的数据块内容相匹配时,保留之前存储的旧数据块,在旧数据块处写入一个新指针,而不是将新数据块写入磁盘。去重过程是不断为新的冗余数据块写入指针的过程,这可能会导致新数据碎片不断增加。

forward referencing:即完整写入最新的数据:当系统发现当前处理的数据块与已保存的数据块内容相匹配时,将新数据块写入磁盘,删除旧数据块并将旧数据替换成一个指向新数据块的指针。去重过程是不断写入新数据、删除旧数据、替代旧数据为指针的过程。最新备份的数据物理上保持连续,恢复最新数据备份比reverse referencing更快,但是旧备份对应的数据在物理上将变得越来越随机。

文件级去重:通常也称为单实例存储(SIS),在文件系统中检查并判断两个文件是否完全相同,如果发现两个相同的文件,其中一个就会被指向另一个文件的指针所取代。

块级去重:将所有的文件分解成数据块,然后通过散列算法,为每个块创建一个哈希值,并与其他所有数据块的哈希值进行比对,如果两个数据块的哈希值完全一致,其中一个块就会被删除,并用指向另一个块的指针来代替。不同产品检查数据块大小各不相同,一些供应商选择固定大小的数据块,一些则使用不同大小的数据块。

固定块:大小可能为4KB、8 KB 或更大。块大小越小,被判定为冗余的几率越大,存储的数据也更少。

可变块:各种规模的块能够提高冗余的检测几率,尤其是在文件发生变化之后。即使文件或数据块发生变化,也能发现重复的数据块。

固定块vs.可变块:如果文件发生变化,固定块可能无法检测出新的数据冗余,影响去重效果。可变块通过调整块大小,能够发现更多的数据冗余;但会增加去重计算时间,这影响了去重效率。

字节级去重:通过逐个字节的比较实现去重,是能够保证充分去除冗余数据的唯一方法,但是对性能影响较大。

备份存储举例:EMC Data Domain,基于8K大小的块,采用Inline 重复数据删除技术,在网络上仅发送经过去重且已压缩的数据块。能够与所有主流的企业备份和归档应用程序配合运行,轻松集成到现有存储基础架构中;借助Stream-Informed Segment Layout (SISL) 扩展体系结构,磁盘库的性能主要取决于CPU频率,最大限度减少了实现关键单数据流操作的吞吐量性能所需的磁盘轴数量。

主存储举例:NetApp FAS和V系列,提供了基于Data ONTAP 操作系统的重复数据删除,利用并改进了已有的WAFL(write anywhere file layout)文件系统技术。基于4K大小的块,通过一个低优先级的后台进程在系统非高峰时期运行Post-process去重,对系统性能无明显影响。对可能存在冗余的数据块将再次进行逐位(bit)比较,丢弃完全相同的数据块。

主存储vs.备份存储:由于主存储系统中没有那么多的数据可以去重,磁盘空间的节省程度通常难以达到在备份系统中使用重复数据删除一样的水平。随着数据中心VMware服务器虚拟化技术的广泛应用,而虚拟磁盘VMDK 文件中通常存在大量冗余数据,在VMware主存储上去重是主存储数据简缩的一个主要应用,一般可节省50%–70% 存储空间。

选择重复数据删除产品

硬件vs.软件

数据中心通常部署了备份软件对业务数据进行备份,咨询备份软件厂商数据备份过程中是否支持对重复数据进行删除。如果正在使用的备份软件中不提供重复数据删除功能,那么更换备份软件将是一项复杂的工程,采用基于硬件的数据去重设备可能一项相对轻松的工作。这种情况下通过备份软件直接把数据备份到去重硬件设备(通常为VTL),由硬件设备进行重复数据删除操作是更为合理的选择。

如何选择硬件

通过上述介绍我们发现,无论是哪种重复数据删除处理方式都没有绝对的优势,选择相关产品时需要根据生产环境进行具体分析。对于主存储,重复数据删除对性能的影响必须在可接受的范围内;对于备份存储,首要的一点是必须满足备份窗口的要求,在实际备份环境中进行最大备份负荷测试以确定哪种处理方式更适合实际的备份窗口要求。

在满足性能和备份窗口要求的前提下,考虑数据容量、性价比、服务支持以及厂商的专业背景等,同时产品的可扩展性也是需要关注的重点。

对备份硬件来讲,同时还需要关注现有备份软件集成度以及数据恢复时的性能表现。从重复数据删除系统中恢复数据,实际上是一个从包含有大量数据碎片的磁盘中读取数据的过程。在磁盘容量和碎片达到一定的数量级后,可能需要从数百个磁盘中经过数百次的磁盘寻道才能读出与之前同样多的数据。
【编辑推荐】
  1. 五种重复数据删除的介绍
  2. 重复数据删除 借助融合力量
  3. 你可能不了解的重复数据删除产品
  4. 采用重复数据删除技术的十个注意事项
  5. 网络存储影响重复数据删除技术的应用

标签:数据保护 存储资源管理 重复数据删除 

了不起的IT经理
LecVideo
论坛与活动