Ext4

Ext4 是 Linux 成熟的 journaling 文件系统,也是新文件系统、内核旁路、缓存、完整性和解聚存储工作最常使用的兼容性与性能基线。

是什么

Ext4 通过 extent 管理文件块,用 JBD2 journal 保护 metadata 更新,并深度集成 VFS、page cache、readahead、mmapsendfile 和 Linux 工具生态。它不是为最新 NVMe、CXL 或远程 SSD 专门设计的,但部署广、语义稳定,因此特别适合回答一个问题:新系统为了更快,到底绕过了哪些成熟能力?

论文对 Ext4 的使用大致分三类:把它当作传统内核基线;保留 Ext4 的 metadata/control plane,只替换数据路径;从真实 commit 和 bug 历史中研究复杂文件系统为何难以维护。比较 Ext4 时必须明确 mount 选项、buffered/direct I/O、journal mode、设备和 workload,单个吞吐倍数不能代表完整文件系统能力。

关键观察 / 隐含假设

  • 高速设备会把软件路径变成瓶颈。 WSBuffer-FAST26 发现 page-cache 管理和 xa_lock 会压过高带宽 NVMe;UnICom-FAST26 则表明 polling/interrupt 的选择会随 CPU 负载改变。
  • 内核路径的价值不只在数据搬运。 Oxbow-OSDI26 的读取继续利用 VFS、page cache 和 readahead,写入才绕过内核;保留这些能力会增加组件协议,但避免从头重做成熟读取路径。
  • 远程块设备会放大锁与层次开销。 CetoFS-FAST26 在 NVMe-oF 上测得传统内核路径占明显延迟,并让 inode lock 串行等待网络 RTT;它保留 Ext4 metadata 管理,把数据 read/write 与部分权限、并发控制下沉到 target。
  • 设备功能只有被文件系统使用才有价值。 FS-PI-FAST26 指出 Ext4 能校验 metadata,却没有自然利用设备 PI 为用户数据提供端到端校验;block-layer 支持本身不等于文件系统语义完整。
  • 兼容 Ext4 metadata 会限制 userspace cache。 uCache-FAST26 的 MiniFS 让 Ext4 提供打开与 LBA 查询,但只支持预分配、非 sparse、打开期间不变的文件;高性能来自缩小语义范围。
  • 复杂度和稳定化成本是真实设计约束。 SysSpec-FAST26 统计 Ext4 长期 commit,发现大量工作是 bug fix 和维护;生成一个功能与把它安全合入成熟内核不是同一个问题。

演进时间线

  • 成熟 Linux 基线:Ext4 以 extent、JBD2 和完整 VFS 集成承担通用本地文件系统角色。
  • 2026 FAST 数据路径重构WSBuffer-FAST26UnICom-FAST26uCache-FAST26 分别从 buffered write、poll/interrupt 和 userspace cache 重审 Ext4 路径。
  • 2026 FAST 远程与完整性CetoFS-FAST26 将 Ext4 control plane 与远程 userspace data plane 组合;FS-PI-FAST26 用 Ext4 的缺口说明文件系统尚未完整接入设备 PI。
  • 2026 OSDI 组件化Oxbow-OSDI26 按读、写、日志和设备工作拆分职责,既以 Ext4 为性能对照,也保留其内核生态。
  • 维护性研究SysSpec-FAST26 用 Ext4 的二十年演化说明文件系统 feature 的长期修复成本,并探索 specification-driven generation。

相关概念

  • 日志(journaling)
  • 虚拟文件系统(VFS)
  • 页缓存(page cache)
  • 崩溃一致性(crash consistency)
  • 内核旁路(kernel bypass)

相关论文

  • Oxbow-OSDI26 — 将读取留在内核、写入旁路并把日志工作下沉设备。
  • CetoFS-FAST26 — 在 NVMe-oF 上保留 Ext4 metadata/control plane,重做远程数据路径。
  • WSBuffer-FAST26 — 量化 Ext4 等文件系统的 page-cache 写入瓶颈。
  • UnICom-FAST26 — 在内核中协调 polling 与 interrupt,并以 Ext4 为基线。
  • uCache-FAST26 — 复用 Ext4 metadata 的轻量 userspace cache/file path。
  • FS-PI-FAST26 — 讨论 Ext4 用户数据缺少设备 PI 保护的系统边界。
  • SysSpec-FAST26 — 从 Ext4 commit 历史研究维护成本和 specification-driven generation。

已知局限 / 开放问题

  • 新路径要明确保留或放弃哪些 POSIX、mmap、sendfile、稀疏文件、权限和 crash semantics。
  • NVMe-oF、计算存储和 userspace bypass 把 trust boundary 移到 target/runtime,需要故障注入和安全审计。
  • 只在预分配、低碎片文件上的 extent/LBA cache 结果不能外推到长期运行的通用文件系统。
  • Ext4 feature 的生成或移植仍要面对并发、恢复、升级和数年维护,短 benchmark 不能替代这些证据。