(57)【要約】【課題】データ移行処理中のデータ移行先の記憶装置の減少に対応できること。【解決手段】記憶部２ａは、書き込まれるデータブロック６間に移行用データ記録領域を形成するよう設定されたデータブロック６の書き込み位置を示す制御テーブル２ａ１を複数の物理記憶装置５ａ、５ｂ、５ｃ毎に記憶する。書き込み制御部２ｂは、第１の記憶領域３ａ１に記憶されているデータブロック６を、記憶部２ａに記憶されている制御テーブル２ａ１に従って第２の記憶領域３ｂ１に書き込み、物理記憶装置５ｂを第２の記憶領域３ｂ１から開放する開放要求をデータ移行時に受け付けると、物理記憶装置５ｂに記憶されているデータブロック６を、第２の記憶領域３ｂ１を割り当てている物理記憶装置５ａに形成された移行用データ記録領域に移行する。開放部２ｃは、物理記憶装置５ｂに記憶されているデータブロック６の移行が完了すると、開放対象の物理記憶装置５ｂを開放する。【選択図】図１
2013125437.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの記憶装置に割り当てられたデータ移行元の第１の記憶領域から複数の記憶装置に割り当てられたデータ移行先の第２の記憶領域にデータを移行する制御装置において、
ブロック単位のデータを書き込む記録領域間に移行用のデータを書き込む移行用データ記録領域を形成するよう設定されたデータの書き込み位置を示す位置情報を前記複数の記憶装置毎に記憶する記憶部と、
前記第１の記憶領域に記憶されているデータを、前記記憶部に記憶されている前記位置情報に従って前記第２の記憶領域に書き込み、前記第２の記憶領域を割り当てている記憶装置のうち、少なくとも１つの記憶装置を前記第２の記憶領域から開放する開放要求をデータ移行時に受け付けると、開放対象の記憶装置に記憶されているデータを、前記第２の記憶領域を割り当てている残りの記憶装置に形成された移行用データ記録領域に移行する書き込み制御部と、
前記開放対象の記憶装置に記憶されているデータの移行が完了すると、前記開放対象の記憶装置を開放する開放部と、
を有することを特徴とする制御装置。
【請求項２】
前記移行用データ記録領域は、前記第２の記憶領域を割り当てている記憶装置の数に応じて設定されることを特徴とする請求項１記載の制御装置。
【請求項３】
前記移行用データ記録領域の位置が、前記第２の記憶領域を割り当てている記憶装置毎に異なることを特徴とする請求項１記載の制御装置。
【請求項４】
前記書き込み制御部は、前記開放要求の受け付けに応じて前記記憶部に記憶されている位置情報を残りの記憶装置の数に応じて書き換えることを特徴とする請求項１記載の制御装置。
【請求項５】
前記書き込み制御部は、前記第２の記憶領域を割り当てている記憶装置を追加する要求をデータ移行時に受け付けると、前記記憶部に記憶されている位置情報を、追加後の記憶装置の数に応じて書き換えることを特徴とする請求項１記載の制御装置。
【請求項６】
前記書き込み制御部は、記憶装置の開放要求を受け付けると、前記第２の記憶領域を割り当てている記憶装置のうち、追加された記憶装置を開放対象の記憶装置に決定することを特徴とする請求項５記載の制御装置。
【請求項７】
前記書き込み制御部は、前記第２の記憶領域へのデータの移行が完了すると、移行が完了したデータを、前記第２の記憶領域を割り当てている複数の記憶装置のうち１つの記憶装置に集約することを特徴とする請求項１記載の制御装置。
【請求項８】
少なくとも１つの記憶装置に割り当てられたデータ移行元の第１の記憶領域から複数の記憶装置に割り当てられたデータ移行先の第２の記憶領域にデータを移行するプログラムにおいて、
コンピュータに、
ブロック単位のデータを書き込む記録領域間に移行用のデータを書き込む移行用データ記録領域を形成するよう設定されたデータの書き込み位置を示す位置情報を前記複数の記憶装置毎に記憶する記憶部に記憶されている前記位置情報に従って前記第１の記憶領域に記憶されているデータを、前記第２の記憶領域に書き込み、
前記第２の記憶領域を割り当てている記憶装置のうち、少なくとも１つの記憶装置を前記第２の記憶領域から開放する開放要求をデータ移行時に受け付けると、開放対象の記憶装置に記憶されているデータを、前記第２の記憶領域を割り当てている残りの記憶装置に形成された移行用データ記録領域に移行し、
前記開放対象の記憶装置に記憶されているデータの移行が完了すると、前記開放対象の記憶装置を開放する、
処理を実行させることを特徴とするプログラム。
【請求項９】
データ移行元の第１の記憶領域に割り当てられた少なくとも１つの記憶装置と、
データ移行先の第２の記憶領域に割り当てられた複数の記憶装置と、
ブロック単位のデータを書き込む記録領域間に移行用のデータを書き込む移行用データ記録領域を形成するよう設定されたデータの書き込み位置を示す位置情報を前記複数の記憶装置毎に記憶する記憶部と、
前記第１の記憶領域に記憶されているデータを、前記記憶部に記憶されている前記位置情報に従って前記第２の記憶領域に書き込み、前記第２の記憶領域を割り当てている記憶装置のうち、少なくとも１つの記憶装置を前記第２の記憶領域から開放する開放要求をデータ移行時に受け付けると、開放対象の記憶装置に記憶されているデータを、前記第２の記憶領域を割り当てている残りの記憶装置に形成された移行用データ記録領域に移行する書き込み制御部と、
前記開放対象の記憶装置に記憶されているデータの移行が完了すると、前記開放対象の記憶装置を開放する開放部と、
を有することを特徴とするストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御装置、プログラムおよびストレージ装置に関する。
【背景技術】
【０００２】
ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成し、一定のパターンの冗長ディスク格納を提供する技術が知られている。
また、ＲＡＩＤを構成するディスクの故障に備えてホットスペアディスクを作成する技術が知られている。活動状態の格納デバイスが故障したときには、故障した格納デバイスはホットスペアディスクと論理的に置き換えられ、データはホットスペアディスクの上に移動するかまたは再作成される。
【０００３】
さらにホットスペアディスクを複数の格納デバイスにおける未使用の格納容量から、仮想ホットスペアを作成する技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００８−５１９３５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、仮想ホットスペアを用いてＲＡＩＤ構成を変更する場合を考える。仮想ホットスペアを構成するホットスペアディスクの数を多くすれば、データ読み出しを並列に実行できることから多くのホットスペアディスクを仮想ホットスペアに割り当てることで、データ移行時間を短縮することができる。反面、ＲＡＩＤを構成するディスクが故障した際等に発生するホットスペア要求への備えは薄くなる。
【０００６】
データ移行処理中にディスクに異常が発生し、仮想ホットスペアを構成するホットスペアディスクをリカバリに割り当てる場合、データ移行処理をキャンセルすることになる。データ移行処理をキャンセルすると、キャンセル前までに処理していたデータ移行処理が無駄になってしまう。再度最初からデータ移行処理を実行すると、データ移行時間が長くなるという問題がある。
【０００７】
１つの側面では、本発明は、データ移行処理中のデータ移行先の記憶装置の減少に対応できることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、開示の制御装置が提供される。この制御装置は、少なくとも１つの記憶装置に割り当てられたデータ移行元の第１の記憶領域から複数の記憶装置に割り当てられたデータ移行先の第２の記憶領域にデータを移行する装置であり、記憶部と、書き込み制御部と、開放部とを有している。
【０００９】
記憶部は、ブロック単位のデータを書き込む記録領域間に移行用のデータを書き込む移行用データ記録領域を形成するよう設定されたデータの書き込み位置を示す位置情報を複数の記憶装置毎に記憶する。
【００１０】
書き込み制御部は、第１の記憶領域に記憶されているデータを、記憶部に記憶されている位置情報に従って第２の記憶領域に書き込み、第２の記憶領域を割り当てている記憶装置のうち、少なくとも１つの記憶装置を第２の記憶領域から開放する開放要求をデータ移行時に受け付けると、開放対象の記憶装置に記憶されているデータを、第２の記憶領域を割り当てている残りの記憶装置に形成された移行用データ記録領域に移行する。
【００１１】
開放部は、開放対象の記憶装置に記憶されているデータの移行が完了すると、開放対象の記憶装置を開放する。
【発明の効果】
【００１２】
１態様では、データ移行処理中のデータ移行先の記憶装置の減少に対応することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態のストレージ装置を示す図である。
【図２】第１の実施の形態の開放処理を説明する図である。
【図３】第２の実施の形態のストレージシステムを示すブロック図である。
【図４】第２の実施の形態のストレージシステムの機能を示すブロック図である。
【図５】ビットマップテーブルの一例を示す図である。
【図６】ビットマップテーブルの追加を説明する図である。
【図７】ビットマップテーブルの追加を説明する図である。
【図８】制御テーブルの一例を示す図である。
【図９】ＲＡＩＤ構成変更処理を示すフローチャートである。
【図１０】ＲＡＩＤ構成変更処理の具体例を説明する図である。
【図１１】ＲＡＩＤ構成変更処理の具体例を説明する図である。
【図１２】ＲＡＩＤ構成変更処理の具体例を説明する図である。
【図１３】ＲＡＩＤ構成変更処理の具体例を説明する図である。
【図１４】データ書き込み時の処理を示すフローチャートである。
【図１５】データ書き込み時の処理の具体例を説明する図である。
【図１６】ディスク開放処理を示すフローチャートである。
【図１７】ディスク開放処理の具体例を説明する図である。
【図１８】ディスク追加処理を示すフローチャートである。
【図１９】ディスク追加処理の具体例を説明する図である。
【図２０】データ集約処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、実施の形態のストレージ装置を、図面を参照して詳細に説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態のストレージ装置を示す図である。
【００１５】
第１の実施の形態のストレージ装置１は、制御装置２と、記憶装置群３とを有している。記憶装置群３は複数の物理記憶装置で構成されている。物理記憶装置としては、ＨＤＤ（Hard Disk Drive）や、ＳＳＤ（State Solid Drive）等が挙げられる。図１に示す論理記憶装置３ａは、記憶装置群３を構成する物理記憶装置のうち、少なくとも１つの物理記憶装置の記憶領域を用いて作成された論理的な記憶装置である。論理記憶装置３ａは、制御装置２とネットワークを介して接続されたサーバ装置４が利用する記憶装置である。この論理記憶装置３ａとしては、ＲＡＩＤが構成された装置を例示することができる。
【００１６】
仮想記憶装置３ｂは、論理記憶装置３ａの記憶領域の拡張に伴い記憶装置群３内に一時的に作成される記憶装置である。仮想記憶装置３ｂは、複数の物理記憶装置５ａ、５ｂ、５ｃそれぞれの少なくとも一部の記憶領域が割り当てられている。論理記憶装置３ａの記憶領域を拡張する際には、制御装置２は、論理記憶装置３ａに記憶されているデータの少なくとも一部を、仮想記憶装置３ｂの少なくとも一部が割り当てられている第２の記憶領域３ｂ１に書き込む。本実施の形態では、制御装置２は、所定の記憶容量（以下、データブロックという）単位で第１の記憶領域３ａ１に記憶されているデータを第２の記憶領域３ｂ１に書き込む。データブロック６内の数字は、説明を分かり易くするために付加しているものであり第２の記憶領域３ｂ１に書き込まれたデータブロック６は、物理記憶装置５ａ、５ｂ、５ｃのいずれかに集約され、集約された物理記憶装置が論理記憶装置３ａに追加されることで、論理記憶装置３ａの記憶領域が拡張される。
【００１７】
制御装置２は、論理記憶装置３ａのデータ移行元の第１の記憶領域３ａ１からデータ移行先の第２の記憶領域３ｂ１にデータブロック６を移行する機能を有している。
制御装置２は、記憶部２ａと、書き込み制御部２ｂと、開放部２ｃとを有している。
【００１８】
記憶部２ａは、仮想記憶装置３ｂを割り当てている物理記憶装置５ａ、５ｂ、５ｃ毎に設定されたデータブロック６の書き込み方法に関する制御テーブル２ａ１を記憶する。なお、記憶部２ａは、制御装置２が有するＲＡＭ（Random Access Memory）等が備えるデータ記憶領域により実現することができる。また、書き込み制御部２ｂおよび開放部２ｃは、制御装置２が有するＣＰＵ（Central Processing Unit）により実現することができる。
【００１９】
制御テーブル２ａ１には、左側から右側に向かって、書き込みを開始するデータブロック番号「１」、仮想記憶装置３ｂを割り当てている物理記憶装置５ａ、５ｂ、５ｃの数（以下、装置数という）「３」、第１の記憶領域３ａ１から第２の記憶領域３ｂ１に書き込んだデータブロックの数（以下、総書き込み回数という）「６」、物理記憶装置５ａ、５ｂ、５ｃの書き込み情報が設定されている。書き込み情報は、データブロック６間に移行用データ記録領域を形成して書き込むよう設定されたデータブロック６の書き込み位置を示す位置情報が設定されている。例えば物理記憶装置５ａの書き込み情報には、物理記憶装置５ａを識別する装置名「ｄｉｓｋ１」、物理記憶装置５ａの第２の記憶領域３ｂ１における書き込み先頭位置「０」、一度に書き込むデータブロック６の数（以下、データブロック数という）「１」、および物理記憶装置５ａに書き込んだデータブロック６の数（以下、書き込み回数という）「２」が設定されている。
【００２０】
書き込み制御部２ｂは、論理記憶装置３ａから仮想記憶装置３ｂへのデータ移行時に、第１の記憶領域３ａ１に記憶されているデータを、制御テーブル２ａ１の物理記憶装置５ａ、５ｂ、５ｃに関する書き込み情報に従って仮想記憶装置３ｂの第２の記憶領域３ｂ１に書き込む。以下、書き込み方法を説明する。書き込み開始時の制御テーブル２ａ１の第１の記憶領域３ａ１から第２の記憶領域３ｂ１に書き込んだデータブロック６の数は「０」、物理記憶装置５ａ、５ｂ、５ｃに書き込んだデータブロック６の数は、それぞれ「０」である。
【００２１】
書き込み制御部２ｂは、まず、物理記憶装置５ａの書き込み位置を算出する。書き込み位置は、「書き込み先頭位置」＋「データブロック数」×「装置数」×「物理記憶装置５ａの書き込み回数」＝０＋１×３×０＝０となる。同様に、物理記憶装置５ｂの書き込み位置は、１＋１×３×０＝１となる。物理記憶装置５ｃの書き込み位置は、２＋１×３×０＝２となる。図１の物理記憶装置５ａ、５ｂとの間、また物理記憶装置５ｂ、５ｃとの間には、書き込み位置を示す数字を示している。
【００２２】
次に、書き込み制御部２ｂは、物理記憶装置５ａ、５ｂ、５ｃの算出した書き込み位置からデータブロック数分のデータブロックを書き込む。書き込みが完了すると、書き込み制御部２ｂは、制御テーブル２ａ１の物理記憶装置５ａ、５ｂ、５ｃそれぞれの書き込み回数をそれぞれ１つ増やす。これにより、物理記憶装置５ａ、５ｂ、５ｃの書き込み回数は、０から１になる。書き込み制御部２ｂは、物理記憶装置５ａ、５ｂ、５ｃへの書き込みが完了したら、制御テーブル２ａ１の総書き込み回数を装置数「３」だけ増やす。これにより、総書き込み回数は０から３になる。
【００２３】
次に、書き込み制御部２ｂは、再び物理記憶装置５ａの書き込み位置を算出する。「書き込み先頭位置」＋「データブロック数」×「装置数」×「書き込み回数」＝０＋１×３×１＝３となる。同様に、物理記憶装置５ｂの書き込み位置は、１＋１×３×１＝４となる。物理記憶装置５ｃの書き込み位置は、２＋１×３×１＝５となる。
【００２４】
図１は、書き込み位置に書き込んだデータブロック６を示している。本実施の形態の書き込み方法では、物理記憶装置５ａ、５ｂ、５ｃへの書き込み位置をずらして書き込むことにより、第２の記憶領域３ｂ１において、物理記憶装置５ａ、５ｂ、５ｃ内で書き込み位置が重ならないようになっている。これにより、物理記憶装置５ａ、５ｂ、５ｃそれぞれに記憶されるデータブロック６間に移行用データ記録領域が形成され、次に述べるデータの退避が容易になる。
【００２５】
ところで、書き込み制御部２ｂは、仮想記憶装置３ｂを割り当てている物理記憶装置５ａ、５ｂ、５ｃのうち、物理記憶装置５ｂを第２の記憶領域３ｂ１から開放する開放要求をデータ移行時に受け付けると、開放処理を実行する。
【００２６】
図２は、第１の実施の形態の開放処理を説明する図である。
開放処理では、開放対象の物理記憶装置５ｂに記憶されているデータブロックを、仮想記憶装置３ｂを割り当てている残りの物理記憶装置５ａに形成された移行用データ記録領域に移行（退避）する。
【００２７】
具体的には、書き込み制御部２ｂは、物理記憶装置５ｂの書き込み位置「１」に書き込まれたデータブロック６を読み出す。そして、書き込み制御部２ｂは、読み出したデータブロック６を物理記憶装置５ａの書き込み位置「１」に書き込む。また、書き込み制御部２ｂは、物理記憶装置５ｂの書き込み位置「４」に書き込まれたデータブロック６を読み出す。そして、書き込み制御部２ｂは、読み出したデータブロック６を物理記憶装置５ａの書き込み位置「４」に書き込む。そして、物理記憶装置５ｂに書き込まれている全てのデータブロック６を物理記憶装置５ａに移行すると、書き込み制御部２ｂは、制御テーブル２ａ１の物理記憶装置５ｂに関する情報を削除する。そして、制御テーブル２ａ１の物理記憶装置５ａのデータブロック数を１つ増やして２に設定する。そして、装置数の欄の値を１つ減らして２に設定する。図２に示す制御テーブル２ａ１は、ディスク開放処理が完了したときの状態を示している。
【００２８】
次に、開放部２ｃは、物理記憶装置５ｂを開放する。その後、書き込み制御部２ｂは、図２に示す制御テーブル２ａ１を用いてデータ移行処理を継続して実行する。
本実施の形態のストレージ装置１によれば、データ移行処理中においても仮想記憶装置３ｂを割り当てている物理記憶装置５ａの減少に対応して仮想記憶装置３ｂの割り当てを変更することができる。従って、例えばホットスペアディスクを物理記憶装置５ａ〜５ｃに割り当ててデータ移行処理を実行している場合に、ホットスペアディスクを別途使用する要求に応じてもホットスペアディスクを開放してデータ移行処理を継続できる。これにより、データ移行時間を短縮することができる。
【００２９】
以下、第２の実施の形態において、開示のストレージ装置をより具体的に説明する。
＜第２の実施の形態＞
図３は、第２の実施の形態のストレージシステムを示すブロック図である。
【００３０】
ストレージシステム１０００は、サーバ装置３０と、サーバ装置３０にファイバチャネル（ＦＣ：Fibre Channel）スイッチ４０およびネットワークスイッチ５０を介して接続されたストレージ装置１００とを有している。
【００３１】
ストレージ装置１００は、ＮＡＳ（Network Attached Storage）であり、複数のＨＤＤ２０を備えるドライブエンクロージャ（ＤＥ：Drive Enclosure）２０ａと、このドライブエンクロージャ２０ａの物理記憶領域をＲＡＩＤによって管理する制御モジュール１０を有している。制御モジュール１０は、制御装置の一例である。なお、本実施の形態では、ドライブエンクロージャ２０ａが備える記憶媒体としては、ＨＤＤ２０を例示したが、ＨＤＤ２０に限らず、ＳＳＤ等、他の記憶媒体を用いてもよい。以下、ドライブエンクロージャ２０ａが備える複数のＨＤＤ２０を区別しない場合は、「ＨＤＤ２０群」という。
【００３２】
なお、ストレージ装置１００が備える制御モジュールの数は、１つに限定されず、２つ以上の制御モジュールによりＨＤＤ２０群の制御の冗長性が確保されていてもよい。また、本実施の形態では、ＮＡＳのストレージ装置１００を説明するが、制御モジュール１０が備える機能は、ＳＡＮ（Storage Area Network）等、他のストレージ装置にも適用することができる。
【００３３】
制御モジュール１０は、内部バスを介してＦＣポート１１およびＮＩＣポート１２に接続されている。
ＦＣポート１１は、ＦＣスイッチ４０に接続され、ＦＣスイッチ４０を介してサーバ装置３０に接続される。ＦＣポート１１は、サーバ装置３０と制御モジュール１０との間でデータを送受信するインタフェース機能をＦＣする。
【００３４】
ＮＩＣポート１２は、ネットワークスイッチ５０に接続され、ネットワークスイッチ５０を介してサーバ装置３０に接続されている。ＮＩＣポート１２は、サーバ装置３０と制御モジュール１０との間でＮＦＳ（Network File System）、ＣＩＦＳ（Common Internet File System）、ＨＴＴＰ（HyperText Transfer Protocol）等のプロトコルを用いてファイルを送受信する。
【００３５】
制御モジュール１０は、ＣＰＵ１０１と、ＲＡＭ１０２と、フラッシュＲＯＭ（Read Only Memory）１０３と、キャッシュメモリ１０４と、デバイスインタフェース（ＤＩ：Device Interface）１０５とを備えている。
【００３６】
ＣＰＵ１０１は、フラッシュＲＯＭ１０３等に記憶されたプログラムを実行することにより、制御モジュール１０全体を統括的に制御する。
ＲＡＭ１０２は、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部や、プログラムによる処理に必要な各種データを一時的に記憶する。ＲＡＭ１０２は、記憶部の一例である。
【００３７】
フラッシュＲＯＭ１０３は、不揮発性のメモリであり、ＣＰＵ１０１により実行されるＯＳのプログラム、アプリケーションプログラムや、プログラムの実行に必要な各種のデータ等を記憶する。また、フラッシュＲＯＭ１０３は、ストレージ装置１００の停電時等にキャッシュメモリ１０４に記憶されているデータの退避先となる。
【００３８】
キャッシュメモリ１０４は、ＨＤＤ２０群に書き込まれているファイルやＨＤＤ２０群から読み出したファイルを一時的に記憶する。
そして、制御モジュール１０は、例えばサーバ装置３０からのファイル読み出し命令を受けたときに、読み出し対象のファイルがキャッシュメモリ１０４に記憶されているか否かを判断する。読み出し対象のファイルがキャッシュメモリ１０４に記憶されていれば、制御モジュール１０は、キャッシュメモリ１０４に記憶されている読み出し対象のファイルをサーバ装置３０に送る。読み出し対象のファイルをＨＤＤ２０群から読み出す場合に比べ、ファイルを迅速にサーバ装置３０に送ることができる。
【００３９】
また、キャッシュメモリ１０４には、ＣＰＵ１０１による処理に必要なファイルが一時的に記憶されてもよい。このキャッシュメモリ１０４としては、例えば、ＳＲＡＭ（Static RAM）等の揮発性の半導体装置が挙げられる。また、キャッシュメモリ１０４の記憶容量は、特に限定されないが、一例として２〜６４ＧＢ程度である。
【００４０】
デバイスインタフェース１０５は、ドライブエンクロージャ２０ａに接続されている。このデバイスインタフェース１０５は、ドライブエンクロージャ２０ａが備えるＨＤＤ２０群とキャッシュメモリ１０４との間でファイルを送受信するインタフェース機能を提供する。制御モジュール１０は、デバイスインタフェース１０５を介してドライブエンクロージャ２０ａが備えるＨＤＤ２０群との間でファイルの送受信を行う。
【００４１】
ドライブＩ／Ｆ制御部１０６は、ＬＡＮ等の通信回線で磁気テープ装置６０に接続されている。ドライブＩ／Ｆ制御部１０６は、磁気テープ装置６０との間でデータをやりとりする。磁気テープ装置６０は、磁気テープ６１に記憶されたデータの再生機能と、磁気テープ６１にデータを記憶する記憶機能とを有する。
【００４２】
制御モジュール１０は、磁気テープ６１に書き込まれた１つのブロックを１つの物理ブロックＩＤで管理する。なお、磁気テープ６１の種別は、例えばＬＴＯ（Liner Tape Open）規格のテープ等が挙げられる。
【００４３】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図３に示すようなハードウェア構成のストレージ装置１００内には、以下のような機能が設けられる。
【００４４】
図４は、第２の実施の形態のストレージシステムの機能を示すブロック図である。
図４に示すストレージプールＡ０は、ドライブエンクロージャ２０ａ内の物理ディスクによって実現される物理記憶領域である。
【００４５】
ストレージプールＡ０には、ドライブエンクロージャ２０ａが備える複数のＨＤＤ２０のうち、１つ、または複数のＨＤＤ２０により構成されたＲＡＩＤグループ２１が形成されている。このＲＡＩＤグループ２１は、「論理ボリューム」、「ＲＬＵ（RAID Logical Unit）」等と呼ばれる場合もある。なお、ＲＡＩＤグループ２１を構成するＨＤＤ２０は、他のＨＤＤ２０と区別するために、異なる符号（ＨＤＤ２１ａ、２１ｂ、Ｐ１）を付している。ＲＡＩＤグループ２１を構成するＨＤＤ２１ａ、２１ｂ、Ｐ１には、ＨＤＤ２１ａ、２１ｂ、Ｐ１それぞれの記憶領域の一部で構成される論理ブロック（ストライプ）が設定されている。サーバ装置３０と制御モジュール１０との間のアクセスは、論理ブロック単位で行われる。ＲＡＩＤグループ２１は、論理ブロック単位で分割されたデータを記憶する２つのＨＤＤ２１ａ、２１ｂと、パリティデータを記憶するＨＤＤ（パリティディスク）Ｐ１で構成されており、ＲＡＩＤ４（２＋１）で運用されている。
【００４６】
なお、ＲＡＩＤグループ２１のＲＡＩＤ構成は、一例であり、図示のＲＡＩＤ構成に限定されない。例えば、ＲＡＩＤグループ２１は、任意の個数のＨＤＤ２０を有することができる。また、ＲＡＩＤグループ２１は、ＲＡＩＤ６等、任意のＲＡＩＤ方式で構成することができる。
【００４７】
また、ストレージプールＡ０内には、ＲＡＩＤグループ２１以外のＨＤＤ２０で構成されるスペアディスクプールＡ１が構成されている。制御モジュール１０は、スペアディスクプールＡ１からＲＡＩＤグループ２１に動的にＨＤＤを割り当てることができる。以下、スペアディスクプールＡ１内のＨＤＤを「スペアディスク」という。
【００４８】
サーバ装置３０は、ファイルシステム３１と、通信制御部３２とを有している。
サーバ装置３０は、サーバ装置３０側からＲＡＩＤグループのＬＵＮ（Local Unit Number）をサーバ装置３０が使用する記憶領域として認識する。そして必要に応じてパーティション分けをして、サーバ装置３０のＯＳのファイルシステム３１を適用する。サーバ装置３０から制御モジュール１０に対してＩ／Ｏ要求を送信することで、ＲＡＩＤグループ２１に対するデータの読み書きを行うことができる。
【００４９】
ファイルシステム３１は、ビットマップ形式でファイルシステム３１の記憶領域を管理する。
図５は、ビットマップテーブルの一例を示す図である。
【００５０】
ビットマップテーブルＢ１、Ｂ２の１つのビットは、１つの論理ブロックに対応している。ビットマップテーブルＢ１には、論理ブロックアドレス０〜ｍの使用状況（データの有無）が記憶されている。ビットマップテーブルＢ２には、論理ブロックアドレスｍ＋１〜ｎの使用状況が記憶されている。データアクセスがあった論理ブロックのビットの値は「１」であることを示す。
【００５１】
ビットマップテーブルＢ１、Ｂ２内の何ビット目かが分かると、ファイルシステム３１の先頭から何番目の論理ブロックかが決まり、その使用／未使用を把握することができる。
【００５２】
通信制御部３２は、ストレージ装置１００との連携動作を制御する。この通信制御部３２は、ファイルシステム３１を定期的に監視する。通信制御部３２は、例えばファイルシステム３１のビットマップテーブルＢ１、Ｂ２が一杯になると、制御モジュール１０に後述するＲＡＩＤ構成変更処理の実行を指示する。通信制御部３２は、指示に伴い、ファイルシステム３１からファイルシステム３１上の空き領域の位置とサイズの情報（ファイルシステムの論理ブロック番号とサイズ）を大きい順に数十個程度入手して制御モジュール１０に伝える。また、ファイルシステム３１は、ファイルシステム３１の領域を拡張する場合は、ビットマップテーブルを新たに作成して追加した領域に対する管理を行う。
【００５３】
図６および図７は、ビットマップテーブルの追加を説明する図である。
図６は、ＲＡＩＤ構成変更処理前のファイルシステム３１の管理領域３１１、ＲＡＩＤグループ２１の管理領域２１１、およびビットマップテーブルＢ１、Ｂ２を示している。
【００５４】
ＲＡＩＤ構成変更処理の実行に際し、ファイルシステム３１は、論理ブロックアドレス０〜ｍを移動対象区画に決定する。
ＲＡＩＤ制御部１２０は、サーバ装置３０の指示に従い、移動対象区画に記憶されているデータを記憶する論理ブロックアドレスｎ＋１〜ｎ＋ｍの移動先区画を用意する。
【００５５】
図７に示すように、ＲＡＩＤ制御部１２０がＲＡＩＤ構成変更処理を実行すると、ファイルシステム３１の移動対象区画に記憶されているデータが、用意された移動先区画に書き込まれる。そして、ＲＡＩＤ制御部１２０が、移動先区画にデータが書き込まれた結果、空白となったＲＡＩＤグループ２１の空白領域の管理をファイルシステム３１に依頼する。ファイルシステム３１は、ＲＡＩＤグループ２１の空白領域を、ファイルシステム３１の論理ブロックアドレスｎ＋１〜ｎ＋ｍに割り当てる。ファイルシステム３１は、割り当てられた論理ブロックアドレスｎ＋１〜ｎ＋ｍを管理するビットマップテーブルＢ３を作成し、この空白領域を管理する。
【００５６】
再び図４に戻って説明する。
制御モジュール１０は、ＦＣＰ／ＮＡＳ制御部１１０と、ＲＡＩＤ制御部１２０と、テープ制御部１３０とを有している。ＲＡＩＤ制御部１２０は、書き込み制御部と開放部の一例である。
【００５７】
ＦＣＰ／ＮＡＳ制御部１１０は、ＲＡＩＤ制御部１２０との間でサーバ装置３０が特定したＬＵＮに対するＦＣＰ／ＮＡＳのＩ／Ｏ制御を行う。
ＲＡＩＤ制御部１２０は、ＲＡＩＤグループ２１を構成するＨＤＤを制御する。具体的には、ＲＡＩＤ制御部１２０は、ＦＣＰ／ＮＡＳ制御部１１０から、ＲＡＩＤグループ２１に対するＩ／Ｏ要求を受け付けると、ＲＡＩＤに関する設定情報に基づいて、データが冗長化されるように書き込み処理を行う。
【００５８】
また、ＲＡＩＤ制御部１２０は、ＦＣＰ／ＮＡＳ制御部１１０から、ＲＡＩＤグループ２１からのデータの読み出し要求を受けると、読み出し領域を示すアドレスを判別する。ＲＡＩＤ制御部１２０は、読み出し領域を示すアドレスから読み出されたデータをサーバ装置３０に送信する。
【００５９】
また、ＲＡＩＤ制御部１２０は、スペアディスクプールＡ１に存在するＨＤＤ２０を管理する。
また、ＲＡＩＤ制御部１２０は、サーバ装置３０の指示に応じてＲＡＩＤグループ２１のＲＡＩＤ構成を変更する処理（以下、「ＲＡＩＤ構成変更処理」という）を実行する。ＲＡＩＤ制御部１２０は、ＲＡＩＤ構成変更処理を実行する場合、スペアディスクプールＡ１内の１つまたは複数のスペアディスクからＲＡＩＤグループ２１のデータの移行先となる仮想ディスクを作成する。ＲＡＩＤ制御部１２０は、ＲＡＩＤ構成変更処理において、制御テーブル１２１を用いてＲＡＩＤグループ２１に記憶されている一部のデータを、作成した仮想ディスクに移行する。なお、制御テーブル１２１は、ＲＡＩＤ制御部１２０が作成する。その後、ＲＡＩＤ制御部１２０は、仮想ディスクを構成するスペアディスクのうち１つのスペアディスクにデータを集約する。そして、ＲＡＩＤ制御部１２０は、データを集約したスペアディスクをＲＡＩＤグループ２１に組み込む。
【００６０】
図８は、制御テーブルの一例を示す図である。
制御テーブル１２１には、エントリＩＤ、ブロック番号、構成ディスク数、総書き込み回数、およびディスク情報の欄が設けられている。
【００６１】
エントリＩＤの欄には、当該エントリ（レコード）を管理するＩＤが設定される。
ブロック番号の欄には、当該エントリによって仮想ディスクに書き込みを開始する論理ブロック番号が設定される。
【００６２】
構成ディスク数の欄には、仮想ディスクを構成するスペアディスクの数が設定される。
総書き込み回数の欄には、仮想ディスクに論理ブロック単位で書き込んだデータの数が設定される。以下、仮想ディスクを構成するスペアディスクを「構成ディスク」という。
【００６３】
ディスク情報の欄には、ＲＡＩＤグループ２１から論理ブロック単位で読み出したデータを書き込む構成ディスクに関する情報が設定される。具体的には、ディスク情報の欄には、さらに構成ディスクＩＤ、構成ディスク名、書き込み先頭位置、書き込みサイズおよび書き込み回数の欄が設けられている。
【００６４】
構成ディスクＩＤの欄には、構成ディスクを識別するＩＤが設定される。
構成ディスク名の欄には、論理ブロック単位で読み出したデータの書き込み先の構成ディスクのディスク名が設定される。
【００６５】
書き込み先頭位置の欄には、当該ディスクにデータの書き込みを開始する先頭の位置が設定される。
書き込みサイズの欄には、論理ブロック単位のデータを一度に書き込む数が設定される。
【００６６】
書き込み回数の欄には、読み出した論理ブロック単位のデータを構成ディスクに書き込んだ回数が設定される。ディスク情報の各書き込み回数の欄に設定される値の合計が、総書き込み回数の欄の値に一致する。
【００６７】
再び図４に戻って説明する。
テープ制御部１３０は、ＬＴＦＳ（Linear Tape File System）等で磁気テープを制御する。具体的には、テープ制御部１３０は、サーバ装置３０の指示に従い磁気テープ装置６０にデータを書き込んだり読み取ったりする指示を与える。磁気テープ装置６０は、指令に基づいて、マウント（搭載）されている磁気テープ６１へのデータの書き込みおよび磁気テープからのデータの読み出しをブロック単位で行う。１ブロックは、例えば３２ｋＢである。
【００６８】
次に、ＲＡＩＤ構成変更処理時の制御モジュール１０の処理を説明する。
図９は、ＲＡＩＤ構成変更処理を示すフローチャートである。
［ステップＳ１］  ＲＡＩＤ制御部１２０は、設計者が指定した最終的に作成するＲＡＩＤ構成を用いてＲＡＩＤグループ２１を構成する構成ディスクのデータの移動箇所を計算により求める。具体的には、ＲＡＩＤ制御部１２０は、通信制御部３２から受け取ったファイルシステム３１の空き領域の情報を用いてファイルシステム３１の領域がＲＡＩＤグループ２１のどの領域に該当するかを確認する。その後、ステップＳ２に遷移する。
【００６９】
［ステップＳ２］  ＲＡＩＤ制御部１２０は、仮想ディスクを利用するか否かを通信制御部３２を介してサーバ装置３０に問い合わせる。サーバ装置３０は、ファイルシステム３１を参照し、仮想ディスクを利用するか否かを判断する。そして、判断結果をＲＡＩＤ制御部１２０に返す。ＲＡＩＤ制御部１２０は、サーバ装置３０の判断結果に基づき仮想ディスクを利用するか否かを判断する。仮想ディスクを利用する場合（ステップＳ２のＹｅｓ）、ステップＳ３に遷移する。仮想ディスクを利用しない場合（ステップＳ２のＮｏ）、ステップＳ９に遷移する。
【００７０】
［ステップＳ３］  ＲＡＩＤ制御部１２０は、判断結果を用いてスペアディスクプールＡ１内のスペアディスクの数を確認する。その後、ステップＳ４に遷移する。
［ステップＳ４］  ＲＡＩＤ制御部１２０は、スペアディスクがスペアディスクプールＡ１内に存在するか否かを判断する。スペアディスクがスペアディスクプールＡ１内に存在する場合（ステップＳ４のＹｅｓ）、ステップＳ５に遷移する。スペアディスクがスペアディスクプールＡ１内に存在しない場合（ステップＳ４のＮｏ）、ステップＳ６に遷移する。
【００７１】
［ステップＳ５］  ＲＡＩＤ制御部１２０は、スペアディスクプールＡ１内に存在するスペアディスクのうち、予め指定された個数のスペアディスクを集める。そして、ＲＡＩＤ制御部１２０は、集めたスペアディスクから全てのデータ記憶領域が０で初期化された１つの仮想ディスクを作成する。そして、ＲＡＩＤ制御部１２０は、作成した仮想ディスクをＲＡＩＤグループ２１に組み込む。また、ＲＡＩＤ制御部１２０は、組み込んだ仮想ディスクに関する情報をサーバ装置３０に通知する。その後、ステップＳ９に遷移する。サーバ装置３０は、通知された仮想ディスクに関する情報をファイルシステム３１に更新する。
【００７２】
［ステップＳ６］  ＲＡＩＤ制御部１２０は、磁気テープ６１が利用可能か否かをテープ制御部１３０に問い合わせる。ＲＡＩＤ制御部１２０は、問い合わせた結果を参照し、磁気テープ６１が利用可能である場合（ステップＳ６のＹｅｓ）、ステップＳ７に遷移する。磁気テープ６１が利用可能ではない場合（ステップＳ６のＮｏ）、ステップＳ８に遷移する。
【００７３】
［ステップＳ７］  ＲＡＩＤ制御部１２０は、磁気テープ６１の記憶領域を仮想ディスクに割り当てる。その後、ステップＳ９に遷移する。
［ステップＳ８］  ＲＡＩＤ制御部１２０は、エラーをサーバ装置３０に通知する。その後、ＲＡＩＤ構成変更処理を終了する。
【００７４】
［ステップＳ９］  ＲＡＩＤ制御部１２０は、構成変更後のＲＡＩＤグループ２１を構成する各ディスクの空き容量を均等にするデータ移行処理を実行する。仮想ディスクを利用したデータ移行処理では、ＲＡＩＤ制御部１２０は、ステップＳ１にて求めたデータの移動箇所に記憶されているデータを仮想ディスクに移行する。なお、仮想ディスクを利用したデータ移行処理については、後に詳述する。データ移行処理が終了すると、ステップＳ１０に遷移する。
【００７５】
［ステップＳ１０］  ＲＡＩＤ制御部１２０は、データ移行処理によってデータが移動され、空白となった移動箇所を、通信制御部３２を介してサーバ装置３０に通知する。その後、ステップＳ１１に遷移する。通知を受けたサーバ装置３０は、ファイルシステム３１を更新する。
【００７６】
［ステップＳ１１］  ＲＡＩＤ制御部１２０は、仮想ディスクを利用したか否かを判断する。仮想ディスクを利用した場合（ステップＳ１１のＹｅｓ）、ステップＳ１２に遷移する。仮想ディスクを利用しなかった場合（ステップＳ１１のＮｏ）、ＲＡＩＤ構成変更処理を終了する。
【００７７】
［ステップＳ１２］  ＲＡＩＤ制御部１２０は、仮想ディスクに記憶されているデータを、仮想ディスクを構成するスペアディスクのうちの１つのスペアディスクに集約する。そして、ＲＡＩＤ制御部１２０は、データを集約したスペアディスクをＲＡＩＤグループ２１に組み込む。その後、ステップＳ１３に遷移する。
【００７８】
［ステップＳ１３］  ＲＡＩＤ制御部１２０は、仮想ディスクに割り当てたスペアディスクのうち、ＲＡＩＤグループ２１に組み込んだスペアディスク以外のスペアディスクを開放する。また、仮想ディスクに磁気テープ６１を組み込んでいる場合には、磁気テープ６１を開放する。その後、ＲＡＩＤ構成変更処理を終了する。
【００７９】
次に、ＲＡＩＤ構成変更処理の具体例を説明する。
図１０〜図１３は、ＲＡＩＤ構成変更処理の具体例を説明する図である。
ＲＡＩＤ制御部１２０は、設計者が指定した最終的に作成するＲＡＩＤ構成を用いて、データを移動するＨＤＤ２１ａ、２１ｂのデータの移動箇所を計算により求める。本具体例では、ＲＡＩＤグループ２１に１つのＨＤＤ２１ｃを追加したＲＡＩＤ４（３＋１）を、再構成後のＲＡＩＤ構成とする。なお、図１０ではＨＤＤＰ１の図示を省略している。本具体例では、ＨＤＤ２１ａ、２１ｂ、２１ｃの各記憶容量を１００ＧＢとする。また、ＨＤＤ２１ａの使用領域の記憶容量を７０ＧＢ、ＨＤＤ２１ａの使用領域の記憶容量を８０ＧＢとする。ここで、再構成後のＨＤＤ２１ａ、２１ｂ、２１ｃの各空き領域が均等になるように、ＨＤＤ２１ａ、２１ｂ、２１ｃの空き容量を計算すると、空き容量は、（３０＋２０＋１００）／３＝５０ＧＢとなる。従って、ＨＤＤ２１ａのデータ移動量は、再構成後の各ＨＤＤ２１ａ、２１ｂ、２１ｃの空き容量−現在の空き容量＝５０−３０＝２０ＧＢとなる。ＨＤＤ２１ｂのデータ移動量は、５０−２０＝３０ＧＢとなる。ＨＤＤ２１ｃに書き込まれるデータ量は、２０＋３０＝５０ＧＢとなる。
【００８０】
次にＲＡＩＤ制御部１２０は、スペアディスクプールＡ１内のスペアディスクの数を確認する。本具体例では、「４」とする。
次に、ＲＡＩＤ制御部１２０は、図１１に示すように、予め与えられたスペアディスクの数「３」から、３つのスペアディスクＳＰ１、ＳＰ２、ＳＰ３で構成される１つの仮想ディスクＶ１を作成する。ＲＡＩＤ制御部１２０は、仮想ディスクＶ１を初期化してＲＡＩＤグループ２１に組み込む。そして、ＲＡＩＤ制御部１２０は、仮想ディスクＶ１をＲＡＩＤグループ２１に組み込んだ旨を、ＲＡＩＤグループ２１を利用しているサーバ装置３０に通知する。通知を受けたサーバ装置３０は、図７にて説明したように、ファイルシステム３１に管理されているビットマップテーブルを、空き領域（移動先となる領域を除く部分）が拡張された状態に更新する。ファイルシステム３１は、空き領域をデータ移行処理時のデータ移動先とは区別して管理する。なお、仮想ディスクＶ１をＲＡＩＤグループ２１に組み込んだ旨をサーバ装置３０へ通知する処理は、データ移行処理完了後とすることもできる。
【００８１】
次に、ＲＡＩＤ制御部１２０は、データ移行処理を実行し、ＨＤＤ２１ａ、２１ｂの移動箇所に記憶されているデータを、仮想ディスクＶ１を構成するスペアディスクＳＰ１、ＳＰ２、ＳＰ３の移動先の記憶領域Ｖａ１に分散して移動する。記憶領域Ｖａ１は、第２の記憶領域の一例である。記憶領域Ｖａ１の記憶容量は、ＨＤＤ２１ｃに書き込まれるデータ量に対応する５０ＧＢである。データの移動は、論理ブロック単位で行う。
【００８２】
ところで、ＲＡＩＤ制御部１２０は、図１２（ａ）に示すように、移動箇所内に存在するデータｄ１を仮想ディスクＶ１に移動した後でも移動しないデータｄ２から移動したデータｄ１を参照できるように移動元論理ブロックアドレスと移動先論理ブロックアドレスの関係をマップテーブルＭ１で管理する。なお、図１２では、ＨＤＤ２１ｂの図示を省略している。マップテーブルＭ１は、ファイルシステムを再作成するときに削除する。
【００８３】
図１２（ｂ）に示すように、データ移行処理が完了すると、ＲＡＩＤ制御部１２０は、ＨＤＤ２１ａ、２１ｂの求めた移動箇所の領域を、空き領域に管理変更する旨をサーバ装置３０に通知する。図７にて説明したように、通知を受けたサーバ装置３０は、ビットマップテーブルの移動箇所の領域に対応するビットの値を、０（空き領域が拡張された状態）に変更する。
【００８４】
次に、ＲＡＩＤ制御部１２０は、図１３に示すように、仮想ディスクＶ１に書き込まれたデータを、仮想ディスクＶ１を構成するスペアディスクＳＰ１、ＳＰ２、ＳＰ３のうち、１つのスペアディスク（図１３ではスペアディスクＳＰ１）に集約する。このスペアディスクＳＰ１が、前述したＨＤＤ２１ｃとなる。データの集約後、ＲＡＩＤ制御部１２０は、データを集約したスペアディスクＳＰ１を仮想ディスクＶ１の代わりにＲＡＩＤグループ２１に組み込む。これにより、ＲＡＩＤ制御部１２０は、ＨＤＤ２１ａ、２１ｂ、スペアディスクＳＰ１（ＨＤＤ２１ｃ）およびＨＤＤＰ１を用いたＲＡＩＤ４を構成する。
【００８５】
次にＲＡＩＤ制御部１２０は、使用していたスペアディスクＳＰ１、ＳＰ２、ＳＰ３のうち、ＲＡＩＤグループ２１に組み込まなかったスペアディスクＳＰ２、ＳＰ３をスペアディスクプールＡ１に戻す。なお、本具体例では、磁気テープ６１を仮想ディスクの記憶領域に割り当てていないが、磁気テープ６１を仮想ディスクに割り当てている場合には、磁気テープ６１の専有状態を開放する。
【００８６】
次に、図９のステップＳ９のデータ移行処理を詳しく説明する。データ移行処理では、基本的にはＲＡＩＤ制御部１２０が、図１４に示すデータ書き込み時の処理を実行する。そして、ＲＡＩＤ制御部１２０がデータ書き込み時の処理中にファイルシステム３１の仮想ディスクの一部の構成ディスクの開放要求を受け付けると、ＲＡＩＤ制御部１２０はディスク開放処理を実行する。また、ＲＡＩＤ制御部１２０がデータ書き込み時の処理中にファイルシステム３１の仮想ディスクにスペアディスクの追加要求を受け付けると、ディスク追加処理を実行する。以下順番に説明する。
【００８７】
図１４は、データ書き込み時の処理を示すフローチャートである。
［ステップＳ２１］  ＲＡＩＤ制御部１２０は、制御テーブル１２１の処理対象エントリから、仮想ディスクの構成情報を取得する。ここで、エントリが複数存在する場合はエントリＩＤの最も大きいエントリが処理対象エントリとなる。その後、ステップＳ２２に遷移する。
【００８８】
［ステップＳ２２］  ＲＡＩＤ制御部１２０は、移動箇所に記憶されているデータの総数を、バッファに読み出す。バッファは、例えばキャッシュメモリ１０４の一領域である。そして、ＲＡＩＤ制御部１２０は、制御テーブル１２１を参照し、バッファに記憶されているデータの総数を、各構成ディスクの「書き込みサイズ」の和で除算した区分数α個を計算する。例えば、移動箇所に記憶されているデータの総数が９０個であり、各構成ディスクの「書き込みサイズ」の和が３である場合、区分数α＝９０／３＝３０となる。その後、ステップＳ２３に遷移する。
【００８９】
［ステップＳ２３］  ＲＡＩＤ制御部１２０は、各構成ディスクの書き込み位置＝「書き込み先頭位置」＋「書き込みサイズ」×「構成ディスク数」×「書き込み回数」を計算する。その後、ステップＳ２４に遷移する。
【００９０】
［ステップＳ２４］  ＲＡＩＤ制御部１２０は、構成ディスク数で区分したデータを構成ディスク毎に分けて、それぞれをステップＳ２３にて算出した各構成ディスクの書き込み位置へ書き込む。その後、ステップＳ２５に遷移する。
【００９１】
［ステップＳ２５］  ＲＡＩＤ制御部１２０は、ステップＳ２４の各構成ディスクへの書き込みが完了したら、制御テーブル１２１の各構成ディスクの書き込み回数の欄の値をそれぞれ１つ増やす。その後、ステップＳ２６に遷移する。
【００９２】
［ステップＳ２６］  ＲＡＩＤ制御部１２０は、全ての構成ディスクへの書き込みが完了したら、制御テーブル１２１の総書き込み回数の欄に記憶されている値を構成ディスク数の欄に設定されている数だけ増やす。その後、ステップＳ２７に遷移する。
【００９３】
［ステップＳ２７］  ＲＡＩＤ制御部１２０は、区分数αを１つ減らす。その後、ステップＳ２８に遷移する。
［ステップＳ２８］  ＲＡＩＤ制御部１２０は、区分数α＝０か否かを判断する。区分数αが０である場合（ステップＳ２８のＹｅｓ）、図１４の処理を終了する。区分数αが０ではない場合（ステップＳ２８のＮｏ）、ステップＳ２９に遷移する。
【００９４】
［ステップＳ２９］  ＲＡＩＤ制御部１２０は、書き込むデータのバッファのアドレスを各構成ディスクの「書き込みサイズ」の和だけ増加させる。その後、ステップＳ２３に遷移し、ステップＳ２３以降の処理を再び実行する。以上で図１４の処理の説明を終了する。
【００９５】
次に、データ書き込み時の処理の具体例を説明する。以下に示す具体例では、移動箇所に記憶されている論理ブロック単位のデータの総数が９０個であるものとする。
図１５は、データ書き込み時の処理の具体例を説明する図である。
【００９６】
ＲＡＩＤ制御部１２０は、移動箇所に記憶されている論理ブロック単位のデータの総数を、バッファに読み出す。図１５には、バッファに読み出された仮想ディスクＶ１の論理イメージＩ１を示している。論理イメージＩ１には、データＤが論理ブロック単位で並んでいる。また、データＤ内の数字は、説明を分かり易くするために付加している。
【００９７】
ＲＡＩＤ制御部１２０は、仮想ディスクＶ１を構成するスペアディスクＳＰ１、ＳＰ２、ＳＰ３へのデータ書き込みに関する制御テーブル１２１を用意する。図１５の上側の制御テーブル１２１は、用意した制御テーブルを示している。以下、スペアディスクＳＰ１のディスク名はＳＰＤ１、スペアディスクＳＰ２のディスク名はＳＰＤ２、スペアディスクＳＰ３のディスク名はＳＰＤ３であるものとする。
【００９８】
ＲＡＩＤ制御部１２０は、各構成ディスクの書き込み先頭位置を１つずつずらして設定する。そして、ＲＡＩＤ制御部１２０は、移動箇所に記憶されているデータの総数が９０個であり、各構成ディスクの「書き込みサイズ」の和が３であるため、区分数α＝９０／３＝３０を計算する。
【００９９】
次に、ＲＡＩＤ制御部１２０は、スペアディスクＳＰ１の書き込み位置を算出する。「書き込み先頭位置」＋「書き込みサイズ」×「構成ディスク数」×「書き込み回数」＝０＋１×３×０＝０となる。同様に、スペアディスクＳＰ２の書き込み位置は、「書き込み先頭位置」＋「書き込みサイズ」×「構成ディスク数」×「書き込み回数」＝１＋１×３×０＝１となる。スペアディスクＳＰ３の書き込み位置は、「書き込み先頭位置」＋「書き込みサイズ」×「構成ディスク数」×「書き込み回数」＝２＋１×３×０＝２となる。
【０１００】
次に、ＲＡＩＤ制御部１２０は、構成ディスク数「３」で区分したデータを「書き込みサイズ」毎にスペアディスクＳＰ１、ＳＰ２、ＳＰ３に分けて、それぞれを算出したスペアディスクＳＰ１、ＳＰ２、ＳＰ３の書き込み位置へ書き込む。書き込みが完了すると、ＲＡＩＤ制御部１２０は、制御テーブル１２１のスペアディスクＳＰ１、ＳＰ２、ＳＰ３の書き込み回数の欄の値をそれぞれ１つ増やす。これにより、スペアディスクＳＰ１、ＳＰ２、ＳＰ３の書き込み回数の欄の値は、０から１になる。ＲＡＩＤ制御部１２０は、全ての構成ディスクへの書き込みが完了したら、制御テーブル１２１の総書き込み回数の欄に記憶されている値を構成ディスク数の欄に設定されている３だけ増やす。これにより、総書き込み回数の欄の値は０から３になる。
【０１０１】
次に、ＲＡＩＤ制御部１２０は、区分数αの値を１つ減らして２９とする。αの値は０ではないので、書き込むデータのバッファのアドレスを各構成ディスクの「書き込みサイズ」の和＝３だけ増やす。
【０１０２】
次に、ＲＡＩＤ制御部１２０は、スペアディスクＳＰ１の書き込み位置を算出する。「書き込み先頭位置」＋「書き込みサイズ」×「構成ディスク数」×「書き込み回数」＝０＋１×３×１＝３となる。同様に、スペアディスクＳＰ２の書き込み位置は、「書き込み先頭位置」＋「書き込みサイズ」×「構成ディスク数」×「書き込み回数」＝１＋１×３×１＝４となる。スペアディスクＳＰ３の書き込み位置は、「書き込み先頭位置」＋「書き込みサイズ」×「構成ディスク数」×「書き込み回数」＝２＋１×３×１＝５となる。以下、ＲＡＩＤ制御部１２０は、αが０になるまでデータ移行処理を実行する。
【０１０３】
図１５の下側の制御テーブル１２１は、データＤのブロック番号１から９までの処理を行ったときの状態を示している。
ＲＡＩＤ制御部１２０は、データ移行処理を実行することにより、各構成ディスクの書き込み位置をずらして書き込む。これにより、ステップＳ１２のデータの集約が容易になる。また、次に述べるディスク開放処理時にもデータの退避が容易になる。
【０１０４】
次に、ディスク開放処理を説明する。
図１６は、ディスク開放処理を示すフローチャートである。
［ステップＳ３１］  ＲＡＩＤ制御部１２０は、制御テーブル１２１の処理対象エントリから、仮想ディスクの構成情報を取得する。その後、ステップＳ３２に遷移する。以下、ＲＡＩＤ制御部１２０は、ステップＳ３２〜Ｓ３５の処理を実行することで、構成ディスクの中から開放対象のディスクを選択する。
【０１０５】
［ステップＳ３２］  ＲＡＩＤ制御部１２０は、制御テーブル１２１のエントリＩＤの欄を参照し、エントリが２つ以上存在するか否かを判断する。エントリが２つ以上存在する場合（ステップＳ３２のＹｅｓ）、ステップＳ３３に遷移する。エントリが２つ以上存在しない場合、すなわち、エントリが１つである場合（ステップＳ３２のＮｏ）、ステップＳ３５に遷移する。
【０１０６】
［ステップＳ３３］  ＲＡＩＤ制御部１２０は、処理対象エントリに新たに追加された構成ディスクが存在するか否かを判断する。具体的には、ＲＡＩＤ制御部１２０は、処理対象エントリの構成ディスク数の欄の値と処理対象エントリのエントリＩＤの１つ前のエントリＩＤのエントリに含まれる構成ディスク数の欄の値を比較する。そして、ＲＡＩＤ制御部１２０は、処理対象エントリの構成ディスク数の欄の値と処理対象エントリのエントリＩＤの１つ前のエントリＩＤのエントリに含まれる構成ディスク数の欄の値が異なる場合、処理対象エントリに新たに追加された構成ディスクが存在すると判断する。処理対象エントリに新たに追加された構成ディスクが存在する場合（ステップＳ３３のＹｅｓ）、ステップＳ３４に遷移する。処理対象エントリに新たに追加された構成ディスクが存在しない場合（ステップＳ３３のＮｏ）、ステップＳ３５に遷移する。当該ステップＳ３３の処理によって、最もデータ記憶量が少ない構成ディスクを開放対象のディスクとして選択することができる。これにより、後のデータ移動量を減らすことができる。
【０１０７】
［ステップＳ３４］  ＲＡＩＤ制御部１２０は、新たに追加された構成ディスクを開放対象のディスクに選択する。その後、ステップＳ３６に遷移する。
［ステップＳ３５］  ＲＡＩＤ制御部１２０は、処理対象エントリの構成ディスクＩＤ＝２の構成ディスクを開放対象のディスクに選択する。その後、ステップＳ３６に遷移する。
【０１０８】
［ステップＳ３６］  ＲＡＩＤ制御部１２０は、制御テーブル１２１を参照し、ステップＳ３４またはステップＳ３５にて選択した開放対象のディスクのアクセス用情報を取得する。その後、ステップＳ３７に遷移する。
【０１０９】
［ステップＳ３７］  ＲＡＩＤ制御部１２０は、開放対象のディスクの構成ディスクＩＤが１つ少ない構成ディスクをデータ退避先のディスクに決定する。例えば、ＲＡＩＤ制御部１２０は、構成ディスクＩＤ＝２の構成ディスクを開放対象のディスクに選択した場合、構成ディスクＩＤ＝１の構成ディスクをデータ退避先のディスクに決定する。以下、決定したディスクを「データ退避先ディスク」という。そして、ＲＡＩＤ制御部１２０は、データ退避先ディスクへのアクセス用情報を取得する。その後、ステップＳ３８に遷移する。
【０１１０】
［ステップＳ３８］  ＲＡＩＤ制御部１２０は、開放対象のディスクからデータ退避先のディスクへのデータの読み出し回数を示すパラメータＫを用意し、Ｋ＝０に設定する。その後、ステップＳ３９に遷移する。
【０１１１】
［ステップＳ３９］  ＲＡＩＤ制御部１２０は、開放対象のディスクの「書き込み先頭位置」＋Ｋ×「構成ディスク数」を計算することで、開放対象のディスクから既に書き込んだデータを読み出す。その後、ステップＳ４０に遷移する。
【０１１２】
［ステップＳ４０］  ＲＡＩＤ制御部１２０は、ステップＳ３９にて読み出したデータをデータ退避先ディスクの「書き込み先頭位置」＋１＋Ｋ×「構成ディスク数」により特定される領域に書き込む。その後、ステップＳ４１に遷移する。
【０１１３】
［ステップＳ４１］  ＲＡＩＤ制御部１２０は、Ｋを１つインクリメントする。その後、ステップＳ４２に遷移する。
［ステップＳ４２］  ＲＡＩＤ制御部１２０は、Ｋの値が、制御テーブル１２１の開放対象のディスクの書き込み回数の欄に設定されている値に一致するか否かを判断する。Ｋの値が、制御テーブル１２１の開放対象のディスクの書き込み回数の欄に設定されている値に一致する場合（ステップＳ４２のＹｅｓ）、ステップＳ４３に遷移する。Ｋの値が、制御テーブル１２１の開放対象のディスクの書き込み回数の欄に設定されている値に一致しない場合（ステップＳ４２のＮｏ）、ステップＳ３９に遷移し、ステップＳ３９以降の処理を引き続き実行する。
【０１１４】
［ステップＳ４３］  ＲＡＩＤ制御部１２０は、処理対象エントリの情報を更新する。具体的には、ＲＡＩＤ制御部１２０は、制御テーブル１２１の開放対象のディスクに関するレコードを削除する。また、ＲＡＩＤ制御部１２０は、制御テーブル１２１のデータ退避先ディスクの書き込みサイズの欄に設定されている値を１つ増やす。また、ＲＡＩＤ制御部１２０は、制御テーブル１２１の構成ディスク数の欄の値を１つ減らす。その後、ステップＳ４４に遷移する。
【０１１５】
［ステップＳ４４］  ＲＡＩＤ制御部１２０は、開放対象のディスクをスペアディスクプールＡ１に返却する。その後、図１６の処理を終了する。
次に、ディスク開放処理の具体例を説明する。
【０１１６】
図１７は、ディスク開放処理の具体例を説明する図である。
本具体例では、図１７の上側に示す制御テーブル１２１における状態、すなわち、データＤのブロック番号１から９まで仮想ディスクＶ１へのデータの書き込みが完了した時点で１つのスペアディスクの開放要求を受け取った場合の処理を説明する。
【０１１７】
ＲＡＩＤ制御部１２０は、制御テーブル１２１のエントリＩＤの欄を参照し、エントリが２つ以上存在するか否かを判断する。本具体例では、エントリは１つしか存在しないため、構成ディスクＩＤ＝２で特定されるスペアディスクＳＰ２を開放対象のディスクに選択する。
【０１１８】
次に、ＲＡＩＤ制御部１２０は、開放対象のディスクの構成ディスクＩＤが１つ少ない構成ディスクＩＤ＝１で特定されるスペアディスクＳＰ１をデータ退避先ディスクに決定する。
【０１１９】
次に、ＲＡＩＤ制御部１２０は、パラメータＫ＝０に設定し、スペアディスクＳＰ２の「書き込み先頭位置」＋Ｋ×「構成ディスク数」＝１＋０×３＝１を計算することで、スペアディスクＳＰ２から書き込みサイズ１つ分のデータを読み出す。そして、ＲＡＩＤ制御部１２０は、読み出したデータをスペアディスクＳＰ１の「書き込み先頭位置」＋１＋Ｋ×「構成ディスク数」＝０＋１＋０×３＝１により特定される領域に書き込む。その後、ＲＡＩＤ制御部１２０は、Ｋ＝１とする。Ｋの値が、制御テーブル１２１のスペアディスクＳＰ２の書き込み回数の欄の値「３」に一致しないので、ＲＡＩＤ制御部１２０は、スペアディスクＳＰ２の「書き込み先頭位置」＋Ｋ×「構成ディスク数」＝１＋１×３＝４を計算することで、スペアディスクＳＰ２から書き込みサイズ１つ分のデータを読み出す。以下、ＲＡＩＤ制御部１２０は、Ｋが３になるまでデータの移動を繰り返す。そして、Ｋ＝３になると、制御テーブル１２１のエントリＩＤ＝１の構成ディスクＩＤ＝２のレコードを削除する。そして、構成ディスクＩＤ＝１の書き込みサイズの欄の値を１つ増やして２に設定する。そして、構成ディスク数の欄の値を１つ減らして２に設定する。図１７の下側に示す制御テーブル１２１は、ディスク開放処理が完了したときの状態を示している。
【０１２０】
次に、ＲＡＩＤ制御部１２０は、スペアディスクＳＰ２をスペアディスクプールＡ１に返却する。その後、ＲＡＩＤ制御部１２０は、図１７の下側に示す制御テーブル１２１を用いてデータ移行処理を継続して実行する。
【０１２１】
次に、ディスク追加処理を説明する。
図１８は、ディスク追加処理を示すフローチャートである。
［ステップＳ５１］  ＲＡＩＤ制御部１２０は、処理対象エントリから、仮想ディスクの構成情報を取得する。その後、ステップＳ５２に遷移する。
【０１２２】
［ステップＳ５２］  ＲＡＩＤ制御部１２０は、追加する新しいエントリのブロック番号、構成ディスク数および総書き込み回数を設定する。具体的には、ＲＡＩＤ制御部１２０は、新しいエントリのブロック番号β＝処理対象エントリの「ブロック番号」＋「総書き込み回数」とする。また、新しいエントリの構成ディスク数＝処理対象エントリの「構成ディスク数」＋１とする。また、新しいエントリの総書き込み回数＝０とする。その後、ステップＳ５３に遷移する。
【０１２３】
［ステップＳ５３］  ＲＡＩＤ制御部１２０は、新しいエントリのディスク情報を作成する。具体的には、ＲＡＩＤ制御部１２０は、処理対象エントリのディスク情報を新しいエントリに複写する。そして、追加するディスク情報の構成ディスクＩＤおよび構成ディスク名を新しいエントリに追加する。その後、ＲＡＩＤ制御部１２０は、各ディスクの情報を設定する。具体的には、ＲＡＩＤ制御部１２０は、各ディスク情報の書き込みサイズ＝１、書き込み回数＝０に設定する。また、ＲＡＩＤ制御部１２０は、各構成ディスクの書き込み先頭位置を決定する。具体的には、ＲＡＩＤ制御部１２０は、追加するディスクの書き込み先頭位置については、「書き込み先頭位置」＝「構成ディスクＩＤ」−１とする。また、既存の構成ディスクの書き込み先頭位置については、「書き込み先頭位置」＝α＋「構成ディスクＩＤ」−１とする。その後、ステップＳ５４に遷移する。
【０１２４】
［ステップＳ５４］  ＲＡＩＤ制御部１２０は、作成した新しいエントリを制御テーブル１２１に追加する。その後、ステップＳ５５に遷移する。
［ステップＳ５５］  ＲＡＩＤ制御部１２０は、処理対象エントリのエントリＩＤの数を１つ増やす。この処理により、追加したエントリが処理対象のエントリとなる。その後、図１８の処理を終了する。
【０１２５】
次に、ディスク追加処理の具体例を説明する。
図１９は、ディスク追加処理の具体例を説明する図である。
本具体例では、図１９の上側に示す制御テーブル１２１における状態まで仮想ディスクＶ１へのデータの書き込みが完了した時点で１つのスペアディスクの追加要求を受け取った場合の処理を説明する。
【０１２６】
ＲＡＩＤ制御部１２０は、エントリＩＤ＝１のエントリから構成情報を取得する。そして、ＲＡＩＤ制御部１２０は、新しいエントリのブロック番号β＝処理対象エントリのブロック番号＋総書き込み回数＝１＋９＝１０とする。また、新しいエントリの構成ディスク数＝処理対象エントリの「構成ディスク数」＋１＝２＋１＝３とする。また、新しいエントリの「総書き込み回数」＝０とする。
【０１２７】
次に、ＲＡＩＤ制御部１２０は、エントリＩＤ＝１のエントリのディスク情報を、作成したエントリのディスク情報に複写する。そして、ＲＡＩＤ制御部１２０は、各ディスク情報の「書き込みサイズ」＝１、「書き込み回数」＝０に設定する。
【０１２８】
次に、ＲＡＩＤ制御部１２０は、追加するスペアディスクＳＰ４の「書き込み先頭位置」＝「構成ディスクＩＤ」−１＝２−１＝１に設定する。また、スペアディスクＳＰ１の「書き込み先頭位置」＝β＋「構成ディスクＩＤ」−１＝１０＋１−１＝１０に設定する。また、スペアディスクＳＰ３の「書き込み先頭位置」＝β＋「構成ディスクＩＤ」−１＝１０＋３−１＝１２に設定する。
【０１２９】
次に、ＲＡＩＤ制御部１２０は、新しいエントリのエントリＩＤ＝２に設定し、処理対象エントリをエントリＩＤ＝２のエントリとする。
次に、図９のステップＳ１２およびステップＳ１３の処理（データ集約処理）を詳しく説明する。
【０１３０】
図２０は、データ集約処理を示すフローチャートである。
［ステップＳ６１］  ＲＡＩＤ制御部１２０は、処理対象エントリから、構成情報を取得する。その後、ステップＳ６２に遷移する。
【０１３１】
［ステップＳ６２］  ＲＡＩＤ制御部１２０は、構成ディスクＩＤが最も小さい構成ディスクの構成情報を取得する。この構成ディスクをデータ集約先ディスクに決定する。そして、データ集約先ディスク以外の構成ディスクを開放対象のディスクに決定する。その後、ステップＳ６３に遷移する。
【０１３２】
［ステップＳ６３］  ＲＡＩＤ制御部１２０は、２番目以降の各構成ディスクの構成情報を取得する。その後、ステップＳ６４に遷移する。
［ステップＳ６４］  ＲＡＩＤ制御部１２０は、各構成ディスクからデータ集約先ディスクへのデータの読み出し回数を示すパラメータＮ＝０に設定する。その後、ステップＳ６５に遷移する。
【０１３３】
［ステップＳ６５］  ＲＡＩＤ制御部１２０は、データ集約先ディスク以外の各構成ディスクに対して書き込み先頭位置＋Ｎ×構成ディスク数を計算し、データの読み出し位置を決定する。そしてＲＡＩＤ制御部１２０は、決定した読み出し位置から書き込みサイズの数だけデータを読み出す。その後、ステップＳ６６に遷移する。
【０１３４】
［ステップＳ６６］  ＲＡＩＤ制御部１２０は、データ集約先ディスクの「書き込み先頭位置」＋１＋Ｎ×「構成ディスク数」の位置へ、ステップＳ６５にて読み出した「構成ディスク数」−１個分のデータをまとめて書き込む。その後、ステップＳ６７に遷移する。
【０１３５】
［ステップＳ６７］  ＲＡＩＤ制御部１２０は、Ｎ＝Ｎ＋１とする。その後、ステップＳ６８に遷移する。
［ステップＳ６８］  ＲＡＩＤ制御部１２０は、Ｎがデータ集約先ディスクの書き込み回数の欄の値に一致するか否かを判断する。Ｎが書き込み回数の欄の値に一致する場合（ステップＳ６８のＹｅｓ）、ステップＳ６９に遷移する。Ｎが書き込み回数の欄の値に一致しない場合（ステップＳ６８のＮｏ）、ステップＳ６５に遷移し、ステップＳ６５以降の処理を引き続き実行する。
【０１３６】
［ステップＳ６９］  ＲＡＩＤ制御部１２０は、処理対象エントリの情報を更新する。具体的には、ＲＡＩＤ制御部１２０は、処理対象エントリのデータ集約先ディスクの書き込みサイズの欄の値を構成ディスク数の欄の値とする。そして、構成ディスク数の欄の値を１に設定する。そして、エントリから開放対象のディスクのディスク情報を削除する。その後、ステップＳ７０に遷移する。
【０１３７】
［ステップＳ７０］  ＲＡＩＤ制御部１２０は、処理対象エントリのエントリＩＤが２以上であるか否かを判断する。処理中対象エントリのエントリＩＤが２以上である場合（ステップＳ７０のＹｅｓ）、ステップＳ７１に遷移する。処理対象エントリのエントリＩＤが１である場合（ステップＳ７０のＮｏ）、ステップＳ７２に遷移する。
【０１３８】
［ステップＳ７１］  ＲＡＩＤ制御部１２０は、処理対象エントリの１つ前のエントリに構成ディスクＩＤ＝１以外の構成ディスクＩＤを備えるディスク情報が存在するか否かを判断する。処理対象エントリの１つ前のエントリに構成ディスクＩＤ＝１以外の構成ディスクＩＤを備えるディスク情報が存在する場合（ステップＳ７１のＹｅｓ）、ステップＳ７３に遷移する。処理対象エントリの１つ前のエントリに構成ディスクＩＤ＝１以外の構成ディスクＩＤを備えるディスク情報が存在しない場合（ステップＳ７１のＮｏ）、ステップＳ７２に遷移する。
【０１３９】
［ステップＳ７２］  ＲＡＩＤ制御部１２０は、構成ディスクＩＤ＝１以外の構成ディスクを開放し、スペアディスクプールＡ１に返却する。その後、ステップＳ７３に遷移する。
【０１４０】
［ステップＳ７３］  ＲＡＩＤ制御部１２０は、処理対象エントリのエントリＩＤの番号を−１する。その後、ステップＳ７４に遷移する。
［ステップＳ７４］  ＲＡＩＤ制御部１２０は、処理対象エントリのエントリＩＤの番号が０か否かを判断する。処理対象エントリのエントリＩＤの番号が０である場合（ステップＳ７４のＹｅｓ）、図２０の処理を終了する。処理対象エントリのエントリＩＤの番号が０ではない場合（ステップＳ７４のＮｏ）、ステップＳ６１に遷移し、ステップＳ６１以降の処理を引き続き実行する。以上でデータ集約処理の説明を終了する。
【０１４１】
以上述べたように、ストレージ装置１００によれば、仮想ディスクＶ１を構成するスペアディスクの開放要求に対応しつつ、データ移行処理を継続することができる。従ってデータ移行時間を短縮することができる。また、スペアディスクＳＰ１、ＳＰ２、ＳＰ３にデータをずらして書き込むようにしたので、データ移行処理を中断せずにディスク開放処理や、ディスク追加処理を迅速に実行することができる。
【０１４２】
なお、制御モジュール１０が行った処理が、複数の制御モジュールによって分散処理されるようにしてもよい。
以上、本発明の制御装置、プログラムおよびストレージ装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０１４３】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、制御装置２および制御モジュール１０が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等が挙げられる。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０１４４】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４５】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１４６】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
【０１４７】
以上の第１〜第２の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  少なくとも１つの記憶装置に割り当てられたデータ移行元の第１の記憶領域から複数の記憶装置に割り当てられたデータ移行先の第２の記憶領域にデータを移行する制御装置において、
ブロック単位のデータを書き込む記録領域間に移行用のデータを書き込む移行用データ記録領域を形成するよう設定されたデータの書き込み位置を示す位置情報を前記複数の記憶装置毎に記憶する記憶部と、
前記第１の記憶領域に記憶されているデータを、前記記憶部に記憶されている前記位置情報に従って前記第２の記憶領域に書き込み、前記第２の記憶領域を割り当てている記憶装置のうち、少なくとも１つの記憶装置を前記第２の記憶領域から開放する開放要求をデータ移行時に受け付けると、開放対象の記憶装置に記憶されているデータを、前記第２の記憶領域を割り当てている残りの記憶装置に形成された移行用データ記録領域に移行する書き込み制御部と、
前記開放対象の記憶装置に記憶されているデータの移行が完了すると、前記開放対象の記憶装置を開放する開放部と、
を有することを特徴とする制御装置。
【０１４８】
（付記２）  前記移行用データ記録領域は、前記第２の記憶領域を割り当てている記憶装置の数に応じて設定されることを特徴とする付記１記載の制御装置。
（付記３）  前記移行用データ記録領域の位置が、前記第２の記憶領域を割り当てている記憶装置毎に異なることを特徴とする付記１記載の制御装置。
【０１４９】
（付記４）  前記書き込み制御部は、前記開放要求の受け付けに応じて前記記憶部に記憶されている位置情報を残りの記憶装置の数に応じて書き換えることを特徴とする付記１記載の制御装置。
【０１５０】
（付記５）  前記書き込み制御部は、前記第２の記憶領域を割り当てている記憶装置を追加する要求をデータ移行時に受け付けると、前記記憶部に記憶されている位置情報を、追加後の記憶装置の数に応じて書き換えることを特徴とする付記１記載の制御装置。
【０１５１】
（付記６）  前記書き込み制御部は、記憶装置の開放要求を受け付けると、前記第２の記憶領域を割り当てている記憶装置のうち、追加された記憶装置を開放対象の記憶装置に決定することを特徴とする付記５記載の制御装置。
【０１５２】
（付記７）  前記書き込み制御部は、前記第２の記憶領域へのデータの移行が完了すると、移行が完了したデータを、前記第２の記憶領域を割り当てている複数の記憶装置のうち１つの記憶装置に集約することを特徴とする付記１記載の制御装置。
【０１５３】
（付記８）  前記第２の記憶領域を割り当てている記憶装置の数に応じた前記位置情報を作成する位置情報作成部をさらに有することを特徴とする付記１記載の制御装置。
（付記９）  テープ記憶装置を管理する管理部をさらに有し、
前記管理部は、前記テープ記憶装置を含む第２の記憶領域を割り当てることを特徴とする付記１記載の制御装置。
【０１５４】
（付記１０）  少なくとも１つの記憶装置に割り当てられたデータ移行元の第１の記憶領域から複数の記憶装置に割り当てられたデータ移行先の第２の記憶領域にデータを移行するプログラムにおいて、
コンピュータに、
ブロック単位のデータを書き込む記録領域間に移行用のデータを書き込む移行用データ記録領域を形成するよう設定されたデータの書き込み位置を示す位置情報を前記複数の記憶装置毎に記憶する記憶部に記憶されている前記位置情報に従って前記第１の記憶領域に記憶されているデータを、前記第２の記憶領域に書き込み、
前記第２の記憶領域を割り当てている記憶装置のうち、少なくとも１つの記憶装置を前記第２の記憶領域から開放する開放要求をデータ移行時に受け付けると、開放対象の記憶装置に記憶されているデータを、前記第２の記憶領域を割り当てている残りの記憶装置に形成された移行用データ記録領域に移行し、
前記開放対象の記憶装置に記憶されているデータの移行が完了すると、前記開放対象の記憶装置を開放する、
処理を実行させることを特徴とするプログラム。
【０１５５】
（付記１１）  データ移行元の第１の記憶領域に割り当てられた少なくとも１つの記憶装置と、
データ移行先の第２の記憶領域に割り当てられた複数の記憶装置と、
ブロック単位のデータを書き込む記録領域間に移行用のデータを書き込む移行用データ記録領域を形成するよう設定されたデータの書き込み位置を示す位置情報を前記複数の記憶装置毎に記憶する記憶部と、
前記第１の記憶領域に記憶されているデータを、前記記憶部に記憶されている前記位置情報に従って前記第２の記憶領域に書き込み、前記第２の記憶領域を割り当てている記憶装置のうち、少なくとも１つの記憶装置を前記第２の記憶領域から開放する開放要求をデータ移行時に受け付けると、開放対象の記憶装置に記憶されているデータを、前記第２の記憶領域を割り当てている残りの記憶装置に形成された移行用データ記録領域に移行する書き込み制御部と、
前記開放対象の記憶装置に記憶されているデータの移行が完了すると、前記開放対象の記憶装置を開放する開放部と、
を有することを特徴とするストレージ装置。
【符号の説明】
【０１５６】
１、１００  ストレージ装置
２  制御装置
２ａ  記憶部
２ａ１、１２１  制御テーブル
２ｂ  書き込み制御部
２ｃ  開放部
３  記憶装置群
３ａ  論理記憶装置
３ａ１  第１の記憶領域
３ｂ  仮想記憶装置
３ｂ１  第１の記憶領域
４、３０  サーバ装置
５ａ、５ｂ、５ｃ  物理記憶装置
６  データブロック
１０  制御モジュール
２０、２１ａ、２１ｂ、２１ｃ、Ｐ１  ＨＤＤ
２０ａ  ドライブエンクロージャ
２１  ＲＡＩＤグループ
３１  ファイルシステム
３２  通信制御部
６０  磁気テープ装置
１１０  ＦＣＰ／ＮＡＳ制御部
１２０  ＲＡＩＤ制御部
１３０  テープ制御部
Ａ０  ストレージプール
Ａ１  スペアディスクプール
Ｂ１、Ｂ２、Ｂ３  ビットマップテーブル
【図１】
2013125437.tif 000003
【図２】
2013125437.tif 000004
【図３】
2013125437.tif 000005
【図４】
2013125437.tif 000006
【図５】
2013125437.tif 000007
【図６】
2013125437.tif 000008
【図７】
2013125437.tif 000009
【図８】
2013125437.tif 000010
【図９】
2013125437.tif 000011
【図１０】
2013125437.tif 000012
【図１１】
2013125437.tif 000013
【図１２】
2013125437.tif 000014
【図１３】
2013125437.tif 000015
【図１４】
2013125437.tif 000016
【図１５】
2013125437.tif 000017
【図１６】
2013125437.tif 000018
【図１７】
2013125437.tif 000019
【図１８】
2013125437.tif 000020
【図１９】
2013125437.tif 000021
【図２０】
2013125437.tif 000022