(57)【要約】【課題】データデバイスのグループの構成変更において、構成変更中のデータ消失を防止し、構成変更を中断して元の構成に復旧可能とすること。【解決手段】デバイスグループの構成変更を行なう場合に、デバイスグループの冗長性復旧処理用のスペアデバイスをスペアディスク確保部１６ａが確保し、変更処理冗長化部１６ｂは、旧構成から読み出したデータをバッファ上に置いた上で、データをスペアデバイスに書き込んで冗長化する。このとき構成変更実施中のデータはＲＡＩＤグループを構成するディスク、スペアディスクおよびバッファ上に存在している。その後、データを新構成としてＲＡＩＤグループを構成するディスクに書き戻すので、新構成への書き込み中にバッファ上のデータに異常が生じた場合も、変更処理復旧処理部１６ｃがスペアディスクからデータを読み出して変更処理の継続が可能となる。【選択図】図１
2010211420.tif 000002
【特許請求の範囲】
【請求項１】
ユーザデータを格納するデータストレージと、前記データストレージにおける障害発生時に使用するスペアストレージとを管理するストレージ管理装置であって、
前記データストレージをグループ化し、同一グループに属するデータストレージ間で前記ユーザデータの分散および／または冗長化を行なうグループ管理部と、
前記データストレージに障害が発生した場合に、前記スペアストレージを代替のデータストレージとして割り当てるデータストレージ復旧処理部と、
前記データストレージのグループの構成変更を行なう構成変更処理部と
を備え、
前記構成変更処理部は、
前記スペアストレージを確保するスペアストレージ確保部と、
前記グループの構成変更処理にかかるデータを前記スペアストレージ確保部が確保したスペアストレージに書き込む変更処理冗長化部と、
前記グループの構成変更が中断した場合に前記スペアストレージに書き込んだデータを用いて前記グループの構成変更の継続もしくは前記グループの変更開始前の状態への復旧を行なう変更処理復旧処理部と
を備えたことを特徴とするストレージ管理装置。
【請求項２】
前記構成変更部は、前記グループの構成変更を行なう場合に、構成変更前のデータストレージから読み出した前記ユーザデータを第１バッファと第２バッファに交互に書き込み、前記変更処理冗長化部は、第２バッファに対する書き込み処理中に前記第１バッファに書き込まれたユーザデータを読み出して前記スペアストレージ確保部が確保したスペアストレージに書き込み、前記第１バッファに対する書き込み処理中に前記第２バッファに書き込まれたユーザデータを読み出して前記スペアストレージ確保部が確保したスペアストレージに書き込むことを特徴とする請求項１に記載のストレージ管理装置。
【請求項３】
前記スペアストレージ確保部は、前記グループの構成変更において当該グループに属するデータストレージから読み出す全ユーザデータを格納可能な１以上のスペアストレージを確保することを特徴とする請求項１または２に記載のストレージ管理装置。
【請求項４】
前記スペアストレージ確保部は、前記グループの構成変更において当該グループに属するデータストレージから読み出したユーザデータを構成変更後のデータストレージに書き戻すまで格納可能なスペアストレージを確保することを特徴とする請求項１または２に記載のストレージ管理装置。
【請求項５】
前記スペアストレージ確保部による前記スペアストレージの確保中に前記データストレージに障害が発生した場合、前記スペアストレージ確保部が少なくとも１つのスペアストレージを解放して前記データストレージ復旧処理部に提供し、前記変更処理冗長化部は使用するスペアストレージの数が少ない冗長化処理動作に変更して冗長化処理を継続することを特徴とする請求項１〜４のいずれか一つに記載のストレージ管理装置。
【請求項６】
ユーザデータを格納するデータストレージと、前記データストレージにおける障害発生時に使用するスペアストレージとを管理するストレージ管理方法であって、
前記データストレージをグループ化し、同一グループに属するデータストレージ間で前記ユーザデータの分散および／または冗長化を行なわせるグループ管理ステップと、
前記データストレージに障害が発生した場合に、前記スペアストレージを代替のデータストレージとして割り当てるデータストレージ復旧処理ステップと、
前記データストレージのグループの構成変更を行なう構成変更処理ステップと
を含み、
前記構成変更処理ステップは、
前記スペアストレージを確保するスペアストレージ確保ステップと、
前記グループの構成変更処理にかかるデータを前記スペアストレージ確保ステップで確保したスペアストレージに書き込む変更処理冗長化ステップと、
前記グループの構成変更が中断した場合に前記スペアストレージに書き込んだデータを用いて前記グループの構成変更の継続もしくは前記グループの変更開始前の状態への復旧を行なう変更処理復旧処理ステップと
をさらに含んだことを特徴とするストレージ管理方法。
【請求項７】
ユーザデータを格納するデータストレージと、
前記データストレージにおける障害発生時に使用するスペアストレージと、
前記データストレージをグループ化し、同一グループに属するデータストレージ間で前記ユーザデータの分散および／または冗長化を行なわせるグループ管理部と、
前記データストレージに障害が発生した場合に、前記スペアストレージを代替のデータストレージとして割り当てるデータストレージ復旧処理部と、
前記データストレージのグループの構成変更を行なう構成変更処理部と
を備え、
前記構成変更処理部は、
前記スペアストレージを確保するスペアストレージ確保部と、
前記グループの構成変更処理にかかるデータを前記スペアストレージ確保部が確保したスペアストレージに書き込む変更処理冗長化部と、
前記グループの構成変更が中断した場合に前記スペアストレージに書き込んだデータを用いて前記グループの構成変更の継続もしくは前記グループの変更開始前の状態への復旧を行なう変更処理復旧処理部と
を備えたことを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージデバイスをグループ化し、グループ内のストレージデバイス間でユーザデータの分散や冗長化を行なわせるストレージ管理装置、ストレージ管理方法およびストレージシステムに関する。
【背景技術】
【０００２】
従来、複数のストレージデバイスをグループ化し、グループ内のストレージデバイス間でデータの分散や冗長化を行なうことでストレージシステムの信頼性やアクセス速度を向上する技術が利用されてきた。
【０００３】
かかるストレージシステムとして、例えば、ストレージデバイスにハードディスクを用いるＲＡＩＤ（Redundant Arrays of Inexpensive Disks）が知られている。ＲＡＩＤは、複数台のハードディスクを組み合わせることで仮想的な１台のハードディスクとして運用する技術であり、ＲＡＩＤ０〜ＲＡＩＤ６の７種類のレベルが定義されている。ＲＡＩＤ０〜ＲＡＩＤ６のうち、特にＲＡＩＤ０、ＲＡＩＤ１、ＲＡＩＤ５、ＲＡＩＤ６がよく利用される。
【０００４】
ＲＡＩＤ０は、複数台のハードディスクに、データを分散して読み書きし、高速化したものである。ＲＡＩＤ１は、複数台のハードディスクに同時に同じ内容を書き込むミラーリングを行なってデータを冗長化し、耐障害性を向上したものである。ＲＡＩＤ５は、複数のハードディスクに誤り訂正符号データと共にデータを分散させて記録することで、耐障害性とアクセス性能を共に向上したものである。ＲＡＩＤ６は、ＲＡＩＤ５の信頼性を更に向上したものであり、冗長データを２種類作成して２つのディスクに記録することで、２重障害に対応でき、同時に２ドライブが故障しても復元できる。
【０００５】
ＲＡＩＤ１、ＲＡＩＤ５、ＲＡＩＤ６では、一部のハードディスクが故障しても論理ディスクは稼動できる。そして故障が発生した場合、論理ディスクを稼働させたまま故障したハードディスクを取り外して代わりのハードディスクに交換することにより装置を停止することなく運用を続けることができる。装置が稼働中に接続しなおして、即座に利用できるよう設けられた予備用のディスクがスペアディスクである。
【０００６】
なお、ストレージシステムが複数のグループを構成し、各グループをそれぞれ仮想的なディスクとして取り扱う場合、スペアディスクはグループ間で共用することができる。
【０００７】
また、ＲＡＩＤグループを動作させつつ、新たなディスクを追加して同一のＲＡＩＤレベルのままでグループ全体のディスク容量を増加させる構成変更や、ＲＡＩＤレベルを変更する構成変更を行なう、所謂ＬＤＥ（Logical Device Expansion）も知られている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−２１３０６４号公報
【特許文献２】特開２００７−３２３２５１号公報
【特許文献３】特開２００７−３２３２５２号公報
【特許文献４】特開２００３−１０８３１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ストレージグループの構成変更を行なう場合、旧構成に基づいて論理ディスクからデータを読み出し、読み出したデータを一時的にバッファ上に格納してから、新構成に基づいて論理ディスクにデータを書き込む。この読み出してから書込みが終了するまでの間に、一時的にバッファ上にしかデータが存在しない状況が発生する。
【００１０】
具体的には、バッファから新構成の論理ディスクへの書き込みの処理中には、実際のディスクにどこまで書き込まれたかが不明であるため、書き込み処理対象であるディスク上のデータは信頼できない状態となっている。
【００１１】
そのため、バッファとして使用しているメモリの故障や、停電時にバッテリーバックアップが機能しない状態などが発生した場合に、バッファ上のデータが消失する可能性があるという問題点があった。
【００１２】
また、従来の技術では、ストレージグループの構成変更を一旦開始すると、処理途中で構成変更を中止し、元の構成に戻すことができなかった。そのため、オペレーションミスやシステム運用条件の変更などで構成変更の取り消しが求められる場合に対応することができないという問題点があった。
【００１３】
開示の技術は、上記に鑑みてなされたものであって、構成変更中のデータ消失の防止や、構成変更を中断して元の構成に復旧することができるストレージ管理装置、ストレージ管理方法およびストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本願の開示するストレージ管理装置、ストレージ管理方法およびストレージシステムは、ストレージデバイスのグループの構成変更を行なう場合に、ストレージデバイスにおける障害発生時に使用するスペアストレージを構成変更用に確保し、グループの構成変更処理にかかるデータを確保したスペアストレージに書き込み、グループの構成変更が中断した場合にはスペアストレージに書き込んだデータを用いてグループの構成変更の継続もしくはグループの変更開始前の状態への復旧を行なう。
【発明の効果】
【００１５】
本願の開示するストレージ管理装置、ストレージ管理方法およびストレージシステムの一つの態様によれば、構成変更中のデータ消失の防止や、構成変更を中断して元の構成に復旧することができるストレージ管理装置、ストレージ管理方法およびストレージシステムを得ることができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施例にかかるストレージシステムの概要構成を示す概要構成図である。
【図２】図２は、ＲＡＩＤグループの構成変更処理におけるバッファの利用について説明する説明図である。
【図３】図３は、ＲＡＩＤ管理テーブル１２ａの具体例について説明する説明図である。
【図４】図４は、ディスク管理テーブル１２ｂの具体例について説明する説明図である。
【図５】図５は、バッファ管理テーブル１２ｃの具体例について説明する説明図である。
【図６】図６は、構成変更の開始処理について説明するフローチャートである。
【図７】図７は、構成変更の実行中にディスク故障が発生した場合のストレージコントローラの処理動作を説明するフローチャートである。
【図８】図８は、構成変更の具体例について説明する説明図である。（その１）
【図９】図９は、構成変更の具体例について説明する説明図である。（その２）
【図１０】図１０は、構成変更の具体例について説明する説明図である。（その３）
【発明を実施するための形態】
【００１７】
以下に、本願の開示するストレージ管理装置、ストレージ管理方法およびストレージシステムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１８】
図１は、実施例にかかるストレージシステムの概要構成を示す概要構成図である。図１に示したストレージシステムは、ストレージ管理装置であるストレージコントローラ１０，２０，３０，４０を有する。ストレージコントローラ１０は、ユーザデータを格納するストレージデバイス、所謂ストレージとして機能するディスクＤ１１〜１８と接続している。同様に、ストレージコントローラ２０は、ディスクＤ２１〜２８と接続し、ストレージコントローラ３０は、ディスクＤ３１〜３８と接続し、ストレージコントローラ４０は、ディスクＤ４１〜４８と接続している。
【００１９】
ストレージコントローラ１０は、その内部に主制御部１１とメモリ１２を有する。さらに主制御部１１は、その内部にアクセス処理部１３、冗長性復旧処理部１４、ディスク管理部１５およびＲＡＩＤ構成変更処理部１６を有する。主制御部１１が有する各処理部は、それぞれワイヤードロジックやＰＬＤ(Programmable Logic Device)などで実現してもよいし、主制御部１１をＣＰＵ（Central Processing Unit）などの演算装置で実現し、各処理をソフトウェアで実現してもよい。
【００２０】
アクセス処理部１３は、図示しないホスト、ホストからのストレージに対するアクセス要求を処理する。また、ストレージコントローラ１０は、配下のディスクＤ１１〜１８、および他のストレージコントローラと接続している。アクセス処理部１３は、ストレージコントローラ１０に接続されたディスクに限らず、他のストレージコントローラに接続されたディスクにもアクセス可能である。
【００２１】
ここで、ストレージシステムが有するディスクＤ１１〜１８，Ｄ２１〜２８，Ｄ３１〜３８，Ｄ３１〜３８は、ＲＡＩＤグループとしてグループ化されている。図１では、一例として、ディスクＤ１１，Ｄ２１，Ｄ３１，Ｄ４１の４つのディスクが１つのＲＡＩＤグループＧ１を構成している。
【００２２】
したがって、ホストは、グループＧ１に属するディスクを１つの仮想的なストレージと認識してアクセスすることになる。
【００２３】
ディスク管理部１５は、ディスクとＲＡＩＤグループとを管理する。ディスク管理部１５は、ＲＡＩＤグループについてはグループの状態と所属するディスクなどを管理する。またディスク部１５は、各ディスクについてディスクの状態、すなわちＲＡＩＤグループに属しているか、スペアディスクとして設定されているか、などを管理する。詳細については後述する。
【００２４】
アクセス処理部１３は、ディスク管理部１５によって管理されたＲＡＩＤグループの状態を参照し、ホストからの論理ストレージへのアクセスを物理ストレージであるディスクへのアクセスに変換して処理する。
【００２５】
冗長性復旧処理部１４は、冗長性のあるＲＡＩＤグループ内で稼働中のディスクに障害が発生して冗長性が低下した、もしくは失われた場合に、障害が発生したディスクとスペアディスクとして設定されたディスクとを置き換えてＲＡＩＤグループの冗長性を復旧する。
【００２６】
ＲＡＩＤ構成変更処理部１６は、ＲＡＩＤグループのディスクの増減やＲＡＩＤレベルを変更する、所謂ＬＤＥを行なう処理部である。例えば、ＲＡＩＤ構成変更処理部１６は、ＲＡＩＤグループを動作させつつ、すなわちホストからのアクセスを受け入れつつ、新たなディスクを追加して同一のＲＡＩＤレベルのままでグループ全体のストレージ容量を増加させる構成変更や、ＲＡＩＤレベルを変更する構成変更を行なう。
【００２７】
ここで、ＲＡＩＤ構成変更処理部１６は、ＲＡＩＤグループの構成変更を実行する際に、旧構成のディスクから読み出したデータを未使用のスペアディスクに格納することでＲＡＩＤグループの構成変更処理にかかるデータを冗長化する。
【００２８】
この構成変更にかかるデータの冗長化を実現するため、ＲＡＩＤ構成変更処理部１６は、スペアディスク確保部１６ａ、変更処理冗長化部１６ｂおよび変更処理復旧処理部１６ｃを有する。
【００２９】
スペアディスク確保部１６ａは、ＲＡＩＤグループの構成変更を開始する際に、スペアディスクとして設定され、かつ使用されていないディスクを構成変更処理の冗長化用に確保する。
【００３０】
変更処理冗長化部１６ｂは、旧構成から読み出され、バッファ上に書き込まれたデータ、すなわちＲＡＩＤグループの構成変更処理にかかるデータをスペアディスク確保部１６ａが確保したスペアディスクに書き込むことで、構成変更処理を冗長化する。
【００３１】
変更処理復旧処理部１６ｃは、ＲＡＩＤグループの構成変更が中断した場合に、スペアディスクに書き込んだデータを用いてＲＡＩＤグループの構成変更の継続、もしくはＲＡＩＤグループの変更開始前の状態への復旧を行なう。
【００３２】
メモリ１２は、ストレージコントローラ１０が内部で使用する各種データを保持する記憶部であり、その内部にＲＡＩＤ管理テーブル１２ａ、ディスク管理テーブル１２ｂ、バッファ管理テーブル１２ｃ、第１バッファ１２ｄ、第２バッファ１２ｅを記憶している。なお、ここではＲＡＩＤ管理テーブル１２ａ、ディスク管理テーブル１２ｂ、バッファ管理テーブル１２ｃ、第１バッファ１２ｄ、第２バッファ１２ｅを全てメモリ１２内に保持する構成を例示しているが、各々の情報は専用の記憶部を設けてもよいし、適宜組み合わせて複数の記憶部に分散して保持してもよい。
【００３３】
ＲＡＩＤ管理テーブル１２ａは、ディスク管理部１５がＲＡＩＤグループの管理に使用するテーブルであり、ディスク管理テーブル１２ｂは、同じくディスク管理部１５がディスクの管理に使用するテーブルである。
【００３４】
バッファ管理テーブル１２ｃは、ＲＡＩＤ構成変更処理部１６がＲＡＩＤグループの構成変更時に使用するバッファを管理するテーブルであり、第１バッファ１２ｄと第２バッファ１２ｅが構成変更時にバッファとしてデータが書き込まれる領域である。
【００３５】
ストレージコントローラ２０，３０，４０は、ストレージコントローラ１０と同一の構成であるので、ストレージコントローラ２０，３０，４０の構成については説明を省略する。
【００３６】
つぎに図２を参照し、ＲＡＩＤグループの構成変更処理におけるバッファの利用について説明する。図２に示した例は、ＲＡＩＤ５（３＋１）からＲＡＩＤ５（４＋１）への変更である。
【００３７】
ＲＡＩＤ５（３＋１）は、４本のディスクのうち、３本分の容量をデータ保存用に使用して、１本分の容量を冗長化データの保存に使用する。同様にＲＡＩＤ５（４＋１）は、５本のディスクのうち、４本分の容量をユーザデータ保存用に使用して、１本分の容量を冗長化データの保存に使用する。そして、ＲＡＩＤ５では、ユーザデータについても、冗長化データについても各ディスクに分散して保存する。
【００３８】
より詳細には、ディスクに対するアクセス単位を各ディスクから１単位ずつ取得したものが１ストライプであり、ＲＡＩＤグループに対する読み書きの単位となる。そして、各ストライプには１つずつ冗長化データが存在し、いずれのディスクが冗長化データを保持しているかはストライプごとに異なる。なお、ＲＡＩＤ５での冗長化データには排他的論理和によるパリティを用いることが一般的であるので、以降、ＲＡＩＤ５での冗長化データをパリティとして説明する。また、ディスクに対するデータの読み書きの説明については、上述した読み書き単位をデータ１つ分として説明する。
【００３９】
ＲＡＩＤ５（３＋１）からＲＡＩＤ５（４＋１）に構成を変更する場合、旧構成であるＲＡＩＤ５（３＋１）からユーザデータを読み出して一旦バッファに格納する。この旧構成からの読み出しは旧構成のストライプ単位で行なう。そして読み出しは冗長化データであるパリティを除いたユーザデータに対して行なう。したがって、旧構成がＲＡＩＤ５（３＋１）であればディスクから読み出されるデータ数は３の倍数（読み書き単位３つ分の倍数のデータ）となる。
【００４０】
バッファに格納したユーザデータは、その後、ディスクを１本追加した新構成ＲＡＩＤ５（４＋１）に書き戻され、新構成でのパリティが計算される。この新構成への書き戻しは新構成のストライプ単位で行なう。そのため新構成がＲＡＩＤ５（４＋１）であればディスクに書き込むデータは、アクセス単位４つ分のユーザデータにアクセス単位１つ分のパリティを加えたアクセス単位５つ分の倍数のデータとなる。
【００４１】
このように、旧構成からの読み出しは旧構成のストライプ単位で行ない、新構成への書き込みは新構成のストライプ単位で行なう。そのため、旧構成から読み出してバッファに格納するデータ数、またバッファから新構成に書き戻すデータ数を、旧構成の１ストライプ内のデータ数と新構成の１ストライプ内のデータ数との公倍数とすることが好ましい。
【００４２】
例えば、ＲＡＩＤ５（３＋１）からＲＡＩＤ５（４＋１）に構成変更する場合、旧構成の１ストライプ内のデータ数である３と新構成の１ストライプ内のデータ数である４との公倍数である１２を用い、旧構成から４ストライプ分のデータを読み出して新構成に３ストライプ分のデータを書き込むようにすれば、読み書きのデータ数を揃えることができる。
【００４３】
なお、ＲＡＩＤグループに対する１回のアクセスでのデータ数にも上限があるので、旧構成の１ストライプ内のデータ数と新構成の１ストライプ内のデータ数との公倍数のうち、１アクセスでの上限以下の最大の値を用いることが好適である。
【００４４】
つぎにメモリ１２に格納する各種データの具体例について説明する。図３は、ＲＡＩＤ管理テーブル１２ａの具体例について説明する説明図である。図３に示した管理テーブル１２ａは、「ＲＡＩＤグループ番号」、「ＲＡＩＤレベル」、「ＲＡＩＤグループステータス」、「メンバーディスク数」、「メンバーディスク」、「構成変更モード」、「構成変更優先度」の各項目を有する。
【００４５】
「ＲＡＩＤグループ番号」は、ストレージシステム内でＲＡＩＤグループを識別する番号であり、「ＲＡＩＤレベル」はそのＲＩＡＤグループのＲＡＩＤレベルを、「ＲＡＩＤグループステータス」は、そのＲＡＩＤグループの状態を示す。ＲＡＩＤグループステータスの値としては、正常な状態を示すＡｖａｉｌａｂｌｅ、ディスク故障によって冗長性が失われた状態を示すＥｘｐｏｓｅｄ、ＲＡＩＤグループが使用できない状態を示すＢｒｏｋｅｎ、データ復元中の状態を示すＲｅｂｕｉｌｄ、などがある。
【００４６】
「メンバーディスク数」は、ＲＡＩＤグループに所属するディスクの数を示す値であり、「メンバーディスク」は、ＲＡＩＤグループに所属する各ディスクの番号である。
【００４７】
「構成変更モード」は、ＲＡＩＤ構成変更処理部１６が構成変更を行なう際のスペアディスクの扱いを設定する項目であり、可逆変換保証、サルベージ保証、スペア不使用のいずれかの値を取る。この値は、ＲＡＩＤグループの作成時に選択することができ、また構成変更の実行中以外であれば随時変更可能である。
【００４８】
可逆変換保証は、構成変更にかかるデータの全てをスペアディスクに保持する、すなわち実施中の構成変更が完了するまでは新構成に書き戻されたデータについても保持することで、旧構成への差し戻しを可能とする。この可逆変換保証の構成変更では、ＲＡＩＤグループ内のデータを全て保持するだけの容量のスペアディスク本数が必要となる。
【００４９】
サルベージ保証は、仕掛かり中領域のデータを１本のスペアディスクに保持することで、メモリ故障やバックアップ失敗による揮発性バッファ上のデータロストに対応するものである。このサルベージ保証の構成変更では、旧構成から読み出されたデータは、新構成に書き戻されるまではスペアディスク上に保持する。
【００５０】
スペア不使用は、スペアディスクを使用せず、構成変更にかかるデータを冗長化しない、従来の構成変更と同じ処理を実行することを示す。
【００５１】
すなわち、構成変更モードは、構成変更における冗長化の程度を示すものであり、構成変更の信頼度を３段階のレベルとして定義したものである。
【００５２】
「構成変更優先度」は、構成変更の冗長化にスペアディスクを使用している状態で、ディスク故障が発生した場合に、構成変更の信頼度レベルの維持を優先するか、ディスク故障対応、すなわち、ＲＡＩＤグループの冗長性復旧を優先するかを示す項目である。
【００５３】
具体的には、構成変更優先度の項目は、構成変更優先、自グループのディスク故障対応優先、ディスク故障対応優先、のいずれかの値を取る。この値は、ＲＡＩＤグループの作成時に選択することができ、また構成変更の実行中以外であれば随時変更可能である。
【００５４】
構成変更優先度の項目に構成変更優先を設定したＲＡＩＤグループは、構成変更が完了するまではスペアディスクを保持し、ディスク故障が発生した場合であってもスペアディスクをリビルド動作に使用しない。
【００５５】
構成変更優先度の項目に自グループのディスク故障対応優先を設定したＲＡＩＤグループは、構成変更中に自グループ内でディスク故障が発生した場合には、構成変更を冗長化するために使用していたスペアディスクを解放し、自グループ内のディスク故障対応を優先してＲＡＩＤグループの冗長性を復旧させる。しかし、他のグループでディスク故障が発生した場合ではスペアディスクを解放しない。
【００５６】
構成変更優先度の項目にディスク故障対応優先を設定したＲＡＩＤグループは、構成変更中にディスク故障が発生した場合には、故障が発生したディスクが他のグループであっても構成変更の冗長化に使用していたスペアディスクを解放し、ＲＡＩＤグループの冗長性を復旧させる。
【００５７】
図４は、ディスク管理テーブル１２ｂの具体例について説明する説明図である。図４に示したディスク管理テーブル１２ｂは、「ディスク番号」、「ディスクステータス」、「付加情報ビット」、「所属ＲＡＩＤグループ」の各項目を有する。なおここでは、付加情報をビットで管理しているが、付加情報はフラグなど任意の方法で管理することができる。
【００５８】
「ディスク番号」は、ストレージシステム内でディスクを識別する番号であり、「ディスクステータス」は、ディスクの状態を示す。ディスクステータスの値としては、正常な状態を示すＡｖａｉｌａｂｌｅ、故障状態を示すＢｒｏｋｅｎ、ＲＡＩＤグループに所属していない状態を示すＰｒｅｓｅｎｔ、データ復元中の状態を示すＲｅｂｕｉｌｄ、スペアディスクに設定されていることを示すＳｐａｒｅなどがある。
【００５９】
「付加情報ビット」は、ディスクステータスに付加することでディスクの状態をさらに詳細に示すものであり、ＥｎａｂｌｅＩＯビット、ＳＭＡＲＴビット、ＬＤＥビット、ＱＦビット、ＬＤＥ＿ＨＳビットの５ビットである。
【００６０】
ＥｎａｂｌｅＩＯビットは、アクセス処理部１３からのアクセスを受付か可能であるか否かを示すビットである。ＳＭＡＲＴビットは、ディスク単体での異常が発生しているか否かを示すビットである。ＬＤＥビットは、構成変更を実施中であるか否かを示すビットであり、例えば構成変更を実施中である場合に１、構成変更を実施中で無い場合に０の値をとる。ＱＦビットは、フォーマットを実施中であるか否かを示すビットである。そして、ＬＤＥ＿ＨＳビットは、構成変更の冗長化に使用中であるか否かを示すビットである。
【００６１】
したがって、ディスクステータスの値がＳｐａｒｅであるディスクについて、ＬＤＥ＿ＨＳビットを確認すれば、そのスペアディスクが構成変更の冗長化に使われておらず、そのままＲＡＩＤグループの冗長化復旧に使用可能な状態であるのか、構成変更の冗長化に使用中でＲＡＩＤグループの冗長化復旧に使用するためには構成変更との競合解消が必要であるのかを判別することができる。
【００６２】
「所属ＲＡＩＤグループ」は、そのディスクが所属するＲＡＩＤグループ番号である。スペアディスクである場合など、ＲＡＩＤグループに所属していない場合には、この項目の値はブランクとする。
【００６３】
図５は、バッファ管理テーブル１２ｃの具体例について説明する説明図である。図５に示したバッファ管理テーブル１２ｃは、バッファアドレスと実アドレス、バッファグループを対応付け、さらにバッファ全体に対して使用中先頭アドレスと使用中最終アドレスの値を有する。
【００６４】
バッファアドレスは、構成変更時に旧構成から読み出したデータを新構成に書き戻すまでの間保持するバッファの仮想的なアドレスであり、実アドレスが仮想アドレスのメモリ上での実際の位置を規定している。そして仮想バッファは、リングバッファであり、使用中先頭アドレスが使用中の先頭位置を、使用中最終アドレスが使用中の最終位置を示している。
【００６５】
また、構成変更時にはバッファを第１バッファと第２バッファに分けて使用するので、バッファグループの値によって仮想のバッファアドレスと実アドレスが第１バッファとして使用中であるのか、第２バッファとして使用中であるのかを示している。なお、使用中最終アドレスから使用中先頭アドレスまでの間は使用していないアドレス範囲であるので、バッファグループの値はブランクである。
【００６６】
つぎに、構成変更の開始について説明する。図６は、構成変更の開始処理について説明するフローチャートである。ＲＡＩＤ構成変更処理部１６は、ＲＡＩＤグループの構成変更を行なう場合にＲＡＩＤ管理テーブル１２ａを参照し、対象となるＲＡＩＤグループの構成変更モードが可逆変換保証であるか否かを判定する（Ｓ１０１）。
【００６７】
構成変更モードが可逆変換保証である場合（Ｓ１０１，Ｙｅｓ）、スペアディスク確保部１６ａは、構成変更前のＲＡＩＤ構成から可逆変換保証に使用するスペアディスクの本数を算出する（Ｓ１０２）。なお、構成変更モードが設定されたタイミングで、予めテーブル上に必要なスペアディスク数を記憶させておいてもよい。さらに、スペアディスク確保部１６ａは、ディスク管理テーブル１２ｂを参照し、使用可能なスペアディスク数を求める（Ｓ１０３）。具体的には、スペアディスク確保部１６ａは、ディスクステータスがｓｐａｒｅで、かつ付加情報ビットが構成変更を実施中でないことを示しているディスクの数を集計する。そして、使用可能なスペアディスクの数が必要な数以上であれば（Ｓ１０４，Ｙｅｓ）、ＲＡＩＤ構成変更部１６は可逆変換保証の構成変更を開始する（Ｓ１０５）。
【００６８】
一方、構成変更モードが可逆変換保証で無い場合（Ｓ１０１，Ｎｏ）、ＲＡＩＤ構成変更処理部１６は、ＲＡＩＤ管理テーブル１２ａを参照し、対象となるＲＡＩＤグループの構成変更モードがサルベージ保証であるか否かを判定する（Ｓ１０６）。
【００６９】
構成変更モードがサルベージ保証である場合（Ｓ１０６，Ｙｅｓ）、スペアディスク確保部１６ａは、ディスク管理テーブル１６ｂを参照し、使用可能なスペアディスクを検索する（Ｓ１０７）。使用可能なスペアディスクがあれば（Ｓ１０８，Ｙｅｓ）、ＲＡＩＤ構成変更部１６はサルベージ保証の構成変更を開始する（Ｓ１０９）。
【００７０】
そして、構成変更モードがスペア不使用である場合（Ｓ１０６，Ｎｏ）、構成変更モードが可逆変換保証であって使用可能なスペアディスクの数が必要な数に満たない場合（Ｓ１０４，Ｎｏ）、および構成変更モードがサルベージ保証であって使用可能なスペアディスクが無い場合（Ｓ１０８，Ｎｏ）、ＲＡＩＤ構成変更部１６は、スペア不使用の構成変更を開始する（Ｓ１１０）。
【００７１】
つぎに、構成変更の冗長化とＲＡＩＤグループの冗長性復旧との競合解消について説明する。図７は、構成変更の実行中にディスク故障が発生した場合のストレージコントローラの処理動作を説明するフローチャートである。
【００７２】
構成変更の実行中にディスク故障が発生すると、ストレージコントローラ１０内部の冗長性復旧処理部１４は、ディスク管理テーブル１２ｂを参照し、冗長性復旧に使用可能なスペアディスク、すなわち、スペアディスクに設定されており、かつ構成変更の冗長化に使用されていないスペアディスクがストレージシステム内に存在するか否かを判定する（Ｓ２０１）。使用可能なスペアディスクが存在する場合（Ｓ２０１，Ｙｅｓ）、冗長性復旧処理部１４は、使用可能なスペアディスクを使用して冗長性復旧処理を開始する（Ｓ２０７）。
【００７３】
使用可能なスペアディスクが無い場合（Ｓ２０１，Ｎｏ）、冗長性復旧処理部１４は、ＲＡＩＤ管理テーブル１２ａを参照し、故障したディスクが所属するＲＡＩＤグループがスペアディスクを使用した構成変更を実行中であるか否かを判定する（Ｓ２０２）。
【００７４】
故障したディスクが所属するＲＡＩＤグループがスペアディスクを使用した構成変更を実行中である場合（Ｓ２０２，Ｙｅｓ）、冗長性復旧処理部１４はＲＡＩＤ管理テーブル１２ａの構成変更優先度を確認し、そのグループがスペアディスクを解放可能であるか否かを判定する（Ｓ２０３）。ここでは構成変更中のＲＡＩＤグループ内でディスク故障が発生しているので、構成変更優先度が自グループのディスク故障対応優先、もしくはディスク故障対応優先である場合にスペアディスク解放可能となる。
【００７５】
同一グループでスペアディスクを解放可能であれば（Ｓ２０３，Ｙｅｓ）、ＲＡＩＤ構成変更処理部１６は、構成変更前の旧構成がＲＡＩＤ１であるか否かを判定する（Ｓ２０４）。
【００７６】
旧構成がＲＡＩＤ１である場合（Ｓ２０４，Ｙｅｓ）、スペアディスク確保部１６ａが確保しているスペアディスクは１本であるので、スペアディスク確保部１６ａは、確保していたスペアディスクを解放し、変更処理冗長化部１６ｂは、スペア不使用の構成変更として処理を継続する（Ｓ２０８）。
【００７７】
一方、旧構成がＲＡＩＤ１で無ければ（Ｓ２０４，Ｎｏ）、変更処理冗長化部１６ｂは、仕掛かり中の拡張範囲、すなわち、旧構成から読み出してバッファ上に存在するデータを使用中のスペアディスクのうちの１本に格納する（Ｓ２０５）。その後、スペアディスク確保部１６ａは、バッファデータを格納したスペアディスク以外のスペアディスクを解放し、変更処理冗長化部１６ｂは、サルベージ保証の構成変更として処理を継続する（Ｓ２０６）。そして、冗長性復旧処理部１４は、スペアディスク確保部１６ａが解放したスペアディスクを使用して冗長性復旧処理を開始する（Ｓ２０７）。
【００７８】
そして、故障したディスクが属するＲＡＩＤグループがスペアディスクを使用した構成変更を実施中ではない場合（Ｓ２０２，Ｎｏ）、故障したディスクが属するＲＡＩＤグループの構成変更優先度からスペアディスクの解放ができない場合（Ｓ２０３，Ｎｏ）、冗長性復旧処理部１４は、ＲＡＩＤ管理テーブル１２ａを参照し、ストレージシステム内にスペアディスクを使用した構成変更を実行中のＲＡＩＤグループがあるか否かを判定する（Ｓ２０９）。
【００７９】
故障したディスクが所属するＲＡＩＤグループ以外にスペアディスクを使用した構成変更を実行中のＲＡＩＤグループが存在する場合（Ｓ２０９，Ｙｅｓ）、冗長性復旧処理部１４はＲＡＩＤ管理テーブル１２ａの構成変更優先度を確認し、スペアディスクを使用した構成変更中のＲＡＩＤグループが、他のグループに対してスペアディスクを解放可能であるか否かを判定する（Ｓ２１０）。ここでは構成変更中のＲＡＩＤグループ外でディスク故障が発生していることになるので、構成変更優先度がディスク故障対応優先である場合にスペアディスク解放可能となる。
【００８０】
他のＲＡＩＤグループに解放可能なスペアディスクがある場合（Ｓ２１０，Ｙｅｓ）、ＲＡＩＤ構成変更処理部１６は、スペアディスクを解放可能なＲＡＩＤグループに、構成変更前の旧構成がＲＡＩＤ１以外のものがあるか否かを判定する（Ｓ２１１）。
【００８１】
ＲＡＩＤ１以外の構成からスペアディスクを解放できる場合（Ｓ２１１，Ｙｅｓ）、変更処理冗長化部１６ｂは、そのＲＡＩＤグループの仕掛かり中の拡張範囲、すなわち、旧構成から読み出してバッファ上に存在するデータを、使用中のスペアディスクのうちの１本に格納する（Ｓ２０５）。その後、スペアディスク確保部１６ａは、バッファデータを格納したスペアディスク以外のスペアディスクを解放し、変更処理冗長化部１６ｂは、サルベージ保証の構成変更として処理を継続する（Ｓ２０６）。そして、冗長性復旧処理部１４は、スペアディスク確保部１６ａが解放したスペアディスクを使用して冗長性復旧処理を開始する（Ｓ２０７）。
【００８２】
一方、スペアディスクを解放できるＲＡＩＤグループの旧構成がＲＡＩＤ１である場合（Ｓ２１１，Ｎｏ）、確保しているスペアディスクは１本であるので、スペアディスク確保部１６ａは、確保していたスペアディスクを解放し、変更処理冗長化部１６ｂは、スペア不使用の構成変更として処理を継続する（Ｓ２０８）。そして、冗長性復旧処理部１４は、スペアディスク確保部１６ａが解放したスペアディスクを使用して冗長性復旧処理を開始する（Ｓ２０７）。
【００８３】
つぎに、ストレージコントローラ１０による構成変更の具体例について説明する。ここでは、ＲＡＩＤ（３＋１）からＲＡＩＤ（４＋１）にサルベージ保証で構成変更する場合を例示する。旧構成のＲＡＩＤ（４＋１）は、ディスクＤ１１，２１，３１，４１からなる。この構成に新たにディスクＤｘを加えてＲＡＩＤ（４＋１）とする。また、構成変更にかかるデータの一時的な保持にはバッファＢｆを用いる。さらに、スペアディスク確保部１６は、構成変更の開始時点にスペアディスクとしてディスクＤｓを確保している。
【００８４】
まず、図８に示したように、ＲＡＩＤ構成変更処理部１６は、旧構成から２ストライプ分のデータを読み出してバッファＢｆに格納する。ここで、ディスクＤ４１の一つ目のデータとディスクＤ３１の２つ目のデータはパリティであるので読み出さず、旧構成から読み出すデータ数は６となる。ＲＡＩＤ構成変更処理部１６は、読み出したデータをバッファＢｆに格納し、格納した領域を第１バッファ１２ｄとする。
【００８５】
バッファＢｆへの格納は、より詳細には、必要なバッファの数だけバッファ管理テーブル１２ｃの使用中最終アドレスを加算する。この加算において、最終アドレスに達した場合には続きはバッファアドレス「０」からカウントする。この加算によって使用中最終アドレスが使用中先頭アドレスを追い越さなければバッファの獲得が成功する。ＲＡＩＤ構成変更処理部１６は、獲得したバッファのバッファグループの値を第１バッファとし、獲得した第１バッファに旧構成から読み出したデータを格納する。
【００８６】
つぎに、変更処理冗長化部１６ｂが、第１バッファ１２ｄから４つ分のデータを読み出してディスクＤｓに書き込むことで第１バッファ１２ｄのデータを冗長化し、ＲＡＩＤ構成変更処理部１６は旧構成から２ストライプ分のデータを読み出してバッファＢｆに第２バッファ１２ｅとして格納する。
【００８７】
このように、第１バッファからスペアディスクへの書き込みと旧構成から第２バッファへの読み出しとを並行して行なうことで、バッファからスペアディスクへの冗長化を行なわない構成変更処理に対して処理遅延が発生することを防ぐことができる。
【００８８】
また、バッファからディスクＤｓへの書き込みを行なうデータ数を４としたのは、新構成への書き戻しが１ストライプ分、すなわちデータ数が４であることに対応したものである。
【００８９】
つづいて、図９に示したように、ＲＡＩＤ構成変更処理部１６はバッファＢｆの第１バッファ１２ｄから新構成の１ストライプ分に相当する４つ分のデータを読み出して新構成のディスクＤ１１，２１，３１，４１に書き戻すとともに、パリティを計算してディスクＤｘに書き込む。
【００９０】
旧構成から読み出すデータ数と新構成に書き戻すデータ数とを一致させることができる場合、すなわち、旧構成の１ストライプあたりのデータ数と新構成の１ストライプあたりのデータ数との公倍数にＲＡＩＤグループアクセスの上限以下の値がある場合には、第１バッファの全てを一度に書き戻すことができる。
【００９１】
しかし、図９で示した例では、旧構成からの読み出しデータ数が６、新構成への書き戻しデータ数が４で一致していない。そのため、新構成への書き戻しを行なった後、第１バッファ１２ｄにデータが２つ分残ることとなる。変更処理冗長化部１６ｂは、第１バッファ１２ｄからの書き戻し後に残されたデータを第２バッファ１２ｅの先頭部分とするバッファ調整を行なったうえで、第１バッファ１２ｄを解放する。バッファの解放は、バッファ管理テーブル１２ｃにおいて、使用中先頭アドレスを加算することで行なう。この加算において、最終アドレスに達した場合には続きはバッファアドレス「０」からカウントする。使用中先頭アドレスは、使用中開始アドレスに一致することはあるが、追い越すことは無い。
【００９２】
つづいて、図１０に示したように、変更処理冗長化部１６ｂが、第２バッファ１２ｅから４つ分のデータを読み出してディスクＤｓに書き込むことで第２バッファ１２ｅのデータを冗長化し、ＲＡＩＤ構成変更処理部１６は旧構成から２ストライプ分のデータを読み出してバッファＢｆに第１バッファ１２ｄとして格納する。なお、バッファＢｆとスペアディスクＤｓはリング状に使用しており、記憶領域の終端まで書き込んだ後は次のデータを先頭から書き込んでいく。
【００９３】
その後、ＲＡＩＤ構成変更処理部１６はバッファＢｆの第２バッファ１２ｅから新構成の１ストライプ分に相当する４つ分のデータを読み出して新構成のディスクＤ１１，２１，３１およびＤｘに書き戻すとともに、パリティを計算してディスクＤ４１に書き込む。そして、変更処理冗長化部１６ｂは、第２バッファ１２ｅからの書き戻し後に残されたデータを第１バッファ１２ｄの先頭部分とするバッファ調整を行なったうえで、第２バッファ１２ｅを解放する。
【００９４】
以降、ＲＡＩＤ構成変更処理部１６は、第２バッファへの読み出しと第１バッファの冗長化、第１バッファの書き戻しとバッファ調整、第１バッファへの読み出しと第２バッファの冗長化、第２バッファの書き戻しとバッファ調整、を繰り返すことで構成変更を進めていく。
【００９５】
上述してきたように、本実施例では、ＲＡＩＤグループの構成変更を行なう場合に、旧構成から読み出したデータをバッファ上に置いた上で、データをスペアディスクに書き込んで冗長化する。このとき構成変更実施中のデータはＲＡＩＤグループを構成するディスク、スペアディスクおよびバッファ上に存在している。その後、データを新構成としてＲＡＩＤグループを構成するディスクに書き戻すので、新構成への書き込み中にバッファ上のデータに異常が生じた場合も、変更処理復旧処理部１６ｃがスペアディスクからデータを読み出して変更処理の継続が可能となる。また、十分な数のスペアディスクを確保して構成変更にかかるデータを全て保持する可逆変換保証では、変更処理復旧処理部１６ｃがスペアディスクからデータを読み出して旧構成として書き戻すことにより、任意のタイミングで構成変更を中止して旧構成に戻すことができる。
【００９６】
また、構成変更処理に使用するバッファを２つの群に分け、旧構成から読み出したデータをバッファの一方に書き込んでいる間に他方のバッファからスペアディスクへの書き込みを行なうことで、スペアディスクへの書き込み処理が追加されることによる処理遅延の影響を抑制している。
【００９７】
さらに、ＲＡＩＤグループにおける冗長性確保用に用意したスペアディスクを構成変更処理の冗長化に用いるとともに、ＲＡＩＤグループにおける冗長性確保と構成変更処理の冗長化との間の優先関係を規定することによって、システム構築に要するコストを上昇させることなく構成変更中のデータ消失を防止し、また、構成変更を中断して元の構成に復旧することができる。
【００９８】
なお、本実施例ではハードディスクをストレージデバイスとして用いるＲＡＩＤシステムを例に説明を行なったが、開示の技術はこれに限定されるものではなく、任意の記録媒体を用いて実施することができるものである。
【００９９】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１００】
（付記１）ユーザデータを格納するデータストレージと、前記データストレージにおける障害発生時に使用するスペアストレージとを管理するストレージ管理装置であって、
前記データストレージをグループ化し、同一グループに属するデータストレージ間で前記ユーザデータの分散および／または冗長化を行なうグループ管理部と、
前記データストレージに障害が発生した場合に、前記スペアストレージを代替のデータストレージとして割り当てるデータストレージ復旧処理部と、
前記データストレージのグループの構成変更を行なう構成変更処理部と
を備え、
前記構成変更処理部は、
前記スペアストレージを確保するスペアストレージ確保部と、
前記グループの構成変更処理にかかるデータを前記スペアストレージ確保部が確保したスペアストレージに書き込む変更処理冗長化部と、
前記グループの構成変更が中断した場合に前記スペアストレージに書き込んだデータを用いて前記グループの構成変更の継続もしくは前記グループの変更開始前の状態への復旧を行なう変更処理復旧処理部と
を備えたことを特徴とするストレージ管理装置。
【０１０１】
（付記２）前記構成変更部は、前記グループの構成変更を行なう場合に、構成変更前のデータストレージから読み出した前記ユーザデータを第１バッファと第２バッファに交互に書き込み、前記変更処理冗長化部は、第２バッファに対する書き込み処理中に前記第１バッファに書き込まれたユーザデータを読み出して前記スペアストレージ確保部が確保したスペアストレージに書き込み、前記第１バッファに対する書き込み処理中に前記第２バッファに書き込まれたユーザデータを読み出して前記スペアストレージ確保部が確保したスペアストレージに書き込むことを特徴とする付記１に記載のストレージ管理装置。
【０１０２】
（付記３）前記スペアストレージ確保部は、前記グループの構成変更において当該グループに属するデータストレージから読み出す全ユーザデータを格納可能な１以上のスペアストレージを確保することを特徴とする付記１または２に記載のストレージ管理装置。
【０１０３】
（付記４）前記スペアストレージ確保部は、前記グループの構成変更において当該グループに属するデータストレージから読み出したユーザデータを構成変更後のデータストレージに書き戻すまで格納可能なスペアストレージを確保することを特徴とする付記１または２に記載のストレージ管理装置。
【０１０４】
（付記５）前記スペアストレージ確保部による前記スペアストレージの確保中に前記データストレージに障害が発生した場合、前記スペアストレージ確保部が少なくとも１つのスペアストレージを解放して前記データストレージ復旧処理部に提供し、前記変更処理冗長化部は使用するスペアストレージの数が少ない冗長化処理動作に変更して冗長化処理を継続することを特徴とする付記１〜４のいずれか一つに記載のストレージ管理装置。
【０１０５】
（付記６）前記グループ管理部は、前記グループの各々について前記構成変更処理部によるグループの構成変更と前記データストレージ復旧処理部によるスペアストレージの割り当て処理との優先関係を設定し、前記グループ管理部は、いずれかのグループに属するデータストレージに障害が発生した場合に各グループの前記優先関係からいずれのグループからスペアストレージを解放するかを決定することを特徴とする付記５に記載のストレージ管理装置。
【０１０６】
（付記７）前記構成変更処理部は、前記変更処理冗長化部が使用するスペアストレージを減少させた後に前記スペアストレージの解放を行なうことを特徴とする付記６に記載のストレージ管理装置。
【０１０７】
（付記８）ユーザデータを格納するデータストレージと、前記データストレージにおける障害発生時に使用するスペアストレージとを管理するストレージ管理方法であって、
前記データストレージをグループ化し、同一グループに属するデータストレージ間で前記ユーザデータの分散および／または冗長化を行なわせるグループ管理ステップと、
前記データストレージに障害が発生した場合に、前記スペアストレージを代替のデータストレージとして割り当てるデータストレージ復旧処理ステップと、
前記データストレージのグループの構成変更を行なう構成変更処理ステップと
を含み、
前記構成変更処理ステップは、
前記スペアストレージを確保するスペアストレージ確保ステップと、
前記グループの構成変更処理にかかるデータを前記スペアストレージ確保ステップで確保したスペアストレージに書き込む変更処理冗長化ステップと、
前記グループの構成変更が中断した場合に前記スペアストレージに書き込んだデータを用いて前記グループの構成変更の継続もしくは前記グループの変更開始前の状態への復旧を行なう変更処理復旧処理ステップと
をさらに含んだことを特徴とするストレージ管理方法。
【０１０８】
（付記９）ユーザデータを格納するデータストレージと、
前記データストレージにおける障害発生時に使用するスペアストレージと、
前記データストレージをグループ化し、同一グループに属するデータストレージ間で前記ユーザデータの分散および／または冗長化を行なわせるグループ管理部と、
前記データストレージに障害が発生した場合に、前記スペアストレージを代替のデータストレージとして割り当てるデータストレージ復旧処理部と、
前記データストレージのグループの構成変更を行なう構成変更処理部と
を備え、
前記構成変更処理部は、
前記スペアストレージを確保するスペアストレージ確保部と、
前記グループの構成変更処理にかかるデータを前記スペアストレージ確保部が確保したスペアストレージに書き込む変更処理冗長化部と、
前記グループの構成変更が中断した場合に前記スペアストレージに書き込んだデータを用いて前記グループの構成変更の継続もしくは前記グループの変更開始前の状態への復旧を行なう変更処理復旧処理部と
を備えたことを特徴とするストレージシステム。
【符号の説明】
【０１０９】
１０，２０，３０，４０    ストレージコントローラ
１１    主制御部
１２    メモリ
１２ａ  ＲＡＩＤ管理テーブル
１２ｂ  ディスク管理テーブル
１２ｃ  バッファ管理テーブル
１２ｄ  第１バッファ
１２ｅ  第２バッファ
１３    アクセス処理部
１４    冗長性復旧処理部
１５    ディスク管理部
１６    ＲＡＩＤ構成変更処理部
１６ａ  スペアディスク確保部
１６ｂ  変更処理冗長化部
１６ｃ  変更処理復旧処理部
Ｄ１１〜１８，Ｄ２１〜２８，Ｄ３１〜３８，Ｄ４１〜４８
Ｇ１    ＲＡＩＤグループ
【図１】
2010211420.tif 000003
【図２】
2010211420.tif 000004
【図３】
2010211420.tif 000005
【図４】
2010211420.tif 000006
【図５】
2010211420.tif 000007
【図６】
2010211420.tif 000008
【図７】
2010211420.tif 000009
【図８】
2010211420.tif 000010
【図９】
2010211420.tif 000011
【図１０】
2010211420.tif 000012