ディスクが故障し、アクセスが失敗すると、エラーの状態がイベント・ログに記録される。ある特定のファイルのアクセスがいつも待たされたり、エラーになったりするようなら、イベント・ログを開き、ディスクにエラーが発生していないかを確認する。エラーが発生している場合は、ディスクの診断を行い、必要ならファイルなどを回収してからディスクを交換する。
対象OS:Windows 2000/Windows XP/Windows Server 2003
ディスクが故障すると、データが失われたり、システムが起動しなくなったりするなど、その影響は非常に大きい。本TIPSでは、ディスク・エラーの発生を確認する方法についてまとめておく。
ディスクは、コンピュータを構成するパーツの中でも、比較的故障を起こしやすいデバイスである。環境や利用状況にもよるが、何十台もコンピュータがあれば(つまりディスクが何十台もあれば)、年に1台や2台のディスクが故障し、データが読み出せなくなったり、最悪の場合はシステムが起動しなくなったりするなどのトラブルが発生しているのではないだろうか。
ディスクの故障は予測が困難であり、実際にエラーが発生してから気が付くことが多い。最近のディスクはS.M.A.R.T.機能(Self-Monitoring Analysis and Reporting Technology。ディスクのエラーを予測し、報告する自己テスト機能)を持ち、ディスクのエラーを予測することも不可能ではないが、この機能は一般的にはシステムの起動時(BIOSのPOSTシーケンス時)にしかチェックされないし(ただしWindows OS上から利用できるS.M.A.R.T.ツールもあるし、OSが対応している場合もある。詳細は今後別TIPSで取り上げる)、ディスクの接続方法によっては利用することはできない(例:USB接続時など)。そのため、エラーが発生してから、ディスクの故障に気付くことが多い。
ディスクにエラーが発生すると、例えばファイルのコピー処理が一時停止したり、アプリケーションでファイルを保存しようとしたときに、スムーズに終了せず、数秒間応答が停止したりする。最悪の場合は、コピーの途中でエラー・メッセージが表示され、中断せざるを得なくなることもある。
この症状が1回だけなら、ほかのプロセスの影響やネットワークの混雑などが考えられるが、同じ操作を繰り返した場合にやはり同様に再発するようなら、ディスクの故障が考えられる。このような場合は、ディスクにエラーが発生していないかどうかを確認するとよい。
Windows OSでは、ディスクに回復不可能なエラーが発生した場合、イベント・ログにエラーが記録される。具体的には、次のようなエラーがイベント・ビューアのシステム・ログに記録される。
Windows OSではディスクのエラーが発生しても、このようにイベント・ログに記録されるだけであり、例えばシステムのビープ音が鳴るなどの機能はない。そのためエラーに気付かないことも多いので、ユーザー自身で注意するしかない。
特にサーバOSの場合、システムにログオンせずにネットワーク経由で利用することが多いため、デスクトップPCよりも気付きにくい。それでも、ネットワーク経由のアクセス(データの読み書きなど)がいつもより少し待たされるなどの兆候は確認できるので(ただし注意深いユーザーでなければ気付かないかもしれない)、その場合は、サーバのログを確認するなどの措置を取る。またサーバ監視ソフトウェアやイベントのクエリ・ツールなどを使って、diskやatapi関係のエラー・イベントを検出させるのもよいだろう。
なお、サーバOSの持つソフトウェアRAID機能を使っている場合、エラーが発生してもアクセスを継続できるが(例:RAID1ならば2台のうちの1台が故障しても継続動作できる*1)、やはり特別な警告音などは発生してくれないので(ログには記録される)、管理者は常にシステム・ログに注意を払う必要がある。さもないと、2台目まで壊れてから初めてエラーに気が付くことにもなりかねない。
*1 Windows OSのソフトウェアRAIDの場合、エラーのあったディスクに対して何度か再試行してから、別の正常なディスクへアクセスすることがある(最初にアクセスしたディスクがエラーを起こしていた場合)。そのため(見かけ上)アクセスが非常に待たされ、遅くなる。エラー時にすぐにディスクを無効化して切り離せば、この無駄な再試行がなくなるはずだが、そうはなっていないようだ。
その点専用ハードウェアRAIDシステムならば、エラー時は速やかにディスクの無効化、切り替えが行われるので、再試行で待たされることはない。また専用RAIDシステムでは、ディスク・エラーが発生するとボード上のブザーを鳴らす機能を持っているものがあるので、エラーの発生が分かりやすくなっている(安価なRAIDボードではこの機能は持っていないものもある)。信頼性や保守/運用性を求めるなら、このようなシステムの導入を検討するとよい。
以上のようなイベントがシステム・ログに記録されていれば、ディスク(もしくはディスク周辺回路)に故障が発生していると考えられる。ただし一時的なものかもしれないので、しばらく待ってからもう1度アクセスしてみるとか、システムを再起動してから、もう1度確認するなどの措置を行うべきだろう。またディスク本体の故障ではなく、例えばケーブル(もしくはディスクI/O周りのチップセットなど)が劣化、故障したことも考えられる。ケーブルの交換や、ケーブルの装着方法の再確認なども行っておくとよいだろう(実際手元の古いシステムでは、ケーブルの取り替えでエラーが解消したケースもあった)。
エラーの発生が確認できた場合は、さらにディスクの詳細なテスト(診断)を行うとよい。ディスクを診断するにはいくつかの方法があるが、例えばシステムによってはBIOSメニューにディスクの診断機能が用意されていることがあるので、それを利用する。そのような機能がない場合は、ディスク・ベンダが提供している診断ツールを利用するとよいだろう。例えばHGST社製ディスクの場合は「Drive Fitness Test」ツール、Seagate社製の場合は「SeaTools」ツールが利用できる。そのほかのベンダや、診断ツールの使い方などに関しては、以下の記事などを参照していただきたい。
ディスク診断ツールなどを利用して、ディスク自体にエラーが発生していることが確認できたら、そのディスクの使用を中止して、新しいディスクに交換する。経験的にいえば、ディスク自体にエラーが発生した場合、エラーの領域が短期間(数日とか数週間)の間に拡大して、データが読み書きできなくなったり、システムやアプリケーションが正常に利用できなくなったりする。その前に、必要ならば右上の関連記事にある方法などを使って、必要なデータを回収するとよい。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.