(57)【要約】【課題】アルゴリズムによって、副産物的エラーもしくは障害の状態または関係のないエラーもしくは障害の状態だけというのではなく、障害を有する装置が製造業者に送られることを要するようなエラーまたは破局的障害に対応する状態の記録を確実にすることを容易にする。【解決手段】装置エラーに応答してデータ記憶装置（１００）の状態を記録するための装置はエラーの検出で装置の状態の不揮発性メモリ（１１４）における記録を生じさせるコントローラ（１０４）を含む。装置エラーが第１の装置エラーに続く場合コントローラは使用メトリックが満たされているかを判断し満たされていればコントローラは装置状態の不揮発性メモリにおける記録を生じさせる。【選択図】図１
2006120152.tif 000002
【特許請求の範囲】
【請求項１】
装置エラーに応答してデータ記憶装置の状態を記録する方法であって、
装置エラーが第１の装置エラーである場合、前記装置の状態を記録することと；
前記装置エラーが前記第１の装置エラーに続くものである場合、使用メトリックが満たされているか否かを判断することと；
前記使用メトリックが満たされている場合、前記装置の前記状態を記録することとを含む、方法。
【請求項２】
前記使用メトリックが満たされていない場合、前記後の装置エラーが生じたことは記録するが、前記後の装置エラーに対応する前記装置の前記状態は記録しないことをさらに含む、請求項１に記載の方法。
【請求項３】
前記使用メトリックが満たされておらずかつ前記後の装置エラーが前記第１の装置エラーの直後に続く第１の後のエラーである場合には、前記第１の後の装置エラーに対応する前記装置の前記状態を記録することをさらに含む、請求項１に記載の方法。
【請求項４】
前記使用メトリックが満たされておらずかつ前記後の装置エラーが前記第１の後の装置エラーの直後に続く第２の後の装置エラーである場合には、前記第２の後の装置エラーに対応する前記装置の前記状態を記録しないことをさらに含む、請求項３に記載の方法。
【請求項５】
前記使用メトリックが満たされている場合、前記装置状態の記録は前記第１の装置エラーに応答して記録される前記装置状態のすべてまたはいくつかを上書きする、請求項１に記載の方法。
【請求項６】
前記使用メトリックが満たされている場合、前記装置状態の記録は前記第１の装置エラーに応答して記録される前記装置状態を上書きしない、請求項１に記載の方法。
【請求項７】
前記装置の前記状態は不揮発性メモリに記録される、請求項１に記載の方法。
【請求項８】
前記使用メトリックの選択は、前記使用メトリックが満たされることが、前記装置が、前記第１の装置エラーに応答して前記装置の前記状態を記録した後成功裡に動作することを示す可能性に基づいて行なわれる、請求項１に記載の方法。
【請求項９】
前記使用メトリックの選択は、前記使用メトリックを満たさないことが、前記第１の装置エラーから派生する装置エラーの記録を妨げるであろう可能性に基づいて行なわれる、請求項１に記載の方法。
【請求項１０】
前記装置エラーに関連する状態情報のみが記録される、請求項１に記載の方法。
【請求項１１】
前記第１の装置エラーは、前記データ記憶装置の、望まれない状態を表わす、請求項１に記載の方法。
【請求項１２】
前記第１の装置エラーはソフトウェアエラーを表わす、請求項１に記載の方法。
【請求項１３】
前記第１の装置エラーはハードウェアエラーを表わす、請求項１に記載の方法。
【請求項１４】
前記第１の装置エラーは前記データ記憶装置の破局的な障害を表わす、請求項１に記載の方法。
【請求項１５】
前記データ記憶装置はテープドライブである、請求項１に記載の方法。
【請求項１６】
使用メトリックはヘッドウェア時間に基づく、請求項１５に記載の方法。
【請求項１７】
前記使用メトリックは８ヘッドウェア時間である、請求項１６に記載の方法。
【請求項１８】
前記装置はテープライブラリである、請求項１に記載の方法。
【請求項１９】
前記使用メトリックはテープキャリヤロード／アンロードに基づく、請求項１に記載の方法。
【請求項２０】
前記使用メトリックはアップタイムに基づく、請求項１に記載の方法。
【請求項２１】
前記使用メトリックはパワーサイクル数に基づく、請求項１に記載の方法。
【請求項２２】
前記使用メトリックは実時間に基づく、請求項１に記載の方法。
【請求項２３】
前記使用メトリックはデータトラフィックに基づく、請求項１に記載の方法。
【請求項２４】
装置エラーに応答してデータ記憶装置の状態を記録するための装置であって、
装置エラーが第１の装置エラーである場合には、前記装置の状態の記録を生じさせ；
前記装置エラーが前記第１の装置エラーに続くものである場合には、使用メトリックが満たされているか否かを判断し；および
前記使用メトリックが満たされている場合には、前記装置の前記状態の記録を生じさせるためのコントローラを含む装置。
【請求項２５】
前記使用メトリックが満たされない場合、前記コントローラは前記後の装置の記録を引起すが、前記後の装置エラーに対応する前記装置の前記状態の記録は引起さない、請求項２４に記載の装置。
【請求項２６】
前記使用メトリックが満たされている場合、前記装置状態の記録は前記第１の装置エラーに応答して記録される前記装置状態のすべてまたはいくつかを上書きする、請求項２４に記載の装置。
【請求項２７】
前記使用メトリックが満たされておらずかつ前記後の装置エラーが前記第１の装置エラーの直後に続く第１の後のエラーである場合には、前記コントローラは前記第１の後の装置エラーに対応する前記装置の前記状態を記録することを引起す、請求項２４に記載の装置。
【請求項２８】
前記使用メトリックが満たされておらずかつ前記後の装置エラーが前記第１の後の装置エラーの直後に続く第２の後の装置エラーである場合には、前記コントローラは前記第２の後の装置エラーに対応する前記装置の前記状態を記録することを引起さない、請求項２７に記載の装置。
【請求項２９】
前記使用メトリックが満たされている場合、前記装置状態の記録は前記第１の装置エラーに応答して記録される前記装置状態を上書きしない、請求項２４に記載の装置。
【請求項３０】
前記装置の前記状態は不揮発性メモリに記録される、請求項２４に記載の装置。
【請求項３１】
前記使用メトリックの選択は、前記使用メトリックが満たされることが、前記装置が、
前記第１の装置エラーに応答して前記装置の前記状態を記録した後成功裡に動作することを示す可能性に基づいて行なわれる、請求項２４に記載の装置。
【請求項３２】
前記使用メトリックの選択は、前記使用メトリックを満たさないことが、前記第１の装置エラーから派生する装置エラーの記録を妨げるであろう可能性に基づいて行なわれる、請求項２４に記載の装置。
【請求項３３】
前記装置エラーに関連する状態情報のみが記録される、請求項２４に記載の装置。
【請求項３４】
前記第１の装置エラーは、前記データ記憶装置の、望まれない状態を表わす、請求項２４に記載の装置。
【請求項３５】
前記第１の装置エラーはソフトウェアエラーを表わす、請求項２４に記載の装置。
【請求項３６】
前記第１の装置エラーはハードウェアエラーを表わす、請求項２４に記載の装置。
【請求項３７】
前記第１の装置エラーは前記データ記憶装置の破局的な障害を表わす、請求項２４に記載の装置。
【請求項３８】
前記データ記憶装置はテープドライブである、請求項３７に記載の装置。
【請求項３９】
使用メトリックはヘッドウェア時間に基づく、請求項３８に記載の装置。
【請求項４０】
前記使用メトリックは８ヘッドウェア時間に基づく、請求項２４に記載の装置。
【請求項４１】
前記データ記憶装置はテープライブラリである、請求項２４に記載の装置。
【請求項４２】
前記使用メトリックはテープキャリヤロード／アンロードに基づく、請求項２４に記載の装置。
【請求項４３】
前記使用メトリックはアップタイムに基づく、請求項２４に記載の装置。
【請求項４４】
前記使用メトリックはパワーサイクル数に基づく、請求項２４に記載の装置。
【請求項４５】
前記使用メトリックは実時間に基づく、請求項２４に記載の装置。
【請求項４６】
前記使用メトリックはデータトラフィックに基づく、請求項２４に記載の装置。
【請求項４７】
プログラムコードを含み、装置エラーに応答してデータ記憶装置の状態を記録するためのコンピュータプログラム製品であって、
装置エラーが第１の装置エラーである場合には、前記装置の状態の記録を生じさせ；
前記装置エラーが前記第１の装置エラーに続くものである場合には、使用メトリックが満たされているか否かを判断し；および
前記使用メトリックが満たされている場合には、前記装置の前記状態の記録を生じさせるためのプログラムコードを含むコンピュータプログラム製品。
【請求項４８】
前記使用メトリックが満たされない場合、前記プログラムコードは前記後の装置の記録を引起すが、前記後の装置エラーに対応する前記装置の前記状態の記録は引起さない、請求項４７に記載のコンピュータプログラム製品。
【請求項４９】
前記使用メトリックが満たされている場合、前記装置状態の記録は前記第１の装置エラーに応答して記録される前記装置状態のすべてまたはいくつかを上書きする、請求項４７に記載のコンピュータプログラム製品。
【請求項５０】
前記使用メトリックが満たされておらずかつ前記後の装置エラーが前記第１の装置エラーの直後に続く第１の後のエラーである場合には、前記プログラムコードは前記第１の後の装置エラーに対応する前記装置の前記状態を記録することを引起す、請求項４７に記載のコンピュータプログラム製品。
【請求項５１】
前記使用メトリックが満たされておらずかつ前記後の装置エラーが前記第１の後の装置エラーの直後に続く第２の後の装置エラーである場合には、前記プログラムコードは前記第２の後の装置エラーに対応する前記装置の前記状態を記録することを引起さない、請求項５０に記載のコンピュータプログラム製品。
【請求項５２】
前記使用メトリックが満たされている場合、前記装置状態の記録は前記第１の装置エラーに応答して記録される前記装置状態を上書きしない、請求項４７に記載のコンピュータプログラム製品。
【請求項５３】
前記装置の前記状態は不揮発性メモリに記録される、請求項４７に記載のコンピュータプログラム製品。
【請求項５４】
前記使用メトリックの選択は、前記使用メトリックが満たされることが、前記装置が、前記第１の装置エラーに応答して前記装置の前記状態を記録した後成功裡に動作することを示す可能性に基づいて行なわれる、請求項４７に記載のコンピュータプログラム製品。
【請求項５５】
前記使用メトリックの選択は、前記使用メトリックを満たさないことが、前記第１の装置エラーから派生する装置エラーの記録を妨げるであろう可能性に基づいて行なわれる、請求項４７に記載のコンピュータプログラム製品。
【請求項５６】
前記装置エラーに関連する状態情報のみが記録される、請求項４７に記載のコンピュータプログラム製品。
【請求項５７】
前記第１の装置エラーは、前記データ記憶装置の、望まれない状態を表わす、請求項４７に記載のコンピュータプログラム製品。
【請求項５８】
前記第１の装置エラーはソフトウェアエラーを表わす、請求項４７に記載のコンピュータプログラム製品。
【請求項５９】
前記第１の装置エラーはハードウェアエラーを表わす、請求項４７に記載のコンピュータプログラム製品。
【請求項６０】
前記第１の装置エラーは前記データ記憶装置の破局的な障害を表わす、請求項４７に記載のコンピュータプログラム製品。
【請求項６１】
前記データ記憶装置はテープドライブである、請求項４７に記載のコンピュータプログラム製品。
【請求項６２】
使用メトリックはヘッドウェア時間に基づく、請求項６１に記載のコンピュータプログラム製品。
【請求項６３】
前記使用メトリックは８ヘッドウェア時間に基づく、請求項６２に記載のコンピュータプログラム製品。
【請求項６４】
前記データ記憶装置はテープライブラリである、請求項４７に記載のコンピュータプログラム製品。
【請求項６５】
前記使用メトリックはテープキャリヤロード／アンロードに基づく、請求項４７に記載のコンピュータプログラム製品。
【請求項６６】
前記使用メトリックはアップタイムに基づく、請求項４７に記載のコンピュータプログラム製品。
【請求項６７】
前記使用メトリックはパワーサイクル数に基づく、請求項４７に記載のコンピュータプログラム製品。
【請求項６８】
前記使用メトリックは実時間に基づく、請求項４７に記載のコンピュータプログラム製品。
【請求項６９】
前記使用メトリックはデータトラフィックに基づく、請求項４７に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の背景
１．発明の分野
この発明は一般にデータ記憶装置におけるエラーを処理することに関し、特に、装置エラーに応答して装置の状態を記録することに関する。
【背景技術】
【０００２】
２．関連技術
装置における根本原因エラーまたは障害を判断するのを容易にするために、装置の状態が記録され得る。状態を記録することの恩恵は、それによってエラー時における装置のパラメータの「スナップショット」が与えられるという点である。容易には再現されないエラーの場合、「スナップショット」を捕捉することはなぜ装置にエラーまたは障害が生じたかを判断する際に貴重である。エラーの原因を理解することにより、製造者／設計者は今後における防止手段を実現することができる。
【０００３】
たとえば、ある装置が実験室とは異なる環境において動作している場合、ある環境的変数、たとえば温度などによって、実験室の環境においては再現されないようなエラーまたは障害が生ずるかもしれない。データを障害時に捕捉することにより、確実に、その温度値はその状態において記録され、斯くして、その障害をよりよく理解することができるであろう。または、おそらくは、ソフトウェアは、ある変数に対し、予期しなかった値に遭遇し、その結果、以前にはテストされなかった望ましくないソフトウェア経路がもたらされる。エラーの点まで入力されたルーチンを捕捉することにより、ソフトウェアエンジニアはコードにおけるどのようなループホールをも直すことができる。
【０００４】
状態は、たとえば：装置に対するアップタイム；以前に入力されたコマンドのリスト；センサ読取値（温度、湿度など）；テープ／ディスク上のヘッド位置、モータ位置、回転速度計位置などの機械位置；エラーの直前にファームウェアにより実行された処理のリストを含むリングバッファ情報；装置が動作可能であった期間、生じたエラー数、装置が清掃された回数および平均性能に関する統計；媒体が障害時に存在したか否か、媒体動作（ロード、停止、読出、書込、前方移動、逆方向移動、アンロード）、および圧縮（オン／オフ、または圧縮比）などのドライブ情報；サーボトレース（時間テープが挿入された、テープ上のある位置）、供給および巻取モータ上の電流、巻取直径、回転速度計カウント、テープアドレス、モータ位置、ロードモータ状態（アンロード済み、ロード中、ロード済み、アンロード中）などのサーボ情報；ならびに要求および応答を示すＳＣＳＩトレースなどのＳＣＳＩ情報を含んでもよい。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
エラー分析の目的のための装置状態は典型的には不揮発性メモリ（「ＮＶＭ」）に記憶され、したがって、それは電源がオフにされるとき保存される。装置状態をＮＶＭに記憶する新しい方法に対する要求を生じさせる２つの主な問題がある。しばしば、装置を望ましくない状態にし、装置状態のＮＶＮに対する記録を生じさせる、元の障害がある。装置は望ましくない状態にあるため、後ののパワーアップは障害を引起し、これらの障害も次いでさらにＮＶＭに記録される。これら後の障害の記録は、通常、元の障害をＮＶＭから押出し（上書きし）、なぜならば、ＮＶＭは限られた容量であるからである。元の障害の後に生じた障害は、普通、元の障害の副産物であり、根本原因を判断するのに必要なデー
タを保持しないことが多い。
【０００６】
このような問題を回避しながらエラーに応答して装置状態を記録するための方法を開発することが望まれている。
【課題を解決するための手段】
【０００７】
発明の概要
この発明の実施例のアルゴリズムの１つの利点は、副産物的障害の状態または関係のない障害の状態だけというのではなく、障害を有する装置が製造業者に送られることを必要とする「根本原因」もしくは「元の」エラーまたは破局的な障害に対応する状態の記録を容易に確実にするという点である。ここにおける「エラー」は十分な機能性の欠如（たとえばソフトエラーまたはハードエラーなど）を示す任意のエラーまたは障害を広く指し示す。
【０００８】
この発明のある実施例に従うと、装置エラーに応答してデータ記憶装置の状態を記録するための装置は、エラー（「第１の装置エラー」）を検出すると、装置の状態の、不揮発性メモリにおける記録を引起すコントローラを含む。装置エラーが第１の装置エラーに続く場合、コントローラは、使用メトリックが満たされているかどうかを判断する。使用メトリックが満たされている場合、コントローラは、装置の状態の、不揮発性メモリにおける記録を生じさせる。
【０００９】
使用メトリックが満たされていない場合、コントローラは、後の装置エラーに対応する装置の状態の記録を引起すことなく、後の装置エラーが生じたことを不揮発性メモリに記録することを生じさせてもよい。「後の」、「次の」またはそれと同様の表現の使用は必ずしも直後を意味するものではない。
【００１０】
使用メトリックが満たされている場合には、後の装置状態の記録により、第１の装置エラーに応答して記録された装置状態のすべてまたはいくつかを上書きしてもよい。代替的に、別の実施例においては、使用メトリックが満たされている場合には、装置状態の記録は、第１の装置エラーに応答して記録された装置エラーのいずれも上書きしない。
【００１１】
使用メトリックが満たされておらず、後の装置エラーが、第１の装置エラーの直後に続く第１の後のエラーである場合には、コントローラは第１の後の装置エラーに対応する装置の状態の記録を生じさせてもよい。別の実施例では、使用メトリックが満たされておらず、後の装置エラーが、第１の後の装置エラーの直後に続く第２の後の装置エラーである場合には、コントローラは第２の後の装置エラーに対応する装置の状態の記録を生じさせない。
【００１２】
使用メトリックの選択は、使用メトリックが満たされることは、装置が、第１の装置エラーに応答して装置の状態を記録した後成功裡に動作することを示す可能性に基づいてなされてもよい。換言すると、使用メトリックの選択は、使用メトリックを満たせないことによって、第１の装置エラーから派生する装置エラーの記録が妨げられる可能性に基づいて行なわれてもよい。
【００１３】
第１の装置エラーはデータ記憶装置の望ましくない状態；たとえば破局的障害などを表わしてもよい。第１の装置エラーは、たとえば、ハードウェアエラーまたはソフトウェアエラーを表わしてもよい。
【００１４】
データ記憶装置はたとえばテープドライブであってもよく、その場合には、使用メトリックはヘッドウェア時間、たとえば８ヘッドウェア時間などに基づいてもよい。別の例で
は、データ記憶装置はテープライブラリであってもよく、その場合には、使用メトリックはテープキャリヤのロード／アンロードに基づいてもよい。他の例では、使用メトリックは、アップタイム、パワーサイクル数、実時間、またはデータトラフィックに基づいてもよい。
【発明を実施するための最良の形態】
【００１５】
例示的実施例の詳細な説明
上記の問題に対する１つの考えられ得る解決策は、記憶装置が遭遇する第１のエラーまたは障害のみに対して状態を収集することであろう。この方法はネズミ捕りを仕掛けることに似ている。ネズミ捕りがネズミを最初に捕まえる場合、それはチーズを得ようとし、それは理想的である。しかしながら、ネズミ捕りが掛け外されネズミが逃げると、ネズミ捕りにはそのネズミを再び捕らえる方法はない。同様に、第１の障害の後装置を再ブートし、既知のよい状態に戻り、つまり、ユーザが装置を使用し続けることができるようにすることは可能であるかもしれない。将来、装置を再ブートすることによっては解決し得ないような破局的な障害がある場合、その障害に関するどのような情報もこの筋書きの下で記憶されないであろう。さらに、元の障害は、おそらく、ユーザに装置を製造業者に返させた破局的障害と関係はないであろう。
【００１６】
別の考えられ得る解決策は、ＮＶＭに、記憶装置が遭遇する最も最近の障害に対する状態のみを記録することである。この方法はうまく働くのは、一貫性のある障害がある場合、たとえば、ある構成要素が障害を有しており、装置が再ブートされると必ず同じ障害が生ずるような場合である。しかしながら、元の障害の後に後の異なる障害がある場合には、この方法は最も最近の後の障害に関する情報を収集するだけであり、したがって、製造業者／設計者から真の根本原因情報を奪うであろう。
【００１７】
第３の考えられ得る解決策は、状態をある障害に対してのみＮＶＭに記憶し、決して再び記録しないというものである。この方法は、すべての障害の筋書きが斟酌されることを必要とし、それは達成するのは困難であろう。たとえば、装置がサーボエラー情報をＮＶＭに記録するに過ぎない場合、サーボエラーとして登録されるべきエラーを妨げるファームウェアバグがあり、それによって、対応する状態がＮＶＭにセーブされることを妨げるかも知れない。さらに、装置は、第１の障害のみを記録することに関し上で論じた問題と同じ問題を有するであろう。
【００１８】
より大きなコストに対しては、２つ以上の状態が記録されるようより大きな不揮発性記憶媒体（たとえばさらなるフラッシュ、より大きなディスクドライブなど）を用いることが可能である。しかしながら、いつ状態を記憶するかを判断するためのアルゴリズムに対する要求は依然として要求されるであろうと思われ、なぜならば、将来の装置はセーブすべきさらなる状態情報を有すると考えられ、記憶媒体にセーブされ得る状態の数が制限されるであろうからである。換言すると、装置が複数の状態を記憶するよう記憶媒体の容量を増大させたとしても、派生的障害情報の記憶は依然としてその空間を奪い、元の障害の情報を押出すであろう。以下に記載される手法はこれら代替的解決策の欠点を回避する。
【００１９】
図１はこの発明の実施例のアルゴリズムを組込むデータ記憶装置１００を示す。不揮発性メモリ１０２はそのアルゴリズムを実施するファームウェアを記憶してもよい。コントローラ１０４は、１つの実施例においては、不揮発性メモリ１０２から読出を行ないそのアルゴリズムを実行する。データ記憶装置がテープドライブなどの媒体ドライブである実施例においては、コントローラ１０４は、さらに、物理的インターフェイス１０８を介するデータ記憶媒体１０６との間のデータの読出および書込を制御する。その場合には、物理的インターフェイスはテープドライブ素子、たとえば読取／書込ヘッドなどを含む。データ記憶装置がテープライブラリである実施例においては、コントローラ１０４は、テー
プカートリッジの、ライブラリにおけるテープドライブへのロードまたはそれからのアンロードを制御する。その場合、物理的インターフェイス１０８はライブラリ素子、たとえばピッカが伴う機械などを含んでもよい。
【００２０】
データ記憶装置がテープドライブなどの媒体ドライブである実施例では、オプションとしてのサーボプロセッサによって記憶媒体に対する読取／書込素子の位置決めを制御してもよい。その場合、物理的なインターフェイス１０８は、さらに、サーボプロセッサにより制御され読取／書込素子を位置決めするための電子機械制御要素を含む。サーボプロセッサはコントローラ１０４と同じチップを共有してもよい。
【００２１】
論理インターフェイス１１０はコントローラ１０４が別の要素１１２、たとえばユーザがデータ記憶装置１００の動作を制御することを可能にするための顧客コンピュータなどとインタラクトすることを可能にする。データ記憶装置がネットワーク上の媒体ドライブである実施例では、要素１１２はネットワークルータまたはスイッチを含んでもよい。
【００２２】
フラッシュメモリなどである不揮発性メモリ（ＮＶＭ）１１４はこの発明のある実施例に従うとエラーに応答してデータ記憶装置の状態を記憶する。ＥＥＰＲＯＭなどのような他の不揮発性メモリ１１６は、寿命、つまりデータ記憶媒体に対する履歴、情報を記憶する。記憶装置が、テープがロードされているテープドライブである場合には、そのドライブは、テープの履歴を表わすそのディレクトリを読取る。ＮＶＭ１１６は、次いで、テープがロードされた過去のドライブ、そのテープにおいて実行される動作、アクセスされる最も高いトラック、およびテープのロード数に関する情報を記憶してもよい。当業者であれば、ＮＶＭ１１４およびＮＶＭ１１６は単一のＮＶＭに組合せられてもよいことを認識するであろう。
【００２３】
リングバッファなどである揮発性メモリ１１８は、処理がデータ記憶装置内において実行されるときファームウェアにおける印刷ステートメントに応答して情報を記憶してもよい。この印刷ステートメントは、どのタスクが実行中であるか、異なる変数の状態、タイムスタンプ、サーボデータ、および読出／書込状態に関する情報を与える。エラーが生ずると、リングバッファの内容はそのエラーの原因を追跡するのを助ける。リングバッファは、システム設計者がこの目的にとって有用であると考える情報であればどのような情報を保持してもよい。揮発性メモリ１１８は、オプションとしてＳＤＲＡＭを含んでもよく、機械的情報、たとえばテープ／ディスク上のヘッド位置、モータ位置、タコメータ位置などに関する情報を記憶してもよい。
【００２４】
同様に、レジスタががリングバッファと同じ揮発性メモリ１１８に位置してもよい。これらのレジスタは、周辺装置からの状態情報、たとえば温度または湿度などを記憶してもよい。
【００２５】
この発明のある実施例に従うと、望ましくない状態を引起す第１のエラーに応答して、コントローラ１０４は選択された情報を異なるメモリ位置（たとえばＮＶＭ１１６、揮発性メモリ１１８）から検索させ状態情報として不揮発性メモリ１１４に記憶させることになる。エラーはデータ記憶装置１００を回復不可能な状態に置くかもしれない。
【００２６】
記憶される情報は装置履歴情報、たとえば実行されるコマンドのリスト、ロードされるテープの種類、装置が動作可能であった期間、生じたエラー数、装置が清掃された回数、平均性能、エラーが生じたときの読取／書込値などであってもよい。メモリ１１４はさらにドライブ情報、たとえば障害時の媒体の存在、その媒体上で実行される動作（ロード、停止、読出、書込、前方移動／逆移動、アンロード）、圧縮オン／オフ状態などを記憶してもよい。さらに、メモリは、エラーの直前に生ずるサーボ情報、たとえば、サーボトレ
ース（テープ挿入時間、テープ上の選択されたデータの位置）、供給および巻取モータ上の電流、巻取直径、回転速度計カウント、テープアドレス、モータ位置、ロードモータ状態（アンロード済み、ロード中、ロード済み、アンロード中）、ならびに要求および応答を示すＳＣＳＩトレースを含むＳＣＳＩ情報を記憶してもよい。
【００２７】
ＮＶＭ１１４は典型的には高価であり容量において制限されている。１つの実施例では、装置状態情報はＮＶＭ１１４のすべてもしくは大部分または専ら状態を記憶する他のメモリ／ストレージ（「状態メモリ」）を占め得る。斯くして、選択されたエラー（「元のエラー」）の根本原因を追跡する際に役立つような状態情報を、元のエラーからおそらくは派生するエラーを表わす状態情報で上書きすることを回避することは重要である。１つの実施例では、アルゴリズムによって、そのような情報の上書きが、使用メトリックが満たされたときのみ状態メモリに状態情報を記録することを可能にすることにより行なわれることが防止される。
【００２８】
別の選択肢としては、この発明のアルゴリズムは、ＮＶＭ１１４において、装置エラーに関係する状態情報のみを記憶し得、換言すると、エラーとほとんどまたは全く関係のない状態情報を記憶することを回避し得る。たとえば、エラーが、落とされたリーダである場合、アルゴリズムは、すべての、サーボに関係するリンクバッファ状態情報を収集し、ＳＣＳＩ情報は記憶しなくてもよい。または、エラーがＳＣＳＩエラーである場合には、アルゴリズムはリングバッファ全体およびＳＣＳＩトレースを記憶し、サーボ情報の、どのような情報も記憶しなくてもよい。
【００２９】
要求されたデータ収集が明示的には述べられない場合にはベースライン状態に対し情報を集めるであろう包括的な収集もあるであろう。ベースライン状態は、多くの異なるタイプの情報の、限られた選択、たとえば、リングバッファ全体ではなく、リングバッファの最後の１０００個のエントリ、最後の１０個のＳＣＳＩコマンドなどを表わして、装置エラーのよりよい理解を助けるであろう。
【００３０】
図２は、あるデータ記憶装置に対するこの発明のアルゴリズムのある実施例を示すフローチャートである。コントローラによって、第１の装置エラーが生じたことが検出されると（２００）、コントローラはＮＶＭ１１４に装置の状態を記憶する（２０２）。「第１の装置エラー」または「第１のエラー」は、装置エラーに対応する状態（「装置エラー状態」）が現在記憶されていない（たとえばＮＶＭは現在はどのような装置エラー状態も保持していない）一方でやがて生ずる第１のエラーであり、その目的は、他のエラーから派生しない独立した元のエラーに対応する装置エラー状態を記録することである。
【００３１】
状態は、装置内もしくは装置に関連付けられるソリッドステートＮＶＭもしくは他のメモリ／ストレージ、または代替的に、取外し可能な媒体、またはデータ記憶装置を含むネットワーク上の記憶装置などに記憶され得る。状態を記憶することは、ＮＶＭ１１４に記憶される、以前の状態を上書きしてもよい。代替的に、十分な空間がある場合には、コントローラは状態の記憶を、以前の状態を上書きすることなく行なってもよい。後者の選択肢は、ＮＶＭ１１４が、「根本原因」に関係する複数の状態を記憶することを可能にする。
【００３２】
コントローラによって、エラーが第１の装置エラーでない旨が検出されると、コントローラは使用メトリックが満たされるか否かを判断する。使用メトリックが満たされる場合には（２０６）、コントローラは、たとえそうすることによって一実施例においては以前に記録された状態を上書きするかもしれなくても、装置の状態をＮＮＭにおいて記録させる（２０２）。
【００３３】
逆に、使用メトリックが満たされない場合には、１つの実施例では、コントローラは、第１の装置エラーの後のすべての装置エラーに対応する状態を記憶しないよう判断してもよい。代替的に、別の実施例では、コントローラは第１の装置エラーの直後に続くＮ個の装置エラーまでに対応するＮ個の状態までの記憶を可能にしてもよい。
【００３４】
前者の実施例が実施される場合には、ステップ２１０は実施されない。その場合、コントローラは装置状態を記憶せず、その代わりに、事象メモリ１１６において、エラーが生じた旨を記憶してもよい（２１２）。この場合、エラーは記憶される第１の装置エラーから派生するものであってもよく、その場合には、状態の記録は、一般には、エラーの原因を診断することにおいて、元の第１の装置エラーのときにおけるドライブの状態の分析ほど有用ではないであろう。
【００３５】
しかしながら、ステップ２１０を含む後者の実施例が実施される場合には、コントローラは装置エラーは第１の装置エラーの直後に続く第１、第２、…、または第Ｎ番目のエラーであるかどうかを判断することになる。装置エラーが第１の装置エラーの直後に続く第１、第２、…、または第Ｎ番目のエラーである場合、コントローラは後の装置エラーに対応する状態をＮＶＭ１１４に記録させる（２０２）。そうでない場合には、たとえば、装置エラーが、Ｎ＋１番目の、後のエラーである場合には、コントローラは、単に、事象メモリ１１６において、後のエラーが生じた旨を記録してもよい（２１２）。
【００３６】
選択された使用メトリックは、装置が成功裡に動作しているかどうかを判断することを容易にする量化可能な値である。１つの実施例に対しては、実験に基づき、使用メトリックの選択は、使用メトリックが満たされることは、データ記憶装置が、第１の装置エラーに応答して装置の状態を記録した後成功裡に動作することを示す可能性に基づいてなされてもよい。代替的に、または換言すると、１つの実施例の場合、使用メトリックの選択は、使用メトリックが満たされることは第１の装置エラーから派生する装置エラーの記録が回避されることを示す可能性に基づいて行なわれてもよい。
【００３７】
使用メトリックは装置に依存するものであり、専ら、１つのメトリック、またはアップタイム（装置がパワーアップされた時間）、パワーサイクル（装置がオン／オフされた回数）、実時間（秒数（または分、時、日などをなす秒の倍数））、トラフィック（装置間で送られて行き来する情報の量）などのようなメトリックの組合せである可能性がある。
【００３８】
テープドライブの場合、メトリックはヘッドウェア時間であってもよく、なぜならば、十分に機能性のあるドライブのみが読取および書込を行ない得、ヘッドウェア時間を増分させる。８ヘッドウェア時間の保存値を、装置が成功裡に動作していたことはほとんど疑いがないであろうように用いてもよい。代替物として、メトリックはヘッドウェア時間およびパワーアップ時間の重み付けされた平均であってもよい。
【００３９】
他のデータ記憶装置はそれらの一次関数に基づく異なるメトリックを用いてもよい。たとえば、ローダ（またはライブラリ）によってテープがロード／アンロードされる。斯くして、そのメトリックのうちの１つはそれが正しく働くことを確実にするよう或る数のロード／アンロードであるかもしれない。
【００４０】
あるネットワーク装置は、送受されるトラフィック量をそのメトリックとして用いるよう、またはトラフィックおよびパワーアップ時間の重み付けされた平均を用いるよう、データ（トラフィック）を授受する。
【００４１】
別の実施例として、テープドライブをハードドライブと合体させる装置は、ヘッドウェア時間をテープドライブとハードディスクとの両方に対して含むメトリックの組合せを、
おそらくはシステムとの間で授受されるデータの量と並んで用いてもよい。
【００４２】
異なるタイプのエラーに基づくいくつかの例は以下のとおりである。
【００４３】
テープドライブ上の分離リーダ
テープがテープドライブに挿入され、分離リーダがドライブに対する第１のエラーとして生ずる。これらは第１のエラーであるため、装置の状態が記録される。記録される状態情報のうちのいくつかは、タコメータ回転数、モータホールセンサカウント、挿入されたテープが有効なテープであるか否か、およびロードリングがその運動を完了したかどうか、を含むかもしれない。この状態情報はバックル位置を判断することを容易にするであろうと思われ、なぜならば、十分なドライブが、バックルが同じ位置にある状態で処理のために戻される場合には、テープ経路は修正される必要があるかもしれないからである。
【００４４】
ドライブはユーザに対して働いてはいないであろうから、ユーザは、ドライブが回復不可能な状態にあることを認識する前に複数回ドライブをパワーサイクルすることを試みてもよい。パワーサイクルすることにより、ドライブは新たな状態でスタートすることになり、ドライブはそれが以前の動作中において振舞ったのとは異なるように振舞うことになる。たとえば、元の（今は記録されている）エラーの前に、あるカートリッジがドライブに挿入され、現在はそれは挿入されてはいない。したがって、通常のドライブ動作（および対応するコントローラコード）は異なる経路を辿ることになる。リーダは依然として分離しているため、エラーが生ずることになる。
【００４５】
テープドライブの主な機能はテープに対し書込／読取を行なうことであるため、テープドライブに対する論理メトリックはヘッドウェア時間である。一旦あるヘッドウェア時間数、たとえば８ヘッドウェア時間が、先のエラーが生じてから経過すると、テープドライブは再びヘッドをテープに係合していて、したがって動作可能であることが、安全に想定され得る。
【００４６】
しかしながら、この例におけるドライブは働いておらず、テープは挿入されていないため、ヘッドがテープに係合することは不可能である。斯くして、ドライブがメトリック要件を満足させることは不可能である。この場合、コントローラは単に任意の後のエラーに注目することになるが、装置の状態を記録しはしない。
【００４７】
しかしながら、おそらく、顧客は、分離リーダの問題を解決する手段を有する。この問題が解決された後、ドライブは再び適切に動作するであろう。８時間の、成功裡の読取／書込動作の後、使用メトリックは満たされるであろう。この発明のアルゴリズムのある実施例に従うと、コントローラはしたがって再び新たなエラーを捕捉し、装置の状態を記録する準備ができているであろう。
【００４８】
バックル解除失敗
バックル解除失敗エラーが生ずるのは、テープが成功裡にイジェクトされないときであり、テープのバックルはドライブのリーダに接続されたままである。これが生ずると、ドライブの状態が記録されデータが収集され得、なぜドライブがバックル解除に失敗したかを判断する際に製造業者の助けとなる。
【００４９】
バックル解除の失敗の後、顧客はテープを引張って取外すかも知れず、それは、損傷し分離リーダをもたらす結果となる可能性がある。この発明のある実施例に従うと、記録は「ロックされ」、真の障害、バックル解除の失敗は上書きされず、なぜならば、たとえば、その障害の後に生ずる成功裡な動作の可能性を表わす使用メトリックが満たされないからである。
【００５０】
テープを挿入する間テープローダ／ライブラリは過度にプッシュを行なう。
【００５１】
この例は、テープがライブラリに挿入されると仮定する。テープをドライブに挿入する一方、ピッカによって、仕様により許されるより長くテープが押され、ドライブはテープを正しく係合できなくなるようにされるかもしれない。テープはドライブ内においてつまり、エラーを引起す。ドライブエラーはローダに伝搬されるであろう。なぜならば、ローダは今やその詰まったテープをアンロードすることはできないであろからであり、他のテープをそのドライブにロードするであろう。これが第１のエラーである場合、コントローラはこのエラーに応答してライブラリの状態を記録するであろう。状態は、ローダがちょうどテープを挿入したフラグを、ピッカがテープをドライブ内に保持した時間量と並んで含んでもよい。
【００５２】
ローダがパワーサイクルされる場合、ローダは新しい状態からスタートし、ローダがドライブに挿入しようと試みるであろう別のテープを掴むかもしれない。これは別のエラーを引起すであろう（なぜならばあるテープが既に存在しているからである）。この発明の１つの実施例では、メトリック（たとえばロード数など）をチェックしそれを満たさないと、ローダは、状態を記録することなく、単に、生じたエラーを派生的エラーとして注目するであろう。
【００５３】
テープドライブ上における破断したテープ
供給または巻取モータにより与えられる過剰な力はテープを引き裂くかもしれない。これが生ずると、ドライブ内のタコメータは値を変更することを停止することになり、なぜならば、それを回転させるテープの張力がないからである。これに応答して、コントローラは、たとえば、どれだけのテープが巻取リール上にあったか、モータの速度、およびソフトウェアトレースなどの情報を含む、ドライブの状態を記録してもよい。
【００５４】
カートリッジがイジェクトされない場合、後のパワーサイクルによってエラーが引起されるであろう。なぜならば、テープの張力は正しくないからであり、カートリッジはイジェクトされるであろう。顧客が別のカートリッジをロードしようとする場合には、別のエラーが生ずるであろうと考えられ、なぜならば、ドライブは媒体をバックルしロードすることはできないであろうからである。この発明のある実施例に従うと、コントローラは元のエラーを記録するが、使用メトリックは満たされないため、２つの派生的エラーは記録しないであろう。
【００５５】
テープドライブ上におけるバックルの失敗
供給モータは、テープドライブにおいて、テープが挿入される位置の下にあるモータである。供給モータは、カートリッジ上のリールを回転させ、巻取モータとともにテープを移動させる。いくつかの例では、テープがロードされると供給モータが作動しないようにすることが可能である。これにより、テープとともに成功裡にバックルするようテープドライブリーダを妨げる。コントローラは、ドライブの状態を、このエラーに応答して記録させるであろう。派生的障害は、使用メトリックを満足させることに依拠するこの発明の実施例に従うと、記録されないであろう、分離リーダエラーまたはバックル解除失敗エラーを含み得る。
【００５６】
ディスク−ディスク−テープ（ＤＤＴ）システム
ＤＤＴシステムは、一般に、２つのディスクドライブ（但しわずか１つでしかないかもしれない）およびテープドライブからなる。この例では、ディスクドライブはテープに書込を行なっており、ディスクドライブがクラッシュすると想定されたい。コントローラはこの発明のある実施例に従うとシステムの状態をこのエラーに応答して記録するであろう
。
【００５７】
ユーザ／顧客が、ディスクドライブがクラッシュしたことに気付かない場合、ユーザはシステムをパワーサイクルし、テープの読取を試みるかもしれない。読取は失敗する可能性があり、なぜならば、テープはハードライトの等価物を有するであろうからである。不良テープを引起したクラッシュが以前にあり、現在の読取の失敗は元の障害の結果であり、したがって記録される必要はないことが認識されるよう、知能をＤＤＴシステムにビルトインすることが考えられる。
【００５８】
この発明は特定の実施例に関連して記載されてきたが、さまざまな修正物および変形物がこの発明の精神および範囲から逸脱することなく当業者によりなされてもよいことが理解される。当業者は、これらの実施例は相互に排他的である必要はなく、適切である場合には、１つの実施例からの特徴を他の実施例からの特徴と組合せてもよいことを認識するであろう。この発明は前述の例示的詳細によって限定されるものではない。
【図面の簡単な説明】
【００５９】
【図１】この発明のある実施例のデータ記憶装置の図である。
【図２】この発明のある実施例に従うアルゴリズムの図である。
【符号の説明】
【００６０】
１００  データ記憶装置、１０２  不揮発性メモリ、１０４  コントローラプロセッサ、１０６  データ記憶媒体、１０８  物理的インターフェイス、１１０  論理インターフェイス、１１２  データ記憶装置とインタラクトする装置、１１４  状態を記憶する不揮発性メモリ、１１６  ＥＰＲＯＭ不揮発性メモリ、１１８  揮発性メモリ。
【図１】
2006120152.tif 000003
【図２】
2006120152.tif 000004
【外国語明細書】
2006120152000001.pdf