分类: 服务器与存储
2008-07-19 22:39:15
在本篇文章中,我们将会从多方面探讨重复数据删除,并澄清以下问题:
1. 什么是重复数据删除? 为什么该技术适合备份应用?
2. 重复数据删除的重大意义及其客户价值
3. 影响重复数据删除效率因素
4. 对比单一实例存储,它的优势又在哪里?
什么是重复数据删除?
按照ESG(Enterprise Strategy Group)的定义,重复数据删除是一个减少或消除冗余文件、字节或数据块的过程,从而确保只有“独一无二”的数据被存储到磁盘。重复数据删除又被业界称为容量优化保护技术(简称为COP技术)。COP技术被用来降低数据保护时对容量的需求。
由于我们存储的数据具有很高的共性——用户之间、服务器之间甚至同一文件(如Office文档)的内容是通用的。重复数据删除按自然边界把数据拆分为非常细粒度的子块单元,用指针代替相同的子块单元,从而达到显著降低存储空间的目的。利用重复数据删除,1TB的备份数据可根据备份数据的共性,存储为300-700GB不等。
重复数据删除的真正价值在于处理已存储过的数据,特别是以下情况:
• 从不同的服务器备份相同的数据(公用操作系统文件、应用程序文件甚至电子邮件和附件)
• 大部分内容为“静止”的“活跃”数据,例如数据库、文档、电子表格和演示文稿
• 已备份过一次的数据
最值得注意的是最后一种类别。由于备份操作具有高重复性的特征,日备份和周备份的数据大致相同,变化率至多只有5-10%。因此,可以利用数据重复删除技术进行高效的后续备份。特别是针对完全备份的应用场景,如果每天都做完全备份,在这种情形下,每月实现10:1到50:1的备份比率是完全可能的。
影响重复数据删除效率因素
重复数据删除的客户价值是多方面的,但是最显著的优点是解决了一直困扰备份恢复业界多年的“容量膨胀”问题,因为重复数据删除可以在后端大为减少备份数据量。
见下图图示:该图中以相同颜色的块表示重复数据块。重复数据删除的效率取决于应用和数据类型,就像图示中具有相同颜色的块除保留一个外,其余的都会被过滤掉。
重复数据删除的处理粒度越细,则重复数据删除的效率越高。一般的重复数据删除是在文件级实现的,虽然有减少备份数据的作用但其效率明显不如在字节级实现的重复数据删除。同样,在块级实现的重复数据删除比字节级实现的效率更高。
我们通过以下的例子来说明处理粒度对重复数据删除而言的重要性:我们创建一个1MB的PPT演示文档,然后以邮件附件形式将其发送给20位员工,在传统备份环境下(没有重复数据删除),虽然文件没有任何变化,但每个附件都会在每晚完全备份过程中被全部备份,耗费不必要的磁盘容量(20×1MB)。即使是小公司,考虑到磁盘物理容量、功率和冷却等情况,此冗余成本也颇为可观。然而,文件级重复数据删除只保存一份PowerPoint文档备份,所有其他附件(如重复的拷贝)都被“指针”替代,从而释放磁盘空间容量,并在客户需要的情况下延长保留时长。
更多粒度的重复删除方法-基于字节级和块级的重复数据删除作了进一步的优化,它将1MB的PPT演示文档看成是由很多的数据块或字节单元组合而成,通过查看构成新1MB文件的每个片段与已经存储的数据块或字节单元进行比较,在新文件中用指针替代重复元素,而不用重新存储。
除了处理粒度之外,影响重复数据删除比的因素还有数据类型、数据的变化率以及数据的保留时间等等,这些都会影响实际的重 复数据删除效率。根据ESG实验室对几种不同的重复数据技术的测试结果来看,在不考虑处理粒度的情况下,基本上都能达到10倍或20倍的重复数据删除效率。
分清单一实例存储与重复数据删除
单一实例存储的英文全称是Single Instance Storage (SIS),单一实例存储被启用后,就会作为一个后台的服务运行,把内容重复的文件合并到一个共用的存储空间。重复的文件被该文件的链接(指针)替代,对于用户和应用程序来讲就像原始文件一样。
单一实例存储已经实施于大型企业环境,并极大的节约了重复文件占用的磁盘空间,从而最大限度地利用目前的存储资源。单一实例存储通过减少冗余数据释放更多的磁盘空间,识别相同的文件,仅仅在中心位置保存一个副本,并在SIS公共存储区域保存文件的指针而不是保存文件本身。简而言之,单一实例存储就是文件级的重复数据删除。
那么单一实例存储是不是与重复数据删除完全相同呢?
我们还是以上面的PowerPoint文档来举例说明,在发送1MB的PPT演示文档给20位员工时,如果我们采用了单一实例存储,系统会识别完全相同的文件,只存储一个PPT演示文档而用指针替换其他所有相同的副本,其总体占用的磁盘空间仍为1MB。从这点看,它与基于文件级的重复数据删除所达到的效果是一样的。
但是,当我们对接收到的PPT演示文档进行修改编辑,如另存为不同文件名的PPT演示文档。此时的情况将完全不同,单一实例存储无法在字节级或数据块级对接收到的数据进行分析,所以一旦作了修改,即使是同样内容的文件,它也会将其作为新文件进行完整保存。就上例而言,如果所有20位员工对其收到的邮件附件都作了或多或少的修改,那么最终备份时的磁盘占用空间将爆增到20x1MB,与传统的备份环境无异。
如果我们采用了基于字节级或数据块级的重复删除技术,由于它对接收的数据进行自然划分并进行全局粒度比较,从而最终仍会实现仅占用1MB左右存储空间的重复删除效果。
从上面的叙述我们可以看出,单一实例存储与重复数据删除有相同的地方,但其本质上是不一样的,在处理的思路上是一致的,但实现的方法和手段上是不同的。尤其是基于块级和字节级的重复删除技术,其重复数据删除的效率远高于单一实例存储,不仅对重复存储的应用如备份有效,而且在客户第一次备份数据或存储数据时,就可以发挥其高效的重复数据删除特性,达到备份完的数据量小于原始数据量的效果。
客户如何选择?
单纯从技术角度来看,单一实例存储与重复数据删除并无优劣之分,只不过适用的范围不同罢了,重复数据删除由于从物理层解析冗余重复的数据块,所以对于重复性较高的数据库和文件系统的备份任务,其压缩比相应较高。但是对于重复性较低的操作,如作为文件服务器、邮件服务器或者内容服务器的数据存储,以及对于压缩文件格式的数据处理,如:影像格式、音频格式以及扫描图片格式等的存储操作,则压缩比较低或者几乎没有压缩。
基于SIR(Single Instance Repository,单实例存储库)的单一实例存储,提供由策略驱动的冗余数据清除(RDE)引擎和备份/归档数据所需的目标库,这个目标库只存储每个文件和数据块的单个实例,虽然其划分的粒度不如块级重复数据删除,但对于日常文件的存储以及同一文件同时分发到多个不同客户端的应用,如邮件服务和文件服务器,如Microsoft在其Windows Storage Server中就采用了单一实例存储,并且由于该技术可以实现在数据存储库内对文件和目标进行版本跟踪,所以目前较多地应用在基于文件内容的寻址应用上,如EMC在全球率先推出内容寻址存储 (CAS) 解决方案Centera。
在选择采用何种数据存储技术之前,首先需要问问你自己:
公司的应用类型是否会导致数据块的重复率较高?公司执行的是磁盘到磁盘的备份策略,还是使用其他磁带介质来做增量备份?备份的数据类型?备份的保留周期?公司对于RPO和RTO的要求?是否有后端容量约束?是否已经没有足够的磁盘空间来存储所有的数据了?
除此之外,您还需要咨询厂商:
重复数据删除发生在何时?是在客户端传送数据之前?是在磁盘设备传送数据之后?还是在数据写入的过程之中?解决方案是否能够处理客户所有的备份流?如果重复数据删除在客户端进行,是否能快速生成可摄取的数据来满足高处理能力的系统要求?使用何种方法来确定需要复制的数据?