(57)【要約】【課題】ＲＡＩＤ技術によって制御される複数のストレージのデータの分散レイアウトを変更する際に、データアクセス回数を抑えること。【解決手段】ストレージ制御装置１０１は、図１の（１）で示すように、新たなストレージとして、ストレージ１０２＃９を追加する指示を受け付ける。指示を受け付けた場合、ストレージ制御装置１０１は、図１の（２）で示すように、ＦＲ−ＷｉｄｅＢａｎｄ内に配置されたデータであって、それぞれが異なるＦＲ−Ｂａｎｄに配置されたデータを、分割数のＦＲ−Ｕｎｉｔの各ＦＲ−Ｕｎｉｔに対応して選択する。そして、ストレージ制御装置１０１は、図１の（３）で示すように、各ＦＲ−Ｕｎｉｔに対応して選択したデータを、ストレージ１０２＃９上であって、該当のデータが配置されたｒｏｗと同一のｒｏｗに移行する。【選択図】図１
2018185757.tif 000002
【特許請求の範囲】
【請求項１】
ＲＡＩＤ技術によって制御される複数のストレージにアクセス可能なストレージ制御装置であって、
２以上のいずれかの数の各データで冗長性を担保するデータセットに含まれる前記各データが、前記複数のストレージのそれぞれ異なるストレージ上であって、かつ、前記データセットのデータサイズと同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なる物理アドレスに配置された状態において、新たなストレージまたはホットスペアとなるストレージをデータ移行対象ストレージとして前記各データの分散レイアウトの変更を行うと判断した場合に、前記複数のストレージの各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、前記いずれかの数のデータセットの各データセットに対応して選択し、
前記各データセットに対応して選択したデータを、前記データ移行対象ストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに移行する、
制御部を有することを特徴とするストレージ制御装置。
【請求項２】
前記制御部は、
前記各データの分散レイアウトの変更を行うと判断した場合に、前記各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、当該データが配置されたストレージと、前記複数のストレージに配置された複数のデータセットの各データセットが配置されたストレージ同士の組み合わせの回数とに基づいて、前記いずれかの数のデータセットの各データセットに対応して選択する、
ことを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記制御部は、
前記各ストレージの前記分割物理アドレス範囲内に配置されたデータセットのいずれかのデータの復元先となるホットスペア領域が、前記複数のストレージのいずれかのストレージの当該分割物理アドレス範囲に配置された状態において、前記複数のストレージのうち故障したストレージを検出したこと、または前記複数のストレージから減設対象ストレージを取り除く指示を受け付け、
前記故障したストレージを検出した、または前記指示を受け付けた場合、前記故障したストレージまたは前記減設対象ストレージが記憶するデータを、当該データを含むデータセットに基づいて、前記いずれかのストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに復元する、
ことを特徴とする請求項１または２に記載のストレージ制御装置。
【請求項４】
前記制御部は、
前記各ストレージの前記分割物理アドレス範囲内に配置されたデータセットのいずれかのデータの復元先となるホットスペア領域が、前記複数のストレージの２以上のストレージの当該分割物理アドレス範囲に配置された状態において、前記複数のストレージのうち故障したストレージを検出したこと、または前記複数のストレージから減設対象ストレージを取り除く指示を受け付け、
前記故障したストレージを検出した、または前記指示を受け付けた場合、前記２以上のストレージの各ストレージに対応して、前記２以上のストレージの各ストレージにデータを復元した後の状態における前記複数のストレージに配置された複数のデータセットの各データセットが配置されたストレージ同士の組み合わせの回数を計数し、
前記２以上のストレージの各ストレージに対応して計数した組み合わせの回数に基づいて、前記２以上のストレージから復元先のストレージを決定し、
前記故障したストレージまたは前記減設対象ストレージが記憶するデータを、当該データを含むデータセットに基づいて、決定した前記復元先のストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに復元する、
ことを特徴とする請求項３に記載のストレージ制御装置。
【請求項５】
ＲＡＩＤ技術によって制御される複数のストレージにアクセス可能なストレージ制御装置が、
２以上のいずれかの数の各データで冗長性を担保するデータセットに含まれる前記各データが、前記複数のストレージのそれぞれ異なるストレージ上であって、かつ、前記データセットのデータサイズと同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なる物理アドレスに配置された状態において、新たなストレージまたはホットスペアとなるストレージをデータ移行対象ストレージとして前記各データの分散レイアウトの変更を行うと判断した場合に、前記複数のストレージの各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、前記いずれかの数のデータセットの各データセットに対応して選択し、
前記各データセットに対応して選択したデータを、前記データ移行対象ストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに移行する、
処理を実行することを特徴とするストレージ制御方法。
【請求項６】
ＲＡＩＤ技術によって制御される複数のストレージにアクセス可能なストレージ制御装置に、
２以上のいずれかの数の各データで冗長性を担保するデータセットに含まれる前記各データが、前記複数のストレージのそれぞれ異なるストレージ上であって、かつ、前記データセットのデータサイズと同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なる物理アドレスに配置された状態において、新たなストレージまたはホットスペアとなるストレージをデータ移行対象ストレージとして前記各データの分散レイアウトの変更を行うと判断した場合に、前記複数のストレージの各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、前記いずれかの数のデータセットの各データセットに対応して選択し、
前記各データセットに対応して選択したデータを、前記データ移行対象ストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに移行する、
処理を実行させることを特徴とするストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムに関する。
【背景技術】
【０００２】
従来、複数のストレージを組み合わせて仮想的なディスクとして運用するＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）技術がある。また、データ復元にかかる時間を短縮するために、２以上のいずれかの数の各データで冗長性を担保するデータセットの含まれる各データを分散させる技術がある。また、ストレージに対応する代替ストレージを通電状態で待機しておき、ストレージが故障した際に、故障したストレージの代わりに、ホットスペアと呼ばれる代替ストレージを用いる技術がある。
【０００３】
先行技術として、例えば、ディスク追加後のディスクアレイとしての論理アドレスと各ディスクの物理アドレスのマッピング情報を格納するテーブルを作成し、ディスク追加前に使用された論理アドレスと物理アドレスのマッピングをテーブルに格納するものがある。また、各ディスクの記録領域内にスペア領域を分散配置し、１つのディスクが障害となった際には、他のディスクのスペア領域を代替使用し、ディスクを交換した際には、スペア領域を除いてデータの復旧を行う技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−０１０７３８号公報
【特許文献２】特開２０００−２００１５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術によれば、ＲＡＩＤ技術によって制御される複数のストレージに新たなストレージを追加する際や、ホットスペアにデータを移行すると指示された際、データの分散レイアウトを変更しようとすると、データの入れ替えが発生することがある。データの入れ替えが発生すると、データ入れ替えのための一時的な作業用バッファ領域に対する読み書きが発生するため、データアクセス回数が増大する。
【０００６】
１つの側面では、本発明は、ＲＡＩＤ技術によって制御される複数のストレージのデータの分散レイアウトを変更する際に、データアクセス回数を抑えることができるストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様では、ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムは、ＲＡＩＤ技術によって制御される複数のストレージにアクセス可能なストレージ制御装置であって、２以上のいずれかの数の各データで冗長性を担保するデータセットに含まれる各データが、複数のストレージのそれぞれ異なるストレージ上であって、かつ、データセットのデータサイズと同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なる物理アドレスに配置された状態において、新たなストレージまたはホットスペアとなるストレージをデータ移行対象ストレージとして各データの分散レイアウトの変更を行うと判断した場合に、複数のストレージの各ストレージの分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、いずれかの数のデータセットの各データセットに対応して選択し、各データセットに対応して選択したデータを、データ移行対象ストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに移行する。
【発明の効果】
【０００８】
一つの側面では、本発明は、ＲＡＩＤ技術によって制御される複数のストレージのデータの分散レイアウトを変更する際に、データアクセス回数を抑えることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態にかかるストレージ制御装置１０１の動作例を示す説明図である。
【図２】図２は、ストレージシステム２００の構成例を示す説明図である。
【図３】図３は、ＣＭ２０１のハードウェア構成例を示す説明図である。
【図４】図４は、本実施の形態におけるディスクプール構成例を示す説明図である。
【図５】図５は、ＣＭ２０１の機能構成例を示す説明図である。
【図６】図６は、分散レイアウトテーブル５１２の記憶内容の一例を示す説明図である。
【図７】図７は、Ｒｅｂｕｉｌｄ処理の動作例を示す説明図である。
【図８】図８は、Ｒｅｂａｌａｎｃｅ処理の動作例を示す説明図である。
【図９】図９は、ディスクプール作成処理手順の一例を示すフローチャート（その１）である。
【図１０】図１０は、ディスクプール作成処理手順の一例を示すフローチャート（その２）である。
【図１１】図１１は、ＦＨＳ選択テーブル５１３の記憶内容の一例を示す説明図である。
【図１２】図１２は、ディスクプール処理における分散レイアウトテーブル５１２と分散管理テーブル５１４との更新例を示す説明図（その１）である。
【図１３】図１３は、ディスクプール処理における分散レイアウトテーブル５１２と分散管理テーブル５１４との更新例を示す説明図（その２）である。
【図１４】図１４は、Ｒｅｂｕｉｌｄ処理手順の一例を示すフローチャート（その１）である。
【図１５】図１５は、Ｒｅｂｕｉｌｄ処理手順の一例を示すフローチャート（その２）である。
【図１６】図１６は、ディスク増設時処理手順の一例を示すフローチャートである。
【図１７】図１７は、ＦＲ−ＷｉｄｅＢａｎｄ内ＦＨＳ設定処理手順の一例を示すフローチャートである。
【図１８】図１８は、ＦＲ−Ｂａｎｄ内ＦＲ−Ｕｎｉｔ設定処理手順の一例を示すフローチャートである。
【図１９】図１９は、冗長セットの構成要素がディスクの同一位置に配置されるディスクプール構成の一例を示す説明図である。
【図２０】図２０は、冗長セットの構成要素をディスク番号およびディスク上の位置で管理するディスクプール構成の一例を示す説明図である。
【図２１】図２１は、本実施の形態における効果の一例を示す説明図である。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、開示のストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムの実施の形態を詳細に説明する。
【００１１】
図１は、本実施の形態にかかるストレージ制御装置１０１の動作例を示す説明図である。ストレージ制御装置１０１は、複数のストレージを制御するコンピュータである。具体的には、ストレージ制御装置１０１は、複数のストレージによりＲＡＩＤ技術による仮想的なディスクを生成し、ストレージ制御装置１０１のユーザに提供する。
【００１２】
ＲＡＩＤ技術は、複数のストレージを組み合わせて仮想的なディスクとして運用する技術である。ここで、ＲＡＩＤには、仮想的なディスクの形成の仕方を表すＲＡＩＤレベルが存在する。ＲＡＩＤ１以上のＲＡＩＤレベルにより形成された仮想的なディスクは冗長性を有しており、いくつかのストレージが故障しても他のストレージからデータを復元することができる。以下、データを復元する処理を、「Ｒｅｂｕｉｌｄ処理」と呼称する。
【００１３】
また、ストレージに対応する代替ストレージを通電状態で待機しておき、ストレージが故障した際に、故障したストレージの代わりに代替ストレージを用いる技術がある。以下、代替ストレージを、「ホットスペア（ＨＳ：Ｈｏｔ  Ｓｐａｒｅ）」と呼称する。
【００１４】
ここで、ディスク単体の容量伸長率と比較し、ディスクへのアクセス速度の向上率は限定的である。このため、ＲＡＩＤ構成におけるディスク故障時のＲｅｂｕｉｌｄ処理に要する時間は年々増加している。
【００１５】
ここで、Ｒｅｂｕｉｌｄ処理にかかる時間を短縮するため、データの冗長性を担保するデータセットおよびホットスペア領域をＲＡＩＤ内に分散配置させることが考えられる。以下、データの冗長性を担保するデータセットを、「冗長セット」と呼称する。そして、前述した分散配置において、ディスク故障時は復元対象の冗長セットに含まれるデータが格納された各ディスクから読み出してデータ復元し、複数のストレージ上のホットスペアに復元データを書き込むことが考えられる。冗長セットおよびホットスペア領域を分散配置させたＲＡＩＤ構成は、「Ｆａｓｔ  Ｒｅｃｏｖｅｒｙ  ＲＡＩＤ」構成と呼称されることがある。また、以下の記載では、冗長セットおよびホットスペア領域を分散配置させたＲＡＩＤ構成を、「ディスクプール構成」と呼称する。
【００１６】
ディスクプール構成について、ＦＲ（Ｆａｓｔ  Ｒｅｃｏｖｅｒｙ）−Ｄｅｐｔｈ、ＦＲ−Ｕｎｉｔ、ＦＲ−Ｂａｎｄ、ＦＨＳ（Ｆａｓｔ  Ｈｏｔ  Ｓｐａｒｅ）を定義する。ＦＲ−Ｄｅｐｔｈは、冗長セットのデータ分割単位と同一の容量を有する物理記憶領域である。例えば、３つのユーザデータと、１つのパリティデータとで形成されるＲＡＩＤ５の冗長セットであれば、該当の冗長セットは、４つのＦＲ−Ｄｅｐｔｈに格納される。
【００１７】
ＦＲ−Ｕｎｉｔは、２以上のいずれかの数のＦＲ−Ｄｅｐｔｈのことである。従って、ＦＲ−Ｕｎｉｔが、冗長性を担保する単位となる。以下、ＦＲ−Ｕｎｉｔに含まれるＦＲ−Ｄｅｐｔｈの数を、「分割数」と呼称することがある。そして、同じＦＲ−Ｕｎｉｔに属するＦＲ−Ｄｅｐｔｈは、冗長性を低下させないため、同一のストレージに配置しないようにする。
【００１８】
ＦＲ−Ｂａｎｄは、ディスクプール構成に属するストレージを通して、同一の物理アドレスを有するＦＲ−Ｂａｎｄの集合である。また、ｘ番目のＦＲ−Ｂａｎｄを、ｒｏｗ＃ｘと表記することがある。
【００１９】
ＦＨＳは、各ＦＲ−Ｂａｎｄ内にあって、該当のＦＲ−Ｂａｎｄに属するＦＲ−Ｄｅｐｔｈに格納されたデータの退避領域である。ＦＨＳは、ＦＲ−Ｄｅｐｔｈと同一のサイズである。ＦＨＳは、ＦＲ−Ｂａｎｄ内に１以上あればよい。
【００２０】
ＦＲ−ｕｎｉｔとＦＨＳとの分散配置としては、例えば、下記２つの方法が考えられる。第１の方法は、同一ＦＲ−Ｕｎｉｔに含まれるＦＲ−Ｄｅｐｔｈを全て同じＦＲ−Ｂａｎｄに配置する方法である。第２の方法は、同一ＦＲ−Ｕｎｉｔに含まれるＦＲ−Ｄｅｐｔｈを、異なるＦＲ−Ｂａｎｄに配置し、配置したストレージおよびストレージ上におけるデータの位置を管理する方法である。第１の方法によるディスクプール構成については、図１９で図示し、第２の方法によるディスクプール構成については、図２０で図示する。
【００２１】
第１の方法では、同一ＦＲ−Ｕｎｉｔに含まれる各ＦＲ−Ｄｅｐｔｈの配置先として、各ｒｏｗでディスク番号だけを管理すればよく、それぞれのディスク上の位置については管理が不要である。また、Ｒｅｂｕｉｌｄ処理時も故障ディスクのデータを別ディスクの同一ｒｏｗ内のＦＨＳへ復元すればよい。このため、分散レイアウト管理のためのテーブル容量をスリム化できる。しかしながら、第１の方法では、同一ＦＲ−Ｕｎｉｔに含まれる各ＦＲ−Ｄｅｐｔｈの配置先が同一ｒｏｗとなるため、ディスクプールへの追加は、ＦＲ−Ｕｎｉｔに含まれるＦＲ−ｄｅｐｔｈの数単位となり、柔軟性を欠くことになる。
【００２２】
第２の方法では、ディスクプールへの追加は、１本単位で行うことができる。しかしながら、第２の方法では、同一ＦＲ−Ｕｎｉｔに含まれるＦＲ−Ｄｅｐｔｈの配置先として、ディスク番号およびディスク上の位置を管理することになり、分散レイアウト管理のためのテーブル容量が大きくなる。このため、冗長セットのサイズを大きくするか、管理対象の容量を小さくするなどの制限が発生する。また、第２の方法では、Ｒｅｂｕｉｌｄ処理時の故障ディスクのデータ復元先の決定や、ディスクプールへのディスク追加時の分散レイアウト変更が複雑になる。Ｒｅｂｕｉｌｄ処理完了後または分散レイアウト変更後に、各ＦＲ−Ｕｎｉｔ内のＦＲ−Ｄｅｐｔｈが全て異なるディスクになるためである。このため、予め決定された、いくつかの分散パターンから最もふさわしいパターンを選択するといった管理手法が必要となる。
【００２３】
また、第１の方法、第２の方法ともに、予め決定されているまたは均等な分散パターンを形成する場合や、ディスク追加等に伴い分散レイアウトを変更する場合に、既存データの入れ替えを行うことになる。この場合、データ入れ替えのための一時的な作業用バッファ領域を持つことになり、またデータ入れ替えの際にバッファ領域での読み出しおよび書き込みが余分に発生することになる。
【００２４】
そこで、本実施の形態では、ＦＲ−Ｕｎｉｔに含まれる各データを、複数のストレージのそれぞれ異なるストレージ上であって、かつ、ＦＲ−Ｕｎｉｔの同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なるＦＲ−Ｂａｎｄに配置させる。以下、ＦＲ−Ｕｎｉｔの同一のサイズで分割した分割物理アドレス範囲を、「ＦＲ−ＷｉｄｅＢａｎｄ」と呼称する。ＦＲ−ＷｉｄｅＢａｎｄに含まれるｒｏｗの数は、ＦＲ−Ｕｎｉｔに含まれるＦＲ−ｄｅｐｔｈの数と一致することになる。これにより、ディスクプールへの追加を、１本単位で行うことができる。
【００２５】
また、本実施の形態では、各ＦＲ−ＷｉｄｅＢａｎｄのいずれかのストレージに、１つのＦＲ−Ｕｎｉｔと同一の記憶容量分の連続したアドレス領域にＦＨＳを配置する。上述したＦＲ−Ｕｎｉｔの配置とＦＨＳの配置とにより、冗長セットの要素ごとにストレージ内での位置を管理しなくてよくなり、分散レイアウト管理のためのテーブル容量を小さくすることができる。本実施の形態にかかるディスクプール構成については、図４で示す。
【００２６】
そして、本実施の形態では、ディスクプール構成に新たなストレージを追加する際、ＦＲ−ＷｉｄｅＢａｎｄ内の分割数分の冗長セットから、それぞれ異なるアドレスのデータを新たなストレージに移行する。これにより、データの入れ替えが発生しないため、ディスクプール構成変更時のデータ移動を極小化することができる。
【００２７】
図１を用いて、ストレージ制御装置１０１のＲｅｂａｌａｎｃｅ処理の動作例について説明する。ここで、Ｒｅｂａｌａｎｃｅ処理は、Ｆａｓｔ  Ｒｅｃｏｖｅｒｙ  ＲＡＩＤ内でのデータ配置の分散度合いを向上させる処理である。ストレージ制御装置１０１は、複数のストレージとして、ストレージ１０２＃０〜＃８にアクセス可能である。以下の説明では、同種の要素を区別する場合には、「ストレージ１０２＃０」、「ストレージ１０２＃１」のように参照符号を使用し、同種の要素を区別しない場合には、「ストレージ１０２」のように参照符号のうちの共通番号だけを使用することがある。
【００２８】
そして、図１では、ＦＲ−Ｕｎｉｔに含まれる各データが、ストレージ１０２＃０〜８のそれぞれ異なるストレージ上であって、かつ、ＦＲ−ＷｉｄｅＢａｎｄ内でそれぞれ異なるＦＲ−Ｂａｎｄに配置された状態である。ここで、図１を含む以下の図に示すディスクプール構成の各データには、白抜き、網掛け、塗りつぶしのいずれかが付与されており、同一の網掛け、または塗りつぶしのデータの組が、１つの冗長セットである。また、白抜きの箇所は、ＦＨＳである。
【００２９】
図１の状態では、分割数として４つのＦＲ−Ｄｅｐｔｈで１つのＦＲ−Ｕｎｉｔを形成し、ＦＨＳが１つある状態である。そして、ｒｏｗ＃０〜＃３で、１つのＦＲ−ＷｉｄｅＢａｎｄを形成する。
【００３０】
図１に示す状態で、ストレージ制御装置１０１は、新たなストレージまたはＦＨＳとなるストレージをデータ移行対象ストレージとして各データの分散レイアウトの変更を行うと判断する。例えば、ストレージ制御装置１０１は、新たなストレージを追加する指示を受け付けた際に、新たなストレージをデータ移行対象ストレージとして各データの分散レイアウトの変更を行うと判断する。また、ＦＨＳにデータを移行する際に、ストレージ制御装置１０１は、該当のＦＨＳをデータ移行対象ストレージとして各データの分散レイアウトの変更を行うと判断してもよい。ＦＨＳにデータを移行する場合とは、例えば、複数のＦＨＳがある場合に、ストレージ制御装置１０１は、ストレージ制御装置１０１のユーザから、複数のＦＨＳのいずれかにＦＨＳにもデータを移行するという指示を受け付けた場合である。
【００３１】
図１では、（１）で示すように、ストレージ制御装置１０１は、新たなストレージとして、ストレージ１０２＃９を追加する指示を受け付けたため、ストレージ１０２＃９をデータ移行対象ストレージとして各データの分散レイアウトの変更を行うと判断する。
【００３２】
各データの分散レイアウトの変更を行うと判断した場合、ストレージ制御装置１０１は、図１の（２）で示すように、ＦＲ−ＷｉｄｅＢａｎｄ内に配置されたデータであって、それぞれが異なるＦＲ−Ｂａｎｄに配置されたデータを、分割数のＦＲ−Ｕｎｉｔの各ＦＲ−Ｕｎｉｔに対応して選択する。
【００３３】
例えば、図１の例では、ストレージ制御装置１０１は、ｒｏｗ＃０に関して、大き目の格子模様の網掛けを付与したＦＲ−Ｕｎｉｔに属するストレージ１０２＃５のデータを選択する。また、ストレージ制御装置１０１は、ｒｏｗ＃１に関して、右上から左下に向かう斜線の網掛けを付与したＦＲ−Ｕｎｉｔに属するストレージ１０２＃７のデータを選択する。また、ストレージ制御装置１０１は、ｒｏｗ＃２に関して、斜めの格子模様の網掛けを付与したＦＲ−Ｕｎｉｔに属するストレージ１０２＃２のデータを選択する。また、ストレージ制御装置１０１は、ｒｏｗ＃３に関して、小さ目の格子模様の網掛けを付与したＦＲ−Ｕｎｉｔに属するストレージ１０２＃４のデータを選択する。
【００３４】
そして、ストレージ制御装置１０１は、図１の（３）で示すように、各ＦＲ−Ｕｎｉｔに対応して選択したデータを、ストレージ１０２＃９上であって、該当のデータが配置されたｒｏｗと同一のｒｏｗに移行する。
【００３５】
これにより、ストレージ制御装置１０１は、既存データを入れ替えずに、データを分散するため、ディスクプール構成変更時のデータ移動を極小化することができる。また、本実施の形態における冗長セットのＲＡＩＤレベルは、特に制限はない。また、図１で示した方法は、コピーバック時にも適用することができる。コピーバックとは、故障したストレージまたは減設するストレージのデータを、Ｒｅｂｕｉｌｄ処理によってＦＨＳに復元またはコピーした後に、故障したストレージまたは減設するストレージの代わりとなるストレージに、ＦＨＳのデータをコピーすることである。
【００３６】
また、図１で示した方法は、Ｒｅｂｕｉｌｄ処理にも適用することができる。例えば、ストレージ制御装置１０１が、複数のストレージのうち故障したストレージを検出した、または複数のストレージから減設対象ストレージを取り除く指示を受け付けたとする。この際に、ストレージ制御装置１０１は、ＦＨＳをデータ移行対象ストレージとして各データの分散レイアウトの変更を行うと判断する。各データの分散レイアウトの変更を行うと判断した場合に、ストレージ制御装置１０１は、故障したストレージまたは減設対象ストレージの各データを、分割数のＦＲ−Ｕｎｉｔの各ＦＲ−Ｕｎｉｔに対応して選択する。ここで、故障したストレージまたは減設対象ストレージの各データは、ＦＲ−ＷｉｄｅＢａｎｄ内に配置されたデータであって、それぞれが異なるＦＲ−Ｂａｎｄに配置されたデータとなる。そして、ストレージ制御装置１０１は、各ＦＲ−Ｕｎｉｔに対応して選択したデータを、データ移行対象ストレージとなるＦＨＳ上であって、該当のデータが配置されたｒｏｗと同一のｒｏｗに移行する。ここで、データの移行方法として、故障したストレージからはデータを取得できないため、ストレージ制御装置１０１は、各ＦＲ−Ｕｎｉｔの選択したデータ以外のデータから、選択したデータを復元し、復元したデータをＦＨＳに書き込めばよい。また、減設対象ストレージからはデータを取得できるため、ストレージ制御装置１０１は、減設対象ストレージから選択したデータを取得し、取得したデータをＦＨＳに書き込めばよい。次に、ストレージ制御装置１０１をストレージシステムに適用した例を、図２を用いて説明する。
【００３７】
図２は、ストレージシステム２００の構成例を示す説明図である。ストレージシステム２００は、ＣＭ（Ｃｏｎｔｒｏｌｌｅｒ  Ｍｏｄｕｌｅ）２０１と、ホスト装置２０２と、複数のディスク２０３と、管理者端末２０４とを含む。ＣＭ２０１と管理者端末２０４とは、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワーク２１０で接続される。ＣＭ２０１は、図１で示したストレージ制御装置１０１に相当する。また、ディスク２０３は、図１で示したストレージ１０２に相当する。
【００３８】
ＣＭ２０１は、ディスクアクセスを制御するコントローラである。また、ＣＭ２０１は、図２の例で示すように、複数個のＣＭ２０１を有して、ＣＭ２０１を冗長構成としてもよい。ＣＭ２０１の内部のハードウェアについては、図３で説明する。ホスト装置２０２は、ストレージシステム２００が提供するボリュームを利用する装置である。例えば、ホスト装置２０２は、Ｗｅｂサーバや、ＤＢ（ＤａｔａＢａｓｅ）サーバである。
【００３９】
ディスク２０３は、ストレージシステム２００が提供する記憶領域を有する記憶装置である。ディスク２０３は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）や、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）を採用することができる。
【００４０】
管理者端末２０４は、ストレージシステム２００を管理する管理者Ａｄにより操作されるコンピュータである。次に、図３を用いて、ＣＭ２０１のハードウェア構成例を示す。
【００４１】
図３は、ＣＭ２０１のハードウェア構成例を示す説明図である。ＣＭ２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、フラッシュＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、キャッシュメモリ３０３と、ＣＡ（Ｃｈａｎｎｅｌ  Ａｄａｐｔｏｒ）３０４と、ＬＡＮポート３０５、ＤＩ（Ｄｉｓｋ  Ｉｎｔｅｒｆａｃｅ）３０６とを有する。
【００４２】
ＣＰＵ３０１は、ＣＭ２０１の全体の制御を司る演算処理装置である。フラッシュＲＯＭ３０２は、本実施の形態にかかるストレージ制御プログラムを記憶する不揮発性メモリである。フラッシュＲＯＭ３０２の記憶媒体としては、例えば、ＮＡＮＤフラッシュを採用することができる。キャッシュメモリ３０３は、ＣＰＵ３０１のワークエリアとして使用される揮発性メモリである。キャッシュメモリ３０３は、ＣＰＵ３０１のワークエリアとして使用される揮発性メモリである。また、キャッシュメモリ３０３は、フラッシュＲＯＭ３０２から読み出したストレージ制御プログラムを記憶する。
【００４３】
ＣＡ３０４は、ホスト装置２０２と通信する通信インターフェースである。ＬＡＮポート３０５は、管理者端末２０４と接続する通信インターフェースである。ＤＩ３０６は、ディスク２０３と通信する通信インターフェースである。
【００４４】
また、ホスト装置２０２は、ＣＰＵと、フラッシュＲＯＭと、キャッシュメモリと、通信インターフェースとを有する。また、管理者端末２０４は、ＣＰＵと、フラッシュＲＯＭと、キャッシュメモリと、通信インターフェースと、ディスプレイと、キーボードと、マウスとを有する。次に、本実施の形態におけるディスクプール構成例について、図４で示す。
【００４５】
図４は、本実施の形態におけるディスクプール構成例を示す説明図である。図４では、本実施の形態におけるディスクプール構成として、冗長セットの構成要素が、各ディスクの異なる位置にあり、かつ、冗長セット内のデータごとに位置を管理しなくてよいディスクプール構成である。ＦＲ−Ｕｎｉｔの配置パターンは、ディスクプールの作成、ディスク２０３の故障、交換、追加、削除等のディスクプール構成変更の際に生成される。ＣＭ２０１は、ディスクプール構成変更のトリガとなる事象が発生した際に、以下に示す８つの条件を満たすようなＦＲ−Ｕｎｉｔのパターンをヒューリスティックに作成・評価していくことでＦＲ−Ｕｎｉｔのパターンを生成する。
【００４６】
第１の条件：１つのＦＨＳを形成するＦＲ−Ｄｅｐｔｈは、全て同一ディスク上に配置しなければならない。
第２の条件：ＦＨＳがディスク間でなるべく一様となるようにディスクを選択する。
第３の条件：各ディスクについて、ＦＨＳがパターン間でなるべく一様となるようにディスクを選択する。
第４の条件：同一ＦＲ−Ｕｎｉｔに所属するＦＲ−Ｄｅｐｔｈを同一ディスク上に複数配置してはいけない。
第５の条件：同一ＦＲ−Ｕｎｉｔに所属するＦＲ−Ｄｅｐｔｈは全て同一ＦＲ−ＷｉｄｅＢａｎｄ内に存在する。
第６の条件：各ディスクについて、同一ＦＲ−Ｕｎｉｔに所属する他ディスクが、ディスク間でなるべく一様となるように他ディスクを選択する。
第７の条件：各ディスクについて、同一ＦＲ−Ｕｎｉｔに所属する他ディスクが、パターン間でなるべく一様となるようにディスクを選択する。
第８の条件：既存の分散レイアウトを変更する場合、既にデータが格納されているＦＲ−Ｄｅｐｔｈを別ＦＲ−Ｄｅｐｔｈに置き換えるような変更は行わない。
【００４７】
上述した第８の条件により、ＣＭ２０１は、レイアウト変更の際のデータの入れ替えを抑止し、追加ディスクまたは未使用ＦＨＳ領域だけをターゲットとしたデータの移動を行うことになる。これにより、ＣＭ２０１は、冗長性を保った状態でレイアウト変更が可能であり、作業バッファを介した余分なＲｅａｄ／Ｗｒｉｔｅを避けることができる。
【００４８】
図５は、ＣＭ２０１の機能構成例を示す説明図である。ＣＭ２０１は、制御部５００を有する。制御部５００は、Ｉ／Ｏ制御部５０１と、構成管理部５０２と、キャッシュ制御部５０３と、ＲＡＩＤ制御部５０４と、分散レイアウト管理部５０５と、ＲＡＩＤ  Ｒｅｃｏｖｅｒｙ制御部５０６とを含む。分散レイアウト管理部５０５は、ＦＲ−Ｕｎｉｔ設定部５０７と、復元先設定部５０８とを含む。制御部５００は、記憶装置に記憶されたプログラムをＣＰＵ３０１が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図３に示したフラッシュＲＯＭ３０２、キャッシュメモリ３０３などである。また、各部の処理結果は、キャッシュメモリ３０３や、ＣＰＵ３０１のレジスタ等に格納される。
【００４９】
また、ストレージ制御装置１０１は、記憶部５１０にアクセス可能である。記憶部５１０は、キャッシュメモリ３０３といった記憶装置に格納されている。そして、記憶部５１０は、構成テーブル５１１と、分散レイアウトテーブル５１２と、ＦＨＳ選択テーブル５１３と、分散管理テーブル５１４を格納するテーブル領域を有する。
【００５０】
構成テーブル５１１は、ＲＡＩＤ構成、ボリューム構成、マッピング等の装置の内部構成を示す情報を有するテーブルである。分散レイアウトテーブル５１２は、ＲＡＩＤとしての論理アドレスと、ディスク番号および各ディスク上のアドレスを変換するために用いるテーブルである。分散レイアウトテーブル５１２の記憶内容の一例は、図６で示す。ＦＨＳ選択テーブル５１３と、分散管理テーブル５１４とは、Ｒｅｂｕｉｌｄ処理とＲｅｂａｌａｎｃｅ処理との実行中の情報を記憶するテーブルである。ＦＨＳ選択テーブル５１３の記憶内容の一例は、図１１で示す。分散管理テーブル５１４の記憶内容の一例は、図１２、図１３で示す。
【００５１】
Ｉ／Ｏ制御部５０１は、ホスト装置２０２からのＩ／Ｏ要求および応答を実行する。
【００５２】
構成管理部５０２は、ＲＡＩＤ構成、ボリューム構成、マッピング等の装置の内部構成を管理し、管理する際に用いる情報を、構成テーブル５１１上に格納する。
【００５３】
キャッシュ制御部５０３は、受け付けたＩ／Ｏデータのキャッシュメモリ３０３上への配置や、ディスク２０３からのＳｔａｇｉｎｇ、ディスク２０３へのＷｒｉｔｅｂａｃｋのタイミングの管理を行う。
【００５４】
ＲＡＩＤ制御部５０４は、分散レイアウト管理部５０５と連携して各ディスク２０３へのコマンド発行や、ＲＡＩＤの負荷管理を行う。
【００５５】
分散レイアウト管理部５０５は、Ｆａｓｔ  Ｒｅｃｏｖｅｒｙ  ＲＡＩＤ内部のデータ分散レイアウトの生成・変更を行う。分散レイアウト管理部５０５が管理する情報は、分散レイアウトテーブル５１２に格納される。
【００５６】
ＲＡＩＤ  Ｒｅｃｏｖｅｒｙ制御部５０６は、ディスク故障によるＲｅｂｕｉｌｄ処理や、ディスク交換・追加によるＲｅｂａｌａｎｃｅ処理をスケジュールし進捗の管理を行う。
【００５７】
ＦＲ−Ｕｎｉｔ設定部５０７は、ディスク２０３が追加された際や、未使用ＦＨＳ領域にデータを移行すると指示された際に、ＦＲ−Ｕｎｉｔのデータ分散を行う。例えば、Ｉ／Ｏ制御部５０１が、新たなディスク２０３を追加する指示を受け付けたとする。この場合、ＦＲ−Ｕｎｉｔ設定部５０７は、ＦＲ−ＷｉｄｅＢａｎｄ内に配置されたデータであって、それぞれが異なるＦＲ−Ｂａｎｄに配置されたデータを、分割数のＦＲ−Ｕｎｉｔの各ＦＲ−Ｕｎｉｔに対応して選択する。そして、ＦＲ−Ｕｎｉｔ設定部５０７は、各ＦＲ−Ｕｎｉｔに対応して選択したデータを、新たなディスク２０３上であって、該当のデータが配置されたｒｏｗと同一のｒｏｗに移行するように決定する。ＦＲ−Ｕｎｉｔ設定部５０７は、移行先についての情報を、分散レイアウトテーブル５１２に格納する。
【００５８】
また、ＦＲ−Ｕｎｉｔ設定部５０７は、データが配置されたディスク２０３と、複数のディスク２０３に配置された各ＦＲ−Ｕｎｉｔが配置されたディスク２０３同士の組み合わせの回数とに基づいて、データを選択してもよい。
【００５９】
例えば、ＦＲ−Ｕｎｉｔ設定部５０７は、各ディスク２０３のデータが移動したと仮定して、仮定後のデータが配置されたディスク２０３と、複数のディスク２０３に配置された各ＦＲ−Ｕｎｉｔが配置されたディスク２０３同士の組み合わせの回数を求めてもよい。ＦＲ−Ｕｎｉｔ設定部５０７は、各ディスク２０３の各データに対して、仮定後のディスク２０３同士の組み合わせの回数を求め、仮定後のディスク２０３同士の組み合わせの回数が最も少なくなった際における移動したと仮定したデータを選択する。より具体的な方法については、図１８のステップＳ１８０７の処理で説明する。
【００６０】
また、ディスク２０３同士の組み合わせの回数が示す事柄について、下記例を用いて説明する。例えば、ディスク２０３＃０〜＃３があり、２つのデータを含むＦＲ−Ｕｎｉｔが３つあり、ＦＨＳが１つあるとする。３つのＦＲ−Ｕｎｉｔを、それぞれ、ＦＲ−Ｕｎｉｔ＃Ａ、＃Ｂ、＃Ｃとする。２つのデータを含むＦＲ−Ｕｎｉｔであるため、１つのＦＲ−ＷｉｄｅＢａｎｄには、２つのｒｏｗが含まれることになる。そして、ディスク２０３＃０、＃１、＃２、＃３の順に、以下のようにＦＲ−ＵｎｉｔとＦＨＳとが配置されているとする。以下の例では、ＦＲ−Ｕｎｉｔ＃Ａ、ＦＲ−Ｕｎｉｔ＃Ｂ、ＦＲ−Ｕｎｉｔ＃Ｃを、単に、「＃Ａ」、「＃Ｂ」、「＃Ｃ」と記載する。また、ＦＨＳを、単に「ＨＳ」と記載する。
【００６１】
ｒｏｗ＃０：＃Ａ、＃Ｂ、＃Ｃ、ＨＳ
ｒｏｗ＃１：＃Ｂ、＃Ｃ、＃Ａ、ＨＳ
ｒｏｗ＃２：＃Ｃ、＃Ａ、ＨＳ、＃Ｂ
ｒｏｗ＃３：＃Ｂ、＃Ｃ、ＨＳ、＃Ａ
【００６２】
この場合、ＦＲ−Ｕｎｉｔ＃Ａが配置されたディスク２０３同士の組み合わせは、ディスク２０３＃０、＃２と、ディスク２０３＃１、＃３とである。また、ＦＲ−Ｕｎｉｔ＃Ｂが配置されたディスク２０３同士の組み合わせは、ディスク２０３＃０、＃１と、ディスク２０３＃１、＃３とである。また、ＦＲ−Ｕｎｉｔ＃Ｃが配置されたディスク２０３同士の組み合わせは、ディスク２０３＃１、＃２と、ディスク２０３＃０、＃１とである。従って、ディスク２０３同士の組み合わせの回数について、ディスク２０３＃０、＃１の組み合わせが２回となり、ディスク２０３＃２、＃３の組み合わせが１回となり、他の組み合わせが１回となる。ここで、組み合わせが２回となったディスク２０３＃０、＃１のいずれかが故障した場合、ディスク２０３＃２、＃３が故障した場合に比べて、他のディスク２０３と比較して読み出しが集中するディスク２０３が発生することになる。
【００６３】
例えば、ディスク２０３＃０が故障した場合、ディスク２０３＃０のｒｏｗ＃０〜＃３を復元するため、ディスク２０３＃２のｒｏｗ＃１、ディスク２０３＃１のｒｏｗ＃０、ディスク２０３＃１のｒｏｗ＃３、ディスク２０３＃３のｒｏｗ＃２が読み出される。従って、ディスク２０３＃０が故障した場合、ディスク２０３＃１に対して２回の読み出し要求が発生する。これに対し、ディスク２０３＃２が故障した場合、ディスク２０３＃２のｒｏｗ＃０、＃１を復元するため、ディスク２０３＃１のｒｏｗ＃１、ディスク２０３＃０のｒｏｗ＃０が読み出される。このように、ディスク２０３＃２が故障した場合、ディスク２０３に対して１回の読み出し要求しか発生せず、２回の読み出し要求が発生することはない。従って、ディスク２０３同士の組み合わせの回数は、Ｒｅｂｕｉｌｄ処理時において、一方のディスク２０３が故障した際の他方のディスク２０３に対する読み出し回数を示すともいえる。
【００６４】
上述した例では、ＦＲ−Ｕｎｉｔ設定部５０７は、組み合わせ回数が最も大きいディスク２０３＃０、＃１のうち、ディスク２０３＃０、＃１の組み合わせとなったＦＲ−Ｕｎｉｔのデータを選択すればよい。例えば、ＦＲ−Ｕｎｉｔ設定部５０７は、ディスク２０３＃０のｒｏｗ＃２に配置されたＦＲ−Ｕｎｉｔ＃Ｃのデータを選択する。ディスク２０３＃０のｒｏｗ＃２のデータが移行されることにより、上述した例では、ディスク２０３＃１への読み出しが１回減り、読み出しが集中するディスク２０３がなくなるため、Ｒｅｂｕｉｌｄ処理にかかる時間を短縮することができる。
【００６５】
復元先設定部５０８は、Ｒｅｂｕｉｌｄ処理を行う際に、データの復元先を設定する。具体的には、構成管理部５０２が、複数のディスク２０３のうち故障したディスク２０３を検出したこと、または、Ｉ／Ｏ制御部５０１が、複数のディスク２０３から減設対象ディスクを取り除く指示を受け付けたとする。この場合、復元先設定部５０８は、故障したディスク２０３または減設対象ディスク２０３が記憶するデータを、該当のデータを含むＦＲ−Ｕｎｉｔに基づいて、ＦＨＳ上であって、該当のデータと同一のｒｏｗのＦＲ−ｄｅｐｔｈに復元するよう設定する。
【００６６】
また、ＦＨＳが２以上ある場合もある。この場合、復元先設定部５０８は、２以上のＦＨＳに対応して、２以上のＦＨＳの各ＦＨＳにデータを復元した後の状態における複数のディスク２０３に配置された各ＦＲ−Ｕｎｉｔが配置されたディスク２０３同士の組み合わせの回数を計数してもよい。そして、復元先設定部５０８は、２以上のＦＨＳのそれぞれに対応して計数した組み合わせの回数に基づいて、２以上のＦＨＳから復元先のＦＨＳを決定する。ディスク２０３同士の組み合わせの回数については、ＦＲ−Ｕｎｉｔ設定部５０７と同様の方法である。そして、例えば、復元先設定部５０８は、２以上のＦＨＳの各ＦＨＳに対応して計数した組み合わせの回数から、値が小さい方が多いＦＨＳを、復元先のＦＨＳとして決定する。より具体的な方法については、図１４のステップＳ１４０８の処理で説明する。
【００６７】
図６は、分散レイアウトテーブル５１２の記憶内容の一例を示す説明図である。図８に示す分散レイアウトテーブル５１２は、レコード６０１−１〜１１を有する。
【００６８】
分散レイアウトテーブル５１２は、はＦａｓｔ  Ｒｅｃｏｖｅｒｙ  ＲＡＩＤ内のディスク番号と、図４で示したルールで生成された分散パターン番号の二次元配列となる。図６で示す分散レイアウトテーブル５１２は、ディスク２０３が９本であり、冗長メンバが４であり、ＦＨＳが２本分である場合の例を示す。分散レイアウトテーブル５１２の各メンバは、ＦＲ−ＷｉｄｅＢａｎｄ内でのＦＲ−Ｕｎｉｔ番号が格納される。
【００６９】
ＲＡＩＤとしての論理アドレスは、ディスクのアドレス方向に割り付けていることとする。以下、ＲＡＩＤとしての論理アドレスを、「ＲＬＢＡ（ＲＡＩＤ  Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）」と呼称する。具体的には、ＲＬＢＡは、以下のような順序となる。
【００７０】
ＦＲ−ＷｉｄｅＢａｎｄ＃０  ＦＲ−Ｕｎｉｔ＃０→ＦＲ−ＷｉｄｅＢａｎｄ＃１  ＦＲ−Ｕｎｉｔ＃０→…→ＦＲ−ＷｉｄｅＢａｎｄ＃Ｎ  ＦＲ−Ｕｎｉｔ＃０→ＦＲ−ＷｉｄｅＢａｎｄ＃０  ＦＲ−Ｕｎｉｔ＃１→ＦＲ−ＷｉｄｅＢａｎｄ＃１  ＦＲ−Ｕｎｉｔ＃１→…→ＦＲ−ＷｉｄｅＢａｎｄ＃Ｎ  ＦＲ−Ｕｎｉｔ＃１→…→ＦＲ−ＷｉｄｅＢａｎｄ＃０  ＦＲ−Ｕｎｉｔ＃Ｍ→ＦＲ−ＷｉｄｅＢａｎｄ＃１  ＦＲ−Ｕｎｉｔ＃Ｍ→…→ＦＲ−ＷｉｄｅＢａｎｄ＃Ｎ  ＦＲ−Ｕｎｉｔ＃Ｍ
【００７１】
このようなアドレッシングにすることにより、ＣＭ２０１は、Ｆａｓｔ  Ｒｅｃｏｖｅｒｙ  ＲＡＩＤへディスク追加を行った場合に、使用中のＲＬＢＡを変更することなく領域を末尾に追加することが可能となる。ＲＬＢＡをディスク上の物理位置に変換するには、ＣＭ２０１は、以下に示す処理を実施する。
【００７２】
まず、ＣＭ２０１は、ＲＬＢＡをＦＲ−Ｕｎｉｔサイズで割った商と、１ディスク上に存在するＦＲ−ＷｉｄｅＢａｎｄ数から、該当するＦＲ−ＷｉｄｅＢａｎｄ番号とＦＲ−ＷｉｄｅＢａｎｄ内のＦＲ−Ｕｎｉｔ番号を特定する。次に、ＣＭ２０１は、ＲＬＢＡをＦＲ−Ｕｎｉｔサイズで割った剰余をＦＲ−Ｄｅｐｔｈサイズで割った商から、ＦＲ−Ｕｎｉｔ内のＦＲ−Ｄｅｐｔｈ番号を特定する。そして、ＣＭ２０１は、求めたＦＲ−ＷｉｄｅＢａｎｄ番号、ＦＲ−Ｕｎｉｔ番号、ＦＲ−Ｄｅｐｔｈ番号に相当する箇所を分散レイアウトテーブル５１２から参照し、対応するディスク番号およびディスク上のアドレスを特定する。なお、ＣＭ２０１は、分散レイアウトテーブル５１２を、ディスク２０３を通して一意となるように記憶してもよいし、ディスク２０３をある程度のサイズに分割して周期的に記憶してもよい。
【００７３】
なお、図６より後の図で、分散レイアウトテーブル５１２を表示する際には、表示の都合上から、「ディスク番号」の記載を省略することがある。
【００７４】
図７は、Ｒｅｂｕｉｌｄ処理の動作例を示す説明図である。ディスク故障が発生した場合、ＣＭ２０１は、故障ディスク上のデータを同一ＦＲ−ＷｉｄｅＢａｎｄ上のＦＨＳへ復元する。まず、ＣＭ２０１は、構成変更後の分散レイアウトテーブル５１２を作成する。各ＦＲ−ＷｉｄｅＢａｎｄ上に複数のＦＨＳが存在する場合、上述の分散パターンの生成要件をなるべく満たすようなＦＨＳを選択する。
【００７５】
Ｒｅｂｕｉｌｄのスケジュールは、ストレージ装置のコントローラのＲＡＩＤ  Ｒｅｃｏｖｅｒｙ制御部５０６によって行われる。ＲＡＩＤ  Ｒｅｃｏｖｅｒｙ制御部５０６は、対象ＲＡＩＤのＦＲ−ＢａｎｄごとにＲｅｂｕｉｌｄの実施か未実施かを示す管理情報を２［ｂｉｔ］用意し、ｂｉｔｍａｐ管理する。ここで、管理情報が２ｂｉｔのデータサイズを有する理由は、他の構成変更中のディスク故障など３状態以上が混在する場合でも処理を継続させるためである。
【００７６】
図７では、Ｒｅｂｕｉｌｄ処理の動作例を示す。図７で示すディスク構成は、２本分のＦＨＳ領域を内包する９ディスク構成のＦａｓｔ  Ｒｅｃｏｖｅｒｙ  ＲＡＩＤであり、４つのＦＲ−Ｂａｎｄで１つのＦＲ−ＷｉｄｅＢａｎｄを形成する例である。ディスク故障が発生した場合、ＲＡＩＤ  Ｒｅｃｏｖｅｒｙ制御部５０６は、故障ディスク上のデータを同一ＦＲ−ＷｉｄｅＢａｎｄ上のＦＨＳ領域に復元する。ＦＲ−Ｂａｎｄ間でディスク読み出しが分散され、ＦＲ−ＷｉｄｅＢａｎｄ間でディスク書き込みが分散されることにより、ＣＭ２０１は、ディスク単体のスループット以上のリカバリ速度を実現する。具体的には、ＦＲ−Ｕｎｉｔの配置パターンの第６の条件および第７の条件により、ＦＲ−Ｂａｎｄ間でディスク読み出しが分散される。また、ＦＲ−Ｕｎｉｔの配置パターンの第２の条件および第３の条件により、ＦＲ−ＷｉｄｅＢａｎｄ間でディスク書き込みが分散される。
【００７７】
図７を用いて、Ｒｅｂｕｉｌｄ処理の動作例をより具体的に説明する。図７の上部で示すディスク構成が、故障が発生する前のディスクプール構成である。９ディスク構成であるから、図７で示すディスクプール構成は、ディスク２０３＃０〜＃８で形成される。そして、ディスク２０３＃２が故障したとする。図７の下部で示すディスク構成が、ディスク２０３＃２が故障し、Ｒｅｂｕｉｌｄ処理が完了した後のディスクプール構成である。ＲＡＩＤ  Ｒｅｃｏｖｅｒｙ制御部５０６は、塗りつぶした矢印が示すように、ディスク２０３＃８のｒｏｗ＃０〜＃３、ディスク２０３＃１のｒｏｗ＃４〜＃７、ディスク２０３＃０のｒｏｗ＃８〜＃１１のＦＨＳ領域に、ディスク２０３＃２のデータを復元する。
【００７８】
また、図７の下部で示す各データのうち、「Ｒ」が記載されたデータは、Ｒｅｂｕｉｌｄ処理中に読み出しが発生するデータであり、「Ｗ」が記載されたデータは、Ｒｅｂｕｉｌｄ処理中に書き込みが発生するデータである。図７の下部で示す「Ｒ」が記載されたデータの分布が示すように、ＦＲ−Ｂａｎｄ間でディスク読み出しが分散されていることがわかる。また、図７の下部で示す「Ｗ」が記載されたデータの分布が示すように、ＦＲ−ＷｉｄｅＢａｎｄ間でディスク書き込みが分散されていることがわかる。
【００７９】
図８は、Ｒｅｂａｌａｎｃｅ処理の動作例を示す説明図である。本実施の形態では、故障ディスクの交換または追加を実施した場合に、同一ＦＲ−Ｂａｎｄ上でデータを移動することにより、分散のＲｅｂａｌａｎｃｅを行う。まず、分散レイアウト管理部５０５は、上述の分散パターンの生成要件に従って、ディスクプール構成変更後の分散レイアウトテーブル５１２を作成する。この際に、追加されたディスク上の領域または未使用のＦＨＳ領域といった、データが格納されていないＦＲ−Ｄｅｐｔｈだけをデータの移動先として選択することにより、冗長性を保った状態での再配置を実行することができる。ここで、ディスクグループに所属していた故障ディスクを交換した場合も、故障前と同じ分散パターンになるとは限らない。
【００８０】
図８では、ディスク追加して、ユーザ容量を増やすときのＲｅｂａｌａｎｃｅ処理の動作例を示す。図８で示すディスクプール構成は、２本分のＦＨＳ領域を内包する９ディスク構成のディスクグループであり、４つのＦＲ−Ｂａｎｄで１つのＦＲ−ＷｉｄｅＢａｎｄを形成する例である。ディスク追加を実行した場合、各ＦＲ−Ｂａｎｄ上のデータは、同一ＦＲ−Ｂａｎｄ内の追加ディスクまたは未使用ＦＨＳ領域を移動先として、必要に応じて再分散される。データ移動が完了した時点で、追加されたＦＲ−Ｕｎｉｔの容量が使用可能となる。
【００８１】
図８を用いて、Ｒｅｂａｌａｎｃｅ処理をより具体的に示す。９ディスク構成であるから、図８で示すディスクプール構成は、ディスク２０３＃０〜＃８で形成される。そして、図８の上部で示すように、図８で示すディスクプール構成に、ディスク２０３＃９を追加したとする。ＲＡＩＤ  Ｒｅｃｏｖｅｒｙ制御部５０６は、ディスクプール構成変更後の分散レイアウトテーブル５１２に従って、Ｒｅｂａｌａｎｃｅ処理を実行する。図８の上部の矢印で示すように、ＲＡＩＤ  Ｒｅｃｏｖｅｒｙ制御部５０６は、追加されたディスク上の領域または未使用のＦＨＳ領域といった、データが格納されていないＦＲ−Ｄｅｐｔｈだけをデータの移動先とする。
【００８２】
図８の下部では、Ｒｅｂａｌａｎｃｅ処理終了後、大き目の円による水玉模様の網掛けが付与された冗長セットとして、新規のＦＲ−Ｕｎｉｔ領域が設定された例を示す。
【００８３】
次に、ＣＭ２０１が行うディスクプール作成処理について、図９と図１０とを用いて説明する。
【００８４】
図９は、ディスクプール作成処理手順の一例を示すフローチャート（その１）である。また、図１０は、ディスクプール作成処理手順の一例を示すフローチャート（その２）である。ＣＭ２０１は、管理者端末２０４から、ディスクプール作成のオペレーションを受け付ける（ステップＳ９０１）。このとき、管理者端末２０４は、管理ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）による入力項目を、管理者端末２０４のディスプレイに表示する。入力項目は、例えば、ディスクプールに使用するディスクの本数と、スペア領域として使用する容量分のディスク本数と、ＦＲ−Ｕｎｉｔに含まれるＦＲ−Ｄｅｐｔｈ数と、ＦＲ−ＵｎｉｔのＲＡＩＤ  Ｌｅｖｅｌとを入力する項目である。また、管理者端末２０４は、全ての入力項目を管理者Ａｄが入力するようにしてもよいし、入力項目に規定値を予め設定しておいてもよい。
【００８５】
次に、分散レイアウト管理部５０５は、分散レイアウト作成に用いる作業バッファをキャッシュメモリ３０３上に獲得し、ＦＨＳ選択テーブル５１３および分散管理テーブル５１４を作成し、初期化する（ステップＳ９０２）。以降の処理では、ディスクプール作成処理の終了まで、分散レイアウト管理部５０５がフローの制御を行う。
【００８６】
そして、分散レイアウト管理部５０５は、レイアウト作成対象を先頭のＦＲ−Ｂａｎｄに設定する（ステップＳ９０３）。次に、分散レイアウト管理部５０５は、今回のＦＲ−ＢａｎｄがＦＲ−ＷｉｄｅＢａｎｄ内の先頭か否かを判断する（ステップＳ９０４）。今回のＦＲ−ＢａｎｄがＦＲ−ＷｉｄｅＢａｎｄ内の先頭である場合（ステップＳ９０４：Ｙｅｓ）、分散レイアウト管理部５０５は、今回のＦＲ−ＷｉｄｅＢａｎｄでのＦＨＳ候補ディスクを、未使用ディスクの中から仮設定する（ステップＳ９０５）。次に、分散レイアウト管理部５０５は、比較対象を次の選択可能なディスクに設定し、ＦＨＳ選択テーブル５１３を確認する（ステップＳ９０６）。そして、分散レイアウト管理部５０５は、ＦＨＳ候補ディスクよりも比較対象の方がＦＨＳに相応しいディスクか否かを判断する（ステップＳ９０７）。ここで、分散レイアウト管理部５０５は、ＦＨＳに相応しいディスクか否かを、以下の３つの条件の順の優先度で判断する。
【００８７】
第１の条件：分散レイアウトを通してＦＨＳとして設定された回数が少ない。
第２の条件：複数のＦＨＳが存在する場合に、同一ＦＲ−ＷｉｄｅＢａｎｄ内の他のＦＨＳとの組み合わせ回数が少ない。
第３の条件：以前のＦＲ−ＷｉｄｅＢａｎｄで最後にＦＨＳに設定されてから今回のＦＲ−ＷｉｄｅＢａｎｄまでの位置が遠い。
【００８８】
例えば、分散レイアウト管理部５０５は、第１の条件において、ＦＨＳ候補ディスクと比較対象とのＦＨＳの設定回数が同一であれば、第２の条件を用いて判断する。上述した３つの条件について、分散レイアウト管理部５０５は、ＦＨＳ選択テーブル５１３を用いて判断する。ＦＨＳ選択テーブル５１３の記憶内容の一例と、具体的な判断内容については、図１１で示す。
【００８９】
比較対象の方がＦＨＳに相応しいと判断した場合（ステップＳ９０７：Ｙｅｓ）、分散レイアウト管理部５０５は、比較対象をＦＨＳ候補ディスクに設定する（ステップＳ９０８）。ステップＳ９０８の処理終了後、または、ＦＨＳ候補ディスクの方がＦＨＳに相応しいと判断した場合（ステップＳ９０７：Ｎｏ）、分散レイアウト管理部５０５は、今回のＦＨＳについて、全ディスクの比較が完了したか否かを判断する（ステップＳ９０９）。まだ比較していないディスクがある場合（ステップＳ９０９：Ｎｏ）、分散レイアウト管理部５０５は、ステップＳ９０６の処理に移行する。
【００９０】
一方、全ディスクの比較が完了した場合（ステップＳ９０９：Ｙｅｓ）、分散レイアウト管理部５０５は、ＦＨＳ候補ディスクを今回のＦＨＳディスクとして設定し、ＦＨＳ選択テーブル５１３と分散レイアウトテーブル５１２とを更新する（ステップＳ９１０）。ＦＨＳ選択テーブル５１３の具体的な更新内容については、図１１で示す。また、分散レイアウトテーブル５１２について、分散レイアウト管理部５０５は、ＨＳとなったディスクのフィールドを更新する。
【００９１】
次に、分散レイアウト管理部５０５は、所定数のＦＨＳを設定済みか否かを判断する（ステップＳ９１１）。ここで、所定数のＦＨＳとは、ディスクプール内に確保しようとするＦＨＳ数であり、ステップＳ９０１の処理で設定した、スペア領域として使用する容量分のディスク本数である。所定数のＦＨＳを設定済みでない場合（ステップＳ９１１：Ｎｏ）、分散レイアウト管理部５０５は、ステップＳ９０５の処理に移行する。一方、所定数のＦＨＳを設定済みである場合（ステップＳ９１１：Ｙｅｓ）、今回のＦＲ−Ｂａｎｄについてデータディスクの分散を求めるため、分散レイアウト管理部５０５は、確認対象をＦＲ−Ｂａｎｄ内の先頭ＦＲ−Ｕｎｉｔに設定する（ステップＳ９１２）。また、今回のＦＲ−ＢａｎｄがＦＲ−ＷｉｄｅＢａｎｄ内の先頭でない場合（ステップＳ９０４：Ｎｏ）も、分散レイアウト管理部５０５は、ステップＳ９１２の処理に移行する。
【００９２】
次に、分散レイアウト管理部５０５は、ＦＲ−Ｕｎｉｔの候補ディスクを仮設定する（ステップＳ１００１）。ここで、ＦＲ−Ｕｎｉｔの候補ディスクとして設定可能なディスクは、同一ＦＲ−Ｂａｎｄでまだ使用されていない、かつ同一ＦＲ−ＷｉｄｅＢａｎｄ内で同一ＦＲ−Ｕｎｉｔとして選択されていないという条件を満たすディスクである。前述した条件を満たすディスクがないこともある。
【００９３】
そして、分散レイアウト管理部５０５は、仮設定が成功、すなわち、前述した条件を満たすディスクを設定できたか否かを判断する（ステップＳ１００２）。前述した条件を満たすディスクを設定できていない場合（ステップＳ１００２：Ｎｏ）、分散レイアウト管理部５０５は、同一ＦＲ−Ｂａｎｄ内で設定済みのＦＲ−Ｕｎｉｔに使用するディスクのうち、今回のＦＲ−Ｕｎｉｔとして設定可能なものを検索し、入れ替える（ステップＳ１００３）。そして、分散レイアウト管理部５０５は、入れ替えに応じて分散管理テーブルを再更新する（ステップＳ１００４）。
【００９４】
前述した条件を満たすディスクを設定できた場合（ステップＳ１００２：Ｙｅｓ）、または、ステップＳ１００４の処理終了後、分散レイアウト管理部５０５は、比較対象として、次の選択可能なディスクを設定し、分散管理テーブル５１４を確認する（ステップＳ１００５）。分散レイアウト管理部５０５は、候補ディスクよりも比較対象の方がＦＲ−Ｕｎｉｔに相応しいか否かを判断する（ステップＳ１００６）。ここで、分散レイアウト管理部５０５は、ＦＲ−Ｕｎｉｔに相応しいか否かを、以下の順の２つの条件の優先度で判断する。
【００９５】
第１の条件：分散レイアウトを通して、同一ＦＲ−ＷｉｄｅＢａｎｄ内で同じＦＲ−Ｕｎｉｔとして特定の他ディスクとの組み合わせ回数が少ない。
第２の条件：以前のＦＲ−ＷｉｄｅＢａｎｄで最後に設定されてから今回のＦＲ−ＷｉｄｅＢａｎｄまでの位置が遠い。
【００９６】
上述した２つの条件について、分散レイアウト管理部５０５は、分散管理テーブル５１４を用いて判断する。分散管理テーブル５１４の記憶内容の一例と、具体的な判断例については、図１２、図１３で示す。
【００９７】
比較対象の方がＦＲ−Ｕｎｉｔに相応しい場合（ステップＳ１００６：Ｙｅｓ）、分散レイアウト管理部５０５は、今回の比較対象をＦＲ−Ｕｎｉｔの候補ディスクに変更する（ステップＳ１００７）。ステップＳ１００７の処理終了後、または、候補ディスクの方がＦＲ−Ｕｎｉｔに相応しい場合（ステップＳ１００６：Ｎｏ）、分散レイアウト管理部５０５は、今回のＦＲ−Ｕｎｉｔについて、全てのディスクとの比較が完了したか否かを判断する（ステップＳ１００８）。まだ比較が完了していないディスクがある場合（ステップＳ１００８：Ｎｏ）、分散レイアウト管理部５０５は、ステップＳ１００５の処理に移行する。
【００９８】
一方、全てのディスクとの比較が完了した場合（ステップＳ１００８：Ｙｅｓ）、分散レイアウト管理部５０５は、候補ディスクを今回のＦＲ−Ｕｎｉｔについて使用するディスクに設定し、設定したディスクに応じて分散管理テーブル５１４を更新する（ステップＳ１００９）。次に、分散レイアウト管理部５０５は、今回のＦＲ−Ｂａｎｄについて、所定数のＦＲ−Ｕｎｉｔのディスクを設定済みか否かを判断する（ステップＳ１０１０）。ここで、所定数は、ステップＳ９０１の処理で設定した、使用するディスク本数から、スペア領域として使用する容量分のディスク本数を減じた値である。
【００９９】
所定数のＦＲ−Ｕｎｉｔのディスクを設定済みではない場合（ステップＳ１０１０：Ｎｏ）、分散レイアウト管理部５０５は、設定対象を次のＦＲ−Ｕｎｉｔに変更する（ステップＳ１０１１）。そして、分散レイアウト管理部５０５は、ステップＳ１００１の処理に移行する。
【０１００】
一方、所定数のＦＲ−Ｕｎｉｔのディスクを設定済みである場合（ステップＳ１０１０：Ｙｅｓ）、分散レイアウト管理部５０５は、本ＦＲ−ＢａｎｄのＦＨＳ以外の設定情報を分散レイアウトテーブル５１２に反映し、設定対象を次のＦＲ−Ｂａｎｄへ変更する（ステップＳ１０１２）。そして、分散レイアウト管理部５０５は、所定数として、分散レイアウトを決定するために必要なＦＲ−Ｂａｎｄを設定済みか否かを判断する（ステップＳ１０１３）。分散レイアウトを決定するために必要なＦＲ−Ｂａｎｄを設定済みでない場合（ステップＳ１０１３：Ｎｏ）、分散レイアウト管理部５０５は、ステップＳ９０４の処理に移行する。
【０１０１】
一方、分散レイアウトを決定するために必要なＦＲ−Ｂａｎｄを設定済みである場合（ステップＳ１０１３：Ｙｅｓ）、分散レイアウト管理部５０５は、作業バッファを解放する（ステップＳ１０１４）。そして、分散レイアウト管理部５０５は、ディスクプール作成処理を終了する。
【０１０２】
図１１は、ＦＨＳ選択テーブル５１３の記憶内容の一例を示す説明図である。ＦＨＳ選択テーブル５１３は、ＦＨＳ設定回数を管理するテーブル１１０１と、ＦＨＳ設定組み合わせ回数を管理するテーブル１１０２と、最後にＦＨＳに設定されてからの位置を管理するテーブル１１０３とを有する。
【０１０３】
テーブル１１０１は、各ディスクについて、ＦＨＳに設定された回数を記憶する。例えば、図１１に示すテーブル１１０１は、ディスク２０３＃０〜＃３が１回ずつＦＨＳに設定された例を示す。そして、分散レイアウト管理部５０５は、ステップＳ９０７の処理の第１の条件として、テーブル１１０１を参照して、ＦＨＳ候補ディスクと比較対象との設定回数を比較する。
【０１０４】
テーブル１１０２は、複数のＦＨＳが存在する際に、同一ＦＲ−ＷｉｄｅＢａｎｄ内の他のＦＨＳとの組み合わせ回数を記憶する。例えば、図１１に示すテーブル１１０２は、ディスク２０３＃０、＃１の組み合わせと、ディスク２０３＃２、＃３の組み合わせとがＦＨＳとして１回ずつ設定されたことを示す。そして、分散レイアウト管理部５０５は、ステップＳ９０７の処理の第２の条件として、テーブル１１０２を参照して、ＦＨＳ候補ディスクの行と、比較対象の行とを取得する。２つの行を取得後、分散レイアウト管理部５０５は、取得した２つの行の縦方向の数値同士を比較する。
【０１０５】
テーブル１１０３は、以前のＦＲ−ＷｉｄｅＢａｎｄで最後に設定されてから今回のＦＲ−ＷｉｄｅＢａｎｄまでの位置として、以前のＦＲ−ＷｉｄｅＢａｎｄで最後にＦＨＳに設定されてからＦＨＳに設定されていない数を記憶する。例えば、図１１に示すテーブル１１０３は、以前のＦＲ−ＷｉｄｅＢａｎｄで最後にＦＨＳに設定されてからＦＨＳに設定されていない数について、ディスク２０３＃０、＃１が０、ディスク２０３＃２、＃３が１、ディスク２０３＃４、＃５が２であることを示す。そして、分散レイアウト管理部５０５は、ステップＳ９０７の処理の第３の条件として、テーブル１１０３を参照して、ＦＨＳ候補ディスクと比較対象との数を比較する。
【０１０６】
また、テーブル１１０１〜１１０３の更新タイミングとして、分散レイアウト管理部５０５は、テーブル１１０１、１１０２を、ステップＳ９１０の処理で更新する。また、分散レイアウト管理部５０５は、テーブル１１０３を、ステップＳ９１１の処理：Ｙｅｓとなった後に更新する。具体的には、分散レイアウト管理部５０５は、テーブル１１０３について、ＦＨＳに選択されたディスク２０３の数を０クリアし、ＦＨＳに選択されなかったディスク２０３の数を１インクリメントする。
【０１０７】
図１２は、ディスクプール処理における分散レイアウトテーブル５１２と分散管理テーブル５１４との更新例を示す説明図（その１）である。また、図１３は、ディスクプール処理における分散レイアウトテーブル５１２と分散管理テーブル５１４との更新例を示す説明図（その２）である。
【０１０８】
図１２と図１３とでは、ディスク２０３の本数が６であり、冗長メンバ数が３であり、ＦＨＳの数が１であるとする。また、図１２と図１３とで示す記憶部５１０では、分散レイアウトテーブル５１２と、分散管理テーブル５１４とを示す。分散管理テーブル５１４は、ディスク同士の組み合わせを管理するテーブル１２０１と、ディスク同士の組み合わせの登場頻度を管理するテーブル１２０２とを有する。テーブル１２０１、１２０２の行は、基準となるディスク２０３を示し、列は、対象となるディスク２０３を示す。また、図１２と図１３とで、網掛けを付与した箇所は、更新を行ったことを示す。また、図１２テーブル１２０２内の「ＦＦ」は、０ｘＦＦであり、無効値であることを示す。
【０１０９】
また、ＦＲ−Ｂａｎｄ＃０について、ＦＲ−ＷｉｄｅＢａｎｄ内の先頭に位置するため、分散レイアウト管理部５０５は、ＦＲ−ＷｉｄｅＢａｎｄ内でのディスク同士の組み合わせを考慮しない。
【０１１０】
図１２の上部で示す記憶部５１０は、ＦＲ−Ｂａｎｄ＃１の分散レイアウト作成時における分散レイアウトテーブル５１２と、分散管理テーブル５１４との更新状況を示す。分散レイアウト管理部５０５は、ステップＳ１００９の処理における分散管理テーブル５１４の更新として、テーブル１２０１を更新する。そして、具体的なテーブル１２０１の更新例として、分散レイアウトテーブル５１２の分散パターン番号＃０、＃１の行に着目すると、ディスク２０３＃１には、ＦＲ−Ｕｎｉｔ＃０、＃４が配置される。そして、ＦＲ−Ｕｎｉｔ＃０は、ディスク２０３＃２にも配置され、また、ＦＲ−Ｕｎｉｔ＃４は、ディスク２０３＃５にも配置される。従って、分散レイアウト管理部５０５は、ステップＳ１００９の処理における分散管理テーブル５１４の更新として、テーブル１２０１のディスク２０３＃１の行について、ディスク２０３＃２、＃５を１インクリメントする。
【０１１１】
図１２の下部で示す記憶部５１０は、ＦＲ−Ｂａｎｄ＃２の分散レイアウト作成時における分散レイアウトテーブル５１２と、分散管理テーブル５１４との更新状況を示す。テーブル１２０２について、分散レイアウト管理部５０５は、ステップＳ１０１２の処理終了時、すなわち、ＦＲ−ＷｉｄｅＢａｎｄ処理終了時に、テーブル１２０２を更新する。そして、具体的なテーブル１２０２の更新方法として、分散レイアウト管理部５０５は、テーブル１２０１の各ディスク２０３の組み合わせで１以上インクリメントしたフィールドに対応するテーブル１２０２のフィールドを１インクリメントする。図１２の下部で示す記憶部５１０では、テーブル１２０１のディスク＃０に関係しない全てのフィールドが１以上インクリメントされているため、分散レイアウト管理部５０５は、テーブル１２０２のディスク＃０に関係しない全てのフィールドを１インクリメントする。
【０１１２】
図１３の上部で示す記憶部５１０は、ＦＲ−Ｂａｎｄ＃４の分散レイアウト作成時における分散レイアウトテーブル５１２と、分散管理テーブル５１４との更新状況を示す。具体的な分散管理テーブル５１４の更新方法については、図１２の上部と同一であるため、説明を省略する。
【０１１３】
図１３の下部で示す記憶部５１０は、ＦＲ−Ｂａｎｄ＃５の分散レイアウト作成時における分散レイアウトテーブル５１２と、分散管理テーブル５１４との更新状況を示す。具体的な分散管理テーブル５１４の更新方法については、図１２の下部と同一であるため、説明を省略する。
【０１１４】
そして、分散レイアウト管理部５０５は、ステップＳ１００６の処理について、第１の条件では、テーブル１２０１の値が小さいディスクを優先し、第２の条件では、値が大きいディスクを優先する。
【０１１５】
図１４は、Ｒｅｂｕｉｌｄ処理手順の一例を示すフローチャート（その１）である。また、図１５は、Ｒｅｂｕｉｌｄ処理手順の一例を示すフローチャート（その２）である。構成管理部５０２が、ディスク故障発生を検知する、または、ＣＭ２０１は、管理者端末２０４から、ディスク減設のオペレーションを受け付ける（ステップＳ１４０１）。
【０１１６】
次に、分散レイアウト管理部５０５は、分散レイアウト作成に用いる作業バッファをキャッシュメモリ３０３上に獲得し、分散管理テーブル５１４を作成し初期化する（ステップＳ１４０２）。ここで、分散レイアウト管理部５０５は、分散管理テーブル５１４を３面分作成する。１つ目の分散管理テーブル５１４を、第１の比較用分散管理テーブル５１４と呼称し、２つ目の分散管理テーブル５１４を、第２の比較用分散管理テーブル５１４と呼称し、３つ目の分散管理テーブル５１４を、バックアップ用分散管理テーブル５１４と呼称する。また、Ｒｅｂｕｉｌｄ処理では、ＦＨＳの設定を行わないため、ＦＨＳ選択テーブル５１３を作成しない。以降、Ｒｅｂｕｉｌｄ開始前まで分散レイアウト管理部５０５がフローの制御を行う。
【０１１７】
そして、分散レイアウト管理部５０５は、ディスクプール内にＦＨＳが複数存在するか否かを判断する（ステップＳ１４０３）。ディスクプール内にＦＨＳが複数存在する場合（ステップＳ１４０３：Ｙｅｓ）、分散レイアウト管理部５０５は、分散レイアウト変更対象を先頭のＦＲ−ＷｉｄｅＢａｎｄに設定する（ステップＳ１４０４）。次に、分散レイアウト管理部５０５は、現時点での比較用分散管理テーブル５１４の内容をバックアップ用分散管理テーブル５１４に退避し、バックアップ用分散管理テーブル５１４の内容を第２の比較用分散管理テーブル５１４へコピーする（ステップＳ１４０５）。そして、分散レイアウト管理部５０５は、データ移動先候補ＦＨＳを仮設定し第１の比較用分散管理テーブル５１４を更新する（ステップＳ１４０６）。
【０１１８】
次に、分散レイアウト管理部５０５は、比較対象を次のＦＨＳに設定し、第２の比較用分散管理テーブル５１４を更新する（ステップＳ１４０７）。そして、分散レイアウト管理部５０５は、今回のデータ復元先候補ＦＨＳより、比較対象の方がデータ復元先ＦＨＳに相応しいか否かを判断する（ステップＳ１４０８）。ここで、分散レイアウト管理部５０５は、データ復元先ＦＨＳに相応しいか否かを、以下の順の２つの条件の優先度で判断する。
【０１１９】
第１の条件：分散レイアウトを通して、同一ＦＲ−ＷｉｄｅＢａｎｄ内で同じＦＲ−Ｕｎｉｔとして他ディスクとの組み合わせ回数が少なくなる。
第２の条件：以前のＦＲ−ＷｉｄｅＢａｎｄで最後に選択されてから今回のＦＲ−ＷｉｄｅＢａｎｄまでの位置が遠くなる。
【０１２０】
上述した２つの条件について、分散レイアウト管理部５０５は、分散管理テーブル５１４を用いて判断する。例えば、分散レイアウト管理部５０５は、ステップＳ１４０６の処理において、データ移動先候補ＦＨＳを仮設定したことにより、第１の比較用分散管理テーブル５１４のテーブル１２０１のうちで値が良くなった項目、すなわち、値が小さくなった項目の数を数える。同様に、分散レイアウト管理部５０５は、ステップＳ１４０６の処理において、比較対象を仮設定したことにより、第２の比較用分散管理テーブル５１４のテーブル１２０１のうちで、値が小さくなった項目の数を数える。そして、分散レイアウト管理部５０５は、第１の条件として、データ移動先候補ＦＨＳの数と、比較対象の数とを比較する。
【０１２１】
比較対象の方がデータ復元先ＦＨＳに相応しい場合（ステップＳ１４０８：Ｙｅｓ）、分散レイアウト管理部５０５は、比較対象をデータ移動先ＦＨＳ候補ディスクとし、第１の比較用分散管理テーブルと第２の比較用分散管理テーブルを入れ替える（ステップＳ１４０９）。ステップＳ１４０９の処理終了後、または、比較対象の方がデータ復元先ＦＨＳに相応しくない場合（ステップＳ１４０８：Ｎｏ）、分散レイアウト管理部５０５は、全てのＦＨＳとの比較が完了したか否かを判断する（ステップＳ１４１０）。比較が完了していないＦＨＳがある場合（ステップＳ１４１０：Ｎｏ）、分散レイアウト管理部５０５は、バックアップ用分散管理テーブルの内容を第２の比較用分散管理テーブルへコピーする（ステップＳ１４１１）。そして、分散レイアウト管理部５０５は、ステップＳ１４０７の処理に移行する。
【０１２２】
一方、全てのＦＨＳとの比較が完了した場合（ステップＳ１４１０：Ｙｅｓ）、分散レイアウト管理部５０５は、データ移動先候補ＦＨＳをデータ復元用ＦＨＳディスクに設定し、本ＦＲ−ＷｉｄｅＢａｎｄについて構成変更後の分散レイアウトテーブル５１２を更新する（ステップＳ１５０１）。次に、分散レイアウト管理部５０５は、所定のＦＲ−ＷｉｄｅＢａｎｄとして、分散レイアウトを決定するために必要な全てのＦＲ−ＷｉｄｅＢａｎｄについて、データ復元用ＦＨＳディスクの設定が終了したか否かを判断する（ステップＳ１５０２）。データ復元用ＦＨＳディスクの設定が終了していないＦＲ−ＷｉｄｅＢａｎｄがある場合（ステップＳ１５０２：Ｎｏ）、分散レイアウト管理部５０５は、分散レイアウト変更対象を次のＦＲ−ＷｉｄｅＢａｎｄに設定する（ステップＳ１５０３）。そして、分散レイアウト管理部５０５は、ステップＳ１４０５の処理に移行する。
【０１２３】
また、ディスクプール内にＦＨＳが複数存在しない場合（ステップＳ１４０３：Ｎｏ）、分散レイアウト管理部５０５は、ディスクプール内にＦＨＳが無いか否かを判断する（ステップＳ１５０４）。ディスクプール内にＦＨＳが無い場合（ステップＳ１５０４：Ｙｅｓ）、データ復元を行えないため、分散レイアウト管理部５０５は、Ｒｅｂｕｉｌｄ処理を終了する。
【０１２４】
一方、ディスクプール内にＦＨＳがある場合（ステップＳ１５０４：Ｎｏ）、分散レイアウト管理部５０５は、全ＦＲ−ＷｉｄｅＢａｎｄについて構成変更後の分散レイアウトテーブル５１２を更新する（ステップＳ１５０５）。
【０１２５】
ステップＳ１５０５の処理終了後、または、データ復元用ＦＨＳディスクの設定が終了した場合（ステップＳ１５０２：Ｙｅｓ）、分散レイアウト管理部５０５は、作業バッファを解放する（ステップＳ１５０６）。そして、ＲＡＩＤ  Ｒｅｃｏｖｅｒｙ制御部５０６は、構成変更前後の分散レイアウトテーブル５１２に従いＲｅｂｕｉｌｄ処理を実行する（ステップＳ１５０７）。ステップＳ１５０７の処理終了後、ＣＭ２０１は、Ｒｅｂｕｉｌｄ処理を終了する。
【０１２６】
図１６は、ディスク増設時処理手順の一例を示すフローチャートである。ＣＭ２０１は、管理者端末２０４から、ディスク増設のオペレーションを受け付ける（ステップＳ１６０１）。このとき、管理者端末２０４は、管理ＧＵＩによる入力項目を、管理者端末２０４のディスプレイに表示する。入力項目は、増設するディスク本数と、スペア領域として使用する容量分のディスク本数とを入力する項目である。また、管理者端末２０４は、全ての入力項目を管理者Ａｄが入力するようにしてもよいし、入力項目に規定値を予め設定しておいてもよい。
【０１２７】
次に、分散レイアウト管理部５０５は、分散レイアウト作成に必要な作業バッファをキャッシュメモリ３０３上に獲得し、ＦＨＳ選択テーブル５１３および分散管理テーブル５１４を作成し初期化する（ステップＳ１６０２）。ここで、分散レイアウト管理部５０５は、ＦＨＳ選択テーブル５１３を２面分、分散管理テーブル５１４を３面分作成する。１つ目のＦＨＳ選択テーブル５１３を第１の比較用ＦＨＳ選択テーブル５１３と呼称し、２つ目のＦＨＳ選択テーブル５１３を第２の比較用ＦＨＳ選択テーブル５１３と呼称する。また、１つ目の分散管理テーブル５１４を第１の比較用分散管理テーブル５１４と呼称し、２つ目の分散管理テーブル５１４を第２の比較用分散管理テーブル５１４と呼称し、３つ目の分散管理テーブル５１４をバックアップ用分散管理テーブル５１４と呼称する。以降、処理完了まで分散レイアウト管理部５０５がフローの制御を行う。
【０１２８】
そして、分散レイアウト管理部５０５は、レイアウト作成対象を先頭のＦＲ−Ｂａｎｄに設定する（ステップＳ１６０３）。次に、分散レイアウト管理部５０５は、今回のＦＲ−ＢａｎｄがＦＲ−ＷｉｄｅＢａｎｄの先頭Ｂａｎｄか否かを判断する（ステップＳ１６０４）。今回のＦＲ−ＢａｎｄがＦＲ−ＷｉｄｅＢａｎｄの先頭Ｂａｎｄである場合（ステップＳ１６０４：Ｙｅｓ）、分散レイアウト管理部５０５は、ＦＲ−ＷｉｄｅＢａｎｄ内ＦＨＳ設定処理を実行する（ステップＳ１６０５）。ＦＨＳ設定処理は、図１７で説明する。
【０１２９】
ステップＳ１６０５の処理終了後、または、今回のＦＲ−ＢａｎｄがＦＲ−ＷｉｄｅＢａｎｄの先頭Ｂａｎｄでない場合（ステップＳ１６０４：Ｎｏ）、分散レイアウト管理部５０５は、今回のディスク増設で、ＦＲ−Ｕｎｉｔ数の追加があるか否かを判断する（ステップＳ１６０６）。ここで、ＦＲ−Ｕｎｉｔ数の追加がある場合とは、ステップＳ１６０１の処理で得られた、増設するディスク本数から、スペア領域として使用する容量分のディスク本数を減じた値が１以上となる場合である。
【０１３０】
ＦＲ−Ｕｎｉｔ数の追加がある場合（ステップＳ１６０６：Ｙｅｓ）、分散レイアウト管理部５０５は、ＦＲ−Ｂａｎｄ内ＦＲ−Ｕｎｉｔ設定処理を実行する（ステップＳ１６０７）。ＦＲ−Ｂａｎｄ内ＦＲ−Ｕｎｉｔ設定処理については、図１８で説明する。
【０１３１】
ステップＳ１６０７の処理終了後、または、ＦＲ−Ｕｎｉｔ数の追加がない場合（ステップＳ１６０６：Ｎｏ）、分散レイアウト管理部５０５は、今回のＦＲ−Ｂａｎｄについて、構成変更後の分散レイアウトテーブル５１２を更新する（ステップＳ１６０８）。次に、分散レイアウト管理部５０５は、所定のＦＲ−Ｂａｎｄ数分として、分散レイアウトを決定するために必要な全てのＦＲ−Ｂａｎｄについて設定が完了したか否かを判断する（ステップＳ１６０９）。分散レイアウトを決定するために必要な全てのＦＲ−Ｂａｎｄについて設定が完了していない場合（ステップＳ１６０９：Ｎｏ）、分散レイアウト管理部５０５は、レイアウト作成対象を次のＦＲ−Ｂａｎｄに設定する（ステップＳ１６１０）。そして、分散レイアウト管理部５０５は、ステップＳ１６０４の処理に移行する。
【０１３２】
一方、分散レイアウトを決定するために必要な全てのＦＲ−Ｂａｎｄについて設定が完了した場合（ステップＳ１６０９：Ｙｅｓ）、分散レイアウト管理部５０５は、作業バッファを解放する（ステップＳ１６１１）。次に、ＲＡＩＤ  Ｒｅｃｏｖｅｒｙ制御部５０６は、構成変更前後の分散レイアウトテーブルに従い、Ｒｅｂａｌａｎｃｅ処理を実行する（ステップＳ１６１２）。ステップＳ１６１２の処理終了後、ＣＭ２０１は、ディスク増設時処理を終了する。
【０１３３】
図１７は、ＦＲ−ＷｉｄｅＢａｎｄ内ＦＨＳ設定処理手順の一例を示すフローチャートである。分散レイアウト管理部５０５は、追加されたディスクによってＦＨＳ数の増加がある場合は増設ディスクのうち所定数を追加ＦＨＳに仮設定し、第１の比較用ＦＨＳ選択テーブル５１３を更新する候補ディスクをＦＲ−ＷｉｄｅＢａｎｄ内先頭のＦＨＳに設定する（ステップＳ１７０１）。次に、分散レイアウト管理部５０５は、現時点での第１の比較用ＦＨＳ選択テーブル５１３の内容を第２の比較用ＦＨＳ選択テーブル５１３へコピーする（ステップＳ１７０２）。複数本数追加されるＦＨＳを全て仮設定した後に個々のＦＨＳの評価を行うことになるため、分散レイアウト管理部５０５は、第１の比較用ＦＨＳ選択テーブル５１３の更新後に第２の比較用ＦＨＳ選択テーブル５１３へのコピーを行う。コピーを行った時点で第２の比較用ＦＨＳ選択テーブル５１３は、これまでのＦＲ−ＷｉｄｅＢａｎｄで決定したＦＨＳ配置状況に加え、今回のＦＲ−ＷｉｄｅＢａｎｄのＦＨＳの仮設定状況が反映された状態となる。
【０１３４】
そして、分散レイアウト管理部５０５は、今回のＦＲ−ＷｉｄｅＢａｎｄのうち、既にあるＦＨＳのうちの先頭ＦＨＳを候補に設定し、比較対象を同一ＦＲ−ＷｉｄｅＢａｎｄ内のＦＨＳではない先頭のディスクに設定する（ステップＳ１７０３）。ここで、ＦＨＳではないディスクとは、データがあるディスクである。
【０１３５】
次に、分散レイアウト管理部５０５は、比較対象ディスクをＦＨＳとした場合のディスクプール構成で第２の比較用ＦＨＳ選択テーブル５１３を更新する（ステップＳ１７０４）。ここで更新の際には、分散レイアウト管理部５０５は、比較対象ＦＨＳの加算に加えて、候補ＦＨＳの分の減算も行う。
【０１３６】
そして、分散レイアウト管理部５０５は、第１の比較用ＦＨＳ選択テーブル５１３と第２の比較用ＦＨＳ選択テーブル５１３とを参照して、候補ディスクよりも比較対象の方がＦＨＳに相応しいか否かを判断する（ステップＳ１７０５）。ここで、ＦＨＳに相応しいか否かの判断方法は、ステップＳ９０７の処理で説明した方法と同一である。
【０１３７】
比較対象の方がＦＨＳに相応しい場合（ステップＳ１７０５：Ｙｅｓ）、分散レイアウト管理部５０５は、比較対象をＦＨＳ候補ディスクとし、第１の比較用ＦＨＳ選択テーブルと第２の比較用ＦＨＳ選択テーブルを入れ替える（ステップＳ１７０６）。
【０１３８】
ステップＳ１７０６の処理終了後、または、候補ディスクの方がＦＨＳに相応しい場合（ステップＳ１７０５：Ｎｏ）、分散レイアウト管理部５０５は、選択中のＦＨＳに対して全ディスクの比較が完了したか否かを判断する（ステップＳ１７０７）。選択中のＦＨＳに対して比較が完了していないディスクがある場合（ステップＳ１７０７：Ｎｏ）、分散レイアウト管理部５０５は、比較対象を同一ＦＲ−Ｗｉｄｅｂａｎｄ内のＦＨＳではない次のディスクに設定する（ステップＳ１７０８）。次に、分散レイアウト管理部５０５は、現時点での第１の比較用ＦＨＳ選択テーブル５１３の内容を第２の比較用ＦＨＳ選択テーブル５１３へコピーする（ステップＳ１７０９）。そして、分散レイアウト管理部５０５は、ステップＳ１７０４の処理に移行する。
【０１３９】
一方、選択中のＦＨＳに対して全ディスクの比較が完了した場合（ステップＳ１７０７：Ｙｅｓ）、分散レイアウト管理部５０５は、全ＦＨＳの比較が完了したか否かを判断する（ステップＳ１７１０）。比較が完了していないＦＨＳがある場合（ステップＳ１７１０：Ｎｏ）、分散レイアウト管理部５０５は、候補ディスクを構成変更前の分散レイアウトテーブルでの次のＦＨＳに設定する（ステップＳ１７１１）。そして、分散レイアウト管理部５０５は、ステップＳ１７０２の処理に移行する。一方、全ＦＨＳの比較が完了した場合（ステップＳ１７１０：Ｙｅｓ）、分散レイアウト管理部５０５は、当該ＦＲ−ＷｉｄｅＢａｎｄに関して構成変更後の分散レイアウトテーブル５１２を更新する（ステップＳ１７１２）。ステップＳ１７１２の処理終了後、分散レイアウト管理部５０５は、ＦＲ−ＷｉｄｅＢａｎｄ内ＦＨＳ設定処理を終了する。
【０１４０】
図１８は、ＦＲ−Ｂａｎｄ内ＦＲ−Ｕｎｉｔ設定処理手順の一例を示すフローチャートである。分散レイアウト管理部５０５は、追加する先頭のＦＲ−Ｕｎｉｔの候補として未使用ディスクのうち先頭を仮設定する（ステップＳ１８０１）。ここで、未使用ディスクとは、ステップＳ１６０１の処理で追加されるディスクのことである。また、ＦＲ−Ｕｎｉｔの候補ディスクとして設定可能なディスクは、同一ＦＲ−ＷｉｄｅＢａｎｄ内で、同一ディスクが既に同一ＦＲ−ＵｎｉｔのＤｅｐｔｈに使用されていないという条件を満たすディスクである。前述した条件を満たすディスクがないこともある。
【０１４１】
次に、分散レイアウト管理部５０５は、仮設定が成功、すなわち、前述した条件を満たすディスクを設定できたか否かを判断する（ステップＳ１８０２）。仮設定が成功していない場合（ステップＳ１８０２：Ｎｏ）、分散レイアウト管理部５０５は、同一ＦＲ−Ｂａｎｄ内で設定済みのＦＲ−Ｕｎｉｔに使用するディスクのうち、設定可能なものと入れ替える（ステップＳ１８０３）。
【０１４２】
仮設定が成功した場合（ステップＳ１８０２：Ｙｅｓ）、分散レイアウト管理部５０５は、現時点での第１の比較用分散管理テーブルの内容をバックアップ用分散管理テーブル５１４に退避し、バックアップ用分散管理テーブル５１４の内容を第２の比較用分散管理テーブル５１４へコピーする（ステップＳ１８０４）。また、ステップＳ１８０３の処理終了後も、分散レイアウト管理部５０５は、ステップＳ１８０４の処理に移行する。
【０１４３】
ステップＳ１８０４の処理終了後、分散レイアウト管理部５０５は、仮設定に応じて第１の比較用分散管理テーブル５１４を更新する（ステップＳ１８０５）。次に、分散レイアウト管理部５０５は、比較対象を次の設定可能なディスクに設定し、第２の比較用分散管理テーブル５１４を更新する（ステップＳ１８０６）。ここで、設定可能なディスクとは、ステップＳ１８０１の処理で説明した条件と同一である。
【０１４４】
そして、分散レイアウト管理部５０５は、第１の比較用分散管理テーブル５１４と第２の比較用分散管理テーブル５１４とを参照して、候補ディスクよりも比較対象の方がＦＲ−Ｕｎｉｔに相応しいか否かを判断する（ステップＳ１８０７）。ここで、ＦＲ−Ｕｎｉｔに相応しいか否かの判断方法は、ステップＳ１００６の処理で説明した方法と同一である。
【０１４５】
候補ディスクよりも比較対象の方がＦＲ−Ｕｎｉｔに相応しい場合（ステップＳ１８０７：Ｙｅｓ）、分散レイアウト管理部５０５は、比較対象をデータ移動先ＦＨＳ候補ディスクとし、第１の比較用分散管理テーブルと第２の比較用分散管理テーブルとを入れ替える（ステップＳ１８０８）。
【０１４６】
ステップＳ１８０８の処理終了後、または、候補ディスクよりも比較対象の方がＦＲ−Ｕｎｉｔに相応しくない場合（ステップＳ１８０７：Ｎｏ）、分散レイアウト管理部５０５は、今回のＦＲ−Ｕｎｉｔについて、全てのディスクとの比較が完了したか否かを判断する（ステップＳ１８０９）。まだ比較が完了していないディスクがある場合（ステップＳ１８０９：Ｎｏ）、分散レイアウト管理部５０５は、バックアップ用分散管理テーブル５１４の内容を第２の比較用分散管理テーブル５１４へコピーする（ステップＳ１８１０）。そして、分散レイアウト管理部５０５は、ステップＳ１８０６の処理に移行する。
【０１４７】
一方、全てのディスクとの比較が完了した場合（ステップＳ１８０９：Ｙｅｓ）、分散レイアウト管理部５０５は、今回のＦＲ−Ｂａｎｄについて、所定のＦＲ−Ｕｎｉｔ数分の処理が完了したか否かを判断する（ステップＳ１８１１）。所定のＦＲ−Ｕｎｉｔ数分の処理が完了していない場合（ステップＳ１８１１：Ｎｏ）、分散レイアウト管理部５０５は、追加する次のＦＲ−Ｕｎｉｔの候補として未使用ディスクのうち先頭を仮設定する（ステップＳ１８１２）。そして、分散レイアウト管理部５０５は、ステップＳ１８０２の処理に移行する。
【０１４８】
一方、所定のＦＲ−Ｕｎｉｔ数分の処理が完了した場合（ステップＳ１８１１：Ｙｅｓ）、分散レイアウト管理部５０５は、ＦＲ−Ｂａｎｄ内ＦＲ−Ｕｎｉｔ設定処理を終了する。
【０１４９】
図１９は、冗長セットの構成要素がディスクの同一位置に配置されるディスクプール構成の一例を示す説明図である。図１９では、図１で示した第１の方法として、冗長セットの構成要素が、各ディスク上の同一位置に配置される例である。例えば、塗りつぶしたデータとして、ディスク＃０のｒｏｗ＃７のデータと、ディスク＃１のｒｏｗ＃７のデータと、ディスク＃２のｒｏｗ＃７のデータと、ディスク＃５のｒｏｗ＃７のデータとが、１つの冗長セットである。
【０１５０】
図２０は、冗長セットの構成要素をディスク番号およびディスク上の位置で管理するディスクプール構成の一例を示す説明図である。図２０では、図１で示した第２の方法として、冗長セットの構成要素を、ディスク番号およびディスク上の位置で管理する例である。例えば、横線の網掛けを付与したデータとして、ディスク＃０のｒｏｗ＃６のデータと、ディスク＃２のｒｏｗ＃２のデータと、ディスク＃５のｒｏｗ＃５のデータと、ディスク＃８のｒｏｗ＃１のデータとが、１つの冗長セットである。また、図２０で示す各データは、図１９より大きく表示しており、冗長セットのサイズが大きいことを示す。
【０１５１】
図２１は、本実施の形態における効果の一例を示す説明図である。図２１で示す表２１００は、レコード２１０１で示す図１で示した第１の方法と、レコード２１０２で示す図１で示した第２の方法と、レコード２１０３で示す本実施の形態にかかる方法との特徴をまとめた表である。
【０１５２】
第１の方法は、分散レイアウト管理の制御テーブルのためのテーブル領域の容量が小さく、故障時のデータ復元先決定が容易であり、分散レイアウト変更も容易であるが、ディスク追加が、冗長セット構成要素単位となる。
【０１５３】
また、第２の方法は、ディスク追加が１本から可能であるが、分散レイアウト管理の制御テーブルのためのテーブル領域の容量が大きく、故障時のデータ復元先決定が複雑であり、分散レイアウト変更も複雑である。
【０１５４】
そして、本実施の形態にかかる方法は、ディスク追加が１本から可能であり、分散レイアウト管理の制御テーブルのためのテーブル領域の容量が小さく、故障時のデータ復元先決定が容易であり、分散レイアウト変更も容易である。このように、本実施の形態にかかる方法は、第１の方法や第２の方法よりも効果がある。
【０１５５】
以上説明したように、ＣＭ２０１は、ディスクプール構成に新たなディスク２０３を追加する際、ＦＲ−ＷｉｄｅＢａｎｄ内の分割数分の冗長セットから、それぞれ異なるｒｏｗのデータを新たなディスク２０３に移行する。これにより、ＣＭ２０１は、ディスクプール構成変更時のデータ移動を極小化できる。
【０１５６】
また、ＣＭ２０１は、分割数分の冗長セットからそれぞれ異なるｒｏｗのデータを選択する際に、データが配置されたディスク２０３と、複数のディスク２０３に配置された各ＦＲ−Ｕｎｉｔが配置されたディスク２０３同士の組み合わせの回数とに基づいてもよい。これにより、より均一にデータが分散されるため、ＣＭ２０１は、次のＲｅｂｕｉｌｄ処理時の読み出し先がより分散されて、次のＲｅｂｕｉｌｄ処理にかかる時間を短縮することができる。
【０１５７】
また、ＣＭ２０１は、Ｒｅｂｕｉｌｄ処理を行う際に、故障したディスク２０３または減設対象ディスク２０３が記憶するデータを、該当のデータを含むＦＲ−Ｕｎｉｔに基づいて、ＦＨＳ上であって、該当のデータと同一のｒｏｗのＦＲ−ｄｅｐｔｈに復元する。これにより、ＣＭ２０１は、冗長性を失わずにデータを復元することができる。
【０１５８】
また、ＣＭ２０１は、ＦＨＳが２以上ある場合、以上のＦＨＳに対応して、２以上のＦＨＳの各ＦＨＳにデータを復元した後の状態における複数のディスク２０３に配置された各ＦＲ−Ｕｎｉｔが配置されたディスク２０３同士の組み合わせの回数を特定してもよい。これにより、冗長性を失わずにデータを復元することができるうえ、かつ、より均一にデータが分散されるため、ＣＭ２０１は、次のＲｅｂｕｉｌｄ処理時の読み出し先がより分散されて、次のＲｅｂｕｉｌｄ処理にかかる時間を短縮することができる。
【０１５９】
なお、本実施の形態で説明したストレージ制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ストレージ制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本ストレージ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１６０】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１６１】
（付記１）ＲＡＩＤ技術によって制御される複数のストレージにアクセス可能なストレージ制御装置であって、
２以上のいずれかの数の各データで冗長性を担保するデータセットに含まれる前記各データが、前記複数のストレージのそれぞれ異なるストレージ上であって、かつ、前記データセットのデータサイズと同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なる物理アドレスに配置された状態において、新たなストレージまたはホットスペアとなるストレージをデータ移行対象ストレージとして前記各データの分散レイアウトの変更を行うと判断した場合に、前記複数のストレージの各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、前記いずれかの数のデータセットの各データセットに対応して選択し、
前記各データセットに対応して選択したデータを、前記データ移行対象ストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに移行する、
制御部を有することを特徴とするストレージ制御装置。
【０１６２】
（付記２）前記制御部は、
前記各データの分散レイアウトの変更を行うと判断した場合に、前記各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、当該データが配置されたストレージと、前記複数のストレージに配置された複数のデータセットの各データセットが配置されたストレージ同士の組み合わせの回数とに基づいて、前記いずれかの数のデータセットの各データセットに対応して選択する、
ことを特徴とする付記１に記載のストレージ制御装置。
【０１６３】
（付記３）前記制御部は、
前記各ストレージの前記分割物理アドレス範囲内に配置されたデータセットのいずれかのデータの復元先となるホットスペア領域が、前記複数のストレージのいずれかのストレージの当該分割物理アドレス範囲に配置された状態において、前記複数のストレージのうち故障したストレージを検出したこと、または前記複数のストレージから減設対象ストレージを取り除く指示を受け付け、
前記故障したストレージを検出した、または前記指示を受け付けた場合、前記故障したストレージまたは前記減設対象ストレージが記憶するデータを、当該データを含むデータセットに基づいて、前記いずれかのストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに復元する、
ことを特徴とする付記１または２に記載のストレージ制御装置。
【０１６４】
（付記４）前記制御部は、
前記各ストレージの前記分割物理アドレス範囲内に配置されたデータセットのいずれかのデータの復元先となるホットスペア領域が、前記複数のストレージの２以上のストレージの当該分割物理アドレス範囲に配置された状態において、前記複数のストレージのうち故障したストレージを検出したこと、または前記複数のストレージから減設対象ストレージを取り除く指示を受け付け、
前記故障したストレージを検出した、または前記指示を受け付けた場合、前記２以上のストレージの各ストレージに対応して、前記２以上のストレージの各ストレージにデータを復元した後の状態における前記複数のストレージに配置された複数のデータセットの各データセットが配置されたストレージ同士の組み合わせの回数を計数し、
前記２以上のストレージの各ストレージに対応して計数した組み合わせの回数に基づいて、前記２以上のストレージから復元先のストレージを決定し、
前記故障したストレージまたは前記減設対象ストレージが記憶するデータを、当該データを含むデータセットに基づいて、決定した前記復元先のストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに復元する、
ことを特徴とする付記３に記載のストレージ制御装置。
【０１６５】
（付記５）ＲＡＩＤ技術によって制御される複数のストレージにアクセス可能なストレージ制御装置が、
２以上のいずれかの数の各データで冗長性を担保するデータセットに含まれる前記各データが、前記複数のストレージのそれぞれ異なるストレージ上であって、かつ、前記データセットのデータサイズと同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なる物理アドレスに配置された状態において、新たなストレージまたはホットスペアとなるストレージをデータ移行対象ストレージとして前記各データの分散レイアウトの変更を行うと判断した場合に、前記複数のストレージの各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、前記いずれかの数のデータセットの各データセットに対応して選択し、
前記各データセットに対応して選択したデータを、前記データ移行対象ストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに移行する、
処理を実行することを特徴とするストレージ制御方法。
【０１６６】
（付記６）前記ストレージ制御装置が、
前記各ストレージの前記分割物理アドレス範囲内に配置されたデータセットのいずれかのデータの復元先となるホットスペア領域が、前記複数のストレージのいずれかのストレージの当該分割物理アドレス範囲に配置された状態において、前記複数のストレージのうち故障したストレージを検出したこと、または前記複数のストレージから減設対象ストレージを取り除く指示を受け付け、
前記故障したストレージを検出した、または前記指示を受け付けた場合、前記故障したストレージまたは前記減設対象ストレージが記憶するデータを、当該データを含むデータセットに基づいて、前記いずれかのストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに復元する、
処理を実行することを特徴とする付記５に記載のストレージ制御方法。
【０１６７】
（付記７）ＲＡＩＤ技術によって制御される複数のストレージにアクセス可能なストレージ制御装置に、
２以上のいずれかの数の各データで冗長性を担保するデータセットに含まれる前記各データが、前記複数のストレージのそれぞれ異なるストレージ上であって、かつ、前記データセットのデータサイズと同一のサイズで分割した分割物理アドレス範囲内でそれぞれ異なる物理アドレスに配置された状態において、新たなストレージまたはホットスペアとなるストレージをデータ移行対象ストレージとして前記各データの分散レイアウトの変更を行うと判断した場合に、前記複数のストレージの各ストレージの前記分割物理アドレス範囲内に配置されたデータであって、それぞれが異なる物理アドレスに配置された当該データを、前記いずれかの数のデータセットの各データセットに対応して選択し、
前記各データセットに対応して選択したデータを、前記データ移行対象ストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに移行する、
処理を実行させることを特徴とするストレージ制御プログラム。
【０１６８】
（付記８）前記ストレージ制御装置に、
前記各ストレージの前記分割物理アドレス範囲内に配置されたデータセットのいずれかのデータの復元先となるホットスペア領域が、前記複数のストレージのいずれかのストレージの当該分割物理アドレス範囲に配置された状態において、前記複数のストレージのうち故障したストレージを検出したこと、または前記複数のストレージから減設対象のストレージを取り除く指示を受け付け、
前記故障したストレージを検出した、または前記指示を受け付けた場合、前記故障したストレージまたは前記減設対象ストレージが記憶するデータを、当該データを含むデータセットに基づいて、前記いずれかのストレージ上であって、当該データが配置された物理アドレスと同一の物理アドレスに復元する、
処理を実行させることを特徴とする付記７に記載のストレージ制御プログラム。
【符号の説明】
【０１６９】
１０１  ストレージ制御装置
１０２  ストレージ
２０１  ＣＭ
５００  制御部
５０１  Ｉ／Ｏ制御部
５０２  構成管理部
５０３  キャッシュ制御部
５０４  ＲＡＩＤ制御部
５０５  分散レイアウト管理部
５０６  ＲＡＩＤ  Ｒｅｃｏｖｅｒｙ制御部
５０７  ＦＲ−Ｕｎｉｔ設定部
５０８  復元先設定部
５１０  記憶部
５１２  分散レイアウトテーブル
【図１】
2018185757.tif 000003
【図２】
2018185757.tif 000004
【図３】
2018185757.tif 000005
【図４】
2018185757.tif 000006
【図５】
2018185757.tif 000007
【図６】
2018185757.tif 000008
【図７】
2018185757.tif 000009
【図８】
2018185757.tif 000010
【図９】
2018185757.tif 000011
【図１０】
2018185757.tif 000012
【図１１】
2018185757.tif 000013
【図１２】
2018185757.tif 000014
【図１３】
2018185757.tif 000015
【図１４】
2018185757.tif 000016
【図１５】
2018185757.tif 000017
【図１６】
2018185757.tif 000018
【図１７】
2018185757.tif 000019
【図１８】
2018185757.tif 000020
【図１９】
2018185757.tif 000021
【図２０】
2018185757.tif 000022
【図２１】
2018185757.tif 000023