删除备份系统中的重复数据

日期: 2007-12-20 作者:杨涛 来源:TechTarget中国

  就在几年前,一提起备份大家就自然而然地想到磁带,但是在数据量爆炸式增长的今天,磁带技术由于其性能以及可靠性方面的固有缺陷变得越来越不能满足不断变化的业务需求,加之磁盘设备价格的下降,已经有越来越多的用户采用磁盘备份的解决方案。


  这在解决了性能和可靠性问题的同时又引入了新的问题——磁盘不能够象磁盘那样离线保存,不可能无限制的扩充容量,而用户数据增长的趋势却是无限的,并且由于其不能离线保存也导致了远程容灾数据的传送需要占用大量的带宽,这些都在经济上给用户造成了极大的压力。那么有没有办法来缓解甚至解决这种磁盘容量的有限性和数据增长的无限性造成的矛盾呢?答案是“重复数据删除(Data de-duplication)”技术。


  “重复数据删除”也称为“单实例存储(Single Instance Repository,简称SIR)”或者容量优化(Capacity Optimization),顾名思义,其根本作用是消减存储中的重复数据,以使任何一份数据只保存一份实例,达到充分利用存储空间的目的。


  它是近年存储领域涌现出来的一门新兴技术,各大竞争厂商都生成其重复删除比可以达到 1:20 左右甚至更高,被专家誉为是一种“将会改写存储行业的经济规则”的技术。然而在实际和用户的接触中,大多数用户对该技术还存在许多疑问,诸如:“和增量备份有何区别”、“会不会造成数据损害”、“会不会影响备份性能”等等。所以,在这里我们就详细探讨一下重复数据删除的工作原理。


  区别重复数据删除与增量备份


  首先,“重复数据删除”和“增量备份”是完全不同的概念。“增量备份”是指只备份变化的文件;“重复数据删除”则是指只备份不重复的数据。举个简单的例子说明它们的区别:比如有一个文件型数据库 Access的文件 finance..mdb ,如果向该库中新插入了几笔记录,那么则意味着该文件发生了变动。当采用增量备份时会检查该文件的标志位,并将该文件整个重新备份;而如果使用“重复数据删除”技术,则只会备份新插入记录的数据。


  从工作原理上讲,重复数据删除技术可以分为两大阵营,一种是基于哈希(Hash)算法的重复删除,一种是基于内容识别的重复删除。


  基于哈希算法的重复数据删除


  基于哈希算法的重复删除技术的代表厂商有昆腾、Data domain 、飞康等,其基本原理是利用SHA 、MD5 等算法将备份数据流切分成“块”,并且为每一块数据生成一组哈希码序列,不同厂商的技术可能对块大小的划分不同。


  当备份新的数据时,将按照索引把新数据的哈希码和已存数据的哈希码进行比较,如果发现有相同的哈希码存在,则说明该数据块已经存在相同的实例,此时新备份的数据将被放弃而在相应的位置代之以指向原有实例的指针。


  这种算法的优势在于算法简单,而缺点在于当磁盘容量不断增长时,数据块产生的哈希码表可能会超出内存的负载容量,这意味着进行哈希比对时需要去访问磁盘——这势必造成重复删除性能的迅速下降。


  另外,哈希算法可能会产生哈希冲突——简单的讲就是不同的数据块产生了相同的索引,这会导致有用的数据被错误的丢弃,从而造成文件的损坏。当然,产生哈希冲突的概率是非常低的,以 128 位的 MD5 码为例,两个哈希码产生冲突的概率为 2E-128,假设一个阵列中存储了 N 个数据块的哈希码,那么其中包含冲突的概率可以按照(1/2)*(N/2e64)e2 进行计算,这意味着只有数据块的数量级达到 2E64 时才可能产生一个冲突。


  基于内容识别的重复数据删除


     基于内容识别的重复删除技术的代表厂商有 Sepaton、ExaGrid Systems 等,其基本原理是对记录的数据格式进行比对。在备份数据时,该技术会读取数据并从中提取出每组备份集以及备份集中数据对象的元数据,存入到内嵌文件系统的数据库内。当有新的数据进入时则对新的元数据与数据库中的元数据进行版本比对。


     不同厂商技术的比对范围会有差别,有的只能在相同文件内进行比对,有的可以在整个阵列空间内进行比对。如果发现相同的元数据,接下来会对数据对象进行逐字节的比较,从而发现发生变化的数据——即使它们的元数据是形同的。如果数据对象确实是重复的,则删除该数据对象并代之以相应的指针。这种算法的优势在于可以避免哈希冲突,并可以利用元数据之间的联系更快的查找重复数据。


     从上面两种技术的原理来看,用户完全没有必要担心数据损失问题,并且,各大厂商也采取了严格的措施来确保数据删除的准确性——以 Sepaton 的Delta Store 技术为例,在删除重复数据时首先会做一次模拟删除,从而生成一份删除后的数据视图,只有验证表明该视图确实可以准确的恢复原始数据后才进行真正的重复数据删除并回收磁盘空间。


  重复数据删除安全吗?


     执行重复数据删除操作当然不可避免的会涉及到对性能的影响问题,无论是哈希码的比对还是元数据的提取,都会占用一定的主机资源。为了保证一定的性能指标,很多厂商都为备份设备配置了更强劲的处理能力。


     更多的厂商采用了备份结束后再执行重复删除的方式来解决该问题。这种做法是在备份完成之后在后台将虚拟磁带上的数据进行切分、分析和比对,从而避免了和备份过程争用系统资源。但是由于其首先要保存原始的数据,在分析过程中也会产生一些中间数据,所以会消耗更大的磁盘空间。另外,如果用户数据量过大,重复删除过程不能在下次备份启动之前完成则会影响到备份性能。


     综上所述,用户在考虑是否采用以及采用何种重复数据删除技术时应当考虑如下因素:首先,要考虑数据量的大小。只有数据量足够大时才可以在购买重复数据删除技术的成本和购买磁盘的成本之间求得平衡;其次,要考虑业务数据类型以及保存周期。静态数据——比如电子邮件等往往可以取得更大的删除比,而不断变化的数据删除比要低,另外,数据保存的周期越长则删除比越大;然后,还要考虑重复数据删除的性能。不同的数据切分算法、不同的数据比对算法以及不同的重复数据删除选择,都会对备份系统的整体性能产生影响。


     只有在充分考虑了自身环境以及不同的技术特点后,才能够获得最适合自己的重复删除技术。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

杨涛
杨涛

相关推荐