(57)【特許請求の範囲】
【請求項１】
１以上のホストに接続されるストレージシステムであって、
複数のＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）グループと、
前記複数のＲＡＩＤグループ及び前記１以上のホストに接続されたコントローラと
を有し、
各ＲＡＩＤグループは、二以上の物理記憶デバイスで構成されており、
前記複数のＲＡＩＤグループが、複数の実領域で構成された記憶領域であるプールの基になっており、
前記コントローラが、前記プールに関連付けられている複数の仮想ボリュームを前記一以上のホストに提供し、
各仮想ボリュームは、複数の仮想領域で構成されている仮想的な論理ボリュームであり、
前記コントローラが、ホストからライトコマンドを受信した場合、そのライトコマンドからライト先の仮想領域を特定し、特定したライト先の仮想領域に、前記プールのうちのフリーの実領域を割り当て、割り当てた実領域に、前記ライトコマンドに付随するライト対象のデータを書き込み、
前記コントローラが、
（Ａ）省電力対象の仮想ボリュームである第１ＶＶＯＬを特定し、
（Ｂ）省電力対象のＲＡＩＤグループである第１ＲＧを特定し、
（Ｃ）前記第１ＶＶＯＬ以外の仮想ボリュームである第２ＶＶＯＬに割り当てられている、前記第１ＲＧに基づく実領域である第１の実領域があるか否かを判定し、
（Ｄ）前記（Ｃ）の判定の結果が肯定的であれば、前記第１の実領域内のデータを前記第１ＲＧ以外のＲＡＩＤグループである第２ＲＧに基づくフリーの実領域に移動し、前記第１の実領域が割り当てられている仮想領域に、前記第１の実領域に代えて移動先の実領域を割り当てる第１の移動処理を行い、
（Ｅ）前記第１ＲＧに基づく実領域として、前記第２ＶＶＯＬに割り当てられている実領域がなければ、前記第１ＲＧを構成する全ての物理記憶デバイスを省電力状態にする、
ストレージシステム。
【請求項２】
請求項１記載のストレージシステムであって、
前記コントローラが、
（Ｆ）前記第１ＶＶＯＬに割り当てられている、前記第２ＲＧに基づく実領域である第２の実領域があるか否かを判定し、
（Ｇ）前記（Ｆ）の判定の結果が肯定的であれば、前記第２の実領域内のデータを前記第１ＲＧに基づくフリーの実領域に移動し、前記第２の実領域が割り当てられている仮想領域に、前記第２の実領域に代えて移動先の実領域を割り当てる第２の移動処理を行い、
前記（Ｅ）では、前記コントローラは、前記第１ＲＧに基づく実領域として、前記第２ＶＶＯＬに割り当てられている実領域がなく、且つ、前記第２ＲＧに基づく実領域として、前記第１ＶＶＯＬに割り当てられている実領域がなければ、前記第１ＲＧを構成する全ての物理記憶デバイスを省電力状態にする、
ストレージシステム。
【請求項３】
請求項２記載のストレージシステムであって、
前記プールを構成する各実領域は、複数のティアのうちのいずれかのティアに属しており、
前記コントローラが、記憶資源を有し、
前記記憶資源が、ティアの優先順位とＲＡＩＤグループの総実領域数のどちらを優先するかを表す情報を仮想ボリューム毎に含んだボリューム管理情報を記憶し、
前記（Ｂ）において、前記コントローラが、
（ｂ１）前記ボリューム管理情報を基に、前記第１ＶＶＯＬについて、ティアの優先順位を優先することを特定した場合、最も高いティアに属するＲＡＩＤグループを特定し、
（ｂ２）前記ボリューム管理情報を基に、前記第１ＶＶＯＬについて、ＲＡＩＤグループの総実領域数を優先することを特定した場合、総実領域数が最も少ないＲＡＩＤグループを特定し、
前記（ｂ１）又は（ｂ２）で特定されたＲＡＩＤグループが、前記第１ＲＧである、
ストレージシステム。
【請求項４】
請求項３記載のストレージシステムであって、
前記（ｂ１）において、最も高いティアに属するＲＡＩＤグループが複数ある場合、前記コントローラは、それら複数のＲＡＩＤグループのうち、総実領域数が最も少ないＲＡＩＤグループを特定し、
前記（ｂ２）において、総実領域数が最も少ないＲＡＩＤグループが複数ある場合、前記コントローラは、それら複数のＲＡＩＤグループのうち、最も高いティアに属するＲＡＩＤグループを特定する、
ストレージシステム。
【請求項５】
請求項４記載のストレージシステムであって、
前記特定されたＲＡＩＤグループは、更に、総実領域数のうちの割当て済み実領域数の割合が所定の閾値以下のＲＡＩＤグループである、
ストレージシステム。
【請求項６】
請求項５記載のストレージシステムであって、
前記コントローラは、前記第１ＶＶＯＬを指定したライトコマンドを受信し、ライト先が未割当ての仮想領域である場合、常に、
（Ｐ）前記第１ＲＧが省電力状態であれば一時的に省電力状態を解除し、
（Ｑ）前記第１ＲＧに基づくフリーの実領域を選択し、
（Ｒ）選択した実領域を、そのライト先の仮想領域に割り当て、その実領域に、前記ライトコマンドに付随するライト対象のデータを書き込み、
（Ｓ）前記第１ＲＧを再び省電力状態に遷移させる、
ストレージシステム。
【請求項７】
請求項１記載のストレージシステムであって、
前記（Ｂ）は、前記複数のＲＡＩＤグループから、第１ＲＧを決定することであり、
前記（Ｂ）において、前記コントローラは、総実領域数が最も少ないＲＧを、前記第１ＲＧに決定する、
ストレージシステム。
【請求項８】
請求項７記載のストレージシステムであって、
前記第１ＲＧは、総実領域数が最も少なく、且つ、総実領域数のうちの割当て済み実領域数の割合が所定の閾値以下のＲＡＩＤグループである、
ストレージシステム。
【請求項９】
請求項１記載のストレージシステムであって、
前記プールを構成する各実領域は、複数のティアのうちのいずれかのティアに属しており、
前記コントローラが、記憶資源を有し、
前記記憶資源が、ティアの優先順位とＲＡＩＤグループの総実領域数のどちらを優先するかを表す情報を仮想ボリューム毎に含んだボリューム管理情報を記憶し、
前記（Ｂ）において、前記コントローラが、前記ボリューム管理情報を基に、前記第１ＶＶＯＬについて、ティアの優先順位を優先することを特定した場合、最も高いティアに属するＲＡＩＤグループを特定し、
前記特定されたＲＡＩＤグループが、前記第１ＲＧである、
ストレージシステム。
【請求項１０】
請求項９記載のストレージシステムであって、
前記ティアの優先順位は、ＲＡＩＤグループを構成する物理記憶デバイスの種類、性能及び消費電力のいずれかに従う順位である、
ストレージシステム。
【請求項１１】
請求項１０記載のストレージシステムであって、
前記ティアの優先順位は、物理記憶デバイスの性能が低いほど高い優先順位である、
ストレージシステム。
【請求項１２】
請求項１０記載のストレージシステムであって、
前記ティアの優先順位は、物理記憶デバイスの消費電力が高いほど高い優先順位である、
ストレージシステム。
【請求項１３】
請求項１記載のストレージシステムであって、
前記コントローラが、
（Ｆ）前記第１ＶＶＯＬに割り当てられている、前記第２ＲＧに基づく実領域である第２の実領域があるか否かを判定し、
（Ｇ）前記（Ｆ）の判定の結果が肯定的であれば、前記第２の実領域内のデータを前記第１ＲＧに基づくフリーの実領域に移動し、前記第２の実領域が割り当てられている仮想領域に、前記第２の実領域に代えて移動先の実領域を割り当てる第２の移動処理を行い、
前記（Ｅ）では、前記コントローラは、前記第１ＲＧに基づく実領域として、前記第２ＶＶＯＬに割り当てられている実領域がなく、且つ、前記第２ＲＧに基づく実領域として、前記第１ＶＶＯＬに割り当てられている実領域がなければ、前記第１ＲＧを構成する全ての物理記憶デバイスを省電力状態にする、
前記コントローラは、前記第１ＶＶＯＬを指定したライトコマンドを受信し、ライト先が未割当ての仮想領域である場合、常に、
（Ｐ）前記第１ＲＧが省電力状態であれば一時的に省電力状態を解除し、
（Ｑ）前記第１ＲＧに基づくフリーの実領域を選択し、
（Ｒ）選択した実領域を、そのライト先の仮想領域に割り当て、その実領域に、前記ライトコマンドに付随するライト対象のデータを書き込み、
（Ｓ）前記第１ＲＧを再び省電力状態に遷移させる、
ストレージシステム。
【請求項１４】
下記（ｘ）乃至（ｚ）を有するストレージシステム、
（ｘ）それぞれが複数の物理記憶デバイスで構成された複数のＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）グループに基づき複数の実領域で構成された記憶領域であるプールがある、
（ｙ）前記プールに関連付けられている複数の仮想ボリュームを一以上のホストに提供する、
（ｚ）ホストからライトコマンドを受信した場合、そのライトコマンドからライト先の仮想領域を特定し、特定したライト先の仮想領域に、前記プールのうちのフリーの実領域を割り当て、割り当てた実領域に、前記ライトコマンドに付随するライト対象のデータを書き込む、
の省電力制御方法であって、
（Ａ）省電力対象の仮想ボリュームである第１ＶＶＯＬを特定し、
（Ｂ）省電力対象のＲＡＩＤグループである第１ＲＧを特定し、
（Ｃ）前記第１ＶＶＯＬ以外の仮想ボリュームである第２ＶＶＯＬに割り当てられている、前記第１ＲＧに基づく実領域である第１の実領域があるか否かを判定し、
（Ｄ）前記（Ｃ）の判定の結果が肯定的であれば、前記第１の実領域内のデータを前記第１ＲＧ以外のＲＡＩＤグループである第２ＲＧに基づくフリーの実領域に移動し、前記第１の実領域が割り当てられている仮想領域に、前記第１の実領域に代えて移動先の実領域を割り当てる第１の移動処理を行い、
（Ｅ）前記第１ＲＧに基づく実領域として、前記第２ＶＶＯＬに割り当てられている実領域がなければ、前記第１ＲＧを構成する全ての物理記憶デバイスを省電力状態にする、
省電力制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Thin Provisioning（Dynamic Provisioningとも呼ばれる）が適用される記憶制御に関する。
【背景技術】
【０００２】
ストレージシステムの省電力に関する技術として、例えば特許文献１に開示の技術が知られている。
【０００３】
特許文献１には、複数の磁気ディスク装置を有するストレージシステムが開示されている。そのストレージシステムは、複数の磁気ディスク装置のうち、一定時間アクセスの無い磁気ディスク装置内の磁気ディスクをスピンダウンさせる。これにより、ストレージシステムの省電力化が図られる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２９３３１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
他方、Thin Provisioningと呼ばれる（Dynamic Provisioningとも呼ばれる）技術が知られている。Thin Provisioningによれば、１又は複数の仮想的な論理ボリューム（仮想ボリューム）は、それぞれ、１又は複数の物理記憶デバイス群に基づく実体的な記憶領域（以下、プール）と対応づけられている。仮想ボリュームは、複数の仮想的な記憶領域（仮想ページ）で構成され、プールは、複数の実体的な記憶領域（実ページ）で構成される。例えば、ストレージシステムは、ホストから仮想ボリュームを指定したライト要求を受信した場合に、そのライト要求で指定されている仮想ボリュームに対応づけられたプール内の実ページを、そのライト要求から特定される仮想ページに割り当てる。そして、割り当てられた実ページに、受信したライト要求に従うライト対象のデータが書き込まれる。
【０００６】
Thin Provisioningが適用されているストレージシステムに、特許文献１に開示の省電力技術を適用したとする。ここで、省電力状態にされた物理記憶デバイスがプールの基になっている物理記憶デバイス（以下、プール記憶デバイス）である場合、省電力の効果が低いと考えられる。具体的には、下記の（１）又は（２）、
（１）プール記憶デバイスが一定時間アクセスされない可能性は低い、
（２）一定時間アクセスされないが故に省電力状態にされても、すぐに、アクセスのために省電力状態が解除されることになる、
と考えられる。なぜなら、プールに関連付けられているいずれの仮想ボリュームにアクセスが発生しても、そのプールの基になっているいずれのプール記憶デバイスもアクセスされる可能性があるからである。
【０００７】
そこで、本発明の目的は、Thin Provisioningが適用されたストレージシステムの省電力効果を向上することにある。
【課題を解決するための手段】
【０００８】
ストレージシステムが、複数のＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）グループと、複数のＲＡＩＤグループ及び１以上のホストに接続されたコントローラとを有する。コントローラは、記憶資源を有して良い。記憶資源は、所定の情報を記憶することができる。
【０００９】
各ＲＡＩＤグループは、二以上の物理記憶デバイスで構成されている。複数のＲＡＩＤグループが、複数の実領域で構成された記憶領域であるプールの基になっている。コントローラが、プールに関連付けられている複数の仮想ボリュームを一以上のホストに提供する。各仮想ボリュームは、複数の仮想領域で構成されている仮想的な論理ボリュームである。コントローラが、ホストからライトコマンドを受信した場合、そのライトコマンドからライト先の仮想領域を特定し、特定したライト先の仮想領域に、前記プールのうちのフリーの実領域を割り当て、割り当てた実領域に、前記ライトコマンドに付随するライト対象のデータを書き込む。
【００１０】
コントローラは、省電力対象の仮想ボリュームである第１ＶＶＯＬを特定し、省電力対象のＲＡＩＤグループである第１ＲＧを特定する。コントローラは、第１ＶＶＯＬ以外の仮想ボリュームである第２ＶＶＯＬに割り当てられている、第１ＲＧに基づく実領域である第１の実領域があるか否かを判定する。この判定の結果が肯定的であれば、コントローラは、第１の実領域内のデータを第１ＲＧ以外のＲＡＩＤグループである第２ＲＧに基づくフリーの実領域に移動し、第１の実領域が割り当てられている仮想領域に、第１の実領域に代えて移動先の実領域を割り当てる第１の移動処理を行う。コントローラは、第１ＲＧに基づく実領域として、第２ＶＶＯＬに割り当てられている実領域がなければ、第１ＲＧを構成する全ての物理記憶デバイスを省電力状態にする。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例の概要を示す。
【図２】本発明の一実施例に係るストレージシステム１０３の構成を示す。
【図３】ストレージシステム１０３における各種記憶領域の関係を示す。
【図４】ＣＭＰＫ１１９が記憶する情報及びコンピュータプログラムを示す。
【図５】ティア定義テーブル４０１の構成を示す。
【図６】プール管理テーブル４０２の構成を示す。
【図７】ＶＶＯＬ管理テーブル４０４の構成を示す。
【図８】ＲＧ管理テーブル４０４の構成を示す。
【図９】アロケーションテーブル４０５の構成を示す。
【図１０】実ページ管理テーブル４０６の構成を示す。
【図１１】Ｉ／Ｏコマンドをホストから受信した場合に行われる処理のフローを示す。
【図１２】Ｉ／Ｏ処理のフローを示す。
【図１３】第２のライト処理のフローを示す。
【図１４】チャンク割当て変更処理のフローを示す。
【図１５】第２のリード処理のフローを示す。
【図１６】ＶＶＯＬ作成処理のフローを示す。
【図１７】ＶＶＯＬ定義ＧＵＩ１９００を示す。
【図１８】管理装置１０７に表示される情報を示す。
【図１９】省電力設定変更処理のフローを示す。
【図２０】スピンダウン処理を示す。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、本発明の一実施例に係るストレージシステムを説明する。なお、以下の説明において、種々の対象が、参照符号に代えて名称とＩＤの組み合わせで表されることがある。例えば、論理ボリュームが参照符号５００で表される場合には、「論理ボリューム５００」と表記され、ＩＤが００の論理ボリュームが表される場合には、「論理ボリューム＃００」と表記される。
【００１３】
図１は、本発明の一実施例の概要を示す。
【００１４】
ストレージシステム１０３にホスト装置（以下、ホスト）１０１が接続されている。ホスト１０１は、一つであっても複数であってもよい。ストレージシステム１０３は、１又は複数の仮想ボリューム（以下、ＶＶＯＬ（Virtual VOLume））２０３をホスト１０１に提供している。また、ストレージシステム１０３は、複数のＲＡＩＤ（Redundant Array of Independent （or Inexpensive） Disks）グループ（以下、ＲＧ）３０１に基づくプール２０１を有する。プール２０１は、複数のＲＧ領域２０を有する。
【００１５】
ＶＶＯＬ２０３は、Thin Provisioningに従う仮想的な論理ボリューム、すなわち、ＲＧ３０１を基としない論理ボリュームである。ＶＶＯＬ２０３は、複数の仮想ページ２０７で構成されている。仮想ページ２０７は、仮想的な記憶領域である。ＶＶＯＬ２０３として、３つのＶＶＯＬ＃００、＃０１及び＃０２があるとする。ＶＶＯＬ２０３は、ホスト１０１が認識できる記憶領域である。ストレージシステム１０３は、ホスト１０１からＶＶＯＬ２０３を指定したライト要求を受信した場合、このライト要求が有するアドレス（例えばＬＢＡ（Logical Block Address））が属する仮想ページ２０７に、実ページ２０９を割り当てる。
【００１６】
ＲＧ領域２０は、複数の実ページ２０９で構成されている。実ページ２０９は、実体的な記憶領域である。ＲＧ領域２０として、例えば、３つのＲＧ領域＃００、＃０１及び＃０２があるとする。１つのＲＧ領域は、１つのＲＧ３０１に基づく１つの記憶領域である。例えば、ＲＧ領域＃００は、ＲＧ＃００に基づいている。ＲＧ３０１は、複数の物理記憶デバイス（以下、ＰＤＥＶ）で構成されている。１つのＲＧ領域２０は、１つのＲＧ３０１を基とする１又は複数の論理ボリューム（実ボリューム（以下、ＲＶＯＬ（Real VOLume）））で構成される。
【００１７】
プール２０１に、１又は複数のＶＶＯＬ２０３に関連付けられる。図１の例によれば、プール２０１に、ＶＶＯＬ＃００、＃０１及び＃０２が関連付けられている。結果として、ＲＧ領域＃００、＃０１及び＃０２の各々は、ＶＶＯＬ＃００、＃０１及び＃０２に対応づけられる。
【００１８】
ホスト１０１は、一般的には計算機であるが、計算機に代えて、別のストレージシステムであってもよい。ホスト１０１は、例えば、Ｉ／Ｏ（Input/Output）コマンドをストレージシステム１０３に送信する。Ｉ／Ｏコマンドは、例えば、ライトコマンド又はリードコマンドであり、Ｉ／Ｏ先情報を有する。Ｉ／Ｏ先情報は、Ｉ／Ｏ先を表す情報であり、例えば、ＶＶＯＬ２０３のＩＤ（例えばＬＵＮ（Logical Unit Number））とＩ／Ｏ先のアドレス（例えばＬＢＡ（Logical Block Address））とを含む。Ｉ／Ｏ先情報から、Ｉ／Ｏ先のＶＶＯＬ２０３及び仮想ページ２０７が特定される。
【００１９】
ストレージシステム１０３は、ホスト１０１からライトコマンドを受信し、そのライトコマンドが有するＩ／Ｏ情報を基にライト先の仮想ページ２０７を特定する。ストレージシステム１０３は、特定されたライト先の仮想ページ２０７に、いずれかのフリー（未割り当て状態）の実ページ２０９を割り当て、その実ページ２０９に、ライトコマンドに従うライト対象のデータを書き込む。このとき、ライト先仮想ページ２０７に割り当てられる実ページ２０９は、その仮想ページ２０７を有するＶＶＯＬ２０３に関連付けられているプール２０１から選ばれる。以下、説明のため、ＶＶＯＬ＃ａ内の仮想ページ＃ｂを、「仮想ページ＃（ａ−ｂ）」と表記し、ＲＧ領域＃ａ内の実ページ＃ｂを、「実ページ＃（ａ−ｂ）」と表記することにする。図１を参照して説明する。例えば、Ｉ／Ｏ情報から、ライト先仮想ページ（＃００−ｃ）が特定されているとする。このとき、ストレージシステム１０３は、フリーの実ページ（＃００−ｇ）をライト先仮想ページ（＃００−ｃ）に割り当てる。図示の例では、他に、仮想ページ（＃００−ｄ）に実ページ（＃０１−ｌ）、仮想ページ（＃０１−ｅ）に実ページ（＃００−ｈ）、仮想ページ（＃０２−ｆ）に実ページ（＃００−ｉ）が、それぞれ割り当てられている。
【００２０】
ホスト１０１は、省電力要求をストレージシステム１０３に送信することができる。省電力要求は、省電力状態にするＶＶＯＬ２０３のＩＤを含む。
【００２１】
ストレージシステム１０３が、ホスト１０１から省電力要求を受信し、その省電力要求から、省電力対象となるＶＶＯＬ２０３を特定する。以下、省電力対象として特定されたＶＶＯＬを、図１の説明において対象ＶＶＯＬという。対象ＶＶＯＬは、ＶＶＯＬ＃００であるとする。
【００２２】
ストレージシステム１０３は、所定条件に基づき、対象ＶＶＯＬ＃００に対応するプール２０１の基になっている複数のＲＧ＃００、＃０１及び＃０２の中から、１つのＲＧ＃００を選択する（別の言い方をすれば、ストレージシステム１０３は、所定条件に基づき、対象ＶＶＯＬが関連付けられているプール２０１の中から、１つのＲＧ領域を選択する）。ストレージシステム１０３は、下記の（ｘ１）及び（ｘ２）の条件を満たす実ページ内のデータを、
（ｘ１）対象ＶＶＯＬ＃００内の仮想ページに割り当てられている実ページ、
（ｘ２）選択されたＲＧ＃００に対応するＲＧ領域（以下、選択ＲＧ領域）＃００以外のＲＧ領域＃０１又は＃０２内の実ページ、
選択ＲＧ領域＃００内のフリーの実ページに移動する。図１の例によれば、上記（ｘ１）及び（ｘ２）の条件を満たす実ページは、対象ＶＶＯＬ＃００内の仮想ページ（＃００−ｄ）に割り当てられている実ページ（＃０１−ｌ）である。このため、ストレージシステム１０３は、実ページ（＃０１−ｌ）内のデータを、選択ＲＧ領域＃００内のフリーの実ページ（＃００−ｊ）に移動する。そして、ストレージシステム１０３は、仮想ページ（＃００−ｄ）に割り当てる実ページを、移動元の実ページ（実ページ（＃０１−ｌ））から移動先の実ページ（実ページ（＃００−ｊ））に変更する。
【００２３】
また、ストレージシステム１０３は、下記の（ｙ１）及び（ｙ２）の条件を満たす実ページ内のデータを、
（ｙ１）選択ＲＧ領域＃００内の実ページ、
（ｙ２）対象ＶＶＯＬ＃００以外のＶＶＯＬ＃０１又は＃０２（但し、対象ＶＶＯＬ＃００が関連付けられているプールに関連付けられているＶＶＯＬ）内の仮想ページに割り当てられている実ページ、
選択ＲＧ領域＃００以外のＲＧ領域（但し、対象ＶＶＯＬ＃００が関連付けられているプール２０１内のＲＧ領域）内のフリーの実ページに移動する。図１の例によれば、上記（ｙ１）及び（ｙ２）の条件を満たす実ページは、実ページ（＃００−ｈ）及び（＃００−ｉ）である。ストレージシステム１０３は、実ページ（＃００−ｈ）内のデータを、選択ＲＧ領域＃００以外のＲＧ領域内のフリーの実ページ（例えば、実ページ（＃０１−ｋ））に移動する。そして、ストレージシステム１０３は、仮想ページ（＃０１−ｅ）に割り当てる実ページを、実ページ（＃００−ｈ）から実ページ（＃０１−ｋ）に変更する。また、ストレージシステム１０３は、実ページ（＃００−ｉ）内のデータを、選択ＲＧ領域＃００以外のＲＧ領域内のフリーの実ページ（例えば、実ページ（＃０２−ｍ））に移動する。そして、ストレージシステム１０３は、仮想ページ（＃０２−ｆ）に割り当てる実ページを、実ページ（＃００−ｉ）から実ページ（＃０２−ｍ）に変更する。
【００２４】
ストレージシステム１０３は、上記の処理により、下記（ｚ１）及び（ｚ２）の状態になった場合
（ｚ１）対象ＶＶＯＬ＃００内の全てのデータが、選択ＲＧ領域＃００に格納されている、
（ｚ２）対象ＶＶＯＬ＃００以外のＶＶＯＬ＃０１及び＃０２内の全てのデータが、選択ＲＧ領域＃００以外の１以上のＲＧ領域＃０１及び／又は＃０２に格納されている、
選択ＲＧ領域＃００に対応するＲＧ＃００を構成する全てのＰＤＥＶを省電力状態にさせる。例えば、ＰＤＥＶが、ディスク型の記憶メディアを有する記憶デバイス（例えば、ＨＤＤ（Hard Disk Drive）、ＤＶＤ（Digital Versatile Disk）ドライブ）の場合、省電力状態とは、スピンダウン状態で良い。スピンダウン状態の記憶デバイスのディスクの回転速度は、そのディスクに対するＩ／Ｏ（Input/Output）時の回転速度よりも低速（例えば、ゼロ以上）である。また、例えば、ＰＤＥＶが、メモリを有する記憶デバイス（例えば、ＳＳＤ（Solid State Drive））の場合、省電力状態とは、スリープ状態で良い。スリープ状態の記憶デバイスでは、所定の回路への給電が遮断されている。
【００２５】
以下、本実施例を詳細に説明する。
【００２６】
図２は、ストレージシステム１０３の構成を示す。
【００２７】
ストレージシステム１０３は、複数のＰＤＥＶ１０５と、複数のＰＤＥＶ１０５に接続されたコントローラと、電源ユニット１００とを有する。
【００２８】
複数のＰＤＥＶ１０５には、複数種類のＰＤＥＶ、例えば、ＳＳＤ（Solid State Drive）及びＨＤＤ（Hard Disk Drive）が含まれる。ＨＤＤとしては、ＳＡＴＡ（Serial ATA）−ＨＤＤ、及びＳＡＳ（Serial Attached SCSI）−ＨＤＤがある。
【００２９】
コントローラは、メモリと、ホスト１０１に接続されるインタフェースと、ＰＤＥＶ１０５に接続されるインタフェースと、それらに接続されるプロセッサとを有する。具体的には、例えば、コントローラは、複数のＣＨＡ（チャネルアダプタ）１１１と、複数のＤＫＡ（ディスクアダプタ）１１３と、複数のＭＰＰＫ（マイクロプロセッサパッケージ）１２１と、複数のＣＭＰＫ（キャッシュメモリパッケージ）１１９と、それらが接続されたＳＷ（スイッチ）１１７とを有する。ＣＨＡ１１１、ＤＫＡ１１３、ＭＰＰＫ１２１、ＳＷ１１７及び電源ユニット１００は、冗長化の観点から、それぞれ複数存在するが、それらのうちの少なくとも一つの数は、図示の２に限らず、２より多くても少なくても良い。ＣＭＰＫ１１９の数は、２より多くても良い。
【００３０】
電源ユニット１００は、商用電源からの電力に基づく電力を各パッケージ１１９、１１１、１１３、１２１及び１１７に供給する。
【００３１】
ＣＨＡ１１１は、ホスト１０１に接続されるインタフェース装置である。ＣＨＡ１１１は、ホスト１０１から、Ｉ／Ｏコマンド（ライトコマンド又はリードコマンド）を受信し、受信したＩ／Ｏコマンドを、複数のＭＰＰＫ１２１のうちのいずれかに転送する。ＣＨＡ１１１は、また、ホスト１０１から、仮想ボリューム２０３を指定した省電力要求を受信し、受信した省電力要求を、複数のＭＰＰＫ１２１のうちのいずれかに転送する。
【００３２】
ＤＫＡ１１３は、ＰＤＥＶ１０５に接続されるインタフェース装置である。ＤＫＡ１１３は、ＰＤＥＶ１０５からデータを読み出してＣＭＰＫ１１９に転送したり、ＣＭＰＫ１１９からのデータをＰＤＥＶ１０５に書き込んだりする。
【００３３】
ＭＰＰＫ１２１は、一又は複数のＭＰ（マイクロプロセッサ）を有する装置である。ＭＰは、ＣＨＡ１１１からのＩ／Ｏコマンド、及び、省電力要求をそれぞれ処理する。
【００３４】
ＳＷ１１７に、複数のパッケージ、すなわち、ＣＨＡ１１１、ＤＫＡ１１３、ＣＭＰＫ１１９及びＭＰＰＫ１２１が接続されている。ＳＷ１１７は、ＰＫ（パッケージ）間の接続を制御する。
【００３５】
ＣＭＰＫ１１９は、揮発性メモリ及び／又は不揮発性メモリを有する。ＣＭＰＫ１１９には、例えば、仮想ページ２０７（実ページ２０９）に対するＩ／Ｏの対象のデータが一時的に格納される記憶領域（以下、キャッシュメモリ或いはそれを略してＣＭ）がある。また、ＣＭＰＫ１１９には、種々の情報及びコンピュータプログラムが記憶される記憶領域がある。情報及びコンピュータプログラムについては、後に説明する。
【００３６】
ストレージシステム１０３に、管理装置１０７が接続されている。管理装置１０７は、例えば、表示装置及び入力装置を有する計算機である。管理者は、管理装置１０７からストレージシステム１０３に対して種々の設定を行うことができる。
【００３７】
図３は、ストレージシステム１０３における各種記憶領域の関係を示す。
【００３８】
図３に示すように、ストレージシステム１０３は、通常のシステム１０３ｂと、Thin Provisioningに従うシステム（以下、ＴＰシステム）１０３ａとの、２種類のシステムを有する。通常のシステム１０３ｂは、下位から上位にかけて、一以上のＲＧ３０１、一以上のＲＶＯＬ（実ボリューム）２０５を備える。一方、ＴＰシステム１０３ａは、下位から上位にかけて、一以上のＲＧ３０１、一以上のプール２０１、一以上のＶＶＯＬ２０３を備える。
【００３９】
まず、通常のシステム１０３ｂについて説明する。
【００４０】
通常のシステム１０３ａでは、ＲＧ３０１に基づくＲＶＯＬ２０５がホスト１０１に直接提供される。このため、ホスト１０１は、ＲＶＯＬ２０５を認識することとなる。ホスト１０１は、ＲＶＯＬ２０５を指定したＩ／Ｏコマンドを送信し、ストレージシステム１０３は、そのＩ／Ｏコマンドで指定されているＲＶＯＬ２０５に対して、データのＩ／Ｏを行う。
【００４１】
次に、ＴＰシステム１０３ａについて説明する。
【００４２】
一つのＲＧ３０１は、同一ティアに属するＰＤＥＶ１０５で構成されている。ＰＤＥＶ１０５が属するティアは、例えば、ＰＤＥＶの種類、性能、消費電力、及び記憶容量のうちの少なくとも１つで定義される。性能とは、例えば、データのＩ／Ｏの速度、又は、レスポンスタイム（ＰＤＥＶがコントローラからＩ／Ｏ要求を受けてから応答を返すまでの時間長）である。消費電力とは、例えば、定格消費電力、或いは、所定時間所定の処理を実行したときの消費電力である。
【００４３】
図３の例によれば、ＲＧ＃００は、複数のＳＳＤで構成されており、ＲＧ＃０１は、複数のＳＡＳ−ＨＤＤで構成されており、ＲＧ＃０２は、複数のＳＡＴＡ−ＨＤＤで構成されている。なお、ＰＤＥＶ１０５の種類は、性能の低い順から、ＳＡＴＡ＞ＳＡＳ＞ＳＳＤの順となる。また、ＰＤＥＶ１０５の種類は、消費電力の高い順から、ＳＡＳ＞ＳＡＴＡ＞ＳＳＤの順となる。
【００４４】
プール２０１は、実ページ２０９の集合である。具体的には、例えば、プール２０１は、一以上のＲＶＯＬ２０５で構成されており、各ＲＶＯＬ２０５が、一以上の実ページ２０９で構成されている。プール２０１は、２以上のチャンク（図示なし）を有し、各チャンクが、２以上の実ページ２０９で構成されている。
【００４５】
さらに、一つのプール２０１を構成する実ページ２０９は、階層化される。すなわち、一つのプール２０１に、複数のティア３０３が存在する。ティア３０３は、例えば、ＲＶＯＬ２０５の種類毎に存在する。ＲＶＯＬ２０５の種類は、ＲＶＯＬ２０５の基になっているＲＧ３０１の種類に依存する。例えば、図３の例によれば、ＲＶＯＬ２０５は３種類あるため、ティア３０３の数は３つである。このため、一つのティア３０３には、そのティア３０３に対応した種類のＲＶＯＬ２０５が属することになる。具体的には、例えば、ティア＃００は、ＳＳＤという種類であり、ＳＳＤで構成された１以上のＲＧ（例えばＲＧ＃００）に基づく１以上のＲＶＯＬ（例えばＲＶＯＬ＃００）が属することになる。ティア＃０１は、ＳＡＳという種類であり、ＳＡＳで構成された１以上のＲＧ（例えばＲＧ＃０１）に基づく１以上のＲＶＯＬ（例えばＲＶＯＬ＃０１）が属することになる。ティア＃０３は、ＳＡＴＡという種類であり、ＳＡＴＡで構成された１以上のＲＧ（例えばＲＧ＃０２）に基づく１以上のＲＶＯＬ（例えばＲＶＯＬ＃０２）が属することになる。なお、同一のティア３０３には、必ずしも、厳密に同じ種類のＲＶＯＬのみが属する必要は無く、同一のティア３０３に、類似の種類の複数のＲＶＯＬ２０５が属しても良い。
【００４６】
ＶＶＯＬ２０３には、一以上のプール２０１から、割当元となるプール２０１が関連付けられる。１つのプール２０１に、１以上のＶＶＯＬ２０３が関連付けられる。
【００４７】
図４は、ＣＭＰＫ１１９が記憶する情報及びコンピュータプログラムを示す。なお、本実施例では、情報の一例としてテーブルが採用されるが、情報は、テーブル以外の形式（例えばキュー形式）であっても良い。
【００４８】
ＣＭＰＫ１１９は、情報として、ティア定義テーブル４０１、プール管理テーブル４０２、ＶＶＯＬ管理テーブル４０３、ＲＧ管理テーブル４０４、アロケーションテーブル４０５、及び、実ページ管理テーブル４０６を記憶する。また、ＣＭＰＫ１１９は、コンピュータプログラムとして、ＵＩ（User Interface）を制御するプログラムであるＵＩ制御プログラム４１１、Ｉ／Ｏを制御するプログラムであるＩ／Ｏ制御プログラム４１２、及び、省電力制御を行うプログラムである省電力制御プログラム４１３を記憶する。なお、これらのテーブル及びコンピュータプログラムのうちの少なくとも一つがＣＭＰＫ１１９以外の記憶資源に記憶されていても良い。例えば、少なくとも一つのコンピュータプログラム、ＭＰＰＫ１２１内のメモリに記憶されても良い。
【００４９】
以下、各テーブルを説明する。なお、以下の説明では、対象は、ＩＤを用いて特定されるが、ＩＤに代えて又は加えて、名称及び番号のうちの少なくとも一つを用いて特定されても良い。
【００５０】
図５は、ティア定義テーブル４０１の構成を示す。
【００５１】
ティア定義テーブル４０１は、ティアの定義を表すテーブルである。具体的には、例えば、テーブル４０１は、ティア毎に、ティアの種類と、ティアＩＤと、ティアが所属するプールのプールＩＤと、ティアに所属するＲＧのＲＧ  ＩＤとの関係を表す。テーブル４０１によれば、種類「ＳＳＤ」のＲＶＯＬに対応したティアとして、「００」というＩＤが付与されたティアが、「０」というＩＤのプール内に用意される。そのティア「００」内に、「００」、「０１」等のＩＤが付与されたＲＧが属することになる。
【００５２】
図６は、プール管理テーブル４０２の構成を示す。
【００５３】
プール管理テーブル４０２は、プールに関する情報を管理するためのテーブルである。具体的には、例えば、テーブル４０２は、プール毎に、プールＩＤと、プールに所属するＲＶＯＬを示す所属ＲＶＯＬと、プールに対応づけられたＶＶＯＬを示す所属ＶＶＯLとの関係を表す。テーブルによれば、「０」というＩＤが付与されたプールに、「０」、「１」というＩＤが付与されたＲＶＯＬが所属し、かつ、そのＩＤ「０」のプールに、「０」、「１」、「２」、「３」というＩＤが付与されたＶＶＯＬがそれぞれ所属することになる。
【００５４】
図７は、ＶＶＯＬ管理テーブル４０３の構成を示す。
【００５５】
ＶＶＯＬ管理テーブル４０３は、ＶＶＯＬに関する情報を管理するためのテーブルである。具体的には、例えば、テーブル４０３は、ＶＶＯＬ毎に、ＶＶＯＬ  ＩＤ、総ページ数、割当済みページ数、割当済みチャンク数、所属プール、ティア優先、前回割当ＲＧ  ＩＤ、及び、省電力属性を有する。一つのＶＶＯＬ（以下、図７の説明において「対象ＶＶＯＬ」と言う）を例に採っていうと、このテーブル４０３における上記の情報要素は、具体的には、下記の通りである。
（＊）「ＶＶＯＬ  ＩＤ」は、対象ＶＶＯＬのＩＤである。
（＊）「総ページ数」は、対象ＶＶＯＬ内の仮想ページの総数である。
（＊）「割当済みページ数」は、対象ＶＶＯＬ内の仮想ページのうち、すでに実ページが割り当てられている仮想ページの数である。
（＊）「割当済みチャンク数」は、対象ＶＶＯＬに割当て済みのチャンクの数である。対象ＶＶＯＬ内の仮想ページには、最新の割当て済みのチャンクからフリーの実ページが割り当てられる（図示のカッコ内の数字は、最新の割当て済みチャンクのＩＤである）。最新の割当て済みのチャンクにフリーの実ページが無い場合には、フリーのチャンクが新たに割り当てられ、そのチャンクからフリーの実ページが対象ＶＶＯＬの仮想ページに割り当てられる。
（＊）「所属プール」は、対象ＶＶＯＬに関連付けられたプールのＩＤである。そのＩＤは、図６のプール管理テーブル４０２における、ＶＶＯＬ  ＩＤに対するプールＩＤと同じである。
（＊）「ティア優先」は、対象ＶＶＯＬの仮想ページに割り当てられる実ページを決定するに際し、ティアの種類を優先するか否かである。“ＯＮ”は、ティアの種類を優先することを意味し、“ＯＦＦ”は、ティアの種類を優先しないことを意味する。
（＊）「前回割当ＲＧ  ＩＤ」は、対象ＶＶＯＬ内の仮想ページに直前回に割り当てられた実ページを有するＲＧ（前回割当ＲＧ）のＩＤである。実ページの割当て元となるＲＧは、次に説明する、後述の「ＲＧ省電力属性」によって変わる。ＶＶＯＬ省電力属性が“無”の場合、ＲＧ省電力属性が“無”のＲＧに基づく実ページが対象ＶＶＯＬ内の仮想ページに割り当てられる。ＲＧ省電力属性が“無”のＲＧが複数ある場合は、割当元のＲＧが、１つの実ページが割り当てられる毎に、ラウンドロビン形式で変わる。ＶＶＯＬ省電力属性が“有”の場合、ＲＧ省電力属性が“有”のＲＧに基づく実ページが対象ＶＶＯＬ内の仮想ページに割り当てられる。この場合は、前回割当ＲＧ  ＩＤから特定されるＲＧに空きがあれば、そのＲＧ内の実ページが対象ＶＶＯＬ内の仮想ページに割り当てられる。すなわち、ＶＶＯＬ省電力属性が“有”の対象ＶＶＯＬについて、前回割当ＲＧ  ＩＤは固定であり、故に、常に、同一のＲＧに基づく実ページが対象ＶＶＯＬ内の仮想ページに割り当てられる。図６、７及び８を用いて説明する。例えば、対象ＶＶＯＬがＶＶＯＬ＃００の場合、ＶＶＯＬ省電力属性は“有”であり、前回割当ＲＧは、ＲＧ＃００である。図８によれば、ＲＧ＃００の使用チャンク数は、総チャンク数に達していない。この場合、ＶＶＯＬ＃００の仮想ページには、常にＲＧ＃００に基づく実ページが割り当てられる。また、例えば、対象ＶＶＯＬがＶＶＯＬ＃１の場合、省電力属性は“無”である。図６によれば、ＶＶＯＬ＃１に対応するＲＧはＲＧ＃００及び＃０１である。このうち、ＲＧ省電力属性が“無”なのは、ＲＧ＃０１のみである（図８参照）。この場合、ＶＶＯＬ＃１の仮想ページには、ＲＧ＃０１に基づく実ページが割り当てられる。なお、ＶＶＯＬ＃１に対応するＲＧが複数ある場合は、ラウンドロビンで、実ページの割当元のＲＧが変わることとなる。
（＊）「ＶＶＯＬ省電力属性」は、対象ＶＶＯＬが、省電力属性を有するか否かである。“有”の場合は、対象ＶＶＯＬが省電力属性を有していることを示す。“無”の場合は、対象ＶＶＯＬが省電力属性を有していないことを示す。対象ＶＶＯＬを指定した省電力要求をホストから受けた場合に、ＶＶＯＬ省電力属性が“有”となる。ＶＶＯＬ省電力属性が“有”の期間中に、対象ＶＶＯＬを指定したＩ／Ｏ要求（又は、省電力解除要求）をホストから受けた場合に、ＶＶＯＬ省電力属性が“無”となる。
【００５６】
図８は、ＲＧ管理テーブル４０４の構成を示す。
【００５７】
ＲＧ管理テーブル４０４は、ＲＧに関する情報を管理するためのテーブルである。具体的には、例えば、テーブル４０４は、ＲＧ毎に、ＲＧ  ＩＤ、プール  ＩＤ、総チャンク数、使用チャンク数、ティア種類、所属ＶＶＯＬ、ＲＧ省電力属性、状態及びフラグを有する。一つのＲＧ（以下、図８の説明において「対象ＲＧ」と言う）を例にとっていうと、これらの情報要素は、具体的には、下記の通りである。
（＊）「ＲＧ  ＩＤ」は、対象ＲＧのＩＤである。
（＊）「プールＩＤ」は、対象ＲＧが属するプールのＩＤである。
（＊）「ティア種類」は、対象ＲＧに基づくＲＶＯＬが属するティアの種類である。これは、対象ＲＧの種類と同じである。例えば、ＲＧ種類が“ＳＳＤ”であれば、ティア種類も“ＳＳＤ”となる。
（＊）「所属ＶＶＯＬ」は、対象ＲＧに関連付けられているＶＶＯＬのＩＤである。所属ＶＶＯＬとして登録されるＩＤは、動的に増える。例えば、プール＃０の基になっているＲＧ＃００に基づくチャンクが新たにＶＶＯＬ＃０１に割り当てられた場合、ＲＧ＃００の所属ＶＶＯＬとして、ＩＤ“１”が追加される。
（＊）「ＲＧ省電力属性」は、対象ＲＧが、省電力属性を有するか否かである。“有”は対象ＲＧが省電力属性を有することを意味し、“無”は対象ＲＧが省電力状態を有さないことを意味する。なお、対象ＲＧが省電力属性を有するとは、そのＲＧが省電力の対象となっていることを意味する。
（＊）「状態」は、対象ＲＧの状態を表している。ＲＧ省電力属性が“無”の場合、対象ＲＧの状態は常に“Ｎ/Ａ”である。“Ｎ/Ａ”は、非省電力状態（稼働状態）であることを表している。また、省電力属性が“有”の場合は、対象ＲＧは、スピンダウン状態（“スピンダウン”）又はスピンアップ状態（“スピンアップ”）である。「スピンダウン状態」とは、省電力状態の一種であり、ディスクが低速回転中の状態のことである。ＰＤＥＶがＳＳＤの場合、スピンダウン状態は、スリープ状態のことで良い。「スピンアップ状態」は、Ｉ／Ｏが可能な程度にディスクが高速回転している状態のことである。省電力属性が“有”の場合は、対象ＲＧは、原則、スピンダウン状態であり、所定の場合にのみ、一時的にスピンアップ状態とされる。
（＊）「フラグ」は、対象ＲＧを省電力状態（すなわちスピンダウン状態）にできる状態か否かを示す。“可”は対象ＲＧを、いつでもスピンダウン状態にできることを意味する。“不可”は、対象ＲＧを、スピンダウン状態にできないことを意味する。省電力状態（スピンダウン状態）にできる状態とは、対象ＲＧに基づくいずれの実ページも、省電力対象のＶＶＯＬ以外のＶＶＯＬに割り当てられていない状態のことである。
【００５８】
図９は、アロケーションテーブル４０５の構成を示す。
【００５９】
アロケーションテーブル４０５は、どの仮想ページにどの実ページが割り当てられているかを表すテーブルである。具体的には、例えば、テーブル４０５は、仮想ページ毎に、ＶＶＯＬ  ＩＤ、仮想ページＩＤ、プールＩＤ、実ページＩＤ及びティアＩＤを有する。一つの仮想ページ（以下、図９の説明において「対象仮想ページ」と言う）を例にとっていうと、これらの情報要素は、具体的には、下記の通りである。
（＊）「ＶＶＯＬ  ＩＤ」は、対象仮想ページを有するＶＶＯＬのＩＤである。
（＊）「仮想ページＩＤ」は、対象仮想ページのＩＤである。
（＊）「プールＩＤ」は、対象仮想ページを有するＶＶＯＬに割り当てられているプールのＩＤである。
（＊）「実ページＩＤ」は、対象仮想ページに割り当てられている実ページのＩＤである。
（＊）「ティアＩＤ」は、対象仮想ページに割り当てられている実ページを有するティアのＩＤである。
【００６０】
図１０は、実ページ管理テーブル４０６の構成を示す。
【００６１】
実ページ管理テーブル４０６は、実ページの状態を管理するためのテーブルである。具体的には、例えば、テーブル４０６は、実ページ毎に、プール  ＩＤ、チャンクＩＤ、チャンクステータス、ＲＶＯＬ  ＩＤ、実ページＩＤ及びページステータスを有する。一つの実ページ（以下、図１０の説明において「対象実ページ」と言う）を例に採っていうと、これらの情報要素は、具体的には、下記の通りである。
（＊）「プールＩＤ」は、対象実ページを有するプールのＩＤである。
（＊）「チャンクＩＤ」は、対象実ページが属するチャンクのＩＤである。
（＊）「チャンクステータス」は、対象実ページが属するチャンク（以下、該当チャンクという）のステータスである。該当チャンクのステータスの値として、例えば、“使用中”と“フリー”がある。“使用中”は、該当チャンクに属する実ページのいずれかが、仮想ページに割当て済みであることを意味する。“フリー”は、該当チャンクに属する実ページのいずれもが、仮想ページに割り当てられていないことを意味する。
（＊）「ＲＧ  ＩＤ」は、対象実ページを有するＲＧのＩＤである。
（＊）「実ページＩＤ」は、対象実ページのＩＤである。
（＊）「ページステータス」は、対象実ページのステータスである。ステータスの値として、例えば、“使用中”と“フリー”がある。“使用中”は、対象実ページがいずれかの仮想ページに割当て済みであることを意味する。“フリー”は、対象実ページがいずれの仮想ページにも割り当てられておらず、それ故いずれの仮想ページにも割当て可能な状態になっていることを意味する。
【００６２】
以下、本実施例で行われる処理を説明する。以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ（例えばＣＰＵ（Central  Processing  Unit））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インタフェース（例えば通信ポート）を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、ＭＰＰＫ、コントローラ又はストレージシステムが行う処理としても良い。また、プロセッサは、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。
【００６３】
＜Ｉ／Ｏコマンドをホストから受信した場合に行われる処理＞。
【００６４】
図１１は、Ｉ／Ｏコマンドをホストから受信した場合に行われる処理のフローを示す。
【００６５】
ＣＨＡ１１１が、ホスト１０１からＩ／Ｏコマンドを受信する。ＣＨＡ１１１は、Ｉ／Ｏコマンドを、ＭＰＰＫ１２１に送信する。ＭＰＰＫ１２１が、Ｉ／Ｏコマンドを受信し、Ｉ／Ｏ制御プログラム４１２を実行することにより、以下の処理が行われる。
【００６６】
Ｓ１３０１で、プログラム４１２は、Ｉ／Ｏ先ＶＯＬ（Ｉ／Ｏコマンドから特定されるＶＯＬ）に関連付けられているＲＧ２０５（以下、このフローの説明においては、このＲＧ２０５を「対象ＲＧ」という）が省電力状態か否かを判定する。具体的には、例えば、プログラム４１２は、プール管理テーブル４０２を参照し、Ｉ／Ｏ先ＶＶＯＬに対応する１以上の対象ＲＧのＩＤを特定する。そして、プログラム４１２は、ＲＧ管理テーブル４０４を参照し、１以上の対象ＲＧの中に、「状態」が“スピンダウン状態”である、対象ＲＧがあるか否かを判定する。スピンダウン状態の対象ＲＧがあった場合には、その対象ＲＧについてＳ１３０２〜Ｓ１３０４の処理が行われる。一方、スピンダウン状態ではない対象ＲＧについては、Ｓ１３０２及びＳ１３０３の処理は行われず、Ｓ１３０３のＩ／Ｏ処理が行われる。
【００６７】
以下、Ｓ１３０２〜Ｓ１３０４を説明する。
【００６８】
Ｓ１３０２で、プログラム４１２は、スピンダウン状態の対象ＲＧを構成する各ＰＤＥＶをスピンアップ状態にさせる。具体的には、プログラム４１２は、スピンダウン状態の対象ＲＧを構成する各ＰＤＥＶに省電力解除要求を出し、且つ、ＲＧ管理テーブル４０４に、対象ＲＧの「状態」として“スピンアップ状態”を登録する。
【００６９】
Ｓ１３０３で、プログラム４１２は、Ｉ／Ｏ処理を行う。Ｉ／Ｏ処理については、後述する。
【００７０】
Ｓ１３０４で、プログラム４１２は、Ｓ１３０２においてスピンアップ状態にさせた対象ＲＧを、再び、スピンダウン状態にさせる。具体的には、プログラム４１２は、スピンアップ状態の対象ＲＧを構成する各ＰＤＥＶに省電力要求を出し、且つ、ＲＧ管理テーブル４０４に、対象ＲＧの「状態」として“スピンダウン状態”を登録する。
【００７１】
＜Ｉ／Ｏ処理＞。
【００７２】
図１２は、Ｉ／Ｏ処理（図１１のＳ１３０３）のフローを示す。
【００７３】
Ｓ１４０１で、プログラム４１２は、Ｉ／Ｏコマンドがライトコマンドかリードコマンドであるかを判定する。Ｉ／Ｏコマンドがリードコマンドである場合は、Ｓ１４０３が行われる。
【００７４】
Ｓ１４０３で、プログラム４１２は、リード先がＶＶＯＬであるか否かを判定する。これは、すなわち、Ｉ／Ｏコマンドが示すリード先が、ＴＰシステム１０３ａのＶＶＯＬであるか、通常のシステム１０３ｂのＲＶＯＬであるかの判定である（図３参照）。
【００７５】
リード先がＲＶＯＬの場合、Ｓ１４０４で、プログラム４１２は、第１のリード処理を行う。第１のリード処理では、プログラム４１２は、リードコマンドに従い、リード先のＲＶＯＬからリード対象のデータを読み出す。
【００７６】
リード先がＶＶＯＬの場合、Ｓ１４０５で、プログラム４１２は、第２のリード処理を行う。第２のリード処理については、後述する。
【００７７】
Ｓ１４０１において、Ｉ／Ｏコマンドがライトコマンドであった場合は、Ｓ１４０２が行われる。
【００７８】
Ｓ１４０２で、ライト先がＶＶＯＬか否かが判定される。
【００７９】
ライト先がＲＶＯＬの場合、Ｓ１４０６で、プログラム４１２は、第１のライト処理を行う。第１のライト処理では、プログラム４１２は、ライトコマンドに従い、ライト先のＲＶＯＬにライト対象のデータを書き込む。
【００８０】
ライト先がＶＶＯＬの場合、Ｓ１４０７で、プログラム４１２は、第２のライト処理を行う。第２のライト処理については、後述する。
【００８１】
＜第２のライト処理＞。
【００８２】
図１５は、第２のライト処理のフローを示す。
【００８３】
Ｓ１５０１で、プログラム４１２は、プール管理テーブル４０２（図６）を参照し、ライトコマンドが示すライト先のＶＶＯＬに対応するＰＯＯＬ  ＩＤを抽出する。そして、プログラム４１２は、抽出したプールＩＤのＰＯＯＬ内に使用できるチャンクがあるか否かを、実ページ管理テーブル４０６（図１０）における、そのプールＩＤに対応した「チャンクステータス」に基づき判定する。使用できるチャンクがある場合には、Ｓ１５０３が行われる。使用できるチャンクがない場合には、Ｓ１５０２が行われる。ここで言う「使用できるチャンク」とは、チャンクステータスが“使用中”のチャンクであって、フリーの実ページを有するチャンクである。「使用できるチャンク」を、以下、図１３の説明において「対象チャンク」という。
【００８４】
Ｓ１５０２で、プログラム４１２は、チャンク割り当て変更処理を行う。チャンク割り当て変更処理については、後述する。チャンク割り当て処理が行われた後、Ｓ１５０３が行われる。
【００８５】
Ｓ１５０３で、プログラム４１２は、アロケーションテーブル４０５（図９）を参照し、実ページがライト先仮想ページに割り当て済みであるか否かを判定する。実ページが割当て済みでなければ、Ｓ１５０４が行われ、実ページが割当て済みであれば、Ｓ１５０４が行われる。
【００８６】
Ｓ１５０４で、プログラム４１２は、対象チャンク内のフリーの実ページをライト先仮想ページに割り当てる。具体的には、プログラム４１２は、下記を行う。
（＊）実ページ管理テーブル４０６（図１０参照）を参照し、ライト先ＶＶＯＬが関連付けられているプール内の対象チャンクが有するフリーの実ページを特定する。
（＊）アロケーションテーブル４０５に、ライト先仮想ページに対応するプールＩＤ、実ページＩＤ及びティアＩＤとして、特定された実ページを有するプールのＩＤ、その実ページのＩＤ、その実ページを有するティアのＩＤを登録する。
（＊）実ページ管理テーブル４０６における、上記特定した実ページに対応するページステータスを、“使用中”に更新する。
【００８７】
Ｓ１５０５で、プログラム４１２は、ライト先仮想ページに割り当てられた実ページに、ライト対象のデータを書き込む。
【００８８】
＜チャンク割り当て変更処理＞。
【００８９】
図１４は、チャンク割り当て変更処理（図１３のＳ１５０２の処理）のフローを示す。
【００９０】
Ｓ１６０１で、プログラム４１２は、ライト先のＶＶＯＬの属性が省電力か否かを判定する。具体的には、プログラム４１２は、ＶＶＯＬ管理テーブル４０３を参照し、ライト先ＶＶＯＬに対応したＶＶＯＬ省電力属性が、“有”か“無”か、を判定する。ライト先ＶＶＯＬのＶＶＯＬ省電力属性が“無”の場合は、Ｓ１６０３が行われる。ライト先ＶＶＯＬのＶＶＯＬ省電力属性が“有”の場合は、Ｓ１６０２が行われる。
【００９１】
Ｓ１６０３で、プログラム４１２は、ライト先ＶＶＯＬに対応するＲＧに基づくフリーのチャンクを選択する。具体的には、プログラム４１２は、ＶＶＯＬ管理テーブル４０３を参照し、ライト先ＶＶＯＬに対応する、前回割当ＲＧ  ＩＤを特定する。そして、プログラム４１２は、プール管理テーブル４０２を参照し、前回割当ＲＧ  ＩＤの次のＲＧ  ＩＤを選択する。そして、プログラム４１２は、選択されたＲＧ  ＩＤに対応するフリーのチャンクを、実ページ管理テーブル４０６から選択する。
【００９２】
Ｓ１６０４で、プログラム４１２は、ＶＶＯＬ管理テーブル４０３の、前回割当ＲＶＯL  ＩＤを、上記選択したＲＧ  ＩＤ（前回割当ＲＧ  ＩＤの次のＲＧ  ＩＤ）に更新する。
【００９３】
Ｓ１６０２で、プログラム４１２は、対象ＶＶＯＬに対応するＲＧに基づくフリーのチャンクを選択する。具体的には、プログラム４１２は、ＶＶＯＬ管理テーブル４０３を参照し、対象ＶＶＯＬに対応する、前回割当ＲＧ  ＩＤを特定する。そして、プログラム４１２は、特定されたＲＧ  ＩＤに対応するフリーのチャンクを、実ページ管理テーブル４０６から選択する。
【００９４】
Ｓ１６０５で、プログラム４１２は、Ｓ１６０２又はＳ１６０３で選択したチャンクを、ライト先ＶＶＯＬに割り当てる。これにより、そのチャンクが、ライト先ＶＶＯＬにとって、最新の割当て済みのチャンクとなる。以後、そのチャンクの割当先のＶＶＯＬにおける、未割当ての仮想ページが、ライト先となる都度に、そのチャンクから、フリーの実ページが割り当てられる。
【００９５】
＜第２のリード処理＞。
【００９６】
図１５は、第２のリード処理のフローを示す。第２のリード処理は、図１２のＳ１４０５における処理である。
【００９７】
Ｓ１７０１で、プログラム４１２は、リード先の仮想ページ（リードコマンドから特定されるアドレスが属する仮想ページ）に実ページが割り当て済みか否かを判定する。具体的には、プログラム４１２は、アロケーションテーブル４０５（図９）を参照し、リード先の仮想ページのＩＤに実ページＩＤが割り当てられているか否かを判定する。実ページが割り当て済みではない場合は、Ｓ１７０２が行われる。実ページが割り当て済みの場合は、Ｓ１７０３が行われる。
【００９８】
Ｓ１７０２で、プログラム４１２は、所定のデータをホスト１０１に返す。所定のデータとは、例えば、全ビットが０で構成されたデータである。
【００９９】
Ｓ１７０３で、プログラム４１２は、リード先の仮想ページが割り当てられている実ページからデータを読み出し、そのデータをホスト１０１に送信する。
【０１００】
＜ＶＶＯＬ作成処理＞。
【０１０１】
図１６は、ＶＶＯＬ作成処理のフローを示す。なお、この＜ＶＶＯＬの作成＞の説明において、そのＶＶＯＬ作成処理で新たに作成されるＶＶＯＬを「対象ＶＶＯＬ」という。
【０１０２】
ＵＩ制御プログラム４１１が、ＶＶＯＬの作成要求を、管理者から管理装置１０７を通じて受ける。例えば、図１７に示すＶＶＯＬ定義画面１９００（例えば、管理装置１０７に表示されるＧＵＩ（Graphical User Interface））上から、管理者が所定事項を入力することで、管理装置１０７が、ＶＶＯＬ作成要求を作成する。
【０１０３】
図１７に示すＶＶＯＬ定義画面１９００では、対象ＶＶＯＬのＩＤ、指定プールＩＤ、対象ＶＶＯＬの省電力指定の有無を指定することができる。
【０１０４】
Ｓ１８０１で、プログラム４１１は、ＶＶＯＬ定義画面１９００を介して、対象ＶＶＯＬについて省電力が指定されたか否かを判定する。省電力指定がある場合は、Ｓ１８０２が行われる。省電力指定がない場合は、Ｓ１８０７が行われる。
【０１０５】
Ｓ１８０２で、プログラム４１１は、指定プールの基になっている複数のＲＧに省電力ＲＧがあるか否かを判定する。具体的には、プログラム４１１は、プール管理テーブル４０２を参照して、指定プールの基になっている複数のＲＧを特定する。そして、特定した複数のＲＧのうち、ＲＧ省電力属性（テーブル４０４：図８）が“有”のＲＧがあるか否かを判定する。判定の結果、ＲＧ省電力属性“有”のＲＧがある場合は、Ｓ１８０６が行われる。判定の結果、ＲＧ省電力属性“有”のＲＧがない場合は、Ｓ１８０３が行われる。
【０１０６】
Ｓ１８０３で、プログラム４１１は、指定プールの基になっている複数のＲＧにチャンク未使用のＲＧがあるか否かを判定する。具体的には、プログラム４１１は、ＲＧ管理テーブル４０４（図８）を参照して、指定プールの基になっている複数のＲＧのうち、使用チャンク数がゼロのＲＧがあるか否かを判定する。判定の結果、チャンク未使用のＲＧが有る場合は、Ｓ１８０５が行われる。判定の結果、チャンク未使用のＲＧがない場合は、Ｓ１８０４が行われる。
【０１０７】
Ｓ１８０４で、プログラム４１１は、チャンク未使用のＲＧを作成する。具体的には、プログラム４１１は、以下の処理：
（＊）実ページ管理テーブル４０６（図１０）を参照し、指定プールの基になっている１つのＲＧを選ぶ、
（＊）実ページ管理テーブル４０６を参照し、使用中の実ページを特定する、
（＊）特定された各実ページについて、マイグレーション処理を行う、
（＊）ＲＧ管理テーブル４０４における、上記選んだＲＧの「使用チャンク数」を、ゼロに更新する、
を行う。これにより、選ばれたＲＧがチャンク未使用のＲＧとなる。チャンク未使用のＲＧとされるＲＧは、例えば、指定プールの基になっている複数のＲＧのうち、（１）最も優先順位の低いティアに属するＲＧ、（２）使用中の実ページの数が最も少ないＲＧ、又は、（３）消費電力が最も大きいＲＧである。
【０１０８】
なお、上記マイグレーション処理では、プログラム４１１は、以下の処理：
（＊）上記選ばれたＲＧに基づく使用中の実ページ（移動元の実ページ）内のデータを、指定プールの基になっている他のＲＧに基づくフリーの実ページ（移動先の実ページ）に移動する、
（＊）移動元の実ページが割り当てられている仮想ページに、移動元の実ページに代えて、移動先の実ページを割り当てる、
を行う。移動先の実ページは、例えば、移動元の実ページが割り当てられている仮想ページを有するＶＶＯＬについての最新の割当て済みのチャンク内の実ページで良い。
【０１０９】
Ｓ１８０５で、プログラム４１１は、チャンク未使用ＲＧを省電力指定する。具体的には、プログラム４１１は、ＲＧ管理テーブル４０４（図８）における、チャンク未使用ＲＧのＲＧ省電力指定を“有”に更新する。
【０１１０】
Ｓ１８０６で、プログラム４１１は、省電力ＲＧのＩＤを、対象ＶＶＯＬに対応する「前回割当ＲＧ  ＩＤ」とすることを決定する。前述したように、省電力指定のＶＶＯＬには、常に、そのＶＶＯＬに対応する所定の省電力ＲＧ（そのＶＶＯＬに対応する「前回割当ＲＧ  ＩＤ」から特定されるＲＧ）に基づく実ページが割り当てられる。このため、このＳ１８０６により、対象ＶＶＯＬには、省電力ＲＧに基づく実ページが割り当てられることになる。
【０１１１】
Ｓ１８０７で、プログラム４１１は、対象ＶＶＯＬを作成する。具体的には、プログラム４１１は、プール管理テーブル４０２（図６）、ＶＶＯＬ管理テーブル４０３（図７）、ＲＧ管理テーブル４０４（図８）及びアロケーションテーブル４０５（図９）に、対象ＶＶＯＬに関する情報を登録する。具体的には、例えば、プログラム４１１は、Ｓ１８０１でＹＥＳの場合、ＶＶＯＬ管理テーブル４０３（図７）における、対象ＶＶＯＬの「ＶＶＯＬ省電力属性」として“有”を登録する。また、例えば、プログラム４１１は、Ｓ１８０６を行った場合、ＶＶＯＬ管理テーブル４０３（図７）における、「前回割当ＲＧ  ＩＤ」として、Ｓ１８０６で決定したＩＤを登録する。
【０１１２】
＜表示画面＞。
【０１１３】
図１８は、管理装置に表示されるＶＶＯＬ管理情報２０００を示す。
【０１１４】
ＶＶＯＬ管理情報２０００は、ＶＶＯＬ毎に、ＶＶＯＬ  ＩＤ、容量、使用率、ＲＧ  ＩＤ、ＰＯＯＬ  ＩＤ、及びＶＶＯＬ省電力属性を含む。ＶＶＯＬの容量は、ＶＶＯＬの「総ページ数」と１仮想ページの容量との乗算により算出される。ＶＶＯＬの使用率は、ＶＶＯＬの「総ページ数」に対するＶＶＯＬの「割当済みページ数」の割合である。「ＲＧ  ＩＤ」は、例えば、ＶＶＯＬについての省電力ＲＧのＩＤであり、ＶＶＯＬについて省電力ＲＧが無い場合には“Ｎ／Ａ”と表示される。また、プールＩＤが“Ｎ／Ａ”となっているＶＶＯＬのＩＤは、ホストに認識されるＲＶＯＬのＩＤである。格別図示していないが、ＣＭＰＫ１１９に記憶される情報としては、前述した種々のテーブルに限らず、ホストに認識されるＲＶＯＬに関する情報（例えば、ＲＶＯＬの容量、ＲＶＯＬの基になっているＲＧのＩＤ、そのＲＧの省電力属性が“有”か“無”か）がある。
【０１１５】
ＶＶＯＬ管理情報２０００は、図１８に例示した種類の情報に代えて又は加えて、前述した種々のテーブルに基づいて特定可能な他種の情報を含んでも良い。
【０１１６】
＜省電力設定変更処理＞。
【０１１７】
図１９は、省電力設定変更処理のフローを示す。
【０１１８】
ホスト１０１（又は管理装置１０７）から、ＶＶＯＬを指定した省電力要求を受けた場合に、省電力制御プログラム４１３は、以下の処理を行う。省電力要求で指定されるＶＶＯＬは、通常、ＶＶＯＬ省電力属性（図７参照）が“無”であるＶＶＯＬである。図１９の説明において、省電力要求で指定されたＶＶＯＬを「対象ＶＶＯＬ」という。
【０１１９】
Ｓ２１０１で、プログラム４１３は、対象ＶＶＯＬが関連付けられているプールの基になっている複数のＲＧに省電力ＲＧがあるか否かを判定する。具体的には、プログラム４１３は、以下の処理：
（＊）プール管理テーブル４０２（図６）を参照して、対象ＶＶＯＬが関連付けられているプールの基になっている複数のＲＧを特定する、
（＊）ＲＧ管理テーブル４０４（図８）を参照して、上記特定した複数のＲＧのうち、ＲＧ省電力属性が“有”のＲＧが存在するか否かを判定する、
を行う。判定の結果、ＲＧ省電力属性が“有”のＲＧが存在する場合は、Ｓ２１０６が行われる。判定の結果、ＲＧ省電力属性が“有”のＲＧが存在しない場合は、Ｓ２１０２が行われる。ＲＧ省電力属性が“有”のＲＧが存在する場合、プログラム４１３は、そのＲＧに対応するフラグ（ＲＧ管理テーブル４０４におけるフラグ）を“ＯＦＦ”に更新する。
【０１２０】
Ｓ２１０２で、プログラム４１３は、ＶＶＯＬ管理テーブル４０３（図７）を参照して、対象ＶＶＯＬに対応する「ティア優先」が“オン”または“オフ”のいずれが設定されているかを判定する。判定の結果、ティア優先が“オン”である場合は、Ｓ２１０８が行われる。判定の結果、ティア優先が“オフ”である場合は、Ｓ２１０３が行われる。ティア優先が“オン”である場合の処理から説明する。
【０１２１】
（ティア優先がオンである場合の処理（Ｓ２１０〜Ｓ２１１０））。
【０１２２】
Ｓ２１０８で、プログラム４１３は、ティアの優先順位に基づいて、省電力ＲＧ候補を選択する。具体的には、プログラム４１３は、ティア定義テーブル（図５）を参照して、ティアの種類に応じた優先順位を決定する。例えば、ティアの種類に応じた優先順位は、性能の低い順（ＲＧの速度が遅い順）に、ＳＡＴＡ＞ＳＡＳ＞ＳＳＤのとしてもよいし、また、ＲＧの消費電力の高い順に、ＳＡＳ＞ＳＡＴＡ＞ＳＳＤとしてもよい。プログラム４１３は、優先順位の最も高いティアに属するＲＧを、省電力ＲＧ候補として選択する。以下、「ティア優先がオンである場合の処理（Ｓ２１０〜Ｓ２１１０）」の説明において、選択された省電力ＲＧ候補を「選択ＲＧ候補」という。
【０１２３】
なお、優先順位の指針（例えば、どのような要素が優れているほど高い優先順位となるのか低い優先順位となるのか）は、ユーザが自由に決定して良い。優先順位の高さは、例えば、ＲＧを構成するＰＤＥＶの消費電力及び／又は性能に基づいて決定されて良い。
【０１２４】
Ｓ２１０９で、プログラム４１３は、選択ＲＧ候補が、１つか又は複数かを判定する。選択ＲＧ候補が１つである場合（その選択ＲＧ候補を、図１９の説明において、「対象ＲＧ」という）には、Ｓ２１０６が行われる。選択ＲＧ候補が複数ある場合には、対象ＲＧを決定するため（すなわち、複数の選択ＲＧ候補から１つのＲＧを選択するため）、Ｓ２１１０が行われる。
【０１２５】
Ｓ２１１０で、プログラム４１３は、複数の選択ＲＧ候補から、各選択ＲＧ候補の容量に基づき、１つの選択ＲＧ候補を、対象ＲＧとして決定する。ここでは、総チャンク数が一番少ないＲＧ（すなわち、フリーの実ページを最も減らすことのないＲＧ）が、対象ＲＧとして決定される。総チャンク数が一番少ない選択ＲＧ候補が複数ある場合には、その複数の選択ＲＧ候補の中から、チャンク使用率が最も小さいＲＧ（すなわち、他のＲＧへ移動すべきデータの総量が少なくて済むようなＲＧ）が、対象ＲＧとして決定される。具体的には、プログラム４１３は、以下の処理：
（＊）ＲＧ管理テーブル４０４を参照して、複数の選択ＲＧ候補のうち、総チャンク数が一番少ないＲＧを選択する（ここで選択された選択ＲＧ候補を、「ティア優先がオンである場合の処理（Ｓ２１０〜Ｓ２１１０）」の説明において、以下、単に「ＲＧ候補」という）、
（＊）ＲＧ候補が１つの場合は、そのＲＧ候補を、対象ＲＧに決定する、
（＊）ＲＧ候補が複数ある場合は、各ＲＧ候補のチャンクの使用率（＝（使用チャンク数/総チャンク数）×１００（％））を計算し、算出されたチャンク使用率が最も小さいＲＧ候補を、対象ＲＧに決定する、
を行う。
【０１２６】
なお、このＳ２１１０では、プログラム４１３は、下記（Ｘ）、
（Ｘ）アロケーションテーブル４０５及びＲＧ管理テーブル４０４に基づき、総チャンク数の最も少ない選択ＲＧ候補が有する１以上のフリーの実ページの総量よりも、対象ＶＶＯＬ内のデータの総量の方が小さいか否かを判定する、
を行って良い。この判定の結果が否定的の場合、このＳ２１１０が終了して良い。一方、この判定の結果が肯定的の場合、プログラム４１３は、下記の（ａ）又は（ｂ）の処理を行って良い。（ａ）は、ティアの優先順位を優先した処理であり、（ｂ）は、ＲＧの容量を優先した処理である。
（ａ）プログラム４１３は、優先順位の最も高いティアに属する複数の選択ＲＧ候補から、フリーの実ページの総量が対象ＶＶＯＬ内のデータの総量以上であるＲＧを探す。プログラム４１３は、そのようなＲＧが見つかれば、そのＲＧを対象ＲＧに決定する。一方、プログラム４１３は、そのようなＲＧが見つからなければ、なるべく優先順位の高いティアに属する複数の選択ＲＧ候補から、そのようなＲＧを探す。
（ｂ）プログラム４１３は、
（ｂ１）直前回の優先順位より１つ下位の優先順位のティアに属する複数の選択ＲＧ候補から、総チャンク数が最も少ないＲＧを選択する、
（ｂ２）そのようなＲＧが１つであれば、そのＲＧを対象ＲＧとする、
（ｂ３）そのようなＲＧが複数ある場合、それら複数のＲＧから、チャンク使用率が最も小さいＲＧを、対象ＲＧとして選択する、
（ｂ４）選択した対象ＲＧについて、上記（Ｘ）の判定を行う、
（ｂ５）その判定の結果が肯定的であれば、Ｓ２１１０を終了する、
（ｂ６）その判定の結果が否定的であれば、上記（ｂ１）を行う、
を行って良い。
【０１２７】
（ティア優先がオフである場合に行われる処理（Ｓ２１０３〜Ｓ２１０５））。
【０１２８】
Ｓ２１０３で、プログラム４１３は、対象ＶＶＯＬが関連付けられているプールの基になっている複数のＲＧから、それら複数のＲＧの各々の容量に基づき、１つのＲＧを選択する。ここでは、総チャンク数が一番少ないＲＧ（すなわち、フリーの実ページを最も減らすことのないＲＧ）が、選択される。総チャンク数が一番少ないＲＧが複数ある場合には、その複数のＲＧの中から、チャンク使用率が最も小さいＲＧ（すなわち、他のＲＧへ移動すべきデータの総量が少なくて済むようなＲＧ）が選択される。具体的には、プログラム４１３は、以下の処理：
（＊）ＲＧ管理テーブル４０４を参照して、対象ＶＶＯＬが関連付けられているプールの基になっている複数のＲＧのうち、総チャンク数が一番少ないＲＧを選択する（ここで選択されたＲＧを、「ティア優先がオフである場合に行われる処理（Ｓ２１０３〜Ｓ２１０５）」の説明において、以下、「選択ＲＧ候補」という）、
（＊）選択ＲＧ候補が１つの場合は、その選択ＲＧ候補を、ＲＧ候補に決定する、
（＊）選択ＲＧ候補が複数ある場合は、各ＲＧ候補のチャンクの使用率（＝（使用チャンク数/総チャンク数）×１００（％））を計算し、算出されたチャンク使用率が所定の閾値以下の選択ＲＧ候補を、ＲＧ候補に決定する、
を行う。
【０１２９】
Ｓ２１０４で、プログラム４１３は、ＲＧ候補が、１つか又は複数かを判定する。ＲＧ候補が１つである場合には、そのＲＧ候補が対象ＲＧとなり、続いて、Ｓ２１０６が行われる。ＲＧ候補が複数ある場合には、対象ＲＧを決定するため、Ｓ２１０５が行われる。
【０１３０】
Ｓ２１０５で、プログラム４１３は、ティアの優先順位に基づいて、対象ＲＧを決定する。具体的には、プログラム４１３は、Ｓ２１０８と同様に、ティア定義テーブル（図５）を参照して、ティアの種類に応じた優先順位を決定する。例えば、ティアの種類に応じた優先順位は、性能の低い順（ＲＧの速度が遅い順）に、ＳＡＴＡ＞ＳＡＳ＞ＳＳＤのとしてもよいし、また、ＲＧの消費電力の高い順に、ＳＡＳ＞ＳＡＴＡ＞ＳＳＤとしてもよい。プログラム４１３は、複数のＲＧ候補のなかから、最も優先順位の高いティアに属するＲＧを１つ選択する。その選択されたＲＧ候補が、対象ＲＧである。なお、最も優先順位の高いティアに属するＲＧ候補が複数ある場合には、チャンク使用率が最も小さいＲＧ候補が、対象ＲＧとされて良い。
【０１３１】
（マイグレーションの要否判定）。
【０１３２】
Ｓ２１０６で、プログラム４１３は、対象ＲＧについて、マイグレーション処理が必要であるかを判定する。具体的には、プログラム４１３は、下記の処理：
（ａ）対象ＲＧに基づく使用中の実ページがあるか否かを判定する、
（ｂ）上記（ａ）の判定の結果が肯定的の場合、対象ＲＧに基づく全ての使用中実ページが、対象ＶＶＯＬに割り当てられているかを判定する、
を行う。上記（ａ）の判定の結果が否定的の場合、又は、上記（ｂ）の判定の結果が肯定的の場合、マイグレーション処理は必要ない。マイグレーション処理が必要ない場合は、省電力設定変更処理（図１９の処理）は終了となる。一方、上記（ｂ）の判定の結果が否定的の場合、対象ＶＶＯＬ以外のＶＶＯＬ内のデータが対象ＲＧに格納されているということなので、マイグレーション処理が必要となる。この場合は、Ｓ２１０７においてマイグレーション処理が行われる。
【０１３３】
（マイグレーション処理）。
【０１３４】
Ｓ２１０７で、プログラム４１３は、マイグレーション処理を行う。具体的には、プログラム４１３は、対象ＶＶＯＬ以外のＶＶＯＬに割り当てられている実ページが対象ＲＧにあれば、下記（Ａ）の処理を行う。下記（Ａ）の処理を行った後、対象ＶＶＯＬに割り当てられている実ページが対象ＲＧ以外のＲＧにあれば、下記（Ｂ）の処理を行う。そして、プログラム４１３は、（Ａ）及び（Ｂ）の処理を完了した後、（Ｃ）の処理を行う。
（Ａ）下記（ａ１）乃至（ａ３）が行われる。
（ａ１）プログラム４１３は、対象ＶＶＯＬ以外のＶＶＯＬに割り当てられている実ページ（対象ＲＧが有する実ページ）内のデータを、対象ＲＧ以外のＲＧ（ＲＧ省電力属性“無”のＲＧであって、対象ＶＶＯＬが関連付けられているプールの基になっているＲＧ）に基づくフリーの実ページに移動する。
（ａ２）プログラム４１３は、（ａ１）での移動元の実ページが割り当てられている仮想ページに、その移動元の実ページに代えて、移動先の実ページを割り当てるように、アロケーションテーブル４０５を更新する。
（ａ２）プログラム４１３は、（ａ１）での移動元の実ページをフリーとし、（ａ１）での移動先の実ページを使用中とするように、実ページ管理テーブル４０８を更新する。
（Ｂ）下記（ｂ１）乃至（ｂ３）が行われる。
（ｂ１）プログラム４１３は、対象ＶＶＯＬに割り当てられている実ページ（対象ＲＧ以外のＲＧが有する実ページ）内のデータを、対象ＲＧに基づくフリーの実ページに移動する。
（ｂ２）プログラム４１３は、（ｂ１）での移動元の実ページが割り当てられている仮想ページに、その移動元の実ページに代えて、移動先の実ページを割り当てるように、アロケーションテーブル４０５を更新する。
（ｂ２）プログラム４１３は、（ｂ１）での移動元の実ページをフリーとし、（ｂ１）での移動先の実ページを使用中とするように、実ページ管理テーブル４０８を更新する。
（Ｃ）プログラム４１３は、ＶＶＯＬ管理テーブル４０３（図７）における、対象ＶＶＯＬのＶＶＯＬ省電力属性を、“有”に更新する。また、プログラム４１３は、ＲＧ管理テーブル４０４（図８）における、ＲＧ省電力属性が“無”であればそれを“有”に変更し、且つ、対象ＲＧに対応するフラグを“ＯＦＦ”から“ＯＮ”に更新する。
【０１３５】
なお、このＳ２１０７において、プログラム４１３は、対象ＲＧ（省電力ＲＧ）から対象ＶＶＯＬ以外のＶＶＯＬ内のデータを移動したと仮定して、アロケーションテーブル４０５及びＲＧ管理テーブル４０４を基に、対象ＶＶＯＬ内のデータの総量以上の総容量のフリーの実ページが対象ＲＧ（省電力ＲＧ）に存在するかどうかを判定して良い。この判定の結果が肯定的の場合、プログラム４１３は、対象ＶＶＯＬ内の全てのデータのうち、ライトの時刻が相対的に過去のデータ（相対的に古いデータ）を、対象ＲＧ（省電力ＲＧ）に移動し、ライトの時刻が相対的に未来のデータ（相対的に新しいデータ）を、対象ＲＧ（省電力ＲＧ）以外の記憶領域（対象ＶＶＯＬが関連付けられているプールの基になっている他のＲＧ（ＲＧ省電力属性が“無”のＲＧ））に移動して良い。
【０１３６】
＜スピンダウン処理＞。
【０１３７】
図２０は、スピンダウン処理のフローを示す。
【０１３８】
Ｓ２２０１で、プログラム４１３は、ＲＶＯＬ管理テーブル（図８）参照して、フラグがＯＮのＲＧを特定する。
【０１３９】
Ｓ２２０２で、プログラム４１３は、特定したＲＧを構成する全てのＰＤＥＶをスピンダウンさせる（省電力状態にさせる）。プログラム４１３は、特定したＲＧに対応した状態（ＲＧ管理テーブル４０４における状態）を、“スピンアップ”から“スピンダウン”に更新する。
【０１４０】
以上が、本実施例の説明である。
【０１４１】
本実施例によれば、ホスト１０１（又は管理装置１０７）から省電力対象として或るＶＶＯＬ（以下、この段落で「対象ＶＶＯＬ」）が指定された場合、下記（ｘ）及び（ｙ）、
（ｘ）対象ＶＶＯＬ内のデータが、省電力ＲＧ（ＲＧ省電力属性が“有”のＲＧ）以外のＲＧにある場合、そのデータを省電力ＲＧに移動すること、
（ｙ）対象ＶＶＯＬ以外のＶＶＯＬ内のデータが、省電力ＲＧにある場合、そのデータを、省電力ＲＧ以外の記憶領域（例えば、省電力ＲＧ以外のＲＧ）に移動すること、
が行われる。これにより、省電力ＲＧが省電力状態になっている間に、対象ＶＶＯＬ以外のＶＶＯＬを指定したＩ／Ｏコマンドを受けても、Ｉ／Ｏ先の記憶領域（例えばＲＧ）が省電力ＲＧとなることがないので、省電力状態を解除する必要が無い。
【０１４２】
また、省電力ＲＧに格納されているデータは、省電力ＶＶＯＬ内のデータのみである。省電力ＶＶＯＬは、省電力要求で指定されたＶＶＯＬであるが、そのようなＶＶＯＬは、例えば、一定時間以上Ｉ／Ｏコマンドで指定されることのないＶＶＯＬである。この点から、省電力ＲＧの省電力状態を解除する頻度を抑えることができる。
【０１４３】
以上、本発明の一実施例を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【０１４４】
例えば、プールにチャンクが存在しなくても良い。
【０１４５】
また、例えば、１つのＲＧに基づく複数のＲＶＯＬに、ホストから認識されるＲＶＯＬ（通常ＲＶＯＬ）と、プールを構成するＲＶＯＬ（プールＲＶＯＬ）とが混在しても良い。通常ＲＶＯＬとプールＲＶＯＬが混在するＲＧ（以下、混在ＲＧ）のＲＧ省電力属性が“有”とされた場合、プログラム４１３は、混在ＲＧに基づく全ての通常ＲＶＯＬが省電力対象であれば、混在ＲＧをスピンダウン状態として良い。
【０１４６】
また、例えば、省電力ＶＶＯＬの数が増えていくことで、１つの省電力ＲＧ（ＲＧ省電力属性が“有”のＲＧ）の容量よりも省電力ＶＶＯＬ内のデータを総量が大きくなった場合には、下記の（ａ）又は（ｂ）が行われても良い。
（ａ）プログラム４１３が、全ての省電力ＶＶＯＬ内のデータの総量以上に容量が大きいＲＧを、現在の１つの省電力ＲＧに代えて、新たに省電力ＲＧとする。
（ｂ）プログラム４１３が、全ての省電力ＶＶＯＬ内のデータの総量以上の合計容量となるように、１つの省電力ＲＧに加えて、別のＲＧ（但し、省電力ＶＶＯＬが関連付けられているプールの基になっているＲＧ）も、省電力ＲＧとする。
【０１４７】
また、省電力ＲＧは、複数のＲＧに基づくプールの作成の際に、管理者が、それら複数のＲＧのうちの１以上のＲＧを省電力ＲＧとして決定しても良い。
【０１４８】
また、省電力ＶＶＯＬは、省電力要求で指定されたＶＶＯＬに代えて又は加えて、所定の条件を満たすＶＶＯＬであって良い。例えば、プログラム４１３は、一定時間Ｉ／Ｏ先として指定されていないＶＶＯＬを省電力ＶＶＯＬとして決定しても良い。
【０１４９】
また、例えば、図１９において、Ｓ２１０１の判定の結果が肯定的でも、既存の省電力ＲＧが有するフローの実ページの総容量が、新たな対象ＶＶＯＬ内の全てのデータを総容量未満の場合、プログラム４１３は、既存の省電力ＲＧに代えて又は加えて、新たにいずれかのＲＧを省電力ＲＧとすべく、Ｓ２１０２以降を行って良い。
【０１５０】
また、例えば、省電力ＲＧの決定の際、省電力ＶＶＯＬ内のデータが集約されても未使用チャンク数が所定の閾値以上になるようなＲＧが、省電力ＲＧとして決定されて良い。この場合、所定の閾値は、省電力ＶＶＯＬに書き込まれるデータの増加量（単位時間当たりにどのぐらいの量のデータが書き込まれたか）を基に決定されて良い。省電力ＶＶＯＬを指定したライトコマンドに付随するライト対象データは、常に、省電力ＲＧに書き込まれる。なぜなら、前述したように、省電力ＶＶＯＬに対応する前回割当ＲＧ  ＩＤは、固定であるためである。
【符号の説明】
【０１５１】
１０３…ストレージシステム  １０１・・・ホスト  １０５・・・ＰＤＥＶ  １０７・・・管理装置  １１１・・・ＣＨＡ  １１３・・・ＤＫＡ  １１７・・・ＳＷ  １１９・・・ＣＭＰＫ  １２１・・・ＭＰＰＫ  ２０３・・・ＶＶＯＬ  ２０５・・・ＲＶＯＬ  ２０７・・・仮想ページ  ２０９・・・実ページ  ３０１・・・ＲＧ
【図１】
0005427314.tif 000002
【図２】
0005427314.tif 000003
【図３】
0005427314.tif 000004
【図４】
0005427314.tif 000005
【図５】
0005427314.tif 000006
【図６】
0005427314.tif 000007
【図７】
0005427314.tif 000008
【図８】
0005427314.tif 000009
【図９】
0005427314.tif 000010
【図１０】
0005427314.tif 000011
【図１１】
0005427314.tif 000012
【図１２】
0005427314.tif 000013
【図１３】
0005427314.tif 000014
【図１４】
0005427314.tif 000015
【図１５】
0005427314.tif 000016
【図１６】
0005427314.tif 000017
【図１７】
0005427314.tif 000018
【図１８】
0005427314.tif 000019
【図１９】
0005427314.tif 000020
【図２０】
0005427314.tif 000021