ConfD: Analyzing Configuration Dependencies of File Systems for Fun and Profit——论文泛读

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

问题

文件系统在管理数据方面发挥着至关重要的作用。为了满足不同的需求,它们通常支持许多配置参数,例如EXT4有85个参数。这种灵活性的实现带来了额外的复杂性,可能导致与配置相关的问题。

图1显示了一个与配置相关的问题,涉及Ext4及其mke2fs和resize2fs实用程序[52]。触发bug必须满足两个条件:(1)在Ext4中启用了sparse_super2功能(通过mke2fs);(2) resize2fs的大小参数的值必须大于Ext4的大小。一旦触发,该错误将使用不正确的可用块破坏Ext4元数据。这个问题背后的根本原因是,对于特定的配置,在添加新的块进行扩展之前,会计算Ext4最后一个块组的空闲块计数。

ConfD: Analyzing Configuration Dependencies of File Systems for Fun and Profit——论文泛读_第1张图片

现有方法局限性

有一些实用的测试套件可以确保文件系统在不同配置下的正确性(xfstests[95])。但它在配置方面的覆盖范围有限,使用的配置参数不到一半。此外,与配置相关的问题也出现在其他软件系统中,并受到了广泛关注[4,13,24,33,35]。但现有的工作主要集中在一个应用程序中相对简单的配置问题(例如,打字错误[4]),这对于解决涉及多个程序的文件系统配置挑战是有限的。

本文方法

我们对两个主要文件系统(即Ext4和XFS)中的78个配置相关问题进行了实证研究。通过仔细研究现实世界中的错误和相关的源代码,识别了一种普遍存在的模式,称为多级配置依赖。除了相对简单的配置约束(例如,值范围[13])外,文件系统的不同应用程序的参数之间还存在隐含的相关性。我们数据集中的大多数(96.2%)问题都需要满足这种深度配置依赖性才能显现。有趣的是,应用于文件系统的工作负载不必是特定于配置的:71.8%的问题只涉及通用文件系统操作。

我们构建了一个可扩展的工具,称为CONFD,通过元数据辅助的污点分析,自动提取依赖关系,并创建了六个插件来解决不同的配置相关问题。

ConfD: Analyzing Configuration Dependencies of File Systems for Fun and Profit——论文泛读_第2张图片

我们对Ext4和XFS的实验证明,CONFD可以以较低的假阳率(8.4%)提取出文件系统的150多个配置依赖。此外,依赖引导的插件可以识别各种配置问题(例如,对配置的处理不当,由有效配置引起的回归测试失败)。

开源代码:GitHub - data-storage-lab/ConfD: Analyzing Configuration Dependencies of File Systems [FAST'23, HotStorage'22]

总结

针对文件系统的配置参数,避免错误配置导致的系统故障。作者对两个主要文件系统(即Ext4和XFS)中的78个配置相关问题进行了实证研究。通过分析错误和相关的源代码,识别了一种普遍存在的模式,称为多级配置依赖,包括相对简单的配置约束(例如,值范围[13]),不同应用程序的参数间依赖。并构建了一个可扩展的工具,称为CONFD,通过元数据辅助的污点分析,自动提取依赖关系,并创建了六个插件来解决不同的配置相关问题。

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