Raid

自我修復文件系統對一般用途有多大好處?

  • September 7, 2021

我最近研究了高級文件系統(Btrfs、ZFS)的數據冗餘和可用性,並對它們提供的附加功能感興趣,尤其是它們針對數據損壞的“自我修復”功能。

但是,我認為我需要退後一步,嘗試了解與傳統的 mdadm-Raid1 + 相比,對於一般家庭/SMB 使用而言,這種優勢是否超過了它們的劣勢(Btrfs 錯誤和未解決的問題以及 ZFS 可用性和性能影響) Ext4 解決方案。無論哪種方式都可以使用鏡像備份。

假設我有幾個文件伺服器用於歸檔目的並且資源有限,但是 ECC 記憶體和穩定的電源。

  1. 我什至遇到實際數據損壞導致文件無法讀取的可能性有多大?如何?
  2. Ext4 或系統文件管理器是否已經檢測到複製/移動操作中的數據錯誤,讓我至少意識到一個問題?
  3. 如果 madam-Raid1 驅動器中的一個驅動器由於一個驅動器有壞扇區而保存了不同的數據,會發生什麼情況?我仍然能夠檢索到正確的文件,還是陣列無法確定哪個文件是正確的並完全失去?

是的,功能校驗和文件系統是一件非常好的事情。然而,真正的動機並不是在神話中的“bitrot”中找到,雖然確實發生了,但非常罕見。相反,主要優點是這樣的文件系統提供端到端數據校驗和,通過錯誤的磁碟行為主動保護您,例如與磁碟自己的私有 DRAM 記憶體故障和/或由於電源導致的行為不端相關的錯誤寫入和數據損壞問題。

當 Linux RAID 1 陣列由於電源問題而損壞時,我親身經歷了這個問題。一個磁碟的記憶體開始損壞數據,並且嵌入在磁碟扇區中的 ECC 本身沒有擷取任何東西,這僅僅是因為寫入的數據已經損壞,並且 ECC 是根據損壞的數據本身計算的。

多虧了它的校驗和日誌,它檢測到一些奇怪的東西並暫停了文件系統,XFS 限制了損壞;但是,某些文件/目錄已不可挽回地損壞。由於這是一台不會立即面臨停機壓力的備份機器,因此我使用 ZFS 對其進行了重建。當問題再次發生時,在第一次清理期間,ZFS 通過從其他磁碟讀取良好副本來糾正受影響的塊。結果:沒有數據失去,也沒有停機時間。這是使用校驗和文件系統的兩個很好的理由。

值得注意的是,數據校驗和是如此有價值,以至於提供它的設備映射器目標(通過模擬 T-10 DIF/DIX 規範),稱為dm-integrity,正是為了將此保護擴展到經典塊設備(尤其是冗餘塊設備)作為 RAID1/5/6)。借助Stratis 項目,它將被集成到一個綜合管理 CLI/API 中。

但是,您有一點認為,此類文件系統帶來的任何潛在優勢都應與它們繼承的劣勢進行比較。ZFS 的主要問題是它沒有被主流化到標準核心中,但除此之外它非常快速和穩定。另一方面,雖然 BTRFS 已成為主流,但存在許多重要問題和性能問題(對數據庫或 VM 的常見建議是禁用 CoW,這反過來又禁用了校驗和——坦率地說,這不是一個可接受的答案)。與其使用 BTRFS,我會使用 XFS 並希望獲得最好的結果,或者使用 dm-integrity 受保護的設備。

引用自:https://serverfault.com/questions/1017443