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