(57)【要約】【課題】仮想記憶領域への割り当てに用いられる物理記憶装置の数の変更の際に、変更後の物理記憶装置の各物理記憶領域を仮想記憶領域に分散して割り当てる割り当て処理を効率的に行うこと。【解決手段】物理記憶装置３ａ、３ｂ、３ｃのそれぞれが備える複数の物理記憶領域が分散して割り当てられた複数の部分仮想記憶領域を含む仮想記憶領域を、物理記憶装置３ａ、３ｂ、３ｃに１つの物理記憶装置が追加された物理記憶装置３ａ、３ｂ、３ｃ、４のそれぞれが備える複数の物理記憶領域に分散して割り当てる制御装置２において、複数の部分仮想記憶領域に含まれる４個の部分仮想記憶領域については、仮想記憶領域と物理記憶領域との割り当て関係を維持し、残りの１個の部分仮想記憶領域に物理記憶装置４が備える物理記憶領域を分散して割り当てる。【選択図】図１
2013122691.tif 000002
【特許請求の範囲】
【請求項１】
Ｍ個の物理記憶装置のそれぞれが備える複数の物理記憶領域が分散して割り当てられた複数の部分仮想記憶領域を含む仮想記憶領域を、前記Ｍ個の物理記憶装置に１以上の物理記憶装置が追加されたＮ個の物理記憶装置のそれぞれが備える複数の物理記憶領域に分散して割り当てる割り当て装置において、
前記複数の部分仮想記憶領域に含まれるＮ個の部分仮想記憶領域に、前記Ｍ個以下のＰ個の部分仮想記憶領域については、仮想記憶領域と物理記憶領域との割り当て関係を維持し、残りのＮ−Ｐ個の部分仮想記憶領域の各々に前記Ｎ個の物理記憶装置から前記Ｐ個の物理記憶装置を除いた１または複数の物理記憶装置のそれぞれが備える物理記憶領域を分散して割り当てる割り当て部を有することを特徴とする割り当て装置。
【請求項２】
前記割り当て部の物理記憶領域の割り当てにより割り当て関係が解除された物理記憶領域にデータが存在するか否かを判断し、前記物理記憶領域にデータが存在する場合、前記物理記憶領域から前記仮想記憶領域に割り当てられた物理記憶領域へのデータの書き込みを実行し、前記物理記憶領域にデータが存在しない場合、前記物理記憶領域から前記仮想記憶領域に割り当てられた物理記憶領域へのデータの書き込みを省略することを特徴とする請求項１記載の割り当て装置。
【請求項３】
前記割り当て部は、前記Ｍ個の物理記憶装置から１以上の物理記憶装置が除外されたＱ個の物理記憶装置のそれぞれが備える複数の物理記憶領域に分散して割り当てる場合に、前記複数の部分仮想記憶領域に含まれるＱ個の部分仮想記憶領域のいずれかに、前記Ｍ個の物理記憶装置から前記Ｑ個の物理記憶装置を除いた１または複数の物理記憶装置のそれぞれが備える物理記憶領域を分散して割り当て、残りの部分仮想記憶領域については、仮想記憶領域と物理記憶領域との割り当て関係を維持することを特徴とする請求項１記載の割り当て装置。
【請求項４】
仮想記憶領域が備える複数の部分仮想記憶領域に順に、Ｍ個の物理記憶装置の各々が備える物理記憶領域を分散させて割り当てる割り当て部と、
前記複数の部分仮想記憶領域に割り当てる対象の物理記憶装置を、前記複数の物理記憶装置に１以上のＮ個の物理記憶装置を追加した場合に、前記複数の部分仮想記憶領域について前記順でＮ個の部分仮想記憶領域ごとに分割して得られる１つの分割範囲に含まれるＮ個の部分仮想記憶領域のうち、Ｍ個を超えた部分仮想領域については物理記憶領域を追加された前記１以上の物理記憶装置の各物理記憶領域に変更する変更部と、
を備えることを特徴とする割り当て装置。
【請求項５】
Ｍ個の物理記憶装置と、
前記Ｍ個の物理記憶装置のそれぞれが備える複数の物理記憶領域が分散して割り当てられた複数の部分仮想記憶領域を含む仮想記憶領域を、前記Ｍ個の物理記憶装置に１以上の物理記憶装置が追加されたＮ個の物理記憶装置のそれぞれが備える複数の物理記憶領域に分散して割り当てる制御装置と、を有するストレージ装置において、
前記制御装置は、前記複数の部分仮想記憶領域に含まれるＮ個の部分仮想記憶領域に、前記Ｍ個以下のＰ個の物理記憶装置に割り当てられたＰ個の部分仮想記憶領域については、仮想記憶領域と物理記憶領域との割り当て関係を維持し、残りのＮ−Ｐ個の部分仮想記憶領域の各々に前記Ｎ個の物理記憶装置から前記Ｐ個の物理記憶装置を除いた１または複数の物理記憶装置のそれぞれが備える物理記憶領域を分散して割り当てることを特徴とするストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は割り当て装置およびストレージ装置に関する。
【背景技術】
【０００２】
大容量のデータを記憶するストレージ装置において、１つまたは複数のＨＤＤ（Hard Disk Drive）等の記憶装置を、共有の仮想ストレージ（ストレージプール）として利用するストレージ仮想化技術が知られている。
【０００３】
ストレージ装置は、ホスト装置からの要求に応じた容量の仮想記憶領域（仮想ボリューム）にストレージプールの記憶領域から動的に割り当てる。例えば、ストレージプール内に設定された複数のグループ（ＥＣＣグループ）の記憶領域が仮想ボリュームに割り当てられる。
【０００４】
仮想ボリュームに記憶領域を複数のグループから動的に割り当てる際に、グループ間で偏りが生じないように、複数のグループ内の記憶領域の数が均等になるように配置する技術が知られている。複数のグループ内の記憶領域の数を均等に配置することで、特定のグループにアクセスが集中することによりホスト装置に対するレスポンス性能が低下することの防止を図っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２３４１５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ストレージ装置の運用中にストレージプールに記憶装置が追加された際に、仮想ボリュームに割り当て済の各記憶領域を各記憶装置の記憶領域に再配置する場合を考える。
ここで、仮想ボリュームに割り当てられる記憶領域の数を記憶装置間で均等にしようとすると、例えば（１）追加された記憶装置を含む仮想ボリュームを新規に作成する。（２）コピー元の仮想ボリュームから作成した仮想ボリュームにデータをコピーする。（３）コピー完了後に、コピー元の仮想ボリュームをストレージプールに戻す。という作業を行うことが考えられる。
【０００７】
しかしながら、上記（１）−（３）の作業を行うと、上記（２）のコピーは、コピー元の仮想ボリュームからコピー先への仮想ボリュームの全面コピーとなる。このため、仮想ボリュームに記憶領域を割り当てるときの効率が悪いという問題がある。
【０００８】
なお、運用中に記憶装置が追加された場合について説明したが、運用中に記憶装置がストレージプールから除外された場合も同様の問題がある。
１つの側面では、本発明は、仮想記憶領域への割り当てに用いられる物理記憶装置の数の変更の際に、変更後の物理記憶装置の各物理記憶領域を仮想記憶領域に分散して割り当てる割り当て処理を効率的に行うことを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、開示の割り当て装置が提供される。この割り当て装置は、Ｍ個の物理記憶装置のそれぞれが備える複数の物理記憶領域が分散して割り当てられた複数の部分仮想記憶領域を含む仮想記憶領域を、Ｍ個の物理記憶装置に１以上の物理記憶装置が追加されたＮ個の物理記憶装置のそれぞれが備える複数の物理記憶領域に分散して割り当てる割り当て装置において、複数の部分仮想記憶領域に含まれるＮ個の部分仮想記憶領域に、Ｍ個以下のＰ個の部分仮想記憶領域については、仮想記憶領域と物理記憶領域との割り当て関係を維持し、残りのＮ−Ｐ個の部分仮想記憶領域の各々にＮ個の物理記憶装置からＰ個の物理記憶装置を除いた１または複数の物理記憶装置のそれぞれが備える物理記憶領域を分散して割り当てる割り当て部を有する。
【発明の効果】
【００１０】
１態様では、仮想記憶領域への割り当てに用いられる物理記憶装置の数の変更の際に、変更後の物理記憶装置の各物理記憶領域を仮想記憶領域に分散して割り当てる割り当て処理を効率化することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態のストレージ装置を示す図である。
【図２】第２の実施の形態のストレージシステムを示すブロック図である。
【図３】ＣＭのハードウェア構成例を示す図である。
【図４】ＣＭの処理機能の構成例を示すブロック図である。
【図５】ストレージプール構成情報テーブルを示す図である。
【図６】ビットマップを示す図である。
【図７】仮想ディスク構成情報テーブルを示す図である。
【図８】コピー管理テーブルを示す図である。
【図９】エクステント管理テーブルを示す図である。
【図１０】データ移行処理を示すフローチャートである。
【図１１】データ移行処理を示すフローチャートである。
【図１２】データ移行処理を示すフローチャートである。
【図１３】更新されたストレージプール構成情報テーブルを示す図である。
【図１４】区画により区切られた仮想ディスク構成情報テーブルを示す図である。
【図１５】具体例の第１区画のエクステント管理テーブルを示す図である。
【図１６】具体例の処理結果を示す図である。
【発明を実施するための形態】
【００１２】
以下、実施の形態のストレージ装置を、図面を参照して詳細に説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態のストレージ装置を示す図である。
【００１３】
第１の実施の形態のストレージ装置１は、制御装置２と、ストレージプール３とを有している。制御装置２とストレージプール３とは、ネットワークで接続されている。
ストレージプール３は、ストレージ装置１内のディスク容量を一元的に管理する記憶領域である。図１に示すストレージプール３には、複数の物理記憶装置３ａ、３ｂ、３ｃが配置されている。物理記憶装置３ａ、３ｂ、３ｃは、例えばそれぞれＨＤＤやＳＳＤ（Solid State Drive）等の不揮発性の記憶装置である。物理記憶装置３ａ、３ｂ、３ｃは、データを記憶する。
【００１４】
制御装置２は、物理記憶装置３ａ、３ｂ、３ｃそれぞれの記憶領域をエクステントと呼ばれるデータの管理単位を用いて管理する。本実施の形態の各エクステントのサイズは１ＧＢとする。物理記憶装置３ａ、３ｂ、３ｃには、それぞれエクステントを識別するＩＤ（以下、「エクステントＩＤ」という）が設定されている。図１においては、エクステントＩＤがＸのエクステントを「エクステント＃Ｘ」と記載する。
【００１５】
ストレージプール３には、物理記憶装置３ａ、３ｂ、３ｃのそれぞれの記憶領域が分散して割り当てられた仮想記憶装置３ｄが作成されている。仮想記憶装置３ｄ内の各エクステントは、部分仮想記憶領域の一例である。仮想記憶装置３ｄは、制御装置２が作成することができる。仮想記憶装置３ｄ内は、エクステントの大きさをストライピングサイズとして複数の記憶領域に分割されている。
【００１６】
制御装置２は、仮想記憶装置３ｄに対するデータアクセス要求が取得されると、ネットワークを介してアクセスを実行する。仮想記憶装置３ｄに対するデータアクセス要求は、例えば、図示しない他の情報処理装置（例えば、サーバ装置）からネットワークを介して受信される。
【００１７】
制御装置２は、管理部２ａと、作成部２ｂと、記憶部２ｃと、割り当て部２ｄと、書き込み部２ｅとを有している。なお、作成部２ｂ、割り当て部２ｄ、および書き込み部２ｅは、制御装置２が有するＣＰＵ（Central Processing Unit）により実現することができる。また、管理部２ａと記憶部２ｃは、制御装置２が有するＲＡＭ（Random Access Memory）やＨＤＤ等により実現することができる。
【００１８】
管理部２ａは、テーブル２ａ１を記憶する。テーブル２ａ１は、仮想記憶装置３ｄと物理記憶装置３ａ、３ｂ、３ｃとエクステントとの関係を記憶する。テーブル２ａ１は、仮想ＩＤ、エクステントＩＤおよび物理ＩＤの欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【００１９】
仮想ＩＤの欄には、仮想記憶装置３ｄ内でエクステントの位置を特定するＩＤが設定されている。具体的には、仮想記憶装置３ｄが備える上側のエクステントから順に仮想ＩＤ＝０、１、・・・が設定されている。エクステントＩＤの欄には、仮想ＩＤにより特定される位置に対応するエクステントＩＤが設定されている。物理ＩＤの欄には、エクステントＩＤにより特定されるエクステントを備える物理記憶装置を特定するＩＤが設定されている。物理記憶装置３ａの物理ＩＤ＝１であり、物理記憶装置３ｂの物理ＩＤ＝２であり、物理記憶装置３ｃの物理ＩＤ＝３である。
【００２０】
テーブル２ａ１によれば、例えばテーブル２ａ１の１行目のレコードを参照することにより、仮想ＩＤ＝０の位置には、物理記憶装置３ａが備えるエクステントＩＤ＝０のエクステントが配置されていることが分かる。
【００２１】
この制御装置２は、ストレージプール３に物理記憶装置４が新たに追加された場合、追加された物理記憶装置４のエクステントを含む仮想記憶装置３ｅの仮想記憶領域を、物理記憶装置３ａ、３ｂ、３ｃ、４のそれぞれが備える複数の物理記憶領域に分散して割り当てる処理を実行する。制御装置２は、仮想記憶装置３ｅの作成の際、以下に示す負荷分散処理を実行することで、作成された仮想記憶装置３ｅを構成する物理記憶装置３ａ〜３ｃおよび物理記憶装置４のうち、１つの物理記憶装置にアクセスが集中することを回避する。
【００２２】
以下、制御装置２が実行する負荷分散処理を説明する。
制御装置２は、新たに追加された物理記憶装置４の記憶領域をエクステントＩＤ＝０〜５と同じ大きさに区切り、エクステントＩＤ＝６、７のエクステントを生成する。
【００２３】
作成部２ｂは、再構成後の仮想記憶装置３ｅを構成する物理記憶装置の数と同じ数のエクステントの集合Ａ、Ｂを再構成前の仮想記憶装置内３ｄに作成する。具体的には、作成部２ｂは、テーブル２ａ１を参照し、再構成後の仮想記憶装置３ｅを構成する物理記憶装置の数に一致する４つのエクステントＩＤ＝０、２、４、１のエクステントで構成される集合Ａを作成する。そして、集合Ａを除いた残りのエクステントが２つしか存在しないため、作成部２ｂは、残りのエクステントを集めた集合、すなわち、エクステントＩＤ＝３、５のエクステントで構成される集合Ｂを作成する。
【００２４】
作成部２ｂは、作成した集合Ａ、Ｂに属するエクステントの数を、物理記憶装置ごとに計数したテーブル２ｃ１、２ｃ２を作成し、記憶部２ｃに記憶する。具体的には、作成部２ｂは、テーブル２ａ１を参照し、集合Ａ、Ｂそれぞれの物理ＩＤの数を計数することにより、テーブル２ｃ１、２ｃ２を作成する。例えば集合Ａに関するテーブル２ｃ１は、物理ＩＤ＝１により特定される物理記憶装置３ａのエクステントが２つ存在することを示している。
【００２５】
割り当て部２ｄは、記憶部２ｃに記憶されたテーブル２ｃ１、２ｃ２を用いて作成された集合Ａ、Ｂに属するエクステントの数を各物理記憶装置のエクステントが１つずつ割り当てられるようにする処理を実行する。
【００２６】
具体的には、割り当て部２ｄは、まず、テーブル２ｃ１を用いて集合Ａにおいて、同一の物理記憶装置のエクステントが２つ以上配置されているか否かを判断する。テーブル２ｃ１を参照すると、物理ＩＤ＝１のエクステント数が２である。このため割り当て部２ｄは、集合Ａにおいて、物理記憶装置３ａが備えるエクステント数が２つ配置されていると判断する。このため、割り当て部２ｄは、２つ以上配置されているエクステントのうちエクステントＩＤ＝０のエクステントを当該集合Ａに残し、残りのエクステントＩＤ＝１のエクステントの仮想記憶装置３ｄとの割り当て関係を解除し、集合Ａ内にエクステントが配置されていない物理記憶装置４のエクステントＩＤ＝６のエクステントを新たに仮想記憶装置３ｄ内の集合Ａに割り当てる。なお、エクステントＩＤ＝０、１のどちらのエクステントの仮想記憶装置３ｄとの割り当て関係を維持するかは、任意に決定することができる。また、残りのエクステントＩＤ＝１のエクステントを、物理記憶装置４のエクステントＩＤ＝６、７のどちらのエクステントを新たに仮想記憶装置３ｄ内の集合Ａに割り当てるかは、任意に決定することができる。
【００２７】
他方、物理ＩＤ＝２、３のエクステント数は１である。エクステントＩＤ＝０のエクステントと、エクステントＩＤ＝２のエクステントは、集合Ａにおいて各物理記憶装置のエクステントが１つずつ割り当てられるようにするという条件を満たしているため、エクステントＩＤ＝０のエクステントと、エクステントＩＤ＝２のエクステントの仮想記憶装置３ｄとの割り当て関係を維持する。この結果、エクステントＩＤ＝０のエクステントと、エクステントＩＤ＝２のエクステントは、集合Ａに残る。
【００２８】
次に、割り当て部２ｄは、テーブル２ｃ２を用いて集合Ｂにおいて、同一の物理記憶装置のエクステントが２つ以上配置されているか否かを判断する。テーブル２ｃ２を参照すると、同一の物理記憶装置のエクステントが２つ以上配置されていないことが分かる。このため、割り当て部２ｄは、エクステントＩＤ＝３のエクステントと、エクステントＩＤ＝５のエクステントの仮想記憶装置３ｄとの割り当て関係を維持する。この結果、エクステントＩＤ＝３のエクステントと、エクステントＩＤ＝５のエクステントは、集合Ｂに残る。
【００２９】
書き込み部２ｅは、割り当て部２ｄの処理の実行によって集合Ａに属さないこととなったエクステントＩＤ＝１のエクステントに記憶されているデータを、置き換えられた物理記憶装置４のエクステントＩＤ＝６のエクステントに書き込む。また、書き込み部２ｅは、割り当て部２ｄの処理の実行後も集合Ａに残ったエクステントＩＤ＝０のエクステントと、エクステントＩＤ＝２のエクステントについては、データを移動しなくてもよい。以上の負荷分散処理により仮想記憶装置３ｅが作成される。
【００３０】
なお、エクステントＩＤ＝１のエクステントにデータが存在しない場合は、書き込み処理を省略するのが好ましい。これにより、処理負荷の軽減を図ることができる。
このストレージ装置１によれば、物理記憶装置３ａ、３ｂ、３ｃ、３ｄの数と同じ４つのエクステントが含まれる集合Ａ、および残りのエクステントが含まれる集合Ｂを作成した。そして、作成された集合Ａ、Ｂ内のエクステントが、互いに異なる物理記憶装置のそれぞれの記憶領域に割り当てられ、仮想記憶装置３ｅを作成するようにした。制御装置２は、仮想記憶装置３ｅを用いてＩ／Ｏ処理を実行することにより、仮想記憶装置３ｄに比べ、１つの物理記憶装置にＩ／Ｏアクセスが集中する可能性を低減することができる。また、本実施の形態の仮想記憶装置３ｅを作成する方法によれば、集合Ａに同一の物理記憶装置のエクステントが２つ以上配置されている物理記憶装置３ａについて、一部のエクステントを置き換え、置き換えを実行しないエクステントについては割り当て関係を維持するようにしたので、変更後の物理記憶装置の各物理記憶領域を仮想記憶領域に分散して割り当てる割り当て処理を効率的に行うことができる。
【００３１】
また、エクステントＩＤ＝１のエクステントにデータが存在すれば、エクステントＩＤ＝１のエクステントに記憶されているデータだけを物理記憶装置４のエクステントＩＤ＝６のエクステントに書き込み、エクステントＩＤ＝０、２、４のエクステントについては、データの書き込み処理を実行しなくてもよい。このため、例えば全面コピーを実行する場合に比べ、データ移動量を減らすことができる。このため、エクステント処理時間を短縮することができる。
【００３２】
なお、書き込み部２ｅは、処理の実行によって集合Ａに属さないこととなったエクステントＩＤ＝１のエクステントにデータが存在するか否かを判断し、データが存在しない場合、エクステントＩＤ＝１のエクステントから置き換えられた物理記憶装置４のエクステントＩＤ＝６のエクステントへの書き込みを省略するのが好ましい。書き込みを省略することにより、処理時間の短縮を図ることができる。
【００３３】
なお、本実施の形態では、ストレージプール３に物理記憶装置４が新たに追加された場合の制御装置２の処理を説明した。しかし、本実施の形態の処理方法は、ストレージプール３から物理記憶装置３ａ、３ｂ、３ｃのうちの１つが取り除かれた場合についても適用することができる。
【００３４】
また、本実施の形態では、作成された仮想記憶装置３ｅの集合Ａ、Ｂは、互いに異なる物理記憶装置のエクステントで構成するようにした。しかし、これに限らず、作成された仮想記憶装置の集合を、互いに異なるＲＡＩＤ（Redundant Array of Independent Disks）グループのエクステントで構成するようすることもできる。この場合、ＲＡＩＤグループ単位で複数のエクステントを作成すればよい。
【００３５】
以下、第２の実施の形態において、開示のストレージ装置をより具体的に説明する。
＜第２の実施の形態＞
図２は、第２の実施の形態のストレージシステムを示すブロック図である。
【００３６】
図２は、第２の実施の形態に係るストレージシステムの全体構成例を示す図である。図２に示すストレージ装置１００は、ＣＥ（Controller Enclosure）２００と、ＤＥ（Drive Enclosure）３００とを含む。また、ＣＥ２００には、ホスト装置４００が接続されている。
【００３７】
ＣＥ２００は、ＣＭ（Controller Module）２０１、２０２を備える。ＣＭ２０１、２０２のそれぞれは、ホスト装置４００からのＩ／Ｏ（In/Out）要求に応じて、ＤＥ３００内の記憶装置に対するデータの読み書きを行う。ＣＭ２０１、２０２は、ＤＥ３００内の記憶装置によって実現される物理記憶領域をＲＡＩＤによって管理し、これらの物理記憶領域に対するアクセスを制御する。
【００３８】
なお、ＣＭ２０１、２０２は、例えばルータ等を介して互いに接続されている。また、ＣＭは、ＣＥ２００内に１つのみ設けられてもよいし、３つ以上設けられてもよい。ただし、ＣＭが複数設けられることで、ＤＥ３００に対するアクセス制御系統が冗長化され、アクセス制御処理の信頼性が向上する。
【００３９】
ＤＥ３００は、ＣＭ２０１、２０２からのアクセス制御対象となる複数の記憶装置を備える。本実施の形態のＤＥ３００は、記憶装置としてＨＤＤ等やＳＳＤ等の不揮発性記憶装置である物理ディスクを備えるディスクアレイ装置である。また、ＣＥ２００には、複数のＤＥ３００が接続されていてもよい。
【００４０】
ホスト装置４００は、ユーザの操作に応じて、ＣＭ２０１、２０２に対して、ＤＥ３００内の物理ディスクへのアクセスを要求する。ホスト装置４００は、例えば、ユーザの操作に応じて、ＣＭ２０１、２０２のいずれかを通じて、ＤＥ３００内の物理ディスクからのデータの読み出しや、ＤＥ３００内の物理ディスクに対するデータの書き込みを行うことができる。
【００４１】
なお、ＣＥ２００内のＣＭ２０１、２０２は、ともに同様の構成を有し、同様の処理を実行可能である。そこで、以下、ＣＭ２０１についてのみ説明し、ＣＭ２０２についての説明を省略する。
【００４２】
図３は、ＣＭのハードウェア構成例を示す図である。
ＣＭ２０１は、ＣＰＵ２１１によって装置全体が制御されている。ＣＰＵ２１１には、ＲＡＭ２１２および複数の周辺機器が、バス２１７を介して接続されている。ＲＡＭ２１２は、ＣＭ２０１の主記憶装置として使用され、ＣＰＵ２１１に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。
【００４３】
ＣＰＵ２１１には、周辺機器の例として、ＳＳＤ２１３、入力Ｉ／Ｆ（インタフェース）２１４、ＣＡ（Channel Adapter）２１５およびＤＩ（Device Interface）２１６が接続されている。
【００４４】
ＳＳＤ２１３は、ＣＭ２０１の二次記憶装置として使用され、ＣＰＵ２１１によって実行されるプログラムやその実行に必要な各種のデータ等を記憶する。なお、二次記憶装置としては、例えば、ＨＤＤ等の他の種類の不揮発性記憶装置が使用されてもよい。
【００４５】
入力Ｉ／Ｆ２１４には、操作キー等を備える入力装置２１４ａが接続されている。入力Ｉ／Ｆ２１４は、入力装置２１４ａに対する操作入力に応じた信号をＣＰＵ２１１に出力する。
【００４６】
ＣＡ２１５は、ホスト装置４００とＣＭ２０１との間でデータを送受信するインタフェース処理を実行する。ＣＡ２１５とホスト装置４００とは、例えば、ＦＣ（Fibre Channel）規格に従って通信する。
【００４７】
ＤＩ２１６は、ＤＥ３００とＣＭ２０１との間でデータを送受信するインタフェース処理を実行する。ＤＩ２１６とＤＥ３００とは、例えば、ＳＡＳ（Serial Attached SCSI，SCSI：Small Computer System Interface）規格に従って通信する。
【００４８】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図２に示すようなハードウェア構成のストレージ装置１００内には、以下のような機能が設けられる。
【００４９】
図４は、ＣＭの処理機能の構成例を示すブロック図である。
ＣＭ２０１は、エクステント管理部１１０と、仮想ディスク管理部１２０と、移行制御部１３０とを有している。エクステント管理部１１０、仮想ディスク管理部１２０および移行制御部１３０の処理は、例えば、ＣＭ２０１が備えるＣＰＵ２１１が所定のプログラムを実行することで実現される。なお、移行制御部１３０は、作成部、実行部および書き込み部の一例である。
【００５０】
また、ＣＭ２０１の記憶装置には、ストレージプール構成情報テーブル１１１、ビットマップ１１２、仮想ディスク構成情報テーブル１２１、コピー管理テーブル１３１およびエクステント管理テーブル１３２が記憶される。これらの各テーブルは、例えばＲＡＭ２１２やＳＳＤ２１３に記憶される。なお、図４では、説明の便宜上、これらの各テーブルを対応する機能ブロックの内部に図示している。
【００５１】
図４に示すストレージプールＡ０は、ＤＥ３００内の物理ディスクによって実現される物理記憶領域である。
ストレージプールＡ０には、仮想ディスクＶ１が作成されている。仮想ディスクＶ１とは、ユーザが使用可能な論理ボリュームであり、その物理記憶領域はＤＥ３００内の物理ディスクの少なくとも一部によって提供される。図５の例では、仮想ディスクＶ１の物理記憶領域は、物理ディスク３０１、３０２、３０３から割り当てられる。本実施の形態の物理ディスク３０１、３０２、３０３の物理記憶容量は、それぞれ４ＧＢ、３ＧＢ、４ＧＢである。
【００５２】
エクステント管理部１１０は、物理ディスク３０１、３０２、３０３の物理記憶容量を一定容量の管理サイズに分割して管理する。以下、管理サイズを「エクステント」という。本実施の形態のエクステントのサイズは１ＧＢとする。エクステント管理部１１０は、エクステントに対応してＩＤを設定する。図面においては、ＩＤがＸのエクステントを「エクステント＃Ｘ」と記載する。
【００５３】
図５は、ストレージプール構成情報テーブルを示す図である。
ストレージプール構成情報テーブル１１１には、エクステントＩＤ、物理ディスクＩＤおよびアドレスの欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【００５４】
エクステントＩＤの欄には、エクステントを識別するＩＤが設定される。
物理ディスクＩＤの欄には、エクステントを構成する物理ディスクを識別するＩＤが設定される。
【００５５】
アドレスの欄には、当該エクステントのアドレス（例えばＬＢＡ（Logical Block Address）等）が設定される。
再び図４に戻って説明する。
【００５６】
仮想ディスクＶ１は、物理ディスク３０１のエクステントＩＤ＝０〜３のエクステント、物理ディスク３０２のエクステントＩＤ＝４〜６のエクステント、および物理ディスク３０３のエクステントＩＤ＝７〜９のエクステントを有する。物理ディスク３０３のエクステントＩＤ＝１０のエクステントは、未使用の物理記憶領域となっている。この結果、仮想ディスクＶ１の記憶容量は、１０ＧＢである。
【００５７】
仮想ディスクＶ１は、各物理ディスクへ３０１、３０２、３０３のアクセスが均等となるように、エクステントが割り当てられている。
仮想ディスクＶ１に割り当てられたエクステントは、仮想ディスク構成情報テーブル１２１に記憶される。
【００５８】
エクステント管理部１１０は、仮想ディスク管理部１２０からの要求に応じて、仮想ディスクＶ１にアクセスする。エクステント管理部１１０は、仮想ディスクＶ１にアクセスする際に、アクセス先の領域に対して設定されたＲＡＩＤに関する設定情報（ＲＡＩＤレベル、ＲＡＩＤを構成するディスク数等）に基づいてアクセス制御を行う。
【００５９】
例えば、エクステント管理部１１０は、仮想ディスク管理部１２０からデータの書き込み要求を受けると、ＲＡＩＤに関する設定情報に基づいて、データが冗長化されるように書き込み処理を行う。
【００６０】
また、エクステント管理部１１０は、データアクセスの情報を、ビットマップ１１２を用いて管理する。
図６は、ビットマップを示す図である。
【００６１】
ビットマップ１１２の１つのビットは、１つのエクステントに対応している。データアクセスがあったエクステントのビットは色が塗られた状態となる。色が塗られた状態は、ビットの値が「１」であることを示す。図６に示すビットマップ１１２は、エクステントＩＤが１、５、６のエクステントにデータアクセスがあったことを示している。ビットマップ１１２は、後述する移行制御部１３０が実行するデータ移行処理において用いられる。例えば、移行制御部１３０は、データアクセスがあったエクステントには、データが存在すると判断する。
【００６２】
再び図４に戻って説明する。
仮想ディスク管理部１２０は、ホスト装置４００から、仮想ディスクＶ１に対するＩ／Ｏ要求を受け付ける。ユーザは、ホスト装置４００からＣＭ２０１に対してＩ／Ｏ要求を送信することで、仮想ディスクＶ１に対するデータの読み書きを行うことができる。
【００６３】
仮想ディスク管理部１２０は、ホスト装置４００から仮想ディスクＶ１に対する書き込み要求を受けると、データの書き込み先のエクステントのエクステントＩＤを仮想ディスク構成情報テーブル１２１から獲得する。仮想ディスク管理部１２０は、獲得したエクステントＩＤと、書き込み対象のデータとをエクステント管理部１１０に通知し、データの書き込みを依頼する。
【００６４】
また、仮想ディスク管理部１２０は、ホスト装置４００から、仮想ディスクからの読み出し要求を受けると、ストレージプール構成情報テーブル１１１を参照して、読み出し領域を示すアドレスを判別する。仮想ディスク管理部１２０は、読み出し領域を示すアドレスをエクステント管理部１１０に通知して、データの読み出しを依頼する。依頼に応じてエクステント管理部１１０がデータを読み出すと、仮想ディスク管理部１２０は、読み出されたデータをホスト装置４００に送信する。
【００６５】
仮想ディスク管理部１２０は、仮想ディスクＶ１に関する情報を管理する仮想ディスク構成情報テーブル１２１を有する。
図７は、仮想ディスク構成情報テーブルを示す図である。
【００６６】
仮想ディスク構成情報テーブル１２１には、仮想ディスクＩＤ、仮想ディスク構成ＩＤおよびエクステントＩＤの欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【００６７】
仮想ディスクＩＤの欄には、仮想ディスクを識別するＩＤが設定される。同じＩＤは、１つの仮想ディスクを構成していることを示す。例えば図４に示す仮想ディスクＶ１を構成するエクステントは、共通のＩＤ「０」を備える。
【００６８】
仮想ディスク構成ＩＤの欄には、仮想ディスクＶ１内でのエクステントを管理するＩＤが設定される。
エクステントＩＤの欄には、エクステントＩＤが設定される。
【００６９】
移行制御部１３０は、ストレージプールＡ０に物理ディスクが新たに追加されたとき、またはストレージプールＡ０から仮想ディスクＶ１を構成する物理ディスクが除外されたときに、再構成後の仮想ディスクを構成する物理ディスクのエクステントの数を均等化するデータ移行処理を実行する。具体的には移行制御部１３０は、仮想ディスクＶ１内のエクステントを、再構成後の仮想ディスクの物理ディスクの数と同じ数のエクステントを含む区画に区切り複数の区画を作成する。そして、ストレージプールＡ０に物理ディスクが新たに追加された場合、移行制御部１３０は、作成された各区画において、各物理ディスクのエクステント数が１になるように、同一の物理ディスクの２つ目以降のエクステントを、その区画内にエクステントが配置されていない他の物理ディスクに移動させる処理を実行する。
【００７０】
また、ストレージプールＡ０または仮想ディスクＶ１から物理ディスクを取り除くとき、移行制御部１３０は、作成された各区画において、除外する物理ディスクに属するエクステント数が０になるように、その物理ディスクのエクステントを、その区画内にエクステントが配置されていない他の物理ディスクに移動させる。このデータ移行処理により、再構成後の仮想ディスクを構成する物理ディスクのうち、特定の物理ディスクにアクセスが集中することを回避する。
【００７１】
この移行制御部１３０は、データ移行処理においてコピー管理テーブル１３１とエクステント管理テーブル１３２を区画ごとに作成する。エクステント管理テーブル１３２は、記憶部に記憶されるテーブルの一例である。
【００７２】
図８は、コピー管理テーブルを示す図である。
コピー管理テーブル１３１には、物理ディスクＩＤおよびコピー数の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【００７３】
物理ディスクＩＤの欄には、データ移行処理における再構成後の仮想ディスクを構成する物理ディスクを特定するＩＤが設定される。例えば、データ移行処理において、仮想ディスクＶ１を構成する物理ディスクが３から４に変更された場合、物理ディスクＩＤの欄には、再構成後の仮想ディスクを構成する４つの物理ディスクを特定するＩＤが設定される。
【００７４】
コピー数の欄には、データ移行処理において物理ディスクＩＤにより特定される物理ディスクにデータコピーが実行された回数を示す値が設定される。
図９は、エクステント管理テーブルを示す図である。
【００７５】
エクステント管理テーブル１３２には、物理ディスクＩＤおよびエクステント数の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
物理ディスクＩＤの欄には、データ移行処理における再構成後の仮想ディスクを構成する物理ディスクを特定するＩＤが設定される。例えば、データ移行処理において、仮想ディスクＶ１を構成する物理ディスクが３から４に変更された場合、物理ディスクＩＤの欄には、再構成後の仮想ディスクを構成する４つの物理ディスクを特定するＩＤが設定される。
【００７６】
エクステント数の欄には、物理ディスクＩＤにより特定される物理ディスクが備える、作成された区画内のエクステントの数が設定される。
次に、移行制御部１３０が実行するデータ移行処理を、フローチャートを用いて説明する。
【００７７】
図１０、図１１、図１２は、データ移行処理を示すフローチャートである。
［ステップＳ１］  移行制御部１３０は、物理ディスクの追加指示または物理ディスクの除外指示を受け付ける。その後、ステップＳ２に遷移する。
【００７８】
［ステップＳ２］  移行制御部１３０は、ストレージプール構成情報テーブル１１１の物理ディスクＩＤの欄を参照し、現在（物理ディスクの追加前または物理ディスクの除外前）の仮想ディスクＶ１を構成する物理ディスクの数を取得する。その後、ステップＳ３に遷移する。
【００７９】
［ステップＳ３］  移行制御部１３０は、ステップＳ１にて受け付けた指示が物理ディスクの追加指示か否かを判断する。受け付けた指示が物理ディスクの追加指示である場合（ステップＳ３のＹｅｓ）、ステップＳ４に遷移する。受け付けた指示が物理ディスクの追加指示ではない場合、すなわち、受け付けた指示が物理ディスクの除外指示である場合（ステップＳ３のＮｏ）、ステップＳ６に遷移する。
【００８０】
［ステップＳ４］  移行制御部１３０は、受け付けた物理ディスクの追加指示に含まれる、追加する物理ディスクの数を取得する。その後、ステップＳ５に遷移する。
［ステップＳ５］  移行制御部１３０は、物理ディスクを追加することによる再構成後の仮想ディスクを構成する物理ディスクの数を計算する。その後、ステップＳ８に遷移する。
【００８１】
［ステップＳ６］  移行制御部１３０は、受け付けた物理ディスクの除外指示に含まれる、除外する物理ディスクの数を取得する。その後、ステップＳ７に遷移する。
［ステップＳ７］  移行制御部１３０は、物理ディスクを除外することによる再構成後の仮想ディスクを構成する物理ディスクの数を計算する。その後、ステップＳ８に遷移する。
【００８２】
［ステップＳ８］  移行制御部１３０は、仮想ディスク構成情報テーブル１２１の仮想ディスク構成ＩＤの欄を参照し、仮想ディスクＶ１が使用中のエクステント数を取得する。その後、ステップＳ９に遷移する。
【００８３】
［ステップＳ９］  移行制御部１３０は、ステップＳ５またはステップＳ７にて計算した再構成後の仮想ディスクを構成する物理ディスクの数でステップＳ８にて取得したエクステント数を除算する。その後、ステップＳ１０に遷移する。この除算により得られた値を以下「区画数」という。区画数は、物理ディスクに属するエクステント数の平均化を示す指標となる。ここで、再構成後の仮想ディスクを構成する物理ディスクの数をＮｎ、エクステント数をＮｔｅとすると、区画数Ｎｚは、Ｎｚ＝Ｎｔｅ／Ｎｎで表すことができる。本実施の形態では、小数点１桁目は切り上げ、区画数Ｎｚを整数で表す。
【００８４】
［ステップＳ１０］  移行制御部１３０は、ステップＳ９にて求めた区画数により区切られた仮想ディスク構成情報テーブル１２１の１番目の区画（仮想ディスク構成ＩＤ＝０を含む区画）を選択する。移行制御部１３０が選択した区画を以下、選択区画という。また、移行制御部１３０は、選択区画を管理するパラメータをＮａとすると、パラメータＮａ＝１に設定する。その後、ステップＳ１１に遷移する。
【００８５】
［ステップＳ１１］  移行制御部１３０は、コピー管理テーブル１３１およびエクステント管理テーブル１３２の記憶領域をＲＡＭ２１２に確保する。そして、移行制御部１３０は、確保した記憶領域に、再構成後の仮想ディスクを構成する物理ディスクのＩＤを反映したコピー管理テーブル１３１およびエクステント管理テーブル１３２を作成する。その後、ステップＳ１２に遷移する。
【００８６】
［ステップＳ１２］  移行制御部１３０は、ステップＳ１１にて作成したエクステント管理テーブル１３２のエクステント数の欄に、選択区画に存在するエクステントの数を反映する。その後、ステップＳ１３に遷移する。
【００８７】
［ステップＳ１３］  移行制御部１３０は、ステップＳ１にて受け付けた指示が物理ディスクの追加指示か否かを判断する。受け付けた指示が物理ディスクの追加指示である場合（ステップＳ１３のＹｅｓ）、図１１のステップＳ１４に遷移する。受け付けた指示が物理ディスクの追加指示ではない場合、すなわち、受け付けた指示が物理ディスクの除外指示である場合（ステップＳ１３のＮｏ）、図１２のステップＳ２５に遷移する。
【００８８】
［ステップＳ１４］  移行制御部１３０は、エクステント管理テーブル１３２のエクステント数の欄を参照し、選択区画において同一物理ディスク内のエクステント数が２以上の物理ディスクが存在するか否かを判断する。選択区画において同一物理ディスク内のエクステント数が２以上の物理ディスクが存在する場合（ステップＳ１４のＹｅｓ）、ステップＳ１５に遷移する。選択区画において同一物理ディスク内のエクステント数が２以上の物理ディスクが存在しない場合（ステップＳ１４のＮｏ）、ステップＳ３６に遷移する。
【００８９】
［ステップＳ１５］  移行制御部１３０は、ビットマップ１１２を参照し、エクステント数が２以上となる、すなわち、選択区画において同一の物理ディスクが備えるエクステントのデータの有無を取得する。その後、ステップＳ１６に遷移する。
【００９０】
［ステップＳ１６］  移行制御部１３０は、ステップＳ１４にて取得したデータの有無に基づき、選択区画において同一の物理ディスクが備える全てのエクステントにデータが存在するか否かを判断する。選択区画において同一の物理ディスクが備える全てのエクステントにデータが存在する場合（ステップＳ１６のＹｅｓ）、ステップＳ１７に遷移する。選択区画において同一の物理ディスクが備えるエクステントの全てにデータが存在しない場合、すなわち、選択区画において同一の物理ディスクが備える一部のエクステントにデータが存在する場合または選択区画において同一の物理ディスクが備える全てのエクステントにデータが存在しない場合（ステップＳ１６のＮｏ）、ステップＳ１９に遷移する。
【００９１】
［ステップＳ１７］  移行制御部１３０は、第１のデータコピー処理を実行する。具体的には、移行制御部１３０は、選択区画において同一の物理ディスクの２つ目以降のエクステント（例えば、エクステントＩＤの値が大きい方のエクステント）に対し、選択区画内に存在する、追加された物理ディスクが備えるエクステントにデータをコピーする。その後、ステップＳ１８に遷移する。
【００９２】
［ステップＳ１８］  移行制御部１３０は、第１のデータコピー処理の処理結果を用いてコピー管理テーブル１３１を更新する。具体的には、移行制御部１３０は、データをコピーしたエクステントを備える物理ディスクのコピー数の欄の値をインクリメントする。その後、ステップＳ２４に遷移する。
【００９３】
［ステップＳ１９］  移行制御部１３０は、選択区画において同一の物理ディスクが備える全てのエクステントにデータが存在しないか否かを判断する。選択区画において同一の物理ディスクが備える全てのエクステントにデータが存在しない場合（ステップＳ１９のＹｅｓ）、ステップＳ２０に遷移する。選択区画において同一の物理ディスクが備える一部のエクステントにデータが存在する場合（ステップＳ１９のＮｏ）、ステップＳ２１に遷移する。
【００９４】
［ステップＳ２０］  移行制御部１３０は、第１のエクステント移行処理を実行する。具体的には移行制御部１３０は、選択区画において同一物理ディスクの２つ目以降のエクステント（例えば、エクステントＩＤの値が大きい方のエクステント）のエクステントＩＤを特定する。そして、移行制御部１３０は、仮想ディスク構成情報テーブル１２１の特定したエクステントＩＤの欄を、同一区画に存在する追加された物理ディスクのエクステントＩＤで上書きする。その後、ステップＳ２４に遷移する。
【００９５】
［ステップＳ２１］  移行制御部１３０は、未処理の（ステップＳ２２の処理を行っていない）エクステントを１つ選択する。その後、ステップＳ２２に遷移する。
［ステップＳ２２］  移行制御部１３０は、ステップＳ２１にて選択したエクステントはデータが存在しないエクステントか否かを判断する。データが存在しないエクステントである場合（ステップＳ２２のＹｅｓ）、ステップＳ２３に遷移する。データが存在するエクステントである場合（ステップＳ２２のＮｏ）、ステップＳ２１に遷移し、ステップＳ２１以降の処理を引き続き実行する。
【００９６】
［ステップＳ２３］  移行制御部１３０は、第２のエクステント移行処理を実行する。具体的には、移行制御部１３０は、コピー管理テーブル１３１のコピー数の欄を参照する。そして、移行制御部１３０は、ステップＳ２２にてデータが存在しないと判断したエクステントを、コピー数が最も多い物理ディスクが備えるエクステントに置き換える。具体的な処理として、移行制御部１３０は、仮想ディスク構成情報テーブル１２１のステップＳ２２にてデータが存在しないと判断したエクステントのエクステントＩＤを、コピー数が最も多い物理ディスクが備えるエクステントのエクステントＩＤに置き換える。その後、ステップＳ２４に遷移する。データのコピーを伴わないエクステントは、コピー数の多い物理ディスクに置き換えることにより、選択区画内のデータアクセスの均等化を図ることができる。
【００９７】
なお、コピー管理テーブル１３１のコピー数の欄の値がいずれも０である場合は、ステップＳ２２にてデータが存在しないと判断したエクステントを、新たに追加した物理ディスクが備えるエクステントに置き換えるようにしてもよい。
【００９８】
［ステップＳ２４］  移行制御部１３０は、ステップＳ２０またはステップＳ２３のエクステントの移行をエクステント管理テーブル１３２に反映することで、エクステント管理テーブル１３２を更新する。その後、ステップＳ１４に遷移する。
【００９９】
［ステップＳ２５］  移行制御部１３０は、物理ディスクの除外指示により除外予定の物理ディスクが選択区画に含まれているか否かを判断する。除外予定の物理ディスクが区画に含まれている場合（ステップＳ２５のＹｅｓ）、ステップＳ２６に遷移する。除外予定の物理ディスクが区画に含まれていない場合（ステップＳ２５のＮｏ）、ステップＳ３６に遷移する。
【０１００】
［ステップＳ２６］  移行制御部１３０は、ビットマップ１１２を参照し、除外予定の物理ディスクが備えるエクステントのデータの有無を取得する。その後、ステップＳ２７に遷移する。
【０１０１】
［ステップＳ２７］  移行制御部１３０は、ステップＳ２６にて取得したデータの有無に基づき、選択区画において同一の物理ディスクが備える全てのエクステントにデータが存在するか否かを判断する。選択区画において同一の物理ディスクが備える全てのエクステントにデータが存在する場合（ステップＳ２７のＹｅｓ）、ステップＳ２８に遷移する。選択区画において同一の物理ディスクが備えるエクステントの全てにデータが存在しない場合、すなわち、選択区画において同一の物理ディスクが備える一部のエクステントにデータが存在する場合または選択区画において同一の物理ディスクが備える全てのエクステントにデータが存在しない場合（ステップＳ２７のＮｏ）、ステップＳ３０に遷移する。
【０１０２】
［ステップＳ２８］  移行制御部１３０は、第２のデータコピー処理を実行する。具体的には、移行制御部１３０は、エクステント管理テーブル１３２のエクステント数の欄を参照する。そして、移行制御部１３０は、除外予定の物理ディスクのエクステントに記憶されているデータを、選択区画内に存在し、エクステント数が０である他の物理ディスクが備えるエクステントにコピーする。その後、ステップＳ２９に遷移する。
【０１０３】
［ステップＳ２９］  移行制御部１３０は、第２のデータコピー処理の処理結果を用いてコピー管理テーブル１３１を更新する。具体的には、移行制御部１３０は、ステップＳ２８にて実行したデータコピー先の物理ディスクのコピー数の欄の値をインクリメントする。その後、ステップＳ３５に遷移する。
【０１０４】
［ステップＳ３０］  移行制御部１３０は、選択区画において同一の物理ディスクが備える全てのエクステントにデータが存在しないか否かを判断する。選択区画において同一の物理ディスクが備える全てのエクステントにデータが存在しない場合（ステップＳ３０のＹｅｓ）、ステップＳ３１に遷移する。選択区画において同一の物理ディスクが備える一部のエクステントにデータが存在する場合（ステップＳ３０のＮｏ）、ステップＳ３２に遷移する。
【０１０５】
［ステップＳ３１］  移行制御部１３０は、第３のエクステント移行処理を実行する。具体的には移行制御部１３０は、除外予定の物理ディスクのエクステントに対し、同一区画に存在し、エクステント数が０である他の物理ディスクにエクステントを移行する。その後、ステップＳ３５に遷移する。
【０１０６】
［ステップＳ３２］  移行制御部１３０は、未処理の（ステップＳ３３の処理を行っていない）エクステントを１つ選択する。その後、ステップＳ３３に遷移する。
［ステップＳ３３］  移行制御部１３０は、ステップＳ３２にて選択したエクステントはデータが存在しないエクステントか否かを判断する。データが存在しないエクステントである場合（ステップＳ３３のＹｅｓ）、ステップＳ３４に遷移する。データが存在するエクステントである場合（ステップＳ３３のＮｏ）、ステップＳ３２に遷移し、ステップＳ３２以降の処理を引き続き実行する。
【０１０７】
［ステップＳ３４］  移行制御部１３０は、第４のエクステント移行処理を実行する。具体的には、移行制御部１３０は、コピー管理テーブル１３１のコピー数の欄を参照する。そして、移行制御部１３０は、ステップＳ３３にてデータが存在しないと判断したエクステントを、コピー数が最も多い物理ディスクのエクステントに置き換える。具体的な処理として、移行制御部１３０は、仮想ディスク構成情報テーブル１２１のステップＳ３３にてデータが存在しないと判断したエクステントのエクステントＩＤを、コピー数が最も多い物理ディスクが備えるエクステントのエクステントＩＤに置き換える。その後、ステップＳ３５に遷移する。
【０１０８】
なお、コピー管理テーブル１３１のコピー数がいずれも０である場合は、ステップＳ３３にてデータが存在しないと判断したエクステントを、新たに追加した物理ディスクが備えるエクステントに置き換えるようにしてもよい。
【０１０９】
［ステップＳ３５］  移行制御部１３０は、ステップＳ３１またはステップＳ３４のエクステントの移行をエクステント管理テーブル１３２に反映することで、エクステント管理テーブル１３２を更新する。その後、ステップＳ２５に遷移する。
【０１１０】
［ステップＳ３６］  移行制御部１３０は、エクステント管理テーブル１３２を初期化する。その後、ステップＳ３７に遷移する。
［ステップＳ３７］  移行制御部１３０は、パラメータＮａをインクリメントすることにより選択区画を次の区画に進める。その後、ステップＳ３８に遷移する。
【０１１１】
［ステップＳ３８］  移行制御部１３０は、パラメータＮａが区画数Ｎｚより大きいか否かを判断することにより、未処理の（ステップＳ１１〜Ｓ３５の処理を行っていない）区画が存在するか否かを判断する。パラメータＮａが区画数Ｎｚより大きい場合（ステップＳ３８のＹｅｓ）、ステップＳ３９に遷移する。パラメータＮａが区画数Ｎｚ以下である場合（ステップＳ３８のＮｏ）、ステップＳ１１に遷移し、ステップＳ３７にて進めた選択区画についてステップＳ１１以降の処理を引き続き実行する。
【０１１２】
［ステップＳ３９］  移行制御部１３０は、コピー管理テーブル１３１を初期化する。その後、ステップＳ４０に遷移する。
［ステップＳ４０］  移行制御部１３０は、物理ディスク追加指示または物理ディスク除外指示への完了を仮想ディスク管理部１２０に通知する。その後、データ移行処理を終了する。
【０１１３】
次に、データ移行処理の具体例を図１０〜図１２に示したフローチャートの各ステップに沿って説明する。具体例では、図４に示すストレージプールＡ０に物理ディスク３０４（容量：３ＧＢ）を１本追加するものとする。
【０１１４】
移行制御部１３０は、物理ディスクの追加指示を受け付ける。
次に、移行制御部１３０は、ストレージプール構成情報テーブル１１１を参照し、現在の物理ディスクの数「Ｎｏ＝３」を取得する。
【０１１５】
次に、移行制御部１３０は、物理ディスクの追加であるため、追加物理ディスクの数「Ｎ＋＝１」を取得し、ストレージプール構成情報テーブル１１１を更新する。
図１３は、更新されたストレージプール構成情報テーブルを示す図である。
【０１１６】
図１３に示すストレージプール構成情報テーブル１１１は、追加する物理ディスク３０４の物理ディスクＩＤが４であり、物理ディスク３０４の容量３ＧＢの全てをエクステントに割り振ったことを示している。
【０１１７】
次に、移行制御部１３０は、再構成後の仮想ディスクを構成する物理ディスクの数「Ｎｎ＝Ｎｏ＋（Ｎ＋）＝４」を取得する。
次に、移行制御部１３０は、仮想ディスク構成情報テーブル１２１を参照し、仮想ディスクＶ１が現状使用しているエクステント数「Ｎｔｅ＝１０」を取得する。
【０１１８】
次に、移行制御部１３０は、使用中のエクステント領域「Ｎｔｅ＝１０」を再構成後の仮想ディスクを構成する物理ディスクの数「Ｎｎ＝４」で除算する。小数点１桁目は切り上げることにより区画数「Ｎｚ＝３」を得る。
【０１１９】
図１４は、区画により区切られた仮想ディスク構成情報テーブルを示す図である。
第１区画は、仮想ディスク構成ＩＤ＝０〜３、第２区画は、仮想ディスク構成ＩＤ＝４〜７、第３区画は、仮想ディスク構成ＩＤ＝８、９となる。
【０１２０】
まず、移行制御部１３０は、第１区画を選択区画として以下の処理を実行する。
次に、移行制御部１３０は、コピー管理テーブル１３１の生成領域およびエクステント管理テーブル１３２の生成領域をＲＡＭ２１２に確保する。そして確保した領域に初期化された第１区画のコピー管理テーブル１３１およびエクステント管理テーブル１３２を生成する。本具体例において作成されたコピー管理テーブル１３１およびエクステント管理テーブル１３２は、図８および図９に示すコピー管理テーブル１３１およびエクステント管理テーブル１３２と同じものとなる。
【０１２１】
次に、移行制御部１３０は、仮想ディスク構成情報テーブル１２１の第１区画に対応するストレージプール構成情報テーブル１１１の物理ディスクＩＤの数を計数することにより、第１区画内の各物理ディスク３０１、３０２、３０３、３０４のエクステント数を取得する。そして、移行制御部１３０は、取得したエクステント数をエクステント管理テーブル１３２に記憶する。
【０１２２】
図１５は、具体例の第１区画のエクステント管理テーブルを示す図である。
図１５（ａ）は、エクステント移行前のエクステント管理テーブル１３２を示している。
【０１２３】
次に、移行制御部１３０は、指示の内容が物理ディスクの追加であるため、図１５（ａ）に示すエクステント管理テーブル１３２のエクステント数の欄を参照し、同一物理ディスク内のエクステント数は２以上か否かを判断する。本具体例では、物理ディスクＩＤ＝１のエクステント数が２であるため、移行制御部１３０は、ビットマップ１１２を参照し、物理ディスクＩＤ＝１の物理ディスク３０１が備える各エクステントＩＤ＝０、１のデータの有無を判断する。本具体例では、判断の基準に図６に示すビットマップ１１２を用いる。図６に示すビットマップ１１２を参照すると、エクステントＩＤ＝１のエクステント、すなわち、一部のエクステントにデータが存在する。このため、移行制御部１３０は、まずエクステントＩＤ＝０のエクステントを処理する。エクステントＩＤ＝０のエクステントにはデータが存在しない。このため、移行制御部１３０は、コピー管理テーブル１３１のコピー数を参照する。本具体例では、コピー数はいずれも０であるため、仮想ディスク構成情報テーブル１２１のエクステントＩＤ＝０を、物理ディスク３０４のエクステントＩＤ＝１１で置き換える。エクステントＩＤ＝０のエクステントにはデータが存在しないため、当該処理では、エクステントの置き換えのみを行う。
【０１２４】
図１５（ｂ）は、更新されたエクステント管理テーブルを示す図である。
次に、移行制御部１３０は、エクステント管理テーブル１３２のエクステント数の欄を参照し、同一物理ディスク内のエクステント数は２以上か否かを判断する。エクステント数が２以上の物理ディスクは存在しないため、移行制御部１３０は、エクステント管理テーブル１３２を初期化する。
【０１２５】
次に、移行制御部１３０は、対象を第２区画、第３区画の順に進め、それぞれ第１区画と同様の処理を行う。第３区画について処理が完了すると、移行制御部１３０は、コピー管理テーブル１３１を初期化する。次に、移行制御部１３０は、物理ディスク追加指示への完了を仮想ディスク管理部１２０に通知する。仮想ディスク管理部１２０は、更新された仮想ディスク構成情報テーブル１２１を用いてデータ移行処理後の仮想ディスクへのディスクアクセスの制御を実行する。
【０１２６】
図１６は、具体例の処理結果を示す図である。
仮想ディスクＶ１の第１区画には、物理ディスク３０１が備えるエクステントＩＤ＝０、１のエクステントが存在する。この仮想ディスクＶ１に対しデータ移行処理を実行した結果を示す仮想ディスクＶ２の第１区画では、物理ディスク３０１が備えるエクステントＩＤ＝１のエクステントが、物理ディスク３０４が備えるエクステントＩＤ＝１１のエクステントに置き換わっている。また、仮想ディスクＶ１の第２区画には、物理ディスク３０２が備えるエクステントＩＤ＝５、６のエクステントが存在する。この仮想ディスクＶ１に対し仮想ディスクＶ２の第２区画では、物理ディスク３０２が備えるエクステントＩＤ＝６のエクステントが、物理ディスク３０４が備えるエクステントＩＤ＝１１のエクステントに置き換わっている。また、仮想ディスクＶ１の第３区画には、同一物理ディスク内のエクステント数が２以上の物理ディスクが存在しない。このため、仮想ディスクＶ２の第３区画のエクステントの構成は、仮想ディスクＶ１の第３区画のエクステントの構成と同じである。
【０１２７】
以上述べたように、ストレージ装置１００によれば、移行制御部１３０が、物理ディスク３０１、３０２、３０３、３０４の数と同じ４つの区画が含まれる第１区画、および第２区画、並びに残りのエクステントが含まれる第３区画を作成した。そして、作成された第１区画〜第３区画内のエクステントが、互いに異なる物理ディスクのそれぞれの記憶領域に割り当てられ、仮想ディスクＶ２を作成するようにした。ＣＭ２０１、２０２は、仮想ディスクＶ２を用いてＩ／Ｏ処理を実行することにより、仮想ディスクＶ１に比べ、１つの物理ディスクにＩ／Ｏアクセスが集中する可能性を低減することができる。また、本実施の形態のデータ移行処理では、一部のエクステントを置き換えるようにしたので、例えば全面コピーを実行する場合に比べ、データ移動量を減らすことができる。
【０１２８】
なお、ＣＭ２０１が行った処理が、ＣＭ２０１、２０２によって分散処理されるようにしてもよい。例えば、ＣＭ２０１が、データ移行処理を実行し、ＣＭ２０２が、その結果を用いてディスクアクセスの制御を行うようにしてもよい。また、ストレージ装置１００が行った処理が、複数の装置によって分散処理されるようにしてもよい。
【０１２９】
以上、本発明の割り当て装置およびストレージ装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０１３０】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、制御装置２およびＣＭ２０１、２０２が有する機能の処理内容を記述したプログラムが提供され、ＲＡＭ２１２等に格納される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等が挙げられる。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０１３１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１３３】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
【０１３４】
以上の第１〜第２の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  Ｍ個の物理記憶装置のそれぞれが備える複数の物理記憶領域が分散して割り当てられた複数の部分仮想記憶領域を含む仮想記憶領域を、前記Ｍ個の物理記憶装置に１以上の物理記憶装置が追加されたＮ個の物理記憶装置のそれぞれが備える複数の物理記憶領域に分散して割り当てる割り当て装置において、
前記複数の部分仮想記憶領域に含まれるＮ個の部分仮想記憶領域に、前記Ｍ個以下のＰ個の部分仮想記憶領域については、仮想記憶領域と物理記憶領域との割り当て関係を維持し、残りのＮ−Ｐ個の部分仮想記憶領域の各々に前記Ｎ個の物理記憶装置から前記Ｐ個の物理記憶装置を除いた１または複数の物理記憶装置のそれぞれが備える物理記憶領域を分散して割り当てる割り当て部を有することを特徴とする割り当て装置。
【０１３５】
（付記２）  前記割り当て部の物理記憶領域の割り当てにより割り当て関係が解除された物理記憶領域にデータが存在するか否かを判断し、前記物理記憶領域にデータが存在する場合、前記物理記憶領域から前記仮想記憶領域に割り当てられた物理記憶領域へのデータの書き込みを実行し、前記物理記憶領域にデータが存在しない場合、前記物理記憶領域から前記仮想記憶領域に割り当てられた物理記憶領域へのデータの書き込みを省略することを特徴とする付記１記載の割り当て装置。
【０１３６】
（付記３）  前記割り当て部は、前記Ｍ個の物理記憶装置から１以上の物理記憶装置が除外されたＱ個の物理記憶装置のそれぞれが備える複数の物理記憶領域に分散して割り当てる場合に、前記複数の部分仮想記憶領域に含まれるＱ個の部分仮想記憶領域のいずれかに、前記Ｍ個の物理記憶装置から前記Ｑ個の物理記憶装置を除いた１または複数の物理記憶装置のそれぞれが備える物理記憶領域を分散して割り当て、残りの部分仮想記憶領域については、仮想記憶領域と物理記憶領域との割り当て関係を維持することを特徴とする請求項１記載の割り当て装置。
【０１３７】
（付記４）  Ｍ個の物理記憶装置のそれぞれが備える複数の物理記憶領域が分散して割り当てられた複数の部分仮想記憶領域を含む仮想記憶領域を、前記Ｍ個の物理記憶装置に１以上の物理記憶装置が追加されたＮ個の物理記憶装置のそれぞれが備える複数の物理記憶領域に分散して割り当てる割り当て方法において、
コンピュータに
前記複数の部分仮想記憶領域に含まれるＮ個の部分仮想記憶領域に、前記Ｍ個以下のＰ個の部分仮想記憶領域については、仮想記憶領域と物理記憶領域との割り当て関係を維持し、残りのＮ−Ｐ個の部分仮想記憶領域の各々に前記Ｎ個の物理記憶装置から前記Ｐ個の物理記憶装置を除いた１または複数の物理記憶装置のそれぞれが備える物理記憶領域を分散して割り当てる、
処理を実行させることを特徴とする割り当て方法。
【０１３８】
（付記５）  仮想記憶領域が備える複数の部分仮想記憶領域に順に、Ｍ個の物理記憶装置の各々が備える物理記憶領域を分散させて割り当てる割り当て部と、
前記複数の部分仮想記憶領域に割り当てる対象の物理記憶装置を、前記複数の物理記憶装置に１以上のＮ個の物理記憶装置を追加した場合に、前記複数の部分仮想記憶領域について前記順でＮ個の部分仮想記憶領域ごとに分割して得られる１つの分割範囲に含まれるＮ個の部分仮想記憶領域のうち、Ｍ個を超えた部分仮想領域については物理記憶領域を追加された前記１以上の物理記憶装置の各物理記憶領域に変更する変更部と、
を備えることを特徴とする割り当て装置。
【０１３９】
（付記６）  コンピュータに、
仮想記憶領域が備える複数の部分仮想記憶領域に順に、Ｍ個の物理記憶装置の各々が備える物理記憶領域を分散させて割り当てる第１の処理、
前記複数の部分仮想記憶領域に割り当てる対象の物理記憶装置を、前記複数の物理記憶装置に１以上のＮ個の物理記憶装置を追加した場合に、前記複数の部分仮想記憶領域について前記順でＮ個の部分仮想記憶領域ごとに分割して得られる１つの分割範囲に含まれるＮ個の部分仮想記憶領域のうち、Ｍ個を超えた部分仮想領域については物理記憶領域を追加された前記１以上の物理記憶装置の各物理記憶領域に変更する第２の処理、
を実行させることを特徴とする割り当て方法。
【０１４０】
（付記７）  仮想記憶領域が備える複数の部分仮想記憶領域に順に、Ｍ個の物理記憶装置の各々が備える物理記憶領域を分散させて割り当てる割り当て部と、
前記複数の部分仮想記憶領域に割り当てる対象の物理記憶装置を、前記複数の物理記憶装置から１以上の物理記憶装置を除外したＱ個の物理記憶装置に縮小する場合に、前記複数の部分仮想記憶領域について前記順でＱ個の部分仮想記憶領域ごとに分割して得られる１つの分割範囲に含まれるＱ個の部分仮想記憶領域のうちのいずれかに、除外対象の物理記憶装置に記憶されているデータを移動し、残りの部分仮想記憶領域については割り当てられた物理記憶領域を維持して該物理記憶領域に格納されたデータの移動は行わない変更部と、
を備えることを特徴とする割り当て装置。
【０１４１】
（付記８）  コンピュータに、
仮想記憶領域が備える複数の部分仮想記憶領域に順に、Ｍ個の物理記憶装置の各々が備える物理記憶領域を分散させて割り当てる第１の処理、
前記複数の部分仮想記憶領域に割り当てる対象の物理記憶装置を、前記複数の物理記憶装置から１以上の物理記憶装置を除外したＱ個の物理記憶装置に縮小する場合に、前記複数の部分仮想記憶領域について前記順でＱ個の部分仮想記憶領域ごとに分割して得られる１つの分割範囲に含まれるＱ個の部分仮想記憶領域のうちのいずれかに、除外対象の物理記憶装置に記憶されているデータを移動し、残りの部分仮想記憶領域については割り当てられた物理記憶領域を維持して該物理記憶領域に格納されたデータの移動は行わない第２の処理、
を実行させることを特徴とする割り当て方法。
【０１４２】
（付記９）  Ｍ個の物理記憶装置と、
前記Ｍ個の物理記憶装置のそれぞれが備える複数の物理記憶領域が分散して割り当てられた複数の部分仮想記憶領域を含む仮想記憶領域を、前記Ｍ個の物理記憶装置に１以上の物理記憶装置が追加されたＮ個の物理記憶装置のそれぞれが備える複数の物理記憶領域に分散して割り当てる制御装置と、を有するストレージ装置において、
前記制御装置は、前記複数の部分仮想記憶領域に含まれるＮ個の部分仮想記憶領域に、前記Ｍ個以下のＰ個の物理記憶装置に割り当てられたＰ個の部分仮想記憶領域については、仮想記憶領域と物理記憶領域との割り当て関係を維持し、残りのＮ−Ｐ個の部分仮想記憶領域の各々に前記Ｎ個の物理記憶装置から前記Ｐ個の物理記憶装置を除いた１または複数の物理記憶装置のそれぞれが備える物理記憶領域を分散して割り当てることを特徴とするストレージ装置。
【符号の説明】
【０１４３】
１、１００  ストレージ装置
２  制御装置
２ａ  管理部
２ｂ  作成部
２ｃ  記憶部
２ｄ  割り当て部
２ｅ  書き込み部
３、Ａ０  ストレージプール
３ａ〜３ｃ、４  物理記憶装置
３ｄ、３ｅ  仮想記憶装置
１１０  エクステント管理部
１１１  ストレージプール構成情報テーブル
１１２  ビットマップ
１２０  仮想ディスク管理部
１２１  仮想ディスク構成情報テーブル
１３０  移行制御部
１３１  コピー管理テーブル
１３２  エクステント管理テーブル
２００  ＣＥ
２０１、２０２  ＣＭ
３００  ＤＥ
３０１〜３０３  物理ディスク
４００  ホスト装置
Ｖ１、Ｖ２  仮想ディスク
【図１】
2013122691.tif 000003
【図２】
2013122691.tif 000004
【図３】
2013122691.tif 000005
【図４】
2013122691.tif 000006
【図５】
2013122691.tif 000007
【図６】
2013122691.tif 000008
【図７】
2013122691.tif 000009
【図８】
2013122691.tif 000010
【図９】
2013122691.tif 000011
【図１０】
2013122691.tif 000012
【図１１】
2013122691.tif 000013
【図１２】
2013122691.tif 000014
【図１３】
2013122691.tif 000015
【図１４】
2013122691.tif 000016
【図１５】
2013122691.tif 000017
【図１６】
2013122691.tif 000018