Crash Consistency
Keywords
crash consistencyextentdelayed allocationfragmentationfsckmetadata-data syncorphan blocksecurity leakphantom reservationAsk ChatGPT
Prerequisites
None — this is a starting concept.
Related Papers
Progress
Sign in to track your progress.
一個 write() system call 要同時更新四個獨立的 on-disk 結構:data block 本身、inode size、inode 的 extent list、以及 block bitmap。這四種結構不會同時寫進硬碟,我們要學習一些技巧讓 metadata 和 data 一起好好的寫完。這個單元的其他重點分別為:extent 的空間管理、fragmentation 的影響、delayed allocation 又如何降低 fragmentation,以及 fsck 作為事後補救工具的角色和限制。
Key Concepts
我理解 ext4 extent 與 ext2 indirect pointer,以及 fragmentation 的影響
我理解 delayed allocation
我理解一個 write() system call 可能要更新哪些 on-disk structure
我能說出 metadata 與 data 不同步會導致的幾類問題:orphan block、invisible data、stale-content 資安漏洞、extent-vs-bitmap 不同步引起的定時炸彈、以及 extent 超出 size 的幽靈空間預留
我理解 fsck 作為事後補救工具的角色,也知道它的限制