RAID6擦洗不符修復?

RAID6擦洗不符修復?

您可以使用 啟動 mdadm 陣列的清理echo 'check' > /sys/block/mdX/md/sync_action,如果發現壞扇區,它會自動重寫(來自鏡像或來自 RAID5/6 的奇偶校驗資訊)。

然而如果所有區塊讀取成功但發現不一致,則視為不匹配。在這種情況下,修復會很複雜,因為 mdadm 無法判斷哪個鏡像包含正確的資料 (RAID1/10),或者資料或奇偶校驗是否已損壞 (RAID5)。

理論上,如果我正確理解 RAID6,那麼 RAID6 就不是這種情況。由於存在雙奇偶校驗,因此應該可以找出單一損壞的位置,無論是資料還是奇偶校驗。

  1. 我的理解是否正確,理論上這應該可行嗎?
  2. 如果正確,mdadm 是否能夠修復這些不一致的資料而無需猜測哪個區塊已損壞?

答案1

理論上是可能的:數據+奇偶校驗給你關於數據應該是什麼的三種意見;如果其中兩個一致,則可以假設第三個是錯誤的,並根據前兩個重寫。

Linux RAID6 不這樣做。相反,只要出現不匹配,兩個奇偶校驗值就被假定為不正確,並根據資料值重新計算。曾有人提議改為「多數票」制度,但尚未實施。

mdadm套件包括raid6check 實用程式它試圖在奇偶校驗不匹配的情況下找出哪個磁碟是壞的,但它有一些粗糙的邊緣,預設不安裝,並且不能修復它發現的錯誤。

答案2

raid6check實用程式mdadm包含repair自版本 3.3(於 2013 年 9 月 3 日發布)以來的模式(更準確地說自此提交以來):https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=8a63c73123b9d022107c82bd684e17bf87bc081e

相關內容