Linux

3Ware 的 tw_cli 中的“DEGRADED”磁碟與“ECC-ERROR”是什麼意思?

  • November 6, 2012

我在 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 條帶將被損壞(不確定卡在這種情況下會做什麼——它可能會用零甚至隨機數據替換整個條帶),因此“恢復”陣列實際上可能有無法檢測到的損壞(如果受影響的條帶位於某個數據文件的中間)。在嘗試重建之前將數據從陣列複製到其他地方可能更安全(至少在嘗試讀取壞區域時應該會出錯)。

您應該設置陣列的計劃驗證以更早地擷取不可讀的扇區,以便您可以更換剛開始變壞的驅動器。

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