Linux

系統會確保在完成重新啟動之前同步 mdadm 嗎?

  • August 5, 2012

這是我的瘋狂mdadm問題的後續行動。我試圖找出可能導致sda不同步的原因。我唯一能想到的是我剛剛執行了一堆更新並正在重新啟動以重新載入核心升級。是否有可能兩個驅動器沒有同步?如果正在進行 mdadm 同步,系統會阻止重新啟動嗎?可以做到嗎?關於可能發生的任何其他建議?以及如何進一步預防。驅動器似乎沒有任何問題。

它肯定會在乾淨關閉時發生:

  1. (其中之一)我的 RAID 陣列很忙,無法停止。是什麼賦予了?

mdadm 報告具有根文件系統的陣列在關機時處於忙碌狀態是完全正常的。這樣做的原因是必須掛載根文件系統才能停止陣列(否則 /sbin/mdadm 不存在),但要停止陣列,不能掛載根文件系統。Catch 22。核心實際上在停止之前停止了數組,所以一切都很好。

即使您的系統在寫入過程中崩潰,驅動程序也會注意在寫入塊時將其標記為臟塊,並在臟塊從不干淨的數組開始時重新同步。請參閱有關數組狀態的評論核心文件警告說,臟(未完全關閉)和降級(缺少部分)的數組不會自動組裝,因為這不安全。當你組裝一個臟數組時,你會(可能非常短暫地)resync/sys/block/md99/md/rd0/state. 總而言之,md 驅動程序負責保護您的數據免受硬體組件(CPU 或磁碟)完全故障的影響,這是對它的期望。

md 不會保護您免受由於 RAM、CPU、主機板或磁碟中的拜占庭故障(即一個或多個位的靜默翻轉)導致的數據損壞。磁碟硬體具有校驗和,但它們並不完美(參見例如Zfs 宣傳資料)。 ZfsBtrfs可以防止儲存設備損壞。Btrfs 的校驗和樹可確保在您的硬碟發生翻轉時通知您。Zfs 提供了一種校驗和選擇(根據Jeff Bonwick 的部落格),最高 SHA-256 不僅可以防止隨機損壞,還可以防止蓄意攻擊,但代價是 CPU 週期。

引用自:https://unix.stackexchange.com/questions/3640