在將損壞的扇區標記為有缺陷後,Raid 何時恢復冗餘?
當我在 RAID 設置中將硬碟上的扇區標記為“有缺陷 (GLIST)”時會發生什麼?
數據會立即寫入替換扇區還是取決於實際的設置/設置(軟/硬體 RAID)?
範例:Raid 5 - 4 個驅動器 - Linux 硬體 Raid
在 HDD 1 扇區 0x123456 中斷。它被標記為有缺陷。這會導致該扇區上的數據被標記為失去,並且該扇區現在將指向供應商特定數據。但是由於raid包含1個副本,因此可以恢復有效數據。
何時恢復損壞驅動器上的數據,從而再次擁有 2 組有效數據?
我想它是其中之一:
- 讀取時修復(下次讀取數據時將數據寫入替換扇區)
- 修復標誌(在扇區被標記為有缺陷後立即將數據寫入替換扇區)
- 必須手動觸發修復(命令觸發重建)
如果確實是個人問題/設置,那麼我會對 Smart Array P800 特別感興趣。
但請隨時分享您對此的了解。
PS:如果您通過 google 找到這個 smartmontools 站點是一個很好的起點:例如http://smartmontools.sourceforge.net/badblockhowto.html#bb
依靠。
在日常業務中,您的硬碟確實會為每個正在寫入的扇區寫入校驗和和一些 ECC 資訊,並在讀取操作期間驗證這些數據。
如果錯誤足夠小(例如翻轉位或其他小錯誤)以被硬碟的 ECC 功能覆蓋,您的硬碟可能會自行恢復。SMART 輸出中可能仍然可以看到更正的錯誤,但作業系統或硬體 RAID 控制器沒有註意到讀取錯誤。
否則,硬碟將向您的控制器報告不可恢復的讀取錯誤,並在內部將扇區標記為已損壞。嘗試將數據寫入同一(邏輯)扇區可以讓您的硬碟從保留扇區列表中分配一個替換扇區,並將邏輯扇區的訪問透明地映射到新的(替換)物理扇區。您的寫入請求將儲存在不同的物理扇區,為您修復錯誤。
如果磁碟沒有替換扇區,這也會失敗,並且您無法再通過重寫相同的邏輯扇區來恢復。
硬體 raid 控制器通常會嘗試通過執行後台媒體掃描、預定的自檢和驗證儲存的raid奇偶校驗的準確性,比通常的讀取訪問“更早”地發現此類失敗的扇區。
如果通過重寫同一扇區來修復錯誤則是另一回事,該領域基本上沒有記錄,並且主要取決於個人經驗。僅根據我在執行來自六個不同供應商的數十個硬體 RAID 控制器的數万台伺服器上 15 年的經驗:
- 一些供應商總是執行後台媒體掃描並默默地嘗試自動修復壞塊。惠普/康柏就在這一邊。
- 一些供應商使永久背景媒體掃描成為一個選項,必須專門打開(並且在通電後預設為“關閉”)。
- 一些供應商將後台媒體掃描作為一次性操作提供,該操作將通過管理界面或 CLI 手動觸發
- 一些供應商確實打破了更多。
作為“打破甚至更多”的範例,大約 10 年前,我在特定控制器類型上的 RAID 10 配置中遇到了嚴重問題:有時,文件系統和應用程序數據被損壞。更仔細的調查並在應用程序級別引入校驗和表明,有時已讀取零,但預計非零數據。
罪魁禍首:從壞塊讀取時,控制器將其記錄為錯誤,但根本沒有從工作副本中恢復。相反,它報告周圍的 8k 數據條是零條,並且讀取操作成功。該行為在超過 100 個控制器上是可重現的,供應商的客戶支持甚至表示這是完全可以接受的,因為 RAID 只能從全盤故障中恢復,而不是處理單個塊的故障。
在 RAID4/RAID5 配置中,同一控制器將從 RAID 冗餘中恢復並將恢復的條帶傳送到作業系統,但不會自動恢復磁碟上的壞塊。為了從壞塊中恢復,必須要麼在作業系統級別重寫相同的邏輯塊,要麼在管理界面中發出“重新生成奇偶校驗”操作。後者將掃描所有磁碟,驗證 RAID 奇偶校驗校驗和,並嘗試通過重寫任何具有讀取錯誤或 RAID 奇偶校驗失敗的塊來恢復壞塊。
在另一個極端,Compaq/HP 多年來一直在他們的 RAID 控制器上執行後台掃描,如果塊/扇區無法從奇偶校驗中自動恢復或其他看起來有問題的東西,控制器會記錄這一點,開始閃爍 LED受影響的驅動器並嘗試提醒管理員(例如,在 POST 期間通過嘮叨的消息螢幕)。我還沒有聽說我們目前約有 10k 台 HP Smart Array 控制器(包括大約 1100 台 P800)存在任何壞塊問題。不過,這只是我的經驗。