Skip to main content
QUICK REVIEW

[论文解读] Analyzing IO Amplification in Linux File Systems

Jayashree Mohan, Rohan Kadekodi|arXiv (Cornell University)|Jul 26, 2017
Advanced Data Storage Technologies参考文献 18被引用 8
一句话总结

本文首次对五种主流 Linux 文件系统(ext2、ext4、XFS、btrfs、F2FS)中的 I/O 放大——包括读取、写入和空间放大——进行了系统性分析。研究揭示了各类操作中存在显著的放大现象,其中写入放大可达 2–32×,元数据操作(如重命名)的 I/O 消耗高达 648 KB,由此提出 CReWS 猜想:通用文件系统中强崩溃一致性与低 I/O 及空间放大之间存在固有冲突。

ABSTRACT

We present the first systematic analysis of read, write, and space amplification in Linux file systems. While many researchers are tackling write amplification in key-value stores, IO amplification in file systems has been largely unexplored. We analyze data and metadata operations on five widely-used Linux file systems: ext2, ext4, XFS, btrfs, and F2FS. We find that data operations result in significant write amplification (2-32X) and that metadata operations have a large IO cost. For example, a single rename requires 648 KB write IO in btrfs. We also find that small random reads result in read amplification of 2-13X. Based on these observations, we present the CReWS conjecture about the relationship between IO amplification, consistency, and storage space utilization. We hope this paper spurs people to design future file systems with less IO amplification, especially for non-volatile memory technologies.

研究动机与目标

  • 对广泛使用的 Linux 文件系统中的读取、写入和空间放大进行系统性分析。
  • 量化常见数据和元数据操作(如文件写入、追加和重命名)的 I/O 成本。
  • 识别现代文件系统中 I/O 放大的根本原因,特别是崩溃一致性机制所致。
  • 提出 CReWS 猜想,主张通用文件系统中强崩溃一致性与低 I/O 及空间放大之间存在固有冲突。
  • 通过揭示一致性、效率与存储占用之间的权衡,为未来文件系统设计(尤其是非易失性内存场景)提供指导。

提出的方法

  • 使用 blktrace、dstat 和 iostat 捕获并分析文件系统操作期间的块 I/O 跟踪数据。
  • 将写入放大定义为总存储写入 I/O 与用户写入数据量的比值。
  • 将读取放大定义为总读取 I/O 与用户请求数据量的比值。
  • 将空间放大定义为总存储占用量(数据 + 元数据)与用户写入数据量的比值。
  • 对单个操作(如重命名、写入、追加)进行微基准测试,对 Linux 内核编译和 Filebench varmail 等任务进行宏基准测试。
  • 将 I/O 分类为同步(fsync)与延迟的后台检查点机制,以隔离性能开销。

实验结果

研究问题

  • RQ1在覆盖写入或追加等数据操作过程中,常见 Linux 文件系统的写入放大程度如何?
  • RQ2文件重命名、目录创建或文件更新等元数据操作会产生多少 I/O?
  • RQ3崩溃一致性机制(如日志记录和写时复制)在多大程度上导致了 I/O 和空间放大?
  • RQ4通用文件系统能否在确保强崩溃一致性的同时,同时最小化读取、写入和空间放大?
  • RQ5在不同工作负载下,F2FS 和 btrfs 等现代文件系统在 I/O 效率方面如何比较?

主要发现

  • 所有文件系统在数据操作中的写入放大范围为 2× 至 32×,其中 btrfs 的值最高。
  • 即使在缓存预热的情况下,小随机读取仍导致 2× 至 13× 的读取放大,表明 I/O 模式效率低下。
  • 单次文件重命名操作在 btrfs 中可产生高达 648 KB 的写入 I/O,凸显元数据 I/O 的极端成本。
  • 尽管两者均使用元数据日志记录,XFS 在文件更新的写入效率上仍优于 ext4,表明设计差异具有显著影响。
  • 尽管同为日志结构文件系统,F2FS 在所有工作负载下均显著优于 btrfs 的 I/O 效率。
  • 空间放大范围为 2× 至 30×,主要源于元数据结构以及崩溃一致性机制(如日志记录和写时复制)。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。