(57)【要約】      （修正有）【課題】アクセス性能の低下を防ぐことと、未割り当ての実記憶領域の不足を防ぐことの両方を行えるようにする。【解決手段】管理サーバ１１１が、使用対象から未使用対象に切り替わった仮想ボリューム１２５Ｖに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行う。管理サーバが、その解放／未解放選択の結果に従って、特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かを制御する。【選択図】図１
2009134397.tif 000002
【特許請求の範囲】
【請求項１】
アクセス要求から特定された仮想記憶領域に実記憶領域を割り当てる機能を有したストレージシステムを管理する計算機であって、
前記アクセス要求から特定された仮想記憶領域は、仮想ボリュームを構成する複数の仮想記憶領域のうちの一つであり、
前記割り当てられた実記憶領域は、一又は複数の実ボリュームで構成された記憶領域プールを構成する複数の実記憶領域のうちの、どの仮想記憶領域にも割り当てられていない未割り当ての実記憶領域であり、
前記仮想ボリュームは、仮想的な論理ボリュームであり、
前記実ボリュームは、前記ストレージシステムが備える一又は複数の物理的な記憶デバイスの記憶空間を基に形成された論理ボリュームであり、
前記計算機が、
使用対象から未使用対象に切り替わった仮想ボリュームを特定する特定部と、
特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行う解放／未解放選択部と、
前記解放／未解放選択の結果に従って、前記特定された仮想ボリュームに割り当てられている全ての実記憶領域を前記ストレージシステムが解放するか否かを制御するための解放／未解放指示を作成し、作成した解放／未解放指示を送信する解放／未解放指示部と
を備える計算機。
【請求項２】
全ての実記憶領域が解放されている仮想ボリュームであるか否かに基づいて、複数の仮想ボリュームから、割り当て対象とする仮想ボリュームを選択する仮想ボリューム選択部、を更に備える、
請求項１記載の計算機。
【請求項３】
前記割り当て対象とする仮想ボリュームは、以下の（Ａ）又は（Ｂ）の仮想ボリュームである、
（Ａ）マイグレーション元の論理ボリュームに記憶されているデータのマイグレーション先として割り当てる対象の仮想ボリューム、
（Ｂ）前記ストレージシステムにアクセス要求を発行する上位装置に対して割り当てる対象の仮想ボリューム、
請求項２記載の計算機。
【請求項４】
前記（Ａ）の仮想ボリュームとして選択される仮想ボリュームは、以下の（Ａ１）及び（Ａ２）の条件に適合する、
（Ａ１）割り当て済みの全ての実記憶領域が解放されていない、
（Ａ２）前記マイグレーション元の論理ボリュームの記憶容量以上の記憶容量を有する、
請求項３記載の計算機。
【請求項５】
前記（Ａ）の仮想ボリュームとして選択される仮想ボリュームは、更に、以下の（Ａ３）及び／又は（Ａ４）の条件に適合する、
（Ａ３）前記マイグレーション元の論理ボリュームのボリューム性能になるべく近いボリューム性能を有する、
（Ａ４）使用対象から未使用対象に切り替わった時刻が最も古い、
請求項４記載の計算機。
【請求項６】
或る論理ボリュームについての前記ボリューム性能は、前記或る論理ボリュームについての複数のレスポンスタイムを基に算出された値であり、
前記或る論理ボリュームについてのレスポンスタイムは、前記或る論理ボリュームを指定した要求を発行してから応答を受けるまでにかかった時間長である、
請求項５記載の計算機。
【請求項７】
前記仮想ボリューム選択部は、アクセス頻度が低い上位装置に割り当てる仮想ボリュームを選択する場合、割り当て済みの全ての実記憶領域が解放されている仮想ボリュームを優先的に選択し、アクセス頻度が高い上位装置に割り当てる仮想ボリュームを選択する場合、割り当て済みの全ての実記憶領域が解放されていない仮想ボリュームを優先的に選択する、
請求項３記載の計算機。
【請求項８】
前記仮想ボリューム選択部は、自動選択かユーザ選択であるかを判断し、自動選択の場合、全ての実記憶領域が解放されている仮想ボリュームであるか否かに基づいて、複数の仮想ボリュームから、割り当て対象とする仮想ボリュームを選択し、ユーザ選択の場合、各仮想ボリュームについて全ての実記憶領域が解放されているか否かに関するステータスを表示し、前記各仮想ボリュームのステータスの表示に応答して管理者から指定された仮想ボリュームを、割り当て対象とする仮想ボリュームとして選択する、
請求項２乃至７のうちのいずれか１項に記載の計算機。
【請求項９】
前記解放／未解放選択部は、前記特定された仮想ボリュームの未使用対象に切り替わる前における使用状況に基づいて、前記特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行う、
請求項１乃至８のうちのいずれかに１項に記載の計算機。
【請求項１０】
前記解放／未解放選択部は、特定された仮想ボリュームに割り当てられている実記憶領域を有した実ボリュームの性能を基に、前記特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行う、
請求項１乃至９のうちのいずれかに１項に記載の計算機。
【請求項１１】
前記解放／未解放選択部は、特定された仮想ボリュームの性能を基に、前記特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行う、
請求項１乃至１０のうちのいずれかに１項に記載の計算機。
【請求項１２】
前記解放／未解放選択部は、未割り当ての実記憶領域の数を基に、前記特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行う、
請求項１乃至１１のうちのいずれかに１項に記載の計算機。
【請求項１３】
アクセス要求から特定された仮想記憶領域に実記憶領域を割り当てる機能を有したストレージシステムの制御方法であって、
前記アクセス要求から特定された仮想記憶領域は、仮想ボリュームを構成する複数の仮想記憶領域のうちの一つであり、
前記割り当てられた実記憶領域は、一又は複数の実ボリュームで構成された記憶領域プールを構成する複数の実記憶領域のうちの、どの仮想記憶領域にも割り当てられていない未割り当ての実記憶領域であり、
前記仮想ボリュームは、仮想的な論理ボリュームであり、
前記実ボリュームは、前記ストレージシステムが備える一又は複数の物理的な記憶デバイスの記憶空間を基に形成された論理ボリュームであり、
前記制御方法が、
使用対象から未使用対象に切り替わった仮想ボリュームを特定し、
特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行い、
前記解放／未解放選択の結果に従って、前記特定された仮想ボリュームに割り当てられている全ての実記憶領域を前記ストレージシステムが解放するか否かを制御する、
制御方法。
【請求項１４】
アクセス要求から特定された仮想記憶領域に実記憶領域を割り当てる機能を有したストレージシステムを制御するためのコンピュータプログラムであって、
前記アクセス要求から特定された仮想記憶領域は、仮想ボリュームを構成する複数の仮想記憶領域のうちの一つであり、
前記割り当てられた実記憶領域は、一又は複数の実ボリュームで構成された記憶領域プールを構成する複数の実記憶領域のうちの、どの仮想記憶領域にも割り当てられていない未割り当ての実記憶領域であり、
前記仮想ボリュームは、仮想的な論理ボリュームであり、
前記実ボリュームは、前記ストレージシステムが備える一又は複数の物理的な記憶デバイスの記憶空間を基に形成された論理ボリュームであり、
前記コンピュータプログラムが
使用対象から未使用対象に切り替わった仮想ボリュームを特定し、
特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行い、
前記解放／未解放選択の結果に従って、前記特定された仮想ボリュームに割り当てられている全ての実記憶領域を前記ストレージシステムが解放するか否かを制御するための解放／未解放指示を作成し、作成した解放／未解放指示を送信する、
ことをコンピュータに実行させる、
コンピュータプログラム。
【請求項１５】
アクセス要求から特定された仮想記憶領域に実記憶領域を割り当てる機能を有したストレージシステムであって、
前記アクセス要求から特定された仮想記憶領域は、仮想ボリュームを構成する複数の仮想記憶領域のうちの一つであり、
前記割り当てられた実記憶領域は、一又は複数の実ボリュームで構成された記憶領域プールを構成する複数の実記憶領域のうちの、どの仮想記憶領域にも割り当てられていない未割り当ての実記憶領域であり、
前記仮想ボリュームは、仮想的な論理ボリュームであり、
前記実ボリュームは、前記ストレージシステムが備える一又は複数の物理的な記憶デバイスの記憶空間を基に形成された論理ボリュームであり、
前記ストレージシステムが、
使用対象から未使用対象に切り替わった仮想ボリュームを特定する特定部と、
特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行う解放／未解放選択部と、
前記解放／未解放選択の結果に従って、前記特定された仮想ボリュームに割り当てられている全ての実記憶領域を前記ストレージシステムが解放するか否かを制御する解放／未解放制御部と
を備えるストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想ボリュームを構成する仮想記憶領域に実記憶領域を割り当てる機能を有したストレージシステムの制御に関する。
【背景技術】
【０００２】
仮想的な論理ボリュームである仮想ボリュームを構成する仮想記憶領域に実記憶領域を動的に割り当てる技術が知られている（例えば特許文献１）。この技術は、Thin Provisioning技術と呼ばれることもあり、上記仮想ボリュームは、Thin Provisioning volumeと呼ばれることもある。Thin Provisioning技術によれば、ストレージシステムが、記憶領域プールを有する。記憶領域プールは、一又は複数の実ボリュームの集合であり、複数の実記憶領域で構成されている。各実記憶領域は、実ボリュームの構成要素である。実ボリュームは、ストレージシステムが備える一又は複数の物理的な記憶デバイス（例えばハードディスク或いはフラッシュメモリ）の記憶空間を基に形成された論理ボリュームである。ストレージシステムは、上位装置（例えばホスト計算機）から、仮想ボリュームにおける仮想記憶領域を指定した書込み要求を受けたときに、複数の未割り当ての実記憶領域から実記憶領域を選択し、選択した実記憶領域を、上記書込み要求で指定されている仮想記憶領域に割り当てる。また、ストレージシステムは、実記憶領域が割り当て済みの仮想記憶領域について、実記憶領域の割り当てが不要になった場合に、割り当て済みの実記憶領域を解放する。
【０００３】
【特許文献１】特開２００５-１１３１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
仮想ボリュームが使用対象から未使用対象に切り替わったからといって、直ちにその仮想ボリュームに割り当て済みの全ての実記憶領域を解放することは、アクセス性能について問題となることがある。問題となり得るケースとしては、例えば、仮想ボリュームをマイグレーション先とするケースや、仮想ボリュームを上位装置に割り当てるケースが考えられる。以下、各ケースについて、説明する。なお、以下の説明では、記憶領域プールの構成要素としての実体のある論理ボリュームを「実ボリューム」と言い、記憶領域プールの構成要素ではない実体のある論理ボリュームを「通常ボリューム」と言う。
【０００５】
（１）仮想ボリュームをマイグレーション先とするケース。
【０００６】
マイグレーションとは、プライマリの論理ボリューム（以下、ＰＶＯＬ）からセカンダリの論理ボリューム（以下、ＳＶＯＬ）に対するデータのマイグレーションのことである。ＰＶＯＬがマイグレーション元であり、ＳＶＯＬがマイグレーション先である。ＰＶＯＬとＳＶＯＬは、別々のストレージシステムに存在しても良いし、一つのストレージシステムに存在しても良い。マイグレーションが行われると、上位装置とアクセス先とを結ぶアクセスパスが変わる。具体的には、マイグレーション実行前は、上位装置のアクセス先となる論理ボリュームは、ＰＶＯＬであったが、マイグレーション完了後は、上位装置のアクセス先となる論理ボリュームは、ＳＶＯＬである。つまり、データの移動だけでなく、アクセスパスの変更も、マイグレーションの処理に含まれる。
【０００７】
マイグレーション先（つまりＳＶＯＬ）を、実記憶領域が一つも割り当てられていない仮想ボリュームとした場合、データ要素のマイグレーションする都度に、そのデータ要素のマイグレーション先となる仮想記憶領域に実記憶領域を割り当てる必要がある。このため、マイグレーション先が通常ボリュームであることに比べ、マイグレーションの際のアクセス性能（例えば速度）が低下するという問題がある。
【０００８】
この問題について、図２５Ａ乃至図２５Ｃを参照して一例を説明すると、以下の通りである。例えば、図２５Ａに示すように、仮想ボリューム７１０２の仮想記憶領域（Ｂ）に、実ボリューム７１０３における実記憶領域（ｂ）が既に割り当て済みである。この状態において、図２５Ｂに示すように、仮想記憶領域（Ｂ）から通常ボリューム７１０４における記憶領域（Ｃ）へのデータのマイグレーションが完了した場合、実記憶領域（ｂ）の仮想記憶領域（Ｂ）への割り当ては解除される（つまり、実記憶領域領域（ｂ）が解放される）。その後、図２５Ｃに示すように、通常ボリューム７１０５の記憶領域（Ｄ）に記憶されているデータ要素を仮想ボリューム７１０２の仮想記憶領域（Ｂ）にマイグレーションすることになった場合、仮想記憶領域（Ｂ）に割り当てられていた実記憶領域（ｂ）は既に解放されているため、再度、仮想記憶領域（Ｂ）に未割り当ての実記憶領域を割り当てる必要がある。
【０００９】
（２）仮想ボリュームを上位装置に割り当てるケース。
【００１０】
上位装置に割り当てられる仮想ボリュームに実記憶領域が一つも割り当てられていない場合、上位装置からその仮想ボリュームを指定した書込み要求がある都度に、その書込み要求で指定されている仮想記憶領域に実記憶領域を割り当てる必要がある。このため、書込み性能（例えば速度）が低下するという問題がある。
【００１１】
この問題について、図２６Ａ及び図２６Ｂを参照して一例を説明すると、以下の通りである。例えば、図２６Ａに示すように、第一のホスト７２０１に仮想ボリューム７２０２が割り当てられており、仮想ボリューム７２０２の仮想記憶領域（Ａ）に、実ボリューム７２０３の実記憶領域（ａ）が割り当て済みである。ここで、図２６Ｂに示すように、第一のホスト７２０１に対する仮想ボリューム７２０２の割り当てが解除された場合、ストレージシステムによって、実記憶領域（ａ）が解放される。その後、第二のホスト７２０４に仮想ボリューム７２０２が割り当てられたとする。仮想ボリューム７２０２には一つも実記憶領域が割り当てられていない。このため、ストレージシステムは、仮想記憶領域（Ａ）を指定した書込み要求を第二のホスト７２０４から受けた場合には、再度、仮想記憶領域（Ａ）に未割り当ての実記憶領域を割り当てる必要がある。
【００１２】
以上のように、仮想ボリュームが使用対象から未使用対象に切り替わったからといって、直ちにその仮想ボリュームに割り当て済みの全ての実記憶領域を解放することは、アクセス性能について問題となることがある。だからといって、未使用対象になった仮想ボリュームに実記憶領域をいつまでも割り当てたままにしておくと、未割り当ての実記憶領域が不足するおそれがある。
【００１３】
従って、本発明の目的は、アクセス性能の低下を防ぐことと、未割り当ての実記憶領域の不足を防ぐことの両方を行えるようにすることにある。
【００１４】
本発明の他の目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【００１５】
使用対象から未使用対象に切り替わった仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行う。その解放／未解放選択の結果に従って、特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かを制御する。
【発明を実施するための最良の形態】
【００１６】
実施形態１では、アクセス要求から特定された仮想記憶領域に実記憶領域を割り当てる機能を有したストレージシステムを管理する計算機が、特定部と、解放／未解放選択部と、解放／未解放指示部とを備える。前記アクセス要求から特定された仮想記憶領域は、仮想ボリュームを構成する複数の仮想記憶領域のうちの一つである。前記割り当てられた実記憶領域は、一又は複数の実ボリュームで構成された記憶領域プールを構成する複数の実記憶領域のうちの、どの仮想記憶領域にも割り当てられていない未割り当ての実記憶領域である。前記仮想ボリュームは、仮想的な論理ボリュームである。前記実ボリュームは、前記ストレージシステムが備える一又は複数の物理的な記憶デバイスの記憶空間を基に形成された論理ボリュームである。前記特定部は、使用対象から未使用対象に切り替わった仮想ボリュームを特定する。前記解放／未解放選択部は、特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行う。前記解放／未解放指示部は、前記解放／未解放選択の結果に従って、前記特定された仮想ボリュームに割り当てられている全ての実記憶領域を前記ストレージシステムが解放するか否かを制御するための解放／未解放指示を作成し、作成した解放／未解放指示を送信する。
【００１７】
「使用対象から未使用対象に切り替わった仮想ボリューム」としては、例えば、論理ボリューム間のデータのマイグレーションにおけるマイグレーション元の仮想ボリュームであって、マイグレーションが完了した場合の仮想ボリュームを採用することができる。また、例えば、上位装置に対する割り当てが解除された仮想ボリュームを採用することができる。上位装置としては、例えば、ホスト計算機や別のストレージシステムなどの種々の装置を採用することができる。
【００１８】
実施形態２では、実施形態１において、計算機が、仮想ボリューム選択部を更に備える。前記仮想ボリューム選択部は、全ての実記憶領域が解放されている仮想ボリュームであるか否かに基づいて、複数の仮想ボリュームから、割り当て対象とする仮想ボリュームを選択する。
【００１９】
実施形態３では、実施形態２において、前記割り当て対象とする仮想ボリュームは、以下の（Ａ）又は（Ｂ）の仮想ボリュームである。
（Ａ）マイグレーション元の論理ボリュームに記憶されているデータのマイグレーション先として割り当てる対象の仮想ボリューム、
（Ｂ）前記ストレージシステムにアクセス要求を発行する上位装置に対して割り当てる対象の仮想ボリューム。
【００２０】
実施形態４では、実施形態３において、前記（Ａ）の仮想ボリュームとして選択される仮想ボリュームは、以下の（Ａ１）及び（Ａ２）の条件に適合する。
（Ａ１）割り当て済みの全ての実記憶領域が解放されていない、
（Ａ２）前記マイグレーション元の論理ボリュームの記憶容量以上の記憶容量を有する。
【００２１】
実施形態５では、実施形態４において、前記（Ａ）の仮想ボリュームとして選択される仮想ボリュームは、更に、以下の（Ａ３）及び／又は（Ａ４）の条件に適合する。
（Ａ３）前記マイグレーション元の論理ボリュームのボリューム性能になるべく近いボリューム性能を有する、
（Ａ４）使用対象から未使用対象に切り替わった時刻が最も古い。
【００２２】
実施形態６では、実施形態５において、或る論理ボリュームについての前記ボリューム性能は、前記或る論理ボリュームについての複数のレスポンスタイムを基に算出された値（例えば、平均値、或いは、複数のレスポンスタイムを要素とした他の計算式によって算出された値）である。前記或る論理ボリュームについてのレスポンスタイムは、前記或る論理ボリュームを指定した要求を発行してから応答を受けるまでにかかった時間長である。
【００２３】
実施形態７では、実施形態３において、前記仮想ボリューム選択部は、アクセス頻度が低い上位装置に割り当てる仮想ボリュームを選択する場合、割り当て済みの全ての実記憶領域が解放されている仮想ボリュームを優先的に選択し、アクセス頻度が高い上位装置に割り当てる仮想ボリュームを選択する場合、割り当て済みの全ての実記憶領域が解放されていない仮想ボリュームを優先的に選択する。
【００２４】
実施形態８では、実施形態２乃至７のうちのいずれかにおいて、前記仮想ボリューム選択部は、自動選択かユーザ選択であるかを判断する。自動選択の場合、前記仮想ボリューム選択部は、全ての実記憶領域が解放されている仮想ボリュームであるか否かに基づいて、複数の仮想ボリュームから、割り当て対象とする仮想ボリュームを選択する。ユーザ選択の場合、前記仮想ボリューム選択部は、各仮想ボリュームについて全ての実記憶領域が解放されているか否かに関するステータスを表示し、前記各仮想ボリュームのステータスの表示に応答して管理者から指定された仮想ボリュームを、割り当て対象とする仮想ボリュームとして選択する。
【００２５】
実施形態９では、実施形態１乃至８のうちのいずれかにおいて、前記解放／未解放選択部は、前記特定された仮想ボリュームの未使用対象に切り替わる前における使用状況に基づいて、前記特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行う。
【００２６】
実施形態１０では、実施形態１乃至９のうちのいずれかにおいて、前記解放／未解放選択部は、特定された仮想ボリュームに割り当てられている実記憶領域を有した実ボリュームの性能を基に、前記特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行う。
【００２７】
実施形態１１では、実施形態１乃至１０のうちのいずれかにおいて、前記解放／未解放選択部は、特定された仮想ボリュームの性能を基に、前記特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行う。
【００２８】
実施形態１２では、実施形態１乃至１１のうちのいずれかにおいて、前記解放／未解放選択部は、未割り当ての実記憶領域の数を基に、前記特定された仮想ボリュームに割り当てられている全ての実記憶領域を解放するか否かの解放／未解放選択を行う。
【００２９】
実施形態１３では、ストレージシステムが、前記特定部と、前記解放／未解放選択部と、解放／未解放制御部とを備える。前記解放／未解放制御部は、前記解放／未解放選択の結果に従って、前記特定された仮想ボリュームに割り当てられている全ての実記憶領域を前記ストレージシステムが解放するか否かを制御する。
【００３０】
上述した特定部、解放／未解放選択部、解放／未解放指示部、仮想ボリューム選択部、及び解放／未解放制御部のうちの少なくとも一つは、ハードウェア、コンピュータプログラム又はそれらの組み合わせ（例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること）により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶領域が使用されてもよい。また、コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【００３１】
以下、図面を参照しながら本発明の一実施例について詳細に説明する。その際、ＣＰＵがコンピュータプログラムを読み込んで実行することにより行われる処理の主体を、説明を分かりやすくするために、ＣＰＵではなくコンピュータプログラムとする場合がある。
【００３２】
図１は、本発明の一実施例に係る計算機システムの構成例を示す。
【００３３】
第一の通信ネットワーク、例えばＳＡＮ（Storage
Area Network）１０９に、複数（又は一つ）のホスト計算機１０１と、複数（又は一つ）のストレージシステム１２１が接続されている。また、第二の通信ネットワーク、例えばＬＡＮ（Local Area Network）１３１に、複数（又は一つ）のホスト計算機１０１と、複数（又は一つ）のストレージシステム１２１と、管理サーバ１１１とが接続されている。第一の通信ネットワークと第二の通信ネットワークのように別れておらず一体となっていても良い。
【００３４】
ホスト計算機１０１は、例えば、ＣＰＵ（Central Processing Unit）１０３、メモリ１０５及びＨＢＡ（ホストバスアダプタ）１０７等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。ホスト計算機１０１は、ストレージシステム１２１から提供される論理ボリュームを指定したアクセス要求（例えば書込み要求或いは読出し要求）を発行することで、その論理ボリュームにアクセスすることができる。
【００３５】
管理サーバ１１１は、例えば、ＣＰＵ（Central Processing Unit）１１３及びメモリ１１５等の情報処理資源を備えたコンピュータ装置である。管理サーバ１１１は、仮想ボリュームに割り当てられている全ての実記憶領域を解除するか否かの指示（所望の仮想ボリュームを指定した指示）をストレージシステム１２１に送信することで、所望の仮想ボリュームに割り当てられている全ての実記憶領域を解除するか否かを制御することができる。また、管理サーバ１１１は、管理サーバ１１１が備える表示装置（図示せず）に情報を表示する、或いは、管理サーバ１１１と通信可能な遠隔の端末に情報を送信することでその情報をその遠隔の端末に表示させる等の方法で、所望の情報を表示することができる。
【００３６】
ストレージシステム１２１は、物理記憶デバイス群１３０と、ストレージコントローラ１２３とを備える。物理記憶デバイス群１３０は、複数の物理的な不揮発性の記憶デバイス（例えばハードディスクやフラッシュメモリ）の集合である。ストレージコントローラ１２３によって、物理記憶デバイス群１３０の記憶空間を基に形成された実体のある論理ボリューム、及び／又は、実体のない仮想的な論理ボリューム（仮想ボリューム）がホスト計算機１０１に提供される。以下、実体のある論理ボリュームのうち、記憶領域プール１２７を構成する論理ボリュームを、「実ボリューム」と呼び、記憶領域プール１２７を構成しない論理ボリュームを、「通常ボリューム」と呼ぶ。ストレージコントローラ１２３は、通常ボリューム１２５Ｎにおける記憶領域を指定した書込み要求をホスト計算機１０１から受けた場合、その記憶領域に、書込み対象のデータ要素を書込む。一方、ストレージコントローラ１２３は、仮想ボリューム１２５Ｖにおける仮想記憶領域を指定した書込み要求をホスト計算機１０１から受けた場合、図２４Ａを参照して説明する方法で、書込み対象のデータ要素の書込みを行う。
【００３７】
すなわち、ストレージコントローラ１２３は、記憶領域プール１２７に属している複数の実ボリューム１２９から、未割り当ての実記憶領域１１２９を選択し、選択した実記憶領域１１２９を、受信した書込み要求から特定される、仮想ボリューム１２５Ｖにおける仮想記憶領域１１２５に割り当てる。そして、ストレージコントローラ１２３は、割り当てた実記憶領域１１２９に、書込み対象のデータ要素を書込む。以下の説明では、便宜上、割り当て単位となる記憶領域を「ページ」と称する。具体的には、割り当て元である実記憶領域（実ボリューム１２９の構成要素）を、「実ページ」と称し、割り当て先である仮想記憶領域（仮想ボリューム１２５Ｖの構成要素）を、「仮想ページ」と称する。実ページと仮想ページはそれぞれ同じサイズであり、一つの仮想ページに対して一つの実ページが割り当てられる。
【００３８】
どの実ページがどの仮想ページに割り当てられているかを表すマッピングテーブル１２３３５（図２４Ｂ参照）が、ストレージコントローラ１２３によって、或る実ページを或る仮想ページに割り当てられたことを表す情報に更新されることにより、或る実ページが或る仮想ページに割り当てられたことになる。例えば、マッピングテーブル１２３３５において、仮想ページＩＤ“ＶＰ＃１”に、実ページＩＤ“ＲＶＯＬ＃３，ＲＰ＃１２”が対応付けられた場合、仮想ページ（ＶＰ＃１）に、実ボリューム（ＲＶＯＬ＃３）における実ページ（ＲＰ＃１２）が割り当てられたことになる。
【００３９】
図２は、ストレージシステム１２１の構成例を示す。
【００４０】
ストレージコントローラ１２３は、ＣＰＵ１２３１、メモリ１２３３、複数のポート１２３５及びＮＩＣ（Network Interface Card）１２３４等を備えた装置（例えば回路）である。
【００４１】
ポート１２３５は、ＳＡＮ１０９を介してホスト計算機１０１或いは別のストレージシステム１２１と所定のプロトコル（例えばＦＣ（Fibre Channel））で通信するための通信インタフェースである。
【００４２】
ＮＩＣ１２３４は、ＬＡＮ１３１に接続される通信インタフェースである。
【００４３】
メモリ１２３３は、実体のある論理ボリュームに対して読み書きされるデータ要素を一時的に記憶するキャッシュとして使用される。また、メモリ１２３３は、ＣＰＵ１２３１に実行されるコンピュータプログラムとして、例えば、領域解放プログラム１２３３１、マイグレーションプログラム１２３３２、ボリューム初期割り当てプログラム１２３３３、ボリューム切り離しプログラム１２３３４、及び、アクセス要求処理プログラム１２３３６を記憶する。また、メモリ１２３３は、仮想ボリューム１２５Ｖ毎に、前述したマッピングテーブル１２３３５（図２４Ｂ参照）を記憶する。
【００４４】
領域解放プログラム１２３３１は、管理サーバ１１１から、対象とする仮想ボリュームの指定と共に呼び出された場合に、その指定された仮想ボリュームに割り当てられている全ての実ページを解放する。具体的には、領域解放プログラム１２３３１は、指定された仮想ボリュームに対応したマッピングテーブル１２３３５の実ページＩＤの全ての欄を、未割り当てを意味する値（例えば“Ｎｕｌｌ”）に変更する。
【００４５】
マイグレーションプログラム１２３３２は、論理ボリューム間のデータのマイグレーションを実行する。マイグレーション元の論理ボリューム（マイグレーション元ボリューム）及びマイグレーション先の論理ボリューム（マイグレーション先ボリューム）は、仮想ボリューム１２５Ｖであっても通常ボリューム１２５Ｎであっても良い。また、マイグレーション元ボリューム及びマイグレーション先ボリュームは、一つのストレージシステム１２１に存在しても良いし、別々のストレージシステム１２１に存在しても良い。
【００４６】
ボリューム初期割り当てプログラム１２３３３は、管理サーバ１１１からのボリューム割り当て指示に従い、そのボリューム割り当て指示で指定されているホスト計算機１０１に対して、そのボリューム割り当て指示で指定されている論理ボリューム（仮想ボリューム１２５Ｖ或いは通常ボリューム１２５Ｎ）を割り当てる。
【００４７】
ボリューム切り離しプログラム１２３３４は、管理サーバ１１１からのボリューム切り離し指示に従い、そのボリューム切り離し指示で指定されているホスト計算機１０１に対して、そのボリューム切り離し指示で指定されている論理ボリューム（仮想ボリューム１２５Ｖ或いは通常ボリューム１２５Ｎ）を切離す。
【００４８】
アクセス要求処理プログラム１２３３６は、ホスト計算機１０１からのアクセス要求に従い、そのアクセス要求で指定されている論理ボリュームにアクセスする。例えば、アクセス要求が書込み要求であり、その書込み要求で指定されている論理ボリュームが仮想ボリューム１２５Ｖの場合、アクセス要求処理プログラム１２３３６は、書込み対象のデータ要素をメモリ１２３３に一時記憶させ、仮想ページに対する実ページの割り当てを実行し（マッピングテーブル１２３３５を更新し）、割り当てた実ページに、一時記憶させたデータ要素を書き込む。また、例えば、アクセス要求が読出し要求であり、その読出し要求で指定されている論理ボリュームが仮想ボリューム１２５Ｖの場合、アクセス要求処理プログラム１２３３６は、マッピングテーブル１２３３５を参照することで、その読出し要求から特定される仮想ページに割り当てられている実ページを特定する。そして、アクセス要求処理プログラム１２３３６は、特定した実ページからデータ要素を読み出してメモリ１２３３に一時記憶させ、一時記憶されたデータ要素を、ホスト計算機１０１に送信する。
【００４９】
アクセス要求処理プログラム１２３３６と同様の処理を、マイグレーションプログラム１２３３２も行うことができる。具体的には、例えば、マイグレーションプログラム１２３３２は、マイグレーション元の仮想ボリュームからデータ要素を読み出すときは、マッピングテーブル１２３３５を参照することで各仮想ページに割り当てられている各実ページを特定し、特定された各実ページから各データ要素を読み出す。また、例えば、マイグレーションプログラム１２３３２は、マイグレーション先の仮想ボリュームにデータ要素を書き込むときは、マイグレーション先の各仮想ページに各実ページを割り当て（マッピングテーブル１２３３５を更新し）、割り当てた各実ページに、各データ要素を書き込む。
【００５０】
図３は、管理サーバ１１１の構成例を示す。
【００５１】
管理サーバ１１１のメモリ１１５には、ＣＰＵ１１３に実行されるコンピュータプログラムとして、レスポンスタイムの計測を行うレスポンスタイム計測プログラム１１５１、アクセス頻度の計測を行うアクセス頻度計測プログラム１１５２、各種テーブルを管理サーバ１１１内の図示しない補助記憶装置（例えばＨＤＤ）に格納する入出力プログラム１１５３、実ページの解放／未解放の選択を行う領域解放判断プログラム１１５４、どの論理ボリュームを割り当てるかを判断するボリューム割り当て判断プログラム１１５５、マイグレーションを制御するマイグレーション制御プログラム１１５６、どの論理ボリュームを初めにホスト計算機１０１に割り当てるかを制御するボリューム初期割り当て制御プログラム１１５７、論理ボリュームの切り離しを制御するボリューム切り離し制御プログラム１１５８、或る時点からの時間を監視する時間監視サブプログラム１１６１、ストレージシステム１２１内の領域解放プログラム１２３３１を呼び出すことで実ページの解放を実行させる領域解放制御サブプログラム１１６２、割り当て可能な論理ボリューム（例えば仮想ボリューム）を割り当て対象として選択する自動選択サブプログラム１１６３、割り当て可能なマイグレーション先ボリュームを選択するマイグレーション先選択サブプログラム１１６４、及び、初めに割り当て可能な論理ボリュームを選択するボリューム初期割り当て制御サブプログラム１１６５を記憶する。各コンピュータプログラム１１５１乃至１１５８及び１１６１乃至１１６５の動作については、後に、図１２乃至図２３を参照して詳細に説明する。
【００５２】
また、メモリ１１５には、各種テーブル１１５９、具体的には、図４乃至図１１に示すように、ユーザによって設定された値を管理するためのユーザ設定値テーブル１１５９１、各仮想ボリュームや各通常ボリュームを管理するためのボリューム管理テーブル１１５９２、どの仮想ボリュームにどの実ボリュームが割り当たっているかを管理するための実ボリューム管理テーブル１１５９３、各種計測の開始時刻及び終了時刻を管理するための計測時刻テーブル１１５９４、アクセス頻度の履歴を蓄積するためのアクセス頻度蓄積テーブル１１５９５、アクセス頻度平均値を管理するためのアクセス頻度テーブル１１５９６、レスポンスタイムの履歴を蓄積するためのレスポンスタイム蓄積テーブル１１５９７、及び、レスポンスタイム平均値を管理するためのレスポンスタイムテーブル１１５９８が記憶される。以下、それらのテーブル１１５９１乃至１１５９８について説明する。なお、以下の説明では、識別子として、番号が使用されることがあるが、番号に限らず、符号やアルファベットなど他種のコードを使用することができる。
【００５３】
図４は、ユーザ設定値テーブル１１５９１の構成例を示す。
【００５４】
ユーザ設定値テーブル１１５９１には、仮想ボリューム毎に、ストレージシステム番号（仮想ボリュームを有するストレージシステムの番号）、ボリューム番号（仮想ボリュームの番号）、ユーザ設定ステータス及び解放時間を表す情報が記録される。
【００５５】
ユーザ設定ステータスとは、仮想ボリュームに割り当て済みの全ての実ページの解放の制御に関するステータスであって、ユーザによって設定されたステータスである。ステータスとして設定される値の種類としては、例えば、“即解放”、“一定時間後解放”、“再利用”及び“自動判断”の４種類がある。ユーザ設定ステータス“即解放”とは、仮想ボリュームが使用対象から未使用対象に切り替わったときに即座にその仮想ボリュームに割り当て済みの全ての実ページを解放することを意味するステータスである。ユーザ設定ステータス“一定時間後解放”とは、仮想ボリュームが使用対象から未使用対象に切り替わってから一定時間後にその仮想ボリュームに割り当て済みの全ての実ページを解放することを意味するステータスである。ここで、一定時間とは、固定値であっても良いし、解放時間としてユーザによって設定された時間（例えば１０分後）であっても良い。ユーザ設定ステータス“再利用”とは、仮想ボリュームが使用対象から未使用対象に切り替わってもその仮想ボリュームに割り当て済みの全ての実ページを解放しない（実ページが割り当たっている状態を維持する）ことを意味するステータスである。従って、例えば、未使用対象から使用対象に切り替わった仮想ボリュームの、実ページが割り当てられている仮想ページが書込み先の場合、実ページをわざわざ割り当てる必要がなくなる。つまり、未使用対象に切り替わる前に割り当て済みであった実ページが、未使用対象から使用対象に切り替わった後に、再び、利用される。ユーザ設定ステータス“自動判断”とは、割り当て済みの実ページの解放／未解放をユーザが指定するのではなく、領域解放判断プログラム１１５４の判断にまかせることを意味するステータスである。
【００５６】
図５は、ボリューム管理テーブル１１５９２の構成例を示す。
【００５７】
ボリューム管理テーブル１１５９２には、仮想ボリュームや通常ボリューム毎に、ストレージシステム番号（論理ボリュームを有するストレージシステムの番号）、ボリューム番号（論理ボリュームの番号）、種別（論理ボリュームの種別）、容量（論理ボリュームの記憶容量）、要求時刻（領域解放判断プログラム１１５４が呼び出された時刻）、及びボリュームステータスが記録される。種別としては、例えば、仮想ボリュームを意味する“仮想”、及び、通常ボリュームを意味する“通常”がある。また、ボリュームステータスとしては、例えば、割り当て済みの全ての実ページが割り当てたままとされることを意味する“再利用”、割り当て可能であることを意味する“割り当て”、割り当て済みの全ての実ページが解放されることを意味する“解放”、マイグレーション先として割り当てられたことを意味する“マイグレーション”、ホスト計算機に初めに割り当てられたことを意味する“初期割り当て”、或る種の候補であること意味する“候補ｘ”（ｘは整数、例えば１，２或いは３）がある。ユーザ設定ステータスとの違いを言えば、例えば、ユーザ設定ステータスでは、“再利用”、“即解放”、及び“一定時間後解放”があるのに対し、ボリュームステータスでは、“再利用”及び“解放”がある。つまり、ボリュームステータスでは、“即解放”及び“一定時間後解放”のように、解放に関して複数種類のステータスがあるわけではない（勿論、複数種類あっても差し支えない）。
【００５８】
図６は、実ボリューム管理テーブル１１５９３の構成例を示す。
【００５９】
実ボリューム管理テーブル１１５９３には、仮想ボリューム毎に、ストレージシステム番号（仮想ボリュームを有するストレージシステムの番号）、及び、ボリューム番号（仮想ボリュームの番号）、実ボリューム番号（仮想ボリュームに割り当てられている実ページを有する実ボリュームの番号）が記録される。仮想ボリュームに割り当てられた実ページを有する実ボリュームが、その仮想ボリュームに割り当て済みの実ページを有していない場合に、このテーブル１１５９３において、その仮想ボリュームに対して、その実ボリュームの番号を記録したレコードが追加される。
【００６０】
図７は、計測時刻テーブル１１５９４の構成例を示す。
【００６１】
計測時刻テーブル１１５９４には、各種の計測対象について、種別（計測対象の種別）、開始（計測の開始時刻）、及び終了（計測の終了時刻）が記録される。種別としては、例えば、“レスポンスタイム”や“アクセス頻度”がある。レスポンスタイムとは、或るボリュームを指定したコマンドを発行してから応答が戻ってくるまでの時間長である。アクセス頻度とは、ホスト計算機が単位時間当たりに幾つのアクセス要求を発行したかである。
【００６２】
図８は、アクセス頻度蓄積テーブル１１５９５の構成例を示す。
【００６３】
アクセス頻度蓄積テーブル１１５９５は、ホスト計算機毎に用意されるテーブルである。アクセス頻度蓄積テーブル１１５９５には、例えば、ホスト識別子（このテーブル１１５９５に対応するホスト計算機の識別子）、及び、アクセス頻度（そのホスト計算機について計測されたアクセス頻度の履歴）が記録される。
【００６４】
図９は、アクセス頻度テーブル１１５９６の構成例を示す。
【００６５】
アクセス頻度テーブル１１５９６には、ホスト計算機１０１毎に、ホスト識別子（ホスト計算機１０１の識別子）、及びアクセス頻度平均値が記録される。
【００６６】
図１０は、レスポンスタイム蓄積テーブル１１５９７の構成例を示す。
【００６７】
レスポンスタイム蓄積テーブル１１５９７は、仮想ボリューム１２５Ｖや通常ボリューム１２５Ｎ毎に用意されるテーブルである。レスポンスタイム蓄積テーブル１１５９７には、例えば、ストレージシステム番号（このテーブル１１５９７に対応する仮想ボリューム１２５Ｖ或いは通常ボリューム１２５Ｎを有するストレージシステムの番号）、ボリューム番号（その仮想ボリューム１２５Ｖ或いは通常ボリューム１２５Ｎの番号）、種別（その仮想ボリューム１２５Ｖ或いは通常ボリューム１２５Ｎの種別）、及びレスポンスタイム（その仮想ボリューム１２５Ｖ或いは通常ボリューム１２５Ｎについて計測されたレスポンスタイムの履歴）が記録される。
【００６８】
図１１は、レスポンスタイムテーブル１１５９８の構成例を示す。
【００６９】
レスポンスタイムテーブル１１５９８には、仮想ボリューム１２５Ｖや通常ボリューム１２５Ｎ毎に、ストレージシステム番号、ボリューム番号、種別、及びレスポンスタイム平均値が記録される。
【００７０】
以下、本実施例で行われる処理の流れを説明する。その説明では、以下の２つのケース、
（ケース１）マイグレーション、
（ケース２）論理ボリュームの初期割り当て、
を代表的に例に採り説明する。また、各ケースでの処理の流れの説明において、各コンピュータプログラム１１５１乃至１１５８及び１１６１乃至１１６５の動作も説明する。
【００７１】
（ケース１）マイグレーション。
【００７２】
図１２は、マイグレーション制御プログラム１１５６の動作のフローチャートである。言い換えれば、図１２は、マイグレーションの処理の流れの概要を示す。
【００７３】
ステップ１０１で、マイグレーション制御プログラム１１５６が、一又は複数のストレージシステム１２１にある複数の仮想ボリューム１２５Ｖ及び／又は通常ボリューム１２５Ｎの中から、マイグレーション元ボリュームを決定する。マイグレーション元ボリュームは、手動と自動のどちらで決定されても良い。
【００７４】
ステップ１０２で、マイグレーション制御プログラム１１５６は、ボリューム割り当て判断プログラム１１５５を呼び出す。これにより、マイグレーション先ボリュームが選択される。
【００７５】
ステップ１０３で、マイグレーション制御プログラム１１５６は、マイグレーション先ボリュームを設定する。具体的には、マイグレーション制御プログラム１１５６が、マイグレーション元ボリュームからマイグレーション先ボリュームへのパスを設定する。
【００７６】
ステップ１０４で、マイグレーション制御プログラム１１５６が、マイグレーション元ボリューム（又はマイグレーション先ボリューム）を有するストレージシステム１２１に、マイグレーション元ボリュームの番号やマイグレーション先ボリュームの番号などを指定したマイグレーション指示を送信する。これにより、マイグレーション指示の送信先のストレージシステム１２１におけるマイグレーションプログラム１２３３２によって、マイグレーション元ボリュームに記憶されている全てのデータ要素が、マイグレーション元ボリュームからマイグレーション先ボリュームにコピーされる。マイグレーションプログラム１２３３２は、全てのデータ要素のコピーが完了したならば、完了を、管理サーバ１１１におけるマイグレーション制御プログラム１１５６に通知する。それにより、マイグレーション制御プログラム１１５６は、マイグレーション元ボリュームが使用対象から未使用対象に切り替わったことを認識することができる。
【００７７】
ステップ１０５で、マイグレーション制御プログラム１１５６は、ホスト計算機１０１からのアクセスパスによるアクセス先を、マイグレーション元ボリュームからマイグレーション先ボリュームに切り替える。これにより、以後、ホスト計算機１０１が、マイグレーション元ボリュームに代えてマイグレーション先ボリュームにアクセスすることになる。
【００７８】
ステップ１０６で、マイグレーション制御プログラム１１５６は、領域解放判断プログラム１１５４を呼び出す。その際、マイグレーション制御プログラム１１５６は、マイグレーション元ボリュームである仮想ボリューム１２５Ｖの番号を、呼び出した領域解放判断プログラム１１５４に通知する。これにより、マイグレーション元ボリュームが仮想ボリューム１２５Ｖである場合に、その仮想ボリューム１２５Ｖに割り当て済みの全ての実ページが、即座に解放されるか、一定時間後に解放されるか、或いは、一定時間経っても解放されずに割り当てられている状態が維持されるかが、決定される。
【００７９】
ステップ１０７で、マイグレーション制御プログラム１１５６が、マイグレーション元ボリュームをホスト計算機１０１から切離す。具体的には、マイグレーション制御プログラム１１５６は、マイグレーション元ボリュームを有するストレージシステム１２１に、ボリューム切り離し指示（例えば、ホスト計算機の識別子と、マイグレーション元ボリュームの番号とを含んだ指示）を送信する。これにより、そのストレージシステム１２１内のボリューム切り離しプログラム１２３３４によって、ホスト計算機１０１からのマイグレーション元ボリュームの切り離しが行われる。この後、そのマイグレーション元ボリュームは、他の用途に割り当て可能となる。例えば、そのマイグレーション元ボリュームは、他のホスト計算機１０１に新規に割り当てられたり、マイグレーション先ボリュームとして選択されたりし得るようになる。
【００８０】
図２０は、ボリューム割り当て判断プログラム１１５５の動作のフローチャートである。
【００８１】
ステップ１６１で、ボリューム割り当て判断プログラム１１５５は、ユーザ選択か自動選択か判断する。具体的には、例えば、ユーザ選択と自動選択のどちらにするかを表す情報が、管理サーバ１１１内の特定の記憶領域に記憶されており、その情報を参照することにより、ユーザ選択か自動選択かを判断することができる。ユーザ選択と自動選択のどちらにするかは、ストレージシステム１２１毎、ポート１２３５毎、或いはボリューム毎など、種々の単位で設定可能である。
【００８２】
ステップ１６１でユーザ選択と判断された場合、ステップ１６２が実行される。一方、ステップ１６１で自動選択と判断された場合、ステップ１６３が実行される。
【００８３】
ステップ１６２で、ボリューム割り当て判断プログラム１１５５は、仮想ボリュームリストを表示する。そのリストに記録されている複数のボリューム番号に対応した複数の仮想ボリュームのいずれかを、ユーザが選択することができる。なお、選択可能な各仮想ボリュームは、ボリューム管理テーブル１１５９２においてボリュームステータスが“再利用”又は“解放”の仮想ボリュームである。
【００８４】
ステップ１６３で、ボリューム割り当て判断プログラム１１５５は、自動選択サブプログラム１１６３を呼び出す。その際、ボリューム割り当て判断プログラム１１５５は、ボリューム割り当て判断プログラム１１５５の呼び出し元のプログラムが何であったかを、自動選択サブプログラム１１６３に通知する。
【００８５】
図２１は、自動選択サブプログラム１１６３の動作のフローチャートである。
【００８６】
ステップ１９１で、自動選択サブプログラム１１６３は、入出力プログラム１１５３を呼び出す。
【００８７】
ステップ１９２で、自動選択サブプログラム１１６３は、ボリューム割り当て判断プログラム１１５５の呼び出し元のプログラムがマイグレーション制御プログラム１１５６とボリューム初期割り当て制御プログラム１１５７のどちらであるかを判断する。ボリューム割り当て判断プログラム１１５５の呼び出し元のプログラムが、マイグレーション制御プログラム１１５６であれば、ステップ１９３が実行され、ボリューム初期割り当て制御プログラム１１５７であれば、ステップ１９５が実行される。本ケースは、マイグレーションなので、ここでは、ステップ１９３及び１９４について説明し、ステップ１９５及び１９６については、後述の「（ケース２）論理ボリュームの初期割り当て」で説明する。
【００８８】
ステップ１９３で、自動選択サブプログラム１１６３は、マイグレーション先選択サブプログラム１１６４を呼び出す。
【００８９】
ステップ１９４で、自動選択サブプログラム１１６３は、マイグレーション先選択サブプログラム１１６４によってボリュームステータスが“割り当て”とされた論理ボリュームを、マイグレーション先ボリュームに設定する。具体的には、自動選択サブプログラム１１６３は、その論理ボリュームのボリュームステータスを、“割り当て”から“マイグレーション先”に変更する。この論理ボリュームに対して、図１２のステップ１０３で、マイグレーション元ボリュームからのパスが張られる。
【００９０】
この後、ステップ１９１で呼び出された入出力プログラム１１５３によって、更新後のボリューム管理テーブル１１５９２が、管理サーバ１１１内の図示しない補助記憶装置に格納される。
【００９１】
図２２は、マイグレーション先選択サブプログラム１１６４の動作のフローチャートである。
【００９２】
マイグレーション先選択サブプログラム１１６４は、ボリューム管理テーブル１１５９２に記録されている各論理ボリュームについて、ステップ２０１乃至ステップ２１１の処理を行う。以下、図２２の説明において、ボリューム管理テーブル１１５９２における一レコードに対応した論理ボリュームを、「対象ボリューム」と言う。
【００９３】
ステップ２０１で、マイグレーション先選択サブプログラム１１６４は、マイグレーション元ボリュームの記憶容量と対象ボリュームの記憶容量が等しいかどうかを判断する。等しいとの判断になれば、ステップ２０２が実行され、等しくないとの判断になれば、ステップ２０６が実行される。
【００９４】
ステップ２０２で、マイグレーション先選択サブプログラム１１６４は、対象ボリュームのボリュームステータスが“再利用”か否かを判断する。“再利用”であると判断になれば、ステップ２０３が実行され、“再利用”ではないとの判断になれば、ステップ２０４が実行される。
【００９５】
ステップ２０３で、マイグレーション先選択サブプログラム１１６４は、対象ボリュームのボリュームステータスを“候補１”に設定する。
【００９６】
ステップ２０４で、マイグレーション先選択サブプログラム１１６４は、対象ボリュームのボリュームステータスが“解放”か否かを判断する。“解放”であると判断になれば、ステップ２０５が実行され、“解放”ではないとの判断になれば、ステップ２１１が実行される。
【００９７】
ステップ２０５で、マイグレーション先選択サブプログラム１１６４は、対象ボリュームのボリュームステータスを“候補３”に設定する。
【００９８】
ステップ２０６で、マイグレーション先選択サブプログラム１１６４は、マイグレーション元ボリュームの記憶容量よりも対象ボリュームの記憶容量が大きいかどうかを判断する。大きいとの判断になれば、ステップ２０７が実行され、大きくないとの判断になれば、ステップ２１１が実行される。
【００９９】
ステップ２０７で、マイグレーション先選択サブプログラム１１６４は、対象ボリュームのボリュームステータスが“再利用”か否かを判断する。“再利用”であると判断になれば、ステップ２０８が実行され、“再利用”ではないとの判断になれば、ステップ２０９が実行される。
【０１００】
ステップ２０８で、マイグレーション先選択サブプログラム１１６４は、対象ボリュームのボリュームステータスを“候補２”に設定する。
【０１０１】
ステップ２０９で、マイグレーション先選択サブプログラム１１６４は、対象ボリュームのボリュームステータスが“解放”か否かを判断する。“解放”であると判断になれば、ステップ２１０が実行され、“解放”ではないとの判断になれば、ステップ２１１が実行される。
【０１０２】
ステップ２１０で、マイグレーション先選択サブプログラム１１６４は、対象ボリュームのボリュームステータスを“候補３”に設定する。
【０１０３】
ステップ２１１で、マイグレーション先選択サブプログラム１１６４は、未処理ボリューム、すなわち、ボリューム管理テーブル１１５９２において未参照のレコードがあるかどうかを判断する。あるとの判断になれば、或る一つの未参照のレコードに対応した論理ボリュームについて、ステップ２０１が実行され、無いとの判断になれば、ステップ２１２が実行される。
【０１０４】
以上の処理によれば、ボリュームステータス“候補１”、“候補２”及び“候補３”は、それぞれ、以下のことを意味している。
候補１：対象ボリュームの記憶容量が、マイグレーション元ボリュームの記憶容量と等しく、且つ、対象ボリュームのボリュームステータスが“再利用”であった。
候補２：対象ボリュームの記憶容量が、マイグレーション元ボリュームの記憶容量より大きく、且つ、対象ボリュームのボリュームステータスが“再利用”であった。
候補３：対象ボリュームの記憶容量が、マイグレーション元ボリュームの記憶容量と等しいかそれより大きいかに関わらず、対象ボリュームのボリュームステータスが“解放”であった。
【０１０５】
ステップ２１２で、マイグレーション先選択サブプログラム１１６４は、ボリュームステータス“候補１”の論理ボリュームがあるかどうかを判断する。有るとの判断になれば、ステップ２１３が実行され、無いとの判断になれば、ステップ２１６が実行される。
【０１０６】
ステップ２１３で、マイグレーション先選択サブプログラム１１６４は、マイグレーション元ボリュームとレスポンスタイム平均値が等しい、ボリュームステータス“候補１”の論理ボリュームがあるかどうかを判断する。有るとの判断になれば、ステップ２１４が実行され、無いとの判断になれば、ステップ２１５が実行される。
【０１０７】
ステップ２１４で、マイグレーション先選択サブプログラム１１６４は、マイグレーション元ボリュームとレスポンスタイム平均値が等しく、且つ、“要求時刻”が最も古い、ボリュームステータス“候補１”の論理ボリュームについて、ボリュームステータスを、“候補１”から“割り当て”に変更する。
【０１０８】
ステップ２１５で、マイグレーション先選択サブプログラム１１６４は、マイグレーション元ボリュームのレスポンスタイム平均値にレスポンスタイム平均値が最も近い、ボリュームステータス“候補１”の論理ボリュームについて、ボリュームステータスを、“候補１”から“割り当て”に変更する。
【０１０９】
ステップ２１６で、マイグレーション先選択サブプログラム１１６４は、ボリュームステータス“候補２”の論理ボリュームがあるかどうかを判断する。有るとの判断になれば、ステップ２１７が実行され、無いとの判断になれば、ステップ２１８が実行される。
【０１１０】
ステップ２１７で、マイグレーション先選択サブプログラム１１６４は、マイグレーション元ボリュームと記憶容量が最も近い、ボリュームステータス“候補２”の論理ボリュームについて、ボリュームステータスを、“候補２”から“割り当て”に変更する。
【０１１１】
ステップ２１８で、マイグレーション先選択サブプログラム１１６４は、ボリュームステータス“候補３”の論理ボリュームがあるかどうかを判断する。有るとの判断になれば、ステップ２１９が実行され、無いとの判断になれば、ステップ２２０が実行される。
【０１１２】
ステップ２１９で、マイグレーション先選択サブプログラム１１６４は、ボリュームステータス“候補３”の一つの論理ボリュームについて、ボリュームステータスを、“候補３”から“割り当て”に変更する。
【０１１３】
ステップ２２０で、マイグレーション先選択サブプログラム１１６４は、ボリュームステータス“候補ｘ”（ここでは、ｘは１、２、３のいずれかの整数）を、ボリューム管理テーブル１１５９２から消去する。
【０１１４】
図２２のステップ２１４、２１５、２１７、又は２１９で、ボリュームステータス“割り当て”が設定された論理ボリュームについてのボリュームステータスが、図２１のステップ１９４で、“割り当て”から“マイグレーション先”に変更される。
【０１１５】
図１７は、領域解放判断プログラム１１５４の動作のフローチャートである。
【０１１６】
領域解放判断プログラム１１５４は、例えば、図１２のステップ１０６、或いは、後述の図１４のステップ１２１で呼び出される。その際、対象となる仮想ボリューム１２５Ｖの番号の通知を受ける。
【０１１７】
ステップ１５１で、領域解放判断プログラム１１５４は、呼びだされた時刻を、通知されたボリューム番号に対応する“要求時刻”の欄（ボリューム管理テーブル１１５９２における欄）に設定する。
【０１１８】
ステップ１５２で、領域解放判断プログラム１１５４は、対象仮想ボリュームに対応するユーザ設定ステータスを参照する。
【０１１９】
ステップ１５３で、領域解放判断プログラム１１５４は、対象仮想ボリュームについて、再利用、即解放及び一定時間後解放のいずれにするかを判断する。例えば、ユーザ設定ステータスが“再利用”、或いは、ユーザ設定ステータスが“自動選択”の場合に実行する自動選択処理で再利用が選択された場合、ステップ１５４が実行される。また、例えば、ユーザ設定ステータスが“即解放”、或いは、ユーザ設定ステータスが“自動選択”の場合に実行する自動選択処理で即解放が選択された場合、ステップ１５５が実行される。また、例えば、ユーザ設定ステータスが“一定時間後解放”、或いは、ユーザ設定ステータスが“自動選択”の場合に実行する自動選択処理で一定時間後解放が選択された場合、ステップ１５７が実行される。
【０１２０】
ステップ１５４で、領域解放判断プログラム１１５４は、対象仮想ボリュームを有するストレージシステム１２１を、ボリューム管理テーブル１１５９２を参照することにより特定する。そして、領域解放判断プログラム１１５４は、特定されたストレージシステム１２１に、対象仮想ボリュームの番号とステータス“再利用”とを通知する。また、領域解放判断プログラム１１５４は、対象仮想ボリュームのボリュームステータスを“再利用”に更新する。
【０１２１】
なお、特定されたストレージシステム１２１が、対象仮想ボリュームの番号とステータス“再利用”とを受信した場合、そのストレージシステム１２１において、対象仮想ボリュームに割り当て済みの全ての実ページが、解放されず、割り当てられたままとなる。なぜなら、領域解放プログラム１２３３１が呼び出されないためである。すなわち、対象仮想ボリュームに対応したマッピングテーブル１２３３５における、実ページに対応した全ての欄に、未割り当てを意味する値が設定されないからである。その結果、例えば、そのマッピングテーブル１２３３５が、図２４Ｂに例示するテーブル１２３３５である場合、図２４Ｃに例示するような更新が行われることなく、図２４Ｂに例示するテーブル１２３３５が維持される。
【０１２２】
ステップ１５５で、領域解放判断プログラム１１５４は、領域解放制御サブプログラム１１６２を呼び出す。その際、領域解放判断プログラム１１５４は、領域解放制御サブプログラム１１６２に、対象仮想ボリュームの番号を通知する。
【０１２３】
ステップ１５６で、領域解放判断プログラム１１５４は、対象仮想ボリュームのボリュームステータスを“解放”に更新する。
【０１２４】
ステップ１５７で、領域解放判断プログラム１１５４は、ステップ１５４と同じ処理を実行する。
【０１２５】
ステップ１５８で、領域解放判断プログラム１１５４は、時間監視サブプログラム１１６１を呼び出す。
【０１２６】
ところで、ユーザ設定ステータスが“自動選択”の場合に実行する自動選択処理では、例えば、以下の（Ａ）乃至（Ｄ）のうちのいずれかの方法、又は、（Ａ）乃至（Ｄ）のうちの二以上の組み合わせによる方法で、対象仮想ボリュームについて、再利用、即解放或いは一定時間後解放が決定される。
（Ａ）未使用対象に切り替わる前までの対象仮想ボリューム（例えば、マイグレーション完了前）に対するアクセス頻度を基に、再利用、即解放、或いは一定時間後解放が選択される。例えば、アクセス頻度が大であれば、再利用が選択され、アクセス頻度が中であれば、一定時間後解放が選択され、アクセス頻度が小であれば、即解放が選択される。未使用対象に切り替わる前までの各仮想ボリュームのアクセス頻度は、アクセス頻度計測プログラム１１５２によって取得される。ここで言うアクセス頻度は、一つの仮想ボリュームについて、計測された複数のアクセス頻度のうちの代表的な一つのアクセス頻度であっても良いし、それら複数のアクセス頻度のうちの二以上のアクセス頻度を基に計算された値（例えば平均値）であっても良い。これは、この（Ａ）に限らず、例えば、後述の図２３についても、同様である。
（Ｂ）対象仮想ボリュームに割り当てられている実ボリュームの性能を基に、再利用、即解放、或いは一定時間後解放が選択される。例えば、割り当てられている実ボリュームの性能（複数の実ボリュームが割り当てられている場合には、どの実ボリュームから幾つの実ページが割り当てられているかと実ボリュームそれ自体の性能とを基に算出される値）が高であれば、再利用が選択され、割り当てられている実ボリュームの性能が中であれば、一定時間後解放が選択され、割り当てられている実ボリュームの性能が低であれば、即解放が選択される。実ボリュームの性能は、例えば、実ボリュームの基になっている物理記憶デバイスの種類（例えばＦＣ（Fibre Channel）、ＡＴＡ（Advanced
Technology Attachment））等から定まる。
（Ｃ）対象仮想ボリュームの性能を基に、再利用、即解放、或いは一定時間後解放が選択される。例えば、対象仮想ボリュームの性能が高であれば、再利用が選択され、対象仮想ボリュームの性能が中であれば、一定時間後解放が選択され、対象仮想ボリュームの性能が低であれば、即解放が選択される。対象仮想ボリュームの性能とは、例えば、レスポンスタイムである。ここで言うレスポンスタイムは、一つの仮想ボリュームについて、計測された複数のレスポンスタイムのうちの代表的な一つのアクセス頻度であっても良いし、それら複数のレスポンスタイムのうちの二以上のレスポンスタイムを基に計算された値（例えば平均値）であっても良い。これは、この（Ｃ）に限らず、例えば、図２２のステップ２１４及び２１５の少なくとも一つについても、同様である。
（Ｄ）未割り当ての実ページの数（例えば、実ページの数に対する未割り当ての実ページの数の比率）を基に、再利用、即解放、或いは一定時間後解放が選択される。例えば、未割り当ての実ページの数が多であれば、再利用が選択され、未割り当ての実ページの数が中であれば、一定時間後解放が選択され、未割り当ての実ページの数が少であれば、即解放が選択される。
【０１２７】
図１８は、時間監視サブプログラム１１６１の動作のフローチャートである。
【０１２８】
ステップ１６１では、時間監視サブプログラム１１６１は、ボリューム管理テーブル１１５９２における“要求時刻”が表す時刻から現在時刻までの時間が、ユーザ設定値テーブル１１５９１における“解放時間”が表す時間に達したか否かを判断する。達していないとの判断になれば、ステップ１６２が実行され、達した（或いは超えた）との判断になれば、ステップ１６３が実行される。
【０１２９】
ステップ１６２では、時間監視サブプログラム１１６１は、所定のインターバルを待ってから、再び、ステップ１６１を実行する。
【０１３０】
ステップ１６３では、時間監視サブプログラム１１６１は、領域解放制御サブプログラム１１６２を呼び出す。その際、時間監視サブプログラム１１６１は、領域解放制御サブプログラム１１６２に、“解放時間”が表す時間の経った仮想ボリュームの番号を通知する。
【０１３１】
ステップ１６４では、時間監視サブプログラム１１６１は、“解放時間”が表す時間の経った仮想ボリュームのボリュームステータスを“解放”に設定する。
【０１３２】
図１９は、領域解放制御サブプログラム１１６２の動作のフローチャートである。
【０１３３】
ステップ１７１で、領域解放制御サブプログラム１１６２は、通知された仮想ボリューム番号を実ボリューム管理テーブル１１５９３から検索する。
【０１３４】
ステップ１７２で、領域解放制御サブプログラム１１６２は、通知された仮想ボリューム番号に対応する実ボリューム番号欄を解放する（例えば実ボリューム番号欄の数をゼロとする）。また、領域解放制御サブプログラム１１６２は、通知された仮想ボリューム番号に対応する仮想ボリュームを有するストレージシステム１２１における領域解放プログラム１２３３１を呼び出す。その際、領域解放制御サブプログラム１１６２は、通知された仮想ボリューム番号を、領域解放プログラム１２３３１に通知する。これにより、ストレージシステム１２１における領域解放プログラム１２３３１が、通知された仮想ボリューム番号に対応するマッピングテーブル１２３３５に記録されている全ての実ページＩＤを消去する。
【０１３５】
以上が、（ケース１）マイグレーションについての処理の説明である。この説明によれば、以下の（１）乃至（４）の項目、
（１）マイグレーション元ボリュームの記憶容量、
（２）マイグレーション元ボリュームの性能、
（３）要求時刻、
（４）ボリュームステータス、
に基づいて、マイグレーション先ボリュームが自動選択される。
【０１３６】
また、上述の説明によれば、マイグレーションが完了したら、マイグレーション元の仮想ボリュームに割り当て済みの全ての実ページが直ぐに解放されるか、一定時間後に解放されるか、或いは解放されずに割り当たったままとなっているかが選択される。
【０１３７】
（ケース２）論理ボリュームの初期割り当て。
【０１３８】
図１３は、ボリューム初期割り当て制御プログラム１１５７の動作のフローチャートである。言い換えれば、図１３は、論理ボリュームの初期割り当ての流れの概要を示す。
【０１３９】
ステップ１１１は、ボリューム初期割り当て制御プログラム１１５７は、ボリューム割り当て判断プログラム１１５５を呼び出す。これにより、割り当て先ホスト計算機１０１に初めに割り当てられる論理ボリューム（初期割り当てボリューム）が選択される。
【０１４０】
ステップ１１２で、ボリューム初期割り当て制御プログラム１１５７は、初期割り当てボリュームを設定する。具体的には、ボリューム初期割り当て制御プログラム１１５７が、対象のホスト計算機１０１と初期割り当てボリュームとを結ぶパスを設定する。
【０１４１】
ステップ１１１でボリューム割り当て判断プログラム１１５５が呼び出された場合、図２０のフローが実行される。図２０において、ステップ１８３が実行された場合、図２１のフローが実行される。図２１では、ステップ１９２の後、ステップ１９５及び１９６が実行される。
【０１４２】
すなわち、ステップ１９５で、自動選択サブプログラム１１６３は、ボリューム初期割り当て制御サブプログラム１１６５を呼び出す。
【０１４３】
ステップ１９６で、自動選択サブプログラム１１６３は、ボリューム初期割り当て制御サブプログラム１１６５によってボリュームステータスが“割り当て”とされた論理ボリュームを、初期割り当てボリュームに設定する。具体的には、自動選択サブプログラム１１６３は、その論理ボリュームのボリュームステータスを、“割り当て”から“初期割り当て”に変更する。この論理ボリュームに対して、図１３のステップ１１２で、対象のホスト計算機１０１からのパスが張られる。
【０１４４】
図２３は、ボリューム初期割り当て制御サブプログラム１１６５の動作のフローチャートである。
【０１４５】
ステップ２２１で、ボリューム初期割り当て制御サブプログラム１１６５は、アクセス頻度テーブル１１５９６に記録されている複数のアクセス頻度平均値の平均を算出する。
【０１４６】
ステップ２２２で、ボリューム初期割り当て制御サブプログラム１１６５は、割り当て先ホスト計算機１０１のアクセス頻度平均値の方がステップ２２１で算出された平均より低いか否かを判断する。低ければ、ステップ２２３が実行され、低くなければ、ステップ２２４が実行される。
【０１４７】
ステップ２２３で、ボリューム初期割り当て制御サブプログラム１１６５は、ボリュームステータス“解放”の仮想ボリュームについて、ボリュームステータスを“解放”から“割り当て”に変更する。
【０１４８】
ステップ２２４で、ボリューム初期割り当て制御サブプログラム１１６５は、ボリュームステータス“再利用”の仮想ボリュームについて、ボリュームステータスを“再利用”から“割り当て”に変更する。
【０１４９】
割り当て済みの初期割り当てボリュームが使用対象から未使用対象とされる場合に、ボリューム切り離し制御プログラム１１５８が呼び出される。
【０１５０】
図１４は、ボリューム切り離し制御プログラム１１５８の動作を示す。
【０１５１】
ステップ１２１で、ボリューム切り離し制御プログラム１１５８は、領域解放判断プログラム１１５４を呼び出す。その際、マイグレーション制御プログラム１１５６は、未使用対象の初期割り当てボリュームである仮想ボリューム１２５Ｖの番号を、呼び出した領域解放判断プログラム１１５４に通知する。これにより、未使用対象の初期割り当てボリュームが仮想ボリューム１２５Ｖである場合に、その仮想ボリューム１２５Ｖに割り当て済みの全ての実ページが、即座に解放されるか、一定時間後に解放されるか、或いは、一定時間経っても解放されずに割り当てられている状態が維持されるかが、決定される。
【０１５２】
ステップ１２２で、ボリューム切り離し制御プログラム１１５８は、未使用対象の初期割り当てボリュームをホスト計算機１０１から切離す。具体的には、ボリューム切り離し制御プログラム１１５８は、その初期割り当てボリュームを有するストレージシステム１２１に、ボリューム切り離し指示（例えば、ホスト計算機の識別子と、初期割り当てボリュームの番号とを含んだ指示）を送信する。
【０１５３】
以上が、（ケース２）論理ボリュームの初期割り当てについての説明である。
【０１５４】
なお、上記（ケース１）では、マイグレーション先ボリュームの選択の際に、レスポンスタイムが参酌され、上記（ケース２）では、初期割り当てボリュームの選択の際に、割り当て先ホスト計算機のアクセス頻度が参酌される。以下、レスポンスタイムやアクセス頻度の計測について説明する。
【０１５５】
図１５は、レスポンスタイム計測プログラム１１５１の動作のフローチャートである。
【０１５６】
レスポンスタイム計測プログラム１１５１によって、各仮想ボリュームや各通常ボリュームのレスポンスタイムが計測される。以下、レスポンスタイムの計測対象の論理ボリュームを、図１５の説明において、「計測対象ボリューム」と言う。
【０１５７】
ステップ１３１で、レスポンスタイム計測プログラム１１５１は、現在時刻が所定の開始時刻以降であるかどうかを判断する。現在時刻が開始時刻前であれば、ステップ１３２が実行され、開始時刻以降であれば、ステップ１３３が実行される。
【０１５８】
ステップ１３２で、レスポンスタイム計測プログラム１１５１は、一定時間待つ。その後、再び、ステップ１３１を実行する。
【０１５９】
ステップ１３３で、レスポンスタイム計測プログラム１１５１は、計測対象ボリュームのレスポンスタイムを計測する。具体的には、例えば、レスポンスタイム計測プログラム１１５１は、計測対象ボリュームを指定したコマンドを、計測対象ボリュームを有するストレージシステム１２１に送信してから、所定の応答を受信するまでの時間を計測する。
【０１６０】
ステップ１３４で、レスポンスタイム計測プログラム１１５１は、計測されたレスポンスタイムを、レスポンスタイム蓄積テーブル１１５９７に格納する。
【０１６１】
ステップ１３５で、レスポンスタイム計測プログラム１１５１は、レスポンスタイムを未計測の仮想ボリューム又は通常ボリュームがあるかどうかを判断する。有るとの判断になれば、未計測の一つの仮想ボリューム又は通常ボリュームについて、ステップ１３３が実行される。無いとの判断になれば、ステップ１３６が実行される。
【０１６２】
ステップ１３６で、レスポンスタイム計測プログラム１１５１は、現在時刻が所定の終了時刻前であるかどうかを判断する。現在時刻が終了時刻前であれば、ステップ１３７が実行され、終了時刻以降であれば、ステップ１３８が実行される。
【０１６３】
ステップ１３７で、レスポンスタイム計測プログラム１１５１は、所定のインターバル待つ。その後、再び、ステップ１３３を実行する。
【０１６４】
ステップ１３８で、レスポンスタイム計測プログラム１１５１は、各仮想ボリュームや各通常ボリュームについて、レスポンスタイム蓄積テーブル１１５９７に記録されている複数のレスポンスタイムの平均を算出する。
【０１６５】
ステップ１３９で、レスポンスタイム計測プログラム１１５１は、各仮想ボリュームや各通常ボリュームについて、計算されたレスポンスタイム平均値を、レスポンスタイムテーブル１１５９８に格納する。
【０１６６】
ステップ１４０で、レスポンスタイム計測プログラム１１５１は、入出力プログラム１１５３を呼び出す。これにより、更新後のレスポンスタイム蓄積テーブル１１５９７やレスポンスタイムテーブル１１５９８が、管理サーバ１１１内の図示しない補助記憶装置に格納される。
【０１６７】
図１６は、アクセス頻度計測プログラム１１５２の動作のフローチャートである。
【０１６８】
アクセス頻度計測プログラム１１５２によって、各ホスト計算機からのアクセス頻度が計測される。以下、アクセス頻度の計測対象のホスト計算機を、図１６の説明において、「計測対象ホスト」と言う。
【０１６９】
ステップ１４１で、アクセス頻度計測プログラム１１５２は、現在時刻が所定の開始時刻以降であるかどうかを判断する。現在時刻が開始時刻前であれば、ステップ１４２が実行され、開始時刻以降であれば、ステップ１４３が実行される。
【０１７０】
ステップ１４２で、アクセス頻度計測プログラム１１５２は、一定時間待つ。その後、再び、ステップ１４１を実行する。
【０１７１】
ステップ１４３で、アクセス頻度計測プログラム１１５２は、計測対象ホストのアクセス頻度を計測する。
【０１７２】
ステップ１４４で、アクセス頻度計測プログラム１１５２は、計測されたアクセス頻度を、アクセス頻度蓄積テーブル１１５９５に格納する。
【０１７３】
ステップ１４５で、アクセス頻度計測プログラム１１５２は、アクセス頻度を未計測のホスト計算機があるかどうかを判断する。有るとの判断になれば、未計測の一つのホスト計算機について、ステップ１４３が実行される。無いとの判断になれば、ステップ１４６が実行される。
【０１７４】
ステップ１４６で、アクセス頻度計測プログラム１１５２は、現在時刻が所定の終了時刻前であるかどうかを判断する。現在時刻が終了時刻前であれば、ステップ１４７が実行され、終了時刻以降であれば、ステップ１４８が実行される。
【０１７５】
ステップ１４７で、アクセス頻度計測プログラム１１５２は、所定のインターバル待つ。その後、再び、ステップ１４３を実行する。
【０１７６】
ステップ１４８で、アクセス頻度計測プログラム１１５２は、各ホスト計算機について、アクセス頻度蓄積テーブル１１５９５に記録されている複数のアクセス頻度の平均を算出する。
【０１７７】
ステップ１４９で、アクセス頻度計測プログラム１１５２は、各ホスト計算機について、計算されたアクセス頻度平均値を、アクセス頻度テーブル１１５９６に格納する。
【０１７８】
ステップ１５０で、アクセス頻度計測プログラム１１５２は、入出力プログラム１１５３を呼び出す。これにより、更新後のアクセス頻度蓄積テーブル１１５９５やアクセス頻度テーブル１１５９６が、管理サーバ１１１内の図示しない補助記憶装置に格納される。
【０１７９】
上述した本発明の実施例は、本発明の説明のための例示であり、本発明の範囲をその実施例にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
【０１８０】
例えば、図１２乃至図２３のうちの少なくとも一つの図に記載の処理流れは、本発明の理解及び実施に必要な程度で各処理の概要を示している。従って、いわゆる当業者であれば、本発明の範囲から逸脱しない程度に、ステップの順序を変更したり、ステップを別のステップに変更したり等することができる。
【図面の簡単な説明】
【０１８１】
【図１】本発明の一実施例に係る計算機システムの構成例を示す。
【図２】ストレージシステムの構成例を示す。
【図３】管理サーバの構成例を示す。
【図４】管理サーバが記憶するユーザ設定値テーブルの構成例を示す。
【図５】管理サーバが記憶するボリューム管理テーブルの構成例を示す。
【図６】管理サーバが記憶する実ボリューム管理テーブルの構成例を示す。
【図７】管理サーバが記憶する計測時刻テーブルの構成例を示す。
【図８】管理サーバが記憶するアクセス頻度蓄積テーブルの構成例を示す。
【図９】管理サーバが記憶するアクセス頻度テーブルの構成例を示す。
【図１０】管理サーバが記憶するレスポンスタイム蓄積テーブルの構成例を示す。
【図１１】管理サーバが記憶するレスポンスタイムテーブルの構成例を示す。
【図１２】マイグレーション制御プログラムの動作のフローチャート。
【図１３】ボリューム初期割り当て制御プログラムの動作のフローチャート。
【図１４】ボリューム切り離し制御プログラムの動作のフローチャート。
【図１５】レスポンスタイム計測プログラムの動作のフローチャート。
【図１６】アクセス頻度計測プログラムの動作のフローチャート。
【図１７】領域解放判断プログラムの動作のフローチャート。
【図１８】時間監視サブプログラムの動作のフローチャート。
【図１９】領域解放制御サブプログラムの動作のフローチャート。
【図２０】ボリューム割り当て判断プログラムの動作のフローチャート。
【図２１】自動選択サブプログラムの動作のフローチャート。
【図２２】マイグレーション先選択サブプログラムの動作のフローチャート。
【図２３】ボリューム初期割り当て制御サブプログラムの動作のフローチャート。
【図２４】図２４Ａは、実ページの動的割り当ての説明図である。図２４Ｂは、仮想ボリュームに割り当て済みの実ページが解放されていない状態でのその仮想ボリュームに対応したマッピングテーブルの一例を示す。図２４Ｃは、仮想ボリュームに割り当て済みの全ての実ページが解放された状態でのその仮想ボリュームに対応したマッピングテーブルの一例を示す。
【図２５】図２５Ａは、実ボリュームにおける実記憶領域が仮想ボリュームに割り当てられている状態を示す。図２５Ｂは、二つの仮想ボリュームのうちの一方の仮想ボリュームから通常ボリュームへのデータ要素のマイグレーションを示す。図２５Ｃは、マイグレーション後に別の通常ボリュームから上記一方の仮想ボリュームへデータ要素がマイグレーションされることを示す。
【図２６】図２６Ａは、第一のホストに仮想ボリュームが割り当てられていることを示す。図２６Ｂは、第一のホストに対する仮想ボリュームの割り当てが解除された後にその仮想ボリュームが第二のホストに割り当てられたことを示す。
【符号の説明】
【０１８２】
１０１…ホスト計算機  １１１…管理サーバ  １２１…ストレージシステム
【図１】
2009134397.tif 000003
【図２】
2009134397.tif 000004
【図３】
2009134397.tif 000005
【図４】
2009134397.tif 000006
【図５】
2009134397.tif 000007
【図６】
2009134397.tif 000008
【図７】
2009134397.tif 000009
【図８】
2009134397.tif 000010
【図９】
2009134397.tif 000011
【図１０】
2009134397.tif 000012
【図１１】
2009134397.tif 000013
【図１２】
2009134397.tif 000014
【図１３】
2009134397.tif 000015
【図１４】
2009134397.tif 000016
【図１５】
2009134397.tif 000017
【図１６】
2009134397.tif 000018
【図１７】
2009134397.tif 000019
【図１８】
2009134397.tif 000020
【図１９】
2009134397.tif 000021
【図２０】
2009134397.tif 000022
【図２１】
2009134397.tif 000023
【図２２】
2009134397.tif 000024
【図２３】
2009134397.tif 000025
【図２４】
2009134397.tif 000026
【図２５】
2009134397.tif 000027
【図２６】
2009134397.tif 000028