(57)【要約】【課題】ステージング時にディスク装置から読出したデータの誤りを検出することができるステージング方法を提供する。【解決手段】上記課題を解決するために、制御装置１００に、データを読出すデータ読出し手段１０１と、読出したデータから第１の基準データを生成する第１の基準データ生成手段１０２と、同様に第２の基準データを生成する第２の基準データ生成手段１０３と、データ読出し手段１０１で読出したデータの正誤を判別する正誤判別手段１０４と、データをキャッシュメモリに書き込むデータ書込み手段１０５と、を備える。【選択図】図１
2008158724.tif 000002
【特許請求の範囲】
【請求項１】
所定のデータから第１の誤り訂正符号と第２の誤り訂正符号を生成し、該所定のデータと第１および第２の誤り訂正符号を分散して下位装置に記憶させ、該下位装置に記憶したデータの一部をキャッシュメモリに保持するディスクアレイ制御装置において、
上位装置からのリード要求に対して、該要求されたデータを含む所定のデータと、該所定のデータから生成された第１および第２の誤り訂正符号と、を前記下位装置から読出すデータ読出し手段と、
該データ読出し手段が読出したデータであって前記要求されたデータを除く所定のデータと、前記第１の誤り訂正符号と、から第１の基準データを生成する第１の基準データ生成手段と、
前記データ読出し手段が読出したデータであって前記要求されたデータを除く所定のデータと、前記第２の誤り訂正符号と、から第２の基準データを生成する第２の基準データ生成手段と、
前記データ読出し手段が読出した前記要求されたデータと、前記第１の基準データと、前記第２の基準データと、を比較し、該比較の結果から前記データ読出し手段が読出した前記要求されたデータが正しいか否かを判断する正誤判別手段と、
該正誤判別手段が正しいと判断したデータを前記キャッシュメモリに記憶するデータ書込み手段と、
を備えるディスクアレイ制御装置。
【請求項２】
前記正誤判別手段は、
前記要求されたデータと、前記第１の基準データまたは前記第２の基準データの少なくともいずれか一方と、が一致した場合に前記要求されたデータが正しいと判断する、
ことを特徴とする請求項１に記載のディスクアレイ制御装置。
【請求項３】
前記正誤判別手段は、
前記要求されたデータと、前記第１の基準データと、前記第２の基準データと、の少なくとも２以上が一致した場合に該一致したデータを正しいデータと判断する、
ことを特徴とする請求項１に記載のディスクアレイ制御装置。
【請求項４】
所定のデータから第１の誤り訂正符号と第２の誤り訂正符号を生成し、該所定のデータと第１および第２の誤り訂正符号を、複数のディスク装置で構成されるディスクアレイに分散して記憶し、該ディスクアレイに記憶したデータの一部をキャッシュメモリに保持するディスクアレイ装置であって、
上位装置からのリード要求に対して、該要求されたデータを含む所定のデータと、該所定のデータから生成された第１および第２の誤り訂正符号と、を前記ディスクアレイから読出すデータ読出し手段と、
該データ読出し手段が読出したデータであって前記要求されたデータを除く所定のデータと、前記第１の誤り訂正符号と、から第１の基準データを生成する第１の基準データ生成手段と、
前記データ読出し手段が読出したデータであって前記要求されたデータを除く所定のデータと、前記第２の誤り訂正符号と、から第２の基準データを生成する第２の基準データ生成手段と、
前記データ読出し手段が読出した前記要求されたデータと、前記第１の基準データと、前記第２の基準データと、を比較し、該比較の結果から前記データ読出し手段が読出した前記要求されたデータが正しいか否かを判断する正誤判別手段と、
該正誤判別手段が正しいと判断したデータを前記キャッシュメモリに記憶するデータ書込み手段と、
を備えるディスクアレイ装置。
【請求項５】
所定のデータから第１の誤り訂正符号と第２の誤り訂正符号を生成し、該所定のデータと第１および第２の誤り訂正符号を分散して下位装置に記憶させ、該下位装置に記憶したデータの一部をキャッシュメモリに保持するディスクアレイ制御装置に実行させるステージング方法であって、
上位装置からのリード要求に対して、該要求されたデータを含む所定のデータと、該所定のデータから生成された第１および第２の誤り訂正符号と、を前記下位装置から読出し、
前記要求されたデータを除く所定のデータと、前記第１の誤り訂正符号と、から第１の基準データを生成し、
前記要求されたデータを除く所定のデータと、前記第２の誤り訂正符号と、から第２の基準データを生成し、
前記要求されたデータと、前記第１の基準データと、前記第２の基準データと、を比較し、該比較の結果から前記要求されたデータが正しいか否かを判断し、
該正しいと判断したデータを前記キャッシュメモリに記憶する、
ことを特徴とするステージング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置において行われるステージングの方法に関する。
【背景技術】
【０００２】
一般的に、ＲＡＩＤ装置等のディスクアレイ装置は、高速アクセス等を実現するためにディスクアレイとホストインタフェースとの間にキャッシュメモリを備える。例えば、ディスクアレイ上の一部のデータはキャッシュメモリ上に保持され、ホストからリードまたはライト要求があった場合には、まずキャッシュメモリ上のデータに対してリード処理またはライト処理を行うことでアクセスを高速化している。
【０００３】
また、キャッシュメモリ上にホストから要求されたデータが存在しない場合、ディスクアレイ上のデータに対してリード処理を行って要求されたデータを読み出すとともに、そのデータをキャッシュメモリにも書き込む処理を行う。一般に、この処理をステージングという。
【０００４】
ディスクアレイを構成するディスク装置（例えば、磁気ディスク装置等）は、ディスクのヘッドや媒体面等の障害によって、ライト時にデータを正しく書き込めない、リード時に誤ったデータを読出してしまう、などの問題が発生する場合がある。
【０００５】
一方、ディスクアレイ装置の大容量化にともなって、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）５よりも信頼性が高いＲＡＩＤ６が注目されてきている。
【０００６】
ＲＡＩＤ６は、例えば、数学的に直行関係にある２つのパリティ（パリティＰ、パリティＱ）を異なるディスク装置に配置することで、同一ＲＡＩＤグループ内で２台のディスク装置が故障しても復旧が可能である。例えば、ディスク装置が故障したためにリビルドを行っている途中にもう一台のディスク装置が故障しても自己修復が可能となっている。
【０００７】
また、ディスクアレイ装置では、一般的に、データに対してＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）コードやＢｌｏｃｋ  ＩＤといった情報を付加することで、データの正当性を保証している。
【０００８】
しかし、例えば、ディスク装置への書込み時に媒体面に書き込めないような障害が発生し、かつ、この書込み処理が正常に終了したものと誤認された場合には、後にそのデータを読出した時にデータの誤りを検出することはできない。すなわち、何らかの要因でディスク装置から正常に読出したデータが正しいデータでない場合、誤ったデータについてステージングが行われ、その誤ったデータはそのままホストに転送されてしまうという問題がある。
【０００９】
特許文献１には、アレイ検証を短時間で行い、且つ、ＣＰＵの負荷を軽くし、アプリケーションからのディスクアクセス速度が低下しないことを可能とするアレイ検証方法について開示されている。
【００１０】
特許文献２には、ディスクアレイを構成するディスク装置の異常検出のためのパリティ整合性の確認、或いはパリティ生成等のパリティ処理に好適なディスクアレイ装置におけるパリティ処理方法について開示されている。
【特許文献１】特開２００１−１００９４０号公報
【特許文献２】特開２００３−１６７６８９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、ステージング時にディスク装置から読出したデータの誤りを検出することができるステージング方法を提供することである。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明に係るディスクアレイ制御装置は、所定のデータから第１の誤り訂正符号と第２の誤り訂正符号を生成し、該所定のデータと第１および第２の誤り訂正符号を分散して下位装置に記憶させ、該下位装置に記憶したデータの一部をキャッシュメモリに保持するディスクアレイ制御装置において、上位装置からのリード要求に対して、該要求されたデータを含む所定のデータと、該所定のデータから生成された第１および第２の誤り訂正符号と、を前記下位装置から読出すデータ読出し手段と、該データ読出し手段が読出したデータであって前記要求されたデータを除く所定のデータと、前記第１の誤り訂正符号と、から第１の基準データを生成する第１の基準データ生成手段と、前記データ読出し手段が読出したデータであって前記要求されたデータを除く所定のデータと、前記第２の誤り訂正符号と、から第２の基準データを生成する第２の基準データ生成手段と、前記データ読出し手段が読出した前記要求されたデータと、前記第１の基準データと、前記第２の基準データと、を比較し、該比較の結果から前記データ読出し手段が読出した前記要求されたデータが正しいか否かを判断する正誤判別手段と、該正誤判別手段が正しいと判断したデータを前記キャッシュメモリに記憶するデータ書込み手段と、を備える。
【００１３】
本発明によると、ディスクアレイ制御装置は、上位装置から要求されたデータ（以下、「要求データ」という）を含む所定のデータと、第１および第２の誤り訂正符号と、を読み出す。
【００１４】
そして、要求データを除く所定のデータと第１の誤り訂正符号とから要求データを復元し、これを第１の基準データとする。同様に、要求データを除く所定のデータと第２の誤り訂正符号とから要求データを復元し、これを第２の基準データとする。
【００１５】
さらに、要求データと、第１の基準データと、第２の基準データと、を比較して要求データの正誤を判断する。その結果、下位装置から読み出したデータ（要求データ）が正しくないデータであるか否かを確実に判別することが可能となる。
【００１６】
また、正誤判別手段が正しいと判断したデータをキャッシュメモリに書き込むので、ステージングによってキャッシュメモリに記憶されたデータの信頼度を向上することが可能となる。
【発明の効果】
【００１７】
以上に説明したように、本発明によると、ステージング時にディスク装置から読出したデータの誤りを検出することができるステージング方法を提供することが可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態について図１〜図４に基づいて説明する。
図１は、本発明の実施例に係るディスクアレイ制御装置１００の原理を説明する図である。
【００１９】
図１に示すディスクアレイ制御装置１００は、データを読出すデータ読出し手段１０１と、読出したデータから第１の基準データを生成する第１の基準データ生成手段１０２と、同様に第２の基準データを生成する第２の基準データ生成手段１０３と、データ読出し手段１０１で読出したデータの正誤を判別する正誤判別手段１０４と、データをキャッシュメモリに書き込むデータ書込み手段１０５と、を備える。
【００２０】
データ読出し手段１０１は、ディスクアレイ制御装置１００と通信可能に接続している下位装置（例えば、複数のディスク装置からなるディスクアレイ）から所定のデータ（以下、「データストライプ」という）を読み出す。
【００２１】
ここで、本実施例に係るデータストライプは、所望のデータを含む一連のデータと、第１の誤り訂正符号と、第２の誤り訂正符号と、で構成されるデータである。また、第１及び第２の誤り訂正符号は、例えば、一連のデータを下位装置に書き込む際に当該一連のデータから生成された異なる誤り訂正符号（例えば、Ｐパリティ、Ｑパリティ）である。
【００２２】
第１の基準データ生成手段１０２は、第１の誤り訂正符号と、所望のデータを除いた一連のデータと、から所望のデータを復元する。この復元したデータを第１の基準データとする。
【００２３】
同様に、第２の基準データ生成手段１０３は、第２の誤り訂正符号と、所望のデータを除いた一連のデータと、から所望のデータを復元する。この復元したデータを第２の基準データとする。
【００２４】
正誤判別手段１０４は、データ読出し手段１０１が読み出した所望のデータと、第１の基準データ生成手段１０２が生成した第１の基準データと、第２の基準データ生成手段１０３が生成した第２の基準データと、を比較する。そして、比較の結果から、所望のデータが正しいデータか否かを判別する。
【００２５】
本実施例では、所望のデータ、第１の基準データ及び第２の基準データのうち少なくとも２以上のデータが一致した場合、その一致したデータが正しいデータであると判断してステージングを行う。また、全てのデータが一致しない場合には、データが正しくないと判断してステージング処理を異常終了する。
【００２６】
なお、少なくとも２以上のデータが一致した場合に一致したデータが正しいデータであると判断するのは、例えば、２つのデータが一致した場合、すなわち、２台のディスク装置が同時に故障し、かつ、その両データが同じように（一致するように）文字化けする確率は、１台のディスク装置が故障するケースに比べて非常に小さい確率だからである。
【００２７】
データ書込み手段１０５は、正誤判別手段１０４が正しいと判断した所望のデータをキャッシュメモリの所定のアドレスに書き込む処理を行う。
以上の処理によって、例えば、下位装置に障害等が生じて正しくないデータが記憶されてしまっている場合でも、下位装置から読み出したデータの正誤を判断することができるので、正しいデータのみをキャッシュメモリに反映することが可能となる。すなわち、正しいデータのみについてステージングを行うことが可能となる。
【００２８】
図２は、本発明の実施例に係るディスクアレイ制御装置１００の具体的な構成例を示す図である。
図２に示すディスクアレイ制御装置１００は、所定のプログラムを実行することで本実施例に係るディスクアレイ制御装置を実現するＣＰＵ２０１と、プログラムやデータを記憶するメモリ２０２と、を少なくとも備える。
【００２９】
メモリ２０２は、揮発性のメモリ（例えば、ＲＡＭ等）又は不揮発性のメモリ（例えば、フラッシュメモリ等）である。そして、ＲＡＩＤ構成定義情報を記憶する構成定義領域２０２ａと、バッファ領域（以下、単に「バッファ」という）２０２ｂと、下位装置から読み出したデータの一部を記憶するキャッシュメモリ領域（以下、単に「キャッシュメモリ」という）２０２ｃと、を少なくとも備える。
【００３０】
なお、本実施例では、メモリ２０１内に構成定義領域２０１ａ、バッファ２０１ｂ及びキャッシュメモリ２０１ｃを設けているが、それぞれ独立した記憶装置であってもよいのは当然である。
【００３１】
ＲＡＩＤ構成定義は、ホストコンピュータ２０３とのインタフェース上のアドレスと、ディスクアレイ２０３（又は、ディスク装置２０４ａ、２０４ｂ、２０４ｃ、・・・）上のアドレスと、のマッピング関係を定義したテーブルである。
【００３２】
ディスクアレイ制御装置１００は、上位装置であるホストコンピュータ２０３と、複数のディスク装置２０４ａ、２０４ｂ、２０４ｃ、・・・で構成されるディスクアレイ２０４と、通信可能に接続されている。「通信可能に接続」とは、互いにデータの送受が可能なように接続された状態をいい、例えば、ＬＡＮ等のネットワークを介して接続してもよいし、互いを専用線で接続してもよい。
【００３３】
ここで、本実施例に係るディスクアレイ装置２００は、ディスクアレイ制御装置１００とディスクアレイ２０４とでＲＡＩＤ６を構成している。なお、本実施例に係るＲＡＩＤ６は、Ｐ＋Ｑ方式を採用する。
【００３４】
ホストコンピュータ２０３からライト要求を受付けると、ディスクアレイ制御装置１００は、ホストコンピュータ２０３から送られてきたデータ（以下、「ライトデータ」という）を所定のサイズに分割するとともに、例えば、互いが数学的に直行関係にあるパリティ（ＰパリティとＱパリティ）を生成する。そして、ライトデータとパリティデータとからストライピングデータを生成し、ディスクアレイ２０４に分散して書込みを行う。
【００３５】
なお、本実施例では、ライトデータを所定のサイズ（例えば、ブロック毎）に分割（ストライピング）したデータと、その分割したデータから生成したパリティデータ（ＰパリティとＱパリティ）と、からなるデータをストライピングデータという。
【００３６】
ホストコンピュータ２０３からリード要求を受付けると、ディスクアレイ制御装置１００は、ホストコンピュータ２０３から要求されたデータ（以下、「リードデータ」という）がキャッシュメモリ２０２ｃに存在するか否かをチェックする。キャッシュメモリ２０２ｃにリードデータがある場合には、当該データを読み出してホストコンピュータ２０３に転送する。
【００３７】
また、キャッシュメモリ２０２ｃにリードデータがない場合、ディスクアレイ制御装置１００は、ステージング処理を行う。まず、構成定義領域２０１ａのＲＡＩＤ構成定義を参照してリードデータを含むストライピングが記憶されている場所を確認する。そして、確認した場所（ディスクアレイ２０３）から目的のストライピングデータを読み出す。
【００３８】
さらに、ディスクアレイ制御装置１００は、読み出したリードデータの正誤を確認し、正しい場合には当該データをホストコンピュータ２０３に転送するとともにキャッシュメモリ２０２ｃに記憶する。
【００３９】
以上に説明した構成において、データ読出し手段１０１、第１の基準データ生成手段１０２、第２の基準データ生成手段１０３、正誤判別手段１０４及びデータ書込み手段１０５は、ＣＰＵ２０１に所定のプログラムを実行させることによって実現することができる。
【００４０】
図３は、本発明の実施例に係るディスクアレイ制御装置１００がリードデータの正誤を確認する処理の概要を示す図である。
図３には、説明を簡単にするために、５つのディスク装置（ディスク０〜４）で構成され、各ディスク装置に、データＤ、パリティＰ及びＱで構成されるストライピングデータが分散して記憶されている場合のディスクアレイ２０４について示している。
【００４１】
例えば、ディスク０〜４には、それぞれＤ（０，０）、Ｄ（１，０）、Ｄ（２，０）、・・・、Ｄ（０，１）、Ｄ（１，１）、Ｐ（２，１）、・・・、Ｄ（０，２）、Ｐ（１，２）、Ｑ（２，２）、・・・、Ｐ（０，３）、Ｑ（１，３）、Ｄ（２，３）、・・・、Ｑ（０，４）、Ｄ（１，４）、Ｄ（２，４）、・・・、が記憶されている。
【００４２】
また、各データ群Ｄ（０，０）、Ｄ（０，１）、Ｄ（０，２）、Ｐ（０，３）及びＱ（０，４）、Ｄ（１，０）、Ｄ（１，１）、Ｐ（１，２）、Ｑ（１，３）及びＤ（１，４）、Ｄ（２，０）、Ｐ（２，１）、Ｑ（２，２）、Ｄ（２，３）及びＤ（２，４）、・・・、はそれぞれ１つのストライピングデータである。
【００４３】
今、データＤ（０，１）に対してステージング処理を行う場合について考える。ディスクアレイ制御装置１００は、ステージング処理を開始すると、（１）ステージング対象のデータＤ（０，１）を含むストライピングデータａをディスクアレイ２０４から読み出す。
【００４４】
そして、（２）データＤ（０，１）以外のデータＤ（０，０）、Ｄ（０，２）とパリティＰ（０，３）とからデータＤ（０，１）を復元する。この復元されたデータをＤ（Ｐ）が、第１の基準データである。
【００４５】
さらに、（３）データＤ（０，１）以外のデータＤ（０，０）、Ｄ（０，２）とパリティＱ（０，４）とからデータＤ（０，１）を復元する。この復元されたデータをＤ（Ｑ）が、第２の基準データである。
【００４６】
そして、ディスクアレイ制御装置１００は、データＤ（０，１）とＤ（Ｐ）とＤ（Ｑ）とを比較し、比較結果に応じて正しいと判断したデータをキャッシュメモリ２０２ｃに記憶する。  図４は、本発明の実施例に係るディスクアレイ制御装置１００のステージングの具体的な処理を示すフローチャートである。
【００４７】
ステージング処理を開始すると、ディスクアレイ制御装置１００は、処理をステップＳ４０１に移行する。
ステップＳ４０１において、ディスクアレイ制御装置１００は、ステージングに必要なバッファ２０２ｂをメモリ２０２に確保する。例えば、ステージング時にディスクアレイ２０４から読み出すストライピングデータ（パリティＰ、Ｑを含む）を一時的に記憶する時に使用する。
【００４８】
ステップＳ４０２において、ディスクアレイ制御装置１００は、ステージング対象のデータＤを含むストライピングデータをディスクアレイ２０４から読出し、バッファ２０２ｂに記憶する。
【００４９】
ステップＳ４０３において、ディスクアレイ制御装置１００は、ステップＳ４０２で読み出した各ストライピングデータについて、第１の基準データＤ（Ｐ）を生成し、バッファ２０２ｂに記憶する。
【００５０】
ステップＳ４０４において、ディスクアレイ制御装置１００は、ステップＳ４０２で読み出した各ストライピングデータについて、第２の基準データＤ（Ｑ）を生成し、バッファ２０２ｂに記憶する。
【００５１】
ステップＳ４０５において、ディスクアレイ制御装置１００は、ステップＳ４０２で読み出したデータＤと、ステップＳ４０３で生成した第１の基準データＤ（Ｐ）と、を比較する。そして、比較の結果、両データが一致した場合、処理をステップＳ４０６に移行する。
【００５２】
ステップＳ４０６において、ディスクアレイ制御装置１００は、ステップＳ４０２で読み出したデータＤと、ステップＳ４０４で生成した第２の基準データＤ（Ｑ）と、を比較する。そして、比較の結果、両データが一致した場合、処理をステップＳ４０７に移行する。
【００５３】
ステップＳ４０７において、ディスクアレイ制御装置１００は、ステップＳ４０２で読み出したデータＤが正しいデータであると判断する。そして、キャッシュメモリ２０２ｃの所定のアドレスにデータＤを記憶する。
【００５４】
ステップＳ４０７の処理が完了すると、ディスクアレイ制御装置１００は、処理をステップＳ４０８に移行する。そして、ステージング処理を正常終了する。
また、ステップＳ４０６において、比較の結果、両データが一致しない場合、ディスクアレイ制御装置１００は、処理をステップＳ４０９に移行する。
【００５５】
ステップＳ４０９において、ディスクアレイ制御装置１００は、ステップＳ４０２で読み出したデータＤが正しいデータであると判断する。そして、キャッシュメモリ２０２ｃの所定のアドレスにデータＤを記憶する。
【００５６】
ステップＳ４１０において、ディスクアレイ制御装置１００は、ステップＳ４０２で読み出したデータＤを含むデータから新たなパリティＱを生成する。そして、当該パリティＱでディスクアレイ制御装置１００に記憶されているパリティＱを更新する。そして、ステップＳ４０８に移行し、ステージング処理を正常終了する。
【００５７】
一方、ステップＳ４０５において、比較の結果、両データが一致しない場合、ディスクアレイ制御装置１００は、処理をステップＳ４１１に移行する。
ステップＳ４１１において、ディスクアレイ制御装置１００は、ステップＳ４０２で読み出したデータＤと、ステップＳ４０４で生成した第２の基準データＤ（Ｑ）と、を比較する。そして、比較の結果、両データが一致した場合、処理をステップＳ４１２に移行する。
【００５８】
ステップＳ４１２において、ディスクアレイ制御装置１００は、ステップＳ４０２で読み出したデータＤが正しいデータであると判断する。そして、キャッシュメモリ２０２ｃの所定のアドレスにデータＤを記憶する。
【００５９】
ステップＳ４１３において、ディスクアレイ制御装置１００は、ステップＳ４０２で読み出したデータＤを含むデータから新たなパリティＰを生成する。そして、当該パリティＰでディスクアレイ制御装置１００に記憶されているパリティＰを更新する。そして、ス
テップＳ４０８に移行し、ステージング処理を正常終了する。
【００６０】
また、ステップＳ４１１において、比較の結果、両データが一致しない場合、ディスクアレイ制御装置１００は、処理をステップＳ４１４に移行する。
ステップＳ４１４において、ディスクアレイ制御装置１００は、ステップＳ４０３で生成した第１の基準データＤ（Ｐ）と、ステップＳ４０４で生成した第２の基準データＤ（Ｑ）と、を比較する。そして、比較の結果、両データが一致した場合、処理をステップＳ４１５に移行する。
【００６１】
ステップＳ４１５において、ディスクアレイ制御装置１００は、第１の基準データＤ（Ｐ）又は第２の基準データＤ（Ｑ）といずれかを正しいデータと判断する。本実施例では、例えば、第１の基準データＤ（Ｐ）が正しいデータと判断する。そして、ディスクアレイ制御装置１００は、第１の基準データＤ（Ｐ）をキャッシュメモリ２０２ｃに記憶する。
【００６２】
ステップＳ４１６において、ディスクアレイ制御装置１００は、ディスクアレイ制御装置１００に記憶されているデータＤを第１の基準データＤ（Ｐ）又は第２の基準データＤ（Ｑ）で更新する。なお、本実施例では、第１の基準データＤ（Ｐ）でデータＤを更新するものとする。そして、ステップＳ４０８に移行し、ステージング処理を正常終了する。
【００６３】
また、ステップＳ４１４において、比較の結果、両データが一致しない場合、ディスクアレイ制御装置１００は、処理をステップＳ４１７に移行する。そして、ステージング処理を異常終了する。
【００６４】
ステップＳ４０８又はＳ４１７においてステージング処理が終了すると、ディスクアレイ制御装置１００は、処理をステップＳ４１８に移行する。そして、ステップＳ４０１で確保したバッファ２０２ｂの領域を解放する。バッファ２０２ｂの解放が完了すると、ディスクアレイ制御装置１００は、処理をステップＳ４１９に移行しステージング処理を完了する。
【００６５】
以上に説明したステージング処理では、所望のデータ、第１の基準データ及び第２の基準データのうち少なくとも２以上のデータが一致した場合、その一致したデータが正しいデータであると判断してステージングを行っているが、例えば、２つのデータのみが一致する場合、一致しなかったデータで、一致したデータを上書きすることで、ストライプの整合性を復旧させてもよい。
【００６６】
すなわち、一致しなかったデータがデータＤの場合には、当該データＤでディスクアレイ２０４に記憶されているデータＤを更新し、一致しなかったデータが第１の基準データＤ（Ｐ）の場合には、新たにパリティＰを生成し、当該パリティＰでディスクアレイ２０４に記憶されているパリティＰを更新し、一致しなかったデータが第２の基準データＤ（Ｑ）の場合には、新たにパリティＱを生成し、当該パリティＱでディスクアレイ２０４に記憶されているパリティＱを更新すればよい。
【００６７】
以上に説明したように、本実施例に係るディスクアレイ制御装置１００は、ステージング対象のデータＤを含むストライピングデータから、第１の基準データＤ（Ｐ）と第２の基準データＤ（Ｑ）とを生成して比較を行う。そして、比較の結果、少なくとも２以上が一致するデータを正しいデータと判断してキャッシュメモリ２０２ｃに記憶する。
【００６８】
その結果、ディスクアレイ２０４から読み出したデータＤ（ステージング対象のデータＤ）の正誤を確認し、正しいデータに対してのみステージング処理を実施することが可能
となる。
【００６９】
また、読み出したデータＤが正しくない場合でも、第１の基準データＤ（Ｐ）と第２の基準データＤ（Ｑ）とが一致する場合には、この一致したデータを正しいデータと判断しステージングを行うので、読み出したデータＤを正しく訂正することが可能となる。
【００７０】
（付記１）  所定のデータから第１の誤り訂正符号と第２の誤り訂正符号を生成し、該所定のデータと第１および第２の誤り訂正符号を分散して下位装置に記憶させ、該下位装置に記憶したデータの一部をキャッシュメモリに保持するディスクアレイ制御装置において、
上位装置からのリード要求に対して、該要求されたデータを含む所定のデータと、該所定のデータから生成された第１および第２の誤り訂正符号と、を前記下位装置から読出すデータ読出し手段と、
該データ読出し手段が読出したデータであって前記要求されたデータを除く所定のデータと、前記第１の誤り訂正符号と、から第１の基準データを生成する第１の基準データ生成手段と、
前記データ読出し手段が読出したデータであって前記要求されたデータを除く所定のデータと、前記第２の誤り訂正符号と、から第２の基準データを生成する第２の基準データ生成手段と、
前記データ読出し手段が読出した前記要求されたデータと、前記第１の基準データと、前記第２の基準データと、を比較し、該比較の結果から前記データ読出し手段が読出した前記要求されたデータが正しいか否かを判断する正誤判別手段と、
該正誤判別手段が正しいと判断したデータを前記キャッシュメモリに記憶するデータ書込み手段と、
を備えるディスクアレイ制御装置。
（付記２）  前記正誤判別手段は、
前記要求されたデータと、前記第１の基準データまたは前記第２の基準データの少なくともいずれか一方と、が一致した場合に前記要求されたデータが正しいと判断する、
ことを特徴とする付記１に記載のディスクアレイ制御装置。
（付記３）  前記正誤判別手段は、
前記要求されたデータと、前記第１の基準データと、前記第２の基準データと、の少なくとも２以上が一致した場合に該一致したデータを正しいデータと判断する、
ことを特徴とする付記１に記載のディスクアレイ制御装置。
（付記４）  所定のデータから第１の誤り訂正符号と第２の誤り訂正符号を生成し、該所定のデータと第１および第２の誤り訂正符号を、複数のディスク装置で構成されるディスクアレイに分散して記憶し、該ディスクアレイに記憶したデータの一部をキャッシュメモリに保持するディスクアレイ装置であって、
上位装置からのリード要求に対して、該要求されたデータを含む所定のデータと、該所定のデータから生成された第１および第２の誤り訂正符号と、を前記ディスクアレイから読出すデータ読出し手段と、
該データ読出し手段が読出したデータであって前記要求されたデータを除く所定のデータと、前記第１の誤り訂正符号と、から第１の基準データを生成する第１の基準データ生成手段と、
前記データ読出し手段が読出したデータであって前記要求されたデータを除く所定のデータと、前記第２の誤り訂正符号と、から第２の基準データを生成する第２の基準データ生成手段と、
前記データ読出し手段が読出した前記要求されたデータと、前記第１の基準データと、前記第２の基準データと、を比較し、該比較の結果から前記データ読出し手段が読出した前記要求されたデータが正しいか否かを判断する正誤判別手段と、
該正誤判別手段が正しいと判断したデータを前記キャッシュメモリに記憶するデータ書
込み手段と、
を備えるディスクアレイ装置。
（付記５）  前記正誤判別手段は、
前記要求されたデータと、前記第１の基準データまたは前記第２の基準データの少なくともいずれか一方と、が一致した場合に前記要求されたデータが正しいと判断する、
ことを特徴とする付記４に記載のディスクアレイ装置。
（付記６）  前記正誤判別手段は、
前記要求されたデータと、前記第１の基準データと、前記第２の基準データと、の少なくとも２以上が一致した場合に該一致したデータを正しいデータと判断する、
ことを特徴とする付記４に記載のディスクアレイ装置。
（付記７）  所定のデータから第１の誤り訂正符号と第２の誤り訂正符号を生成し、該所定のデータと第１および第２の誤り訂正符号を分散して下位装置に記憶させ、該下位装置に記憶したデータの一部をキャッシュメモリに保持するディスクアレイ制御装置に実行させるステージング方法であって、
上位装置からのリード要求に対して、該要求されたデータを含む所定のデータと、該所定のデータから生成された第１および第２の誤り訂正符号と、を前記下位装置から読出し、
前記要求されたデータを除く所定のデータと、前記第１の誤り訂正符号と、から第１の基準データを生成し、
前記要求されたデータを除く所定のデータと、前記第２の誤り訂正符号と、から第２の基準データを生成し、
前記要求されたデータと、前記第１の基準データと、前記第２の基準データと、を比較し、該比較の結果から前記要求されたデータが正しいか否かを判断し、
該正しいと判断したデータを前記キャッシュメモリに記憶する、
ことを特徴とするステージング方法。
（付記８）  前記要求されたデータと、前記第１の基準データまたは前記第２の基準データの少なくともいずれか一方と、が一致した場合に前記要求されたデータが正しいと判断する、
ことを特徴とする付記７に記載のステージング方法。
（付記９）  前記要求されたデータと、前記第１の基準データと、前記第２の基準データと、の少なくとも２以上が一致した場合に該一致したデータを正しいデータと判断する、
ことを特徴とする付記７に記載のステージング方法。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施例に係るステージング方法の原理を説明する図である。
【図２】本発明の実施例に係るディスクアレイ制御装置の構成例を示す図である。
【図３】本発明の実施例に係るディスクアレイ制御装置がリードデータの正誤を確認する処理の概要を示す図である。
【図４】本発明の実施例に係るディスクアレイ制御装置のステージングの具体的な処理を示すフローチャートである。
【符号の説明】
【００７２】
１００      ディスクアレイ制御装置
１０１      データ読出し手段
１０２      第１の基準データ生成手段
１０３      第２の基準データ生成手段
１０４      正誤判別手段
１０５      データ書込み手段
２００      ディスクアレイ装置
２０１      ＣＰＵ
２０２      メモリ
２０２ａ      構成定義領域
２０２ｂ      バッファ
２０２ｃ      キャッシュメモリ
２０３      ホストコンピュータ
【図１】
2008158724.tif 000003
【図２】
2008158724.tif 000004
【図３】
2008158724.tif 000005
【図４】
2008158724.tif 000006