Log-Structured File System
Keywords
Prerequisites
Progress
Sign in to track your progress.
我們從 1991 年的 LFS 出發,理解 append-only log 為何契合 SSD,以及 imap 與 segment cleaning 如何讓這個設計實際運作。接著進入 2015 年 Samsung 的 F2FS,看它如何透過 NAT 這層 indirection 斬斷 log-structured 系統共有的 wandering tree problem,並用 multi-head logging 把 hot/cold 資料分到六個 logs,降低 GC 的搬移成本。
本週的核心戲碼是 log-on-log problem:當 F2FS 以為自己 sequential write 到硬碟,下面的 FTL 其實也是一個有自己 GC 的 log,於是上層的分類在下層被打亂、上下層的 GC 在錯誤的時機互相打架,反而讓 write amplification 加劇。針對這個問題,業界有三種解法:TRIM、Multi-Stream SSD、以及 ZNS。我們也會看 F2FS + ZNS 的 co-design 如何把上下層對齊,讓 device WA 接近 1.0。
最後我們把視角拉到資料庫與 CDN 的 KV 快取系統,看 hot/cold separation 這個從 LFS(1991)、F2FS(2015)、到 FASTER/F2(2025)反覆出現的設計原則,如何成為 storage system 中最常見的方法之一。
Pro Tip: 開啟 YouTube 中文字幕。Key Concepts
我理解 LFS 的基本操作與原理
我理解 wandering tree problem 的成因,以及 F2FS 如何透過 NAT 斬斷 cascade
我理解 F2FS multi-head logging 如何透過 hot/cold separation 降低 GC 成本
我理解 log-on-log problem 為何讓多層 write shaping 反而互相干擾,以及 TRIM、multi-stream、ZNS 這三種解法