Towards Robust File System Checkers

Towards Robust File System Checkers
复制标题

DOI:
10.1145/3281031
复制
发表时间:
2018-12
期刊:
ACM Transactions on Storage (TOS)
影响因子:
--
通讯作者:
Om Rameshwar Gatla;Muhammad Hameed;Mai Zheng;Viacheslav Dubeyko;A. Manzanares;F. Blagojevic;Cyril Guyot;R. Mateescu
Om Rameshwar Gatla;Muhammad Hameed;Mai Zheng;Viacheslav Dubeyko;A. Manzanares;F. Blagojevic;Cyril Guyot;R. Mateescu
中科院分区:
其他
文献类型:
--
作者:
Om Rameshwar Gatla;Muhammad Hameed;Mai Zheng;Viacheslav Dubeyko;A. Manzanares;F. Blagojevic;Cyril Guyot;R. Mateescu

文献摘要

相似文献

尽管有各种保护技术,但文件系统可能会因许多原因而损坏。因此,大多数文件系统都带有一个检查器,可以将文件系统恢复到一致的状态。然而,现有的检查器通常被假定能够在不中断的情况下完成修复,这在实践中可能不正确。在这项工作中,我们通过故障注入实验证明,广泛使用的文件系统(EXT4,XFS,BtrFS和F2FS)的检查器可能会离开文件系统在一个不可纠正的状态,如果修复过程意外中断。为了解决这个问题,我们首先修复了e2 fsck的撤销日志记录中的顺序问题,然后构建了一个通用的日志记录库(即,rfsck-lib)用于加强检查器。为了证明实用性,我们将rfsck-lib与现有的检查器集成,并创建了两个新的检查器:rfsck-ext,一个用于Ext系列文件系统的健壮检查器,和rfsck-xfs,一个用于XFS文件系统的健壮检查器,这两个都只需要对原始版本进行数十行修改。在我们的实验中,rfsck-ext和rfsck-xfs都对故障有弹性。此外,两个检查器都引起合理的性能开销(即,最高可达12%)。此外,rfsck-ext的性能比修补的e2 fsck高出9倍,同时达到了相同的鲁棒性水平。
File systems may become corrupted for many reasons despite various protection techniques. Therefore, most file systems come with a checker to recover the file system to a consistent state. However, existing checkers are commonly assumed to be able to complete the repair without interruption, which may not be true in practice. In this work, we demonstrate via fault injection experiments that checkers of widely used file systems (EXT4, XFS, BtrFS, and F2FS) may leave the file system in an uncorrectable state if the repair procedure is interrupted unexpectedly. To address the problem, we first fix the ordering issue in the undo logging of e2fsck and then build a general logging library (i.e., rfsck-lib) for strengthening checkers. To demonstrate the practicality, we integrate rfsck-lib with existing checkers and create two new checkers: rfsck-ext, a robust checker for Ext-family file systems, and rfsck-xfs, a robust checker for XFS file systems, both of which require only tens of lines of modification to the original versions. Both rfsck-ext and rfsck-xfs are resilient to faults in our experiments. Also, both checkers incur reasonable performance overhead (i.e., up to 12%) compared to the original unreliable versions. Moreover, rfsck-ext outperforms the patched e2fsck by up to nine times while achieving the same level of robustness.