最近得了艾滋病 肯特·奧弗斯特里特,bcachefs 的作者, 在 LSFMM 2023 會議上的演講 總結了工作成果 Bcachefs文件系統升級 討論了 Linux 內核的主要分支並討論了內核進一步開發的計劃。
Bcachefs 是使用已經經過驗證的技術開發的 Bcache 塊設備的開發,旨在將對慢速硬盤的訪問緩存到快速 SSD 驅動器上(自版本 3.10 起包含在內核中)。 Bcachefs使用Copy-on-Write機制 (COW),其中更改不會導致數據覆蓋:新狀態被寫入新位置,之後當前狀態指示器發生變化。
Bcachefs 的一個特點是 支持連接多層驅動器,其中存儲由多層組成:更快的驅動器(SSD)連接到底層,用於緩存經常使用的數據,頂層形成容量更大的驅動器和存儲需求較少的數據的更便宜的驅動器。 回寫式緩存可以在層之間使用。 可以動態地將驅動器添加到分區或從分區中分離,而無需中斷文件系統的使用(數據自動遷移)。
關於該項目,有人提到 Bcachefs的發展目標是在性能上達到XFS的水平, 可靠性和可擴展性。
在提供 Btrfs 和 ZFS 固有的附加功能的同時,例如一個分區中的多個設備、多層存儲佈局、複製 (RAID 1/10)、緩存、LZ4、gzip 和 ZSTD 模式、狀態段、校驗和完整性驗證、能力存儲Reed-Solomon糾錯碼,存儲加密信息。
在性能方面,Bcachefs領先於Btrfs和其他基於Copy-on-Write機制的文件系統,表現出接近Ext4和XFS的性能。
在 Bcachefs 開發的最新成就中,可寫入快照的實現穩定性最為突出。 與 Btrfs 相比,Bcachefs 中的快照現在可擴展性明顯更好,並且沒有 Btrfs 固有的問題。
實踐中,在組織MySQL備份時測試了快照的工作情況。 Bcachefs在提高可擴展性方面也做了很多工作:文件系統在100TB存儲上的測試中表現良好,預計不久的將來Bcachefs將部署在1PB存儲上。
除此之外,還要強調的是 添加了新的 nocow 模式以禁用“寫入時復制”機制。 今年夏天,他們計劃使 RAIDZ 和糾錯碼的實現達到穩定狀態,並解決使用 fsck 實用程序恢復和驗證文件系統時內存消耗高的問題。
未來的計劃 提到了 d我想在Bcachefs的開發中使用Rust語言。 據Bcachefs的作者說:
他喜歡編碼,而不是調試代碼,現在當有更好的選擇時,用 C 編寫代碼是瘋狂的。 Rust 已經參與了 Bcachefs 的一些用戶空間實用程序的實現。 此外,用 Rust 完全重寫 Bcachefs 的想法正在逐漸醞釀,因為使用這種語言可以顯著節省調試時間。
關於將 Bcachefs 移至主內核分支 從Linux 由於變更規模較大,採用過程可能會延遲 (2500個補丁和大約90萬行代碼),這很難審查。 為了加快審核速度,一些開發商 建議將補丁系列分成更小、邏輯上更獨立的部分.
在討論中,一些參與者還提請注意開發人員對項目的開發情況,以及如果開發人員出了問題,代碼可能變得無法維護的危險(兩名紅帽員工對該項目感興趣,但您的工作仍在等待中) )。 有限的錯誤修復)。
2020月,提出修改並納入Linux內核主體部分。 XNUMX 年底宣布準備在將 Bcachefs 納入內核之前對其實施進行審查,當前版本的補丁考慮了之前審查期間發現的反饋和缺陷。
來源: https://lwn.net/