Storage

當我有 ZFS 時,JBOD 上的 3ware“ECC-ERROR”是否重要?

  • November 21, 2014

我有一台執行 ZFS 和 3ware 9690SA 控制器的 FreeBSD 8.x 機器。

3ware 控制器顯示帶有以下磁碟之一的 ECC-ERROR:

//host> /c0 show
VPort Status         Unit Size      Type  Phy Encl-Slot    Model
------------------------------------------------------------------------------
p0    OK             u0   279.39 GB SAS   0   -            SEAGATE ST3300657SS 
p1    OK             u0   279.39 GB SAS   1   -            SEAGATE ST3300657SS 
p2    OK             u1   931.51 GB SAS   2   -            SEAGATE ST31000640SS
p3    ECC-ERROR      u2   931.51 GB SAS   3   -            SEAGATE ST31000640SS
p4    OK             u3   931.51 GB SAS   4   -            SEAGATE ST31000640SS

/c0 show events在其最近的歷史記錄中沒有顯示 ECC 錯誤。

ZFS 目前未檢測到任何錯誤。zpool statusNo known data errors

我的問題:這ECC-ERROR是我需要關注的事情嗎?

根據3ware CLI 9.5.2 Manual,anECC-ERROR表示 3ware 控制器在該驅動器上擷取了一個或多個扇區的讀取錯誤。這有時會在 RAID 陣列從故障磁碟中恢復時發生。相信在3ware Controller驗證每個磁碟時也可以檢測到ECC-ERRORS。沒有一個驅動器出現故障,因此沒有重建驅動器,所以我假設 3ware 在執行它每週對磁碟進行自動驗證掃描時發現了一個壞扇區。這是一個安全的假設嗎?

根據我們的日誌,ZFS 沒有在該驅動器上檢測到任何壞扇區。ZFS 可以解決讀取錯誤——如果 ZFS 檢測到驅動器上的壞扇區,它只會將該扇區標記為壞扇區,並且不再使用它。從 ZFS 的角度來看,一個壞扇區沒什麼大不了的,儘管它可能表明驅動器開始壞了。

我可以ECC-ERROR使用 清除錯誤tw_cli /c0 rescan,並根據 tw_cli 手冊頁如果條件不再存在,重新掃描控制器將清除錯誤狀態”。並且由於 ECC 錯誤僅在讀取特定磁碟扇區時才會發生,因此該錯誤ECC-ERROR消失了。由於 ZFS 可能已將該壞扇區移動到磁碟的另一個區域,並將該壞扇區標記為“壞”,因此將永遠不會再讀取該壞扇區。

根據 docs,在單個驅動器的情況下,這意味著您可能有損壞的數據,也可能沒有。ZFS 保存對象的校驗和,因此可以進行數據完整性檢查。確保進行 RAID 和計劃的完整性檢查。

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