(57)【要約】【課題】近年の磁気ディスク装置では、上位ホストコンピュータにエラーを報告しないでリトライする回数を、磁気ディスクの制御プログラム内に持ち、その回数以内にエラーが回復できた場合は正常終了している。記録密度上昇に伴うデータの読み込み時等のエラー発生確率上昇を補うため、上位ホストにエラーを報告しないでリトライする回数を増加させると、上位ホストに対する応答は正常終了にも関わらず、応答時間がリトライを繰り返した時間分延びることが問題となる。【解決手段】上位ホストにエラーを報告しないで実行するリトライ回数を、読み込み等のコマンド実行を開始してからの経過時間に従って決定し、上位ホストにエラーを報告しないリトライ回数内でエラーが回復した場合においても、リトライに要した時間がある閾値を超えている場合は、リカバードエラーを報告する。【選択図】  図１
2004192718.tif 000002
【特許請求の範囲】
【請求項１】
磁気ディスク装置に記憶されているデータの読み込みあるいは書き込み時にエラーが発生した場合、上位ホストコンピュータにエラー報告しないで、データの読み込みあるいは書き込みのリトライを実施する磁気ディスク装置において、
データの読み込みあるいは書き込みを開始してからのリトライ時間が所定の時間を超えた場合、リトライ回数が上位ホストコンピュータにエラー報告しないでリトライする回数未満であってもエラー報告を送信する制御プログラムを有することを特徴とする磁気ディスク装置。
【請求項２】
請求項１記載の磁気ディスク装置において、
前記制御プログラムは、データの読み込みあるいは書き込み時に発生するエラーの頻度によって、上位ホストコンピュータにエラー報告しないでリトライする回数を調節する機能を有することを特徴とする磁気ディスク装置。
【請求項３】
請求項１記載の磁気ディスク装置において、
前記制御プログラムは、データの読み込みあるいは書き込み時にエラーが発生することにより、上位ホストコンピュータから指定されたデータの読み込みあるいは書き込みの性能が満たせない場合に、上位ホストコンピュータにエラー報告しないでリトライする回数を調節する機能を有することを特徴とする磁気ディスク装置。
【請求項４】
請求項３に記載の磁気ディスク装置において、
前記性能の算出は、読み込みあるいは書き込みする際のシーク距離に応じたコマンド実行時間の平均値に基づいて実行することを特徴とする磁気ディスク装置。
【請求項５】
磁気ディスク装置に記憶されているデータの読み込みあるいは書き込み時にエラーが発生した場合、上位ホストコンピュータにエラー報告しないで、リトライを実施する磁気ディスク装置において、
エラー回復に要するリトライ回数が、上位ホストコンピュータにエラー報告しないで実行されるリトライ回数未満であって、かつエラーの回復に要するリトライ時間が、上位ホストコンピュータにエラー報告しないで実行されるリトライ時間を超えた場合には、上位ホストコンピュータにリカバードエラー報告を送信することを特徴とする磁気ディスク装置。
【請求項６】
請求項５に記載の磁気ディスク装置において、
エラー発生頻度が所定の値を超えた場合に、前記上位ホストコンピュータにエラー報告しないで実行されるリトライ回数を所定回数に削減する機能を有することを特徴とする磁気ディスク装置。
【請求項７】
請求項５に記載の磁気ディスク装置において、
磁気ディスク装置の性能劣化が所定の値を超えた場合に、前記上位ホストコンピュータにエラー報告しないで実行されるリトライ回数を所定回数に削減する機能を有することを特徴とする磁気ディスク装置。
【請求項８】
請求項７に記載の磁気ディスク装置において、
前記性能劣化の値の算出は、読み込みあるいは書き込みする際のシーク距離に応じたコマンド実行時間の平均値に基づいて実行することを特徴とする磁気ディスク装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、磁気ディスク装置の制御方式に関し、特に、上位ホストコンピュータにエラー報告することなくリトライを繰り返すことにより、性能劣化を引き起こすことがないリトライ制御方式に関する。
【０００２】
【従来の技術】
磁気ディスク装置に記憶されているデータの読み込みあるいは書き込みの時にエラーが発生し、データの読み込みあるいは書き込みのリトライを実施することにより、エラーが回復した場合に、磁気ディスク装置は上位ホストコンピュータに対して、リトライを実施したことによってエラーが回復できたことを示すリカバードエラーを報告する。
【０００３】
磁気ディスク装置をＲＡＩＤ構成などのシステムに搭載して使用する場合においては、エラーが多発する磁気ディスク装置を、システムから切り離し閉塞させるために、リカバードエラーが１日に１０件以上発生する磁気ディスク装置は閉塞させるというような閾値管理を実施している。
【０００４】
磁気ディスク装置の記録密度の向上に伴い、データの読み込みあるいは書き込み時にエラーが発生する確率が上昇している。そのため、近年の磁気ディスク装置においては、上位ホストコンピュータにエラーを報告しないで、データの読み込みあるいは書き込みのリトライする回数を、磁気ディスク装置の制御プログラム内に持ち、リトライによってその回数以内にエラーを回復できた場合は正常終了している。
【０００５】
リトライする回数を制限する従来の技術としては、特許文献１に記載のように、ホストコンピュータのコマンド発行間隔内にコマンドが終了するようにリトライする回数を決定するとなっている。
【０００６】
【特許文献１】
特開２００１−８４７１２号公報
【０００７】
【発明が解決しようとする課題】
近年、磁気ディスク装置の記録密度は、１年に約２倍の割合で向上している。それに伴い読み込みあるいは書き込み時のエラー発生確率も上昇し、上位ホストコンピュータにエラーを報告しないでデータの読み込みあるいは書き込みのリトライする回数も、磁気ディスク装置を新たに開発する毎に増加している。具体的な例をあげると、上位ホストコンピュータからＭＯＤＥ  ＳＥＬＥＣＴコマンドにて設定されるリトライ回数は１２８回で、上位ホストコンピュータに報告しないでリトライする回数は、従来は例えば５回であったものが、近年では例えば３２回というように増加している。上位ホストコンピュータにエラーを報告しないでデータの読み込みあるいは書き込みのリトライする回数を増加させたことにより、上位ホストコンピュータに対する応答は正常終了にも関わらず、応答時間がリトライを繰り返した時間分延びることが問題となっている。リトライ動作に時間がかかり問題となるのは、１回のリトライ動作に時間がかかる位置付き系のエラーのリトライ（約１００ミリ秒／１回）を繰り返した場合、および媒体系のエラーでは、１回のリトライ動作は磁気ディスクが１回転する時間程度（約６ミリ秒／１回）であるが、上位ホストコンピュータにエラーを報告しないでリトライする回数以内に回復するエラーが複数セクタに跨って存在しているアドレスに対するデータの読み込みあるいは書き込みを実施する場合である。
【０００８】
特に、磁気ディスク装置をＲＡＩＤ構成などのシステムに搭載して使用する場合においては、上位ホストコンピュータにエラーを報告しないでデータの読み込みあるいは書き込みのリトライを繰り返すことにより、例えば、ＲＡＩＤシステムのデータのバックアップ作業などが、従来の数倍の時間が必要となるという問題が発生する。このような問題が発生した場合に、どの磁気ディスク装置が原因でシステム全体の性能劣化を引き起こしているのかを切り分け、その磁気ディスク装置を正常に動作する磁気ディスク装置と交換しないとならないが、磁気ディスク装置からのエラー報告はなく、ＲＡＩＤシステムのログを解析して、数百台単位で接続されている磁気ディスク装置のコマンド応答時間を調査しないと、性能劣化を引き起こしている磁気ディスク装置を特定し交換することはできない。
【０００９】
【課題を解決するための手段】
上位ホストコンピュータにエラーを報告しないでデータの読み込みあるいは書き込みのリトライする回数を、データの読み込みあるいは書き込みを開始してからの経過時間に従って決定し、上位ホストコンピュータにエラーを報告しないリトライ回数内でエラーが回復した場合においても、リトライに要した時間がある閾値を超えている場合は、リトライを実施したことによってエラーが回復できたことを示すリカバードエラーを上位ホストコンピュータに報告する。リトライに要した時間で判断することにより、データの読み込みあるいは書き込み時の数セクタのみの媒体系エラーに対しては、１回のリトライ動作に要する時間は、磁気ディスクが１回転する時間（約６ミリ秒）程度であるので充分な回数リトライを実施することができる。それに対し、上位ホストコンピュータにエラーを報告しないでリトライする回数以内に回復するエラーが複数セクタに跨って存在しているアドレスに対するデータの読み込みあるいは書き込みを実施する場合に関しては、リトライに要した時間で判断することにより、上位ホストコンピュータにエラーを報告することなくリトライを繰り返し、性能劣化を引き起こすという事態を回避することができる。１回のリトライ動作に時間がかかる位置付き系エラーのリトライ（約１００ミリ秒）などに関しても、リトライを実施する回数は少なくなるが、同様の効果を得ることができる。このように、リトライに要する時間のカウントをエラー毎に実行するため、リトライに要する時間の異なるエラーが複数混在して発生しても、上記の問題（応答時間の遅延）を起こすことなく、回復した場合の読み書き制御を実行することができる。また、リトライに要した時間が閾値を超えた場合のリカバードエラー報告を上位ホストコンピュータに送ることで、ＲＡＩＤ等のストレージシステムの性能を高いレベルで維持することができる。
【００１０】
上位ホストコンピュータにエラーを報告しないリトライを実施するのに要した時間によってリトライ回数を調節する方法以外にも、媒体系および位置付き系のエラー発生頻度を計測し、エラー発生頻度がある閾値を越えた場合には、上位ホストコンピュータにエラーを報告しないでデータの読み込みあるいは書き込みのリトライする回数を減少させる方法もある。
【００１１】
あるいは、磁気ディスク装置におけるデータの読み込みあるいは書き込み時の標準的な性能に対して一定比率以上性能が劣化した場合、上位ホストコンピュータにエラーを報告しないでデータの読み込みあるいは書き込みのリトライする回数を減少させることによっても、同様の効果を得ることができる。
【００１２】
【発明の実施の形態】
以下、図面により、さらに詳細に本実施の形態について説明する。図１は、本発明を適用した磁気ディスク装置の一実施例の構成図を示したものである。
【００１３】
図１において、１０はホストコンピュータ、４０は磁気ディスク制御装置を示し、ホストコンピュータ１０および磁気ディスク制御装置４０は、ホストインタフェース３０により接続される。１００は磁気ディスクを示し、磁気ディスク制御装置４０とはディスクインタフェース９０を介し接続される。磁気ディスク制御装置４０は、制御プロセッサ５０、内部メモリ６０で構成される。
【００１４】
図２のホストコンピュータにエラーを報告しないでリトライする回数を、時間で制限する制御方式のフローチャートに基づいて、上位ホストコンピュータにエラーを報告しないでリトライする回数を調節する方法について説明する。なお、図２においてＳ０１からＳ１３は各処理番号を示す。
【００１５】
まず、図１のリトライ時間測定機能７５（制御プログラムの一機能であって、プログラム処理により実行される。）において現在の時間を取得し、読み込みあるいは書き込みを開始した時間が、図１の内部メモリ６０内のホストに報告しないリトライ時間６５を超えたことを示すフラグをクリアする。ここで、図１の内部メモリ６０内のホストに報告しないリトライ時間６５は、ホストコンピュータ１０からＭＯＤＥ  ＳＥＬＥＣＴコマンド等によって指定することも、磁気ディスクの制御プログラム内に持つことも可能とする。現在のリトライ回数および現在までのリトライに要した時間もクリアする（Ｓ０１）。読み込みあるいは書き込みの１コマンドに対してリトライする回数は、ホストコンピュータ１０からＭＯＤＥ  ＳＥＬＥＣＴコマンドによって指定されたリトライ回数と、図１の内部メモリ６０内のホストコンピュータ１０に報告しないリトライ回数６１を加算した値である（Ｓ０２）。リトライ回数が１コマンドに対してリトライする回数を超えていないことを確認し（Ｓ０３）、読み込みあるいは書き込みのリトライを開始する（Ｓ０４）。リトライ回数が１コマンドに対してリトライする回数を超えていた場合は、エラーが回復できなかったことを示すアンコレクタブルエラーを報告する（Ｓ０５）。
【００１６】
読み込みあるいは書き込みのリトライを実施した後、リトライした回数を１加算する（Ｓ０７）。ここで、図１のリトライ時間測定機能７５において、ホストコンピュータ１０に報告しないリトライ回数以内に、今回のリトライを実施したことにより始めて、リトライに要した時間が、図１のホストコンピュータ１０に報告しないリトライ時間６５を超えたと判断した場合（Ｓ０６）、現在のリトライ回数のカウント値に、ホストコンピュータ１０に報告しないリトライ回数６１の値を代入する（Ｓ０８）。この処理によってリトライに要した時間が、図１のホストコンピュータ１０に報告しないリトライ時間６５を超えてエラーが回復した場合は、リカバードエラーを報告することが可能となる。読み込みあるいは書き込みを開始した時間が、図１の内部メモリ６０内のホストに報告しないリトライ時間６５を超えたことを示すフラグを設定する（Ｓ０９）。読み込みあるいは書き込みのリトライを実施したことによりエラーが回復したか否かを判断し（Ｓ１０）、エラーが回復しなかった場合は（Ｓ０３）に戻りリトライを続行するか否か判断する。エラーが回復した場合は、現在のリトライ回数がホストコンピュータ１０に報告しないリトライ回数内の場合は（Ｓ１１）、リトライによりエラーが回復したことを報告せず正常終了とする（Ｓ１２）。現在のリトライ回数がホストコンピュータ１０に報告しないリトライ回数を超えた場合は、リトライによりエラーが回復したことを示すリカバードエラーをホストコンピュータ１０に報告する（Ｓ１３）。
【００１７】
次に、図３のホストコンピュータにエラーを報告しないでリトライする回数を、エラー発生頻度で制限する制御方式のフローチャートに基づいて、上位ホストコンピュータにエラーを報告しないでリトライする回数を調節する方法について説明する。なお、図３においてＴ０１からＴ１２は各処理番号を示す。
【００１８】
図１のエラー発生頻度測定機能７６（制御プログラムの一機能であって、プログラム処理によって実行される。）にて、読み込みセクタ数、書き込みセクタ数、シークコマンド発行回数をカウントする。それと同時にそれぞれのエラー発生回数もカウントする。読み込み、書き込みあるいはシークが充分な回数行われた状態で、エラー発生回数との比率をとり、その値が図１の内部メモリ６０のエラー発生頻度閾値６６を超えていた場合（Ｔ０２）、ホストコンピュータに報告せずにリトライする回数を削減する（Ｔ０３）。ここで、充分な回数行われた状態とは、読み込み処理や書き込み処理では、例えば１０００万セクタ以上読み込み処理あるいは書き込み処理を実施した状態、シークコマンドでは、例えば１０００万回シーク動作を実行した状態を指す。図１の内部メモリ６０のエラー発生頻度閾値６６は、ホストコンピュータ１０からＭＯＤＥ  ＳＥＬＥＣＴコマンド等によって指定することも、磁気ディスクの制御プログラム内に持つことも可能とする。
【００１９】
図４のホストコンピュータにエラーを報告しないでリトライする回数を、読み込みあるいは書き込みの性能劣化により制限する制御方式のフローチャートに基づいて、上位ホストコンピュータにエラーを報告しないでリトライする回数を調節する方法について説明する。なお、図４においてＵ０１からＵ１２は各処理番号を示す。
【００２０】
図１の性能測定機能７７（制御プログラムの一機能であって、プログラム処理により実行される。）にて、読み込みコマンドあるいは書き込みコマンドを実行するために要した時間をシーク距離毎に、図６のコマンド実行時間測定結果テーブルに保持する。コマンド実行時間をシーク距離毎に保持するのは、シーク距離に応じてシーク時間分性能が変わるからである。ここで、磁気ディスク装置の記憶容量が７２ギガバイトだとすると、その記憶容量の１％に相当する０．７ギガバイト以内のシークを伴うコマンド実行時間から、５０％に相当する３６ギガバイトから１００％に相当する７２ギガバイトまでのシークを伴うコマンド実行時間まで、図６のように５段階のシーク距離に分けてコマンド実行時間を測定する。
【００２１】
読み込みあるいは書き込みコマンドが充分な回数実行されている状態、例えば、あるシーク距離のコマンド実行数が１万コマンドに達した時に、１万コマンドに達したシーク距離のコマンド実行時間の合計から、そのシーク距離範囲内のコマンドを実施した場合に、１秒間で処理できるコマンド数を算出する。その値が、磁気ディスク内に保持している読み込みコマンドあるいは書き込みコマンドの基本性能と比較して、図１の内部メモリ６０の許容できる性能劣化（単位は％）６７以上劣化している場合（Ｕ０２）、ホストコンピュータに報告せずにリトライする回数を削減する（Ｕ０３）。図１の内部メモリ６０の許容できる性能劣化（単位は％）６７は、ホストコンピュータ１０からＭＯＤＥ  ＳＥＬＥＣＴコマンド等によって指定することも、磁気ディスクの制御プログラム内に持つことも可能とする。
【００２２】
上記で述べた、ホストコンピュータにエラーを報告しないでリトライする回数を調節する方法は、その内のどれか一つの方法を選択し磁気ディスクの制御方式として採用することもできるが、図１の内部メモリ６０にホストコンピュータに報告しないリトライモード６２を設け、ホストコンピュータ１０からＭＯＤＥ  ＳＥＬＥＣＴコマンド等によってホストコンピュータに報告しないリトライモード６２を指定できることにより、リトライ制御方法を変更することが可能である。
【００２３】
ホストコンピュータに報告しないリトライ回数算出機能７１で、図１の内部メモリ６０にあるホストコンピュータに報告しないリトライモード６２を参照し、リトライに要した時間により、ホストコンピュータにエラーを報告しないでリトライする回数を調節するか、エラー発生頻度により調節するか、性能劣化により調節するかを切り分ける。このことにより顧客毎に要求に応じて磁気ディスク装置の制御プログラムを変更することなく、ＭＯＤＥ  ＰＡＲＡＭＥＴＥＲを変更するのみで、ホストコンピュータにエラーを報告しないでリトライする回数を調節する方法を変更することができる。
【００２４】
図５のホストコンピュータにエラーを報告しないでリトライする回数を、エラー発生頻度および、読み込みコマンドあるいは書き込みコマンドの性能劣化により制限し、かつリトライ時間によっても制限する制御方式のフローチャートに基づいて、上位ホストコンピュータにエラーを報告しないでリトライする回数を調節する方法について説明する。なお、図５においてＶ０１からＶ１４は各処理番号を示す。
【００２５】
エラー発生頻度が図１のエラー発生頻度閾値６６を超えている場合、または読み込みあるいは書き込みの性能が図１の許容できる性能劣化値以上に劣化している場合は、上位ホストコンピュータにエラーを報告しないでリトライする回数を削減する（Ｖ０３）。具体的には、通常、上位ホストコンピュータにエラーを報告しないでリトライする回数が３２回であるのに対し、１０回に削減する。１コマンド当りのトータルリトライ回数を、上位ホストコンピュータから指定されたリトライ回数１２８回と、上位ホストコンピュータにエラーを報告しないでリトライする回数１０回を足した値の１３８回とする（Ｖ０４）。上位ホストコンピュータにエラーを報告しないでリトライする回数を３２回から１０回に削減しても、位置付き系のエラーが多発したり、媒体系の読み込みあるいは書き込みエラーが複数セクタに跨って発生した場合には、その後、回数のカウントのみでのリトライ制御では、性能劣化となることも考えられる。そこで、本実施例では上位ホストコンピュータにエラーを報告しないでリトライする回数をリトライに要した時間によっても制限することとする。例をあげると、読み込みあるいは書き込みのリトライを５回実施した時点で、現在のリトライまでに要した時間が図１のホストに報告しないリトライ時間６５を超えた場合（Ｖ０８）、現在のリトライ回数を、本来は１加算して５回にすべき（Ｖ０９）ところを、上位ホストコンピュータにエラーを報告しないでリトライする回数である１０回にする（Ｖ１０）。この処理により、上位ホストコンピュータにエラーを報告しないでリトライする回数を削減できる。次のリトライでエラーが回復した場合を考えてみると、フラグは既に１となっているので（Ｖ０８）、リトライ回数を１加算して１１回とする（Ｖ０９）。リトライによりエラーが回復でき（Ｖ１１）、現在のリトライ回数（１１回）がホストに報告しないリトライ回数（１０回）を超えている（Ｖ１２）ので、リトライによってエラーが回復したことを示すリカバードエラーを報告する（Ｖ１４）。実際にはリトライを６回しか実施していないので、上位ホストコンピュータにエラーを報告しないでリトライ回数を１０回から５回に削減したこととなる。
【００２６】
【発明の効果】
磁気ディスク装置の記録密度向上に伴い、データの読み込みあるいは書き込みのエラー発生確率が上昇している。そのため、近年の磁気ディスク装置においては、上位ホストコンピュータにエラーを報告しないでリトライする回数を、磁気ディスクの制御プログラム内に持ち、その回数以内にエラーが回復できた場合は正常終了している。
【００２７】
データの読み込みあるいは書き込み時のエラー発生確率の上昇を補うため、上位ホストコンピュータにエラーを報告しないでリトライする回数を増加させたことにより、上位ホストコンピュータに対する応答は正常終了にも関わらず、応答時間がリトライを繰り返した時間分延びることが問題となっている。
【００２８】
磁気ディスク装置に記憶されているデータの読み込みあるいは書き込み時にエラーが発生した場合、上位ホストコンピュータにエラー報告しないでリトライする回数を調節することにより、上位ホストコンピュータにエラー報告することなくリトライを繰り返し、性能劣化を引き起こすことがない制御方式を提供する。
【図面の簡単な説明】
【図１】本発明の１実施例を示す磁気ディスク装置の構成図である。
【図２】ホストコンピュータにエラーを報告しないでリトライする回数を、時間で制限する制御方式のフローチャートである。
【図３】ホストコンピュータにエラーを報告しないでリトライする回数を、エラー発生頻度で制限する制御方式のフローチャートである。
【図４】ホストコンピュータにエラーを報告しないでリトライする回数を、読み込みあるいは書き込みの性能劣化により制限する制御方式のフローチャートである。
【図５】ホストコンピュータにエラーを報告しないでリトライする回数を、エラー発生頻度および、読み込みあるいは書き込みの性能劣化で制限し、かつリトライ時間によっても制限する制御方式のフローチャートである。
【図６】コマンド実行時間測定結果テーブル
【符号の説明】
１０  ホストコンピュータ
２０  磁気ディスク装置
３０  ホストインタフェース
４０  磁気ディスク制御装置
５０  制御プロセッサ
６０  内部メモリ
６１  ホストに報告しないリトライ回数保存テーブル
６２  ホストに報告しないリトライモード
６５  ホストに報告しないリトライ時間テーブル
６６  エラー発生頻度閾値テーブル
６７  許容できる性能劣化テーブル
７１  ホストに報告しないリトライ回数算出機能
７５  リトライ時間測定機能
７６  エラー発生頻度測定機能
７７  性能測定機能
９０  ディスクインタフェース
１００  磁気ディスク
【図１】
2004192718.tif 000003
【図２】
2004192718.tif 000004
【図３】
2004192718.tif 000005
【図４】
2004192718.tif 000006
【図５】
2004192718.tif 000007
【図６】
2004192718.tif 000008