(57)【特許請求の範囲】
【請求項１】
少なくとも１つのディスク装置と、
上位からの要求に応じて、前記ディスク装置のデータのリード／ライトを行う制御ユニットとを有し、
前記制御ユニットは、
前記ディスク装置のデータを格納するキャッシュメモリと、
前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受ける処理ユニットとを有し、
前記処理ユニットは、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行い、
前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断し、
前記ディスク装置からの応答に、エラーが含まれている場合には、前記リトライリードアクセスした前記ディスク装置へ、前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記リカバードリード応答時のリードデータとを比較し、前記ディスク装置の診断を実行する
ことを特徴とするストレージシステム。
【請求項２】
冗長系を構成する複数のディスク装置と、
上位からの要求に応じて、１の前記ディスク装置のデータのリード／ライトを行う制御ユニットとを有し、
前記制御ユニットは、
前記ディスク装置のデータを格納するキャッシュメモリと、
１の前記ディスク装置をリードアクセスし、且つ前記１のディスク装置からリードデータと応答結果を受ける処理ユニットとを有し、
前記処理ユニットは、前記１の前記デイスク装置からリードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記冗長系を構成する他のディスク装置に同一データを対象とするリトライリードアクセスを行い、
前記リトライリードアクセスの前記他のディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断し、前記上位に転送し、
前記リトライリードアクセスの実行後、前記一のディスク装置へ、前記一のディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記他のデイスク装置からのリードデータとを比較し、前記一のディスク装置の診断を実行する
ことを特徴とするストレージシステム。
【請求項３】
上位からの要求に応じて、少なくとも１つのディスク装置のデータのリード／ライトを行うストレージ制御装置において、
前記ディスク装置のデータを格納するキャッシュメモリと、
前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受ける処理ユニットとを有し、
前記処理ユニットは、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断し、
前記ディスク装置からの応答に、エラーが含まれている場合には、前記リトライリードアクセスした前記ディスク装置へ、前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記リカバードリード応答時のリードデータとを比較し、前記ディスク装置の診断を実行する
ことを特徴とするストレージ制御装置。
【請求項４】
上位からの要求に応じて、冗長系を構成する複数のディスク装置の内、１の前記ディスク装置のデータのリード／ライトを行うストレージ制御装置において、
前記ディスク装置のデータを格納するキャッシュメモリと、
１の前記ディスク装置をリードアクセスし、且つ前記１のディスク装置からリードデータと応答結果を受ける処理ユニットとを有し、
前記処理ユニットは、前記１の前記デイスク装置からリードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記冗長系を構成する他のディスク装置に同一データを対象とするリトライリードアクセスを行い、
前記リトライリードアクセスの前記他のディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断し、前記上位に転送し、
前記リトライリードアクセスの実行後、前記一のディスク装置へ、前記一のディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記他のデイスク装置からのリードデータとを比較し、前記一のディスク装置の診断を実行する
ことを特徴とするストレージ制御装置。
【請求項５】
上位からの要求に応じて、冗長系を構成する複数のディスク装置の内、少なくとも１つのディスク装置のデータのリード／ライトを行うストレージ制御方法において、
１の前記ディスク装置をリードアクセスし、且つ前記１のディスク装置からリードデータと応答結果を受けるステップと、
前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記冗長系を構成する他のディスク装置に同一データを対象とするリトライリードアクセスを行うステップと、
前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断するステップと、
前記リトライリードアクセスの実行後、前記一のディスク装置へ、前記一のディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記他のデイスク装置からのリードデータとを比較し、前記一のディスク装置の診断を実行するステップとを有する
ことを特徴とするストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムの外部記憶装置として用いられるストレージシステム、ストレージ制御装置及びストレージ制御方法に関し、特に、複数のディスクドライブのデータをリード／ライト制御するストレージシステム、ストレージ制御装置及びストレージ制御方法に関する。
【背景技術】
【０００２】
近年、様々なデータが電子化され、且つコンピュータ上で扱われるようになるに従い、大量のデータを安全に格納することのできるストレージシステムが、広く利用されている。このストレージシステムでは、ホストコンピュータのアクセスにより、大量のデータをリード又はライトする。
【０００３】
このようなストレージシステムは、多数の記憶装置と、これらを制御する制御装置とからなる。特に、記憶装置として、大容量、安価、小型なハード・ディスク・ドライブ等のディスクドライブが、利用される。制御装置は、ホストや内部処理の要求により、要求されたデータを格納する記憶装置をアクセスして、データのリード／ライトを実行する。
【０００４】
このようなストレージシステムにおいて、リードアクセスでは、記憶装置の記憶媒体にライトされているデータをリードする。即ち、制御装置は、リードアクセスコマンドを受けると、対象データを格納する記憶装置を求め、その記憶装置に、対象データのリード動作を指示するリードコマンドを発行する。
【０００５】
記憶装置は、リードコマンドを解析し、データの物理的格納位置を求め、その位置のデータを読み出し、制御装置へ転送する。例えば、ディスクドライブでは、記憶媒体の対象データの格納位置に、ヘッドを位置付け、ヘッドで、その位置のデータを読み出す。
【０００６】
このような記憶装置のデータは、エラーチエックコード（ＥＣＣ）が付加されており、読み出したデータのエラーチエックコードをチエックし、リード動作の正当性を判定している。そして、エラーチエック結果が良好であり、リード動作が的確な場合には、読み出したデータを制御装置へ転送する。更に、エラー訂正可能な場合は、エラー訂正して、エラー訂正したデータを転送する。
【０００７】
一方、読み出したデータにエラーが検出され、訂正不可である場合には、再度、記憶媒体のその物理的位置のデータを読み出し（これをリトライという）、同様に、エラーチエック、エラー訂正する。そして、リード動作が正しい場合に、そのデータを同様に転送する。即ち、読み出しは、必ずしも１回の読み出しで、媒体の指定されたデータが正しく読み出されるとは限らない。この事実を、制御装置に転送するため、例えば、ＳＣＳＩ（Small Computer System Interface）では、１回のリードで、リード動作が的確な場合には、「ｇｏｏｄ」を，リトライで、リード動作が的確な場合には、「recovered error」を、ステータスとして、制御装置に、データとともに、報告している（例えば、非特許文献１参照）。
【非特許文献１】「ＳＣＳＩ−２  詳細解説」（１９９５年８月１日発行、ＣＱ出版株式会社）（１７０乃至１７２ページ）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来技術では、記憶装置（ディスクドライブ）へのリード要求に対し、制御装置は、Good応答とリカバードエラー応答の両方が、正常な結果として、扱っていた。このリカバードエラー応答は、１回のリードで、エラーを検出しない場合以外に、即ち、ディスクドライブ内部のリトライ等で、データをリードできた場合に返すステータスである。
【０００９】
しかしながら、リカバードエラー応答時に、前回ライトしたデータとは、違うデータがリードされ、転送される可能性があり、Good応答のリードデータに比較して、リカバードエラー応答のリードデータの信用性が低いという問題が生じている。
【００１０】
例えば、ライトコマンドによるライト動作は、通常、記憶媒体の物理位置の領域を消去しないで、以前のデータに、今回のライトデータを上書きする。これにより、消去やベリファイを行わないため、ライト速度が向上する。
【００１１】
特に、ディスクドライブでは、ヘッドを指定された物理位置に位置付け、リード／ライト動作するため、各リード、ライト時に、若干のリード、ライト位置のずれが、存在する。このため、ライトする際に、１つのトラックで、前回のライト時と今回のライト時のヘッド位置が許容範囲内でずれていても、今回のライト時のデータで、前回のライト時のデータを、完全に上書きできないことがある。又、ライト位置によっては、隣接トラックの影響を受け、リード時に、そのライトデータを正確にリードできないことも考えられる。
【００１２】
この場合、次回のリード時に、１回のリードで、リードできない場合には、一般に、ヘッドをオフセットして、リトライリード動作を行う。又は、１回目のリードで、エラーチエックにより、エラー検出され、エラー訂正できるものは、エラー訂正して、エラー訂正したデータを転送する。
【００１３】
そして、エラー訂正できない場合には、リトライ動作を行い、再度、ヘッドを位置付け、記憶媒体からデータを読み取り、エラーチエックし、エラーを検出しない場合や、エラーを検出しても、エラー訂正できる場合には、これらを、リードデータとして、転送する。
【００１４】
このようなリードエラーを検出しても、リトライやエラー訂正で救済して、データを転送するが、これらのリードデータは、前述のように、隣接トラックのデータの影響や上書きの不完全さにより、リードされたデータが、ライトしたデータと異なる可能性がある。これらの現象は、ごくたまに、発生し、一過性のものであるが、リードデータを処理する制御装置やホストでは、影響が大きい。
【００１５】
従って、本発明の目的は、リカバードリードエラー応答時のリードデータの信頼性を向上するためのストレージシステム、ストレージ制御装置及びストレージ制御方法を提供することにある。
【００１６】
又、本発明の他の目的は、リカバードリードエラー応答時に、リードデータの正当性を判断するためのストレージシステム、ストレージ制御装置及びストレージ制御方法を提供することにある。
【００１７】
更に、本発明の別の目的は、リカバードリードエラー応答時に、リードデータの異常を検出するためのストレージシステム、ストレージ制御装置及びストレージ制御方法を提供することにある。
【００１８】
更に、本発明の別の目的は、リカバードリードエラー応答時に、リードデータの異常を検出し、リカバードリードエラーの再度の発生を防止するためのストレージシステム、ストレージ制御装置及びストレージ制御方法を提供することにある。
【課題を解決するための手段】
【００１９】
この目的の達成のため、本発明の少なくとも１つのディスク装置と、上位からの要求に応じて、前記ディスク装置のデータのリード／ライトを行う制御ユニットとを有し、前記制御ユニットは、前記ディスク装置のデータを格納するキャッシュメモリと、前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受ける処理ユニットとを有し、前記処理ユニットは、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断し、前記ディスク装置からの応答に、エラーが含まれている場合には、前記リトライリードアクセスした前記ディスク装置へ、前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記リカバードリード応答時のリードデータとを比較し、前記ディスク装置の診断を実行する。
【００２０】
又、本発明のストレージ制御装置は、上位からの要求に応じて、少なくとも１つのディスク装置のデータのリード／ライトを行うストレージ制御装置において、前記ディスク装置のデータを格納するキャッシュメモリと、前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受ける処理ユニットとを有し、前記処理ユニットは、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断し、前記ディスク装置からの応答に、エラーが含まれている場合には、前記リトライリードアクセスした前記ディスク装置へ、前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記リカバードリード応答時のリードデータとを比較し、前記ディスク装置の診断を実行する。
【００２１】
又、本発明のストレージ制御方法は、上位からの要求に応じて、冗長系を構成する複数のディスク装置の内、少なくとも１つのディスク装置のデータのリード／ライトを行うストレージ制御方法において、１の前記ディスク装置をリードアクセスし、且つ前記１のディスク装置からリードデータと応答結果を受けるステップと、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記冗長系を構成する他のディスク装置に同一データを対象とするリトライリードアクセスを行うステップと、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断するステップと、前記リトライリードアクセスの実行後、前記一のディスク装置へ、前記一のディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記他のデイスク装置からのリードデータとを比較し、前記一のディスク装置の診断を実行するステップとを有する。
【００２３】
更に、本発明では、好ましくは、前記ディスク装置は、冗長系を構成する複数のディスク装置で構成され、前記処理ユニットは、１の前記ディスク装置へのリードアクセスの応答が前記リカバードリードエラー応答であることに応じて、前記冗長系を構成する他の前記ディスク装置に、同一データを対象とするリトライリードアクセスを行う。
【００２４】
更に、本発明では、好ましくは、前記処理ユニットは、前記冗長系を構成する他の前記ディスク装置に、リトライリードアクセスを得たリードデータが、エラー応答を含まないことを判定し、前記リトライリードアクセスで得たリードデータを正当と判定し、外部に転送する。
【００２５】
更に、本発明では、好ましくは、前記処理ユニットは、前記リトライリードアクセスの実行後、前記一のディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記他のディスク装置からのリードデータとを比較し、前記一のディスク装置の診断を実行する。
【００２６】
更に、本発明では、好ましくは、前記処理ユニットは、前記比較結果が良好である時は、前記一のディスク装置の前記対象領域の交代処理を実行する。
【００２７】
更に、本発明では、好ましくは、前記処理ユニットは、前記比較結果が良好でない時は、前記一のディスク装置の切り離し処理を実行する。
【００２８】
更に、本発明では、好ましくは、前記処理ユニットは、前記カバードリードエラー応答に応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断する。
【００２９】
更に、本発明では、好ましくは、前記処理ユニットは、前記リトライリードアクセスの前記ディスク装置からの再度リカバードリードエラー応答を受けたことに応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを再度行い、エラーが含まれないことを判別し、且つこのリードデータと前記リカバードリードエラー時のリードデータとを比較し、前記ディスク装置の診断を実行する。
【００３０】
更に、本発明では、好ましくは、前記処理ユニットは、前記比較結果が良好である時は、前記ディスク装置の前記対象領域の交代処理を実行し、前記リードデータを外部へ転送する。
【００３１】
更に、本発明では、好ましくは、前記処理ユニットは、前記比較結果が良好でない時は、前記ディスク装置の前記対象領域の交代処理を実行し、且つ前記外部にエラー通知する。
【発明の効果】
【００３２】
本発明では、初回のリカバードリードエラー時に、同様のコマンドによるリトライを実施し、リトライも含めリードコマンドに対し、エラーが発生しなかった場合は、そのデータを正しいと判断する。このため、リカバリードエラー発生時の不確かなデータ（被偽データ）を、ディスクのリトライにより、回復し、ホスト等の外部へ正確なリードデータを転送できる。又、リカバードエラーＬＢＡを含む要求範囲に，診断を実施するので、再度のリカバリードエラーの発生を低減できる。更に、この診断に、要求ディスクのリード処理を、キャッシュを無効とするリードコマンドで実行するため、要求ディスク自体のデータを直接リードでき、診断が確実となる。又、同一又はペアディスクのリードデータと比較するため、簡単に、要求ディスクの対象データの診断ができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の実施の形態を、ストレージシステム、リード処理の第１の実施の形態、リード処理の第２の実施の形態、他の実施の形態の順で説明するが、本発明は、かかる実施の形態に限られず、種々の変形が可能である。
【００３４】
［ストレージシステム］
図１は、本発明のストレージシステムの一実施の形態の全体構成図、図２は、図１の主要部の詳細構成図、図３は、図１のディスクドライブの構成図、図４は、リードコマンドのフォーマット図である。
【００３５】
図１に示すように、ストレージシステムは、主要ユニットであるキャッシュメモリとキャッシュ制御部とをそなえるキャッシュマネージャ（図中、ＣＭと表記）１０−１〜１０−４、ホストコンピュータ（図示略）とのインターフェイスであるチャネルアダプタ（図中、ＣＡと表記）１１−１〜１１−８、複数のディスクドライブを備えるディスクエンクロージャ１２−１〜１２−４、及び、このディスクエンクロージャ１２−１〜１２−４とのインターフェイスであるデバイスアダプタ（図中、ＤＡと表記）１３−１〜１３−８を備える。
【００３６】
そして、キャッシュマネージャ１０−１〜１０−４，チャネルアダプタ１１−１〜１１−８，及びデバイスアダプタ１３−１〜１３−８間を互いに接続し、これら主要ユニット間のデータ転送と通信を行うルータ（Router；図中、ＲＴと表記）１４−１〜１４−４とが備えられている。
【００３７】
このストレージシステムは、キャッシュマネージャ１０−１〜１０−４が４つそなえられ、これらのキャッシュマネージャ１０−１〜１０−４に対応して４つのルータ１４−１〜１４−４が備えられている。各キャッシュマネージャ１０−１〜１０−４と各ルータ１４−１〜１４−４とは、１対１で相互に接続されている。これによって、複数のキャッシュマネージャ１０−１〜１０−４間の接続が冗長化され、可用性が高められている。
つまり、１つのルータ１４−１の故障した場合にも、別のルータ１４−２，１４−３，１４−４を経由することで、複数のキャッシュマネージャ１０−１〜１０−４間の接続は確保されており、かかる場合にも、ストレージシステムは通常の動作を継続することができる。
【００３８】
また、このストレージシステムは、各ルータ１４−１〜１４−４に、２つのチャネルアダプタ１１−１，１１−８と２つのデバイスアダプタ１３−１〜１３−８とが接続されている。従って、ストレージシステムは、合計８つのチャネルアダプタ１１−１〜１１−８と合計８つのデバイスアダプタ１３−１〜１３−８とを備えている。
これらのチャネルアダプタ１１−１〜１１−８及びデバイスアダプタ１３−１〜１３−８は、キャッシュマネージャ１０−１〜１０−４とルータ１４−１〜１４−４との相互接続により、全てのキャッシュマネージャ１０−１〜１０−４との間で通信が可能になっている。
【００３９】
このチャネルアダプタ１１−１〜１１−４は、例えば、ファイバチャネルやEthernet（登録商標）によって、複数のディスクに保持されたデータを処理対象とするホストコンピュータ（図示略）に接続されている。又、デバイスアダプタ１３−１〜１３−８は、例えば、ファイバチャネルによって、ディスクエンクロージャ１２の各ディスクドライブに接続されている。
【００４０】
そして、チャネルアダプタ１１−１〜１１−８とキャッシュマネージャ１０−１〜１０−４との間、及びデバイスアダプタ１３−１〜１３−８とキャッシュマネージャ１０−１〜１０−４との間では、ホストコンピュータからのユーザデータだけではなく、ディスクアレイ装置の内部の動作の一貫性を保つための様々な情報のやり取り（例えば、複数のキャッシュメモリ間のデータのミラーリング処理）がなされる。
【００４１】
そのため、キャッシュマネージャ１０−１〜１０−４，チャネルアダプタ１１―１〜１１−８及びデバイスアダプタ１３−１〜１３−８と、ルータ１４−１〜１４−４との間は、ディスクアレイ装置とホストコンピュータとの間や、ディスク装置との間よりも低いレイテンシ（速い応答速度）を実現できるインターフェイスを介して接続されている。例えば、PCI（Peripheral Component Interconnect）バスのように、ＬＳＩ（Large Scale Integration）やプリント基板の間を接続するために設計されたバスである。
【００４２】
さらに、ディスクエンクロージャ１２−１〜１２−４は、２つのファイバチャネルのポートを有し、各ポートには異なるルータ１４−１〜１４−４配下に属するデバイスアダプタ１３−１〜１３−８が接続される。これにより、デバイスアダプタ１３−１〜１３−８の故障時、もしくはルータ１４−１〜１４−４の故障時にも、キャッシュマネージャ１０−１〜１０−４からの接続が切断されないようになっている。
【００４３】
このストレージシステムは、一般にキャッシュメモリを内蔵することにより、データへのアクセス時間を短くすることを可能にしている。又、ＲＡＩＤ技術を採用することができる。例えば、複数のディスクに同じデータを記憶させる(RAID-1)、パリティ情報をディスクに分散して記憶させる(RAID-5)などの手法により信頼性を高めている。更に、ストレージシステムの多くは、データに対してチェックコードを付加することにより、更にデータの保証を行い、信頼性を高める手法が採用されている。
【００４４】
図２に示すように、デバイスアダプタ１３（１３−１〜１−８を総称する）は、ディスクエンクロージャ１２−１（又は１２−２〜１２−４）と接続するためのファイバーチャネルチップ３０と、ＤＭＡエンジン４０を有するインターフェイス回路３２と、ＣＰＵ３４と、メモリコントローラ３６と、キャッシュメモリ３８とを有する。ＣＰＵ３４は、ファイバーチャネルチップ３０とメモリコントローラ３６を操作して、後述するディスクインターフェイス制御や、ホストとのリード／ライト処理を行う。
【００４５】
キャッシュマネージャモジュール１０（１０−１〜１０−４を総称する）は、２つのＣＰＵ２０、２２と、キャッシュメモリ２６と、ブリッジ回路の役目も果たすメモリコントローラ２４とを有し、後述するアクセス処理を行う。ルータ１４（１４−１〜１４−４を総称）は、スイッチ機能を有する他に、ＤＭＡエンジン１５を搭載する。又、ルータ１４は、チャネルアダプタ（チャネルアダプタ）１１（１１−１から１１−８を総称）にも接続される。
【００４６】
キャッシュメモリ３８，２６は、ＤＤＲ（Double Data Rate）のＤＲＡＭ（Dynamic Random Access Memory）で構成され、アドレスバスＡ−ＢＵＳ（例えば、８ビット）でアドレスが指定され、データバスＤ−ＢＵＳで、データをやりとりする。
【００４７】
次に、上述の構成において、ホストコンピュータがデータを格納する（ライトする）時のストレージシステムの動作を説明する。ホストコンピュータがディスクへ格納するデータは、まずチャネルアダプタ１１へ送信される。チャネルアダプタ１１は、デバイスアダプタ１３と同様の構成を有す。
【００４８】
チャネルアダプタ１１は、受信したデータを、内部メモリに書き込み、ホストからのデータ受信を完了すると、内部のＤＭＡエンジンを起動し、内部メモリのライトデータ（受信データ）を読み出し、ルータ１４を介し、キャッシュマネージャ１０のメモリコントローラ２４に、データにブロックチェックコード(BCC)を付加した上で、転送する。
【００４９】
メモリコントローラ２４は、ＣＰＵ２０，２２の制御に従い、キャッシュメモリ２６に、転送データを格納する。その後に、ＤＭＡエンジン１５を起動して，図１のように、他のキャッシュマネージャ１０のメモリコントローラ２４へ当該データを転送する。これにより、ミラーリング処理を行う。
【００５０】
ミラーリングが正常に完了すると、キャッシュマネージャ１０は、チャネルアダプタ１１に、通知を行い、チャネルアダプタ１１は、ホストコンピュータにデータの格納を正常に終了したことを知らせる。更に、キャッシュマネージャ１０は、内部シーケンスに従い、デバイスアダプタ１３を介し、図１の磁気ディスクエンクロージャ１２−１に、キャッシュメモリ２６内のライトデータをライトバックし、磁気ディスクエンクロージャ１２−１にデータを格納する。
【００５１】
次に、ホストコンピュータからリード要求が発行された場合、まず、ホストコンピュータからのリード要求をチャネルアダプタ１１が受信する。次いで、リード要求を受信したチャネルアダプタ１１は、担当のキャッシュマネージャ１０に対して当該リード要求の対象データの要求を行う。
【００５２】
そして、担当のキャッシュマネージャ１０は、自身のキャッシュメモリ２６内に当該対象データがあれば、当該対象データが保持されたキャッシュメモリ２６のアドレスを、チャネルアダプタ１１、ルータ１４に通知するとともに、ルータ１４のＤＭＡエンジン１５に読出し指示をする。これにより、ルータ１４は、ＤＭＡエンジン１５を起動し、キャッシュメモリ２６の対象データを、読み出し、チャネルアダプタ１１の内部メモリに転送する。その後、内部のＤＭＡエンジンを起動し、内部メモリの対象データを、ホストへ転送する。
【００５３】
一方、担当のキャッシュマネージャ１０のキャッシュメモリ２６内に当該対象データがない場合、デバイスアダプタ１３に対してディスクエンクロージャ１２−１から当該対象データを読み出して、キャッシュメモリ２６へ転送するようにリード要求する。デバイスアダプタ１３では、ＣＰＵ３４が、インターフェイス回路３２、ＦＣ回路３０を介し、ディスクエンクロージャ１２−１に、図４で説明するリードコマンドを発行する。
ディスクエンクロージャ１２−１から読み出されたリードデータは、ＦＣ回路３０、インターフェイス回路３２、メモリコントローラ３６を介し、キャッシュメモリ３８に格納される。キャッシュマネージャ１０のＣＰＵ２０，２２は、デバイスアダプタ１３から読み出し完了の通知を受けると、ＤＭＡエンジン１５を起動して、キャッシュメモリ３８のリードデータを、キャッシュメモリ２６に書き込み、キャッシュマネージャ１０に対して当該対象データの書き込みが終了したことを通知する。
【００５４】
更に、キャッシュマネージャ１０は、デバイスアダプタ１３から当該対象データのキャッシュメモリ２６への書き込みが終了したことを示す通知を受け取ると、キャッシュマネージャ１０は、チャネルアダプタ１１に対して当該対象データの準備ができたことを通知するとともに、ルータ１４に当該対象データの読み出しを指示する。
【００５５】
これにより、ルータ１４は、ＤＭＡエンジン１５を起動し、キャッシュメモリ２６の対象データを、読み出し、チャネルアダプタ１１に転送する。その後、チャネルアダプタ１１は、対象データ（リードデータ）を、ホストへ転送する。
【００５６】
図３は、ディスクエンクロージャ１２−１（１２−２〜１２−４）内のディスクドライブの構成図であり、ハード・ディスク・ドライブ（ＨＤＤ）６０を例に説明する。ハード・ディスク・ドライブ６０は、ディスクエンクロージャ１２−１（１２−２〜１２−４）に設けられた一対のＦＣケーブル５０，５２に接続される。このため、一対のＦＣインターフェイス回路６２，６４を有する。又、磁気ディスク７２と、磁気ヘッド７６を先端に有するアクチュエータ７４とを有するドライブ機構７０を制御する制御回路６６と、リードデータ及びライトデータを格納するキャシュメモリ６８とを有する。
【００５７】
このＨＤＤ６０においても、磁気ディスク７２からリードしたデータは、キャッシュメモリ６８に格納しておき、デバイスアダプタ１３に転送するとともに、次回の同一データに対するリードコマンドに対し、磁気ディスク７２をアクセスすることなく、キャッシュメモリ６８からデータを、デバイスアダプタ１３に転送する。又、デバイスアダプタ１３のライトデータは、一旦、キャッシュメモリ６８に格納して、ライト完了を通知した後、磁気ディスク７２に書き込む。
【００５８】
図４は、ＳＣＳＩ−２でのリードコマンドのフォーマットの説明図である。リードコマンドは、「０」〜「９」の１０バイトで構成され、０バイト目が、オペレーションコード（リードオペレーション）、１バイト目が、ＬＵＮ（論理ユニット番号）とキャッシュ制御情報ＤＰＯ，ＦＵＡ、２バイト目から５バイト目が、論理ブロックアドレス、７バイト目と８バイト目が、転送データ長である。
【００５９】
この内、ＦＵＡ（Ｆｏｒｃｅ  Ｕｎｉｔ  Ａｃｃｅｓｓ）フラグは、そのコマンドの実行時に、媒体アクセスを強制するかを指定する。例えば、ＦＵＡ＝「０」であるときは、指定されたデータが、キャッシュにヒットしていれば、媒体をアクセスすることなく、キャッシュ６８からデータを転送する。一方、ＦＵＡ＝「１」であるときは、そのコマンドは、必ず媒体７２をアクセスすることを指定し、リードコマンドでは、要求されたデータが、キャッシュにヒットしていても、媒体７２からデータを読み出す。
【００６０】
［リード処理の第１の実施の形態］
図５及び図６は、本発明の第１の実施の形態のリード処理フロー図、図７は、その動作説明図である。この第１の実施の形態は、図７に示すように、この実施の形態は、ＲＡＩＤ１等の冗長性ある場合のリード処理である。即ち、ディスク６０Ａのデータのコピーを、ペアのディスク６０Ｂに格納した例である。
【００６１】
以下、図７を参照して、図５及び図６により、冗長性のあるシステムのリード処理を説明する。
【００６２】
（Ｓ１０）先ず、キャッシュモジュール（以下、ＣＭという）１０は、ＤＡ１３を介し、要求ディスク６０Ａ(Ｐ１)へリード要求を発行する。
【００６３】
（Ｓ１２）ＣＭ１０は、ＤＡ１３を介するディスク６０Ａからの応答を受信したかを判定し、応答を受信した場合には、応答に「リカバードリードエラー」が含まれるかを判定する。「ｇｏｏｄ」応答であれば、前述のように、リードデータをキャッシュメモリ２６に格納した後、ホストへ転送する通常の転送プロセスを実行し、終了する。
【００６４】
（Ｓ１４）一方、ＣＭ１０は、リカバードリードエラー応答であると判定すると、ディスク６０Ａからのリードデータを、キャッシュメモリ２６にステージングする。
【００６５】
（Ｓ１６）次に、ＣＭ１０は、ＤＡ１３を介し、要求ディスク６０Ａ(Ｐ１)のペアのディスク６０Ｂ（Ｓ１）へリード要求（リトライ）を発行する。
【００６６】
（Ｓ１８）ＣＭ１０は、ＤＡ１３を介するディスク６０Ｂからの応答を受信したかを判定し、応答を受信した場合には、応答が、「ｇｏｏｄ」応答であるかを判定する。「ｇｏｏｄ」応答でなければ、「リカバードエラー」応答のため、エラー処理を実行して、終了する。
【００６７】
（Ｓ２０）一方、ＣＭ１０は、「ｇｏｏｄ」応答であると判定すると、ディスク６０Ｂからのリードデータを、キャッシュメモリ２６のディスク６０Ａのリードデータに上書きする。そして、ＣＭ１０は、この「ｇｏｏｄ」応答のリードデータをホストへ転送する。
【００６８】
（Ｓ２２）次に、ＣＭ１０は、ホストに非同期に、要求ディスク６０Ａの診断を開始する。先ず、キャッシュメモリ２６に診断用ワーク領域を確保する。
【００６９】
（Ｓ２４）次に、ＣＭ１０は、ＤＡ１３を介し、要求ディスク６０Ａ(Ｐ１)のペアのディスク６０Ｂ（Ｓ１）へ再度リード要求を発行する。
【００７０】
（Ｓ２６）ＣＭ１０は、ＤＡ１３を介するディスク６０Ｂからの応答を受信したかを判定し、応答を受信した場合には、応答が、「ｇｏｏｄ」応答であるかを判定する。「ｇｏｏｄ」応答でなければ、「リカバードエラー」応答のため、エラー処理を実行して、終了する。
【００７１】
（Ｓ２８）一方、ＣＭ１０は、「ｇｏｏｄ」応答であると判定すると、ディスク６０Ｂからのリードデータを、キャッシュメモリ２６の獲得したワーク領域に格納する。
【００７２】
（Ｓ３０）そして、ＣＭ１０は、ＤＡ１３に、ＲＡＩＤ整合要求 (要求ディスク６０ＡのリードコマンドはＦＵＡ＝「１」, 要求範囲は、ステップＳ２４と同じ)を発行する。図７に示すように、ＤＡ１３は、この整合要求に応じて、要求ディスク６０Ａ(Ｐ１)へ再度リード要求を発行する。この時、図４で説明したように、ディスク６０Ａでは、リードコマンドのＦＵＡは、「１」（キャッシュ無効）であるから、ステップＳ１０のリードコマンドで、ディスク６０Ａのキャッシュメモリ６８に格納されたリードデータは、無視され、直接、磁気ディスク７２からリードする。そして、ＤＡ１３は、ＣＭ１０のキャッシュメモリ２６のワーク領域のディスク６０ＢのリードデータＳ１  ｄａｔａと、ディスク６０ＡのリードデータＰ１  ｄａｔａとを比較し、比較一致（ｇｏｏｄ），比較不一致（ｅｒｒｏｒ）を、整合要求の応答として、ＣＭ１０へ返す。
【００７３】
（Ｓ３２）ＣＭ１０は、ＤＡ１３からの整合要求に対する応答を受信したかを判定し、応答を受信した場合には、応答が、「ｇｏｏｄ」応答であるかを判定する。「ｇｏｏｄ」応答であれば、ディスク６０Ａの当該領域の交代処理を行うアサイン命令と、交代した領域のライト及びベリファイコマンドを、ＤＡ１３を介しディスク６０Ａに発行する。ディスク６０Ａは、その領域の交代処理を実行し、且つベリファイ動作して、交代処理が確実であるかを判断する。一方、ｅｒｒｏｒ応答であれば、ディスク６０Ａを切り離し、終了する。
【００７４】
このように、ＲＡＩＤ１系に関しては、要求ディスク（Ｐ１）で、リカバードエラーが発生した場合は、直ちに、ＣＭ１０でペアディスク（Ｓ１）へのリトライを実施し、キャッシュへステージングを完了する。これにより、リカバリードエラー発生時の不確かなデータ（被偽データ）を、ペアディスクのリトライにより、回復し、ホストへ正確なリードデータを転送できる。
【００７５】
そして、リカバードエラーＬＢＡを含む要求範囲に，診断を実施し，結果によって，要求ディスクＰ１の交代処理や切離しを実施する。このため、再度のリカバリードエラーの発生を低減できる。
【００７６】
この診断に、要求ディスクのリード処理を、キャッシュを無効とするリードコマンドで実行するため、要求ディスク自体のデータを直接リードでき、診断が確実となる。又、ペアディスクのリードデータと比較するため、簡単に、要求ディスクの対象データの診断ができる。
【００７７】
更に、診断前に、ホストへ正確なデータを転送するため、ホストへの応答速度をそれ程、損なうことなく、非同期で、診断できる。
【００７８】
図８は、図５及び図７の処理を、ＲＡＩＤ５系で、実行する変形例である。図８に示すように、ＲＡＩＤ５系は、４つのディスク６０Ａ，６０Ｂ，６０Ｃ，６０Ｄに、データを分散して、格納する。従って、ディスク６０Ａを、ディスクＰ１と、ディスク６０Ｂ，６０Ｃ，６０Ｄを、ディスクＳ１と対応させることにより、同様の処理で実現できる。但し、ステップＳ２８は、Regeneration Readコマンドを、ＤＡ１３に発行し、ディスク６０Ｂ，６０Ｃ，６０Ｄのデータを読み出し、ＸＯＲにより、ディスク６０Ａの等価データを作成する。
【００７９】
このように、初回のリカバードエラー発生時にリトライを行う。冗長系では、ペアディスクへのリトライを行い、リトライも含めリードコマンドに対し、エラーが発生しなかった場合は、そのデータを正しいと判断する。このため、リカバリードエラー発生時の不確かなデータ（被偽データ）を、ペアディスクのリトライにより、回復し、ホストへ正確なリードデータを転送できる。
【００８０】
又、この初回のリカバードエラー発生時は、ＦＵＡイネーブル(媒体より再読み込み)の設定により、同様コマンド(分割しない)によるリトライを実施する機能を追加し、ペアディスクのリードデータとのデータ比較による診断を行う。比較が、一致した場合のみ、要求ディスクが正常と判断する。尚、一回、リカバードエラーが発生しているため、再度、リカバードエラーが発生する可能性があるから、交代処理し、再度のリカバードエラーを防止する。しかも、ライト・ベリファイを行い、交代処理データのリード／ライトを保証する。
【００８１】
一方、比較一致しない場合には、要求ディスクの切り離しを行い、ディスク自体の診断や交換に供する。
【００８２】
［リード処理の第２の実施の形態］
図９及び図１０は、本発明の第２の実施の形態のリード処理フロー図、図１１は、その動作説明図である。この第２の実施の形態は、図１１に示すように、この実施の形態は、ＲＡＩＤ０の冗長性のない場合のリード処理である。即ち、ディスク６０のデータのコピーを、他のディスク６０に格納していない例である。
【００８３】
以下、図１１を参照して、図９及び図１０により、冗長性のないシステムのリード処理を説明する。
【００８４】
（Ｓ４０）先ず、キャッシュモジュール（以下、ＣＭという）１０は、ＤＡ１３を介し、要求ディスク６０(Ｐ１)へリード要求を発行する。
【００８５】
（Ｓ４２）ＣＭ１０は、ＤＡ１３を介するディスク６０からの応答を受信したかを判定し、応答を受信した場合には、応答に「リカバードリードエラー」が含まれるかを判定する。「ｇｏｏｄ」応答であれば、前述のように、リードデータをキャッシュメモリ２６に格納した後、ホストへ転送する通常の転送プロセスを実行し、終了する。
【００８６】
（Ｓ４４）一方、ＣＭ１０は、リカバードリードエラー応答であると判定すると、ディスク６０からのリードデータを、キャッシュメモリ２６にステージングする。
【００８７】
（Ｓ４６）次に、ＣＭ１０は、ＤＡ１３を介し、要求ディスク６０(Ｐ１)へリード要求（リトライ）を発行する。この要求ディスク６０のリードコマンドはＦＵＡ＝「１」, 要求範囲は、ステップＳ４０と同じである。図４で説明したように、ディスク６０では、リードコマンドのＦＵＡは、「１」（キャッシュ無効）であるから、ステップＳ４０のリードコマンドで、ディスク６０のキャッシュメモリ６８に格納されたリードデータは、無視され、直接、磁気ディスク７２からリードする。
【００８８】
（Ｓ４８）ＣＭ１０は、ＤＡ１３を介するディスク６０Ｂからの応答を受信したかを判定し、応答を受信した場合には、応答が、「ｇｏｏｄ」応答であるかを判定する。「ｇｏｏｄ」応答でなければ、「リカバードエラー」応答のため、ステップＳ５２に進む。
【００８９】
（Ｓ５０）一方、ＣＭ１０は、「ｇｏｏｄ」応答であると判定すると、ディスク６０からのリードデータを、キャッシュメモリ２６のディスク６０のリードデータに上書きする。そして、ＣＭ１０は、この「ｇｏｏｄ」応答のリードデータをホストへ転送し、終了する。
【００９０】
（Ｓ５２）次に、ステップＳ４８で、リカバードエラーと判定すると、ＣＭ１０は、ホストに同期した状態で、要求ディスク６０の診断を開始する。先ず、ＣＭ１０は、要求ディスク６０からのリードデータを、キャッシュメモリ２６の前回のリードデータに上書きする。
【００９１】
（Ｓ５４）そして、ＣＭ１０は、ＤＡ１３に、ＲＡＩＤ整合要求 (要求ディスク６０ＡのリードコマンドはＦＵＡ＝「１」, 要求範囲は、ステップＳ４０と同じ)を発行する。図１１に示すように、ＤＡ１３は、この整合要求に応じて、要求ディスク６０(Ｐ１)へ再度リード要求を発行する。この時、図４で説明したように、ディスク６０Ａでは、リードコマンドのＦＵＡは、「１」（キャッシュ無効）であるから、ステップＳ４０のリードコマンドで、ディスク６０のキャッシュメモリ６８に格納されたリードデータは、無視され、直接、磁気ディスク７２からリードする。そして、ＤＡ１３は、ディスク６０からのｇｏｏｄ応答があるかを判定し、ｇｏｏｄ応答があると、ＣＭ１０のキャッシュメモリ２６のワーク領域のディスク６０のリードデータＰ１  ｄａｔａと、ディスク６０のリードデータＰ１  ｄａｔａとを比較する。ｇｏｏｄ応答でなければ、これを、ｇｏｏｄ応答であれば、比較一致（ｇｏｏｄ），比較不一致（ｅｒｒｏｒ）を、整合要求の応答として、ＣＭ１０へ返す。
【００９２】
（Ｓ５６）ＣＭ１０は、ＤＡ１３からの整合要求に対する応答を受信したかを判定し、応答を受信した場合には、応答が、「ｇｏｏｄ」応答であるかを判定する。「ｇｏｏｄ」応答でなければ、リカバード応答のため、ステップＳ６０に進む。
【００９３】
（Ｓ５８）一方、ディスク６０からの「ｇｏｏｄ」応答であれば、ＤＡからの比較結果が、「ｇｏｏｄ」であるかを判定する。比較結果が、「ｇｏｏｄ」であれば、ディスク６０の当該領域の交代処理を行うアサイン命令と、交代した領域のライト及びベリファイコマンドを、ＤＡ１３を介しディスク６０に発行する。ディスク６０Ａは、その領域の交代処理を実行し、且つベリファイ動作して、交代処理が確実であるかを判断する。そして、キャッシュメモリ２６にステージングしたディスク６０のデータＰ１  ｄａｔａをホストへ転送して、終了する。
【００９４】
（Ｓ６０）一方、リカバードエラー応答又は、比較結果がｅｒｒｏｒ応答であれば、当該領域の交代処理を行うアサイン命令と、交代した領域へのバッドデータ（無意味なデータ、例えば、ヌル）のライトコマンドを、ＤＡ１３を介しディスク６０に発行する。ディスク６０は、その領域の交代処理を実行し、且つその交代領域にバッドデータをライトする。そして、ホストへエラー通知を転送して、終了する。
【００９５】
このように、非冗長な場合には、ＲＡＩＤレベルに無関係で，Ｉ／Ｏ処理の延長上で、診断まで実施してからキャッシュへ応答を行う。即ち、初回のリカバードリードエラー時も、ＦＵＡイネーブル(媒体より再読み込み)の設定により、同様コマンド(分割しない)によるリトライを実施し、リトライも含めリードコマンドに対し、エラーが発生しなかった場合は、そのデータを正しいと判断する。このため、リカバリードエラー発生時の不確かなデータ（被偽データ）を、ディスクのリトライにより、回復し、ホストへ正確なリードデータを転送できる。
【００９６】
２回目のリカバードエラー発生時は、ディスクの再リードデータとのデータ比較による診断を行い、一致した場合のみ、要求ディスクが正常と判断し、ホストへ転送する。尚、一回、リカバードエラーが発生しているため、再度、リカバードエラーが発生する可能性があるから、交代処理し、再度のリカバードエラーを防止する。しかも、ライト・ベリファイを行い、交代処理データのリード／ライトを保証する。
【００９７】
又、比較が一致しない場合には、非冗長系のため、切り離すことは、得策でない。このため、交代処理を行い、且つバッドデータを書き込み、そのデータをあきらめ、ホストへエラー通知する。
【００９８】
［他の実施の形態］
図１２は、本発明の他の実施の形態の説明図であり、図９乃至図１１の非冗長系のリカバードエラー処理を、リビルド動作に適用した例である。リビルド動作は、故障ディスクのデータを復元し、予備又は新ディスクに格納するものである。
【００９９】
図１２は、ＲＡＩＤ５のリビルド動作を示し、ディスク＃０が故障した場合に、故障ディスク＃０以外のディスク＃１〜＃３のデータをキャッシュメモリ１０に、読み出し、それらのデータのＸＯＲをとり、復元データを作成し、予備又は新ディスクＨＳに書き込む。
【０１００】
Rebuildも、図９乃至図１１の動作と同様であり、整合性エラーや３回目のリカバードエラーでは、同様に、交代処理を行い、バッドデータを書き込む又は、RAID故障のどちらかを実施する。
【０１０１】
図１３及び図１４は、本発明の更に他の実施の形態の説明図であり、図５乃至図８の冗長系のリカバードエラー処理を、コピーバック動作（図１３）、リダンダントコピー動作（図１４）に適用した例である。コピーバック動作は、ディスクのデータを、コピーディスクに格納するものである。
【０１０２】
図１３は、ＲＡＩＤ５のコピーバック動作を示し、ディスクＨＳのデータをキャッシュメモリ１０に、読み出し、新ディスクＮｅｗに書き込む。図１４は、ＲＡＩＤ５のリダンダントコピー動作を示し、ディスク＃４のデータをキャッシュメモリ１０に読み出し、予備ディスクＨＳに書き込む。
【０１０３】
このコピーバックやリダンダントコピーでは、図８の動作と同様であり、但し、図６のステップＳ２４〜Ｓ２８は、必要ない。そして、整合性エラーの場合には、ディスクを切り離し、図１２のリビルド処理に移行する。
【０１０４】
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。例えば、上述した実施形態では、データを保持する記憶部として磁気ディスク装置を例にあげて説明したが、本発明はこれに限定されるものではなく、記憶部における記憶媒体は、光ディスク、光磁気ディスク等にも適用できる。また、各構成ユニット（ディスク装置、ホストコンピュータ、制御モジュール、キャッシュマネージャ、チャネルアダプタ、ディスクアダプタ、ＤＭＡエンジン）の数、もしくは、これら各ユニットが有するポートの数は、本発明において限定されるものではなく、必要に応じて適宜変更、組み合わせをして構成してもよい。
【０１０５】
（付記１）少なくとも１つのディスク装置と、上位からの要求に応じて、前記ディスク装置のデータのリード／ライトを行う制御ユニットとを有し、前記制御ユニットは、前記ディスク装置のデータを格納するキャッシュメモリと、前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受ける処理ユニットとを有し、前記処理ユニットは、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断することを特徴とするストレージシステム。
【０１０６】
（付記２）前記処理ユニットは、前記リトライリードアクセスの実行後、前記ディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記リカバードリード応答時のリードデータとを比較し、前記ディスク装置の診断を実行することを特徴とする付記１のストレージシステム。
【０１０７】
（付記３）前記ディスク装置は、冗長系を構成する複数のディスク装置で構成され、前記処理ユニットは、１の前記ディスク装置へのリードアクセスの応答が前記リカバードリードエラー応答であることに応じて、前記冗長系を構成する他の前記ディスク装置に、同一データを対象とするリトライリードアクセスを行うことを特徴とする付記１のストレージシステム。
【０１０８】
（付記４）前記処理ユニットは、前記冗長系を構成する他の前記ディスク装置に、リトライリードアクセスを得たリードデータが、エラー応答を含まないことを判定し、前記リトライリードアクセスで得たリードデータを正当と判定し、外部に転送することを特徴とする付記３のストレージシステム。
【０１０９】
（付記５）前記処理ユニットは、前記リトライリードアクセスの実行後、前記一のディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記他のディスク装置からのリードデータとを比較し、前記一のディスク装置の診断を実行することを特徴とする付記１のストレージシステム。
【０１１０】
（付記６）前記処理ユニットは、前記比較結果が良好である時は、前記一のディスク装置の前記対象領域の交代処理を実行することを特徴とする付記５のストレージシステム。
【０１１１】
（付記７）前記処理ユニットは、前記比較結果が良好でない時は、前記一のディスク装置の切り離し処理を実行することを特徴とする付記５のストレージシステム。
【０１１２】
（付記８）前記処理ユニットは、前記カバードリードエラー応答に応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断することを特徴とする付記１のストレージシステム。
【０１１３】
（付記９）前記処理ユニットは、前記リトライリードアクセスの前記ディスク装置からの再度リカバードリードエラー応答を受けたことに応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを再度行い、エラーが含まれないことを判別し、且つこのリードデータと前記リカバードリードエラー時のリードデータとを比較し、前記ディスク装置の診断を実行することを特徴とする付記８のストレージシステム。
【０１１４】
（付記１０）前記処理ユニットは、前記比較結果が良好である時は、前記ディスク装置の前記対象領域の交代処理を実行し、前記リードデータを外部へ転送することを特徴とする付記９のストレージシステム。
【０１１５】
（付記１１）前記処理ユニットは、前記比較結果が良好でない時は、前記ディスク装置の前記対象領域の交代処理を実行し、且つ前記外部にエラー通知することを特徴とする付記９のストレージシステム。
【０１１６】
（付記１２）上位からの要求に応じて、少なくとも１つのディスク装置のデータのリード／ライトを行うストレージ制御装置において、前記ディスク装置のデータを格納するキャッシュメモリと、前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受ける処理ユニットとを有し、前記処理ユニットは、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断することを特徴とするストレージ制御装置。
【０１１７】
（付記１３）前記処理ユニットは、前記リトライリードアクセスの実行後、前記ディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記リカバードリード応答時のリードデータとを比較し、前記ディスク装置の診断を実行することを特徴とする付記１２のストレージ制御装置。
【０１１８】
（付記１４）前記ディスク装置は、冗長系を構成する複数のディスク装置で構成され、前記処理ユニットは、１の前記ディスク装置へのリードアクセスの応答が前記リカバードリードエラー応答であることに応じて、前記冗長系を構成する他の前記ディスク装置に、同一データを対象とするリトライリードアクセスを行うことを特徴とする付記１２のストレージ制御装置。
【０１１９】
（付記１５）前記処理ユニットは、前記冗長系を構成する他の前記ディスク装置に、リトライリードアクセスを得たリードデータが、エラー応答を含まないことを判定し、前記リトライリードアクセスで得たリードデータを正当と判定し、外部に転送することを特徴とする付記１４のストレージ制御装置。
【０１２０】
（付記１６）前記処理ユニットは、前記リトライリードアクセスの実行後、前記一のディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受け、このリードデータと前記他のディスク装置からのリードデータとを比較し、前記一のディスク装置の診断を実行することを特徴とする付記１２のストレージ制御装置。
【０１２１】
（付記１７）前記処理ユニットは、前記比較結果が良好である時は、前記一のディスク装置の前記対象領域の交代処理を実行することを特徴とする付記１６のストレージ制御装置。
【０１２２】
（付記１８）前記処理ユニットは、前記比較結果が良好でない時は、前記一のディスク装置の切り離し処理を実行することを特徴とする付記１６のストレージ制御装置。
【０１２３】
（付記１９）前記処理ユニットは、前記カバードリードエラー応答に応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを行い、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断することを特徴とする付記１２のストレージ制御装置。
【０１２４】
（付記２０）前記処理ユニットは、前記リトライリードアクセスの前記ディスク装置からの再度リカバードリードエラー応答を受けたことに応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを再度行い、エラーが含まれないことを判別し、且つこのリードデータと前記リカバードリードエラー時のリードデータとを比較し、前記ディスク装置の診断を実行することを特徴とする付記１９のストレージ制御装置。
【０１２５】
（付記２１）前記処理ユニットは、前記比較結果が良好である時は、前記ディスク装置の前記対象領域の交代処理を実行し、前記リードデータを外部へ転送することを特徴とする付記２０のストレージ制御装置。
【０１２６】
（付記２２）前記処理ユニットは、前記比較結果が良好でない時は、前記ディスク装置の前記対象領域の交代処理を実行し、且つ前記外部にエラー通知することを特徴とする付記２０のストレージ制御装置。
【０１２７】
（付記２３）上位からの要求に応じて、少なくとも１つのディスク装置のデータのリード／ライトを行うストレージ制御方法において、前記ディスク装置をリードアクセスし、且つ前記ディスク装置からリードデータと応答結果を受けるステップと、前記リードデータを受けた時の前記応答が、リカバードリードエラー応答である時は、前記ディスク装置に同一データを対象とするリトライリードアクセスを行うステップと、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断するステップとを有することを特徴とするストレージ制御方法。
【０１２８】
（付記２４）前記リトライリードアクセスの実行後、前記ディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行うステップと、リードデータを受け、このリードデータと前記リカバードリード応答時のリードデータとを比較し、前記ディスク装置の診断を実行するステップを更に有することを特徴とする付記２３のストレージ制御方法。
【０１２９】
（付記２５）リトライリードアクセスステップは、冗長系を構成する複数のディスク装置で構成された前記ディスク装置の１の前記ディスク装置へのリードアクセスの応答が前記リカバードリードエラー応答であることに応じて、前記冗長系を構成する他の前記ディスク装置に、同一データを対象とするリトライリードアクセスを行うステップからなることを特徴とする付記２４のストレージ制御方法。
【０１３０】
（付記２６）正当性判定ステップは、前記冗長系を構成する他の前記ディスク装置に、リトライリードアクセスを得たリードデータが、エラー応答を含まないことを判定し、前記リトライリードアクセスで得たリードデータを正当と判定し、外部に転送するステップからなることを特徴とする付記２５のストレージ制御方法。
【０１３１】
（付記２７）前記リトライリードアクセスの実行後、前記一のディスク装置へ前記ディスク装置のキャッシュメモリの使用を無効にしたリードアクセスを行い、リードデータを受けるステップと、このリードデータと前記他のディスク装置からのリードデータとを比較し、前記一のディスク装置の診断を実行するステップを更に有することを特徴とする付記２３のストレージ制御方法。
【０１３２】
（付記２８）前記比較結果が良好である時は、前記一のディスク装置の前記対象領域の交代処理を実行するステップを更に有することを特徴とする付記２７のストレージ制御方法。
【０１３３】
（付記２９）前記比較結果が良好でない時は、前記一のディスク装置の切り離し処理を実行するステップを更に有することを特徴とする付記２７のストレージ制御方法。
【０１３４】
（付記３０）前記リトライリードアクセスステップは、前記リカバードリードエラー応答に応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを行うステップからなり、前記正当性判定ステップは、前記リトライリードアクセスの前記ディスク装置からの応答に、エラーが含まれないことを判別し、前記リトライリードアクセスによるリードデータを正当と判断するステップからなることを特徴とする付記２３のストレージ制御方法。
【０１３５】
（付記３１）前記リトライリードアクセスの前記ディスク装置からの再度リカバードリードエラー応答を受けたことに応じて、リードアクセスした前記ディスク装置に同一データを対象とし、且つキャッシュメモリの使用を無効にするリトライリードアクセスを再度行うステップと、エラーが含まれないことを判別し、且つこのリードデータと前記リカバードリードエラー時のリードデータとを比較し、前記ディスク装置の診断を実行するステップとを更に有することを特徴とする付記３０のストレージ制御方法。
【０１３６】
（付記３２）前記比較結果が良好である時は、前記ディスク装置の前記対象領域の交代処理を実行し、前記リードデータを外部へ転送するステップを更に有することを特徴とする付記３１のストレージ制御方法。
【０１３７】
（付記３３）前記比較結果が良好でない時は、前記ディスク装置の前記対象領域の交代処理を実行し、且つ前記外部にエラー通知するステップを更に有することを特徴とする付記３１のストレージ制御方法。
【産業上の利用可能性】
【０１３８】
初回のリカバードリードエラー時に、同様のコマンドによるリトライを実施し、リトライも含めリードコマンドに対し、エラーが発生しなかった場合は、そのデータを正しいと判断するため、リカバリードエラー発生時の不確かなデータ（被偽データ）を、ディスクのリトライにより、回復し、ホスト等の外部へ正確なリードデータを転送でき、ストレージシステムの信頼性向上に寄与する。又、リカバードエラーＬＢＡを含む要求範囲に，診断を実施するので、再度のリカバリードエラーの発生を低減できる。更に、この診断に、要求ディスクのリード処理を、キャッシュを無効とするリードコマンドで実行するため、要求ディスク自体のデータを直接リードでき、診断が確実となる。又、同一又はペアディスクのリードデータと比較するため、簡単に、要求ディスクの対象データの診断ができる。
【図面の簡単な説明】
【０１３９】
【図１】本発明の一実施の形態のストレージシステムの構成を示すブロック図である。
【図２】図１の実施の形態の制御モジュールの構成を示すブロック図である。
【図３】図１のディスクドライブの構成図である。
【図４】図１のリードコマンドのフォーマットの説明図である。
【図５】本発明の第１の実施の形態のリードアクセス処理フロー図（その１）である。
【図６】本発明の第１の実施の形態のリードアクセス処理フロー図（その２）である。
【図７】本発明の第１の実施の形態のリードアクセス動作の説明図である。
【図８】本発明の第１の実施の形態の他のストレージシステムの構成を示すブロック図である。
【図９】本発明の第２の実施の形態のリードアクセス処理フロー図（その１）である。
【図１０】本発明の第２の実施の形態のリードアクセス処理フロー図（その２）である。
【図１１】本発明の第２の実施の形態のリードアクセス動作の説明図である。
【図１２】図１１の実施の形態のリードアクセス処理を、リビルド処理に適用した説明図である。
【図１３】図７の実施の形態のリードアクセス処理を、コピーバック処理に適用した説明図である。
【図１４】図７の実施の形態のリードアクセス処理を、リダンダントコピー処理に適用した説明図である。
【符号の説明】
【０１４０】
１０、１０−１，１０−２，１０−３，１０−４  制御モジュール（キャッシュマネージャ）
１１、１１−１〜１１−８  チャネルアダプタ
１２−１〜１２−４  ディスクエンクロージャ（ディスクドライブ群）
１３、１３−１〜１３−８  デバイスアダプタ
１４，１４−１〜１４−８  ルータ
２６  キャッシュメモリ
２０，２２  ＣＰＵ
１５，４０  ＤＭＡ回路
６０  ディスクドライブ
【図１】
0004409483.tif 000002
【図２】
0004409483.tif 000003
【図３】
0004409483.tif 000004
【図４】
0004409483.tif 000005
【図５】
0004409483.tif 000006
【図６】
0004409483.tif 000007
【図７】
0004409483.tif 000008
【図８】
0004409483.tif 000009
【図９】
0004409483.tif 000010
【図１０】
0004409483.tif 000011
【図１１】
0004409483.tif 000012
【図１２】
0004409483.tif 000013
【図１３】
0004409483.tif 000014
【図１４】
0004409483.tif 000015