字体:  

评估重复数据删除解决方案

武家麟 发表于: 2008-5-28 14:31 来源: 动力存储

Larry Freeman, NetApp, Inc.


2007年9月
    毫无疑问,重复数据删除是数据存储界今年最热门的话题之一。重复数据删除背后的基本原理很简单:消除重复数据,减少备份及其它数据复制活动期间所需的存储容量。遗憾的是,许多供应商提供各种各样的重复数据删除方法,它们独特的优点背后隐藏着许多骗局,让用户受到蒙蔽。用户在考虑各种重复数据删除产品时,经常不会注意到关系重大的基本设计差别。
    本文将着重介绍重复数据删除的重要设计环节,帮助您识别真相,为您提供所需的信息,使您能够在检验重复数据删除解决方案时能够做出明智选择。
重复数据删除设计的考虑因素
    由于所有重复数据删除供应商都必须保留某种形式的目录,且必须支持某种形式的数据块引用,因此也就存在着五花八门的实施(它们都有着细微的差别,以便其申请专利)。以下部分阐述供应商在设计重复数据删除时所使用的方法。
    哈希法
    重复数据删除的出发点是比较两个数据对象。在新对象写入数据卷时,扫描整个数据卷来查找重复对象是不切实际的,同时也很困难。正由于此,重复数据删除供应商为每个新对象创建了小哈希值,并将这些值存储在目录中。
    哈希值又称为数字指纹或数字签名,它是从一个较长的数据串生成的较小编号。哈希值远小于数据对象本身,它是由一种数学公式生成的,两个不相同的数据对象不太可能(尽管不是不可能)产生相同的哈希值。
    哈希值可以像奇偶校验计算一样简单,也可以像SHA-1或MD-5加密哈希一样复杂。在任何情况下,一旦创建哈希值,就很容易进行比较,从而就可以识别重复数据删除的候选对象。如果发现匹配的哈希值,则有两种方法来处理这些“候选对象”。首先,您可以假定哈希值相同始终表示数据对象相同,然后直接进入重复数据删除阶段。或者,作为一种备用方法,您可以添加辅助操作来扫描每个数据对象,验证数据对象是否确实相同,然后再执行重复数据删除。


080526images20.jpg


    图3)哈希值是一种数字指纹,它代表着远远大于自身的对象。
    揭开骗局:哈希须知
    了解供应商的哈希算法是评估重复数据删除的重要标准。如果供应商单纯依靠哈希匹配来确定两个数据对象是否需要重复数据删除,那么您就接受了可能发生的误判匹配,这可能会损坏数据。
    如果发生了数据损坏,不管其损坏程度如何,都是不能接受的,必须确认供应商已经采取了相应措施,在完成哈希比较之后执行了辅助性的数据对象验证。或者,如果您愿意接受可能发生的误判哈希匹配,且优先考虑重复数据删除的速度,则“受信任哈希”设计或许可以满足您的需要。
    索引
    识别出重复对象(并执行可选验证)后,就该执行重复数据删除了。您可能会发现,各供应商会采用各种不同的方法来修改数据指针结构。不过,所有形式的数据指针索引都可以归为两大类:
哈希目录:哈希值目录用于识别重复数据删除的候选对象。某个系统进程将识别重复对象,数据指针将被相应地修改。目录重复数据删除的优点是,目录只用来识别重复对象;数据对象的实际读取或写入过程中不需要访问该目录。该任务仍由普通的文件系统数据结构来处理。


080526images3.jpg


    图4)目录索引:该文件系统控制重复数据块的数据块共享。
查找表:查找表延伸了哈希目录的功能,使哈希目录能够利用哈希查找表来索引删除重复数据对象的父数据指针。查找表的优点在于,它能够在不支持多个数据块引用的文件系统上使用;使用查找表,单个数据对象可以存储和引用多次。


080526images4.jpg


    图5)查找表索引:数据块共享由查找表来管理和控制。
    揭开骗局:索引须知
    尽管看似细微的设计差别,重复数据删除索引实际上是评估供应商时的一个重要考虑因素,尤其是在其弹性方面。当您使用查找表来索引数据对象时,查找表自身会变成一个单点故障。查找表的任何损坏都可能导致整个文件系统无法使用。另一方面,基于目录的重复数据删除仅用于查找,与对象的实际读取和写入没有依赖关系。不过,目录重复数据删除要求本地文件系统支持多个数据块引用。
    如果弹性是首要考虑因素,那么基于目录的重复数据删除将是您的首选。如果产品支持的广度(包括远程系统)更为重要,那么查找式重复数据删除将是唯一选择。
选择内嵌式还是后处理式
    供应商设计的另一个差别是何时执行重复数据删除。这同样有两个选项:
内嵌式重复数据删除:在数据写入存储系统时执行重复数据删除。采用内嵌式重复数据删除时,通常是将整个哈希目录放入系统内存中,以实现快速的对象比较。内嵌式重复数据删除的优点是,它不需要实际地将重复数据写入磁盘。可以即时哈希、比较和重新引用重复对象。此方法的缺点是,在数毫秒时间内处理整个重复数据删除操作需要大量系统资源。采用内嵌式方法时,在快速哈希比较之外进行重复对象验证并不可行;因此这些系统通常要依赖“受信任”哈希比较,而不是验证对象是否确实相同。
后处理式重复数据删除:在数据写入存储系统之后执行重复数据删除。采用后处理式方法时,执行重复数据删除可以更轻松一些,它通常不需要使用大量系统资源。后处理式方法的缺点是,所有重复数据都必须先写入存储系统,需要占用系统更多的(尽管是临时的)物理空间。
揭开骗局:内嵌式与后处理式须知
    在确定采用内嵌式还是后处理式重复数据删除方面,应用场合比任何技术优点或缺点有着更大的关系。
    执行数据备份时,用户的目标是在允许的时间范围内完成备份。对备份执行重复数据删除时,用户的目标是释放这些备份多占用的存储空间。
    这两个目标不能相互冲突—重复数据删除所需的额外时间不能让备份超出指定的时间范围。应该进行评估,确定重复数据删除之后实现的空间节约是否能抵消重复数据删除的时间成本,不论是采用内嵌式还是后处理式方法来执行重复数据删除。
    在主存储和数据归档等其它应用场合中,不太适合使用内嵌式重复数据删除。在主存储的场合中,系统极少有额外性能空间来支持内嵌式重复数据删除。在归档数据的场合中,用户可能只需要在低活动期“清扫”重复数据的文件系统,类似于其它偶尔的存储整理事务。在这些环境中,后处理式重复数据删除是首选方法。
    作为底线,您应该评估应用环境和重复数据删除的“成本”。如果您优先考虑高速数据备份以及最大程度的空间节约,可选择内嵌式重复数据删除。如果您关注重复数据删除主存储或归档数据,那么最好选择后处理式重复数据删除。
    注:某些供应商最近设计的产品同时能够执行内嵌式和后处理式重复数据删除。如果您正在评估声明有此功能的产品,请确保用户可以选择重复数据删除模式,以便您可以根据应用场合的特点和存储系统的工作负荷来设定模式。
源或目标位置的重复数据删除
    选择重复数据删除供应商时,最终的设计标准是执行重复数据删除的位置。同样提供两种选择:在源位置或在目标位置。
源位置重复数据删除是指在源位置比较数据对象,这发生在数据对象被发送到目标位置之前(通常是数据备份的目标位置)。源位置重复数据删除的优点是,需要传输并存储在目标位置的数据较少。缺点在于重复数据删除目录和索引组件会分散在网络中,这可能会使重复数据删除对于管理员来说变得更加困难。
目标位置重复数据删除是指在数据对象达到目标位置之后进行数据对象对比。目标位置重复数据删除的优点是所有重复数据删除管理组件都集中在一起。缺点是必须在删除重复数据之前,通过网络传输整个数据对象。
    揭开骗局:源及目标位置须知
    选择源还是目标位置重复数据删除,这要根据您的目的来确定。如果您的主要目的是减少复制文件时的网络流量,那么只能选择源位置重复数据删除。如果您的目标是简化重复数据删除的管理、减少目标位置所需的存储量,则目标位置重复数据删除是首选方案。
重复数据删除的空间节约
    在仔细评估重复数据删除设计的所有环节并作出选择之后—您可以节约多少空间?
    是指在重复性数据备份的基础上,重复数据删除可以实现“基于时间”的空间节省效果。图6显示某个供应商理论上的按时间推算的空间节省。该图中显示的空间节省是基于高度冗余数据的反复备份。由于备份包含大部分未改动的数据,因此在存储第一个完整备份之后,所有后续的完整备份都可能需要频繁经历重复数据删除。
    但如果您不保留64个备份副本呢?如果备份的更改率高于图6示例的更改率呢?既然供应商营销部门提供的空间节约比例通常不能反映真实环境,那么备份数据集到底可以节约多少空间?


080526images5.jpg


    图6)备份随时间累积,重复数据删除比率随之上升。
    另外还要考虑非备份数据卷(如主存储和归档数据),基于时间的数据减少率这个规则对其不适用。在这些环境中,卷不接收稳定的冗余数据备份,但是仍可能包含大量重复数据对象。通过重复数据删除来减少这些卷的空间需求的能力,是通过空间术语来衡量的。换句话说,如果通过重复数据删除,500GB数据归档卷可减少到400GB,则空间(卷)需求减少了100GB,减少率为20%。


080526images6.jpg


    图7)用户应寻找机会减少备份数据和非备份数据。
    揭开骗局:空间节约须知
    评估重复数据删除的空间节约时,应该有两个目标。
    首先,检查备份数据。如图7所示,备份更改率为2%时,合理的空间节省介于5:1到20:1之间(随时间推移)。如果您在磁盘上存储超过20个备份副本,或者更改率低于2%,则重复数据删除比率将上升。相反,如果您保留更少的备份副本,或者数据更改率高于2%,则重复数据删除的空间节省比率将下降。
    其次,检查非备份数据。是否有可能消除这些卷上的重复数据?一般来说,如果您能够以1.25:1至1.75:1的比率减少这些数据,重复数据删除才合算。将这些卷的存储容量减少20%至40%,这可以看作是“存储折扣”。就目前的企业存储系统而言,每TB数据经常要花1万美元以上。能为您整个企业节约数TB的存储空间,就证明基于卷的重复数据删除值得实施。