(57)【要約】【課題】  リアルタイムでの応答性能の向上を図ることができるストレージ装置及びデータ管理方法を提案する。【解決手段】  階層型データ管理方式が採用されたストレージ装置において、仮想ボリューム内の第１記憶デバイスの第１記憶領域が割り当てられる第１論理領域にリード要求を受領した場合、リード要求と同期して、第１論理領域へのアクセス頻度に応じて第１記憶デバイスの第１記憶領域に格納されるデータを第２記憶デバイスの記憶領域に移動するかを決定し、第１記憶デバイスの第１記憶領域に格納されるデータを第２記憶デバイスの記憶領域に移動すると決定した場合には、第１記憶デバイスの第１記憶領域内のデータを第２記憶デバイスの第２記憶領域に移動し、第２記憶デバイスの第２記憶領域を仮想ボリューム内の第１論理領域に割り当てるようにした。【選択図】        図１４
2015531089.tif 000002
【特許請求の範囲】
【請求項１】
第１記憶デバイスと、
前記第１記憶デバイスより性能のよい第２記憶デバイスと、
複数の論理領域を含む仮想ボリュームをホスト装置に提供し、ライト要求を受領した後に前記第１記憶デバイスの記憶領域又は前記第２記憶デバイスの記憶領域を論理領域に割り当てられるコントローラと
を有し、
前記コントローラは、
前記仮想ボリューム内の前記第１記憶デバイスの第１記憶領域が割り当てられる第１論理領域にリード要求を受領した場合、前記リード要求と同期して、前記第１論理領域へのアクセス頻度に応じて前記第１記憶デバイスの前記第１記憶領域に格納されるデータを前記第２記憶デバイスの記憶領域に移動するかを決定し、前記第１記憶デバイスの前記第１記憶領域に格納されるデータを前記第２記憶デバイスの記憶領域に移動すると決定した場合には、前記第１記憶デバイスの前記第１記憶領域内のデータを前記第２記憶デバイスの第２記憶領域に移動し、前記第２記憶デバイスの前記第２記憶領域を前記仮想ボリューム内の前記第１論理領域に割り当てる
ことを特徴とするストレージ装置。
【請求項２】
さらに、前記第１記憶デバイスより性能の劣る第３記憶デバイスを有し、
前記コントローラは、
前記リード要求又は前記ライト要求の処理と同期しては、前記第１論理領域へのアクセス頻度に応じて前記第１記憶デバイスの前記第１記憶領域に代わって前記第３記憶デバイスの記憶領域を前記仮想ボリューム内の前記第１論理領域に割り当てるかを判定する処理を実行しない
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記コントローラは、
前記第１記憶デバイス又は前記第２記憶デバイスにリード／ライトするデータを一時的に保持するキャッシュメモリを備え、
前記仮想ボリューム内の前記第１記憶デバイスの第１記憶領域が割り当てられる第１論理領域にライト要求を受領した場合、前記ライト要求と同期して、前記キャッシュメモリに書き込まれた前記ライト要求に関するライトデータを、前記第２記憶デバイスの前記第２記憶領域に格納し、前記第２記憶デバイスの前記第２記憶領域を前記仮想ボリューム内の前記第１論理領域に割り当てる
ことを特徴とする請求項１に記載のストレージ装置。
【請求項４】
前記コントローラは、
前記第１記憶デバイスの前記第１記憶領域に格納されるデータを前記第２記憶デバイスの記憶領域に移動すると決定した場合であって、前記第２記憶デバイスの記憶領域に空き容量がないときには、前記第２記憶デバイスの記憶領域内のデータを、前記第２記憶デバイスよりも性能が劣る記憶デバイス内の記憶領域に移動させることにより空き領域を作る
ことを特徴とする請求項１に記載のストレージ装置。
【請求項５】
前記コントローラは、
前記仮想ボリュームの前記複数の論理領域ごとのアクセス頻度を、アクセス数に応じて確率的にカウントアップするカウンタ値として管理し、
前記カウンタ値は、
大きくなるほどカウントアップする確率が減少するように設定された
ことを特徴とする請求項１に記載のストレージ装置。
【請求項６】
前記コントローラは、
アクセス頻度に応じて、前記第１記憶デバイスの記憶領域から前記第２記憶デバイスの記憶領域へ移動させるかを判定する基準となる閾値であって、データを前記第１記憶デバイスの記憶領域から前記第２記憶デバイスの記憶領域へ移動させた場合の応答性能の向上効果より規定される第１閾値を管理し、
前記アクセス頻度が前記第１閾値より大きい場合、前記第１記憶デバイスの前記第１記憶領域に格納されるデータを前記第２記憶デバイスの記憶領域に移動することを決定する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項７】
前記コントローラは、
アクセス頻度に応じて、前記第２記憶デバイスの記憶領域から前記第１記憶デバイスの記憶領域へ移動させるかを判定する基準となる閾値であって、データを前記第２記憶デバイスの記憶領域から前記第１記憶デバイスの記憶領域へ移動させた場合の応答性能の向上効果より規定される第２閾値と、
前記第１記憶デバイス及び前記第２の記憶デバイスの記憶領域の空き容量と、前記第１記憶デバイス及び前記第２の記憶デバイスが処理できるリード要求又はライト要求の量と、から求められる第３閾値と、を管理し、
前記仮想ボリューム内の前記第２の記憶デバイスの記憶領域が割り当てられる第２論理領域へのアクセス頻度が、前記第２閾値よりも大きく、前記第３閾値よりも小さい場合、前記第２記憶デバイスの記憶領域に格納されるデータを前記第１記憶デバイスの記憶領域に移動することを決定する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項８】
第１記憶デバイスと、前記第１記憶デバイスより性能のよい第２記憶デバイスと、複数の論理領域を含む仮想ボリュームをホスト装置に提供し、ライト要求を受領した後に前記第１記憶デバイスの記憶領域又は前記第２記憶デバイスの記憶領域を論理領域に割り当てられるコントローラとを有するストレージ装置におけるデータ管理方法であって、
前記コントローラが、前記仮想ボリューム内の前記第１記憶デバイスの第１記憶領域が割り当てられる第１論理領域にリード要求を受領した場合、前記リード要求と同期して、前記第１論理領域へのアクセス頻度に応じて前記第１記憶デバイスの前記第１記憶領域に格納されるデータを前記第２記憶デバイスの記憶領域に移動するかを決定する第１のステップと、
前記コントローラが、前記第１記憶デバイスの前記第１記憶領域に格納されるデータを前記第２記憶デバイスの記憶領域に移動すると決定した場合には、前記第１記憶デバイスの前記第１記憶領域内のデータを前記第２記憶デバイスの第２記憶領域に移動し、前記第２記憶デバイスの前記第２記憶領域を前記仮想ボリューム内の前記第１論理領域に割り当てる第２のステップと
を備えることを特徴とするデータ管理方法。
【請求項９】
前記ストレージ装置は、
さらに、前記第１記憶デバイスより性能の劣る第３記憶デバイスを有し、
前記コントローラは、
前記リード要求又は前記ライト要求の処理と同期して、前記第１論理領域へのアクセス頻度に応じて前記第１記憶デバイスの前記第１記憶領域に代わって前記第３記憶デバイスの記憶領域を前記仮想ボリューム内の前記第１論理領域に割り当てるかを判定する処理を実行しない
ことを特徴とする請求項８に記載のデータ管理方法。
【請求項１０】
前記コントローラは、
前記第１記憶デバイス又は前記第２記憶デバイスにリード／ライトするデータを一時的に保持するキャッシュメモリを備え、
前記仮想ボリューム内の前記第１記憶デバイスの第１記憶領域が割り当てられる第１論理領域にライト要求を受領した場合、前記ライト要求と同期して、前記キャッシュメモリに書き込まれた前記ライト要求に関するライトデータを、前記第２記憶デバイスの前記第２記憶領域に格納し、前記第２記憶デバイスの前記第２記憶領域を前記仮想ボリューム内の前記第１論理領域に割り当てる
ことを特徴とする請求項８に記載のデータ管理方法。
【請求項１１】
前記第１のステップにおいて、前記コントローラは、
前記第１記憶デバイスの前記第１記憶領域に格納されるデータを前記第２記憶デバイスの記憶領域に移動すると決定した場合であって、前記第２記憶デバイスの記憶領域に空き容量がないときには、前記第２記憶デバイスの記憶領域内のデータを、前記第２記憶デバイスよりも性能が劣る記憶デバイス内の記憶領域に移動させることにより空き領域を作る
ことを特徴とする請求項８に記載のデータ管理方法。
【請求項１２】
前記コントローラは、
前記仮想ボリュームの前記複数の論理領域ごとのアクセス頻度を、アクセス数に応じて確率的にカウントアップするカウンタ値として管理し、
前記カウンタ値は、
大きくなるほどカウントアップする確率が減少するように設定された
ことを特徴とする請求項８に記載のデータ管理方法。
【請求項１３】
前記コントローラは、
アクセス頻度に応じて、前記第１記憶デバイスの記憶領域から前記第２記憶デバイスの記憶領域へ移動させるかを判定する基準となる閾値であって、データを前記第１記憶デバイスの記憶領域から前記第２記憶デバイスの記憶領域へ移動させた場合の応答性能の向上効果より規定される第１閾値を管理し、
前記アクセス頻度が前記第１閾値より大きい場合、前記第１記憶デバイスの前記第１記憶領域に格納されるデータを前記第２記憶デバイスの記憶領域に移動することを決定する
ことを特徴とする請求項８に記載のデータ管理方法。
【請求項１４】
前記コントローラは、
アクセス頻度に応じて、前記第２記憶デバイスの記憶領域から前記第１記憶デバイスの記憶領域へ移動させるかを判定する基準となる閾値であって、データを前記第２記憶デバイスの記憶領域から前記第１記憶デバイスの記憶領域へ移動させた場合の応答性能の向上効果より規定される第２閾値と、
前記第１記憶デバイス及び前記第２の記憶デバイスの記憶領域の空き容量と、前記第１記憶デバイス及び前記第２の記憶デバイスが処理できるリード要求又はライト要求の量と、から求められる第３閾値と、を管理し、
前記仮想ボリューム内の前記第２の記憶デバイスの記憶領域が割り当てられる第２論理領域へのアクセス頻度が、前記第２閾値よりも大きく、前記第３閾値よりも小さい場合、前記第２記憶デバイスの記憶領域に格納されるデータを前記第１記憶デバイスの記憶領域に移動することを決定する
ことを特徴とする請求項８に記載のデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びデータ管理方法に関し、例えば、階層型データ管理技術が適用されたストレージ装置に適用して好適なものである。
【背景技術】
【０００２】
従来、ストレージ装置の仮想化技術として、階層型データ管理技術が提案されている（例えば特許文献１参照）。ストレージ装置は、ホスト装置に対して仮想的な論理ボリューム（以下、これを仮想ボリュームと呼ぶ）を提供する。ストレージ装置は、仮想ボリュームの記憶領域を所定大きさの複数の単位記憶領域（以下、これらを論理ページ又は論理ブロックと呼ぶ）に区分して管理する。
【０００３】
また、ストレージ装置は、性能の異なる複数種別の記憶ドライブがそれぞれ提供する記憶領域を１つのプールとして管理する。さらに、ストレージ装置は、当該プール内の記憶領域を、その記憶領域を提供する記憶ドライブの性能に応じてティアと呼ばれる複数の記憶階層に分け、これらティア内をそれぞれ仮想ボリュームの論理ページと同じ大きさの記憶領域（以下、これを物理ページと呼ぶ）に区分して管理する。
【０００４】
そしてホスト装置から仮想ボリュームをライト先とするライトコマンドを受信した場合、ストレージ装置は、その仮想ボリューム内のデータライト先の論理ページに対してプール内のいずれかの記憶階層から物理ページを割り当て、当該物理ページにライト対象のデータを格納する。
【０００５】
さらに、ストレージ装置は、仮想ボリュームの各論理ページに対する単位時間当たりのＩ／Ｏアクセス数（アクセス頻度）を管理し、Ｉ／Ｏアクセス数が大きい論理ページに格納されたデータは高性能の記憶ドライブにより構成される記憶階層へ、Ｉ／Ｏアクセス数が小さい論理ページに格納されたデータは低性能の記憶ドライブにより構成される記憶階層へと、定期的にデータの移動を行う。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１１／０７７４８９Ａ１
【発明の概要】
【発明が解決しようとする課題】
【０００７】
引用文献１に記載のストレージ装置では、ホストから受領したＩＯの処理と、アクセス頻度に基づいてデータを移動すべきか否かを判定する判定処理と、当該判定処理に基づいて実際にデータを移動させる移動処理とをそれぞれ別個の周期で処理を行っている。この場合、判定処理の実行周期は、ホストから受領したＩＯ処理の実行周期に比べて長く、さらに、移動処理の実行周期は、判定処理の実行周期に比べて長い。
【０００８】
このため、上記タイムラグにより、アクセス頻度の高いデータを即座に高性能のティアに移動させることができず、その分、ストレージ装置のリアルタイムでの応答性能の向上を図り難いという問題があった。
【０００９】
本発明は以上の点を考慮してなされたもので、リアルタイムでの応答性能の向上を図ることができるストレージ装置及びその制御方法を提案しようとするものである。
【課題を解決するための手段】
【００１０】
かかる課題を解決するため本発明においては、ストレージ装置において、第１記憶デバイスと、前記第１記憶デバイスより性能のよい第２記憶デバイスと、複数の論理領域を含む仮想ボリュームをホスト装置に提供し、ライト要求を受領した後に前記第１記憶デバイスの記憶領域又は前記第２記憶デバイスの記憶領域を論理領域に割り当てられるコントローラとを有し、前記コントローラは、前記仮想ボリューム内の前記第１記憶デバイスの第１記憶領域が割り当てられる第１論理領域にリード要求を受領した場合、前記リード要求と同期して、前記第１論理領域へのアクセス頻度に応じて前記第１記憶デバイスの前記第１記憶領域に格納されるデータを前記第２記憶デバイスの記憶領域に移動するかを決定し、前記第１記憶デバイスの前記第１記憶領域に格納されるデータを前記第２記憶デバイスの記憶領域に移動すると決定した場合には、前記第１記憶デバイスの前記第１記憶領域内のデータを前記第２記憶デバイスの第２記憶領域に移動し、前記第２記憶デバイスの前記第２記憶領域を前記仮想ボリューム内の前記第１論理領域に割り当てるようにした。
【００１１】
また本発明においては、第１記憶デバイスと、前記第１記憶デバイスより性能のよい第２記憶デバイスと、複数の論理領域を含む仮想ボリュームをホスト装置に提供し、ライト要求を受領した後に前記第１記憶デバイスの記憶領域又は前記第２記憶デバイスの記憶領域を論理領域に割り当てられるコントローラとを有するストレージ装置におけるデータ管理方法であって、前記コントローラが、前記仮想ボリューム内の前記第１記憶デバイスの第１記憶領域が割り当てられる第１論理領域にリード要求を受領した場合、前記リード要求と同期して、前記第１論理領域へのアクセス頻度に応じて前記第１記憶デバイスの前記第１記憶領域に格納されるデータを前記第２記憶デバイスの記憶領域に移動するかを決定する第１のステップと、前記コントローラが、前記第１記憶デバイスの前記第１記憶領域に格納されるデータを前記第２記憶デバイスの記憶領域に移動すると決定した場合には、前記第１記憶デバイスの前記第１記憶領域内のデータを前記第２記憶デバイスの第２記憶領域に移動し、前記第２記憶デバイスの前記第２記憶領域を前記仮想ボリューム内の前記第１論理領域に割り当てる第２のステップとを設けるようにした。
【発明の効果】
【００１２】
本発明によれば、リード処理と同期して、リード対象のデータを第１記憶デバイスの第１記憶領域から第２の記憶デバイスの第２の記憶領域に移動する必要があるか否かの判定処理と、データの再配置処理とを実行することができ、かくしてリアルタイムでの応答性能の向上を図ることができるストレージ装置及びデータ管理方法を実現できる。
【図面の簡単な説明】
【００１３】
【図１】本実施の形態による計算機システムの全体構成を示すブロック図である。
【図２】本実施の形態によるストレージ装置における記憶領域の論理構成を示す概念図である。
【図３】本実施の形態によるリアルタイムモニタリング機能の説明に供する概念図である。
【図４】ストレージ装置のメモリ構成の説明に供する概念図である。
【図５】仮想ボリュームインデックステーブルの構成を示す概念図である。
【図６】ＲＡＩＤグループインデックステーブルの構成を示す概念図である。
【図７】ティア管理テーブルの構成を示す概念図である。
【図８】プールインデックステーブルの構成を示す概念図である。
【図９】ページアドレステーブルの構成を示す概念図である。
【図１０】カウンタ値管理テーブルの構成を示す概念図である。
【図１１】ページ再配置実行管理テーブルの構成を示す概念図である。
【図１２】モニタ値遷移テーブルの構成を示す概念図である。
【図１３】テーブル相互間の関係を示す概念図である。
【図１４】リード処理の処理手順を示すフローチャートである。
【図１５】カウント処理の処理手順を示すフローチャートである。
【図１６】プロモーション判定処理の処理手順を示すフローチャートである。
【図１７】ＬＩＦＯの説明に供する概念図である。
【図１８】緊急デモーション処理の処理手順を示すフローチャートである。
【図１９】ページ再配置処理の処理手順を示すフローチャートである。
【図２０】ページ再配置処理の説明に供する概念図である。
【図２１】ページ再配置処理の説明に供する概念図である。
【図２２】ページ再配置処理の説明に供する概念図である。
【図２３】ライト処理の処理手順を示すフローチャートである。
【図２４】チャンク割当て処理の説明に供する概念図である。
【図２５】チャンク割当て処理の説明に供する概念図である。
【図２６】チャンク割当て処理の説明に供する概念図である。
【図２７】チャンク割当て処理の説明に供する概念図である。
【図２８】チャンク割当て処理の処理手順を示すフローチャートである。
【図２９】本実施の形態によるティア閾値の算出手法の説明に供する図表である。
【図３０】（Ａ）−（Ｃ）は、本実施の形態によるティア閾値の算出手法の説明に供する概念図である。
【図３１】（Ａ）及び（Ｂ）は、本実施の形態によるティア閾値の算出手法の説明に供する度数分布図である。
【図３２】ティア閾値算出処理の処理手順を示すフローチャートである。
【図３３】ティア性能配分量算出処理の処理手順を示すフローチャートである。
【図３４】区間Ｉ／Ｏアクセス管理テーブルの構成を示す概念図である。
【図３５】ティア性能配分量算出処理の説明に供するグラフである。
【図３６】ティア閾値算出処理の処理手順を示すフローチャートである。
【図３７】プロモーションライン及びデモーションラインの説明に供するグラフである。
【図３８】（Ａ）−（Ｃ）は、プロモーションライン及びデモーションラインの説明に供する図表である。
【図３９】プロモーションライン及びデモーションラインの説明に供するグラフである。
【図４０】（Ａ）−（Ｃ）は、プロモーションライン及びデモーションラインの説明に供する図表である。
【図４１】プロモーションライン及びデモーションラインの説明に供するグラフである。
【図４２】ＰＤライン算出処理の処理手順を示すフローチャートである。
【図４３】ティア決定処理の処理手順を示すフローチャートである。
【図４４】デモーション判定処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下図面について、本発明の一実施の形態を詳述する。
【００１５】
（１）本実施の形態による計算機システムの構成
図１において、１は全体として本実施の形態による計算機システムを示す。この計算機システム１は、複数のホスト装置２、管理装置３及びストレージ装置４がネットワーク５を介して接続されることにより構成されている。
【００１６】
ホスト装置２は、ストレージ装置４に対してＩ／Ｏアクセス（リードアクセス又はライトアクセス）を実行するコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション又はメインフレームなどから構成される。
【００１７】
管理装置３は、ストレージ装置４を管理するサーバ装置であり、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）等の情報処理資源を備えた汎用のサーバ装置から構成される。管理装置３は、ストレージ装置４に対して各種設定を行うためのＵＩ（User Interface）画面や各種情報を表示する表示装置と、オペレータが各種操作や各種設定入力を行うためのキーボードやマウス等の入力装置と、ネットワーク５を介してストレージ装置４と通信を行うための通信装置とを備える。入力装置を介して入力された各種指令に基づいてＣＰＵがＲＯＭ等に格納されたプログラムを実行することにより、管理装置３全体としての各種処理が実行される。
【００１８】
ストレージ装置４は、基本筐体１０と、１又は複数の増設筐体１１とから構成される。
【００１９】
基本筐体１０は、複数の記憶ドライブ２０と、これら複数の記憶ドライブ２０へのデータの入出力を制御する０系及び１系の２つのコントローラ２１Ａ，２１Ｂとを備える。
【００２０】
記憶ドライブ２０は、例えばＳＡＳ（Serial Attached SCSI）ディスク若しくはＳＡＴＡ（Serial AT Attachment）ディスク等のハードディスク装置や、ＳＳＤ（Solid State Drive）等の半導体メモリ等から構成される。これらの記憶ドライブ２０は、０系及び１系の各コントローラ２１Ａ，２１ＢによりＲＡＩＤ（Redundant Arrays of Inexpensive Disks）方式で運用される。なおコントローラ２１Ａ，２１Ｂは１つであっても良い。
【００２１】
０系及び１系のコントローラ２１Ａ，２１Ｂは、それぞれ通信インタフェース部２２Ａ，２２Ｂ、データ転送制御部２３Ａ，２３Ｂ、ブリッジ２４Ａ，２４Ｂ、ＣＰＵ（Central Processing Unit）２５Ａ，２５Ｂ、ローカルメモリ２６Ａ，２６Ｂ、キャッシュメモリ２７Ａ，２７Ｂ、ドライブインタフェース部２８Ａ，２８Ｂ及びスイッチ２９Ａ，２９Ｂを備える。
【００２２】
通信インタフェース部２２Ａ，２２Ｂは、ネットワーク５に対するインタフェースであり、ネットワーク５を介してホスト装置２との間でデータ（ライトデータ又はリードデータ）やＩ／Ｏコマンドなどを送受する。
【００２３】
データ転送制御部２３Ａ，２３Ｂは、通信インタフェース部２２Ａ，２２Ｂ、ブリッジ２４Ａ，２４Ｂ、キャッシュメモリ２７Ａ，２７Ｂ及びドライブインタフェース部２８Ａ，２８Ｂ間におけるデータの転送元及び転送先を切り替える機能を有するもので、例えばＰＣＩｅ（ＰＣＩ（Peripheral Component Interconnect）Ｅｘｐｒｅｓｓ）スイッチから構成される。またデータ転送制御部２３Ａ，２３Ｂは、他系（１系又は０系）のデータ転送制御部２３Ｂ，２３Ａとバス３０を介して接続されており、このバス３０を通じて他系のデータ転送制御部２３Ｂ，２３Ａとの間でコマンドやデータを送受することができるようになされている。
【００２４】
ブリッジ２４Ａ，２４Ｂは、自系のＣＰＵ２５Ａ，２５Ｂ及びローカルメモリ２６Ａ，２６Ｂをそれぞれ自系のデータ転送制御部２３Ａ，２３Ｂに接続する中継装置であり、通信インタフェース部２２Ａ，２２Ｂ、データ転送制御部２３Ａ，２３Ｂ、キャッシュメモリ２７Ａ，２７Ｂ及びドライブインタフェース部２８Ａ，２８Ｂ間を接続するバスを流れるデータのうちの対応するデータのみを抽出してＣＰＵ２５Ａ，２５Ｂやローカルメモリ２６Ａ，２６Ｂに転送する。
【００２５】
ＣＰＵ２５Ａ，２５Ｂは、ストレージ装置４全体の動作制御を司るプロセッサであり、例えば通信インタフェース部２２Ａ，２２Ｂを介して送受信されるデータ、コマンド又は管理情報の入出力を制御する。またローカルメモリ２６Ａ，２６Ｂは、主として各種制御プログラムや各種制御データを保持するために用いられる。ローカルメモリ２６Ａ，２６Ｂに保持された制御プログラムをＣＰＵ２５Ａ，２５Ｂが実行することにより、ストレージ装置４全体として後述のような各種処理が実行される。
【００２６】
キャッシュメモリ２７Ａ，２７Ｂは、主として記憶ドライブ２０からリードしたデータや、記憶ドライブ２０にライトするデータを一時的に記憶保持するために用いられる。
【００２７】
ドライブインタフェース部２８Ａ，２８Ｂは、記憶ドライブ２０に対するインタフェースである。ＣＰＵ２５Ａ，２５Ｂは、通信インタフェース部２２Ａ，２２Ｂを介して与えられるホスト装置２からのＩ／Ｏコマンドに基づいてドライブインタフェース部２８Ａ，２８Ｂを介して対応する記憶ドライブ２０を制御することにより、ライトデータやリードデータを対応する記憶ドライブ２０内の対応するアドレス位置に読み書きする。
【００２８】
スイッチ２９Ａ，２９Ｂは、０系及び１系の各コントローラ２１Ａ，２１Ｂに対して複数の記憶ドライブ２０を接続するための中継器であり、例えばエクスパンダから構成される。このスイッチ２９Ａ，２９Ｂは、スイッチ２９Ａ，２９Ｂ同士で木構造のトポロジで拡張して接続することができ、これにより０系及び１系の各コントローラ２１Ａ，２１Ｂが、複数のスイッチ２９Ａ，２９Ｂを介して多数の記憶ドライブ２０を制御することができる。
【００２９】
増設筐体１１は、基本筐体１０の０系及び１系のコントローラ２１Ａ，２１Ｂ内に設けられたスイッチ２９Ａ，２９Ｂにそれぞれ対応させて配設された複数のスイッチ３１Ａ，３１Ｂと、複数の記憶ドライブ２０とから構成される。スイッチ３１Ａ，３１Ｂは、基本筐体１０のスイッチ２９Ａ，２９Ｂと同様のものが適用され、これらスイッチ２９Ａ，２９Ｂとそれぞれ直接又は前段の増設筐体１１内の対応するスイッチ３１Ａ，３１Ｂを介して間接的に接続される。
【００３０】
図２は、ストレージ装置４における記憶領域の論理構成を示す。本計算機システム１においては、ストレージ装置４内の１又は複数の記憶ドライブ２０により１つのＲＡＩＤグループＲＧが構成され、１又は複数のＲＡＩＤグループＲＧが提供する記憶領域が１つのプールＰＬとして管理される。ＲＡＩＤグループＲＧが提供する記憶領域は、そのＲＡＩＤグループＲＧを構成する記憶ドライブ２０の性能に応じて複数種類のティア（記憶階層）に分けて管理される。仮想ボリュームへ割り当てられるページ（又はブロック）単位の記憶領域を階層間で変更するデータ管理を行う動作モード（以下、これを階層モードと呼ぶ）が設定されているプールＰＬは、それぞれ応答性能が異なる複数のティアにより構成される。各プールＰＬの記憶領域は、仮想ボリュームＶＶＯＬの論理ページと同じサイズの物理ページに区分して管理される。
【００３１】
各プールＰＬには、それぞれ１又は複数の仮想ボリュームＶＶＯＬが対応付けられ、これら仮想ボリュームＶＶＯＬがホスト装置２に提供される。
【００３２】
各仮想ボリュームＶＶＯＬには、それぞれ固有の識別子（以下、これをボリューム番号と呼ぶ）が付与される。また各仮想ボリュームＶＶＯＬ内は、論理ブロックと呼ばれる所定大きさの記憶領域を単位として管理される。さらに仮想ボリュームＶＶＯＬは、所定大きさの論理ページに区分され、これら論理ページを単位として管理される。ここで、論理ページは複数個の論理ブロックにより構成される。本実施の形態の場合、ホスト装置２から仮想ボリュームＶＶＯＬに対するデータの読み書きは、その仮想ボリュームＶＶＯＬのボリューム番号と、当該仮想ボリュームＶＶＯＬ内の各論理ブロックにそれぞれ付与されるその論理ブロックに固有の番号（以下、これをＬＢＡ（Logical Block Address）と呼ぶ）とを組み合わせたものを仮想アドレスとして、当該仮想アドレスを指定して行われる。
【００３３】
ホスト装置２より仮想ボリュームＶＶＯＬを対象とするデータのライトコマンドを受信した場合であって、当該仮想ボリュームＶＶＯＬ内の当該データのライト先として指定された仮想アドレスに記憶領域が割り当てられていない場合には、その仮想アドレスの論理ブロックが含まれる論理ページにその仮想ボリュームＶＶＯＬと対応付けられたプールＰＬから物理ページ単位で必要量の記憶領域が割り当てられる。そしてホスト装置２からのライトデータは、これら論理ブロックに割り当てられた物理ページに書き込まれる。
【００３４】
（２）本実施の形態によるリアルタイムモニタリング機能
次に、本実施の形態によるストレージ装置４に搭載されたリアルタイムモニタリング機能について説明する。
【００３５】
図３は、かかるリアルタイムモニタリング機能に基づいて、階層モードがオン設定されたプールＰＬについてストレージ装置４において実行されるリアルタイムモニタリング処理の概要を示す。
【００３６】
この図３に示すように、ストレージ装置４は、階層モードがオン設定されたプールＰＬについて、所定のモニタリング周期でホスト装置２からのＩ／Ｏ要求（リード要求又はライト要求）を処理するホストＩ／Ｏ処理（リード処理又はライト処理）ＳＴ１と、各仮想ボリュームＶＶＯＬの論理ページのうち、アクセス頻度の高い又は低い論理ページに書き込まれたデータを、対応するプールＰＬ内の現在の物理ページから当該物理ページが属するティアよりも上位又は下位のティアに属する物理ページに移動させるページ再配置処理ＳＴ４とを実行する。
【００３７】
またストレージ装置４は、これらホストＩ／Ｏ処理ＳＴ１及びページ再配置処理ＳＴ４に加えて、論理ページに書き込まれたデータを他のティアに移動するか否かを判定する際の判定基準となる閾値（以下、これをティア閾値と呼ぶ）をプールＰＬごとに算出するティア閾値算出処理ＳＴ２と、各仮想ボリュームＶＶＯＬの各論理ページについて、その論理ページに格納されたデータを格納すべき最適なティアを決定するティア決定処理ＳＴ３とを、それぞれその処理について設定された所定の周期（ＳＴ１とＳＴ４とは別の周期）で実行している。
【００３８】
この場合、かかるティア閾値算出処理ＳＴ２の実行周期は数分周期、ティア決定処理ＳＴ３の実行周期は数秒周期であるため、数ns周期であるホストＩ／Ｏ処理ＳＴ１及びページ再配置処理ＳＴ４の実行周期（モニタリング周期）に比べて極めて遅い。このため、かかるティア閾値算出処理ＳＴ２及びティア決定処理ＳＴ３の実行周期と、ホストＩ／Ｏ処理ＳＴ１及びページ再配置処理ＳＴ４との間のタイムラグにより、移動すべきデータを即座に適切なティアの物理ページに移動できない場合がある。
【００３９】
またかかるタイムラグを少なくするためにティア閾値算出処理ＳＴ２及びティア決定処理ＳＴ３をホストＩ／Ｏ処理ＳＴ１及びページ再配置処理ＳＴ４の実行周期と同じ周期で実行することも考えられるが、このようにした場合、これらティア閾値算出処理ＳＴ２及びティア決定処理ＳＴ３に対するオーバーヘッドの増加により本来期待される応答性能が得られなくなるという問題がある。
【００４０】
そこで本ストレージ装置４では、階層モードがオン設定されたプールＰＬと対応付けられた仮想ボリュームＶＶＯＬについては、ホストＩ／Ｏ処理ＳＴ１時に、ホスト装置２からのＩ／Ｏアクセスのあった論理ページに書き込まれたデータを対応するプールＰＬ内の現在の物理ページから当該物理ページよりも上位のティアに属する物理ページに移動（プールＰＬ内の現在の物理ページから当該物理ページよりも上位のティアに属する物理ページに移動することを以下、これをプロモーションと呼ぶ）すべきか否かを判定するプロモーション判定処理を実行し、プロモーションが必要と判定した場合には、そのホストＩ／Ｏ処理と同期してそのデータを対応するプールＰＬ内の適切なティアの物理ページに移動させるページ再配置処理を実行する点を特徴の１つとしている。
【００４１】
なお、以下においては、ストレージ装置４内のプールＰＬに設定されるティアは第１〜第３のティアから構成される３階層構造とし、第１のティア（Tier1）は、最も性能が高い記憶ドライブ２０（例えばＳＳＤ）から構成されるＲＡＩＤグループＲＧが提供する記憶領域、第２のティア（Tier2）は、次に性能が高い記憶ドライブ２０（例えばＳＡＳディスク）から構成されるＲＡＩＤグループＲＧが提供する記憶領域、第３のティア（Tier3）が最も性能が低い記憶ドライブ２０（例えばＮＬ−ＳＡＳ、ＳＡＴＡディスク）から構成されるＲＡＩＤグループＲＧが提供する記憶領域であるものとして説明を進める。
【００４２】
上述のような本実施の形態によるリアルタイムモニタリング処理を実現するための手段として、ストレージ装置４のローカルメモリ２６Ａ，２６Ｂには、図４に示すように、仮想ボリュームインデックステーブル４０、ＲＡＩＤグループインデックステーブル４１、ティア管理テーブル４２、プールインデックステーブル４３、ページアドレステーブル４４、カウンタ値管理テーブル４５、ページ再配置実行管理テーブル４６及びカウンタ値遷移テーブル４７が格納されている。
【００４３】
このうち仮想ボリュームインデックステーブル４０は、ストレージ装置４内に設定された仮想ボリュームＶＶＯＬを管理するためのテーブルであり、図５に示すように、ボリューム番号欄４０Ａ、総ページ数欄４０Ｂ、割当て済みページ数欄４０Ｃ、割当て済チャンク数欄４０Ｄ、所属プール欄４０Ｅ、Ｉ／Ｏ同期プロモーション欄４０Ｆ、前回割当てＲＡＩＤグループ番号欄４０Ｇ及び階層モード欄４０Ｈから構成される。
【００４４】
そしてボリューム番号欄４０Ａには、ストレージ装置４内に設定された各仮想ボリュームＶＶＯＬにそれぞれ付与された識別子（以下、これをボリューム番号と呼ぶ）が格納され、総ページ数欄４０Ｂには、対応する仮想ボリュームＶＶＯＬに設定された論理ページの総数が格納される。
【００４５】
また割当て済ページ数欄４０Ｃは、第１のティア欄４０ＣＡ、第２のティア欄４０ＣＢ及び第３のティア欄４０ＣＣから構成され、これら第１のティア欄４０ＣＡ、第２のティア欄４０ＣＢ及び第３のティア欄４０ＣＣ内に、対応する仮想ボリュームＶＶＯＬに対して対応するプールＰＬ内の第１〜第３のティアに属する物理ページからそれぞれ割り当てられている物理ページの総数がそれぞれ格納される。
【００４６】
割当て済チャンク数欄４０Ｄも同様に、第１のティア欄４０ＤＡ、第２のティア欄４０ＤＢ及び第３のティア欄４０ＤＣから構成され、これら第１のティア欄４０ＤＡ、第２のティア欄４０ＤＢ及び第３のティア欄４０ＤＣ内に、対応する仮想ボリュームＶＶＯＬに対して対応するプールＰＬ内の第１〜第３のティアに属する物理ページからそれぞれ割り当てられているチャンクの総数がそれぞれ格納される。ここで、チャンクとは、仮想ボリュームＶＶＯＬに割り当てるためにプールＰＬ上で一度に確保される記憶領域の単位であり、所定個数（本実施の形態においては32個）の物理ページから構成される。チャンクの詳細については後述する。なお、ＳＳＤの記憶領域である第１のティアは物理チャンクと物理ページの大きさが同じである。
【００４７】
所属プール欄４０Ｅには、対応する仮想ボリュームＶＶＯＬが対応付けられたプールＰＬの識別子（以下、これをプール番号と呼ぶ）が格納され、Ｉ／Ｏ同期プロモーション欄４０Ｆには、かかるホストＩ／Ｏ処理ＳＴ１（図３）に同期して、Ｉ／Ｏ対象のデータをプールＰＬ内の上位のティアの物理ページに移動（格納）するか否かを判定し、Ｉ／Ｏ対象のデータを対応するプールＰＬ内の上位のティアの物理ページに移動（格納）する処理を実行する動作モード（以下、これをＩ／Ｏ同期プロモーションモードと呼ぶ）が設定されているか否かを表す情報（設定されている場合には「ON」、設定されていない場合には「OFF」）が格納される。
【００４８】
さらに前回割当てＲＡＩＤグループ番号欄４０Ｇには、対応する仮想ボリュームＶＶＯＬに対して最後に物理ページを割り当てたＲＡＩＤグループＲＧの識別番号（以下、これをＲＡＩＤグループ番号と呼ぶ）が格納され、階層モード欄４０Ｈには、その仮想ボリュームＶＶＯＬが対応付けられたプールＰＬに対して階層モードが設定されているか否かを表す情報（設定されている場合には「ON」、設定されていない場合には「OFF」）が格納される。
【００４９】
なお、階層モードとは、上述のように階層型データ管理技術によりデータ管理を行う動作モードを指す。この階層モードが設定されているプールＰＬについては、複数のティアから構成され、仮想ボリュームＶＶＯＬの各論理ページへのアクセス頻度に基づき、必要に応じて、その論理ページに書き込まれたデータがそのときその論理ページと対応付けられていた物理ページからプールＰＬ内の上位又は下位のティアに属する物理ページに移動される。
【００５０】
ＲＡＩＤグループインデックステーブル４１は、ストレージ装置４内に定義されたＲＡＩＤグループＲＧを管理するために利用されるテーブルであり、図６に示すように、ＲＡＩＤグループ番号欄４１Ａ、プール番号欄４１Ｂ、総チャンク数欄４１Ｃ、使用チャンク数欄４１Ｄ、ドライブ種別及びティア欄４１Ｅ、所属仮想ボリューム欄４１Ｆ、チャンクサイズ欄４１Ｇ及びページサイズ欄４１Ｈから構成される。
【００５１】
そしてＲＡＩＤグループ番号欄４１Ａには、ストレージ装置４内に作成された各ＲＡＩＤグループＲＧのＲＡＩＤグループ番号が格納され、プール番号欄４１Ｂには、対応するＲＡＩＤグループＲＧが属する（構成する）プールＰＬのプール番号が格納される。
【００５２】
また総チャンク数欄４１Ｃには、対応するＲＡＩＤグループＲＧが提供する記憶領域の総チャンク数が格納され、使用チャンク数欄４１Ｄには、かかる総チャンク数のうちの既にいずれかの仮想ボリュームＶＶＯＬに割り当てられているチャンクの総数が格納される。
【００５３】
さらにドライブ種別及びティア欄４１Ｅには、そのＲＡＩＤグループＲＧを構成する記憶ドライブ２０（図１）の種別と、当該記憶ドライブ２０が提供する記憶領域が属するティアの識別番号（以下、これをティア番号と呼ぶ）が格納され、所属仮想ボリューム欄４１Ｆには、そのＲＡＩＤグループＲＧが提供する物理ページが割り当てられた仮想ボリュームＶＶＯＬのボリューム番号が格納される。
【００５４】
さらにチャンクサイズ欄４１Ｇには、そのＲＡＩＤグループＲＧが提供する記憶領域におけるチャンクのサイズが格納され、ページサイズ欄４１Ｈには、そのＲＡＩＤグループＲＧが提供する記憶領域における物理ページのサイズが格納される。
【００５５】
一方、ティア管理テーブル４２は、プールＰＬを構成する各ティア（第１〜第３のティア）を管理するためにプールＰＬごとに作成されるテーブルであり、図７に示すように、ティアインデックス欄４２Ａ、プール番号欄４２Ｂ、所属ＲＡＩＤグループ欄４２Ｃ、総容量欄４２Ｄ、使用容量欄４２Ｅ、新規割当て用バッファ率欄４２Ｆ及び再配置用バッファ率欄４２Ｇから構成される。
【００５６】
そして各プール欄４２Ｂには、対応するプールＰＬのプール番号がそれぞれ格納される。またティアインデックス欄４２Ａには、そのプールＰＬを構成する各ティア（第１〜第３のティア）のティア番号が格納され、所属ＲＡＩＤグループ欄４２Ｃには、対応するティアの記憶領域を提供するすべてのＲＡＩＤグループＲＧのＲＡＩＤグループ番号が格納される。
【００５７】
さらに総容量欄４２Ｄには、対応するティアの総容量が格納され、使用容量欄４２Ｅには、そのティアの総容量のうち、既にいずれかの仮想ボリュームＶＶＯＬに割り当てられている容量が格納される。さらに新規割当て用バッファ率欄４２Ｆには、そのティアに新規に物理ページを割り当てる際のバッファとして確保しておくべき記憶容量の比率（総容量に対する比率であり、以下、これを新規割当て用バッファ率と呼ぶ）が格納される。同様に、再配置用バッファ率欄４２Ｇには、そのティア内の物理ページに格納されたデータを他のティアの物理ページに移動する処理の際バッファとして確保しておくべき記憶容量の比率（総容量に対する比率であり、以下、これを再配置用バッファ率と呼ぶ）が格納される。
【００５８】
プールインデックステーブル４３は、ストレージ装置４内に設定されたプールＰＬを管理するために利用されるテーブルであり、図８に示すように、プール番号欄４３Ａ、階層モード欄４３Ｂ、所属ＲＡＩＤグループ欄４３Ｃ、所属仮想ボリューム欄４３Ｄ、実行状態欄４３Ｅ、ティア閾値欄４３Ｆ、プロモーションライン（以下、これをプロモーション閾値とも呼ぶ場合もある）欄４３Ｇ及びデモーションライン（以下、これをデモーション閾値とも呼ぶ場合もある）欄４３Ｈから構成される。
【００５９】
そしてプール番号欄４３Ａには、ストレージ装置４内に作成された各プールＰＬにそれぞれ付与された識別番号（プール番号）が格納され、階層モード欄４３Ｂには、そのプールＰＬについて階層モードが設定されているか否かを表す情報（階層モードが設定されている場合には「ON」、階層モードが設定されていない場合には「OFF」）が格納される。
【００６０】
また所属ＲＡＩＤグループ欄４３Ｃには、対応するプールＰＬに所属する（そのプールＰＬを構成する）ＲＡＩＤグループＲＧのＲＡＩＤグループ番号が格納され、所属仮想ボリューム欄４３Ｄには、そのプールＰＬと対応付けられたすべての仮想ボリュームＶＶＯＬのボリューム番号が格納される。
【００６１】
さらに実行状態欄４３Ｅには、そのプールＰＬに階層モードが設定されている場合において、そのプールＰＬと対応付けられた各仮想ボリュームＶＶＯＬ内の個々の論理ページについて、Ｉ／Ｏアクセス数をカウントする設定がなされているか否かを表す情報（カウントする設定がなされている場合には「採取」、カウントする設定がなされていない場合には「停止」）が格納される。
【００６２】
ティア閾値欄４３Ｆは、第１及び第２のティア閾値欄４３ＦＡ，４３ＦＢから構成される。そして第１のティア閾値欄４３ＦＡには、対応する仮想ボリュームＶＶＯＬの論理ページに書き込まれたデータを、対応するプールＰＬ内の第１のティアに所属する物理ページから第２のティアに所属する物理ページに移動（デモーション）し、又は、第２のティアに所属する物理ページから第１のティアに所属する物理ページに移動（プロモーション）すべきか否かを判定する際の判定基準となるティア閾値（以下、これを第１のティア閾値と呼ぶ）が格納される。
【００６３】
また第２のティア閾値欄４３ＦＢには、かかる仮想ボリュームＶＶＯＬの論理ページに格納されたデータを、かかるプールＰＬ内の第２のティアに所属する物理ページから第３のティアに所属する物理ページに移動（デモーション）し、又は、第３のティアに所属する物理ページから第２のティアに所属する物理ページに移動（プロモーション）すべきか否かを判定する際の判定基準となるティア閾値（以下、これを第２のティア閾値と呼ぶ）が格納される。これら第１及び第２のティア閾値の詳細については、後述する。
【００６４】
プロモーションライン欄４３Ｇは、Ｔ３−Ｔ１プロモーションライン欄４３ＧＡ、Ｔ２−Ｔ１プロモーションライン欄４３ＧＢ及びＴ３−Ｔ２プロモーションライン欄４３ＧＣから構成される。
【００６５】
そしてＴ３−Ｔ１プロモーションライン欄４３ＧＡには、対応する仮想ボリュームＶＶＯＬの論理ページに格納されたデータを、対応するプールＰＬ内の第３のティアに所属する物理ページから第１のティアに所属する物理ページに移動（プロモーション）すべきか否かを判定する際に、上述の第１のティア閾値と併せて判定基準として利用される当該論理ページへのアクセス頻度の閾値（以下、これをＴ３−Ｔ１プロモーションラインと呼ぶ）が格納される。第３のティアに所属する物理ページから第１のティアに所属する物理ページへのプロモーションは、対応する仮想ボリュームＶＶＯＬの対応する論理ページへのＩ／Ｏアクセス数が第１のティア閾値より規定される移動条件（第１のティア閾値よりも大きい）と、Ｔ３−Ｔ１プロモーションラインにより規定される移動条件（Ｔ３−Ｔ１プロモーションラインよりも大きい）という双方の移動条件を満たす場合に実行される。なお、第３のティアに所属する物理ページから第１のティアに所属する物理ページへのプロモーションは、第１のティア閾値を考慮せずに、Ｔ３−Ｔ１プロモーションラインにより規定される移動条件（Ｔ３−Ｔ１プロモーションラインよりも大きい）を満たす場合に実行してもよい。
【００６６】
同様に、Ｔ２−Ｔ１プロモーションライン欄４３ＧＢには、かかる仮想ボリュームＶＶＯＬの論理ページに格納されたデータを、かかるプールＰＬ内の第２のティアに所属する物理ページから第１のティアに所属する物理ページに移動（プロモーション）すべきか否かを判定する際に、上述の第１のティア閾値と併せて判定基準として利用される当該論理ページへのアクセス頻度の閾値（以下、これをＴ２−Ｔ１プロモーションラインと呼ぶ）が格納される。第２のティアに所属する物理ページから第１のティアに所属する物理ページへのプロモーションは、対応する仮想ボリュームＶＶＯＬの対応する論理ページへのＩ／Ｏアクセス数が第１のティア閾値より規定される移動条件（第１のティア閾値よりも大きい）と、Ｔ２−Ｔ１プロモーションラインにより規定される移動条件（Ｔ２−Ｔ１プロモーションラインよりも大きい）という双方の移動条件を満たす場合に実行される。なお、第２のティアに所属する物理ページから第１のティアに所属する物理ページへのプロモーションは、第１のティア閾値を考慮せずに、Ｔ２−Ｔ１プロモーションラインにより規定される移動条件（Ｔ２−Ｔ１プロモーションラインよりも大きい）を満たす場合に実行してもよい。
【００６７】
さらにＴ３−Ｔ２プロモーションライン欄４３ＧＣには、かかる仮想ボリュームＶＶＯＬの論理ページに格納されたデータを、かかるプール内の第３のティアに所属する物理ページから第２のティアに所属する物理ページに移動（プロモーション）すべきか否かを判定する際に、上述の第２のティア閾値と併せて判定基準として利用される当該論理ページへのアクセス頻度の閾値（以下、これをＴ３−Ｔ２プロモーションラインと呼ぶ）が格納される。第３のティアに所属する物理ページから第２のティアに所属する物理ページへのプロモーションは、対応する仮想ボリュームＶＶＯＬの対応する論理ページへのＩ／Ｏアクセス数が第２のティア閾値より規定される移動条件（第２のティア閾値よりも大きい）と、Ｔ３−Ｔ２プロモーションラインにより規定される移動条件（Ｔ３−Ｔ２プロモーションラインよりも大きい）という双方の移動条件を満たす場合に実行される。なお、第３のティアに所属する物理ページから第２のティアに所属する物理ページへのプロモーションは、第２のティア閾値を考慮せずに、Ｔ３−Ｔ２プロモーションラインにより規定される移動条件（Ｔ３−Ｔ２プロモーションラインよりも大きい）を満たす場合に実行してもよい。
【００６８】
またデモーションライン欄４３Ｈは、Ｔ１−Ｔ２デモーションライン欄４３ＨＡ、Ｔ２−Ｔ３デモーションライン欄４３ＨＢ及びＴ１−Ｔ３デモーションライン欄４３ＨＣから構成される。
【００６９】
そしてＴ１−Ｔ２デモーションライン欄４３ＨＡには、対応する仮想ボリュームＶＶＯＬの論理ページに格納されたデータを、対応するプールＰＬ内の第１のティアに所属する物理ページから第２のティアに所属する物理ページに移動（デモーション）すべきか否かを判定する際に、上述の第１のティア閾値と併せて判定基準として利用される当該論理ページへのアクセス頻度の閾値（以下、これをＴ１−Ｔ２デモーションラインと呼ぶ）が格納される。第１のティアに所属する物理ページから第２のティアに所属する物理ページへのデモーションは、対応する仮想ボリュームＶＶＯＬの対応する論理ページへのＩ／Ｏアクセス数が第１のティア閾値より規定される移動条件（第１のティア閾値よりも小さい）と、Ｔ１−Ｔ２デモーションラインにより規定される移動条件（Ｔ１−Ｔ２デモーションラインよりも大きい）という双方の移動条件を満たす場合に実行される。つまり、Ｉ／Ｏアクセス数が第１のティア閾値より小さく、かつＴ１−Ｔ２デモーションラインより大きい場合に第１のティアに所属する物理ページから第２のティアに所属する物理ページへデモーションが実行される。
【００７０】
同様に、Ｔ２−Ｔ３デモーションライン欄４３ＨＢには、かかる仮想ボリュームＶＶＯＬの論理ページに格納されたデータを、かかるプールＰＬ内の第２のティアに所属する物理ページから第３のティアに所属する物理ページに移動（デモーション）すべきか否かを判定する際に、上述の第２のティア閾値と併せて判定基準として利用される当該論理ページへのアクセス頻度の閾値（以下、これをＴ２−Ｔ３デモーションラインと呼ぶ）が格納される。第２のティアに所属する物理ページから第３のティアに所属する物理ページへの移動は、対応する仮想ボリュームＶＶＯＬの対応する論理ページへのＩ／Ｏアクセス数が第２のティア閾値より規定される移動条件（第２のティア閾値よりも小さい）と、Ｔ２−Ｔ３デモーションラインにより規定される移動条件（Ｔ２−Ｔ３デモーションラインよりも大きい）という双方の移動条件を満たす場合に実行される。つまり、Ｉ／Ｏアクセス数が第２のティア閾値より小さく、かつＴ２−Ｔ３デモーションラインより大きい場合に第２のティアに所属する物理ページから第３のティアに所属する物理ページへデモーションが実行される。
【００７１】
さらにＴ１−Ｔ３デモーションライン欄４３ＨＣには、かかる仮想ボリュームＶＶＯＬの論理ページに格納されたデータを、かかるプールＰＬ内の第１のティアに所属する物理ページから第３のティアに所属する物理ページに再配置（デモーション）すべきか否かを判定する際に、上述の第２のティア閾値と併せて判定基準として利用される当該論理ページへのアクセス頻度の閾値（以下、これをＴ１−Ｔ３プロモーションラインと呼ぶ）が格納される。第１のティアに所属する物理ページから第３のティアに所属する物理ページへのデモーションは、対応する仮想ボリュームＶＶＯＬの対応する論理ページへのＩ／Ｏアクセス数が第２のティア閾値より規定される移動条件（第２のティア閾値よりも小さい）と、Ｔ１−Ｔ３デモーションラインにより規定される移動条件（Ｔ１−Ｔ３デモーションラインよりも大きい）という双方の移動条件を満たす場合に実行される。つまり、Ｉ／Ｏアクセス数が第２のティア閾値より小さく、かつＴ１−Ｔ３デモーションラインより大きい場合に第１のティアに所属する物理ページから第３のティアに所属する物理ページへデモーションが実行される。
【００７２】
ページアドレステーブル４４は、物理ページの仮想ボリュームの論理ページへの割り当て状態を示すテーブルである。このページアドレステーブル４４は、図９に示すように、ページ番号欄４４Ａ、ＲＡＩＤグループ番号欄４４Ｂ、ページ状態欄４４Ｃ、ボリューム番号欄４４Ｄ、再配置状態欄４４Ｅ、前方キューポインタ又は仮想アドレス欄４４Ｆ及び後方キューポインタ欄４４Ｇから構成される。
【００７３】
そしてページ番号欄４４Ａには、対応するチャンクを構成する各物理ページに対してそれぞれ付与された識別番号（以下、これをページ番号と呼ぶ）が格納される。なお、このページ番号は、ストレージ装置４内においてその物理ページに固有のものであり、ストレージ装置４内のすべての物理ページに対してそれぞれ異なるページ番号が付与される。
【００７４】
ＲＡＩＤグループ番号欄４４Ｂには、対応する物理ページを提供するＲＡＩＤグループＲＧのＲＡＩＤグループ番号が格納される。
【００７５】
ページ状態欄４４Ｃには、その物理ページが既にいずれかの仮想ボリュームＶＶＯＬの論理ページに割り当てられているか否かを表す情報（割り当てられている場合には「割当て済」、割り当てられていない場合には「未割当て」）が格納される。
【００７６】
ボリューム番号欄４４Ｄには、対応するページ番号の物理ページが割り当てられた仮想ボリュームＶＶＯＬのボリューム番号が格納される。従って、未割り当ての物理ページには、仮想ボリュームＶＶＯＬのボリューム番号が格納されていない。
【００７７】
再配置状態欄４４Ｅには、その物理ページに格納されたデータを他の物理ページに移動するページ再配置処理の実行状態が格納される。なお、「ページ再配置処理の実行状態」としては、ページ再配置処理を実行中であることを表す「移動中」と、ページ再配置処理を実行することが決まっているが、まだページ再配置処理を実行していない「待機中」などがある。
【００７８】
さらに前方キューポインタ又は仮想アドレス欄４４Ｖには、対応する物理ページがいずれかの仮想ボリュームＶＶＯＬに割り当てられている場合には、その仮想ボリュームＶＶＯＬにおけるその物理ページが割り当てられている仮想アドレスが格納され、対応する物理ページがいずれの仮想ボリュームＶＶＯＬにも割り当てられていない場合には、未割当ての物理ページを管理するキュー内におけるその物理ページの直前に格納されている物理ページのページ番号が格納される。
【００７９】
さらに後方キューポインタ欄４４Ｇには、上述した未割当ての物理ページを管理するキュー内におけるその物理ページの直後に格納されている物理ページのページ番号が格納される。
【００８０】
他方、カウンタ値管理テーブル４５は、ストレージ装置４内に定義された各仮想ボリュームＶＶＯＬ内の個々の論理ページに対するＩ／Ｏアクセス数を管理するために利用されるテーブルであり、図１０に示すように、ページアドレス欄４５Ａ及びカウンタ値欄４５Ｂから構成される。
【００８１】
そしてページアドレス欄４５Ａには、各論理ページにそれぞれ付与されたその論理ページの識別情報（ページアドレス）が格納され、カウンタ値欄４５Ｂには、対応する論理ページへのＩ／Ｏアクセス数の疑似的なカウンタ値が格納される。このカウンタ値は、「０」〜「255」の範囲の値に制限されており、大きくなるほどＩ／Ｏアクセス数に応じてカウントアップする確率が減少する。このカウンタ値の詳細については、後述する。
【００８２】
またページ再配置実行管理テーブル４６は、ページ再配置処理の実行状態を管理するために利用されるテーブルであり、図１１に示すように、ボリューム番号欄４６Ａ、移動元ページ欄４６Ｂ、移動先ページ欄４６Ｃ、実行状態欄４６Ｄ及び移動先ティア欄４６Ｅから構成される。
【００８３】
そしてボリューム番号欄４６Ａには、ページ再配置処理の対象となっている論理ページのページ番号が格納される。また移動元ページ欄４６Ｂには、その論理ページのデータが現在格納されている物理ページ（以下、これを移動元ページと呼ぶ）のページ番号が格納され、移動先ページ欄４６Ｃには、そのデータの移動先の物理ページ（以下、これを移動先ページと呼ぶ）のページ番号が格納される。
【００８４】
さらに実行状態欄４６Ｄには、ページアドレステーブル４４（図９）内の対応する再配置状態欄４４Ｅに格納されている情報と同じ情報が格納される。さらに移動先ティア欄４６Ｅには、かかる移動先ページが属するティアのティア番号が格納される。
【００８５】
カウンタ値遷移テーブル４７は、カウンタ値管理テーブル４５（図１０）のカウンタ値欄４５Ｂに格納されたカウンタ値を１つ増加させる際のカウントアップ確率を管理するためのテーブルであり、図１２に示すように、カウンタ値欄４７Ａ及びカウントアップ確率欄４７Ｂから構成される。
【００８６】
そしてカウンタ値欄４７Ａには、カウンタ値管理テーブル４５のカウンタ値欄４５Ｂに格納されたカウンタ値のとり得る範囲内の各カウンタ値（「０」〜「255」）がそれぞれ格納され、カウントアップ確率欄４７Ｂには、対応するカウンタ値の値を「１」増加させる際の確率（以下、これをカウントアップ確率と呼ぶ）が格納される。
【００８７】
なお、上述した仮想ボリュームインデックステーブル４０、ＲＡＩＤグループインデックステーブル４１、ティア管理テーブル４２、プールインデックステーブル４３、ページアドレステーブル４４及びカウンタ値管理テーブル４５を含む各種テーブル相互間の関係を図１３に示す。
【００８８】
図中「Vaddr Index」は、対応する仮想ボリュームＶＶＯＬ内の各論理ブロックの仮想アドレスが昇順に格納された仮想アドレスインデックステーブル（詳細は図示せず）を表す。また「Vaddr Block」は、対応する論理ブロックを構成する各論理ページのページアドレスが格納された論理ブロック管理テーブル（詳細は図示せず）を表す。さらに「Chunk Index」は、チャンク用のマッピングテーブル（詳細は図示せず）を表す。
【００８９】
（３）本実施の形態によるリアルタイムモニタリング機能に関する各種処理
次に、かかる本実施の形態によるリアルタイムモニタリング機能に関連してストレージ装置４の０系又は１系のコントローラ２１Ａ，２１Ｂ（図１）内のＣＰＵ２５Ａ，２５Ｂ（図１）により実行される各種処理の具体的な処理内容について説明する。なお、以下の各種処理は、ローカルメモリ２６Ａ，２６Ｂ（図１）に格納された図示しない制御プログラムに従って実行されることは言うまでもない。
【００９０】
（３−１）ホストＩ／Ｏ処理ＳＴ１
（３−１−１）リード処理
（３−１−１−１）リード処理
図１４は、ホスト装置２からのリードコマンドを受領したストレージ装置４のＣＰＵ２５Ａ，２５Ｂにより、図３のホストＩ／Ｏ処理ＳＴ１において実行されるリード処理の処理手順を示す。
【００９１】
ＣＰＵ２５Ａ，２５Ｂは、リードコマンドを受領すると、図３のホストＩ／Ｏ処理ＳＴ１において、この図１４に示す処理手順に従って、リードコマンドにおいてリード先として指定された仮想ボリュームＶＶＯＬ内の当該リードコマンドにおいてリード先として指定された論理ページからデータを読み出して当該リードコマンドの送信元のホスト装置２に転送する。
【００９２】
またＣＰＵ２５Ａ，２５Ｂは、この際、Ｉ／Ｏ同期プロモーションモードがオン設定されている場合には、そのデータを対応するプールＰＬ内の当該データが現在格納されている物理ページが属するティアよりも上位のティアに属する物理ページに移動させるか否かを判定し、必要に応じて対応するプールＰＬ内の当該データが現在格納されている物理ページが属するティアよりも上位のティアに属する物理ページに移動させるページ再配置処理を実行する。
【００９３】
実際上、ＣＰＵ２５Ａ，２５Ｂは、かかるリードコマンドを受領するとこのリード処理を開始し、まず、受領したリードコマンドに応じたリード処理を実行するためのジョブ（以下、これをリードジョブと呼ぶ）を生成する（ＳＰ１）。
【００９４】
続いて、ＣＰＵ２５Ａ，２５Ｂは、生成したリードジョブを実行し、リード対象のデータがキャッシュメモリ２７Ａ，２７Ｂ（図１）上に存在するか否かを判断する（ＳＰ２）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で肯定結果を得ると、ステップＳＰ９に進む。つまり、キャッシュヒットした場合には、Ｉ／Ｏ処理と同期して、カウント処理、プロモーション判定処理、ページ再配置処理、などは実行しない。
【００９５】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ２の判断で否定結果を得ると、図１０について上述したカウンタ値管理テーブル４５内のそのデータが格納された論理ページに対応するカウンタ値欄４５Ｂ（図１０）に格納されたカウンタ値を更新するカウント処理を実行する（ＳＰ３）。なお、後述するようにカウンタ値処理では、カウンタ値が更新された場合にティア閾値とプロモーション・デモーションラインとを再計算する。この後、図５について上述した仮想ボリュームインデックステーブル４０内の対応するＩ／Ｏ同期プロモーション欄４０Ｆを参照して、リードコマンドにおいてリード先として指定されている仮想ボリュームＶＶＯＬに対してＩ／Ｏ同期プロモーションモードがオン設定されているか否かを判断する（ＳＰ４）。
【００９６】
ＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得ると、データ転送制御部２３Ａ，２３Ｂ（図１）、ドライブインタフェース部２８Ａ，２８Ｂ（図１）等を制御することにより、リード対象のデータを記憶ドライブ２０（図１）からキャッシュメモリ２７Ａ，２７Ｂ（図１）に読み出させ（ＳＰ８）、この後ステップＳＰ９に進む。
【００９７】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ４の判断で肯定結果を得ると、カウンタ値管理テーブル４５（図１０）を参照して、リードコマンドにおいてリード対象として指定されたデータをプロモーションする必要があるか否かを判定するプロモーション判定処理を実行する（ＳＰ５）。
【００９８】
続いて、ＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ５で実行したプロモーション判定処理の処理結果に基づいて、リード対象のデータについて、プロモーションが必要か否かを判断する（ＳＰ６）。この判断は、図１６について後述するプロモーション判定処理の返却値が「実行要」及び「実行不要」のうちの「実行要」であったか否かを判断することにより行われる。この返却値の詳細については、後述する。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得ると、リード対象のデータをキャッシュメモリ２７Ａ，２７Ｂに読み出させ（ＳＰ８）、この後、ステップＳＰ９に進む。
【００９９】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ７の判断で肯定結果を得ると、リード対象のデータを、対応するプールＰＬ内の対応する物理ページから上位のティアに属する物理ページに移動させるページ再配置処理を実行する（ＳＰ７）。そしてＣＰＵ２５Ａ，２５Ｂは、この後、ステップＳＰ９に進む。
【０１００】
そしてＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ９に進むと、キャッシュメモリ２７Ａ，２７Ｂに格納されたリード対象のデータをリードコマンドの送信元のホスト装置２に転送するためのＤＭＡ（Direct Memory Access）転送リストを設定し（ＳＰ９）、作成したＤＭＡ転送リストをデータ転送制御部２３Ａ，２３Ｂ（図１）に送信する（ＳＰ１０）。この結果、このＤＭＡ転送リストに従って、データ転送制御部２３Ａ，２３Ｂによりリード対象のデータがキャッシュメモリ２７Ａ，２７Ｂから読み出されてリードコマンドの送信元のホスト装置２に転送されることになる。
【０１０１】
そしてＣＰＵ２５Ａ，２５Ｂは、上述のようなリード対象のデータの転送が完了すると、その旨のステータスをかかるホスト装置２に送信し（ＳＰ１１）、この後、ステップＳＰ１において作成したリードジョブを削除した後（ＳＰ１２）、このリード処理を終了する。
【０１０２】
（３−１−１−２）カウント処理
図１５は、かかるリード処理のステップＳＰ３においてＣＰＵ２５Ａ，２５Ｂにより実行されるカウント処理の具体的な処理手順を示す。
【０１０３】
ＣＰＵ２５Ａ，２５Ｂは、リード処理のステップＳＰ３に進むと、この図１５に示すカウント処理を開始し、まず、仮想ボリュームインデックステーブル４０（図５）を参照して、リードコマンドにおいてリード先として指定された仮想ボリュームＶＶＯＬと対応付けられたプールＰＬに対して階層モードがオン設定されているか否かを判断する（ＳＰ２０）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得るとこのカウント処理を終了してリード処理に戻る。
【０１０４】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ２０の判断で肯定結果を得ると、カウンタ値管理テーブル４５（図１０）からリード対象のデータが格納されている論理ページのカウンタ値を取得する（ＳＰ２１）。
【０１０５】
続いて、ＣＰＵ２５Ａ，２５Ｂは、かかるカウンタ値の変更に必要な疑似乱数を更新する（ＳＰ２２）。具体的に、ＣＰＵ２５Ａ，２５Ｂは、かかる疑似乱数をプールＰＬ単位でグローバル変数として管理している。そしてＣＰＵ２５Ａ，２５Ｂは、更新前の疑似乱数に単純に「100」を加算することによって疑似乱数を更新する。これにより１つの論理ページに関しては、順次更新される疑似乱数が結果的に乱数となる。
【０１０６】
次いで、ＣＰＵ２５Ａ，２５Ｂは、カウンタ値遷移テーブル４７（図１２）を参照して、ステップＳＰ２１において取得したカウンタ値について予め設定されたカウントアップ確率を取得し、ステップＳＰ２２において更新した疑似乱数をそのカウントアップ確率で除算したときの余りの値が「100」よりも小さいか否かを判断する（ＳＰ２３）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得ると、このカウント処理を終了してリード処理に戻る。
【０１０７】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ２３の判断で肯定結果を得ると、ステップＳＰ２１において取得したカウンタ値を１つ増加するようカウンタ値管理テーブル４５（図１０）を更新する（ＳＰ２４）。そしてＣＰＵ２５Ａ，２５Ｂは、この後、図３１について後述する度数分布図を変更し、さらに後述するティア閾値（第１及び第２のティア閾値）及びプロモーションライン・デモーションラインを更新した後（ＳＰ２５）、このカウント処理を終了してリード処理に戻る。
【０１０８】
（３−１−１−３）プロモーション判定処理
図１６は、リード処理（図１４）のステップＳＰ５においてＣＰＵ２５Ａ，２５Ｂにより実行されるプロモーション判定処理の具体的な処理手順を示す。ＣＰＵは２５Ａ，２５Ｂ、この図１６に示す処理手順に従って、リード対象のデータをプロモーションすべきか否かを判定する。従って、Ｉ／Ｏ処理と同期させて実行される処理においては、リード対象のデータのみを判定対象とし、その他のデータについては判定対象としない。
【０１０９】
すなわちＣＰＵ２５Ａ，２５Ｂは、リード処理のステップＳＰ５に進むと、このプロモーション判定処理を開始し、まず、プロモーション先のティアを現在のティアよりも１つ上位のティアとし（ＳＰ３０）、この後、上述したカウント処理（図１５）のステップＳＰ２１において取得したカウンタ値が、現在のティアからステップＳＰ３０においてプロモーション先としたティアにデータを再配置するためのティア閾値（第１又は第２のティア閾値）よりも大きいか否かを判断する（ＳＰ３１）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得るとステップＳＰ３９に進む。なお、ＳＰ３１のカウント値とティア閾値との比較は省略することも可能である。
【０１１０】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ３１の判断で肯定結果を得ると、カウント処理（図１５）のステップＳＰ２１において取得したカウンタ値が、現在のティアからステップＳＰ３０においてプロモーション先としたティアにプロモーションするための閾値である対応するプロモーションラインよりも大きいか否かを判断する（ＳＰ３２）。
【０１１１】
ＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得ると、リード対象のデータをプロモーション可能であるかの判定を最上位のティアまで行ったか否かを判断する（ＳＰ３３）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得ると、プロモーション先を１つ上位のティアに設定した後にステップＳＰ３１に戻り、この後、ステップＳＰ３１以降を上述と同様に処理する。
【０１１２】
なお、これ以降の処理では、ステップＳＰ３１において上述のカウンタ値と比較する対象として、現在のティアから直前のステップＳＰ３４においてプロモーション先としたティアにデータをプロモーションするためのティア閾値が用いられ、ステップＳＰ３２において上述のカウンタ値と比較する対象として、現在のティアから直前のステップＳＰ３４においてプロモーション先としたティアにデータをプロモーションするためのプロモーションラインが用いられる。また、本実施例では、リード対象のデータの現在の記憶階層より１つ上の記憶階層から最上位階層の記憶領域まで、ＳＰ３１及びＳＰ３２の判断処理を実施するが、逆に、最上位階層の記憶領域から現在の記憶階層より１つ上の記憶階層まで、ＳＰ３１及びＳＰ３２の判断処理を実施してもよい。
【０１１３】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ３３の判断で肯定結果を得ると（このことは最上位のティアまで判定したが、リード対象のデータが格納された論理ページのアクセス頻度がプロモーションすべきアクセス頻度でなかったことを意味する）、プロモーションを実行する必要がないことを意味する「実行不要」を返却値に設定し（ＳＰ３９）、この後、このプロモーション判定処理を終了してリード処理（図１４）に戻る。かくして、この場合には、この後実行されるリード処理（図１４）のステップＳＰ６において否定結果が得られることになる。
【０１１４】
一方、ＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ３２の判断で肯定結果を得ると、ティア管理テーブル４２（図７）を参照して、ステップＳＰ３０又は最後に実行したステップＳＰ３４においてプロモーション先として設定したティアに、リード対象のデータをプロモーションするだけの空き容量（例えばそのティアの総容量の１％以上）があるか否かを判断する（ＳＰ３５）。
【０１１５】
ＣＰＵ２５Ａ，２５Ｂは、この判断で肯定結果を得ると、プロモーションを実行すべきことを意味する「実行要」を返却値に設定し（ＳＰ３８）、この後、このプロモーション判定処理を終了してリード処理に戻る。かくして、この場合には、この後実行されるリード処理（図１４）のステップＳＰ６において肯定結果が得られることになる。
【０１１６】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ３５の判断で否定結果を得ると、仮想ボリュームインデックステーブル４０（図５）を参照して、リードコマンドにおいてデータのリード先として指定された仮想ボリュームＶＶＯＬについて、Ｉ／Ｏ同期プロモーションモードが設定されているか否かを判断する（ＳＰ３６）。
【０１１７】
そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得るとステップＳＰ３９に進む。
【０１１８】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ３６の判断で肯定結果を得ると、ステップＳＰ３０又は最後に実行したステップＳＰ３４においてプロモーション先として設定したティアに格納されているデータのうち、下位のティアに移動可能なデータをデモーションする緊急デモーション処理を実行する（ＳＰ３７）。そしてＣＰＵ２５Ａ，２５Ｂは、この後、ステップＳＰ３８に進んで当該ステップＳＰ３８を上述のように処理した後、このプロモーション判定処理を終了してリード処理に戻る。
【０１１９】
ここで、上述のプロモーション判定処理（図１６）のステップＳＰ３７において実行される緊急デモーション処理の詳細について説明する。
【０１２０】
緊急デモーション処理は、そのとき対象としているデータ（上述の例ではリード対象のデータ）をプロモーションしたいが、プロモーション先のティアに当該データをプロモーションするだけの空き容量がない場合に、当該プロモーション先のティアの空き容量を増やすために実行される処理である。
【０１２１】
そのための手段として、ストレージ装置４は、ティアごと（第１〜第３のティアごと）の例えば図１７に示すようなＬＩＦＯ（Last In Fast Out）５０を保持している。なお、ＦＩＦＯ（Fast In Fast Out）ではなく、ＬＩＦＯとした理由は、後述のようにティア閾値は逐次更新されるものであるため、最近判定されたデータの方がティア閾値の変動が少なく、デモーションできる可能性が高いという考え方である。
【０１２２】
かかるＬＩＦＯ５０には、図４４について後述するデモーション判定処理のステップＳＰ１５３において、対応する仮想ボリュームＶＶＯＬ内の論理ページのうち、ティア閾値の見地からはデモーション対象となるが、後述するデモーションラインの見地からはデモーション対象とはならないデータが格納された論理ページが登録される。
【０１２３】
そしてプロモーション判定処理（図１６）のステップＳＰ３５において、プロモーション先のティアに空き容量がないと判定された場合に、そのプロモーション先のティアと対応付けられたＬＩＦＯ５０の各エントリを最近登録されたものから順番に所定のエントリ数分だけ、そのエントリに対応する論理ページがデモーション対象となり得るか否かを判定する。そしてデモーション対象となり得る論理ページがあった場合には、その論理ページに格納されたデータを下位のティアにデモーションする。なお、この場合におけるエントリの最大チェック数は、チューニングにより変更できるようにしておく。
【０１２４】
上述のティアごとのＬＩＦＯ５０は、ストレージ装置４における０系及び１系のコントローラ２１Ａ，２１Ｂ（図１）のローカルメモリ２６Ａ，２６Ｂ（図１）において保持する。これらのＬＩＦＯ５０は、各コアで占有して使用するため、ロックは不要である。ＬＩＦＯ５０の各エントリには、対応する論理ページが割り当てられた仮想ボリュームＶＶＯＬのボリューム番号と、その論理ページに割り当てられた物理ページのページオフセット番号とが格納される（合計８〔Byte〕）。またＬＩＦＯ５０は、循環スタック構造として、ＬＩＦＯ５０ごとにインデックスポインタを保持する。
【０１２５】
図１８は、かかる緊急デモーション処理の具体的な処理内容を示す。ＣＰＵ２５Ａ，２５Ｂは、プロモーション判定処理（図１６）のステップＳＰ３７に進むと、この図１８に示す緊急デモーション処理を開始し、まず、対応するＬＩＦＯ５０から当該ＬＩＦＯ５０に登録された論理ページのうちの対象とする（この段階では最後に登録された論理ページ）を選択し、その論理ページに関する登録情報（ボリューム番号及びページオフセット番号等）を取得する（ＳＰ４０）。
【０１２６】
続いてＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ４０において選択した論理ページ（以下、これを対象論理ページと呼ぶ）のカウンタ値をカウンタ値管理テーブル４５（図１０）から取得し、取得したカウンタ値が、対象論理ページに割り当てられている物理ページが属するティアからデモーション先として設定されたティア（この段階では対象論理ページに割り当てられている物理ページが属するティアよりも１つ下位のティア）へのデモーションに対するティア閾値（第１又は第２のティア閾値）よりも小さいか否かを判断する（ＳＰ４１）。
【０１２７】
ＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得ると、デモーション先のティアとして最下位のティアまで判断し終えたか否かを判断する（ＳＰ４３）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得ると、デモーション先をそれまでデモーション先として設定されていたティアよりも１つ下位のティアに設定し直し（ＳＰ４４）、この後、ステップＳＰ４１以降を同様に処理する。
【０１２８】
またＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ４１の判断で肯定結果を得ると、ティア管理テーブル４２（図７）を参照して、デモーション先に空き容量があるか否かを判断する（ＳＰ４２）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得るとステップＳＰ４３に進み、この後、ステップＳＰ４３以降を上述と同様に処理する。
【０１２９】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ４２において肯定結果を得ると（このことは、対象論理ページのカウンタ値がデモーション先のティアのティア閾値よりも小さく、かつ、デモーション先のティアに空き容量があることを意味する）、対象論理ページに格納されているデータを、当該データのデモーション先として設定されたティアに移動させるページ再配置処理を実行する（ＳＰ４５）。
【０１３０】
続いてＣＰＵ２５Ａ，２５Ｂは、対応するＬＩＦＯ５０に登録されたすべての論理ページについてステップＳＰ４０〜ステップＳＰ４５の処理を実行し終えたか否かを判断する（ＳＰ４６）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得るとステップＳＰ４０に戻り、この後、ステップＳＰ４０において選択する対象論理ページを、直前のステップＳＰ４０〜ステップＳＰ４５の処理で対象論理ページとした論理ページよりも１つ前にＬＩＦＯ５０に登録された論理ページに順次切り替えながら、ステップＳＰ４０以降の処理を上述と同様に処理する。
【０１３１】
そしてＣＰＵ２５Ａ，２５Ｂは、やがてＬＩＦＯ５０に登録されたすべての論理ページについてステップＳＰ４０〜ステップＳＰ４５の処理を実行し終えることによりステップＳＰ４６において肯定結果を得ると、この緊急デモーション処理を終了する。
【０１３２】
（３−１−１−４）ページ再配置処理
図１９は、リード処理（図１４）のステップＳＰ７においてＣＰＵ２５Ａ，２５Ｂにより実行されるページ再配置処理の具体的な処理手順を示す。ＣＰＵ２５Ａ，２５Ｂは、この図１９に示す処理手順に従って、リード処理のステップＳＰ５においてプロモーション対象として判定されたリード対象のデータを上位のティアに移動（プロモーション）する。
【０１３３】
実際上、ＣＰＵ２５Ａ，２５Ｂは、リード処理のステップＳＰ７に進むと、このページ再配置処理を開始し、まず、ティア管理テーブル４２（図７）を参照して、そのとき対象としているデータ（ここではリード処理のステップＳＰ５のプロモーション判定処理（図１６）において決定したリード対象のデータであり、以下、これを対象データと呼ぶ）の移動先のティアに記憶領域を提供するＲＡＩＤグループＲＧの中から、かかる対象データの移動先とするＲＡＩＤグループ（以下、これを移動先ＲＡＩＤグループと呼ぶ）ＲＧを例えばラウンドロビン方式により１つ決定する（ＳＰ５０）。
【０１３４】
続いて、ＣＰＵ２５Ａ，２５Ｂは、ページアドレステーブル４４（図９）を参照して、ステップＳＰ５０において決定したＲＡＩＤグループＲＧが提供する物理ページの中から対象データの移動先となる物理ページを決定し、予約する（ＳＰ５１）。
【０１３５】
次いで、ＣＰＵ２５Ａ，２５Ｂは、対象データをステップＳＰ５１において決定した物理ページに移動するためのジョブ（コピージョブ）を生成すると共に、かかる対象データの移動に関する必要な情報をページ再配置実行管理テーブル４６（図１１）に登録する（ＳＰ５２）。
【０１３６】
この後、ＣＰＵ２５Ａ，２５Ｂは、対象データがキャッシュメモリ２７Ａ，２７Ｂ（図１）に保持されていないか否か（キャッシュミスか否か）を判断する（ＳＰ５３）。
【０１３７】
この場合、リード処理のステップＳＰ７において実行されるページ再配置処理では、図１４からも明らかなように、必ずこのステップＳＰ５３において肯定結果を得ることになる（リード処理のステップＳＰ２参照）。かくして、このときＣＰＵ２５Ａ，２５Ｂは、対象データをキャッシュメモリ２７Ａ，２７Ｂに読み出す（ステージングする）ようデータ転送制御部２３Ａ，２３Ｂ（図１）及びドライブインタフェース部２８Ａ，２８Ｂ（図１）に指示を与える（ＳＰ５４）。
【０１３８】
そして、かかる指示を受けたドライブインタフェース部２８Ａ，２８Ｂは、対象データを対応する記憶ドライブ２０（図１）から読み出し、読み出した対象データをデータ転送制御部２３Ａ，２３Ｂに転送する。またこの対象データを受信したデータ転送制御部２３Ａ，２３Ｂは、当該対象データに付加されている保証コードを再配置先の記憶領域に応じたものに付け替えた後、図２０に示すように、その対象データをキャッシュメモリ２７Ａ，２７Ｂ内の再配置先のティアと対応付けられたライト用の記憶領域（以下、これをライト面側記憶領域と呼ぶ）２７Ｃに書き込む（図２０の矢印ａ１）。なお、保証コードとして、例えば、再配置先の記憶領域の論理アドレスなどがあげられる。
【０１３９】
続いて、ＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ５４においてキャッシュメモリ２７Ａ，２７Ｂに読み出された対象データを、キャッシュメモリ２７Ａ，２７Ｂ内の対応するライト面側記憶領域２７Ｃから当該キャッシュメモリ２７Ａ，２７Ｂ内の再配置先のティアと対応付けられたリード用の記憶領域（以下、これをリード面側記憶領域と呼ぶ）２７Ｄにコピーするようデータ転送制御部２３Ａ，２３Ｂに指示を与える（ＳＰ５５）。かくして、かかる指示を受けたデータ転送制御部２３Ａ，２３Ｂは、キャッシュメモリ２７Ａ，２７Ｂ内のかかるライト面側記憶領域２７Ｃにステージングされた対象データを、キャッシュメモリ２７Ａ，２７Ｂ内の移動先のティアと対応付けられたリード面側記憶領域２７Ｄにコピーする（図２０の矢印ａ２）。そしてＣＰＵ２５Ａ，２５Ｂは、この後ステップＳＰ５７に進む。
【０１４０】
これに対して、後述するライト処理のステップＳＰ８１において実行されるページ再配置処理では、必ずこのステップＳＰ５３において否定結果を得ることになる（ライト処理のステップＳＰ７５参照）。つまり、ライト処理と同期して実行される再配置処理では、キャッシュメモリに格納されているライトデータを用いて、移行先のティアの記憶領域に格納される。ＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ５３の判断で否定結果を得ると、キャッシュメモリ２７Ａ，２７Ｂに保持されている対象データを、キャッシュメモリ２７Ａ，２７Ｂ内の当該対象データが格納されているティアと対応付けられたライト面側記憶領域２７Ｃから、キャッシュメモリ２７Ａ，２７Ｂ内の移動先のティアと対応付けられたリード面側記憶領域２７Ｄにコピーするようデータ転送制御部２３Ａ，２３Ｂに指示を与える（ＳＰ５６）。
【０１４１】
かくして、かかる指示を受けたデータ転送制御部２３Ａ，２３Ｂは、図２１に示すように、キャッシュメモリ２７Ａ，２７Ｂ内の対象データが格納されているティアと対応付けられたライト面側記憶領域２７Ｃから、キャッシュメモリ２７Ａ，２７Ｂ内の移動元のティアと対応付けられたリード面側記憶領域２７Ｄに対象データをコピーする（図２１の矢印４）。またデータ転送制御部２３Ａ，２３Ｂは、かかるリード面側記憶領域２７Ｄにコピーした対象データを、当該対象データに付加された保証コードを移動先の記憶領域に応じた保証コードに付け替えながら、キャッシュメモリ２７Ａ，２７Ｂ内の移動先のティアと対応付けられたライト面側記憶領域２７Ｃにコピーする（図２１の矢印ａ５）。さらにデータ転送制御部２３Ａ，２３Ｂは、かかる対象データを、移動先のティアと対応付けられたライト面側記憶領域２７Ｃから、キャッシュメモリ２７Ａ，２７Ｂ内の移動先のティアと対応付けられたリード面側記憶領域２７Ｄにコピーする（図２１の矢印ａ６）。
【０１４２】
続いて、ＣＰＵ２５Ａ，２５Ｂは、対象データを、すべてキャッシュメモリ２７Ａ，２７Ｂ内の移動先のティアと対応付けられたリード面側記憶領域２７Ｄにコピーし終えたか否かを判断する（ＳＰ５７）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得ると、ステップＳＰ５３に戻り、この後、ステップＳＰ５３〜ステップＳＰ５７の処理を繰り返す。
【０１４３】
そしてＣＰＵ２５Ａ，２５Ｂは、やがて対象データをすべてキャッシュメモリ２７Ａ，２７Ｂ内の移動先のティアと対応付けられたリード面側記憶領域２７Ｄにコピーし終えることによりステップＳＰ５７で肯定結果を得ると、当該リード面側記憶領域２７Ｄに格納されている対象データを対応する記憶ドライブ２０（図１）に書き込む（デステージ）ようデータ転送制御部２３Ａ，２３Ｂ及びドライブインタフェース部２８Ａ，２８Ｂ（図１）に指示を与える（ＳＰ５８）。
【０１４４】
かくして、この指示を受領したデータ転送制御部２３Ａ，２３Ｂは、図２０及び図２１に示すように、キャッシュメモリ２７Ａ，２７Ｂ内の移動先のティアと対応付けられたリード面側記憶領域２７Ｄから対象データを読み出し、これをドライブインタフェース部２８Ａ，２８Ｂに転送する。またドライブインタフェース部２８Ａ，２８Ｂは、データ転送制御部２３Ａ，２３Ｂから与えられる対象データを対応する記憶ドライブ２０に送信し、当該対象データをステップＳＰ５１において決定された移動先の物理ページに書き込む（図２０の矢印ａ３、図２１の矢印ａ７）。
【０１４５】
続いてＣＰＵ２５Ａ，２５Ｂは、ホスト装置２からみて上述の対象データが格納されていた仮想ボリュームＶＶＯＬ内の論理ページのマッピング先を移動先の物理ページに切り替えるようページアドレステーブル４４（図９）を更新する（ＳＰ５９）。具体的に、ＣＰＵ２５Ａ，２５Ｂは、図２２に示すように、ページアドレステーブル４４上のかかる仮想ボリュームＶＶＯＬにおけるかかる論理ページの対応先（マッピング先）を、対象データの移動元の物理ページから移動先の物理ページに変更する。
【０１４６】
次いで、ＣＰＵ２５Ａ，２５Ｂは、対象データの移動元の物理ページをフォーマットするフォーマット処理を実行し（ＳＰ６０）、この後、このページ再配置処理を終了する。
【０１４７】
（３−１−２）ライト処理
（３−１−２−１）ライト処理
図２３は、ホスト装置２からのライトコマンドを受領したストレージ装置４のＣＰＵ２５Ａ，２５Ｂにより、図３のホストＩ／Ｏ処理ＳＴ１において実行されるライト処理の処理手順を示す。
【０１４８】
ＣＰＵ２５Ａ，２５Ｂは、ライトコマンドを受領すると、図３のホストＩ／Ｏ処理ＳＴ１において、この図２３に示す処理手順に従って、当該ライトコマンドと共に転送されるライト対象のデータを、ライトコマンドにおいて指定された仮想ボリュームＶＶＯＬ内の当該ライトコマンドにおいて指定された論理ページに書き込む。またＣＰＵ２５Ａ，２５Ｂは、この際、かかる仮想ボリュームＶＶＯＬにＩ／Ｏ同期プロモーションモードがオン設定されている場合には、そのデータを必要に応じて上位のティアに移動させるページ再配置処理を実行する。
【０１４９】
実際上、ＣＰＵ２５Ａ，２５Ｂは、ホスト装置２からのライトコマンドを受領するとこのライト処理を開始し、ＣＰＵ２５Ａ，２５Ｂは、ページアドレステーブル４４（図９）を参照して、ライトコマンドにおいてライト先として指定された仮想ボリュームＶＶＯＬ内の当該ライトコマンドにおいてライト先として指定された論理ページに対して既に物理ページが割り当てられているか否かを判断する（ＳＰ７０）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で肯定結果を得るとステップＳＰ７４に進む。
【０１５０】
これに対して、ＣＰＵ２５Ａ，２５Ｂは、ＳＰ７０で否定結果を得ると、受領したライトコマンドにおいてライト先として指定された仮想ボリュームＶＶＯＬに対して未使用の物理ページを有するチャンクが割り当てられているか否かを判断する（ＳＰ７１）。ここで、該チャンクは、論理ページに最初に割り当てる物理ページを含むチャンクであって、本実施例では第２のティアに属するチャンクである。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で肯定結果を得るとステップＳＰ７３に進む。
【０１５１】
これに対し、ＣＰＵ２５Ａ，２５Ｂは、ＳＰ７１で否定結果を得ると、ライトコマンドにおいてライト先として指定された仮想ボリュームＶＶＯＬにチャンクを割り当てるチャンク割当て処理を実行する（ＳＰ７２）。
【０１５２】
次に、ＣＰＵ２５Ａ，２５Ｂは、ライトコマンドにおいてライト先として指定された仮想ボリュームＶＶＯＬ内の当該ライトコマンドにおいてライト先として指定された論理ページに対して、使用中のチャンク又はＳＰ７１で割り当てられたチャンク内で未割り当ての物理ページを割り当てるページ割当て処理を実行する（ＳＰ７３）。ＣＰＵ２５Ａ，２５Ｂは、以上の割り当て処理を実施してＳＰ７４に進む。
【０１５３】
続いて、ＣＰＵ２５Ａ，２５Ｂは、ライト対象のデータを書き込むべきキャッシュメモリ２７Ａ，２７Ｂ（図１）上の記憶領域を指定したＤＭＡ転送リストを作成し、作成したＤＭＡ転送リストをデータ転送制御部２３Ａ，２３Ｂに送信する（ＳＰ７４）。
【０１５４】
次いで、ＣＰＵ２５Ａ，２５Ｂは、かかるライトコマンドを転送してきたホスト装置２に対してライト対象のデータの転送開始を要求する（ＳＰ７５）。かくして、この結果として当該ホスト装置２から転送されてきたライト対象のデータがデータ転送制御部２３Ａ，２３Ｂにより、キャッシュメモリ２７Ａ，２７Ｂ内の上述のＤＭＡ転送リストにおいて指定されたアドレス位置に格納される。
【０１５５】
そしてＣＰＵ２５Ａ，２５Ｂは、やがてライト対象のデータをすべてキャッシュメモリ２７Ａ，２７Ｂに格納し終えると、ライト処理が完了した旨のステータスをライトコマンドの送信元のホスト装置２に送信し（ＳＰ７６）、この後、図１５について上述したカウント処理を実行する（ＳＰ７７）。
【０１５６】
続いてＣＰＵ２５Ａ，２５Ｂは、仮想ボリュームインデックステーブル４０（図５）を参照して、ライトコマンドにおいてライト先として指定された仮想ボリュームＶＶＯＬについて、Ｉ／Ｏ同期プロモーションモードがオン設定されているか否かを判断する（ＳＰ７８）。
【０１５７】
そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得ると、そのとき受信したライト対象のデータをライトコマンドにおいて指定された仮想ボリュームＶＶＯＬ内の当該ライトコマンドにおいて指定された論理ページに割り当てられた物理ページを提供する記憶ドライブ２０（図１）に書き込むデステージ処理を実行した後（ＳＰ８２）、このライト処理を終了する。なお、ステップＳＰ８２のデステージ処理は、このタイミングで実行する必要はなく、このライト処理と非同期に実行するようにしても良い。
【０１５８】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ７８の判断で肯定結果を得ると、図１４について上述したリード処理のステップＳＰ５〜ステップＳＰ７と同様にステップＳＰ７９〜ステップＳＰ８１を処理する。この結果、リード処理時と同様に、このステップＳＰ７９〜ステップＳＰ８１の処理により、ライト対象のデータが必要に応じて現在のティアから上位のティアの物理ページに移動されることになる。そしてＣＰＵ２５Ａ，２５Ｂは、この後、このライト処理を終了する。なおステップＳＰ５〜ステップＳＰ７は、リード対象のデータについて処理をしたが、ステップＳＰ７９〜ステップＳＰ８１では、ライト対象のデータに対して処理をする。
【０１５９】
（３−１−２−２）チャンク割当て処理
次に、かかるライト処理（図２３）のステップＳＰ７１においてＣＰＵ２５Ａ，２５Ｂにより実行されるチャンク割当て処理について説明する。これに際して、まず、本ストレージ装置４におけるチャンクの割当て方式について説明する。
【０１６０】
図２４は、第１〜第３のティアのいずれのティアにおいても１チャンクを複数の物理ページ（例えば32個の物理ページ）で構成し、当該チャンク単位で記憶領域を仮想ボリュームＶＶＯＬに割り当てる方式の概要を示す。
【０１６１】
この図２４からも明らかなように、１つのチャンクを複数の物理ページにより構成するものとすると、図１９について上述したページ再配置処理を繰り返し実行した場合に未使用の物理ページが点在するチャンクが増え（図２４の第２のチャンク参照）、容量効率が低下する。これはすべてのティアにおいて言えることである。
【０１６２】
かかる容量効率の低下を防止するための手法としては、１つのチャンクを構成する物理ページのページ数を減らすことが考えられる。しかしながら、ティアにチャンクを割り当てるチャンク割当て処理は、割当て対象のチャンクについて排他処理を行った上で実行する必要があるため、１つのチャンクを構成する物理ページのページ数を減らした場合、チャンク割当て処理の回数が増え、その分排他処理のオーバーヘッドにより性能が低下してしまう問題がある。
【０１６３】
この場合、第２のティアや第３のティアについては、これらのティアを構成する記憶ドライブ２０（図１）がそれほど高価なものではないため、性能を優先して１つのチャンクを相当数の物理ページから構成することに問題はないが、第１のティアについては、当該第１のティアを構成する記憶ドライブ２０（ＳＳＤ）が高価なものであり、それほど多くの記憶ドライブ２０をストレージ装置４に搭載することができない。
【０１６４】
そこで本実施の形態においては、第２及び第３のティアについては、１つのチャンクを３２個の物理ページから構成する一方、第１のティアについては、図２５に示すように、１つのチャンクを１個の物理ページにより構成する。また第１のティアについては、チャンク割当て処理時に第２及び第３のティアの１チャンクを構成する物理ページと同じ数のチャンク（32チャンク）をまとめて確保し、確保したチャンクの中から１チャンクずつ必要時に順次仮想ボリュームＶＶＯＬに割り当てる。なお、複数のチャンクをまとめて確保するようにした場合、無駄にチャンクが確保されてしまうが、使用されないチャンクについてはガベージコレクションにより定期的に回収すれば良い。なお、３２チャンク分確保する処理を実行せずに、１チャンクを仮想ボリュームＶＶＯＬに割り当ててもよい。
【０１６５】
以上のような本実施の形態によるチャンク割当て方式によれば、第１のティアのチャンクを仮想ボリュームＶＶＯＬに割り当てる際の排他処理の回数を減らしながら、ページ再配置処理を繰り返し実行することに起因する容量効率の低下を有効に防止することができる。
【０１６６】
ただし、このように１つのチャンクを１個の物理ページからのみ構成するものとした場合、データ記憶用の記憶ドライブ数を「Ｄ」、パリティ記憶用の記憶ドライブ数を「Ｐ」として、ＲＡＩＤグループＲＧの構成を５Ｄ＋２Ｐ、13Ｄ＋２Ｐ、17Ｄ＋１ＰなどのＲＡＩＤグループ構成としたときに、図２６のように各ストライプラインの境界と、物理ページ（32〔Mbyte〕）の最後とが一致せず、例えば図２７のように１個のチャンクを複数の物理ページから構成する場合に比べていずれの物理ページにも属さない無駄な記憶領域（図２６及び図２７において斜線が引いていない領域）が多くなるという問題がある。
【０１６７】
この点については、２Ｄ＋２Ｐ、４Ｄ＋１Ｐ、８Ｄ＋２Ｐのように、データ記憶用の記憶ドライブ数を２，４，８又は16とすることで、各ストライプラインの境界と、各物理ページの最後とを一致させて無駄な記憶領域が発生するのを極力低減することができる。
【０１６８】
図２８は、以上のような本実施の形態によるチャンク割当て処理の具体的な処理手順を示す。ＣＰＵ２５Ａ，２５Ｂは、この図２８に示す処理手順に従って、ライト処理（図２３）のステップＳＰ７１において対応するティアにチャンクを割り当てる。
【０１６９】
実際上、ＣＰＵ２５Ａ，２５Ｂは、ライト処理のステップＳＰ７１に進むと、このチャンク割当て処理を開始し、まず、プールインデックステーブル４３（図８）の対応する階層モード欄４３Ｂ（図８）を参照して、ライトコマンドにおいてライト先として指定された仮想ボリュームＶＶＯＬが対応付けられたプールＰＬに階層モードが設定されているか否かを判断する（ＳＰ９０）。
【０１７０】
ＣＰＵ２５Ａ，２５Ｂは、この判断で肯定結果を得ると、ライトコマンドにおいてライト先として指定された論理ページに割り当てられている物理ページを提供する記憶ドライブ２０（図１）のドライブ種別が、第１のティアを構成する記憶ドライブ２０として設定された記憶ドライブ２０（以下、ＳＳＤとする）であるか否かを判断する（ＳＰ９１）。
【０１７１】
ＣＰＵ２５Ａ，２５Ｂは、この判断で肯定結果を得ると、第１のティアについて確保済みで未使用のチャンクがあるか否かを判断する（ＳＰ９２）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で肯定結果を得るとステップＳＰ９４に進む一方、ステップＳＰ９２において否定結果を得た場合には、第２及び第３のティアにおいて１個のチャンクを構成する物理ページのページ数と同じ数のチャンクをプールＰＬ上に確保する（ＳＰ９３）。
【０１７２】
次いでＣＰＵ２５Ａ，２５Ｂは、第１のティアについて確保されている未使用のチャンクを第１のティアに割り当て（ＳＰ９４）、この後、このチャンク割当て処理を終了する。
【０１７３】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ９０又はステップＳＰ９１の判断で否定結果を得ると、仮想ボリュームインデックステーブル４０（図５）の前回割当てＲＡＩＤグループ番号欄４０Ｇ（図５）を参照して、例えばラウンドロビン方式により次のＲＡＩＤグループＲＧを選択し、当該ＲＡＩＤグループＲＧが提供する記憶領域上に定義されたチャンクを１個だけ確保する（ＳＰ９５）。
【０１７４】
続いてＣＰＵ２５Ａ，２５Ｂは、仮想ボリュームインデックステーブル４０の前回割当てＲＡＩＤグループ番号欄４０ＧをステップＳＰ９５において確保したＲＡＩＤグループＲＧのグループＩＤに更新し（ＳＰ９６）、この後、ステップＳＰ９５において確保したチャンクを対応するティア（第２又は第３のティア）に割り当てた後（ＳＰ９７）、このチャンク割当て処理を終了する。
【０１７５】
（３−２）ティア閾値算出処理ＳＴ２
（３−２−１）ティア閾値算出の考え方
本実施の形態によるリアルタイムモニタリング機能に基づく階層型データ管理方式は、ストレージ装置４全体のスループット性能の最大化だけでなく、ティアごとのレスポンス時間の平均（平均レスポンス時間）の最小化をも狙っている。図２９は、このような本実施の形態の階層型データ管理方式のポリシを示す。
【０１７６】
すなわち、本実施の形態のストレージ装置４では、図３０に示すように、ストレージ装置４全体として、低負荷時には、できるだけ高性能のティアの物理ページを仮想ボリュームＶＶＯＬに割り当て（図３０（Ａ））、負荷が高くなるにつれて、段階的に各ティアの稼働率が100％に近づくように各ティアの稼働率を上げてゆく（図３０（Ｃ））。各段階（以下、これを区間とも呼ぶ）においては、高性能のティアほど稼働率が高くなるように各ティアの稼働率をそれぞれ設定しておく。
【０１７７】
このような階層型データ管理方式により、低負荷時には平均レスポンス時間を最小化することができ、高負荷時には平均レスポンスを最小化しながらスループット性能を最大化することができる。また負荷が高くなるにつれて、段階的に各ティアの稼働率が100％となるように各ティアの稼働率を上げてゆく階層制御を行うことにより、負荷の上昇に対して急激なデモーションの発生を抑止することができる。
【０１７８】
ティア閾値（第１及び第２のティア閾値）の決定に際しては、ティアごとの配分容量及び配分性能を考慮する。ここで、ティアの「配分容量」とは、そのティアから仮想ボリュームＶＶＯＬに割り当て可能な物理ページの限界数を指す。またティアの「配分性能」とは、そのティアにおいて単位時間（例えば１時間）内に処理可能なＩ／Ｏアクセス数の限界数を指す。この配分性能は、そのティアの物理ページの総数に対する仮想ボリュームＶＶＯＬに割り当てられている物理ページの割合（以下、これをティア稼働率呼ぶ）によって変化する。あるティアについて、配分容量及び配分性能のいずれかの制約をオーバーするときがそのティアと、当該ティアの１つ下位のティアとの間のティア閾値（第１又は第２のティア閾値）として決定される。
【０１７９】
例えば、図３１（Ａ）に示すように、１つの論理ページに対するＩ／Ｏアクセス数を縦軸にとり、あるプールＰＬと対応付けられた仮想ボリュームＶＶＯＬの各論理ページに対するＩ／Ｏアクセス数を大きい順に横軸方向にプロットした度数分布図では、横軸がページ数（容量）を表し、グラフと横軸との間の面積がＩ／Ｏアクセス数の総和（性能）を表す。
【０１８０】
従って、この度数分布図の斜線で示す部分の横方向の長さが、第１のティアから仮想ボリュームＶＶＯＬに割当て可能な物理ページ数（配分容量）に達するか、又は、当該斜線で示す部分の面積が、第１のティアにおいて単位時間当たりに処理可能なＩ／Ｏアクセス数（配分性能）に達するところが第１及び第２のティア間の閾値（第１のティア閾値）となる。また図３１（Ｂ）に示すように、同じ度数分布図中の当該図３１（Ｂ）において斜線で示す部分の横方向の長さが第２のティアから割当て可能な物理ページ数（配分容量）に達するか、又は、当該斜線で示す部分の面積が第２のティアにおいて処理可能なＩ／Ｏアクセス数（配分性能）に達するところが第２及び第３のティア間の閾値（第２のティア閾値）となる。本実施の形態のようにティアが３階層構造の場合、第１及び第２のティア閾値は連続して算出する。
【０１８１】
（３−２−２）ティア閾値算出処理の処理内容
（３−２−２−１）ティア閾値算出処理の概要
図３２は、図３のティア閾値算出処理ＳＴ２において、ストレージ装置４の０系及び１系の各コントローラ２１Ａ，２１Ｂ（図１）のＣＰＵ２５Ａ，２５Ｂにより実行されるティア閾値算出処理の具体的な処理手順を示す。
【０１８２】
ＣＰＵ２５Ａ，２５Ｂは、カウント処理にて計算する場合（図１５のＳＰ２５）、又は所定周期（例えば数分周期）でこのティア閾値算出処理ＳＴ２を実行することにより、上述の第１及び第２のティア閾値のその時点における最適値と、各プロモーションライン（Ｔ３−Ｔ１プロモーションライン、Ｔ２−Ｔ１プロモーションライン、Ｔ３−Ｔ２プロモーションライン）及び各デモーションライン（Ｔ１−Ｔ２プロモーションライン、Ｔ２−Ｔ３プロモーションライン、Ｔ１−Ｔ３プロモーションライン）の最適値とをそれぞれ算出する。
【０１８３】
実際上、ＣＰＵ２５Ａ，２５Ｂは、このティア閾値算出処理を開始すると、まず、ティア管理テーブル４２（図７）を参照して、対応するプールＰＬの各ティアから当該プールＰＬと対応付けられた仮想ボリュームＶＶＯＬに対して割当て可能な物理ページの総数（以下、これをティア容量配分量と呼ぶ）を算出する（ＳＰ１００）。このティア容量配分量は、そのティアの総容量（物理ページの総数）から、データ再配置処理や物理ページの割当て処理時に必要となるバッファ容量（バッファ用の物理ページ数）を引くことにより算出することができる。
【０１８４】
続いて、ＣＰＵ２５Ａ，２５Ｂは、対応するプールＰＬに対するそのときの単位時間当たりのＩ／Ｏアクセス数を算出し、算出したＩ／Ｏアクセス数のうちの各ティアに配分すべきＩ／Ｏアクセス数（以下、これをティア性能配分量と呼ぶ）をそれぞれ算出する（ＳＰ１０１）。
【０１８５】
次いで、ＣＰＵ２５Ａ，２５Ｂは、カウンタ値管理テーブル４５（図１０）を参照して、対応するプールＰＬに関する図３１について上述した度数分布図を作成し、作成した度数分布図と、ステップＳＰ１００において算出したティアごとのティア容量配分量と、ステップＳＰ１０１において算出したティアごとのティア性能配分量とに基づいて第１及び第２のティア閾値を算出する（ＳＰ１０２）。
【０１８６】
この後、ＣＰＵ２５Ａ，２５Ｂは、対応するプールＰＬと対応付けられた仮想ボリュームＶＶＯＬについての移動量パラメータを算出する（ＳＰ１０３）。この移動量パラメータは、図３について上述したティア決定処理ＳＴ３の進捗状況に応じてティア間のデータ移動量を調整するためのパラメータであり、この移動量パラメータが大きいほどティア間で移動されるページ数が多くなり、当該移動量パラメータが小さいほどティア間で移動されるページ数が少なくなる。ＣＰＵ２５Ａ，２５Ｂは、この移動量パラメータを、図４３について後述するティア決定処理の進捗状況に基づいて、ティア間でデータを移動させる際の負荷が大きいほど大きく、当該負荷が小さいほど小さくなるように設定する。
【０１８７】
さらに、ＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１０３において算出した移動量パラメータに基づいて、上述の各プロモーションライン（Ｔ３−Ｔ１プロモーションライン、Ｔ２−Ｔ１プロモーションライン及びＴ３−Ｔ２プロモーションライン）と各デモーションライン（Ｔ１−Ｔ２デモーションライン、Ｔ２−Ｔ３デモーションライン及びＴ１−Ｔ３デモーションライン）とをそれぞれ算出し（ＳＰ１０４）、この後、このティア閾値算出処理を終了する。
【０１８８】
（３−２−２−２）ティア配分性能算出処理
図３３は、上述のティア閾値算出処理のステップＳＰ１０１において、ＣＰＵ２５Ａ，２５Ｂにより実行されるティア性能配分量算出処理の具体的な処理手順を示す。ＣＰＵ２５Ａ，２５Ｂは、この図３３に示す処理手順に従って各ティアのティア性能配分量をそれぞれ算出する。
【０１８９】
実際上、ＣＰＵ２５Ａ，２５Ｂは、ティア閾値算出処理のステップＳＰ１０１に進むと、このティア性能配分量算出処理を開始し、ティアの稼働率（以下、これをそのティアのティア稼働率と呼ぶ）が100％のときに単位時間当たりにそのティアにおいて処理可能なＩ／Ｏアクセス数（以下、これをティア性能ポテンシャルと呼ぶ）をティアごとにそれぞれ算出する（ＳＰ１１０）。
【０１９０】
ここで、ティア稼働率としては、リアルタイムティア稼働率と、移動平均ティア稼働率の２つがある。リアルタイムティア稼働率は、所定周期（例えば１分周期であり、以下、これをリアルタイムティア稼働率取得周期と呼ぶ）で採取される各ティアの稼働率であり、後述するプロモーションラインやデモーションラインの算出等に利用される。また移動平均ティア稼働率は、リアルタイムティア稼働率から移動平均を算出した稼働率であり、ティア性能ポテンシャルの決定に利用される。
【０１９１】
性能モニタ機能によりＣＰＵ２５Ａ，２５Ｂが取得するのはリアルタイムティア稼働率だけであり、移動平均稼働率については、取得した過去所定回数（Ｘ回）分のリアルタイムティア稼働率を利用して求める。具体的に、ＣＰＵ２５Ａ，２５Ｂは、前回の移動平均ティア稼働率をＡＯＲｎ−１、今回算出しようとする移動平均ティア稼働率をＡＯＲｎ、今回取得したリアルタイムティア稼働率をＲＯＲｎとして、次式
【数１】
2015531089.tif 000003
により移動平均ティア稼働率ＡＯＲｎ´を算出する。そしてＣＰＵ２５Ａ，２５Ｂは、このとき算出した移動平均ティア稼働率ＡＯＲｎ´と、今回取得したリアルタイムティア稼働率ＲＯＲｎとのうちの大きい方を今回の移動平均ティア稼働率ＡＯＲｎとする。
【０１９２】
なお移動平均ティア稼働率を算出する目的は、リアルタイムティア稼働率の変動に起因するティア性能ポテンシャルの変動によってティア閾値の過度な変動が発生し、無駄なデータ移動が発生するのを抑制するためである。
【０１９３】
一方、ティア性能ポテンシャルＰｎは、上述のようにして求めた今回の移動平均ティア稼働率ＡＯＲｎを利用し、今回のリアルタイムティア稼働率取得周期中におけるそのティアへのＩ／Ｏアクセスの総数をＡＣＩ／Ｏとして、次式
【数２】
2015531089.tif 000004
により算出することができる。
【０１９４】
続いて、ＣＰＵ２５Ａ，２５Ｂは、そのとき対象としているプールＰＬに対する単位時間当たりのＩ／Ｏアクセスの総数（以下、これをプールＩ／Ｏアクセス総数と呼ぶ）を算出する（ＳＰ１１１）。このプールＩ／Ｏアクセス総数は、カウンタ値管理テーブル４５（図１０）に登録されている各カウンタ値のうち、そのプールＰＬのいずれかのティアから物理ページが割り当てられている仮想ボリュームＶＶＯＬのすべての論理ページのカウント値を合算することにより算出することができる。
【０１９５】
次いで、ＣＰＵ２５Ａ，２５Ｂは、区間ごとのＩ／Ｏアクセス数（以下、これを区間Ｉ／Ｏアクセス数と呼ぶ）を算出する（ＳＰ１１２）。
【０１９６】
図３０について上述したように、本ストレージ装置４においては、ストレージ装置４全体として低負荷時には、できるだけ高性能のティアの物理ページを論理ページに割り当て、負荷が高くなるにつれて、段階的に各ティアの稼働率が100％に近付くように各ティアの稼働率を上げてゆく階層型データ管理方式が採用されている。
【０１９７】
このような階層型データ管理方式を実現するための手段として、ストレージ装置４は、図３４に示すようなプールＰＬごとの区間Ｉ／Ｏアクセス管理テーブルを６０ローカルメモリ２６Ａ，２６Ｂ（図１）に保持している。この区間Ｉ／Ｏアクセス管理テーブル６０は、区間番号欄６０Ａ、区間Ｉ／Ｏアクセス数欄６０Ｂ及びメディア毎稼働率水準欄６０Ｃから構成されるもので、区間番号欄６０Ａには、上述の「段階的」の「段階」にそれぞれ対応する各区間（段階）に対して付与された区間番号が格納される。
【０１９８】
またメディア毎稼働率水準欄６０Ｃは、対応するプールＰＬに属する（そのプールＰＬの記憶領域を提供する）記憶ドライブ２０（図１）の各ドライブ種別（ＳＳＤ、ＳＡＳ１５Ｋ及びＳＡＴＡ等）にそれぞれ対応させて設けられた複数の稼働率水準欄６０ＣＡ〜６０ＣＥから構成される。そして各稼働率水準欄６０ＣＡ〜６０ＣＥには、それぞれ対応する区間における対応する記憶ドライブ２０の稼働率の予め定められた水準（以下、これを稼働率水準）が万分率単位で格納される。この稼働率水準は、プールＰＬに対するＩ／Ｏアクセスの総数に対してどの記憶ドライブ２０をどの程度の稼働率で稼働させるべきかという、図３５に示すようなシステム設計者等により予め設定された設定値に従った数値である。
【０１９９】
従って、図３４では、そのプールＰＬには、「SSD」、「SAS15K」、「SAS10K」、「NL-SAS」及び「SATA」といったドライブ種別の各記憶ドライブ２０が所属しており、区間として「０」〜「７」の８つが規定されていることが示されている。また図３４では、区間「１」では、「SSD」のみを「8000」パーミルアドの稼働率で稼働させ、区間「２」では、「SSD」を「8089」パーミルアド、「SAS15K」を「6000」パーミルアドの稼働率で稼働させ、区間「３」では、「SSD」を「8267」パーミルアド、「SAS15K」を「6372」パーミルアド、「SAS10K」を「6000」パーミルアドでそれぞれ稼働させ、区間「４」では、「SSD」を「8311」パーミルアド、「SAS15K」を「6465」パーミルアド、「SAS10K」を「6103」パーミルアド、「NL-SAS」を「1000」パーミルアドでそれぞれ稼働させるべきことが示されている。
【０２００】
さらに図３４では、区間「５」では、「SSD」を「8533」パーミルアド、「SAS15K」を「6930」パーミルアド、「SAS10K」を「6615」パーミルアド、「NL-SAS」を「6000」パーミルアド、「SATA」を「3750」パーミルアドでそれぞれ稼働させ、区間「６」では、「SSD」を「8667」パーミルアド、「SAS15K」を「7209」パーミルアド、「SAS10K」を「6923」パーミルアド、「NL-SAS」を「6364」パーミルアド、「SATA」を「6000」パーミルアドでそれぞれ稼働させ、区間「７」では、「SSD」、「SAS15K」、「SAS10K」、「NL-SAS」及び「SATA」のいずれも「10000」パーミルアドでそれぞれ稼働させるべきことが示されている。
【０２０１】
さらに区間Ｉ／Ｏアクセス数欄６０Ｂには、対応する区間において、そのプールＰＬに所属する各記憶ドライブ２０をメディア毎稼働率水準欄６０Ｃにおいて規定された稼働率水準で稼働させた場合にプールＰＬ全体として処理可能なＩ／Ｏアクセス数（区間Ｉ／Ｏアクセス数）が格納される。この区間Ｉ／Ｏアクセス数は、記憶ドライブ２０ごとに、その記憶ドライブ２０が属するティアのティア性能ポテンシャルと、その区間におけるその記憶ドライブの稼働率水準とを乗算し、記憶ドライブ２０ごとの乗算結果をすべて足し合わせることにより算出される。
【０２０２】
つまりステップＳＰ１１２では、このような区間ごとの区間Ｉ／Ｏアクセス数がそれぞれ算出される。そして、得られた区間ごとの区間Ｉ／Ｏアクセス数が区間Ｉ／Ｏアクセス管理テーブル６０の対応する区間Ｉ／Ｏアクセス数欄６０Ｂにそれぞれ格納される。
【０２０３】
次いで、ＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１１１において算出したプールＩ／Ｏアクセス総数と、ステップＳＰ１１２で算出した区間Ｉ／Ｏアクセス管理テーブル１１２の各区間Ｉ／Ｏアクセス数欄６０Ｂにそれぞれ格納されている区間ごとの区間Ｉ／Ｏアクセス数とに基づいて、そのときのプールＩ／Ｏアクセス総数が属する区間を決定する（ＳＰ１１３）。
【０２０４】
具体的には、そのプールＩ／Ｏアクセス総数がその区間の区間Ｉ／Ｏアクセス数を超えず、かつ１つ下の区間の区間Ｉ／Ｏアクセス数以上の区間が、そのプールＩ／Ｏアクセス総数の区間として決定される。従って、例えば図３４の例において、プールＩ／Ｏアクセス総数が「11362」〜「11268」の範囲内にある場合には、そのプールＩ／Ｏアクセス総数の区間は「３」に決定され、プールＩ／Ｏアクセス総数が「16000」〜「12729」の範囲内にある場合には、そのプールＩ／Ｏアクセス総数の区間は「７」に決定されることになる。
【０２０５】
この後、ＣＰＵ２５Ａ，２５Ｂは、ティアごとの目標ティア稼働率をそれぞれ算出する（ＳＰ１１４）。この目標ティア稼働率は、区間Ｉ／Ｏアクセス管理テーブル６０において規定されているステップＳＰ１１３において決定した区間における各記憶ドライブ２０の稼働率水準でこれらの記憶ドライブ２０を稼働した場合の各ティアの稼働率である。
【０２０６】
次いで、ＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１１４において算出した各ティアの目標ティア稼働率に基づいて、ティアごとのティア性能配分量をそれぞれ算出する（ＳＰ１１５）。具体的に、ＣＰＵ２５Ａ，２５Ｂは、ティアごとに、ステップＳＰ１１４において算出した目標ティア稼働率と、ステップＳＰに１１０おいて算出した対応するティア性能ポテンシャルとを掛け合わせることによりそのティア性能配分量を算出することになる。そしてＣＰＵ２５Ａ，２５Ｂは、この後、このティア性能配分量算出処理を終了する。
【０２０７】
（３−２−２−３）ティア閾値算出処理
図３６は、ティア閾値算出処理（図３２）のステップＳＰ１０２において、ＣＰＵ２５Ａ，２５Ｂにより実行されるティア閾値算出処理の具体的な処理手順を示す。ＣＰＵ２５Ａ，２５Ｂは、プールごとにこの図３６に示すティア閾値算出処理を実行することにより、そのプールについてのティア閾値（第１及び第２のティア閾値）をそれぞれ算出する。
【０２０８】
具体的には、ＣＰＵ２５Ａ，２５Ｂは、この図３６に従って、ティアごとに、Ｉ／Ｏアクセス数が多い物理ページから順番にＩ／Ｏアクセス数及び容量（物理ページ数）の累積数をそれぞれ求め、Ｉ／Ｏアクセス数の累計値が図３１について上述したそのティアの配分性能（そのティアにおいて単位時間内に処理可能なＩ／Ｏアクセス数の限界数）をオーバーする直前又は容量の累積値が図３１について上述したそのティアの配分容量（そのティアから仮想ボリュームＶＶＯＬに割り当て可能な物理ページの限界数）をオーバーする直前のＩ／Ｏアクセス数の累積値をそのティアと、当該ティアの１つ下位のティアとの間のティア閾値として求める。
【０２０９】
実際上、ＣＰＵ２５Ａ，２５Ｂは、ティア閾値算出処理のステップＳＰ１０２に進むと、このティア閾値算出処理を開始し、まず、後述するステップＳＰ１２１以降の処理で利用するパラメータである後述の容量累計値及びＩ／Ｏアクセス数累計値をそれぞれ初期化する（ＳＰ１２０）。
【０２１０】
続いて、ＣＰＵ２５Ａ，２５Ｂは、カウンタ値管理テーブル４５（図１０）を参照して、そのとき対象としているプールＰＬから物理ページが割り当てられている論理ページのうち、Ｉ／Ｏアクセス数が最大の論理ページのＩ／Ｏアクセス数を取得し、現在までの物理ページのページ数の累計値である容量累計値と、現在までのＩ／Ｏアクセス数の累計値であるＩ／Ｏアクセス数累計値とをそれぞれ算出する（ＳＰ１２１）。なお、この段階においては、容量累計値は「１」であり、Ｉ／Ｏアクセス数累計値はステップＳＰ１２１において取得したＩ／Ｏアクセス数と同じである。
【０２１１】
次いで、ＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１２１において算出した容量累計値が配分容量以上であるか否かを判断する（ＳＰ１２２）。
【０２１２】
ここで、ティアの配分容量ＤＣは、上述したティア性能配分量算出処理（図３３）のステップＳＰ１１０において算出したティア性能ポテンシャルをＰＰ、対応するティアにおいて除外され又は予約済みの物理ページ数分の単位時間当たりに予想されるＩ／Ｏアクセス数をＡＶＩ／Ｏ、ティア性能配分量算出処理（図３３）のステップＳＰ１１４において算出したそのティアの目標ティア稼働率をＯＲとして、次式
【数３】
2015531089.tif 000005
により求めることができる。従って、ＣＰＵ２５Ａ，２５Ｂは、このステップＳＰ１２２において、ステップＳＰ１２１で算出した容量累計値が（３）式により算出したそのティアの配分容量ＤＣ以上であるか否かを判断することになる。
【０２１３】
そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得ると、ステップＳＰ１２１において算出したＩ／Ｏアクセス数累計値がそのティアの配分性能以上であるか否かを判断する（ＳＰ１２３）。
【０２１４】
ここで、ティアの配分性能ＤＰは、そのティアの物理ページの総数をＴＡＰ、図７について上述した新規割当て用バッファ率及び再配置用バッファ率をそれぞれＭＲ１、ＭＲ２、そのティアにおいて除外され又は予約済みの物理ページ数ＡＰとして、次式
【数４】
2015531089.tif 000006
により求めることができる。従って、ＣＰＵ２５Ａ，２５Ｂは、このステップＳＰ１２３において、ステップＳＰ１２１で算出したＩ／Ｏアクセス数累計値が（４）式により算出したそのティアの配分性能ＤＰ以上であるか否かを判断することになる。
【０２１５】
そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得るとステップＳＰ１２１に戻り、この後、ステップＳＰ１２２又はステップＳＰ１２３において肯定結果を得るまでステップＳＰ１２１〜ステップＳＰ１２３の処理を繰り返す。なお、これ以降、ＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１２１において、直前のステップＳＰ１２１において算出した容量累計値に「１」を加えたものを新たな容量累計値として算出する。またＣＰＵ２５Ａ，２５Ｂは、そのとき対象としているプールＰＬから物理ページが割り当てられている論理ページのうち、直前のステップＳＰ１２１において対象とした論理ページの次にＩ／Ｏアクセス数が多い論理ページのＩ／Ｏアクセスと、直前のステップＳＰ１２１において算出したＩ／Ｏアクセス数累計値との加算結果を新たなＩ／Ｏアクセス数累計値として算出する。
【０２１６】
そしてＣＰＵ２５Ａ，２５Ｂは、やがてステップＳＰ１２２において肯定結果を得た場合には、そのとき対象としているティアの配分性能を（３）式により再計算し（ＳＰ１２４）、この計算結果に基づいてそのティアと、当該ティアよりも１つ下位のティアとの間のティア閾値を決定する（ＳＰ１２５）。
【０２１７】
またＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１２３において肯定結果を得た場合には、そのときのＩ／Ｏアクセス数累計値をそのとき対象としているティアと、当該ティアよりも１つ下位のティアとの間のティア閾値として決定する（ＳＰ１２５）。
【０２１８】
続いて、ＣＰＵ２５Ａ，２５Ｂは、すべてのティア閾値を決定し終えたか否かを判断し（ＳＰ１２６）、否定結果を得ると、ステップＳＰ１２０に戻って、この後、ステップＳＰ１２０以降を同様に処理する。なお、この際、ＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１２１において、新たに対象とするティア内での容量累計値及びＩ／Ｏアクセス累計値とを算出する。
【０２１９】
そしてＣＰＵ２５Ａ，２５Ｂは、やがてすべてのティア閾値を求めることによりステップＳＰ１２６で肯定結果を得ると、このティア閾値算出処理を終了して図３２のティア閾値算出処理に戻る。
【０２２０】
（３−２−２−４）移動量パラメータ算出処理
上述のティア閾値算出処理（図３２）のステップＳＰ１０３において、ＣＰＵ２５Ａ，２５Ｂは、以下の手法により移動量パラメータを算出する。
【０２２１】
すなわち、ＣＰＵ２５Ａ，２５Ｂは、チェック対象の論理ページの総数をＣＡＰ、チェック済みの論理ページのページ数をＣＰとして、次式
【数５】
2015531089.tif 000007
によりチェック対象の論理ページの総数ＣＡＰに対するチェック済みの論理ページのページ数ＣＰの割合（以下、これをチェック済みページ数割合と呼ぶ）ＳＲを算出する。なお、（５）式の右辺において「10000」を乗算しているのは、かかるページ数ＣＰを万分率で算出するためである。
【０２２２】
またＣＰＵ２５Ａ，２５Ｂは、図４３について後述するティア決定処理ＳＴ３（図３）の目標周期（例えば１時間）をＦ、ティア決定処理ＳＴ３の１周期の開始時刻をＴ１、現在時刻をＴ２として、次式
【数６】
2015531089.tif 000008
により、ティア決定処理ＳＴ３の目標周期Ｆに対する、今回のティア決定処理ＳＴ３を開始してから現在までの経過時間の割合（以下、これを経過時間割合と呼ぶ）ＴＲを算出する。なお（６）式の右辺において「10」を乗算しているのは、（５）式と単位を合わせるためである。
【０２２３】
続いて、ＣＰＵ２５Ａ，２５Ｂは、上述のように算出したチェック済みページ数割合ＳＲと、経過時間割合ＴＲとを比較する。そしてＣＰＵ２５Ａ，２５Ｂは、次式
【数７】
2015531089.tif 000009
のように、チェック済みページ数割合ＳＲよりも経過時間割合ＴＲのほうが大きい場合（移動量パラーメータは０〜254）には、移動量パラメータを、現在の値に１加算した値として算出し、次式
【数８】
2015531089.tif 000010
のように、チェック済みページ数割合ＳＲが経過時間割合ＴＲ以上の場合には（移動量パラメータは１〜255）には、移動量パラメータを、現在の値から１減算した値として算出する。
【０２２４】
（３−２−２−５）ＰＤライン算出処理
図３７に、第１及び第２のティア閾値と、各プロモーションライン（Ｔ３−Ｔ１プロモーションライン、Ｔ２−Ｔ１プロモーションライン及びＴ３−Ｔ２プロモーションライン）及び各デモーションライン（Ｔ１−Ｔ２デモーションライン、Ｔ２−Ｔ３デモーションライン及びＴ１−Ｔ３デモーションライン）との関係を示す。
【０２２５】
プロモーションライン及びデモーションラインは、仮想ボリュームＶＶＯＬの論理ページに格納されたデータを、上位のティアにプロモーション又は下位のティアにデモーションすることによって得られる各ティアのレスポンス性能の向上を目的として設定される、論理ページへのアクセス頻度の閾値である。
【０２２６】
プロモーションラインは、仮想ボリュームＶＶＯＬの論理ページに格納されたデータを上位のティアにプロモーションすることによって得られる各ティアのレスポンス性能の向上を目的として設定される、論理ページへのアクセス頻度の閾値である。このプロモーションラインは、仮想ボリュームＶＶＯＬの論理ページに格納されたデータをプロモーションするか否かを判定する際に、第１及び第２のティア閾値と併せて利用される。なお、上述の通り、第１及び第２のティア閾値を考慮せず、プロモーションラインによって判定してもよい。
【０２２７】
プロモーションラインが対応する第１又は第２のティア閾値と一致する場合に、プロモーションされるデータ量が最大となり、当該プロモーションラインが対応する第１又は第２のティア閾値から離れるほど、プロモーションされるデータ量が少なくなる。換言すれば、プロモーションラインが対応する第１又は第２のティア閾値から離れるほど、その論理ページに格納されたデータをプロモーションするで、より高い効果（ティアのレスポンス性能の向上のことであり、以下、これを移動効果と呼ぶ）が得られる論理ページを選定する度合いが強くなる。
【０２２８】
またデモーションラインは、仮想ボリュームＶＶＯＬの論理ページに格納されたデータを下位のティアにデモーションすることによって得られる各ティアのレスポンス性能の向上を目的として設定される、論理ページへのアクセス頻度の閾値である。このデモーションラインは、仮想ボリュームＶＶＯＬの論理ページに格納されたデータをデモーションするか否かを判定する際に、第１及び第２のティア閾値と併せて利用される。上述の通り、第１及び第２のティア閾値より小さく、デモーションラインより大きいアクセス頻度の論理ページに割り当てられる物理ページを移動対象とするためである。
【０２２９】
デモーションラインが対応する第１又は第２のティア閾値と一致する場合にデモーションされるデータ量が最小となり、当該デモーションラインが対応する第１又は第２のティア閾値から離れるほど、デモーションされるデータ量が多くなる。換言すれば、デモーションラインが対応する第１又は第２のティア閾値に近づくほど、第１又は第２のティア閾値より小さいアクセス頻度の中でも、よりアクセス頻度の高いデータを選定してデモーションすることができるため、より移動効果の得られる論理ページに格納されたデータをデモーションすることができる。
【０２３０】
なお、図３７は第１及び第２のティア閾値と、各プロモーションライン及び各デモーションラインとの関係の一例を示すだけのものであり、各プロモーションラインがすべて第１のティア閾値よりも上に設定されたり、各デモーションラインがすべて第２のティア閾値よりも下に設定されたりすることもある。
【０２３１】
ここで、かかるプロモーションラインやデモーションラインは、ティア閾値（第１及び第２のティア閾値）と、常時監視している各ティアをそれぞれ構成する記憶ドライブ２０の応答性能（レスポンス時間）とに基づいて決定される。
【０２３２】
具体的には、まず、ティアごとの応答性能に基づいて、ティア間でデータをプロモーション又はデモーションさせたときの移動効果を、すべてのティア間について求める。本実施の形態においては、この移動効果E(s,d)を、移動元のティアの応答性能をRsp(S)とし、移動先のティアの応答性能をRsp(d)として、次式
【数９】
2015531089.tif 000011
により算出する。つまり、移動効果は、データをティア間で移動した場合に、移行元のティア（物理ページ）での応答性能（レスポンス時間）に対して移行先のティア（物理ページ）での応答性能（レスポンス時間）がどれだけよくなるか（短くなるか）を示す値である。
【０２３３】
例えば図３８（Ａ）に示すように、第１及び第２のティア間に設定される第１のティア閾値が「100IOPH（Input Output Per Hour）」、第２及び第３のティア間に設定される第２のティア閾値が「10IOPH」であり、図３８（Ｂ）に示すように、第１のティアに所属する記憶ドライブ２０の平均ドライブレスポンス時間が「1ms」、第２のティアに所属する記憶ドライブ２０の平均ドライブレスポンス時間が「9ms」及び第３のティアに所属する記憶ドライブ２０の平均ドライブレスポンス時間が「12ms」であったものとする。
【０２３４】
この場合、図３８（Ｃ）に示すように、ティア間の組合せとしては、第１及び第２のティアと、第１及び第３のティアと、第２及び第３のティアとが考えられる。
【０２３５】
そこで、第１及び第２のティア間については、第２のティアのデータを第１のティアにプロモーションした場合（「T2→T1」）の移動効果を、第２のティアを構成する記憶ドライブ２０の平均レスポンス時間である「9ms」から第１のティアを構成する記憶ドライブ２０の平均レスポンス時間である「1ms」を引いた「8ms」として算出する（図３８（Ｃ）の１行目参照）。また第１及び第３のティア間については、第３のティアのデータを第１のティアにプロモーションした場合（「T3→T1」）の移動効果を、第３のティアを構成する記憶ドライブ２０の平均レスポンス時間である「12ms」から第１のティアを構成する記憶ドライブ２０の平均レスポンス時間である「1ms」を引いた「11ms」として算出する（図３８（Ｃ）の２行目参照）。さらに第２及び第３のティア間については、第３のティアのデータを第２のティアにプロモーションした場合（「T3→T2」）の移動効果を、第３のティアを構成する記憶ドライブ２０の平均レスポンス時間である「12ms」から第２のティアを構成する記憶ドライブ２０の平均レスポンス時間である「9ms」を引いた「3ms」として算出する（図３８（Ｃ）の３行目参照）。
【０２３６】
同様に、第１及び第２のティア間について、第１のティアのデータを第２のティアにデモーションした場合（「T1→T2」）の移動効果を、第１のティアを構成する記憶ドライブ２０の平均レスポンス時間である「1ms」から第２のティアを構成する記憶ドライブ２０の平均レスポンス時間である「9ms」を引いた「-8ms」として算出する（図３８（Ｃ）の４行目参照）。また第１及び第３のティア間について、第１のティアのデータを第３のティアにデモーションした場合（「T1→T3」）の移動効果を、第１のティアを構成する記憶ドライブ２０の平均レスポンス時間である「1ms」から第３のティアを構成する記憶ドライブ２０の平均レスポンス時間である「12ms」を引いた「-11ms」として算出する（図３８（Ｃ）の５行目参照）。さらに第２及び第３のティア間について、第２のティアのデータを第３のティアにデモーションした場合（「T2→T3」）の移動効果を、第２のティアを構成する記憶ドライブ２０の平均レスポンス時間である「9ms」から第３のティアを構成する記憶ドライブ２０の平均レスポンス時間である「12ms」を引いた「-3ms」として算出する（図３８（Ｃ）の６行目参照）。
【０２３７】
そして上述のようにして算出した各ティア間の移動効果について、データのプロモーションについては、移動効果が正の値の場合（移動効果を得られる場合）には、移動量パラメータを移動量効果で割った商と、第１又は第２のティア閾値とのうちの大きい方を、そのティア間のプロモーションラインとし、移動効果が負の値の場合（移動効果が得られない場合）には、カウンタ値管理テーブル４５（図１０）において管理している各論理ページに対するアクセス数のカウント値の最大値（「255」）を、そのティア間のプロモーションラインとして設定する。つまり、プロモーションラインは、ティア間でデータを移動させることによる移動効果が大きいほど、対応する第１又は第２のティア閾値に近づき、移動効果が得られない場合には、対応する第１又は第２のティア閾値から大きく離れるように設定される。これによりプロモーションによる移動効果が得られるティア間については、これらティア間におけるプロモーションを促進することができ、移動効果が得られないティア間については、これらティア間におけるプロモーションを抑止することができる。
【０２３８】
またデータのデモーションについては、移動効果が正の値の場合（移動効果を得られる場合）には、移動効果パラメータを移動効果で割った商と、第１又は第２のティア閾値とのうちの小さい方を、そのティア間のデモーションラインとし、移動効果が負の値の場合（移動効果が得られない場合）には、第１又は第２のティア閾値を、そのティア間のデモーションラインとして設定する。つまり、デモーションラインは、ティア間でデータを移動させることによる移動効果が大きいほど、対応する第１又は第２のティア閾値から離れ、移動効果が得られない場合には、対応する第１又は第２のティア閾値に近づくように設定される。これにより上述のプロモーションの場合と同様に、デモーションによる移動効果が得られるティア間については、これらティア間におけるデモーションを促進することができ、移動効果が得られないティア間については、これらティア間におけるデモーションを抑止することができる。
【０２３９】
なお、図３８（Ｃ）は、移動量パラメータが「2048」である場合における、アクセスが集中し性能ネックになっているティアがない場合の各プロモーションライン及び各デモーションラインの一例を示している。
【０２４０】
この図３８（Ｃ）からも明らかなように、アクセスが集中し性能ネックになっているティアがないため、なるべく性能の高い第１のティアを利用するように制御される。つまり、第３のティアから第２のティアにプロモーションするよりも、第３又は第２のティアから第１のティアにプロモーションする処理を優先する。従って、第３及び第２のティア間のプロモーションラインが第２のティア閾値から離れた値に設定される。
【０２４１】
また図３８の例の場合、図３９からも明らかなように、第２及び第１のティア間のプロモーションラインから第１のティア閾値までの距離に比べて、第３及び第１のティア間のプロモーションラインから第１のティア閾値までの距離が近いため、第２のティアから第１のティアへのプロモーションに比べて、第３のティアから第１のティアへのプロモーションが多く行われることになる。
【０２４２】
また図３８の例の場合、デモーションラインについては、いずれも対応する第１又は第２のティア閾値と一致しているため、第１のティアから第２のティアへのデモーション、第１のティアから第３のティアへのデモーション及び第２のティアから第３のティアへのデモーションのいずれも行われることはない。
【０２４３】
このようにアクセスが集中し性能ネックになっているティアがない（図３８）場合には、第２又は第３のティアから第１のティアへのプロモーションは第３のティアから第２のティアへのプロモーションに優先して実行され、デモーションは基本的には実施されない。デモーションは、図１６について上述したプロモーション判定処理のステップＳＰ３５においてプロモーション先に空き容量がない場合にのみ緊急デモーション処理（図１８）として実行されるだけである。
【０２４４】
一方、図４０（Ｃ）は、移動量パラメータが「2048」である場合における、第２のティア（ティア２）に対してアクセスが集中し性能ネックとなっている場合の各プロモーションライン及び各デモーションラインの一例を示している。図３８との違いは、図４０（Ｂ）に示すように、第２のティアが高負荷状態となっている点である。
【０２４５】
このような状況では、性能ネックとなっている第２のティア（ティア２）から第１のティア（ティア１）へのプロモーション及び、第２のティアから第３のティア（ティア３）へのデモーションの優先度が図３８の例に比して上がる。
【０２４６】
つまり、図４０（Ｃ）からも明らかなように、第２及び第１のティア間でデータをプロモーションすることによる高い移動効果が得られるため、図４１に示すように、第２及び第１のティア間のプロモーションラインも対応する第１のティア閾値と一致した値に設定される。従って、第２及び第１のティア間のプロモーションが多く行われることになる。
【０２４７】
また図４０の例の場合、図４１からも明らかなように、第３及び第１ティア間のプロモーションラインは対応する第１のティア閾値から僅かに離れているため、第３及び第１のティア間のプロモーションが僅かに行われることになる。このように、図４０のような状況のもとでは、第２のティアから第１のティアへのプロモーションが、第３のティアから第１のティアへのプロモーションに優先して実行されることになる。
【０２４８】
また第３のティアから第２のティアへのプロモーションについては、第３及び第２のティア間のプロモーションラインがカウンタ値管理テーブル４５（図１０）においてカウンタ値がとり得る最大値（「255」）を表す「MAX」となっているため、行われることはない。
【０２４９】
さらに図４０の例の場合、デモーションラインについては、第１及び第２のティア間のデモーションラインと、第１及び第３のティア間のデモーションラインとが、それぞれ対応する第１又は第２のティア閾値と一致しているため（図４１参照）、第１のティアから第２のティアへのデモーションと、第１のティアから第３のティアへのデモーションとのいずれも行われることはない。これに対して、第２及び第３のティア間のデモーションラインについては、対応する第２のティア閾値から少しだけ離れているため（図４１参照）、第２のティアから第３のティアへのデモーションは僅かに行われることになる。
【０２５０】
ここで、図４２は、上述のティア閾値算出処理（図３２）のステップＳＰ１０４においてＣＰＵ２５Ａ，２５Ｂにより実行されるＰＤライン算出処理の具体的な処理手順を示す。ＣＰＵ２５Ａ，２５Ｂは、この図４２に示す処理手順に従って、各プロモーションライン及び各デモーションラインをそれぞれ算出する。
【０２５１】
実際上、ＣＰＵ２５Ａ，２５Ｂは、ティア閾値算出処理のステップＳＰ１０４に進むと、このＰＤライン算出処理を開始し、まず、常時監視している各記憶ドライブ２０のレスポンス時間に基づいて、プール内のティアごとの平均レスポンス時間をそのティアの応答性能として算出する（ＳＰ１３０）。
【０２５２】
続いて、ＣＰＵ２５Ａ，２５Ｂは、このとき算出した各ティアの応答性能に基づいて、各ティア間について、そのティア間でプロモーションした場合の移動効果と、デモーションした場合の移動効果とを（９）式によりそれぞれ算出する（ＳＰ１３１）。
【０２５３】
次いで、ＣＰＵ２５Ａ，２５Ｂは、各ティア間のプロモーションラインを設定する（ＳＰ１３２〜ＳＰ１３５）。
【０２５４】
具体的に、ＣＰＵ２５Ａ，２５Ｂは、ティア間を１つ選択し、ステップＳＰ１３１において算出したそのティア間でプロモーションした場合の移動効果が「０」よりも大きいか否かを判断する（ＳＰ１３２）。
【０２５５】
そしてＣＰＵ２５Ａ，２５Ｂは、この判断で肯定結果を得ると、移動量パラメータを移動量効果で割った商と、第１又は第２のティア閾値とのうちの大きい方をそのティア間のプロモーションラインとして設定する（ＳＰ１３３）。ここで、プロモーションライン（Ｔ２→Ｔ１）は第１のティア閾値と比較し、プロモーションライン（Ｔ３→Ｔ２）は第２のティア閾値と比較し、プロモーションライン（Ｔ３→Ｔ１）は第１のティア閾値と比較する。これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１３２の判断で否定結果を得ると、カウンタ値管理テーブル４５（図１０）において管理している仮想ボリュームＶＶＯＬの各論理ページへのアクセス数のカウント値のうちの最大カウント値をそのティア間のプロモーションラインとして設定する（ＳＰ１３４）。
【０２５６】
続いてＣＰＵ２５Ａ，２５Ｂは、すべてのティア間についてプロモーションラインを算出し終えたか否かを判断する（ＳＰ１３５）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得るとステップＳＰ１３２に戻り、この後、ステップＳＰ１３２において選択する対象（ティア間）を順次未処理のティア間に切り替えながらステップＳＰ１３２〜ステップＳＰ１３５の処理を繰り返す。
【０２５７】
そしてＣＰＵ２５Ａ，２５Ｂは、やがてすべてのティア間についてプロモーションラインを算出し終えることによりステップＳＰ１３５で肯定結果を得ると、この後、各ティア間のデモーションラインを設定する（ＳＰ１３６〜ＳＰ１３９）。
【０２５８】
具体的に、ＣＰＵ２５Ａ，２５Ｂは、ティア間を１つ選択し、ステップＳＰ１３１において算出したそのティア間でデモーションした場合の移動効果が「０」よりも大きいか否かを判断する（ＳＰ１３６）。
【０２５９】
そしてＣＰＵ２５Ａ，２５Ｂは、この判断で肯定結果を得ると、移動量パラメータを移動量効果で割った商と、第１又は第２のティア閾値とのうちの小さい方をそのティア間のプロモーションラインとして設定する（ＳＰ１３７）。ここで、デモーションライン（Ｔ１→Ｔ２）は第１のティア閾値と比較し、デモーションライン（Ｔ２→Ｔ３）は第２のティア閾値と比較し、デモーションライン（Ｔ１→Ｔ３）は第２のティア閾値と比較する。これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１３６の判断で否定結果を得ると、カウンタ値管理テーブル４５（図１０）において管理している仮想ボリュームＶＶＯＬの各論理ページへのアクセス数のカウント値のうちの第１又は第２の閾値をそのティア間のデモーションラインとして設定する（ＳＰ１３８）。
【０２６０】
続いてＣＰＵ２５Ａ，２５Ｂは、すべてのティア間についてデモーションラインを算出し終えたか否かを判断する（ＳＰ１３９）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得るとステップＳＰ１３６に戻り、この後、この後、ステップＳＰ１３６において選択する対象（ティア間）を順次未処理のティア間に切り替えながらステップＳＰ１３６〜ステップＳＰ１３９の処理を繰り返す。
【０２６１】
そしてＣＰＵ２５Ａ，２５Ｂは、やがてすべてのティア間についてデモーションラインを算出し終えることによりステップＳＰ１３９で肯定結果を得ると、このＰＤライン算出処理を終了してティア閾値算出処理に戻る。
【０２６２】
（３−３）ティア決定処理ＳＴ３
（３−３−１）ティア決定処理
図４３は、図３のティア決定処理ＳＴ３において、ストレージ装置４の０系及び１系の各コントローラ２１Ａ，２１ＢのＣＰＵ２５Ａ，２５Ｂにより実行されるティア決定処理ＳＴ３（図３）の処理手順を示す。
【０２６３】
ＣＰＵ２５Ａ，２５Ｂは、予め定められた所定時間内（例えば60分以内）にストレージ装置４内のすべての仮想ボリュームＶＶＯＬ内のすべての論理ページについてチェック可能な所定周期（例えば数秒ごと）でこのティア決定処理を実行することにより、ストレージ装置４内のすべての論理ページについて、当該論理ページに割り当てる物理ページが属する最適なティアをそれぞれ決定する。
【０２６４】
実際上、ＣＰＵ２５Ａ，２５Ｂは、このティア決定処理を開始すると、まず、予め設定されたティア決定処理を実行すべき時間をカウントダウン型のタイマにセットし（ＳＰ１４０）、この後、対象とすべき論理ページを選択する（ＳＰ１４１）。
【０２６５】
続いて、ＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１４１において選択した論理ページについて上述したプロモーション判定処理（図１６）を実行する（ＳＰ１４２）。これによりＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１４１において選択した論理ページに格納されたデータを上位のティアにプロモーションする必要がある場合には、返却値に「実行要」を設定する一方、当該データを上位のティアにプロモーションする必要がない場合には、返却値に「実行不要」を設定する。
【０２６６】
次いで、ＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１４２において実行したプロモーション判定処理の返却値に「実行要」が設定されているか否かを判断する（ＳＰ１４３）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で肯定結果を得ると、ステップＳＰ１４５に進む。
【０２６７】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１４３の判断で否定結果を得ると、デモーション判定処理（ＳＰ１４４）を実施し、この後、ステップＳＰ１４５に進む。
【０２６８】
そしてＣＰＵ２５Ａ，２５Ｂは、この後、タイマのカウンタ値が「０」となったか否かを判断し（ＳＰ１４５）、この判断で否定結果を得るとステップＳＰ１４１に戻り、この後、ステップＳＰ１４１において選択する論理ページをラウンドロビン方式で順次他の論理ページに変更しながら、ステップＳＰ１４１〜ステップＳＰ１４５の処理を繰り返す。
【０２６９】
そしてＣＰＵ２５Ａ，２５Ｂは、やがてタイマのカウンタ値が「０」となることによりステップＳＰ１４８で肯定結果を得ると、このティア決定処理を終了する。
【０２７０】
（３−３−２）デモーション判定処理
図４４は、ティア判定処理（図４３）のステップＳＰ１４４においてＣＰＵ２５Ａ，２５Ｂにより実行されるデモーション判定処理の具体的な処理手順を示す。ＣＰＵ２５Ａ，２５Ｂは、この図４４に示す処理手順に従って、ティア判定処理の直前のステップＳＰ１４１で選択した論理ページに格納されたデータを下位のティアにデモーションすべきか否かを判定する。
【０２７１】
すなわちＣＰＵ２５Ａ，２５Ｂは、ティア判定処理のステップＳＰ１４４に進むと、このデモーション判定処理を開始し、まず、デモーション先のティアを現在のティアよりも１つ下位のティアとする（ＳＰ１５０）。
【０２７２】
続いてＣＰＵ２５Ａ，２５Ｂは、カウンタ値管理テーブル４５（図１０）からかかる論理ページのカウンタ値を取得し、取得したカウンタ値が現在のティアからステップＳＰ１５０においてデモーション先としたティアにデモーションするためのティア閾値（第１又は第２のティア閾値）よりも小さいか否かを判断する（ＳＰ１５１）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得るとステップＳＰ１６０に進む。
【０２７３】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１５１の判断で肯定結果を得ると、ステップＳＰ１５１においてカウンタ値管理テーブル４５から取得したカウンタ値が、現在のティアからステップＳＰ１５０においてデモーション先としたティアにデモーションする候補となるための対応するデモーションライン（第１〜第３のデモーションライン）よりも大きいか否かを判断する（ＳＰ１５２）。
【０２７４】
ＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得ると、図１７について上述したＬＩＦＯ５０にその論理ページを登録し（ＳＰ１５３）、この後、かかる論理ページのデータをデモーション可能であるかの判定を最下位のティアまで行ったか否かを判断する（ＳＰ１５４）。そしてＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得ると、デモーション先を１つ下位のティアに設定する（ＳＰ１６０）。そしてＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１５１に戻り、この後、ステップＳＰ１５１以降を同様に処理する。
【０２７５】
なお、これ以降の処理では、ステップＳＰ１５１において論理ページのカウンタ値と比較する対象として、現在のティアから直前のステップＳＰ１５５においてデモーション先としたティアにデータをデモーションするためのティア閾値（第１又は第２のティア閾値）が用いられ、ステップＳＰ１５２において上述のカウンタ値と比較する対象として、現在のティアから直前のステップＳＰ１５５においてデモーション先としたティアにデータをデモーションするためのデモーションラインが用いられる。
【０２７６】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１５４の判断で肯定結果を得ると（このことは最下位のティアまで判定したが、データが格納された論理ページのアクセス頻度がデモーションすべきアクセス頻度でなかったことを意味する）、ステップＳＰ１５０又は最後に実行したステップＳＰ１５５においてデモーション先としたティアに属する物理ページに格納されたデータを当該ティアよりも下位のティアにデモーションする優先再配置処理を実行する（ＳＰ１５７）。この優先再配置処理の具体的な処理内容は、図１８について上述した緊急デモーション処理のステップＳＰ４０〜ステップＳＰ４４と同様である。
【０２７７】
そしてＣＰＵ２５Ａ，２５Ｂは、この後、この優先再配置処理によりステップＳＰ１５１又は最後に実行したステップＳＰ１５５においてデモーション先としたティアに属するいずれかの論理ページのデータを当該ティアよりも下位のティアにデモーションできたか否かを判断する（ＳＰ１５８）。
【０２７８】
ＣＰＵ２５Ａ，２５Ｂは、この判断で肯定結果を得ると、返却値に「実行要」を設定し（ＳＰ１５９）、この後、このデモーション判定処理を終了してティア決定処理（図４３）に戻る。かくして、この場合には、この後実行されるティア決定処理のステップＳＰ１４５において肯定結果が得られることになる。
【０２７９】
これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１５８の判断で否定結果を得ると、返却値に「実行不要」を設定し、この後、このデモーション判定処理を終了してティア決定処理に戻る。かくして、この場合には、この後実行されるティア決定処理のステップＳＰ１４５において否定結果が得られることになる。
【０２８０】
一方、ＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１５６の判断で肯定結果を得ると、ティア管理テーブル４２（図７）を参照して、ステップＳＰ１５０又は最後に実行したステップＳＰ１５５においてデモーション先としたティアに、そのとき対象としているページのデータをデモーションするだけの空き容量があるか否かを判断する（ＳＰ１５６）。
【０２８１】
ＣＰＵ２５Ａ，２５Ｂは、この判断で否定結果を得るとステップＳＰ１５７に進み、この後、ステップＳＰ１５７以降を上述と同様に処理する。これに対してＣＰＵ２５Ａ，２５Ｂは、ステップＳＰ１５６の判断で肯定結果を得ると、返却値に「実行要」を設定し（ＳＰ１５９）、この後、このデモーション判定処理を終了してティア判定処理に戻る。
【０２８２】
（３−４）ページ再配置処理ＳＴ４
図３のページ再配置処理ＳＴ４の具体的な処理内容は、図１９について上述したページ再配置処理と同様であるため、ここでの説明は省略する。なお、図１９の説明では、リード対象のデータについて再配置処理を実行したが、再配置処理が必要な他のデータについても再配置処理を実行する。
【０２８３】
（４）本実施の形態の効果
以上のように本実施の形態による計算機システム１では、ホストＩ／Ｏ処理（リード処理及びライト処理）と同期して、ライト対象又はリード対象のデータを他のティアに移動する必要があるか否かのティア判定処理と、移動する必要がある場合のデータの移動処理であるページ再配置処理とを実行するため、アクセス頻度の高いデータを即座に高性能のティアに移動させることができる。かくするにつきストレージ装置４全体としての応答性能の向上をリアルタイムで図ることができる。
【０２８４】
またこのようにホストＩ／Ｏ処理と同期してページ再配置処理を実行した場合、特にライト処理時には必ずキャッシュメモリ２６Ａ，２６Ｂ内に移動対象のデータが格納されているため、当該データのステージングを行う必要がなく、その分、ホストＩ／Ｏ処理と非同期にページ再配置処理を実行する場合と比べて、ストレージ装置４の負荷を低減することができる。この結果、ホストＩ／Ｏ処理と非同期にページ再配置処理を実行することに起因する応答性能の低下を防止することができる。
【０２８５】
（５）他の実施の形態
なお上述の実施の形態においては、本発明を図１のように構成されたストレージ装置に適用するようにした場合について述べたが、本発明はこれに限らず、要は、階層型データ管理技術が適用されたこの他種々の構成のストレージ装置に広く適用することができる。
【０２８６】
また上述の実施の形態においては、ストレージ装置４内の記憶デバイス（記憶ドライブ２０）として、ＳＳＤ、ＳＡＳ及びＳＡＴＡ等を適用するようにした場合について述べたが、本発明はこれに限らず、かかる記憶デバイスとして、例えばＦＣ（Fibre Chanel）ディスク等のこの他のハードディスク装置や、光ディスクや光磁気ディスク等のディスク媒体、及びフラッシュメモリ等のＳＤＤ以外の半導体メモリ等を広く適用することができる。
【産業上の利用可能性】
【０２８７】
本発明は、階層型データ管理技術が適用された種々の構成のストレージ装置に広く適用することができる。
【符号の説明】
【０２８８】
１……計算機システム、２……ホスト装置、４……ストレージ装置、２０……記憶ドライブ、２１Ａ，２１Ｂ……コントローラ、２５Ａ，２５Ｂ……ＣＰＵ、２６Ａ，２６Ｂ……ローカルメモリ、２７Ａ，２７Ｂ……キャッシュメモリ、４０……仮想ボリュームインデックステーブル、４１……ＲＡＩＤグループインデックステーブル、４２……ティア管理テーブル、４３……プールインデックステーブル、４４……ページアドレステーブル、４５……カウンタ値管理テーブル、４６……ページ再配置実行管理テーブル、４７……カウンタ値遷移テーブル、５０……ＬＩＦＯ、６０……区間Ｉ／Ｏアクセス管理テーブル、ＲＧ……ＲＡＩＤグループ、ＰＬ……プール、ＳＴ１……ホストＩ／Ｏ処理、ＳＴ２……ティア閾値算出処理、ＳＴ３……ティア決定処理、ＳＴ４……ページ再配置処理、ＶＶＯＬ……仮想ボリューム。
【図１】
2015531089.tif 000012
【図２】
2015531089.tif 000013
【図３】
2015531089.tif 000014
【図４】
2015531089.tif 000015
【図５】
2015531089.tif 000016
【図６】
2015531089.tif 000017
【図７】
2015531089.tif 000018
【図８】
2015531089.tif 000019
【図９】
2015531089.tif 000020
【図１０】
2015531089.tif 000021
【図１１】
2015531089.tif 000022
【図１２】
2015531089.tif 000023
【図１３】
2015531089.tif 000024
【図１４】
2015531089.tif 000025
【図１５】
2015531089.tif 000026
【図１６】
2015531089.tif 000027
【図１７】
2015531089.tif 000028
【図１８】
2015531089.tif 000029
【図１９】
2015531089.tif 000030
【図２０】
2015531089.tif 000031
【図２１】
2015531089.tif 000032
【図２２】
2015531089.tif 000033
【図２３】
2015531089.tif 000034
【図２４】
2015531089.tif 000035
【図２５】
2015531089.tif 000036
【図２６】
2015531089.tif 000037
【図２７】
2015531089.tif 000038
【図２８】
2015531089.tif 000039
【図２９】
2015531089.tif 000040
【図３０】
2015531089.tif 000041
【図３２】
2015531089.tif 000042
【図３３】
2015531089.tif 000043
【図３４】
2015531089.tif 000044
【図３５】
2015531089.tif 000045
【図３６】
2015531089.tif 000046
【図３７】
2015531089.tif 000047
【図３８】
2015531089.tif 000048
【図３９】
2015531089.tif 000049
【図４０】
2015531089.tif 000050
【図４１】
2015531089.tif 000051
【図４２】
2015531089.tif 000052
【図４３】
2015531089.tif 000053
【図４４】
2015531089.tif 000054
【図３１】
2015531089.tif 000055
【手続補正書】
【提出日】平成27年2月20日(2015.2.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
計算機に接続されるストレージ装置であって、
第１の記憶デバイスと、当該第１の記憶デバイスより性能の高い第２の記憶デバイスを含む複数の記憶デバイスと、
複数の論理領域を有する仮想ボリュームを前記計算機に提供し、前記仮想ボリュームの前記論理領域に対する書込み要求を受領した後に、当該論理領域に前記複数の記憶デバイスの有する複数の記憶領域の少なくとも１つを割り当てるコントローラと、を備え、
前記コントローラは、
前記複数の論理記憶領域の第１の論理領域に対する書込み要求を受領すると、前記第１の論理領域に割り当てられた前記第１の記憶デバイスの有する第１の記憶領域に格納されたデータのアクセス頻度に基づき、当該データを前記第１の記憶領域から前記第２の記憶デバイスの有する第２の記憶領域に移行するか否かを判定し、
前記判定結果に応じて、当該データを前記第１の記憶領域から前記第２の記憶領域に移行し、
前記第２の記憶領域を前記第１の論理領域に割り当てる
ことを特徴とするストレージ装置。
【請求項２】
請求項１に記載のストレージ装置であって、
前記第２の記憶デバイスは、ＳＳＤ（Solid State Disk）である
ことを特徴とするストレージ装置。
【請求項３】
請求項１に記載のストレージ装置であって、
前記コントローラが、前記判定において、前記第１の記憶領域に格納されるデータを前記第１の記憶領域から前記第２の記憶領域に移行しないと判定した場合、前記コントローラは当該データを前記第１の記憶領域に保持するとともに、前記第１の記憶領域の前記第１の論理領域への割当を維持する
ことを特徴とするストレージ装置。
【請求項４】
請求項１に記載のストレージ装置であって、
前記第１の記憶デバイスの前記第１の記憶領域が前記第１の論理領域に割り当てられ、前記第１の論理領域のデータを格納する一方で、
前記第２の記憶デバイスの有する第３の記憶領域は、前記仮想ボリュームの第２の論理領域に割り当てられている
ことを特徴とするストレージ装置。
【請求項５】
請求項１に記載のストレージ装置であって、
前記ストレージ装置は、さらに、
前記書込み要求に対応し前記複数の記憶デバイスに格納されるデータおよび、前記読出し要求に対応し前記複数の記憶デバイスから読み出されるデータ、を、一時的に格納するキャッシュメモリを有する
ことを特徴とするストレージ装置。
【請求項６】
請求項１に記載のストレージ装置であって、
前記コントローラは、
前記移行において、前記第１の記憶領域から移行されるデータを格納するために使用できる前記第２の記憶デバイスの記憶容量が閾値以下であったとき、
前記仮想ボリュームの第２の論理領域に割り当てられた前記第２の記憶デバイスの第３の記憶領域に格納されたデータのアクセス頻度に基づき、当該データを前記第３の記憶領域から前記第１の記憶デバイスの有する第４の記憶領域に移行するか否かを判定し、
前記判定結果に応じて、当該データを前記第３の記憶領域から前記第４の記憶領域に移行し、
前記第４の記憶領域を前記第２の論理領域に割り当てる
ことを特徴とするストレージ装置。
【請求項７】
計算機に接続されるストレージ装置におけるデータ管理方法であって、
前記ストレージ装置は、
第１の記憶デバイスと、当該第１の記憶デバイスより性能の高い第２の記憶デバイスを含む複数の記憶デバイスと、
複数の論理領域を有する仮想ボリュームを前記計算機に提供し、前記仮想ボリュームの前記論理領域に対する書込み要求を受領した後に、当該論理領域に前記複数の記憶デバイスの有する複数の記憶領域の少なくとも１つを割り当てるコントローラとを有し、
前記コントローラが、前記複数の論理記憶領域の第１の論理領域に対する書込み要求を受領すると、前記第１の論理領域に割り当てられた前記第１の記憶デバイスの有する第１の記憶領域に格納されたデータのアクセス頻度に基づき、当該データを前記第１の記憶領域から前記第２の記憶デバイスの有する第２の記憶領域に移行するか否かを判定する第１のステップと、
前記コントローラが、前記判定結果に応じて、当該データを前記第１の記憶領域から前記第２の記憶領域に移行する第２のステップと、
前記コントローラが、前記第２の記憶領域を前記第１の論理領域に割り当てる第３のステップと
を備えることを特徴とするデータ管理方法。
【請求項８】
請求項７に記載のデータ管理方法であって、
前記第２の記憶デバイスは、ＳＳＤ（Solid State Disk）である
ことを特徴とするデータ管理方法。
【請求項９】
請求項７に記載のデータ管理方法であって、
前記コントローラが、前記判定において、前記第１の記憶領域に格納されるデータを前記第１の記憶領域から前記第２の記憶領域に移行しないと判定した場合に、当該データを前記第１の記憶領域に保持するとともに、前記第１の記憶領域の前記第１の論理領域への割当を維持する
ことを特徴とするデータ管理方法。
【請求項１０】
請求項７に記載のデータ管理方法であって、
前記第１の記憶デバイスの前記第１の記憶領域が前記第１の論理領域に割り当てられ、前記第１の論理領域のデータを格納する一方で、
前記第２の記憶デバイスの有する第３の記憶領域は、前記仮想ボリュームの第２の論理領域に割り当てられている
ことを特徴とするデータ管理方法。
【請求項１１】
請求項７に記載のデータ管理方法であって、
前記ストレージ装置は、さらに、データを一時的に格納するキャッシュメモリを有し、
前記コントローラは、
前記書込み要求に対応し前記複数の記憶デバイスに格納されるデータおよび、前記読出し要求に対応し前記複数の記憶デバイスから読み出されるデータを前記キャッシュメモリに格納する
ことを特徴とするデータ管理方法。
【請求項１２】
請求項７に記載のデータ管理方法であって、
前記コントローラは、
前記移行において、前記第１の記憶領域から移行されるデータを格納するために使用できる前記第２の記憶デバイスの記憶容量が閾値以下であったとき、
前記仮想ボリュームの第２の論理領域に割り当てられた前記第２の記憶デバイスの第３の記憶領域に格納されたデータのアクセス頻度に基づき、当該データを前記第３の記憶領域から前記第１の記憶デバイスの有する第４の記憶領域に移行するか否かを判定し、
前記判定結果に応じて、当該データを前記第３の記憶領域から前記第４の記憶領域に移行し、
前記第４の記憶領域を前記第２の論理領域に割り当てる
ことを特徴とするデータ管理方法。
【国際調査報告】
2015531089.tif 000056
2015531089.tif 000057