重复数据删除技术的安全性如何?

本文作者在数据存储领域具有超过 25 年的从业经验,Larry 曾在 Data GeneralTelex Computer ProductsNEC Information Systems Spectra Logic 等公司中担任各种职务。

Larry 是一位积极的演讲者和作者。目前,他在 NetApp 的主要职责是推广数据存储效率方面的技术,其中包括重复数据删除。Larry SNIA 重复数据删除和空间缩减技术特别兴趣小组的创始人和联合主席,他在 SNIA 绿色存储发起计划中也表现得相当活跃。

除非您最近像鸵鸟一样把头埋在沙子里,否则您或许会发觉重复数据删除是个非常热门的话题。似乎您有所耳闻的每个存储供应商(还有很多您不知道的公司)都在兜售重复数据删除技术,用于降低磁盘到磁盘备份的成本。

您或许也曾怀疑重复数据删除技术是否安全?在从已删除重复数据的备份还原数据时,您是否真的可以取回自己的数据?

评估重复数据删除技术的相对安全性可分为两个基本部分:

  • l 识别并消除重复数据所用的算法
  • l 基础软硬件的可靠性

本文中,我将根据这两条标准评估重复数据删除技术。此外,我还将讲解 NetApp 为增强其重复数据删除技术的可靠性所作的选择。大多数其他供应商提供的重复数据删除仅用于备份,而我们却支持用于主存储和二级存储的重复数据删除,因此我们格外注重数据安全性。

识别重复数据

大多数现有重复数据删除产品都是在块级操作,即用新块比较上次存储的块,以判断是否存储过相同的块。如果上次存储过相同的块,则指针将指向这个存储的块,"新"块将被丢弃。

那么如何判断两个块是否完全相同?最常用的方法是计算每个块的指纹,即每个数据块中包含的哈希值。如果两个块有相同的指纹,则通常认为它们是相同的。

但是,两个不同的数据块也可能具有相同的指纹或哈希值,这种可能性虽然很低,但却是存在的。我们称之为"哈希冲突",这将导致唯一的数据块被意外删除。

正如我们所预料,降低哈希冲突的可能性必需有更为复杂的算法,这通常会耗费更多的 CPU 资源来计算哈希值,并会得出较大的输出值。显然,可靠性与速度之间存在某个平衡点。此外,哈希值越长,指纹存储所需的空间也越大。

在评估重复数据删除技术时,您必需清楚供应商识别重复数据的方式,以及所选算法带来哈希冲突的风险。很多供应商辨称磁盘故障、磁盘驱动器或磁带错误造成数据块损坏的概率要比哈希冲突的概率高。我不知道这是否只是令人宽慰的想法,但我相信绝大部分人都希望将风险降至最低。

由于 NetApp 支持主存储和备份存储的重复数据删除,因此我们需要采取一种更为积极的方法来防范哈希冲突。与大多数其他公司一样,我们也采用指纹算法,但只用于识别潜在的重复数据。发生哈希冲突时,我们会首先对两个块进行逐个字节的比较,核查它们是否完全相同,然后才会决定是否废弃任何块。NetApp 的技术总监 Blake Lewis 在上一篇文章中曾详细阐述 NetApp 如何识别重复数据块。

基础软硬件的可靠性

重复数据删除技术的可靠性程度取决于基础软硬件有多可靠。事实上,尽管这一点可能不会即刻体现,但是对于实施重复数据删除,可靠性确实变得更为关键。

例如,假设您按照比较标准的备份日程进行每晚的增量备份和每周的完整备份, 现在假设您在月初创建了一个文件,之后没有做过任何修改, 按照传统的备份方式,每周的完整备份都会产生一个副本,因此在月底这个文件将会有四个副本。如果您需要将文件还原至该点,则即使备份介质不可靠,您也可以至少恢复四个副本中的一个。

但是如果在此情景中加入重复数据删除,月底时,您只会有该文件的一个物理副本,外加三组指向相同文件块的指针。通过这个简单的例子,您或许认识到必须确保经过重复数据删除处理的备份一直可靠地存储在弹性硬件上,并具有很好的 RAID 保护。在这一年中,您可能会有数百个实际上引用着大多数相同数据块的备份。

图 1) 一个未更改的相同文件在四周内的完整备份。如果没有做重复数据删除,同一文件会有四个分散的副本。通过重复数据删除,您只会拥有一个副本。这样可获得大量的空间节省,但同时这个唯一副本的可靠保存也变得更为关键。

市场上重复数据删除方面的产品多种多样。有些只有软件并可能用到多种基础硬件;有些包括软硬件(通过许可或 OEM 协议,从多种来源获得)。在做出决定之前,您应评估软件成熟度、基础硬件的可靠性以及两者的集成情况。

NetApp 可靠性

凭借 NetApp® 存储,重复数据删除已是 Data ONTAP® 运行环境中不可或缺的一部分,贯穿整个产品系列。15 年来,Data ONTAP 随着 NetApp 硬件平台一直在不断发展。NetApp WAFL® 技术的独特功能确实简化了重复数据删除的实施,它可以删除任何存储数据(而不仅是备份数据)中的重复数据。

根据 NetApp 安装信息库的测量表明,公认的 NetApp 软硬件特有的高可靠性使数据可用性高达 99.999%。最近一份分析报告描述了 NatApp 的方法以及影响 NatApp 可靠性的许多功能。

我们非常重视细节,众所周之,随着时间推移,磁盘驱动器位错误会形成,这甚至也会在磁盘驱动器的制造过程中出现。每个驱动器都有内置的纠错机制来检测此类位错误,并通常会予以纠正。如果一连串过多的错误令 ECC 无法处理,驱动器就会报告此扇区不可读,此时 RAID 算法将根据其他扇区中存储的信息修复该错误。然而,NetApp 还采用校验和方案进一步保护,我们将驱动器的额外部分作为开销来存储在整个系统中随数据移动的校验和,以检查写入的数据是否能在数据恢复过程中完整返回。实质上,我们还提供第三层保护。

为了保护提交到磁盘的数据的可靠性,NetApp 还开发了高性能的 RAID-DPTM,这是一个具有双奇偶校验的 RAID 6 实施,可以在不牺牲写入性能的情况防范双磁盘故障。有关防范磁盘驱动器误操作的 RAID-DP 和 NetApp 增强功能的更多信息,请参阅上一篇 Tech OnTap 文章。

结论

为了保护备份的数据,重复数据删除技术必须使用合适的算法来避免废弃唯一的数据块,同时还应提供可靠的基础软硬件,以便安全地存储经过重复数据删除处理的数据,用于以后的恢复。

由于 NetApp 重复数据删除技术不仅用于主数据存储,而且还用于备份数据,因此我们格外注意确保数据的可靠性。NetApp 重复数据删除技术结合使用指纹和数据块逐个字节的比较,从而绝不会由于哈希冲突而误删任何唯一的数据块。经过重复数据删除处理的数据存储在 NetApp 存储系统中,多年的实践证明该系统采用的硬件和软件不仅可靠而且富有弹性。因此我们相信您一定能在恢复数据时取回已备份的数据。