(57)【要約】    【課題】パトロール処理によるエラー通知に基づいてライト抜けを解消して冗長性を回復させる。    【解決手段】第1リカバリ処理部４０は、デバイスアダプタ２４によるセカンダリディスク装置３２のパトロール処理で検出されたエラー通知を受けた際に、正常なプライマリディスク装置３０からエラー箇所に対応するデータを読出してエラーディスク装置３２に書き込んでエラーを解消する。第２リカバリ処理部４２は、エラー通知の内容がデータの書込順を示す識別子であるブロックＩＤの異常であることを判別した場合、識別子の示す正しい書込アドレスを検索してエラーディスク装置３２と正常ディスク装置３０のデータと比較し、不一致の場合にライト抜けと判断して正常ディスク装置３０から読出したデータをエラーディスク装置３２に書き込んでライト抜けを解消する。    【選択図】      図１
2006031332.tif 000002
【特許請求の範囲】
【請求項１】
冗長構成をもつ複数のディスク装置を設けたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御装置のコンピュータに、
前記ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理ステップと、
前記エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、前記識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータと比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する第２リカバリ処理ステップと、
を実行させることを特徴とするディスクアレイ制御プログラム。
【請求項２】
請求項１記載のディスクアレイ制御プログラムに於いて、
前記エラー通知は、前記磁気ディスク装置に論理ブロックアドレス単位に書き込まれた巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを読み出して前記巡回検査コードとブロックＩＤをチェックして検出したエラー内容であり、
前記第２リカバリステップは、前記エラー通知の内容が前記ブロックＩＤの異常を示すエラーであることを判別した場合、前記ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーディスク装置と正常ディスク装置のデータを較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消することを特徴とするディスクアレイ制御プログラム。
【請求項３】
請求項１記載のディスクアレイ制御プログラムに於いて、
前記長ディスクアレイ制御装置は、前記上位装置を接続するチャネルアダプタ、前記ディスク装置を接続するデバイスアダプタ、及び前記チャネルアダプタとデバイスアダプタの間に位置して前記上位装置からの入出力要求を処理する中央処理モジュールを有し、
前記コンピュータを前記中央処理モジュールに設けたことを特徴とするディスクアレイ制御プログラム。
【請求項４】
請求項１記載のディスクアレイ制御プログラムに於いて、前記冗長構成のディスク装置は、同一データを同一アドレスに格納したＲＡＩＤレベルの冗長構成を備えた一対のディスク装置であることを特徴とするディスクアレイ制御プログラム。
【請求項５】
冗長構成をもつ複数のディスク装置を設けたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御方法に於いて、
前記ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理ステップと、
前記エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、前記識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータ比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置にか書き込んでライト抜けを解消する第２リカバリ処理ステップと、
を実行させることを特徴とするディスクアレイ制御方法。
【請求項６】
請求項５記載のディスクアレイ制御方法に於いて、
前記エラー通知は、磁気ディスク装置に論理ブロックアドレス単位に書き込まれた巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを読み出して前記巡回検査コードとブロックＩＤをチェックして検出したエラー内容を有し、
前記第２リカバリステップは、前記エラー通知の内容が前記ブロックＩＤの異常を示すエラーであることを判別した場合、前記ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消することを特徴とするディスクアレイ制御方法。
【請求項７】
請求項５記載のディスクアレイ制御方法に於いて、
前記ディスクアレイシステムは、前記上位装置を接続するチャネルアダプタ、前記ディスク装置を接続するデバイスアダプタ、及び前記チャネルアダプタとデバイスアダプタの間に位置して前記上位装置からの入出力要求を処理する中央処理モジュールを有し、
前記第１リカバリステップ及び第２リカバリステップを前記中央処理モジュールで実行することを特徴とするディスクアレイ制御方法。
【請求項８】
冗長構成をもつ複数のディスク装置を備えたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御装置に於いて、
前記ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理部と、
前記エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、前記識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する第２リカバリ処理部と、
を備えたことを特徴とするディスクアレイ制御装置。
【請求項９】
請求項８記載のディスクアレイ制御装置に於いて、
前記上位装置を接続するチャネルアダプタ、前記ディスク装置を接続するデバイスアダプタ、及び前記チャネルアダプタとデバイスアダプタの間に位置して前記上位装置からの入出力要求を処理する中央処理モジュールを有し、
前記第１リカバリ処理部及び第２リカバリ処理部は前記中央処理モジュールに設けられ、
前記磁気ディスク装置は、論理ブロックアドレス単位に、巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを書き込んでおり、
前記デバイスアダプタは、自己の配下に接続された前記ディスク装置からブロックデータを読み出して前記巡回冗長検査コードとブロックＩＤをチェックし、エラーを検出した際に前記中央処理モジュールに通知するパトロール処理部を備えたことを特徴とするディスクアレイ制御装置。
【請求項１０】
第一の記憶部と、第二の記憶部と、前記第一および第二の記憶部に接続され、前記第一および第二の記憶部へのデータ入出力を制御する制御部とを備える記憶装置に於いて、
前記記憶部のパトロール処理によりエラーが検出された場合、異常を検出したデータの位置情報に基づいて、第一の記憶部に記憶されたデータと第二の記憶部に記憶されたデータとの比較を行ない、前記比較の結果に基づいて一方の記憶部に記憶されたデータにより他方に記憶されたデータの復元を行うリカバリ処理部を備えることを特徴とする記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長構成をもつ複数のディスク装置を設けたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御プログラム、方法及び装置に関し、特にディスク装置のパトロール処理で検出したエラーを正常ディスク装置からのデータ書込みでリカバリするディスクアレイ制御プログラム、方法及び装置に関する。
【背景技術】
【０００２】
従来、ＲＡＩＤレベルの冗長構成をとるディスク装置を備えたディスクアレイアブシステムにあっては、主としてディスク装置における媒体異常を検出するためにパトロール処理を行っている。
【０００３】
図９は従来のディスクアレイサブシステム１００であり、ホスト１０１を接続するチャネルアダプタ１０２、ＲＡＩＤレベルの冗長構成をとるプライマリディスク装置１０８とセカンダリディスク装置１１０を接続するデバイスアダプタ１０６−１、１０６−２、及びチャネルアダプタ１０２とデバイスアダプタ１０６−１、１０６−２の間に配置されてホスト１０１からの入出力要求を処理する中央処理モジュール１０４を備えている。
【０００４】
ディスク装置のパトロール機能はデバイスアダプタ１０６−１、１０６−２に設けられ、中央処理モジュール１０４からパトロール実行コマンドを受領すると、デバイスアダプタ１０６−１、１０６−２は自分の配下にあるプライマリディスク装置１０８とセカンダリディスク装置１１０のパトロール処理を実行する。
【０００５】
デバイスアダプタ１０６−１、１０６−２のパトロール処理は、対象とするディスク装置から論理ブロックアドレス単位にブロックデータをデバイスアダプタ上のバッファに読出し、ブロックデータに含まれているチェックコードをチェックしてエラーの有無を判定する。ここでデバイスアダプタ１０６−２でセカンダリディスク装置１１０につきエラーを検出したとすると中央処理モジュール１０４にエラー通知して処理を終了する。
【０００６】
デバイスアダプタ１０６−２からエラー通知を受けた中央処理モジュール１０４は、媒体異常以外のリカバリ可能なエラーの場合は、正常ディスク装置であるプライマリディスク装置１０８のエラー箇所に対応した論理ブロックアドレスのデータを読み出してエラーを検出したセカンダリディスク装置１１０に書き込むことでエラーを解消する。
【特許文献１】特開２００３−３６１４６
【特許文献２】特開平０４−２８５７７３
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、このような従来のパトロール処理に基づくエラーのリカバリ処理にあっては、パトロール処理で検出したディスク装置のエラーを解消することはできるが、ホストからのライト要求に対するプライマリディスク装置とセカンダリディスク装置のライト処理の際に、例えばセカンダリディスク装置でライト異常を起して正しいアドレスのデータではなく、別のアドレスのデータを書替えていた場合、次の問題がある。
【０００８】
図９のプライマリディスク装置１０８とセカンダリディスク装置１１０はライト異常前のデータ格納状態を取り出して示しており、同一アドレスに同一データが格納されいる。この状態で、図１０（Ａ）のようにホストからのライト要求１１２により旧データＤ１を新データＤ１１に書替える時に、プライマリディスク装置１０８は正常に書替えられたが、セカンダリディスク装置１１０ではエラー１１４により別のアドレスのデータＤ３を新データＤ１１に書替えてしまったとする。
【０００９】
図１０（Ａ）の状態でセカンダリディスク装置１１０のパトロール処理が行われると、図１０（Ｂ）のようにデータＤ１１のチェックコードの異常１１６が判別され、正常なプライマリディスク装置１０８からエラー箇所に対応した正しいデータＤ３を読み出してセカンダリディスク装置１１０に書き込むことでエラーを解消するリカバリ処理１１８が行われる。
【００１０】
しかし、図１０（Ａ）で正しい書替えができなかったセカンダリディスク装置１１０のデータＤ１はそのまま書替え前の旧データとして残ったライト抜け１２０となり、プライマリディスク装置１０８の新データＤ１１と一致せず、この部分でデータの冗長性が失われたままとなり、従来のリカバリ処理では冗長性を回復させることが出来ないという問題がある。
【００１１】
本発明は、冗長構成をとるディスク装置の一方にライト抜けがあった場合、パトロール処理によるエラー通知に基づいてライト抜けを解消して冗長性を回復させるリカバリができるディスクアレイ制御プログラム、方法、及び装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
図１は本発明の原理説明図である。
【００１３】
（プログラム）
本発明は、ディスクアレイ制御プログラムを提供する。本発明のディスクアレイ制御プログラムは、冗長構成をもつ複数のディスク装置を設けたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御装置のコンピュータに、
ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、図１（Ｂ）のように、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理ステップと、
エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、図１（Ｃ）のように、識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータと比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する第2リカバリ処理ステップと、
を実行させることを特徴とする。
【００１４】
ここでパトロール処理に基づくエラー通知は、磁気ディスク装置に論理ブロックアドレス単位に書き込まれた巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを読み出して前記巡回冗長検査コードとブロックＩＤをチェックして検出したエラー内容であり、第2リカバリステップは、エラー通知の内容がブロックＩＤの異常を示すエラーであることを判別した場合、ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーディスク装置と正常ディスク装置のデータをと比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する。
【００１５】
またディスクアレイ制御装置は、上位装置を接続するチャネルアダプタ、ディスク装置を接続するデバイスアダプタ、及び前記チャネルアダプタとデバイスアダプタの間に位置して上位装置からの入出力要求を処理する中央処理モジュールを有し、ディスクアレイ制御プログラムを実行するコンピュータを中央処理モジュールに設けたことを特徴とする。
【００１６】
更に冗長構成のディスク装置は、同一データを同一アドレスに格納したＲＡＩＤレベルの冗長構成を備えた一対のディスク装置である。
【００１７】
（方法）
本発明はディスクアレイ制御方法を提供する。本発明は、冗長構成をもつ複数のディスク装置を設けたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御方法に於いて、
ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理ステップと、
エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、前記識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する第2リカバリ処理ステップと、
を実行させることを特徴とする。
【００１８】
このパトロール処理によるエラー通知は、磁気ディスク装置に論理ブロックアドレス単位に書き込まれた巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを読み出して巡回冗長検査コードとブロックＩＤをチェックして検出したエラー内容を有し、第2リカバリステップは、エラー通知の内容が前記ブロックＩＤの異常を示すエラーであることを判別した場合、ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する。
【００１９】
（装置）
本発明は、ディスクアレイ制御装置を提供する。本発明は、冗長構成をもつ複数のディスク装置を備えたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御装置に於いて、ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理部４０と、エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する第2リカバリ処理部４２とを備えたことを特徴とする。
【００２０】
ディスクアレイ制御装置は、上位装置を接続するチャネルアダプタ、ディスク装置を接続するデバイスアダプタ、及びチャネルアダプタとデバイスアダプタの間に位置して上位装置からの入出力要求を処理する中央処理モジュールを有し、第１リカバリ処理部４０及び第2リカバリ処理部４２は中央処理モジュールに設けられ、磁気ディスク装置は、論理ブロックアドレス単位に、巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを書き込んでおり、デバイスアダプタは、自己の配下に接続されたディスク装置からブロックデータを読み出して巡回冗長検査コードとブロックＩＤをチェックし、エラーを検出した際に中央処理モジュールに記エラー通知の内容がブロックＩＤの異常を示すエラーであることを判別した場合、ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーディスク装置と正常ディスク装置のデータと比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する。
【００２１】
更に本発明は、第一の記憶部と、第二の記憶部と、第一および第二の記憶部に接続され、第一および第二の記憶部へのデータ入出力を制御する制御部とを備える記憶装置に於いて、前記記憶部のパトロール処理によりエラーが検出された場合、異常を検出したデータの位置情報に基づいて、第一の記憶部に記憶されたデータと第二の記憶部に記憶されたデータとの比較を行ない、前記比較の結果に基づいて一方の記憶部に記憶されたデータにより他方に記憶されたデータの復元を行うリカバリ処理部を備えることを特徴とする。
【発明を実施するための最良の形態】
【００２２】
図２は、本発明が適用されるディスクアレイサブシステムのブロック図である。図２において、ディスクアレイサブシステム１０はディスクアレイ制御装置１２とデバイスエンクロージャ１４−１、１４−２で構成される。
【００２３】
ディスクアレイ制御装置１２にはチャネルアダプタ１８−１〜１８−４、ルーター２０−１、２０−２、中央処理モジュール２２−１〜２２−４、ルーター２０−３、２０−４及びデバイスアダプタ２４−１〜２４−４が設けられている。チャネルアダプタ１８−１〜１８−４に対してはホスト１６−１、１６−２が接続されている。
【００２４】
デバイスエンクロージャー１４−１、１４−２にはディスク装置２６−１１〜２６−１ｎ、２６−２１〜２６−２ｎが設けられており、複数のディスク装置の組み合わせにより冗長構成をとっており、本発明の実施形態にあってはＲＡＩＤ１の冗長構成をとった場合を例にとっている。なお、本発明は、ＲＡＩＤ１に限定されず、ミラー構成をとるものであれば、適宜のＲＡＩＤレベルに適用できる。
【００２５】
図３は、本発明によるディスクアレイ制御装置の実施形態のブロック図であり、ＲＡＩＤ１の冗長構成を対象としている。図３において、ディスクアレイ制御装置１２は図２の中央処理モジュール２２−１とデバイスアダプタ２４−１、２４−２の部分を取り出して示している。
【００２６】
またデバイスアダプタ２４−１、２４−２に対するディスクアレイ２８としては冗長構成をとる一対のディスク装置としてプライマリディスク装置３０とセカンダリディスク装置３２を示しており、両者には同一アドレスに同一データを格納している。
【００２７】
このプライマリディスク装置３０、セカンダリディスク装置３２による冗長構成の場合には、ホスト１６−１からのリード要求に対しては、例えば予め定めたプライマリディスク装置３０からリード応答を行なう。またホスト１６−１からのライト要求に対してはプライマリディスク装置３０とセカンダリディスク装置３２の両方に書き込むライト処理を行なう。
【００２８】
デバイスアダプタ２４−１、２４−２にはパトロール処理部３４−１、３４−２が設けられている。パトロール処理部３４−１、３４−２は中央処理モジュール２２−１からパトロール実行コマンドを受けた際に動作し、自分の配下にあるプライマリディスク装置３０及びセカンダリディスク装置３２のそれぞれに対しパトロール処理を実行する。
【００２９】
パトロール処理は自分の配下のディスク装置からブロックデータを読み出してデバイスアダプタ上のバッファに格納し、バッファに格納しているブロックデータのチェックコードをチェックしてエラーの有無を検出する。
【００３０】
パトロール処理部３４−１、３４−２によりプライマリディスク装置３０、セカンダリディスク装置３２のそれぞれから読み出されるブロックデータは図４に示すフォーマット構造を有する。図４において、ブロックデータ４４は先頭からＣＲＣコード（巡回冗長検査コード４６）、ブロックＩＤ４８及びデータ領域５０で構成される。
【００３１】
ＣＲＣコード４６はデータ領域５０のデータから生成されており、このＣＲＣコード４６を使用することでデータ領域５０に格納しているデータのエラーを検出することができる。ブロックＩＤ４８はディスク装置に対する書込位置の順番を示す値であり、正しい書込が行なわれていればブロック番号データを順番に読み出した場合には、連続番号として得られる。
【００３２】
このようなブロックデータ４４のうちＣＲＣコード４６とブロックＩＤ４８をチェックコード５２としており、この例では８バイト使用している。またデータ領域５０には５１２バイトが割当てられており、５１２バイトのデータ領域により１ブロックデータを構成し、このブロックデータはプライマリディスク装置３０及びセカンダリディスク装置３２を物理論理デバイスとして取り扱う際の論理ブロックアドレス（ＬＢＡ）で書き込み位置が指定される。
【００３３】
再び図３を参照するに、中央処理モジュール２２−１はプロセッサ３６とキャッシュ処理部３８を設けている。プロセッサ３６には本発明によるリカバリ処理のため第１リカバリ処理部４０と第２リカバリ処理部４２が設けられている。
【００３４】
第１リカバリ処理部４０はデバイスアダプタ２４−１、２４−２のパトロール処理部３４−１、３４−２で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読み出して、エラー検出が行なわれたディスク装置に書き込んでエラーを解消する。
【００３５】
第２リカバリ処理部４２は、第１リカバリ処理部４０におけるリカバリ成功後にエラー通知の内容がデータの書込順を示す識別子である図４のブロックデータ４４におけるブロックＩＤ４８の異常であることを判別した場合、即ち読み出したブロックデータ４４のブロックＩＤ４８が連番となっていないことを判別した場合、ブロックＩＤ４８の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、データ不一致の場合にライト抜けと判断し、正常ディスク装置から読み出したデータをエラーディスク装置に書き込んでライト抜けを解消する。
【００３６】
図５は、図３のプライマリディスク装置３０とセカンダリディスク装置３２の同時ライト処理でセカンダリ側にライト異常を生じた場合の説明図である。図５（Ａ）はライト異常を生ずる前のプライマリディスク装置３０とセカンダリディスク装置３２のデータ格納状態であり、同一アドレス位置に同一データが格納されている。
【００３７】
この状態で図５（Ｂ）に示すようにプライマリディスク装置３０とセカンダリディスク装置３２のデータＤ１１のアドレス位置にライト要求５４、５６が生じ、プライマリディスク装置３０についてはライト要求５４により正しいアドレス位置の旧データＤ１を新データＤ１１に書き換えているが、セカンダリディスク装置３２にあってはライト処理５６の時にエラー５８が発生し、別のアドレス位置のデータＤ３を誤って新データＤ１１に書き換えるライト異常を起している。
【００３８】
このようなセカンダリディスク装置３２に対するライト異常は、図３に示したデバイスアダプタ２４−１のパトロール処理部３４−１によるパトロール処理の実行で図６（Ｃ）のようにセカンダリディスク装置３２のデータＤ１１のデータブロックを読み出してチェックコードをチェックすると、ブロックＩＤから連番でないことが判別され、チェックコード異常によるエラー検出６０が行なわれる。
【００３９】
このエラー検出６０は図３の中央処理モジュール２２−１に通知され、プロセッサ３６の第１リカバリ処理部４０が動作し、正常ディスク装置であるプライマリディスク装置３０のエラー箇所に対応するデータＤ３を読み出してキャッシュ処理部３８のキャッシュ上に展開した後、エラー通知を行なってデバイスアダプタ２４−２にエラー箇所への書込を指示する第１リカバリ処理部４０によるリカバリ処理６２を行い、セカンダリディスク装置３２のエラー検出の対象となったデータＤ１１を正しいデータＤ３に書き換える。
【００４０】
続いて図６（Ｄ）のように図３の第２リカバリ処理部４２がパトロール処理部３４−２から受けたエラー通知の内容がブロックＩＤの異常である場合にはブロックＩＤから正しいアドレス位置の検索処理６４を行い、検索アドレスにおけるプライマリディスク装置３０のデータＤ１１とセカンダリディスク装置３２のデータＤ１を比較する比較処理６６を行なう。
【００４１】
比較処理６６によりプライマリディスク装置３０とセカンダリディスク装置３２のデータは不一致であると、エラー検出が行なわれているセカンダリディスク装置３２のデータＤ１はライト抜けであると判断され、図３の第２リカバリ処理部４２はプライマリディスク装置３０の検索アドレス位置のデータＤ１１を読み出してキャッシュ処理部３８のキャッシュ上に展開した後、エラー検出を行なっているデバイスアダプタ２４−２に対しデータＤ１１の検索アドレス位置への書込を指示してリカバリ処理６８を行なう。
【００４２】
この２回目のリカバリ処理６８により図６（Ｅ）のようにセカンダリディスク装置３２に残っていたライト抜けが解消され、プライマリディスク装置３０とセカンダリディスク装置３２のデータは同一位置で全て同一データとなる冗長構成の状態に回復させることができる。
【００４３】
図７は、図３のデバイスアダプタ２４−１、２４−２に設けているパトロール処理部３４−１、３４−２によるパトロール処理のフローチャートである。図７において、パトロール処理は中央処理モジュール２２−１からのパトロール実行コマンドを受けて起動する。パトロール実行コマンドの発行タイミングは装置の起動時など適宜のタイミングで行なわれる。
【００４４】
図７において、ステップＳ１でデバイスアダプタに設けている構成テーブルからパトロール対象のディスク装置と論理ブロックアドレスを取得する。構成テーブルには予めデバイスアダプタの配下となるディスク装置及びパトロール対象となる論理ブロックアドレスのエリアが登録されている。
【００４５】
次にステップＳ２で論理ブロックアドレス単位にデバイスアダプタ上のバッファにブロックデータを読み込んでチェックコードをチェックする。このチェックによりステップＳ３でエラー検出が行なわれるとステップＳ６に進み、中央処理モジュールに対しエラー通知を行なってパトロール処理を中止する。
【００４６】
ステップＳ３でエラー検出がなければステップＳ４に進み、構成テーブルの進捗論理ブロックアドレスをセットした後、ステップＳ５でパトロール対象となった全ディスク装置のパトロール終了の有無をチェックし、パトロールが終了であればステップＳ７で中央処理モジュールに終了通知を行なった後に処理を終了する。
【００４７】
図８は、図３の中央処理モジュール２２−１による本発明のエラーリカバリ処理のフローチャートである。このエラーリカバリ処理はデバイスアダプタのパトロール処理によるエラー通知を受けて起動する。
【００４８】
エラーリカバリ処理が起動するとステップＳ１でエラー通知の内容からリカバリ可能なエラーか否かチェックする。パトロール処理は主に媒体欠陥の存在の有無を確認する処理であることから、もしエラー内容が媒体欠陥であった場合にはリカバリ不可能であることから処理を中止する。
【００４９】
リカバリ可能なエラーで有った場合にはステップＳ２に進み、正常ディスク装置におけるエラー箇所に対応したアドレスのデータをキャッシュ上に読み込みデバイスアダプタに対し、エラーを検出したディスク装置に対するリカバリコマンドを発行することで正常ディスク装置から読み込んだデータをエラーディスク装置に書き込んでエラーを解消する。
【００５０】
続いてステップＳ３でリカバリ正常終了を判別するとステップＳ４に進み、エラー内容がブロックデータの順番を示す識別子でブロックＩＤエラーか否かチェックする。ブロックＩＤエラーであった場合にはステップＳ５に進み、エラーと判別したブロックＩＤが示す正しい論理ブロックアドレスを検索し、ステップＳ６で検索した論理ブロックアドレスにおける正常ディスク装置とエラーディスク装置のデータを読み出して比較する。
【００５１】
ステップＳ７で比較したデータが不一致であればエラー論理ブロックアドレスにライト抜けがあると判断し、ステップＳ８で正常ディスク装置から正しいデータを読み込んでキャッシュ上に展開した後、エラー側のデバイスアダプタに対しエラーディスクのリカバリコマンドを発行してライト向けと判定されたアドレス位置に正しいブロックデータを書き込んで冗長構成を回復させる。
【００５２】
また本発明はディスクアレイサブシステムに設けたコンピュータで実行されるディスクアレイ制御プログラムを提供するものであり、このディスクアレイ制御プログラムは図８のエラーリカバリ処理のフローチャートに従った処理を実行する。
【００５３】
また本発明のディスクアレイ制御プログラムは図３に示した中央処理モジュール２２−１のプロセッサ３６により実行される。プロセッサ３６により実現されるコンピュータのハードウェア資源としてはＣＰＵ、ＲＡＭ、ハードディスクドライブなどを備える。ハードディスクドライブに本発明の第１リカバリ処理部４０及び第２リカバリ処理部４２を実行するディスクアレイ制御プログラムをローディングしており、コンピュータの起動時にハードウェアドライブからプログラムを読み出してＲＡＭ上に展開し、ＣＰＵにより実行することになる。
【００５４】
なお、本発明はその目的と利点を損なわない適宜の変形を含み、更に上記の実施形態における数値による限定は受けない。
【００５５】
ここで本発明の特徴を列挙すると次の付記のようになる。
【００５６】
（付記）
（付記１）
冗長構成をもつ複数のディスク装置を設けたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御装置のコンピュータに、
前記ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理ステップと、
前記エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、前記識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータをと比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する第2リカバリ処理ステップと、
を実行させることを特徴とするディスクアレイ制御プログラム。（１）
【００５７】
（付記２）
付記１記載のディスクアレイ制御プログラムに於いて、
前記エラー通知は、前記磁気ディスク装置に論理ブロックアドレス単位に書き込まれた巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを読み出して前記巡回検査コードとブロックＩＤをチェックして検出したエラー内容であり、
前記第2リカバリステップは、前記エラー通知の内容が前記ブロックＩＤの異常を示すエラーであることを判別した場合、前記ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消することを特徴とするディスクアレイ制御プログラム。（２）
【００５８】
（付記３）
付記１記載のディスクアレイ制御プログラムに於いて、
前記ディスクアレイ制御装置は、前記上位装置を接続するチャネルアダプタ、前記ディスク装置を接続するデバイスアダプタ、及び前記チャネルアダプタとデバイスアダプタの間に位置して前記上位装置からの入出力要求を処理する中央処理モジュールを有し、
前記コンピュータを前記中央処理モジュールに設けたことを特徴とするディスクアレイ制御プログラム。（３）
【００５９】
（付記４）
付記１記載のディスクアレイ制御プログラムに於いて、前記冗長構成のディスク装置は、同一データを同一アドレスに格納したＲＡＩＤレベルの冗長構成を備えた一対のディスク装置であることを特徴とするディスクアレイ制御プログラム。（４）
（付記５）
冗長構成をもつ複数のディスク装置を設けたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御方法に於いて、
前記ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理ステップと、
前記エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、前記識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデーを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する第2リカバリ処理ステップと、
を実行させることを特徴とするディスクアレイ制御方法。（５）
【００６０】
（付記６）
付記５記載のディスクアレイ制御方法に於いて、
前記エラー通知は、磁気ディスク装置に論理ブロックアドレス単位に書き込まれた巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを読み出して前記巡回検査コードとブロックＩＤをチェックして検出したエラー内容を有し、
前記第2リカバリステップは、前記エラー通知の内容が前記ブロックＩＤの異常を示すエラーであることを判別した場合、前記ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消することを特徴とするディスクアレイ制御方法。（６）
【００６１】
（付記７）
付記５記載のディスクアレイ制御方法に於いて、
前記ディスクアレイシステムは、前記上位装置を接続するチャネルアダプタ、前記ディスク装置を接続するデバイスアダプタ、及び前記チャネルアダプタとデバイスアダプタの間に位置して前記上位装置からの入出力要求を処理する中央処理モジュールを有し、
前記第１リカバリステップ及び第2リカバリステップを前記中央処理モジュールで実行することを特徴とするディスクアレイ制御方法。（７）
【００６２】
（付記８）
付記５記載のディスクアレイ制御方法に於いて、前記冗長構成のディスク装置は、同一データを同一アドレスに格納したＲＡＩＤレベルの冗長構成を備えた一対のディスク装置であることを特徴とするディスクアレイ制御方法。
【００６３】
（付記９）
冗長構成をもつ複数のディスク装置を備えたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御装置に於いて、
前記ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理部と、
前記エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、前記識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する第2リカバリ処理部と、
を備えたことを特徴とするディスクアレイ制御装置。（８）
【００６４】
（付記１０）
付記９記載のディスクアレイ制御装置に於いて、
前記上位装置を接続するチャネルアダプタ、前記ディスク装置を接続するデバイスアダプタ、及び前記チャネルアダプタとデバイスアダプタの間に位置して前記上位装置からの入出力要求を処理する中央処理モジュールを有し、
前記第１リカバリ処理部及び第2リカバリ処理部は前記中央処理モジュールに設けられ、
前記磁気ディスク装置は、論理ブロックアドレス単位に、巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを書き込んでおり、
前記デバイスアダプタは、自己の配下に接続された前記ディスク装置からブロックデータを読み出して前記巡回冗長検査コードとブロックＩＤをチェックし、エラーを検出した際に前記中央処理モジュールに通知するパトロール処理部を備えたことを特徴とするディスクアレイ制御装置。（９）
【００６５】
（付記１１）
付記１０記載のディスクアレイ制御装置に於いて、第２リカバリ処理部は、前記エラー通知の内容が前記ブロックＩＤの異常を示すエラーであることを判別した場合、前記ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーディスク装置と正常ディスク装置のデータと比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消することを特徴とするディスクアレイ制御装置。
【００６６】
（付記１２）
付記９記載の長ディスクアレイ制御装置に於いて、前記冗長構成のディスク装置は、同一データを同一アドレスに格納したＲＡＩＤレベルの冗長構成を備えた一対のディスク装置であることを特徴とするディスクアレイ制御装置。
【００６７】
（付記１３）
第一の記憶部と、第二の記憶部と、前記第一および第二の記憶部に接続され、前記第一および第二の記憶部へのデータ入出力を制御する制御部とを備える記憶装置に於いて、
前記記憶部のパトロール処理によりエラーが検出された場合、異常を検出したデータの位置情報に基づいて、第一の記憶部に記憶されたデータと第二の記憶部に記憶されたデータとの比較を行ない、前記比較の結果に基づいて一方の記憶部に記憶されたデータにより他方に記憶されたデータの復元を行うリカバリ処理部を備えることを特徴とする記憶装置。（１０）
【００６８】
（付記１４）
付記１３記載の記憶装置に於いて、
前記制御部は、上位装置を接続するチャネルアダプタ、前記第一の記憶部及び第２の記憶部を接続するデバイススアダプタ、及び前記チャネルアダプタとデバイスアダプタの間に位置して前記上位装置からの入出力要求を処理する中央処理モジュールを有し、
前記リカバリ処理部は前記中央処理モジュールに設けられ、
前記第一の記憶部及び第ニの記憶部は、論理ブロックアドレス単位に、巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを書き込んでおり、
前記デバイスアダプタは、自己の配下に接続された前記第一の記憶部及び第ニの記憶部からブロックデータを読み出して前記巡回冗長検査コードとブロックＩＤをチェックし、一方の記憶部からエラーを検出した際に前記中央処理モジュールに通知するパトロール処理部を備えたことを特徴とする記憶装置。
【００６９】
（付記１５）
付記１３記載の記憶装置に於いて、前記リカバリ処理部は、前記エラー通知の内容が前記ブロックＩＤの異常を示すエラーであることを判別した場合、前記ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーを検出した記憶部と正常な記憶部のデータを比較し、不一致の場合にライト抜けと判断して正常な記憶部から読出したデータをエラーを検出した記憶部に書き込んでライト抜けを解消することを特徴とする記憶装置。
【図面の簡単な説明】
【００７０】
【図１】本発明の原理説明図
【図２】本発明が適用されるディスクアレイサブシステムのブロック図
【図３】ＲＡＩＤ１の冗長構成を対象とした本発明によるディスクアレイ制御装置の実施形態のブロック図
【図４】図３のディスク装置から読み出されるブロックデータの説明図
【図５】プライマリディスク装置とセカンダリディスク装置の同時ライト処理でセカンダリ側にライト異常を生じた説明図
【図６】図５のライト異常に対する本発明による２段階のリカバリ処理の説明図
【図７】図３のデバイスアダプタによるパトロール処理のフローチャート
【図８】図３の中央処理モジュールによる本発明のエラーリカバリ処理のフローチャート
【図９】従来のディスクアレイサブシステムの説明図
【図１０】プライマリディスク装置とセカンダリディスク装置の同時ライト処理でセカンダリ側にライト異常を生じた場合の従来のリカバリ処理の説明図
【符号の説明】
【００７１】
１０：ディスクアレイサブシステム
１２：ディスクアレイ制御装置
１４−１、１４−２：デバイスエンクロージャ
１６−１、１６−２：ホスト
１８−１〜１８−４：チャネルアダプタ
２０−１〜２０−４：ルーター
２２−１〜２２−４：中央処理モジュール
２４−１〜２４−４：デバイスアダプタ
２６−１１〜２６−２ｎ：ディスク装置
２８：ディスクアレイ
３０：プライマリディスク装置
３２：セカンダリディスク装置
３４−１、３４−２：パトロール処理部
３６：プロセッサ
３８：キャッシュ処理部
４０：第１リカバリ処理部
４２：第２リカバリ処理部
４４：ブロックデータ
４６：巡回冗長検査コード（ＣＲＣコード）
４８：ブロックＩＤ（ＢＩＤ）
５０：データ領域
５２：チェックコード
【図１】
2006031332.tif 000003
【図２】
2006031332.tif 000004
【図３】
2006031332.tif 000005
【図４】
2006031332.tif 000006
【図５】
2006031332.tif 000007
【図６】
2006031332.tif 000008
【図７】
2006031332.tif 000009
【図８】
2006031332.tif 000010
【図９】
2006031332.tif 000011
【図１０】
2006031332.tif 000012
【手続補正書】
【提出日】平成16年7月26日(2004.7.26)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長構成をもつ複数のディスク装置を設けたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御プログラム、方法及び装置に関し、特にディスク装置のパトロール処理で検出したエラーを正常ディスク装置からのデータ書込みでリカバリするディスクアレイ制御プログラム、方法及び装置に関する。
【背景技術】
【０００２】
従来、ＲＡＩＤレベルの冗長構成をとるディスク装置を備えたディスクアレイアブシステムにあっては、主としてディスク装置における媒体異常を検出するためにパトロール処理を行っている。
【０００３】
図９は従来のディスクアレイサブシステム１００であり、ホスト１０１を接続するチャネルアダプタ１０２、ＲＡＩＤレベルの冗長構成をとるプライマリディスク装置１０８とセカンダリディスク装置１１０を接続するデバイスアダプタ１０６−１、１０６−２、及びチャネルアダプタ１０２とデバイスアダプタ１０６−１、１０６−２の間に配置されてホスト１０１からの入出力要求を処理する中央処理モジュール１０４を備えている。
【０００４】
ディスク装置のパトロール機能はデバイスアダプタ１０６−１、１０６−２に設けられ、中央処理モジュール１０４からパトロール実行コマンドを受領すると、デバイスアダプタ１０６−１、１０６−２は自分の配下にあるプライマリディスク装置１０８とセカンダリディスク装置１１０のパトロール処理を実行する。
【０００５】
デバイスアダプタ１０６−１、１０６−２のパトロール処理は、対象とするディスク装置から論理ブロックアドレス単位にブロックデータをデバイスアダプタ上のバッファに読出し、ブロックデータに含まれているチェックコードをチェックしてエラーの有無を判定する。ここでデバイスアダプタ１０６−２でセカンダリディスク装置１１０につきエラーを検出したとすると中央処理モジュール１０４にエラー通知して処理を終了する。
【０００６】
デバイスアダプタ１０６−２からエラー通知を受けた中央処理モジュール１０４は、媒体異常以外のリカバリ可能なエラーの場合は、正常ディスク装置であるプライマリディスク装置１０８のエラー箇所に対応した論理ブロックアドレスのデータを読み出してエラーを検出したセカンダリディスク装置１１０に書き込むことでエラーを解消する。
【特許文献１】特開２００３−３６１４６
【特許文献２】特開平０４−２８５７７３
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、このような従来のパトロール処理に基づくエラーのリカバリ処理にあっては、パトロール処理で検出したディスク装置のエラーを解消することはできるが、ホストからのライト要求に対するプライマリディスク装置とセカンダリディスク装置のライト処理の際に、例えばセカンダリディスク装置でライト異常を起して正しいアドレスのデータではなく、別のアドレスのデータを書替えていた場合、次の問題がある。
【０００８】
図９のプライマリディスク装置１０８とセカンダリディスク装置１１０はライト異常前のデータ格納状態を取り出して示しており、同一アドレスに同一データが格納されいる。この状態で、図１０（Ａ）のようにホストからのライト要求１１２により旧データＤ１を新データＤ１１に書替える時に、プライマリディスク装置１０８は正常に書替えられたが、セカンダリディスク装置１１０ではエラー１１４により別のアドレスのデータＤ３を新データＤ１１に書替えてしまったとする。
【０００９】
図１０（Ａ）の状態でセカンダリディスク装置１１０のパトロール処理が行われると、図１０（Ｂ）のようにデータＤ１１のチェックコードの異常１１６が判別され、正常なプライマリディスク装置１０８からエラー箇所に対応した正しいデータＤ３を読み出してセカンダリディスク装置１１０に書き込むことでエラーを解消するリカバリ処理１１８が行われる。
【００１０】
しかし、図１０（Ａ）で正しい書替えができなかったセカンダリディスク装置１１０のデータＤ１はそのまま書替え前の旧データとして残ったライト抜け１２０となり、プライマリディスク装置１０８の新データＤ１１と一致せず、この部分でデータの冗長性が失われたままとなり、従来のリカバリ処理では冗長性を回復させることが出来ないという問題がある。
【００１１】
本発明は、冗長構成をとるディスク装置の一方にライト抜けがあった場合、パトロール処理によるエラー通知に基づいてライト抜けを解消して冗長性を回復させるリカバリができるディスクアレイ制御プログラム、方法、及び装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
図１は本発明の原理説明図である。
【００１３】
（プログラム）
本発明は、ディスクアレイ制御プログラムを提供する。本発明のディスクアレイ制御プログラムは、冗長構成をもつ複数のディスク装置を設けたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御装置のコンピュータに、
ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、図１（Ｂ）のように、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理ステップと、
エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、図１（Ｃ）のように、識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータと比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する第2リカバリ処理ステップと、
を実行させることを特徴とする。
【００１４】
ここでパトロール処理に基づくエラー通知は、磁気ディスク装置に論理ブロックアドレス単位に書き込まれた巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを読み出して前記巡回冗長検査コードとブロックＩＤをチェックして検出したエラー内容であり、第2リカバリステップは、エラー通知の内容がブロックＩＤの異常を示すエラーであることを判別した場合、ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーディスク装置と正常ディスク装置のデータをと比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する。
【００１５】
またディスクアレイ制御装置は、上位装置を接続するチャネルアダプタ、ディスク装置を接続するデバイスアダプタ、及び前記チャネルアダプタとデバイスアダプタの間に位置して上位装置からの入出力要求を処理する中央処理モジュールを有し、ディスクアレイ制御プログラムを実行するコンピュータを中央処理モジュールに設けたことを特徴とする。
【００１６】
更に冗長構成のディスク装置は、同一データを同一アドレスに格納したＲＡＩＤレベルの冗長構成を備えた一対のディスク装置である。
【００１７】
（方法）
本発明はディスクアレイ制御方法を提供する。本発明は、冗長構成をもつ複数のディスク装置を設けたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御方法に於いて、
ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理ステップと、
エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、前記識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する第2リカバリ処理ステップと、
を実行させることを特徴とする。
【００１８】
このパトロール処理によるエラー通知は、磁気ディスク装置に論理ブロックアドレス単位に書き込まれた巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを読み出して巡回冗長検査コードとブロックＩＤをチェックして検出したエラー内容を有し、第2リカバリステップは、エラー通知の内容が前記ブロックＩＤの異常を示すエラーであることを判別した場合、ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する。
【００１９】
（装置）
本発明は、ディスクアレイ制御装置を提供する。本発明は、冗長構成をもつ複数のディスク装置を備えたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御装置に於いて、ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理部４０と、エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する第2リカバリ処理部４２とを備えたことを特徴とする。
【００２０】
ディスクアレイ制御装置は、上位装置を接続するチャネルアダプタ、ディスク装置を接続するデバイスアダプタ、及びチャネルアダプタとデバイスアダプタの間に位置して上位装置からの入出力要求を処理する中央処理モジュールを有し、第１リカバリ処理部４０及び第2リカバリ処理部４２は中央処理モジュールに設けられ、磁気ディスク装置は、論理ブロックアドレス単位に、巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを書き込んでおり、デバイスアダプタは、自己の配下に接続されたディスク装置からブロックデータを読み出して巡回冗長検査コードとブロックＩＤをチェックし、エラーを検出した際に中央処理モジュールに記エラー通知の内容がブロックＩＤの異常を示すエラーであることを判別した場合、ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーディスク装置と正常ディスク装置のデータと比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する。
【００２１】
更に本発明は、第一の記憶部と、第二の記憶部と、第一および第二の記憶部に接続され、第一および第二の記憶部へのデータ入出力を制御する制御部とを備える記憶装置に於いて、前記記憶部のパトロール処理によりエラーが検出された場合、異常を検出したデータの位置情報に基づいて、第一の記憶部に記憶されたデータと第二の記憶部に記憶されたデータとの比較を行ない、前記比較の結果に基づいて一方の記憶部に記憶されたデータにより他方に記憶されたデータの復元を行うリカバリ処理部を備えることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、冗長構成をとるディスク装置の一方にライト抜けがあった場合、パトロール処理によるエラー通知に基づいてライト抜けを解消して冗長性を回復させるリカバリができる。
【発明を実施するための最良の形態】
【００２３】
図２は、本発明が適用されるディスクアレイサブシステムのブロック図である。図２において、ディスクアレイサブシステム１０はディスクアレイ制御装置１２とデバイスエンクロージャ１４−１、１４−２で構成される。
【００２４】
ディスクアレイ制御装置１２にはチャネルアダプタ１８−１〜１８−４、ルーター２０−１、２０−２、中央処理モジュール２２−１〜２２−４、ルーター２０−３、２０−４及びデバイスアダプタ２４−１〜２４−４が設けられている。チャネルアダプタ１８−１〜１８−４に対してはホスト１６−１、１６−２が接続されている。
【００２５】
デバイスエンクロージャー１４−１、１４−２にはディスク装置２６−１１〜２６−１ｎ、２６−２１〜２６−２ｎが設けられており、複数のディスク装置の組み合わせにより冗長構成をとっており、本発明の実施形態にあってはＲＡＩＤ１の冗長構成をとった場合を例にとっている。なお、本発明は、ＲＡＩＤ１に限定されず、ミラー構成をとるものであれば、適宜のＲＡＩＤレベルに適用できる。
【００２６】
図３は、本発明によるディスクアレイ制御装置の実施形態のブロック図であり、ＲＡＩＤ１の冗長構成を対象としている。図３において、ディスクアレイ制御装置１２は図２の中央処理モジュール２２−１とデバイスアダプタ２４−１、２４−２の部分を取り出して示している。
【００２７】
またデバイスアダプタ２４−１、２４−２に対するディスクアレイ２８としては冗長構成をとる一対のディスク装置としてプライマリディスク装置３０とセカンダリディスク装置３２を示しており、両者には同一アドレスに同一データを格納している。
【００２８】
このプライマリディスク装置３０、セカンダリディスク装置３２による冗長構成の場合には、ホスト１６−１からのリード要求に対しては、例えば予め定めたプライマリディスク装置３０からリード応答を行なう。またホスト１６−１からのライト要求に対してはプライマリディスク装置３０とセカンダリディスク装置３２の両方に書き込むライト処理を行なう。
【００２９】
デバイスアダプタ２４−１、２４−２にはパトロール処理部３４−１、３４−２が設けられている。パトロール処理部３４−１、３４−２は中央処理モジュール２２−１からパトロール実行コマンドを受けた際に動作し、自分の配下にあるプライマリディスク装置３０及びセカンダリディスク装置３２のそれぞれに対しパトロール処理を実行する。
【００３０】
パトロール処理は自分の配下のディスク装置からブロックデータを読み出してデバイスアダプタ上のバッファに格納し、バッファに格納しているブロックデータのチェックコードをチェックしてエラーの有無を検出する。
【００３１】
パトロール処理部３４−１、３４−２によりプライマリディスク装置３０、セカンダリディスク装置３２のそれぞれから読み出されるブロックデータは図４に示すフォーマット構造を有する。図４において、ブロックデータ４４は先頭からＣＲＣコード（巡回冗長検査コード４６）、ブロックＩＤ４８及びデータ領域５０で構成される。
【００３２】
ＣＲＣコード４６はデータ領域５０のデータから生成されており、このＣＲＣコード４６を使用することでデータ領域５０に格納しているデータのエラーを検出することができる。ブロックＩＤ４８はディスク装置に対する書込位置の順番を示す値であり、正しい書込が行なわれていればブロック番号データを順番に読み出した場合には、連続番号として得られる。
【００３３】
このようなブロックデータ４４のうちＣＲＣコード４６とブロックＩＤ４８をチェックコード５２としており、この例では８バイト使用している。またデータ領域５０には５１２バイトが割当てられており、５１２バイトのデータ領域により１ブロックデータを構成し、このブロックデータはプライマリディスク装置３０及びセカンダリディスク装置３２を物理論理デバイスとして取り扱う際の論理ブロックアドレス（ＬＢＡ）で書き込み位置が指定される。
【００３４】
再び図３を参照するに、中央処理モジュール２２−１はプロセッサ３６とキャッシュ処理部３８を設けている。プロセッサ３６には本発明によるリカバリ処理のため第１リカバリ処理部４０と第２リカバリ処理部４２が設けられている。
【００３５】
第１リカバリ処理部４０はデバイスアダプタ２４−１、２４−２のパトロール処理部３４−１、３４−２で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読み出して、エラー検出が行なわれたディスク装置に書き込んでエラーを解消する。
【００３６】
第２リカバリ処理部４２は、第１リカバリ処理部４０におけるリカバリ成功後にエラー通知の内容がデータの書込順を示す識別子である図４のブロックデータ４４におけるブロックＩＤ４８の異常であることを判別した場合、即ち読み出したブロックデータ４４のブロックＩＤ４８が連番となっていないことを判別した場合、ブロックＩＤ４８の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、データ不一致の場合にライト抜けと判断し、正常ディスク装置から読み出したデータをエラーディスク装置に書き込んでライト抜けを解消する。
【００３７】
図５は、図３のプライマリディスク装置３０とセカンダリディスク装置３２の同時ライト処理でセカンダリ側にライト異常を生じた場合の説明図である。図５（Ａ）はライト異常を生ずる前のプライマリディスク装置３０とセカンダリディスク装置３２のデータ格納状態であり、同一アドレス位置に同一データが格納されている。
【００３８】
この状態で図５（Ｂ）に示すようにプライマリディスク装置３０とセカンダリディスク装置３２のデータＤ１１のアドレス位置にライト要求５４、５６が生じ、プライマリディスク装置３０についてはライト要求５４により正しいアドレス位置の旧データＤ１を新データＤ１１に書き換えているが、セカンダリディスク装置３２にあってはライト処理５６の時にエラー５８が発生し、別のアドレス位置のデータＤ３を誤って新データＤ１１に書き換えるライト異常を起している。
【００３９】
このようなセカンダリディスク装置３２に対するライト異常は、図３に示したデバイスアダプタ２４−１のパトロール処理部３４−１によるパトロール処理の実行で図６（Ｃ）のようにセカンダリディスク装置３２のデータＤ１１のデータブロックを読み出してチェックコードをチェックすると、ブロックＩＤから連番でないことが判別され、チェックコード異常によるエラー検出６０が行なわれる。
【００４０】
このエラー検出６０は図３の中央処理モジュール２２−１に通知され、プロセッサ３６の第１リカバリ処理部４０が動作し、正常ディスク装置であるプライマリディスク装置３０のエラー箇所に対応するデータＤ３を読み出してキャッシュ処理部３８のキャッシュ上に展開した後、エラー通知を行なってデバイスアダプタ２４−２にエラー箇所への書込を指示する第１リカバリ処理部４０によるリカバリ処理６２を行い、セカンダリディスク装置３２のエラー検出の対象となったデータＤ１１を正しいデータＤ３に書き換える。
【００４１】
続いて図６（Ｄ）のように図３の第２リカバリ処理部４２がパトロール処理部３４−２から受けたエラー通知の内容がブロックＩＤの異常である場合にはブロックＩＤから正しいアドレス位置の検索処理６４を行い、検索アドレスにおけるプライマリディスク装置３０のデータＤ１１とセカンダリディスク装置３２のデータＤ１を比較する比較処理６６を行なう。
【００４２】
比較処理６６によりプライマリディスク装置３０とセカンダリディスク装置３２のデータは不一致であると、エラー検出が行なわれているセカンダリディスク装置３２のデータＤ１はライト抜けであると判断され、図３の第２リカバリ処理部４２はプライマリディスク装置３０の検索アドレス位置のデータＤ１１を読み出してキャッシュ処理部３８のキャッシュ上に展開した後、エラー検出を行なっているデバイスアダプタ２４−２に対しデータＤ１１の検索アドレス位置への書込を指示してリカバリ処理６８を行なう。
【００４３】
この２回目のリカバリ処理６８により図６（Ｅ）のようにセカンダリディスク装置３２に残っていたライト抜けが解消され、プライマリディスク装置３０とセカンダリディスク装置３２のデータは同一位置で全て同一データとなる冗長構成の状態に回復させることができる。
【００４４】
図７は、図３のデバイスアダプタ２４−１、２４−２に設けているパトロール処理部３４−１、３４−２によるパトロール処理のフローチャートである。図７において、パトロール処理は中央処理モジュール２２−１からのパトロール実行コマンドを受けて起動する。パトロール実行コマンドの発行タイミングは装置の起動時など適宜のタイミングで行なわれる。
【００４５】
図７において、ステップＳ１でデバイスアダプタに設けている構成テーブルからパトロール対象のディスク装置と論理ブロックアドレスを取得する。構成テーブルには予めデバイスアダプタの配下となるディスク装置及びパトロール対象となる論理ブロックアドレスのエリアが登録されている。
【００４６】
次にステップＳ２で論理ブロックアドレス単位にデバイスアダプタ上のバッファにブロックデータを読み込んでチェックコードをチェックする。このチェックによりステップＳ３でエラー検出が行なわれるとステップＳ６に進み、中央処理モジュールに対しエラー通知を行なってパトロール処理を中止する。
【００４７】
ステップＳ３でエラー検出がなければステップＳ４に進み、構成テーブルの進捗論理ブロックアドレスをセットした後、ステップＳ５でパトロール対象となった全ディスク装置のパトロール終了の有無をチェックし、パトロールが終了であればステップＳ７で中央処理モジュールに終了通知を行なった後に処理を終了する。
【００４８】
図８は、図３の中央処理モジュール２２−１による本発明のエラーリカバリ処理のフローチャートである。このエラーリカバリ処理はデバイスアダプタのパトロール処理によるエラー通知を受けて起動する。
【００４９】
エラーリカバリ処理が起動するとステップＳ１でエラー通知の内容からリカバリ可能なエラーか否かチェックする。パトロール処理は主に媒体欠陥の存在の有無を確認する処理であることから、もしエラー内容が媒体欠陥であった場合にはリカバリ不可能であることから処理を中止する。
【００５０】
リカバリ可能なエラーで有った場合にはステップＳ２に進み、正常ディスク装置におけるエラー箇所に対応したアドレスのデータをキャッシュ上に読み込みデバイスアダプタに対し、エラーを検出したディスク装置に対するリカバリコマンドを発行することで正常ディスク装置から読み込んだデータをエラーディスク装置に書き込んでエラーを解消する。
【００５１】
続いてステップＳ３でリカバリ正常終了を判別するとステップＳ４に進み、エラー内容がブロックデータの順番を示す識別子でブロックＩＤエラーか否かチェックする。ブロックＩＤエラーであった場合にはステップＳ５に進み、エラーと判別したブロックＩＤが示す正しい論理ブロックアドレスを検索し、ステップＳ６で検索した論理ブロックアドレスにおける正常ディスク装置とエラーディスク装置のデータを読み出して比較する。
【００５２】
ステップＳ７で比較したデータが不一致であればエラー論理ブロックアドレスにライト抜けがあると判断し、ステップＳ８で正常ディスク装置から正しいデータを読み込んでキャッシュ上に展開した後、エラー側のデバイスアダプタに対しエラーディスクのリカバリコマンドを発行してライト向けと判定されたアドレス位置に正しいブロックデータを書き込んで冗長構成を回復させる。
【００５３】
また本発明はディスクアレイサブシステムに設けたコンピュータで実行されるディスクアレイ制御プログラムを提供するものであり、このディスクアレイ制御プログラムは図８のエラーリカバリ処理のフローチャートに従った処理を実行する。
【００５４】
また本発明のディスクアレイ制御プログラムは図３に示した中央処理モジュール２２−１のプロセッサ３６により実行される。プロセッサ３６により実現されるコンピュータのハードウェア資源としてはＣＰＵ、ＲＡＭ、ハードディスクドライブなどを備える。ハードディスクドライブに本発明の第１リカバリ処理部４０及び第２リカバリ処理部４２を実行するディスクアレイ制御プログラムをローディングしており、コンピュータの起動時にハードウェアドライブからプログラムを読み出してＲＡＭ上に展開し、ＣＰＵにより実行することになる。
【００５５】
なお、本発明はその目的と利点を損なわない適宜の変形を含み、更に上記の実施形態における数値による限定は受けない。
【００５６】
ここで本発明の特徴を列挙すると次の付記のようになる。
【００５７】
（付記）
（付記１）
冗長構成をもつ複数のディスク装置を設けたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御装置のコンピュータに、
前記ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理ステップと、
前記エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、前記識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータをと比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する第2リカバリ処理ステップと、
を実行させることを特徴とするディスクアレイ制御プログラム。（１）
【００５８】
（付記２）
付記１記載のディスクアレイ制御プログラムに於いて、
前記エラー通知は、前記磁気ディスク装置に論理ブロックアドレス単位に書き込まれた巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを読み出して前記巡回検査コードとブロックＩＤをチェックして検出したエラー内容であり、
前記第2リカバリステップは、前記エラー通知の内容が前記ブロックＩＤの異常を示すエラーであることを判別した場合、前記ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消することを特徴とするディスクアレイ制御プログラム。（２）
【００５９】
（付記３）
付記１記載のディスクアレイ制御プログラムに於いて、
前記ディスクアレイ制御装置は、前記上位装置を接続するチャネルアダプタ、前記ディスク装置を接続するデバイスアダプタ、及び前記チャネルアダプタとデバイスアダプタの間に位置して前記上位装置からの入出力要求を処理する中央処理モジュールを有し、
前記コンピュータを前記中央処理モジュールに設けたことを特徴とするディスクアレイ制御プログラム。（３）
【００６０】
（付記４）
付記１記載のディスクアレイ制御プログラムに於いて、前記冗長構成のディスク装置は、同一データを同一アドレスに格納したＲＡＩＤレベルの冗長構成を備えた一対のディスク装置であることを特徴とするディスクアレイ制御プログラム。（４）
（付記５）
冗長構成をもつ複数のディスク装置を設けたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御方法に於いて、
前記ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理ステップと、
前記エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、前記識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデーを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する第2リカバリ処理ステップと、
を実行させることを特徴とするディスクアレイ制御方法。（５）
【００６１】
（付記６）
付記５記載のディスクアレイ制御方法に於いて、
前記エラー通知は、磁気ディスク装置に論理ブロックアドレス単位に書き込まれた巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを読み出して前記巡回検査コードとブロックＩＤをチェックして検出したエラー内容を有し、
前記第2リカバリステップは、前記エラー通知の内容が前記ブロックＩＤの異常を示すエラーであることを判別した場合、前記ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消することを特徴とするディスクアレイ制御方法。（６）
【００６２】
（付記７）
付記５記載のディスクアレイ制御方法に於いて、
前記ディスクアレイシステムは、前記上位装置を接続するチャネルアダプタ、前記ディスク装置を接続するデバイスアダプタ、及び前記チャネルアダプタとデバイスアダプタの間に位置して前記上位装置からの入出力要求を処理する中央処理モジュールを有し、
前記第１リカバリステップ及び第2リカバリステップを前記中央処理モジュールで実行することを特徴とするディスクアレイ制御方法。（７）
【００６３】
（付記８）
付記５記載のディスクアレイ制御方法に於いて、前記冗長構成のディスク装置は、同一データを同一アドレスに格納したＲＡＩＤレベルの冗長構成を備えた一対のディスク装置であることを特徴とするディスクアレイ制御方法。
【００６４】
（付記９）
冗長構成をもつ複数のディスク装置を備えたディスクアレイシステムに対する上位装置からの入出力要求を処理するディスクアレイ制御装置に於いて、
前記ディスク装置のパトロール処理で検出されたエラー通知を受けた際に、正常ディスク装置からエラー箇所に対応するデータを読出してエラーディスク装置に書き込んでエラーを解消する第１リカバリ処理部と、
前記エラー通知の内容がデータの書込順を示す識別子の異常であることを判別した場合、前記識別子の示す正しい書込アドレスを検索してエラーディスク装置と正常ディスク装置のデータを比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消する第2リカバリ処理部と、
を備えたことを特徴とするディスクアレイ制御装置。（８）
【００６５】
（付記１０）
付記９記載のディスクアレイ制御装置に於いて、
前記上位装置を接続するチャネルアダプタ、前記ディスク装置を接続するデバイスアダプタ、及び前記チャネルアダプタとデバイスアダプタの間に位置して前記上位装置からの入出力要求を処理する中央処理モジュールを有し、
前記第１リカバリ処理部及び第2リカバリ処理部は前記中央処理モジュールに設けられ、
前記磁気ディスク装置は、論理ブロックアドレス単位に、巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを書き込んでおり、
前記デバイスアダプタは、自己の配下に接続された前記ディスク装置からブロックデータを読み出して前記巡回冗長検査コードとブロックＩＤをチェックし、エラーを検出した際に前記中央処理モジュールに通知するパトロール処理部を備えたことを特徴とするディスクアレイ制御装置。（９）
【００６６】
（付記１１）
付記１０記載のディスクアレイ制御装置に於いて、第２リカバリ処理部は、前記エラー通知の内容が前記ブロックＩＤの異常を示すエラーであることを判別した場合、前記ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーディスク装置と正常ディスク装置のデータと比較し、不一致の場合にライト抜けと判断して正常ディスク装置から読出したデータをエラーディスク装置に書き込んでライト抜けを解消することを特徴とするディスクアレイ制御装置。
【００６７】
（付記１２）
付記９記載の長ディスクアレイ制御装置に於いて、前記冗長構成のディスク装置は、同一データを同一アドレスに格納したＲＡＩＤレベルの冗長構成を備えた一対のディスク装置であることを特徴とするディスクアレイ制御装置。
【００６８】
（付記１３）
第一の記憶部と、第二の記憶部と、前記第一および第二の記憶部に接続され、前記第一および第二の記憶部へのデータ入出力を制御する制御部とを備える記憶装置に於いて、
前記記憶部のパトロール処理によりエラーが検出された場合、異常を検出したデータの位置情報に基づいて、第一の記憶部に記憶されたデータと第二の記憶部に記憶されたデータとの比較を行ない、前記比較の結果に基づいて一方の記憶部に記憶されたデータにより他方に記憶されたデータの復元を行うリカバリ処理部を備えることを特徴とする記憶装置。（１０）
【００６９】
（付記１４）
付記１３記載の記憶装置に於いて、
前記制御部は、上位装置を接続するチャネルアダプタ、前記第一の記憶部及び第２の記憶部を接続するデバイススアダプタ、及び前記チャネルアダプタとデバイスアダプタの間に位置して前記上位装置からの入出力要求を処理する中央処理モジュールを有し、
前記リカバリ処理部は前記中央処理モジュールに設けられ、
前記第一の記憶部及び第ニの記憶部は、論理ブロックアドレス単位に、巡回冗長検査コード、ブロックＩＤ及びデータから構成されたブロックデータを書き込んでおり、
前記デバイスアダプタは、自己の配下に接続された前記第一の記憶部及び第ニの記憶部からブロックデータを読み出して前記巡回冗長検査コードとブロックＩＤをチェックし、一方の記憶部からエラーを検出した際に前記中央処理モジュールに通知するパトロール処理部を備えたことを特徴とする記憶装置。
【００７０】
（付記１５）
付記１３記載の記憶装置に於いて、前記リカバリ処理部は、前記エラー通知の内容が前記ブロックＩＤの異常を示すエラーであることを判別した場合、前記ブロックＩＤの示す正しい論理ブロックアドレスを検索してエラーを検出した記憶部と正常な記憶部のデータを比較し、不一致の場合にライト抜けと判断して正常な記憶部から読出したデータをエラーを検出した記憶部に書き込んでライト抜けを解消することを特徴とする記憶装置。
【図面の簡単な説明】
【００７１】
【図１】本発明の原理説明図
【図２】本発明が適用されるディスクアレイサブシステムのブロック図
【図３】ＲＡＩＤ１の冗長構成を対象とした本発明によるディスクアレイ制御装置の実施形態のブロック図
【図４】図３のディスク装置から読み出されるブロックデータの説明図
【図５】プライマリディスク装置とセカンダリディスク装置の同時ライト処理でセカンダリ側にライト異常を生じた説明図
【図６】図５のライト異常に対する本発明による２段階のリカバリ処理の説明図
【図７】図３のデバイスアダプタによるパトロール処理のフローチャート
【図８】図３の中央処理モジュールによる本発明のエラーリカバリ処理のフローチャート
【図９】従来のディスクアレイサブシステムの説明図
【図１０】プライマリディスク装置とセカンダリディスク装置の同時ライト処理でセカンダリ側にライト異常を生じた場合の従来のリカバリ処理の説明図
【符号の説明】
【００７２】
１０：ディスクアレイサブシステム
１２：ディスクアレイ制御装置
１４−１、１４−２：デバイスエンクロージャ
１６−１、１６−２：ホスト
１８−１〜１８−４：チャネルアダプタ
２０−１〜２０−４：ルーター
２２−１〜２２−４：中央処理モジュール
２４−１〜２４−４：デバイスアダプタ
２６−１１〜２６−２ｎ：ディスク装置
２８：ディスクアレイ
３０：プライマリディスク装置
３２：セカンダリディスク装置
３４−１、３４−２：パトロール処理部
３６：プロセッサ
３８：キャッシュ処理部
４０：第１リカバリ処理部
４２：第２リカバリ処理部
４４：ブロックデータ
４６：巡回冗長検査コード（ＣＲＣコード）
４８：ブロックＩＤ（ＢＩＤ）
５０：データ領域
５２：チェックコード