Space Map
Space map 是 ZFS 的 free-space manager:把 device 切成 metaslabs,on disk 用 log 記錄 range updates,in memory replay 成 balanced tree。
storage pool
├─ metaslab 0 → space map 0
├─ metaslab 1 → space map 1
└─ metaslab 2 → space map 2How It Works
- metaslab:把巨大 pool 分區,避免每次掃全域 free-space state。
- on-disk log:append allocate/free events,以
(start, count)表示 ranges。 - in-memory tree:載入 metaslab 時 replay log,建立可查詢、可 merge/split 的 free-range tree。
on-disk space-map log → replay → in-memory balanced treeTradeoff
Space map 減少大型 storage pool 的 scattered bitmap writes,適合 ZFS 這種 COW / snapshot-heavy 系統。代價是 metaslab selection、log replay、range coalescing、transaction integration 都更複雜。
它不是 general journaling;space map 是 free-space metadata 的 log-style representation。