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最后一个块组的空闲块计数。

现有方法局限性

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

本文方法

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

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

我们对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,通过元数据辅助的污点分析,自动提取依赖关系,并创建了六个插件来解决不同的配置相关问题。

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值