Btrfs 有 Bug 令儲存空間損毀?NAS用家需注意!勤備份以防存檔死清光

- 軒仔 - 2021-08-19

最近在 Facebook 的 NAS 用家交流群組上有網友回報他的 Synology NAS 突然出現檔案系統錯誤,磁碟區變成了唯讀狀態,並向 Synology 客服提交支援表單尋求協助。經過 Synology 工程師兩個多星期的調查後,確認 Btrfs 存在 Bug 引發異常的 「csum item metadata」,加上 Synology 自行調整過讀取時的資料驗證機制,使 DSM 系統底層在處理 Btrfs 異常的 csum item error 時有機會終止處理 metadata,造成儲存空間損毀!

圖片源自網友在 Facebook NAS 群組發出的貼文

圖片源自網友在 Facebook NAS 群組發出的貼文Btrfs 是較新型的檔案系統,原生支援 Snapshot 、RAID 管理等進階功能,不少 NAS 廠商如 Synology、Asustor、Netgear 等都在近年推出的系統採用 Btrfs,以支援更多進階的儲存功能。不過,Btrfs 一直被不少網友戲稱為「Bugfs」,只因 Btrfs 一直存在著不少的問題及 Bug,例如是至今仍然無法在原生的 Btrfs RAID 模式穩定地的支援 RAID5/6,以及曾出現不少因 Btrfs 潛在的 Bug 造成的檔案系統損壞,都讓不少用家卻步。而著名的 Red Hat 也在 2017 年也宣報在旗下的 Red Hat Enterprise Linux (REHL) 不再更新 Btrfs,表露出放棄 Btrfs 的態度。

Red Hat 對於在 Linux 7.4 棄用功能列表的解釋

據網友分享 Synology 工程師的說法,網友的 NAS 是先遇到 Btrfs 已經在 2020 年 6 月份修正的「corrupt log due to concurrent fsync of inodes with shared extents」Bug,加上因 Synology DSM 的資料驗證機制無法正常處理這類錯誤,最終造成了儲存空間損毀這個不幸的結果。目前 Synology 還沒有完成修正這個錯誤,但已承諾將會在日後的版本修正這個問題,並請用家留意 Synology DSM 的更新,以修正這個 Bug。

雖然 Btrfs 的開發社群一直在努力地修正 Btrfs 檔案系統的 Bug,但是不少 NAS 廠商都有各自的考量如穩定性考量而沒有採用最新的 Btrfs 版本,以這次事件為例,其實相關的 Btrfs Bug 已經在一年多前修正,但是 Synology 還沒有 Patch 到他們正使用的 Btrfs 版本上,這可能導致嚴重的錯誤無法及時修正,令不幸的用家資料損壞。

圖片源自網友在 Facebook NAS 群組發出的貼文

圖片源自網友在 Facebook NAS 群組發出的貼文

回到重點,到底用家如何可以避免損失呢?除了使用較成熟穩定的檔案系統外(如 EXT4、ZFS 等),更重要的是採用可靠的備份方案。軟體功能較完整的 NAS 廠商如 Synology 及 QNAP,都提供了很多提供數據備份的套件,讓用家可以把 NAS 的資料備份到「公有雲」、「私有雲」、「外置硬碟」等地方,以便落實「備份3-2-1」原則,當出現問題時,最少有備份檔可以還原資料,避免損失。

相關文章

如何備份我的 Synology NAS?

QNAP NAS 備份與還原