SMART はディスクの 1 つに回復不可能な読み取りエラーを検出しましたが、zpool status
すべてのディスクが ONLINE (つまり、DEGRADED ではない) としてリストされています。
- なぜそうなるのかご存知ですか? ZFS はエラーがあればすぐにわかると思っていましたが...
- すべてのディスクのステータスを再確認するには、スクラブを実行する必要がありますか?
- 何らかの方法で SMART を ZFS に自動的にレポートさせることはできますか?
答え1
- なぜそうなるのかご存知ですか? ZFS はエラーがあればすぐにわかると思っていましたが...
- すべてのディスクのステータスを再確認するには、スクラブを実行する必要がありますか?
- 何らかの方法で SMART を ZFS に自動的にレポートさせることはできますか?
- いいえ、常にすべてのブロックをチェックするわけではありません。書き込まれた各ブロックが、必要になったときやアクセスされたときにすぐに記録される (冗長性が利用できる場合は復元される) ようにするだけです。空き領域はまったくチェックされません (そこに貴重なデータはないので、時間の無駄になるからです)。また、通常のデータは読み取り時にのみチェックされます (書き込みは追加のみ)。mmusante が正しく述べたように、エラーが重大で自動的に回復できない場合のみ、エラー メッセージを受け取ります (それ以外の場合は、通知が表示され、エラーがカウントされます
zpool status
)。 - はい。
定期的に(cronjob経由で)プールをスクラブする方が簡単かもしれません。一般的に推奨される頻度は、エンタープライズ品質のディスクの場合は月に1回、コンシューマーレベルのディスクの場合は週に1回です。それ以外の場合は、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
)。