High Performance Metadata Integrity Protection in the WAFL Copy-on-Write File System——论文泛读

FAST 2017 Paper 分布式元数据论文汇总

问题

【英语表述很好,背景和问题介绍很清晰,也没有多余的废话】

存储系统由诸如磁盘[6, 51, 7]、磁盘架、存储互连结构、RAM[52]、CPU[45, 56]和数据传输总线等不可靠的硬件组件组成。这些硬件由软件堆栈或专用存储操作系统驱动,该系统构建在诸如ext3 [60]、ext4 [42]、ZFS [13]、btrfs [49]或WAFL [32, 24]等文件系统周围。软件由异构组件构建,这些组件可能也因为固有的错误而不可靠,这可能影响软件生态系统的其他部分。硬件故障和软件中的错误都可能导致数据损坏[5, 58, 61]。文件系统必须提供检测、避免和从这些损坏中恢复的机制[6]。

通常,数据可能在写入持久介质之前、驻留在介质上时或在读取路径中损坏。使用诸如校验和[8, 13, 57]和scrubbing [53]等检测技术,以及冗余[47]等恢复技术,可以保护静态数据免受介质故障的影响。文件系统崩溃一致性通过诸如日志记录[30, 59, 40, 50, 12]、阴影分页[32, 13, 49]或软更新[28]等技术提供。然而,由软件错误[3, 1, 2, 15, 62]或硬件故障[9, 44, 46, 52, 39, 65]引起的内存乱写,或者文件系统代码中的逻辑错误,仍然可能在写入路径中引入元数据不一致性。

事务审计机制 Recon [27] 是提高写入完整性的一种有前途的方法。然而,使用 Recon,必须缓存元数据块的原始版本,并在后续对修改后的副本进行审核时与之进行比较。在 WAFL 等写时复制文件系统中,这一要求可能导致性能显著下降,特别是在元数据密集的工作负载下。一个高度优化的 WAFL 实现,使用类似 Recon 的审计,导致关键工作负载的吞吐量下降了不可接受的 30%。类似 Recon 的审计不能区分由内存乱写引起的损坏和由逻辑错误引起的损坏。对于工业规模的部署,区分这两种原因对于快速解决损坏错误至关重要。

挑战

如何轻量级的检测元数据完整性,同时区分是由于内存乱写还是辑错误引起的损坏。

现有方法缺陷

事务审计机制 Recon 会导致吞吐量下降30%,而且无法区分造成损坏的原因。

本文方法

  • 我们引入了一个单一的滚动校验和,贯穿每个元数据块的整个生命周期,无论是在内存中还是在持久介质上,以保护它免受随机乱写的影响。

  • 我们引入了一种基于摘要的事务审计系统,以防止逻辑错误。与 Recon 不同,基于摘要的审计不需要缓存元数据块的原始版本,因此在性能上几乎没有开销。

  • 通过针对乱写和逻辑错误采用单独的解决方案,我们可以根据投资回报率优先实现审计不变式的实现,这对于像 WAFL 这样的大型复杂文件系统实现非常宝贵。

    文件系统通过这两种技术双重保护免受乱写的影响。

  • 引入了一种低开销的页面保护技术,可以精确定位由软件引起的涂写的根本原因,从而为损坏错误提供快速解决方案。

与先前的工作相比,我们的技术将性能开销降低了一个数量级。它们还有助于区分随机写和逻辑错误。这些解决方案在过去的五年中在 25 万个 NetApp ONTAP 客户系统上进行了测试,数据表明我们已经达到了数据完整性的最高水平之一。这些数据完整性机制所带来的整体性能损失几乎是不可察觉的。它们使由于软件导致的损坏不一致性减少了三倍以上。在我们整个客户部署中,我们尚未遇到一个能够绕过我们在本文中提出的机制的损坏错误。报告的损坏仅影响在相应版本中未受这些机制保护的元数据。此外,通过在开发周期的早期检测问题,这些解决方案显著提高了工程生产力。

实验环境

数据集:SPEC SFS [19],比较校验的性能,全面保护的性能,对乱写的诊断,检测Bug能力

总结

针对WAFL写时复制的文件系统,如何以低开销保证元数据的完整性,同时区分是由于内存乱写还是辑错误引起的损坏。作者通过引入元数据块的校验和,避免元数据块受乱写的影响;通过基于摘要的事务审计系统,以极低的性能开销防止逻辑错误;对两种问题分开处理,因此可以识别完整性问题的原因;通过低开销的页面保护技术定位问题的根本原因。

你可能感兴趣的:(论文阅读,论文阅读)