File systems play an essential role in modern society for managing precious data. To meet diverse needs, they often support many configuration parameters. Such flexibility comes at the price of additional complexity which can lead to subtle configuration-related issues. To address this challenge, we study the configuration-related issues of two major file systems (i.e., Ext4 and XFS) in depth, and identify a prevalent pattern called multilevel configuration dependencies. Based on the study, we build an extensible tool called ConfD to extract the dependencies automatically, and create a set of plugins to address different configuration-related issues. Our experiments on Ext4, XFS and a modern copy-on-write file system (i.e., ZFS) show that ConfD was able to extract 160 configuration dependencies for the file systems with a low false positive rate. Moreover, the dependency-guided plugins can identify various configuration issues (e.g., mishandling of configurations, regression test failures induced by valid configurations). In addition, we also explore the applicability of ConfD on a popular storage engine (i.e., WiredTiger). We hope that this comprehensive analysis of configuration dependencies of storage systems can shed light on addressing configuration-related challenges for the system community in general.
翻译:文件系统在现代社会中对于管理宝贵数据起着至关重要的作用。为满足多样化需求,文件系统通常支持众多配置参数。这种灵活性以增加复杂性为代价,可能导致微妙的配置相关问题。为应对这一挑战,我们深入研究了两种主流文件系统(即Ext4和XFS)的配置相关问题,并识别出一种普遍存在的模式——多级配置依赖。基于此项研究,我们构建了一个名为ConfD的可扩展工具来自动提取依赖关系,并创建了一套插件集以解决不同的配置相关问题。我们在Ext4、XFS及一种现代写时复制文件系统(即ZFS)上的实验表明,ConfD能够以较低误报率为这些文件系统提取160项配置依赖。此外,依赖引导的插件能够识别各类配置问题(例如配置处理不当、有效配置引发的回归测试失败)。我们还探索了ConfD在一种流行存储引擎(即WiredTiger)上的适用性。我们希望这项关于存储系统配置依赖的全面分析,能为系统社区整体上解决配置相关挑战提供启示。