一种数据缩减技术,通常用于基于磁盘的备份系统,旨在减少存储系统中使用的存储容量。它的工作方式是在某个时间周期内查找不同文件中不同位置的重复可变大小数据块。重复的数据块用指示符取代。

高度冗余的数据集(例如备份数据)从数据重复删除技术的获益极大;用户可以实现10比1至50比1的缩减比。而且,重复数据删除技术可以允许用户的不同站点之间进行高效,经济的备份数据复制。

定义备份设备中总是充斥着大量的冗余数据。为了解决这个问题,节省更多空间,“重复删除”技术便顺理成章地成了人们关注的焦点。采用“重复删除”技术可以将存储的数据缩减为原来的1/20,从而让出更多的备份空间,不仅可以使磁盘上的备份数据保存更长的时间,而且还可以节约离线存储时所需的大量的带宽。

就在几年前,D2D备份似乎还好得令人难以置信。受价格低廉的 ATA(以及稍后的SATA)硬盘的影响,很多人会选择用D2D取代虚拟磁带库或做备份到磁盘的工作,使备份速度变得更快,不必再担心在磁带驱动器和磁带库上产生的机械故障,并且使文件恢复变得更加轻松。

但是今天,我们的磁盘备份设备的容量已经趋于饱和,在数据中心已经没有足够的空间来备份PT级的数据,在这种情况下,当我们希望将备份数据保存一个月时,却只能保存两到三天。问题是在我们的备份设备中有太多的重复数据。现在终于有了解决这个问题的办法,善于抓住机会赚钱的厂商们声称他们的新一代“删除重复数据”产品可以按20:1,甚至300:1的比例缩减我们需要存储的数据量。果真如此吗?让我们仔细看看。

重复数据删除技术支持在已有的磁盘设备上存储更多的备份数据。因此采用“重复数据删除”技术可以增加您保存备份数据的时间,减少数据中心的消耗,降低成本。如果您删除重复数据后再通过WAN发送,那么您就能够节省大量的带宽,并且可以取代磁带实现网上离线备份。重复数据删除技术唯一的缺点是备份速度变慢。

Inline 在线重复数据删除的方式会使用备份服务器的资源,导致备份速度变慢,备份窗口变大。

Post-processing 后处理的方式,备份数据流写入到重删设备后 重删开始进行,不会影响到备份速度。

源起当您的备份程序在网络中多次从同一目录下备份相同的文件,或者从多个地址处备份相同的文件时,重复的数据在临时区域进行备份。大部分网络上的重复数据量令人吃惊,这些数据从56个用户保存在他们本地目录下的假日聚会的PDF格式邀请函,到每个服务器的系统驱动器上3GB Windows文件,真是包罗万象,应有尽有。

解决临时区域内文件重复的方案是增量备份。尽管我们很喜欢这样做,尤其是喜欢选择Tivoli Storage Manager 采用的永久增量备份的方法,但当我们考虑到RAID灾难恢复时,我们想到的是重复数据删除,而不是增量备份。增量备份主要是避免重复。

重复数据删除最基本的形式是出现在CAS(内容寻址存储)设备中的单一实例存储(single-instance store),例如,EMC的 Centera。当每个文件存储到CAS系统上时,CAS系统会为存储的文件内容生成一个散列(hash);如果系统中已经存在具有相同散列(hash)的文件,系统就会再创建一个表示副本的指针指向已存在的文件,而不是保存另一个副本。

微软Windows Storage Server的最新版本,Windows服务器的OEM NAS(网络附加存储)版本,采用了与删除重复文件略微不同的方法。当写入数据时,WSS不识别重复文件,而是运行一个后台程序SIS (单一实例存储) Groveler,该程序通过部分文件散列函数(采用二进制比较法)识别重复文件,将重复文件移到公用存储区,原始位置上的文件用连接到公用存储区文件的链接代替。

尽管文件级SIS能够节省一些空间,但是如果我们不只消除重复文件而且还消除了文件内存储的重复数据,那事情可就变得让人有兴趣了。想想Outlook的 .PST文件。例如一个典型的Outlook用户可以拥有300-MB或更大的.PST文件,文件上保存着他过去所有的电子邮件;每天他都会收到一个或更多新的邮件,就因为那天他的.PST文件改变了,你的备份程序就把这个.PST文件包括在增量备份里了,即使这个300MB的文件只有25 KB 的改变。

重复数据删除产品能够识别这个25 KB的新数据,并且剔除其余没有改变的旧的数据,只保存25 KB的新数据,从而节省大量磁盘空间。再进一步设想一下,550KB的附件在20个用户的 .PST文件内,如果它们能够被消除,您就可以缩减大量的数据。象下述这样的一组解决方案是Data Domain倡导的采用“重复数据删除”技术进行备份的目标。即这些采用“重复删除”技术的设备管理 VTL (虚拟磁带库) 或 NAS等备份设备,它们从这些备份应用设备(VTL或NAS设备等)中获取数据,透明地执行“重复删除”处理。1

方法基本方法厂商采纳的执行重复数据删除的基本方法有三种。第一种是基于散列(hash)的方法,Data Domain、飞康、昆腾的DXi系列设备都是采用SHA-1, MD-5 等类似的算法将这些进行备份的数据流断成块并且为每个数据块生成一个散列(hash)。如果新数据块的散列(hash)与备份设备上散列索引中的一个散列匹配,表明该数据已经被备份,设备只更新它的表,以说明在这个新位置上也存在该数据。

基于散列(hash)的方法存在内置的可扩展性问题。为了快速识别一个数据块是否已经被备份,这种基于散列(hash)的方法会在内存中拥有散列(hash)索引。当被备份的数据块数量增加时,该索引也随之增长。一旦索引增长超过了设备在内存中保存它所支持的容量,性能会急速下降,同时磁盘搜索会比内存搜索更慢。因此,目前大部分基于散列(hash)的系统都是独立的,可以保持存储数据所需的内存量与磁盘空间量的平衡,这样,散列(hash)表就永远不会变得太大。

第二种方法是基于内容识别的重复删除,这种方法主要是识别记录的数据格式。它采用内嵌在备份数据中的文件系统的元数据识别文件;然后与其数据存储库中的其它版本进行逐字节地比较,找到该版本与第一个已存储的版本的不同之处并为这些不同的数据创建一个增量文件。这种方法可以避免散列(hash)冲突(请参阅下面的“不要惧怕冲突”),但是需要使用支持的备份应用设备以便设备可以提取元数据。

ExaGrid Systems的InfiniteFiler就是一个基于内容识别的重复删除设备,当备份数据时,它采用CommVault Galaxy 和Symantec Backup Exec等通用的备份应用技术从源系统中识别文件。完成备份后,它找出已经被多次备份的文件,生成增量文件(deltas)。多个 InfiniteFilers合成一个网格,支持高达30 TB的备份数据。采用重复删除方法的ExaGrid在存储一个1GB的 .PST文件类的新信息时表现优异,但它不能为多个不同的文件消除重复的数据,例如在四个.PST文件具有相同的附件的情况下。

Sepaton 的用于它的VTL 的DeltaStor也采用内容识别方法,但是它将新文件既与相同位置上的以前的文件版本进行比较,同时也与从其它位置上备份的文件版本进行比较,因此它能够消除所有位置上的重复数据。

第三种方法是Diligent Technologies用于其ProtecTier VTL的技术,它像基于散列(hash)的产品那样将数据分成块,并且采用自有的算法决定给定的数据块是否与其它的相似。然后与相似块中的数据进行逐字节的比较,以判断该数据块是否已经被备份。

其他方法重复数据删除一般和其他的数据删除技术一起使用,例如压缩和差分delta。数据压缩技术已经问世约三十年之久,它将数学算法应用到数据中,以简化大容量或重复的文件部分。

差分delta通过只存储相对于原始备份文件被修改的部分,来减小存储总量。例如:一个大约包含200G数据的文件组,与原始备份相比可能只有50M的数据是被修改过的,那么也只有这50M的数据会被存储起来。差分Delta一般用于基于广域网的备份系统,它可以最大程度地利用带宽,从而减少备份窗口的工作时间。1

硬件软件各大厂商除了采用的方法不同外,他们物理架构的备份目标也不同。Data Domain、ExaGrid 和昆腾是包含磁盘阵列的monolithic appliances(单块集成电路设备)。 Data Domain和昆腾有NAS或VTL接口,而ExaGrid就是一个NAS设备。Diligent和FalconStor销售的是软件产品,运行在Intel 或 Opteron服务器上。

尽管带有VTL接口的备份设备看起来更高级并且更易于与现存的基于磁带的备份环境集成,但是采用NAS 接口,会为您的备份应用提供更多的控制。当备份文件过了保存期时,一些像赛门铁克的NetBackup之类的备份产品能够从它们的磁盘存储库中删除这些过了保存期的备份文件。当重复删除的NAS设备发现这个删除行为时,它可以重新分配它的自由空间和散列(hash)索引。而对于VTL接口的设备来说,因为您没有删除磁带,所以无法在VTL上释放出空间,直到虚拟磁带被复写,空间才能得以释放。

当然,在1TB的空间内容纳25TB的数据是要付出一些代价的,不只是在金钱方面。将数据切成块并进行索引来消除重复数据的所有工作会使备份速度减慢。Overland REO 9000 等中级VTL的数据备份速度是300 MBps甚至更快些。Diligent在其ProtecTier上已经具有200-MBps的备份速度,但是需要一个四核Opteron服务器来实现,该服务器前端是装有100多个磁盘驱动器的阵列。

其它厂商解决该问题的办法是把重复数据删除当做一个独立的过程在备份后运行。在一个系统上运行FalconStor的 VTL 软件,进行备份的数据被写到一个压缩的虚拟磁带文件而不是一个删除重复的虚拟磁带文件上。然后在后台将数据流切成块,消除重复数据并且创建虚拟磁带,该虚拟磁带是执行删除重复数据块在原虚拟磁带上的索引。一旦虚拟磁带的数据执行了删除重复处理,它所占有的空间就返回到可用的空间池。Sepaton的DeltaStor和 ExaGrid也把它们的重复删除当成一个后备份过程来执行。

尽管后处理能够提高备份速度,但同样也要消耗成本。执行后处理重复删除的系统必须有足够的磁盘空间,因为除了删除重复的数据外,它还需要保存全部标准的备份。如果您希望继续执行每周的全天增量备份的计划,那么一个在后台进行重复删除处理的系统上,你可能需要双倍多的磁盘空间来保存全部的备份直到处理完成为止。

正因为重复删除在后台运行,所以千万不要忽视重复删除的性能。例如,如果到星期一的晚上您开始再次备份您的服务器时,您的VTL还没有完成对周末备份的处理,这时您会遇到您不想看到的情况,如磁盘空间不可用或重复删除处理使您的备份速度变慢等。1

作用子文件重复删除技术不仅用于在备份应用中节省磁盘空间。新一代的备份应用,包括Asigra的 Televaulting,EMC的 Avamar Axion和赛门铁克的NetBackup PureDisk都采用基于散列(hash)的重复数据删除技术来减少通过WAN发送备份所需要的带宽。

首先,像生成增量备份的传统备份应用技术一样,新一代的备份应用技术也采用常用的办法如归档位,最后修改的日期,并且文件系统更改从最后一次备份起已经发生改变的文件ID日志。然后它们将文件切成更小的块并且为每个块生成散列(hash)。

然后,将这些散列(hash)与已经备份在本地的数据块的散列(hash)对象进行比较。没有出现在本地缓存和文件系统元数据中的散列(hash)被发送到中央备份服务器,再将数据与散列(hash)表进行比较。如果没有发现相同的散列,备份服务器发回一个散列表;然后被备份的服务器发送那些散列代表的数据块到中央服务器进行保存。

与对被备份到多个目标的服务器数据(它们甚至被备份到整个企业的各个目标)进行“重复删除”的备份方案相比,上述这些备份方案缩减数据的程度更高。例如,如果CEO发送100 MB的PowerPoint文件到500个分支机构,只有第一个会被备份,所有其它的只会发送散列到总部并且告知“我们已经收到,谢谢。”

这种方法几乎避免了影响基于散列的系统的可扩展性问题。因为每个远程服务器只保存其本地数据的散列(hash),散列表不会增长到超出可用的空间,中心位置的磁盘I/O系统比传送备份的WAN 的速度快得多,在磁盘上搜索一个巨大的散列索引也比发送数据快得多。

尽管Televaulting, Avamar Axion 和 NetBackup PureDisk 共享一个相似的架构,并且都是根据重复数据删除存储的大小进行定价,但是还是存在一些不同的地方。NetBackup PureDisk采用固定的128KB的数据块,而elevaulting 和 Avamar Axion采用可改变大小的数据块,这会使重复删除技术性能更好。PureDisk 支持NetBackup,赛门铁克承诺未来进行更好的整合,即提供我们希望的可以将重复删除与数据中心备份工作整合的设备。Asigra也向服务提供商销售Televaulting产品,以便不想建立自己架构的小企业也可以利用重复删除技术。

有几个客户的报告中都写到,他们在不对备份流程做大改动的情况下,的确获得了20:1的缩减比例。小企业可以采用 Asigra, EMC 和赛门铁克的新一代备份软件取代传统的备份方案。中型企业可以采用面向数据中心的备份设备。需要很高备份性能的大型企业可能不得不等待下一代产品了。2

分类按照部署位置的不同,重复数据删除可分为源端重复数据删除和目标端重复数据删除。源端重复数据删除是先删除重复数据,再将数据传到备份设备。目标端重复数据删除是先将数据传到备份设备,存储时再删除重复数据。

按照检查重复数据的算法不同,重复数据删除可以分为对象/文件级和块级的重复数据删除。对象级的重复数据删除保证文件不重复。块级重复数据删除则将文件分成数据块进行比较。

根据切分数据块方法的不同,又可分为定长块和变长块的重复数据删除技术。变长块的重复数据删除,数据块的长度是变动的。定长块的重复数据删除,数据块的长度是固定的。

根据应用场合的不同,可以分为通用型重复数据删除系统和专用型重复数据删除系统。通用型重复数据删除系统是指厂商提供通用的重复数据删除产品,而不是和特定虚拟磁带库或备份设备相联系。专用型重复数据删除系统是和特定虚拟磁带或备份设备相联系,一般采取目标端重复数删除方式。

重复数据删除能够在硬件层面或软件层面上来实现,或者两者结合实现。同样,重复数据删除可以在数据源端进行,在备份目标端进行或者两者兼而有之。

源端重复数据删除在数据传输链路较慢的应用场景中会有帮助。在源端进行重复数据删除的数据使得数据可以在传输之前被压缩,从而能够更快速地传输数据。

目标重复数据删除是在备份目标或远程存储设备上进行操作的。它的主要目的是降低存储成本。目标重复数据删除通过删除重复数据,使实际使用的存储空间远低于原本的使用情况。2

恢复恢复过程中,你所需的数据可能不是存储在连续的磁盘块中,甚至存储在未经重复删除的备份中。当备份数据过期、存储空间释放时,就会产生存储碎片,延长恢复时间。由于数据及其指针可能是无序存储,被删除的重复数据也会产生碎片,从而降低恢复性能。

一些提供重复数据删除功能的备份和存储系统供应商预料到了恢复过程的性能问题,并将产品优化,解决磁盘碎片问题。ExaGrid Systems、Sepaton等供应商的解决方案可以完整地保存最近一次的备份副本,因此,最近一次备份的数据能迅速恢复;而其它的解决方案则需要几天、几星期甚至几个月才能重构数据。其它解决方案在备份期间分散重复数据删除的负荷,而在恢复期就集中负荷,以加快恢复速度。这种情况同时使用了软件和硬件方法。如果供应商能加快多个节点的重复数据删除速度,并允许添加节点,那么其性能扩展能力就优于那些只有一个摄取点/处理点的产品。

性能由多方面的因素决定,包括备份软件、网络带宽、磁盘种类等。单个文件的恢复时间与完全恢复截然不同。因此,你应该测试重复数据删除技术在各种恢复场景下的运行情况,尤其是当数据恢复需要较长时间时更应如此,从而判断重复数据删除技术对你的环境有什么影响,这一点非常重要。1

注意事项**设备vs.软件:**需要了解将重复数据删除解决方案作为专用设备来部署,以及使用运行在服务器上的重复数据删除软件这两种方法各自的利弊。一些软件解决方案相对价格低廉,但是可能无法很好地扩展,以满足日益增长的容量需求,其性能取决于它所在的服务器。软件方案似乎在灵活性方面差一些,但是对那些有资源来承担集成、管理和监控重任的客户来说可能是有效的。如果你选择软件方法,一定要了解运行上述“清理”任务所需的处理能力,及其对服务器的影响。硬件设备有自己的空间和功耗要求,有时耗电量很大。它们通常是自我管理的,提供更大的灵活性和简洁性,并得益于硬件优化。对于那些寻求快速部署并轻松集成到当前环境的客户来说,硬件解决方案非常受欢迎。

**可用容量vs.原始容量:**可使用容量是终端用户最直接、最适用的规格。它指的是进行任何重复数据删除之前的容量,并不包含用于元数据、数据保护和系统管理的任何存储。一些厂商规定“原始”容量,它比“可用”容量稍微高一点,但是这一规格会产生误导,因为不同厂商和数据保护方案将会有不同程度的开销。重复数据删除将需要一些原始磁盘容量来存储元数据,这些容量并不供终端用户使用。在这两种情况下,这些容量都被归为“重复数据删除前容量”——如果用户拥有10:1的重复数据删除率,那么他们可以存储“可用容量”10倍的数据。如果他们拥有20:1的重复数据删除率,那么他们可以存储“可用容量”20倍的数据。

**性能:**确保不仅要了解“写入”和“读取”速度——通常被注明为TB/小时,而且还要询问“读取”或“恢复”速度,以了解这是否满足贵公司的服务水平目标(SLO)。最后,要了解在必须进行一些后台“清理”任务的“稳定状态”期间,系统性能会受到哪些影响。重复数据删除方案的性能可决定IT部门如何能够在任务分配的时间段很好地完成其备份。

**硬盘密度:**硬盘的密度继续增加,而重复数据删除设备可能适用1 TB到3 TB的硬盘。甚至4 TB的硬盘现在也可用于消费类设备,并开始用在一些主存储阵列中。在一般情况下,密度更高的硬盘将转化为“节省数据中心占地面积以及省电”的优势。然而,随着硬盘密度的增加,当硬盘出现故障时,数据重建的时间也会同比增加。这会给系统带来新的不稳定因素。因此有无高效的硬盘(数据)重建技术,对于系统的稳定运行至关重要。

**可扩展性:**每家公司都有不断增长的数据。对于任何重复数据删除解决方案来说,这不再是“是否需要部署更多容量的问题”,而是“何时部署”的问题。无论是基于设备的方案还是基于软件的方案,最重要的是要了解它如何随着时间推移而扩展。如果一个解决方案能够在未来3-5年随着预期数据增长而扩展,它在目前可能就是更好的投资。如果它能随着数据增长而细化扩展,那就更好了。

**加密:**一些系统提供磁盘存储加密,以防止在磁盘丢失或被盗情况下数据泄露。通常这种加密会影响系统性能,因此重要的是要了解这种重复删除数据加密解决方案,以及它对系统性能会产生哪些影响。

**系统和数据可用性:**不同厂商拥有不同的解决方案来应对其设备中的磁盘故障,以确保被删除的重复数据能够在需要时被找回并恢复。了解确保系统和数据随时间推移一直可用的不同方法。

**云:**重复数据删除能够支持的关键一点就是:在广域网上,可能是在站点之间,复制这些数据之前,有效大幅降低数据规模,以提供灾难恢复,或作为将数据复制到云中的一种手段。计划利用云存储的IT部门必须了解重复数据删除技术如何适应不同的云选项。2

影响数据重复数据删除技术降低了备份所需的存储空间,而这实现了更快和更频繁的备份,从而有利于数据保护。还实现了更快的修复,在符合监管合规要求和公司政策的限制范围内尽可能延长数据保留时间。

重复数据删除技术可以影响实际的备份应用程序。例如,由于重复数据删除数据保存在目标存储设备上,因此需要使用处理块存储的备份工具。相比之下,基于文件存储的备份工具通常可以“撤销”所需的重复数据删除——导致目标存储设备上存放更多存储——除非备份工具只支持Windows Server 2012 R2数据重复数据删除。例如,像Windows服务器备份这样的工具完全支持重复数据删除,IT管理员可以从备份恢复一个完整的卷或个人文件夹。

记住,重复数据删除对系统、引导卷、远程驱动器、加密的文件或小于32KB的文件不起作用。其目的是备份和恢复任何常规文件。

重复数据删除定期运行所谓的垃圾回收来恢复不再使用的存储块。运行垃圾回收之后最好进行备份,确保捕获空闲存储器在备份过程中的任何变化。

数据重复数据删除技术改提高了存储效率,降低了存储成本并加快了数据保护的过程。但重复数据删除技术的有效性和性能取决于工作负载和重复数据删除的设置。IT管理员应该在应用重复数据删除之前和之后基准每个存储卷,以便衡量任何性能损失,因此应该调整调度和其他选项来优化服务器和工作负载性能。备份和恢复过程也应提前进行测试以了解重复数据删除的数据的存储需求,并允许更新或补丁数据保护工具来提高用于数据备份的存储使用。1

何时使用重复数据删除首先开始于创建数据。接着是所有其他业务——备份、复制、归档以及任何网络传输——都可以受益于规模缩小后的数据。

但把重复数据删除应用在主数据这一场景很难被用户接收,因为这样做是在篡改主数据集,做好备份,就算没有重复数据删除技术,也不会因为搞砸生产环境的数据而出大乱子,但是如果动到主存储,问题就很大了,而且需要了解这项技术会如何影响性能、可靠性与数据完整性。

目前只有少数主存储阵列提供重复数据删除作为产品的附加功能。只有不到5%的磁盘阵列真正支持在线重复数据删除与压缩。

重复数据删除的比例通过重复数据删除技术去重节约的空间十分可观,这取决于数据类型以及所使用的数据去重引擎的组块大小。以文文件与虚拟桌面架构环境为例,受益于高删除率,压缩比可达到40:1。而视频可以压缩的,但没法去重。存储厂商认为6:1是重复数据删除率的最佳平均值。加上相同的块压缩,数据中心可以通过这些技术轻松实现10:1的存储空间节约。

重复数据删除能够节约空间,十分具有,但重复数据删除属于计算密集型技术。在相对不重要的二级存储中,一般不会出现问题,但可能给主存储环境出现短暂拥塞现象。

重复数据删除不仅可以在实时删除重复数据,还可以让供应商通过算法最大化潜在的数据压缩率。以Quantum的DXi系列备份设备为例,使用可改变块大小的重复数据删除算法,该算法是固定块大小方法效率的三倍以上。2

优势和现状重复数据删除的相关数据