(57)【特許請求の範囲】
【請求項１】
ホスト計算機と、実体的な記憶領域である実領域とそれに関連付けられる仮想ボリュームを有するストレージサブシステムと、当該ストレージサブシステムを管理する管理システムと、を有し、前記ストレージサブシステムが前記仮想ボリュームを複数の部分的な領域に分割して構成される複数の仮想領域を含む、計算機システムの管理方法であって、
前記管理システムが、前記仮想ボリュームにおいてホットスポットとなる仮想領域の位置変化を示す負荷集中領域変化情報を取得し、
前記管理システムが、前記負荷集中領域変化情報に基づいて、前記ホットスポットとなる仮想領域の位置が不変となる時間帯を示す負荷位置不変時間帯を特定し、
前記管理システムが、前記特定された負荷位置不変時間帯を表示デバイスに表示する、
ことを特徴とする管理方法。
【請求項２】
請求項１において、
前記管理システムは、前記負荷集中領域変化情報を取得する際に、
前記仮想ボリュームの前記複数の仮想領域に対する前記ホスト計算機からのアクセス負荷量を複数の時間において取得し、
前記複数の仮想領域のそれぞれについて、前記複数の時間のうち異なる時間における前記アクセス負荷量の差分値をそれぞれ計算し、
前記各差分値を統計処理して前記負荷集中領域変化情報を算出する、
ことを特徴とする管理方法。
【請求項３】
請求項２において、
前記管理システムは、前記負荷位置不変時間帯を特定する際に、
一日を複数の時間帯に区切り、各時間帯について、設定された期間における前記負荷集中領域変化情報の平均値を算出し、
前記平均値が設定された閾値より小さいか判定し、
前記閾値よりも小さい前記平均値に対応する時間帯が連続する場合には、当該連続する時間帯を結合して前記負荷不変時間帯とする、
ことを特徴とする管理方法。
【請求項４】
請求項１において、
さらに、前記管理システムが、前記負荷位置不変時間帯に、前記実領域に格納されたデータの配置変更を実行することを特徴とする管理方法。
【請求項５】
請求項４において、
前記管理システムは、前記データの配置変更を実行する際に、
前記負荷位置不変時間帯におけるアクセス数の情報を取得し、
前記アクセス数の情報と前記ストレージサブシステムの構成情報から、対象の仮想領域に対応する実領域のデータが配置されるべき階層を特定し、
前記対象の仮想領域に対応する実領域のデータが配置された現在の階層が前記特定された階層と異なる場合に、前記対象の仮想領域に対応する実領域のデータを前記現在の階層とは異なる階層に移行する、
ことを特徴とする管理方法。
【請求項６】
請求項５において、
前記管理システムは、前記特定された階層に空き領域がない場合には、当該特定された階層に格納されたデータと前記対象の仮想領域に対応する実領域のデータとを入れ替えることにより、データの配置変更を実行することを特徴とする管理方法。
【請求項７】
請求項４において、
前記管理システムは、前記仮想ボリュームにおいて、データが未割り当ての仮想領域にゼロデータを割り当てて、それをゼロデータ仮想領域として管理しており、
前記管理システムは、前記データの配置変更を実行する際に、前記仮想ボリュームの前記ゼロデータ仮想領域を除く仮想領域について、
前記負荷位置不変時間帯におけるアクセス数の情報を取得し、
前記アクセス数の情報と前記ストレージサブシステムの構成情報から、対象の仮想領域に対応する実領域のデータが配置されるべき階層を特定し、
前記対象の仮想領域に対応する実領域のデータが配置された現在の階層が前記特定された階層と異なる場合に、前記対象の仮想領域に対応する実領域のデータを前記現在の階層とは異なる階層に移行する、
ことを特徴とする管理方法。
【請求項８】
請求項１において、
ｉ）前記管理システムは、前記負荷集中領域変化情報を取得する際に、
前記仮想ボリュームの前記複数の仮想領域に対する前記ホスト計算機からのアクセス負荷量を複数の時間において取得し、
前記複数の仮想領域のそれぞれについて、前記複数の時間のうち異なる時間における前記アクセス負荷量の差分値をそれぞれ計算し、
前記各差分値を統計処理して前記負荷集中領域変化情報を算出し、
ii）前記管理システムは、前記負荷位置不変時間帯を特定する際に、
一日を複数の時間帯に区切り、各時間帯について、設定された期間における前記負荷集中領域変化情報の平均値を算出し、
前記平均値が設定された閾値より小さいか判定し、
前記閾値よりも小さい前記平均値に対応する時間帯が連続する場合には、当該連続する時間帯を結合して前記負荷不変時間帯とし、
iii）前記管理方法は、さらに、
前記負荷位置不変時間帯開始から所定時間内におけるアクセス数の平均値を算出し、
前記アクセス数の平均値と前記ストレージサブシステムの構成情報から、対象の仮想領域に対応する実領域のデータが配置されるべき階層を特定し、
前記対象の仮想領域に対応する実領域のデータが配置された現在の階層が前記特定された階層と異なる場合に、前記対象の仮想領域のデータを前記現在の階層とは異なる階層に移行し、
配置変更後の前記ストレージサブシステムの構成情報を更新する、
ことを特徴とする管理方法。
【請求項９】
実体的な記憶領域である実領域とそれに関連付けられる仮想ボリュームを有するストレージサブシステムを管理する管理システムであって、
演算を実行するプロセッサと、
情報を格納するメモリと、
前記ストレージサブシステムと通信を行うための通信ポートと、を有し、
前記プロセッサは、前記仮想ボリュームにおいてホットスポットとなる仮想領域の位置変化を示す負荷集中領域変化情報を取得し、
前記負荷集中領域変化情報に基づいて、前記ホットスポットとなる仮想領域の位置が不変となる時間帯を示す負荷位置不変時間帯を特定し、
前記特定された負荷位置不変時間帯を前記メモリに格納し、表示デバイスに表示する、
ことを特徴とする管理システム。
【請求項１０】
請求項９において、
前記プロセッサは、前記負荷集中領域変化情報を取得する際に、
前記仮想ボリュームの前記複数の仮想領域に対する前記ホスト計算機からのアクセス負荷量を複数の時間において取得し、
前記複数の仮想領域のそれぞれについて、前記複数の時間のうち異なる時間における前記アクセス負荷量の差分値をそれぞれ計算し、
前記各差分値を統計処理して前記負荷集中領域変化情報を算出する、
ことを特徴とする管理システム。
【請求項１１】
請求項１０において、
前記プロセッサは、前記負荷位置不変時間帯を特定する際に、
一日を複数の時間帯に区切り、各時間帯について、設定された期間における前記負荷集中領域変化情報の平均値を算出し、
前記平均値が設定された閾値より小さいか判定し、
前記閾値よりも小さい前記平均値に対応する時間帯が連続する場合には、当該連続する時間帯を結合して前記負荷不変時間帯とする、
ことを特徴とする管理システム。
【請求項１２】
請求項９において、
前記プロセッサは、
前記負荷位置不変時間帯におけるアクセス数の情報を取得し、
前記アクセス数の情報と前記ストレージサブシステムの構成情報から、対象の仮想領域に対応する実領域のデータが配置されるべき階層を特定し、
前記対象の仮想領域に対応する実領域のデータが配置された現在の階層が前記特定された階層と異なる場合に、前記対象の仮想領域に対応する実領域のデータを前記現在の階層とは異なる階層に移行する、
ことを特徴とする管理システム。
【請求項１３】
請求項１２において、
前記プロセッサは、前記特定された階層に空き領域がない場合には、当該特定された階層に格納されたデータと前記対象の仮想領域に対応する実領域のデータとを入れ替えることにより、データの配置変更を実行することを特徴とする管理方法。
【請求項１４】
請求項９において、
前記プロセッサは、前記仮想ボリュームにおいて、データが未割り当ての仮想領域にゼロデータを割り当てて、それをゼロデータ仮想領域として管理しており、
前記プロセッサは、前記仮想ボリュームの前記ゼロデータ仮想領域を除く仮想領域について、
前記負荷位置不変時間帯におけるアクセス数の情報を取得し、
前記アクセス数の情報と前記ストレージサブシステムの構成情報から、対象の仮想領域に対応する実領域のデータが配置されるべき階層を特定し、
前記対象の仮想領域に対応する実領域のデータが配置された現在の階層が前記特定された階層と異なる場合に、前記対象の仮想領域に対応する実領域のデータを前記現在の階層とは異なる階層に移行する、
ことを特徴とする管理システム。
【請求項１５】
請求項９において、
前記プロセッサは、
ｉ）前記負荷集中領域変化情報を取得する際に、
前記仮想ボリュームの前記複数の仮想領域に対する前記ホスト計算機からのアクセス負荷量を複数の時間において取得し、
前記複数の仮想領域のそれぞれについて、前記複数の時間のうち異なる時間における前記アクセス負荷量の差分値をそれぞれ計算し、
前記各差分値を統計処理して前記負荷集中領域変化情報を算出し、
ii）前記負荷位置不変時間帯を特定する際に、
一日を複数の時間帯に区切り、各時間帯について、設定された期間における前記負荷集中領域変化情報の平均値を算出し、
前記平均値が設定された閾値より小さいか判定し、
前記閾値よりも小さい前記平均値に対応する時間帯が連続する場合には、当該連続する時間帯を結合して前記負荷不変時間帯とし、
iii）さらに、
前記負荷位置不変時間帯開始から所定時間内におけるアクセス数の平均値を算出し、
前記アクセス数の平均値と前記ストレージサブシステムの構成情報から、対象の仮想領域に対応する実領域のデータが配置されるべき階層を特定し、
前記対象の仮想領域に対応する実領域のデータが配置された現在の階層が前記特定された階層と異なる場合に、前記対象の仮想領域のデータを前記現在の階層とは異なる階層に移行し、
配置変更後の前記ストレージサブシステムの構成情報を更新する、
ことを特徴とする管理システム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムの管理方法、及び管理システムに関し、例えば、ストレージサブシステム内の記憶領域を、複数の階層に分割して管理する方法、およびそのような管理を実行する管理システムに関する。
【背景技術】
【０００２】
最近、仮想化技術とThin Provisioning技術とを組み合わせることにより、論理ボリュームよりも細かい単位でのストレージ階層管理することが考えられている（ストレージ階層管理技術）。【０００３】
このストレージ階層管理技術では、Thin Provisioningに従う仮想的な論理ボリューム（以下、仮想ボリューム）の記憶領域を、複数の部分的な領域（以下、「仮想領域」という）に分割し、仮想領域の単位で、どの階層に属する記憶デバイスから実体的な記憶領域（以下、実領域）を割り当てるかが選択される。例えば、特許文献１によれば、仮想ボリュームの記憶領域と物理記憶デバイスの記憶領域を、それぞれ２つ以上の仮想領域および実領域に分割し、その各仮想領域に、実領域を１つ割り当てる。また、実領域ごとに、ホスト計算機からのアクセス数とアクセス数の許容範囲を記録し、許容範囲を超えたアクセス数の実領域のデータを、アクセス状況に応じた記憶デバイスの実領域に移行する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許公開第２００７／０２８３０７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１記載の技術では、データの過去のアクセス履歴から当該データを格納するのに適した特性を持つデバイスを特定し、そのデバイスにデータを移行する。【０００６】
しかしながら、特許文献１に記載されるような従来のストレージ階層管理技術では、単にアクセス数に基づいてデータ移行を実行しているだけなので、データ移行に必要な時間又は性能負荷に代表されるコストを考慮して効率良くデータの移行を実現することが困難であった。【０００７】
本発明はこのような状況に鑑みてなされたものであり、より効率の良いデータ移行を実現するための技術を提供するものである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明では、管理システムが、ストレージサブシステムの仮想ボリュームにおいてホットスポットとなる仮想領域の位置変化を示す負荷集中領域変化情報（アクセス分布の変化量）を取得する。そして、当該管理システムが、負荷集中領域変化情報に基づいて、ホットスポットとなる仮想領域の位置が不変となる時間帯（ホットスポットの位置が安定した時間帯）を示す負荷位置不変時間帯を特定し、それを表示デバイスに表示する。【０００９】
さらなる本発明の特徴は、以下本発明を実施するための形態および添付図面によって明らかになるものである。
【発明の効果】
【００１０】
本発明によれば、管理者は、実領域の再配置処理を効率よく実行できる時間帯を知る（予測）ことができるようになる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態による計算機システム１０の概略構成を示す図である。
【図２】ホスト計算機１０１の内部構成を示すブロック図である。
【図３】ストレージサブシステム１０２の内部構成を示すブロック図である。
【図４】ＲＡＩＤグループ管理表３０８の構成例を示す図である。
【図５】実領域管理表３０９の構成例を示す図である。
【図６】第１の実施形態におけるＶＶＯＬ管理表３１１の構成例を示す図である。
【図７】階層定義表３１０の構成例を示す図である。
【図８】管理計算機１０３の内部構成を示すブロック図である。
【図９】アクセス分布変化履歴表８０５の構成例を示す図である。
【図１０】再配置時間帯管理表８０６の構成例を示す図である。
【図１１】管理側ＲＡＩＤグループ管理表８０７の構成例を示す図である。
【図１２】管理側実領域管理表８０８の構成例を示す図である。
【図１３】第１の実施形態における管理側ＶＶＯＬ管理表８１０の構成例を示す図である。
【図１４】管理側階層定義表８０９の構成例を示す図である。
【図１５】リード要求に対応する処理を説明するためのフローチャートである。
【図１６】ライト要求に対応する処理を説明するためのフローチャートである。
【図１７】アクセス分布変化量計算処理を説明するためのフローチャートである。
【図１８】第１の実施形態における再配置時間帯計算処理を説明するためのフローチャートである。
【図１９】分布変化閾値入力画面１９０１の構成例を示す図である。
【図２０】画面１９０１の管理者判断材料表示領域１９０５に表示するアクセス分布変化量の、グラフによる表示態様例を示す図である。
【図２１】再配置処理を説明するためのフローチャートである。
【図２２】第２の実施形態におけるＶＶＯＬ管理表３１１の構成例を示す図である。
【図２３】第２の実施形態における管理側ＶＶＯＬ管理表８１０の構成例を示す図である。
【図２４】実領域の全データがゼロになった場合に当該実領域に対応する仮想領域を未割当ての領域とする処理（ゼロインクラメーション）の概念を示す図である。
【図２５】第２の実施形態における再配置処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１２】
本発明は、Thin Provisioningに従う仮想的な論理ボリュームに対する実体的な記憶領域割り当ての見直し時間帯を制御するための技術に関するものである。下記実施形態では、仮想ボリューム毎に、ホスト計算機からのアクセスの、ボリューム内の仮想領域への分布に関するデータを収集する。その値を分析することで、仮想ボリュームごとに、アクセス分布が変化しない時間帯を特定する。仮想ボリュームごとに、アクセス分布が変化しない時間帯に合わせて、当該仮想ボリューム内の仮想領域への、割当実領域の見直し処理（以下、再配置処理）を行う。これにより、計算機システムの管理者は、仮想ボリュームに対してアクセス分布が変化しない時間帯を特定するための閾値を設定するだけで、再配置処理を行う時間帯を、その効果が長期間にわたって得られると予想される場合に限定することができ、効果が低い再配置処理を行うことによる性能の低下やストレージサブシステムの運用コストの増大を防ぐことができる。
【００１３】
以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。また、各図において共通の構成については同一の参照番号が付されている。
【００１４】
なお、以後の説明では「ａａａ表」という表現にて本発明の各種情報を説明するが、これら情報は必ずしも表によるデータ構造で表現されていなくても良く、リスト、ＤＢ、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「ａａａ表」、「ａａａリスト」、「ａａａＤＢ」、「ａａａキュー」等について「ａａａ情報」と呼ぶことがある。
【００１５】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
【００１６】
さらに、以後の説明では「プログラム」を主語として説明を行うこともあるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【００１７】
（１）第１の実施形態
＜特徴的処理の概要説明＞
本実施形態による計算機システムの構成及び動作を詳細に説明する前に、まず当該計算機システムの特徴的処理の概要について説明する。計算機システムは、ストレージサブシステムにホスト計算機および管理システムを有する。管理システムは、ストレージサブシステムを管理する。管理システムは、ストレージサブシステムまたはホスト計算機に含まれても良い。ストレージサブシステムは、プールと、複数の仮想ボリュームとを提供する。
【００１８】
プールは、複数の階層で構成されている。階層は、同じ性能を有する実領域の集合である。階層は例えば性能を表す特定の値によって定義され、その値が表す性能と同じ性能を有する実領域を内包する。階層は、他の階層と比較した高低の概念を持つ。階層の高さは、階層の性能の高さに依存する。なお、ここで言う「性能」とは、例えばアクセス性能である。アクセス性能としては、例えばレスポンスタイム、あるいはデータ転送速度、ＩＯＰＳ（単位時間当たりに処理したアクセス要求の数）がある。アクセス要求の一例としてはライト要求又はリード要求がある。
【００１９】
各階層は、２以上の実領域で構成されている。したがって、プールは複数の実領域で構成されているとも言える。実領域は、物理記憶デバイスまたは／およびＲＡＩＤグループの記憶領域の一部である。階層の性能は、階層を構成する実領域の性能に依存する。実領域の性能は、例えば、当該実領域を有する物理記憶デバイスの種別、ＲＡＩＤグループのＲＡＩＤレベル、または／およびＲＡＩＤグループに参加する記憶デバイスの数に依存する。物理記憶デバイスの種別として、例えば、ＳＳＤと、ＳＡＳ−ＨＤＤ、およびＳＡＴＡ−ＨＤＤがある。
【００２０】
仮想ボリュームは、複数の仮想領域（仮想的な記憶領域）で構成されている。各仮想領域には、それぞれ一つ以下の実領域が割り当てられている。なお、仮想領域には、実領域が割り当てられていなくてもよい。ストレージサブシステムは、そのような仮想領域（未割当の仮想領域）に対するライト要求をホスト計算機から受けた時、いずれの仮想領域にも割り当てられていない実領域（未割当の実領域）を、当該仮想領域に割り当てる。
【００２１】
以下で、本実施形態において実行される処理の概要を説明する。本実施形態において実行される処理には、例えば、（ｉ）アクセス分布変化量計算処理と、（ii）再配置時間帯計算処理と、（iii）再配置処理とがある。これらの概要について以下簡単に説明する。
【００２２】
（ｉ）アクセス分布変化量計算処理
管理システムは、ストレージサブシステムが有する各仮想ボリュームのアクセス分布の変化量を計算し、記録する。ここで、仮想ボリュームのアクセス分布とは、例えば、ホスト計算機から当該仮想ボリューム内の各仮想領域へアクセスした数の集合である。これにより、仮想ボリューム全体のアクセス量のうちどの位の割合が各仮想領域にあるかが分かり、よって、ある時点でのホットスポット（負荷が掛かっている仮想領域）の位置が分かる。また、仮想ボリュームのアクセス分布の変化量とは、仮想ボリューム内において時間経過と共にどのようにホットスポットとなる仮想領域の位置が変化したかを示す指標（負荷集中領域変化指標）となるものである。例えば、「アクセス分布の変化量が多い」とは、１つの仮想ボリュームにおいて、アクセスされる仮想領域が激しく変化していることを意味し、「アクセス分布の変化量が少ない」とは、１つの仮想ボリュームにおいて、アクセス数に関係なく、アクセスされる仮想領域の変化が少ない（ホットスポットの位置に動きが少ない）ことを意味している。
【００２３】
なお、「仮想領域へのアクセス数」とは対象仮想領域の全てまたは一部をアドレス範囲として指定し、処理が完了した（または処理中も含めても良い）アクセス要求の数を指す。例えば、アクセス要求のアドレス範囲がある仮想領域の一部または全てである（言い方を変えれば、仮想領域がアドレス範囲を含んでしまう）場合、当該要求の数だけ当該仮想領域のアクセス数を増加させる。他の例として、アクセス要求のアドレス範囲が複数の仮想領域それぞれの一部または全てを含む場合は、当該要求の数だけ、仮想領域それぞれのアクセス数を増加させる。なお、仮想領域のサイズが大きい場合は後者のようなケースはあまり発生しないため、アクセス要求で指定したアドレス範囲の先頭を含む仮想領域のカウント数だけ増やしても良い。
【００２４】
仮想ボリュームのアクセス分布の変化量は、例えば、過去のある時点での当該仮想ボリュームのアクセス分布に関する情報と、現在の当該仮想ボリュームのアクセス分布に関する情報から計算できる。管理システムは、例えば定期的または繰り返し（周期的でなくても良く、取得間隔に多少の時間のずれがあっても良い）、ストレージサブシステムから各仮想ボリュームのアクセス分布に関する情報を取得し、前回取得した情報と合わせて当該仮想ボリュームのアクセス分布の変化量を計算し、時系列に記録する。この場合、仮想ボリュームのアクセス分布に関する情報は、前回取得した情報のみ記録すればよく、仮想ボリュームのアクセス分布に関する情報を時系列に記録する場合と比べて、管理システムがアクセス分布の変化量の計算に使用する情報を記録するために必要な記憶領域を少なくすることができる。
【００２５】
（ii）再配置時間帯計算処理
管理システムは、各仮想ボリュームのアクセス分布の変化量の時系列データを分析し、各仮想ボリューム内の仮想領域に対する実領域の割当状況を見直す時間帯（以下、再配置時間帯）を計算して記録する。例えば、各仮想ボリュームに対して、１日を１時間ごとに区切った各時間帯（例えば、9:00-10:00、10:00-11:00など）におけるアクセス分布の変化量の平均値を、直近１週間の当該仮想ボリュームのアクセス分布の変化量データから計算し、その平均値がある閾値よりも小さい時間帯を、当該仮想ボリュームの再配置時間帯として記録する。
【００２６】
本処理は「仮想ボリュームのアクセス分布の変化量が小さい時間帯では、当該仮想ボリューム内の各仮想領域に対するアクセス状況の変化も小さく、各仮想領域に割り当てるべき物理記憶デバイスまたは／およびＲＡＩＤグループも変化しない可能性が高い。したがって、当該時間帯の初期に当該仮想ボリューム内の仮想領域に対する実領域の割り当て状況を見直せば、当該時間帯の末尾の時刻までは割り当て状況を変更しなくてもよい可能性が高い」という考えに基づいている。
【００２７】
なお、アクセス分布の変化量の平均値を計算する単位である時間帯の長さ（上記処理では１時間）は、例えば１０分や３時間でもよい。また、平均値を計算する期間（上記処理では１週間）は、例えば３日間や１ヶ月間でもよい。さらに、再配置時間帯は、例えば日付や曜日の情報を含んでもよい。そのように時間帯以外の情報を含む場合、時間帯の情報を含まなくてもよい。時間帯の情報を含まない場合、管理システムは、再配置時間帯が示す日付または／および曜日の特定の時刻に、ストレージサブシステムに再配置処理の実行を指示する。
【００２８】
（iii）再配置処理
再配置時間帯計算処理によって、ホットスポットの動きが少ない（ほとんどない）時間帯が得られるが、この時間帯におけるホットスポットの位置は得られない。ホットスポットの位置に合わせて再配置処理を実行するには、当該時間帯における各仮想領域へのアクセス数を一定時間観測する必要がある。
【００２９】
そこで、管理システムは、再配置時間帯計算処理において計算し、記録した仮想ボリュームの再配置時間帯の先頭時刻から一定期間後、例えば３０分後に、当該仮想ボリューム内の仮想領域に対する実領域の割当状況を見直す。例えば、管理システムは、当該仮想ボリューム内の各仮想領域について、仮想領域へのアクセス数が、当該仮想領域に割り当てられている実領域を有する階層に対応したアクセス数範囲を超えているか否かを判断する。管理システムは上記の判断の結果、範囲外であると判断した仮想領域に対して、当該仮想領域に割り当てられている実領域（以下、移行元の実領域）に代えて、当該仮想領域へのアクセス数が収まるアクセス数範囲に対応する階層内の実領域（以下、移行先の実領域）を割り当てる。具体的には、管理システムはストレージサブシステムに、移行元の実領域のデータを移行先の実領域に移行するよう指示する。
【００３０】
＜計算機システムの構成＞
図１は、本発明の実施形態に係わる計算機システム１０の概略構成を示す図である。計算機システム１０においては、ホスト計算機１０１とストレージサブシステム１０２とが、ストレージエリアネットワーク１０５によって接続されている。また、管理システム１０７とストレージサブシステム１０２とが、管理用ネットワーク１０６によって接続されている。管理システム１０７とホスト計算機１０１が管理用ネットワーク１０６を介して接続されていても良い。管理システム１０７は、管理計算機１０３とＷｅｂブラウズ用計算機１０４を含んでいる。
【００３１】
なお、管理計算機１０３とＷｅｂブラウズ用計算機１０４とは、同じ計算機でもよく、また、それぞれ複数の計算機で同等の機能を実現していてもよい。つまり、計算機システム１０を管理し、本発明の表示用情報を表示する１つ以上の計算機の集合を管理システムと呼ぶことがある。管理計算機１０３が表示用情報を表示する場合は管理計算機１０３が管理システムであり、また、図１に示されるように、管理計算機１０３と表示用計算機（Ｗｅｂブラウズ用計算機）１０４の組み合わせも管理システム１０７である。また、管理処理の高速化や高信頼化のために複数の計算機で管理計算機と同等の処理を実現してもよく、この場合は当該複数の計算機（表示を表示用計算機が行う場合は表示用計算機も含め）が管理システムである。
【００３２】
また、ストレージエリアネットワーク１０５と管理用ネットワーク１０６とは、同じネットワークであってもよい。
【００３３】
ホスト計算機１０１は、ストレージサブシステム１０２にアクセス要求を送信する。ストレージサブシステム１０２は、ホスト計算機１０１からストレージエリアネットワーク１０５を介してアクセス要求を受信し、そのアクセス要求を処理する。
【００３４】
管理システム１０７は、ストレージサブシステム１０２に制御要求（例えば、再配置処理の実行要求）を送信する。ストレージサブシステム１０２は、管理システム１０７から管理ネットワーク１０６を介して制御要求を受信し、制御要求に従う処理を行う。
【００３５】
なお、計算機システム１０は、複数のホスト計算機１０１を含んでもよい。同様に、計算機システム１０は、複数のストレージサブシステム１０２を含んでもよい。
【００３６】
＜ホスト計算機の構成＞
図２は、ホスト計算機１０１の内部構成を示すブロック図である。ホスト計算機１０１は、ストレージエリアネットワーク１０５との接続を実現するためのＳＡＮポート２０３と、メモリ２０２と、メモリ２０２およびＳＡＮポート２０３に接続されたＣＰＵ２０１と、を有する。
【００３７】
ＳＡＮポート２０３は、ストレージエリアネットワーク１０５に接続されている。
【００３８】
メモリ２０２には、１つ以上のアプリケーションプログラム２０４が格納されている。各アプリケーションプログラム２０４は、ＣＰＵ２０１によって実行され、ＳＡＮポート２０３およびストレージエリアネットワーク１０５を介して、ストレージサブシステム１０２にアクセス要求を送信する。
【００３９】
＜ストレージサブシステムの構成＞
図３は、ストレージサブシステム１０２の内部構成を示すブロック図である。ストレージサブシステム１０２は、性能の異なる複数の物理記憶デバイス３０５と、コントローラ３１２を有し、これらは内部バス等の回路を介して相互に接続されている。同種の物理記憶デバイス３０５が複数ある場合、それらはＲＡＩＤ構成を組んでいてもよい。ＲＡＩＤ構成を組んでいる複数の物理記憶デバイス３０５は、ＲＡＩＤグループ３０６を構成する。
【００４０】
コントローラ３１２は、ストレージエリアネットワーク１０５に接続するためのＳＡＮポート３０２と、管理ネットワーク１０６に接続するためのＬＡＮポート３０３と、メモリ３０４と、それらに接続されたＣＰＵ３０１とを有する。
【００４１】
ＳＡＮポート３０２は、ストレージエリアネットワーク１０５に接続されるポートである。ＳＡＮポート３０２は、ホスト計算機１０１からのアクセス要求を受信する。
【００４２】
ＬＡＮポート３０３は、管理ネットワーク１０６に接続されるポートである。ＬＡＮポート３０３は、管理システム１０７からの制御要求を受信する。
【００４３】
メモリ３０４には、ストレージ制御プログラム３０７と、ＲＡＩＤグループ管理表３０８と、実領域管理表３０９と、階層管理表３１０と、ＶＶＯＬ管理表３１１が格納されている。ストレージ制御プログラム３０７は、ＣＰＵ３０１で実行されることにより、アクセス制御処理および再配置処理を行う。
【００４４】
＜ＲＡＩＤグループ管理表３０８＞
図４は、ストレージサブシステム１０２が有するＲＡＩＤグループ管理表３０８の構成を示す図である。ＲＡＩＤグループ管理表３０８は、ＲＡＩＤグループ３０６の性能に関する情報を有する。
【００４５】
例えば、ＲＡＩＤグループ管理表は、ＲＡＩＤグループの識別子を表すＲＡＩＤグループＩＤ４０１と、ＲＡＩＤグループを構成する物理記憶デバイスの種類を表すデバイス種別４０２と、ＲＡＩＤグループのＲＡＩＤレベルおよびコンビネーションを表すＲＡＩＤレベル４０３と、ＲＡＩＤグループを構成する物理記憶デバイスの識別子を表すＰＤＥＶ_ＩＤ４０４と、を構成項目として含んでいる。なお、情報４０１〜４０４のうちの少なくとも１つに代えてまたは加えて、他種の情報が含まれていてもよい。
【００４６】
＜実領域管理表３０９＞
図５は、ストレージサブシステム１０２が有する実領域管理表３０９の構成を示す図である。実領域管理表３０９は、各ＲＡＩＤグループ３０６が持つ実領域が、仮想ボリュームに割当済か否かの情報を有する。
【００４７】
例えば、実領域管理表３０９は、実領域を持つＲＡＩＤグループの識別子を表すＲＡＩＤグループＩＤ５０１と、実領域の識別子を表す実領域ＩＤ５０２と、実領域に対応するＲＡＩＤグループのＬＢＡ範囲を表すＲＧ_ＬＢＡ範囲５０３と、実領域が割当済か否かを表す割当状況５０４と、を構成項目として含んでいる。
【００４８】
＜ＶＶＯＬ（仮想ボリューム）管理表３１１＞
図６は、ストレージサブシステム１０２が有するＶＶＯＬ管理表３１１の構成を示す図である。ＶＶＯＬ管理表３１１は、仮想ボリューム内の各仮想領域と、その仮想領域に割り当てられている実領域に関する情報を有する。
【００４９】
例えば、ＶＶＯＬ管理表３１１は、仮想ボリュームの識別子を表すＶＶＯＬ_ＩＤ６０１と、仮想ボリューム内の仮想領域に対応するＬＢＡ範囲を表すＶＶＯＬ_ＬＢＡ範囲６０２と、仮想ボリューム内の仮想領域に割り当てられている実領域を表す実領域ＩＤ６０３と、仮想ボリューム内の仮想領域に対する、ホスト計算機からのアクセス数（累計のＩ／Ｏ数）を表すアクセス数６０４と、再配置処理において仮想ボリューム内の仮想領域にその階層内の実領域を割り当てるべきであると判定された、当該階層の識別子を表す再配置判定結果６０５と、を構成項目として含んでいる。
【００５０】
上記ＶＶＯＬ管理表３１１において、ＶＶＯＬ_ＩＤ６０１は、ホスト計算機１０１から指定される識別子ではなく、ストレージサブシステム１０２の内部で認識される識別子である。アクセス数６０４は、当該仮想領域に対するアクセス回数の値を持っており、ストレージサブシステム１０２は一定期間、例えば２４時間ごとに、アクセス数６０４の値を０にリセットする。また、再配置判定結果６０５には、例えば最近行われた再配置処理における判定結果が格納される。
【００５１】
＜階層定義表３１０＞
図７は、ストレージサブシステム１０２が有する階層定義表３１０の構成を示す図である。階層定義表３１０は、階層の性能及び許容するアクセス数の範囲に関する情報を有する。
【００５２】
例えば、階層定義表３１０は、階層毎に、階層の識別子を表す階層ＩＤ７０１と、階層の性能要件を表す性能要件７０２と、階層に対応した、単位時間当たりの許容アクセス数の範囲を表す許容ＩＯＰＳ範囲７０３と、を構成項目として含んでいる。階層定義表３１０において、階層の性能要件７０２は、例えば、物理記憶デバイスの種別と、ＲＡＩＤグループのＲＡＩＤレベルとで定義される。
【００５３】
階層ＩＤで特定される各階層７０１は、性能要件７０２を満たす物理記憶デバイスまたは／およびＲＡＩＤグループに属する実領域を要素に持っている。なお、階層定義表３１０は、例えばストレージ管理者からの要求に応じて更新される。
【００５４】
＜管理計算機の構成＞
図８は、管理計算機１０３の内部構成を示すブロック図である。管理計算機１０３は、管理ネットワーク１０６に接続するためのＬＡＮポート８０２と、構成管理プログラム８０４を実行するＣＰＵ８０１と、ＣＰＵ８０１が用いるメモリ８０３とを有し、これらは内部バス等の回路を介して相互に接続されている。
【００５５】
メモリ８０３は、構成管理プログラム８０４と、アクセス分布変化履歴表８０５と、再配置時間帯管理表８０６と、管理側ＲＡＩＤグループ管理表８０７と、管理側実領域管理表８０８と、管理側階層管理表８０９と、管理側ＶＶＯＬ管理表８１０と、を格納している。
【００５６】
管理表８０７〜８１０は、ストレージサブシステム１０２の管理表３０８〜３１１に対応しており、管理計算機１０３がストレージサブシステム１０２から構成情報を取得した際に、その情報を格納するために用いられる。
【００５７】
構成管理プログラム８０４は、ＣＰＵ８０１によって実行されることで、以下の処理を行う。即ち、構成管理プログラム８０４は、定期的または繰り返しストレージサブシステム１０２から各表３０８〜３１１が有する情報を取得し、その情報を基に、アクセス分布変化履歴表８０５を更新する。また、構成管理プログラム８０４は、定期的または繰り返し、アクセス分布変化履歴表８０５を基に、再配置時間帯計算処理を行う。そして、構成管理プログラム８０４は、その計算した結果を、ユーザ（例えば、管理者）に提示し、ユーザからの承認を受けた時に、あるいはユーザに提示することなく、再配置時間帯管理表８０６に反映する。なお、上記情報取得及び再配置時間帯計算処理は、必ずしも等時間間隔で行われる必要はなく、繰り返し行われれば処理時間間隔に多少のずれがあっても良い。さらに、構成管理プログラム８０４は、各仮想ボリューム毎に、再配置時間帯管理表８０６に記載された、当該仮想ボリュームに対応する再配置時間帯に入るたび、当該仮想ボリュームの再配置処理を実行する。
【００５８】
＜アクセス分布変化履歴表８０５＞
図９は、管理計算機１０３が有するアクセス分布変化履歴表８０５の構成を示す図である。アクセス分布変化履歴表８０５は、仮想ボリューム毎に、アクセス分布の変化量の時系列情報を有する。
【００５９】
例えば、アクセス分布変化履歴表８０５は、仮想ボリュームの識別子を表すＶＶＯＬ_ＩＤ９０１と、仮想ボリュームのアクセス分布の変化量を観測した時間帯を表す観測時間９０２と、仮想ボリュームのアクセス分布の変化量を表すアクセス分布変化量９０３と、仮想ボリュームに対するホスト計算機からのアクセス数の平均値を表すアクセス平均９０４と、を構成項目として含んでいる。なお、観測時間は、例えば日付と時間帯の組で表される。また、上記アクセス平均９０４の単位は、例えばＩＯＰＳ（１秒あたりのアクセス（Ｉ／Ｏ）の回数）である。アクセス分布変化量９０３の演算については図１７を用いて後述する。
【００６０】
＜配置時間帯管理表８０６＞
図１０は、再配置時間帯管理表８０６の構成を示す図である。再配置時間帯管理表８０６は、仮想ボリューム毎に、当該仮想ボリュームに対して再配置処理を実施する時間帯に関する情報を有する。
【００６１】
例えば、再配置時間帯管理表８０６は、仮想ボリュームの識別子を表すＶＶＯＬ_ＩＤ１００１と、仮想ボリュームに対して再配置処理を実施する時間帯を決定するための、仮想ボリュームのアクセス分布の変化量に対する閾値を表す分布変化閾値１００２と、ホットスポットの動きが少ない時間帯であって、仮想ボリュームに対して再配置処理を実施する時間帯を表す再配置時間帯１００３と、を構成項目として含んでいる。
【００６２】
＜管理側ＲＡＩＤグループ管理表８０７＞
図１１は、管理計算機１０３が有する管理側ＲＡＩＤグループ管理表８０７の構成を示す図である。管理側ＲＡＩＤグループ管理表８０７は、ストレージサブシステム１０２が有するＲＡＩＤグループ管理表３０８に対応し、ＲＡＩＤグループ管理表３０８が有する情報を格納するために用いられる。ただし、管理側ＲＡＩＤグループ管理表８０７が有する情報は、ＲＡＩＤグループ管理表３０８が有する情報と完全に一致している必要はなく、ＲＡＩＤグループ管理表３０８の一部の情報を、管理側ＲＡＩＤグループ管理表８０７に格納しなくてもよい。
【００６３】
例えば、管理側ＲＡＩＤグループ管理表８０７は、ＲＡＩＤグループの識別子を表すＲＡＩＤグループＩＤ１１０１と、ＲＡＩＤグループを構成する物理記憶デバイスの種類を表すデバイス種別１１０２と、ＲＡＩＤグループのＲＡＩＤレベルおよびコンビネーションを表すＲＡＩＤレベル１１０３と、を構成項目として含んでいる。
【００６４】
なお、以降で説明する各表８０８〜８１０についても、それらが有する情報は、ストレージサブシステム１０２の対応する表３０９〜３１１が有する情報と完全に一致している必要はない。
【００６５】
＜管理側実領域管理表８０８＞
図１２は、管理側計算機１０３が有する管理側実領域管理表８０８の構成を示す図である。管理側実領域管理表８０８は、ストレージサブシステム１０２が有する実領域管理表３０９に対応する。
【００６６】
例えば、管理側実領域管理表８０８は、実領域を持つＲＡＩＤグループの識別子を表すＲＡＩＤグループＩＤ１２０１と、実領域の識別子を表す実領域ＩＤ１２０２と、実領域に対応するＲＡＩＤグループのＬＢＡ範囲を表すＲＧ_ＬＢＡ範囲１２０３と、実領域が割当済か否かを表す割当状況１２０４と、を構成項目として含んでいる。
【００６７】
＜管理側ＶＶＯＬ管理表８１０＞
図１３は、管理側計算機１０３が有する管理側ＶＶＯＬ管理表８１０の構成を示す図である。管理側ＶＶＯＬ管理表８１０は、ストレージサブシステム１０２が有するＶＶＯＬ管理表３１１に対応する。
【００６８】
例えば、管理側ＶＶＯＬ管理表８１０は、仮想ボリュームの識別子を表すＶＶＯＬ_ＩＤ１３０１と、仮想ボリューム内の仮想領域に対応するＬＢＡ範囲を表すＶＶＯＬ_ＬＢＡ範囲１３０２と、仮想ボリューム内の仮想領域に割り当てられている実領域を表す実領域ＩＤ１３０３と、仮想ボリューム内の仮想領域に対する、ホスト計算機からのアクセス数を表すアクセス数１３０４と、再配置処理において、仮想ボリューム内の仮想領域にその階層内の実領域を割り当てるべきであると判定された、当該階層の識別子を表す再配置判定結果１３０５と、を構成項目として含んでいる。
【００６９】
なお、ＶＶＯＬ管理表３１１のアクセス数６０４には、当該仮想領域に対するアクセス回数を記録するのに対して、管理側ＶＶＯＬ管理表８１０のアクセス数１３０４には、管理計算機１０３が行う各処理において使用する、アクセス数に関連する値が記録される。例えば、アクセス数１３０４には、アクセス分布変化量計算処理にて使用する、前回アクセス分布変化量計算処理を行った時のアクセス数６０４の値（前回処理時のアクセス数）１３０６と、前回処理時に計算した当該仮想領域のアクセス数の平均値（前回処理時の平均値）１３０７が記録される。さらに、アクセス数１３０４には、例えば再配置処理にて使用する、再配置時間帯の先頭時刻におけるアクセス数６０４の値（先頭時刻でのアクセス数）１３０８と、再配置処理にて計算したアクセス数の平均値（平均値）１３０９が記録される。この場合、アクセス数の平均値を表す１３０７および１３０９の単位は、例えばＩＯＰＳである。
【００７０】
また、例えば、カラム１３０７に記録する平均値を計算するための計測期間と、カラム１３０９に記録する平均値を計算するための計測期間が等しい場合には、カラム１３０６と１３０８、およびカラム１３０７と１３０９はそれぞれ片方のみであってもよい。さらに、アクセス分布変化量計算処理にて使う値として、カラム１３０６または／および１３０７に代えて、或いは加えて、他の値を記録するようにしてもよいし、再配置処理にて使う値として、カラム１３０８または／および１３０９に代えて、或いは加えて、他の値を記録するようにしてもよい。
【００７１】
＜管理側階層定義表８０９＞
図１４は、管理側計算機１０３が具備する管理側階層定義表８０９の構成を示す図である。管理側階層定義表８０９は、ストレージサブシステム１０２が有する階層定義表３１０（図７）に対応する。図１４の情報は管理者が定義しても良いが、図７の情報と同期が取られている必要がある。
【００７２】
例えば、階層定義表８０９は、階層毎に、階層の識別子を表す階層ＩＤ１４０１と、階層の性能要件を表す性能要件１４０２と、階層に対応した、単位時間当たりの許容アクセス数範囲を表す許容ＩＰＯＳ範囲１４０３と、を構成項目として含んでいる。
【００７３】
＜計算機システム内における処理の内容＞
本実施形態によるストレージサブシステム１０２が行う処理として、（ｉ）リード処理、（ii）ライト処理、および（iii）アクセス数計算処理がある。また、本実施形態による管理計算機１０３が行う処理として、（iv）アクセス分布変化量計算処理、（ｖ）再配置時間帯計算処理、及び（vi）再配置処理がある。以下、これらについて詳細に説明する。
【００７４】
（Ａ）ストレージサブシステム１０２における処理
リード処理、ライト処理、及びそれらの処理終了時のアクセス数計算処理に関し、ホスト計算機１０１は、ストレージサブシステム１０２に記録したデータにアクセスするために、ストレージサブシステム１０２にアクセス要求を送信する。そして、ストレージサブシステム１０２は、ホスト計算機１０１からアクセス要求を受信し、受信した要求に応じた処理を行う。以下で、アクセス要求の一例としてリード要求を受信した場合の処理と、ライト要求を受信した場合の処理をそれぞれ説明する。なお、（iii）アクセス数計算処理は（ｉ）リード処理及び（ii）ライト処理のそれぞれの最後の処理として含まれている。
【００７５】
（ｉ）リード処理
図１５は、ストレージサブシステム１０２におけるリード処理を説明するためのフローチャートである。ホスト計算機１０１からリード要求が送信された場合、例えば下記の処理が行われる。
【００７６】
ストレージ制御プログラム３０７は、リード要求をホスト計算機１０１から受信する（ステップ１５０１）。そして、ストレージ制御プログラム３０７は、リード要求が有するアクセス先情報を基に、データを読み出す元の仮想領域（以下、リード元仮想領域）を特定する（ステップ１５０２）。
【００７７】
次に、ストレージ制御プログラム３０７は、リード対象のデータがキャッシュメモリ領域に残っているか否かを判断する（ステップ１５０３）。
【００７８】
対象データがキャッシュにある場合（ステップ１５０３でＹｅｓの場合）、ストレージ制御プログラム３０７は、キャッシュメモリ領域のリード対象データを、ホスト計算機１０１に送信する（ステップ１５０４）。
【００７９】
対象データがキャッシュにない場合（ステップ１５０３でＮｏの場合）、ストレージ制御プログラム３０７は、ＶＶＯＬ管理表３１１を基に、１５０２で特定されたリード元仮想領域に割り当てられている実領域（以下、リード元実領域）を特定する（ステップ１５０５）。続いて、ストレージ制御プログラム３０７は、リード元実領域からデータを読み出し、そのデータをキャッシュメモリ領域に書き込み、かつホスト計算機１０１に送信する（ステップ１５０６）。
【００８０】
最後に、ストレージ制御プログラム３０７は、リード元仮想領域に対応するアクセス数６０４の値を更新する（ステップ１５０７）。この時、ステップ１５０７の直前に実行した処理がステップ１５０４であった場合には、ストレージ制御プログラム３０７は、リード元仮想領域に対応するアクセス数６０４の値を更新しなくてもよい。
【００８１】
（ii）ライト処理
図１６は、ストレージサブシステム１０２におけるライト処理を説明するためのフローチャートである。ホスト計算機１０１からライト要求が送信された場合、例えば下記の処理が行われる。
【００８２】
ストレージ制御プログラム３０７は、ライト要求をホスト計算機１０１から受信する（ステップ１６０１）。そして、ストレージ制御プログラム３０７は、ライト要求が有するアクセス先情報を基に、データを書き込む先の仮想領域（以下、ライト先仮想領域）を特定する（ステップ１６０２）。
【００８３】
次に、ストレージ制御プログラム３０７は、ライト先仮想領域に実領域が割り当てられているか否かを判断する（ステップ１６０３）。具体的には、ライト先仮想領域がＶＶＯＬ管理表３１１に登録されているか否かを判断する。
【００８４】
ライト先仮想領域に実領域が割り当てられている場合（ステップ１６０３でＹｅｓの場合）、ストレージ制御プログラム３０７は、ライト対象データをライト先仮想領域に割り当てられている実領域に書き込む（ステップ１６０４）。
【００８５】
ライト先仮想領域に実領域が割り当てられていない場合（ステップ１６０３でＮｏの場合）、ストレージ制御プログラム３０７は、ライト先仮想領域に割り当てられる未割当の実領域が存在するか否かを判断する（ステップ１６０５）。具体的には、ストレージ制御プログラム３０７は、実領域管理表３０９の割当状況５０４が「未割当」である実領域が存在するか否かを判断する。
【００８６】
ライト先仮想領域に未割当の実領域が存在する場合（ステップ１６０５でＹｅｓの場合）、ストレージ制御プログラム３０７は、ライト先仮想領域に未割当の実領域を割り当てて、ライト対象データを当該実領域に書き込む（ステップ１６０６）。
【００８７】
ライト先仮想領域に未割当の実領域が存在しない場合（ステップ１６０５でＮｏの場合）、ストレージ制御プログラム３０７は、ホスト計算機１０１にエラーを送信する（ステップ１６０７）。
【００８８】
最後に、ストレージ制御プログラム３０７は、ライト元仮想領域に対応するアクセス数６０４の値を更新する（ステップ１６０８）。
【００８９】
（Ｂ)管理計算機１０３における処理
（iv）アクセス分布変化量計算処理
図１７は、アクセス分布変化量計算処理の詳細を説明するためのフローチャートである。アクセス分布変化量計算処理は、一定の時間間隔、例えば１時間毎に定期的・繰り返しに行われる。この時間間隔は、正確な間隔でなくてもよく、多少の時間のずれがあっても良い。
【００９０】
構成管理プログラム８０４は、管理側ＶＶＯＬ管理表８１０に登録されている全ての仮想ボリュームに対して、以降の１７０１〜１７０４の処理を行う。以下、１つの仮想ボリューム（以下、図１７の説明において「対象ＶＶＯＬ」という）を例にして、以降の処理を説明する。
【００９１】
（ステップ１７０１の処理内容）
構成管理プログラム８０４は、対象ＶＶＯＬ内の各仮想領域に対応するアクセス数の情報を、ストレージサブシステム１０２から取得する。具体的には、構成管理プログラム８０４は、ストレージサブシステム１０２に対して、対象ＶＶＯＬ内の各仮想領域に対応するアクセス数の情報を要求するリクエストを送信する。リクエストは、例えば対象ＶＶＯＬの識別子であるＶＶＯＬ_ＩＤの情報を有する。
【００９２】
ストレージサブシステム１０２はリクエストを受信し、リクエストが有するＶＶＯＬ_ＩＤで特定される仮想ボリューム内の各仮想領域について、ＶＶＯＬ管理表３１１の当該仮想領域に対応するＶＶＯＬ_ＬＢＡ範囲６０２の値とアクセス数６０４の値を、例えば２つ組にして、管理計算機１０３に送信する。なお、この時ストレージサブシステム１０２が管理計算機１０３に送信する情報は、仮想領域の識別情報とアクセス数の情報の対応が分かれば、どのような形式であってもよい。
【００９３】
（ステップ１７０２の処理内容）
構成管理プログラム８０４は、前回処理時から現在までの期間における、対象ＶＶＯＬに対するアクセス数の平均値（ＩＯＰＳ）を計算する。具体的には、対象ＶＶＯＬ内のすべての仮想領域に対して、ステップ１７０１で取得したアクセス数６０４の値と前回処理時のアクセス数１３０６の値との差分を求め、その差分値の総和を計算する。差分を求めるのは本実施形態ではアクセス数カウントにインクリメントカウンタを用いているからであり、差分の総和によって、当該期間におけるアクセス総数（累計値）が算出される。ただし、この時、前回処理時のアクセス数１３０６には、前回アクセス分布変化量計算処理を行った時に取得した、各仮想領域のアクセス数６０４の値が記録されているものとする。
【００９４】
構成管理プログラム８０４は算出した総和の値を基に、前回処理時から現在までの期間における対象ＶＶＯＬのアクセス数の単位時間平均値（例えばＩＯＰＳ）を求める（以下、図１７の説明において「ＶＶＯＬアクセス平均」という）。
【００９５】
（ステップ１７０３の処理内容）
構成管理プログラム８０４は、対象ＶＶＯＬに対するアクセス分布の、前回処理時から現在までの期間における変化量を計算する。具体的には、まず、構成管理プログラム８０４は、対象ＶＶＯＬ内のすべての仮想領域に対して、ステップ１７０１で取得したアクセス数６０４の値と前回処理時のアクセス数１３０６の値との差分を基に、前回処理時から現在までの期間における、当該仮想領域に対するアクセス数の単位時間平均（例えばＩＯＰＳ）を求める（以下、図１７の説明において「仮想領域アクセス平均」という）。
【００９６】
次に構成管理プログラム８０４は、対象ＶＶＯＬ内のすべての仮想領域に対して、当該仮想領域の仮想領域アクセス平均をＶＶＯＬアクセス平均で割った値と、当該仮想領域に対応する前回処理時の平均値１３０７を対象ＶＶＯＬに対応するアクセス平均９０４の値で割った値との差分を計算する。ただし、この時前回処理時の平均値１３０７には、前回処理時に計算した仮想領域アクセス平均の値が記録されているものとする。ここで計算した差分の値は、当該仮想領域へのアクセス数の、対象ＶＶＯＬへのアクセス数に対する割合が、前回処理時からどれだけ変化したかを表している。
【００９７】
構成管理プログラム８０４は、例えば対象ＶＶＯＬ内のすべての仮想領域に対する上記差分の二乗合計の平方根を計算し、対象ＶＶＯＬに対応するアクセス分布の変化量９０３として、アクセス分布変化履歴表８０５に記録する。この時、アクセス分布変化履歴表８０５の観測日時９０２には、前回のアクセス分布変化量計算処理を実行した時刻から、現在の時刻までの時間帯を記録する。また、アクセス分布変化履歴表８０５のアクセス平均９０４には、ステップ１７０２で計算したＶＶＯＬアクセス平均を記録する。
【００９８】
上記処理にて計算したアクセス分布変化量９０３の値を分析することで、対象ＶＶＯＬ内のホットスポット（その仮想領域に対するアクセス数が、同じ仮想ボリューム内の他の仮想領域に対するアクセス数よりも高い仮想領域）の位置が、その時間帯において変化したことを検知することができる。
【００９９】
ここで、「その指標の分析により検知できる情報」という観点で、上記処理の計算値であるアクセス分布変化量と他の指標を比較する。例えば、対象ＶＶＯＬへのアクセス数を指標に用いた場合、個々の仮想領域へのアクセス数が指標に現れないため、「対象ＶＶＯＬへのアクセス数は変化していないが、対象ＶＶＯＬのホットスポットの位置は変化した」ような場合を検知できない。ホットスポットの位置の変化を検知するには、対象ＶＶＯＬのアクセス分布の変化に着目すればよい。そこで、対象ＶＶＯＬ内の各仮想領域に対するアクセス数の差分を取り、その統計値を指標とすることが考えられる。しかし、この値を用いると、ホットスポットの位置の変化以外にも、例えば「対象ＶＶＯＬ内の各仮想領域へのアクセス数が、平均的に増加した」ような場合（以下、図１７の説明において「全体増加ケース」という）も検知してしまう。
【０１００】
本発明は、個々の仮想ボリュームごとにその内部の各仮想領域に対する最適な実領域割り当てを実現するものであり、全体増加ケースに対する解決策ではないため、ホットスポットの位置が変化した場合と全体増加ケースを切り分ける必要がある。そこで、上記処理の計算値のような、対象ＶＶＯＬ内の各仮想領域に対するアクセス数を正規化した値の統計値を指標とする。正規化を行うことで、全体増加ケースにおいては指標が変化しないため検知せずに済む。これにより、ホットスポットの位置が変化したケースに的を絞って検知を行うことができる。
【０１０１】
なお、前述の全体増加ケースに対する解決策としては、従来の定期的かつ仮想ボリューム横断（プール単位）で行う再配置処理が適切である。本発明と従来技術を組み合わせて用いることで、論理ボリュームよりも細かい領域単位での再配置処理を、より効果的に利用することができる。ただし、本発明と従来技術を組み合わせる場合には、再配置を実施する時間が衝突しないように、例えば再配置処理を行ってから一定期間（例えば１時間）以内には再配置処理を行わないようにしたり、本特許による再配置処理と従来技術による再配置処理の優先順を決定したりするなどの制御を行う必要がある。
【０１０２】
また、上述のアクセス分布の変化量の計算方法は一例であり、他の計算方法を用いてもよい。
【０１０３】
（ステップ１７０４の処理内容）
構成管理プログラム８０４は、対象ＶＶＯＬ内のすべての仮想領域に対して、ステップ１７０１で取得した各仮想領域に対するアクセス数６０４の値をカラム１３０６に記録し、ステップ１７０３で計算した各仮想領域に対する仮想領域アクセス平均の値をカラム１３０７に記録する。
【０１０４】
なお、対象ＶＶＯＬ内の仮想領域の中に、ストレージサブシステム１０２のＶＶＯＬ管理表３１１には登録されているが、管理側ＶＶＯＬ管理表８１０には登録されていないものがあった場合、構成管理プログラム８０４は、上記ステップ１７０１〜１７０３の処理において、当該仮想領域に対応するアクセス数に関する値１３０６〜１３０９を、例えば全て０として計算する。また、構成管理プログラム８０４は、上記ステップ１７０４の処理において、当該仮想領域を管理側ＶＶＯＬ管理表８１０に登録した後、対応するカラム１３０６および１３０７の値を更新する。
【０１０５】
（ｖ）再配置時間帯計算処理
図１８は、再配置時間帯計算処理の詳細を説明するためのフローチャートである。再配置時間帯計算処理は、例えば定期的・繰り返し行われる。ただし、周期的に実行する必要はなく、実行時間間隔に多少のバラツキがあっても構わない。
【０１０６】
（ステップ１８０１の処理内容）
管理計算機１０３内の構成管理プログラム８０４は、再配置時間帯管理表８０６における再配置時間帯１００３の値をクリアする。
【０１０７】
次に、構成管理プログラム８０４は、管理側ＶＶＯＬ管理表８１０に登録されているすべての仮想ボリュームに対して、以降ステップ１８０２〜１８０５の処理を行う。以下、１つの仮想ボリューム（以下、図１８の説明において「対象ＶＶＯＬ」という）を例にして説明する。
【０１０８】
構成管理プログラム８０４は、例えば１日を１時間毎に区切った各時間帯（以下、対象時間帯）に対して、以降ステップ１８０２〜１８０４の処理を行う。
【０１０９】
（ステップ１８０２の処理内容）
構成管理プログラム８０４は、アクセス分布変化履歴表８０５を基に、対象ＶＶＯＬの対象時間帯におけるアクセス分布変化量９０３の平均値、例えば直近１週間のアクセス分布変化量９０３の平均値を計算する。なお、平均値を計算する期間は、例えば２日間や１ヶ月間でもよい。
【０１１０】
また、ストレージ管理者が、平均値を計算する期間を設定できるようにしてもよい。その場合、構成管理プログラム８０４は、例えばストレージ管理者からの指示に応じて、平均値を計算する期間を設定する画面をＷｅｂブラウズ用計算機１０４に表示する。さらに、平均値を計算する期間は、仮想ボリュームごとに異なってもよいし、複数の仮想ボリュームで共有してもよい。
【０１１１】
（ステップ１８０３の処理内容）
構成管理プログラム８０４は、計算したアクセス分布変化量９０３の平均値（以下、分布変化平均という）が再配置時間帯管理表８０６の対象ＶＶＯＬに対応する分布変化閾値１００２より小さいか否かを判定する。なお、分布変化閾値１００２の値は、１８０３の処理が実行される段階で設定しても良いし、それより前に設定されていてもよい。分布変化閾値１００２の設定の詳細に関しては、後述する。
【０１１２】
（ステップ１８０４の処理内容）
分布変化平均が分布変化閾値１００２よりも小さい場合（ステップ１８０３でＹｅｓの場合）、構成管理プログラム８０４は、対象時間帯を再配置時間帯管理表８０６に登録する。分布変化平均が分布変化閾値１００２以上の場合（ステップ１８０３でＮｏの場合）、構成管理プログラム８０４は、次の時間帯について処理（ステップ１８０２〜１８０４）を継続する。以上の処理を、各時間帯に対して繰り返し行う。
【０１１３】
（ステップ１８０５の処理内容）
構成管理プログラム８０４は、再配置時間帯管理表８０６の対象ＶＶＯＬに対応する再配置時間帯１００３に対して、連続する時間帯を１つにまとめるという処理を行う。具体的には、構成管理プログラム８０４は、対象ＶＶＯＬのＶＶＯＬ_ＩＤと、ＶＶＯＬ_ＩＤが一致するレコードを、再配置時間帯管理表８０６から特定する。２以上のレコードが特定された場合、構成管理プログラム８０４は特定された２以上のレコードの、２以上の再配置時間帯が連続していれば、それらを１つにまとめる。例えば、再配置時間帯が9:00-10:00、10:00-11:00、11:00-12:00のように連続していれば、9:00-10:00、10:00-11:00、11:00-12:00を、１つの時間帯9:00-12:00にまとめる。構成管理プログラム８０４は、再配置時間帯をまとめられた２以上のレコードをすべて削除し、まとめた後の時間帯を登録する。
【０１１４】
（上述の再配置時間帯計算処理の変形例について）
以上が再配置時間帯計算処理の説明であるが、構成管理プログラム８０４は、再配置時間帯計算処理において、対象時間帯を再配置時間帯管理表８０６に登録するか否かの判定時に、アクセス分布変化量に加えて対象ＶＶＯＬの対象時間帯におけるアクセス数の情報を考慮してもよい。具体的には、ステップ１８０２において、構成管理プログラム８０４はアクセス分布変化履歴表８０５を基に、対象ＶＶＯＬの対象時間帯におけるアクセス数９０４の平均値を計算する。
【０１１５】
ステップ１８０３において、構成管理プログラム８０４は、例えば、分布変化平均が分布変化閾値１００２よりも小さくかつアクセス数９０４の平均値が一定値（例えば、分布変化閾値１００２とは別に設定または／および計算した閾値）よりも小さい場合にのみ、対象時間帯を再配置時間帯管理表８０６に登録すると判定してもよい。
【０１１６】
（分布変化閾値について）
ステップ１８０３で使用する分布変化閾値１００２は、ストレージ管理者が入力してもよく、管理計算機１０３が計算しても良い。ここでは一例として、ストレージ管理者が入力する形態について説明する。
【０１１７】
構成管理プログラム８０４は、上記の再配置時間帯計算処理において、Ｗｅｂブラウズ用計算機１０４に、図１９に示す分布変化閾値入力画面１９０１を表示する。画面１９０１は、分布変化閾値の設定対象である仮想ボリュームを選択するための領域（仮想ボリューム選択領域）１９０４と、選択された仮想ボリュームに設定する分布変化閾値を入力するための領域（閾値入力領域）１９０６を有する。
【０１１８】
仮想ボリューム選択領域１９０４には、例えば再配置時間帯管理表８０６に登録されている各仮想ボリュームに対応するＶＶＯＬ_ＩＤ１００１の一覧が表示される。ストレージ管理者は仮想ボリュームのＩＤの一覧から、例えば１つを選択可能である。
【０１１９】
閾値入力領域１９０６には、例えば分布変化閾値を入力するためのテキストボックスが表示される。テキストボックスには、選択されたＩＤで識別される仮想ボリュームに対応する分布変化閾値の入力が可能である。
【０１２０】
ストレージ管理者が、画面１９０１を用いて分布変化閾値を入力し、適用ボタン１９０２を押すと、構成管理プログラム８０４は入力された値を、画面１９０１で選択されている仮想ボリュームのＩＤに対応する分布変化閾値１００２に格納し、上記再配置時間帯計算処理の１８０３以降を実行することになる。
【０１２１】
なお、画面１９０１には、ストレージ管理者が分布変化閾値を決定するための判断材料となる情報を表示する領域（管理者判断材料表示領域）１９０５があっても良い。例えば、画面１９０１には、上述の再配置時間帯計算処理のステップ１８０２で計算した、１日を１時間に区切った時間帯毎のアクセス分布変化量の平均値を表示しても良い。表示の方法は、例えば図１９の管理者判断材料表示領域１９０５のような表形式でもよく、図２０のような時系列のグラフ形式で表示してもよい。図２０のようにグラフで表示した場合には、管理者は視覚でアクセス分布の変化を捉えることができ、感覚的な理解が得られやすいという効果がある。
【０１２２】
また、構成管理プログラム８０４は、分布変化閾値が入力された時に、入力された閾値を用いて計算される再配置時間帯を、再配置時間帯管理表８０６に登録する前に画面１９０１に表示し、それらの時間帯を再配置時間帯管理表に登録するか否かを、ストレージ管理者に選択させてもよい。この場合、画面１９０１は計算した再配置時間帯を表示するための領域（再配置時間帯表示領域）１９０７を持つ。具体的には、構成管理プログラム８０４は、上記再配置時間帯計算処理の開始時に、メモリ８０３上に中間表を準備する。ストレージ管理者は画面１９０１において、分布変化閾値を閾値入力領域１９０６に入力した後、例えば適用ボタン１９０２の代わりに時間帯計算ボタン１９０８を押す。
【０１２３】
時間帯計算ボタン１９０８が押されると、構成管理プログラム８０４は、選択されている仮想ボリュームに対応する分布変化閾値１００２の代わりに、閾値入力領域１９０６に入力されている値を用いて、ステップ１８０３〜１８０５の処理を行う。この場合、構成管理プログラム８０４は、ステップ１８０４および１８０５で計算した再配置時間帯を、再配置時間帯管理表８０６ではなく中間表に記録する。構成管理プログラム８０４は、中間表に記録した再配置時間帯の情報を画面１９０１の再配置時間帯表示領域１９０７に表示する。ストレージ管理者は分布変化閾値を入力し直し、再度時間帯計算ボタン１９０８を押してもよい。
【０１２４】
構成管理プログラム８０４は、ストレージ管理者が分布変化閾値を入力し直すたびに、新しく入力された閾値を用いて再配置時間帯を計算し、中間表に記録して再配置時間帯表示領域１９０７に表示する。ストレージ管理者が適用ボタン１９０２を押下すると、構成管理プログラム８０４は、閾値入力領域１９０６に入力された値を分布変化閾値１００２に格納し、また中間表に記録されている再配置時間帯の情報を再配置時間帯管理表８０６に登録し、中間表をメモリ８０３から削除して再配置時間帯計算処理を終了する。
【０１２５】
さらに、ストレージ管理者が構成管理プログラム８０４に指示することで、再配置時間帯計算処理を実行する前に、分布変化閾値を入力しても良い。その場合、再配置時間帯計算処理の間では、ストレージ管理者に分布変化閾値の入力を求めなくても良い。ストレージ管理者が構成管理プログラム８０４に、分布変化閾値の入力を指示した場合、構成管理プログラム８０４はＷｅｂブラウズ用計算機１０４に画面１９０１を表示する。
【０１２６】
また、ストレージ管理者が構成管理プログラム８０４に指示することで、分布変化閾値を入力するのではなく、アクセス分布に関する情報を閲覧するための画面を表示できてもよい。この場合構成管理プログラム８０４は、例えば画面１９０１に仮想ボリューム選択領域１９０４と管理者判断材料表示領域１９０５のみを表示する。
【０１２７】
さらに、構成管理プログラム８０４は、分布変化閾値を自動的に計算しても良い。その場合、ストレージ管理者に分布変化閾値の入力を求めなくても良い。例えば、ストレージ管理者は分布変化閾値の代わりに、１日の間で行う再配置処理の上限数を入力する。構成管理プログラム８０４は、入力された上限数を超えない数の再配置時間帯が登録されるような分布変化閾値を計算する。分布変化閾値を、構成管理プログラムに計算させるか、自分で入力するかは、ストレージ管理者が選択できて良い。
【０１２８】
（vi）再配置処理
図２１は、再配置処理の詳細を説明するためのフローチャートである。再配置処理は、再配置時間帯管理表８０６に再配置時間帯１００３が登録されている仮想ボリューム（以下、図２１の説明において対象ＶＶＯＬ）に対して、対象ＶＶＯＬに対応する再配置時間帯１００３毎に行う処理である。再配置処理は、例えば、上述の（ｖ）再配置時間帯計算処理によって、再配置時間帯管理表８０６に登録された各再配置時間帯の先頭時刻から一定期間後、例えば３０分後に行われる。
【０１２９】
（ステップ２１００の処理内容）
管理計算機１０３の構成管理プログラム８０４は、ストレージサブシステム１０２から対象ＶＶＯＬ内のすべての仮想領域に対するアクセス数６０４の値を取得し、管理側ＶＶＯＬ管理表８１０の先頭時刻でのアクセス数１３０８に記録する。
【０１３０】
構成管理プログラム８０４はステップ２１００を実行した後、所定時間（例えば３０分）が経過するまで待機する。なお、構成管理プログラム８０４は、待機中に、他の処理を行ってもよい。即ち、ステップ２１００を行った後の所定時間経過後にステップ２１０１の処理を行うことができれば、当該待機時間内にどのような処理を何回行っても構わない。
【０１３１】
（ステップ２１０１の処理内容）
構成管理プログラム８０４は、ストレージサブシステム１０２から対象ＶＶＯＬ内のすべての仮想領域に対するアクセス数６０４の値を取得し、各仮想領域の例えば過去３０分間におけるアクセス数の平均値を計算して平均値１３０９に記録する。具体的には、構成管理プログラム８０４は、次の（式１）にしたがってアクセス数の平均値を計算し、平均値１３０９に記録する。
【０１３２】
（アクセス数６０４−先頭時刻でのアクセス数１３０８）／計測期間の秒数  （式１）
例えば、ＶＶＯＬ_ＩＤがＶｏｌｕｍｅ１であり、ＶＶＯＬ_ＬＢＡ範囲が０−９９９である仮想領域に対する図６および図１３の値を例に取り、また計測期間を３０分間として上記（式１）に当てはめて計算すると、(792000 - 621000) / (30 × 60) = 95となる。
【０１３３】
このように、再配置時間帯の先頭時刻から一定期間（例えば３０分間）のアクセス数の情報を基に再配置処理を行うことで、当該仮想ボリュームの、アクセス分布が変化しない時間帯のアクセス数の情報に基づいた再配置処理を行うことができる。
【０１３４】
また、構成管理プログラム８０４は、ストレージサブシステム１０２から各表３０８〜３１０の情報を取得し、取得した情報を基に管理計算機１０３の各表８０７〜８０９の情報を更新する。
【０１３５】
（ステップ２１０２の処理内容）
次に、構成管理プログラム８０４は、管理側ＶＶＯＬ管理表８１０に登録されている、対象ＶＶＯＬ内のすべての仮想領域に対して、対象仮想領域に割り当てるべき階層を特定する。具体的には、構成管理プログラム８０４は、対象仮想領域に対応するアクセス数の平均値１３０９の値を含むアクセス数範囲を表す許容ＩＯＰＳ範囲１４０３を管理側階層定義表８０９から特定し、その許容アクセス数範囲１４０３に対応する階層ＩＤ１４０１を、対象仮想領域の再配置判定結果１３０５の値として記録する。この結果、記録された階層ＩＤは、当該仮想領域に割り当てられている実領域を含む階層の階層ＩＤと同じであることもあれば異なることもある。なお、アクセス数１３０４に、再配置処理にて再配置判定結果の階層を特定するために用いる値として複数の種類の値を記録している場合には、許容ＩＯＰＳ範囲１４０３を特定するために用いる値として、どれか１つを選択してもよいし、計算により導出してもよい。また、許容ＩＯＰＳ範囲１４０３を特定する際に複数の値の組を用いてもよい。その場合、階層定義表３１０および管理側階層定義表８０９の許容ＩＯＰＳ範囲７０３および１４０３には、複数の値の組を設定する。
【０１３６】
（繰り返し処理）
次に、構成管理プログラム８０４は、管理側ＶＶＯＬ管理表８１０に登録されている、対象ＶＶＯＬ内のすべての仮想領域に対してステップ２１０３〜２１０８の処理を実行する。ただし、ここで構成管理プログラム８０４は、例えば、各仮想領域を、対応するアクセス数の平均値１３０９の値が高い順に処理する。以下、１つの仮想領域（「対象仮想領域」という）を例にして、以降のステップ２１０３〜２１０８の処理について説明する。
【０１３７】
（ステップ２１０３の処理内容）
構成管理プログラム８０４は、現在対象仮想領域に割り当てられている実領域に対応する階層（「対象領域配置元階層」という）のＩＤと対象仮想領域に対応する再配置判定結果１３０５の値とが一致するか否かを判定する。具体的には、構成管理プログラム８０４は、対象仮想領域に割り当てられている実領域のＩＤ１３０３を基に、その実領域を含むＲＡＩＤグループのＩＤ１２０１を特定し、そのＲＡＩＤグループに対応するデバイス種別１１０２または／およびＲＡＩＤレベル１１０３が適合する性能要件１４０２に対応する階層ＩＤ１４０１を特定する。特定した階層ＩＤ１４０１と、再配置判定結果１３０５の値が一致するか否かを判定する。
【０１３８】
対象領域配置元階層が配置されるべき階層の場合（ステップ２１０３でＹｅｓの場合）、対象の仮想領域のデータ移行は不要のため、対象の仮想領域に対する処理は終了する。一方、対象領域配置元階層が配置されるべき階層でない場合（ステップ２１０３でＮｏの場合）、処理はステップ２１０４に移行する。
【０１３９】
（ステップ２１０４の処理内容）
構成管理プログラム８０４は、管理側実領域管理表８０８を基に対象仮想領域に対応する再配置判定結果１３０５の階層ＩＤによって示される階層（「対象領域配置先階層」という）内に、未割当の実領域が存在するか否かを判定する。
【０１４０】
配置されるべき階層に空きがある場合（ステップ２１０４でＹｅｓの場合）、処理はステップ２１０６に移行し、配置されるべき階層に空きがない場合（ステップ２１０４でＮｏの場合）、処理はステップ２１０５に移行する。
【０１４１】
（ステップ２１０６の処理内容）
構成管理プログラム８０４は、対象仮想領域に現在割り当てられている実領域（「データ移行元実領域」という）に代えて、対象領域配置先階層内の未割当の実領域（「データ移行先実領域」という）を割り当てる。具体的には、構成管理プログラム８０４は、管理側実領域管理表８０８の、データ移行元実領域に対応する割り当て状況１２０４の値を未割当に更新し、データ移行先実領域に対応する割り当て状況１２０４の値を割当済みに更新する。なお、本実施形態では、例えば、実領域と仮想領域は同じ容量で区切られるように管理され、移行元と移行先の容量を考慮する必要がないようになっている。
【０１４２】
また、構成管理プログラム８０４は、管理側ＶＶＯＬ管理表８１０の、対象仮想領域に対応する実領域ＩＤ１３０３の値を、データ移行先実領域のＩＤに更新する。また、構成管理プログラム８０４は、データ移行元実領域からデータ移行先実領域にデータを移行するようにストレージサブシステム１０２に指示する。ストレージサブシステム１０２のストレージ制御プログラム３０７は、構成管理プログラム８０４からの指示を受信し、データ移行元実領域からデータ移行先実領域にデータを移行する。
【０１４３】
なお、ステップ２１０６の処理を行うと、他の仮想ボリュームの性能に影響を及ぼす場合がある。例えば、ある仮想ボリュームの再配置処理において、ステップ２１０６の処理を行った結果、性能が高い階層内の未割当実領域を全て使い切ってしまう場合がある。この場合、この後に再配置処理を行う仮想ボリューム内の仮想領域には、当該階層内の未割当実領域を割り当てることができない。したがって、当該階層内の実領域を割り当てるべきと判定された仮想領域が存在する場合、後述するステップ２１０７および２１０８の処理のように、当該階層内の実領域が割り当てられている他の仮想領域と割り当て状況およびデータを入れ替えたり、性能が近い他の階層の実領域を割り当てたりすることとなり、性能に影響を及ぼす場合がある。本事象に対処するためには、例えば、再配置処理において、対象ＶＶＯＬの仮想領域に未割当の実領域を割り当てることは行わず、常に対象ＶＶＯＬ内の他の仮想領域との入れ替えのみによって、対象ＶＶＯＬ内仮想領域への実領域割り当て状況の最適化を実現する方法が考えられる。再配置処理において未割当の実領域を使用するか否かは、例えば、各階層内の未割当の実領域の個数または／および割合によって、構成管理プログラム８０４が判断する。具体的には、構成管理プログラム８０４は、ステップ２１０４の処理において、対象領域配置先階層内に未割当実領域が存在したとしても、その個数が対象領域配置先階層内の全実領域数の１割よりも少ない場合は、ステップ２１０６の処理ではなくステップ２１０５の処理に移行する。
【０１４４】
（ステップ２１０５の処理内容）
構成管理プログラム８０４は、対象仮想領域に割り当てられている実領域と、データを入れ替え可能な実領域が存在するか否かを判定する。具体的には、構成管理プログラム８０４は、対象領域配置先階層内の割当済の実領域の中で、その実領域が割り当てられている仮想領域に対応する再配置判定結果１３０５の階層ＩＤが、対象領域配置元階層の階層ＩＤと一致するものが存在するか否かを判定する。
【０１４５】
入れ替え可能な実領域が存在する場合（ステップ２１０５でＹｅｓの場合）、処理はステップ２１０７に移行し、入れ替え可能な実領域が存在しない場合（ステップ２１０５でＮｏの場合）、処理はステップ２１０８に移行する。
【０１４６】
（ステップ２１０７の処理内容）
構成管理プログラム８０４は、対象仮想領域に割り当てられている実領域（以下、ステップ２１０７の説明において「対象実領域１」という）と、対象領域配置先階層が有する割当済実領域（以下、ステップ２１０７の説明において「対象実領域２」という）との間で、仮想領域への割り当て状況を入れ替える。具体的には、構成管理プログラム８０４は、管理側ＶＶＯＬ管理表８１０の実領域ＩＤ１３０３において、対象実領域１のＩＤが格納されている箇所に対象実領域２のＩＤを格納し、対象実領域２のＩＤが格納されている箇所に対象実領域１のＩＤを格納する。また、構成管理プログラム８０４は、対象実領域１と対象実領域２の間のデータの入れ替えを行うよう、ストレージサブシステム１０２に指示する。ストレージサブシステム１０２のストレージ制御プログラム３０７は、構成管理プログラム８０４からの指示を受信し、実領域間のデータの入れ替えを行う。
【０１４７】
例えば、ストレージ制御プログラム３０７は、下記の処理を行うことによりデータの入れ替えを実現する。なお、下記処理におけるキャッシュメモリ領域は、ストレージサブシステム１０２が有する未割当実領域でもよい。
【０１４８】
手順１：ストレージ制御プログラム３０７は、対象実領域１内のデータをキャッシュメモリ領域に書く。
【０１４９】
手順２：ストレージ制御プログラム３０７は、対象実領域２内のデータをキャッシュメモリ領域に書く。
【０１５０】
手順３：ストレージ制御プログラム３０７は、対象実領域１のデータをキャッシュメモリ領域から対象実領域２に書き込む。
【０１５１】
手順４：ストレージ制御プログラム３０７は、対象実領域２のデータをキャッシュメモリ領域から対象実領域１に書き込む。
【０１５２】
（ステップ２１０８の処理内容）
構成管理プログラム８０４は、対象階層に性能が最も近い階層内の未割当の実領域に、対象仮想領域に割り当てられている実領域内のデータを移行する。また、構成管理プログラム８０４は、管理側ＶＶＯＬ管理表８１０と管理側実領域管理表８０８を更新する。
【０１５３】
（ステップ２１０９の処理内容）
構成管理プログラム８０４は、ストレージサブシステム１０２に、上記の再配置処理によって更新された各表の情報を取得し、ストレージサブシステム１０２の各表の情報を更新するよう指示する。
【０１５４】
ストレージサブシステム１０２のストレージ制御プログラム３０７は、構成管理プログラム８０４からの指示を受信し、管理計算機１０３の各表８０７〜８０９の情報を取得し、取得した情報を基にストレージサブシステム１０２の各表３０８〜３１０の情報を更新する。
【０１５５】
（２）第２の実施形態
第２の実施形態では、仮想領域に割り当てられた実領域にゼロデータ（すべてのビットがゼロであるデータ）が格納された場合に、ストレージサブシステムが当該仮想領域を未割当の仮想領域に変更する（以下で、このような仮想領域を「ゼロデータ仮想領域」という）。より具体的には、実領域の全てのデータがゼロとなった場合、対応する仮想領域に対してＮＵＬＬ_Ｐｏｉｎｔｅｒ（何も割り当てられていないことを示すポインタ）が付与され、当該仮想領域が未割当の仮想領域となる。ストレージサブシステムは、ホスト計算機から未割当の仮想領域に対するリード要求を受信した場合、エラーではなくゼロデータを送信する。このような技術を「ゼロリクラメーション」という。図２４は、このゼロインクラメーションの概念を示す図である。
【０１５６】
この場合、ストレージサブシステムは未割当の仮想領域の内、ゼロデータ仮想領域に対しては例えば割当済仮想領域と同様にアクセス数を計測する。
【０１５７】
＜システム及び装置の構成、並びに、管理情報について＞
第２の実施形態において、計算機システム、ホスト装置、ストレージサブシステム、及び管理システムの構成は、第１の実施形態のそれらと同様であるが、第１の実施形態の構成と比較して、ＶＶＯＬ管理表３１１および管理側ＶＶＯＬ管理表８１０が有する情報が異なる。以下では、第１の実施形態と異なる部分のみ説明する。
【０１５８】
図２２は、第２の実施形態におけるＶＶＯＬ管理表３１１の構成を示す図である。図２３は、第２の実施形態における管理側ＶＶＯＬ管理表８１０の構成を示す図である。
【０１５９】
第２の実施形態のＶＶＯＬ管理表３１１および管理側ＶＶＯＬ管理表８１０は、実領域ＩＤ２２０３および２３０３、および再配置判定結果２２０５および２３０５に対して、値が存在しないことを示すＮＵＬＬ値（ゼロ値）を格納することにより、未割当の仮想領域に対応する情報を格納することができる点で、第１の実施形態のＶＶＯＬ管理表３１１および管理側ＶＶＯＬ管理表８１０と異なる。このように、ゼロデータ仮想領域に対応する実領域にはＮＵＬＬ値を格納しておき、当該仮想領域に対するアクセスについては、常にゼロデータが返されることになる。
【０１６０】
第２の実施形態では、ゼロデータ仮想領域についてはそれが未割当の仮想領域であっても、ＶＶＯＬ管理表３１１および管理側ＶＶＯＬ管理表８１０に、当該仮想領域に対応する情報を登録したままにする。こうすることにより、アクセス分布変化量計算処理において、ゼロデータ仮想領域に対するアクセス数の情報を含めて、仮想ボリュームのアクセス分布変化量を正確に計算することができる。また、再配置時間帯計算処理において、ゼロデータ仮想領域に対するアクセス数の情報を含めて計算した仮想ボリュームのアクセス分布変化量の情報に基づいて、仮想ボリュームの再配置時間帯を計算することができる。
【０１６１】
なお、上述のように、第２の実施形態では、ゼロデータが格納された仮想領域を未割当にしているが、その代わりに、ストレージシステムが管理する所定の実領域（以下で、基底実領域という）を当該仮想領域に割り当てても良い。ストレージサブシステムはホスト計算機から当該仮想領域へのリード要求を受信した時、当該仮想領域を未割当にしていた場合は、上述のように「未割当の仮想領域に対するリード要求にはゼロデータを返す」という規則に従い、ゼロデータを生成して返す必要がある。しかし、基底実領域がある場合は、事前にゼロデータを基底実領域に格納しておけば、ホスト計算機に返すデータは他の割当済みの仮想領域と同様の処理で取得可能である。
【０１６２】
＜処理内容＞
次に、第２の実施形態において行われる処理について説明する。第２の実施形態において行われる処理は第１の実施形態の処理と比較して、以下の処理が異なる。
【０１６３】
（ｉ）ストレージ制御プログラム３０７は、ホスト計算機１０１が送信したリード要求を受信した時、リード対象の仮想領域がＶＶＯＬ管理表３１１に登録されていなかった場合は、ホスト計算機１０１に対してエラーを送信する。また、リード対象の仮想領域はＶＶＯＬ管理表３１１に登録されているが、当該仮想領域に対応する実領域ＩＤ２２０３がＮＵＬＬ値だった（当該仮想領域がゼロデータ仮想領域だった）場合、ストレージ制御プログラム３０７はホスト計算機１０１に、実領域内のデータに代えてゼロデータを送信する。
【０１６４】
（ii）ストレージ制御プログラム３０７は、ホスト計算機１０１が送信したライト要求を受信した時、ライト対象データがゼロデータだった場合は、ライト対象の仮想領域に対応する実領域ＩＤ２２０３で識別される実領域に対して、実領域管理表３０９の当該実領域に対応する割当状況５０４に未割当の値を格納する。また、ライト対象の仮想領域に対応する実領域ＩＤ２２０３および再配置判定結果２２０５にＮＵＬＬ値を格納する。
【０１６５】
（iii）再配置処理において、ＶＶＯＬ管理表３１１および管理側ＶＶＯＬ管理表８１０に登録されている仮想領域の内、未割当の仮想領域に対しては、再配置判定処理を行わない。以下では、再配置処理のみ詳細に説明する。
【０１６６】
＜再配置処理の詳細＞
図２５は、第２の実施形態における再配置処理の詳細について説明するためのフローチャートである。当該再配置処理は、管理側ＶＶＯＬ管理表８１０に登録されている仮想領域の内、割当済の仮想領域のみに対してステップ２５０２〜２５０９の処理を行う。具体的には、構成管理プログラム８０４は、管理側ＶＶＯＬ管理表８１０の実領域ＩＤ２３０３または／および再配置判定結果２３０５がＮＵＬＬ値のみが割り当てられている仮想領域に対しては、ステップ２５０２〜２５０９の処理を行わず、次の仮想領域の処理に移る。
【０１６７】
（３）まとめ
（ｉ）上述したように、特許文献１では、データのアクセス数に応じて記憶デバイスの移行処理を実行している。これは、データへのアクセス要求に求められるストレージデバイスの性能を保ち、かつストレージサブシステム内の物理記憶デバイスを効率的に利用するためである。各データが、そのアクセス状況に応じたデバイスに配置されている時間が長いほど、ストレージサブシステム内の物理記憶デバイスを効率的に利用していると言える。したがって、移行した後のデータへのアクセス状況は、なるべく長い期間移行先のデバイスの特性に適した状況であることが期待される。
【０１６８】
しかしながら、仮想領域へのアクセス状況は、必ずしも一定ではない。例えば、オンライン処理アプリケーションは、多くのリクエストを高速に処理するため、オンライン処理アプリケーションに処理されるリクエストが短い時間間隔で切り替わる場合がある。そのような場合、リクエストによって、処理中にアクセスするデータは異なるため、オンライン処理アプリケーションがアクセスするデータは、短い時間間隔で変化する。したがって、オンライン処理アプリケーションがアクセスする、ストレージサブシステム内の仮想領域も、短い時間間隔で変化するため、ストレージサブシステム内の各仮想領域へのアクセス頻度も、短い時間間隔で変化すると考えられる。
【０１６９】
このような時に、特許文献１にあるように、データの過去のアクセス履歴から当該データを格納するのに適した特性を持つデバイスを特定し、そのデバイスにデータを移行しても、データのアクセス状況がすぐに変化し、データが不適切なデバイスに格納された状態になってしまう。また、アクセス状況が変化するたびに、それに合わせてデータを移行すると、データ移行が頻繁に発生し、ストレージサブシステム全体の性能に影響を及ぼす恐れがある。
【０１７０】
そこで、本発明は、仮想ボリューム内のホットスポットの仮想領域の位置の変化を捉え、変化量が設定閾値よりも小さい時間帯をデータ移行時間帯候補として管理者に提示するようにしている。そして、データを移行する際には、長期間にわたってその効果が得られると予想される場合に限り、データのアクセス履歴（アクセス分布変化量）に基づいて、当該データの記録により適したデバイス内の実領域へのデータ移行を実施するようにしている。
【０１７１】
（ii）これを実現するために、本発明の第１の実施形態では、管理システムが、各仮想ボリューム内でホットスポットとなる仮想領域の位置変化を示すアクセス分布変化量（負荷集中領域変化情報）を演算する。そして、アクセス分布変化量に基づいて、ホットスポットとなる仮想領域の位置が不変（位置変化が少ない、或いはホットスポットが安定している）となる時間帯を示す負荷位置不変時間帯を特定し、それを表示デバイスに表示する。このようにすることにより、管理者は、各仮想ボリューム内の各仮想領域に対応する実領域の割当状況を見直す時間帯（再配置時間帯）の候補を知ることができるようになる。
【０１７２】
より具体的には、管理システムは、仮想ボリュームの複数の仮想領域に対するホスト計算機からのアクセス負荷量を、複数のタイミング（定期的に繰り返して：ただし、必ずしも周期的なタイミングである必要はない）において取得する。そして、複数の仮想領域のそれぞれについて、複数のタイミングのうち隣り合う異なるタイミングにおけるアクセス負荷量の差分値をそれぞれ計算し、その差分値を統計処理することにより、アクセス変化量の情報を演算する（図１７参照）。このようにすることにより、ホットスポットとなる仮想領域の変化を定量的に測定することができるようになる。
【０１７３】
また、上記管理システムは、一日を複数の時間帯に区切り、各時間帯について、設定された期間におけるアクセス分布変化量の平均値を算出し、当該平均値が設定された閾値（管理者が設定可能）より小さいか判定する。そして、閾値よりも小さい平均値に対応する時間帯が連続する場合には、当該連続する時間帯を結合して負荷不変時間帯とする。このようにすることにより、アクセス分布変化量に幅を持たせてホットスポットとなる仮想領域の位置が不変となる時間帯を特定することができ、また、アクセスに対応する処理の種類（例えば、昼間のアプリケーションによる処理や夜間のバッチ処理等）によって負荷位置不変時間帯にばらつきがある場合（比較的短時間であったり、ある程度長時間に亘る場合であったり）にも柔軟に対応して再配置時間帯を特定することができるようになる。
【０１７４】
さらに、管理システムは、負荷位置不変時間帯に、実領域に格納されたデータの配置変更を実行する。具他的には、管理システムは、負荷位置不変時間帯が開始した後の所定時間内（例えば、３０分間）におけるアクセス数の平均値を算出する。そして、アクセス数の平均値とストレージサブシステムの構成情報から、対象の仮想領域に対応する実領域のデータが配置されるべき階層を特定する。さらに、管理システムは、対象の仮想領域に対応する実領域のデータが配置された現在の階層が特定された階層と異なる場合に、対象に対応する実領域の仮想領域のデータを現在の階層とは異なる階層（特定された階層）に移行する。このようにすることにより、ホットスポットの位置が安定した状態で、アクセス数が多い仮想領域に対応する実領域を本来配置されるべき階層の記憶デバイスに移行することが可能となる。なお、特定された階層に空き領域がない場合には、当該特定された階層に格納されたデータと対象の仮想領域に対応する実領域のデータとを入れ替えることにより、データの配置変更を実行するようにしても良い。このように階層レベルを下げても比較的影響の少ない実領域にホットスポットでアクセス数が多い仮想領域に対応する実領域のデータを移行することにより、容量に余裕がないストレージサブシステムであっても効率的に運用することが可能となる。
【０１７５】
以上のように、第１の実施形態によれば、ストレージ管理者はホスト計算機から仮想ボリュームへのアクセス状況を継続的に監視することなく、定期的にアクセス分布変化量閾値を入力するだけで、移行による効率性が高く得られる時間帯に再配置処理を行うことができ、ストレージサブシステム内の物理記憶デバイスを効率的に利用することができる。
【０１７６】
（iii）本発明の第２の実施形態では、管理システムは、仮想ボリュームにおいて、データが未割り当ての仮想領域にゼロデータを割り当てて、それをゼロデータ仮想領域として管理している。このようにすることにより、未割当ての仮想領域に対するアクセス数もカウントすることができ、より正確にアクセス分布及びその変化量をモニタリングすることができるようになる。
【０１７７】
そして、管理システムは、データの配置変更を実行する際に、仮想ボリュームのゼロデータ仮想領域を除く仮想領域について、再配置時間帯（負荷位置不変時間帯）開始後の所定時間内（例えば、３０分間）におけるアクセス数の平均値を取得する。そして、管理システムは、アクセス数の平均値とストレージサブシステムの構成情報から、対象の仮想領域に対応する実領域のデータが配置されるべき階層を特定し、対象の仮想領域のデータが配置された現在の階層が特定された階層と異なる場合に、対象の仮想領域に対応する実領域のデータを特定された階層に移行する。このようにすることにより、ゼロデータ仮想領域を再配置処理の対象から除くことができ、効率的に再配置処理が実行できる。また、ホットスポットの位置が安定した状態で、アクセス数が多い仮想領域に対応する実領域を本来配置されるべき階層の記憶デバイスに移行することが可能となる。第２の実施形態でも、特定された階層に空き領域がない場合には、当該特定された階層に格納されたデータと対象の仮想領域に対応する実領域のデータとを入れ替えることにより、データの配置変更を実行するようにしても良い。
【０１７８】
以上のように、第２の実施形態では、管理側ＶＶＯＬ管理表８１０に未割当の仮想領域が登録されている場合があるが、未割当の仮想領域は、割り当てられている実領域が存在しないため、実領域間のデータ移行を行うことができない。そのため、上記のように未割当の実領域には再配置判定を行わないようにしている。
【０１７９】
（iv）第１及び第２の実施形態では、アクセス数をカウントする場合に、ストレージサブシステム１０２内の各仮想ボリュームのＬＢＡ範囲に対するＩ／Ｏ数をカウントするようにしているが、アクセス数をカウントする方法はこれに限られるものではない。例えば、ホスト計算機１０１にエージェントを設け、エージェントがホスト計算機の例えばアプリケーションから発行されるＩ／Ｏ要求をキャッチし、それを管理計算機１０３に通知する。そして、管理計算機１０３が、自身が保持している管理側実領域管理表８０８及び管理側ＶＶＯＬ管理表８１０と通知されたＩ／Ｏ要求とを照合して、どの仮想領域へのアクセスかを検知し、アクセス数をカウントするようにしても良い。この場合、図において、管理計算機１０３とホスト計算機１０１はネットワークを介して接続されるようにするのが好ましい。
【０１８０】
（ｖ）なお、本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【０１８１】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【０１８２】
また、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【符号の説明】
【０１８３】
１０…計算機システム
１０１…ホスト計算機
１０２…ストレージサブシステム
１０３…管理計算機
１０４…Ｗｅｂブラウズ用計算機
１０５…ストレージエリアネットワーク
１０６…管理用ネットワーク
１０７…管理システム
【図１】
0005395959.tif 000002
【図２】
0005395959.tif 000003
【図３】
0005395959.tif 000004
【図４】
0005395959.tif 000005
【図５】
0005395959.tif 000006
【図６】
0005395959.tif 000007
【図７】
0005395959.tif 000008
【図８】
0005395959.tif 000009
【図９】
0005395959.tif 000010
【図１０】
0005395959.tif 000011
【図１１】
0005395959.tif 000012
【図１２】
0005395959.tif 000013
【図１３】
0005395959.tif 000014
【図１４】
0005395959.tif 000015
【図１５】
0005395959.tif 000016
【図１６】
0005395959.tif 000017
【図１７】
0005395959.tif 000018
【図１８】
0005395959.tif 000019
【図１９】
0005395959.tif 000020
【図２０】
0005395959.tif 000021
【図２１】
0005395959.tif 000022
【図２２】
0005395959.tif 000023
【図２３】
0005395959.tif 000024
【図２４】
0005395959.tif 000025
【図２５】
0005395959.tif 000026