S.M.A.R.T. is SMART! 薀蓄編

weekly making now! (00.08.05)

<Home> → <weekly making now!> → <weekly making now! (00.08.05)>


はじめに(動機→息切れ→眩暈)

過去、S,M.A.R.T.(以後、SMART) ネタで [S.M.A.R.T. is smart?] という駄文を公開したことがあったのですが、記述している途中に私の気力が尽きてしまったので、そのまま放置していました。

ところがっ (^^;。

どうやって検索したか聞くのを忘れたのですが、上記の page を見つけてしまったらしくコアな source 部分が欲しいとの事。私としてもそろそろ手を入れたかった page なので2週間ほど時間が欲しい、と返答しました。が、現在2週間が過ぎようとしているのに実はあまり進んでいません。やはり私は、やる気が無いと遅々として作業が進まないみたいです。反省反省。

ということで、作業は遅々と進まないまま、[S.M.A.R.T. is smart?] の焼き直しと SMART なプログラム作成のヒントを述べていこうと思います。

SMART って何物?

S.M.A.R.T.とは「Self-Monitoring, Analysis And Reporting Technology」の略名です。最近の harddisk には必ずといって良いほど、この技術が組み込まれています。

この機能は harddisk が読み出し・書き込みエラー率等の情報を事前に回収し、その情報を元に自分自身の死期を悟り(遺言状?)、そのことをユーザーに伝えることによって本当に harddisk が壊れてしまう前にバックアップ等を促すことを目的としています。この機能を利用することで、ハードディスク障害の60〜70%が予測可能といわれています。他に温度変化や MFBF(Mean Time Between Failure:平均故障間隔) から算出しているものもあるようですが、ここら辺は Vendor specific のようです。

通常のケースでは hardisk のモータが臨界点を達し回転数が弱まったとき、若しくは head が seek しなくなった時が考えられます。これらの部品は突如壊れることは無く、必ず前後に予兆があります。これらの予兆を harddisk 側で逐一観測し、各社が独自に設けた「臨界点」を突破した場合に、ユーザへ警告を促したい、というのが SMART の原点です。

ただし、例えば供給電源が足りない、harddisk の温度が異常に高い等が原因による場合でも同様に予兆として誤認識されてしまうケースもあるようで、100% 信頼できる情報でもないようです。Vendor 側も SMART は一つの情報として扱って欲しいようです。

SMART の仕様書ってあるの?

SMART は由緒正しい機能で ATA/ATAPI の規格の一つとして組み込まれています。以下の page より download できます。

ATA のバージョンによって(harddisk vendor によって :-P)、実装が多少異なるので、見ておいた方が良いでしょう。SMART は ATA-3 からサポートされています。仕様書は以下の page から。正式なリリース版は IEEE から購入しろ、ということなのかな?まあ、正確な仕様は要らないはずです。

仕様通りな harddisk なんて一つもないのだから。

SMART って誰が使っているの?

OS 自身は使っていません。

せっかく harddisk が用意してくれているのに積極的に使用されている例は見たことがないです。これは2年前と対して状況は変わっていません。悲しいことです。あまり積極的とはいえないものの Windows 2000 では使用するためのインターフェースが用意されています。もちろん得られた情報から自動的にユーザーに知らせるというものではなく、flug を立てるだけです。

utility としては以下の通り。

ということで

Vendor から出されている SMART な情報。体力(or 気力)があったら説明しましょう。


<Home> → <weekly making now!> → <weekly making now! (00.08.05)>
Copyright (c) 2000 Makoto NARA (Mc.N), Some rights reserved.
This web page is licensed under a Creative Commons License.
Creative Commons License
<Terms of Use>

Valid CSS! Valid HTML 4.01!