S.M.A.R.T.でHDDを監視する on Mac mini
DLNA周りを色々調べていた拍子に見つけたのが S.M.A.R.T.にHDDの寿命を監視する というコラム。そういえばもう何度もHDDのクラッシュで泣かされている身分としてはこういうのもしっかりモニタリングしておかなきゃね、と。(寿命も分かるらしいし)
そんなわけで早速ソースをダウンロードしてインストール。ここからソースをダウンロードして、
tar zxvf smartmontools-5.38.tar.gz cd smartmontools-5.38 ./configure make sudo make install
でインストール完了。
早速コマンドをうってみる。
# smartctl -i /dev/disk0 smartctl version 5.38 [i386-apple-darwin9.5.0] Copyright (C) 2002-8 Bruce Allen Home page is http://smartmontools.sourceforge.net/ === START OF INFORMATION SECTION === Model Family: Hitachi Travelstar 5K160 series Device Model: Hitachi HTS541612J9SA00 Serial Number: XXXXXXXXXX Firmware Version: XXXXXXXX User Capacity: 120,034,123,776 bytes Device is: In smartctl database [for details use: -P show] ATA Version is: 7 ATA Standard is: ATA/ATAPI-7 T13 1532D revision 1 Local Time is: Sat Nov 15 15:52:34 2008 JST SMART support is: Available - device has SMART capability. SMART support is: Enabled
おー、ちゃんとEnabledになってる。ちなみに外付けのHDDにも試してみたらエラーが出てダメだった。
# smartctl -i /dev/disk1 smartctl version 5.38 [i386-apple-darwin9.5.0] Copyright (C) 2002-8 Bruce Allen Home page is http://smartmontools.sourceforge.net/ Smartctl open device: /dev/disk1 failed: Operation not supported by device
うーん、いくら実家のNASに毎日バックアップをとっているといっても、ちょっと心配。
まあでもそれは良しとして、内蔵HDDだけでも定期的にチェックするように設定。
まずは smartd.conf。/usr/local/etc/ にあるので、viで編集。やったことは2つ。
23行目にある DEVICESCAN という行をコメントアウト。これがあると他の設定は無視されてしまう。
/dev/disk0 -a -o on -S on -s (S/../.././05|L/../../6/06) -H -m root@localhost
という行を追加。(こうすると毎日簡易テスト/週に1回詳細テストを行って問題があれば root にメールを送る)
そして再起動してもちゃんと起動するように /etc/hostconfig に
SMARTd=-YES-
と追加。これでOK。
さて、実家の方だが、実家はI/O dataの LANDISK (debian) を使っているのでちょっと設定が違う。
smartmontools が入っているかなと見てみたら、smartctlはあるが、smartdがない。smartmontoolsを apt-get install しようとしたが、No such files が返ってきてしまう。どうしたものやらと見てみたら、なんと stable 版が etch になっているではないか。リモートから dist-upgrade するのは怖いし、kernelをバージョンアップしろとか言っているので、さすがにめんどくさくなって、smartctl の結果をメールするように cron を設定。
35 5 * * * root /usr/sbin/smartctl -d marvell /dev/sda -t short 40 5 * * * root /usr/sbin/smartctl -d marvell /dev/sda -l error | /usr/sbin/sendmail メールアドレス 35 7 * * 1 root /usr/sbin/smartctl -d marvell /dev/sda -t long 40 12 * * 1 root /usr/sbin/smartctl -d marvell /dev/sda -l error | /usr/sbin/sendmail メールアドレス
まあ、これでいいでしょ。*1