Ananke:快速、透明的檔案系統微核心恢復技術

(本文閱讀時間:7分鐘)
編者按:在數字化飛速發展的當下,檔案系統崩潰致資料丟失、系統停機的困境時有發生。傳統恢復方式或耗時低效,或犧牲效能,難以滿足使用者對快速、無感恢復的迫切需求。微軟亞洲研究院研究員和合作者推出的 Ananke 檔案系統微核心服務,憑藉創新技術,實現了檔案系統崩潰後的快速、透明恢復,為行業和使用者探索出新的可行路徑。相關論文在全球計算機儲存領域頂會 FAST 2025 上榮獲最佳論文獎。
你是否曾遇到在儲存檔案或玩遊戲時電腦突然崩潰,重啟後發現數據損壞或丟失的情況?檔案系統故障比我們想象的要頻繁得多,而恢復過程通常緩慢、困難且容易帶來資料故障或損失。
針對此,微軟亞洲研究院研究員和合作者共同設計開發了一種高效能的檔案系統微核心服務 Ananke,旨在進行快速且透明的恢復。與傳統需要全系統重啟的恢復方法不同,Ananke 利用微核心架構的優勢,僅恢復受影響的檔案系統程序和狀態,讓應用程式能夠繼續執行,彷彿系統級別故障未曾發生。相關論文獲得全球計算機儲存領域頂會 FAST 2025 頒發的最佳論文獎。
Fast, Transparent Filesystem Microkernel Recovery with Ananke
論文連結:
https://www.usenix.org/system/files/fast25-liu-jing.pdf

微核心式崩潰恢復
在傳統的宏核心作業系統如 Linux 和 Windows 中,經典檔案系統在核心裡執行,一旦檔案系統崩潰,整個系統便會隨之癱瘓,導致所有應用程式被強制終止。而現代的微核心風格檔案系統則採取了不同的設計策略,它將檔案系統從核心中分離出來,置於一個獨立的程序中。
這一架構變革帶來了多方面的顯著優勢。首先,它能更好地發揮現代 I/O 裝置和多核 CPU 的效能潛力;其次,由於檔案系統在使用者空間執行,所以開發和部署過程得以加快;最後,也是最為關鍵的一點,它顯著提升了故障隔離能力,即當檔案系統發生崩潰時,作業系統和其他應用程式仍能保持正常執行,不會受到牽連。

圖1:檔案系統微核心引入了一種全新的崩潰恢復正規化 —— 程序崩潰恢復
研究員們此前的工作 uFS [1] 就是這樣一個半微核心檔案系統。如今,微核心架構(如鴻蒙作業系統 [2])已部署在數百萬臺裝置中,證明了其實用性。一個關鍵的見解:如果檔案系統只是一個程序,那麼當它崩潰時,為什麼要重啟整個系統?相反,我們應該可以只重啟檔案系統程序,讓應用程式不間斷地繼續執行。

如何精準恢復檔案系統狀態?
從檔案系統崩潰中恢復並不容易。現代檔案系統在將更改提交到磁碟之前,通常使用記憶體緩衝區來管理資料(圖2)。崩潰發生時會出現狀態差距 —— 應用程式所假設的儲存內容與實際在磁碟上的內容之間的不匹配。

圖2:微核心檔案系統恢復的主要挑戰
這種狀態差距非常不規則,因為現代系統中檔案操作往往是亂序處理的,崩潰發生時,有些更新可能只完成了一部分,而另一些則完全缺失。例如,在2中,操作序列 op1→op2→op3 可能只剩下 op1 的效果和 op2 的一半效果。現有的恢復方法在處理這種情況時並不理想,要麼選擇重啟整個系統,導致不必要的停機;要麼依賴應用程式來處理恢復,不僅複雜而且容易出錯;要麼強制頻繁的磁碟重新整理,會嚴重損害效能。Ananke 透過一種高效且對應用程式透明的方法成功解決了這個問題。

Ananke 核心機制:日誌驅動的智慧修復
Ananke 引入了三種關鍵技術。首先是程序崩潰日誌(P-Log)和 AIM(Act/Ignore/Modify)演算法。在正常執行時,Ananke 會在輕量級的 P-Log 中記錄檔案系統的關鍵狀態,而當故障發生時,它會透過 AIM 演算法精確重放必要操作,確保狀態一致且避免冗餘工作。其次是核心協調的預先重啟。Ananke 在現有檔案系統程序旁啟動了新程序,故障時由作業系統協調控制權轉移至新程序,以加快恢復速度。最後是使用校驗和輕量級的錯誤檢測。透過這一機制,Ananke 能檢測並丟棄損壞的記憶體區域,且所有操作開銷極小。
將這些技術結合(如圖3所示的恢復過程),當檔案系統崩潰,作業系統會接管並啟動新檔案系統程序,利用 P-Log 恢復缺失狀態,應用程式可繼續執行,彷彿未發生任何故障,無需重啟且無資料丟失。

圖3:Ananke 恢復過程概覽

評估實驗:高效能與透明的故障恢復
在效能與評估方面,Ananke 透過超30,000次的故障注入實驗,展示出對 SQLite、LevelDB 和標準檔案系統實用程式等五個流行應用程式的無損恢復能力。在正常執行期間保持快速效能的同時,其效能開銷在大多數情況下低於2%,並且恢復時間通常在400毫秒以內,這意味著應用程式幾乎不會經歷停機。與傳統的恢復解決方案相比,Ananke 在正常情況(無故障)下能夠提供高效能,且在故障發生時可實現無縫恢復。
隨著微核心架構在雲服務、移動裝置和安全關鍵系統中的普及,快速、透明的恢復機制變得愈發重要。Ananke 作為一種改變遊戲規則的技術,顯著增強了微核心檔案系統的彈性,且無需犧牲效能。
對於開發人員,Ananke 降低了故障處理的複雜性;對於使用者,它意味著更少的中斷和更高的可靠性。這種創新的恢復機制不僅顯著降低了系統的停機時間,提升了整體執行效率,還增強了資料的安全性與可靠性,為使用者提供了更加穩定、流暢的使用體驗,推動了檔案系統恢復技術向更高效、更智慧的方向發展。
參考文獻
1. Jing Liu, Anthony Rebello, Yifan Dai, Chenhao Ye, Sudarsun Kannan, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. “Scale and Performance in a Filesystem Semi-Microkernel”. In Proceedings of the 28th ACM Symposium on Operating Systems Principles (SOSP '21)
2. Haibo Chen, Xie Miao, Ning Jia, Nan Wang, Yu Li, Nian Liu, Yutao Liu, Fei Wang, Qiang Huang, Kun Li, Hongyang Yang, Hui Wang, Jie Yin, Yu Peng, and Fengwei Xu. Microkernel goes general: Performance and compatibility in the HongMeng production microkernel. In Proceedings of the 16th USENIX Conference on Operating Systems Design and Implementation (OSDI '24), Santa Clara, CA, July 2024.
你也許還想看:


相關文章