NetApp 重复数据删除基础知识回顾

NetApp早在2007年就推出了重复数据删除技术,该技术可显着降低存储容量要求。利用NetApp重复数据删除技术可找到相同的数据块,在执行字节级验证检查之后,以引用单个共享块的方式将其替换,从而提高效率。该技术可删除位于相同卷或LUN中的冗余数据块,从而降低存储容量要求。

NetApp重复数据删除是NetApp Data ONTAP操作环境和WAFL文件系统(管理NetApp存储系统中的所有数据)不可或缺的组成部分。重复数据删除“在后台”运行,而与所运行的应用程序或访问数据的方式无关。此外,其开销极低。

人们经常会问及的一个问题是:“你们能节省多少空间?”,我们稍后将就此问题进行详细说明。但一般来说,节省多少空间取决于数据集大小及其包含的重复数据量。下面,我们通过亚特兰大Polysius Corporation公司的例子,来看看NetApp重复数据删除在企业数据与工程数据组成的混合环境中的价值。该公司从事新水泥厂的设计和老水泥厂的改进工作。

其生产方面的存储要求每年增长多达 30%。通过对AutoCAD文件、Microsoft Office文档及其他非结构化数据组成的混合环境执行重复数据删除,Polysius回收了47%的存储空间。有些卷中的数据减少了多达70%。最终,该公司推迟了新存储设备的采购,并且成功使备份数据在磁盘上的保留时间延长了一倍。有关详细信息,请阅读Polysius 成功案例

NetApp重复数据删除的一些明显优势包括:

·在NetApp或第三方主存储、二级存储及归档存储设备上运行

·不依赖于任何应用

·不依赖于任何协议

·开销极低

·在NetApp FAS和V系列存储系统上都能执行

·逐字节验证

·既可用于新数据,也可用于以前存储在卷和LUN中的数据

·可在非高峰期运行

·与其他NetApp存储效率技术相集成

·使用SnapMirror或闪存时,可继承重复数据删除实现的空间缩减

·简单的评估工具

·免费

这部分的“基础知识回顾”介绍如何实施NetApp重复数据删除、最常见的用例、重复数据删除的实施方法等。

如何在Data ONTAP中实施重复数据删除

从本质上讲,NetApp重复数据删除依赖的是一项成熟的计算机科学技术 – 引用计数。过去,Data ONTAP仅跟踪数据块是闲置还是在使用。现在,借助重复数据删除,它还能跟踪数据块的使用次数。对于NAS和SAN配置,借助重复数据删除,单个块最多可引用255 次。文件不“知道”它们在使用共享块 – 在WAFL中进行记录能以不可见的方式管理这些详细信息。

图 1) NetApp重复数据删除的工作原理。

Data ONTAP如何确定两个块可以共享?答案是它会计算每个块的“指纹”,也就是块数据的哈希值。指纹相同的两个块便适合共享。

启用NetApp重复数据删除之后,它会计算卷中所有在用数据块的指纹数据库(此过程称为“收集”)。完成此初始设置之后,即可对数据执行重复数据删除。

为避免减慢常规操作的速度,重复数据搜索作为单独的批处理任务来执行。在正常使用期间,WAFL会在写入数据时创建该数据的指纹目录。该目录一直积累,直到存储系统管理员确定的以下任一事件触发重复数据删除为止:

·手动发出重复数据删除“启动”命令

·开始执行计划的重复数据删除过程

·卷中写入了20%的新数据

·当SnapVault传输完成时

启动重复数据删除过程之后,以更改的块的指纹作为键值开始排序操作。然后,此排序列表将与指纹数据库文件合并。只要两个列表中存在相同的指纹,就有可能将相同的块合并为一个。在这种情况下,Data ONTA会弃用其中一个块,而以引用另一个块的方式将其替换。因为文件系统时刻在变,只要两个块确实仍在使用且包含相同数据,我们当然就可以执行这一操作。为确保两个块确实相同,在确定适合重复数据删除的块之后,会进行逐字节比较。

NetApp重复数据删除的实施利用了WAFL的一些特殊功能,可以最大限度地降低重复数据删除的成本。例如,磁盘上的每个数据块都使用校验和进行保护。

NetApp使用该校验和作为指纹的基础。由于无论如何都会计算校验和,相当于“无偿”获得,因此不会给系统增加任何负担。且由于WAFL从不覆盖正在使用的数据块,因此在释放数据块之前,指纹将保持有效。NetApp重复数据删除与WAFL的紧密集成也意味着更改日志的操作将会非常高效。其结果是:重复数据删除可用于大量的工作负载,而不仅仅用于备份,这与其他重复数据删除实施方案是不同的。

用例

自推出重复数据删除技术以来,NetApp一直在衡量重复数据删除在实际环境中的优势。最常见的用例是VMware和VDI、主目录数据及文件服务。该技术也在迅速应用于Microsoft SharePoint和Exchange 2010。

我们已经在Tech OnTap上刊载了多篇文章,重点介绍重复数据删除技术在VMware和VDI环境中的独特优势。在此类环境中,由于每台虚拟机使用几乎相同的操作系统环境,因此数据重复的程度自然是很高的。下表汇总了各种环境下的典型结果。

表 1) 利用重复数据删除技术通常可节省的空间。

在典型的 VMware 或 VDI 环境中,可能有大量的虚拟机 (VM) 全部安装着几乎相同的操作系统和应用程序,产生了大量的重复数据。

如果有 100 台 VM 运行相同的操作系统,每台虚拟机需要 10 GB 到 20 GB 的存储,就会有 1 TB 到 2 TB 的存储被几乎相同的副本专门占用。应用 NetApp 重复数据删除可以删除大部分本质上冗余的数据。

大体上说,如果将 X 台虚拟机分配给存储卷,执行重复数据删除之后,所需操作系统存储量约占未经过重复数据删除的环境中所需存储量的 1/X。显然,获得的实际结果取决于卷中 VM 的数量及其相似程度。

实际上,客户在 ESX VI3 环境中通常能够节省 50% 甚至更多的空间,有些客户的存储节省多达 90%。这是对整个 VMware 存储环境(不仅包括操作系统,还包括应用程序数据)执行重复数据删除的情况下得出的结果。在 VDI 环境中,客户通常节省空间多达 90%。

NetApp 也一直在研究重复数据删除为常见工程和科学应用程序创建的非结构化文件数据的存储库带来的益处,下面以 Siemens Teamcenter PLM 软件、IBM Rational ClearCase SCM 软件和用于地震数据分析的 Schlumberger Petrel 软件为例进行说明。 

Teamcenter 使用了一个相对较小的元数据数据库和一个用于存储工程设计文件的大型“存储库”。每当工程师在 Teamcenter 中保存设计时,程序就会在存储库中保存该设计文件的完整副本,即使仅对设计做出十分细微的更改也会如此。

NetApp 与 Siemens PLM 密切合作,使用 Siemens 的性能和可扩展性基准工具模拟正常使用时为大量设计文件创建多个修订版本的操作,据此评估重复数据删除在 Teamcenter 环境中的价值。对生成的存储库执行重复数据删除可节省 57% 的空间。鉴于在许多情况下,文件修订版本数量可能多于我们模拟的数量,因此实际节省的空间量可能还会更高。(当然,一般来说,使用模拟方法来衡量重复数据删除可能节省的空间时,必须非常谨慎。在许多情况下,由于关注的通常是性能而不是数据形态,因此模拟的数据会人为地造成非常多的重复数据。)

与 Teamcenter 类似,领先的软件配置管理解决方案 IBM Rational ClearCase 也包含元数据数据库和用于存储文件的大型“版本化对象库”,简称 VOB。在需要创建 VOB 副本时,对 ClearCase 执行重复数据删除是最有帮助的。此外,实验室环境中的初步结果表明,存储完整的文件时,在 ClearCase 环境中执行重复数据删除可节省空间 40% 甚至更多。

Schlumberger Petrel 用于地震数据解析、油气藏可视化和模拟工作流。它会创建包含大量文件的项目目录。用户创建、分发和归档数据时,会在多个存储设备中存储重复数据对象。通过对此类项目目录应用重复数据删除,NetApp 节省了大约 48% 的空间。

使用 NetApp 重复数据删除

表 2 汇总了运行 NetApp 重复数据删除的基本要求。

表 2) NetApp 重复数据删除的基本要求。

除这些要求之外,注意采用一些最佳实践也有助于成功实施重复数据删除。下面的内容汇总了一些重要的最佳实践,并提供了重复数据删除与其他常见 NetApp 技术结合使用的相关信息。有关详尽说明,请参阅 TR-3505:《NetApp Deduplication Deployment and Implementation Guide》

·在部署重复数据删除之前,您应该在测试环境中衡量其性能影响及大小调整要求,对于 NetApp 未曾测试的应用程序(如表 1 所列程序之外的程序)尤其如此。

·重复数据删除会占用系统资源,还会更改磁盘上的数据布局。由于应用程序的 I/O 模式和重复数据删除对数据布局的影响,读写 I/O 性能也会发生变化。空间节省和性能影响取决于应用程序和数据内容。

·如果应用程序仅创建少量的新数据,则不宜经常运行重复数据删除,因此在这种情况下,频繁运行的好处微乎其微。重复数据删除的运行频率取决于灵活卷中的数据更改率。

·运行的并发重复数据删除扫描进程越多,占用的系统资源就越多。最好的办法可能是采用以下做法:

o错开灵活卷的重复数据删除计划,隔日执行重复数据删除进程,从而降低运行过多并发进程的可能性。

o使用自动模式,仅当写入每个灵活卷的数据明显增加时才运行重复数据删除。(在较小型的环境中运行重复数据删除时,这样做易于自然而然地错开高峰。)

o手动运行重复数据删除。

o每晚运行重复数据删除,最大限度地减少要执行重复数据删除的新数据量,这样完成操作所需的时间较少。

·如果在重复数据删除操作完成之前创建了 Snapshot? 副本,则可能导致节省的空间减少。如果可能,应在创建 Snapshot 副本之前执行重复数据删除操作,确保首先完成重复数据删除操作,然后再创建 Snapshot 副本。

·为了正常运行重复数据删除,需要为重复数据删除元数据留出一些可用空间。对于 7.3 之前的 Data ONTAP 版本,每个灵活卷应留出总数据可用空间的 6%。对于 Data ONTAP 7.3 或更高版本,聚合应该为重复数据删除所作用的所有灵活卷留出总数据可用空间的 4%(指纹 + 更改日志),每个灵活卷应留出总数据可用空间的 2%。详细内容在 TR-3505 的第 5.3.3 节中介绍。

重复数据删除与其他 NetApp 技术

重复数据删除可与其他 NetApp 技术结合使用。在许多情况下,重复数据删除能够进一步提高以下技术的性能:

·闪存。闪存提供智能缓存,可加快 I/O 操作。NetApp 重复数据删除可提高缓存命中率。如果闪存中存在经过重复数据删除的块,再次请求此块的几率要高得多。这种效应称为“缓存放大”,对服务器和桌面虚拟化特别有用。

·卷 SnapMirror。使用卷 SnapMirror 复制经过重复数据删除的卷时,目标卷自动从源卷继承经过重复数据删除的状态。这种效应对 VMware 的影响在之前的文章中有所介绍。重复数据删除与所有形式的 SnapMirror 及 SnapVault 的交互作用也在近期的文章中有所介绍。

·FlexClone。FlexClone? 技术可以将数据卷和数据集即时复制为透明的虚拟副本。创建 FlexClone 卷时:

o如果父 FlexClone 卷启用了重复数据删除,新卷会继承节省。

o克隆卷继承父卷的重复数据删除配置,如重复数据删除计划。

o从 Data ONTAP 7.3 开始,不再克隆重复数据删除元数据文件(指纹数据库和更改日志文件),因为它们位于聚合中的卷外部。必须在克隆卷上启动重复数据删除,才能继续执行完整的重复数据删除。

·数据压缩。NetApp 数据压缩在 Data ONTAP 8.0.1 中推出,是对重复数据删除技术的有力补充。可能的空间节省和用例在之前的 Tech OnTap 文章中有所介绍。

·精简配置。重复数据删除还可与 NetApp 精简配置结合使用,最大限度地提高空间节省。对于 NAS 卷,配置非常简单。对于 LUN,可使用以下设置(有关详尽说明,请参阅 TR-3505的第 6.4.18 节)最大程度地节省空间:

o“LUN space reservation value”(LUN 空间保留值)设置为“off”(关)

o“Volume fractional reserve value”(卷保留百分比值)设置为从 0 到 100 之间的任意值

o“Volume guarantee”(卷保证)设置为“none”(无)

o“Snap reserve”(快照保留)设置为“0%”

o“Autodelete”(自动删除)设置为“on”(启用)

o“Autosize”(自动大小调整)设置为“on”(启用)

o“Try_first”设置为“volume_grow”

结论

重复数据删除是重要的存储效率工具,可单独使用,也可与 NetApp 精简配置、FlexClone 等其他存储效率解决方案结合使用。要了解有关重复数据删除的详细信息,请务必参阅 TR-3505:《NetApp Deduplication for FAS and V-Series Deployment and Implementation Guide》。该指南经常更新,涵盖大量主题,包括:

·配置和操作

·针对性能和空间效率的大小调整

·与其他 NetApp 技术的结合使用

·最佳实践包括与 VMware、Microsoft Exchange、SQL Server 及 SharePoint、Lotus Domino、Oracle 等特定应用程序的结合使用

·故障排除