(57)【特許請求の範囲】
【請求項１】
２以上の冗長度のＲＡＩＤ構成のＲＡＩＤグループを備えるディスクアレイ装置であって、
前記ＲＡＩＤグループにおいて失われた冗長度と同数の記憶装置が故障したとき、前記ＲＡＩＤグループを構成する記憶装置がシーケンシャルアクセスの性能を活用できる記憶装置である場合には、先にデータ復旧を行う第１の故障記憶装置の復元データを２分割することで得られる２つの分割復元データを２台の復元先記憶装置の連続領域にシーケンシャルに書き込む第１のデータ復旧方式を選択し、前記ＲＡＩＤグループを構成する記憶装置がシーケンシャルアクセスの性能を活用できない記憶装置である場合には、前記２つの分割復元データを前記２台の復元先記憶装置の飛び飛びの領域に書き込む第２のデータ復旧方式を選択するデータ復旧方式選択手段と、
該データ復旧方式選択手段により選択されたデータ復旧方式により、前記第１の故障記憶装置の復元データを２台の復元先記憶装置に分割して書き込むデータ復元手段と、
該データ復元手段により前記２台の復元先記憶装置に分割して書き込まれた前記第１の故障記憶装置の復元データを、前記２台の復元先記憶装置のいずれか一方に集約する復元データ集約手段と、
を備えることを特徴とするディスクアレイ装置。
【請求項２】
請求項１記載のディスクアレイ装置であって、
前記第１のデータ復旧方式は、前記第１の故障記憶装置の復元データの上半分と下半分の復元データを、前記２台の復元先記憶装置に分けて書き込む第３のデータ復旧方式、又は、前記ＲＡＩＤグループに属している正常稼動の記憶装置に対する１回のReadアクセスにより前記第１の故障記憶装置の復元データを生成する毎に該生成された復元データを２分割し、該２分割により得られた前記２つの分割復元データを、前記２台の復元先記憶装置に分けて書き込む第４のデータ復旧方式のいずれかであることを特徴とする。
【請求項３】
請求項２記載のディスクアレイ装置であって、
前記第３のデータ復旧方式は、前記２台の復元先記憶装置において、前記第１の故障記憶装置の上半分の復元データの格納領域と下半分の復元データの格納領域が互いに重ならない位置となるように、前記第１の故障記憶装置の復元データの書き込みを行う方式であり、前記シーケンシャルアクセスの性能を活用できる記憶装置はＨＤＤであり、
前記データ復旧方式選択手段は、前記ＲＡＩＤグループを構成する記憶装置がＨＤＤである場合において、該ＲＡＩＤグループに対するＩ／Ｏが有るときには前記第３のデータ復旧方式を選択し、該ＲＡＩＤグループに対してＩ／Ｏが無いときには前記第４のデータ復旧方式を選択することを特徴とする。
【請求項４】
請求項３記載のディスクアレイ装置であって、
前記第２のデータ復旧方式は、前記２台の復元先記憶装置においてそれぞれの空き領域が交差するように、前記２つの分割復元データを前記２台の復元先記憶装置の飛び飛びの領域に分けて書き込むデータ復旧方式であり、前記シーケンシャルアクセスの性能を活用できない記憶装置はＳＳＤであり、
前記データ復旧方式選択手段は、前記ＲＡＩＤグループを構成する記憶装置がＳＳＤである場合には前記第２のデータ復旧方式を選択することを特徴とする。
【請求項５】
２以上の冗長度のＲＡＩＤ構成のＲＡＩＤグループを備え、該ＲＡＩＤグループを構成する記憶装置がシーケンシャルアクセスの性能を活用できる記憶装置であるディスクアレイ装置であって、
前記ＲＡＩＤグループに含まれる失われた冗長度と同数の記憶装置に故障が発生した場合、先にデータ復旧を行う第１の故障記憶装置のデータを、該ＲＡＩＤグループの正常稼動の複数の記憶装置に対する多重Readアクセスにより所定サイズ単位で順次復元し、復元する毎に前記第１の故障記憶装置の所定サイズの復元データを２分割し、該２分割により得られた２つの分割復元データを、２台の復元先記憶装置の連続領域に分けて書き込むデータ復元手段と、
該データ復元手段により前記２台の復元先記憶装置に分散して格納された前記第１の故障記憶装置の復元データを、前記２台の復元先記憶装置のいずれか一方に集約する復元データ集約手段と、
を備えることを特徴とするディスクアレイ装置。
【請求項６】
２以上の冗長性を有するＲＡＩＤグループを備え、該ＲＡＩＤグループを構成する記憶装置がシーケンシャルアクセスの性能を活用できない記憶装置であるディスクアレイ装置であって、
前記ＲＡＩＤグループに含まれる失われた冗長性と同数の記憶装置に故障が発生した場合、先にデータ復旧を行う第１の故障記憶装置のデータを、該ＲＡＩＤグループに属する正常稼動の複数の記憶装置に対する多重Readアクセスにより所定サイズ単位で順次復元し、復元する毎に該所定サイズの復元データを２分割し、該２分割により得られた２つの分割復元データを２台の復元先記憶装置に分けて書き込むデータ復元手段と、
該データ復元手段により前記２台の復元先記憶装置に分散して格納されている前記第１の故障記憶装置の復元データを、前記２台の復元先記憶装置のいずれか一方に集約する復元データ集約手段と、
を備え、
前記データ復元手段は前記第１の故障記憶装置の分割復元データを前記所定サイズの間隔を空けながら前記２台の復元先記憶装置に飛び飛びに書き込み、前記２台の復元先記憶装置の前記第１の故障記憶装置の分割復元データの書込み領域は交差していることを特徴とするディスクアレイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＩＤ(Redundant Arrays of Independent Disks)システムであるディスクアレイ装置に関する。
【背景技術】
【０００２】
コンピュータシステムのストレージ（外部記憶装置）として、ディスクアレイ装置が知られている。ディスクアレイ装置は、ＲＡＩＤにより、データアクセスの高速化とシステムとしての信頼性を実現している。ＲＡＩＤにはＲＡＩＤ０からＲＡＩＤ６までの複数レベルがある。これらのＲＡＩＤレベルの中で、ディスクアレイ装置に主に使用されているのは、ＲＡＩＤ０、ＲＡＩＤ１、ＲＡＩＤ５、ＲＡＩＤ６である。
【０００３】
ＲＡＩＤ０は、ストライピングとも呼ばれる。ＲＡＩＤ０は、複数のディスク装置にデータを分散して読み書きすることで、ホスト装置との間で高速なデータＩ／Ｏを実現する。この複数のディスク装置に対してデータを分散して読み書きする操作は“ストライピング”と呼ばれる。ストライピングのデータ単位（各ディスク装置に書き込まれるデータの単位）は、ブロックもしくはストレイプと呼ばれる。また、１回のストライピングによって複数のディスク装置に書き込まれるデータ全体は“ストライプ”と呼ばれる。ＲＡＩＤ０は、冗長性がなく、全てのディスク装置をストライピングに使用する。このため、ＲＡＩＤ０においては、一台のディスク装置が故障すると全てのデータが失われる。つまり、ＲＡＩＤ０は耐障害性がない。
【０００４】
ＲＡＩＤ１は、ミラーリングとも呼ばれ、複数のディスク装置に同時に同じデータを書き込む方式である。ＲＡＩＤ１は、全てのディスク装置が故障しない限りデータが失われることはないので、耐障害性が高い。
【０００５】
ＲＡＩＤ５は、パリティ付きストライプセットとも呼ばれる。ＲＡＩＤ５は、データとそのデータの誤り訂正符号であるパリティを、複数のディスク装置に分散して書き込む。ＲＡＩＤ５は、パリティを、各ディスク装置に所定の順番で分散して書き込む。このように、ＲＡＩＤ５は、パリティを複数のディスク装置に分散して記録するので、“分散データガーディング”とも呼ばれる。ＲＡＩＤ５は、ストライピングの際、データだけでなく、パリティもディスク装置に記録するので、１台のディスク装置が故障しても、故障したディスク装置のデータを復旧することが可能である。このため、ＲＡＩＤ５は、１台のディスク装置が故障しても、故障したディスク装置を論理的にシステムから切り離すことで、運転を継続することができる。ＲＡＩＤ５において１台のディスク装置が故障したままで運転している状態は、“縮退状態”と呼ばれる（例えば、特開２００２−２９７３２２号公報参照）。ＲＡＩＤ５を採用しているディスクアレイ装置は、通常、スペアディスクドライブと呼ばれる予備のディスク装置を備えており、縮退状態に移行した後、正常なディスク装置に記録されているデータを用いて故障したディスク装置のデータを復元する作業を開始する。そして、故障したディスク装置のデータをスペアディスクドライブに復元する（例えば、特開２００２−２９７３２２号公報参照）。スペアディスクドライブには、データの自動復旧のために、ホットスペア（ホットスペアディスクドライブ）と呼ばれる、通電されて待機状態にある予備のディスク装置が使用されるのが一般的である（例えば、特開２００３−１０８３１６号公報）。
【０００６】
ＲＡＩＤ６は、ＲＡＩＤ５を、より障害性が高くなるように拡張したものである。ＲＡＩＤ６は、ストライピングによりデータを複数台のディスク装置に分散して書き込む際に２種類のパリティを生成し、これら２種類のパリティを、それぞれ、別個のディスク装置に書き込む。このように、ＲＡＩＤ６は、２つのパリティを分散データガーディングにより別個のディスク装置に書き込むので、冗長ディスク装置を２台必要とする。ＲＡＩＤ６の２種類のパリティの生成方式としては、「２Ｄ−ＸＯＲ」と「Ｐ＋Ｑ」の２つの方式が提案されているが、ディスクアレイ装置には、主に、「Ｐ＋Ｑ」方式が採用されている。「Ｐ＋Ｑ」方式においては、ＰパリティとＱパリティの２つのパリティを生成・使用する。Ｐパリティは、ＲＡＩＤ５で使用されるパリティと同じパリティである。Ｑパリティは、Ｐパリティとは異なる計算方式（アルゴリズム）により生成される。ＲＡＩＤ６は、ＰパリティとＱパリティという２つのパリティを、分散データガーディングにより、それぞれ別々のディスク装置に記録することで、同時に２台のディスク装置が故障しても継続して運転することが可能である。換言すれば、同時に２台のディスク装置が故障しても、正常に稼動している残りのディスク装置に格納されているデータを用いて、それら２台のディスク装置に格納されていたデータを復元することができる。ＲＡＩＤ６においても、故障したディスク装置のデータの復元には、ＲＡＩＤ５と同様に、ホットスペアと呼ばれる予備ディスク装置を用いるのが一般的である。
【０００７】
一般に、各ＲＡＩＤ構成の実装形態は、ＲＡＩＤグループと呼ばれる。また、ＲＡＩＤ０、ＲＡＩＤ５、ＲＡＩＤ６などのような、データをストライピングにより複数のディスク装置に分割して記録する形態のＲＡＩＤ構成における１つのストライプ内でのパリティブロックの個数は、冗長度と呼ばれる（例えば、特開平７−３０６７５８号公報参照）。
この定義に従えば、ＲＡＩＤ０構成のＲＡＩＤグループの冗長度は“０”である。また、ＲＡＩＤ５構成のＲＡＩＤグループの冗長度は“１”である。ＲＡＩＤ６構成のＲＡＩＤグループの冗長度は“２”である。
【０００８】
ここで、ＲＡＩＤ６構成のディスクアレイ装置において２台のディスク装置が故障した場合の従来のデータ復旧方法を説明する。従来のＲＡＩＤ６構成のディスクアレイ装置は、２台のディスク装置が故障すると、縮退状態のまま運転を継続しながら、２台のホットスペアに２台の故障ディスク装置のデータを復旧するようにしていた。この場合のデータ復旧は、下記（１）、（２）のいずれかの方法により行われていた。
（１）２台の故障ディスク装置のデータを、１台ずつ、順番にホットスペアに復旧する。この場合、１台の故障ディスク装置のデータ復旧には１台のホットスペアを使用する。
（２）２台の故障ディスク装置のデータ復旧を並行して行い、２台の故障ディスク装置のデータを纏めて、それぞれ、別個のホットスペアに復旧する。この場合、（１）の方法と同様に１台の故障ディスク装置のデータ復旧には１台のホットスペアを使用するが、２台のホットスペアを同時並行的に使用することで、２台の故障ディスク装置のデータ復旧を同時並行的に行う。
【０００９】
図１３は、ＲＡＩＤ６構成のディスクアレイ装置において２台のディスク装置が故障した場合における従来のデータ復旧方法を示す摸式図である。
図１３は、ＲＡＩＤ６を構成する５台のディスク装置１００１ｄ−１〜１００１ｄ−５の内、２台のディスク装置１００１ｄ−３、１００１ｄ−４に故障が発生した場合に、ディスク装置１００１ｄ−３、１００１ｄ−４のデータを、それぞれ、ホットスペア１００２ｓ−１，１００２ｓ−２に復旧する例を示している。従来は、２台のディスク装置１００１ｄ−３、１００１ｄ−４がほぼ同時に故障した場合、まず、ディスク装置１００１ｄ−３のデータをホットスペア１００２ｓ−１に復元し、続いて、ディスク装置１００１ｄ−４のデータをホットスペア１００２s−２に復元するか（上記（１）の手法）、または、ディスク装置１００１ｄ−３のデータをホットスペア１００２ｓ−１に復元する処理と、ディスク装置１００１ｄ−４のデータをホットスペア１００２ｓ−１に復元する処理を並行して行なうか（上記（２）の手法）のいずれかの方法により、ＲＡＩＤ６構成の復旧をおこなっていた。
【００１０】
ところで、ＲＡＩＤ１またはＲＡＩＤ５構成のディスクアレイ装置において、ＲＡＩＤを構成するディスク装置と同数のホットスペア（スペアドライブ）を備えるスペアパリティグループを利用して、故障ディスク装置のデータを復元する方法が知られている（例えば、特許文献３参照）。また、故障する可能性が高い２台のディスク装置（ディスクドライブ）のデータを、分割しながら、２台のホットスペア（スペアディスク）にコピーしていくことでダイナミックスペアリングを実現する方法が知られている（例えば、特開２００５−１２２３３８号公報参照）。ここで、ダイナミックスペアリングとは、ディスク装置（ディスクドライブ）の故障の可能性を予測し、故障する可能性が高いディスク装置のデータを、故障発生前にホットスペア（スペアディスクドライブ）へコピーする手法である。また、ディスクアレイを構成するディスク装置に故障が生じた場合、故障したディスク装置の復元データを、複数のスペアディスク装置にストライピングにより分散して格納する技術が知られている（例えば、特開２００８−４０６８７号公報参照）
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平７−３０６７５８号公報
【特許文献２】特開２００２−２９７３２２号公報
【特許文献３】特開２００３−１０８３１６号公報
【特許文献４】特開２００５−１４９３７４号公報
【特許文献５】特開２００５−１２２３３８号公報
【特許文献６】特開２００８−４０６８７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ＲＡＩＤ６においては、ディスク装置が２台故障した場合、上述した方法により、２台の故障ディスク装置のデータ復旧を行うが、１台の故障ディスク装置のデータの復旧が完了しない状態で、さらに別のディスク装置の故障が発生すると、データが喪失する。これは、ＲＡＩＤ６は、３台以上のディスク装置が故障すると、データ復旧は不可能となるためである。したがって、ＲＡＩＤ６においては、２台のディスク装置が故障した場合、速やかに、１台の故障ディスク装置のデータをホットスペアに復旧させる必要がある。
【００１３】
しかしながら、上記従来の故障ディスク装置のデータ復旧方法では、１台の故障ディスク装置のデータを復旧させるまでに時間を要し、データ喪失（データロスト）となる危険性が高かった。
【００１４】
本発明の目的は、２以上の冗長度のＲＡＩＤ構成のＲＡＩＤグループを備えるディスクアレイ装置において前記ＲＡＩＤグループにおいて失われた冗長度と同数の記憶装置が故障した場合、冗長性の無い状態から冗長性のある状態に、従来よりも速やかに復帰できようにすることである。
【課題を解決するための手段】
【００１５】
本発明は、２以上の冗長度のＲＡＩＤ構成のＲＡＩＤグループを備えるディスクアレイ装置を前提とする。
本発明のディスクアレイ装置は、データ復旧方式選択手段、データ復元手段、及び復元データ集約手段を備える。
【００１６】
前記データ復旧方式選択手段は、前記ＲＡＩＤグループにおいて失われた冗長度と同数の記憶装置が故障したとき、先にデータ復旧を行う第１の故障記憶装置のデータ復旧方式を、前記ＲＡＩＤグループを構成する記憶装置の種類と前記ＲＡＩＤグループに対するＩ／Ｏ状況に基づいて複数の方式の中から選択する。
【００１７】
前記データ復元手段は、前記データ復旧方式選択手段により選択されたデータ復旧方式により、前記第１の故障記憶装置の復元データを２台の復元先記憶装置に分割して書き込む。
【００１８】
前記復元データ集約手段は、前記データ復元手段により前記２台の復元先記憶装置に分割して書き込まれた前記第１の故障記憶装置の復元データを、前記２台の復元先記憶装置のいずれか一方に集約する。
【発明の効果】
【００１９】
開示のディスクアレイ装置によれば、２以上の冗長度のＲＡＩＤ構成のＲＡＩＤグループを備えるディスクアレイ装置において、前記ＲＡＩＤグループにおいて失われた冗長度と同数の記憶装置が故障して冗長性の無い状態になった場合、前記ＲＡＩＤグループを冗長性の有る状態へ速やかに復帰することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態のディスクアレイ装置（ディスクアレイサブシステム）を備えたコンピュータシステムの全体構成図である。
【図２】Ｉ／Ｏ管理テーブルの一例を示す図である。
【図３】構成情報の一例を示す図である。
【図４】本実施形態のディスクアレイサブシステムによるＲＡＩＤ６のＲＡＩＤグループのデータ復旧処理の概要を示す摸式図である。
【図５】単純２分割データリカバリ方式の処理手順のイメージを示す模式図である。
【図６】同一領域２分割データリカバリ方式の処理手順のイメージを示す模式図である。
【図７】ストライプ２分割データリカバリ方式の処理手順のイメージを示す模式図である。
【図８】ＲＡＩＤ６のＲＡＩＤグループにおいて２台のディスク装置に故障が発生した場合におけるデータ復旧処理の全体的な手順を示すフローチャートである。
【図９】データ復旧方式の自動選択処理の詳細を示すフローチャートである。
【図１０】単純２分割データリカバリ方式の処理を示すフローチャートである。
【図１１】同一領域２分割データリカバリ方式の処理を示すフローチャートである。
【図１２】ストライプ２分割データリカバリ方式の処理を示すフローチャートである。
【図１３】ＲＡＩＤ６構成のディスクアレイ装置において２台のディスク装置が故障した場合における従来のデータ復旧方法を示す模式図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態を、図面を参照しながら説明する。
［システム構成］
図１は、本発明の実施形態のディスクアレイ装置（ディスクアレイサブシステム）を備えたコンピュータシステムの全体構成図である。
【００２２】
図１に示すコンピュータシステム１は、ホスト装置１０とディスクアレイサブシステム２０を備えている。ホスト装置１０は、例えば、サーバなどのコンピュータである。ディスクアレイサブシステム２０はディスクアレイ装置である。
【００２３】
ホスト装置１０とディスクアレイサブシステム２０は、伝送媒体３０によって接続されている。この伝送媒体３０は、例えば光ファイバなどである。ホスト装置１０とディスクアレイサブシステム２０間のインターフェースは、例えばファイバチャネルである。
【００２４】
ディスクアレイサブシステム２０は、３つのＣＭ(Controller Module)２１０−０〜２１０−２（ＣＭ＃０〜ＣＭ＃２）、２つのＲＴ(Router)２２０−０、２２０−１、及び３つのＲＬＵ(Raid Logical Unit)２３０−０〜２３０−２（ＲＬＵ＃０〜ＲＬＵ＃２）を備えている。尚、図１に示すディスクアレイサブシステム２０はあくまでも一例にすぎず、本発明が適用されるディスクアレイサブシステムが備えるＣＭ、ＣＡ等の各構成要素の数は図１に示す個数に限定されるものではない。ディスクアレイサブシステム２０は、複数のＨＤＤ(Hard Disk Drive)２３１と複数のＳＳＤ(Solid State Drive)２３３を備えている。ＳＳＤは、通常、フラッシュメモリから構成されている。したがって、以後の本実施形態の説明では、ＳＳＤ２３３を、便宜上、「ディスク装置」と呼ぶことにする。各ＨＤＤ２３１と各ＳＳＤ２３３には、個別のディスク装置番号（ディスク番号）が割り当てられている。個々のディスク装置（ＨＤＤ２３１またはＳＳＤ２３３）は、ディスク装置番号によって管理される。
【００２５】
ＲＬＵ２３０−０〜２３０−２（ＲＬＵ＃０〜＃２）は、ＲＡＩＤ６のＲＡＩＤグループの論理空間である。ＲＬＵ２３０−０、２３０−１は、複数のＨＤＤ２３１から構成されるＲＡＩＤ６のＲＡＩＤグループの論理空間である。また、ＲＬＵ２３０−２は、複数のＳＳＤ２３３から構成されるＲＡＩＤ６のＲＡＩＤグループの論理空間である。ＲＬＵ２３０−０〜２３０−２が有する各ＲＡＩＤ６のＲＡＩＤグループには個別のＲＡＩＤグループ番号が割り当てられており、各ＲＡＩＤ６のＲＡＩＤグループはＲＡＩＤグループ番号によって識別・管理される。本実施形態では、ＲＬＵ２３０−０が有するＲＡＩＤ６のＲＡＩＤグループのＲＡＩＤグループ番号は“０”であり、ＲＬＵ２３０−１が有するＲＡＩＤ６のＲＡＩＤグループのＲＡＩＤグループ番号は“１”である。また、ＲＬＵ２３０−３が有するＲＡＩＤ６のＲＡＩＤグループのＲＡＩＤグループ番号は“２”である。
【００２６】
ディスクアレイサブシステム２０が備えるＨＤＤ２３１とＳＳＤ２３３は、データ格納用（パリティ格納用も含む）とホットスペア用に分類される。ホットスペア用のＨＤＤ２３１またはＳＳＤ２３３は、予めＲＬＵ２３０−０〜２３０−２内に組み込まれるか、または、全てのＲＬＵ２３０（２３０−０〜２３０−２）に共有される。
【００２７】
ＣＭ２１０−０とＣＭ２１０−１は、ＲＴ２２０−０を介して接続されている。また、ＣＭ２１０−１とＣＭ２１０−２は、ＲＴ２２０−１を介して接続されている。ＲＴ２２０−０はＣＭ２１０−０とＣＭ２１０−１間の通信を中継制御し、ＲＴ２２０−１はＣＭ２１０−１とＣＭ２１０−２間の通信を制御する。
【００２８】
本実施形態のディスクアレイサブシステム２０は、ホスト装置１０に対して、ＲＬＵ２３０（２３０−１〜２３０−２）毎に担当のＣＭ２１０−ｉを１対１に配置するようになっており、各ＣＭ２１０−ｉ（ｉ＝０〜２）は、通常動作時には、ＲＬＵ２３０−iの管理・制御を担当する（担当ＬＵＮ制御）。このような担当ＬＵＮ制御を用いたＲＬＵ制御を行なうディスクアレイサブシステムの構成・動作は、例えば、特開２００８−４０６１２号公報に開示されている。
【００２９】
各ＣＭ２１０−ｉ（ｉは“０”〜“２”のいずれかの整数）は、ハードウェア部品として、ＣＡ(Channel Adaptor)２１１−ｉ、ＣＰＵ(Central Processing Unit)２１２−ｉ、キャッシュメモリ２１３−ｉ、Firm管理メモリ２１４−ｉ、ＤＩ(Device Interface)２１９−ｉを備えている。
【００３０】
Firm管理メモリ２１４−iは、ファームウェアやそのファームウェアが制御に使用するテーブルなどを格納するメモリである。Firm管理メモリ２１４−ｉは、Ｉ／Ｏ管理テーブル２１５−ｉ、構成情報２１６−ｉ、リカバリ処理部２１７−ｉ及びデータ集約部２１８−ｉを備えている。Ｉ／Ｏ管理テーブル２１５−ｉと構成情報２１６−ｉは、それそれ、テーブルと情報である。リカバリ処理部２１７−ｉとデータ集約部２１８−ｉは、ＣＰＵ２１２−ｉによって実行されるファームウェアである。Firm管理メモリ２１４は、例えば、フラッシュメモリ（もしくはＲＯＭ(Read Only Memory)）やＲＡＭ(Random Access Memory)などを含んでいる。
【００３１】
Ｉ／Ｏ管理テーブル２１５−ｉは、ディスクアレイサブシステム２０が備えるＲＡＩＤグループ毎のＩ／Ｏ処理要求数を格納しているテーブルである。Ｉ／Ｏ管理テーブル２１５に格納される情報は、ＣＰＵ２１２−ｉやＤＩ２１９−ｉなどによって設定される。
【００３２】
構成情報２１６−ｉは、ディスクアレイサブシステム２０が備える各ＲＡＩＤグループの状態及び各ＲＡＩＤグループを構成するディスク装置に関する情報である。
リカバリ処理部２１７−ｉは、ＲＡＩＤグループの故障ディスク装置のデータを後述する各種方式で復元する機能コンポーネント（ソフトウェア・モジュール）である。
【００３３】
データ集約部２１８−ｉは、リカバリ処理部２１７−ｉによって、２台の予備ディスク装置（ホットスペアまたは交換ディスク装置）に分散した故障ディスク装置の復元データを、上記２台の予備ディスク装置のいずれか一方に集約する機能コンポーネント（ソフトウェア・モジュール）である。ここで、交換ディスク装置とは、故障ディスク装置と交換した正常なディスク装置である。この故障ディスク装置から正常ディスク装置への交換は、通常、ホットスワップにより実施される。尚、予備ディスク装置とは、ホットスペアと交換ディスク装置の総称である。
【００３４】
ＣＡ２１１−ｉは、ホスト装置１０とのインターフェース回路である。ＣＡ２１１−ｉは、例えばファイバチャネルにより、ホスト装置１０との間でコマンドやデータの送受信を行なう。
【００３５】
ＣＰＵ２１２−ｉは、ＣＭ２１０−ｉ内の他の構成要素を制御して、ＣＭ２１０−ｉのシステム全体を制御する。
キャッシュメモリ２１３−iは、ＣＭ２１０−ｉが担当するＲＬＵ２３０−iに対するRead/Writeデータを格納するメモリである。キャッシュメモリ２１３−iは、ＣＭ２１０−ｉがホスト装置１０から受け取るＩ／Ｏ命令によって指示されるＲＬＵ２３０−iに対する書込みデータを一時的に保持する。また、ＤＩ２１９−ｉがＲＬＵ２３０−iから読み出したデータを一時的に格納する。
【００３６】
ＤＩ２１９−ｉは、ＣＭ２１０−ｉが担当するＲＬＵ２３０−iを制御するインターフェース回路である。各ＣＭ２１０−ｉ内のＤＩ２１９−ｉは、例えば、銅配線や光ファイバ等の伝送媒体により、ＲＬＵ２３０−０〜２３０−２に接続されている。ＤＩ２１９−ｉは、ＲＬＵ２３０−iとの間でコマンドやデータをやり取りし、ＲＬＵ２３０−iに含まれるＲＡＩＤ６のＲＡＩＤグループに対するデータのRead/Writeなどを実行する。ＣＭ２１０−ｉとＤＩ２１９−ｉ間のインターフェースは、例えばファイバチャネルである。
【００３７】
＜Ｉ／Ｏ管理テーブル＞
図２は、Ｉ／Ｏ管理テーブル２１５（２１５−０〜２）の一例を示す図である。
図２に示すＩ／Ｏ管理テーブル２１５は、（ｎ＋１）個のエントリを有している。Ｉ／Ｏ管理テーブル２１５の各エントリ２１５Ｅは、「ＲＡＩＤグループ番号」と「Ｉ／Ｏ処理中数」の２つのフィールドを有している。ＲＡＩＤグループ番号は、上述した各ＲＬＵ２３０−０〜３が有するＲＡＩＤグループのＲＡＩＤグループ番号である。Ｉ／Ｏ処理中数は、同一エントリ２１５Ｅに格納されているＲＡＩＤグループ番号を有するＲＡＩＤグループが現在処理中のＩ／Ｏ処理の個数である。Ｉ／Ｏ管理テーブル２１５は、このような構成により、ディスクアレイサブシステム２０が備える全てのＲＡＩＤグループについて、現在処理中のＩ／Ｏの個数を管理している。図２に示すＩ／Ｏ管理テーブル２１５の「ＲＡＩＤグループ番号」フィールドには、エントリ順に“０”〜“ｎ”のＲＡＩＤグループ番号が格納されている。図２に示すＩ／Ｏ管理テーブル２１５最初のエントリ２１５Ｅには、“０”のＲＡＩＤグループ番号と“１０”のＩ／Ｏ処理中数が格納されている。これは、“０”のＲＡＩＤグループ番号を有するＲＡＩＤグループの現在のＩ／Ｏ処理の個数が１０であることを示している。また、次のエントリ２１５Ｅには、“１”のＲＡＩＤグループ番号と“２５”のＩ／Ｏ処理中数が格納されている。また、最終エントリ２１５Ｅには、“ｎ”のＲＡＩＤグループ番号と“０”のＩ／Ｏ処理中数が格納されている。
【００３８】
＜構成情報＞
図３は、構成情報２１６（２１６−０〜２）の一例を示す図である。
図３に示す構成情報２１６は、ディスクアレイサブシステム２０が備える個々のＲＡＩＤグループの構成情報であり、「ＲＡＩＤグループ番号」、「状態」、「構成ディスク装置の種別（構成Ｄｉｓｋの種別）」、「構成ディスク装置数（構成Ｄｉｓｋ数）」、「構成ディスク装置番号１（構成Ｄｉｓｋ番号１）」、・・・、「構成ディスク装置番号ｎ（構成Ｄｉｓｋ番号ｎ）」の各情報を含んでいる。ＲＡＩＤグループ番号は、上述したＩ／Ｏ管理テーブル２１５の「ＲＡＩＤグループ番号」フィールドに格納されるＲＡＩＤグループ番号と同じものである。状態は、ＲＡＩＤグループの現在の状態（“正常”、“故障”、・・・、“１台のディスク装置リカバリ中（１Ｄｉｓｋリカバリ中）”など）を示す情報である。構成ディスク装置の種別は、ＲＡＩＤグループを構成するディスク装置が「ＨＤＤ」または「ＳＳＤ」のいずれであるかを示す情報である。構成ディスク装置数は、対応するＲＡＩＤグループ番号を有するＲＡＩＤグループが備えるディスク装置の台数である。構成ディスク装置番号１〜ｎは、対応するＲＡＩＤグループが備える各ディスク装置のディスク装置番号である。このディスク装置番号ｉ（ｉ＝１〜ｎ）は、構成ディスク装置数に設定されている台数の値と同じ個数だけ、「構成ディスク装置数」のフィールドに続いて格納されている。
【００３９】
図３に示す構成情報２１６には、それぞれ“０”と“１”のＲＡＩＤグループ番号を有する各ＲＡＩＤグループの構成情報が示されている。“０”のＲＡＩＤグループ番号を有するＲＡＩＤグループの構成情報２１６ａは、「“０”のＲＡＩＤグループ番号」、「“正常”という状態」、「構成ディスク装置が「ＨＤＤ」であるという情報」、「“２”という構成ディスク装置数」、「“００１０”のディスク装置番号」及び「“００２０”のディスク装置番号」を含んでいる。この構成情報２１６ａは、“０”のＲＡＩＤグループ番号を有するＲＡＩＤグループが、“００１０”のディスク装置番号を有するディスク装置と“００２０”のディスク装置番号を有するディスク装置の２台のディスク装置（ＨＤＤ）から構成され、現在、それら２台のディスク装置（ＨＤＤ）が正常に稼動していることを示している。また、“１”のＲＡＩＤグループ番号を有するＲＡＩＤグループの構成情報２１６ｂは、「“１”のＲＡＩＤグループ番号」、「“１Diskリカバリ中”という状態」、「構成ディスク装置が「ＳＳＤ」であるという情報」、「“４”という構成ディスク装置数」、「“００３０”のディスク装置番号」、「“００４０”のディスク装置番号」、「“００５０”のディスク装置番号」及び「“００６０”のディスク装置番号」を含んでいる。この構成情報２１６ｂは、“１”のＲＡＩＤグループ番号を有するＲＡＩＤグループが、００３０”のディスク装置番号を有するディスク装置と“００４０”のディスク装置番号、００５０”のディスク装置番号を有するディスク装置と“００６０”のディスク装置番号を有するディスク装置の４台のディスク装置（ＳＳＤ）から構成され、現在、１台のディスク装置（ＳＳＤ）がデータ復旧中であることを示している。
【００４０】
｛本実施形態におけるＲＡＩＤ６のＲＡＩＤグループの修復方法の概要｝
本実施形態は、ＲＡＩＤ６のＲＡＩＤグループの複数のディスク装置の内、２台のディスク装置が故障し、ＲＡＩＤ６のＲＡＩＤグループが冗長性の無い縮退状態になると、以下に述べる処理手順を実行して、ＲＡＩＤ６のＲＡＩＤグループの修復を行う。
（１）ＲＡＩＤ６のＲＡＩＤグループにおいて２台のディスク装置の故障が発生したタイミングで、まず、先に故障したディスク装置（第１のディスク装置）におけるデータ復元が必要な領域を二分割し、第１のディスク装置のリカバリ未完了領域の一方の分割領域（第１の分割領域）の復元データと他方の分割領域（第２の分割領域）の復元データを、２台のホットスペア（または交換ディスク装置）に分割して書き込む。
（２）次に、２台のホットスペア（または交換ディスク装置）に分割して格納されている第１のディスク装置のリカバリ未完了領域の復元データを、一方のホットスペア（または交換ディスク装置）に集約する。この場合、第１のディスク装置のリカバリ未完了領域の復元データを集約するホットスペア（または交換ディスク装置）を、第１のリカバリ完了領域の復元データを格納していたホットスペア（または交換ディスク装置）とすることで、ＲＡＩＤ６のＲＡＩＤグループを冗長性のある状態に復帰させることができる。
（３）続いて、後に故障したディスク装置（第２のディスク装置）のデータを復元し、その復元データを、ホットスペア（または交換ディスク装置）に書き込む。
【００４１】
上記処理手順において、（２）の復元データの集約処理と（３）の第２のディスク装置データの復元処理は、同時並行的に行ってもよい。
【００４２】
＜本実施形態によるＲＡＩＤ６のＲＡＩＤグループの復旧方法＞
図４は、本実施形態のディスクアレイサブシステム２０によるＲＡＩＤ６のＲＡＩＤグループの復旧処理の概要を示す摸式図である。
【００４３】
図１に示すＲＬＵ２３０（２３０−０〜２３０−２）が、例えば、図４（ａ）に示すように、５台のディスク装置（ＨＤＤ２３１またはＳＳＤ２３３）から成るＲＡＩＤ６構成であったと仮定する。このＲＡＩＤ６構成において、２台のディスク装置（ＨＤＤ２３１またはＳＳＤ２３３）が故障した場合、本実施形態では、２台のホットスペアＨＳ１、ＨＳ２（または二台の交換ディスク装置）を用いて、１台の故障ディスク装置のデータを復旧する。図４を参照しながら、より詳細に説明すると、故障したディスク装置（この場合、ＨＤＤ４）のデータを、正常な残りのディスク装置（この場合、ＨＤＤ１、ＨＤＤ２、ＨＤＤ５）に格納されているデータを基にして、１台ずつ順次ストライピング単位で復元していく。例えば、ＨＤＤ４、ＨＤＤ５の順でそれらのＨＤＤのデータを復元していく。このとき、１台のＨＤＤの復元データを二分割し、半分の復元データはホットスペアＨＳ１に、残り半分の復元データはホットスペアＨＳ２に書き込む。ディスク装置は、一般にリード性能に比べてライト性能が低く、データの書込み速度はデータの読出し速度よりも遅い。このため、故障したディスク装置の復元データを、ストライピング単位で、二台のホットスペアに分散して並列に書き込むようにすることで、１台の故障ディスク装置のデータの復元・格納処理を高速化する。この結果、ＲＡＩＤ６のＲＡＩＤグループを冗長性の無い状態（２台のディスク装置のデータが同時に喪失している状態）から冗長性の有る状態（１台のディスク装置のデータのみが喪失している状態）へと復旧させる処理の高速化が可能となる。換言すれば、ＲＡＩＤ６のＲＡＩＤグループが冗長性の無い状態となったとき、そのＲＡＩＤ６のＲＡＩＤグループを修復する処理を、冗長性が無い状態となっている期間を短縮しながら実現することができる。
【００４４】
｛本実施形態におけるＲＡＩＤ６のＲＡＩＤグループの修復方法｝
以下では、本実施形態のディスクアレイサブシステム２０におけるＲＡＩＤ６のＲＡＩＤグループの３種類の修復手法を説明する。
【００４５】
本実施形態では、ＲＡＩＤ６のＲＡＩＤグループにおいて二台のディスク装置が故障した状態（冗長性の無い縮退状態）になった場合、ホットスペアまたは交換ディスク装置に故障ディスク装置のデータを復元することで、ＲＡＩＤ６のＲＡＩＤグループを修復する。本実施形態では、ＲＡＩＤ６のＲＡＩＤグループを修復する際、（１）単純２分割データリカバリ方式、（２）同一領域２分割データリカバリ方式、（３）ストライプ２分割データリカバリ方式の３種類の方式のいずれかを使用する。ＲＡＩＤ６のＲＡＩＤグループの修復に用いる方式は、ＲＡＩＤ６のＲＡＩＤグループを構成するディスク装置の種類（ＨＤＤまたはＳＳＤ）、または、ＲＡＩＤ６のＲＡＩＤグループがＨＤＤで構成されている場合のＩ／Ｏ状況にしたがって自動選択される。
【００４６】
次に、上記３種類の方式を、図４（ａ）に示す縮退状態のＲＡＩＤ６のＲＡＩＤグループを具体例として取り上げながら説明する。
＜単純２分割データリカバリ方式＞
単純２分割データリカバリ方式は、先に故障した１台の故障ディスク装置のデータ（以下、１台の故障データと記載）を復元する際、その１台の故障データを上半分と下半分に２分割し、上半分の故障データと下半分の故障データを２多重で復元する。復元した上半分の故障データと下半分の故障データは、２多重で、それぞれ、一方のホットスペア（または故障ディスク装置）と他方のホットスペア（または交換ディスク装置）に書き込む。
【００４７】
ここで、１多重とはＲＡＩＤグループを構成する１つのディスク装置に対する１回の同時アクセスのことである。また、２多重とはＲＡＩＤグループを構成する１つのディスク装置に対する２回の同時アクセスのことである。単純２分割データリカバリ方式では、１台の故障ディスク装置のデータを半分に分けて２台のホットスペア（または交換ディスク装置）へ復元する。したがって、１台の故障ディスク装置のデータ復元には上半分と下半分それぞれの復元の為に２多重Readアクセスが必要となる。また、復元データの２台のホットスペア（または交換ディスク装置）への書込みは、１多重Writeアクセスによって実施される。上記データ復元は、１台の故障データを復元するために、２多重のReadアクセスが必要であること意味している。また、上記１多重の書込みは、２台のホットスペア（または交換ディスク装置）に１台の故障データを書き込むために、１多重のWriteアクセスが必要であることを意味している。
２台のホットスペア（または交換ディスク装置）への書き込みが完了した時点で、ＲＡＩＤ６のＲＡＩＤグループは冗長性のある状態に復帰する。
【００４８】
次に、他方のホットスペア（または交換ディスク装置）から下半分の故障データを読出し、その下半分の故障データを一方のホットスペア（または交換ディスク装置）に書き込み、一方のホットスペア（または交換ディスク装置）に、先に故障したディスク装置の復元データを集約する。続いて、後に故障したディスク装置のデータを、通常の方式で、ホットスペア（または交換ディスク装置）に復元させる。
【００４９】
単純２分割データリカバリ方式は、２台のホットスペア（または交換ディスク装置）に分散して書き込まれた１台の故障データを、１台のホットスペア（または交換ディスク装置）に集約する処理をシーケンシャルなデータのRead/Writeで高速に実行できる。
【００５０】
図５は、単純２分割データリカバリ方式の処理手順のイメージを示す模式図である。
図４（ａ）と図５を参照しながら、単純２分割データリカバリ方式によるデータ復旧処理手順を詳細に説明する。尚、以後の説明では、ディスク装置がＨＤＤである場合を例にして説明するが、単純２分割データリカバリ方式はＨＤＤ以外のディスク装置にも適用可能である。
【００５１】
図４（ａ）に示すように、５台のＨＤＤ２３１で構成されるＲＡＩＤ６のＲＡＩＤグループにおいて二台のＨＤＤ２３１（ＨＤＤ３、４）が故障したものとする。この場合、ＨＤＤ３がＨＤＤ４よりも先に故障したものとする。
【００５２】
この場合、ＨＤＤ３、ＨＤＤ４の順でデータ復旧を行なっていくが、ＨＤＤ３のデータを復旧する際には、ＨＤＤ３のデータを２分割し、ＨＤＤ３の上半分データＵＲ＃３の復元データをホットスペアＨＳ１に、下半分データＬＲ＃３の復元データをホットスペアＨＳ２に書き込むようにする（図５（ａ）参照）。ＨＤＤ３の上半分データＵＲ＃３と下半分データＬＲ＃３は、ＲＡＩＤ６のＲＡＩＤグループにおいて正常に稼動しているＨＤＤ２３１（ＨＤＤ１、２、５）に格納されているデータを基にして、ストライピング単位で復元する。このストライピング単位でのデータ復元処理において、上半分データＵＲ＃３のストライプデータと下半分データＬＲ＃３のストライプデータは、同時並行的に、それぞれ、ホットスペアＨＳ１、ＨＳ２に書き込む。このとき、上半分データＵＲ＃３はホットスペアＨＳ１の上半分領域に書込み、下半分データＬＲ＃３はホットスペアＨＳ２の下半分領域に書き込む。図５（ｂ）は、ホットスペアＨＳ１、ＨＳ２に、故障ディスク装置ＨＤＤ４の全ての復元データが書き込まれた状態を示している。図５（ｂ）に示すように、ホットスペアＨＳ１の上半分領域に故障ディスク装置ＨＤＤ３の上半分データＵＲ＃３の復元データが格納され、ホットスペアＨＳ２の下半分領域に故障ディスク装置ＨＤＤ３の下半分データＬＲ＃３の復元データが格納される。
【００５３】
次に、ホットスペアＨＳ２から故障ディスク装置ＨＤＤ３の下半分データＬＲ＃３の復元データをシーケンシャルに読出し、その復元データをホットスペアＨＳ１に格納されている上半分データＵＲ＃３の復元データに続けてシーケンシャルに書き込んでいく（図５（ｃ）参照）。このようにして、ホットスペアＨＳ２に格納されている故障ディスク装置ＨＤＤ３の下半分データＬＲ＃３の復元データを、ストライピング単位で、ホットスペアＨＳ１にコピーしていくことで、最終的に、ホットスペアＨＳ１に格納されているデータとホットスペアＨＳ２に格納されているデータがホットスペアＨＳ１に集約される（図５（ｄ）参照）。ホットスペアＨＳ１に故障ディスク装置ＨＤＤ３の復元データが集約されると、ホットスペアＨＳ１をＲＡＩＤ６のＲＡＩＤグループに論理的に組み込む。これにより、ＲＡＩＤ６のＲＡＩＤグループは冗長状態に回復する。
【００５４】
次に、故障ディスク装置ＨＤＤ４のデータの復旧処理に移る。故障ディスク装置ＨＤＤ４のデータ復旧においては、故障ディスク装置ＨＤＤ４の復元データをストライピング単位で復元し、その復元したストライプデータをホットスペアＨＳ２にシーケンシャルに書き込んでいく（図５（ｅ）参照）。
【００５５】
ホットスペアＨＳ２への故障ディスク装置ＨＤＤ４の復元データの書込みが完了すると、ホットスペアＨＳ２をＲＡＩＤ６のＲＡＩＤグループに論理的に組み込む。これにより、ＲＡＩＤ６のＲＡＩＤグループは正常な状態に戻る。
【００５６】
以上述べたように、単純２分割データリカバリ方式は、２つのホットスペア（または交換ディスク装置）に分散記録した先に故障したディス装置の復元データを一方のホットスペア（または交換ディスク装置）に集約する処理を、シーケンシャルなデータのRead/Writeで実現できる。
【００５７】
＜同一領域２分割データリカバリ方式＞
同一領域２分割データリカバリ方式は、先に故障したディスク装置のデータを復元する処理を、ＲＡＩＤ６のＲＡＩＤグループの正常なディスク装置からの１多重のシーケンシャルな読み出しで実施し、１回の読出しデータから生成した復元したデータを２分割して、各２分割復元データを２台のホットスペア（または交換ディスク装置）に分散して書き込む。例えば、復元データの上半分をホットスペア（または交換ディスク装置）に、下半分をホットスペア（または交換ディスク装置）に書き込む。そして、２台のホットスペア（または交換ディスク装置）への２分割復元データの書込みが完了すると、その時点で、ＲＡＩＤ６のＲＡＩＤグループは冗長性のある状態に復帰した事になり、その後、２台のホットスペア（または交換ディスク装置）から２分割復元データを読出し、一方のホットスペア（または交換ディスク装置）に、それら読み出した２分割復元データを書き込むことで、先に故障したディスク装置のデータを一方のホットスペア（または交換ディスク装置）に復元する。続いて、後に故障したディスク装置のデータを、通常の方式で、ホットスペア（または交換ディスク装置）に復元させる。
【００５８】
図６は、同一領域２分割データリカバリ方式の処理手順のイメージを示す模式図である。
図４（ａ）と図５を参照しながら、同一領域２分割データリカバリ方式によるデータ復旧処理手順を詳細に説明する。尚、以後の説明では、ディスク装置がＨＤＤである場合を例にして説明するが、単純２分割データリカバリ方式はＨＤＤ以外のディスク装置にも適用可能である。
【００５９】
図４（ａ）に示す５台のＨＤＤ２３１で構成されるＲＡＩＤ６のＲＡＩＤグループにおいて二台のＨＤＤ２３１（ＨＤＤ３、４）が故障したものとする。この場合、ＨＤＤ３がＨＤＤ４よりも先に故障したものとする。
【００６０】
同一領域２分割データリカバリ方式においても、単純２分割データリカバリ方式と同様に、ＨＤＤ３、ＨＤＤ４の順でデータ復旧を行なう。ＨＤＤ３のデータを復旧する際には、ＲＡＩＤ６のＲＡＩＤグループの正常なＨＤＤ（ＨＤＤ１、２、５）から１回の１多重で読み出したデータを基にして復元されたデータを２分割し、一方(上半分)の分割復元データ（第１の分割復元データ）をホットスペアＨＳ１に、他方（下半分）の分割復元データ（第２の分割復元データ）をホットスペアＨＳ２に２多重で書き込む（図６（ａ）参照）。以上のような処理を、ＨＤＤ３の全てのデータについて、先頭からシーケンシャルに実施し、ホットスペアＨＳ１にＨＤＤ３の全データの第１の分割復元データＵＤ＃３を格納し、ホットスペアＨＳ２にＨＤＤ３の全データの第２の分割復元データＬＤ＃３を格納する（図６（ｂ）参照）。
【００６１】
次に、ホットスペアＨＳ１、ＨＳ２から、それぞれ、第１の分割復元データと第２の分割復元データを書込みデータ単位でシーケンシャルに読出し、ホットスペアＨＳ１に第１の分割復元データと第２の分割復元データを交互にシーケンシャルに書き込む集約処理を行う（図６（ｃ）参照）。図６（ｄ）は、上記集約処理が完了した状態示す。この例では、ホットスペアＨＳ１に、故障ディスク装置ＨＤＤ３のデータが復旧される。続いて、ＨＤＤ４のデータを、ＲＡＩＤ６のＲＡＩＤグループの正常なＨＤＤ（ＨＤＤ１、２、５）に格納されているデータを基に復元し、その復元データをホットスペアＨＳ２にシーケンシャルに書き込み（図６（ｅ）参照）、ホットスペアＨＳ２に故障ディスク装置ＨＤＤ４のデータを復旧する。
【００６２】
以上述べたように、同一領域２分割データリカバリ方式は、１台のディスク装置（例えば、先に故障したディスク装置）のデータ復旧処理を、１多重のシーケンシャルなデータ読出し（ＲＡＩＤ６のＲＡＩＤグループの正常なディスク装置からのデータ読み出し）と、２多重のシーケンシャルなデータ書込み（ホットスペアＨＳ１、ＨＳ２への各分割復元データの分散書込み）で実現できる。
【００６３】
＜ストライプ２分割データリカバリ方式＞
ストライプ２分割データリカバリ方式は、先に故障したディスク装置のデータを復元する処理を、同一領域２分割データリカバリ方式と同様に、ＲＡＩＤ６のＲＡＩＤグループの正常なディスク装置からの１多重のシーケンシャルな読み出しで実施し、１回の読出しデータから生成した復元したデータを２分割して、各２分割復元データを２台のホットスペア（または交換ディスク装置）に分散して書き込む。但し、２分割復元データのホットスペア（または交換ディスク装置）への書込み位置が同一領域２分割データリカバリ方式とは異なる。ストライプ２分割データリカバリ方式は、２分割復元データを、２分割復元データのサイズだけ空けながら、ホットスペア（または交換ディスク装置）に飛び飛びに書き込む。このとき、一方のホットスペア（または交換ディスク装置）と他方のホットスペア（または交換ディスク装置）とで、２分割復元データの配置位置が、２分割復元データのサイズ分だけずれるようにする。すなわち、一方のホットスペア（または交換ディスク装置）における空隙領域の位置が他方のホットスペア（または交換ディスク装置）の分割復元データの格納領域の位置となるような分割復元データの書込みを行う。このような分割復元データの書込みを行うことで、２台のホットスペア（または交換ディスク装置）に分散した復元データを一方のホットスペア（または交換ディスク装置）に集約する際、復元データが集約される側のホットスペア（または交換ディスク装置）に格納されている分割復元データを再配置する処理が不要になる。つまり、復元データが集約される側のホットスペア（または交換ディスク装置）に格納されている分割復元データは移動する必要がない。２台のホットスペア（または交換ディスク装置）への書き込みが完了した時点で、ＲＡＩＤ６のＲＡＩＤグループは冗長性のある状態に復帰する。
【００６４】
次に、先に故障したディスク装置のデータをホットスペア（または交換ディスク装置）に復旧させる処理を行い、続いて、後に故障したディスク装置のデータを、通常の方式で、ホットスペア（または交換ディスク装置）に復元する。
【００６５】
ストライプ２分割データリカバリ方式は、１台のディスク装置（例えば、先に故障したディスク装置）のデータ復旧処理を、１多重のシーケンシャルなデータ読出し（ＲＡＩＤ６のＲＡＩＤグループの正常なディスク装置からのデータ読み出し）と、ランダムなデータ書込み（ホットスペアＨＳ１、ＨＳ２への各分割復元データの分散書込み）で実現できる。また、分散した復元データを１台のホットスペア（または交換ディスク装置）に集約する処理は、ランダムなデータのRead/Writeで行われる。
【００６６】
図７は、ストライプ２分割データリカバリ方式の処理手順のイメージを示す模式図である。図７において、ホットスペアＨＳ１、ＨＳ２はＳＳＤである。
図４（ａ）と図７を参照しながら、ストライプ２分割データリカバリ方式によるデータ復旧処理手順を詳細に説明する。尚、以後の説明では、ディスク装置がＳＳＤである場合を例にして説明するが、ストライプ２分割データリカバリ方式はＳＳＤ以外のディスク装置にも適用可能である。
【００６７】
図４（ａ）に示す５台のＳＳＤ２３３で構成されるＲＡＩＤ６のＲＡＩＤグループにおいて二台のＳＳＤ２３３（ＳＳＤ３、４）が故障したものとする。この場合、ＳＳＤ３がＳＳＤ４よりも先に故障したものとする。
【００６８】
図４（ａ）に示す５台のＳＳＤ２３３で構成されるＲＡＩＤ６のＲＡＩＤグループにおいて二台のＳＳＤ２３３（ＳＳＤ３、４）が故障したものとする。この場合、ＳＳＤ３がＳＳＤ４よりも先に故障したものとする。
【００６９】
ストライプ２分割データリカバリ方式においても、単純２分割データリカバリ方式と同様に、故障したディスク装置から順にデータ復旧を行なう。すなわち、ＳＳＤ３、ＳＳＤ４の順にデータ復旧を行う。ＳＳＤ３のデータを復旧する際には、ＲＡＩＤ６のＲＡＩＤグループの正常なＳＳＤ（ＳＳＤ１、２、５）から１回の１多重で読み出したデータを基にして復元されたデータを２分割し、一方（上半分）の分割復元データ（第１の分割復元データ）をホットスペアＨＳ１に、他方（下半分）の分割復元データ（第２の分割復元データ）をホットスペアＨＳ２に書き込む（図７（ａ）参照）。このとき、同一領域２分割データリカバリ方式と同様に、第１の分割復元データをホットスペアＨＳ１に、第２の分割復元データをホットスペアＨＳ２に書き込むが、ホットスペアＨＳ１とホットスペアＨＳ２において、第１の分割復元データと第２の分割復元データの書込み位置（書き込みアドレス）が交差するようにする。すなわち、最初の第１の分割復元データをホットスペアＨＳ１のアドレス１に、最初の第２の分割復元データをホットスペアＨＳ２のアドレス２に書き込む。以後同様にして、ｎ（ｎ＝２，３，４，・・・）番目以降の第１の分割復元データをホットスペアＨＳ１のアドレス（２ｎ−１）に、第２の分割復元データをホットスペアＨＳ２のアドレス２ｎに書き込んでいく。以上のような処理を、ＳＳＤ３の全てのデータについて、先頭からシーケンシャルに実施することで、ホットスペアＨＳ１にＳＳＤ３の全復元データの上半分を格納し、ホットスペアＨＳ２にＳＳＤ３の全復元データの下半分を格納する。図７（ｂ）は、故障ディスク装置ＨＤＤ３のデータ復元完了後のホットスペアＨＳ１、ＨＳ２の状態を示している。
【００７０】
次に、ホットスペアＨＳ２から、第２の分割復元データを先頭から順に読出し、その読み出した第２の分割復元データを、ホットスペアＨＳ１のアドレス２、４、６・・・に順次書き込んでいく（図７（ｃ）参照）。ホットスペアＨＳ２に格納されている全ての第２の分割復元データをホットスペアＨＳ１に書き込んだ時点で、ホットスペアＨＳ１にＳＳＤ３の復元データを集約する処理が完了する（図７（ｄ）参照）。この集約処理において、ホットスペアＨＳ２からの第２の分割復元データの読出しと該２分割復元データのホットスペアＨＳ１への書込みは、ホットスペアＨＳ１、ＨＳ２に対するランダムアクセス（アドレスを１アドレス分だけずらしていくアクセス）により実行される。
【００７１】
続いて、ＳＳＤ４のデータを、ＲＡＩＤ６のＲＡＩＤグループの正常なＳＳＤ（ＳＳＤ１、２、５）に格納されているデータを基に復元し、その復元データをホットスペアＨＳ２にシーケンシャルに書き込み（図６（ｅ）参照）、ホットスペアＨＳ２に故障ディスク装置ＳＳＤ４のデータを復旧する。
【００７２】
以上述べたように、ストライプ２分割データリカバリ方式は、１台のディスク装置（例えば、先に故障したディスク装置）のデータ復旧処理を、１多重のシーケンシャルなデータ読出し（ＲＡＩＤ６のＲＡＩＤグループの正常なディスク装置からのデータ読み出し）で実現できる。また、２台のディスク装置（または交換ディスク装置）に分散記録した１台のディスク装置（例えば、先に故障したディスク装置）の復元データを１台のディスク装置（または交換ディスク装置）に集約する処理において、復元データが集約される側のディスク装置（または交換ディスク装置）のデータ配置を変更する処理が不要である。換言すれば、復元データが集約される側のディスク装置（または交換ディスク装置）のデータ配置をそのまま利用できる。
【００７３】
｛ＨＤＤとＳＳＤが混在して搭載されているＲＡＩＤ６のＲＡＩＤグループを有するディスクアレイサブシステム（ディスクアレイ装置）におけるデータ復旧方式の自動選択方法｝
上記３種類のデータ復旧方式によるデータ復旧機能を実装しているディスクアレイサブシステム（ディスクアレイ装置）においてＲＡＩＤ６のＲＡＩＤグループの２台のディスク装置が故障した場合におけるデータ復旧方式の自動選択方法について考察する。
【００７４】
ＲＡＩＤ６のＲＡＩＤグループのディスク装置全てＳＳＤから構成されている場合には、ストライプ２分割データリカバリ方式を選択する。これは、ＳＳＤの場合にはシーケンシャルアクセスの利点があまりなく、読み出し元のディスク装置に対するReadコマンドを１多重で実行できるからである。
【００７５】
ＲＡＩＤ６のＲＡＩＤグループのディスク装置がＨＤＤから構成されており、Ｉ／Ｏが無い状況の場合には、同一領域２分割データリカバリ方式を選択する。これは、上記状況時には、同一領域２分割データリカバリ方式が１台の故障ディスク装置のデータ復旧（先に復旧する故障ディスク装置のデータ復旧）において、読み出し元のディスク装置と書き込み先のディスク装置（ホットスペアまたは交換ディスク装置）に対するデータのRead/Writeのシーケンシャル性を最大限に発揮できるからである。
【００７６】
ＲＡＩＤ６のＲＡＩＤグループのディスク装置がＨＤＤから構成されており、一定量のＩ／Ｏが有る状況の場合には、単純２分割データリカバリ方式を選択する。これは、このような状況においては、読み出し元のディスク装置並びに書き込み先のディスク装置に対するシーケンシャルアクセスを活かせる単純２分割データリカバリ方式と同一領域２分割データリカバリ方式との間で、１台の故障ディスク装置のデータ復旧（先に復旧する故障ディスク装置のデータ復旧）の性能差があまりないので、２台のホットスペア（または交換ディスク装置）に分散記録されている１台の故障ディスク装置の復元データを集約する処理を、より高速に実行できる単純２分割データリカバリ方式を選択する。
【００７７】
｛ＲＡＩＤ６のＲＡＩＤグループにおいて２台のディスク装置に故障が発生した場合におけるデータ復旧の全体処理｝
図８は、本実施形態のディスクアレイサブシステム２０において、ＲＡＩＤ６のＲＡＩＤグループにおいて２台のディスク装置に故障が発生した場合におけるデータ復旧処理の全体的な手順を示すフローチャートである。図８に示す処理は、主に、ＣＭ２１０（ＣＭ２１０−０〜２）の制御によって行われる。
【００７８】
ディスクアレイサブシステム２０のいずれかのＲＡＩＤ６のＲＡＩＤグループにおいて２台のディスク装置（ＨＤＤ２３１またはＳＳＤ２３３）が故障し、ＲＡＩＤ６のＲＡＩＤグループが冗長性の無い縮退状態になると（ステップＳ１）、そのＲＡＩＤ６のＲＡＩＤグループを管理しているＣＭ２１０は縮退した２台のディスク装置の内、先にデータ復旧を行うディスク装置のデータ復旧方式を自動選択する（ステップＳ２）。このステップＳ２のデータ復旧方式の自動選択処理の詳細は後述する。
【００７９】
ＣＭ２１０は、ステップＳ２で選択したデータ復旧方式による縮退した１台目のディスク装置のデータ復旧処理を開始する（ステップＳ３）。そして、ＣＭ２１０は、縮退した１台のディスク装置のデータの２台の予備ディスク装置（ホットスペアＨＳ１、ＨＳ２）への復元を完了する（ステップＳ４）。ここで、縮退したディスク装置とは、ＲＡＩＤ６のＲＡＩＤグループから論理的に切り離された状態にある故障したディスク装置のことである。
【００８０】
続いて、ＣＭ２１０は、ステップＳ２で選択した方式により、縮退した１台目のディスク装置の復元データを、２台の予備ディスク装置（ホットスペアＨＳ１、ＨＳ２）から１台の予備ディスク装置（ホットスペアＨＳ１）に集約する（ステップＳ５）。
【００８１】
以上の処理により、故障した１台目のディスク装置のデータが１台の予備ディスク装置（ホットスペアＨＳ１）に復旧される。ＣＭ２１０は、その１台の予備ディスク装置をＲＡＩＤ６のＲＡＩＤグループに論理的に組み込む。これにより、ＲＡＩＤ６のＲＡＩＤグループは、冗長性の有る縮退状態になる。
【００８２】
次に、ＣＭ２１０は、縮退した２台目のディスク装置のデータを予備ディスク装置（ホットスペアＨＳ２）に復元する処理を開始する（ステップＳ６）。そして、ＣＭ２１０は、縮退した２台目の全てのデータを予備ディスク装置（ホットスペアＨＳ２）に書込み、２台目の縮退したディスク装置のデータを予備ディスク装置（ホットスペアＨＳ２）に復旧させ、その予備ディスク装置をＲＡＩＤ６のＲＡＩＤグループに論理的に組み込むことで、２台の縮退したディスク装置の復旧処理を完了させる（ステップＳ７）。
ステップＳ７の処理が終了した時点で、ＲＡＩＤ６のＲＡＩＤグループは正常な状態に復帰する。
【００８３】
｛データ復旧方式の自動選択処理｝
図９は、図８のステップＳ２のデータ復旧方式の自動選択処理の詳細を示すフローチャートである。図９において、ステップＳ２１〜Ｓ２６が、ステップＳ２の処理に該当する。図９のフローチャートに示す処理は、例えば、ＣＰＵ２１２（２１２−０〜２）のよって実行されるプログラムによって実現される。この場合、このプログラムは、図８のフローチャートのステップＳ１において、サブルーチンとして呼び出される。
【００８４】
図９のフローチャートに示すデータ復旧方式の自動選択処理の手順を説明する。
ＣＭ２１０は、まず、構成情報２１６−ｉを参照して、全てをＳＳＤ２３３で構成されたＲＡＩＤ６のＲＡＩＤグループの縮退であるか判断する（ステップＳ２１）。そして、縮退したＲＡＩＤ６のＲＡＩＤグループが全てＳＳＤ２３３でいないと判断すれば（ステップＳ２１、Ｎｏ）、データ復旧の処理方式として「ストライプ２分割データリカバリ方式」を選択し（ステップＳ２２）、ステップＳ２６に移行する。
【００８５】
一方、ＣＭ２１０は、ステップＳ２１において、縮退したＲＡＩＤ６のＲＡＩＤグループ（該当ＲＡＩＤグループ）を構成するディスク装置が全てＳＳＤでないと判断すれば（ステップＳ２１、Ｎｏ）、次に、Ｉ／Ｏ管理テーブル２１５を参照して、該当ＲＡＩＤグループへのＩ／Ｏの有無を判別する（ステップＳ２３）。ＣＭ２１０は、ステップＳ２３において、該当ＲＡＩＤグループへのＩ／Ｏが有ると判断すれば（ステップＳ２３、Ｙｅｓ）、データ復旧の処理方式として「単純２分割データリカバリ方式」を選択し（ステップＳ２４）、ステップＳ２６に移行する。一方、ＣＭ２１０は、ステップＳ２３において、該当ＲＡＩＤグループへのＩ／Ｏが無いと判断すれば（ステップＳ２３、Ｎｏ）、データ復旧の処理方式として「同一領域２分割データリカバリ方式」を選択し、ステップＳ２６に移行する。尚、本実施形態のステップＳ２３は「該当ＲＡＩＤグループへのＩ／Ｏの有無」による判別処理を行っているが、ステップＳ２３の判別処理を、「該当ＲＡＩＤグループへのＩ／Ｏが一定量以上であるか否か」に変えてもよい。
【００８６】
ＣＭ２１０は、ステップＳ２６において、選択したデータ復旧の処理方式を（図８のフローチャートに示す処理を実行するメインルーチンに）応答する。そして、図８のフローチャートのステップＳ２の処理を終了する。
【００８７】
｛単純２分割データリカバリ方式の処理手順｝
図１０は、単純２分割データリカバリ方式の処理手順を示すフローチャートである。
図１０のフローチャートに示す処理は、図８のフローチャートのステップＳ２において、データリカバリ方式として単純２分割データリカバリ方式が選択された場合の処理ＳＡ（ステップＳ３〜Ｓ７の処理）に該当する。
【００８８】
図１０のフローチャートの処理を説明する。
ＣＭ２１０は、縮退した１台目のディスク装置のデータの上半分をホットスペアＨＳ１へ、下半分をホットスペアＨＳ２へ、同時並行的に復元する（ステップＳ４Ａ−１）。ＣＭ２１０は、ステップ４Ａ−１の処理を、縮退した１台目のディスク装置の全てのデータについて実施することで、ホットスペアＨＳ１、ＨＳ２へ縮退した１台目のディスク装置のデータを復元する処理を完了する（ステップ４Ａ−２）。
【００８９】
ＣＭ２１０は、ホットスペアＨＳ２の下半分に格納されているデータを読み出し、その読み出したデータをホットスペアＨＳ１の下半分に書込む処理を実施し（ステップ５Ａ−１）、１台目の縮退したディスク装置の全データをホットスペアＨＳ１に集約する処理を完了する（ステップ５Ａ−２）。
【００９０】
ＣＭ２１０は、縮退した２台目のディスク装置のデータをホットスペアＨＳ２に復元する処理を開始する（ステップ６Ａ）。そして、その縮退した２台目のディスク装置のデータをホットスペアＨＳ２に復元することで、ホットスペアＨＳ１、ＨＳ２に、それぞれ、縮退した１台目のディスク装置のデータ、縮退した２台目のディスク装置のデータを復元し、縮退した２台のディスク装置のデータのホットスペアＨＳ１、ＨＳ２への復旧を完了する（ステップ７Ａ）。
【００９１】
｛同一領域２分割データリカバリ方式の処理手順｝
図１１は、同一領域２分割データリカバリ方式の処理手順を示すフローチャートである。図１１のフローチャートに示す処理は、図８のフローチャートのステップＳ２において、データリカバリ方式として同一領域２分割データリカバリ方式が選択された場合の処理ＳＡ（ステップＳ３〜Ｓ７の処理）に該当する。
【００９２】
図１１のフローチャートの処理を説明する。
ＣＭ２１０は、縮退した１台目のディスク装置のデータをホットスペアＨＳ１、ＨＳ２に復元する処理を開始する（ステップＳ３Ｂ）。
【００９３】
縮退した１台目のディスク装置のデータ復元は１回または複数回に分けて行う。複数回に分けてデータ復元を行う際には、ＲＡＩＤ６のＲＡＩＤグループで正常に稼動しているディスク装置から複数回に分けてデータを読み出す必要がある。この場合、ＲＡＩＤ６のＲＡＩＤグループで正常に稼動している複数のディスク装置から１多重でデータ読み出しを行うが、各正常なディスク装置から１回のReadアクセスで読み出すデータの単位はストライピング単位の２の倍数である。ＣＭ２１０は、縮退した１台目のディスク装置の１回目の復元データの内、その復元データの上半分をホットスペアＨＳ１に、下半分をホットスペアＨＳ２に分割して書き込む。以後、２回目以降の復元データについても同様の処理を行う。ホットスペアＨＳ１、ＨＳ２への復元データの書込みは、ホットスペアＨＳ１、ＨＳ２に復元データが連続して格納されるようにして行う（ステップＳ４Ｂ−１）。ここで、縮退した１台目のディスクアレイ装置のデータは、ＲＡＩＤ６のＲＡＩＤグループで正常に稼動しているディスクアレイ装置に格納されているデータを基にストライピング単位で復元される。したがって、各回の復元データの最小単位はストライプデータである。ＣＭ２１０は、ＲＡＩＤ６のＲＡＩＤグループにおいて正常に稼動している全てのディスク装置から同時並行的に読み出したデータを基にして、縮退した１台目のディスク装置のデータを復元する。
【００９４】
ＣＭ２１０は、ステップＳ４Ｂ−１の処理により、縮退した１台目のディスク装置の全データをホットスペアＨＳ１、ＨＳ２に分割・復元する処理を完了する（ステップＳ４Ｂ−２）。
【００９５】
次に、ＣＭ２１０は、ホットスペアＨＳ１に格納されているデータを、縮退した１台目のディスク装置と同じ配置となるように再配置する。このとき、同時に、ホットスペアＨＳ２に格納されているデータについても、縮退した１台目のディスク装置のデータと同じ配置となるように、ホットスペアＨＳ１にコピーする（ステップＳ５Ｂ−２）。
【００９６】
ＣＭ２１０は、ステップＳ５Ｂ−２の処理により、縮退した１台目のディスク装置のデータをホットスペアＨＳ１に集約する処理を完了する（ステップＳ５Ｂ−２）。この段階で、縮退した１台目のディスク装置のデータがホットスペアＨＳ１に復旧される。
【００９７】
ＣＭ２１０は、縮退した２台目のディスク装置のデータをホットスペアＨＳ２へ回復する処理を開始する（ステップＳ６Ｂ）。ＣＭ２１０は、縮退した２台目のディスク装置の全データをホットスペアＨＳ２に復元し、ホットスペアＨＳ１、ＨＳ２に、２台の縮退したディスク装置のデータを復旧する処理を完了する（ステップＳ７Ｂ）。
【００９８】
｛ストライプ２分割データリカバリ方式の処理手順｝
図１２は、ストライプ２分割データリカバリ方式の処理手順を示すフローチャートである。図１２のフローチャートに示す処理は、図８のフローチャートのステップＳ２でストライプ２分割データリカバリ方式が自動選択された場合における図８のフローチャートのステップＳ３〜Ｓ７の処理に該当する。
【００９９】
図１２のフローチャートを説明する。
ＣＭ２１０は、縮退した１台目のディスク装置のデータをホットスペアＨＳ１、ＨＳ２に復元する処理を開始する（ステップＳ３Ｃ）。
【０１００】
縮退した１台目のディスク装置の１回目の復元データの内、その復元データの上半分をホットスペアＨＳ１に、下半分をホットスペアＨＳ２に分割して書き込む。このとき、ホットスペアＨＳ１、ＨＳ２への復元データ書込み位置が、縮退した１台目のディスク装置の配置位置と同じ位置となるようにする。以後、２回目以降の復元データについても同様の処理を行う。ホットスペアＨＳ１、ＨＳ２への復元データの書込みは、ホットスペアＨＳ１、ＨＳ２に復元データが連続して格納されるようにして行う（ステップＳ４Ｃ−１）。ここで、縮退した１台目のディスクアレイ装置のデータは、ＲＡＩＤ６のＲＡＩＤグループで正常に稼動しているディスクアレイ装置に格納されているデータを基にストライピング単位で復元されるの。したがって、各回の復元データの最小単位はストライプデータである。ＣＭ２１０は、ＲＡＩＤ６のＲＡＩＤグループにおいて正常に稼動している全てのディスク装置から同時並行的に読み出したデータを基にして、縮退した１台目のディスク装置のデータを復元する。このとき、ＲＡＩＤ６のＲＡＩＤグループにおいて正常に稼動しているディスク装置から１回のReadコマンドで読み出すデータの単位は、ストライプデータの倍数とする。
【０１０１】
ＣＭ２１０は、ステップＳ４Ｃ−１の処理により、ホットスペアＨＳ１、ＨＳ２への縮退した１台目のディスク装置の全データの復元を完了する（ステップＳ４Ｃ−２）。
ＣＭ２１０は、次に、ホットスペアＨＳ２に格納されているデータを、縮退した１台目のディスク装置のデータ配置と同じになるように、ホットスペアＨＳ１にコピーし（ステップＳ５Ｃ−１）、縮退した１台目のディスク装置の復元データをホットスペアＨＳ１へ集約する（ステップＳ５Ｃ−２）。この段階で、縮退した１台目のディスク装置のデータがホットスペアＨＳ１に復旧される。
【０１０２】
ＣＭ２１０は、続いて、縮退した２台目のディスク装置のデータをホットスペアＨＳ２へ回復する処理を開始する（ステップＳ６Ｃ）。そして、縮退した２台目の全データをホットスペアＨＳ２に復旧することで、縮退した２台のディスク装置のデータのホットスペアＨＳ１、ＨＳ２への復旧を完了する（ステップＳ７Ｃ）。
【０１０３】
［本実施形態の効果］
上述した本実施形態のディスクアレイサブシステム２０によれば、以下のような効果が得られる。
（１）ＲＡＩＤ６のＲＡＩＤグループにおいて２台のディスク装置が故障した場合、１台目の故障ディスク装置の復元データを２台の予備ディスク装置に同時並行的に書き込むようにするため、１台目の故障ディスク装置のデータ復旧に要する時間を短縮できる。
このため、さらなるディスク装置の故障発生によるデータ喪失の可能性がある時間を減少でき、ＲＡＩＤ６のＲＡＩＤグループの信頼性を向上できる。また、２台のディスク装置が故障した縮退状態から１台のディスク装置が故障した縮退状態（冗長性の有る縮退状態）への復旧を早くできるため、ＲＡＩＤ６のＲＡＩＤグループの性能低下時間を減少できる。
【０１０４】
（２）前記特許文献５に開示されている故障ディスク装置の復元データを複数のホットスペア（スペアディスク装置）にストライピングして格納する方法と比較した場合、以下のような利点を有する。
（２−１）復元データを予備ディスク装置に書き込む際、縮退したディスク装置と同数の予備ディスク装置しか使用しないので、ディスク装置の資源は最低限で済む。
（２−２）１台目の故障ディスク装置のデータを２台の予備ディスク装置に復旧した後、それら２台の予備ディスク装置に分散している１台目の故障ディスク装置の復元データを自動的に一方の１台の予備ディスク装置に集約する。このため、１台目の故障ディスク装置のデータ復旧を完了した時点で、ＲＡＩＤ６のＲＡＩＤグループを、その故障ディスク装置が故障する前と同じ性能特性に戻すことができる。
【０１０５】
（３）ＲＡＩＤ６のＲＡＩＤグループにおいて２台のディスク装置が故障した場合の復旧方式として、「単純２分割データリカバリ方式」、「同一領域２分割データリカバリ方式」及び「ストライプ２分割データリカバリ方式」の３種類の方式の中からいずれか１つを選択可能である。このため、Ｉ／Ｏ負荷状況やＲＡＩＤ６のＲＡＩＤグループを構成するディスク装置の種類に応じて、常に最適な復旧方式を選択して２台の故障ディスク装置のデータを復元することで、高度なデータ復旧処理性能を提供できる。
【０１０６】
本発明は、上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々に変形して実施することができる。例えば、図１のディスクアレイサブシステム２０は担当ＬＵＮ制御方式のディスクアレイ装置であるが、本発明は、担当ＬＵＮ制御方式以外のアーキテクチャを有するディスクアレイ装置にも適用可能である。また、本発明の技術は、ＲＡＩＤ６のＲＡＩＤグループを有するディスクアレイ装置に限定されるものではなく、３台以上のディスク装置が故障しても縮退状態での動作を継続できるＲＡＩＤ構成のＲＡＩＤグループを有するディスクアレイ装置にも応用可能である。これは、当業者であれば容易に理解できるであろう。
【０１０７】
上述した実施形態に関し、さらに以下の付記を開示する。
（付記１）
２以上の冗長度のＲＡＩＤ構成のＲＡＩＤグループを備えるディスクアレイ装置であって、
前記ＲＡＩＤグループにおいて失われた冗長度と同数の記憶装置が故障したとき、先にデータ復旧を行う第１の故障記憶装置のデータ復旧方式を、前記ＲＡＩＤグループを構成する記憶装置の種類と前記ＲＡＩＤグループに対するＩ／Ｏ状況に基づいて複数の方式の中から選択するデータ復旧方式選択手段と、
該データ復旧方式選択手段により選択されたデータ復旧方式により、前記第１の故障記憶装置の復元データを２台の復元先記憶装置に分割して書き込むデータ復元手段と、
該データ復元手段により前記２台の復元先記憶装置に分割して書き込まれた前記第１の故障記憶装置の復元データを、前記２台の復元先記憶装置のいずれか一方に集約する復元データ集約手段と、
を備えることを特徴とするディスクアレイ装置。
（付記２）
付記１記載のディスクアレイ装置であって、
前記複数のデータ復旧方式は、前記第１の故障記憶装置の復元データの上半分と下半分の復元データを、前記２台の復元先記憶装置に分けて書き込む第１のデータ復旧方式と、前記ＲＡＩＤグループに属している正常稼動の記憶装置に対する１回のReadアクセスにより前記第１の故障記憶装置の復元データを生成する毎に該生成された復元データを２分割し、該２分割により得られた２つの分割復元データを、前記２台の復元先記憶装置に分けて書き込む第２のデータ復旧方式を含むことを特徴とする。
（付記３）
付記２記載のディスクアレイ装置であって、
請求項２記載のディスクアレイ装置であって、
前記第１のデータ復旧方式は、前記２台の復元先記憶装置において、前記第１の故障記憶装置の上半分の復元データの格納領域と下半分の復元データの格納領域が互いに重ならない位置となるように、前記第１の故障記憶装置の復元データの書き込みを行う方式であり、前記第２のデータ復旧方式には、前記２つの分割復元データを前記２台の復元先記憶装置の連続領域にシーケンシャルに書き込む方式が含まれ、
前記データ復旧方式選択手段は、前記ＲＡＩＤグループを構成する記憶装置がＨＤＤである場合において、該ＲＡＩＤグループに対するＩ／Ｏが無いときには前記第１のデータ復旧方式を選択し、該ＲＡＩＤグループに対してＩ／Ｏが有るときには前記第２のデータ復旧方式を選択することを特徴とする。
（付記４）
付記３記載のディスクアレイ装置であって、
前記第２のデータ復旧方式には、前記２台の復元先記憶装置においてそれぞれの空き領域が交差するように、前記２つの分割復元データを前記２台の復元先記憶装置の飛び飛びの領域に分けて書き込む第３のデータ復旧方式が含まれ、
前記データ復旧方式選択手段は、前記ＲＡＩＤグループを構成する記憶装置がＳＳＤである場合には前記第３のデータ復旧方式を選択することを特徴とする。
（付記５）
２以上の冗長度のＲＡＩＤ構成のＲＡＩＤグループを備えるディスクアレイ装置であって、
前記ＲＡＩＤグループに含まれる失われた冗長度と同数の記憶装置に故障が発生した場合、先にデータ復旧を行う第１の故障記憶装置のデータを復元し、前記第１の故障記憶装置の復元データの上半分と下半分を、２台の復元先記憶装置に分けて書き込むデータ復元手段と、
該データ復元手段により前記２台の復元先記憶装置に分離して格納された前記第１の故障記憶装置の復元データを、前記２台の復元先記憶装置のいずれか一方に集約する復元データ集約手段と、
を備えることを特徴とするディスクアレイ装置。
（付記６）
２以上の冗長度のＲＡＩＤ構成のＲＡＩＤグループを備えるディスクアレイ装置であって、
前記ＲＡＩＤグループに含まれる失われた冗長度と同数の記憶装置に故障が発生した場合、先にデータ復旧を行う第１の故障記憶装置のデータを、該ＲＡＩＤグループの正常稼動の複数の記憶装置に対する多重Readアクセスにより所定サイズ単位で順次復元し、復元する毎に前記第１の故障記憶装置の所定サイズの復元データを２分割し、該２分割により得られた２つの分割復元データを、２台の復元先記憶装置の連続領域に分けて書き込むデータ復元手段と、
該データ復元手段により前記２台の復元先記憶装置に分散して格納された前記第１の故障記憶装置の復元データを、前記２台の復元先記憶装置のいずれか一方に集約する復元データ集約手段と、
を備えることを特徴とするディスクアレイ装置。
（付記７）
２以上の冗長度のＲＡＩＤ構成のＲＡＩＤグループを備えるディスクアレイ装置であって、
前記ＲＡＩＤグループに含まれる失われた冗長度と同数の記憶装置に故障が発生した場合、先にデータ復旧を行う第１の故障記憶装置のデータを、該ＲＡＩＤグループに属する正常稼動の複数の記憶装置に対する多重Readアクセスにより所定サイズ単位で順次復元し、復元する毎に該所定サイズの復元データを２分割し、該２分割により得られた２つの分割復元データを２台の復元先記憶装置に分けて書き込むデータ復元手段と、
該データ復元手段により前記２台の復元先記憶装置に分散して格納されている前記第１の故障記憶装置の復元データを、前記２台の復元先記憶装置のいずれか一方に集約する復元データ集約手段と、
を備え、
前記データ復元手段は前記第１の故障記憶装置の分割復元データを前記所定サイズの間隔を空けながら前記２台の復元先記憶装置に飛び飛びに書き込み、前記２台の復元先記憶装置の前記第１の故障記憶装置の分割復元データの書込み領域は交差していることを特徴とするディスクアレイ装置。
（付記８）
２以上の冗長度のＲＡＩＤ構成のＲＡＩＤグループを備えるディスクアレイ装置において２台の記憶装置が故障した場合のデータ復旧方法であって、
前記ＲＡＩＤグループにおいて失われた冗長度と同数の記憶装置が故障したとき、先にデータ復旧を行う第１の故障記憶装置のデータ復旧方式を、前記ＲＡＩＤグループを構成するディスク装置の種類と前記ＲＡＩＤグループに対するＩ／Ｏ状況に基づいて複数の方式の中から選択するデータ復旧方式選択ステップと、
該データ復旧方式選択ステップにより選択されたデータ復旧方式により、前記第１の故障記憶装置の復元データを２台の復元先記憶装置に分割して書き込むデータ復元ステップと、
該データ復元ステップにおいて前記２台の復元先記憶装置に分割して書き込まれた前記第１の故障記憶装置の復元データを、前記２台の復元先記憶装置のいずれか一方に集約する復元データ集約ステップと、
を備えることを特徴とするディスクアレイ装置のデータ復旧方法。
（付記９）
付記５記載のディスクアレイ装置のデータ復旧方法であって、
前記複数のデータ復旧方式は、前記第１の故障記憶装置の復元データを上半分と下半分に分割し、上半分の復元データと下半分の復元データを、前記２台の復元先記憶装置に分けて書き込む第１のデータ復旧方式と、前記ＲＡＩＤグループに属している正常稼動の記憶装置から１回のReadアクセスにより読み出したデータから生成した前記第１の故障記憶装置の復元データを２分割し、該２分割により得られた２つの分割復元データを、前記２台の復元先記憶装置に分けて書き込む第２のデータ復旧方式を含むことを特徴とする。
（付記１０）
付記９記載のディスクアレイ装置のデータ復旧方法であって、
前記第１のデータ復旧方式は、前記２台の復元先記憶装置において、前記第１の故障記憶装置の上半分の復元データの格納領域と下半分の復元データの格納領域が互いに重ならない位置となるように、前記第１の故障記憶装置の復元データの書き込みを行う方式であり、前記第２のデータ復旧方式には、前記２つの分割復元データを、前記２台の復元先記憶装置の連続領域にシーケンシャルに書き込む方式が含まれ、
前記データ復旧方式選択ステップにおいて、前記ＲＡＩＤグループを構成する記憶装置がＨＤＤである場合、該ＲＡＩＤグループに対するＩ／Ｏが無いときには前記第１のデータ復旧方式を選択し、該ＲＡＩＤグループに対してＩ／Ｏが有るときには前記第２のデータ復旧方式を選択することを特徴とする。
（付記１１）
付記１０記載のディスクアレイ装置のデータ復旧方法であって、
前記第２のデータ復旧方式には、前記２つの分割復元データを、前記２台の復元先記憶装置の空き領域が交差した位置関係となるように、前記２台の復元先記憶装置の飛び飛びの領域に書き込む第３のデータ復旧方式が含まれ、
前記データ復旧方式選択ステップにおいて、前記ＲＡＩＤグループを構成する記憶装置がＳＳＤである場合には前記第３のデータ復旧方式を選択することを特徴とする。
（付記１２）
２以上の冗長度のＲＡＩＤ構成のＲＡＩＤグループを備えるディスクアレイ装置のデータ復旧方法であって、
前記ＲＡＩＤグループに含まれる失われた冗長度と同数の記憶装置に故障が発生した場合、２台の故障記憶装置の内、先にデータ復旧を行う第１の故障記憶装置のデータを復元し、前記第１の故障記憶装置の上半分の復元データと下半分の復元データを、前記２台の復元先記憶装置の連続領域に分散して書き込むデータ復元ステップと、
該データ復元ステップにおいて前記２台の復元先記憶装置に分散して格納された前記第１の故障記憶装置の復元データを、前記２台の復元先記憶装置のいずれか一方に集約する復元データ集約ステップと、
を備えることを特徴とするディスクアレイ装置のデータ復旧方法。
（付記１３）
２以上の冗長度のＲＡＩＤ構成のＲＡＩＤグループを備えるディスクアレイ装置のデータ復旧方法であって、
前記ＲＡＩＤグループに含まれる失われた冗長度と同数の記憶装置に故障が発生した場合、２台の故障記憶装置の内、先にデータ復旧を行う第１の故障記憶装置のデータを、該ＲＡＩＤグループ正常稼動の複数の記憶装置に対する多重Readアクセスにより得られるデータを基に所定サイズ単位で順次復元し、前記第１の故障記憶装置のデータを所定サイズで復元する毎に該所定サイズの復元データを２分割し、該２分割により得られた２つの分割復元データを、２台の復元先記憶装置の連続領域に分散して書き込むデータ復元ステップと、
該データ復元ステップによって前記２台の復元先記憶装置に分散して格納された前記第１の故障記憶装置の復元データを、前記２台の復元先記憶装置のいずれか一方に集約する復元データ集約ステップと、
を備えることを特徴とするディスクアレイ装置のデータ復旧方法。
（付記１４）
２以上の冗長度のＲＡＩＤ構成のＲＡＩＤグループを備えるディスクアレイ装置のデータ復旧方法であって、
前記ＲＡＩＤグループに含まれる失われた冗長度と同数の記憶装置に故障が発生した場合、２台の故障記憶装置の内、先にデータ復旧を行う第１の故障記憶装置のデータを、該ＲＡＩＤグループに属している正常に稼動している複数の記憶装置に対する多重Readアクセスにより得られるデータを基に所定サイズ単位で順次復元し、前記第１の故障記憶装置のデータを所定サイズで復元する毎に、該所定サイズの復元データを２分割し、該２分割により得られた２つの分割復元データを、２台の復元先記憶装置に、前記所定サイズの間隔を空けながら飛び飛びの領域に分散して書き込んでいくデータ復元ステップと、
該データ復元ステップにおいて前記２台の復元先記憶装置に分散して格納された前記第１の故障記憶装置の復元データを、前記２台の復元先記憶装置のいずれか一方に集約する復元データ集約ステップと、
を備え、
前記２台の復元先記憶装置の飛び飛びの領域は、互いに前記所定サイズの分だけずれた位置に配置されることを特徴とするディスクアレイ装置のデータ復旧方法。
【符号の説明】
【０１０８】
２０  ディスクアレイサブシステム（ディスクアレイ装置）
２１０（２１０−０〜２１０−２）  ＣＭ(Controller Module)
２１１（２１１−０〜２１１−２）  ＣＡ(Cannel Adaptor)
２１２（２１２−０〜２１２−２）  ＣＰＵ(Central Processing Unit)
２１３（２１３−０〜２１３−２）  キャッシュメモリ
２１４（２１４−０〜２１４−２）  Firm管理メモリ
２１５（２１５−０〜２１５−２）  Ｉ／Ｏ管理テーブル
２１６（２１６−０〜２１６−２）  構成情報
２１７（２１７−０〜２１７−２）  リカバリ処理部
２１８（２１８−０〜２１８−２）  データ集約部
２１９（２１９−０〜２１９−２）  ＤＩ(Device Interface)
２３０（２３０−０〜２３０−２）
ＲＬＵ(Raid Logical Unit)
２３１  ＨＤＤ(Hard Disk Drive)
２３３  ＳＳＤ(Solid State Drive)
【図１】
0005391993.tif 000002
【図２】
0005391993.tif 000003
【図３】
0005391993.tif 000004
【図４】
0005391993.tif 000005
【図５】
0005391993.tif 000006
【図６】
0005391993.tif 000007
【図７】
0005391993.tif 000008
【図８】
0005391993.tif 000009
【図９】
0005391993.tif 000010
【図１０】
0005391993.tif 000011
【図１１】
0005391993.tif 000012
【図１２】
0005391993.tif 000013
【図１３】
0005391993.tif 000014