基于NetApp存储系统的重复数据删除实战

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

  NetApp重复数据删除技术介绍

  NetApp 重复数据删除是NetApp Data src="http://image20.it168.com/201106_0x0/659/d85885329ba1df2f.jpg" width=250 height=250>

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

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

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

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

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

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

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

  • 当 SnapVault 传输完成时

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

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

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