(57)【要約】【課題】シン・プロビジョニング技術を適用した際に、一つの論理ディスクに対して異なるＩ／Ｏパターンが存在している場合のＩ／Ｏレスポンスの劣化を低減し、且つ、容積効率の向上を図り得るストレージ装置、記憶領域割り当て方法及びプログラムを提供する。【解決手段】ディスクプール２００内に仮想的な論理ディスク群１２０を構築する、ストレージ装置１００は、ホスト計算機３００等からの書き込み要求に応じてデータ領域をディスクプール２００内に確保してデータの書き込みを行い、データのＩ／Ｏパターンを判別するデータ書き込み部１３０と、データ書き込み部１３０が、ディスクプール領域の割り当てを要求した場合に、割り当てポリシーに従ってデータ領域として使用されるディスクプール領域を割り当るディスクプール領域割り当て部１４０と、判別されたI／Ｏパターンに応じて、割り当てポリシーを変更する割り当てポリシー管理部１５０とを備える。【選択図】図１
2010086420.tif 000002
【特許請求の範囲】
【請求項１】
物理ディスク群で形成されたディスクプール内に、仮想的な論理ディスクを構築する、ストレージ装置であって、
外部のホスト計算機からデータの書き込み要求に応じて、前記データを書き込むためのデータ領域を前記ディスクプール内に確保して、前記データの書き込みを行い、且つ、前記データのＩ／Ｏパターンを判別する、データ書き込み部と、
前記データ書き込み部による前記データ領域の確保の際に、前記データ書き込み部が、ディスクプール領域の割り当てを要求した場合に、前記論理ディスクに設定されている割り当てポリシーに従って、前記データ領域として使用される前記ディスクプール領域を割り当る、ディスクプール領域割り当て部と、
前記データ書き込み部によって判別された前記I／Ｏパターンに応じて、前記論理ディスクに設定されている割り当てポリシーを変更する、割り当てポリシー管理部とを備える、ことを特徴とするストレージ装置。
【請求項２】
前記割り当てポリシーとして、一回の割り当て時に割り当て可能な前記ディスクプール領域の大きさが異なる、第１のポリシーまたは第２のポリシーが設定され、
前記第１のポリシーにおいて一回の割り当て時に割り当て可能な前記ディスクプール領域は、前記第２のポリシーにおいて一回の割り当て時に割り当て可能な前記ディスクプール領域よりも大きく設定されている、請求項１に記載のストレージ装置。
【請求項３】
前記データ書き込み部が、前記Ｉ／Ｏパターンの判別の度に、判別された前記Ｉ／Ｏパターンの数をその種類毎に積算し、
前記割り当てポリシー管理部が、前記Ｉ／Ｏパターンの種類毎に積算された数と、設定された閾値とを比較し、比較結果に基づいて、前記論理ディスクに設定されている割り当てポリシーを変更する、請求項１または２に記載のストレージ装置。
【請求項４】
前記論理ディスクが複数構築され、前記物理ディスクが複数の物理ブロックを有し、
当該ストレージ装置が、更に、前記ディスクプール領域を使用する前記データ領域を再配置するデータ領域再配置部を備え、
前記データ領域再配置部は、前記第１のポリシーが設定されている論理ディスクに対しては、連続していない複数の物理ブロックそれぞれに割り当てられている複数のデータ領域が、連続する複数の物理ブロックそれぞれに割り当てられるように、前記複数のデータ領域を再配置する、請求項１〜３のいずれかに記載のストレージ装置。
【請求項５】
前記データ領域再配置部が、前記第２のポリシーが設定されている論理ディスクに対しては、連続している複数の物理ブロックそれぞれに割り当てられている各データ領域中に、解放可能な領域が存在するかどうかを判定し、解放可能な領域が存在する場合は、これをディスクプール領域とする、請求項４に記載のストレージ装置。
【請求項６】
物理ディスク群で形成されたディスクプール内に、仮想的な論理ディスクを構築する際にディスクプール領域を割り当てるための、領域割り当て方法であって、
（ａ）外部のホスト計算機からデータの書き込み要求に応じて、前記データを書き込むためのデータ領域を前記ディスクプール内に確保して、前記データの書き込みを行う、ステップと、
（ｂ）前記データのＩ／Ｏパターンを判別する、ステップと、
（ｃ）前記（ａ）のステップにおける前記データ領域の確保の際に、ディスクプール領域の割り当てが必要となった場合に、前記論理ディスクに設定されている割り当てポリシーに従って、前記データ領域として使用される前記ディスクプール領域を割り当る、ステップと、
（ｄ）前記（ａ）のステップで判別された前記I／Ｏパターンに応じて、前記論理ディスクに設定されている割り当てポリシーを変更する、ステップとを備える、ことを特徴とする領域割り当て方法。
【請求項７】
前記割り当てポリシーとして、一回の割り当て時に割り当て可能な前記ディスクプール領域の大きさが異なる、第１のポリシーまたは第２のポリシーが設定され、
前記第１のポリシーにおいて一回の割り当て時に割り当て可能な前記ディスクプール領域は、前記第２のポリシーにおいて一回の割り当て時に割り当て可能な前記ディスクプール領域よりも大きく設定されている、請求項６に記載の領域割り当て方法。
【請求項８】
（ｅ）前記（ａ）のステップにおける判別の度に、判別された前記Ｉ／Ｏパターンの数をその種類毎に積算する、ステップを、更に備え、
前記（ｂ）のステップにおいて、前記（ｅ）のステップで、種類毎に積算された前記Ｉ／Ｏパターンの数と、設定された閾値とを比較し、比較結果に基づいて、前記論理ディスクに設定されている割り当てポリシーを変更する、請求項６または７に記載の領域割り当て方法。
【請求項９】
前記論理ディスクが複数構築され、前記物理ディスクが複数の物理ブロックを有し、
（ｆ）前記ディスクプール領域を使用する前記データ領域を再配置する、ステップを、更に備え、
前記（ｆ）のステップにおいて、前記第１のポリシーが設定されている論理ディスクに対しては、連続していない複数の物理ブロックそれぞれに割り当てられている複数のデータ領域が、連続する複数の物理ブロックそれぞれに割り当てられるように、前記複数のデータ領域を再配置する、請求項６〜８のいずれかに記載の領域割り当て方法。
【請求項１０】
前記（ｆ）のステップにおいて、前記第２のポリシーが設定されている論理ディスクに対しては、連続している複数の物理ブロックそれぞれに割り当てられている各データ領域中に、解放可能な領域が存在するかどうかを判定し、解放可能な領域が存在する場合は、これをディスクプール領域とする、請求項９に記載の領域割り当て方法。
【請求項１１】
物理ディスク群で形成されたディスクプール内に、仮想的な論理ディスクを構築する際に、ディスクプール領域の割り当てを、コンピュータに実行させるためのプログラムであって、
前記コンピュータに、
（ａ）外部のホスト計算機からデータの書き込み要求に応じて、前記データを書き込むためのデータ領域を前記ディスクプール内に確保して、前記データの書き込みを行う、ステップと、
（ｂ）前記データのＩ／Ｏパターンを判別する、ステップと、
（ｃ）前記（ａ）のステップにおける前記データ領域の確保の際に、ディスクプール領域の割り当てが必要となった場合に、前記論理ディスクに設定されている割り当てポリシーに従って、前記データ領域として使用される前記ディスクプール領域を割り当る、ステップと、
（ｄ）前記（ａ）のステップで判別された前記I／Ｏパターンに応じて、前記論理ディスクに設定されている割り当てポリシーを変更する、ステップとを実行させる、ことを特徴とするプログラム。
【請求項１２】
前記割り当てポリシーとして、一回の割り当て時に割り当て可能な前記ディスクプール領域の大きさが異なる、第１のポリシーまたは第２のポリシーが設定され、
前記第１のポリシーにおいて一回の割り当て時に割り当て可能な前記ディスクプール領域は、前記第２のポリシーにおいて一回の割り当て時に割り当て可能な前記ディスクプール領域よりも大きく設定されている、請求項１１に記載のプログラム。
【請求項１３】
（ｅ）前記（ａ）のステップにおける判別の度に、判別された前記Ｉ／Ｏパターンの数をその種類毎に積算する、ステップを、更に前記コンピュータに実行させ、
前記（ｂ）のステップにおいて、前記（ｅ）のステップで、種類毎に積算された前記Ｉ／Ｏパターンの数と、設定された閾値とを比較し、比較結果に基づいて、前記論理ディスクに設定されている割り当てポリシーを変更する、請求項１１または１２に記載のプログラム。
【請求項１４】
前記論理ディスクが複数構築され、前記物理ディスクが複数の物理ブロックを有し、
（ｆ）前記ディスクプール領域を使用する前記データ領域を再配置する、ステップを、更に前記コンピュータに実行させ、
前記（ｆ）のステップにおいて、前記第１のポリシーが設定されている論理ディスクに対しては、連続していない複数の物理ブロックそれぞれに割り当てられている複数のデータ領域が、連続する複数の物理ブロックそれぞれに割り当てられるように、前記複数のデータ領域を再配置する、請求項１１〜１３のいずれかに記載のプログラム。
【請求項１５】
前記（ｆ）のステップにおいて、前記第２のポリシーが設定されている論理ディスクに対しては、連続している複数の物理ブロックそれぞれに割り当てられている各データ領域中に、解放可能な領域が存在するかどうかを判定し、解放可能な領域が存在する場合は、これをディスクプール領域とする、請求項１４に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置に構成された仮想的な論理ディスクの領域割り当て方法、この方法を実行可能なストレージ装置及びプログラムに関する。
【背景技術】
【０００２】
複数の物理ディスクの集合によってＲＡＩＤを構成し、これを大容量ディスクとして扱い、その中に複数の論理ディスクを作成する、ディスクアレイ装置を代表とするストレージ装置がある。近年、ストレージ装置の分野では、シン・プロビジョニング技術が注目されている。
【０００３】
シン・プロビジョニング技術は、物理ディスク群からディスクプール領域を構成し、ディスクプール領域から論理ディスクを構成するストレージ装置において、論理ディスクの容量を仮想化し、データの書き込みに応じてオンデマンドで領域を割り当てる技術である。そして、シン・プロビジョニング技術は、容量効率、導入／運用の簡易化、エコの観点から需要が増える傾向にある。
【０００４】
但し、従来のシン・プロビジョニング技術を利用していないストレージ装置の運用と比較すると、シン・プロビジョニング技術を利用したストレージ装置では、性能劣化が生じてしまう。よって、性能劣化を防ぐような技術が要件として求められている。この点について以下に説明する。
【０００５】
シン・プロビジョニング技術を利用していない従来からのストレージ装置では、論理ディスクの構成時に物理ディスクの領域が割り当てられる。これに対して、シン・プロビジョニング技術を利用したストレージ装置では、論理ディスクに対するデータの書き込みに応じて領域が割り当てられる。
【０００６】
よって、データの書き込み要求があったタイミングで論理ディスクに対する領域の割り当て状況が確認され、また、未割り当ての領域が存在する場合は、領域を割り当てる動作が必要となる。このため、シン・プロビジョニング技術を利用したストレージ装置では、Ｉ／Ｏレスポンスが劣化するという問題がある。
【０００７】
また、シン・プロビジョニング技術を利用したストレージ装置は、各ホスト計算機から書き込み要求があったタイミングで、領域を確保する。このため、書き込みによる割り当ての順序に従って、各論理ディスクに領域を割り当てるので、ディスクプールの領域が、連続で確保されず断片化される場合がある。そして、このことによっても、Ｉ／Ｏレスポンスが劣化するという問題が生じてしまう。
【０００８】
Ｉ／Ｏレスポンスの劣化を防ぐ技術として、ディスクプール領域から割り当てる論理領域の割り当て単位を論理ディスク毎に指定し、性能が優先される論理ディスクに対しては、割り当て単位を大きくすることで、割り当てた領域の断片化を防ぐ公知の技術がある。しかし、上記の技術では、ディスクプール内に構築された論理ディスクの数だけ割り当て単位の設定が必要になるため、管理コストがかかるという別の問題が生じてしまう。
【０００９】
これらの課題を解決する技術として、特許文献１に開示されている技術が挙げられる。特許文献１に開示された技術では、先ず、割り当て単位の異なる複数のディスクプール領域が作成される。そして、ホスト計算機から論理ディスクに対して書き込み要求があった際に、書き込み要求があったＩ／Ｏサイズに応じて、割り当てが行われる最適なディスクプール領域が選択され、割り当てサイズが決定される。このため、特許文献１に開示された技術によれば、性能劣化（Ｉ／Ｏレスポンス）が防止されると考えられる。
【特許文献１】特開２００７−２６５２７０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に開示された技術には、以下の問題が存在する。１点目は、運用形態に応じ、一つの論理ディスクに対し異なるＩ／Ｏパターンがある場合に、Ｉ／Ｏサイズに応じて割り当てが行われると、最初の書き込み時のＩ／Ｏパターンを基準にして割り当てが行われているため、必ずしも最適な割り当てが行われない点である。この場合、Ｉ／Ｏレスポンスの劣化が生じてしまう。
【００１１】
２点目は、Ｉ／Ｏサイズに応じて割り当てが行われ、Ｉ／Ｏサイズが大きい場合に必ず大きなディスクプール領域が割り当てられるため、性能よりも容量効率を重視する運用には、対応できない点である。この場合は、容積効率が低下してしまう。
【００１２】
本発明の目的は、上記問題を解消し、シン・プロビジョニング技術を適用した際に、一つの論理ディスクに対して異なるＩ／Ｏパターンが存在している場合のＩ／Ｏレスポンスの劣化を低減し、且つ、容積効率の向上を図り得る、ストレージ装置、記憶領域割り当て方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明におけるストレージ装置は、物理ディスク群で形成されたディスクプール内に、仮想的な論理ディスクを構築する、ストレージ装置であって、
外部のホスト計算機からデータの書き込み要求に応じて、前記データを書き込むためのデータ領域を前記ディスクプール内に確保して、前記データの書き込みを行い、且つ、前記データのＩ／Ｏパターンを判別する、データ書き込み部と、
前記データ書き込み部による前記データ領域の確保の際に、前記データ書き込み部が、ディスクプール領域の割り当てを要求した場合に、前記論理ディスクに設定されている割り当てポリシーに従って、前記データ領域として使用される前記ディスクプール領域を割り当る、ディスクプール領域割り当て部と、
前記データ書き込み部によって判別された前記I／Ｏパターンに応じて、前記論理ディスクに設定されている割り当てポリシーを変更する、割り当てポリシー管理部とを備える、ことを特徴とする。
【００１４】
また、上記目的を達成するため、本発明における領域割り当て方法は、物理ディスク群で形成されたディスクプール内に、仮想的な論理ディスクを構築する際にディスクプール領域を割り当てるための、領域割り当て方法であって、
（ａ）外部のホスト計算機からデータの書き込み要求に応じて、前記データを書き込むためのデータ領域を前記ディスクプール内に確保して、前記データの書き込みを行う、ステップと、
（ｂ）前記データのＩ／Ｏパターンを判別する、ステップと、
（ｃ）前記（ａ）のステップにおける前記データ領域の確保の際に、ディスクプール領域の割り当てが必要となった場合に、前記論理ディスクに設定されている割り当てポリシーに従って、前記データ領域として使用される前記ディスクプール領域を割り当る、ステップと、
（ｄ）前記（ａ）のステップで判別された前記I／Ｏパターンに応じて、前記論理ディスクに設定されている割り当てポリシーを変更する、ステップとを備える、ことを特徴とする。
【００１５】
更に、上記目的を達成するため、本発明におけるプログラムは、物理ディスク群で形成されたディスクプール内に、仮想的な論理ディスクを構築する際に、ディスクプール領域の割り当てを、コンピュータに実行させるためのプログラムであって、
前記コンピュータに、
（ａ）外部のホスト計算機からデータの書き込み要求に応じて、前記データを書き込むためのデータ領域を前記ディスクプール内に確保して、前記データの書き込みを行う、ステップと、
（ｂ）前記データのＩ／Ｏパターンを判別する、ステップと、
（ｃ）前記（ａ）のステップにおける前記データ領域の確保の際に、ディスクプール領域の割り当てが必要となった場合に、前記論理ディスクに設定されている割り当てポリシーに従って、前記データ領域として使用される前記ディスクプール領域を割り当る、ステップと、
（ｄ）前記（ａ）のステップで判別された前記I／Ｏパターンに応じて、前記論理ディスクに設定されている割り当てポリシーを変更する、ステップとを実行させる、ことを特徴とする。
【発明の効果】
【００１６】
以上のように本発明によれば、シン・プロビジョニング技術を適用した際に、一つの論理ディスクに対して異なるＩ／Ｏパターンが存在している場合のＩ／Ｏレスポンスの劣化を低減できる。また、本発明によれば、容積効率の向上を図ることもできる。
【発明を実施するための最良の形態】
【００１７】
（実施の形態）
以下、本発明の実施の形態におけるストレージ装置、領域割り当て方法、及びプログラムについて、図１〜図１０を参照しながら説明する。最初に、本発明の実施の形態におけるストレージ装置の構成について、図１〜図６を用いて説明する。
【００１８】
図１は、本発明の実施の形態におけるストレージ装置の構成を示すブロック図である。図２は、図１に示す論理ディスク領域管理テーブルの一例を示す図である。図３は、図１に示すディスクプール領域管理テーブルの一例を示す図である。図４は、図１に示す割り当てポリシー管理テーブルの一例を示す図である。図５は、図１に示す割り当てポリシー設定テーブルの一例を示す図である。図６は、図１に示すI／Ｏパターン積算テーブルの一例を示す図である。
【００１９】
図１に示すストレージシステムは、本実施の形態におけるストレージ装置１００と、ホスト計算機３００と、ホスト計算機３１０と、ホスト計算機３２０とで構成される。ストレージ装置１００は、シン・プロビジョニング技術を利用している。ストレージ装置１００は、物理ディスク群１１０からディスクプール２００を構成し、ディスクプール２００内に仮想的な論理ディスク（論理ディスク群１２０）を構築する。
【００２０】
ホスト計算機３００、３１０、３２０は、ＳＡＮ環境でストレージ装置１００に接続されている。ホスト計算機３００、３１０、３２０は、ストレージ装置１００上に構築された仮想的な論理ディスク群１２０を利用する。
【００２１】
また、図１に示すように、ストレージ装置１００は、データ書き込み部１３０と、ディスクプール領域割り当て部１４０と、割り当てポリシー管理部１５０とを備えている。このうち、データ書き込み部１３０は、外部のホスト計算機３００、３１０、３２０からのデータの書き込み要求に応じて、データを書き込むためのデータ領域をディスクプール２００内に確保して、データの書き込みを実行する。また、データ書き込み部１３０は、データの書き込み要求があると、データのＩ／Ｏパターンを判別する。
【００２２】
ディスクプール領域割り当て部１４０は、データ書き込み部１３０によるデータ領域の確保の際に、論理ディスク１２０ａ〜１２０ｃに設定されている割り当てポリシーに従って、データ領域として使用されるディスクプール領域を割り当る。また、ディスクプール領域割り当て部１４０による割り当ては、データ書き込み部１３０が、ディスクプール領域の割り当てを要求した場合に行われる。
【００２３】
割り当てポリシー管理部１５０は、データ書き込み部１３０によって判別されたI／Ｏパターン（例えば、シーケンシャルI／ＯとランダムI／Ｏ）に応じて、論理ディスク１２０ａ〜１２０ｃに設定されている割り当てポリシーを変更する。なお、図１においては、論理ディスクとしては、三つの論理ディスクが示されているが、本実施の形態において、論理ディスクの個数は限定されるものではない。
【００２４】
このように、ストレージ装置１００においては、論理ディスクに設定した割り当てポリシーに応じて、ディスクプール領域が割り当てられ、この割り当てポリシーは、Ｉ／Ｏパターンに応じて変更される。よって、ストレージ装置１００によれば、一つの論理ディスクに対して異なるＩ／Ｏパターンが存在している場合であっても、最適な割り当てが行われ、Ｉ／Ｏレスポンスの劣化が低減される。
【００２５】
また、ストレージ装置１００では、Ｉ／Ｏパターンに応じて、割り当てポリシーが設定されるので、Ｉ／Ｏサイズが大きい場合であっても、小さなディスクプール領域を割り当てることができる。よって、ストレージ装置１００によれば、容積効率の向上も図られる。
【００２６】
ここで、ストレージ装置１００の構成について、更に具体的に説明する。ストレージ装置１００は、更に、データ領域再配置部１６０、論理ディスク領域管理テーブル１７０、ディスクプール領域管理テーブル１８０、割り当てポリシー管理テーブル１９０、Ｉ／Ｏパターン積算テーブル２１０、及び割り当てポリシー設定テーブル２２０を備えている。
【００２７】
本実施の形態では、データ書き込み部１３０は、ホスト計算機３００、３１０、３２０からデータの書き込み要求があると、先ず、論理ディスク領域管理テーブル１７０（図２参照）を参照し、データの書き込みが可能な領域（データ領域）の有無を確認する。
【００２８】
図２に示す論理ディスク領域管理テーブル１７０は、ストレージ装置１００が保有するテーブルである。論理ディスク領域管理テーブル１７０は、論理ディスクＩＤ、論理ディスクアドレス、及び割り当て物理ブロックＩＤを項目として構築されている。つまり、論理ディスク領域管理テーブル１７０は、仮想的な論理ディスクの一意の番号と、ディスクプール領域が割り当たっている論理ディスクのアドレスと、その論理ディスクに割り当たっている物理ブロックのＩＤとを一覧にしたテーブルである。
【００２９】
また、論理ディスク１２０ａ〜１２０ｃに、書き込み可能な領域がない場合は、データ書き込み部１３０は、ディスクプール２００から領域を確保するよう、ディスクプール領域割り当て部１４０に割り当てを要求する。更に、データ書き込み部１３０は、ディスクプール領域割り当て部１４０がディスクプール領域をいずれかの論理ディスク（１２０ａ〜１２０ｃ）に割り当てることにより、データ領域が確保されると、この論理ディスクに対してデータの書き込みを実行する。
【００３０】
また、データ書き込み部１３０は、本実施の形態では、その後、書き込むデータのＩ／ＯサイズとＩ／Ｏパターン（アクセス方法）を判別し、Ｉ／Ｏパターン積算テーブル２１０（図６参照）を更新する。
【００３１】
図６に示すＩ／Ｏパターン積算テーブル２１０は、ストレージ装置１００が保有するテーブルである。Ｉ／Ｏパターン積算テーブル２１０は、I／Ｏサイズ、Ｉ／Ｏパターン（アクセス方法）、及びディスクプール２００に構成される論理ディスク（ＬＤ０１〜ＬＤ０３）を項目として構築されている。Ｉ／Ｏパターン積算テーブル２１０は、論理ディスク毎にデータの書き込みが合った場合のI／Ｏパターンをカウントして得られた一覧である。
【００３２】
ディスクプール領域割り当て部１４０は、ストレージ装置１００上で動作している。ディスクプール領域割り当て部１４０は、本実施の形態では、データ書き込み部１３０からディクスプール領域の割り当て要求を受けると、割り当てポリシー管理テーブル１９０（図４参照）を参照する。そして、ディスクプール領域割り当て部１４０は、これを参照しながら各論理ディスク（１２０ａ〜１２０ｃ）に設定されているディスクプール２００の割り当てポリシーに従って、データ領域を割り当てる。その後、ディスクプール領域割り当て部１４０は、論理ディスク領域管理テーブル１７０（図２参照）とディスクプール領域管理テーブル１８０（図３参照）とを更新する。
【００３３】
図４に示す割り当てポリシー管理テーブル１９０は、ストレージ装置１００が保有するテーブルである。割り当てポリシー管理テーブル１９０は、論理ディスクＩＤ、割り当てポリシー、割り当てポリシー毎に設定された割り当て単位を項目として構築されている。また、割り当て単位は、一回の割り当て時に割り当て可能なディスクプール領域の大きさを意味している。割り当てポリシー管理テーブル１９０は、論理ディスク毎に設定された割り当てポリシーと、割り当て単位との組み合わせを一覧にしたテーブルである。
【００３４】
また、図４に示すように、本実施の形態では、割り当てポリシーとして、割り当て単位が異なる、二つの割り当てポリシー（速度重視または容量重視）が設定される。速度重視における割り当て単位は、容量重視における割り当て単位よりも大きく設定されている、各割り当てポリシーと割り当て単位との関係は、図５に示す割り当てポリシー設定テーブル２２０の通りである。図５に示す割り当てポリシー設定テーブル２２０は、割り当てポリシーと割り当て単位との組み合わせを一覧にしたテーブルである。
【００３５】
図３に示すディスクプール領域管理テーブル１８０も、ストレージ装置１００が保有するテーブルである。ディスクプール領域管理テーブル１８０は、物理ブロックＩＤ、ディスクプールアドレス、割り当て論理ディスクＩＤ、及び割り当てフラグを項目として構築されている。ディスクプール領域管理テーブル１８０は、物理ディスクＩＤが、どのアドレスを論理ブロック（１２０ａ〜１２０ｄ）に割り当てられており、物理ディスクを構成する各物理ブロックが割り当て済みであるかどうかを一覧にしたテーブルである。
【００３６】
割り当てポリシー管理部１５０は、ストレージ装置１００上で動作している。割り当てポリシー管理部１５０は、本実施の形態では、定期的に、Ｉ／Ｏパターン積算テーブル２１０（図６参照）と、割り当てポリシー管理テーブル１９０（図４参照）とを参照する。そして、割り当てポリシー管理部１５０は、Ｉ／Ｏパターンの種類毎に積算された数と、設定された閾値とを比較し、比較結果に基づいて、論理ディスク（１２０ａ〜１２０ｃ）に設定されている割り当てポリシーを変更する。なお、図６において、「★」は、閾値となっていることを示している。
【００３７】
具体的には、割り当てポリシー管理部１５０は、Ｉ／Ｏパターンの積算数が、予め設定された閾値を上回っている論理ディスクがあった場合は、割り当てポリシーを一時的に変更して、割り当て単位を変更する。例えば、図６に示すＬＤ０１の割り当てポリシーが容量重視に設定されている場合に、Ｉ／Ｏサイズが１以下で、Ｉ／Ｏパターンがランダムに設定された「Ｉ／Ｏ」の積算数が、閾値の「２５」となったとする。この場合、割り当てポリシー管理部１５０はＬＤ０１の割り当てポリシーを速度重視に変更し、割り当て単位を大きくする。この結果、Ｉ／Ｏレスポンスの低下が抑制される。変更後、割り当てポリシー管理部１５０は、割り当てポリシー管理テーブル１９０を更新する。
【００３８】
また、割り当てポリシー管理部１５０は、Ｉ／Ｏパターンの積算数が閾値を下回った場合は、論理ディスクの割り当てポリシーを再度変更して、割り当て単位を元に戻す。その後、割り当てポリシー管理部１５０は、割り当てポリシー管理テーブル１９０を再度更新する。
【００３９】
データ領域再配置部１６０は、ストレージ装置１００上で動作し、定期的に論理ディスク領域管理テーブル１７０（図２参照）と割り当てポリシー管理テーブル１９０（図４参照）とを参照し、ディスクプール領域を使用するデータ領域を再配置する。
【００４０】
データ領域再配置部１６０は、割り当てポリシーが速度重視に設定されている論理ディスクの場合、不連続の複数の物理ブロックそれぞれに割り当てられている複数のデータ領域が、連続する複数の物理ブロックそれぞれに割り当てられるように、複数のデータ領域を再配置する、
【００４１】
具体的には、データ領域再配置部１６０は、割り当てポリシーが速度重視に設定されている場合、データ領域として、論理ディスクの物理ブロックＩＤが不連続に割り当てられ、更に、連続化可能な割り当て単位が存在するかどうか判定する。存在する場合は、データ領域再配置部１６０は、ディスクプール領域割り当て部１４０にディスクプール領域の割り当てを要求する。そして、データ領域再配置部１６０は、割り当てた領域に、元のデータをコピーし、コピー前のデータ領域を削除することで、不連続なデータ領域を連続なデータ領域とする。
【００４２】
また、データ領域再配置部１６０は、割り当てポリシーが容量重視に設定されている論理ディスクの場合、連続している複数の物理ブロックそれぞれに割り当てられている各データ領域中に、解放可能な領域が存在するかどうかを判定する。そして、解放可能な領域が存在する場合は、データ領域再配置部１６０は、これをディスクプール領域とする。
【００４３】
具体的には、データ領域再配置部１６０は、割り当てポリシーが容量重視に設定されている場合において、速度重視の場合の割り当て単位でデータ領域が連続で割り当たっている、物理ブロックＩＤを判定の対象とする。そして、データ領域再配置部１６０は、判定の対象となるデータ領域を、容量重視の場合の割り当て単位で分割し、この場合に解放できるディスクプール領域が存在するかどうかを判定する。そして、存在している場合は、データ領域再配置部１６０は、その領域を解放しディスクプール２００に戻すことで、その領域を再利用可能にする。
【００４４】
次に、ストレージ装置１００の各部の機能について、各部の連係を中心に、時系列に沿って説明する。先ず、ディスクプール２００に仮想的な論理ディスク群１２０が構築される。この場合、ストレージ装置１００のディスクプール領域割り当て部１４０は、構築した仮想的な論理ディスク（１２０ａ〜１２０ｃ）毎に割り当てポリシーを設定する。
【００４５】
新しい仮想的な論理ディスク群１２０に対し、ホスト計算機３００、３１０、３２０からデータの書き込みが実施されると、データ書き込み部１３０は、ディスクプール領域管理テーブル１８０（図３参照）を参照する。そして、データ書き込み部１３０は、書き込み可能なディスクプール領域の有無を判定する。
【００４６】
書き込むためのディスクプール領域が存在しない場合は、データ書き込み部１３０は、ディスクプール領域割り当て部１４０に対して、ディスクプール領域の割り当てを要求する。ディスクプール領域の割り当て要求を受けたディスクプール領域割り当て部１４０は、割り当てポリシー管理テーブル１９０（図４参照）を参照し、割り当てポリシーに設定されている割り当て単位分のディスクプール領域を割り当てる。
【００４７】
ディスクプール領域の割り当てが実施されると、ディスクプール領域割り当て部１４０は、ディスクプール領域管理テーブル１８０（図３参照）と、論理ディスク領域管理テーブル１７０（図２参照）とを更新する。そして、ディスクプール領域割り当て部１４０は、ディスクプール領域を割り当てたことを、データ書き込み部１３０に通知する。
【００４８】
ディスクプール領域割り当て部１４０から領域を確保したことを受け、データ書き込み部１３０は、確保された領域にデータを書き込む。そして、データ書き込み部１３０は、書き込みを行ったデータのI／Ｏサイズや、Ｉ／Ｏパターン（アクセス方法）を含む特性をＩ／Ｏパターン積算テーブル２１０に登録する。
【００４９】
また、ストレージ装置１００が上述した動作を行うと同時に、割り当てポリシー管理部１５０が、定期的にＩ／Ｏパターン積算テーブル２１０を監視する。割り当てポリシー管理部１５０は、積算数の閾値の設定を含むI／Ｏパターンの判別方法を用いて、予め設定された割り当てポリシーがI／Ｏパターンと整合しなくなり、更に、I／Ｏパターンに起因して閾値変更の必要性が生じているかどうかを判定する。閾値変更の必要性が生じている場合は、割り当てポリシー管理部１５０は、割り当てポリシー管理テーブル１９０の割り当て単位を一時的に変更する。
【００５０】
更に、割り当て単位が一時的に変更された状態で、積算数が閾値を下回った場合は、割り当てポリシー管理部１５０は、割り当て単位を元に戻す動作を実行する。また、割り当てポリシー管理部１５０は、定期的にＩ／Ｏパターン積算テーブル２１０をリセットする。
【００５１】
また、データ領域再配置部１６０は、定期的に動作する。そして、データ領域再配置部１６０は、論理ディスク（１２０ａ〜１２０ｃ）の割り当てポリシーが速度重視であり、論理ディスク（１２０ａ〜１２０ｃ）の物理ブロックＩＤが不連続に割り当てられ、連続化可能な割り当て単位がある場合は、連続な物理ブロックをデータ領域に割り当て、データを再配置する。
【００５２】
更に、データ領域再配置部１６０は、論理ディスクの割り当てポリシーが容量重視である場合に、速度重視のときの割り当て単位でデータ領域が連続で割り当てられた物理ブロックＩＤが存在するかどうか判定する。存在する場合は、データ領域再配置部１６０は、容量重視のときの割り当て単位で分割すると、ディスクプール領域として解放できるデータ領域が存在するかどうかを更に判定する。存在する場合は、データ領域再配置部１６０は、このデータ領域を元のディスクプール領域に戻し、最適なディスクプール運用が実施可能となる。
【００５３】
次に、本発明の実施の形態における領域割り当て方法について図７〜図１０を用いて説明する。本実施の形態における領域割り当て方法は、図１に示した本実施の形態におけるストレージ装置を動作させることによって実施される。このため、本実施の形態における領域割り当て方法は、適宜図１〜図６を参酌しながら、ストレージ装置１００の動作と共に説明する。
【００５４】
図７は、ストレージ装置を構成するデータ書き込み部の動作を示すフロー図である。図８は、ストレージ装置を構成するディスクプール領域割り当て部の動作を示すフロー図である。図９は、ストレージ装置を構成する割り当てポリシー管理部の動作を示すフロー図である。図１０は、ストレージ装置を構成するデータ領域再配置部の動作を示すフロー図である。
【００５５】
最初に、図７を用いて、データ書き込み部１３０による処理について説明する。データ書き込み部１３０は、ホスト計算機３００、３１０、３２０からのデータ書き込み要求を受けると、動作する。そして、図７に示すように、データ書き込み部１３０は、論理ディスク領域管理テーブル１７０を参照（Ｓ２２）し、データの書き込み要求があった論理ディスクに書き込みを行うためのディスクプール領域があるかどうかを確認する（Ｓ２４）。
【００５６】
ステップＳ２４において、データの書き込む領域がないことを判断した、データ書き込み部１３０は、ディスクプール領域割り当て部１４０に対し、データを書き込むためのディスクプール領域の割り当て要求を行う（Ｓ２６）。
【００５７】
次に、データ書き込み部１３０は、ディスクプール領域割り当て部１４０より、データ書き込むためのディスクプール領域を確保した通知を受けると、論理ディスクに対し、データの書き込みを実施する。（Ｓ２８）
【００５８】
その後、データの書き込みを完了したデータ書き込み部１３０は、書き込みを行ったデータのI／Ｏ特性をＩ／Ｏパターン積算テーブル２１０に追加し（Ｓ３０）、処理を終了する。
【００５９】
続いて、図８を用いて、ディスクプール領域割り当て部１４０による処理について説明する。ディスクプール領域割り当て部１４０は、データ書き込み部１３０によるディスクプール領域の割り当て要求（Ｓ２６）、又は、後述するデータ領域再配置部１６０によるディスクプール領域の割り当て要求が行われると、動作を開始する。
【００６０】
図８に示すように、先ず、ディスクプール領域割り当て部１４０は、ディスクプール領域の割り当て要求を受けると、割り当てポリシー管理テーブル１９０を参照する（Ｓ４２）。次に、ディスクプール領域割り当て部１４０は、要求があった論理ディスクに設定されている割り当てポリシーに従い、これに、ディスクプール領域を割り当てる（Ｓ４４）。
【００６１】
次に、領域を割り当てたディスクプール領域割り当て部１４０は、論理ディスク領域管理テーブル１７０（図２参照）とディスクプール領域管理テーブル１８０（図３参照）とを更新する（Ｓ４６）。そして、ディスクプール領域割り当て部１４０は処理を終了する。
【００６２】
続いて、図９を用いて、割り当てポリシー管理部１５０による処理について説明する。割り当てポリシー管理部１５０は、利用者からの要求に応じて、または定期的に動作を行う。
【００６３】
図９に示すように、先ず、割り当てポリシー管理部１５０は、Ｉ／Ｏパターン積算テーブル２１０（図６参照）と割り当てポリシー管理テーブル１９０（図４参照）とを参照する（Ｓ６２）。次に、割り当てポリシー管理部１５０は、Ｉ／Ｏパターン積算テーブル２１０に設定された閾値を上回っている論理ディスクの有無を確認する（Ｓ６４）。
【００６４】
Ｉ／Ｏパターン積算テーブル２１０に設定された閾値を上回る論理ディスクが存在する場合、割り当てポリシー管理部１５０は、割り当て単位を変更し（Ｓ６６）、割り当てポリシー管理テーブル１９０を更新する(Ｓ６８)。
【００６５】
続いて、図１０を用いてデータ領域再配置部１６０による処理について説明する。データ領域再配置部１６０は、利用者からの要求に応じて、または定期的に動作を行う。図１０に示すように、先ず、データ領域再配置部１６０は、論理ディスク領域管理テーブル１７０（図２参照）と割り当てポリシー管理テーブル１９０（図４参照）とを参照する（Ｓ８２）。次に、データ領域再配置部１６０は、論理ディスク毎に割り当てポリシーが速度重視か容量重視かを判断する（Ｓ８４）。
【００６６】
ステップＳ８４で論理ディスクの割り当てポリシーが速度重視に設定されている場合、データ領域再配置部１６０は、論理ディスク内に、連続していない物理ブロックが、速度重視の割り当てポリシーに設定された割り当て単位の分だけ存在しているかを確認する(Ｓ８６)。
【００６７】
ステップＳ８６で存在していない場合は、データ領域再配置部１６０は、再配置できる領域がないと判断し、動作を停止、処理を終了する。一方、ステップＳ８６で存在している場合は、データ領域再配置部１６０は、連続していない物理ブロックを連続化することができると判断し、ディスクプール領域割り当て部１４０にディスクプール領域の割り当て要求を行う（Ｓ８８）。
【００６８】
そして、データ領域再配置部１６０は、割り当てた領域にデータをコピーすることで、データを不連続な物理ブロックから連続な物理ブロックに再配置する（Ｓ９０）。ステップＳ９０による再配置の完了後、データ領域再配置部１６０は、再配置前のデータ領域を解放し、ディスクプール領域に戻す（Ｓ９２）。そして、データ領域再配置部１６０は、論理ディスク領域管理テーブル１７０を更新し(Ｓ９４)、処理を終了する。
【００６９】
また、ステップＳ８４で論理ディスクの割り当てポリシーが容量重視に設定されている場合、データ領域再配置部１６０は、連続して確保されている物理ブロックに解放可能な領域が存在するかどうかを確認する（Ｓ９６）。具体的には、データ領域再配置部１６０は、連続した物理ブロックを容量重視の割り当てポリシーに設定された割り当て単位にて分割した際に、解放できる領域があるかどうかを確認する。
【００７０】
ステップＳ９６で解放可能な物理ブロックが存在する場合は、データ領域再配置部１６０は、解放可能な物理ブロックを解放し、ディスクプール領域に戻し（Ｓ９８）、論理ディスク領域管理テーブル１７０を更新する(Ｓ１００)。一方、ステップＳ９６で解放できる領域が存在しない場合は、データ領域再配置部１６０は、動作を停止し、処理を終了する。
【００７１】
また、本実施の形態におけるプログラムは、コンピュータに、図７に示すステップＳ２２〜Ｓ３０、図８に示すステップＳ４２〜Ｓ４６、図９に示すステップＳ６２〜Ｓ６８、図１０に示すステップＳ８２〜Ｓ１００を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行すると、コンピュータは、ストレージ装置１００として機能する。この場合、コンピュータのＣＰＵ（central processing unit）は、データ書き込み部１３０、ディスクプール領域割り当て部１４０、割り当てポリシー管理部１５０、データ領域再配置部１６０部として機能し、処理を行なう。
【００７２】
更に、本実施の形態では、論理ディスク領域管理テーブル１７０、ディスクプール領域管理テーブル１８０、割り当てポリシー管理テーブル１９０、Ｉ／Ｏパターン積算テーブル２１０、及び割り当てポリシー設定テーブル２２０は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって、実現できる。また、これらのテーブルは、データファイルが格納された記録媒体をコンピュータと接続された読取装置に搭載することによっても実現できる。
【００７３】
以上のように本実施の形態によれば、以下の効果を得ることができる。先ず、本実施の形態では、一つの論理ディスクに対し異なるI／Ｏパターンがある場合でも、論理ディスクに設定した割り当てポリシーに応じて、ディスクプールの領域の割り当てサイズが割り当てられる。よって、本実施の形態によれば、シーケンシャルI／Ｏの多い論理ディスクに対しては、大きな割り当て単位の領域を割り当てることができるので、領域の断片化が抑制され、シーケンシャルI／Ｏのレスポンスの劣化が低減される。
【００７４】
つまり、本実施の形態におけるストレージ装置１００は、データ書き込み時のI／Ｏサイズと共に、I／Ｏパターン（例えば、シーケンシャルI／ＯとランダムI／Ｏ）を判別できる。そして、論理ディスクに対する割り当てポリシーの設定により、シーケンシャルI／Ｏには、割り当てポリシーに応じた割り当て単位での割り当てが可能となるからである。
【００７５】
また、本実施の形態では、論理ディスクに設定した割り当てポリシーに応じて、ディスクプールの領域の割り当てサイズを選択することによる容量効率の向上が可能となる。つまり、論理ディスク毎に、容量優先か速度優先かの割り当てポリシーを設定しておき、容量を優先する場合は、I／Ｏサイズの大きい場合でも、小さいサイズでデータ領域が割り当てられ、不要な割り当てが行われないからである。
【００７６】
更に、本実施の形態では、論理ディスクに設定した割り当てポリシーは、論理ディスクに書き込まれるデータのI／Ｏサイズ及びI／Ｏパターンによって切り替えられるため、論理ディスク毎に割り当て単位を設定する場合の管理コストが低減される。
【００７７】
また、本実施の形態は、速度重視に設定された論理ディスクに対して、不連続な物理ブロックが割り当てられている場合は、連続な物理ブロックにデータ領域を再配置して、シーケンシャルI／Ｏのレスポンスの劣化を低減することができる。
【００７８】
更に、本実施の形態は、割り当てポリシーが容量重視に設定された論理ディスクに対して、連続した大きな割り当て単位が割り当てられている場合は、物理ブロックを容量重視の割り当て単位まで分割することができる。これにより、未使用領域があった場合は、領域を解放して、ディスクプールに戻すことができるので、容量効率の向上が図られる。
【産業上の利用可能性】
【００７９】
以上のように、本発明は、ストレージ装置、これを利用したストレージシステムに適用でき、産業上の利用可能性を有している。
【図面の簡単な説明】
【００８０】
【図１】図１は、本発明の実施の形態におけるストレージ装置の構成を示すブロック図である。
【図２】図２は、図１に示す論理ディスク領域管理テーブルの一例を示す図である。
【図３】図３は、図１に示すディスクプール領域管理テーブルの一例を示す図である。
【図４】図４は、図１に示す割り当てポリシー管理テーブルの一例を示す図である。
【図５】図５は、図１に示す割り当てポリシー設定テーブルの一例を示す図である。
【図６】図６は、図１に示すI／Ｏパターン積算テーブルの一例を示す図である。
【図７】図７は、ストレージ装置を構成するデータ書き込み部の動作を示すフロー図である。
【図８】図８は、ストレージ装置を構成するディスクプール領域割り当て部の動作を示すフロー図である。
【図９】図９は、ストレージ装置を構成する割り当てポリシー管理部の動作を示すフロー図である。
【図１０】図１０は、ストレージ装置を構成するデータ領域再配置部の動作を示すフロー図である。
【符号の説明】
【００８１】
１００  ストレージ装置
１１０  物理ディスク群
１２０  論理ディスク群
１２０ａ、１２０ｂ、１２０ｃ  論理ディスク
１３０  データ書き込み部
１４０  ディスクプール領域割り当て部
１５０  割り当てポリシー管理部
１６０  データ領域再配置部
１７０  論理ディスク領域管理テーブル
１８０  ディスクプール領域管理テーブル
１９０  割り当てポリシー管理部
２００  ディスクプール
２１０  Ｉ／Ｏパターン積算テーブル
２２０  割り当てポリシー設定テーブル
３００、３１０、３２０  ホスト計算機
【図１】
2010086420.tif 000003
【図２】
2010086420.tif 000004
【図３】
2010086420.tif 000005
【図４】
2010086420.tif 000006
【図５】
2010086420.tif 000007
【図６】
2010086420.tif 000008
【図７】
2010086420.tif 000009
【図８】
2010086420.tif 000010
【図９】
2010086420.tif 000011
【図１０】
2010086420.tif 000012