(57)【特許請求の範囲】
【請求項１】
第１のサイズを有する複数の物理チャンクを含む記憶領域を備えた第１のストレージ装置と、
前記第１のサイズを有する複数の物理チャンクを含む記憶領域を備え、且つ前記第１のストレージ装置よりもアクセス速度が低速で記憶容量が大きい第２のストレージ装置と、
前記第１のストレージ装置及び前記第２のストレージ装置を制御するストレージコントローラとを備え、
前記ストレージコントローラは、論理ボリューム管理部と、アクセス統計収集部と、第１の再配置部と、第２の再配置部と、評価部とを備え、
前記論理ボリューム管理部は、前記第１のサイズを有する複数の論理チャンクを含み、且つホストコンピュータに提供される論理ボリュームであって、前記第１のストレージ装置の第１の記憶領域、前記第１のストレージ装置の第２の記憶領域、及び前記第２のストレージ装置の第３の記憶領域が前記物理チャンクを単位に割り当てられる論理ボリュームを管理し、
前記アクセス統計収集部は、前記論理ボリュームにおける前記複数の論理チャンクそれぞれへのアクセスの状況を表すアクセス頻度統計値を収集し、
前記第１の再配置部は、アクセス頻度統計値が大きい第１の論理チャンクを選択し、前記第１の論理チャンクに前記第３の記憶領域内の第１の物理チャンクが割り当てられている場合、前記第１の論理チャンクよりもアクセス頻度統計値が小さい第２の論理チャンクに割り当てられている前記第１の記憶領域内の第２の物理チャンクを前記第１の論理チャンクに再割り当てし、且つ前記第１の物理チャンクを前記第２の論理チャンクに再割り当てし、
前記第２の再配置部は、前記第２の記憶領域が再割り当てされるべき第３の論理チャンクの組を、前記第３の論理チャンクの組に前記第３の記憶領域が割り当てられていることを条件に選択して、前記第３の論理チャンクの組に前記第２の記憶領域を再割り当てし、
前記評価部は、前記第２の記憶領域の前記再割り当ての効果を評価する
階層化ストレージシステム。
【請求項２】
前記第２の再配置部は、前記第３の論理チャンクの組の選択を、選択される第３の論理チャンクの組を変えて繰り返し、前記第３の論理チャンクの組が選択された場合、前記第２の記憶領域が割り当てられている第４の論理チャンクの組に、前記第３の記憶領域内の元の領域を再割り当てし、且つ前記選択された第３の論理チャンクの組に前記第２の記憶領域内の物理チャンクの組を再割り当てし、
前記評価部は、前記第２の記憶領域の前記再割り当ての効果に関する評価結果の第１の履歴と、前記物理チャンクの組が再割り当てされた前記第３の論理チャンクの組に前記再割り当ての前に割り当てられていた前記第３の記憶領域内の物理チャンクの組を示す物理チャンク一覧の第２の履歴とを、前記ストレージコントローラ内の記憶装置に保存する
請求項１記載の階層化ストレージシステム。
【請求項３】
前記第２の再配置部は、前記第１の履歴及び前記第２の履歴に基づいて、評価結果が最も高い第１の再割り当ての状態を復元する請求項２記載の階層化ストレージシステム。
【請求項４】
前記第２の再配置部は、前記第２の履歴に基づいて、前記第１の再割り当てにおいて前記物理チャンクの組が再割り当てされた前記第３の論理チャンクの組に前記第１の再割り当ての前に割り当てられていた前記第３の記憶領域内の物理チャンクの組を特定し、前記特定された物理チャンクの組のデータを前記第２の記憶領域にコピーすることにより、前記第１の再割り当ての状態を復元する請求項３記載の階層化ストレージシステム。
【請求項５】
前記第２の再配置部は、前記第３の記憶領域から、前記第２の記憶領域に対応する数の物理チャンクを単位に物理チャンクの組をシーケンシャルに選択し、前記第３の記憶領域から物理チャンクの組が選択された場合、前記選択された物理チャンクの組に割り当てられている論理チャンクの組を前記第３の論理チャンクの組として選択する請求項２記載の階層化ストレージシステム。
【請求項６】
前記第２の再配置部は、前記第１の記憶領域内の物理チャンクに割り当てられた論理チャンクがそれぞれ当該割り当て前に割り当てられていた前記第３の記憶領域内の物理チャンクを順次選択し、前記第３の記憶領域から物理チャンクが選択された場合、前記選択された物理チャンクの周辺の物理チャンクの組が割り当てられている論理チャンクの組を前記第３の論理チャンクの組として選択する請求項２記載の階層化ストレージシステム。
【請求項７】
前記評価部は、前記第２の記憶領域の前記再割り当てに応じて、前記論理ボリュームへのランダムリードアクセス及び前記論理ボリュームの第４の記憶領域へのシーケンシャルリードアクセスの少なくとも一方を実行して、前記ランダムリードアクセス及び前記シーケンシャルリードアクセスの前記少なくとも一方のスループットを測定し、当該測定されたスループットを、前記第２の記憶領域の前記再割り当ての効果に関する評価結果として取得する請求項２記載の階層化ストレージシステム。
【請求項８】
第１のサイズを有する複数の物理チャンクを含む記憶領域を備えた第１のストレージ装置と、前記第１のサイズを有する複数の物理チャンクを含む記憶領域を備え、且つ前記第１のストレージ装置よりもアクセス速度が低速で記憶容量が大きい第２のストレージ装置とを具備する階層化ストレージシステムにおいて、前記第１のストレージ装置及び前記第２のストレージ装置を制御するストレージコントローラであって、
前記第１のサイズを有する複数の論理チャンクを含み、且つホストコンピュータに提供される論理ボリュームであって、前記第１のストレージ装置の第１の記憶領域、前記第１のストレージ装置の第２の記憶領域、及び前記第２のストレージ装置の第３の記憶領域が前記物理チャンクを単位に割り当てられる論理ボリュームを管理する論理ボリューム管理部と、
前記論理ボリュームにおける前記複数の論理チャンクそれぞれへのアクセスの状況を表すアクセス頻度統計値を収集するアクセス統計収集部と、
アクセス頻度統計値が大きい第１の論理チャンクを選択し、前記第１の論理チャンクに前記第３の記憶領域内の第１の物理チャンクが割り当てられている場合、前記第１の論理チャンクよりもアクセス頻度統計値が小さい第２の論理チャンクに割り当てられている前記第１の記憶領域内の第２の物理チャンクを前記第１の論理チャンクに再割り当てし、且つ前記第１の物理チャンクを前記第２の論理チャンクに再割り当てする第１の再配置部と、
前記第２の記憶領域が再割り当てされるべき第３の論理チャンクの組を、前記第３の論理チャンクの組に前記第３の記憶領域が割り当てられていることを条件に選択して、前記第３の論理チャンクの組に前記第２の記憶領域を再割り当てする第２の再配置部と、
前記第２の記憶領域の前記再割り当ての効果を評価する評価部と
を備えるストレージコントローラ。
【請求項９】
第１のサイズを有する複数の物理チャンクを含む記憶領域を備えた第１のストレージ装置と、前記第１のサイズを有する複数の物理チャンクを含む記憶領域を備え、且つ前記第１のストレージ装置よりもアクセス速度が低速で記憶容量が大きい第２のストレージ装置とを具備する階層化ストレージシステムにおいて、前記第１のストレージ装置及び前記第２のストレージ装置を制御ストレージコントローラに、
前記論理ボリューム管理部は、前記第１のサイズを有する複数の論理チャンクを含み、且つホストコンピュータに提供される論理ボリュームであって、前記第１のストレージ装置の第１の記憶領域、前記第１のストレージ装置の第２の記憶領域、及び前記第２のストレージ装置の第３の記憶領域が前記物理チャンクを単位に割り当てられる論理ボリュームを管理することと、
前記論理ボリュームにおける前記複数の論理チャンクそれぞれへのアクセスの状況を表すアクセス頻度統計値を収集することと、
アクセス頻度統計値が大きい第１の論理チャンクを選択し、前記第１の論理チャンクに前記第３の記憶領域内の第１の物理チャンクが割り当てられている場合、前記第１の論理チャンクよりもアクセス頻度統計値が小さい第２の論理チャンクに割り当てられている前記第１の記憶領域内の第２の物理チャンクを前記第１の論理チャンクに再割り当てし、且つ前記第１の物理チャンクを前記第２の論理チャンクに再割り当てすることと、
前記第２の記憶領域が再割り当てされるべき第３の論理チャンクの組を、前記第３の論理チャンクの組に前記第３の記憶領域が割り当てられていることを条件に選択して、前記第３の論理チャンクの組に前記第２の記憶領域を再割り当てすることと、
前記第２の記憶領域への前記再配置の効果を評価することと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラムに関する。
【背景技術】
【０００２】
近年、アクセス速度の異なる第１及び第２のストレージ装置を備えたストレージシステムが開発されている。ここで、第１のストレージ装置のアクセス速度及び記憶容量は高速で小容量であり、第２のストレージ装置は、第１のストレージ装置のそれと比較して低速で大容量であるものとする。ストレージシステムは、第１のストレージ装置（以下、高速ストレージ装置と称する）及び第２のストレージ装置（以下、低速ストレージ装置と称する）を階層的に組み合わせることにより実現される。そこで、このようなストレージシステムは、階層化ストレージシステムとも呼ばれる。階層化ストレージシステムにおいて、高速ストレージ装置は上位階層に割り当てられ、低速ストレージ装置は下位階層に割り当てられるのが一般的である。【０００３】
また近年は、ストレージシステム全般に、記憶領域の仮想化が一般的になってきている。このことは、階層化ストレージシステムにおいても同様である。このような階層化ストレージシステムにおいて、高速ストレージ装置及び低速ストレージ装置の記憶領域（以下、物理ボリュームと称する）の少なくとも一部は、論理ボリュームに割り当てられる（つまり、マッピングされる）。論理ボリュームとは、ストレージシステム（階層化ストレージシステム）を利用するホストコンピュータ（以下、ホストと称する）によって論理的なストレージドライブ（つまり、論理ディスクまたは論理ユニット）として認識される論理的な記憶領域を指す。【０００４】
ホスト上で動作するアプリケーションのような上位のプログラムは、論理アドレスを用いて論理ボリュームにアクセスする。論理アドレスは、例えば、ホストのオペレーティングシステム（ＯＳ）またはストレージシステムのストレージコントローラが有するアドレス変換機能によって、高速ストレージ装置または低速ストレージ装置の物理アドレスに変換される。この物理アドレスに基づいて、論理ボリューム内の記憶領域にマッピングされた物理ボリューム内の記憶領域がアクセスされる。これにより、上位のプログラムは、ストレージ装置内の記憶領域を意識することなく、当該ストレージ装置内の記憶領域にアクセスすることができる。【０００５】
さて、階層化ストレージシステムでは、論理ボリューム及び物理ボリュームは、管理のために、一定サイズを有する複数の小領域に分割される。このような小領域はチャンクと呼ばれる。論理ボリューム内のチャンクと及び物理ボリューム内のチャンクとを区別する必要がある場合には、前者を論理チャンク、後者を物理チャンクと呼ぶ。【０００６】
ストレージコントローラは、チャンク（例えば、論理チャンク）毎に、対応するチャンクへのアクセスの状況を監視する。このアクセスの状況を表す指標として、一定期間（監視期間）におけるチャンク毎の、アクセス回数（つまり、リード／ライトの入出力回数）またはアクセスデータ量の総和のようなアクセス頻度統計値が用いられるのが一般的である。【０００７】
ストレージコントローラは、論理チャンク毎のアクセス頻度統計値に基づいて、上位階層の物理チャンクが割り当てられている論理チャンクに下位階層の物理チャンクを、下位階層の物理チャンクが割り当てられている論理チャンクに上位階層の物理チャンクを、それぞれ再割り当てする。即ちストレージコントローラは、上位階層の物理チャンクのデータを下位階層の物理チャンクに、下位階層の物理チャンクのデータを上位階層の物理チャンクに、それぞれ再配置する。【０００８】
上述の再割り当て（再配置）に応じて、論理チャンクのアドレス変換情報が更新される。つまり、論理チャンクの論理アドレスに対応付けられる物理アドレスが、当該論理チャンクに再割り当てされた物理チャンクを示すように更新される。上位プログラムは、このような論理チャンクへの物理チャンクの再割り当て後も、当該再割り当て（より詳細には、当該再割り当てに伴うアドレス変換情報の更新）を意識することなく、当該論理チャンクの論理アドレスを用いて対応する物理チャンク（つまり、再割り当てされた物理チャンク）にアクセスすることができる。このように階層化ストレージシステムは、記憶領域の仮想化との相性が良い。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平１０−１５４１０１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述のように従来の階層化ストレージシステムでは、チャンク毎にアクセス頻度統計値が取得されて、アクセス頻度統計値が大きい（つまり、アクセス回数または総アクセスデータ量が多い）チャンク（論理チャンク）が上位階層（つまり、高速ストレージ装置）の物理チャンクと対応付けられる。つまり従来技術では、監視期間毎に、アクセス頻度統計値（アクセス頻度）が大きい（高い）と判定された論理チャンクに、高速ストレージの記憶領域（つまり、高速領域）が割り当てられる（マッピングされる）。このような割り当て（階層化）により、階層化ストレージシステム全体の性能の向上が期待される。【００１１】
従来技術では、アクセス頻度統計値が小さい論理チャンクに、低速ストレージ装置の記憶領域（つまり、低速領域）が割り当てられる。しかし、アクセス頻度統計値が小さい論理チャンクの集合の中には、高速領域が割り当てられることによって、階層化ストレージシステム全体の性能（つまり、システム性能）をより一層向上できるチャンクが含まれている可能性がある。【００１２】
本発明が解決しようとする課題は、アクセス頻度統計値が小さい論理チャンクにも高速領域が割り当てられる機会を与えて、その割り当てがシステム性能に及ぼす効果を評価することができる、トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
実施形態によれば、階層化ストレージ装置は、第１のストレージ装置と、前記第１のストレージ装置よりもアクセス速度が低速で記憶容量が大きい第２のストレージ装置と、ストレージコントローラとを備える。前記第１のストレージ装置は、第１のサイズを有する複数の物理チャンクを含む記憶領域を備える。前記第２のストレージ装置は、前記第１のサイズを有する複数の物理チャンクを含む記憶領域を備える。前記ストレージコントローラは、前記第１のストレージ装置及び前記第２のストレージ装置を制御する。前記ストレージコントローラは、論理ボリューム管理部と、アクセス統計収集部と、第１の再配置部と、第２の再配置部と、評価部とを備える。前記論理ボリューム管理部は、前記第１のストレージ装置の第１の記憶領域、前記第１のストレージ装置の第２の記憶領域、及び前記第２のストレージ装置の第３の記憶領域が前記物理チャンクを単位に割り当てられる論理ボリュームを管理する。前記論理ボリュームは、前記第１のサイズを有する複数の論理チャンクを含み、且つホストコンピュータに提供される。前記アクセス統計収集部は、前記論理ボリュームにおける前記複数の論理チャンクそれぞれへのアクセスの状況を表すアクセス頻度統計値を収集する。前記第１の再配置部は、アクセス頻度統計値が大きい第１の論理チャンクを選択し、前記第１の論理チャンクに前記第３の記憶領域内の第１の物理チャンクが割り当てられている場合、前記第１の論理チャンクよりもアクセス頻度統計値が小さい第２の論理チャンクに割り当てられている前記第１の記憶領域内の第２の物理チャンクを前記第１の論理チャンクに再割り当てし、且つ前記第１の物理チャンクを前記第２の論理チャンクに再割り当てする。前記第２の再配置部は、前記第２の記憶領域が再割り当てされるべき第３の論理チャンクの組を、前記第３の論理チャンクの組に前記第３の記憶領域が割り当てられていることを条件に選択して、前記第３の論理チャンクの組に前記第２の記憶領域を再割り当てする。前記評価部は、前記第２の記憶領域の前記再割り当ての効果を評価する。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施形態に係るコンピュータシステムの典型的なハードウェア構成を示すブロック図である。
【図２】図２は、図１に示される階層化ストレージシステムにおける記憶領域の典型的な階層構造を説明するための図である。
【図３】図３は、図２に示される論理ボリュームの典型的な構成を説明するための図である。
【図４】図４は、図１に示されるストレージコントローラの典型的な機能構成を主として示すブロック図である。
【図５】図５は、図４に示される論理−物理チャンク変換テーブルのデータ構造の例を示す図である。
【図６】図６は、図４に示される物理チャンク管理テーブルのデータ構造の例を示す図である。
【図７】図７は、図４に示される論理チャンク管理テーブルのデータ構造の例を示図である。
【図８】図８は、図４に示されるチャンク履歴管理テーブルのデータ構造の例を示す図である。
【図９】図９は、図４に示される評価結果管理テーブルのデータ構造の例を示す図である。
【図１０】図１０は、同実施形態において適用される第１の再配置処理の典型的な手順を説明するためのフローチャートである。
【図１１】図１１は、同実施形態において適用される第２の再配置処理の典型的な手順を説明するためのフローチャートである。
【図１２】図１２は、図１１に示される第２の再配置処理において実行される評価処理の典型的な手順を説明するためのフローチャートである。
【図１３】図１３は、第２の再配置処理における初回の再配置の概要を説明するための図である。
【図１４】図１４は、第２の再配置処理における初回以外の再配置の概要を説明するための図である。
【図１５】図１５は、同実施形態の変形例で適用される第２の再配置処理の典型的な手順を説明するためのフローチャートである。
【図１６】図１６は、同変形例における第２の再配置処理の概要を説明するための図である。
【発明を実施するための形態】
【００１５】
以下、種々の実施の形態につき図面を参照して説明する。  
図１は、１つの実施形態に係るコンピュータシステムの典型的なハードウェア構成を示すブロック図である。コンピュータシステムは、階層化ストレージシステム１０及びｎ台のホストコンピュータ（以下、ホストと称する）２０＿１乃至２０＿ｎから構成される。本実施形態において、ｎは１より大きい整数である。つまりコンピュータシステムは、複数のホストを備えている。しかし、ｎが１であっても構わない。つまりコンピュータシステムが、単一のホストを備えていても良い。
【００１６】
ホスト２０＿１乃至２０＿ｎは、階層化ストレージシステム１０を自身の外部記憶装置として利用する。ホスト２０＿１乃至２０＿ｎは、例えば、スイッチングハブ（ネットワークスイッチ）のようなスイッチ３０を介して階層化ストレージシステム１０（より、詳細には、階層化ストレージシステム１０のストレージコントローラ１３）と接続される。以下の説明では、ホスト２０＿１乃至２０＿ｎを特に区別する必要がない場合には、ホスト２０＿１乃至２０＿ｎの各々をホスト２０＿＊と表記する。
【００１７】
階層化ストレージシステム１０は、高速ストレージ装置（第１のストレージ装置）１１と、低速ストレージ装置（第２のストレージ装置）１２と、ストレージコントローラ１３を備えている。高速ストレージ装置１１及び低速ストレージ装置１２は、スイッチ３０と同様のスイッチ１４を介してストレージコントローラ１３と接続されている。
【００１８】
高速ストレージ装置１１は、例えば、フラッシュアレイのような、アクセス応答性能に優れた（つまり、アクセス速度が高速な）フラッシュストレージ装置から構成される。フラッシュストレージ装置は、複数のフラッシュメモリボードを用いて実現される。フラッシュメモリボードの各々は、フラッシュメモリの集合を含む。本実施形態では、複数のフラッシュメモリボードの各々はハードディスクドライブ（ＨＤＤ）との互換性を有していないものとする。しかし、複数のフラッシュメモリボードに代えて、ＨＤＤとの互換性を有する複数のソリッドステートドライブ（ＳＳＤ）が用いられても構わない。
【００１９】
一方、低速ストレージ装置１２は、例えば、高速ストレージ装置１１（フラッシュストレージ装置）と比較してアクセス応答性能が低い（つまり、アクセス速度が低速である）ものの記憶容量が大きい、ハードディスクドライブ（ＨＤＤ）アレイから構成される。ＨＤＤアレイは、例えば、複数のＨＤＤを備えたＲＡＩＤ（Redundant Arrays of Inexpensive DisksまたはRedundant Arrays of Independent Disks）構成のストレージ装置である。なお、高速ストレージ装置１１及び低速ストレージ装置１２が必ずしもアレイ構成を有している必要はない。
【００２０】
上述のように、図１に示される階層化ストレージシステム１０には、アクセス速度（つまりアクセス応答性能）の異なる２つ（２種類）のストレージ装置（つまり、高速ストレージ装置１１１及び低速ストレージ装置１１２）が存在する。この場合、高速ストレージ装置１１１は上位階層（高速階層、第１の階層）に、低速ストレージ装置１１２は下位階層（低速階層、第２の階層）に、それぞれ割り当てられる。なお、階層化ストレージシステム１０が、例えば磁気テープ装置のような、低速ストレージ装置１１２よりも更に低速（低階層、第３の階層）のストレージ装置（第３の階層のストレージ装置）を備えていても良い。
【００２１】
ストレージコントローラ１３は、ホスト２０＿＊から与えられる、論理アドレスを用いたデータアクセス（リードアクセスまたはライトアクセス）の要求（入出力要求）を受けて、要求された入出力（Ｉ／Ｏ）を実行する。このＩ／Ｏの実行に際し、ストレージコントローラ１３は、周知のアドレス変換機能を用いて、論理アドレスを物理ボリューム識別子（ＩＤ）及び物理アドレスに変換する。論理アドレスは、ホスト２０＿＊によって認識される論理ボリューム（論理ディスク）内のアドレスを指す。物理アドレスは、論理アドレスに対応付けられた、ストレージ装置内の物理位置を示し、物理ボリュームＩＤは、当該ストレージ装置の物理ボリューム（つまり、物理的な記憶領域）のＩＤを示す。ストレージコントローラ１３は、この物理ボリュームＩＤ及び物理アドレスに基づいて、高速ストレージ装置１１または低速ストレージ装置１２にアクセスする。本実施形態において、高速ストレージ装置１１または低速ストレージ装置１２は、第２のサイズの領域を最小単位としてアクセスが可能である。この第２のサイズの領域はブロック（またはセクタ）と呼ばれる。本実施形態において、第２のサイズは５１２バイト（Ｂ）である。
【００２２】
ストレージコントローラ１３は、ホストインタフェースコントローラ（以下、ＨＩＦＣと称する）１３０と、ストレージインタフェースコントローラ（以下、ＳＩＦＣと称する）１３１と、メモリ１３２と、ＨＤＤ１３３と、ＣＰＵ１３４とを備えている。
【００２３】
ＨＩＦＣ１３０は、当該ＨＩＦＣ１３０とホスト２０＿＊との間のデータ転送（データ転送プロトコル）を制御する。ＨＩＦＣ１３０は、ホスト２０＿＊からの論理ボリュームに対するＩ／Ｏ要求（リードアクセス要求またはライトアクセス要求）を受信し、当該Ｉ／Ｏ要求に対する応答を返信する。ＨＩＦＣ１３０は、ホスト２０＿＊からＩ／Ｏ要求を受信すると、当該Ｉ／Ｏ要求を、ＣＰＵ１３４に伝達する。Ｉ／Ｏ要求を受け取ったＣＰＵ１３４は、当該Ｉ／Ｏ要求を処理する。
【００２４】
ＳＩＦＣ１３１は、ＣＰＵ１３４が受信したホスト２０＿＊からのＩ／Ｏ要求（論理ボリュームに対するライトアクセス要求またはリードアクセス要求）に基づくアクセス要求（物理ボリュームに対するライトアクセス要求またはリードアクセス要求）を、ＣＰＵ１３４から受信する。ＳＩＦＣ１３１は、受信されたアクセス要求に応じて、高速ストレージ装置１１１または低速ストレージ装置１１３へのアクセスを実行する。
【００２５】
メモリ１３２は、ＤＲＡＭのような書き換えが可能な揮発性メモリである。メモリ１３２の一部の領域は、ＨＤＤ１３３からロードされるストレージ制御プログラム４２０（図４）を格納するのに用いられる。メモリ１３２の他の一部の領域は、ＣＰＵ１３４のためのワーク領域として用いられる。メモリ１３２の更に他の一部の領域は、種々のテーブルを格納するのに用いられる。これらのメモリマップの詳細は後述する。
【００２６】
ＨＤＤ１３３には、ストレージ制御プログラム４２０が格納されている。ＣＰＵ１３４は、ストレージコントローラ１３が起動されたときにイニシャルプログラムローダ（ＩＰＬ）を実行することにより、ＨＤＤ１３３に格納されているストレージ制御プログラム４２０をメモリ１３２にロードする。ＩＰＬは、読み出し専用メモリ（ＲＯＭ）またはフラッシュＲＯＭ（ＦＲＯＭ）のような不揮発性メモリに格納されている。また、メモリ１３２に格納されている各種のテーブルは、適宜ＨＤＤ１３３に保存される。ＨＤＤ１３３に保存された各種のテーブルは、必要に応じて（例えば、当該ストレージコントローラ１３の起動時に）ＨＤＤ１３３からメモリ１３２にロードされる。
【００２７】
ＣＰＵ１３４は、メモリ１３２にロードされたストレージ制御プログラム４２０に従い、後述の論理ボリューム管理部４００、第１の再配置部４０１、第２の再配置部４０２、アクセス統計収集部４０３及び評価部４０４として機能する。つまりＣＰＵ１３４は、メモリ１３２に格納されているストレージ制御プログラム４２０を実行することで、階層化ストレージシステム１０全体（特にストレージコントローラ１３内の各部）を制御する。
【００２８】
本実施形態においてストレージコントローラ１３は、図１に示されているようにホスト２０＿１乃至２０＿ｎから独立して備えられている。しかし、ストレージコントローラ１３が、ホスト２０＿１乃至２０＿ｎのいずれか（ホスト２０＿＊）に内蔵されていても構わない。この場合、ストレージコントローラ１３（より詳細には、ストレージコントローラ１３の機能）が、ホスト２０＿＊の有するオペレーティングシステム（ＯＳ）の機能の一部を用いて実現されても構わない。
【００２９】
また、ストレージコントローラ１３が、ホスト２０＿＊のカードスロットに装着して用いられるカードに備えられていても構わない。また、ストレージコントローラ１３の一部がホスト２０＿＊に内蔵され、当該ストレージコントローラ１３の残りがカードに備えられていても構わない。また、ホスト２０＿＊と、ストレージコントローラ１３と、高速ストレージ装置１１及び低速ストレージ装置１２の一部または全部とが、１つの筐体に収められていても構わない。
【００３０】
図２は、図１に示される階層化ストレージシステム１０における記憶領域の典型的な階層構造を説明するための図である。高速ストレージ装置１１及び低速ストレージ装置１２は、それぞれ物理ボリューム１１０及び１２０を含む。以下の説明では、高速ストレージ装置１１の物理ボリューム１１０を高速物理ボリューム１１０と呼び、低速ストレージ装置１２の物理ボリューム１２０を低速物理ボリューム１２０と呼ぶ。
【００３１】
高速物理ボリューム１１０及び低速物理ボリューム１２０は、管理のために、ストレージコントローラ１３によって第１のサイズのチャンク（つまり物理チャンク）に分割される。即ち高速物理ボリューム１１０及び低速物理ボリューム１２０の各々は、複数のチャンクを備えている。本実施形態において、第１のサイズ（つまり、物理チャンクのサイズ）は４キロバイト（ＫＢ）であり、第２のサイズ（５１２Ｂ）の８倍である。つまり、１チャンクは、８セクタから構成される。勿論、第１のサイズが、４ＫＢ以外、例えば４メガバイト（ＭＢ）であっても構わない。
【００３２】
高速物理ボリューム１１０内のチャンクの群及び低速物理ボリューム１２０内のチャンクの群は、図２に示されるように、ボリュームプール１５を用いて管理される。ボリュームプール１５は、高速物理ボリューム１１０内のチャンクの群及び低速物理ボリューム１２０内のチャンクの群を論理的に収容する（集める）のに用いられる。本実施形態では、ボリュームプール１５は、高速ボリュームグループ１５１及び低速ボリュームグループ１５２から構成される。高速物理ボリューム１１０内のチャンクの群はボリュームプール１５の高速ボリュームグループ１５１に集められ、低速ストレージ装置１２内のチャンクの群はボリュームプール１５の低速ボリュームグループ１５２に集められる。
【００３３】
ボリュームプール１５に集められたチャンクの群の例えば一部は、論理ボリューム１６に割り当てられる。論理ボリューム１６は、管理のために、ストレージコントローラ１３によって前述の物理チャンクと同一サイズ（第１のサイズ）のチャンク（つまり論理チャンク）に分割される。即ち論理ボリューム１６は、複数のチャンクを備えている。
【００３４】
論理ボリューム１６は、マッピング領域１６１及びフリースペース１６２から構成される。論理ボリューム１６のマッピング領域１６１は、図２において矢印１７１及び１７２で示されるように、ボリュームプール１５の高速ボリュームグループ１５１及び低速ボリュームグループ１５２から選択された（集められた）チャンクの集合をマッピングする（割り当てる）のに用いられる。フリースペース１６３は、物理チャンクが割り当てられていない領域を指す。
【００３５】
論理ボリューム１６の状態は、ホスト２０＿＊からはストレージコントローラ１３を介して認識可能である。つまり、ホスト２０＿＊は、高速ストレージ装置１１及び低速ストレージ装置１２それぞれの物理チャンクが割り当てられた論理ボリューム１６を、１つの論理ディスクとして認識可能である。そしてホスト２０＿＊は、論理アドレスを用いて論理ボリューム１６にアクセスする場合、当該論理アドレスで指定される論理的な記憶領域にマッピングされた物理的な記憶領域を意識することなく、当該物理的な記憶領域にアクセス可能である。
【００３６】
そのためにストレージコントローラ１３（より詳細には、ストレージコントローラ１３の論理ボリューム管理部４００）は、論理ボリューム１６内のそれぞれの論理チャンクと、当該それぞれの論理チャンクにマッピングされた物理チャンクとの対応を論理−物理チャンク変換テーブル４２１（図４）を用いて管理する。論理−物理チャンク変換テーブル４２１の各エントリに保持される情報は、一種のアドレス変換情報である。ストレージコントローラ１３は、ホスト２０＿＊からリードアクセスまたはライトアクセスのためのＩ／Ｏ要求が送られた場合、当該Ｉ／Ｏ要求で指定された論理アドレスを、論理−物理チャンク変換テーブル４２１（更には、後述の物理チャンク管理テーブル４２２）に基づいて、物理ボリュームＩＤ及び物理アドレスに変換する。ストレージコントローラ１３は、この物理ボリュームＩＤ及び物理アドレスに基づいて、高速ストレージ装置１１（高速物理ボリューム１１０）または低速ストレージ装置１２（低速物理ボリューム１２０）、つまり物理レイヤのストレージ（物理的な記憶領域）にアクセスする。
【００３７】
本実施形態では、論理ボリューム１６のマッピング領域１６１に割り当てられた第１の集合及び第２の集合の間で、チャンクを単位にデータが移動される。つまり、高速ストレージ装置１１（高速物理ボリューム１１０）と低速ストレージ装置１２（低速物理ボリューム１２０）との間で、チャンクを単位にデータが移動される。このデータ移動は、ストレージコントローラ１３の制御の下で行われる。このようなデータ移動が行われても、論理−物理チャンク変換テーブル４２１が正しく更新されるならば、ストレージコントローラ１３は当該データ移動をホスト２０＿＊に気付かせることなく、当該データ移動を実行できる。
【００３８】
図３は、図２に示される論理ボリューム１６の典型的な構成を説明するための図である。なお、図３では、論理ボリューム１６のフリースペース１６２は省略されている。図３に示されるように、論理ボリューム１６のマッピング領域１６１に割り当てられるチャンクの集合の一部（以下、第１の集合と称する）は高速物理ボリューム１１０に存在し、当該チャンクの集合の残り（以下、第２の集合と称する）は低速物理ボリューム１２０に存在する。
【００３９】
さて従来技術では、論理ボリューム１６に割り当てられる高速物理ボリューム１１０内の記憶領域（つまり、第１の集合の領域）は、例えばアクセス頻度統計値（アクセス頻度）が大きい（高い）論理チャンクのデータを格納するのに用いられる。このような高速物理ボリューム１１０内の記憶領域は、高アクセス頻度領域と呼ばれる。
【００４０】
これに対して本実施形態では、論理ボリューム１６に割り当てられる、高速物理ボリューム１１０内の記憶領域は、図３に示されるように、トライアル領域（以下、Ｔ領域と称する）１１１及び高アクセス頻度領域（以下、ＨＡＦ領域と称する）１１２の２つの記憶領域を含む。ＨＡＦ領域（第１の記憶領域）１１２は、従来技術と同様に、アクセス頻度統計値が大きい論理チャンクの集合への割り当てに用いられる。つまり、ＨＡＦ領域１１２が割り当てられる論理チャンクの条件（以下、第１の条件と称する）は、アクセス頻度統計値がより大きいことである。
【００４１】
一方、Ｔ領域（第２の記憶領域）１１１は、アクセス頻度統計値とは異なる尺度に基づいて選択された論理チャンクの集合への再割り当てと、その再割り当ての効果の評価に用いられる。本実施形態において、Ｔ領域１１１が再割り当てされる論理チャンクの集合は、低速物理ボリューム１２０内の記憶領域（つまり、第２の集合の領域）１２１が割り当てられている論理ボリューム１６内の論理チャンクの群から選択される。
【００４２】
つまり、Ｔ領域１１１が再割り当てされる論理チャンクの条件（以下、第２の条件と称する）は、少なくとも低速物理ボリューム１２０内の記憶領域（第３の記憶領域）１２１が割り当てられていることである。より詳細には、Ｔ領域１１１が再割り当てされる論理チャンクの条件（以下、第２の条件と称する）は、低速物理ボリューム１２０内の記憶領域１２１が割り当てられていて、且つＴ領域１１１が未割り当てであったことである。この低速物理ボリューム１２０内の記憶領域１２１は、論理ボリューム１６のマッピング領域１６１内の論理チャンク群のうち、アクセス頻度統計値（アクセス頻度）が小さな（低い）論理チャンクのデータを格納するのに用いられる。そこで、この記憶領域１２１は、低アクセス頻度領域（以下、ＬＡＦ領域と称する）１２１と呼ばれる。
【００４３】
ストレージコントローラ１３（より詳細には、ストレージコントローラ１３の論理ボリューム管理部４００）は、ホスト２０＿＊からの論理ボリューム作成要求、或いはストレージコントローラ１３のユーザインタフェース介してユーザから与えられる論理ボリューム作成要求に基づいて、論理ボリューム１６を作成する。この論理ボリューム１６の作成に際し、ストレージコントローラ１３は、高速ストレージ装置１１の高速物理ボリューム１１０及び低速ストレージ装置１２の低速物理ボリューム１２０を含むボリュームプール１５を作成する。前述のように、ボリュームプール１５は高速ボリュームグループ１５１及び低速ボリュームグループ１５２から構成される。
【００４４】
ストレージコントローラ１３は、論理ボリューム作成要求に基づき、高速ボリュームグループ１５１及び低速ボリュームグループ１５２からそれぞれ第１のチャンクの集合及び第２のチャンクの集合を切り出して、論理ボリューム１６のマッピング領域１６１に割り当てる。
【００４５】
論理ボリューム１６におけるマッピング領域１６１及びフリースペース１６２の割合は、ホスト２０＿＊（またはユーザ）から指定可能である。また、マッピング領域１６１に割り当てられる第１の集合及び第２の集合の割合も、ホスト２０＿＊（またはユーザ）から指定可能である。また、高速物理ボリューム１１０におけるＴ領域１１１及びＨＡＦ領域１１２の割合も、ホスト２０＿＊（またはユーザ）から指定可能である。更に、論理ボリューム１６全体の記憶容量も、予め定められた上限値を超えない範囲で、ホスト２０＿＊（またはユーザ）から指定可能である。
【００４６】
図４は、図１に示されるストレージコントローラ１３の典型的な機能構成を主として示すブロック図である。ストレージコントローラ１３は、論理ボリューム管理部４００、第１の再配置部４０１、第２の再配置部４０２、アクセス統計収集部４０３及び評価部４０４を備えている。これらの機能要素４００乃至４０４は、図１に示されるストレージコントローラ１３のＣＰＵ１３４がストレージ制御プログラム４２０を実行することにより実現されるソフトウェアモジュールである。しかし、機能要素４００乃至４０４の少なくとも１つがハードウェアモジュールによって実現されても構わない。
【００４７】
メモリ１３２は、制御プログラム領域４１０、テーブル領域４１１及びワーク領域４１２を含む。制御プログラム領域４１０は、ＣＰＵ１３４によって実行されるストレージ制御プログラム４２０の少なくとも一部を格納するのに用いられる。このストレージ制御プログラム４２０は、前述したようにＨＤＤ１３３に予め格納されており、当該ストレージ制御プログラム４２０の少なくとも一部は、ストレージコントローラ１３の起動時に当該ＨＤＤ１３３から制御プログラム領域４１０にロードされる。
【００４８】
テーブル領域４１１は、ＨＤＤ１３３に格納されている各種のテーブルの少なくとも一部を格納するのに用いられる。ワーク領域４１２は、ＣＰＵ１３４がストレージ制御プログラム４２０を実行する際に利用される一時的なデータを格納するのに用いられる。
【００４９】
ＨＤＤ１３３は、上述のストレージ制御プログラム４２０に加えて、論理−物理チャンク変換テーブル４２１、物理チャンク管理テーブル４２２、論理チャンク管理テーブル４２３、チャンク履歴管理テーブル４２４、評価結果管理テーブル４２５、及びアクセスカウンタテーブル４２６を格納する。これらのテーブル４２１乃至４２６は、例えばストレージコントローラ１３の起動時に、ＨＤＤ１３３からメモリ１３２のテーブル領域４１１にロードされて用いられる。このためメモリ１３２にロードされたテーブルが更新された場合、その更新がＨＤＤ１３３内の対応するテーブルに適宜反映される。但し、以降の説明では簡略化のために、テーブル４２１乃至４２６は、ＨＤＤ１３３に格納されている状態で用いられるものとする。
【００５０】
図５は、図４に示される論理−物理チャンク変換テーブル４２１のデータ構造の例を示す。論理−物理チャンク変換テーブル４２１は、図２に示される論理ボリューム１６の論理チャンクに対応付けられたエントリを有する。論理−物理チャンク変換テーブル４２１の各エントリは、論理チャンク番号と物理チャンク番号との対を保持するのに用いられる。論理チャンク番号は、対応する論理チャンク（つまり、論理ボリューム１６内の論理チャンク）を示す。物理チャンク番号は、対応する論理チャンクに割り当てられた物理チャンクを示す。
【００５１】
本実施形態において階層化ストレージシステム１０は、論理ボリューム１６を含む複数の論理ボリュームを備えている。但し図２では、論理ボリューム１６以外の論理ボリュームは、作図の都合で省略されている。このように、階層化ストレージシステム１０が複数の論理ボリュームを備えている本実施形態では、図５に示す論理−物理チャンク変換テーブル４２１を含む複数の論理−物理チャンク変換テーブルが、複数の論理ボリュームにそれぞれ対応付けて用意されている。しかし、論理−物理チャンク変換テーブルのエントリ情報に論理ボリュームＩＤを含めるならば、複数の論理−物理チャンク変換テーブルに代えて、１つの論理−物理チャンク変換テーブルを用いても良い。論理ボリュームＩＤは、対応するエントリに保持されている論理チャンク番号の示す論理チャンクを含む論理ボリュームを指す。なお、階層化ストレージシステム１０が論理ボリューム１６のみを備えていても良い。
【００５２】
図６は、図４に示される物理チャンク管理テーブル４２２のデータ構造の例を示す。物理チャンク管理テーブル４２２は、ボリュームプール１５に集められた物理チャンクに対応付けられたエントリを有する。物理チャンク管理テーブル４２２の各エントリは、物理チャンク番号と、物理ボリュームＩＤと、セクタ番号と、ステータス（ステータスフラグ）との組を保持するのに用いられる。
【００５３】
物理チャンク番号は、対応する物理チャンクを示す。物理ボリュームＩＤは、対応する物理チャンクを含む物理ボリュームを示す。本実施形態では、物理チャンク番号は、対応する物理チャンクがいずれの物理ボリューム（ストレージ装置）に属するかに無関係にユニークである。しかし、物理チャンク番号が、対応する物理チャンクが属する物理ボリューム内でのみユニークであっても構わない。この場合、論理−物理チャンク変換テーブル４２１のエントリ情報に、論理チャンク番号及び物理チャンク番号に加えて物理ボリュームＩＤを含めれば良い。物理ボリュームＩＤは、対応する論理チャンクに割り当てられた物理チャンクが属する物理ボリュームを示す。
【００５４】
次にセクタ番号は、対応する物理チャンクを構成するセクタの列の先頭セクタを示す。ステータスは、対応する物理チャンクが割り当てられている論理チャンクに、Ｔ領域１１１内の物理チャンクが割り当てられたことがあるか（ステータス＝１の場合）否か（ステータス＝０の場合）を示す。
【００５５】
図７は、図４に示される論理チャンク管理テーブル４２３のデータ構造の例を示す。論理チャンク管理テーブル４２３は、階層化ストレージシステム１０が備えている複数の論理ボリューム（より詳細には、論理ボリューム１６を含む複数の論理ボリューム）を構成する全ての論理チャンクにそれぞれ対応付けられたエントリを有する。論理チャンク管理テーブル４２３の各エントリは、論理チャンク番号と、論理ボリュームＩＤと、セクタ番号との組を保持するのに用いられる。論理チャンク番号は、対応する論理チャンクを示す。論理ボリュームＩＤは、対応する論理チャンクを含む論理ボリュームを示す。セクタ番号は、対応する論理チャンクを構成するセクタの列の先頭セクタを示す。
【００５６】
図８は、図４に示されるチャンク履歴管理テーブル４２４のデータ構造の例を示す。チャンク履歴管理テーブル４２４は、第２の再配置処理の履歴（以下、チャンク履歴と称する）を管理するのに用いられる。第２の再配置処理とは、低速物理ボリューム１２０のＬＡＦ領域１２１内の物理チャンクと対応付けられていた論理チャンクに、高速物理ボリューム１１０のＴ領域１１１内の物理チャンクを再割り当てする（対応付ける）処理を指す。第２の再配置処理は、この再割り当ての効果を評価する処理を含む。
【００５７】
チャンク履歴管理テーブル４２４は、チャンク履歴（第２の履歴）に対応付けられたエントリを有する。チャンク履歴管理テーブル４２４の各エントリは、チャンク履歴番号と、日時情報と、物理チャンク一覧との組を保持するのに用いられる。チャンク履歴番号は、チャンク履歴の取得順を指す。本実施形態では、チャンク履歴番号が小さいほど、より新しいチャンク履歴であることを示す。日時情報は、対応するチャンク履歴が取得された日時を示す。物理チャンク一覧は、対応する第２の再配置処理でＴ領域１１１内の物理チャンクの集合が再割り当てされた論理チャンクに、当該再割り当て前にそれぞれ対応付けられていたＬＡＦ領域１２１内の物理チャンクの集合を示す。本実施形態では、Ｔ領域１１１は４０００の物理チャンクから構成されている。したがって、物理チャンク一覧は、４０００の物理チャンクの集合を示す。
【００５８】
図９は、図４に示される評価結果管理テーブル４２５のデータ構造の例を示す。評価結果管理テーブル４２５は、チャンク履歴取得時の第２の再配置処理において実行される評価処理の結果（評価結果）の履歴を管理するのに用いられる。
【００５９】
評価結果管理テーブル４２５は、評価結果の履歴（第１の履歴）に対応付けられたエントリを有する。評価結果管理テーブル４２５の各エントリは、評価結果番号と、日時情報と、スループット情報との組を保持するのに用いられる。評価結果番号は、評価結果（評価結果の履歴）の取得順を指し、対応するチャンク履歴のチャンク履歴番号に一致する。本実施形態では、評価結果番号が小さいほど、より新しい評価結果であることを示す。日時情報は、対応する評価結果（チャンク履歴）が取得された日時を示す。スループット情報は、対応する評価結果を示す。本実施形態では、対応する評価結果としてスループットが用いられる。このスループットについては後述する。
【００６０】
次に、本実施形態で適用される第１の再配置処理について図１０を参照して説明する。図１０は、ストレージコントローラ１３（より詳細には、ストレージコントローラ１３の第１の再配置部４０１）によって実行される第１の再配置処理の典型的な手順を説明するためのフローチャートである。第１の再配置処理は、例えば、第１の期間（監視期間）において、チャンク（例えば論理チャンク）毎にアクセス頻度統計情報（アクセス頻度統計値）を取得する処理を含む。第１の再配置処理は更に、取得されたアクセス頻度統計値に基づいて、アクセス頻度が高い論理チャンクに、高速物理ボリューム１１０のＨＡＦ領域１１２内の物理チャンクを再割り当てする処理を含む。第１の再配置処理は、例えば、第１の期間に相当する周期で定期的に実行される。
【００６１】
本実施形態では、第１の再配置処理及び第２の再配置処理は独立して実行される。そのため、第１の再配置処理及び第２の再配置処理は、互いに排他的に実行される。即ち、いずれか一方の再配置処理の実行中は、他方の再配置処理は待ち状態となり、実行中の再配置処理の完了後に、他方の再配置処理の待ち状態が解除される。
【００６２】
そこでストレージコントローラ１３の第１の再配置部４０１は、まず第２の再配置処理が実行中であるかを判定する（ステップＳ１）。もし、第２の再配置処理が実行中であるならば（ステップＳ１のＹｅｓ）、第１の再配置部４０１は第２の再配置処理の完了を待つ。
【００６３】
これに対し、第２の再配置処理が実行中でないならば（ステップＳ１のＮｏ）、第１の再配置部４０１は、アクセス統計収集部４０３を起動する。するとアクセス統計収集部４０３は、第１の期間におけるそれぞれの論理チャンクへのアクセスを監視して、当該それぞれの論理チャンクへの例えばアクセスの頻度を取得する（ステップＳ２）。より具体的に述べるならば、アクセス統計収集部４０３は、アクセスカウンタテーブル４２６を用いて、それぞれの論理チャンクへのアクセスの頻度を、アクセス頻度統計情報（アクセス頻度値）として収集する。このそれぞれの論理チャンクへのアクセスの頻度は、当該それぞれの論理チャンクへのアクセスの状況を示す指標を表す。アクセスカウンタテーブル４２６の各エントリは、対応する論理チャンクへのアクセスの回数（例えば、データリードの回数とデータライトの回数との合計）を示すアクセスカウントを保持するのに用いられる。このアクセスカウントは、対応する論理チャンクがアクセスされる都度、１インクリメントされる。なおアクセス統計収集部４０３が、それぞれの論理チャンクへのアクセスのデータ量の総和を、アクセス頻度統計情報として収集しても良い。
【００６４】
監視期間が経過すると、即ちアクセス統計収集部４０３によってアクセス頻度統計情報が取得されると（ステップＳ２）、第１の再配置部４０１は、当該アクセス頻度統計情報（アクセスカウンタテーブル４２６）に基づいて、アクセス頻度が最も高い論理チャンク、つまりアクセスカウント（アクセス頻度統計値）が最大の論理チャンクを選択する（ステップＳ３）。次に第１の再配置部４０１は、選択された論理チャンク（以下、第１の論理チャンクと称する）に低速物理ボリューム１２０（ＬＡＦ領域１２１）内の物理チャンクが割り当てられているかを、次のように判定する（ステップＳ４）。
【００６５】
まず第１の再配置部４０１は、第１の論理チャンクの論理チャンク番号に基づいて論理−物理チャンク変換テーブル４２１を参照する。そして第１の再配置部４０１は、第１の論理チャンクに対応付けられている物理チャンクの物理チャンク番号を特定する。次に第１の再配置部４０１は、特定された物理チャンク番号に基づいて物理チャンク管理テーブル４２２を参照する。そして第１の再配置部４０１は、特定された物理チャンク番号と組をなす物理ボリュームＩＤを特定する。この特定された物理ボリュームＩＤに基づき、第１の再配置部４０１は、第１の論理チャンクに低速物理ボリューム１２０内（つまり、低速領域側）の物理チャンクが割り当てられているかを判定する。
【００６６】
もし、第１の論理チャンクに低速物理ボリューム１２０内の物理チャンクが割り当てられているならば（ステップＳ４のＹｅｓ）、第１の再配置部４０１はステップＳ５に進む。ステップＳ５において第１の再配置部４０１は、ＨＡＦ領域１１２（より詳細には、ＨＡＦ領域１１２内の物理チャンク）が割り当てられている未選択の論理チャンクの中から、アクセス頻度が最も低い、つまりアクセスカウント（アクセス頻度統計値）が最小の論理チャンクを次のように選択する。まず第１の再配置部４０１は、ＨＡＦ領域１１２を含む高速物理ボリューム１１０の物理ボリュームＩＤに基づいて物理チャンク管理テーブル４２２を参照する。これにより第１の再配置部４０１は、高速物理ボリューム１１０の物理ボリュームＩＤと組をなす物理チャンク番号を特定する。次に第１の再配置部４０１は論理−物理チャンク変換テーブル４２１を参照して、特定された物理チャンク番号と組をなす未選択の論理チャンク番号を特定する。次に第１の再配置部４０１は、アクセスカウンタテーブル４２６を参照して、特定された論理チャンク番号の示す未選択の論理チャンクの中から、アクセス頻度が最も低い論理チャンク（以下、第２の論理チャンクと称する）を選択する。
【００６７】
次に第１の再配置部４０１は、第１の論理チャンク及び第２の論理チャンク（つまり選択された両チャンク）のデータの配置先を入れ替える（ステップＳ６）。より具体的に述べるならば、第１の再配置部４０１は、第１の論理チャンクに割り当てられた、ＬＡＦ領域１２１内の物理チャンク（以下、第１の物理チャンクと称する）のデータと、第２の論理チャンクに割り当てられた、ＨＡＦ領域１１２内の物理チャンク（以下、第２の物理チャンクと称する）のデータとを入れ替える。つまり第１の再配置部４０１は、第１の論理チャンクのデータを第２の物理チャンクに再配置し、第２の論理チャンクのデータを第１の物理チャンクに再配置する。
【００６８】
次に第１の再配置部４０１は、上述のデータ配置先の入れ替え（再配置）に基づいて、第１の論理チャンク及び第２の論理チャンクにそれぞれ対応付けられた、論理−物理チャンク変換テーブル４２１のエントリの情報を更新する（ステップＳ７）。即ち第１の再配置部４０１は、上述のデータ配置先の入れ替えが反映されるように、第１の論理チャンク及び第２の論理チャンクにそれぞれ対応付けられた、論理−物理チャンク変換テーブル４２１のエントリの情報を更新する。より詳細に述べるならば、第１の再配置部４０１は、第１の論理チャンクに対応付けられた、論理−物理チャンク変換テーブル４２１のエントリ中の物理チャンク番号を、第１の物理チャンクを示す番号から第２の物理チャンクを示す番号に更新する。同様に第１の再配置部４０１は、第２の論理チャンクに対応付けられた、論理−物理チャンク変換テーブル４２１のエントリ中の物理チャンク番号を、第２の物理チャンクを示す番号から第１の物理チャンクを示す番号に更新する。
【００６９】
第１の再配置部４０１はステップＳ７を実行すると、ステップＳ８に進む。また、第１の論理チャンクに低速物理ボリューム１２０内の物理チャンクが割り当てられていない場合にも（ステップＳ４のＮｏ）、第１の再配置部４０１はステップＳ８に進む。ステップＳ８において第１の再配置部４０１は、ＨＡＦ領域１１２に対応する数の論理チャンクが選択されたかを判定する。ＨＡＦ領域１１２に対応する数の論理チャンクとは、当該ＨＡＦ領域１１２を構成する物理チャンクの数と同一の数の論理チャンクを指す。
【００７０】
もし、ＨＡＦ領域１１２に対応する数の論理チャンクが選択されていないならば（ステップＳ８のＮｏ）、第１の再配置部４０１はステップＳ９に進む。ステップＳ９において第１の再配置部４０１は、アクセスカウンタテーブル４２６に基づいて、次にアクセス頻度が高い論理チャンクを、第２の論理チャンクとして選択する。そして第１の再配置部４０１は、ステップＳ４に戻る。
【００７１】
このようにして第１の再配置部４０１は、ＬＡＦ領域１２１内の物理チャンクが割り当てられていた論理チャンクのうちアクセス頻度が高い論理チャンクのデータの配置先と、ＨＡＦ領域１１２に配置されていた論理チャンクのうち、アクセス頻度が低い論理チャンクのデータの配置先とを入れ替える。やがて、ＨＡＦ領域１１２に対応する数の論理チャンクが選択されたならば（ステップＳ８のＹｅｓ）、第１の再配置部４０１はステップＳ１０に進む。ステップＳ１０において第１の再配置部４０１は、アクセス頻度統計情報（つまりアクセスカウンタテーブル４２６）の初期化が、ユーザインタフェースを介してユーザによって指定されているかを判定する。
【００７２】
もし、初期化が指定されているならば（ステップＳ１０のＹｅｓ）、第１の再配置部４０１は、アクセス頻度統計情報を初期化して（ステップＳ１０）、第１の再配置処理を終了する。これに対し、初期化が指定されていないならば（ステップＳ１０のＮｏ）、第１の再配置部４０１は、ステップＳ１０をスキップして第１の再配置処理を終了する。第１の再配置処理は、前述したように、第１の期間に相当する周期で定期的に実行される。
【００７３】
上述の説明では、簡略化のために、第１の論理チャンクのアクセス頻度が、第２の論理チャンクのアクセス頻度よりも常に高い場合を想定している。しかし実際には、第１の論理チャンクのアクセス頻度が、第２の論理チャンクのアクセス頻度よりも低い場合もあり得る。このような場合、第１の再配置部４０１は、ステップＳ６乃至Ｓ８をスキップしてステップＳ１０に進めば良い。
【００７４】
次に、本実施形態で適用される第２の再配置処理について図１１及び１２を参照して説明する。図１１は、ストレージコントローラ１３（より詳細には、ストレージコントローラ１３の第２の再配置部４０２）によって実行される第２の再配置処理の典型的な手順を説明するためのフローチャートである。図１２は、図１１に示される第２の再配置処理において実行される評価処理の典型的な手順を説明するためのフローチャートである。
【００７５】
ストレージコントローラ１３の第２の再配置部４０２は、まず第１の再配置処理が実行中であるかを判定する（ステップＳ２１）。もし、第１の再配置処理が実行中であるならば（ステップＳ２１のＹｅｓ）、第２の再配置部４０２は第１の再配置処理の完了を待つ。これに対し、第１の再配置処理が実行中でないならば（ステップＳ２１のＮｏ）、第２の再配置部４０２はステップＳ２２に進む。ステップＳ２２において第２の再配置部４０２は、第２の再配置処理における初回の再配置（再割り当て）であるかを判定する。
【００７６】
もし、第２の再配置処理における初回の再配置であるならば（ステップＳ２２のＹｅｓ）、第２の再配置部４０２はステップＳ２３に進む。このように初回の再配置である場合、本実施形態では、Ｔ領域１１１内の物理チャンクのいずれも論理チャンクに割り当てられていない。ステップＳ２３において第２の再配置部４０２は、例えば、ＬＡＦ領域１２１の先頭から、Ｔ領域１１１に対応する数Ｑの物理チャンクを選択する。Ｔ領域１１１に対応する数Ｑとは、当該Ｔ領域１１１を構成する物理チャンクの数を指す。ここでは、Ｔ領域１１１は、４，０００の物理チャンクを備えており、したがってＱは４，０００であるものとする。
【００７７】
次に第２の再配置部４０２は、選択されたＱ個の物理チャンク（以下、第３の物理チャンクと称する）のデータをＴ領域１１１にコピーする（ステップＳ２４）。次に第２の再配置部４０２は、このコピーに基づいて、論理−物理チャンク変換テーブル４２１のエントリの情報を更新する（ステップＳ２５）。即ち第２の再配置部４０２は、論理−物理チャンク変換テーブル４２１において、選択されたＱ個の第３の物理チャンクを対応付ける論理チャンク番号を変更する。より詳細に述べるならば、第２の再配置部４０２は、論理−物理チャンク変換テーブル４２１において、選択されたＱ個の第３の物理チャンクが、これまで対応付けられていたＱ個の論理チャンク（以下、第３の論理チャンクと称する）に対応付ける物理チャンク番号を、第３の物理チャンクを示す番号からＴ領域１１１内のＱ個の物理チャンク（以下、第４の物理チャンクと称する）を示す番号に更新する。このように第２の再配置部４０２は、選択されたＱ個の第３の物理チャンクにそれぞれ対応付けられているＱ個の第３の論理チャンクに、Ｔ領域１１１内のＱ個の第４の物理チャンクを対応付けることによって、物理チャンクの再割り当てをする。更に、ステップＳ２５において第２の再配置部４０２は、第３の物理チャンクに対応付けられている物理チャンク管理テーブル４２２のエントリ中のステータスを１に設定する。
【００７８】
第２の再配置部４０２はステップＳ２５を実行すると、評価部４０４を起動する。すると評価部４０４は、ＬＡＦ領域１２１からＴ領域１１１への物理チャンクのデータのコピー（ステップＳ２４）の効果を評価する。つまり評価部４０４は、選択された論理チャンクに割り当てられる物理チャンクを、ＬＡＦ領域１２１内の物理チャンクからＴ領域１１１内の物理チャンクに変更した再割り当ての効果を、図１２に示されるフローチャートに従って次のように評価する（ステップＳ２６）。
【００７９】
まず評価部４０４は、ブロック（Ｉ／Ｏブロック）のサイズ（第２のサイズ）を設定する（ステップＳ４１）。前述したように、ブロックは、高速ストレージ装置１１及び低速ストレージ装置１２へのアクセスの最小単位である。次に評価部４０４は、階層化ストレージシステム１０（ストレージコントローラ１３）内に用意されているシステム時計から、現在の時刻（つまり、システム時刻）を取得する（ステップＳ４２）。
【００８０】
次に評価部４０４は、論理ボリューム１６へのランダムリードアクセスを実行する（ステップＳ４３）。評価部４０４は、このランダムリードアクセスにおけるスループット［ＭＢ／ｓ］を、当該ランダムリードアクセスの開始時点から終了時点までの時間［ｓ］と、当該ランダムリードアクセスでリードされたデータの量［ＭＢ］とに基づいて算出する（ステップＳ４４）。そして評価部４０４は、チャンク履歴管理テーブル４２４及び評価結果管理テーブル４２５にエントリ情報を次のように追加する（ステップＳ４５）。
【００８１】
まず評価部４０４は、チャンク履歴番号（＝１）と、ステップＳ４２で取得されたシステム時刻（日時）を示す日時情報と、ステップＳ２３で選択されたＱ個の第３の物理チャンクの物理チャンク番号とを含むエントリ情報（チャンク履歴情報）を生成する。このとき、チャンク履歴管理テーブル４２４に、１つ以上の有効なエントリ（例えば、複数のエントリ）が存在するものとする。この場合、第１の再配置部４０１は、複数のエントリの各々のチャンク履歴情報を後続のエントリに移動し、且つ各チャンク履歴情報中のチャンク履歴番号を１インクリメントする。そして評価部４０４は、生成されたチャンク履歴情報を、チャンク履歴管理テーブル４２４の先頭エントリに設定する。なおチャンク履歴番号が、対応するチャンク履歴情報の生成に応じてシーケンシャルに生成され、ｉ番目（ｉ＝１，２，３，…）に生成されたチャンク履歴情報が、チャンク履歴管理テーブル４２４のｉ番目のエントリに保持される構成であっても良い。
【００８２】
また評価部４０４は、評価結果番号（＝１）と、ステップＳ４２で取得されたシステム時刻（日時）を示す日時情報と、ステップＳ４４で算出されたスループットを示すスループット情報とを含むエントリ情報（評価結果情報）を生成する。評価部４０４は、チャンク履歴情報をチャンク履歴管理テーブル４２４に追加するのと同様に、生成された評価結果情報を評価結果管理テーブル４２５に追加する。評価部４０４は、ステップＳ４５を実行すると、評価処理（ステップＳ２６）を終了する。
【００８３】
すると第２の再配置部４０２は、ＬＡＦ領域１２１内に未選択の物理チャンク（つまり、ステップＳ２３で選択されていない物理チャンク）があるかを判定する（ステップＳ２７）。もし、未選択の物理チャンクがあるならば（ステップＳ２７のＹｅｓ）、第２の再配置部４０２はステップＳ２２に戻る。ステップＳ２２において第２の再配置部４０２は、前述したように、第２の再配置処理における初回の再配置であるかを判定する。
【００８４】
この例のように初回の再配置でないならば（ステップＳ２２のＮｏ）、次の再配置のために第２の再配置部４０２はステップＳ２８に進む。ステップＳ２８において第２の再配置部４０２は、Ｔ領域１１１内の全ての物理チャンク（つまりＱ個の第４の物理チャンク）のデータを、低速ストレージ装置１２の元の領域に移動する。元の領域とは、直近のステップＳ２４でＴ領域１１１内のＱ個の物理チャンクにデータがコピーされた際に、当該データが格納されていた、ＬＡＦ領域１２１内のＱ個の物理チャンク（以下、第５の物理チャンクと称する）の領域、つまり直近のステップＳ２４で実行されたコピーのコピー元を指す。このＬＡＦ領域１２１内の元の領域（つまり、ステップＳ２８で実行される移動の移動先）は、チャンク履歴管理テーブル４２４の先頭エントリ（つまり、チャンク履歴番号が１のエントリ）のチャンク一覧に基づいて特定される。このように、ステップＳ２８において第２の再配置部４０２は、現在Ｔ領域１１１内のＱ個の第４の物理チャンクが割り当てられているＱ個の論理チャンク（以下、第４の論理チャンクと称する）に、ＬＡＦ領域１２１内の元の領域を再割り当てする。
【００８５】
次に第２の再配置部４０２は、ＬＡＦ領域１２１の後続位置から、Ｑ個の物理チャンクを選択する（ステップＳ２９）。ＬＡＦ領域１２１の後続位置とは、ステップＳ２８において、Ｔ領域１１１のデータが移動された領域に後続する位置を指す。次に第２の再配置部４０２は、初回の再配置においてステップＳ２３を実行した場合と同様に、ステップＳ２４及びＳ２５を次のように実行する。
【００８６】
まず第２の再配置部４０２は、ステップＳ２９で選択されたＱ個の物理チャンク（以下、第３の物理チャンクと称する）のデータをＴ領域１１１にコピー（再配置）する（ステップＳ２４）。即ち第２の再配置部４０２は、ステップＳ２９で選択されたＱ個の第３の物理チャンクにそれぞれ対応付けられているＱ個の論理チャンク（以下、第３の論理チャンクと称する）に、Ｔ領域１１１内のＱ個の物理チャンク（第４の物理チャンク）を再割り当てする。
【００８７】
次に第２の再配置部４０２は、上述のコピー（再割り当て）に基づいて、選択されたＱ個の第３の物理チャンクに対応付けられた、論理−物理チャンク変換テーブル４２１のエントリの情報（つまり、Ｑ個の第３の論理チャンクに対応付けられた、論理−物理チャンク変換テーブル４２１のエントリの情報）を更新する（ステップＳ２５）。より詳細に述べるならば、第２の再配置部４０２は、Ｑ個の第３の論理チャンクにそれぞれ対応付けられた、論理−物理チャンク変換テーブル４２１のエントリ中の物理チャンク番号を、第３の物理チャンクを示す番号から第４の物理チャンクを示す番号に更新する。また、ステップＳ２５において第２の再配置部４０２は、Ｑ個の第４の物理チャンクが割り当てられていたＱ個の第４の論理チャンクに対応付けられた、論理−物理チャンク変換テーブル４２１のエントリの情報も更新する。より詳細に述べるならば、第２の再配置部４０２は、Ｑ個の第４の論理チャンクにそれぞれ対応付けられた、論理−物理チャンク変換テーブル４２１のエントリ中の物理チャンク番号を、第４の物理チャンクを示す番号から第５の物理チャンクを示す番号に更新する。
【００８８】
これにより、例えば４回目の再配置であれば、まず、Ｔ領域１１１内の全ての物理チャンクのデータが、図８チャンク履歴管理テーブル４２４の先頭エントリ中の物理チャンク一覧により示されるＬＡＦ領域１２１内の物理チャンク８，０００乃至１１，９９９（つまり、物理チャンク番号が８，０００乃至１１，９９９の物理チャンク）に移動される（ステップＳ２８）。つまり、Ｔ領域１１１内の４，０００個の物理チャンクが割り当てられていた４，０００個の論理チャンクに、物理チャンク８，０００乃至１１，９９９がそれぞれ再割り当てされる。
【００８９】
次に、ＬＡＦ領域１２１内の物理チャンク１２，０００乃至１５，９９９（つまり、物理チャンク番号が１２，０００乃至１５，９９９の物理チャンク）のデータがＴ領域１１１にコピーされる（ステップＳ２９及びＳ２４）。つまり、ＬＡＦ領域１２１内の物理チャンク１２，０００乃至１５，９９９が割り当てられていた４，０００個の論理チャンクに、Ｔ領域１１１内の４，０００個の物理チャンクがそれぞれ再割り当てされる。次に、ステップＳ２６及びＳ２７が再び実行される。
【００９０】
第２の再配置部４０２は、前述のステップＳ２２，Ｓ２８，Ｓ２９，及びＳ２４乃至２７を繰り返す。やがて、ＬＡＦ領域１２１内の全ての物理チャンクが選択された結果、未選択の物理チャンクがなくなったならば（ステップＳ２７のＮｏ）、第２の再配置部４０２はステップＳ３０に進む。ステップＳ３０において第２の再配置部４０２は、チャンク履歴管理テーブル４２４及び評価結果管理テーブル４２５に基づいて、評価が最も高い（つまり、スループットが最大の）物理チャンクの組を次のように選択する（ステップＳ３１）。まず第２の再配置部４０２は、評価結果管理テーブル４２５を参照して、スループットが最大の評価結果を示す評価結果番号を特定する。次に第２の再配置部４０２はチャンク履歴管理テーブル４２４を参照して、特定された評価結果番号に一致するチャンク履歴番号を含むエントリを特定する。そして第２の再配置部４０２は、特定されたチャンク履歴管理テーブル４２４のエントリに設定されている物理チャンク一覧の示す物理チャンクの組（Ｑ個の物理チャンク）を、評価が最も高い物理チャンクの組として選択する。
【００９１】
次に第２の再配置部４０２は、選択されたＱ個の物理チャンクのデータをＴ領域１１１に再配置（コピー）する（ステップＳ３１）。即ち第２の再配置部４０２は、選択されたＱ個の物理チャンクが割り当てられているＱ個の論理チャンクのデータをＴ領域１１１に再配置することにより、評価が最も高い再配置の状態を復元する。図１１のフローチャートでは省略されているが、第２の再配置部４０２は、この再配置（ステップＳ３１）の前後で、それぞれステップＳ２８及びＳ２５に相当する処理を実行する。なお、第２の再配置部４０２が評価結果管理テーブル４２５の示す評価結果の一覧を、ユーザインタフェースを介してユーザに提示して、当該評価結果の一覧から所望の評価結果をユーザに選択させても良い。この場合、第２の再配置部４０２は、ユーザによって選択された評価結果が得られた物理チャンクの組を選択すれば良い。
【００９２】
第２の再配置部４０２はステップＳ３１を実行すると、第２の再配置処理に関するステータス（より詳細には、チャンク履歴管理テーブル４２４及び評価結果管理テーブル４２５）を初期化することが、ユーザによって指定されているかを判定する（ステップＳ３２）。もし、ステータスの初期化が指定されているならば（ステップＳ３２のＹｅｓ）、第２の再配置部４０２は当該ステータスを初期化して（ステップＳ３３）、第２の再配置処理を終了する。これに対し、ステータスの初期化が指定されていないならば（ステップＳ３２のＮｏ）、第２の再配置部４０２はステップＳ３３をスキップして、第２の再配置処理を終了する。この場合、次に第２の再配置処理が起動された場合に、現在のチャンク履歴管理テーブル４２４及び評価結果管理テーブル４２５が継続して用いられる。
【００９３】
本実施形態では、第２の再配置部４０２は、第２の再配置処理における上述の再配置（例えば、ステップＳ２２，Ｓ２８，Ｓ２９，及びＳ２４乃至２７）を、定期的（例えば１時間毎）に実行する。しかし、この再配置が実行される周期が、当該評価処理における評価結果が前回よりも良いか否かに基づいて変更されても良い。具体的には、評価結果が前回よりも良い場合、この状態をより長く維持するために、次の再配置が開始される時期を第２の再配置部４０２が遅らせても良い。逆に、評価結果が前回よりも悪い場合、次の再配置が開始される時期を第２の再配置部４０２が早めても良い。また、第２の再配置処理が、例えば、ユーザの指示に応じて適宜実行されても、或いは定期的に実行されても構わない。
【００９４】
図１３及び図１４は、本実施形態における第２の再配置処理の概要を説明するための図である。図１３は、第２の再配置処理における初回の再配置の概要を説明するための図であり、図１４は、第２の再配置処理における初回以外の再配置の概要を説明するための図である。
【００９５】
初回の再配置では（ステップＳ２２のＹｅｓ）、低速物理ボリューム１２０のＬＡＦ領域１２１の先頭からＱ個の物理チャンクが選択される（ステップＳ２３）。そして、選択されたＱ個の物理チャンクのデータが、図１３において矢印Ａ１で示されるように、高速物理ボリューム１１０のＴ領域１１１にコピー（再配置）される（ステップＳ２４）。なお、図１３及び１４では、作図の都合でＱ＝５の場合が示されている。
【００９６】
初回以外の再配置では（ステップＳ２２のＮｏ）、まずＴ領域１１１のデータが、図１４において矢印Ａ１１で示されるように、ＬＡＦ領域１２１の元の領域に移動（再配置）される（ステップＳ２８）。次に、ＬＡＦ領域１２１の後続位置の先頭からＱ個の物理チャンクが選択される（ステップＳ２９）。そして、選択されたＱ個の物理チャンクのデータが、図１４において矢印Ａ１２で示されるように、Ｔ領域１１１にコピー（再配置）される（ステップＳ２４）。
【００９７】
このように本実施形態において第２の再配置部４０２は、アクセス頻度（アクセス頻度統計値）に基づく再配置では、高速物理ボリューム１１０側に配置されることのないような物理チャンクの組（低速物理ボリューム１２０側の物理チャンクの組）のデータを、当該高速物理ボリューム１１０内のＴ領域１１１に再配置する（ステップＳ２４）。この状態で評価部４０４は、この再配置（つまり、ＬＡＦ領域１２１からＴ領域１１１へのデータの再配置）の効果を評価する（ステップＳ２６）。つまり本実施形態によれば、アクセス頻度に基づく再配置では選択されないような（つまり、効果を確かめることができないような）物理チャンクの組のデータを高速物理ボリューム１１０内のＴ領域１１１に再配置して、その再配置の効果を評価することができる。また本実施形態によれば、このような再配置及び評価を、ＬＡＦ領域１２１内の連続するＱ個の物理チャンク毎に実行して、その再配置及び評価の履歴を、それぞれチャンク履歴管理テーブル４２４及び評価結果管理テーブル４２５に記録する。よって本実施形態によれば、チャンク履歴管理テーブル４２４及び評価結果管理テーブル４２５に基づいて、評価の最も高い配置に対応するＱ個の物理チャンクを特定し、当該特定されたＱ個の物理チャンクのデータをＴ領域１１１に再配置（復元）することができる。これにより、階層化ストレージシステム１０の性能をより一層向上することができる。
【００９８】
なお評価部４０４が、ＬＡＦ領域１２１からＴ領域１１１への論理チャンクのデータの再配置の効果を評価するのに、論理ボリューム１６へのランダムリードアクセスに代えて、論理ボリューム１６内の任意の記憶領域（第４の記憶領域）へのシーケンシャルリードアクセスを実行しても良い。この場合、評価部４０４は、シーケンシャルリードアクセスにおけるスループットを評価結果として取得すれば良い。ここで、任意の記憶領域として、シーケンシャルリードアクセスの性能向上が特に要求される記憶領域、例えば特定のバックアップデータが格納されている記憶領域が指定されても良い。また、上述の任意の記憶領域が、論理ボリューム１６全体であっても構わない。更に評価部４０４が、上述のランダムリードアクセスとシーケンシャルリードアクセスとをそれぞれ実行して、当該両アクセスにおけるスループットの例えば平均値を評価結果として取得しても良い。
【００９９】
＜変形例＞
次に前記実施形態の変形例について説明する。前記実施形態では、第２の配置処理において、低速物理ボリューム１２０のＬＡＦ領域１２１から、Ｑ個の物理チャンクを単位に、物理チャンクがシーケンシャルに選択される。そしてＱ個の物理チャンクが選択される都度、当該選択されたＱ個の物理チャンクのデータが高速物理ボリューム１１０のＴ領域１１１に再配置される。これに対して本変形例では、Ｔ領域１１１にデータが再配置されるＱ個の物理チャンクを、前記実施形態と異なる方法で選択する。
【０１００】
まず、アクセス頻度に基づいて、低速物理ボリューム１２０のＬＡＦ領域１２１内の物理チャンクから高速物理ボリューム１１０のＨＡＦ領域１１２内の物理チャンクにデータが配置（コピー）されるものとする。このような場合におけるＬＡＦ領域１２１内の物理チャンクを、高アクセス頻度物理チャンクと称する。本変形例の特徴は、新たにＨＡＦ領域１１２からＴ領域１１１にデータが再配置された高アクセス頻度物理チャンク毎に、その周辺のＱ個の物理チャンクのデータをＴ領域１１１に再配置することにある。
【０１０１】
以下、本変形例で適用される第２の再配置処理（つまり、第２の再配置処理の変形例）について、図１５を参照して説明する。図１５は、本変形例において第２の再配置部４０２によって実行される第２の再配置処理の典型的な手順を説明するためのフローチャートである。本変形例では、第２の再配置処理は、第１の再配置処理の終了に応じて実行されるものとする。また、第１の再配置処理において第１の再配置部４０１は、ＬＡＦ領域１２１からＨＡＦ領域１１２に新たにデータが配置された物理チャンクの一覧を生成する。
【０１０２】
第２の再配置処理において第２の再配置部４０２は、第１の再配置部４０１によって生成された物理チャンクの一覧を取得する（ステップＳ５１）。次に第２の再配置部４０２は、変数ｐ及びｑを初期値１に設定する（ステップＳ５２）。変数ｐは、ＬＡＦ領域１２１におけるｉ番目の物理チャンクＣＨＫ＿ｉを基準とする物理チャンクの相対位置を示す。例えば、物理チャンクＣＨＫ＿ｉ−ｐ及びＣＨＫ＿ｉ＋ｐは、ＬＡＦ領域１２１におけるそれぞれｉ−ｐ番目及びｉ＋ｐ番目の物理チャンクを示す。つまり物理チャンクＣＨＫ＿ｉ−ｐ及びＣＨＫ＿ｉ＋ｐは、物理チャンクＣＨＫ＿ｉに対してそれぞれｐチャンク先行及び後続する。変数ｑは、Ｔ領域１１１における物理チャンクの相対位置を示す。例えば、物理チャンクＣＨＫ＿ｑは、Ｔ領域１１１におけるｑ番目の物理チャンクを示す。
【０１０３】
次に第２の再配置部４０２は、取得された物理チャンクの一覧に基づいて、物理チャンク（第６の物理チャンク）ＣＨＫ＿ｉを選択する（ステップＳ５３）。次に第２の再配置部４０２は、選択された物理チャンクＣＨＫ＿ｉと変数ｐとに基づいて、ＬＡＦ領域１２１から物理チャンクＣＨＫ＿ｉ−ｐを選択する（ステップＳ５４）。次に第２の再配置部４０２は、選択された物理チャンクＣＨＫ＿ｉ−ｐに対応付けられた物理チャンク管理テーブル４２２のエントリ中のステータスを参照して、当該ステータス（つまり、物理チャンクＣＨＫ＿ｉ−ｐのステータス）が未配置を示しているかを判定する（ステップＳ５５）。
【０１０４】
もし、未配置であるならば（ステップＳ５５のＹｅｓ）、第２の再配置部４０２は、Ｔ領域１１１からｑ番目の物理チャンクＣＨＫ＿ｑを選択する（ステップＳ５６）。次に第２の再配置部４０２は、選択された物理チャンクＣＨＫ＿ｑのデータを、前記実施形態におけるステップＳ２８と同様に、低速ストレージ装置１２（低速物理ボリューム１２０）内の元の領域に移動する（ステップＳ５７）。
【０１０５】
次に第２の再配置部４０２は、選択された物理チャンクＣＨＫ＿ｉ−ｐのデータを選択された物理チャンクＣＨＫ＿ｑにコピーする（ステップＳ５８）。このように第２の再配置部４０２は、物理チャンク（第３の物理チャンク）ＣＨＫ＿ｉ−ｐのデータをＴ領域１１１内の物理チャンク（第４の物理チャンク）ＣＨＫ＿ｑに再配置する。つまり第２の再配置部４０２は、物理チャンクＣＨＫ＿ｉ−ｐが割り当てられていた論理チャンク（第３の論理チャンク）に、物理チャンクＣＨＫ＿ｑを再割り当てする。
【０１０６】
次に第２の再配置部４０２は、上述のデータ移動（ステップＳ５７）及びデータコピー（ステップＳ５８）が反映されるように論理−物理チャンク変換テーブル４２１を更新する（ステップＳ５９）。ステップＳ５９において第２の再配置部４０２は、物理チャンクＣＨＫ＿ｉ−ｐに対応付けられている物理チャンク管理テーブル４２２のエントリ中のステータスを１に設定する。次に第２の再配置部４０２は、変数ｑを１インクリメントする（ステップＳ６０）。そして第２の再配置部４０２は、インクリメントされた変数ｑがＱを超えているかを判定する（ステップＳ６１）。Ｑは前述したように、Ｔ領域１１１における物理チャンクの数を示す。
【０１０７】
もし、インクリメントされた変数ｑがＱを超えていないならば（ステップＳ６１のＮｏ）、第２の再配置部４０２は、次の物理チャンクを選択するためにステップＳ６２に進む。また、物理チャンクＣＨＫ＿ｉ−ｐのステータスが配置済みを示している場合にも（ステップＳ５５のＮｏ）、第２の再配置部４０２はステップＳ６２に進む。ステップＳ６２において第２の再配置部４０２は、ＬＡＦ領域１２１から物理チャンクＣＨＫ＿ｉ＋ｐを選択する。次に第２の再配置部４０２は、選択された物理チャンクＣＨＫ＿ｉ＋ｐに対応付けられた物理チャンク管理テーブル４２２のエントリ中のステータスを参照して、当該ステータス（つまり、物理チャンクＣＨＫ＿ｉ＋ｐのステータス）が未配置を示しているかを判定する（ステップＳ６３）。
【０１０８】
もし、未配置であるならば（ステップＳ６３のＹｅｓ）、第２の再配置部４０２は、Ｔ領域１１１からｑ番目の物理チャンクＣＨＫ＿ｑを選択する（ステップＳ６４）。次に第２の再配置部４０２は、選択された物理チャンクＣＨＫ＿ｑのデータを、低速ストレージ装置１２内の元の領域に移動する（ステップＳ６５）。
【０１０９】
次に第２の再配置部４０２は、選択された物理チャンクＣＨＫ＿ｉ＋ｐのデータを物理チャンクＣＨＫ＿ｑにコピーする（ステップＳ６６）。このように第２の再配置部４０２は、物理チャンクＣＨＫ＿ｉ＋ｐのデータをＴ領域１１１内の物理チャンクＣＨＫ＿ｑに再配置する。つまり第２の再配置部４０２は、物理チャンクＣＨＫ＿ｉ＋ｐが割り当てられていた論理チャンクに、物理チャンクＣＨＫ＿ｑを再割り当てする。
【０１１０】
次に第２の再配置部４０２は、上述のデータ移動（ステップＳ６５）及びデータコピー（ステップＳ６６）が反映されるように論理−物理チャンク変換テーブル４２１を更新する（ステップＳ６７）。ステップＳ６７において第２の再配置部４０２は、物理チャンクＣＨＫ＿ｉ＋ｐに対応付けられている物理チャンク管理テーブル４２２のエントリ中のステータスを１に設定する。次に第２の再配置部４０２は、変数ｑを１インクリメントする（ステップＳ６８）。そして第２の再配置部４０２は、インクリメントされた変数ｑがＱを超えているかを判定する（ステップＳ６９）。
【０１１１】
もし、インクリメントされた変数ｑがＱを超えていないならば（ステップＳ６９のＮｏ）、第２の再配置部４０２は、次の物理チャンクを選択するためにステップＳ７０に進む。また、物理チャンクＣＨＫ＿ｉ＋ｐのステータスが配置済みを示している場合にも（ステップＳ６３のＮｏ）、第２の再配置部４０２はステップＳ７０に進む。ステップＳ７０において第２の再配置部４０２は、変数ｐを１インクリメントする。そして、第２の再配置部４０２はステップＳ５４に戻り、ステップＳ４３で選択された物理チャンクＣＨＫ＿ｉとインクリメントされた変数ｐとに基づいて、ＬＡＦ領域１２１から物理チャンクＣＨＫ＿ｉ−ｐを選択する。このようにして第２の再配置部４０２は、インクリメントされた変数ｑがＱを超えるまで（ステップＳ６１またはＳ６９のＹｅｓ）、ステップＳ５４乃至Ｓ７０を繰り返す。
【０１１２】
やがて、インクリメントされた変数ｑがＱを超えたものとする（ステップＳ６１またはＳ６９のＹｅｓ）。この場合、第２の再配置部４０２は、ＬＡＦ領域１２１に含まれている、物理チャンクＣＨＫ＿ｉの周辺（つまり前後）のＱ個の物理チャンクのデータが、Ｔ領域１１１に再配置されたものと判断する。そこで第２の再配置部４０２は、この再配置の効果を評価するために、前記実施形態における評価処理（ステップＳ２６）と同様の評価処理を実行する（ステップＳ７１）。
【０１１３】
第２の再配置部４０２は、評価処理（ステップＳ７１）を実行すると、ステップＳ５１で取得された物理チャンクの一覧の中に未選択の物理チャンクがあるかを判定する（ステップＳ７２）。もし、未選択の物理チャンクがあるならば（ステップＳ７２のＹｅｓ）、第２の再配置部４０２はステップＳ５３に戻って、未選択の物理チャンクＣＨＫ＿ｉを選択する。このようにして第２の再配置部４０２は、未選択の物理チャンクがなくなるまで（ステップＳ７２のＮｏ）、ステップＳ５３乃至Ｓ７２を繰り返す。
【０１１４】
やがて、未選択の物理チャンクがなくなったものとする（ステップＳ７２のＮｏ）、この場合、第２の再配置部４０２は、図１１のステップＳ３０以降の処理を実行する。なお、最初に物理チャンクＣＨＫ＿ｉが選択された場合、第２の再配置部４０２は、当該物理チャンクＣＨＫ＿ｉの周辺のＱ個の物理チャンクのデータをＴ領域１１１に再配置する前に、当該Ｔ領域１１１のデータを低速ストレージ装置１２の元の領域に移動する必要はない。但し、図１５のフローチャートでは簡略化のために、最初に物理チャンクＣＨＫ＿ｉが選択された場合の処理手順は省略されている。
【０１１５】
また、図１５のフローチャートでは省略されているが、物理チャンクＣＨＫ＿ｉ−ｐがＬＡＦ領域１２１から外れている場合、第２の再配置部４０２はステップＳ５５乃至Ｓ６１をスキップする。同様に、物理チャンクＣＨＫ＿ｉ＋ｐがＬＡＦ領域１２１から外れている場合、第２の再配置部４０２はステップＳ６３乃至Ｓ６９をスキップする。また、物理チャンクＣＨＫ＿ｉ−ｐ及びＣＨＫ＿ｉ＋ｐがいずれもＬＡＦ領域１２１から外れている場合、第２の再配置部４０２は、Ｔ領域１１１内の再配置済みのデータをＬＡＦ領域１２１の元の領域に戻して、図１１のステップＳ３０以降の処理を実行する。
【０１１６】
図１６は、本変形例における第２の再配置処理の概要を説明するための図である。図１６において、ＬＡＦ領域１２１内の物理チャンクＣＨＫ＿ｉが選択されたものとする（ステップＳ５３）。物理チャンクＣＨＫ＿ｉのデータは、今回の第２の再配置処理に先行する第１の配置処理で、ＨＡＦ領域１１２内の物理チャンクＣＨＫ＿ｊのデータと、図１６において矢印Ａ２１で示されるように入れ替えられている（ステップＳ６）。
【０１１７】
Ｔ領域１１１内のＱ個の物理チャンクのデータは、図１６において矢印Ａ２２で示されるように、ＬＡＦ領域１２１内の元の領域に移動（再配置）される（ステップＳ５７及びＳ６５）。一方、選択された物理チャンクＣＨＫ＿ｉの周辺のＱ個の物理チャンクのデータは、図１６において矢印Ａ２３及びＡ２４で示されるように、Ｔ領域１１１内のＱ個の物理チャンクにコピー（再配置）される（ステップＳ５８及びＳ６６）。
【０１１８】
このように本変形例において第２の再配置部４０２は、第１の再配置部４０１によって新たにＬＡＦ領域１２１からＨＡＦ領域１１２にデータが再配置された高アクセス頻度物理チャンク毎に、その周辺のＱ個の物理チャンクを選択する。そして第２の再配置部４０２は、選択されたＱ個の物理チャンクのデータをＴ領域１１１に再配置する。つまり第２の再配置部４０２は、高アクセス頻度物理チャンク毎に、その周辺のＱ個の物理チャンクのデータをＴ領域１１１に再配置する。この状態で評価部４０４は、この再配置の効果を評価する（ステップＳ７１）。よって、本変形例によれば、ＬＡＦ領域１２１からＱ個の物理チャンクを単位に、物理チャンクがシーケンシャルに選択される前記実施形態と比較して、再配置の効果がより一層期待される物理チャンクの組を選択することができる。
【０１１９】
以上説明した少なくとも１つの実施形態によれば、アクセス頻度が低いチャンクにも高速領域が割り当てられる機会を与えて、その割り当てがシステム性能に及ぼす効果を評価することができる。
【０１２０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【要約】
実施形態によれば、階層化ストレージシステムは、第１のストレージ装置と、前記第１のストレージ装置よりもアクセス速度が低速で記憶容量が大きい第２のストレージ装置と、ストレージコントローラとを備える。前記ストレージコントローラは、第１の再配置部と、第２の再配置部とを備える。前記第１の再配置部は、前記第２のストレージ装置の第３の記憶領域が割り当てられている第１の論理チャンクのデータの配置先と、前記第１のストレージの第１の記憶領域が割り当てられていて、且つ前記第１の論理チャンクよりもアクセス頻度統計値が小さい第２の論理チャンクのデータの配置先とを入れ替える。第２の再配置部は、前記第３の記憶領域が割り当てられている論理チャンクの組に、前記第１のストレージ装置の第２の記憶領域を再割り当てする。【図１】
0005730446.tif 000002
【図２】
0005730446.tif 000003
【図３】
0005730446.tif 000004
【図４】
0005730446.tif 000005
【図５】
0005730446.tif 000006
【図６】
0005730446.tif 000007
【図７】
0005730446.tif 000008
【図８】
0005730446.tif 000009
【図９】
0005730446.tif 000010
【図１０】
0005730446.tif 000011
【図１１】
0005730446.tif 000012
【図１２】
0005730446.tif 000013
【図１３】
0005730446.tif 000014
【図１４】
0005730446.tif 000015
【図１５】
0005730446.tif 000016
【図１６】
0005730446.tif 000017