(57)【要約】【課題】ディスク装置における大規模なエラーログ情報を不揮発性メモリに記録するようにする。【解決手段】ディスク装置の不揮発性メモリ１２は、初期起動用のブートコードがブートコード領域と１２１と、ブートコードに引き続くプログラムコードが記録されたプログラムコード領域１２２と、ディスク装置固有の属性データを記録する記録領域１２３と、ログ情報を記録するためのログ情報領域１２４と、を有する。磁気ディスク装置にエラーが発生した際に収集されたエラーログ情報が、ディスク媒体に記録できず、かつ不揮発性メモリ１２のログ情報領域１２４に記録可能なサイズで表現できない場合、不揮発性メモリ１２のエラーログ記録開始アドレスからエラーログ情報を上書き記録する。【選択図】図３
2010033678.tif 000002
【特許請求の範囲】
【請求項１】
データの書き込みおよび／または読み出しが可能なディスク媒体を駆動するディスク装置であって、
初期起動用の第１のプログラムコードが記録された第１のプログラムコード領域と、第２のプログラムコードが記録された第２のプログラムコード領域と、ログ情報を記録するためのログ情報領域と、前記第２のプログラムコード領域に設定されたエラーログ情報記録開始アドレスを有する不揮発性メモリと、
前記第１および第２のプログラムコードに従って動作するプロセッサと、を備え、
前記プロセッサは、
エラーが発生した際にエラーログ情報を収集し、
前記収集されたエラーログ情報が、前記ディスク媒体に記録できず、かつ前記不揮発性メモリの前記ログ情報領域に記録可能なサイズで表現できない場合、前記不揮発性メモリの前記エラーログ情報記録開始アドレスから前記収集されたエラーログ情報を上書き記録することを特徴とするディスク装置。
【請求項２】
前記収集されたエラーログ情報を上書き記録するための領域は、前記第１のプログラム領域を除く領域で設定される請求項１に記載のディスク装置。
【請求項３】
データの書き込みおよび／または読み出しが可能なディスク媒体を駆動する磁気ディスク装置用の回路基板であって、
初期起動用の第１のプログラムコードが記録された第１のプログラムコード領域と、第２のプログラムコードが記録された第２のプログラムコード領域と、ログ情報を記録するログ情報記録領域と、前記第２のプログラムコード領域に設定されたエラーログ情報記録開始アドレスを有する不揮発性メモリと、
前記第１および第２のプログラムコードに従って動作するプロセッサと、を搭載し、
前記プロセッサは、
エラーが発生した際にエラーログ情報を収集し、
前記収集されたエラーログ情報が、前記ディスク媒体に記録できず、かつ前記不揮発性メモリの前記ログ情報領域に記録可能なサイズで表現できない場合、前記不揮発性メモリの前記第２のプログラムコード記録領域に設定されたエラーログ記録開始アドレスから前記収集されたエラーログ情報を上書き記録することを特徴とする回路基板。
【請求項４】
前記収集されたエラーログ情報を上書き記録するための領域は、前記第１のプログラム領域を除く領域で設定される請求項３に記載の回路基板。
【請求項５】
初期起動用の第１のプログラムコードが記録された第１のプログラムコード領域と、第２のプログラムコードが記録された第２のプログラムコード記録領域と、ログ情報を記録するエラーログ情報記録領域とを有する不揮発性メモリと、
前記第１および第２のプログラムコードに従って動作するプロセッサと、を備えるディスク装置のエラーログ情報記録方法であって、
エラーが発生した際に前記プロセッサがエラーログ情報を収集するステップと、
前記収集されたエラーログ情報が前記ディスク媒体の前記システム領域に記録できるか否かを前記プロセッサが判定するステップと、
前記収集されたエラーログ情報が前記不揮発性メモリの前記ログ情報記録領域に記録可能なサイズで表現できるか否かを前記プロセッサが判定するステップと、
前記エラーログ情報が、ディスク媒体の前記システムデータ用領域に記録できず、かつ前記不揮発性メモリの前記ログ情報記録領域に記録可能なサイズで表現できないと前記プロセッサが判定した場合、前記プロセッサは、前記不揮発性メモリの前記第２のプログラムコード記録領域に前記収集されたエラーログ情報を上書き記録するステップと
を有することを特徴とするエラーログ情報記録方法。
【請求項６】
前記収集されたエラーログ情報を上書き記録するための領域は、前記第１のプログラム領域を除く領域で設定される請求項５に記載のエラーログ情報記録方法。
【請求項７】
前記ディスク装置を故障診断システムに接続するステップと、
前記故障診断システムが第１のコマンドを発行し、前記第２のプログラム領域が破壊されているか否かを判定するステップと、
前記故障診断システムが第２のコマンドを発行し、前記故障診断システムから前記第２のプログラムコードを前記ディスク装置にダウンロードするステップと、
前記故障診断システムが第３のコマンドを発行し、前記第２のプログラム領域のエラーログ情報記録開始アドレス付近のデータをチェックするステップと、
前記エラーログ情報記録開始アドレス付近のデータがログ情報であると判定されると、前記故障診断システムが前記不揮発性メモリに記録されたすべてのログ情報を前記故障診断システムに収集するステップと
をさらに含む請求項５また６に記載のエラーログ情報記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
故障発生時に収集されるエラーログ情報を記録するディスク装置、回路基板およびエラーログ情報記録方法に関する。
【背景技術】
【０００２】
情報の記録のために、回転する磁気ディスク媒体を用いる磁気ディスク装置に故障が発生した場合は、故障の原因解析を的確に実施し、今後同様な故障が起こらないように適切な対策を講じる必要がある。そのため、磁気ディスク装置は、故障発生時の状況を含む過去の稼動状況のエラーログ情報を収集し、記録するための機能を有している。近年の磁気ディスク装置の大容量化、高機能化に伴い、発生する故障の種類も多様になっている。したがって、多様な故障に対応して各種の情報をログ情報として収集する必要がある。
【０００３】
ディスク装置がホストシステムと接続されている場合は、ホストシステムがログ情報を収集することができる。しかし、ディスク装置に故障が発生した場合は、ホストシステムから切り離して、故障診断システムなどに接続してログ情報を参照できるようにする必要がある。したがって、診断システムなどに接続してもエラーログ情報を参照することができるように、従来から磁気ディスク装置の不揮発性の記憶領域にエラーログ情報を保存するようにしていた。具体的には、磁気ディスク媒体のシステム領域、あるいはプリント基板上のフラッシュＲＯＭ（ＥＥＰＲＯＭ：Electrically Erasable Programable Read Only Memory）のログ用領域に、エラーログ情報を記録していた。
【０００４】
ディスク媒体にエラーログ情報を記録すると、大容量のエラーログ情報を記録することができ好適である。しかしながら、ディスク媒体上へエラーログ情報が記録できないということがある。例えば、ディスク媒体の駆動モータが回転していない場合、あるいは駆動モータに回転異常がある場合は、ディスク媒体上へのログ情報の記録はできない。さらに、ディスク媒体が定常回転に達していない場合など読み書きの用意ができていないノットレディ状態でも、ディスク媒体上へのログ情報の記録はできない。さらに、ディスク媒体が定常回転していても、ディスク媒体上へのログ情報の書き込みが失敗することもある。例えば、ディスク装置の素子不良やメカ機構の異常など内部的な不具合があると、ログ情報の書き込みができない。さらに、磁気ディスク装置を組み入れたシステム筐体の振動に起因してエラーログ情報の書き込みが失敗することもある。
【０００５】
情報の書き込み／読み出しのための機構部を持たないフラッシュＲＯＭにエラーログ情報を記録するようにすれば、安定してログ情報を記録することが可能である。しかし、フラッシュＲＯＭのログ情報用に割り当てられる領域のサイズは限られていて、記録できるエラーログ情報に制限がある。
【０００６】
したがって、エラーログ情報がある程度の規模になるとフラッシュＲＯＭのログ情報用領域には収まらない。さらに、関連する複数の故障が同時に発生した場合、あるいは故障が継続的に発生した場合には、それぞれの故障についてのログ情報を蓄積する必要があり、さらに大きなログ情報領域が求められている。
【０００７】
現状では、大きなサイズのエラーログ情報が何らかの理由でディスク媒体に記録できなければ、フラッシュＲＯＭに記録することもできず、エラーログ情報を破棄せざるを得ない。
【０００８】
なお、補助記憶装置の障害によるログ情報の欠落を補うことは公知である。公知のものは、ログ情報の補助記憶装置への格納が不可能となった場合に、ログ情報を不揮発性メモリに格納し、次に補助記憶装置の障害が回復した際に、ログ情報を補助記憶装置に再び格納するというものである。
【特許文献１】特開平７−３１９７４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、上記問題点に鑑み、大規模なエラーログ情報であっても不揮発性メモリに記録することができるディスク装置、回路基板およびエラーログ情報記録方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本ディスク装置あるいは回路基板は、初期起動用の第１のプログラムコードが記録された第１のプログラムコード領域と、第２のプログラムコードが記録された第２のプログラムコード領域と、ログ情報を記録するためのログ情報領域と、第２のプログラムコード領域に設定されたエラーログ情報記録開始アドレスを有する不揮発性メモリを有し、第１および第２のプログラムコードに従って動作するプロセッサが、エラーが発生した際にエラーログ情報を収集し、収集されたエラーログ情報が、ディスク媒体に記録できず、かつ不揮発性メモリの前記ログ情報領域に記録可能なサイズで表現できない場合、不揮発性メモリのエラーログ情報記録開始アドレスから前記収集されたエラーログ情報を上書き記録するものである。
本エラーログ情報記録方法は、エラーが発生した際にプロセッサがエラーログ情報を収集するステップと、収集されたエラーログ情報がディスク媒体のシステム領域に記録できるか否かを前記プロセッサが判定するステップと、収集されたエラーログ情報が不揮発性メモリのログ情報記録領域に記録可能なサイズで表現できるか否かをプロセッサが判定するステップと、エラーログ情報が、ディスク媒体のシステムデータ用領域に記録できず、かつ不揮発性メモリのログ情報記録領域に記録可能なサイズで表現できないとプロセッサが判定した場合、プロセッサは、前記不揮発性メモリの前記第２のプログラムコード記録領域に前記収集されたエラーログ情報を上書き記録するステップとを有するものである。
さらに、本エラーログ情報記録方法は、ディスク装置を故障診断システムに接続するステップと、故障診断システムが第１のコマンドを発行し、第２のプログラム領域が破壊されているか否かを判定するステップと、故障診断システムが第２のコマンドを発行し、第２のプログラムコードをディスク装置にダウンロードするステップと、故障診断システムが第３のコマンドを発行し、第２のプログラム領域のエラーログ情報記録開始アドレス付近のデータをチェックするステップと、エラーログ情報記録開始アドレス付近のデータがログ情報であると判定されると、故障診断システムが前記不揮発性メモリに記録されたすべてのログ情報を前記故障診断システムに収集するステップとを含むようにしてもよい。
【発明の効果】
【００１１】
このディスク装置、回路基板、およびエラーログ記録方法によると、エラーログ情報がディスク媒体に記録できず、かつ不揮発性メモリのログ情報領域に記録可能なサイズで表現できない場合でも、不揮発性メモリに記録することがでる。したがって、必要なエラーログ情報を廃棄しなければならない事態を避けることができる。
【発明を実施するための最良の形態】
【００１２】
図１は、一実施形態が適用される磁気ディスク装置の機構部の概要を示す図である。磁気ディスク装置１００の磁気記録媒体である磁気ディスク１は、ディスクエンクロージャ３に固定されたスピンドルモータ２に回転可能に支持されている。磁気ディスク１に対向して情報の書き込み／読み出しを行う磁気ヘッド８は、アクチュエータ７の先端に配置されている。アクチュエータ７は、ボイスコイル４により磁気ディスク１の略半径方向Ｂに移動可能に、ディスクエンクロージャ３に固定されている。磁気ヘッド８は、磁気ディスク１から退避するとき、ランプ９に保持される。制御部１０は、プリント回路基板上に実装される複数の集積回路（ＬＳＩ）を有し、磁気ディスク１の回転、磁気ヘッド８のシーク、あるいは磁気ヘッドによる情報の書き込み／読み出しなどの各種動作を制御する。
【００１３】
なお、本実施形態は、磁気ディスクを用いたディスク装置を対象とするが、光磁気ディスク、光ディスクなど他のディスク媒体を用いたディスク装置にも適用できる。
【００１４】
図２は、一実施形態である磁気ディスク装置の制御部の概要を示す図である。図２では、本実施形態の説明のためにエラーログ情報の記録に関連する機能ブロックを示す。ディスク媒体１の回転制御あるいはディスク媒体１へのデータの書き込み／読み出しのためのヘッド制御に関連する機能ブロックなど本実施形態の説明に必要がない機能は、省略あるいは簡略化している。
【００１５】
磁気ディスク装置１００は、磁気ディスク１と、プリント回路基板１９に搭載されている制御部１０と、を備えている。制御部１０は、ホストインタフェース１８を介してサーバあるいはＰＣ（Personal Computer）などのホストシステム２００に接続される。
【００１６】
ディスク媒体１は、システム用領域１ａとユーザデータ用領域１ｂとを有する。システム用領域１ａは、フラッシュＲＯＭ１２に格納できなかったプログラムコードや、装置固有の属性データ、ならびにログ情報などを記録するための領域である。ユーザデータ用領域１ｂは、ホストシステム２００を用いてユーザが読み書きできるデータを記録するための領域である。
【００１７】
制御部１０は、プリント回路基板１９に載置されているＬＳＩ等の複数の回路素子により形成される。ＭＰＵ１１は、ＲＡＭ（Random Access Memory）１３にロードされるプログラムに基づいて動作する。したがって、ＭＰＵ１１は、エラーログ情報の収集記録を制御する。
【００１８】
フラッシュＲＯＭ１２は、ＭＰＵ１１用のプログラムおよびデータが格納されている書き換え可能な不揮発性半導体メモリである。フラッシュＲＯＭ１２の領域は、ブート（ＢＯＯＴ）コード領域１２１と、プログラムコード領域１２２と、属性データ領域１２３と、ログ情報領域１２４とを有する。ブートコード領域１２１は、ＭＰＵ１１の立ち上げ時の初期起動用のプログラムコードを格納している。プログラムコード領域１２２は、ブートコードに引き続いて、ＭＰＵ１１を動作させるためのプログラムコードを格納している。プログラムコード領域１２２には、少なくとも磁気ディスク媒体１がレディ状態になるまでに必要な処理をＭＰＵ１１に実行させるためのプログラムコードが格納される。属性データ領域１２３は、この磁気ディスク装置固有の属性データや制御用データを格納している。ログ情報領域１２４は、小規模なログ情報の記録のために使用される。
【００１９】
ＲＡＭ１３には、フラッシュＲＯＭ１２およびディスク媒体１のシステム用領域１ａなどから、プログラムコードがロードされる。ＭＰＵ１１は、ＲＡＭ１３にロードされたプログラムに従って動作する。
【００２０】
ディスクコントローラ１５は、ホストインタフェース１８とのコマンドやデータの送受信、ならびにリード／ライト（Ｒ／Ｗ）制御回路１７とのデータの送受信を制御する。Ｒ／Ｗ制御回路１７は、ディスク媒体１に対するデータの書き込み／読み出しを制御する。バッファメモリ１６は、磁気ディスク装置１００がデータを効率よく出力するためのキャッシュとして動作する。
【００２１】
磁気ディスク装置１００は、エラーログ情報を記録するための領域として、ディスク媒体１上のシステム用領域１ａの一部と、フラッシュＲＯＭ１２の一部であるログ情報領域１２４を有している。一例として、ディスク媒体１上のシステム用領域１ａが９ＭＢであるとする。システム用領域１ａの９ＭＢのうち、プログラムコード用として１ＭＢ、属性データとして４．５ＭＢを割り当てることができる。そうすると、ログ情報を記録するためには、システム用領域１ａの３．５ＭＢが使用できることになる。
【００２２】
図３は、本実施形態の磁気ディスク装置１００に用いられるフラッシュＲＯＭ１２の一例を示す。この例では、フラッシュＲＯＭ１２の容量は５１２ＫＢである。ブートコードを格納するブートコード領域１２１の容量は６４ＫＢである。初期動作に続くＭＰＵ１１の動作のためのプログラムコードを格納するプログラムコード領域１２２の容量は約３８０ＫＢである。属性データ領域１２３の容量は６４ＫＢである。したがって、ログ情報領域１２４の容量は、約４ＫＢとなる。
【００２３】
本実施形態では、ログ情報領域１２４には格納できない大規模なログ情報の記録が必要なときのために、フラッシュＲＯＭ１２にエラーログ情報書き込み可能領域１２５が規定されている。具体的には、エラーログ記録のための書き込み開始アドレスがプログラムコード領域１２２に定義されている。エラーログ情報は、書き込み開始アドレスから順に上書きされる。図３では、エラーログ情報書き込み可能領域１２５は、プログラムコード領域１２２と、属性データ領域１２３と、ログ情報領域１２４に及んでいる。
【００２４】
エラーログ情報がエラーログ情報書き込み可能領域１２５に書き込まれると、プログラムコードは上書きされるので、プログラムコードは破壊される。したがって、エラーログ情報書き込み可能領域１２５内には、初期起動用のプログラムコードすなわちブートコードだけは含まないようにする。エラーログ情報書き込み可能領域１２５にブートコード領域１２１だけは含まないようにすれば、エラーログ情報書き込み可能領域１２５の開始アドレスおよび最終アドレスの設定は任意である。想定されるエラーログのサイズを考慮してエラーログ情報書き込み可能領域１２５を設定することができる。また、プログラムコード領域１２２のプログラムコードあるいは属性データ領域１２３の属性データの一部を上書きされないようにすることもできる。
【００２５】
ところで、エラーログ情報には、故障の発生回数や発生率などを含む統計情報、故障の発生シーケンスなどを発生順にとる履歴情報、そして個別の故障に関する詳細情報をとる個別情報などが含まれる。特に個別情報を充実させることは、故障発生時の原因解明に大いに寄与する。しかしながら、個別情報を充実させることは、エラーログ情報の規模も大きくする。
【００２６】
例えば、バッファＣＲＣエラーが発生した時の調査に必要なログ情報は、以下のとおりである。ホストシステム２００とディスク媒体１間においては、バッファメモリ１６を介してデータが転送される。バッファＣＲＣは、転送されるデータの正常性を保証するためのＣＲＣコードである。データ転送中にＣＲＣコードによる異常が検出される時は、バッファメモリ１６に故障が発生している可能性が大きい。しかし、Ｒ／Ｗ制御回路１７からホストインタフェース１８間の素子の異常、あるいはデータバス上の異常の可能性もある。この故障状態を特定するために必要な情報量は、まず異常検出時におけるプログラム上の制御情報（内部テーブル、レジスタ値、内部処理シーケンスの履歴など）に約２８ＫＢが必要である。また、バッファメモリ１６で異常が発生したと推定される付近のダンプデータに約５ＫＢ〜１０ＫＢが必要である。このダンプデータは、１セクタを５１２バイトとして約１０〜２０セクタ分に相当する。必要とされる情報量の合計は、約３３〜３８ＫＢとなる。
【００２７】
３０ＫＢを超える規模のエラーログ情報は、フラッシュＲＯＭ１２のログ情報領域１２４が約４ＫＢであるので、ログ情報領域１２４にはとうてい収まらない。ディスク媒体１のシステム用領域１ａに格納することができればよいが、前述のようにディスク媒体１上のシステム用領域１ａへのログ情報の記録ができない場合あるいは記録に失敗する場合がある。
【００２８】
本実施形態では、ディスク媒体１およびフラッシュＲＯＭの所定の領域にエラーログ情報の記録ができない場合には、エラーログ情報書き込み可能領域１２５にエラーログ情報を記録する。すなわち、ログ記録開始アドレスからエラーログ情報を上書きする。
【００２９】
図４は、本実施形態によるエラーログ情報の記録動作のフローを示す図である。故障等の何らかの事象が発生するとログ登録処理が行われる。まずＭＰＵ１１はログ情報を収集し、ＲＡＭ１３のワーク領域に格納する（Ｓ１）。
【００３０】
次いで、ＭＰＵ１１は、ディスク媒体１のシステム領域１ａへの書き込みが可能であるかどうかを確認する（Ｓ２）。すなわち、ディスクが正常に回転しているか、機構部品に異常がないかなどがチェックされる。
【００３１】
ステップＳ２で、ディスク媒体１のシステム領域１ａが書き込み可能な状態にあると判定されると、ログ情報はディスク媒体１のシステム領域１ａに書き込まれる（Ｓ３）。次いで、ディスク媒体１のシステム領域１ａへの書き込みが成功したか否かが判定される（Ｓ４）。
【００３２】
ステップＳ４で、ディスク媒体１のシステム領域１ｂへの書き込みが成功したと判定されると、ログ登録処理は終了し、次ぎの処理に進む。
【００３３】
ステップＳ２で、ディスク媒体１のシステム領域１ａへの書き込みができないと判定された場合、ステップＳ５に進む。また、ステップＳ４で、ディスク媒体１のシステム領域１ａへの書き込み処理を実行したものの異常終了した場合など、システム領域１ａへの書き込みが失敗したと判定されると、ステップＳ５へ進む。
【００３４】
ステップＳ５では、収集されたエラーログ情報の内容およびサイズなどを考慮してフラッシュＲＯＭ１２のログ情報領域１２４に記録可能か否かが判定される。ログ情報領域１２４に記録可能か否かの判定については、発生した故障の重要度、エラーログ情報のサイズ、エラーログ情報を圧縮することができるか否か、などが考慮される。例えば閾値などの判定基準は、フラッシュＲＯＭ１２に格納されているプログラムで規定される。大規模なエラーログ情報であっても必要なエラーログ情報を選択して圧縮することにより、ログ情報領域１２３に記録可能な場合がある。また、大規模なエラーログ情報であっても故障の重要度が低い場合、プログラムコードを壊してまで記録する必要はないと判断される場合もある。プログラムコードを壊してまで記録する必要はないと判断されると、エラーログ情報はいずれにも記録しないで廃棄する。
【００３５】
ステップＳ５で、フラッシュＲＯＭ１２のログ情報領域１２４に格納できるサイズで、必要なエラーログ情報を表現できる場合は、ログ情報領域１２４に記録可能と判定される。ログ情報領域１２４に記録可能と判定されると、ステップＳ６で、ログ情報領域１２４にエラーログ情報が記録され、記録が完了すると、エラーログ登録処理が完了する。
【００３６】
ログ情報領域１２４にエラーログ情報が記録されると、フラッシュＲＯＭ１２のプログラムコード領域１２２にプログラムコードがそのまま残るので、電源を切断／再投入した場合にも装置は正常に立ち上がる。
【００３７】
収集されたエラーログ情報を圧縮しても、必要なエラーログ情報のサイズがログ情報領域１２４のサイズを超える場合、エラーログ情報はログ情報領域１２４に格納することはできない。したがって、ステップＳ５では、ログ情報領域１２４に格納できない大規模なエラーログ情報は、エラーログ情報書き込み可能領域に記録することが決定される。これに従い、ステップＳ７で、エラーログ情報書き込み可能領域１２５のログ記録開始アドレス以降に、エラーログ情報が上書きされて書き込まれる。エラーログ情報書き込み可能領域へのエラーログ情報の書き込みが終了すると、ログ登録処理は完了する。
【００３８】
なお、エラーログ情報がエラーログ情報書き込み可能領域に書き込まれると、フラッシュＲＯＭ１２のプログラムコード領域１２２のプログラムコードは破壊され、電源を切断した後、再投入した場合、磁気ディスク装置１００は正常には立ち上がらない。
【００３９】
図５は、故障診断システムに接続された磁気ディスク装置を示す図である。故障が発生した磁気ディスク装置１００は、ホストシステム２００から切り離され、故障診断システム３００に接続されて、故障の解析・調査が行われる。故障診断システム３００は、ホストシステムと同様のサーバあるいはＰＣであってもよい。故障診断システム３００は、ホストインタフェース１８を介して制御部１０に接続される。故障診断システム３００は、ディスク媒体１に記録されたエラーログ情報あるいは制御部１０のフラッシュＲＯＭ１２に記録されたエラーログ情報を収集して、故障診断システム３００内のファイルとして保存する。故障診断システム３００は、ファイルに保存されたエラーログ情報に基づいてログ調査を実施する。
【００４０】
図６は、故障診断システムに接続された磁気ディスク装置を立ち上げて、エラーログを収集する手順の一例を示す図である。図６では、ＳＣＳＩ規格に則ったホストインタフェースコマンドに基づいて説明する。しかし、他の規格によるインタフェースコマンドでも類似の処理により図６のフローは実現可能である。
【００４１】
故障が発生したディスク装置１００をホストシステム２００から切り離して、故障診断システム３００に接続する。故障診断システム３００は、ディスク装置１００に電源を投入した直後に、ディスク装置１００の状態を確認するＴＥＳＴ  ＵＮＩＴ  ＲＥＡＤＹコマンドを磁気ディスク装置１００に対して発行する（Ｓ１１）。磁気ディスク装置１００は未だ立ち上がってはおらず、ノットレディ状態であるので、磁気ディスク装置１００が正常であっても、ＴＥＳＴ  ＵＮＩＴ  ＲＥＡＤＹコマンドはエラー終了する。
【００４２】
ついで、故障診断システム３００は、エラーの詳細を知るためにＲＥＱＵＥＳＴ  ＳＥＮＳＥコマンドを発行し、センス情報を収集する（Ｓ１２）。収集されたセンス情報が初期診断エラーを示しているか否かが判断される（Ｓ１３）。センス情報が初期診断エラーを示していない場合には、磁気ディスク装置１００は通常のノットレディ状態であるので、通常の立ち上げシーケンスに進む（Ｓ１４）。
【００４３】
ステップＳ１３で、センス情報が初期診断エラーを示していると判断されると、ステップＳ１５に進み、初期診断エラーの種別を判別する。エラーログ情報をフラッシュＲＯＭ１２のプログラム領域１２２に記録した場合、プログラム領域が破壊されるが、ブートコード領域１２１は残っている。したがって、磁気ディスク装置１００は、ブートコードに従う初期動作が可能である。ブートコードは、プログラムコードが正常か否か、基本電子回路が正常か否かを診断することができる自己診断機能を有している。したがって、ブートコードによる自己診断機能によりプログラムコードが不当であることが検出されると、プログラムコードが破壊されていることが分る。
【００４４】
ステップＳ１５で、プログラムコードが正当であると判断されると、ステップＳ１６に進み、従来の装置故障時の処理を行なう。
【００４５】
ステップＳ１５で、初期診断エラーがプログラムコードの破壊によるものであった場合には、ステップＳ１７に進む。ステップＳ１７では、ＳＣＳＩインタフェースのＷＲＩＴＥ  ＢＵＦＦＥＲコマンドによって通常時用もしくは試験用のプログラムコードを故障診断システム３００から磁気ディスク装置１００にダウンロードし、ＲＡＭ１３に展開する。診断システム３００からのプログラムコードのダウンロードは、不揮発性メモリであるフラッシュＲＯＭ１２にセーブしないモード（ｍｏｄｅ＝４）で実行される。ダウンロードされるプログラムコードは、フラッシュＲＯＭ１２の内容を読むために、フラッシュＲＯＭ１２を含むメモリ空間のデータを読み出すことのできるコマンド（ＲＥＡＤ  ＲＡＭコマンド）をサポートしている必要がある。
【００４６】
ダウンロード完了後、ステップＳ１８で、診断システム３００は、ＲＥＡＤ  ＲＡＭコマンドを発行し、プログラムコード領域１２２のログ記録開始アドレス付近のデータをチェックする（Ｓ１８）。ログ記録開始アドレス付近は、通常はプログラムが書き込まれている領域である。したがって、ログ記録開始アドレス付近のデータにログ情報であることを特徴付けるデータ、例えばログのヘッダやログパターンなどが含まれていると、エラーログ情報が上書きされていることが分る。なお、エラーログ情報であることを明確に示す所定のログパターンをログ記録開始アドレス付近に記録するように設定することもできる。
【００４７】
ステップＳ１８によるログ記録開始アドレス付近のデータのチェックに従って、ステップＳ１９では、ログ記録開始アドレス付近のデータに、ログパターンなどログ情報であることを特徴付けるデータが存在するか否かが判定される。ログ記録開始アドレス付近のデータにログ情報であることを特徴付けるデータが存在しなければ、プログラムコードが破壊されているのではないので、従来どおりの故障時の処理を行う。
【００４８】
ログ記録開始アドレス付近のデータがエラーログ情報であれば、ステップＳ２０で、ＲＥＡＤ  ＲＡＭコマンドに従って故障診断システム３００にすべてのエラーログ情報を収集する。次いで、ステップＳ２１で、故障診断システム３００は、収集されたログ情報を故障診断システム３００内のファイルに保存して、保存されたファイルのログ情報に基づいてログ調査を実施する。
【００４９】
本実施形態では、大規模なエラーログの記録を必要とする故障が磁気ディスク装置に発生した場合に、ディスク媒体に記録できなくても、不揮発性メモリに記録することができる。したがって、エラーログ情報は廃棄されることなく、確実に記録される。また、不揮発性メモリにエラーログ情報を記録した結果、不揮発性メモリのプログラムコード領域が破壊されていても、磁気ディスク装置を故障診断システムに接続して、不揮発性メモリに記録されたエラーログ情報を回収することができる。
【図面の簡単な説明】
【００５０】
【図１】本実施形態が適用される磁気ディスク装置の一例を示す図である。
【図２】本実施形態の磁気ディスク装置の制御部の概要を説明する図である。
【図３】本実施形態の不揮発性メモリの記憶領域の一例を示す図である。
【図４】本実施形態によるエラーログ情報の書き込み処理のフローを示す図である。
【図５】本実施形態による故障診断システムに接続された磁気ディスク装置を示す図である。
【図６】本実施形態の故障診断システムによる磁気ディスク装置からエラーログ情報を読み出す処理のフローを示す図である。
【符号の説明】
【００５１】
１００    磁気ディスク装置
１    磁気ディスク媒体
１ａ    システム用領域
１ｂ    ユーザデータ用領域
１０    磁気ディスク装置の制御部
１１    ＭＰＵ
１２    フラッシュＲＯＭ
１２１    ブートコード領域
１２２    プログラムコード領域
１２３    属性データ領域
１２４    ログ情報領域
１２５    エラーログ情報可能領域
１３    ＲＡＭ
１５    ディスクコントローラ
１６    バッファメモリ
１７    Ｒ／Ｗ制御回路
１８    ホストインタフェース
２００    ホストシステム
３００    故障診断システム
【図１】
2010033678.tif 000003
【図２】
2010033678.tif 000004
【図３】
2010033678.tif 000005
【図４】
2010033678.tif 000006
【図５】
2010033678.tif 000007
【図６】
2010033678.tif 000008