Raid

一個故障驅動器 + 一個壞扇區是否會破壞整個 RAID 5?

  • July 1, 2021

在規劃 Synology Disk Station 上的 RAID 設置時,我閱讀了大量有關各種 RAID 類型的資料,這是一本很好的閱讀資料:RAID 級別URE(不可恢復的讀取錯誤)的重要性。

但是,我還不清楚一件事:

讓我們有兩個場景:

  1. 陣列是2 個驅動器的RAID 1
  2. 陣列是3 個驅動器的RAID 5

兩種情況的假設相同:

  • 讓我們在 RAID 陣列上有 100.000 個文件
  • 一個驅動器發生故障(需要更換)
  • 在重建陣列期間恰好有一個壞扇區 (URE)

發生什麼了?RAID 重建是否有 99.999 個文件正常且 1 個文件失去?還是我會失去所有 100.000 個文件?

如果答案需要了解文件系統類型,假設文件系統是 BTRFS 或 ZFS。

簡短的回答是視情況而定。

在您描述的情況下(有故障的磁碟 + 另一個磁碟上的一些不可讀扇區),一些企業 RAID 控制器將核對整個陣列,理由是其完整性受到損害,因此唯一安全的措施是從備份中恢復。

其他一些控制器(最值得注意的是來自 LSI)將改為刺穿陣列,將一些 LBA 標記為不可讀但繼續重建。如果不可讀的 LBA 有效地位於可用空間上,則不會失去實際數據,因此這是最佳方案。如果它們影響已經寫入的數據,一些資訊(希望沒有什麼價值)將不可避免地失去。

Linux MDADM 非常通用,最新版本為這種穿孔陣列提供了一個專用的“重映射區域”。此外,您始終可以使用ddddrescue首先將具有不可讀扇區的驅動器複製到新磁碟,然後使用該磁碟重新組裝陣列(當然會失去一些數據)。

BTRFS 和 ZFS 憑藉與塊分配層的更多集成,可以檢測失去的數據是在空閒空間還是分配空間,並詳細報告受影響的文件。

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