OpenZFS 2.2.1 專案開發了 ZFS 檔案系統的實作。 Linux 以及 FreeBSD。此次發布最顯著的特點是增加了內核支援。 Linux 6.6 並嘗試消除複製檔案後導致資料損壞(某些區塊被清除)的問題。
最初,人們認為該問題僅出現在 2.2.x 分支中,是由 OpenZFS 2.2.0 中包含的區塊克隆機制的一個錯誤引起的。該機制允許在不複製資料的情況下建立文件或文件部分內容的副本,並在第二個副本中使用對原始文件現有資料塊的引用,而無需實際複製它們。在 OpenZFS 2.2.1 中,區塊克隆機制預設被停用以阻止該問題,並新增了 zfs_bclone_enabled 設定以恢復對此模式的支援。
隨後,開發人員報告指出在 OpenZFS 2.1.x 分支的配置中重現了該問題。關於該問題僅在安裝了舊版本 coreutils 軟體包的系統上才會出現的假設也未得到證實——該錯誤已在 FreeBSD 和 Linux 系統中成功重現。 Linux-發行版包含最新發布的 coreutils 9.4。
檔案損壞的情況相當罕見,例如,在 Gentoo 中執行「emerge -1 dev-lang/go」指令會導致安裝的 Go 工具包在 /usr/lib/go/pkg/tool/ 中包含損壞的檔案linux_amd64/目錄.編譯。 假設在openzfs版本1中設定預設參數「zfs_dmu_offset_next_sync=2.1.4」後開始出現該錯誤。 錯誤來源尚未確定。 作為阻止錯誤的建議解決方法,建議將參數“/sys/module/zfs/parameters/zfs_dmu_offset_next_sync”設為 0。
來源: opennet.ru
