Linux
3Ware 的 tw_cli 中的“DEGRADED”磁碟與“ECC-ERROR”是什麼意思?
我在 3ware 9650SE-16ML 卡上有一個悲傷的 RAID 陣列。我不知道是我剛剛遭遇了雙磁碟故障(真糟糕!)還是我讀錯了。的相關輸出
/c0 show all
為:Port Status Unit Size Blocks Serial --------------------------------------------------------------- p0 DEGRADED u0 931.51 GB 1953525168 5QJ07MAH p1 ECC-ERROR u0 931.51 GB 1953525168 5QJ0DCW9 p2 OK u0 931.51 GB 1953525168 5QJ0DW9C p3 OK u0 931.51 GB 1953525168 5QJ0CKXJ
失敗是(來自
show alarms
):Ctl Date Severity Alarm Message ------------------------------------------------------------------------------ c0 [Sun Nov 20 07:47:23 2011] INFO Rebuild started: unit=0 c0 [Sun Nov 20 08:20:12 2011] ERROR Drive ECC error reported: port=1, unit=0 c0 [Sun Nov 20 08:20:12 2011] ERROR Source drive error occurred: port=1, unit=0 c0 [Sun Nov 20 08:20:12 2011] ERROR Rebuild failed: unit=0 c0 [Sun Nov 20 08:20:12 2011] INFO Rebuild paused: unit=0
我認為發生的事情是 p0 失敗,然後 p1 出現 ECC 錯誤(也就是我的數據不見了)。但是……也許不是?它保持在 97% 的重建率,但無法克服這個錯誤。
據我所知,以前的管理員關閉了定期驗證,這就是讓我們進入這種狀態的原因。這不是大多數人在使用 3Ware RAID 時應該擔心的事情!
更新
在敲了幾天之後,我做了 IgnoreECC 位並重建了它,但是我的數據被沖洗掉了。真可惜。
ECC 錯誤意味著驅動器上至少有一個不可讀扇區。但是,如果幸運的話,位於該卷上的文件系統實際上可能不會使用該扇區,因此您仍然可以在此狀態下從陣列中複製數據。
還有一些選項可以在重建期間忽略 ECC 錯誤:
/cx/ux start rebuild disk=p [ignoreECC] /cx/ux set ignoreECC=on|off
但是,使用這些選項意味著受壞扇區影響的 RAID 條帶將被損壞(不確定卡在這種情況下會做什麼——它可能會用零甚至隨機數據替換整個條帶),因此“恢復”陣列實際上可能有無法檢測到的損壞(如果受影響的條帶位於某個數據文件的中間)。在嘗試重建之前將數據從陣列複製到其他地方可能更安全(至少在嘗試讀取壞區域時應該會出錯)。
您應該設置陣列的計劃驗證以更早地擷取不可讀的扇區,以便您可以更換剛開始變壞的驅動器。