web-dev-qa-db-ja.com

ZFSがディスクを劣化として報告しないのはなぜですか?

スマート。ディスクの1つで回復不能な読み取りエラーが見つかりましたが、zpool statusすべてのディスクをオンラインとしてリストします(つまり、劣化していません)。

  1. なぜそうなるのか知っていますか?私はZFSが誰かがすぐにエラーを知っているだろうが...
  2. すべてのディスクのステータスを再確認するためにスクラブを実行する必要がありますか?
  3. S.M.A.R.T.はどういうわけか自動的にZFSに報告することができますか?
2
lindhe
  1. なぜそうなるのか知っていますか?私はZFSが誰かがすぐにエラーを知っているだろうが...
  2. すべてのディスクのステータスを再確認するためにスクラブを実行する必要がありますか?
  3. S.M.A.R.T.はどういうわけか自動的にZFSに報告することができますか?
  1. いいえ、すべてのブロックを常にチェックするわけではありません。書き込まれた各ブロックが必要になる/アクセスされるとすぐに説明できる(冗長性がある場合は復元できる)ことを確認するだけです。空のスペースはまったくチェックされず(貴重なデータがないため、時間の無駄になります)、通常のデータは読み取り時にのみチェックされます(書き込みは追加専用であるため)。 mmusanteが正しく言ったように、エラーが重大であり、自動的に回復できない場合にのみエラーメッセージが表示されます(それ以外の場合は、zpool statusに通知とエラーカウントが表示されます)。
  2. はい。
  3. 定期的に(cronjobを介して)プールをスクラブする方が簡単な場合があります。一般的な推奨時間は、エンタープライズ品質のディスクの場合は月に1回、コンシューマーレベルのディスクの場合は週に1回です。それ以外の場合は、 smartmontoolsからのスクリプト で手動スクラブを開始できます。

    ほとんどの場合、スクリプトを/etc/smartmontools/run.d/に配置するだけで済みます。 smartdがレポートを送信するときはいつでも、smart-runnerが実行され、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を解析できます)。

2
user121391