(57)【特許請求の範囲】
【請求項１】
ミラー化データ・ストレージ・システムにおけるエラーを検出するための方法であって、
データ・セットの第１のコピー及び第１のエラー訂正コード（ＥＣＣ）値を第１のミラー化システムに格納するステップであって、前記第１のＥＣＣ値は、第１のエラー訂正コード（ＥＣＣ）アルゴリズムを前記データ・セットに適用することによって生成される、前記格納するステップと、
前記データ・セットの第２のコピー及び第２のＥＣＣ値を第２のミラー化システムに格納するステップであって、前記第２のＥＣＣ値は、第２のＥＣＣアルゴリズムを前記データ・セットに適用することによって生成され、前記第２のＥＣＣアルゴリズムは、前記第１のＥＣＣアルゴリズムと異なる、前記格納するステップと、
前記データ・セットの回復済み第１のコピー及び前記データ・セットの回復済み第２のコピーをそれぞれ生成するように、前記第１のミラー化システムにおける前記データ・セットの前記格納済み第１のコピー及び前記第２のミラー化システムにおける前記データ・セットの前記格納済み第２のコピーを読み取るステップと、
前記第１のＥＣＣアルゴリズムを前記データ・セットの前記回復済み第１のコピーに適用することにより、第１の計算済みＥＣＣ値を生成し、前記第２のＥＣＣアルゴリズムを前記データ・セットの前記回復済み第１のコピーに適用することにより、第２の計算済みＥＣＣ値を生成し、前記第１のＥＣＣアルゴリズムを前記データ・セットの前記回復済み第２のコピーに適用することにより、第３の計算済みＥＣＣ値を生成し、前記第２のＥＣＣアルゴリズムを前記データ・セットの前記回復済み第２のコピーに適用することにより、第４の計算済みＥＣＣ値を生成するステップと、
前記第１、第２、第３及び第４の計算済みＥＣＣ値を使用して、前記第１及び第２のミラー化システムの正しい前記回復済みデータを決定するステップを有する、方法。
【請求項２】
回復済み第１のＥＣＣ値及び回復済み第２のＥＣＣ値をそれぞれ生成するように、前記第１のミラー化システムにおける前記格納済み第１のＥＣＣ値及び前記第２のミラー化システムにおける前記格納済み第２のＥＣＣ値を読み取るステップを有する、請求項１に記載の方法。
【請求項３】
前記回復済み第１のＥＣＣ値を、前記第１及び第３の計算済みＥＣＣ値と比較するステップを有する、請求項２に記載の方法。
【請求項４】
前記回復済み第２のＥＣＣ値を、前記第２及び第４の計算済みＥＣＣ値と比較するステップを有する、請求項２に記載の方法。
【請求項５】
前記データ・セットの前記回復済み第１のコピー及び前記データ・セットの前記回復済み第２のコピーのうちどれが正しいかを決定するステップを有する、請求項１に記載の方法。
【請求項６】
前記第１及び第２のミラー化システムのうちの１つの前記データ・セットの前記回復済み第１のコピー及び前記データ・セットの前記回復済み第２のコピー並びに前記回復済み第１のＥＣＣ値及び前記回復済み第２のＥＣＣ値のうちどれが正しいかを決定するステップを有する、請求項２に記載の方法。
【請求項７】
前記ミラー化データ・ストレージ・システムが、メモリ・ミラーリングを使用するメモリ・サブシステム又は新磁気ディスク制御機構（ＲＡＩＤ）システムを使用するディスク・ストレージ・システムから成るグループから選択される、請求項１に記載の方法。
【請求項８】
ミラー化データ・ストレージ・システムにおけるエラーを検出するためのコンピュータ・ソフトウェア・プログラムであって、少なくとも１つのコンピュータ・システムにより実行される場合に、前記少なくとも１つのコンピュータ・システムに、
第１のミラー化システムにおいて第１のエラー訂正コード（ＥＣＣ）アルゴリズムをデータ・セットに適用させて、第１のＥＣＣ値を生成させ、前記データ・セットの第１のコピー及び前記第１のＥＣＣ値は、前記第１のミラー化システムに格納され、
第２のミラー化システムにおいて第２のエラー訂正コード・アルゴリズムを前記データ・セットに適用させて、第２のＥＣＣ値を生成させ、前記データ・セットの第２のコピー及び前記第２のＥＣＣ値は、前記第２のミラー化システムに格納され、前記第２のＥＣＣアルゴリズムは、前記第１のＥＣＣアルゴリズムと異なり、
前記データ・セットの回復済み第１のコピー及び前記データ・セットの回復済み第２のコピーをそれぞれ生成するように、前記第１のミラー化システムにおける前記データ・セットの前記格納済み第１のコピー及び前記第２のミラー化システムにおける前記データ・セットの前記格納済み第２のコピーを読み取らせ、
前記第１のＥＣＣアルゴリズムを前記データ・セットの前記回復済み第１のコピーに適用することにより、第１の計算済みＥＣＣ値を生成させ、前記第２のＥＣＣアルゴリズムを前記データ・セットの前記回復済み第１のコピーに適用することにより、第２の計算済みＥＣＣ値を生成させ、前記第１のＥＣＣアルゴリズムを前記データ・セットの前記回復済み第２のコピーに適用することにより、第３の計算済みＥＣＣ値を生成させ、前記第２のＥＣＣアルゴリズムを前記データ・セットの前記回復済み第２のコピーに適用することにより、第４の計算済みＥＣＣ値を生成させ、
前記第１、第２、第３及び第４の計算済みＥＣＣ値を使用させて、前記第１及び第２のミラー化システムの正しい前記回復済みデータを決定させる、コンピュータ・ソフトウェア・プログラム。
【請求項９】
ミラー化データ・ストレージ・システムにおけるエラーを検出するためのシステムであって、
データ・セットの第１のコピー及び第１のエラー訂正コード（ＥＣＣ）値を格納する第１のミラー化システムであって、前記第１のＥＣＣ値は、第１のエラー訂正コード（ＥＣＣ）アルゴリズムを前記データ・セットに適用することによって生成される、前記第１のミラー化システムと、
前記データ・セットの第２のコピー及び第２のＥＣＣ値を格納する第２のミラー化システムであって、前記第２のＥＣＣ値は、第２のＥＣＣアルゴリズムを前記データ・セットに適用することによって生成され、前記第２のＥＣＣアルゴリズムは、前記第１のＥＣＣアルゴリズムと異なる、前記第２のミラー化システムと、
前記データ・セットの回復済み第１のコピー及び前記データ・セットの回復済み第２のコピーをそれぞれ生成するように、前記第１のミラー化システムにおける前記データ・セットの前記格納済み第１のコピー及び前記第２のミラー化システムにおける前記データ・セットの前記格納済み第２のコピーを読み取るためのデータ回復コンポーネントと、
前記第１のＥＣＣアルゴリズムを前記データ・セットの前記回復済み第１のコピーに適用することにより、第１の計算済みＥＣＣ値を生成し、前記第２のＥＣＣアルゴリズムを前記データ・セットの前記回復済み第１のコピーに適用することにより、第２の計算済みＥＣＣ値を生成し、前記第１のＥＣＣアルゴリズムを前記データ・セットの前記回復済み第２のコピーに適用することにより、第３の計算済みＥＣＣ値を生成し、前記第２のＥＣＣアルゴリズムを前記データ・セットの前記回復済み第２のコピーに適用することにより、第４の計算済みＥＣＣ値を生成する、エラー訂正コード適用コンポーネントと、
前記エラー訂正コード適用コンポーネントによって生成された前記第１、第２、第３及び第４の計算済みＥＣＣ値を使用して、前記第１及び第２のミラー化システムの正しい回復済みデータを決定するための比較コンポーネントを備える、システム。
【請求項１０】
前記データ回復コンポーネントは、回復済み第１のＥＣＣ値及び回復済み第２のＥＣＣ値をそれぞれ生成するように、前記第１のミラー化システムにおける前記格納済み第１のＥＣＣ値及び前記第２のミラー化システムにおける前記格納済み第２のＥＣＣ値をさらに読み取る、請求項９に記載のシステム。
【請求項１１】
前記比較コンポーネントは、前記回復済み第１のＥＣＣ値を、前記第１及び第３の計算済みＥＣＣ値と比較する、請求項１０に記載のシステム。
【請求項１２】
前記比較コンポーネントは、前記回復済み第２のＥＣＣ値を、前記第２及び第４の計算済みＥＣＣ値と比較する、請求項１０に記載のシステム。
【請求項１３】
前記データ・セットの前記回復済み第１のコピー及び前記データ・セットの前記回復済み第２のコピーのうちどれが正しいかを決定するためのエラー検出コンポーネントを備える、請求項９に記載のシステム。
【請求項１４】
前記第１及び第２のミラー化システムのうちの１つの前記データ・セットの前記回復済み第１のコピー及び前記データ・セットの前記回復済み第２のコピー並びに前記回復済み第１のＥＣＣ値及び前記回復済み第２のＥＣＣ値のうちどれが正しいかを決定するためのエラー検出コンポーネントを備える、請求項１０に記載のシステム。
【請求項１５】
前記ミラー化データ・ストレージ・システムが、メモリ・ミラーリングを使用するメモリ・サブシステム又は新磁気ディスク制御機構（ＲＡＩＤ）システムを使用するディスク・ストレージ・システムから成るグループのうちの１つである、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ミラー化データ・ストレージ・システムに係り、さらに詳細に説明すれば、ミラー化データ・ストレージ・システムにおけるエラーを検出することに係る。
【背景技術】
【０００２】
ストレージ・システム（例えば、ディスク・システム又はコンピュータのメモリ・サブシステム）では、障害後に動作を継続するようにストレージを複製又はミラーすることが一般的である。メモリ・サブシステムでは、これをメモリ・ミラーリングと称し、ディスク・ストレージ・システムでは、これをＲＡＩＤ １と称する。
【０００３】
ディスクは、コンピュータ・システムの本質的に信頼性の低いコンポーネントである。ミラーリングとは、ディスク・ハードウェア障害の場合にシステムがデータを継続して処理するか又は速やかにデータを回復することができるように、システムが自動的にデータの複数のコピーを維持することを可能にする技術である。ミラーリングは、ディスクの非信頼性に対処する場合には、これを局所的に行うことができ、より精巧な災害時回復スキームの一部を形成する場合には、これを遠隔的に行うことができ、高可用性システムについては、これを局所的及び遠隔的の両方で行うことができる。通常、データは物理的に同一のドライブ上にミラー化される。但し、基礎をなす物理フォーマットがミラーリング・プロセスから隠される場合、このプロセスは、論理ドライブに適用することができる。一般に、ミラーリングは、ディスク・アレイのようなハードウェア形式の解決策として提供されるか、又はオペレーティング・システムにおけるソフトウェア形式の解決策として提供される。
【０００４】
作業ストレージ・システムでは、ストレージから読み戻された値における少数のエラーを見出すことは珍しくない。ランダム・アクセス・メモリ（ＲＡＭ）の場合、不良セル及び一時的な障害に起因してエラーが生じる。一時的な障害は、アルファ粒子又は宇宙線がＲＡＭ内で相互作用することに起因する。これらの希なエラーに対処するために、システムはエラー検出及び訂正コード（ＥＣＣ）を含む。
【０００５】
ＥＣＣは、ストレージのブロックの要約としてデータの幾つかの余分なビットを格納する。データを再びロードする場合、ＥＣＣ（Ｅｃ）は、ロードされたデータ（Ｄｒ）から再計算され、ストレージから読み取られたＥＣＣ要約（Ｅ）と比較される。それらが異なっていれば、ＥＣＣは、（幾つかのエラーについて）元の値を回復するためにどのビットをトグルすべきかを示すことができる。
【０００６】
任意の特定のＥＣＣシステムは、ストレージの所与のブロックにおいて、当該システムが検出可能なエラーの数及び当該システムが訂正可能なエラーの数に制限を有する。例えば、或るＥＣＣシステムは、単一ビット・エラーを訂正するか又はエラーのペアを検出するのに十分な情報を保持することを保証する。かかるシステムにおいて、当該ブロック内の３ビットが破損していれば、当該ＥＣＣシステムは、そのエラーを検出することもあるし、検出しないこともある。そのエラーが検出されなければ、当該ＥＣＣシステムは、そのエラーと正しい値を区別することができない。
【０００７】
ミラーリング及びＥＣＣの両方を備えたシステムでは、これらの２つは、次のような意味で独立しているのが普通である。すなわち、ミラー化システムの各側がＥＣＣを有し、そしてＥＣＣが訂正不能エラーを検出すれば、唯１つのオプションは、他のミラー化システムからのデータを使用することである。
【０００８】
図１は、第１のミラー化システム１１０及び第２のミラー化システム１２０を備えた、ミラー化データ・ストレージ・システム１００を示す。
【０００９】
第１のミラー化システム１１０は、ストレージ媒体に格納されたデータセットＤ１（参照番号１１１）を有する。データセットＤ１に対しＥＣＣアルゴリズム１３０を適用することにより、ＥＣＣ値Ｅ１（参照番号１１２）が生成される。
【００１０】
同様に、第２のミラー化システム１２０は、ストレージ媒体に格納されたデータセットＤ２（参照番号１２１）を有する。データセットＤ２に対し同じＥＣＣアルゴリズム１３０を適用することにより、ＥＣＣ値Ｅ２（参照番号１２２）が生成される。
【００１１】
第１のミラー化システム１１０における回復済みデータ１５１は、点線によって示されるように、ストレージ媒体から読み取られ且つデータセットＤ１と同じであるべき回復済みデータセットＤｒ１（参照番号１１３）を含む。回復済みデータセットＤｒ１に対しＥＣＣアルゴリズム１３０を適用することにより、予期されたＥＣＣ値Ｅｃ１（参照番号１１４）が生成される。点線によって示されるように、ストレージ媒体から読み取られた回復済みＥＣＣ値Ｅｒ１（参照番号１１５）は、ＥＣＣ値Ｅ１と同じであるべきである。
【００１２】
第２のミラー化システム１２０における回復済みデータ１５２は、ストレージ媒体から読み取られ且つデータセットＤ２と同じであるべき回復済みデータセットＤｒ２（参照番号１２３）を含む。回復済みデータセットＤｒ２に対しＥＣＣアルゴリズム１３０を適用することにより、予期されたＥＣＣ値Ｅｃ２（参照番号１２４）が生成される。点線によって示されるように、ストレージ媒体から読み取られた回復済みＥＣＣ値Ｅｒ２（参照番号１２５）は、ＥＣＣ値Ｅ２と同じであるべきである。
【００１３】
各ミラー化システムは、１セットのデータ（Ｄ１、Ｄ２）及び１セットのＥＣＣ値（Ｅ１、Ｅ２）を有する。Ｅ１＝ＥＣＣ（Ｄ１）及びＥ２＝ＥＣＣ（Ｄ２）となるように、両方のミラー化システムについて同じアルゴリズムが使用される。読み取り時には、回復済みデータ（Ｄｒ１、Ｄｒ２）を使用することにより、予期されたＥＣＣ値Ｅｃ１＝ＥＣＣ（Ｄｒ１）、Ｅｃ２＝ＥＣＣ（Ｄｒ２）が計算される。Ｅｃ１＝Ｅ１であれば、Ｄ１が有効であり、Ｅｃ２＝Ｅ２であれば、Ｄ２が有効である。不一致は、データ又はＥＣＣ値のどれが破損していることを示す。何れか１つが一致すれば、そのデータは正しいと仮定される。両方が一致すれば、選択は任意である。ＥＣＣが検出しないエラーは、破損データの読み取りを可能にするであろう。
【００１４】
また、エラーを検出するために、Ｄｒ１及びＤｒ２を比較することも可能であろう。（エラー訂正をパスしたとしても）Ｄｒ１及びＤｒ２が一致しなければ、ＥＣＣが検出しないエラーが検出されることになるが、そのエラーを訂正することはできない。というのは、Ｄｒ１及びＤｒ２のうちどれが正しいかを知ることができないからである。
【発明の概要】
【発明が解決しようとする課題】
【００１５】
コンピュータ・クラスタのサイズが増大し且つストレージ・サイズが増大するにつれて、システム全体におけるエラーの数が増加する。
【課題を解決するための手段】
【００１６】
本発明の第１の側面に従って、第１のエラー検出及び訂正コード（ＥＣＣ）アルゴリズムを適用する第１のミラー化システム及び第２のＥＣＣアルゴリズムを適用する第２のミラー化システムを備えたミラー化データ・ストレージ・システムにおけるエラーを検出するための方法が提供される。この方法は、
前記第１及び第２のミラー化システムの各々における回復済みデータを読み取るステップと、
４つの計算済みＥＣＣ値を生成するように前記第１及び第２のＥＣＣアルゴリズムの両方を適用することにより、前記第１及び第２のミラー化システムの各々における前記回復済みデータを処理するステップと、
前記計算済みＥＣＣ値を使用して、前記第１及び第２のミラー化システムの正しい回復済みデータを決定するステップを有する。
【００１７】
本発明の第２の側面に従って、前記第１の側面に従った方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラムが提供される。
【００１８】
本発明の第３の側面に従って、ミラー化データ・ストレージ・システムにおけるエラーを検出するためのシステムであって、
第１のエラー検出及び訂正コード（ＥＣＣ）アルゴリズムを適用する第１のミラー化システムと、
第２のＥＣＣアルゴリズムを適用する第２のミラー化システムと、
前記;第１及び第２のミラー化システムの各々における回復済みデータを読み取るためのデータ回復コンポーネントと、
４つの計算済みＥＣＣ値を生成するように前記第１及び第２のＥＣＣアルゴリズムの両方を適用することにより、前記第１及び第２のミラー化システムの各々における回復済みデータを処理するためのエラー訂正コード適用コンポーネントと、
前記計算済みＥＣＣ値を使用して、前記第１及び第２のミラー化システムの正確な回復済みデータを決定するための比較コンポーネントを備えるシステムが提供される。
【００１９】
発明と見なされる主題は、特許請求の範囲において特定され且つ明確に記載されている。本発明の目的、特徴及び効果に加えて、その構成及び動作の方法は、添付の図面とともに以下の詳細な説明を参照することによって最も良く理解されるであろう。
【発明の効果】
【００２０】
本発明は、各ミラー化システムが異なるＥＣＣを有するミラー化データ・ストレージ・システムにおいて、両方のミラー化システムからの読み取りを行うとともに、ＥＣＣによって検出されない破損を検出するために比較を行うことが可能であるという効果を奏する。
【図面の簡単な説明】
【００２１】
【図１】従来技術に従った公知のミラー化データ・ストレージ・システムの概略図である。
【図２】本発明に従ったミラー化データ・ストレージ・システムの概略図である。
【図３】本発明に従ったシステムのブロック図である。
【図４】本発明を実装することができるコンピュータ・システムのブロック図である。
【図５】本発明に従った方法のフローチャートである。
【発明を実施するための形態】
【００２２】
説明を簡単にし且つ明瞭にするため、図面中の要素は、必ずしも正確な尺度で描かれていないことに留意されたい。例えば、明瞭さのために、或る要素の次元は、他の要素に対し誇張されていることがある。さらに、適切であると考えられる場合には、複数の図面中の対応するか又は類似した特徴を示すために、同一の参照番号が複数の図面中で使用されることがある。
【００２３】
本発明を十分に理解することができるように、以下の詳細な説明では、多くの特定の詳細事項が開示される。しかし、本発明は、これらの特定の詳細事項なしで実施できることを理解されたい。また、本発明を不明瞭にしないように、周知の方法、手順及びコンポーネントは、詳細には開示されていない。
【００２４】
本発明に従った方法及びシステムが実装されるミラー化データ・ストレージ・システムでは、２つのミラー化データ・コピーについて、異なるエラー検出及び訂正コード（ＥＣＣ）アルゴリズムが使用される。エラーは、他方のＥＣＣアルゴリズムではなく、一方のＥＣＣアルゴリズムによって検出されることがある。読み取り回復済みのデータは、４つの計算済みＥＣＣ値を生成するように両方のＥＣＣアルゴリズムによって処理され、その各々は互いに他の１つと比較される。正しいミラー化システムは、２つのＥＣＣセットの相互比較（cross-comparison）によって決定することができる。さらに、或るミラー化システムにおけるＥＣＣ値のペアは、破損データ及び破損ＥＣＣ値を識別するために使用することができる。
【００２５】
図２は、第１のミラー化システム２１０及び第２のミラー化システム２２０を備えた、ミラー化データ・ストレージ・システム２００を示す。
【００２６】
第１のミラー化システム２１０は、ストレージ媒体に格納されたデータセットＤ１（参照番号２１１）を有する。データセットＤ１に対し第１のＥＣＣアルゴリズムであるＥＣＣａ（参照番号２３１）を適用することにより、ＥＣＣ値Ｅ１（参照番号２１２）が生成される。ＥＣＣ値Ｅ１は格納される。
【００２７】
第２のミラー化システム２２０は、ストレージ媒体に格納されたデータセットＤ２（参照番号２２１）を有する。データセットＤ２に対し第２の異なるＥＣＣアルゴリズムであるＥＣＣｂ（参照番号２３２）を適用することにより、ＥＣＣ値Ｅ２（参照番号２２２）が生成される。ＥＣＣ値Ｅ２は格納される。
【００２８】
第１のミラー化システム２１０における回復済みデータ２５１は、回復済みデータセットＤｒ１（参照番号２１３）を含む。回復済みデータセットＤｒ１に対し第１のＥＣＣアルゴリズムであるＥＣＣａ（参照番号２３１）及び第２のＥＣＣアルゴリズムであるＥＣＣｂ（参照番号２３２）を適用することにより、ＥＣＣ値Ｅ１ａ（参照番号２１４）及びＥ１ｂ（参照番号２１５）がそれぞれ生成される。
【００２９】
第２のミラー化システム２２０における回復済みデータ２５２は、回復済みデータセットＤｒ２（参照番号２２３）を含む。回復済みデータセットＤｒ２に対し第１のＥＣＣアルゴリズムであるＥＣＣａ（参照番号２３１）及び第２のＥＣＣアルゴリズムであるＥＣＣｂ（参照番号２３２）を適用することにより、ＥＣＣ値Ｅ２ａ（参照番号２２４）及びＥ２ｂ（参照番号２２５）がそれぞれ生成される。
【００３０】
さらに、回復済みデータ２５１及び２５２は、各ミラー化システムにおける回復済みＥＣＣ値として、Ｅｒ１（参照番号２１６）及びＥｒ２（参照番号２２６）を含む。
【００３１】
異なるＥＣＣアルゴリズムは、Ｅ１＝ＥＣＣａ（Ｄ１）及びＥ２＝ＥＣＣｂ（Ｄ２）となるように、２つのミラー化システムについて使用される。これが機能する仮定とは、２つのＥＣＣアルゴリズムを使用すると、一方のアルゴリズムによって検出されるが他方のアルゴリズムによって検出されないエラーが存在するだろうというものである。その結果、検出されないエラーの場合は、システムをより弾力的にすることができる。
【００３２】
読み取り時には、回復済みデータ（Ｄｒ１、Ｄｒ２）を両方のＥＣＣアルゴリズムによって処理することにより、４つの計算済みＥＣＣ値として、Ｅ１ａ、Ｅ１ｂ、Ｅ２ａ、Ｅ２ｂ（但し、Ｅｎｘはデータｎに適用されるＥＣＣアルゴリズムｘである）が生成される。この段階で、回復済みＥＣＣ値（Ｅｒ１、Ｅｒ２）に対して行うことができる比較は、次の通りである。
Ｅｒ１＝Ｅ１ａ
Ｅｒ１＝Ｅ２ａ
Ｅｒ２＝Ｅ２ｂ
Ｅｒ２＝Ｅ１ｂ。
各比較が生成することができる３つの結果は、次の通りである。
（ｘ）一致
（ｙ）不一致（ＥＣＣは訂正可能）
（ｚ）不一致（ＥＣＣは訂正不能）
【００３３】
かかる比較の任意の結果は、必ずしも実際の結果ではない。例えば、Ｅｒ又はＤｒの多数の破損が生じ且つこれが他の有効な結果のように見える場合にも、一致が生じることがあるからである。不一致は、Ｅｒ及びＤｒの一方又は両方の破損から生じることがある。
【００３４】
このように、各ミラー化システムが異なるＥＣＣを有するミラー化データ・ストレージ・システムは、両方のミラー化システムからの読み取りを行うとともに、ＥＣＣによって検出されない破損を検出するために比較を行うことが可能である。
【００３５】
第１のデータ比較は、２つのミラー化システムの回復済みデータＤｒ１及びＤｒ２の間で行うことができる。このデータ比較が不一致（Ｄｒ１≠Ｄｒ２）の結果を生成する場合、２つのＥＣＣセットの相互比較によって、正しいミラー化システムが決定される。
【００３６】
もし、Ｅ１ｂ≠Ｅｒ２であるがＥ２ａ＝Ｅｒ１であれば、Ｄｒ１は破損しており、Ｄｒ２は正常である。Ｄｒ１が破損しているのは、Ｄｒ１がＥ１ｂを生成するために使用され、そしてＥ１ｂが回復済みＥｒ２と一致しないからである。Ｄｒ２が正常であるのは、Ｄｒ２がＥ２ａを生成するために使用され、そしてＥ２ａが回復済みＥｒ１と一致するからである。
【００３７】
また、Ｄｒ１及びＤｒ２のデータ比較を行うことなく、利益を得ることも可能である。各ミラー化システムが異なるＥＣＣを有するミラー化データ・ストレージ・システムでは、ＥＣＣ値のペアを使用することにより、破損データ（Ｄｒ１、Ｄｒ２）及び破損ＥＣＣ値（Ｅｒ１、Ｅｒ２）を区別することが可能である。
【００３８】
もし、Ｅｒ１≠Ｅ１ａであり且つＥｒ２≠Ｅ１ｂであれば、Ｄｒ１が破損している蓋然性が最も高い。というのは、その両方のＥＣＣ値が不一致となっているからである。Ｅｒ１≠Ｅ１ａであり且つＥｒ１≠Ｅ２ｂである場合は、データではなくＥｒ１が破損している蓋然性がある。というのは、Ｅｒ１を使用する両方のＥＣＣ値が不一致となっているからである。
【００３９】
図３は、本発明に従ったシステム３００の実施形態を示す。ミラー化システム３１０、３２０の各々は、格納済みデータ３１２、３２２を保持するとともに、ＥＣＣコンポーネント３１４、３２４によって計算されるような格納済みＥＣＣ値３１３、３２３を保持する、データ・ストレージ３１１、３２１を有する。２つのミラー化システム３１０、３２０の各々は、それらのＥＣＣコンポーネント３１４、３２４において、異なるＥＣＣアルゴリズム、すなわちアルゴリズム１（参照番号３１５）及びアルゴリズム２（参照番号３２５）をそれぞれ使用する。
【００４０】
各ミラー化システム３１０、３２０は、回復コンポーネント３３０、３４０を有する。回復コンポーネント３３０、３４０は、データ３３２、３４２及びＥＣＣ値３３３、３４３を回復するためのデータ回復コンポーネント３３１、３４１を有する。ＥＣＣ適用（applier）コンポーネント３３４、３４４は、回復済みデータに対しアルゴリズム１及びアルゴリズム２（それ自体のミラー化システムのＥＣＣアルゴリズム及び他方のミラー化システムのＥＣＣアルゴリズム）を適用するために設けられる。
【００４１】
回復コンポーネント３３０、３４０に設けられた比較コンポーネント３３５、３４５は、回復済みデータを他方のミラー化システムと比較するとともに、回復済みＥＣＣ値をＥＣＣ適用コンポーネント３３４、３４４の結果と比較する。エラー検出コンポーネント３３６、３４６は、正しいデータ値を決定する。
【００４２】
図４は、本発明の諸側面を実装するための典型的なコンピュータ・システムを示す。当該コンピュータ・システムに設けられるデータ処理システム４００は、プログラム・コードを格納及び／又は実行するのに適しており、バス・システム４０３を通してメモリ要素に対し直接的に又は間接的に結合された少なくとも１つのプロセッサ４０１を含む。これらのメモリ要素は、プログラム・コードの実行中に使用されるローカル・メモリ、バルク・ストレージ、プログラム・コードの実行中にバルク・ストレージからの取り出し回数を減少させるために少なくとも或るプログラム・コードの一時的記憶領域を提供するキャッシュ・メモリを含むことができる。
【００４３】
これらのメモリ要素は、読み取り専用メモリ（ＲＯＭ）４０４及びランダム・アクセス・メモリ（ＲＡＭ）４０５の形式を有するシステム・メモリ４０２を含むことができる。基本入出力システム（ＢＩＯＳ）４０６は、ＲＯＭ ４０４内に格納することができる。オペレーティング・システム４０８を含むシステム・ソフトウェア４０７は、ＲＡＭ ４０５内に格納することができる。ソフトウェア・アプリケーション４１０も、ＲＡＭ ４０５内に格納することができる。
【００４４】
また、システム４００は、磁気ディスク・ドライブのような１次ストレージ手段４１１と、磁気ディスク・ドライブ及び光ディスク・ドライブのような２次ストレージ手段４１２を含むことができる。これらのドライブ及びそれらに関連するコンピュータ可読媒体は、システム４００のためのコンピュータ実行可能命令、データ構造、プログラム・モジュール及び他のデータの不揮発性ストレージを提供する。ソフトウェア・アプリケーションは、１次及び２次ストレージ手段４１１、４１２及びシステム・メモリ４０２上に格納することができる。
【００４５】
システム４００は、ネットワーク・アダプタ４１６を介する１つ以上の遠隔コンピュータへの論理接続を使用して、ネットワーク化環境内で動作することができる。
【００４６】
入出力装置４１３は、直接的に又は介在するＩ／Ｏコントローラを通してシステム４００に結合することができる。ユーザは、キーボードのような入力装置、ポインティング・デバイス又は他の入力装置（例えば、マイクロホン、ジョイ・スティック、ゲーム・パッド、衛星放送アンテナ、スキャナ等）を通して、コマンド及び情報をシステム４００に入力することができる。出力装置は、スピーカ、プリンタ等を含むことができる。また、ディスプレイ装置４１４は、ビデオ・アダプタ４１５のようなインタフェースを介してシステム・バス４０３に接続される。
【００４７】
図５は、本発明に従った方法のフローチャート５００を示す。フローチャート５００の左側５１０は、第１のミラー化システムにおけるプロセスを示し、フローチャート５００の右側５２０は、第２のミラー化システムにおけるプロセスを示す。
【００４８】
第１のミラー化システムでは、データセットＤ１が格納される（ステップ５１１）。第１のＥＣＣアルゴリズムであるＥＣＣａを適用することにより（ステップ５１２）、ＥＣＣ値Ｅ１が生成され且つ格納される（ステップ５１３）。読み取り回復時には、データＤｒ１及びＥＣＣ値Ｅｒ１が回復される（ステップ５１４）。回復済みデータＤｒ１に対し第１のＥＣＣアルゴリズムであるＥＣＣａを適用することにより、ＥＣＣ値Ｅ１ａが生成される（ステップ５１５）。回復済みデータＤｒ１に対し他方のミラー化システムにおいて使用されるような第２のＥＣＣアルゴリズムであるＥＣＣｂを適用することにより、ＥＣＣ値Ｅ１ｂが生成される（ステップ５１６）。
【００４９】
第２のミラー化システムでは、データセットＤ２が格納される（ステップ５２１）。第２のＥＣＣアルゴリズムであるＥＣＣｂを適用することにより（ステップ５２２）、ＥＣＣ値Ｅ２が生成され且つ格納される（ステップ５２３）。読み取り回復時には、データＤｒ２及びＥＣＣ値Ｅｒ２が回復される（ステップ５２４）。回復済みデータＤｒ２に対し他方のミラー化システムにおいて使用されるような第１のＥＣＣアルゴリズムであるＥＣＣａを適用することにより、ＥＣＣ値Ｅ２ａが生成される（ステップ５２５）。回復済みデータＤｒ２に対し第２のＥＣＣアルゴリズムであるＥＣＣｂを適用することにより、ＥＣＣ値Ｅ２ｂが生成される（ステップ５２６）。
【００５０】
次に、これらの結果が２つのミラー化システムの間で比較される。第１のミラー化システムの回復済みデータＤｒ１が、第２のミラー化システムの回復済みデータＤｒ２と比較される（ステップ５３０）。第１のミラー化システムの回復済みＥＣＣ値Ｅｒ１が、第１のＥＣＣアルゴリズムを使用してＤｒ１及びＤｒ２から決定された計算済みＥＣＣ値Ｅ１ａ及びＥ２ａと比較される（ステップ５３１）。第２のミラー化システムの回復済みＥＣＣ値Ｅｒ２が、第２のＥＣＣアルゴリズムを使用してＤｒ１及びＤｒ２から決定された計算済みＥＣＣ値Ｅ１ｂ及びＥ２ｂと比較される（ステップ５３２）。
【００５１】
相互比較によって、Ｄｒ１又はＤｒ２の正しい値が決定される（ステップ５３３）。当該相互比較によって、正しいのが回復済みデータＤｒ１／Ｄｒ２又は回復済みＥＣＣ値Ｅｒ１／Ｅｒ２のどれであるかということも決定される（ステップ５３４）。その後、正しいデータが戻される（ステップ５３５）。
【００５２】
本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態又はハードウェア及びソフトウェア要素の両方を含む実施形態の形式を取ることができる。物理メモリの場合には、ハードウェアの実施形態が使用される蓋然性が高い。ディスク・ストレージの場合には、ハードウェアの実施形態又はソフトウェアの実施形態の何れかを使用することができる。
【００５３】
本発明は、コンピュータ又は任意の命令実行システムに関連して又はこれらによって使用するためのプログラム・コードを提供する、コンピュータ使用可能媒体又はコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形式を取ることができる。この記載の目的上、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置等に関連して又はこれらによって使用するためのプログラムを保持し、格納し、通信し、伝送し、移送する、任意の装置とすることができる。
【００５４】
媒体は、電子、磁気、光学、電磁気、赤外線又は半導体式のシステム（若しくは装置）又は伝送媒体とすることができる。コンピュータ可読媒体の例には、半導体又は固体メモリ、磁気テープ、取り外し可能なフレキシブル・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、剛体磁気ディスク及び光ディスクがある。光ディスクの例には、読み取り専用のＣＤ−ＲＯＭ、読み書き可能なＣＤ−Ｒ／Ｗ及びＤＶＤがある。
【００５５】
本発明の範囲から逸脱することなく、前述の実施形態に対し種々の改良及び修正を行うことができる。
【符号の説明】
【００５６】
２００・・・ミラー化データ・ストレージ・システム
２１０・・・第１のミラー化システム
２１１・・・データセットＤ１
２１２・・・ＥＣＣ値Ｅ１
２１３・・・回復済みデータセットＤｒ１
２１４・・・計算済みＥＣＣ値Ｅ１ａ
２１５・・・計算済みＥＣＣ値Ｅ１ｂ
２１６・・・回復済みＥＣＣ値Ｅｒ１
２２０・・・第２のミラー化システム
２２１・・・データセットＤ２
２２２・・・ＥＣＣ値Ｅ２
２２３・・・回復済みデータセットＤｒ２
２２４・・・計算済みＥＣＣ値Ｅ２ａ
２２５・・・計算済みＥＣＣ値Ｅ２ｂ
２２６・・・回復済みＥＣＣ値Ｅｒ２
２３１・・・第１のＥＣＣアルゴリズムＥＣＣａ
２３２・・・第１のＥＣＣアルゴリズムＥＣＣｂ
２５１・・・回復済みデータ
２５２・・・回復済みデータ
３１０、３２０・・・ミラー化システム
３１１、３２１・・・データ・ストレージ
３１２、３２２・・・格納済みデータ
３１３、３２３・・・格納済みＥＣＣ値
３１４、３２４・・・ＥＣＣコンポーネント
３１５・・・ＥＣＣアルゴリズム１
３２５・・・ＥＣＣアルゴリズム２
３３０、３４０・・・回復コンポーネント
３３１、３４１・・・データ回復コンポーネント
３３２、３４２・・・回復済みデータ
３３３、３４３・・・回復済みＥＣＣ値
３３４、３４４・・・ＥＣＣ適用コンポーネント
３３５、３４５・・・比較コンポーネント
３３６、３４６・・・エラー検出コンポーネント
【図１】
0005785477.tif 000002
【図２】
0005785477.tif 000003
【図３】
0005785477.tif 000004
【図４】
0005785477.tif 000005
【図５】
0005785477.tif 000006