當我有 ZFS 時,JBOD 上的 3ware“ECC-ERROR”是否重要?
我有一台執行 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 status
說No known data errors
我的問題:這
ECC-ERROR
是我需要關注的事情嗎?根據3ware CLI 9.5.2 Manual,an
ECC-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 和計劃的完整性檢查。