本篇中,會詳細地描述崩潰一致性(Crash Consistency)這個問題,並且逐步地從基礎的文件系統問題到複雜的解決步驟一一講解用來克服的方法。
原文出處:
http://pages.cs.wisc.edu/~remzi/OSTEP/file-journaling.pdf
簡介:
當文件文件系統在整理磁碟結構(如FSCK)時、或是一般使用讀寫狀況下操作時遇到錯誤、崩潰、突然斷電,會發生什麼情況?
這些情形發生時都有機會讓系統可能會在任何兩次寫入之間崩潰或斷電,因此磁碟狀態可能只會部分更新。進而導致再次掛載文件系統時的資料不一致,鑑於崩潰可能發生在任何時間點,我們如何確保文件系統將磁碟image保持在合理的狀態?以及崩潰一致性又是怎麼發生的?最後我們要怎麼解決?
我們將從傳統檢查文件系統的方法(稱為fsck或文件系統檢查程序)開始。 然後,我們使用另外一種稱為日誌(journaling,也稱為預寫式日誌記錄)的方法,這種方法會為每次寫入增加一點loadhead,但可以更快地從崩潰或功耗中恢復。
我們也將討論日誌的基本機制,包括Linux ext3 [T98,PAA05](一種相對現代的日誌文件系統)實現的幾種不同類型的日誌記錄。
目錄:
(一)崩潰一致性(Crash Consistency):
(二)崩潰情境(Crash Scenarios):
(三)崩潰一致性問題(The Crash Consistency Problem):
解決方案1:文件系統檢查工具(The File System Checker)
解決方案2:日誌文件系統Journaling
(或預寫日誌文件系統or Write-Ahead Logging)
解決方案3:其他方法(Other Approaches)
(四)總結: