1. f2fs(Flash-Friendly File System)在 SSD/eMMC/UFS 的 LFS(log-structured)写入设计?
f2fs(Flash-Friendly File System)在 SSD/eMMC/UFS 上采用 LFS(log-structured)写入设计的原理是什么?
- LFS 只追加写入的特点
- 与闪存物理特性的匹配
- 减少写放大与随机写
f2fs 面向闪存设备(SSD、eMMC、UFS)设计,采用 log-structured(LFS)写入方式:数据总是追加写入到连续的段(segment)中,而不是原地覆盖。这匹配闪存的特性——闪存不支持原地覆盖,只能以"擦除再写"的方式更新,且最小擦除单位(块)远大于写入单位(页)。LFS 让写入变得顺序化、大块化,减少随机写,从而降低写放大、延长设备寿命、提升写入吞吐。f2fs 通过 segment 管理、checkpoint、NAT/SIT 等机制组织这种日志写入,并配合 GC 回收无效段。设计目标是让文件系统布局与闪存物理特性协同,最大化闪存性能与寿命。
闪存区别于磁盘的关键是"erase-before-write"与"有限擦写次数"。LFS 把随机写变成顺序追加,是对闪存最友好的写入方式。f2fs 的段管理、COW 化元数据、GC 都是围绕 LFS 展开。理解 LFS 是理解 f2fs 的钥匙,也是理解为什么它对闪存友好、写放大低的原因。