Linux 6.2 將在 Btrfs 中包含對 RAID5 和 RAID6 的改進

Linux內核

Linux內核

近日有爆料稱 Btrfs 的改進被提議包含在 Linux 6.2 內核中 修復 RAID 5/6 實現中的寫孔問題。

問題的本質歸結為,如果在錄製過程中發生崩潰,最初無法理解哪個 RAID 設備上的哪個塊被正確寫入,以及哪個塊沒有完成錄製。

如果您嘗試在這種情況下重建 RAID,則與訂閱塊對應的塊可能會損壞,因為 RAID 塊的狀態不同步。 在沒有採取特殊措施來解決此影響的任何 RAID1/5/6 陣列中都會出現此問題。

在像 btrfs 中的 RAID1 這樣的 RAID 實現中,這個問題得到了解決 通過在兩個副本上使用校驗和,如果存在不匹配,則只需從第二個副本恢復數據。 如果任何設備開始提供錯誤數據而不是完全失敗,這種方法也適用。

黃大仙禁運, 在 RAID5/6 的情況下,文件系統不存儲校驗和 對於奇偶校驗塊——在正常情況下,塊的正確性是通過它們都配備了校驗和來檢查的,並且可以從數據中重新創建奇偶校驗塊。 但是,在部分記錄的情況下,這種方法在某些情況下可能不起作用。 在這種情況下, 恢復陣列時,有可能 不完整記錄中留下的塊 被錯誤地恢復。

在 btrfs 的情況下,如果發生的寫入小於條帶,則此問題更為相關。 在這種情況下,文件系統必須執行讀取-修改-寫入 (RMW) 操作。

如果它遇到正在寫入的塊,則 RMW 操作可能會導致無法檢測到的損壞,無論校驗和如何。 開發者做了改動,RMW操作在執行該操作前先校驗block的校驗和,必要時數據恢復也會在寫入後進行校驗和校驗。

不幸的是,在寫入不完整邊緣 (RMW) 的情況下,這會產生額外的開銷來計算校驗和,但會顯著提高可靠性。 對於RAID6,這樣的邏輯還沒有準備好,

此外,我們可以注意到開發人員關於使用 RAID5/6 的建議,其本質是 Btrfs 中用於存儲元數據和數據的配置文件可能不同。 在這種情況下,您可以對元數據使用 RAID1(鏡像)甚至 RAID1C3(3 個副本)配置文件,對數據使用 RAID5 或 RAID6。

這一方面確保了可靠的元數據保護和不存在“寫入漏洞”,另一方面確保了空間的更有效利用,這是 RAID5/6 的典型特徵。 這可以防止元數據損壞,並且可以糾正數據損壞。

可以注意到,對於內核 6.2 中 Btrfs 上的 SSD, la “丟棄”操作的異步執行 (標記不再物理存儲的已釋放塊)將默認打開。

這樣做的好處 模式是高性能 由於隊列中丟棄操作的有效分組和後台處理程序對隊列的後處理,因此正常的 FS 操作不會像同步“丟棄”那樣減慢,因為塊被釋放,SSD 可以做得更好決定。 另一方面,您將不再需要使用 fstrim 等實用程序,因為所有可用塊都將在 FS 中擦除,無需額外掃描,也不會減慢操作速度。

最後,如果你有興趣能夠了解更多,可以查閱詳情 以下鏈接。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。