 |
ハード・ディスクの故障が怖いのですが,故障する前にその兆候を察知するにはどうしたらいいですか。 |
 |
「S.M.A.R.T.」(Self-Monitoring, Analysis and Reporting Technology System)と呼ばれるディスクの自己診断機能を持つハード・ディスクであれば,故障の兆候をとらえられることがあります。 |
S.M.A.R.T.(Self-Monitoring,Analysis,and Reporting Technology)とは,ハード・ディスク装置に搭載される自己診断機能です。同機能は,エラーの発生回数やリトライ数,代替セクターの使用状況といったデータを収集することで,ハード・ディスク装置の(主に経年変化による)故障を予測します。S.M.A.R.T.が警告を出した際に速やかにデータを退避させ,ハード・ディスク装置を交換するようにすれば,故障によるデータ喪失を防止できます。
同機能は現在では業界標準となっており,通常入手可能なATAディスク,SCSIディスクにはほとんどすべてに搭載されています。ただし,OS側での対応があまり進んでいませんので,同機能を利用するには一般に,ディスク装置メーカーなどが提供するソフトウエアを利用する必要があります。
Linuxでは,「smartmontools」(http://smartmontools.sourceforge.net/)というソフトウエア・パッケージに含まれるsmartctlコマンドを使うことで,このS.M.A.R.T.機能を利用できます。なお,Red Hat Linux 9などではsmartmontoolsとは別の作者が開発したsmartctlコマンドが標準で提供されています。機能的にはほぼ同等なのですが,オプションが一部異なっていますので注意が必要です。ここでは,smartmontoolsの導入と利用方法について紹介します。
smartmontoolsの導入と利用
smartmontoolsは,RPM(SRPM)パッケージ,またはtarball形式のソース・アーカイブの形で配布されています。これらは,SourceForge.netのWebページ()から入手できます。2004年1月20日現在の最新版は,バージョン5.26でした。同バージョンのインストール手順を図1に示します。
■RPMパッケージを利用したインストール方法
# rpm -ivh smartmontools-5.26-1.i386.rpm
■tarball形式のソース・アーカイブを使ったインストール方法
$ tar zxvf smartmontools-5.26.tar.gz
$ cd smartmontools-5.26
$ ./configure
$ make
$ su
# make install 
|
| 図1 smartmontoolsのインストール手順
|
インストール後,最初にディスク装置がS.M.A.R.T.をサポートしているかどうか調べてみましょう。これには,smartctlコマンドを「smartctl -i デバイス・ファイル」の形で実行します。smartctlコマンドは管理者権限で実行します。/dev/hdaというデバイス・ファイルが割り当てられているハード・ディスク装置に対して調査を行った例を図2に挙げました。
# smartctl -i /dev/hda
smartctl version 5.26 Copyright (C) 2002-3 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Device Model: WDC WD200EB-75CPF0
Serial Number: WD-WMAAU2241245
Firmware Version: 06.04G06
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 5
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Wed Dec 24 10:37:28 2003 JST
SMART support is: Available - device has SMART capability.
SMART support is: Disabled
SMART Disabled. Use option -s with argument 'on' to enable it.
|
図2 S.M.A.R.T.への対応状況の調査方法 「SMART support is: Available」と表示されていれば,S.M.A.R.T.に対応しています。
|
図2の例では「SMART support is: Available」と表示されていますので,調査したディスク装置がS.M.A.R.T.機能をサポートしていることが分かります。サポートしていない機器の場合は,ここが「SMART support is: Unavailable」となります。
ただし,図2ではそれに続いて「SMART support is: Disabled」と表示されていますので,機能が無効にされていることが読み取れます。機能を有効にするには,「smartctl -s on デバイス・ファイル」の形でsmartctlコマンドを実行する必要があります(図3)。同コマンド実行後に再度ドライブを調査すると,図4の通り,「SMART support is: Enabled」と表示され,機能が有効化されたことが分かります。
# smartctl -s on /dev/hda
smartctl version 5.26 Copyright (C) 2002-3 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.
|
図3 S.M.A.R.T.機能を有効にする方法 S.M.A.R.T.の各種機能を利用するには,同機能を有効に設定しなければなりません。
|
# smartctl -i /dev/hda
smartctl version 5.26 Copyright (C) 2002-3 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Device Model: WDC WD200EB-75CPF0
Serial Number: WD-WMAAU2241245
Firmware Version: 06.04G06
Device is: Not in smartctl database [for details use: -P
showall]
ATA Version is: 5
ATA Standard is: Exact ATA specification draft version not
indicated
Local Time is: Wed Dec 24 10:38:47 2003 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
|
図4 S.M.A.R.T.を有効にした場合の表示 機能を有効にすると「SMART support is: Enable」と表示されます。
|
S.M.A.R.T.機能を有効にしたら,まず簡単に自己診断をさせてみましょう。これには,「smartctl -H デバイス・ファイル」の形でsmartctlコマンドを実行します(図5)。図5の例では,出力が「SMART overall-health self-assessment test result: PASSED」となりましたので,ディスク装置は正常に稼働しているようです。もしもこの出力結果が「SMART overall-health self-assessment test result: FAILING」となっているようならば,そのディスク装置は故障しているか,間もなく故障すると考えられます。ディスクのデータをバックアップして,交換した方が良いでしょう。
# smartctl -H /dev/hda
smartctl version 5.26 Copyright (C) 2002-3 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
|
図5 ディスク装置の自己診断機能の利用方法 自己診断の結果,問題なければ「PASSED」,異常がある場合は「FAILING」と表示されます。
|
ディスク装置に対する詳細テストを実施する場合は,「smartctl -t long デバイス・
ファイル」の形でsmartctlコマンドを実行します。ただし,このテスト方法では実行結果が表示されませんので,テスト実施前と実施後にsmartctlコマンドを実行してディスク装置の状態を「smartctl -l selftest デバイス・ファイル」の形で取得しておきます。この両者を突き合わせることで,詳細テストの結果が分かります。詳細テストには長い時間(約15分)がかかります。詳細テスト実施の様子を図6に挙げました。この例ではステータスが「Completed without error」から変化していませんので,特に問題がないことが分かります。
■詳細テスト実施前のステータス取得
# smartctl -l selftest /dev/hda
smartctl version 5.26 Copyright (C) 2002-3 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed without error 00% 487 -
■詳細テスト実施
# smartctl -t long /dev/hda
smartctl version 5.26 Copyright (C) 2002-3 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line
mode" successful.
Testing has begun.
Please wait 15 minutes for test to complete.
Test will complete after Wed Dec 24 14:05:42 2003
Use smartctl -X to abort test.
■テスト実施後のステータス取得
# smartctl -l selftest /dev/hda
smartctl version 5.26 Copyright (C) 2002-3 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 2 Extended offline Completed without error 00% 489 -
# 1 Extended offline Completed without error 00% 487 -
|
| 図6 ディスク装置の詳細テストを実施する手順
|
smartdによる定期的な監視
smartmontoolsには,smartdというディスク装置の定期調査用のサーバー・ソフトウエアが含まれています。これを利用することで,定期的にsmartctlを実行してディスクのステータスを取得できます。
smartdの設定は,/etc/smartd.confファイルに記述します。例えば,/dev/hdaというディスク装置に対し簡易チェックを行い,その結果を管理者のメール・アドレス(root@localhost)にメールで送信する場合は図7のような設定を記述します。
DEVICESCAN
/dev/hdb -H -m root@localhost
|
図7 smartdの設定ファイル記述例 /etc/smartd.confファイルに図の内容を記述すると,30分に一度ディスク装置をテストして,その結果をメールで通知します。
|
/etc/smartd.confファイルの設定後,Red Hat Linuxの場合は,次のようにスクリプトを実行すればsmartdデーモン(smartdサーバー)が起動します。
# /etc/init.d/smartd start
システム起動時にサーバーが自動実行されるようにするには,次のコマンドを実行します。
# chkconfig smartd on
特に指定しなければチェックは30分間隔で実施されます。チェック間隔を変更する場合は,/etc/init.d/smartdスクリプトを書き換えて,smartd起動の際に-iオプションを使って秒単位で間隔を指定します。
(回答者:轟 太郎)
[an error occurred while processing this directive]
|