NetApp A-SIS重复数据删除技术[转]

Posted by

大家都知道,存储系统的容量正在以惊人的速度增长。在过去的 10 年里,NetApp 提供的存储系统容量从数十 GB 发展到数百 TB,足足翻了 10,000 倍!但是,多数企业发现它们对存储的需求甚至增长得更快,– 除了存储所有这些数据的磁盘或磁带的成本外,– 数据中心空间和电源也变得越来越昂贵。因此,它们的重要目标之一就是尽可能高效地使用存储。

从存储数百个 Snapshot 副本仅需极少磁盘空间的独特的 Snapshot™ 技术,到允许系统管理员在运行时扩展和设定卷的 FlexVol®技术,NetApp 一直是高效利用存储的行业先锋.

五月份,NetApp 宣布了一种新的重复数据删除技术,能够大大提高指定磁盘空间可存储的数据量:高级单实例存储 (A-SIS) 重复数据删除。NetApp NearStore® R200 和 NearStore on FAS 系统均可使用该技术(免费!)

重复数据删除能以单个共享数据块为参考寻找相同的数据块并将其替换,从而提高效率。相同的数据块可能属于多个不同的文件或 LUN,或者可能重复出现在同一个文件中。A-SIS 重复数据删除是 NetApp WAFL 文件系统不可或缺的一部分,该系统管理 NetApp FAS 系统上所有存储。因此,不管您运行何种应用程序或如何访问数据,重复数据删除都在”后台”运行,并且开销很低。至于用户能节约多少空间,则取决于数据集和它所包含的重复数据删除量。

A-SIS 重复数据删除如何运作

实质上,A-SIS 重复数据删除采用老式的计算机科学技术-参考计算。以前,WAFL 仅跟踪数据块是否在使用。借助 A-SIS 重复数据删除,它还能跟踪有多少在使用。在目前的实施中,不同文件或同一文件中的单个 WAFL 块可参考多达 256 次。文件并不”知道”它们之间在共享数据-WAFL 内的簿记会在后台管理这些细节。

WAFL 如何确定哪两块可以共享?答案是 WAFL 会为每块计算出”指纹”,这是块数据的哈希。具有相同指纹的两个块即可用于共享。

在卷上启用 A-SIS 重复数据删除后,它会为备份卷中所有正在使用的块计算出一个指纹数据库(此过程称为”收集”)。完成初步设置后,卷即可用于重复数据删除。

为了不减缓普通文件操作,副本搜索将作为一个单独的批次处理来完成。由于文件系统会在正常使用过程中进行更新,WAFL 将创建描述其数据块更改的日志。该日志不断累积,直到出现以下某种情况:

 管理员发布 sis start 命令
 sis config 计划中指定的下一次发生
 日志更改超出了预定的阈值

这些事件中的任何一件都会触发重复数据删除过程。启动重复数据删除过程后,A-SIS 会使用变更块的指纹作为密钥来给日志排序,然后将排好序的列表与指纹数据库文件合并。一旦两个列表中出现相同的指纹,则可能有两个相同的块可折叠成一个。这种情况下,WAFL 会弃用其中一个块,并用另一个块的参考将其替换。因为文件系统时刻在变,除非两个块确实仍在使用并且含有相同的数据,否则我们当然可采取这一步骤。

A-SIS 重复数据删除实施利用了 WAFL 的某些特殊功能,从而使重复数据删除的成本降到最小。NetApp 很早以前就发现,要确保存储在磁盘上的数据的完整性,应该采用皮带与吊带式 (belt-and-suspenders) 方法。(事实上,最好有几双吊带。)因此,磁盘上的每个数据块都通过校验和得到保护。

A-SIS 使用该校验和作为它的指纹。由于无论如何都会计算指纹,相当于”无消耗”,因此不会给系统增加任何负担。且由于 WAFL 绝对不会覆盖正在使用的数据块,因此在闲置数据块之前,”指纹”将保持有效。A-SIS 重复数据删除与 WAFL 的紧密集成也意味着更改日志是一种高效的操作。其结果是 A-SIS 重复数据删除可用于广泛的工作负荷,而不仅是用于备份,其它重复数据删除实施的情况也是如此。

哪些类型的环境较使用适合 A-SIS?

首先,您的数据应是使用了很长时间。如果您想马上更改数据,则努力寻找重复数据意义不大。系统还应具有 CPU 剩余空间。更改日志和指纹匹配是为效率而设计的,但都要耗用 CPU。如果您的系统长时间处于高 CPU 利用率,则重复数据删除带来的额外负载将是致命一击。

节约磁盘空间的其它方法

NetApp 提供了许多其它可更加高效地使用磁盘空间的方法,它们各具优缺点。不必仅选择一个;因为它们大部分都可以结合使用。

Snapshot 副本

从一开始,WAFL 就允许通过 Snapshot 技术共享数据块。由于文件会随时改变,您可使用 Snapshot 副本捕获该文件的多个版本,并且存储成本仅与版本之间的更改量相对应。

无论作为本身的功能,还是作为诸如 SnapVault[R] 和 SnapMirror[R] 之类的应用程序的基础,Snapshot 副本都已证明了其价值。在 WAFL 中,就性能而言它们没有问题。它们的主要限制是它们只能在同一文件的不同版本之间提供块共享,这与在不同文件之间共享重复块的 A-SIS 不一样。

有时,如果您未使用过 NetApp 存储,您会发现 Snapshot 副本的 NetApp”纯增量”方法在所有主要的存储供应商中独树一帜,并且是我们的 SnapVault 和 SnapMirror 产品背后的基本技术,也是它们成功的主要原因。

压缩

在将数据写入磁盘之前进行压缩是一种节约空间的好方法。很多算法(如 gzip)可将文件压缩到一半或更小,即使没有可供共享的重复数据也能做到。压缩的缺点是它需要耗用大量 CPU 资源。而且,有些类型的数据(如映像)已经过压缩,不能得到这种优势。由于 A-SIS 重复数据删除可将数据的数百份副本压缩成一份,在拥有很多副本的环境中这可能比压缩节约远远更多的空间。

NetApp 目前在 Decru[R] 和 VTL 产品中提供了压缩功能。

内容寻址存储 (CAS)

尽管内容寻址存储的实施方法常常很不一样,但它在概念上与 A-SIS 重复数据删除相似。数据的”斑点”经过哈希处理后,哈希值将用于对其进行识别。对于指定哈希值的数据只会存储一个副本。一个文件可能包含许多斑点。

从某种意义上说,CAS 比 A-SIS 重复数据删除更灵活,因为 CAS 斑点不必是整个文件系统块。但是,在某个很重要的方面,CAS 却不够灵活。借助 A-SIS 重复删除功能,WAFL 可使用指纹作为密钥来共享块,但其基本数据结构仍然不变并且该共享是隐蔽的。(当然,您可随时关闭 A-SIS 重复数据删除功能。) 反之,在大多数 CAS 实施中,始终是通过哈希值来找到斑点。这就使它很难获得较高的性能,因此 CAS 通常是用于大部分为写入操作的归档应用程序,而不是需要对电子发现和数据恢复等即时读取作出快速反应的应用程序。

CAS 有一个方面有时会引起争议,即如果两个斑点具有相同的哈希密钥,则将其视为相同。如果两个不同的斑点碰巧具有相同的哈希值,那么数据就会丢失。这叫做”哈希冲突”或”误判”。有些统计数据可以很好地说明这种情形极不可能出现,但许多人还是不以为然。A-SIS 重复数据删除因此采取了一种保守的方法,只有块的内容(不单单是指纹)相同时才会共享块。在删除作为副本的块之前,A-SIS 逐个字节进行了比较以确保该数据确实相同。

总结

A-SIS 重复数据删除利用 WAFL 的独有特征来节省磁盘空间,同时保持较低系统开销。在许多环境中,可以大量地节约空间。即使在主目录环境等主存储应用程序中,A-SIS 重复数据删除也经常可以节约大量空间。

比如借助 NetApp Snapshot 技术,A-SIS 重复数据删除机制一定会为将来开发新颖的新应用程序(如克隆文件)奠定基础。WAFL 的持续演进是一个令人兴奋的发展过程。

27 条回复