CRasHMonkey与AcE:Linux文件系统崩溃一致性测试

0 下载量 145 浏览量 更新于2024-06-16 收藏 1.19MB PDF 举报
"这篇学术论文主要探讨了Linux文件系统中崩溃一致性错误的系统测试和发现,提出了名为CRasHMonkey和AcE的测试工具。这些工具利用有界黑盒崩溃测试(B3)方法,针对文件系统进行系统性的崩溃一致性错误检测。" 文章详细讨论了在Linux文件系统中,崩溃一致性是确保系统在遭受意外断电或其他导致系统崩溃的事件后,能够正确恢复并保持数据完整性的关键属性。然而,由于工作负载的多样性以及可能存在的bug,这种一致性可能受到威胁。 CRasHMonkey是一个记录和重放框架,它模拟真实世界的断电场景,对目标文件系统执行特定工作负载,并检查每次崩溃后文件系统的状态是否正确恢复。它依赖于B3测试方法,该方法通过限制操作数量或选择特定操作来缩小无穷大的工作负载空间,并在此范围内穷举测试。 AcE则是一个自动化工具,可以自动生成要在目标文件系统上运行的各种工作负载,以便全面测试其崩溃一致性。作者们通过对过去五年内报告的Linux文件系统崩溃一致性错误的研究,发现在多数情况下,错误可以通过少量的操作(如三个或更少)在新创建的文件系统上重现,且这些错误往往与fsync()系统调用后的崩溃有关。 通过使用CRasHMonkey和AcE,研究人员发现了过去五年报告的26个错误中的24个,并在广泛使用的成熟文件系统中揭露了10个新的崩溃一致性错误,其中7个错误自2014年以来一直在内核中存在。此外,这些工具还在一个经过验证的文件系统FSCQ中找到了一个崩溃一致性错误。这些未被发现的错误可能导致严重后果,如破坏重命名原子性、丢失持久化文件和目录,以及数据丢失。 文章的关键词涵盖了崩溃一致性、测试、文件系统错误,表明其研究领域涉及软件工程的可靠性、文件系统管理和计算机系统的可靠性。这项研究受到了NSF的资金支持,以及VMware、Google和Facebook的捐赠。文中还提供了对文件系统I/O路径、缓存和易失性存储设备缓存中I/O请求重排序的额外分析。 总而言之,这篇文章提出了一种系统性的方法来检测和解决Linux文件系统中的崩溃一致性问题,通过CRasHMonkey和AcE工具,可以更有效地定位和修复这些可能导致数据丢失或系统不稳定的问题。这对维护Linux文件系统的可靠性和安全性具有重要意义。