コンテンツ
Cactiはネットワークやサーバーの状態をグラフ化するソフトウェアです。このソフトをWindowsで動かします。
S.M.A.R.T.とは、Self-Monitoring, Analysis and Reporting Technologyのことです。HDDの故障予測に役立つSMARTをWMIで取得します。
フリーエリア
アクセス数
Wiki内検索
最近更新したページ
最新コメント
FrontPage by ≪潟若
FrontPage by ≪潟若 2014
FrontPage by ASDWE
WindowsでCacti by 井上 馨

SMARTの構造

SMARTの情報をWMIで取得するには、
\root\WMIにあるMSStorageDriver_FailurePredictDataMSStorageDriver_FailurePredictThresholdsVendorSpecificにアクセスします。

値自体は簡単に取得できるのですが、各々の値の意味は解説しているページが見つからなかったため、
いろいろな情報をもとに推測しました。(仕様書を読めば分かるのかもしれませんが)

構造については、UsefullCode.netにあるソースを参考にさせていただきました。
また正しい値が取れているかどうかは、HDD Health日本語化キットで確認しました。ありがとうございました。

スクリプトでmyPCのHDDの情報を取得すると以下のようになります。(先頭が0の行は省略しています)
SMART_dump.vbs()

FailurePredictData
16 0
1 11 0 100 100 0 0 0 0 0 0 0
2 5 0 100 100 0 0 0 0 0 0 0
3 39 0 100 100 223 7 0 0 0 0 0
4 50 0 100 100 230 1 0 0 0 0 0
5 51 0 100 100 0 0 0 0 0 0 0
7 11 0 100 100 0 0 0 0 0 0 0
8 5 0 100 100 0 0 0 0 0 0 0
9 50 0 99 99 37 2 0 0 0 0 0
10 51 0 109 100 0 0 0 0 0 0 0
12 50 0 100 100 147 1 0 0 0 0 0
192 50 0 100 100 17 0 0 0 0 0 0
193 50 0 99 99 207 43 0 0 0 0 0
194 34 0 100 100 36 0 17 0 53 0 0
196 50 0 100 100 0 0 0 0 0 0 0
197 50 0 100 100 0 0 0 0 0 0 0
198 48 0 100 100 0 0 0 0 0 0 0
199 50 0 200 200 0 0 0 0 0 0 0
220 2 0 100 100 156 32 0 0 0 0 0
222 50 0 99 99 202 1 0 0 0 0 0
223 50 0 100 100 0 0 0 0 0 0 0
224 34 0 100 100 0 0 0 0 0 0 0
226 38 0 100 100 72 1 0 0 0 0 0
240 1 0 100 100 0 0 0 0 0 0 0

FailurePredictThresholds
16 0
1 50 0 0 0 0 0 0 0 0 0 0
2 50 0 0 0 0 0 0 0 0 0 0
3 1 0 0 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0 0 0 0
5 50 0 0 0 0 0 0 0 0 0 0
7 50 0 0 0 0 0 0 0 0 0 0
8 50 0 0 0 0 0 0 0 0 0 0
9 0 0 0 0 0 0 0 0 0 0 0
10 30 0 0 0 0 0 0 0 0 0 0
12 0 0 0 0 0 0 0 0 0 0 0
192 0 0 0 0 0 0 0 0 0 0 0
193 0 0 0 0 0 0 0 0 0 0 0
194 0 0 0 0 0 0 0 0 0 0 0
196 0 0 0 0 0 0 0 0 0 0 0
197 0 0 0 0 0 0 0 0 0 0 0
198 0 0 0 0 0 0 0 0 0 0 0
199 0 0 0 0 0 0 0 0 0 0 0
220 0 0 0 0 0 0 0 0 0 0 0
222 0 0 0 0 0 0 0 0 0 0 0
223 0 0 0 0 0 0 0 0 0 0 0
224 0 0 0 0 0 0 0 0 0 0 0
226 0 0 0 0 0 0 0 0 0 0 0
240 1 0 0 0 0 0 0 0 0 0 0


頭の
16 0
は意味がよく分かっていませんが、今回は必要ないので無視しています。

FailurePredictDataについては1行1項目になっています。
bAttrIDwStatusFlagsbAttrValuebWorstValuebRawValue[6]bReserved
項目IDステータスフラグ現在値過去最小値生の値x6リザーブ
111 01001000 0 0 0 0 0 0
この場合は、現在値100で、過去最小値100です。

どの項目も値が大きいほど良く、小さくなると悪くなります。閾値より小さくなると故障になる可能性が高くなります(すぐに壊れるというわけではないです)。また、HDDのメーカーによって項目数も異なり、閾値も違うようです。

また、HDDの温度(ID=194)については、生の値にさらに意味があるようです。
項目IDステータスフラグ現在値過去最小値摂氏 動作下限値 動作上限値 リザーブ
19434 010010036 017 053 0 0
この場合は、現在の温度が36℃で下限17℃/上限53℃です。

温度については英語版のWikipediaには190の場合もあると記述されています。
Western DigitalのHDDは194と同じ値、SeagateのHDDは(100-temp)℃が入ります。

FailurePredictDataも1行1項目になっています。
項目ID閾値   生の値x6リザーブ
150 0 0 00 0 0 0 0 0 0

項目がどのような意味を持つかは、WikipediaのS.M.A.R.Tの項目で解説されています。
太字で書かれている項目と温度があればよいと思います。(Wikipediaより抜粋)
項目ID項目名意味
01Raw Read Error Rateハードディスクからデータを読み込む時に発生したエラーの割合を表す。
05Reallocated Sectors Count代替処置(データを特別に予約した予備エリアに移動する)を施された不良セクタの数。
C4(196)Reallocation Event Countセクタの代替処理が発生した回数。仮に処理に失敗しても回数に加算される。
C5(197)Current Pending Sector Count現在異常があり、代替処理を待つセクタの総数。もし後で読み込みに成功したセクタがあれば、この値は減少する。
C6(198)Off-Line Scan Uncorrectable Sector Countオフラインスキャン時に発見された、回復不可能なセクタの総数。この値が増加する場合は、磁気ディスクの表面に明確な問題がある。
DC(220)Disk Shiftディスク(プラッタ)が衝撃などにより当初の固定位置よりズレた距離。
C2(194)Temperatureハードディスクの現在の温度。一般的に動作が保障されている最高温度は55℃である。

項目IDと現在値、過去最小値、閾値を抜き出すスクリプトを次に作成します。



表記上の問題で画面上のテキストをそのままコピー&ペーストしづらいと思いますので、ファイルを用意しました。
ただし、使用しているシステムの都合上、画像かPDFしかアップロードできないため、プログラムをPDFファイルでおいてあります。
PDFのテキスト部分をテキストエディタなどにコピーしてからお使いください。
2007年12月13日(木) 15:54:34 Modified by slt33333

添付ファイル一覧(全1件)
dbc19f73.pdf (24.99KB)
Uploaded by slt33333 2007年12月13日(木) 15:51:01



スマートフォン版で見る