「S.M.A.R.T.」の版間の差分
細 (→潜在的な問題をメールする) |
細 (1版 をインポートしました) |
(相違点なし)
|
2015年1月11日 (日) 14:53時点における版
S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) は近代的なストレージデバイスに内蔵されている補助コンポーネントです。温度・代替処理された不良セクタの数・シークエラーなどの統計が保存され、ソフトウェアはそれらの値からデバイスの健康状態を推察し、故障を予測したり値が不安定なときに通知することができます。
目次
Smartmontools
smartmontools パッケージはストレージデバイスを診断するための2つのユーティリティ (smartctl
と smartd
) を含んでいます。公式リポジトリから smartmontools をインストールしてください。
デバイスが SMART 対応かどうか確認する
デバイスが SMART 機能を有しているかどうかチェックするには次のコマンドを実行します (対象が ATA デバイスの場合 -d ata
オプションが必要です):
# smartctl -i /dev/<device>
(<device> は sda, hda,...
のように置き換えて下さい)。このコマンドはデバイスに関する全般的な情報を表示します。対応している場合、下の2つの行が確認できるはずです:
SMART support is: Available - device has SMART capability. SMART support is: Enabled
SMART が有効でない場合、以下を実行して有効化します:
# smartctl -s on /dev/<device>
デバイスの健康状態を調べる
実行中のデバイスの健康状態を調べる3つの方法があります(どれもユーザーデータには影響を与えません):
- Short (検出されているデバイスの中で問題のありそうなデバイスを精査する)
- Extended (または Long。Short のチェックを全ての部分で行う)
- Conveyance (デバイスの転送中に深刻なエラーが発生した場合にそれを特定する)
デバイスがどのテストに対応しているのか、そしてそれらの診断にどれくらい時間がかかるのか調べるには以下を実行します:
# smartctl -c /dev/<device>
テストを実行するには:
# smartctl -t short /dev/<device> # smartctl -t long /dev/<device> # smartctl -t conveyance /dev/<device>
結果
(全てのテストから集めた)テストによる全体の健康状態を見るには:
# smartctl -H /dev/<device>
テストのエラー数を表示するには:
# smartctl -l selftest /dev/<device>
テストの詳細な記録を表示するには:
# smartctl -a /dev/<device>
エラーが記録されていない場合、おそらくデバイスは健康です。もしエラーが多少記録された場合、問題があるかもしれないのでさらなる調査が必要です。デバイスが再起不能に陥る前にデータのバックアップを取りリプレースすることを推奨します。
デバイスの監視
smartmontools デーモンにより、デバイスをバックグラウンドで定期的に監視して、任意で潜在的問題をメールするようにすることができます。起動時にデバイスを監視するには、smartd サービスを有効にしてください:
systemctl enable smartd.service
smart デーモンは /etc/smartd.conf
に更に細かい設定をすることが可能です。
監視するデバイスの定義
全てのデバイスの全ての属性を監視するには以下を定義します:
DEVICESCAN
あるいは、個々のデバイスを監視対象にするには以下のように定義します:
#DEVICESCAN /dev/<first_device> -a /dev/<second_device> -a
潜在的な問題をメールする
新しいエラーが発生したり、なんらかの問題が発生した時にメールされるようにします。-m
を用います:
DEVICESCAN -m address@domain.com
(root メールアカウントではなく) 外部にメールを送信するには、MTA (Mail Transport Agent) か MUA (Mail User Agent) の事前の設定が必要です。一般的な MTA は MSMTP と SSMTP です。一般的な MTU は sendmail か Postfix です。メールするだけなら、S-nail を設定するだけで足ります。
メールエージェントを設定したら、-M test
を使って一度メールが正しく送れるかどうか確認することができます (デーモンをすぐに再起動してください):
DEVICESCAN -m address@domain.com -M test
電源管理
あなたのコンピューターが電源管理下にあるのなら、smartd に低電圧時の HDD の扱いについて定義しておくべきです。通常スピンアップ時は SMART への反応は smartd コマンドによって発行されます。もしこのオプションを使用しないなら,低電圧運転中に smartd による定期的な監視時にスピンアップし高電力モードになることがあります。
DEVICESCAN -n standby,15,q
詳しい情報は smartmontools wiki を見てください。
自己診断の予定を組む
smartd はスケジュールに従って自己診断の実行をするようディスクに通知することができます。以下の /etc/smartd.conf
設定例では毎日午前2-3時の間に短い自己診断が、
加えて、土曜日の午前3-4時の間に長い自己診断が行われるようにします:
DEVICESCAN -s (S/../.././02|L/../../6/03)
温度が変わったら警告する
smartd はディスクの温度を記録して、急激な温度上昇が起こった時や温度の上限に達した時に警告をすることができます。以下の例では温度が4度以上変わった時と35度に到達した時にログを記録し、さらに温度が40度と危険なときにはログを取ってメールを送信します:
DEVICESCAN -W 4,35,40
完全な smartd.conf
の例
上記の例を全てまとめると以下のような設定になります:
DEVICESCAN
(smartd は全てのディスクを監視対象にし、監視を実行する)-a
(全ての属性を監視する)-o on
(自動オンラインデータ収集を有効化する)-S on
(自動属性保存を有効化する)-n standby,q
(ディスクが待機中の時チェックを実行せず、ディスクアクセスが発生しないようにログに書き込まない)-s ...
(短いもしくは長いテストの予定を立てる)-W ...
(温度を監視する)-m ...
(メールアラート)
DEVICESCAN -a -o on -S on -n standby,q -s (S/../.././02|L/../../6/03) -W 4,35,40 -m <username or email>
smartd
サービスの起動・リロードと状態の確認
# systemctl start smartd
または
# systemctl reload smartd
状態を確認する:
# systemctl status smartd
全ての smartd
ログ:
# journalctl -u smartd
GUI アプリケーション
- Gsmartcontrol — A GNOME frontend for the smartctl hard disk drive health inspection tool