(57)【要約】  【課題】  多重ストレージ装置において異常が検出されても、データを復旧することができる能力を向上する多重化されたストレージ装置を提供することを目的とする。  【解決手段】  各復調データ対して復調エラーフラグの有効／無効を確認し、復調エラーフラグが有効である時は、残りのストレージ装置のデータを復調して得た同じ位置となる復調データの復調エラーフラグの有効／無効を確認し、復調エラーフラグが無効である復調データがあれば、復調エラーフラグが無効である復調データをマスターデータの復調エラーフラグが有効であった復調データと入れ替えて再構築データをとすることにより、同じデータを記録している全てのストレージ装置から読み出したデータにおいて異常が検出された場合であっても、データを復旧することができる能力を向上する多重化されたストレージ装置を提供することができる。【選択図】  図２
2006092221.tif 000002
【特許請求の範囲】
【請求項１】
ミラーリングにより同じデータが格納され、符号語単位で復調データと復調エラーフラグとを出力可能な複数のストレージ装置と、
前記複数のストレージ装置に格納されているデータの読み出し処理や前記複数のストレージ装置へデータを格納する書き込み処理を指示するファイルシステムと、
前記複数のストレージ装置から符号語単位で復調データと復調エラーフラグを取得するための複数のストレージインターフェースと、
前記ストレージインターフェースを介して符号語単位で取得した復調データと復調エラーフラグを記憶するメモリと、
前記メモリに符号語単位で記憶された復調データと復調エラーフラグを読み出し、誤りを訂正する誤り訂正手段と、
前記ファイルシステムから出力された前記複数のストレージ装置に対するアクセスの要求を取得し、前記複数のストレージ装置から読み出したデータを前記ファイルシステムに出力するためのホストインターフェースと、
前記誤り訂正手段で誤り訂正した結果、前記複数のストレージ装置に属する第１のストレージ装置の符号語が誤り訂正不能であった場合、前記ファイルシステムから前記第１のストレージ装置と同じ内容が格納されている前記複数のストレージ装置に属する他のストレージ装置を検知し、前記第１のストレージ装置で誤り訂正不能であった符号語に相当する前記他のストレージ装置の符号語を取得するよう指示するコントローラと、
前記第１のストレージ装置および前記他のストレージ装置の同じ符号語が共に誤り訂正不能であった場合、前記第１のストレージ装置で誤り訂正不能であった符号語の復調データに対する復調エラーフラグの位置と、前記他のストレージ装置で誤り訂正不能であった符号語の復調データに対する復調エラーフラグの位置を検出し、前記第１のストレージ装置と前記他のストレージ装置の復調エラーフラグが無効であった復調データを組み合わせて復調データを再構築するデータ生成手段と
を備えることを特徴とする多重化されたストレージ装置。
【請求項２】
前記データ生成手段は、
前記メモリに記憶された前記第１のストレージ装置および前記他のストレージ装置の復調データと復調エラーフラグをそれぞれ符号語単位で取得し、前記符号語のうち基準となる符号語をマスターデータとして選択し、残りをスレーブデータと設定するマスターデータ選択手段と、
前記マスターデータ選択手段で割り当てたマスターデータの復調エラーフラグを検出し、復調エラーフラグが有効となる復調データの位置をエラー検出位置として出力するマスターデータエラー検出手段と、
前記マスターデータ選択手段で割り当てたスレーブデータに対し、前記マスターデータエラー検出手段から出力されたエラー検出位置と同じ位置の復調エラーフラグを検出し、復調エラーフラグが無効であった場合にコピー指示信号を生成するスレーブデータエラー検出手段と、
前記マスターデータエラー検出手段が検索したマスターデータの復調データ数をカウントし、予め定められた検索復調データ数に達するとデータ出力指示信号を生成するデータカウンタと、
前記スレーブデータエラー検出手段で生成されたコピー指示信号で示されるマスターデータの復調データをスレーブデータの復調データに置き換えることによって復調データを再構築すると共に、前記データカウンタで生成されたデータ出力指示信号を受け取り、再構築データを出力するデータ再構築手段と
を備えることを特徴とする請求項１に記載の多重化されたストレージ装置。
【請求項３】
前記マスターデータ選択手段は、外部からマスターデータとスレーブデータの設定が可能であることを特徴とする請求項２に記載の多重化されたストレージ装置。
【請求項４】
ミラーリングにより同じデータが格納され、符号語単位で復調データと復調エラーフラグとを出力可能な複数のストレージ装置と、
前記複数のストレージ装置に格納されているデータの読み出し処理や前記複数のストレージ装置へデータを格納する書き込み処理を指示するファイルシステムと、
前記複数のストレージ装置から符号語単位で復調データと復調エラーフラグを取得するための複数のストレージインターフェースと、
前記ストレージインターフェースを介して符号語単位で取得した復調データと復調エラーフラグを記憶するメモリと、
前記メモリに符号語単位で記憶された復調データと復調エラーフラグを読み出し、誤りを訂正する誤り訂正手段と、
前記ファイルシステムから出力された前記複数のストレージ装置に対するアクセスの要求を取得し、前記複数のストレージ装置から読み出したデータを前記ファイルシステムに出力するためのホストインターフェースと、
前記誤り訂正手段で誤り訂正した結果、前記複数のストレージ装置に属する第１のストレージ装置の符号語が誤り訂正不能であった場合、前記ファイルシステムから前記第１のストレージ装置と同じ内容が格納されている前記複数のストレージ装置に属する他のストレージ装置を検知し、前記第１のストレージ装置で誤り訂正不能であった符号語に相当する前記他のストレージ装置の符号語を取得するよう指示するコントローラと、
前記第１のストレージ装置および前記他のストレージ装置の同じ符号語が共に誤り訂正不能であった場合、前記第１のストレージ装置で誤り訂正不能であった符号語と前記他のストレージ装置で誤り訂正不能であった符号語を復調データ単位で比較し、復調データの値が異なる場合、復調データの値が異なる復調エラーフラグを検出し、復調エラーフラグが無効であれば、復調エラーフラグの検出された復調データの位置が遠い方の復調データを用いて復調データを再構築するデータ生成手段と
を備えることを特徴とする多重化されたストレージ装置。
【請求項５】
前記データ生成手段は、
前記メモリに記憶された前記第１のストレージ装置および前記他のストレージ装置の復調データと復調エラーフラグをそれぞれ符号語単位で取得し、前記符号語のうち基準となる符号語をマスターデータとして選択し、残りをスレーブデータと設定するマスターデータ選択手段と、
前記マスターデータ選択手段で割り当てたマスターデータとスレーブデータにおける復調データの値の比較を行うデータ比較手段と、
前記データ比較手段が比較した復調データ数をカウントし、予め定められた比較復調データ数に達するとデータ出力指示信号を生成するデータカウンタと、
復調エラーフラグを検出する方向を指定するエラー検出方向指定手段と、
復調エラーフラグを検出する距離を指定するエラー検出距離指定手段と、
前記マスターデータを受け取り、前記データ比較手段で値が異なった前記マスターデータの復調エラーフラグを検出し、復調エラーフラグが無効であった場合に、前記エラー検出方向指定手段と前記エラー検出距離指定手段に設定された範囲で復調エラーフラグを再検出し、復調エラーフラグが有効である復調データの位置をマスターエラー検出位置として出力するマスターデータエラー検出手段と、
前記スレーブデータを受け取り、前記データ比較手段で値が異なった前記スレーブデータの復調エラーフラグを検出し、復調エラーフラグが無効であった場合に、前記エラー検出方向指定手段と前記エラー検出距離指定手段に設定された範囲で復調エラーフラグを再検出し、復調エラーフラグが有効である復調データの位置をスレーブエラー検出位置として出力するスレーブデータエラー検出手段と、
前記マスターエラー検出位置と前記スレーブエラー検出位置を受け取り、それぞれのエラー検出位置を比較し、検出した復調エラーフラグの復調データの位置が比較した復調データから遠い方の復調データに対しコピー指示信号を生成するエラー位置比較手段と、
前記エラー位置比較手段で生成されたコピー指示信号で示される復調エラーフラグの検出位置が近い方の復調データを復調エラーフラグの検出位置が遠い方の復調データに置き換えることによって復調データを再構築すると共に、前記データカウンタで生成されたデータ出力指示信号を受け取り、再構築した復調データを出力するデータ再構築手段と
を備えることを特徴とする請求項４に記載の多重化されたストレージ装置。
【請求項６】
前記マスターデータ選択手段は、外部からマスターデータとスレーブデータの設定が可能であることを特徴とする請求項５に記載の多重化されたストレージ装置。
【請求項７】
前記エラー検出方向指定手段は、外部から復調エラーフラグを検出する方向の設定が可能であることを特徴とする請求項５に記載の多重化されたストレージ装置。
【請求項８】
前記エラー検出距離指定手段は、外部から復調エラーフラグを検出する距離の設定が可能であることを特徴とする請求項５に記載の多重化されたストレージ装置。
【請求項９】
ミラーリングにより同じデータが格納され、符号語単位で復調データと復調エラーフラグとを出力可能な複数のストレージ装置と、
前記複数のストレージ装置に格納されているデータの読み出し処理や前記複数のストレージ装置へデータを格納する書き込み処理を指示するファイルシステムと、
前記複数のストレージ装置から符号語単位で復調データと復調エラーフラグを取得するための複数のストレージインターフェースと、
前記ストレージインターフェースを介して符号語単位で取得した復調データと復調エラーフラグを記憶するメモリと、
前記メモリに符号語単位で記憶された復調データと復調エラーフラグを読み出し、誤りを訂正する誤り訂正手段と、
前記ファイルシステムから出力された前記複数のストレージ装置に対するアクセスの要求を取得し、前記複数のストレージ装置から読み出したデータを前記ファイルシステムに出力するためのホストインターフェースと、
前記誤り訂正手段で誤り訂正した結果、前記複数のストレージ装置に属する第１のストレージ装置の符号語が誤り訂正不能であった場合、前記ファイルシステムから前記第１のストレージ装置と同じ内容が格納されている前記複数のストレージ装置に属する他のストレージ装置を検知し、前記第１のストレージ装置で誤り訂正不能であった符号語に相当する前記他のストレージ装置の符号語を取得するよう指示するコントローラと、
前記第１のストレージ装置および前記他のストレージ装置の同じ符号語が共に誤り訂正不能であった場合、前記第１のストレージ装置で誤り訂正不能であった符号語の復調データに対する復調エラーフラグの位置と、前記他のストレージ装置で誤り訂正不能であった符号語の復調データに対する復調エラーフラグの位置を検出し、前記第１のストレージ装置と前記他のストレージ装置の復調エラーフラグが無効であった復調データを組み合わせて復調データを再構築し、さらに、前記第１のストレージ装置で誤り訂正不能であった符号語と前記他のストレージ装置で誤り訂正不能であった符号語を復調データ単位で比較し、復調データの値が異なる場合、復調データの値が異なる復調エラーフラグを検出し、復調エラーフラグが無効であれば、復調エラーフラグの検出された復調データの位置が遠い方の復調データを用いて復調データを再構築するデータ生成手段と
を備えることを特徴とする多重化されたストレージ装置。
【請求項１０】
前記データ生成手段は、
前記メモリに記憶された前記第１のストレージ装置および前記他のストレージ装置の復調データと復調エラーフラグをそれぞれ符号語単位で取得し、前記符号語のうち基準となる符号語をマスターデータとして選択し、残りをスレーブデータと設定するマスターデータ選択手段と、
前記マスターデータ選択手段で割り当てたマスターデータとスレーブデータにおける復調データの値の比較を行うデータ比較手段と、
前記データ比較手段が比較した復調データ数をカウントし、予め定められた比較復調データ数に達するとデータ出力指示信号を生成するデータカウンタと、
復調エラーフラグを検出する方向を指定するエラー検出方向指定手段と、
復調エラーフラグを検出する距離を指定するエラー検出距離指定手段と、
前記マスターデータを受け取り、前記データ比較手段で値が異なった前記マスターデータの復調エラーフラグを検出し、復調エラーフラグが有効であった場合に復調エラーフラグが有効となる復調データの位置をエラー検出位置として出力し、復調エラーフラグが無効であった場合に、前記エラー検出方向指定手段と前記エラー検出距離指定手段に設定された範囲で復調エラーフラグを再検出し、復調エラーフラグが有効である復調データの位置をマスターエラー検出位置として出力するマスターデータエラー検出手段と、
前記スレーブデータを受け取り、前記データ比較手段で値が異なった前記スレーブデータの復調エラーフラグを検出し、前記マスターデータエラー検出手段から出力されたエラー検出位置と同じ復調データの位置での復調エラーフラグが有効であった場合に第１のコピー指示信号を生成し、復調エラーフラグが無効であった場合に、前記エラー検出方向指定手段と前記エラー検出距離指定手段に設定された範囲で復調エラーフラグを再検出し、復調エラーフラグが有効である復調データの位置をスレーブエラー検出位置として出力するスレーブデータエラー検出手段と、
前記マスターエラー検出位置と前記スレーブエラー検出位置を受け取り、それぞれのエラー検出位置を比較し、検出した復調エラーフラグの復調データの位置が比較した復調データから遠い方の復調データに対し第２のコピー指示信号を生成するエラー位置比較手段と、
前記スレーブデータエラー検出手段で生成された第１のコピー指示信号で示されるマスターデータの復調データをスレーブデータの復調データに置き換えることによって復調データを再構築し、さらに、前記エラー位置比較手段で生成された第２のコピー指示信号で示される復調エラーフラグの検出位置が近い方の復調データを復調エラーフラグの検出位置が遠い方の復調データに置き換えることによって復調データを再構築すると共に、前記データカウンタで生成されたデータ出力指示信号を受け取り、再構築した復調データを出力するデータ再構築手段と
を備えることを特徴とする請求項９に記載の多重化されたストレージ装置。
【請求項１１】
前記マスターデータ選択手段は、外部からマスターデータとスレーブデータの設定が可能であることを特徴とする請求項１０に記載の多重化されたストレージ装置。
【請求項１２】
前記エラー検出方向指定手段は、外部から復調エラーフラグを検出する方向の設定が可能であることを特徴とする請求項１０に記載の多重化されたストレージ装置。
【請求項１３】
前記エラー検出距離指定手段は、外部から復調エラーフラグを検出する距離の設定が可能であることを特徴とする請求項１０に記載の多重化されたストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データリード時にエラーの発生したデータの復旧を自動的に実施する多重化されたストレージ装置に関するものである。
【背景技術】
【０００２】
従来の二重化されたストレージ装置は、処理装置であるＣＰＵが必要に応じて供給するデータリードアクセスやデータライトアクセスを受信し、マスターと呼ばれるストレージ装置と（以降、マスター装置と称す）とスレーブと呼ばれるストレージ装置（以降、スレーブ装置と称す）内に設けられたハードディスク装置に対してデータの読み出し、書き込みを実行するデータファイル制御部と、マスター装置およびスレーブ装置内におけるそれぞれのハードディスク装置の書き込み状態を示すデータ終了指示部と、データ終了指示部から受信した信号によってデータの書き込み状態を検出するデータ終了解析部と、データ終了解析部で判断した結果、データの書き込みが正常に終了しなかった場合に正常に書き込みが実施されたストレージ装置からデータを読み出し、異常書き込みのあったストレージ装置に対してそのデータを転送するコピー指示部を備え、マスター装置、スレーブ装置それぞれに同じデータを記録しておき、読み出しまたは書き込み時にマスター装置、スレーブ装置のいずれかに異常を検知すると、異常の発生していないストレージ装置からデータを復旧し、信頼性を向上する構造が要求されている。
【０００３】
そこで、従来の二重化されたストレージ装置では、マスター装置で異常書き込みが生じた不良記憶領域の代替処理とデータの復旧処理とを実施する第１のディスク制御部と、スレーブ装置で異常書き込みが生じた不良記憶領域の代替処理とデータの復旧処理とを実施する第２のディスク制御部と備えてマスター装置およびスレーブ装置で異常書き込みが生じた場合でも、装置を止めることなくデータの代替処理とデータの復旧を可能とする構成を有している（例えば、特許文献１参照）。
【０００４】
さらに、従来のニ重化されたストレージ装置は、読み出しデータの整合を比較して判定するデータ比較手段を設けて、読み出し時にマスター装置、スレーブ装置のいずれかに異常を検知すると、データの整合性を判定し、不整合であった場合は、異常の発生していないストレージ装置から読み出したデータを書き込むことによりデータの整合をとり、データの復旧を可能とする構成を有している（例えば、特許文献２参照）。
【特許文献１】特開平１０−２２２３１５号公報
【特許文献２】特開平１１−１４３７５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前記従来の構成では、同じデータを記録している全てのストレージ装置において再生したデータから異常が検出された場合には、データを復旧することができず、データを消失してしまうという課題を有していた。
【０００６】
本発明は、従来の課題を解決するもので、同じデータを記録している全てのストレージ装置から読み出したデータにおいて異常が検出された場合であっても、データを復旧することができる能力を向上する多重化されたストレージ装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記従来の目的を達成するために、本発明の請求項１記載の多重化されたストレージ装置は、ミラーリングにより同じデータが格納され、符号語単位で復調データと復調エラーフラグとを出力可能な複数のストレージ装置と、前記複数のストレージ装置に格納されているデータの読み出し処理や前記複数のストレージ装置へデータを格納する書き込み処理を指示するファイルシステムと、前記複数のストレージ装置から符号語単位で復調データと復調エラーフラグを取得するための複数のストレージインターフェースと、前記ストレージインターフェースを介して符号語単位で取得した復調データと復調エラーフラグを記憶するメモリと、前記メモリに符号語単位で記憶された復調データと復調エラーフラグを読み出し、誤りを訂正する誤り訂正手段と、前記ファイルシステムから出力された前記複数のストレージ装置に対するアクセスの要求を取得し、前記複数のストレージ装置から読み出したデータを前記ファイルシステムに出力するためのホストインターフェースと、前記誤り訂正手段で誤り訂正した結果、前記複数のストレージ装置に属する第１のストレージ装置の符号語が誤り訂正不能であった場合、前記ファイルシステムから前記第１のストレージ装置と同じ内容が格納されている前記複数のストレージ装置に属する他のストレージ装置を検知し、前記第１のストレージ装置で誤り訂正不能であった符号語に相当する前記他のストレージ装置の符号語を取得するよう指示するコントローラと、前記第１のストレージ装置および前記他のストレージ装置の同じ符号語が共に誤り訂正不能であった場合、前記第１のストレージ装置で誤り訂正不能であった符号語の復調データに対する復調エラーフラグの位置と、前記他のストレージ装置で誤り訂正不能であった符号語の復調データに対する復調エラーフラグの位置を検出し、前記第１のストレージ装置と前記他のストレージ装置の復調エラーフラグが無効であった復調データを組み合わせて復調データを再構築するデータ生成手段とを備えることを特徴とする。
【０００８】
請求項２記載の多重化されたストレージ装置は、請求項１に記載の多重化されたストレージ装置において、前記データ生成手段は、前記メモリに記憶された前記第１のストレージ装置および前記他のストレージ装置の復調データと復調エラーフラグをそれぞれ符号語単位で取得し、前記符号語のうち基準となる符号語をマスターデータとして選択し、残りをスレーブデータと設定するマスターデータ選択手段と、前記マスターデータ選択手段で割り当てたマスターデータの復調エラーフラグを検出し、復調エラーフラグが有効となる復調データの位置をエラー検出位置として出力するマスターデータエラー検出手段と、前記マスターデータ選択手段で割り当てたスレーブデータに対し、前記マスターデータエラー検出手段から出力されたエラー検出位置と同じ位置の復調エラーフラグを検出し、復調エラーフラグが無効であった場合にコピー指示信号を生成するスレーブデータエラー検出手段と、前記マスターデータエラー検出手段が検索したマスターデータの復調データ数をカウントし、予め定められた検索復調データ数に達するとデータ出力指示信号を生成するデータカウンタと、前記スレーブデータエラー検出手段で生成されたコピー指示信号で示されるマスターデータの復調データをスレーブデータの復調データに置き換えることによって復調データを再構築すると共に、前記データカウンタで生成されたデータ出力指示信号を受け取り、再構築データを出力するデータ再構築手段とを備えることを特徴とする。
【０００９】
請求項３記載の多重化されたストレージ装置は、請求項２に記載の多重化されたストレージ装置において、前記マスターデータ選択手段は、外部からマスターデータとスレーブデータの設定が可能であることを特徴とする。
請求項４記載の多重化されたストレージ装置は、ミラーリングにより同じデータが格納され、符号語単位で復調データと復調エラーフラグとを出力可能な複数のストレージ装置と、前記複数のストレージ装置に格納されているデータの読み出し処理や前記複数のストレージ装置へデータを格納する書き込み処理を指示するファイルシステムと、前記複数のストレージ装置から符号語単位で復調データと復調エラーフラグを取得するための複数のストレージインターフェースと、前記ストレージインターフェースを介して符号語単位で取得した復調データと復調エラーフラグを記憶するメモリと、前記メモリに符号語単位で記憶された復調データと復調エラーフラグを読み出し、誤りを訂正する誤り訂正手段と、前記ファイルシステムから出力された前記複数のストレージ装置に対するアクセスの要求を取得し、前記複数のストレージ装置から読み出したデータを前記ファイルシステムに出力するためのホストインターフェースと、前記誤り訂正手段で誤り訂正した結果、前記複数のストレージ装置に属する第１のストレージ装置の符号語が誤り訂正不能であった場合、前記ファイルシステムから前記第１のストレージ装置と同じ内容が格納されている前記複数のストレージ装置に属する他のストレージ装置を検知し、前記第１のストレージ装置で誤り訂正不能であった符号語に相当する前記他のストレージ装置の符号語を取得するよう指示するコントローラと、前記第１のストレージ装置および前記他のストレージ装置の同じ符号語が共に誤り訂正不能であった場合、前記第１のストレージ装置で誤り訂正不能であった符号語と前記他のストレージ装置で誤り訂正不能であった符号語を復調データ単位で比較し、復調データの値が異なる場合、復調データの値が異なる復調エラーフラグを検出し、復調エラーフラグが無効であれば、復調エラーフラグの検出された復調データの位置が遠い方の復調データを用いて復調データを再構築するデータ生成手段とを備えることを特徴とする。
【００１０】
請求項５記載の多重化されたストレージ装置は、請求項４に記載の多重化されたストレージ装置において、前記データ生成手段は、前記メモリに記憶された前記第１のストレージ装置および前記他のストレージ装置の復調データと復調エラーフラグをそれぞれ符号語単位で取得し、前記符号語のうち基準となる符号語をマスターデータとして選択し、残りをスレーブデータと設定するマスターデータ選択手段と、前記マスターデータ選択手段で割り当てたマスターデータとスレーブデータにおける復調データの値の比較を行うデータ比較手段と、前記データ比較手段が比較した復調データ数をカウントし、予め定められた比較復調データ数に達するとデータ出力指示信号を生成するデータカウンタと、復調エラーフラグを検出する方向を指定するエラー検出方向指定手段と、復調エラーフラグを検出する距離を指定するエラー検出距離指定手段と、前記マスターデータを受け取り、前記データ比較手段で値が異なった前記マスターデータの復調エラーフラグを検出し、復調エラーフラグが無効であった場合に、前記エラー検出方向指定手段と前記エラー検出距離指定手段に設定された範囲で復調エラーフラグを再検出し、復調エラーフラグが有効である復調データの位置をマスターエラー検出位置として出力するマスターデータエラー検出手段と、前記スレーブデータを受け取り、前記データ比較手段で値が異なった前記スレーブデータの復調エラーフラグを検出し、復調エラーフラグが無効であった場合に、前記エラー検出方向指定手段と前記エラー検出距離指定手段に設定された範囲で復調エラーフラグを再検出し、復調エラーフラグが有効である復調データの位置をスレーブエラー検出位置として出力するスレーブデータエラー検出手段と、前記マスターエラー検出位置と前記スレーブエラー検出位置を受け取り、それぞれのエラー検出位置を比較し、検出した復調エラーフラグの復調データの位置が比較した復調データから遠い方の復調データに対しコピー指示信号を生成するエラー位置比較手段と、前記エラー位置比較手段で生成されたコピー指示信号で示される復調エラーフラグの検出位置が近い方の復調データを復調エラーフラグの検出位置が遠い方の復調データに置き換えることによって復調データを再構築すると共に、前記データカウンタで生成されたデータ出力指示信号を受け取り、再構築した復調データを出力するデータ再構築手段とを備えることを特徴とする。
【００１１】
請求項６記載の多重化されたストレージ装置は、請求項５に記載の多重化されたストレージ装置において、前記マスターデータ選択手段は、外部からマスターデータとスレーブデータの設定が可能であることを特徴とする。
【００１２】
請求項７記載の多重化されたストレージ装置は、請求項５に記載の多重化されたストレージ装置において、前記エラー検出方向指定手段は、外部から復調エラーフラグを検出する方向の設定が可能であることを特徴とする。
【００１３】
請求項８記載の多重化されたストレージ装置は、請求項５に記載の多重化されたストレージ装置において、前記エラー検出距離指定手段は、外部から復調エラーフラグを検出する距離の設定が可能であることを特徴とする。
【００１４】
請求項９記載の多重化されたストレージ装置は、ミラーリングにより同じデータが格納され、符号語単位で復調データと復調エラーフラグとを出力可能な複数のストレージ装置と、前記複数のストレージ装置に格納されているデータの読み出し処理や前記複数のストレージ装置へデータを格納する書き込み処理を指示するファイルシステムと、前記複数のストレージ装置から符号語単位で復調データと復調エラーフラグを取得するための複数のストレージインターフェースと、前記ストレージインターフェースを介して符号語単位で取得した復調データと復調エラーフラグを記憶するメモリと、前記メモリに符号語単位で記憶された復調データと復調エラーフラグを読み出し、誤りを訂正する誤り訂正手段と、前記ファイルシステムから出力された前記複数のストレージ装置に対するアクセスの要求を取得し、前記複数のストレージ装置から読み出したデータを前記ファイルシステムに出力するためのホストインターフェースと、前記誤り訂正手段で誤り訂正した結果、前記複数のストレージ装置に属する第１のストレージ装置の符号語が誤り訂正不能であった場合、前記ファイルシステムから前記第１のストレージ装置と同じ内容が格納されている前記複数のストレージ装置に属する他のストレージ装置を検知し、前記第１のストレージ装置で誤り訂正不能であった符号語に相当する前記他のストレージ装置の符号語を取得するよう指示するコントローラと、前記第１のストレージ装置および前記他のストレージ装置の同じ符号語が共に誤り訂正不能であった場合、前記第１のストレージ装置で誤り訂正不能であった符号語の復調データに対する復調エラーフラグの位置と、前記他のストレージ装置で誤り訂正不能であった符号語の復調データに対する復調エラーフラグの位置を検出し、前記第１のストレージ装置と前記他のストレージ装置の復調エラーフラグが無効であった復調データを組み合わせて復調データを再構築し、さらに、前記第１のストレージ装置で誤り訂正不能であった符号語と前記他のストレージ装置で誤り訂正不能であった符号語を復調データ単位で比較し、復調データの値が異なる場合、復調データの値が異なる復調エラーフラグを検出し、復調エラーフラグが無効であれば、復調エラーフラグの検出された復調データの位置が遠い方の復調データを用いて復調データを再構築するデータ生成手段とを備えることを特徴とする。
【００１５】
請求項１０記載の多重化されたストレージ装置は、請求項９に記載の多重化されたストレージ装置において、前記データ生成手段は、前記メモリに記憶された前記第１のストレージ装置および前記他のストレージ装置の復調データと復調エラーフラグをそれぞれ符号語単位で取得し、前記符号語のうち基準となる符号語をマスターデータとして選択し、残りをスレーブデータと設定するマスターデータ選択手段と、前記マスターデータ選択手段で割り当てたマスターデータとスレーブデータにおける復調データの値の比較を行うデータ比較手段と、前記データ比較手段が比較した復調データ数をカウントし、予め定められた比較復調データ数に達するとデータ出力指示信号を生成するデータカウンタと、復調エラーフラグを検出する方向を指定するエラー検出方向指定手段と、復調エラーフラグを検出する距離を指定するエラー検出距離指定手段と、前記マスターデータを受け取り、前記データ比較手段で値が異なった前記マスターデータの復調エラーフラグを検出し、復調エラーフラグが有効であった場合に復調エラーフラグが有効となる復調データの位置をエラー検出位置として出力し、復調エラーフラグが無効であった場合に、前記エラー検出方向指定手段と前記エラー検出距離指定手段に設定された範囲で復調エラーフラグを再検出し、復調エラーフラグが有効である復調データの位置をマスターエラー検出位置として出力するマスターデータエラー検出手段と、前記スレーブデータを受け取り、前記データ比較手段で値が異なった前記スレーブデータの復調エラーフラグを検出し、前記マスターデータエラー検出手段から出力されたエラー検出位置と同じ復調データの位置での復調エラーフラグが有効であった場合に第１のコピー指示信号を生成し、復調エラーフラグが無効であった場合に、前記エラー検出方向指定手段と前記エラー検出距離指定手段に設定された範囲で復調エラーフラグを再検出し、復調エラーフラグが有効である復調データの位置をスレーブエラー検出位置として出力するスレーブデータエラー検出手段と、前記マスターエラー検出位置と前記スレーブエラー検出位置を受け取り、それぞれのエラー検出位置を比較し、検出した復調エラーフラグの復調データの位置が比較した復調データから遠い方の復調データに対し第２のコピー指示信号を生成するエラー位置比較手段と、前記スレーブデータエラー検出手段で生成された第１のコピー指示信号で示されるマスターデータの復調データをスレーブデータの復調データに置き換えることによって復調データを再構築し、さらに、前記エラー位置比較手段で生成された第２のコピー指示信号で示される復調エラーフラグの検出位置が近い方の復調データを復調エラーフラグの検出位置が遠い方の復調データに置き換えることによって復調データを再構築すると共に、前記データカウンタで生成されたデータ出力指示信号を受け取り、再構築した復調データを出力するデータ再構築手段とを備えることを特徴とする。
【００１６】
請求項１１記載の多重化されたストレージ装置は、請求項１０に記載の多重化されたストレージ装置において、前記マスターデータ選択手段は、外部からマスターデータとスレーブデータの設定が可能であることを特徴とする。
【００１７】
請求項１２記載の多重化されたストレージ装置は、請求項１０に記載の多重化されたストレージ装置において、前記エラー検出方向指定手段は、外部から復調エラーフラグを検出する方向の設定が可能であることを特徴とする。
【００１８】
請求項１３記載の多重化されたストレージ装置は、請求項１０に記載の多重化されたストレージ装置において、前記エラー検出距離指定手段は、外部から復調エラーフラグを検出する距離の設定が可能であることを特徴とする。
【００１９】
以上により、同じデータを記録している全てのストレージ装置から読み出したデータにおいて異常が検出された場合であっても、データを復旧することができる能力を向上する多重化されたストレージ装置を提供することができる。
【発明の効果】
【００２０】
複数のストレージ装置で構成され、ミラーリングにより多重化されたストレージ装置において、データの読み出しの際に、マスターストレージ装置の符号語が誤り訂正不能で、さらに、残りのスレーブストレージ装置の符号語も誤り訂正不能である時、マスターデータ選択手段により、１つのストレージ装置のデータを復調して得た符号語をマスターデータとし、マスターデータエラー検出手段により、各復調データに対して復調エラーフラグの有効／無効を確認し、復調エラーフラグが有効である時は、残りのストレージ装置のデータを復調して得た同じ位置となる復調データの復調エラーフラグの有効／無効を確認し、復調エラーフラグが無効である復調データがあれば、データ再構築手段にて、復調エラーフラグが無効である復調データをマスターデータの復調エラーフラグが有効であった復調データと入れ替えて復調データを生成し、生成された復調データを用いて再構築した符号語（以下、再構築データとする）を誤り訂正することにより、同じデータを記録している全てのストレージ装置から読み出したデータにおいて異常が検出された場合であっても、データを復旧することができる能力を向上する多重化されたストレージ装置を提供することができる。
【００２１】
また、データ比較手段によりマスターデータとスレーブデータを比較し、値が異なれば、あらかじめエラー検出方向指定手段およびエラー検出距離指定手段で設定した復調データの範囲内でそれぞれの復調エラーフラグを検出し、対象となる復調データから最も遠い位置で復調エラーフラグが有効であった復調データを選択し、選択した復調データを用いてデータ再構築手段で再構築データを構築してこの再構築データを誤り訂正することによっても、同じデータを記録している全てのストレージ装置から読み出したデータにおいて異常が検出された場合であってもデータを復旧することができる能力を向上する多重化されたストレージ装置を提供することができる。
【００２２】
さらに、マスターデータの復調エラーフラグが有効で復調エラーフラグが無効であるスレーブデータがあれば復調エラーフラグが無効である復調データをマスターデータの復調エラーフラグが有効であった復調データと入れ替えて復調データを生成し、マスターデータおよびスレーブデータの対象となる復調データの値が異なり、復調エラーフラグが共に無効であれば、あらかじめ設定した復調データの範囲内でそれぞれの復調エラーフラグを検出し、対象となる復調データから最も遠い位置で復調エラーフラグが有効であった復調データを選択し、入れ替えて生成した復調データや選択した復調データを用いてデータ再構築手段で再構築データを構築してこの再構築データを誤り訂正することによっても、同じデータを記録している全てのストレージ装置から読み出したデータにおいて異常が検出された場合であってもデータを復旧することができる能力を向上する多重化されたストレージ装置を提供することができる。
【発明を実施するための最良の形態】
【００２３】
以下に、本発明のストレージ装置について図面とともに詳細に説明する。
（実施例１）
図１は本発明の実施例１における多重化されたストレージ装置のブロック図、図２は本発明の実施例１におけるデータ生成手段のブロック図、図３は本発明の実施例１におけるデータ読み出し処理のフローチャートを示す。
【００２４】
本実施例においては、図１に示すようにストレージ装置を２つ設けた場合について説明する。
図１において、本発明の実施例１における多重化されたストレージ装置は、ストレージ装置１０１と、ストレージ装置１０２と、ファイルシステム１０３と、ストレージインターフェースＡ（１０４）と、ストレージインターフェースＢ（１０５）と、メモリ１０６と、誤り訂正手段１０７と、ホストインターフェース１０８と、コントローラ１０９と、データ生成手段１１０とで構成される。
【００２５】
ストレージ装置１０１および１０２は、ミラーリングで構成され、同じデータが格納されている。ストレージ装置１０１および１０２はそれぞれ復調手段を備え、復調手段により読み出したデータを複数の復調データに変換し、それぞれの復調データには復調エラーフラグが付加される。復調データがとり得る値はあらかじめテーブル化されており、復調データの値がテーブルにない場合には復調エラーフラグを有効にする。
【００２６】
ファイルシステム１０３は、ストレージ装置に対するデータの書き込み処理やデータの読み出し処理を指示する。
ストレージインターフェースＡ（１０４）は、ストレージ装置１０１から符号語単位で復調データ１５１と復調エラーフラグ１５２を取得し、ストレージインターフェースＢ（１０５）は、ストレージ装置１０２から符号語単位で復調データ１５５と復調エラーフラグ１５６を取得する。
【００２７】
メモリ１０６は、ストレージインターフェースＡ（１０４），ストレージインターフェースＢ（１０５）を介して符号語単位で取得した復調データ（１５１，１５５）と復調エラーフラグ（１５２，１５６）を記憶する。
【００２８】
誤り訂正手段１０７は、メモリ１０６に符号語単位で記憶された復調データ１５１，１５５と復調エラーフラグ１５２，１５６を読み出し、符号語の誤り訂正を行う。
ホストインターフェース１０８は、ファイルシステム１０３から出力された複数のストレージ装置１０１，１０２に対するアクセス要求を取得し、複数のストレージ装置１０１，１０２から読み出したデータをファイルシステム１０３に出力する。
【００２９】
コントローラ１０９は、誤り訂正手段１０７で誤り訂正した結果、ストレージ装置１０１の符号語が誤り訂正不能であった場合、ファイルシステム１０３からストレージ装置１０１と同じ内容が格納されているストレージ装置１０２を検知し、ストレージ装置１０１で誤り訂正不能であった符号語に相当するストレージ装置１０２の符号語を取得するよう指示する。
【００３０】
データ生成手段１１０は、ストレージ装置１０１の符号語に対応するストレージ装置１０２の符号語が共に誤り訂正不能であった場合、ストレージ装置１０１で誤り訂正不能であった符号語の復調データ１５１に対する復調エラーフラグ１５２の位置と、ストレージ装置１０２で誤り訂正不能であった符号語の復調データ１５５に対する復調エラーフラグ１５６の位置を検出し、ストレージ装置１０１の復調エラーフラグ１５２とストレージ装置１０２の復調エラーフラグ１５６のうち復調エラーフラグが無効であった復調データを組み合わせて復調データを再構築する。
【００３１】
データ生成手段１１０は図２に示すように、マスターデータ選択手段２０１と、マスターデータエラー検出手段Ａ（２０２）と、スレーブデータエラー検出手段Ａ（２０３）と、データカウンタＡ（２０４）と、データ再構築手段Ａ（２０５）とで構成される。
【００３２】
マスターデータ選択手段２０１は、メモリ１０６に記憶されたストレージ装置１０１およびストレージ装置１０２の復調データ１５１，１５５と復調エラーフラグ１５２，１５６を符号語単位で取得し、基準となる符号語（例えば、ストレージ装置１０１の符号語）をマスターデータ２５１とし、もう一方の符号語（例えば、ストレージ装置１０２の符号語）をスレーブデータ２５２とする。
【００３３】
マスターデータエラー検出手段Ａ（２０２）は、マスターデータ選択手段２０１で割り当てたマスターデータ２５１の復調エラーフラグ１５２の位置を検出し、復調エラーフラグ１５２が検出された場合はその復調データの位置をエラー検出位置２５３としてスレーブデータエラー検出手段Ａ（２０３）に出力する。
【００３４】
スレーブデータエラー検出手段Ａ（２０３）は、マスターデータ選択手段２０１で割り当てられたスレーブデータ２５２に対し、マスターデータエラー検出手段Ａ（２０２）から出力されたエラー検出位置２５３と同じ位置の復調エラーフラグ１５６検出し、復調エラーフラグが無効であった場合にコピー指示信号Ａ（２５５）を生成する。
【００３５】
データカウンタＡ（２０４）は、マスターデータエラー検出手段Ａ（２０２）が検索したマスターデータの復調データ数をカウントし、あらかじめ定められた検索復調データ数に達するとデータ再構築手段Ａ（２０５）にデータ出力指示信号Ａ（２５４）を生成する。
【００３６】
データ再構築手段Ａ（２０５）は、スレーブデータエラー検出手段Ａ（２０３）で生成されたコピー指示信号Ａ（２５５）で示されるマスターデータ２５１の復調データをスレーブデータ２５２の復調データに置き換えることによって復調データを再構築すると共に、データカウンタＡ（２０４）で生成されたデータ出力指示信号Ａ（２５４）を受け取り、再構築データ１５９を出力する。
【００３７】
以上のように構成された本発明の多重化されたストレージ装置の動作について、図３を用いて詳細に説明する。
ステップ３０１において、ファイルシステム１０３がデータ読み出し要求１５０を出力すると、コントローラ１０９はホストインターフェース１０８を介してデータ読み出し要求１５０を受け取り、ストレージ装置１０１のデータの読み出しを開始する。
【００３８】
ステップ３０２において、ストレージ装置１０１は記憶媒体から読み出したデータを復調し、復調データ１５１を生成する。復調データ１５１の値があらかじめ用意した値に含まれず復調エラーが確認された場合は、復調エラーフラグ１５２を有効にし、符号語単位で復調データ１５１と復調エラーフラグ１５２を出力する。
【００３９】
ステップ３０３において、コントローラ１０９はストレージインターフェースＡ（１０４）を介してストレージ装置１０１から出力された復調データ１５１と復調エラーフラグ１５２を符号語単位で取得し、メモリ１０６に記憶させる。
【００４０】
ステップ３０４において、誤り訂正手段１０７はメモリ１０６に符号語単位で記憶された復調データ１５１と復調エラーフラグ１５２を取得し、符号語の誤り訂正を行う。
ステップ３０５において、誤り訂正手段１０７で誤りを訂正した結果、誤り訂正不能であった場合（ステップ３０５のＹｅｓ）は、誤り訂正手段１０７が訂正不能信号１５３をコントローラ１０９に出力し、ステップ３０６に移行する。また、誤り訂正可能であった場合（ステップ３０５のＮｏ）は、ストレージ装置から読み出したデータに誤りがあれば誤りを訂正し、誤り訂正後のデータ１５４をメモリ１０６に記憶し、ステップ３１１に移行する。
【００４１】
ステップ３０６において、コントローラ１０９はストレージ装置１０２からデータを読み出し、読み出したデータに対し誤りを訂正したか確認し、誤り訂正していない場合（ステップ３０６のＮｏ）はストレージ装置１０２からデータを読み出すためステップ３０７に移行する。誤り訂正済みの場合（ステップ３０６のＹｅｓ）はステップ３０８（データ再構築処理）へ移行する。
【００４２】
ステップ３０７において、コントローラ１０９は誤り訂正手段１０７から訂正不能信号１５３を受け取るとストレージ装置１０２からのデータ読み出しを実行するよう指示し、再度、ストレージ装置１０２に対するステップ３０２〜ステップ３０６までの処理を実行する。
【００４３】
ステップ３０８において、マスターデータとスレーブデータを復調データ単位で比較してデータ再構築処理を行い、再構築データ１５９を出力する。
ステップ３０９において、誤り訂正手段１０７で再構築データ１５９に対し誤りを訂正した結果、誤り訂正可能であった場合（ステップ３０９のＮｏ）は、誤り訂正手段１０７が誤り訂正処理後の再構築データ１６０をメモリ１０６に記憶し、ステップ３１０に移行する。また、誤り訂正不能であった場合（ステップ３０９のＹｅｓ）はステップ３１２に移行する。
【００４４】
ステップ３１０において、コントローラ１０９がメモリ１０６に記憶された再構築データ１５９を読み出し、ストレージインターフェースＡ（１０４），ストレージインターフェースＢ（１０５）を介してストレージ装置１０１，１０２に再構築データ１５９を書き込み、ステップ３１１に移行する。
【００４５】
ステップ３１１において、コントローラ１０９がメモリ１０６に記憶された誤り訂正処理後の再構築データ１６０を読み出し、ホストインターフェース１０８を介してファイルシステム１０３に誤り訂正処理後の再構築データ１６０を送出し、データ読み出し処理を終了する。
【００４６】
ステップ３１２において、誤り訂正手段１０７が誤り訂正不能であった場合には、ホストインターフェース１０８を介してファイルシステム１０３に読み出しエラー１６１を通知し、データ読み出しを終了する。
【００４７】
以下、ステップ３０８（データ再構築処理）について図４および図５を用いて詳細に説明する。
図４は本発明の実施例１におけるデータ再構築処理のフローチャート、図５は本発明の実施例１におけるデータ再構築処理で生成されるデータを例示する図である。
【００４８】
図５において、５０１はストレージ装置１０１の誤り訂正不能であった符号語で、誤り訂正処理手段１０７で誤り訂正を行うデータ単位のパリティと複数の復調データから構成される。５０２はストレージ装置１０２の誤り訂正不能であった符号語で、誤り訂正処理手段１０７で誤り訂正を行うデータ単位のパリティと複数の復調データから構成される。また、この復調データには復調エラーフラグが付加されている。５０３はＡという情報を示す復調データを示す。５０４はＷという情報を示し、復調エラーフラグが有効になっている復調データを示す。５０５，５０６はＢという情報を示す復調データを示す。
【００４９】
図４のステップ４０１において、マスターデータ選択手段２０１はメモリ１０６に記憶されたストレージ装置１０１の誤り訂正不能であった符号語５０１とストレージ装置１０２の誤り訂正不能であった符号語５０２を取得する。
【００５０】
ステップ４０２において、マスターデータ選択手段２０１の設定に基づき、ストレージ装置１０１およびストレージ装置１０２から取得した誤り訂正不能であった符号語５０１，５０２のうち基準となる符号語をマスターデータとして選択する。
【００５１】
以下、ストレージ装置１０１の誤り訂正不能であった符号語５０１をマスターデータとし、ストレージ装置１０２の誤り訂正不能であった符号語５０２をスレーブデータとする。
【００５２】
ステップ４０３において、マスターデータエラー検出手段Ａ（２０２）はマスターデータ５０１における１つの復調データの復調エラーフラグを検出し、復調エラーフラグが検出された場合（ステップ４０３のＹｅｓ）は、復調エラーフラグが有効であった位置の復調データ（例えば、復調データ５０４）をエラー検出位置２５３としてスレーブデータエラー検出手段Ａ（２０３）に出力し、ステップ４０４に移行する。また、復調エラーフラグが検出されなかった場合（ステップ４０３のＮｏ、復調データ５０３）は、ステップ４０６に移行する。
【００５３】
ステップ４０４において、スレーブデータエラー検出手段Ａ（２０３）はマスターデータエラー検出手段Ａ（２０２）から出力されたエラー検出位置２５３が示す復調データ５０４と同じ位置にある復調データ５０５に対し復調エラーフラグを検出し、復調エラーフラグが検出されなかった場合（ステップ４０４のＮｏ）は、コピー指示信号Ａ（２５５）を出力し、ステップ４０５に移行する。また、復調エラーフラグが検出された場合（ステップ４０４のＹｅｓ）は、ステップ４０６に移行する。
【００５４】
ステップ４０５において、データ再構築手段Ａ（２０５）はスレーブデータエラー検出手段Ａ（２０３）からコピー指示信号Ａ（２５５）を受け取ると、マスターデータ５０１の復調データ５０４をスレーブデータ５０２の復調データ５０５に置き換えて、復調データ５０６を再構築する。
【００５５】
ステップ４０６において、データカウンタＡ（２０４）がマスターデータエラー検出手段Ａ（２０２）で検索した復調データ数をカウントし、マスターデータ５０１を構成する全ての復調データに対して、復調エラーフラグの検出を行ったか判断する。
【００５６】
全ての復調データに対して検出している場合（ステップ４０６のＹｅｓ）は、データカウンタＡ（２０４）がデータ出力指示信号Ａ（２５４）を生成し、データ再構築手段Ａ（２０５）はデータ出力指示信号Ａ（２５４）を受け取って、再構築データ１５９をメモリ１０６に記憶し、ステップ４０７に移行する。
【００５７】
また、全ての復調データに対して検出していない場合（ステップ４０６のＮｏ）はステップ４０３に移行し、マスターデータエラー検出手段Ａ（２０２）がマスターデータ５０１の次の復調データに対して復調エラー検出を行う。
【００５８】
ステップ４０７において、誤り訂正手段１０７はメモリ１０６から再構築データ１５９を取得して誤りを訂正し、ステップ３０９に移行する。
以上のように、本実施例１においては、ストレージ装置１０１から読み出した符号語に対し誤り訂正手段１０７で誤り訂正した結果が誤り訂正不能で、さらにストレージ装置１０２から読み出した符号語に対し誤り訂正した結果も誤り訂正不能の場合に、データ生成手段１１０がストレージ装置１０１で誤り訂正不能であった符号語を構成する各復調データの復調エラーフラグの位置と、ストレージ装置１０２で誤り訂正不能であった符号語を構成する各復調データの復調エラーフラグの位置を検出し、ストレージ装置１０１とストレージ装置１０２の復調エラーフラグが有効でない復調データを組み合わせて復調データを生成し、生成した復調データを用いて符号語を再構築することにより、ストレージ装置１０１から読み出した符号語が誤り訂正不能の場合で、さらにストレージ装置１０２から読み出した符号語も誤り訂正不能であった場合でも再構築した符号語に対し、再度、誤り訂正処理を行うことにより、データを復旧することができる能力を向上することができる。
【００５９】
また、実施例１の多重化されたストレージ装置は２台のストレージ装置に同じデータが格納された例で説明したが、ミラーリング関係にあるストレージ装置が複数台あっても良く、その場合でも同様の効果が得られる。
【００６０】
また、実施例１のマスターデータ選択手段２０１の設定をストレージ装置１０１の誤り訂正不能であった符号語を基準となるマスターデータとし、ストレージ装置１０２の誤り訂正不能であった符号語をスレーブデータとする例で説明したが、マスターデータ選択手段２０１を外部から設定可能な構成にして、基準となるマスターデータを変更しても良く、その場合でも同様の効果が得られる。
【００６１】
また、実施例１のステップ３１２において読み出しエラーを出力する例を説明したが、ミラーリング関係にあるストレージ装置が複数台ある場合にはステップ４０３に戻って、基準となるマスターデータを選択しなおしても良く、その場合でも同様の効果が得られる。
【００６２】
（実施例２）
図６は本発明の実施例２におけるデータ生成手段のブロック図を示す。
多重化されたストレージ装置の構成に関しては、前述の実施例１の構成（図１）と同様なので同じ符号を用い、説明は省略する。
【００６３】
本実施例におけるデータ生成手段１１０が実施例１と異なるところは、データ再構築の際に誤り訂正不能であった復調データの比較を行い、復調データの値が異なる位置の復調エラーフラグを検出し、復調エラーフラグが検出されなければ、復調エラーフラグの検出位置が遠い方の復調データを用いる点である。
【００６４】
より詳細に説明すると、前述の実施例１ではストレージ装置１０１で誤り訂正不能であった符号語の復調データに対する復調エラーフラグの位置と、ストレージ装置１０２で誤り訂正不能であった符号語の復調データに対する復調エラーフラグの位置を検出し、ストレージ装置１０１とストレージ装置１０２の復調エラーフラグが無効であった復調データを組み合わせて復調データを生成し、生成した復調データを用いて符号語を再構築していた。しかしながら、前述のように復調データが正しく復調されていなかったとしても復調エラーフラグが有効にならない場合があるために、本実施例ではストレージ装置１０１で誤り訂正不能であった符号語の復調データとストレージ装置１０２で誤り訂正不能であった符号語の復調データの比較を行う。ここで、復調が正しく行われなかった原因が、ハードディスクの傷などの物理的なものであった場合、隣接する複数の復調データにわたって復調が正しく行われていない可能性が高いので、復調データの値が異なれば、値が異なる位置の復調エラーフラグを検出し、復調エラーフラグが検出されなければ、隣接する復調データにおける復調エラーフラグの検出位置の比較を順に行い、復調エラーフラグの検出位置が遠い方の復調データを用いて復調データを生成し、符号語を再構築している。
【００６５】
図６に示すように、データ生成手段１１０は、マスターデータ選択手段２０１と、データ比較手段６０１と、データカウンタＢ（６０２）と、エラー検出方向指定手段６０３と、エラー検出距離指定手段６０４と、マスターデータエラー検出手段Ｂ（６０５）と、スレーブデータエラー検出手段Ｂ（６０６）と、エラー位置比較手段６０７と、データ再構築手段Ｂ（６０８）とで構成される。
【００６６】
マスターデータ選択手段２０１は、メモリ１０６に記憶されたストレージ装置１０１およびストレージ装置１０２の復調データ１５１，１５５と復調エラーフラグ１５２，１５６を符号語単位で取得し、基準となる符号語（例えば、ストレージ装置１０１の符号語）をマスターデータ２５１とし、もう一方の符号語（例えば、ストレージ装置１０２の符号語）をスレーブデータ２５２とする。
【００６７】
データ比較手段６０１は、マスターデータ選択手段２０１で割り当てたマスターデータ２５１とスレーブデータ２５２における復調データの値の比較を行う。
データカウンタＢ（６０２）は、データ比較手段６０１が比較した復調データ数をカウントし、予め定められた比較復調データ数に達するとデータ出力指示信号Ｂ（６５１）を生成する。
【００６８】
エラー検出方向指定手段６０３は、次に検出する復調エラーフラグをどちら側に隣接する復調データに対して復調エラーフラグを検出するかの方向を指定する。
エラー検出距離指定手段６０４は、次に検出する復調エラーフラグをいくつまで隣接する復調データに対して復調エラーフラグを検出するかの距離を指定する。
【００６９】
マスターデータエラー検出手段Ｂ（６０５）は、マスターデータ２５１を受け取り、データ比較手段６０１で値が異なったマスターデータ２５１の復調エラーフラグ１５２を検出し、復調エラーフラグ１５２が無効であった場合に、エラー検出方向指定手段６０３とエラー検出距離指定手段６０４に設定された範囲で復調エラーフラグ１５２を再検出し、復調エラーフラグ１５２が有効である復調データの位置をマスターエラー検出位置６５２としてエラー位置比較手段６０７に出力する。
【００７０】
スレーブデータエラー検出手段Ｂ（６０６）は、スレーブデータ２５２を受け取り、データ比較手段６０１で値が異なったスレーブデータ２５２の復調エラーフラグ１５６を検出し、復調エラーフラグ１５６が無効であった場合に、エラー検出方向指定手段６０３とエラー検出距離指定手段６０４に設定された範囲で復調エラーフラグ１５６を再検出し、復調エラーフラグ１５６が有効である復調データの位置をスレーブエラー検出位置６５３としてエラー位置比較手段６０７に出力する。
【００７１】
エラー位置比較手段６０７は、マスターエラー検出位置６５２とスレーブエラー検出位置６５３を受け取り、それぞれのエラー検出位置を比較し、検出した復調エラーフラグの位置が比較した復調データから遠い方の復調データに対しコピー指示信号Ｂ（６５４）を生成する。
【００７２】
データ再構築手段Ｂ（６０８）は、エラー位置比較手段６０７で生成されたコピー指示信号Ｂ（６５４）で示される復調エラーフラグの検出位置が近い方の復調データを復調エラーフラグの検出位置が遠い方の復調データに置き換えることによって復調データを再構築すると共に、データカウンタＢ（６０２）で生成されたデータ出力指示信号Ｂ（６５１）を受け取り、再構築データ１５９を出力する。
【００７３】
以上のように構成された実施例２における多重化されたストレージ装置のデータ再構築処理（ステップ３０８）の動作について図７および図８を用いて説明する。
ステップ３０８（データ再構築処理），ステップ３０９以外の処理に関しては、前述の実施例１のフローチャート（図３）と同様なので説明は省略する。
【００７４】
図７は本発明の実施例２におけるデータ再構築処理のフローチャート、図８は本発明の実施例２におけるデータ再構築処理で生成されるデータを例示する図である。
図８において、８０１はストレージ装置１０１の誤り訂正不能であった符号で、誤り訂正処理手段１０７で誤り訂正を行うデータ単位のパリティと複数の復調データから構成される。８０２はストレージ装置１０２の誤り訂正不能であった符号で、誤り訂正処理手段１０７で誤り訂正を行うデータ単位のパリティと複数の復調データから構成される。８０３はデータ生成手段１１０で生成したマスター再構築データ、８０４はデータ生成手段１１０で生成したスレーブ再構築データ、８０５〜８０９，８１５〜８１９は復調データ、８２６，８２７は再構築された復調データ、８５１〜８５４はエラー検出距離である。
【００７５】
エラー検出方向指定手段６０３に復調エラーフラグを検出する方向を左方向（アドレスの若い方）として設定し、さらに、エラー検出距離指定手段６０４に復調エラーフラグを検出する範囲を復調データ５つ分として設定したとして説明する。
【００７６】
図７のステップ４０１において、マスターデータ選択手段２０１はメモリ１０６に記憶されたストレージ装置１０１の誤り訂正不能であった符号語８０１とストレージ装置１０２の誤り訂正不能であった符号語８０２を取得する。
【００７７】
ステップ４０２において、マスターデータ選択手段２０１の設定に基づき、ストレージ装置１０１およびストレージ装置１０２から取得した誤り訂正不能であった符号語５０１，５０２のうち基準となる符号語をマスターデータとして選択する。
【００７８】
以下、ストレージ装置１０１の誤り訂正不能であった符号語８０１をマスターデータとし、ストレージ装置１０２の誤り訂正不能であった符号語８０２をスレーブデータとする。
【００７９】
ステップ７０１において、データ比較手段６０１はマスターデータ８０１とスレーブデータ８０２における復調データの値の比較を行い、復調データ８０６と８１６や復調データ８０７と８１７のように値が異なる場合（ステップ７０１のＮｏ）は、ステップ４０３に移行する。また、復調データ８０５と８１５のように値が同じ場合（ステップ７０１のＹｅｓ）は、ステップ４０６に移行する。
【００８０】
ステップ４０３において、マスターデータエラー検出手段Ｂ（６０５）はマスターデータ８０１における１つの復調データの復調エラーフラグを検出し、復調エラーフラグが検出された場合（ステップ４０３のＹｅｓ）はステップ４０６に移行する。また、復調データ８０６や８０７のように復調エラーフラグが検出されなかった場合（ステップ４０３のＮｏ）は、ステップ７０２に移行する。
【００８１】
ステップ７０２において、スレーブデータエラー検出手段Ｂ（２０３）はスレーブデータ８０２における１つの復調データの復調エラーフラグを検出し、復調エラーフラグが検出された場合（ステップ７０２のＹｅｓ）はステップ４０６に移行する。また、復調データ８１６や８１７のように復調エラーフラグが検出されなかった場合（ステップ７０２のＮｏ、）は、ステップ７０３に移行する。
【００８２】
ステップ７０３において、マスターデータエラー検出手段Ｂ（６０５）がマスターデータ８０１に対しエラー検出方向指定手段６０３とエラー検出距離指定手段６０４に設定された左方向に復調データ５つ分の範囲で復調エラーフラグを再検出し、スレーブデータエラー検出手段Ｂ（６０６）がスレーブデータ８０２に対しマスターデータエラー検出手段Ｂ（６０５）と同様に左方向に復調データ５つ分の範囲で復調エラーフラグを再検出する。
【００８３】
エラー検出範囲内で復調エラーフラグが検出された場合（ステップ７０３のＹｅｓ）は復調データ８０８，８０９が示す位置をマスターエラー検出位置６５２としてエラー位置比較手段６０７に出力し、復調データ８１８，８１９が示す位置をスレーブエラー検出位置６５３としてエラー位置比較手段６０７に出力する。
【００８４】
また、エラー検出範囲内で復調エラーフラグが検出されなかった場合（ステップ７０３のＮｏ）はステップ４０６に移行する。
ステップ７０４において、エラー位置比較手段６０７はマスターエラー検出位置６５２とスレーブエラー検出位置６５３を受け取り、それぞれのエラー検出位置を比較する。
【００８５】
検出位置を比較した結果、復調データの値の異なる位置から検出された復調エラーフラグの位置がマスターデータ８０１の方が近い場合（ステップ７０４のマスター、エラー検出距離８５１＜エラー検出距離８５３）は、スレーブデータ８０２に対しコピー指示信号Ｂ（６５４）を出力し、ステップ７０５に移行する。
【００８６】
また、復調データの値の異なる位置から検出された復調エラーフラグの位置がスレーブデータ８０２の方が近い場合（ステップ７０４のスレーブ、エラー検出距離８５２＞エラー検出距離８５４）は、マスターデータ８０１に対しコピー指示信号Ｂ（６５４）を出力し、ステップ７０６に移行する。
【００８７】
ステップ７０５において、データ再構築手段Ｂ（６０８）がエラー位置比較手段６０７で生成されたコピー指示信号Ｂ（６５４）を受け取り、マスターデータ８０１の復調データ８０６をスレーブデータ８０２の復調データ８１６に置き換えて、復調データ８２６を再構築し、ステップ４０６に移行する。
【００８８】
ステップ７０６において、データ再構築手段Ｂ（６０８）がエラー位置比較手段６０７で生成されたコピー指示信号Ｂ（６５４）を受け取り、スレーブデータ８０２の復調データ８１７をマスターデータ８０１の復調データ８０７に置き換えて、復調データ８２７を再構築し、ステップ４０６に移行する。
【００８９】
ステップ４０６において、データカウンタＢ（６０２）はデータ比較手段６０１が比較した復調データ数をカウントし、マスターデータ８０１とスレーブデータ８０２を構成する全ての復調データに対して、値の比較を行ったか判断する。
【００９０】
全ての復調データに対して比較している場合（ステップ４０６のＹｅｓ）はデータカウンタＢ（６０２）がデータ出力指示信号Ｂ（６５１）を生成し、データ再構築手段Ｂ（６０８）はデータ出力指示信号Ｂ（６５１）を受け取って、２種類の再構築データ１５９（マスター再構築データ８０３，スレーブ再構築データ８０４）をメモリ１０６に記憶し、ステップ７０７，７０８に移行する。
【００９１】
また、全ての復調データに対して比較していない場合（ステップ４０６のＮｏ）はステップ７０１に移行し、データ比較手段６０１がマスターデータ８０１とスレーブデータ８０２の次の復調データに対して値の比較を行う。
【００９２】
ステップ７０７において、誤り訂正手段１０７はメモリ１０６からマスター再構築データ８０３を取得して誤りを訂正し、ステップ３０９に移行する。
ステップ７０８において、誤り訂正手段１０７はメモリ１０６からスレーブ再構築データ８０４を取得して誤りを訂正し、ステップ３０９に移行する。
【００９３】
ステップ３０９において、誤り訂正手段１０７でマスター再構築データ８０３およびスレーブ再構築データ８０４に対して誤りを訂正した結果、どちらか一方でも誤り訂正可能であった場合（ステップ３０９のＮｏ）は誤り訂正可能であった再構築データ１５９をメモリ１０６に記憶し、ステップ３１０に移行する。また、マスター再構築データ８０３およびスレーブ再構築データ８０４のどちらも誤り訂正不能であった場合（ステップ３０９のＹｅｓ）はステップ３１１に移行する。
【００９４】
以上のように、本実施例２においては、ストレージ装置１０１から読み出した符号語に対し誤り訂正処理を行ったデータが誤り訂正不能で、さらにストレージ装置１０２から読み出した符号語に対する誤り訂正処理を行ったデータも誤り訂正不能の場合に、データ生成手段１１０がストレージ装置１０１で誤り訂正不能であった符号語とストレージ装置１０２で誤り訂正不能であった符号語の復調データの比較を行い、復調データの値が異なれば、値が異なる位置の復調エラーフラグを検出し、復調エラーフラグが検出されなければ、復調エラーフラグの検出位置が遠い方の復調データを用いて復調データを生成し、生成した復調データを用いて符号語を再構築することにより、ストレージ装置１０１から読み出した符号語が誤り訂正不能で、さらに、ストレージ装置１０２から読み出した符号語も誤り訂正不能である場合でも、２種類の再構築データに対し、再度、誤り訂正処理を行い、データを復旧することができる能力を向上することができる。
【００９５】
また、実施例２の多重化されたストレージ装置は２台のストレージ装置に同じデータが格納された例で説明したが、ミラーリング関係にあるストレージ装置が複数台あっても良く、その場合でも同様の効果が得られる。
【００９６】
例えば、３台のストレージ装置があり、それぞれのストレージ装置から取得したデータをＡ，Ｂ，Ｃとした場合、マスターデータとスレーブデータの組合せをＡ−Ｂ，Ａ−Ｃ，Ｂ−Ｃの３通りとし、それぞれに対して図７のフローチャートを適用する。そして上記３通りの組合せで生成される３つの再構築データから誤り訂正不能でない（読み出し可能な）データを選択するようにすれば良い。
【００９７】
また、実施例２のマスターデータ選択手段２０１の設定をストレージ装置１０１の誤り訂正不能であった符号語を基準となるマスターデータとし、ストレージ装置１０２の誤り訂正不能であった符号語をスレーブデータとする例で説明したが、マスターデータ選択手段２０１を外部から設定可能な構成にして、基準となるマスターデータを変更しても良く、その場合でも同様の効果が得られる。
【００９８】
また、実施例２のエラー検出方向指定手段６０３に復調エラーフラグを検出する方向を左方向（アドレスの若い方）に設定する例で説明したが、エラー検出方向指定手段６０３を外部から設定可能な構成にして、検出方向を変更しても良く、その場合でも同様の効果が得られる。
【００９９】
また、実施例２のエラー検出範囲指定手段６０４に復調エラーフラグを検出する範囲を復調データ５つ分に設定する例で説明したが、エラー検出範囲指定手段６０４を外部から設定可能な構成にして、検出範囲を変更しても良く、その場合でも同様の効果が得られる。
【０１００】
（実施例３）
図９は本発明の実施例３におけるデータ生成手段のブロック図、図１０は本発明の実施例３におけるデータ再構築処理のフローチャートを示す。
【０１０１】
多重化されたストレージ装置の構成に関しては、前述の実施例１の構成（図１）と同様なので同じ符号を用い、説明を省略する。
本実施例におけるデータ生成手段１１０が実施例１および実施例２と異なるところは、データ再構築の際に前述の実施例１および実施例２のデータを再構築する機能を両方持ち合わせている点である。
【０１０２】
より詳細には、前述の実施例１ではストレージ装置１０１で誤り訂正不能であった符号語の復調データに対する復調エラーフラグの位置と、ストレージ装置１０２で誤り訂正不能であった符号語の復調データに対する復調エラーフラグの位置を検出し、ストレージ装置１０１とストレージ装置１０２の復調エラーフラグが無効であった復調データを組み合わせて復調データを生成し、生成した復調データを用いて符号語を再構築し、また、前述の実施例２ではストレージ装置１０１で誤り訂正不能であった符号語とストレージ装置１０２で誤り訂正不能であった符号語の復調データの比較を行い、復調データの値が異なれば、値が異なる位置の復調エラーフラグを検出し、復調エラーフラグが検出されなければ、復調エラーフラグの検出位置が遠い方の復調データを用いてマスターデータ、スレーブデータそれぞれに対し復調データを生成し、生成した復調データを用いて符号語を再構築していたのに対し、本実施例では上記復調データを生成し、符号語を再構築する機能を両方持ち合わせている。
【０１０３】
図９に示すように、データ生成手段１１０は、マスターデータ選択手段２０１と、データ比較手段６０１と、データカウンタＢ（６０２）と、エラー検出方向指定手段６０３と、エラー検出距離指定手段６０４と、マスターデータエラー検出手段Ｃ（９０１）と、スレーブデータエラー検出手段Ｃ（９０２）と、エラー位置比較手段６０７と、データ再構築手段Ｃ（９０３）で構成される。
【０１０４】
マスターデータ選択手段２０１は、メモリ１０６に記憶されたストレージ装置１０１およびストレージ装置１０２の復調データ１５１，１５５と復調エラーフラグ１５２，１５６を符号語単位で取得し、基準となる符号語（例えば、ストレージ装置１０１の符号語）をマスターデータ２５１とし、もう一方の符号語（例えば、ストレージ装置１０２の符号語）をスレーブデータ２５２とする。
【０１０５】
データ比較手段６０１は、マスターデータ選択手段２０１で割り当てたマスターデータ２５１とスレーブデータ２５２における復調データの値の比較を行う。
データカウンタＢ（６０２）は、データ比較手段６０１が比較した復調データ数をカウントし、予め定められた比較復調データ数に達するとデータ出力指示信号Ｂ（６５１）を生成する。
【０１０６】
エラー検出方向指定手段６０３は、次に検出する復調エラーフラグをどちら側に隣接する復調データに対して復調エラーフラグを検出するかの方向を指定する。
エラー検出距離指定手段６０４は、次に検出する復調エラーフラグをいくつまで隣接する復調データに対して復調エラーフラグを検出するかの距離を指定する。
【０１０７】
マスターデータエラー検出手段Ｃ（９０１）は、マスターデータ２５１を受け取り、データ比較手段６０１で値が異なったマスターデータ２５１の復調エラーフラグ１５２を検出し、復調エラーフラグ１５２が有効であった場合は、復調エラーフラグ１５２が検出された復調データの位置をエラー検出位置２５３としてスレーブデータエラー検出手段Ｃ（９０２）に出力し、復調エラーフラグ１５２が無効であった場合は、エラー検出方向指定手段６０３とエラー検出距離指定手段６０４に設定された範囲で復調エラーフラグ１５２の再検出をし、復調エラーフラグが有効である復調データの位置をマスターエラー検出位置６５２としてエラー検出位置比較手段６０７に出力する。
【０１０８】
スレーブデータエラー検出手段Ｃ（９０２）は、スレーブデータ２５２を受け取り、データ比較手段６０１で値が異なったスレーブデータ２５２の復調エラーフラグ１５６を検出し、マスターデータエラー検出手段Ｃ（９０１）から出力されたエラー検出位置２５３と同じ復調データの位置で復調エラーフラグ１５６が有効であった場合にコピー指示信号Ａ（２５５）を生成し、復調エラーフラグが無効であった場合に、エラー検出方向指定手段６０３とエラー検出距離指定手段６０４に設定された範囲で復調エラーフラグ１５６を再検出し、復調エラーフラグ１５６が有効である復調データの位置をスレーブエラー検出位置６５３としてエラー検出位置比較手段６０７に出力する。
【０１０９】
エラー位置比較手段６０７は、マスターエラー検出位置６５２とスレーブエラー検出位置６５３を受け取り、それぞれのエラー検出位置を比較し、検出した復調エラーフラグの位置が比較した復調データから遠い方の復調データに対しコピー指示信号Ｂ（６５４）を生成する。
【０１１０】
データ再構築手段Ｃ（９０３）は、スレーブデータエラー検出手段Ｃ（９０２）で生成されたコピー指示信号Ａ（２５５）で示されるマスターデータ２５１をスレーブデータ２５２に置き換えることによって復調データを再構築し、さらに、エラー位置比較手段６０７で生成されたコピー指示信号Ｂ（６５４）で示される復調エラーフラグの検出位置が近い方の復調データを復調エラーフラグの検出位置が遠い方の復調データに置き換えることによって復調データを再構築すると共に、データカウンタＢ（６０２）で生成されたデータ出力指示信号Ｂ（６５１）を受け取り、再構築データ１５９を出力する。
【０１１１】
以上のように構成された本発明の多重化されたストレージ装置のデータ再構築処理（ステップ３０８）の動作について図１０を用いて説明する。
ステップ３０８（データ再構築処理）以外の処理に関しては、前述の実施例１のフローチャート（図３）と同様なので説明は省略する。
【０１１２】
エラー検出方向指定手段６０３に復調エラーフラグを検出する方向を左方向（アドレスの若い方）として設定し、さらに、エラー検出距離指定手段６０４に復調エラーフラグを検出する範囲を復調データ５つ分として設定したとする。
【０１１３】
図１０のステップ４０１において、マスターデータ選択手段２０１はメモリ１０６に記憶されたストレージ装置１０１の誤り訂正不能であった符号語とストレージ装置１０２の誤り訂正不能であった符号語を取得する。
【０１１４】
ステップ４０２において、マスターデータ選択手段２０１の設定に基づき、ストレージ装置１０１およびストレージ装置１０２から取得した誤り訂正不能であった符号語のうち基準となる符号語をマスターデータとして選択する。
【０１１５】
ステップ７０１において、データ比較手段６０１はマスターデータとスレーブデータにおける復調データの値の比較を行い、値が異なる場合（ステップ７０１のＮｏ）は、ステップ４０３に移行する。また、値が同じ場合（ステップ７０１のＹｅｓ）は、ステップ４０６に移行する。
【０１１６】
ステップ４０３において、マスターデータエラー検出手段Ｃ（９０１）はマスターデータにおける１つの復調データの復調エラーフラグを検出し、復調エラーフラグが検出された場合（ステップ４０３のＹｅｓ）はステップ４０６に移行する。また、復調エラーフラグが検出されなかった場合（ステップ４０３のＮｏ）は、ステップ７０２に移行する。
【０１１７】
ステップ４０４において、スレーブデータエラー検出手段Ｃ（９０２）はマスターデータエラー検出手段Ｃ（９０１）から出力されたエラー検出位置が示す復調データと同じ位置にある復調データに対し復調エラーフラグを検出し、復調エラーフラグが検出されなかった場合（ステップ４０４のＮｏ）は、コピー指示信号Ａ（２５５）を出力し、ステップ４０５に移行する。また、復調エラーフラグが検出された場合（ステップ４０４のＹｅｓ）は、ステップ４０６に移行する。
【０１１８】
ステップ４０５において、データ再構築手段Ｃ（９０３）はスレーブデータエラー検出手段Ｃ（９０２）からコピー指示信号Ａ（２５５）を受け取ると、マスターデータの復調データをスレーブデータの復調データに置き換えて、復調データを再構築する。
【０１１９】
ステップ７０２において、スレーブデータエラー検出手段Ｃ（９０２）はスレーブデータにおける１つの復調データの復調エラーフラグを検出し、復調エラーフラグが検出された場合（ステップ７０２のＹｅｓ）はステップ４０６に移行する。また、復調エラーフラグが検出されなかった場合（ステップ７０２のＮｏ）は、ステップ７０３に移行する。
【０１２０】
ステップ７０３において、マスターデータエラー検出手段Ｃ（９０１）がマスターデータに対しエラー検出方向指定手段６０３とエラー検出距離指定手段６０４に設定された左方向に復調データ５つ分の範囲で復調エラーフラグを再検出し、スレーブデータエラー検出手段Ｃ（９０２）がスレーブデータに対しマスターデータエラー検出手段Ｃ（９０１）と同様に左方向に復調データ５つ分の範囲で復調エラーフラグを再検出する。
【０１２１】
エラー検出範囲内で復調エラーフラグが検出された場合（ステップ７０３のＹｅｓ）はそれぞれの検出位置をマスターエラー検出位置６５２とスレーブエラー検出位置６５３としてエラー位置比較手段６０７に出力する。
【０１２２】
また、エラー検出範囲内で復調エラーフラグが検出されなかった場合（ステップ７０３のＮｏ）はステップ４０６に移行する。
ステップ７０４において、エラー位置比較手段６０７はマスターエラー検出位置６５２とスレーブエラー検出位置６５３を受け取り、それぞれのエラー検出位置を比較する。
【０１２３】
検出位置を比較した結果、復調データの値の異なる位置から検出された復調エラーの位置がマスターデータの方が近い場合（ステップ７０４のマスター）は、スレーブデータに対しコピー指示信号Ｂ（６５４）を出力し、ステップ７０５に移行する。
【０１２４】
また、復調データの値の異なる位置から検出された復調エラーの位置がスレーブデータの方が近い場合（ステップ７０４のスレーブ）は、マスターデータに対しコピー指示信号Ｂ（６５４）を出力し、ステップ７０６に移行する。
【０１２５】
ステップ７０５において、データ再構築手段Ｃ（９０３）がエラー位置比較手段６０７で生成されたコピー指示信号Ｂ（６５４）を受け取り、マスターデータの復調データをスレーブデータの復調データに置き換えて、復調データを再構築し、ステップ４０６に移行する。
【０１２６】
ステップ７０６において、データ再構築手段Ｃ（９０３）がエラー位置比較手段６０７で生成されたコピー指示信号Ｂ（６５４）を受け取り、スレーブデータの復調データをマスターデータの復調データに置き換えて、復調データを再構築し、ステップ４０６に移行する。
【０１２７】
ステップ４０６において、データカウンタＢ（６０２）はデータ比較手段６０１がマスターデータとスレーブデータを構成する全ての復調データに対して、値の比較を行ったか判断する。
【０１２８】
全ての復調データに対して比較している場合（ステップ４０６のＹｅｓ）は、データカウンタＢ（６０２）がデータ出力指示信号Ｂ（６５１）を生成し、データ再構築手段Ｃ（９０３）はデータ出力指示信号Ｂ（６５１）を受け取って、再構築データ１５９をメモリ１０６に記憶し、ステップ４０７に移行する。
【０１２９】
また、全ての復調データに対して比較していない場合（ステップ４０６のＮｏ）はステップ７０１に移行し、データ比較手段６０１がマスターデータとスレーブデータの次の復調データに対して値の比較を行う。
【０１３０】
ステップ４０７において、誤り訂正手段１０７はメモリ１０６から再構築データ１５９を取得して誤りを訂正し、ステップ３０９に移行する。
以上のように、本実施例３においては、ストレージ装置１０１から読み出した符号語に対し誤り訂正処理を行った符号語が誤り訂正不能で、さらにストレージ装置１０２から読み出した符号語に対する誤り訂正処理を行った符号語も誤り訂正不能の場合に、データ生成手段１１０がストレージ装置１０１で誤り訂正不能であった符号語とストレージ装置１０２で誤り訂正不能であった符号語の復調データの比較を行い、復調データの値が異なれば、値が異なる位置の復調エラーフラグを検出し、ストレージ装置１０１とストレージ装置１０２の復調データのうち、どちらか一方の復調データから復調エラーフラグが検出されれば、復調エラーフラグが無効である復調データを復調エラーフラグが有効である復調データに置き換えて復調データを生成し、さらに、ストレージ装置１０１とストレージ装置１０２の復調データのうち、どちらの復調データからも復調エラーフラグが検出されなければ、復調エラーフラグの検出位置が遠い方の復調データを用いて復調データを生成し、生成した復調データを用いて符号語を再構築することにより、ストレージ装置１０１から読み出した符号語が誤り訂正不能で、さらに、ストレージ装置１０２から読み出した符号語も誤り訂正不能であった場合でも、再構築データに対し、再度、誤り訂正処理を行い、データを復旧することができる能力を向上することができる。
【０１３１】
また、実施例３の多重化されたストレージ装置は２台のストレージ装置に同じデータが格納された例で説明したが、ミラーリング関係にあるストレージ装置が複数台あっても良く、その場合でも同様の効果が得られる。
【０１３２】
また、実施例３のマスターデータ選択手段２０１の設定をストレージ装置１０１の誤り訂正不能であった符号語を基準となるマスターデータとし、ストレージ装置１０２の誤り訂正不能であった符号語をスレーブデータとする例で説明したが、マスターデータ選択手段２０１を外部から設定可能な構成にして、基準となるマスターデータを変更しても良く、その場合でも同様の効果が得られる。
【０１３３】
また、実施例３のエラー検出方向指定手段６０３の設定に復調エラーフラグを検出する方向を左方向（アドレスの若い方）に設定する例で説明したが、エラー検出方向指定手段６０３を外部から設定可能な構成にして、検出方向を変更しても良く、その場合でも同様の効果が得られる。
【０１３４】
また、実施例３のエラー検出範囲指定手段６０４の設定に復調エラーフラグを検出する範囲を復調データ５つ分に設定する例で説明したが、エラー検出範囲指定手段６０４を外部から設定可能な構成にして、検出範囲を変更しても良く、その場合でも同様の効果が得られる。
【産業上の利用可能性】
【０１３５】
本発明にかかる多重化されたストレージ装置は、同じデータを記録している全てのストレージ装置から読み出したデータにおいて異常が検出された場合であっても、データを復旧することができる能力を向上することができ、データリード時にエラーの発生したデータの復旧を自動的に実施する多重化されたストレージ装置等として有用である。
【図面の簡単な説明】
【０１３６】
【図１】本発明の実施例１における多重化されたストレージ装置のブロック図
【図２】本発明の実施例１におけるデータ生成手段のブロック図
【図３】本発明の実施例１におけるデータ読み出し処理のフローチャート
【図４】本発明の実施例１におけるデータ再構築処理のフローチャート
【図５】本発明の実施例１におけるデータ再構築処理で生成されるデータを例示する図
【図６】本発明の実施例２におけるデータ生成手段のブロック図
【図７】本発明の実施例２におけるデータ再構築処理のフローチャート
【図８】本発明の実施例２におけるデータ再構築処理で生成されるデータを例示する図
【図９】本発明の実施例３におけるデータ生成手段のブロック図
【図１０】本発明の実施例３におけるデータ再構築処理のフローチャート
【符号の説明】
【０１３７】
１０１    ストレージ装置
１０２    ストレージ装置
１０３    ファイルシステム
１０４    ストレージインターフェースＡ
１０５    ストレージインターフェースＢ
１０６    メモリ
１０７    誤り訂正手段
１０８    ホストインターフェース
１０９    コントローラ
１１０    データ生成手段
１５０    データ読み出し要求
１５１    復調データ
１５２    復調エラーフラグ
１５３    訂正不能信号
１５４    誤り訂正後のデータ
１５５    復調データ
１５６    復調エラーフラグ
１５９    再構築データ
１６０    誤り訂正後の再構築データ
１６１    読み出しエラー
２０１    マスターデータ選択手段
２０２    マスターデータエラー検出手段Ａ
２０３    スレーブデータエラー検出手段Ａ
２０４    データカウンタＡ
２０５    データ再構築手段Ａ
２５１    マスターデータ
２５２    スレーブデータ
２５３    エラー検出位置
２５４    データ出力指示信号Ａ
２５５    コピー指示信号Ａ
５０１    誤り訂正不能であった符号語
５０２    誤り訂正不能であった符号語
５０３〜５０６  復調データ
６０１    データ比較手段
６０２    データカウンタＢ
６０３    エラー検出方向指定手段
６０４    エラー検出距離指定手段
６０５    マスターデータエラー検出手段Ｂ
６０６    スレーブデータエラー検出手段Ｂ
６０７    エラー位置比較手段
６０８    データ再構築手段Ｂ
６５１    データ出力指示信号Ｂ
６５２    マスターエラー検出位置
６５３    スレーブエラー検出位置
６５４    コピー指示信号Ｂ
８０１    誤り訂正不能であった符号語
８０２    誤り訂正不能であった符号語
８０３    マスター再構築データ
８０４    スレーブ再構築データ
８０５〜８０９，８１５〜８１９  復調データ、
８２６，８２７  再構築された復調データ、
８５１〜８５４  エラー検出距離
９０１    マスターデータエラー検出手段Ｃ
９０２    スレーブデータエラー検出手段Ｃ
９０３    データ再構築手段Ｃ
【図１】
2006092221.tif 000003
【図２】
2006092221.tif 000004
【図３】
2006092221.tif 000005
【図４】
2006092221.tif 000006
【図５】
2006092221.tif 000007
【図６】
2006092221.tif 000008
【図７】
2006092221.tif 000009
【図８】
2006092221.tif 000010
【図９】
2006092221.tif 000011
【図１０】
2006092221.tif 000012