Filesystems
btrfs 如何在沒有日誌的情況下防止數據損壞?
根據這個頁面,像ext4這樣的文件系統對塊和元數據都有日誌記錄,它用於防止數據損壞:
日誌文件系統是一種文件系統,它通過在稱為“日誌”的資料結構(通常是循環日誌)中記錄此類更改的意圖來跟踪尚未送出到文件系統主要部分的更改。在系統崩潰或電源故障的情況下,此類文件系統可以更快地恢復聯機,並且損壞的可能性更低。
然而,這個頁面引用了ext4的主要開發者和維護者Theodore T’so的話說btrfs比ext4更好:
儘管 Ext4 為文件系統添加了許多引人注目的特性,但 T’so 並不認為這是向前邁出的重要一步。他認為這是對過時的“1970 年代技術”的翻版,並將其描述為保守的短期解決方案。他認為,前進的道路是 Oracle 的開源 Btrfs 文件系統,該系統旨在顯著提高可擴展性、可靠性和易於管理性。
Btrfs 使用寫時複製(CoW),因此現有數據在修改時不會被覆蓋,而是複製到新位置並更改副本。因此不需要日誌,因為在電源故障或系統崩潰的情況下,您仍然擁有原始數據。Btrfs 還使用校驗和來檢測隨機數據損壞,因此它知道數據和元數據是否有效或損壞。