2007年7月16日月曜日

s.m.a.r.t.

Googleの報告によるとハードディスクの自己診断試験s.m.a.r.t.を利用すると、6割ぐらいの確率でクラッシュ前に分かるそうです。
Failure Trends in a Large Disk Drive Population

私は日経エレクトロニクス2007年4月23日版に掲載されていた日本の抄訳版で知りました。

ハードディスクが故障する確率は少なくとも50%ではない(笑)と思うので、65%は調べるに値する検査だと思います。

s.m.a.r.t.の解説とソフトウェアの紹介はWikipediaにありますが、例によって紹介されているソフトウェアのほとんどはWindows版です。
Wikipedia: s.m.a.r.t.

Mac OS X 10.4.xに付属するDisk Utility.appはs.m.a.r.t.が表示されますが、どのような内容を元に「S.M.A.R.T. 状況 : 検証済み」としているのかが分かりません。Googleの報告書を読んでいなければこれでも良いのですが、読んでしまった以上はAppleがどのような基準を元に「検証済み」と判断したのかが気になります(苦笑)

さらに、検証結果を見られるのは内蔵のATAまたはSATAドライブのみで、USBやFireWireなどで接続したATAドライブの検証結果を見ることができません。そこでハードディスクからs.m.a.r.t.の内容を取り出すソフトウェアを調べてみました。

■ SMARTReporter
SMARTReporterはMac OS Xに付属するDisk Utility.appがだす報告と同じですが、起動時に調べた内容をLogとして記録できます。
SMARTReporter

報告内容だけでなく、対象ドライブもDisk Utility.appと同じです。USBやFireWireのドライブを見たいひとはAppleに頼むように書いています。いずれAppleがUSBやFireWireのドライブやRAIDドライブもサポートするだろうから、ジタバタしないという意味でしょう(笑)

■ smartmontools
SMARTReporterのReadMeには詳細な報告が必要な場合にはsmartmountoolsを使用するように書いています。smartmontoolsはMac OS X(Darwin)で使えるコマンドラインツールです。
smartmontools Home Page

このツールはs.m.a.r.t.の検査結果の詳細を表示してくれますが、ソースコードを入手して自分でコンパイルしなくてはなりません。さらに、対象のドライブも内蔵ドライブのみです。ソースコードをみるとSCSIやATAのドライブをBSDのAPIでオープンして命令を送っているようです。

■ SMARTQuery
これはAppleが公開しているサンプルコードですが、s.m.a.r.t.の検査結果の内容を表示してくれます。
SMARTQuery

これは2007年5月30日に公開された新しいサンプルコードです。ここからもs.m.a.r.t.のサポートは始まったばかりという感じがします。ソースコードを元に少し調べてみると、Appleはデバイス管理データベースであるIO Registryにs.m.a.r.t.の項目を追加しています。本格的にサポートすることを検討しているのかもしれません。

Appleが外部ドライブでもs.m.a.r.t.をサポートするようになるのはいつかは分かりませんが、自分で開発するより待った方が良さそうです。

ちなみにWindowsの世界ではいくつかのサードパーティが外部ドライブをサポートしている点が「売り」になっているようです。ただし、サポートできる外部ドライブはメーカ指定で、汎用になっていないようです。

0 件のコメント: