SMART 在我的其中一個磁碟上發現了不可恢復的讀取錯誤,但zpool status
將所有磁碟列為「線上」(IE 未降級)。
- 你知道為什麼會這樣嗎?我認為 ZFS 會盡快知道任何錯誤...
- 我是否需要運行清理才能重新檢查所有磁碟的狀態?
- 我可以讓 SMART 自動向 ZFS 報告嗎?
答案1
- 你知道為什麼會這樣嗎?我認為 ZFS 會盡快知道任何錯誤...
- 我是否需要運行清理才能重新檢查所有磁碟的狀態?
- 我可以讓 SMART 自動向 ZFS 報告嗎?
- 不,它不會一直檢查所有區塊,它只是確保每個寫入區塊在需要/存取時都可以考慮(如果冗餘可用,則可以恢復)。完全不檢查空白空間(因為那裡沒有有價值的數據,所以這會浪費時間),並且僅在讀取時檢查普通數據(因為寫入是僅追加的)。正如 mmusante 所說,只有當錯誤嚴重且無法自動恢復時,您才會收到錯誤訊息(否則,您只會看到一條通知,並且錯誤計數
zpool status
)。 - 是的。
定期(透過 cronjob)清理池可能會更容易。對於企業級磁碟,常見的建議時間約為每月一次,對於消費級磁碟,建議每週一次。否則,您可以使用以下命令開始手動擦洗來自 smartmontools 的腳本:
大多數時候,您只需將腳本放置在 /etc/smartmontools/run.d/ 中。每當 smartd 想要發送報告時,它就會執行 smart-runner,後者將運行您的腳本。
您的腳本有多個可用變數(再次請參閱 smartd 手冊頁)。這些來自測試運行:
SMARTD_MAILER=/usr/share/smartmontools/smartd-runner SMARTD_SUBJECT=SMART error (EmailTest) detected on host: XXXXX SMARTD_ADDRESS=root SMARTD_TFIRSTEPOCH=1267409738 SMARTD_FAILTYPE=EmailTest SMARTD_TFIRST=Sun Feb 28 21:45:38 2010 VET SMARTD_DEVICE=/dev/sda SMARTD_DEVICETYPE=sat SMARTD_DEVICESTRING=/dev/sda SMARTD_FULLMESSAGE=This email was generated by the smartd daemon running on: SMARTD_MESSAGE=TEST EMAIL from smartd for device: /dev/sda
您的腳本還有一份報告的臨時副本,可作為「$1」使用。完成後它將被刪除,但相同的內容會寫入 /var/log/syslog。
然後,您只需從裝置名稱對應到您的池(您可以解析
zpool status
)。