(57)【特許請求の範囲】
【請求項１】
フラッシュメモリを記憶媒体とするストレージ装置により形成されたＲＡＩＤグループから、前記フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、
特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる前記各々のストレージ装置の一部の記憶領域のデータを、前記ＲＡＩＤグループに属さない他のストレージ装置の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を、前記一部の記憶領域のデータを移行した移行先の記憶領域に設定し、
前記一部の記憶領域のデータを移行した後、前記複数のストレージ装置のうちのいずれか２つのストレージ装置の書き込みデータ量の差分が閾値を超えた場合、前記移行先の記憶領域のデータを、前記一部の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を前記移行先の記憶領域に設定することを停止する、
制御部を有することを特徴とするストレージ制御装置。
【請求項２】
前記制御部は、
前記データ量の上限値を超えた書き込みデータ量となったストレージ装置のうち、前記データ量の上限値を超えた書き込みデータ量となったストレージ装置の数未満となる複数のストレージ装置を特定することを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記閾値は、前記フラッシュメモリの書き込み可能回数から特定される、
ことを特徴とする請求項１または２に記載のストレージ制御装置。
【請求項４】
前記制御部は、
特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なり、かつ、前記各々のストレージ装置の間でデータと当該データのパリティの関係でなく、かつ、前記各々のストレージ装置の間で同一のパリティを形成するデータでない前記各々のストレージ装置の一部の記憶領域のデータを、前記他のストレージ装置の記憶領域に移行することを特徴とする請求項１〜３のいずれか一つに記載のストレージ制御装置。
【請求項５】
フラッシュメモリを記憶媒体とするストレージ装置とストレージ制御装置とを有するストレージシステムであって、
前記ストレージ制御装置は、
前記ストレージ装置により形成されたＲＡＩＤグループから、前記フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、
特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる前記各々のストレージ装置の一部の記憶領域のデータを、前記ＲＡＩＤグループに属さない他のストレージ装置の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を、前記一部の記憶領域のデータを移行した移行先の記憶領域に設定し、
前記一部の記憶領域のデータを移行した後、前記複数のストレージ装置のうちのいずれか２つのストレージ装置の書き込みデータ量の差分が閾値を超えた場合、前記移行先の記憶領域のデータを、前記一部の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を前記移行先の記憶領域に設定することを停止する、
ことを特徴とするストレージシステム。
【請求項６】
コンピュータに、
フラッシュメモリを記憶媒体とするストレージ装置により形成されたＲＡＩＤグループから、前記フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、
特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる前記各々のストレージ装置の一部の記憶領域のデータを、前記ＲＡＩＤグループに属さない他のストレージ装置の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を、前記一部の記憶領域のデータを移行した移行先の記憶領域に設定し、
前記一部の記憶領域のデータを移行した後、前記複数のストレージ装置のうちのいずれか２つのストレージ装置の書き込みデータ量の差分が閾値を超えた場合、前記移行先の記憶領域のデータを、前記一部の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を前記移行先の記憶領域に設定することを停止する、
処理を実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージシステム、および制御プログラムに関する。
【背景技術】
【０００２】
従来、複数のストレージ装置を組み合わせて仮想的なディスクとして運用するＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）技術がある。また、ＲＡＩＤ技術に適用可能なストレージ装置の一つとして、フラッシュメモリを記憶媒体とするストレージ装置がある。フラッシュメモリは、書き込みを行う度に絶縁体となる酸化膜が貫通する電子によって劣化するため、書き込み可能な上限の回数となる書き込み可能回数が存在する。そこで、フラッシュメモリを記憶媒体とするストレージ装置は、書き込み可能回数に基づいた書き込み可能なデータ量を示すＴＢＷ（Ｔｏｔａｌ  Ｂｙｔｅｓ  Ｗｒｉｔｔｅｎ）の情報を有する。
【０００３】
関連する先行技術として、例えば、ＲＡＩＤ構成へデータを書き込む際、ＲＡＩＤ構成内の書き込み回数が閾値を超えた複数のＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）から１つ選択したＳＳＤのデータをスペアディスクに書き込み、スペアディスクを用いてＲＡＩＤ構成を再形成するものがある。また、第１記憶媒体と第２記憶媒体との書き込み回数の差より、第１記憶媒体と第２記憶媒体内のデータの第３記憶媒体へのコピー後の第３記憶媒体との書き込み回数との差が大きくなるような第２記憶媒体が記憶するデータを第３記憶媒体にコピーする技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２０６１５１号公報
【特許文献２】特開２０１３−０４１３９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術によれば、フラッシュメモリを記憶媒体とするストレージ装置により形成されたＲＡＩＤグループに属する複数のストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達する恐れがある。例えば、ＲＡＩＤグループが３つのストレージ装置を含む場合、あるストレージ装置のデータをＲＡＩＤグループに属さない他のストレージ装置に移行しても、残余の２つのストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達する場合がある。
【０００６】
１つの側面では、本発明は、ＲＡＩＤグループに属するフラッシュメモリを記憶媒体とする複数のストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達することを抑制することができるストレージ制御装置、ストレージシステム、および制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、フラッシュメモリを記憶媒体とするストレージ装置により形成されたＲＡＩＤグループから、フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、特定した複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる各々のストレージ装置の一部の記憶領域のデータを、ＲＡＩＤグループに属さない他のストレージ装置の記憶領域に移行し、一部の記憶領域に対するアクセスのアクセス先を、一部の記憶領域のデータを移行した移行先の記憶領域に設定するストレージ制御装置、ストレージシステム、および制御プログラムが提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、ＲＡＩＤグループに属するフラッシュメモリを記憶媒体とする複数のストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達することを抑制することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態にかかるストレージ制御装置１０１の動作例を示す説明図である。
【図２】図２は、ストレージシステム２００の構成例を示す説明図である。
【図３】図３は、ＣＭ２０１ａのハードウェア構成例を示すブロック図である。
【図４】図４は、ＣＭ２０１ａの機能構成例を示すブロック図である。
【図５】図５は、各ＳＳＤの書き込みデータ量を不均等化する例を示す説明図である。
【図６】図６は、仮想ホットスペアを解放する例を示す説明図である。
【図７】図７は、移行するデータの一例を示す説明図である。
【図８】図８は、ＳＳＤ書き込みデータ量閾値設定処理手順の一例を示すフローチャートである。
【図９】図９は、ＳＳＤ書き込みデータ量閾値超え判定処理手順の一例を示すフローチャートである。
【図１０】図１０は、ＳＳＤ書き込みデータ量不均等化処理手順の一例を示すフローチャートである。
【図１１】図１１は、仮想ホットスペア解放処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、開示のストレージ制御装置、ストレージシステム、および制御プログラムの実施の形態を詳細に説明する。
【００１１】
図１は、本実施の形態にかかるストレージ制御装置１０１の動作例を示す説明図である。ストレージ制御装置１０１は、フラッシュメモリを記憶媒体とする複数のストレージ装置１０２＃１〜３と、ストレージ装置１０２＃４とを制御するコンピュータである。具体的には、例えば、ストレージ制御装置１０１は、ストレージ装置１０２＃１〜３によりＲＡＩＤ技術によるＲＡＩＤグループを形成するとともに、ストレージ装置１０２＃４を予備の記憶装置とするホットスペアとする。
【００１２】
ＲＡＩＤ技術は、複数のストレージ装置を組み合わせて仮想的なディスクとして運用する技術である。ストレージ制御装置１０１は、ＲＡＩＤ技術を用いて、ＲＡＩＤグループに属するストレージ装置により、１つの仮想的なディスクを形成する。ここで、ＲＡＩＤには、仮想的なディスクの形成の仕方を表すＲＡＩＤレベルが存在する。ＲＡＩＤレベルは、ＲＡＩＤ０〜ＲＡＩＤ６までのＲＡＩＤレベルが存在する。また、ＲＡＩＤには、ＲＡＩＤ０＋１というように、複数のＲＡＩＤレベルを組み合わせたレベルも存在する。ここで、特に、ＲＡＩＤレベル５、６は、ＲＡＩＤグループに属するストレージ装置の間の書き込みデータ量が均等になるように設計されている。
【００１３】
ストレージ装置１０２＃１〜３は、フラッシュメモリを記憶媒体とするストレージ装置である。フラッシュメモリには、具体的には、例えば、ＮＯＲ型のフラッシュメモリとＮＡＮＤ型のフラッシュメモリとがある。フラッシュメモリは、書き込みを行う度に絶縁体となる酸化膜が貫通する電子によって劣化するため、書き込み可能回数が存在する。ここで、書き込み可能回数は、書き込み可能な上限となる回数である。そこで、フラッシュメモリは、保証期間内で、書き込み可能回数に基づいた書き込み可能なデータ量を示すＴＢＷや、１日に自容量の何倍の書き込みが可能かを示すＤＷＰＤ（Ｄｒｉｖｅ  Ｗｒｉｔｅ  Ｐｅｒ  Ｄａｙ）といった指標を有する。また、ストレージ装置１０２＃４は、フラッシュメモリを記憶媒体とするストレージ装置であってもよいし、他のストレージ装置として、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等でもよい。
【００１４】
ここで、フラッシュメモリを記憶媒体とするストレージ装置によりＲＡＩＤグループを形成すると、複数のストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達する恐れがある。ここで、書き込み可能なデータ量より小さい上限値を超えた複数のストレージ装置のうちの１つのデータを、他のストレージ装置に移行することが考えられる。しかしながら、この場合、書き込み可能なデータ量より小さい上限値を超えた複数のストレージ装置が３つ以上である場合、データを移行しなかった残りストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達する場合がある。
【００１５】
そして、複数のストレージ装置の書き込みデータ量が書き込み可能なデータ量に同時に到達すると、複数のストレージ装置分のホットスペアがなければ、運用を続行することができなくなる。また、ＲＡＩＤ５のＲＡＩＤグループのうちの１つのストレージ装置が書き込み可能なデータ量に到達した場合、冗長性がない状態で書き込むことが可能であるが、２つ以上のストレージ装置が書き込み可能なデータ量に到達した場合、書き込みができなくなる。
【００１６】
そこで、ストレージ制御装置１０１は、ＲＡＩＤグループ内の書き込みデータ量が書込可能なデータ量に近い上限値を超えた複数のストレージ装置の間で記憶容量が異なる一部の記憶領域のデータをストレージ装置１０２＃４に移行し、移行先をアクセス先とする。これにより、ストレージ制御装置１０１は、ストレージ装置１０２＃１〜３の間で書き込みデータ量に差がつき、ストレージ装置１０２＃１〜３のうちの２つ以上のストレージ装置の書き込みデータ量が同時に書き込み可能なデータ量に到達することを抑制できる。
【００１７】
図１の（ａ）、（ｂ）を用いてストレージ制御装置１０１の動作を説明する。図１の（ａ）において、ストレージ制御装置１０１は、ストレージ装置１０２＃１〜３によりＲＡＩＤグループを形成する。説明の簡略化のため、ストレージ装置１０２＃１〜４の記憶容量は、全て同一であるとする。そして、図１の（ａ）の状態において、ストレージ装置１０２＃１〜３のそれぞれの書き込みデータ量が、２［ＰＢ：ＰｅｔａＢｙｔｅ］であるとする。また、ホットスペアであるストレージ装置１０２＃４の書き込みデータ量は、０［ＰＢ］であるとする。
【００１８】
この状態で、ストレージ制御装置１０１は、ＲＡＩＤグループから、フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定する。ストレージ制御装置１０１は、フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を、例えば、ＴＢＷに基づいて設定しておく。以下、フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を、「閾値Ａ」と呼称する。
【００１９】
図１の（ａ）の例では、書き込みデータ量が閾値Ａを超えた複数のストレージ装置が、ストレージ装置１０２＃１〜３であるとする。この場合、ストレージ制御装置１０１は、複数のストレージ装置として、ストレージ装置１０２＃１〜３を特定してもよいし、ストレージ装置１０２＃１〜３のうちの書き込みデータ量が閾値Ａを超えたストレージの数未満となる２つを特定してもよい。図１の（ａ）の例では、ストレージ制御装置１０１は、ストレージ装置１０２＃２、３を特定する。
【００２０】
次に、ストレージ制御装置１０１は、特定した複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる各々のストレージ装置の一部の記憶領域のデータを、ＲＡＩＤグループに属さないストレージ装置１０２＃４の記憶領域に移行する。図１の（ａ）の例では、ストレージ制御装置１０１は、一部の記憶領域として、ストレージ装置１０２＃２の一部の記憶領域１０３＃２＿１と、ストレージ装置１０２＃３の一部の記憶領域１０３＃３＿１とを移行元の記憶領域とする。
【００２１】
ここで、記憶領域１０３＃２＿１と、記憶領域１０３＃３＿１とは、異なる記憶容量となる。そして、記憶領域１０３＃２＿１と記憶領域１０３＃３＿１との合計の記憶容量が、ストレージ装置１０２＃４の記憶容量以下となるようにする。例えば、記憶領域１０３＃２＿１の記憶容量は、ストレージ装置１０２＃２の１／３であり、記憶領域１０３＃３＿１の記憶容量は、ストレージ装置１０２＃３の２／３であるとする。
【００２２】
図１の（ａ）の例では、ストレージ制御装置１０１は、記憶領域１０３＃２＿１と記憶領域１０３＃３＿１とのデータを、それぞれ、ストレージ装置１０２＃４の記憶領域１０３＃４＿１、記憶領域１０３＃４＿２に移行する。ここで、具体的な移行の方法として、ストレージ制御装置１０１は、記憶領域１０３＃２＿１と記憶領域１０３＃３＿１とのデータを、記憶領域１０３＃４＿１、記憶領域１０３＃４＿２にコピーする。そして、ストレージ制御装置１０１は、移行元となる記憶領域１０３＃２＿１と記憶領域１０３＃３＿１とのデータを、物理的に削除してもよいし、参照されることはないので残したままでもよい。
【００２３】
そして、ストレージ制御装置１０１は、一部の記憶領域に対するアクセスのアクセス先を、一部の記憶領域のデータを移行した移行先の記憶領域に設定する。図１の（ａ）の例では、ストレージ制御装置１０１は、記憶領域１０３＃２＿１に対するアクセスのアクセス先を、記憶領域１０３＃４＿１に設定するとともに、記憶領域１０３＃３＿１に対するアクセスのアクセス先を、記憶領域１０３＃４＿２に設定する。
【００２４】
より具体的なアクセス先の設定方法として、例えば、ストレージ制御装置１０１は、ストレージ装置１０２＃２の記憶領域１０３＃２＿１以外の記憶領域と、記憶領域１０３＃４＿１とを、１つの仮想的なストレージ装置に設定する。仮想的なストレージ装置を設定することにより、ストレージ制御装置１０１は、記憶領域１０３＃２＿１へのアクセスのアクセス先を、記憶領域１０３＃４＿１に設定したことになる。同様に、ストレージ制御装置１０１は、ストレージ装置１０２＃３の記憶領域１０３＃３＿１以外の記憶領域と、記憶領域１０３＃４＿２とを、１つの仮想的なストレージ装置に設定する。そして、ストレージ制御装置１０１は、ストレージ装置１０２＃１と、２つの仮想的なストレージ装置とによりＲＡＩＤグループを再形成する。
【００２５】
または、仮想的なストレージ装置を設定しない例として、ストレージ制御装置１０１は、移行元の記憶領域へのアクセスが発生する度に、移行先の記憶領域へのアクセスとなるように設定してもよい。例えば、記憶領域１０３＃２＿１に対するアクセスが発生したとする。この場合、ストレージ制御装置１０１は、アクセス先のストレージ装置をストレージ装置１０２＃４に設定するとともに、アクセス先のアドレスを、ストレージ装置１０２＃２の記憶領域１０３＃２＿１以外の記憶領域の記憶容量分減じた値に設定する。
【００２６】
図１の（ｂ）は、アクセス先の設定終了後、ストレージ制御装置１０１が、ＲＡＩＤグループによる仮想的なボリュームに対して、０．０６＊３［ＰＢ］の書き込みを受け付けた後の状態である。ここで、０．０６＊３［ＰＢ］の書き込み先は、移行前のストレージ装置１０２＃１〜３に０．０６［ＰＢ］ずつあるものとする。
【００２７】
図１の（ｂ）において、ストレージ装置１０２＃１は、一部の記憶領域の移行を行っていないため、０．０６［ＰＢ］新たに書き込まれる。従って、ストレージ装置１０２＃１の書き込みデータ量は、２．０６［ＰＢ］となる。また、ストレージ装置１０２＃２は、全データの１／３をストレージ装置１０２＃４に移行したため、０．０６＊（１−１／３）＝０．０４［ＰＢ］新たに書き込まれる。従って、ストレージ装置１０２＃２の書き込みデータ量は、２．０４［ＰＢ］となる。また、ストレージ装置１０２＃３は、全データの２／３をストレージ装置１０２＃４に移行したため、０．０６＊（１−２／３）＝０．０２［ＰＢ］新たに書き込まれる。従って、ストレージ装置１０２＃３の書き込みデータ量は、２．０２［ＰＢ］となる。
【００２８】
また、ストレージ装置１０２＃４の書き込みデータ量は、ストレージ装置１０２＃２、３に本来書き込まれるはずであった０．０２［ＰＢ］、０．０４［ＰＢ］の書き込みデータ量の合計０．０６［ＰＢ］となる。このように、ストレージ装置１０２＃１〜３の書き込みデータは、０．０２［ＰＢ］ずつの書き込みデータ量の差が生じることになる。従って、ストレージ制御装置１０１は、ストレージ装置１０２＃１〜３が書き込み可能なデータ量に同時に到達することを抑制することができる。次に、ストレージ制御装置１０１を、ストレージシステムの制御装置に適用した例を、図２を用いて説明する。
【００２９】
図２は、ストレージシステム２００の構成例を示す説明図である。ストレージシステム２００は、ＣＭ（Ｃｏｎｔｒｏｌｌｅｒ  Ｍｏｄｕｌｅ）２０１ａ、２０１ｂと、ＣＭ２０１ａ、２０１ｂとホストコンピュータ２１１との接続制御を行うチャネルアダプタ２０３ａ〜２０３ｄと、デバイスエンクロージャ２０２とを有する。図２に示すＣＭ２０１ａと、２０１ｂとが、図１に示したストレージ制御装置１０１に相当する。
【００３０】
ストレージシステム２００は、内蔵する複数の記憶デバイスに対するデータの入出力を行う。ストレージシステム２００は、ＲＡＩＤ１〜６等のＲＡＩＤ機能を有し、複数の記憶デバイスをまとめてＲＡＩＤを形成することにより、各ＲＡＩＤをそれぞれ１台の記憶デバイスとして管理する。
【００３１】
ＣＭ２０１ａ、２０１ｂは、ストレージシステム２００全体の制御を行う。また、ＣＭ２０１ａおよびＣＭ２０１ｂは、バス２０４によって接続される。このバス２０４を介して、ＣＭ２０１ａおよびＣＭ２０１ｂの間で、制御情報やデータが通信される。
【００３２】
ホストコンピュータ２１１は、業務処理を実行するコンピュータであり、ファイバチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）で形成されたＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を介してストレージシステム２００とデータ通信可能に接続される。ホストコンピュータ２１１は、業務処理に使用するデータについて、ストレージシステム２００への保存およびストレージシステム２００からの読み出しを行う。
【００３３】
デバイスエンクロージャ２０２は、ストレージ装置としてＳＳＤ＃１〜４および図示しない他の複数の記憶デバイスを含む。デバイスエンクロージャ２０２内の複数の記憶デバイスにより、ＲＡＩＤグループが生成される。ＲＡＩＤグループは、ＲＡＩＤの技術を用いた論理記憶領域である。以下の説明では、説明の簡略化のため、ＳＳＤ＃１〜３によりＲＡＩＤ５のＲＡＩＤグループを形成しており、ＳＳＤ＃４は、ＳＳＤ＃１〜３のホットスペアであるとする。従って、ＳＳＤ＃１〜３が、図１に示したストレージ装置１０２＃１〜３に相当する。そして、ＳＳＤ＃４が、図１に示したストレージ装置１０２＃４に相当する。
【００３４】
ＳＳＤ＃１〜４は、ＲＡＩＤを構成可能なＳＳＤである。また、ＳＳＤ＃４およびデバイスエンクロージャ２０２が有する他のストレージ装置は、ＳＳＤ以外のフラッシュメモリを用いた記憶媒体を用いてもよい。例えば、デバイスエンクロージャ２０２が有する他のストレージ装置は、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）等のフラッシュメモリ以外の不揮発性半導体メモリを用いた記憶媒体を用いてもよい。ＳＳＤ＃４およびデバイスエンクロージャ２０２が有する他のストレージ装置は、磁気記憶媒体にデータを記録するＨＤＤであってもよい。
【００３５】
チャネルアダプタ２０３ａ〜２０３ｄは、ホストコンピュータ２１１とＣＭ２０１ａ、２０１ｂとの接続制御を行う。例えば、チャネルアダプタ２０３ａは、ホストコンピュータ２１１からの要求を受け付けて、ＣＭ２０１ａとの接続制御を行う。ＣＭ２０１ａ、２０１ｂは、それぞれ複数個（図２ではそれぞれ２個）のチャネルアダプタ２０３ａ〜２０３ｄに接続可能になっている。すなわち、例えばＣＭ２０１ａは、冗長構成が実現されるように、２つの異なるチャネルアダプタ２０３ａ、２０３ｂにそれぞれ接続される。
【００３６】
なお、チャネルアダプタ２０３ａ〜２０３ｄとホストコンピュータ２１１との間の通信は、ファイバチャネルで形成されたＳＡＮによって接続されるが、ファイバチャネル以外の接続方式によって接続されてもよい。また、チャネルアダプタ２０３ａ〜２０３ｄとホストコンピュータ２１１との間の通信は、専用線やＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）を用いて、ストレージシステム２００をホストコンピュータ２１１から遠隔地に設置するように構成してもよい。
【００３７】
なお、図２において、ＣＭ２０１ａ、２０１ｂは２個図示しており、およびチャネルアダプタ２０３ａ〜２０３ｄは、ＣＭ２０１ａ、２０１ｂそれぞれに対してそれぞれ２個ずつ図示したが、これらの数はそれぞれ任意である。また、デバイスエンクロージャ２０２は、１個図示したが、デバイスエンクロージャの数は任意である。
【００３８】
図３は、ＣＭ２０１ａのハードウェア構成例を示すブロック図である。ＣＭ２０１ａは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１ａ、メモリ３０２ａ、およびデバイスインタフェース（Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）３０３ａ＿ａ、３０３ａ＿ｂを有する。ＣＰＵ３０１ａ〜デバイスインタフェース３０３ａ＿ｂは、それぞれ、バス３０４ａにより接続される。
【００３９】
ＣＰＵ３０１ａは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などに従って処理を実行し、各種制御を行う。また、ＣＭ２０１ａは、メモリ３０２ａ、デバイスエンクロージャ２０２が有するＳＳＤ＃１〜４および他のストレージ装置、チャネルアダプタ２０３ａ〜２０３ｄなどの資源管理を行う。
【００４０】
メモリ３０２ａは、ＣＰＵ３０１ａがストレージシステム２００を制御する際に用いる制御データを記憶する。また、メモリ３０２ａは、デバイスエンクロージャ２０２が有する各ストレージ装置に読み書きされる入出力データを一時的に記憶する。
【００４１】
デバイスインタフェース３０３ａ＿ａ、３０３ａ＿ｂは、デバイスエンクロージャ２０２が有する各ストレージ装置との接続制御を行う。また、ＣＭ２０１ａ、２０１ｂは、制御装置として機能し、ストレージシステム２００に対して着脱可能である。ここで、ＣＭ２０１ｂは、ＣＭ２０１ａと同一の構成であるため、説明を省略する。
【００４２】
図４は、ＣＭ２０１ａの機能構成例を示すブロック図である。ＣＭ２０１ａは、制御部４００を含む。そして、制御部４００は、特定部４０１と、移行部４０２と、設定部４０３とを含む。制御部４００は、記憶装置に記憶されたプログラムをＣＰＵ３０１が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図３に示したメモリ３０２などである。また、各部の処理結果は、メモリ３０２、ＣＰＵ３０１のレジスタ、ＣＰＵ３０１のキャッシュメモリ等に格納される。また、図４では、制御部４００は、ＣＭ２０１ａが有する機能であるが、ＣＭ２０１ｂのＣＰＵが実行することにより、ＣＭ２０１ｂが有する機能でもよい。
【００４３】
また、図４には図示していないが、ＣＭ２０１ａは、管理テーブルにアクセスすることが可能である。管理テーブルは、各ＳＳＤのＴＢＷを記憶する。また、管理テーブルは、各ＳＳＤが、書き込みデータ量の不均等化を行っている間か否かを示す識別情報を記憶する。
【００４４】
特定部４０１は、ＲＡＩＤグループから、閾値Ａを超えた書き込みデータ量となった複数のＳＳＤを特定する。また、特定部４０１は、閾値Ａを超えた書き込みデータ量となったＳＳＤのうち、閾値Ａを超えた書き込みデータ量となったＳＳＤの数未満となる複数のＳＳＤを特定してもよい。例えば、閾値Ａを超えた書き込みデータ量となったＳＳＤの個数がｎであれば、特定部４０１は、閾値Ａを超えた書き込みデータ量となったＳＳＤのうち、２以上ｎ−１個のＳＳＤを、複数のＳＳＤとして特定する。
【００４５】
移行部４０２は、特定部４０１が特定した複数のＳＳＤの各々のＳＳＤの間で記憶容量が異なる各々のＳＳＤの一部の記憶領域のデータを、ＲＡＩＤグループに属さないホットスペアの記憶領域に移行する。一部の記憶領域の記憶容量は、各々のＳＳＤの間で可能な限り離れていた方が好ましい。
【００４６】
例えば、特定部４０１が、複数のＳＳＤとして２つのＳＳＤを特定したとする。そして、移行できる最大の記憶容量が、ホットスペアの記憶容量であるとする。この場合、移行部４０２は、１つ目のＳＳＤの移行元となる記憶領域の記憶容量を、ホットスペアの記憶容量／３とし、２つ目のＳＳＤの移行元となる記憶領域の記憶容量を、ホットスペアの記憶容量＊２／３とする。この場合、１つ目のＳＳＤと２つ目のＳＳＤとの書き込みデータに、本来の書き込みデータ量×ホットスペアの記憶容量／３分の差を生じさせることができる。
【００４７】
また、特定部４０１が、複数のＳＳＤとして３つのＳＳＤを特定したとする。そして、移行できる最大の記憶容量が、ホットスペアの記憶容量であるとする。この場合、移行部４０２は、１つ目のＳＳＤの移行元となる記憶領域の記憶容量を、ホットスペアの記憶容量／６とし、２つ目のＳＳＤの移行元となる記憶領域の記憶容量を、ホットスペアの記憶容量＊２／６とする。さらに、移行部４０２は、３つ目のＳＳＤの移行元となる記憶領域の記憶容量を、ホットスペアの記憶容量＊３／６とする。この場合、１つ目のＳＳＤと２つ目のＳＳＤとの書き込みデータと、１つ目のＳＳＤと２つ目のＳＳＤとの書き込みデータに、本来の書き込みデータ量×ホットスペアの記憶容量／６分の差を生じさせることができる。
【００４８】
以上を踏まえて、特定部４０１が複数のＳＳＤとしてｋ個のＳＳＤを特定したとする。そして、移行できる最大の記憶容量が、ホットスペアの記憶容量であるとする。この場合、移行部４０２は、１からｋまでのｉ番目のＳＳＤの移行元となる記憶領域の記憶容量を、ホットスペアの記憶容量＊ｉ／（１＋…＋ｋ）とする。以下の記載では、ｉ番目のＳＳＤの移行元となる記憶領域の記憶容量を、規定値ｔｄiと記載する。
【００４９】
また、移行部４０２は、特定部４０１が特定した複数のＳＳＤの各々のＳＳＤの一部の記憶領域の記憶容量が異なるものであって、かつ、次に示す２つの条件をともに満たすデータを、ホットスペアの記憶領域に移行してもよい。１つ目の条件は、複数のＳＳＤの各々のＳＳＤの一部の記憶領域のデータが、各々のＳＳＤの間でデータと当該データのパリティの関係でないことである。そして、２つ目の条件は、複数のＳＳＤの各々のＳＳＤの一部の記憶領域のデータが、各々のＳＳＤの間で同一のパリティを形成するデータでないことである。
【００５０】
ここで、移行部４０２の説明のために、ＲＡＩＤにおける以下の単語を説明する。ＲＡＩＤグループを形成するＳＳＤに配置されたデータを横つながりに組み合わせた１つのデータセットを、「ストライプ（ｓｔｒｉｐｅ）」と呼称する。１ストライプには、データと、データのパリティとが含まれる。例えば、３つのＳＳＤで形成されるＲＡＩＤ５の１ストライプは、２つのデータと、２つのデータのＸＯＲとなるパリティとを有する。
【００５１】
そして、移行部４０２は、規定値ｔｄ1分のデータであって、各ストライプから１番目のＳＳＤが記憶するデータまたはパリティを、１番目のＳＳＤの移行元の記憶領域のデータとする。そして、移行部４０２は、規定値ｔｄ2分のデータであって、１番目のＳＳＤの移行元の記憶領域のデータに含まれるストライプとは別のストライプから２番目のＳＳＤが記憶するデータまたはパリティを、２番目のＳＳＤの移行元の記憶領域のデータとする。このように、移行する一部の記憶領域を既に決定したＳＳＤの一部の記憶領域のデータが含まれるストライプとは別のストライプから、これからＳＳＤの一部の記憶領域のデータを決定することにより、上述の２つの条件を満たすことができる。
【００５２】
また、移行部４０２は、一部の記憶領域のデータを移行した後、複数のＳＳＤのうちのいずれか２つのＳＳＤの書き込みデータ量の差分が閾値Ｂを超えた場合、移行先の記憶領域のデータを、一部の記憶領域に移行してもよい。閾値Ｂは、フラッシュメモリの書き込み可能回数から特定される閾値である。
【００５３】
設定部４０３は、一部の記憶領域に対するアクセスのアクセス先を、一部の記憶領域のデータを移行した移行先の記憶領域に設定する。設定方法としては、例えば、図１で記載したように、仮想的なストレージ装置に設定する方法や、移行元の記憶領域へのアクセスが発生する度に、移行先の記憶領域へのアクセスとなるように設定する方法がある。
【００５４】
また、設定部４０３は、移行先の記憶領域のデータを、一部の記憶領域に移行した後、一部の記憶領域に対するアクセスのアクセス先を移行先の記憶領域に設定することを停止してもよい。具体的には、仮想的なストレージ装置に設定する方法を実施していた場合、設定部４０３は、仮想的なストレージ装置を解放して、元のストレージ装置でＲＡＩＤグループを再形成する。また、移行元の記憶領域へのアクセスが発生する度に、移行先の記憶領域へのアクセスとなるように設定する方法を実施していた場合、設定部４０３は、移行先の記憶領域へのアクセスとなるように設定することを止める。
【００５５】
次に、図５、図６について、ＲＡＩＤグループに属する各ＳＳＤの書き込みデータ量を、仮想ホットスペアを作成して不均等化する例と、十分に書き込みデータ量を不均等化できたため、作成した仮想ホットスペアを解放する例とについて説明する。図５、６で説明するＳＳＤ＃１〜４は、説明の簡略化のため、同一容量の４００［ＧＢ］であり、同一モデルであって、書き込み性能が同一であるとする。また、説明の簡略化のため、ホストコンピュータ２１１によりＲＡＩＤ＃１〜３への書き込みデータ量は、ＳＳＤ＃１〜３で同一量であるとする。
【００５６】
また、各ＳＳＤの書き込みデータ量を不均等化する処理と、仮想ホットスペアを解放する処理とは、ＣＭ２０１ａ、２０１ｂのいずれが行ってもよい。本実施の形態では、ＣＭ２０１ａが実行する例を用いて説明する。また、図５、図６において、黒く塗りつぶした領域は、ＲＡＩＤとして用いられる記憶領域であることを示し、白塗りの領域は、未使用の領域であることを示す。
【００５７】
図５は、各ＳＳＤの書き込みデータ量を不均等化する例を示す説明図である。まず、図５の（ａ）で示すように、ＣＭ２０１ａは、ＳＳＤ＃１〜３によりＲＡＩＤレベルがＲＡＩＤ５となるＲＡＩＤグループを形成するとともに、ＳＳＤ＃４をホットスペアに設定する。この際に、ＣＭ２０１ａは、ＩｎｑｕｉｒｙコマンドをＳＳＤ＃１〜４に送信して、ＳＳＤ＃１〜４のＴＢＷを取得して、管理テーブルに記憶する。
【００５８】
そして、ＣＭ２０１ａは、ＳＳＤ＃１〜４のＴＢＷに基づいて、閾値Ａを決定する。例えば、ストレージシステム２００の管理者が、ＴＢＷの２／３の値を、閾値Ａとするように決定しておく。そして、図５の例において、ＳＳＤ＃１〜４のＴＢＷが全て３［ＰＢ］であれば、ＣＭ２０１は、閾値Ａを、３＊２／３＝２［ＰＢ］とする。
【００５９】
また、ＣＭ２０１ａは、ＳＳＤ＃１〜４の記憶容量に基づいて、閾値Ｂを決定する。例えば、ストレージシステム２００の管理者が、ＲＡＩＤグループを形成する各ストレージ装置の記憶容量と、ホットスペアの記憶容量との平均値を５０倍した値を、閾値Ｂとするように決定しておく。そして、図５の例において、ＣＭ２０１ａは、閾値Ｂを、ＳＳＤ＃１〜４の記憶容量の平均値４００＊５０＝２００００［ＧＢ］＝２０［ＴＢ］とする。
【００６０】
次に、ＣＭ２０１ａは、ＳＳＤ＃１〜４に、１日１回ｌｏｇ  ｓｅｎｓｅコマンドを発行し、得られたＳＳＤ＃１〜４の書き込みデータ量と、閾値Ａとなる２［ＰＢ］とを比較する。図５の例では、ＳＳＤ＃１〜３の書き込みデータ量が、閾値Ａを超えたとする。
【００６１】
そして、ＣＭ２０１ａは、書き込みデータ量が閾値Ａを超えた複数のＳＳＤを特定する。このとき、特定するＳＳＤの個数は、ＲＡＩＤグループに属する全てのＳＳＤの書き込みデータ量が閾値Ａを超えたとしても、ＲＡＩＤグループに属する全てのＳＳＤの個数−１で十分である。図５の（ｂ）の例では、ＣＭ２０１ａは、ＳＳＤ＃２、３を特定する。
【００６２】
次に、ＣＭ２０１ａは、特定したＳＳＤ＃２、３について、ＳＳＤ＃２の規定値ｔｄ1の記憶容量を有する記憶領域のデータと、ＳＳＤ＃３の規定値ｔｄ2の記憶容量を有する記憶領域のデータとを、ホットスペアとなるＳＳＤ＃４に移行する。図５の（ｂ）の例では、ＣＭ２０１ａは、規定値ｔｄ1＝４００＊１／３＝１３３．３［ＧＢ］のデータをＳＳＤ＃４の先頭の記憶領域に移行する。そして、ＣＭ２０１ａは、規定値ｔｄ2＝４００＊２／３＝２６６．７［ＧＢ］のデータを、ＳＳＤ＃４の先頭の記憶領域から規定値ｔｄ1の次の記憶領域に移行する。図５の（ｂ）で、ハッチを付与した領域が、移行元の記憶領域を示す。
【００６３】
ここで、移行する際、ＳＳＤ＃２の移行元の記憶領域は、ＳＳＤ＃２のどの記憶領域でもよく、同様にＳＳＤ＃３の移行元の記憶領域は、ＳＳＤ＃３のどの記憶領域でもよい。ただし、各ＳＳＤの書き込みデータ量の不均等化中の冗長度を低下させないために、ＳＳＤ＃２、３のそれぞれの移行元の記憶領域のデータが、いずれか一方のデータが他方のデータのパリティでなく、かつ、同一のパリティを形成するデータでないことが好ましい。具体的な各ＳＳＤの移行元の記憶領域の例を、図７を用いて説明する。
【００６４】
そして、ＣＭ２０１ａは、ＳＳＤ＃２の移行元の記憶領域と、ＳＳＤ＃３の移行元の記憶領域へのアクセスのアクセス先を、ＳＳＤ＃４内の移行先の記憶領域に設定する。これにより、ストレージシステム２００は、移行後に発生したＳＳＤ＃２への書き込みのうちの１／３をＳＳＤ＃４に書き込むようになり、ＳＳＤ＃２への書き込みデータ量は、アクセス先を移行先の記憶領域に設定する前に比べて、２／３に減少する。同様に、ストレージシステム２００は、移行後に発生したＳＳＤ＃３への書き込みのうちの２／３をＳＳＤ＃４に書き込むようになり、ＳＳＤ＃３への書き込みデータ量は、アクセス先を移行先の記憶領域に設定する前に比べて、１／３に減少する。
【００６５】
次に、ＣＭ２０１ａは、ＳＳＤ＃２の移行元の記憶領域と、ＳＳＤ＃３の移行元の記憶領域とを仮想ホットスペアとして割り当てる。図５の（ｃ）の例では、ＣＭ２０１ａは、点線５０１で示した記憶領域を、仮想ホットスペアとして割り当てる。これにより、ストレージシステム２００は、ＳＳＤ＃１〜４のいずれかが故障しても、仮想ホットスペアにデータを復元することができる。
【００６６】
例えば、ＳＳＤ＃１が故障した場合、ＣＭ２０１ａは、ＳＳＤ＃２〜４のデータを用いて、仮想ホットスペアの記憶領域に、ＳＳＤ＃１のデータを復元することができる。また、ＳＳＤ＃２が故障した場合、ＣＭ２０１ａは、ＳＳＤ＃１、３、４のデータを用いて、仮想ホットスペアの記憶領域のうちのＳＳＤ＃３の記憶領域に、ＳＳＤ＃２のデータを復元することができる。また、ＳＳＤ＃３が故障した場合、ＣＭ２０１ａは、ＳＳＤ＃１、２、４のデータを用いて、仮想ホットスペアの記憶領域のうちのＳＳＤ＃２の記憶領域に、ＳＳＤ＃３のデータを復元することができる。また、ＳＳＤ＃４が故障した場合、移行元の記憶領域のデータが図７で示す条件を満たせば、ＣＭ２０１ａは、ＳＳＤ＃１〜３のデータを用いて、仮想ホットスペアの記憶領域に、ＳＳＤ＃４のデータを復元することができる。
【００６７】
図６は、仮想ホットスペアを解放する例を示す説明図である。図６に示す状態は、図５の（ｃ）の後、ストレージシステム２００の運用を続けた状態である。ＣＭ２０１ａは、定期的に、ＳＳＤ＃１〜３にｌｏｇ  ｓｅｎｓｅコマンドを発行して、ＳＳＤ＃１〜３の書き込みデータ量を取得する。そして、ＳＳＤ＃１がＴＢＷの３［ＰＢ］を超えずに、ＳＳＤ＃２、３の書き込みデータ量の差分が閾値Ｂの２０［ＴＢ：ＴｅｒａＢｙｔｅ］を超えたとき、ＣＭ２０１ａは、移行したデータを移行元の記憶領域に戻す。
【００６８】
図６の（ａ）で示す例では、ＣＭ２０１ａは、ＳＳＤ＃４の先頭から規定値ｔｄ1までの記憶領域のデータを、ＳＳＤ＃２の仮想ホットスペアとして割り当てた記憶領域に書き込む。次に、ＣＭ２０１ａは、ＳＳＤ＃４の規定値ｔｄ1から規定値ｔｄ2までの記憶領域のデータを、ＳＳＤ＃３の仮想ホットスペアとして割り当てた記憶領域に書き込む。そして、ＣＭ２０１ａは、仮想ホットスペアを解放して、ＳＳＤ＃４をホットスペアに設定する。
【００６９】
図６の（ｂ）では、仮想ホットスペアを解放した後の例を示す。仮想ホットスペアを解放した後の書き込みデータ量は、ＳＳＤ＃１〜４のそれぞれが、２．０６［ＰＢ］、２．０４［ＰＢ］、２．０２［ＰＢ］、０．０６［ＰＢ］となり、書き込みデータ量の不均等化が行えている。
【００７０】
図７は、移行するデータの一例を示す説明図である。図７では、ＲＡＩＤ＃１〜３でＲＡＩＤ５のＲＡＩＤグループを形成しており、ＳＳＤ＃１は、データｄＡ、ｄＣ、パリティｐＥＦを記憶する。また、ＳＳＤ＃２は、データｄＢ、パリティｐＣＤ、データｄＥを記憶する。また、ＳＳＤ＃３は、パリティｐＡＢ、データｄＤ、ｄＦを記憶する。ここで、パリティｐＸＹは、データＸとデータＹとのパリティである。そして、データｄＡ〜ｄＦと、パリティｐＡＢ、ｐＣＤ、ｐＥＦとは、全て、ＳＳＤの全記憶容量の１／３のデータであるとする。
【００７１】
ここで、図４で説明したストライプを用いて説明すると、データｄＡ、ｄＢ、パリティｐＡＢが同一ストライプであり、ストライプ１とする。また、データｄＣ、ｄＤ、パリティｐＣＤが同一ストライプであり、ストライプ２とする。また、データｄＥ、ｄＦ、パリティｐＥＦが同一ストライプであり、ストライプ３とする。
【００７２】
この状態で、ＣＭ２０１ａは、冗長度が低下しない条件として、ＳＳＤ＃２、３のそれぞれの移行元の記憶領域のデータが、いずれか一方のデータが他方のデータのパリティでなく、かつ、同一のパリティを形成するデータでないように設定する。例えば、図７の（ａ）で示すように、ＣＭ２０１ａは、ＳＳＤ＃２の規定値ｔｄ1の記憶容量を有する記憶領域のデータであり、ストライプ１に属するデータｄＢをＳＳＤ＃４に移行する。さらに、ＣＭ２０１ａは、ＳＳＤ＃３の規定値ｔｄ2の記憶容量を有する記憶領域のデータであり、ストライプ２に属するデータｄＤと、ストライプ３に属するデータｄＦとをＳＳＤ＃４に移行する。
【００７３】
移行した結果を図７の（ｂ）で示す。これにより、ＳＳＤ＃４が故障しても、ＳＳＤ＃４には、同一のストライプに属するデータまたはパリティが複数存在することがないため、仮想ホットスペアにＳＳＤ＃４のデータを復元することができる。具体的には、ＣＭ２０１ａは、ＳＳＤ＃４が記憶するデータｄＢ、ｄＤ、ｄＦを、ＳＳＤ＃１〜３が記憶するデータｄＡ、ｄＣ、ｄＥと、パリティｐＡＢ、ｐＣＤ、ｐＥＦとを用いて復元する。例えば、ＣＭ２０１ａは、データｄＡとパリティｐＡＢのＸＯＲにより、データｄＢを復元する。また、ＣＭ２０１ａは、データｄＣとパリティｐＣＤのＸＯＲにより、データｄＤを復元する。また、ＣＭ２０１ａは、データｄＥとパリティｐＥＦのＸＯＲにより、データｄＦを復元する。
【００７４】
次に、ＣＭ２０１ａが実行するフローチャートを、図８〜図１１を用いて説明する。
【００７５】
図８は、ＳＳＤ書き込みデータ量閾値設定処理手順の一例を示すフローチャートである。ＳＳＤ書き込みデータ量閾値設定処理は、閾値Ａ、Ｂを設定する処理である。ＳＳＤ書き込みデータ量閾値設定処理は、複数のＳＳＤによりＲＡＩＤグループを形成した際に実行する処理である。
【００７６】
ＣＭ２０１ａは、ＲＡＩＤグループ内の各ＳＳＤのＴＢＷの値を、管理テーブルに記憶する（ステップＳ８０１）。次に、ＣＭ２０１ａは、ＴＢＷに基づいて、閾値Ａ、閾値Ｂを決定する（ステップＳ８０２）。ステップＳ８０２の処理終了後、ＣＭ２０１ａは、ＳＳＤ書き込みデータ量閾値設定処理を終了する。ＳＳＤ書き込みデータ量閾値設定処理を実行することにより、ＣＭ２０１ａは、閾値Ａ、Ｂを設定することができる。
【００７７】
図９は、ＳＳＤ書き込みデータ量閾値超え判定処理手順の一例を示すフローチャートである。ＳＳＤ書き込みデータ量閾値超え判定処理は、閾値Ａを超えたか否かを判定する処理である。
【００７８】
ＣＭ２０１ａは、ＲＡＩＤグループ内の各ＳＳＤに、ｌｏｇ  ｓｅｎｓｅコマンドを発行して、書き込みデータ量を取得する（ステップＳ９０１）。次に、ＣＭ２０１ａは、書き込みデータ量が閾値Ａを超えたか否かを判断する（ステップＳ９０２）。書き込みデータ量が閾値Ａを超えた場合（ステップＳ９０２：Ｙｅｓ）、ＣＭ２０１ａは、書き込みデータ量が閾値Ａを超えたＳＳＤが２つ以上か否かを判断する（ステップＳ９０３）。書き込みデータ量が閾値Ａを超えたＳＳＤが２つ以上である場合（ステップＳ９０３：Ｙｅｓ）、ＣＭ２０１ａは、書き込みデータ量不均等化が未適用か否かを判断する（ステップＳ９０４）。書き込みデータ量不均等化が未適用である場合（ステップＳ９０４：Ｙｅｓ）、ＣＭ２０１ａは、ＳＳＤ書き込みデータ量不均等化処理を実行する（ステップＳ９０５）。ステップＳ９０５の処理終了後、ＣＭ２０１ａは、ＳＳＤ書き込みデータ量閾値超え判定処理を終了する。
【００７９】
一方、書き込みデータ量が閾値Ａを超えない場合、書き込みデータ量が閾値Ａを超えたＳＳＤが２つ未満である場合、書き込みデータ量不均等化が適用済である場合（ステップＳ９０２〜Ｓ９０４：Ｎｏ）、ＣＭ２０１ａは、ステップＳ９０１の処理に移行する。ＳＳＤ書き込みデータ量閾値超え判定処理を実行することにより、ＣＭ２０１ａは、閾値Ａを超えた際に、ＳＳＤ書き込みデータ量不均等化処理を実行することができる。
【００８０】
図１０は、ＳＳＤ書き込みデータ量不均等化処理手順の一例を示すフローチャートである。ＳＳＤ書き込みデータ量不均等化処理は、各ＳＳＤの書き込みデータ量を不均等に設定する処理である。
【００８１】
ＣＭ２０１ａは、書き込みデータ量が閾値Ａを超えたＳＳＤのうち、最大ｎ−１個のＳＳＤを特定する（ステップＳ１００１）。ここで、特定したＳＳＤに対して、書き込みデータ量不均等化を行うため、ＣＭ２０１ａは、管理テーブルの特定したＳＳＤに対して、書き込みデータ量不均等化を適用したことを記録する。
【００８２】
次に、ＣＭ２０１ａは、特定したｎ−１個のＳＳＤ（ＳＳＤ１、…、ＳＳＤ（ｎー１））のうち、ＳＳＤ１の規定値ｔｄ1の記憶容量を有する記憶領域のデータと、…、ＳＳＤ（ｎ−１）の規定値ｔｄn-1の記憶容量を有する記憶領域のデータとをホットスペアに移行する（ステップＳ１００２）。そして、ＣＭ２０１ａは、ＳＳＤ１の移行元の記憶領域と、…、ＳＳＤ（ｎ−１）の移行元の記憶領域と、に対するＲＡＩＤグループによるアクセスのアクセス先を、移行先の記憶領域に設定する（ステップＳ１００３）。次に、ＣＭ２０１ａは、ＳＳＤ１の移行元の記憶領域と、…、ＳＳＤ（ｎ−１）の移行元の記憶領域とを、仮想ホットスペアとして割り当てる（ステップＳ１００４）。
【００８３】
ステップＳ１００４の処理終了後、ＣＭ２０１ａは、ＳＳＤ書き込みデータ量不均等化処理を終了する。ＳＳＤ書き込みデータ量不均等化処理を実行することにより、このままストレージシステム２００を運用し続けることにより、ＣＭ２０１ａは、各ＳＳＤの書き込みデータ量を不均等化することができる。
【００８４】
図１１は、仮想ホットスペア解放処理手順の一例を示すフローチャートである。仮想ホットスペア解放処理は、仮想ホットスペアを解放する処理である。まず、ＣＭ２０１ａは、ＳＳＤ１とＳＳＤ２とにｌｏｇ  ｓｅｎｓｅコマンドを発行して、書き込みデータ量を取得する（ステップＳ１１０１）。ここで、ＣＭ２０１ａは、データを移行した全てのＳＳＤに対して、ｌｏｇ  ｓｅｎｓｅコマンドを発行しなくてよく、ＲＡＩＤグループに属するストレージ装置のいずれか２つに対して発行すれば十分である。データを移行したＳＳＤのうちのいずれか２つのＳＳＤの書き込みデータ量が閾値Ｂを超えている場合、データを移行したＳＳＤのうちの他の２つのＳＳＤの書き込みデータ量も閾値Ｂを超えている可能性が高いためである。
【００８５】
次に、ＣＭ２０１ａは、ＳＳＤ１とＳＳＤ２との書き込みデータ量の差分が閾値Ｂを超えたか否かを判断する（ステップＳ１１０２）。ＳＳＤ１とＳＳＤ２との書き込みデータ量の差分が閾値Ｂを超えない場合（ステップＳ１１０２：Ｎｏ）、ＣＭ２０１ａは、一定時間後、ステップＳ１１０１の処理に移行する。
【００８６】
一方、ＳＳＤ１とＳＳＤ２との書き込みデータ量の差分が閾値Ｂを超えた場合（ステップＳ１１０２：Ｙｅｓ）、ＣＭ２０１ａは、ホットスペア上の規定値ｔｄ1＋…＋規定値ｔｄn-1分のデータを、それぞれ、ＳＳＤ１、…、ＳＳＤ（ｎ−１）に移行する（ステップＳ１１０３）。そして、ＣＭ２０１ａは、アクセス先を移行先の記憶領域に設定することを停止する（ステップＳ１１０４）。次に、ＣＭ２０１ａは、ホットスペアを、仮想ホットスペアから、１つのＳＳＤとなるように設定する（ステップＳ１１０５）。ステップＳ１１０５の処理終了後、ＣＭ２０１ａは、仮想ホットスペア解放処理を終了する。仮想ホットスペア解放処理を実行することにより、ＣＭ２０１ａは、各ＳＳＤの書き込みデータ量が不均等化した際に、仮想ホットスペアを解放することができる。
【００８７】
以上説明したように、ＣＭ２０１ａによれば、ＳＳＤ＃１〜３により形成されたＲＡＩＤグループ内における書き込みデータ量が閾値Ａを超えた複数のＳＳＤの間で記憶容量が異なる一部の記憶領域のデータをＳＳＤ＃４に移行し、移行先をアクセス先に設定する。これにより、ＣＭ２０１ａは、ＳＳＤ＃１〜３の間で書き込みデータ量に差がつき、ＳＳＤ＃１〜３のうちの２つ以上のＳＳＤの書き込みデータ量が同時に書き込み可能なデータ量に到達することを抑制することができる。また、本実施の形態におけるＲＡＩＤグループのＲＡＩＤレベルは、ＲＡＩＤ０〜ＲＡＩＤ６のいずれのレベルであってもよいし、複数のＲＡＩＤレベルを組み合わせたレベルであってもよい。
【００８８】
また、ＣＭ２０１ａによれば、閾値Ａを超えた書き込みデータ量となったＳＳＤのうち、閾値Ａを超えた書き込みデータ量となったＳＳＤの数未満となる複数のＳＳＤを特定してもよい。これにより、ＣＭ２０１ａは、閾値Ａを超えた書き込みデータ量となったＳＳＤの全てを複数のＳＳＤとして特定するよりも、各ＳＳＤの書き込みデータ量の差を大きくすることができる。
【００８９】
例えば、閾値Ａを超えた書き込みデータ量となったＳＳＤが３つであるとする。このとき、３つのうちの２つを複数のＳＳＤとして特定した場合、ＣＭ２０１は、１つ目のＳＳＤの１／３の記憶領域を移行し、２つ目のＳＳＤの２／３の記憶領域を移行する。これにより、記憶領域を移行しなかったＳＳＤと、記憶領域を１／３分移行したＳＳＤと、記憶領域を２／３分移行したＳＳＤとの間で、それぞれ、移行後の書き込みデータ量の１／３ずつの差ができることになる。
【００９０】
一方、３つ全てを複数のＳＳＤとして特定した場合、ＣＭ２０１は、１つ目のＳＳＤの１／６の記憶領域を移行し、２つ目のＳＳＤの２／６の記憶領域を移行し、３つ目のＳＳＤの３／６の記憶領域を移行する。これにより、記憶領域を１／６分移行したＳＳＤと、記憶領域を２／６分移行したＳＳＤと、記憶領域を３／６分移行したＳＳＤとの間で、それぞれ、移行後の書き込みデータ量の１／６ずつの差ができることになる。このように、特定したＳＳＤの個数が小さいほど、移行後の書き込みデータ量の差を大きくすることができる。
【００９１】
また、ＣＭ２０１ａによれば、一部の記憶領域のデータを移行した後、複数のＳＳＤのうちのいずれか２つのＳＳＤの書き込みデータ量の差分が閾値Ｂを超えた場合、移行先の記憶領域のデータを一部の記憶領域に移行し、アクセス先を変える設定を停止してもよい。これにより、各ＳＳＤの書き込みデータ量の差が十分についた状態となったので、ＣＭ２０１ａは、アクセス先を変える設定をしなくてよくなり、ＣＭ２０１ａにかかる負荷を軽減することができる。
【００９２】
また、ＣＭ２０１ａによれば、複数のＳＳＤの各々のＳＳＤの一部の記憶領域のデータが、各々のＳＳＤの間でデータとパリティの関係でなく、かつ、各々のＳＳＤの間で同一のパリティを形成するデータでないようにしてもよい。これにより、移行先には、同一のストライプに属するデータまたはパリティが複数存在することがないため、ＣＭ２０１ａは、ＲＡＩＤグループが有する冗長性を維持することができる。
【００９３】
なお、本実施の形態における制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【００９４】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００９５】
（付記１）フラッシュメモリを記憶媒体とするストレージ装置により形成されたＲＡＩＤグループから、前記フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、
特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる前記各々のストレージ装置の一部の記憶領域のデータを、前記ＲＡＩＤグループに属さない他のストレージ装置の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を、前記一部の記憶領域のデータを移行した移行先の記憶領域に設定する、
制御部を有することを特徴とするストレージ制御装置。
【００９６】
（付記２）前記制御部は、
前記データ量の上限値を超えた書き込みデータ量となったストレージ装置のうち、前記データ量の上限値を超えた書き込みデータ量となったストレージ装置の数未満となる複数のストレージ装置を特定することを特徴とする付記１に記載のストレージ制御装置。
【００９７】
（付記３）前記制御部は、
前記一部の記憶領域のデータを移行した後、前記複数のストレージ装置のうちのいずれか２つのストレージ装置の書き込みデータ量の差分が前記フラッシュメモリの書き込み可能回数から特定される閾値を超えた場合、前記移行先の記憶領域のデータを、前記一部の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を前記移行先の記憶領域に設定することを停止する、
ことを特徴とする付記１または２に記載のストレージ制御装置。
【００９８】
（付記４）前記制御部は、
特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なり、かつ、前記各々のストレージ装置の間でデータと当該データのパリティの関係でなく、かつ、前記各々のストレージ装置の間で同一のパリティを形成するデータでない前記各々のストレージ装置の一部の記憶領域のデータを、前記他のストレージ装置の記憶領域に移行することを特徴とする付記１〜３のいずれか一つに記載のストレージ制御装置。
【００９９】
（付記５）フラッシュメモリを記憶媒体とするストレージ装置とストレージ制御装置とを有するストレージシステムであって、
前記ストレージ制御装置は、
前記ストレージ装置により形成されたＲＡＩＤグループから、前記フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、
特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる前記各々のストレージ装置の一部の記憶領域のデータを、前記ＲＡＩＤグループに属さない他のストレージ装置の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を、前記一部の記憶領域のデータを移行した移行先の記憶領域に設定する、
ことを特徴とするストレージシステム。
【０１００】
（付記６）コンピュータに、
フラッシュメモリを記憶媒体とするストレージ装置により形成されたＲＡＩＤグループから、前記フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、
特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる前記各々のストレージ装置の一部の記憶領域のデータを、前記ＲＡＩＤグループに属さない他のストレージ装置の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を、前記一部の記憶領域のデータを移行した移行先の記憶領域に設定する、
処理を実行させることを特徴とする制御プログラム。
【０１０１】
（付記７）コンピュータが、
フラッシュメモリを記憶媒体とするストレージ装置により形成されたＲＡＩＤグループから、前記フラッシュメモリの書き込み可能回数から特定されるデータ量の上限値を超えた書き込みデータ量となった複数のストレージ装置を特定し、
特定した前記複数のストレージ装置の各々のストレージ装置の間で記憶容量が異なる前記各々のストレージ装置の一部の記憶領域のデータを、前記ＲＡＩＤグループに属さない他のストレージ装置の記憶領域に移行し、
前記一部の記憶領域に対するアクセスのアクセス先を、前記一部の記憶領域のデータを移行した移行先の記憶領域に設定する、
処理を実行することを特徴とする制御方法。
【符号の説明】
【０１０２】
１０１  ストレージ制御装置
１０２  ストレージ装置
２０１  ＣＭ
４００  制御部
４０１  特定部
４０２  移行部
４０３  設定部
【図１】
0006476959.tif 000002
【図２】
0006476959.tif 000003
【図３】
0006476959.tif 000004
【図４】
0006476959.tif 000005
【図５】
0006476959.tif 000006
【図６】
0006476959.tif 000007
【図７】
0006476959.tif 000008
【図８】
0006476959.tif 000009
【図９】
0006476959.tif 000010
【図１０】
0006476959.tif 000011
【図１１】
0006476959.tif 000012