观点

  下载本文的PDF版本 PDF

重复数据删除设备被认为是有害的

一个好主意,但可能会被过度使用

David Rosenthal


在为他们有趣的论文《可靠地擦除闪存固态硬盘中的数据》1 进行研究期间,该论文于二月在圣何塞举行的 FAST(文件和存储技术)研讨会上发表,来自加州大学圣地亚哥分校的 Michael Wei 和他的合著者发现,至少有一个闪存控制器 SandForce SF-1200 默认对写入其中的数据进行块级重复数据删除。SF-1200 被用于 Corsair、ADATA 和 Mushkin 等公司的 SSD(固态硬盘)中。事后看来,SF-1200 营销材料中的这句话是一个线索:

“DuraWrite 技术通过优化对闪存的写入并将写入放大率降低到 1 以下,而无需复杂的 DRAM 缓存要求,从而延长了 SSD 的寿命,优于传统控制器。”

很容易看出这个想法的吸引力。由于闪存块在写入新数据之前需要耗时的擦除操作,因此闪存控制器使用一个块重映射层,称为 FTL(闪存转换层)。该层在逻辑块和物理块之间进行转换,允许控制器将逻辑块的传入数据写入先前擦除的物理块,然后更新映射,而无需等待物理块被擦除。FTL 还减轻了块可以写入的次数限制。闪存设备具有比逻辑块更多的物理块,以便可以替换磨损的块,并将写入均匀地分布在块集中。通过增强此层以将所有写入相同数据的逻辑块映射到同一个底层物理块,可以减少对闪存的实际写入次数,延长设备的使用寿命,并提高写入带宽。

重复数据删除是一个好主意,但像所有好主意一样,它可能会被过度使用。在托管文件系统的设备中进行重复数据删除,尤其是默认情况下在未声明的情况下这样做,并不是一个好主意。

文件系统将相同的元数据写入多个逻辑块,以避免单个块故障导致大量甚至全部用户数据丢失。一个例子是 UFS(Unix 文件系统)中的超级块。假设您有一个装有 UFS 的 SSD。超级块的多个备用逻辑位置中的每一个都将映射到同一个底层物理块。如果此物理块中的任何位出现故障,则每个备用逻辑超级块中的相同位也会出现故障。

ZFS 的问题

简而言之,设备有时会这样做确实是非常糟糕的消息,特别是对于像 Sun 的 ZFS 这样的文件系统而言,ZFS 旨在提供大型文件系统所需的可靠性级别。

基于与 Kirk McKusick 和 ZFS 团队的讨论,以下是详细解释为什么这对 ZFS 来说是一个问题。对于关键元数据(以及可选的用户数据),ZFS 最多存储每个块的三个副本。每个块的校验和都存储在其父级中,以便 ZFS 可以在使用元数据之前确保其完整性。如果检测到损坏的元数据,则可以找到备用副本并使用它。以下是问题:

• 如果存储的元数据损坏,则损坏将应用于所有副本,因此无法恢复。

• 为了解决这个问题,您需要在每个副本中放入一个随机盐值,以便每个块都不同。然而,多个副本是通过在内存中调度相同数据的多次写入到设备上不同的逻辑块地址来写入的。将其更改为首先将数据复制到多个缓冲区,然后对其进行加盐,然后再分别写入每个缓冲区一次,这将是困难且低效的。

• 更糟糕的是,这将意味着子块的每个副本的校验和都将不同;目前它们都是相同的。保留副本校验和的标识将需要从校验和中排除盐值,但 ZFS 在堆栈中数据块类型未知级别计算每个块的总和。丢失副本校验和的标识将需要更改磁盘布局。

这不是 ZFS 特有的问题;对于所有使用冗余来提供鲁棒性的文件系统,都会出现类似的问题。最重要的是,能够进行重复数据删除的设备的驱动程序需要将其关闭。然而,SSD 的一个主要优势是它们与所有 SATA(串行 ATA)设备一样位于同一通用磁盘驱动程序之后。使用诸如 FreeBSD 的 quirks 之类的机制来关闭重复数据删除可能是可行的,但这假设您知道具有重复数据删除控制器的设备,控制器支持禁用重复数据删除的命令,并且您知道这些命令是什么。

参考文献

1. Wei, M., Grupp, L., Spada, F., Swanson, S. 2011. 可靠地擦除闪存固态硬盘中的数据。在第九届 Usenix 闪存和存储技术会议上发表,圣何塞(2 月 15-17 日)。

喜欢它,讨厌它?请告诉我们

[email protected]

David Rosenthal 在硅谷担任工程师四分之一世纪,包括在 Sun Microsystems 担任杰出工程师以及在 Nvidia 担任第 4 号员工。在过去的十年中,他一直在斯坦福大学图书馆的支持下,致力于长期数字 preservation 的问题。

© 版权归作者所有

acmqueue

最初发表于 Queue 第 9 卷,第 5 期
数字图书馆 中评论本文





更多相关文章

Qian Li, Peter Kraft - 事务和无服务器天生一对
数据库支持的应用程序是无服务器计算令人兴奋的新领域。通过紧密集成应用程序执行和数据管理,事务性无服务器平台实现了许多在现有无服务器平台或基于服务器的部署中不可能实现的新功能。


Pat Helland - 换个名字的身份
新兴的系统和协议既收紧又放松了我们对身份的概念,这很好!它们使完成工作变得更容易。REST、IoT、大数据和机器学习都围绕着有意保持灵活且有时模糊的身份概念。身份概念是我们分布式系统的基本机制的基础,包括可互换性、幂等性和不变性。


Raymond Blum, Betsy Beyer - 实现数字永久性
今天的信息时代正在为世界所依赖的数据创造新的用途和新的管理方式。世界正在从熟悉的物理人工制品转向更接近信息本质的新的表示方式。我们需要流程来确保知识的完整性和可访问性,以保证历史将被了解和真实。


Graham Cormode - 数据草图
您是否曾经感到被源源不断的信息淹没?似乎大量的新电子邮件和短信需要持续关注,还有电话要接听,文章要阅读,以及敲门声要回应。将这些碎片组合在一起以跟踪重要的事物可能是一个真正的挑战。为了应对这一挑战,流数据处理模型越来越受欢迎。其目的不再是捕获、存储和索引每一个微小的事件,而是快速处理每个观察结果,以便创建当前状态的摘要。





© 保留所有权利。

© . All rights reserved.