本地磁盘文件系统对比

本地磁盘文件系统对比

1. ext4

目录:fs/ext4/,日志:fs/jbd2/

特点:

  • extent tree;
  • block group/mballoc;
  • ordered/writeback/journal data mode;
  • delayed allocation;
  • metadata checksum;
  • fast commit;
  • fscrypt/fs-verity/quota;
  • 成熟、适合 eMMC/NVMe 通用场景。

已有逐模块文档见 ext4/

2. F2FS

面向 flash 的 segment/log-structured 设计:

  • NAT/SIT/SSA;
  • checkpoint;
  • node/data logs;
  • garbage collection;
  • SSR/LFS;
  • compression、checkpoint disable 等可选功能。

适合写入模式和 flash 特性匹配的设备,但 GC、checkpoint 和空间预留会影响尾延迟。

3. XFS

特点:

  • allocation group 并行;
  • B+tree metadata;
  • delayed logging/CIL;
  • iomap;
  • reflink/rmap/refcount;
  • online scrub/repair 部分能力;
  • 大文件、大容量和并发。

小容量 eMMC 并不天然受益,需考虑内存和运维工具。

4. Btrfs

CoW tree 架构:

  • metadata/data checksum;
  • snapshot/subvolume;
  • reflink;
  • compression;
  • multi-device/RAID;
  • scrub;
  • delayed refs/extent tree。

功能丰富但写放大、fragmentation、ENOSPC 语义和恢复运维更复杂。

5. 一致性模型

文件系统 主要恢复机制
ext4 JBD2 metadata journal/fast commit
F2FS checkpoint + roll-forward
XFS metadata log
Btrfs CoW transaction + tree log

“有日志”不代表最近应用数据一定持久;应用仍需 fsync 和正确 rename protocol。

6. 选择建议

场景 常见选择
通用系统盘/eMMC ext4
高频 flash 写、已充分验证 F2FS
NVMe 大文件/并发 ext4 或 XFS
snapshot/checksum/compression Btrfs
极简无日志 ext2(需接受恢复风险)

最终选择应基于掉电测试、空间占用、升级恢复工具、写放大和 p99,不仅是峰值带宽。

7. 通用调用边界

四者都通过 VFS ops 接入,但内部 extent、日志和 writeback 完全不同。不能把 ext4 mount option 或 fsck 工具用于其他文件系统。

8. RK3588 验证

  • eMMC cache/flush 是否正确;
  • 供电掉电窗口;
  • NVMe thermal throttle;
  • discard 策略;
  • journal/checkpoint latency;
  • 多媒体大文件删除/循环覆盖;
  • inode 和空间耗尽;
  • 内核与用户态修复工具版本匹配。

文章互动

阅读 --

留言

0 条留言

正在加载留言…