Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1271050
  • 博文数量: 727
  • 博客积分: 10011
  • 博客等级: 上将
  • 技术积分: 8320
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-13 15:42
文章分类

全部博文(727)

文章存档

2011年(1)

2008年(726)

我的朋友

分类: 服务器与存储

2008-07-15 10:20:05

 


 

毫无疑问,重复数据删除是数据存储界今年最热门的话题之一。重复数据删除所采用的基本原理很简单:消除重复数据,减少备份及其它数据复制活动期间所需的存储容量。但是,在许多供应商提供的各种各样的重复数据删除方法中,除了其独特的优点之外往往还隐藏着许多陷阱,让用户受到蒙蔽。用户在考虑各种重复数据删除产品时,往往不会关注那些意义重大的基本设计差别。

 

本白皮书将着重介绍重复数据删除的重要设计环节,为评估者提供基本信息,帮助其辨明重复数据删除解决方案之真伪,在选购重复数据删除解决方案时能够做出明智选择。

 

重复数据删除即“删除重复数据”的过程。重复数据删除”一术语是多年以前由数据库管理员提出的,用来描述在合并两个数据库后删除重复数据库记录的过程。

 

在磁盘存储环境中,重复数据删除是指搜索重复数据对象(如数据块、数据束或文件)并删除这些重复数据的任何算法。当检测到重复对象时,其参考指针将被修改。该对象仍然可以定位和搜索,但它与其它相同的对象“共享”一个物理位置。此类数据共享是所有类型的重复数据删除的基础。

原理

 

无论操作系统、应用程序或文件系统类型如何,所有数据对象都是通过数据参考指针写入到存储系统中,没有参考指针将无法引用或检索数据。在传统(非重复数据删除)的文件系统中,数据对象不论其相似性一律存储在同一个文件系统中。在图 1 中,文件系统内存储了五个相同的对象,每个对象有着不同的数据指针。尽管所有五个数据对象都相同,但每个对象都是作为独立的实例存储,每个对象都占用物理磁盘空间。

 

数据对象参考指针

已分配

存储

已分配

存储

已分配

存储

已分配

存储

已分配

存储

 

 

 

 

 

 

 

 

 

1) 未经重复数据删除的数据

 


重复数据删除文件系统引入了两个重要的新概念:

 

·         维护一个所有数据对象的目录。此目录包含所有数据对象的记录,它利用哈希来识别每个对象的独特内容。本章后面的“重复数据删除设计的考虑因素”将详细讨论哈希法。

 

·         文件系统能够支持许多数据指针引用相同的物理数据对象。

 

编目数据对象、比较对象和重定向参考指针构成重复数据删除算法的基础。如图 2 所示,用单个主对象来引用多个相同对象,就可以将重复对象占用的空间归还给存储系统。

 

重复数据删除

目录/索引

数据对象参考指针

已分配

存储

免费

存储

免费

存储

免费

存储

免费

存储

 

 

 

 

 

 

2) 删除重复的相同对象可以得到可用空间。

 

 

由于所有重复数据删除供应商都必须保留某种形式的目录,且必须支持某种形式的数据块引用,因此也就存在着五花八门的实施(它们都有着细微的差别,以便其申请专利)。以下部分阐述供应商在设计重复数据删除时所使用的方法。

重复数据删除的出发点是比较两个数据对象。在新对象写入数据卷时,扫描整个数据卷来查找重复对象是不切实际的,同时也很困难。正由于此,重复数据删除供应商为每个新对象创建了小哈希值,并将这些值存储在目录中。

 

哈希值又称为数字指纹数字签名,它是从一个较长的数据串生成的较小编号。哈希值远小于数据对象本身,它是由一种数学公式生成的,两个不相同的数据对象不太可能(尽管不是不可能)产生相同的哈希值。

 

哈希值可以像奇偶校验计算一样简单,也可以像 SHA-1 MD-5 加密哈希一样复杂。在任何情况下,一旦创建哈希值,就很容易进行比较,从而就可以识别重复数据删除的候选对象。

 


如果发现匹配的哈希值,则有两种方法来处理这些“候选对象”。首先,您可以假定哈希值相同始终表示数据对象相同,然后直接进入重复数据删除阶段。或者,作为一种备用方法,您可以添加辅助操作来扫描每个数据对象,验证数据对象是否确实相同,然后再执行重复数据删除。

 

 

数据

对象

哈希

算法

 

 

算法

 

哈希

价值

 

 

3) 哈希值是一种数字指纹,它代表着远远大于自身的对象。

 

 

 


利弊

了解供应商的哈希算法是评估重复数据删除的重要标准。如果供应商单纯依靠哈希匹配来确定两个数据对象是否需要重复数据删除,那么您就接受了可能发生的误判匹配,这可能会损坏数据。

 

如果发生了数据损坏,不管其损坏程度如何,都是不能接受的,必须确认供应商已经采取了相应措施,在完成哈希比较之后执行了辅助性的数据对象验证。或者,如果您愿意接受可能发生的误判哈希匹配,且优先考虑重复数据删除的速度,则“受信任哈希”设计或许可以满足您的需要。

识别出重复对象(并执行可选验证)后,就该执行重复数据删除了。您可能会发现,各供应商会采用各种不同的方法来修改数据指针结构。不过,所有形式的数据指针索引都可以归为两大类:

 

·         哈希目录哈希值目录用于识别重复数据删除的候选对象。某个系统进程将识别重复对象,数据指针将被相应地修改。目录重复数据删除的优点是,目录只用来识别重复对象;数据对象的实际读取或写入过程中不需要访问该目录。该任务仍由普通的文件系统数据结构来处理。


 

 

哈希

目录

系统读取/写入请求

本地文件系统

 

 

 

 

 

 

 

 

 

 

4) 目录索引:该文件系统控制重复数据块的数据块共享。

 

 

 


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

 

系统读取/写入请求

哈希目录和查找表

本地文件系统

 

 

 

 

 

 

 

 

 

 

 

 

 

5) 查找表索引:数据块共享由查找表来管理和控制。

 

 


尽管看似细微的设计差别,重复数据删除索引实际上是评估供应商时的一个重要考虑因素,尤其是在其弹性方面。当您使用查找表来索引数据对象时,查找表自身会变成一个单点故障。查找表的任何损坏都可能导致整个文件系统无法使用。另一方面,基于目录的重复数据删除仅用于查找,与对象的实际读取和写入没有依赖关系。不过,目录重复数据删除要求本地文件系统支持多个数据块引用。

 

如果弹性是首要考虑因素,那么基于目录的重复数据删除将是您的首选。如果产品支持的广度(包括远程系统)更为重要,那么查找式重复数据删除将是唯一选择。


 

供应商设计的另一个差别是何时执行重复数据删除。这同样有两个选项:

 

·         内嵌式重复数据删除:在数据写入存储系统时执行重复数据删除。采用内嵌式重复数据删除时,通常是将整个哈希目录放入系统内存中,以实现快速的对象比较。内嵌式重复数据删除的优点是,它不需要实际地将重复数据写入磁盘。可以即时哈希、比较和重新引用重复对象。此方法的缺点是,在数毫秒时间内处理整个重复数据删除操作需要大量系统资源。采用内嵌式方法时,在快速哈希比较之外进行重复对象验证并不可行;因此这些系统通常要依赖受信任哈希比较,而不是验证对象是否确实相同。

 

·         后处理式重复数据删除:在数据写入存储系统之后执行重复数据删除。采用后处理式方法时,执行重复数据删除可以更轻松一些,它通常不需要使用大量系统资源。后处理式方法的缺点是,所有重复数据都必须先写入存储系统,需要占用系统更多的(尽管是临时的)物理空间。

在确定采用内嵌式还是后处理式重复数据删除方面,应用场合比任何技术优点或缺点有着更大的关系。

 

执行数据备份时,用户的目标是在允许的时间范围内完成备份。对备份执行重复数据删除时,用户的目标是释放这些备份多占用的存储空间。 

 

这两个目标不能相互冲突重复数据删除所需的额外时间不能让备份超出指定的时间范围。应该进行评估,确定重复数据删除之后实现的空间节约是否能抵消重复数据删除的时间成本,不论是采用内嵌式还是后处理式方法来执行重复数据删除。

 

在主存储和数据归档等其它应用场合中,不太适合使用内嵌式重复数据删除。在主存储的场合中,系统极少有额外性能空间来支持内嵌式重复数据删除。在归档数据的场合中,用户可能只需要在低活动期清扫重复数据的文件系统,类似于其它偶尔的存储整理事务。在这些环境中,后处理式重复数据删除是首选方法。

 

作为底线,您应该评估应用环境和重复数据删除的成本。如果您优先考虑高速数据备份以及最大程度的空间节约,可选择内嵌式重复数据删除。如果您关注重复数据删除主存储或归档数据,那么最好选择后处理式重复数据删除。

 

注:某些供应商最近设计的产品同时能够执行内嵌式后处理式重复数据删除。如果您正在评估声明有此功能的产品,请确保用户可以选择重复数据删除模式,以便您可以根据应用场合的特点和存储系统的工作负荷来设定模式。


选择重复数据删除供应商时,最终的设计标准是执行重复数据删除的位置。同样提供两种选择:在源位置或在目标位置

 

·         源位置重复数据删除是指在源位置比较数据对象,这发生在数据对象被发送到目标位置之前(通常是数据备份的目标位置)。源位置重复数据删除的优点是,需要传输并存储在目标位置的数据较少。缺点在于重复数据删除目录和索引组件会分散在网络中,这可能会使重复数据删除对于管理员来说变得更加困难。

 

·         目标位置重复数据删除是指在数据对象达到目标位置之后进行数据对象对比。目标位置重复数据删除的优点是所有重复数据删除管理组件都集中在一起。缺点是必须在删除重复数据之前,通过网络传输整个数据对象。

 

选择源还是目标位置重复数据删除,这要根据您的目的来确定。如果您的主要目的是减少复制文件时的网络流量,那么只能选择源位置重复数据删除。如果您的目标是简化重复数据删除的管理、减少目标位置所需的存储量,则目标位置重复数据删除是首选方案。

 

在仔细评估重复数据删除设计的所有环节并作出选择之后您可以节约多少空间?

 

重复数据删除供应商声称其产品可提供 20:150:1 甚至更高的数据减少比率。这些说法实际上是指在重复性数据备份的基础上,重复数据删除可以实现基于时间的空间节省效果。图 6 显示某个供应商理论上的按时间推算的空间节省。该图中显示的空间节省是基于高度冗余数据的反复备份。由于备份包含大部分未改动的数据,因此在存储第一个完整备份之后,所有后续的完整备份都可能需要频繁经历重复数据删除。

 

但如果您不保留 64 个备份副本呢?如果备份的更改率高于图 6 示例的更改率呢?既然供应商营销部门提供的空间节约比例通常不能反映真实环境,那么备份数据集到底可以节约多少空间?

 


6) 备份随时间累积,重复数据删除比率随之上升。

注:假定每个备份实例的更改
率为 2%

1

3

4

8

16

20

24

32

40

48

64

2

备份数量

5

36

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

8

16

20

备份数量

 

重复数据删除

效率 范围

(备份数据)

 

 

重复数据删除

效率范围

(非备份数据)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7) 用户应寻找机会减少备份数据和非备份数据。

评估重复数据删除的空间节约时,应该有两个判定标准。

 

首先,检查备份数据。如图 7 所示,备份更改率为 2% 时,合理的空间节省介于 5:1 20:1 之间(随时间推移)。如果您在磁盘上存储超过 20 个备份副本,或者更改率低于 2%,则重复数据删除比率将上升。相反,如果您保留更少的备份副本,或者数据更改率高于 2%,则重复数据删除的空间节省比率将下降。

 

其次,检查非备份数据。是否有可能消除这些数据卷上的重复数据?一般来说,如果您能够以 1.25:1 1.75:1 的比率减少这些数据,重复数据删除才合算。将这些数据卷的存储容量减少 20% 40%,这可以看作是“存储折扣”。就目前的企业存储系统而言,每 TB 数据经常要花 1 万美元以上。能为您整个企业节约数 TB 的存储空间,就证明基于数据卷的重复数据删除值得实施。

 

 

重复数据删除是一项重要的新技术,它很快就受到亟需控制数据增长的用户的欢迎。通过删除冗余数据对象,用户将立即从空间效率中获益。然而,在选择重复数据删除产品时,务必要考虑到产品设计的所有环节,包括哈希、索引、内嵌式或后处理式,当然还有空间节省效率。

 

目前许多供应商(相信还会有更多)都提供重复数据删除技术,采用的方法和技术各种各样。很明显,重复数据删除最终将成为对每个存储供应商的必然要求,颇似前些年快照技术。

 

良好的重复数据删除产品必须不能损害数据的完整性和可靠性。重复数据删除加大了数据损坏的影响。如果经重复数据删除的数据对象损坏,将会产生深刻的影响,因为许多其它文件和应用程序都在应用这个对象。供应商必须作 100% 的保证:他们的设计可以杜绝任何此类数据不一致问题。

 

重复数据删除必须能在现有用户环境中无缝地操作。用户不需要在重复数据删除周边构建存储基础设施;相反,重复数据删除必须能够融入用户的现有环境,并将影响控制在最低限度。最终,重复数据删除必须是一个透明的后台过程。

 

最后,重复数据删除将被要求对系统性能产生最低的影响。如果重复数据删除会对系统负荷产生负面影响,用户就不会加以实施。当重复数据删除在备份应用程序及对性能更加敏感的主存储环境中操作时尤其如此。

 

NetApp 1992 年以来成为数据存储效率的领跑者,开发了第一款重复数据删除产品 A-SIS 重复数据删除,它已广泛地应用于包括数据备份、数据归档和主数据在内的众多应用场合。A-SIS 重复数据删除结合了精细度、性能和弹性方面的优点,为用户提供了重复数据删除的显著优势。

 

 


© 2008 Network Appliance, Inc。保留所有权利。规格如有更改,恕不另行通知。NetApp Network Appliance 徽标是 Network Appliance, Inc., 在美国和其它国家/地区的注册商标。Network Appliance Network Appliance, Inc., 在美国和其它国家/地区的商标。所有其它品牌或产品均为其各自所有者的商标或注册商标,应受到同样的对待。

阅读(584) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~