(57)【要約】突発的な短周期負荷の増減も考慮した上でデータの階層間配置を実現し、高階層でのデータヒット率を向上させるためのストレージシステムを開示する。本発明のストレージシステムは第１の期間中のホスト装置からのアクセス頻度である第１のアクセス頻度と、第１の期間より短い第２の期間中のホスト装置からのアクセス頻度である第２アクセス頻度とを管理する。階層間のデータ再配置は、第１のアクセス頻度に基づいて第１の期間周期で行うとともに、第１のアクセス頻度と第２のアクセス頻度に基づいた第２の再配置の要否判定を前記ホスト装置からのアクセスに同期して行う。ここで、第１の再配置の要否判定に用いる閾値と、第２の再配置の要否判定に用いる閾値とは異なるものとする。
2014174653.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶デバイスと、
前記第１の記憶デバイスより性能のよい第２記憶デバイスと、
複数の論理領域を有する仮想ボリュームをホスト装置に提供し、ライト要求を受領した後に前記第１の記憶デバイス又は前記第２の記憶デバイスの記憶領域を前記ライト要求を受領した前記論理領域に割り当てて前記ライト要求のデータを格納し、前記割り当てられた記憶領域に格納される前記データを前記第１の記憶デバイスと前記第２に記憶デバイス間で再配置して前記論理領域への割り当てを前記再配置先の記憶領域に変更するコントローラと、
を有し、
前記コントローラは、
第１の期間中の前記ホスト装置からのアクセス頻度である第１のアクセス頻度と、前記第１の期間より短い第２の期間中の前記ホスト装置からのアクセス頻度である第２アクセス頻度とを管理し、
前記第１のアクセス頻度に基づいて前記第１の期間周期で第１の前記再配置を行うとともに、前記第１のアクセス頻度と前記第２のアクセス頻度に基づいた第２の前記再配置の要否判定を前記ホスト装置からのアクセスに同期して行い、
前記第１の再配置の要否判定に用いる閾値と、前記第２の再配置の要否判定に用いる閾値とは異なるストレージシステム。
【請求項２】
前記第２の再配置の要否判定は、前記ホスト装置からのリード要求の処理に同期して行われることを特徴とする請求項１記載のストレージシステム。
【請求項３】
前記第２の再配置の要否判定は、前記ホスト装置からのライト要求を前記記憶デバイスに記録する処理に同期して行われることを特徴とする請求項１記載のストレージシステム。
【請求項４】
前記第２の再配置の要否判定に用いる閾値は、前記第１のアクセス頻度についての閾値と前記第２のアクセス頻度についての閾値とを有し、
前記第２のアクセス頻度についての閾値は、前記第１のアクセス頻度の閾値に比して、前記第２の記憶デバイスから前記第１の記憶デバイスに再配置されにくいように設定されることを特徴とする請求項１記載のストレージシステム。
【請求項５】
前記コントローラは、
前記第２のアクセス頻度についての閾値を、前記再配置対象の論理領域の有無に応じて変更することを特徴とする請求項４記載のストレージシステム。
【請求項６】
前記第１の記憶デバイスはフラッシュメモリであって、
前記第２の記憶デバイスから前記第１の記憶デバイスからの再配置回数が閾値を超えている場合には、前記第２の記憶デバイスから前記第１の記憶デバイスからの再配置は行わないことを特徴とする請求項１記載のストレージシステム。
【請求項７】
前記第２のアクセス頻度は、前記ホスト装置からのアクセス要求が所定回数分受信されるのに要した時間から求めることを特徴とする請求項１記載のストレージシステム。
【請求項８】
前記コントローラは、
前記第２の記憶デバイスから前記第１の記憶デバイスに前記第２の再配置がなされた前記論理領域に格納されるデータについては、所定期間、前記第１の記憶デバイスから前記第２の記憶デバイスへの前記第２の再配置を行わないことを特徴とする請求項１記載のストレージシステム。
【請求項９】
前記コントローラは、
前記第１記憶デバイスから前記第２の記憶デバイスへの前記第２の再配置対象の前記論理領域の数と、前記第２記憶デバイスから前記第１の記憶デバイスへの前記第２の再配置対象の前記論理領域の数の関係を考慮して、前記第２の再配置の実施要否を判断することを特徴とする請求項１記載のストレージシステム。
【請求項１０】
前記コントローラは、
前記ホスト装置からの一定量のアクセス要求の時間間隔を２乗した合計値を管理し、前記第２アクセス頻度として、前記合計値を元にした予測値を用いることを特徴とする請求項１記載のストレージシステム。
【請求項１１】
前記コントローラは、
前記第２の再配置対象となった複数の前記論理領域の前記第２再配置の実行順序を、当該論理領域の負荷量に基づいて決定することを特徴とする請求項１記載のストレージシステム。
【請求項１２】
ストレージシステムにおいて実行されるデータ処理方法であって、
前記ストレージシステムは、
第１の記憶デバイスと、
前記第１の記憶デバイスより性能のよい第２記憶デバイスと、
コントローラを有し、
複数の論理領域を有する仮想ボリュームをホスト装置に提供し、
ライト要求を受領した後に、前記第１の記憶デバイス又は前記第２の記憶デバイスの記憶領域を前記ライト要求を受領した前記論理領域に割り当てて、前記ライト要求のデータを格納し、
前記割り当てられた記憶領域に格納される前記データを前記第１の記憶デバイスと前記第２に記憶デバイス間で再配置して前記論理領域への割り当てを前記再配置先の記憶領域に変更するステップを有し、
第１の期間中の前記ホスト装置からのアクセス頻度である第１のアクセス頻度と、前記第１の期間より短い第２の期間中の前記ホスト装置からのアクセス頻度である第２アクセス頻度とを管理し、
前記第１のアクセス頻度に基づいて前記第１の期間周期で第１の前記再配置を行うとともに、前記第１のアクセス頻度と前記第２のアクセス頻度に基づいた第２の前記再配置の要否判定を前記ホスト装置からのアクセスに同期して行い、
前記第１の再配置の要否判定に用いる閾値と、前記第２の再配置の要否判定に用いる閾値とは異なることを特徴とするデータ処理方法。
【請求項１３】
前記第２の再配置の要否判定は、前記ホスト装置からのリード要求の処理に同期して行われることを特徴とする請求項１２記載のデータの処理方法。
【請求項１４】
前記第２の再配置の要否判定は、前記ホスト装置からのライト要求を前記記憶デバイスに記録する処理に同期して行われることを特徴とする請求項１２記載のデータの処理方法。
【請求項１５】
前記第２の再配置の要否判定に用いる閾値は、前記第１のアクセス頻度についての閾値と前記第２のアクセス頻度についての閾値とを有し、
前記第２のアクセス頻度についての閾値は、前記第１のアクセス頻度の閾値に比して、前記第２の記憶デバイスから前記第１の記憶デバイスに再配置されにくいように設定されることを特徴とする請求項１２記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の階層を持つストレージシステムの自動階層制御に関する。
【背景技術】
【０００２】
データ量の増大化、データ種類の多様化と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）より高速なＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）の普及によるストレージ内の記憶媒体の多様化により、適切な記憶媒体階層へのデータ配置が困難となってきている。この課題に応える一手段として，データのアクセス頻度に応じてデータを適切な記憶媒体に自動的に格納する，ストレージ自動階層配置機能の普及が進んでいる。【０００３】
一般的に自動階層管理機能は、一定の周期内（負荷モニタリングの計測期間）で、ページのＩ／Ｏ頻度が高い場合に、ページを上位階層へ移動（プロモーションと呼ぶ）し、ページのＩ／Ｏ頻度が低い場合に、ページを下位階層に移動（デモーションと呼ぶ）する。また、前記の周期の間隔で更新される、指数移動平均値を２種類（少ない周期数で増加／減衰する値と、多い周期数で増加／減衰する値）採取し、その２種類の値を組み合わせて、１個の指標値、つまり前記のＩ／Ｏ頻度（負荷指標）とすることで短い周期のＩ／Ｏ変動も考慮する技術もある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国２０１２／０２４６３８６Ａ１
【特許文献２】米国２００４／０２５７８５７Ａ１
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし上記特許文献１記載の技術では、所定周期ごとにモニタを採取して再配置を実行しているため、周期よりも短い、突発的な短周期の負荷に追従することが困難である。しかし、単純に数秒から数分オーダーの短い周期とすると、短期間で負荷が減衰するページが大量に再配置されるととなり、長周期の安定的なＴｉｅｒ１ヒット率を損ねることとなる。さらに、モニタの周期毎の集計にかかるコントローラの計算量増大化や、ページ移動量増加によるキャッシュやドライブへの負荷影響（性能低下・ＳＳＤ寿命低下）が大きくなる。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明は、基本配置を長周期負荷で決定し、長周期とは異なる閾値で、短周期負荷のページの移動判定を実施するストレージシステムを提供する。具体的には、本願の開示するストレージシステムは、第１の記憶デバイスと、第１の記憶デバイスより性能のよい第２記憶デバイスとを有する。コントローラは、複数の論理領域を有する仮想ボリュームをホスト装置に提供し、ライト要求を受信した後に第１又は第２の記憶デバイスの記憶領域を、ライト要求を受信した論理領域に割り当て、又、割り当てられた記憶領域に格納されるデータを第１の記憶デバイスと第２の記憶デバイス間で再配置して前記論理領域への割り当てを再配置先の記憶領域に変更する。特に、コントローラは、第１の期間中のホスト装置からのアクセス頻度である第１のアクセス頻度と、第１の期間より短い第２の期間中のホスト装置からのアクセス頻度である第２アクセス頻度とを管理し、第１のアクセス頻度に基づいて第１の期間周期で第１の再配置を行うとともに、第１のアクセス頻度と第２のアクセス頻度に基づいた第２の再配置の要否判定を前記ホスト装置からのアクセスに同期して行うことを特徴とする。ここで、第１の再配置の要否判定に用いる閾値と、第２の再配置の要否判定に用いる閾値とは異なる。
【発明の効果】
【０００７】
本願によれば、突発的な短周期負荷の増減も考慮した上でデータの階層間配置を実現することができ、高階層でのデータヒット率を向上することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第一実施形態に係る計算機システムの構成例を示す図である。
【図２】本発明の第一実施形態に係るストレージシステムの論理構成を示す図である。
【図３】本発明のページ配置の考え方を示す図である。
【図４】ＳＳＤの寿命維持の考え方を示す図である。
【図５】共有メモリ１１１に配置するテーブルの種類を示す図である。
【図６】ローカルメモリ１１８に配置するプログラムの種類を示す図である。
【図７】ダイナミックマッピングテーブル５０１の構造を示す図である。
【図８】論理物理アドレス変換テーブル５０３の構造を示す図である。
【図９】ページ毎モニタテーブルの構造を示す図である。
【図１０】プール度数分布テーブルと、仮想ボリューム度数分布テーブルの構造を示す図である。
【図１１】ページ再配置キューの構造を示す図である。
【図１２】ホストが仮想ボリュームに対するデータの読み書きを行う際に、ストレージシステム内のホストＩ／Ｏ処理プログラムの処理を示したフローチャートである。
【図１３】デステージ処理プログラムのフローチャートである。
【図１４】度数分布作成処理プログラムのフローチャートである。
【図１５】非同期再配置判定処理プログラムのフローチャートである。
【図１６】ページ再配置処理プログラムの動作を表したフローチャートである。
【図１７】モニタ更新＆Ｔｉｅｒ判定処理の動作を表したフローチャートである。
【図１８】プール単位のパラメータの設定を行う画面の例を示す図である。
【図１９】Ｔｉｅｒ判定処理の動作を表したフローチャートである。
【図２０】デモーション判定処理の動作を表したフローチャートである。
【図２１】プロモーション判定処理の動作を表したフローチャートである。
【図２２】デモーション量管理テーブルと拡張ページ毎モニタテーブル（１）のテーブル構造を示した図である。
【図２３】デモーション判定処理（２）の動作を表したフローチャートである。
【図２４】プロモーション判定処理（２）の動作を表したフローチャートである。
【図２５】処理の効率化の考え方を示した図である。
【図２６】キューのリオーダリングの動作を示した図である。
【図２７】パラメータ推定方法と効率化のためのテーブル構造を示した図である。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて、本発明の実施の形態を説明する。添付図面では、機能的に同じ要素を同じ番号で表示する場合がある。添付図面は、本発明の原理に則った具体的な実施形態と実施例とを示している。それらの実施形態及び実施例は、本発明の理解のためのものであり、本発明を限定的に解釈するために用いてはならない。
【００１０】
さらに、本発明の実施形態は、後述するように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし、専用ハードウェアで実装してもよいし、またはソフトウェアとハードウェアの組み合わせで実装しても良い。
【００１１】
以後の説明では、管理用の情報をテーブル形式で説明するが、管理用の情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、ＤＢ、キュー等のデータ構造やディレクトリ構造等その他の方法で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「ＤＢ」、「キュー」等について単に「情報」と呼ぶことがある。
【００１２】
以下では「プログラム」を主語（動作主体）として本発明の実施形態における各処理について説明を行う場合がある。プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行うため、プロセッサを主語とした説明としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【００１３】
図１は、本発明の第一実施形態に係る計算機システムの構成例を示す図である。ホスト１０１は、例えば一般的なサーバにより構成され、ネットワーク１０３を介してストレージシステム１０４のポート１０６に接続する。ホスト１０１は、ストレージシステム１０４に対してデータのリードやライト命令を発行し、ストレージシステム１０４がその命令に応じてデータの読み込みや書き込みを実行する。ネットワーク１０３は、例えばＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）や、イーサネット（登録商標）などにより構成する。また、管理サーバ１０２は、ネットワーク１０３を介して、ストレージシステム１０４の保守Ｉ／Ｆ１０７またはポート１０８に接続する。ストレージ管理者が、管理サーバ１０２を用いて、ストレージシステム１０４に対して、ストレージシステムを運用する上で必要な各種設定や管理のための命令を送信する。外部ストレージ１０５が接続されている場合には、ストレージシステム１０４のポート１０８に接続される。この外部ストレージ１０５接続の際に、ネットワーク１０３を経由してストレージシステム１０４のポート１０８に接続してもよい。外部ストレージ１０５の提供するボリュームはストレージシステム１０４にてストレージシステム１０４内部のボリュームと同様に扱うことができる。この具体的な方法については、特許文献２に記載されているため、詳細は割愛する。
【００１４】
次にストレージシステム１０４の内部構成について説明する。ストレージシステム１０４の内部では、内部ネットワーク１１２を介してポート１０６、保守Ｉ／Ｆ１０７、プロセッサパッケージ１０９、キャッシュメモリ１１０、共有メモリ１１１、ポート１０８、ドライブ１１３、ドライブ１１４を接続する。キャッシュメモリ１１０は、ストレージシステム１０４のＩ／Ｏ処理のスループットやレスポンスを向上させるために、データを一時的なキャッシュとして格納するための高速アクセスが可能なメモリである。プロセッサパッケージ１０９は、ローカルメモリ１１８とプロセッサ１１９により構成し、複数あってもよい。プロセッサ１１９はホスト１０１からのリードやライト命令を処理するために、ドライブ１１５、１１６、外部ストレージ１０５とキャッシュメモリ１１０間のデータの転送処理などを実行する。共有メモリ１１１は、プロセッサ１１９がリードやライト命令を処理し、またストレージの機能（ボリュームのコピー機能など）を実行する上で、必要な制御用の情報を格納するメモリであり、複数のプロセッサパッケージ１０９Ａ，Ｂ間のプロセッサ１１９で共有している情報を格納するメモリである。ローカルメモリ１１８は、プロセッサ１１９がリードやライト命令を処理し、またストレージの機能を実行する上で、必要な制御用の情報を格納するメモリであり、プロセッサ１１９が占有して使用できる領域である。ローカルメモリ１１８には、例えばプロセッサ１１９により実行するプログラムなどを格納する。
【００１５】
ドライブ１１３、１１４は性能の異なる複数種類のドライブを含む。例えばＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ），ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ），ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）などのインターフェイスを持つハードディスクドライブ。ハードディスクドライブと比較し、Ｉ／Ｏスループット性能、Ｉ／Ｏレスポンス性能が高いＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などにより構成される。これらの複数の種類のドライブを、近い性能を持つドライブに分類したものが階層（Ｔｉｅｒ）１１５、１１６、１１７である。階層間の関係は性能の上下関係により定義される。通常は性能の高いドライブ（ＳＳＤなど）順に、Ｔｉｅｒ１からＴｉｅｒ２、３と構成する。又、外部ストレージ中のドライブは使わなくなった旧機種などを接続するケースを想定し、性能が低いことを前提として最下位Ｔｉｅｒとして管理してもよいし、ユーザが管理Ｉ／Ｆを通して外部ストレージの性能に応じて階層を設定してもよい。
【００１６】
図２は、本発明の第一実施形態に係るストレージシステムの論理構成を示す図である。プロセッサ１１９がホストに提供する仮想ボリューム２０１は、ホスト１０１から認識される論理的な記憶領域であり、ホスト１０１からのリード又はライト命令が発行対象である。プール２０６は、１個以上のプールボリューム２０３により構成される。プールボリューム２０４はそれぞれドライブ１１３，１１４，外部ストレージ１０５のドライブの何れかの記憶領域から構成され、ドライブの所属する階層に応じて分類されている。本実施例では、ＳＳＤの階層１１５（プールボリューム２０３Ａに対応）と、ＳＡＳの階層１１６（プールボリューム２０３Ｂ，２０３Ｃに対応）と、外部接続の階層１１７（プールボリューム２０３Ｄ，２０３Ｅに対応）の３個の階層を持つ。
【００１７】
プロセッサ１１９は、ホスト１０１がＷｒｉｔｅ命令を発行した仮想ボリューム２０１中のＷｒｉｔｅ命令の対象となった記憶領域に、未使用の記憶領域をプール２０６から所定単位（ページ）で割り当てる（２０５Ａ）。次回のホスト１０１からの同じページへのＲｅａｄ／Ｗｒｉｔｅ命令に対しては、既に割り当てられているプールボリューム２０３の領域に対してＩ／Ｏ処理を実行することにより、あたかもホスト１０１が仮想ボリュームに対してＩ／Ｏ処理を実行しているように処理される。仮想ボリューム２０１を用いて、使用する部分のみプールボリューム２０３の領域を割り当てることにより、限られた記憶容量を効率的に使用できることが可能となる。
【００１８】
各仮想ボリュームを構成するページ２０２毎にホストからのＩ／Ｏ処理の特性が存在する（これをアクセスローカリティと呼ぶ）。例えば、Ｉ／Ｏの頻度が高いページと低いページが混在する場合、一般的にはＩ／Ｏの頻度が高いページを上位の階層に配置したほうが、システム全体の性能を向上することができる。例えば、ＳＳＤの階層（１１５）は１００ＩＯＰ、ＳＡＳの階層（１１６）は１０ＩＯＰＳ処理できるとする。ここで５０ＩＯＰＳの特性を持つページ２０２ＣにＳＡＳ階層が割り当たり、２０ＩＯＰＳの特性を持つページ２０２ＡにＳＳＤ階層が割りあたっている場合、ストレージシステム１０４は、基本的にホストからのページに対するＩＯＰＳの比率は一定であることが多いため、全体として１０（ＳＡＳ階層の上限）＋２５＝３５ＩＯＰＳの性能しか発揮できない。この状態をネック状態と呼ぶ。ページ２０２ＣをＳＡＳから、ＳＳＤの階層へプロモーションすることができれば、ストレージシステム１０４は、全体として５０＋２０＝７０ＩＯＰＳの性能を発揮できる。
【００１９】
上述のプロモーションは、具体的には、ページ２０４Ｃのデータを未使用のページ２０４Ｂにコピーし、仮想ボリューム２０１Ａのページ２０２Ｃとプールボリューム２０３Ｂのページ２０４Ｃとの対応づけ（２０５Ｃ）を、仮想ボリューム２０１Ａのページ２０２Ｃとプールボリューム２０３Ａのページ２０４Ｂとの対応づけ（２０５Ｂ）に変更することにより実行する（図１６のＳ１６０４）。デモーションによるデータ再配置も同様の構成により実施可能である。
【００２０】
度数分布２０７は、各ページのＩ／Ｏ数の分布を表す。グラフ２０９は、左からＩ／Ｏ数の多い順番に全ページを並べたときの、各ページのＩ／Ｏ数を縦軸に表す。Ｔｉｅｒ割り当て閾値２０８（＝Ｔ）は、どのＩ／Ｏ数のページをどの階層に割り当てるかを決める閾値である。Ｉ／Ｏ数の高いページには、例えば、Ｔｉｅｒ割り当て閾値２０８Ａと度数分布のグラフ２０９の交点から、最も性能の高いページの、範囲２１０Ａに属するページは、Ｔｉｅｒ１（本実施例ではＳＳＤ）の階層１１５に割り当てる。また、Ｔｉｅｒ割り当て閾値２０８Ａと度数分布のグラフ２０９の交点から、Ｔｉｅｒ割り当て閾値２０８Ｂと度数分布のグラフ２０９の交点までの、範囲２１０Ｂに属するページは、Ｔｉｅｒ２（本実施例ではＳＡＳ）の階層１１６に割り当てる。また、Ｔｉｅｒ割り当て閾値２０８Ｂと度数分布のグラフ２０９の交点から、最小のＩ／Ｏ数のページまでを、Ｔｉｅｒ３（本実施例では外部ストレージ）の階層１１７に割り当てる。以上のようにして、Ｉ／Ｏ数の高い順番で上位階層から順番に割り当てることができる。
【００２１】
Ｔｉｅｒ割り当て閾値２０８はストレージ管理者が値を指定してもよいし、ストレージシステム１０４が算出してもよい。又、Ｔｉｅｒ割り当て閾値２０８の初期値（ストレージシステムを起動した後、度数分布を未作成の段階時）は、例えば０として、上位階層からつめて割り当てることにすることができる。
【００２２】
図３にて、本発明のページ配置の考え方を説明する。まず、本発明において、基本的なページ配置は、定められた周期（長周期）のモニタを元に決定する。具体的には図２で示したように、長周期のモニタを元に作成されたプールの度数分布２０７から、Ｔｉｅｒ割り当て閾値２０８（変数Ｔで表わす）を決定し、ページを振り分ける。図３の例では、Ｔ＝２以上の長周期の負荷（長周期ＩＯＰＳ）のページをＴｉｅｒ１に配置し、Ｔ＝２を下回る長周期ＩＯＰＳのページをＴｉｅｒ２に配置する。以上のように、長周期に渡ってＩＯ負荷量が大きいページは、長い周期で考えて安定したＴｉｅｒ１ヒット性能が期待できることが多い。このため本発明においては、定常的なページ配置階層は、長周期ＩＯＰＳを基に決定している。一方で、一般的なＩ／Ｏパターンを分析すると、短い間隔（秒〜数分）で非常に高い負荷の続くページがある場合がある。こうしたＩ／Ｏ変化に単純に再配置周期を短くして対応すると、短期間で負荷が減衰したページが大量に下位階層に再配置されるため、全体としての高階層データヒット率を損ねることとなる。
【００２３】
そこで、長周期を基準に基本配置を決めた上で、短周期の負荷（短周期ＩＯＰＳ）を考慮して先の基本配置用とは異なる基準にて行う階層間データ再配置とを組み合わせて実行する。つまり、長周期負荷を基準に決定した閾値（Ｔｉｅｒ割り当て閾値２０８）を元に、長周期／短周期負荷を判定して短周期でのデモーション対象のページを選択し、デモーション対象ページの長周期／短周期負荷よりも一定以上高い短周期ＩＯＰＳのページを短周期でのプロモーション対象として選択し再配置する。さらに、前記の短周期のプロモーション／デモーションは、突発的な負荷であり、減衰が周期よりも早い可能性が高いことを考慮して予め定めた周期の長さに依存させるのではなく、Ｉ／Ｏに連動してＴｉｅｒの移動要否判定を実行することとする。本構成により、長周期の安定的なＴｉｅｒ１ヒット率を考慮しつつ、突発的にＩ／Ｏの高いページもＴｉｅｒ１に配置することで、全体のＴｉｅｒ１ヒット率を向上させることが出来る。例えば、３０２で示したページは、長周期ＩＯＰＳが３とＴｉｅｒ１中ページで、最も長周期の負荷が低く、短周期Ｉ／Ｏも３ＩＯＰＳである。また、３０１で示したページは短周期ＩＯＰＳが５ＩＯＰＳであり、前記デモーション対象の長周期ＩＯＰＳの３ＩＯＰＳよりも高いＩＯＰＳであるため、一時的にこれらのページを入れ替えることにより、長周期のみで配置した場合より高いＴｉｅｒ１ヒット率を実現できる。
【００２４】
また、前記の短周期のプロモーション／デモーションは、基本的に、Ｔｉｅｒ１（最上位階層）へのプロモーションと、そのプロモーションを実行するために空きページ領域を確保するためのＴｉｅｒ１からのデモーションを優先して実行すべきである。高負荷時等の特殊な場合を除いて、Ｔｉｅｒ１のドライブレスポンスは最も小さい。よって最上位階層であるＴｉｅｒ１を単周期プロモーション実行の再配置先とすることが全体の平均レスポンス短縮に最も効果があるためである。
【００２５】
上記踏まえて、本実施例ではＴｉｅｒ１を短周期再配置の対象とするが、Ｔｉｅｒ数が３以上の場合、Ｔｉｅｒ１より低い階層も含めて短周期再配置の対象としても良い。同様に、各Ｔｉｅｒの平均ドライブレスポンスが小さい順に、動的に短周期再配置対象とする優先順位を決めてもよい。例えば各Ｔｉｅｒのドライブ稼働率によって、レスポンスは異なる。したがって、Ｔｉｅｒ１の稼働率がきわめて高い場合に、Ｔｉｅｒ２〜のレスポンス時間を上回ってしまう場合がある。例えば、Ｔｉｅｒ１の平均ドライブレスポンスが１０ｍｓで、Ｔｉｅｒ２の平均ドライブレスポンスが５ｍｓの場合は、本願で開示する短周期でのプロモーション、デモーションをＴｉｅｒ２へのプロモーションとその空きページ領域確保のためのデモーションについて実行するようにしてもよい。
【００２６】
図５に共有メモリ１１１に配置するテーブル、図６にローカルメモリ１１８に格納されるプログラムを示す。これらのテーブル、プログラムの配置場所は例似する場所に限らず、各ローカルメモリ１１８の他、共有メモリ１１１ドライブ１１３等であってもよいし、これらの間で階層管理された空間でもよい。
【００２７】
ダイナミックマッピングテーブル５０１は、仮想ボリューム２０１の各ページと、割り当てられるプールボリューム２０３の領域と、当該ページのモニタ情報との対応関係とを管理するテーブルである。論理物理アドレス変換テーブル５０３は、パリティグループ（ＰＧ）と、プールボリュームと、プールボリュームのデータを格納する物理ディスクのアドレスとの対応関係を管理するテーブルである。ページ毎モニタテーブル５０２は、Ｉ／Ｏ数を含む、各ページのモニタ情報を管理するテーブルである。仮想ボリューム度数分布テーブル５０４は、仮想ボリュームに関する、Ｉ／Ｏ数範囲毎のページ数の分布を管理するテーブルである。プール度数分布テーブル５０５は、プールに関する、Ｉ／Ｏ数範囲毎のページ数の分布を管理するテーブルである。ページ再配置実行キュー５０６は、ページ再配置を実行する際の待ちキューである。設定情報テーブル５０７は、管理Ｉ／Ｆ等から設定される各種パラメータを管理するテーブルである。キャッシュ管理テーブル５０８は、キャッシュメモリ１１０にデータを格納する際にキャッシュメモリにあるデータのダーティ／クリーン状態管理を保持するテーブルである。仮想ボリュームへの書き込みデータをキャッシュする場合には、キャッシュメモリ１１０のアドレスと対応する仮想ボリューム２０１のページを特定するアドレスとも対応づけて管理される。
【００２８】
図６で説明するプログラムはプロセッサ１１９にて実行される。ホストＩ／Ｏ処理プログラム６０１は、ホスト１０１からのＩ／Ｏ受領時に、仮想ボリューム２０１に対するＲｅａｄ／Ｗｒｉｔｅ要求を処理するプログラムである。デステージ処理プログラム６０４は、キャッシュメモリ上の物理ディスク未反映データを、物理ディスクに格納するプログラムであり、ホストＩ／Ｏとは非同期に実行される。度数分布作成処理プログラム６０２は、Ｔｉｅｒ割り当て閾値を計算するプログラムであって所定周期（具体的には前記長周期の間隔）で実行される。モニタ更新＆Ｔｉｅｒ判定処理６０３はページ毎モニタテーブル５０２の各種情報の更新と、ページのＴｉｅｒ移動の判定をホストＩ／Ｏ処理６０１に同期して実施する。本プログラムは、Ｔｉｅｒ１へのプロモーション又はＴｉｅｒ１へのデモーションを実行する。非同期再配置判定処理プログラム６０６は、図１４の度数分布作成が完了すると起動され、所定周期にてページ毎モニタテーブル５０２を参照し、ページ毎に適切なＴｉｅｒの判定を実行するプログラムである。本プログラムは、Ｔｉｅｒ１へのプロモーション以外の動作を実行する。ページ再配置処理プログラム６０５は、ページを再配置するプログラムであり周期的に実行される。
【００２９】
ページ毎モニタテーブル５０２や、プール度数分布テーブル５０５はホスト１０１や管理サーバ１０２上に配置されても良く、この場合は、度数分布作成処理プログラム６０２はホスト１０１や管理サーバ１０２上で動作する。
【００３０】
図７にて、ダイナミックマッピングテーブル５０１の構造を例示する。ダイナミックマッピングテーブルの１つのエントリは、仮想ボリューム中のページと当該ページに割り当てられるプールの領域を関連づける。仮想ボリューム中のページは仮想ボリューム番号７０２と、該仮想ボリューム内の該ページの開始論理アドレス７０３とで識別する。また、プールボリュームの各領域は、プール番号７０１とプールボリューム番号７０４と、プールボリューム内の該領域の開始論理アドレス７０５とで識別する。一方、モニタ情報は、モニタ情報インデックス番号７０６で識別する。該モニタ情報インデックス番号は、ページ毎モニタテーブル５０２の、モニタ情報インデックス番号９０１に対応するが、直接ダイナミックマッピングテーブル５０１の要素として格納してもよい。  又、ダイナミックマッピングテーブル５０１は、所定の初期値データ（例えば０データ）が格納されるデフォルト値ページを管理する。容量効率考慮して、デフォルト値ページはプールに少なくとも1つ以上あればよい。データの書き込みが一度もされていない仮想ボリュームの領域を特定する、仮想ボリューム７０２の論理アドレス７０３に対応するプールボリューム番号と論理アドレスには、デフォルト値ページのアドレスが格納する。
【００３１】
またダイナミックマッピングテーブル５０１は、プール２０６内で仮想ボリュームに未割当のページを特定するプールボリューム番号と論理アドレスを管理する。サーバから仮想ボリューム７０２の論理アドレス７０３にデータの書き込みが一度も無かった箇所に初めてデータの書き込みがあった場合は、前記空きページのプールボリューム番号と論理アドレスを書き込み先の論理アドレス７０３に対応づける。
【００３２】
図８にて、論理物理アドレス変換テーブル５０３の構造を示す。論理物理アドレス変換テーブルの１つのエントリは、プールボリューム２０４と、該プールボリュームのデータを格納するＰＧ（パリティグループ）番号と物理ドライブ（１１３または１１４）の領域との対応関係を示す。プールボリュームは、プールボリューム番号８０１で識別する。プールボリュームは、ＰＧ上に複数定義される。プールボリュームに対応するＰＧはＰＧ番号８０２で識別する。また、ＰＧに対応する物理ドライブの領域は、物理ドライブの番号８０３と、該物理ドライブの開始アドレス８０４とで識別する。
【００３３】
このプールボリュームは、プールへの増設・減設の単位を表している。ただし、この増設単位は、ＰＧ上に定義された論理ＶＯＬではなく、ＰＧそのものでもよい。その場合は、ダイナミックマッピングテーブルに格納するプールボリューム番号７０４と論理アドレス７０５を、ＰＧ上のアドレスとしてもよい。
【００３４】
図９にて、ページ毎モニタテーブル５０２の構造を示す。ページ毎モニタテーブルの１つのエントリは、モニタ情報インデックス番号９０１で識別される特定のページ２０２のモニタ情報を示す。Ｉ／Ｏカウンタ９０２は、一定の周期のＩ／Ｏ数を格納する。この周期は、前述した度数分布作成処理プログラム６０２の動作する周期と同じであり、度数分布作成処理プログラム６０２はこの一定の周期のＩ／Ｏ数を処理の対象とする。
【００３５】
本実施例では複数の長周期Ｉ／Ｏカウンタ（Ａ面）９０２Ａと長周期Ｉ／Ｏカウンタ（Ｂ面）９０２Ｂとを設ける。うち、一方をホストＩ／Ｏ処理プログラム６０１とデステージ処理プログラム６０４によるモニタ採取用のカウンタとし、他方を度数分布作成処理６０２とモニタ更新＆Ｔｉｅｒ判定処理６０３と非同期再配置判定処理プログラム６０６用のカウンタとして切り替えて利用することで、モニタを採取しながら、前周期の確定したモニタデータを用いてＴｉｅｒを判定してページを再配置する処理を、並行に実行できる。
【００３６】
テンポラリカウンタ９０３は、短周期Ｉ／Ｏを測定するために用いられる。前回テンポラリカウンタ満了時刻９０４に示す時間から、現在までの間に、何回Ｉ／Ｏがカウントされたかを示す。テンポラリカウンタ９０３の値がＮ回（＝テンポラリカウンタ満了値）にカウントアップされるときに、前回テンポラリカウンタ満了時刻９０４は現在時刻に更新され、再度テンポラリカウンタを０にする。テンポラリカウンタ９０３が０となる契機で、（前回テンポラリカウンタ満了時刻９０４−現在時刻）÷Ｎにより、長周期とは別の周期のＩＯＰＳが計測される。以上のように負荷をカウントすることにより、Ｔｉｅｒ閾値設定のために設定された所定周期に依存せずに、Ｎ回到着する期間が短ければ短いほど（ＩＯＰＳが高ければ高いほど）短周期の負荷を計測することが出来る。
【００３７】
テンポラリカウンタ９０３を、差分のＮ回を表現する情報量分のカウンタのみをアクセスレイテンシの短く容量の小さいローカルメモリに配置し、前回テンポラリカウンタ満了時刻のみを大容量の共有メモリに配置することもできる。これにより、一般的にアクセスレイテンシの長い共有メモリへのアクセスを１／Ｎ回に１回とすることが出来、テンポラリカウンタ満了時刻のためにローカルメモリを大量に使わなくとも、Ｉ／Ｏ処理に対するプロセッサ処理増加影響を小さくすることが出来る。
【００３８】
また、ページ毎モニタテーブル５０２に、リードライト比率（又はリード量／ライト量）やシーケンシャル比率（又は平均Ｉ／Ｏ長、又は一般的なシーケンシャル性の判定方法（Ｉ／Ｏの連続性などを判定する））を持って、Ｔｉｅｒ判定時にこれらの情報を用いてもよい。例えば、ライト率の高いページはキャッシュメモリにキャッシュヒットするため、リード率の高いページを優先してＴｉｅｒ１に配置した方が望ましい。また、Ｔｉｅｒ１がＳＳＤであった場合、ＳＳＤ寿命維持を目的として、リード率の高いページを優先してＴｉｅｒ１に配置することなどが考えられる。
【００３９】
また、ページ毎モニタテーブル５０２に、移動平均用カウンタを保持し、複数周期の移動平均（指数移動平均、単純移動平均等）で算出した値を長周期のカウンタとすることにより、従来技術１に示した技術と本発明の内容を組み合わせて、例えば週末等の周期的な負荷低下による不要デモーションを効率的に回避してもよい。
【００４０】
図１０にて、プール度数分布テーブル５０５と、仮想ボリューム度数分布テーブル５０４の構造を示す。プール度数分布テーブル５０５は、プール２０６に関する、Ｉ／Ｏ数範囲毎のページ数の分布を管理している。プール度数分布テーブルの１つのエントリは、あるプールに関するＩ／Ｏ数の範囲と、該Ｉ／Ｏ数の範囲に含まれるページ数を示す。負荷レベル１００２は、負荷の度合いをレベル分けしたものであり、負荷レベル１００２のカッコ内の値は、それぞれのレベルで定義したＩＯＰＳ開始値を示している。該負荷レベル範囲の終了値は、（次のエントリのＩＯＰＳ数範囲の開始値−１）となる（ＩＯＰＳが正の整数の場合）。ページ数１００３は、該負荷レベル１００２の範囲に含まれるページ数に対応する。また、本テーブルでは、Ｔｉｅｒ割り当て閾値２０８も管理する。Ｔｉｅｒ割り当て閾値は０ＩＯＰＳ以上の値であればよく、必ずしも各範囲の境界値である必要はない。また、Ｔｉｅｒ割り当て閾値は負荷レベルを値としてもよい。
【００４１】
仮想ボリューム度数分布テーブル５０４は、仮想ボリューム２０１に関する、Ｉ／Ｏ数範囲１００５毎のページ数１００６の分布を管理している。テーブル構造は、プール度数分布テーブル５０５と同じである。
【００４２】
図１１にて、ページ再配置キュー５０６の構造を示す。ページ再配置キュー５０６は、プロモーション用キュー１１０１と、デモーション用キュー１１０２に分類される。これらのキューは、ストレージシステム単位に持ってもよいし、プール単位又はＰＧ単位、プールボリューム単位に持ってもよい。
【００４３】
モニタ更新＆Ｔｉｅｒ判定処理６０３又は、非同期再配置判定処理プログラム６０６は、各種閾値を用いたＴｉｅｒ判定の結果、ページ移動を必要と判断した場合は、移動パターン（プロモーション又はデモーション）に応じて、各キューにエントリ１１０３をエンキューする。エントリには、移動先ページへの参照（プールボリューム番号７０４、論理アドレス７０５に相当）と移動元ページへの参照（プールボリューム番号７０４、論理アドレス７０５に相当）が含まれる。参照とは、ページ毎モニタテーブル、ダイナミックマッピングテーブルの情報への参照を表す。
【００４４】
本キューにエンキューされたエントリを元に、ページ再配置処理プログラムはページの再配置（仮想ボリュームのページ（仮想ページ）に対応するプールボリュームのページ（物理ページ）の、移動元物理ページから移動先物理ページへのデータコピーと参照の張り替え処理）を実行する。通常の環境では、ホストＩ／Ｏによるドライブ側の負荷量によって、再配置の最大性能は変化するが、本キューを用いることにより、再配置の最大性能が変化する場合でも、安定した再配置の実行を実現できる。
【００４５】
図１２は、仮想ボリューム２０１に対するデータの読み書きの処理を示したフローチャートである。ホスト１０１からＩ／Ｏ処理要求を受けると、ホストＩ／Ｏ処理プログラム６０１が実行され本フローが実行される。
【００４６】
仮想ボリューム２０１へのデータのリード要求かデータのライト要求かを判定する（Ｓ１２０１）。Ｉ／Ｏ処理要求がライトの場合、ダイナミックマッピングテーブル５０１を参照して当該仮想ページがプールページを割り当て済みかどうか判断する。未割り当ての場合、未使用のページをプールから割り当てる（Ｓ１２０９）。
【００４７】
キャッシュメモリ１１０にＩ／Ｏ処理要求に対応する仮想ボリューム上のアドレスに対応した領域が確保されているか否かを確認し、確保されている場合もしくは確保されていなければキャッシュメモリ１１０の領域を確保する（Ｓ１２１０）。次に、ホストにライトデータの転送可能であることを応答し、ホストから転送されてくるライトデータを前記確保されているキャッシュメモリ領域に書き込み、キャッシュ管理テーブル５０８にまだディスクに書き込んでいない領域であるとしてダーティフラグを立てる（Ｓ１２１１）。ダーティフラグは、キャッシュメモリ上のデータがディスクに反映されていない状態を示す情報で、キャッシュメモリの領域を管理するキャッシュ管理テーブル５０８に保持される。ホストにライトＩ／Ｏ処理が完了したことを応答（Ｓ１２１２）してＩ／Ｏ処理プログラムは終了する。
【００４８】
一方Ｓ１２０１で、Ｉ／Ｏ処理要求がリードであった場合、Ｉ／Ｏ処理要求に対応する仮想ボリューム上のアドレスに対応したデータがキャッシュメモリ上に存在（キャッシュヒット）するか否かを確認する（Ｓ１２０２）。前記キャッシュヒットの場合、キャッシュメモリ上のデータをホストに転送する（Ｓ１２０８）。ホストが要求したデータを全てホストに転送した後リード処理完了応答をホストに転送して、Ｉ／Ｏ処理プログラムは終了する。
【００４９】
Ｓ１２０２でキャッシュミスした場合、リード要求先仮想ボリュームのアドレスに対応下データを格納するための領域をキャッシュメモリに確保する（Ｓ１２０３）。次に、ホストのリード要求先仮想ボリュームアドレスに、プールからページ２０２を割当てられているか否かを、ダイナミックマッピングテーブル５０１を用いて確認する。割り当てられていなかった場合は、ダイナミックマッピングテーブル３０１を用いてデフォルト値の格納ページのドライブのアドレスを算出し（Ｓ１２０４）、ドライブからデフォルト値を前記確保したキャッシュメモリの領域に転送する（Ｓ１２０５）。
【００５０】
リード要求先仮想ボリュームアドレスに、ページ２０２が割り当てられていた場合は、ダイナミックマッピングテーブル５０１を用いて割り当てられたプールボリューム番号と論理アドレスを求め、更に論理物理アドレス変換テーブル５０３を用いて物理ドライブ番号、物理開始アドレスを求める（Ｓ１２０４）。次に算出したドライブアドレスからデータを前記確保したキャッシュメモリの領域に転送する（Ｓ１２０５）。
【００５１】
前記キャッシュメモリへのデータ転送時にダイナミックマッピングテーブル５０１のモニタ情報インデックス番号に対応するページ毎モニタテーブル５０２の各種情報を更新し、Ｔｉｅｒ判定処理を実行する（Ｓ１２０６）。続いて、前記ドライブからキャッシュメモリ上に格納したデータを当該キャッシュメモリからホストに対してデータを送信する（Ｓ１２０７）。ホストが要求したデータを全てホストに転送した後リード処理完了応答をホストに転送して、Ｉ／Ｏ処理プログラムは終了する。
【００５２】
図１３は、デステージ処理プログラム６０４のフローチャートである。図１２に記したように、Ｉ／Ｏ処理プログラムは、ホストからのデータの書き込み要求に応じてキャッシュメモリにホストのライトデータを書き込んだ後、ダーティフラグを立てる。
【００５３】
キャッシュ管理テーブル５０８を参照し、Ｓ１２１１にて立てられたキャッシュメモリ上にダーティフラグがあるか定期的に確認する（Ｓ１３０１）。もしダーティフラグが立っているキャッシュ領域があれば、キャッシュ管理テーブル５０８の仮想ボリューム番号と論理アドレスに基づき、ダイナミックマッピングテーブル５０１から割り当っているプールボリューム番号と論理アドレスを求める。
【００５４】
このとき、プールボリューム番号論理アドレスがデフォルトページのアドレスであった場合は、新規データを書き込むために、ダイナミックマッピングテーブル５０１から新規空きページを割当てる。そして新規割当てページのプールボリューム番号と論理アドレスをダイナミックマッピングテーブル５０１の本デステージ処理に対応する仮想ボリューム番号論理アドレスに対応させて格納する。プールボリューム番号と論理アドレスが求まった後、論理物理変換テーブルで、ドライブのアドレスを求める（Ｓ１３０２）。前記Ｓ１３０２で求めた、ドライブのアドレスに対して、キャッシュメモリ上のダーティデータを書き込む（Ｓ１３０３）。ここで当該データの、ダーティフラグはＯＦＦとなりクリーン状態になる。
【００５５】
そして、ダイナミックマッピングテーブル５０１のモニタ情報インデックス番号に対応するページ毎モニタテーブル５０２のＩ／Ｏカウンタ値を更新し、Ｔｉｅｒ判定処理を実行する（Ｓ１３０４）。更にキャッシュメモリ上にあるかチェックする（Ｓ１３０１）。もし未反映データがなければ、終了し、未反映データがあれば、再度Ｓ１３０２から実施する。
【００５６】
図１４は、度数分布作成処理プログラム６０２のフローチャートである。度数分布を未作成の仮想ボリュームがあるか否かを確認する（Ｓ１４０１）。もしあれば、当該仮想ボリューム内で度数分布作成のために未処理ページがあるか否かをボリュームの先頭から確認していく（Ｓ１４０２）。未処理ページがあれば、長周期のＩＯＰＳを算出し、対応する度数分布の負荷レベルのページ数を加算する（Ｓ１４０３）。長周期のＩＯＰＳは、例えば直前の周期で採取した面の長周期Ｉ／Ｏカウンタ９０２の値÷周期（秒）により算出が出来る。よって、ＩＯＰＳ採取周期と本度数分布作成処理実行の周期は同じであることが望ましい。図９で述べたように、移動平均値を長周期のＩＯＰＳとして算出してもよい。
【００５７】
Ｓ１４０２に戻ってボリュームの後端まで実施もしくは処理している仮想ボリュームに関し未処理ページが無いことがわかったら、他の仮想ボリュームが無いか確認するために、Ｓ１４０１に戻る。次に、プールの度数分布を作成する（Ｓ１４０４）。プールの度数分布は、仮想ボリュームの度数分布の合計値を計算することにより算出する。具体的には、仮想ボリューム度数分布テーブル５０４において、対象プールに属する各仮想ボリューム番号１００４のＩ／Ｏ数１００５に対応するページ数１００３の総和を求めて、プール度数分布テーブル５０５のＩ／Ｏ数１００５に対応するページ数１００５として格納する。
【００５８】
続いてＴｉｅｒ割り当て閾値２０８を計算して決定する（Ｓ１４０５）。Ｔｉｅｒ割り当て閾値２０８は、各Ｔｉｅｒについて、Ｔｉｅｒのポテンシャル（処理できる最大のＩ／Ｏ数）又はＴｉｅｒの容量何れかを超える限界点から、最大のページ割り当て量の範囲２１０を決定し、範囲２１０と度数分布のグラフ２０９の交点から、Ｔｉｅｒ割り当て閾値２０８を算出する方法がある。または、管理端末などからユーザが指定した閾値を使用する方法でもよい。
【００５９】
図１５は、非同期再配置判定処理プログラム６０６のフローチャートである。非同期再配置判定処理プログラム６０６の主な役割は、Ｔｉｅｒ１へのプロモーション以外のデータ移動と、短周期のＩＯＰＳでプロモーションしたページのＩＯＰＳが低くなった場合の回収（Ｔｉｅｒ２又は３へのデモーション）である。Ｔｉｅｒ１へのプロモーションは、モニタ更新＆Ｔｉｅｒ判定処理によって、別途優先して実施されるため、非同期再配置判定処理プログラム６０６で実行しなくてもよい。ただし、Ｔｉｅｒ１へ短周期のＩＯＰＳでプロモーションしたページは、仮にその後ホストＩ／Ｏが来なかった場合、モニタ更新＆Ｔｉｅｒ判定処理によるページ移動判定が実行されないため、Ｔｉｅｒ１に滞留してしまう可能性がある。したがって、回収（Ｔｉｅｒ１からＴｉｅｒ２又は３へのデモーション）のために非同期再配置判定処理プログラム６０６を実行すると効率的にＴｉｅｒ１の容量を使うことが出来る。
【００６０】
まず、ページ再配置未処理の仮想ボリュームの有無を確認する（Ｓ１５０１）。もしページ再配置未処理の仮想ボリュームが有れば、対象仮想ボリュームを先頭から後端に向かって順次、割当たったページ毎に再配置要否を確認する（Ｓ１５０２，Ｓ１５０３）。再配置要否を確認とは、当該ページの長周期ＩＯＰＳと短周期ＩＯＰＳと、対象のプールのプール度数分布テーブル５０５のＴｉｅｒ割り当て閾値２０８から、現在いるＴｉｅｒのままでよいか異なるＴｉｅｒに移動すべきかを判定することである。例えば、Ｔｉｅｒ１とＴｉｅｒ２のＴｉｅｒ割り当て閾値２０８Ａと、Ｔｉｅｒ２とＴｉｅｒ３のＴｉｅｒ割り当て閾値２０８Ｂについて、対象のページのＩ／Ｏカウンタ７０２のＩ／Ｏ数と比較する。ここで、長周期ＩＯＰＳの値が、Ｔｉｅｒ割り当て閾値２０８Ａよりも小さく、かつＴｉｅｒ割り当て閾値２０８Ｂよりも大きく、かつ対象のページの現在のＴｉｅｒがＴｉｅｒ１だった場合、対象のページはＴｉｅｒ２にデモーションするべきなので、再配置は“要”となる。ただし、先ほど述べたように、本ページが短周期ＩＯＰＳが高くなったことにより再配置されている、つまりモニタ更新＆Ｔｉｅｒ判定処理によるページ移動によってＴｉｅｒ１にプロモーションされている場合で、短周期ＩＯＰＳの値が、低下していない場合（Ｔｉｅｒ割り当て閾値２０８Ａの値よりも一定量以上多い場合）には、再配置は“不要”としてもよい。また、対象のページの現在のＴｉｅｒがＴｉｅｒ２だった場合は、既に対象のページはＴｉｅｒ２に配置されているため、再配置は“不要”となる。対象のページの現在のＴｉｅｒは、ダイナミックマッピングテーブル５０１の仮想ボリューム７０２の論理アドレス７０３とプールボリューム番号７０４との関係から、プールボリューム番号７０４により、現在どのＴｉｅｒに属しているかを判断できる。
【００６１】
再配置要の場合、対象ページを再配置するために、ページ再配置キューにエンキューする（Ｓ１５０４）。再配置否の場合と対象ページを再配置した後は、仮想ボリューム内の次ページが再配置対象ページか否かを確認する（Ｓ１５０２，Ｓ１５０３）。仮想ボリューム全体に渡って再配置処理を行った後は、別の再配置未処理の仮想ボリュームをチェックし、ページ再配置未処理の仮想ボリュームが無くなるまで行う（Ｓ１５０１）。尚、周期処理であった場合は、周期処理の終わりで一度ページ再配置プログラムは終了し、次の周期処理で改めてページ再配置プログラムによってページ再配置処理は継続されていく。また周期の後端までに再配置処理が終了していた場合は、その時点で一度ページ再配置処理終了し、次の周期で改めて仮想ボリューム毎に再配置処理が行われる。
【００６２】
図１６は、ページ再配置処理プログラムの動作を表したフローチャートである。本処理は、ページ単位に再配置を実行する処理であり、システム全体で多重に動作する。本処理は、ページ再配置実行キュー５０６からエントリ１１０３をデキューした契機で実行される。本処理は、エントリ１１０３のデキュー時に、図１１で説明したエントリに含まれる、仮想ページ２０１の識別子と、移動元の物理ページの識別子、移動先の物理ページの識別子を入力として実行される。まず、仮想ページの識別子の領域がキャッシュ上にあるかどうかを、キャッシュ管理テーブルを参照して判定する（Ｓ１６０１）。キャッシュ上にある場合は、ステップ１６０４に進む。また、ステップ１６０１でキャッシュ上にない場合は、キャッシュメモリを確保し、キャッシュ管理テーブルを更新して（Ｓ１６０２）、対象データのステージング処理を実行する（Ｓ１６０３）。本ステップでは、移動元の物理ページのデータをキャッシュメモリ上にステージングする。
【００６３】
その後、ページマッピングを切り替える（Ｓ１６０４）。具体的には、ダイナミックマッピングテーブル５０１上の仮想ページに対応する物理ページの識別子を、移動先の物理ページの識別子に更新することにより、実行する。その際に、移動元のページは、未使用ページとなる。その後、キャッシュ管理テーブル上の当該キャッシュ領域のダーティビットをＯＮに更新して（Ｓ１６０５）、処理を終了する。ダーティビットをＯＮとすることで、デステージ処理プログラム６０４によって、移動先の物理ページにデータが非同期にデステージされる。
【００６４】
図１７は、モニタ更新＆Ｔｉｅｒ判定処理の動作を表したフローチャートである。本処理は、リード時にはＩ／Ｏ処理プログラムＳ１２０６でリードコマンドに同期して実行され、ライト時にはまとめ書きプログラムＳ１３０４でライトコマンドとは非同期に実行される。モニタ採取は、ドライブへのコマンド発行タイミングで実行する他に、ホストＩ／Ｏの受領契機でキャッシュヒット分も含めてモニタするという考え方もある。本発明では、以降で説明するように、モニタの更新の契機で、Ｔｉｅｒ判定処理を実行する。
【００６５】
まず本処理が開始されると、モニタのカウントアップ処理を実行する（Ｓ１７０１）。具体的には、当該ページに対応するページ毎モニタテーブルのエントリについて、現在の周期における採取中の面の長周期Ｉ／Ｏカウンタ９０２をカウントアップし、テンポラリカウンタ９０３をカウントアップする。初回Ｉ／Ｏ時は、前回テンポラリカウンタ満了時刻に現在時刻を格納する。モニタのカウントアップ後、テンポラリカウンタ９０３がＮになる場合は、（現在時刻−前回テンポラリカウンタ満了時刻）÷Ｎから、短周期ＩＯＰＳを算出する。その後、Ｔｉｅｒ判定処理へと進む（Ｓ１７０３）。テンポラリカウンタがＮ以上とならない場合は、処理を終了する。この短周期ＩＯＰＳの算出方法は、（現在時刻−前回テンポラリカウンタ満了時刻）が所定の周期を超える場合には、所定の周期に対して短周期ではなくなる。よって、（現在時刻−前回テンポラリカウンタ満了時刻）が所定の時間以上となる場合に、計測中断しカウントをデフォルト値に戻すことにしてもよい。また、以上で述べた短周期ＩＯＰＳの算出方法は、一例を示したものであり、所定の周期よりも短い間隔でのＩＯＰＳを計測する手段であれば他の手法を採用することも可能である。例えば例えば、実施例４に記載の、分散値を用いた短周期負荷量の見積もり方法を用いてもよい。
【００６６】
Ｔｉｅｒ判定処理（Ｓ１７０３）は、各種閾値（Ｔｉｅｒ割り当て閾値２０８、プロモーション閾値、デモーション閾値）により判定を実施するが、詳細については実施例２及び３に記載する。Ｔｉｅｒ判定処理（Ｓ１７０３）の結果、ページの移動が必要（Ｓ１７０４のＹ）であれば、再配置の実行ページをページ再配置実行キュー５０６にエンキューして（Ｓ１７０５）、処理を終了する。ページの移動が不要（Ｓ１７０４のＮ）であれば、処理をそのまま終了する。
【００６７】
図１８は、プール単位のパラメータの設定を行う画面の例を示す図である。プール単位のＧＵＩ画面１８０１は、設定対象のプールを特定できるプール番号を表示する領域１８０２と、短周期再配置のＯＮ／ＯＦＦを設定する領域１８０３と、短周期再配置をＯＮと選択した場合の詳細設定のＯＮ／ＯＦＦを設定する領域１８０４と、詳細設定の内容を設定する領域１８０５にて構成される。本画面で設定した情報は、設定情報テーブル５０７に保存する。
【００６８】
短周期再配置の設定１８０３をＯＦＦとした場合は、短周期モニタによる判定処理を実行せずに、Ｔｉｅｒ判定を非同期再配置判定処理プログラム６０６でＴｉｅｒ１へのプロモーション含めて再配置を実施する。具体的には、モニタ更新＆Ｔｉｅｒ判定処理において長周期のモニタカウントアップのみを実行し、ステップＳ１７０２以降の処理は実行しない。一方、短周期再配置の設定１８０３をＯＮとした場合は、本実施例で述べたとおりの動作となる。
【００６９】
短周期再配置の設定１８０３をＯＮとした場合は、短周期詳細設定１８０４を設定可能となり、１８０５の各項目の入力が可能となる。短周期詳細設定１８０４をＯＦＦとした場合は、各種パラメータはデフォルト値またはストレージシステム内で自動的に算出した値によって動作する。
【００７０】
短周期閾値１８０６は、ページの短周期ＩＯＰＳのプロモーション判定に用いる閾値であり、Ｔｉｅｒ割り当て閾値２０８などからストレージシステム内で自動的に算出する。算出の具体的な方法は、実施例２、３、４でその例を説明する。短周期用ＳＳＤ容量１８０７は、短周期再配置に用いるＳＳＤ（Ｔｉｅｒ１）の記憶容量を指定するための設定である。短周期詳細設定１８０４をＯＦＦとした場合は、対象となる容量は動的に決定される。詳細は実施例３で説明する。
【００７１】
キュー方式１８０８は、図１１で説明したキューの処理順序を指定するためのものであり、選択肢としては「リオーダリング（実施例４にて説明）」又は「先着順（ＦＩＦＯ）」が考えられる。またその他の、一般的に知られたスケジューリングアルゴリズム（ＨＯＬ、ＬＩＦＯなど）を指定するようにして、ページ再配置実行キュー５０６のエンキュー又はデキュー方法をその設定に対応した動作とさせてもよい。短周期詳細設定１８０４をＯＦＦとした場合は、設定情報テーブル５０７に保存したデフォルトの方式（例えば、「リオーダリング」でもよい）を用いることにする。短周期負荷継続時間（Ｓｔ）１８０９は、短周期の負荷が継続する時間のパラメータ設定のための項目である。この継続時間は、ホストＩ／Ｏ負荷のパターンや特性に依存するため、本実施例のようにユーザの設定可能とすることができる。短周期詳細設定１８０４をＯＦＦとした場合は、Ｓｔは設定情報テーブル５０７に保存したデフォルトの値（例えば１分）、又は実施例４で例示する方法にて算出される値を用いる方法がある。
【００７２】
短周期カウンタ満了回数（Ｎ）１８１０は、短周期ＩＯＰＳを算出するカウンタの満了値である。短周期詳細設定１８０４をＯＮとして、この回数をユーザが指定することで、突発的な負荷上昇に対する敏感度（検出時間の長さ）をユーザが設定することが出来る。短周期詳細設定１８０４をＯＦＦとした場合は、Ｎはデフォルトの値（例えば、６４回）または実施例４にて例示される方法で算出された値を用いることができる。
【００７３】
短周期補正係数（Ｍ）１８１１は、短周期ＩＯＰＳを長周期ＩＯＰＳと比較してどの程度プロモーションされにくくするかを設定するための情報である。例えば、長周期ＩＯＰＳが５以上の場合にプロモーションすると仮定すると、短周期ＩＯＰＳは、Ｍ×５以上の場合にプロモーションするように動作させてもよい。この値は、後程説明する方法等により動的に決定してもよいし、あらかじめ決められたデフォルト値を用いてもよいし、本設定画面でユーザが指定した値としてもよい。
【００７４】
なお、上記で述べた詳細設定の項目は、一部のみを詳細設定としてそれ以外を自動設定とするようにしてもよい。又、上記で述べた詳細設定の設定値を「ｐｒｅＳｅｔ１」のようなラベルで保存しておき、領域１８０５で簡便に設定できるようにしてもよい。なお、上記で述べた各種設定項目は、上記の例ではプール毎で説明したが、プール毎だけでなく、仮想ボリューム毎／物理ボリューム毎／ページ毎に指定してもよい。その場合は、設定情報テーブル５０７は対象リソース（仮想ボリューム毎／物理ボリューム毎／ページ毎）ごとにパラメータを保存するためのテーブルを持つ。
【００７５】
次に、実施例２としてＴｉｅｒ判定方法の一例を開示する。
図１９は、図１７のＳ１７０３で実施例される、本実施例のＴｉｅｒ判定処理の動作を表したフローチャートである。
【００７６】
まず本処理が開始されると、（Ａ）デモーション判定を実行する（Ｓ１９０１）。本判定処理は、当該ページがデモーション対象かどうかを判定する。詳細については、図２０で説明する。その結果、デモーション要と判定された場合（Ｓ１９０２のＹ）は、ページ移動要を返却（Ｓ１９０５）して終了する。デモーション不要と判定された場合（Ｓ１９０２のＮ）は、（Ｂ）プロモーション判定を実行する（Ｓ１９０３）。本判定処理は、当該ページがプロモーション対象かどうかを判定する。詳細については、図２１で説明する。その結果、プロモーション要と判定された場合（Ｓ１９０４のＹ）は、ページ移動要を返却（Ｓ１９０５）して終了する。プロモーション不要と判定された場合（Ｓ１９０４のＮ）は、そのまま終了（ページ移動不要）する。上述の様に、Ｔｉｅｒ１の記憶容量の空きを確保するために、プロモーションが実行前にデモーションを実施する。
【００７７】
図２０は、デモーション判定処理の動作を表したフローチャートである。まず、Ｔｉｅｒ１の使用記憶容量が一定以上であるか判定する（Ｓ２００１）。本ステップは必須ではないが、本判断をいれることで、Ｔｉｅｒ１の空き記憶容量を確保のために必要な場合にデモーションが行なわれ、予めＴｉｅｒ１に空き容量を確保しておくことで突発的なプロモーションに要する時間を短縮出来る。使用記憶容量が閾値を超えていない場合（Ｓ２００１のＮ）は、処理を終了する。また、処理を終了する前に、デモーション閾値を最小値にリセットして（Ｓ２００６）もよい。ＤＴ（デモーション用閾値）の初期値は、例えば０とする。使用容量の他に、Ｔｉｅｒ１の性能稼働率が一定以上を超えているかの判断によってＳ２００２に行くか分岐しても良い。性能稼働率が高いとＴｉｅｒ１のレスポンス悪化を引き起こしてしまうため、一部データをデモーションすることで負荷を退避させることができる。
【００７８】
使用記憶容量が閾値を超えている場合（Ｓ２００１のＹ）は、デモーション閾値によるページのＴｉｅｒ判定を実施する（Ｓ２００２）。具体的には、長周期ＩＯＰＳが、ＤＴ以下であり、且つ短周期ＩＯＰＳがＤＴ×Ｍ以下である場合に（Ｓ２００２のＹ）、“デモーション要”を返却（Ｓ２００４）し、処理を終了する。この“Ｍ”は、１より大きい数であって、設定情報テーブル５０７に格納している値を使用する。Ｍの値は、短周期のほうが長周期と比較して多くのＩＯＰＳを必要とするように調整している。これは、短周期ＩＯＰＳは、負荷が続くかどうかの確度の低いためにページ再配置回数が多くなる傾向にある点を考慮し、短周期ＩＯＰＳに基づいての再配置を抑制するために短周期ＩＯＰＳの閾値を高くするためのものである。Ｍの値は、Ｔｉｅｒ１へのヒット率などを評価関数として、一般的に知られたフィードバック制御などの手法を用いて、Ｔｉｅｒ１へのヒット率が最適となるように、動的に調整してもよい。
【００７９】
必須ではないが、次にＤＴの値を削減（Ｓ２００３）してもよい。ＤＴの値がレベルである場合は、レベルを固定量下げることにより実現し、ＤＴの値がＩＯＰＳである場合は、１より小さい値（固定量）の乗算又は、固定量の減算などにより実現してもよい。閾値を下げることで、次のフローにおいて、よりＩＯＰＳの低いＴｉｅｒ１中のページのみがデモーション対象となる。
【００８０】
また、Ｓ２００２でＮの場合、ＤＴの値を増加（Ｓ２００５）させ（但し、ＰＴを超えないようにする。ＰＴを超えると、デモーション対象がプロモーション対象よりもＩＯＰＳが多くなるため、Ｔｉｅｒ１へのＩＯ量が減ってしまうためである）、処理を終了する。
【００８１】
以上のように、Ｔ１容量が足りない場合でかつデモーション対象のページがある場合に、ＤＴの値を減少させ、Ｔ１容量が足りない場合でデモーション対象のページがない場合にＤＴの値を増加させる。本構成により、プロモーション対象とすべきページを格納するための空き容量を、できるだけ適切なデモーション（つまり、ＩＯＰＳの低いページのデモーション）の実行で確保すべく、デモーション閾値を動的に制御して出来るだけＩ／Ｏ数の低いページを移動対象とすることが出来る。
【００８２】
尚、ステップ２００３の前に、ドライブ負荷や、再配置実行中のページ数の量などが一定以上である場合に、ページを移動不可と判定し、ステップ２００４へ行かずに処理を終了させてもよい。以上により、その時のドライブ負荷によって変動する単位時間あたりのページ移動可能量を考慮した再配置を可能とすることが出来る。
【００８３】
尚、デモーション閾値は、パリティグループごとに持ってもよい。また、Ｔｉｅｒ１がＳＳＤの場合に、ホストＩ／ＯによるＷｒｉｔｅが集中して規定のＳＳＤ寿命を維持するのが困難かを判定するステップを追加しても良い。寿命維持が困難との場合にはＷｒｉｔｅ負荷の高いページをデモーション対象とするステップを設ける。この場合、デモーション対象はＰＧ単位であることが望ましい。
【００８４】
図２１は、プロモーション判定処理の動作を表したフローチャートである。プロモーション判定処理は、プロモーション閾値（ＰＴ）を、限られた制約条件（ＮＦ寿命、移動スループット）の中で、短周期ＩＯＰＳが出来るだけ高いページをプロモーションするように、動的に制御（ＰＴを増減させる）する。ＰＴの初期値は、例えばＴとすることができる。
【００８５】
まず、Ｔｉｅｒ１使用容量が空きなしの場合（Ｓ２１０１がＹ）の場合は、Ｔｉｅｒ１へのページ移動が出来ないため、処理を終了する。Ｔｉｅｒ１使用容量が空きありの場合（Ｓ２１０１がＮ）の場合は、長周期ＩＯＰＳがＰＴを超えているか、又は短周期ＩＯＰＳがＰＴ×Ｍを超えているかを判定する。この“Ｍ”は、図２０で説明したものと同趣旨であり、同構成である。デモーション用Ｍとは別の値を設定してもよい。
【００８６】
Ｓ２１０２でＹの場合は、“プロモーション要”を返却（Ｓ２１０５）し、処理を終了する。Ｓ２１０２でＮの場合は、そのまま処理を終了する。ここで、Ｔｉｅｒ１がＳＳＤの場合（特に消去回数の限界値が低いＭＬＣ）などに、フローに示すように、プロモーション回数が寿命ペース越えかどうかを判定してもよい（Ｓ２１０３、Ｓ２１０７）。
【００８７】
図４に示したグラフは、ＳＳＤの寿命維持のためのプロモーション速度の調整の考え方を表している。ＳＳＤでは書込み回数の制限があり、ライトが頻繁におきると寿命が短くなる。よって、ＳＳＤに対するＷｒｉｔｅが発生するプロモーション処理をあまりに高頻度に行うとＳＳＤの寿命が短くなってしまう（デモーションはＳＳＤからリードするのみであるため、基本的にこのような課題はない）。グラフの縦軸４０１は、プロモーションによるＳＳＤ累積消去回数を表す。横軸４０２は、ストレージシステムの使用年数の経過を表す。Ｗｌｉｍｉｔ４０３は、プロモーションによる最大限界のＳＳＤの消去回数を表す。例えば、Ｗｌｉｍｉｔ４０３は、ＳＳＤの限界消去回数（一般に、ＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）の場合約１０万回、ＭＬＣ（Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｃｅｌｌ）の場合約１万回の消去回数である）に対して所定％程度を設定することができる。例えば、ストレージ製品の寿命は５年程度に設定されていることが多い。プロモーションによる、消去回数の推移を例示したグラフが４０４である。また、それに対して目標とするプロモーションによる消去回数のペースを使用年数に従って累積値で表したグラフが４０５である。突発的にＩ／Ｏが多くなり負荷が高くなるとプロモーションによる移動量が多くなる。よって、本実施例では消去回数がペース４０５を超過しないように、短周期プロモーションの閾値を上げて制御する。本構成により、移動するページを効率的に絞込み（より高いＩＯＰＳのページに限定し）、ＳＳＤへのヒット率を維持しつつプロモーションによるＳＳＤ消去回数を一定の範囲に抑えて長寿命化を可能にする。また、突発的な負荷が来ない場合は、ページの移動量が少なくなるため余剰の消去回数を貯めておくことが出来る。この短周期プロモーションの閾値の調整は、パリティグループごとに実施するのが効率的である。ただし、プール単位やストレージシステム単位で持ってもよい。
【００８８】
以上のような制御を実現する方法として、例えば、ストレージシステムが、各パリティグループごとに累積のプロモーション回数と使用年数（Ｕｙ）の情報を保持する方法が考えられる。累積のプロモーション回数から、プロモーションによるＳＳＤパリティグループの累積消去回数を算出するには、例えば以下の式を用いる。
【００８９】
プロモーションによるＳＳＤパリティグループの累積消去回数（Ｗｃ）  ＝  （パリティグループに対するプロモーション回数×ページサイズ／ＳＳＤパリティグループ容量）×補正係数（ＲＡＩＤレベルやＳＳＤの特性（ＳＳＤ内のページサイズやＷｒｉｔｅＡｍｐｌｉｆｉｃａｔｉｏｎなど）に応じて決定）
以上により算出したＷｃから、例えば以下の式により、Ｓ２１０３、Ｓ２１０７ペースの判定を実施する。
（Ｗｌｉｍｉｔ÷ターゲットの使用年数（例：５年））  ≧  （Ｗｃ÷Ｕｙ）？
上記の式が真である場合、プロモーションを実行しても寿命のペースを維持していると判定できる。また、上記の式が偽である場合、プロモーションを実行した場合、寿命のペースを上回っていると判定できる。また、必要な情報（累積のプロモーション回数、使用年数）または、それらを類推するための情報（ライト可能量、寿命率、ページサイズ、ＷｒｉｔｅＡｍｐｌｉｆｉｃａｔｉｏｎ効率など）はＳＳＤデバイスからＳＣＳＩコマンド等により取得してもよく、前記の情報をローカルメモリ１１８又は共有メモリ１１１に保持しておいてもよい。
【００９０】
また、ペースの判定は、ＳＳＤの使用容量率に応じて動的に変更してもよい。例えば、システム稼働の初期段階では、ＳＳＤの使用容量率が低く、ＳＳＤのヒット率が低い。しかし、このような状態（大量のページ移動を必要とする状態）は、システムの初期段階の一時期のみであることが多いため、一時的にペースを超えることを許したほうが効率的な場合がある。つまり、ＳＳＤの使用容量率が所定値以下の場合は、Ｓ２１０３の判定を実施せずに全てについてプロモーションを実行することで、一時的な（ＳＳＤの使用容量率が所定以上となる迄）ライト量の増大化を許しつつ、後のフェースで全体的にＷｒｉｔｅ量を削減することで、全体としての性能向上を実現する。また、ページ移動の加速度を段階的に調整して目標のペースに段階的に合わせるようにしてもよい。
【００９１】
プロモーション回数が寿命ペースを超えている場合は、ＰＴの値を増加（Ｓ２１０６）し、超えていない場合はＰＴの値を減少（Ｓ２１０４，Ｓ２１０８）させることもできる。（ただし、Ｔｉｅｒ割り当て閾値２０８Ａ（Ｔ）以下に設定しないようにする）ＰＴの値の増加については、図２１ではＳ２１０３の判断に基づく場合にのみ実行するフローを例示する。ＰＴの値がレベルである場合は、レベルを固定量下げることにより実現し、ＰＴの値がＩＯＰＳである場合は、１より小さい値（固定量）の乗算又は、固定量の減算などにより実現してもよい。以上により、限られたプロモーションによる消去回数（Ｗｌｉｍｉｔ）のペースを満たしながら、出来るだけＩ／Ｏ数の高いページを移動対象とすることが出来る。
【００９２】
また、ページ再配置実行キューが埋まっている場合や、ドライブの負荷が高い場合に、ＰＴの値を増加させ、その逆の場合に、ＰＴの値を減少させてもよい。本処理によって、限られた単位時間あたりのページ移動可能量とのバランスを取りながら、出来るだけＩ／Ｏ数の高いページを移動対象とすることが出来る。
【００９３】
また、プロモーション閾値をパリティグループごと設定してもよい。パリティグループ単位に保持すれば、パリティグループ単位で寿命判断が可能となり必要最小限のページ移動量の削減で済ますことが出来る。また、ページ毎にリードライト比率、シーケンシャル比率などを取って、ライト量が所定位置以上に高いページ（ライト比率が多く、シーケンシャル比率が高い）をプロモーションしないようにしてもよい。
【００９４】
また、上記実施例では寿命ペースはプロモーションによるＷｒｉｔｅを対象に判断したが、ホストＩ／ＯによるＷｒｉｔｅも含めて寿命判断するものであってもいい。例えばホストＩ／ＯによるＷｒｉｔｅ量が少ないＩ／Ｏパターンだった場合であれば、プロモーション量を相対的に増やすことができ、よりＴｉｅｒ１ヒット率を向上させることができる。
【００９５】
次に、実施例３として別のＴｉｅｒ判定方法の一例を開示する。実施例２との違いは、短周期の負荷が一定期間（Ｓｔ）続くものと仮定し、短周期で再配置されたページを一定期間再配置先のＴｉｅｒに固定化（ページ毎の固定化マークにより実現）する点である。また、短周期ＩＯＰＳによるプロモーション量をデモーション量管理テーブル２２０１により厳密にコントロールするため、短周期プロモーション量を一定量に制限でき、また、短周期プロモーション量に応じて、長周期の追い出す負荷量を最小化することが出来る。
【００９６】
図２２は、デモーション量管理テーブルと拡張ページ毎モニタテーブル（１）のテーブル構造を示している。デモーション量管理テーブル２２０１は、長周期ＩＯＰＳによる負荷レベル２２０２ごとに応じたページ量２２０３のエントリを持つ点は、プール毎度数分布と同様である。さらに、負荷レベル毎２２０２毎のデモーション計画数２２０４と、デモーション実施数２２０５を持つ。Ｔｉｅｒ割り当て閾値２０８Ａ（＝Ｔ）は、既に度数分布の算出処理の時に算出済みである。デモーション計画数２２０４は、短周期のプロモーションに対応してデモーションしたい負荷レベル毎のページ数に相当する。したがって、短周期のプロモーション判定時に、加算し、短周期プロモーション後のページの負荷が下がった際に減算する。一方、デモーション実施数２２０５は、実際にデモーションを実施した負荷レベル毎のページ数を表す。したがって、置き換え対象となったページ（長周期の負荷が出来るだけ低いページ）のデモーション実行時に加算し、短周期プロモーションの負荷が下がってデモーション計画数２２０４を減算した際に、下位Ｔｉｅｒに固定化していたページをプロモーションして元に戻す際に減算する。本実施例においては、デモーション計画数と実行数とを管理することで、短周期でＩ／Ｏ回数が増加しているページのプロモーションに必要なページ数を考慮してデモーション数もしくはデモーション閾値を制御できるようになる。
【００９７】
長周期の負荷が出来るだけ低いページをデモーションしたいため、デモーション計画数２２０４は、長周期閾値相当の負荷レベルのページ（本図ではＬＶ２に相当）から順にページ数２２０３を超えない範囲で、加算していく。その際に、図に示すようにデモーション計画数＞デモーション実施数となる最小の負荷レベルがデモーション閾値２２０６（＝Ｄｔ）となる。
【００９８】
以上で述べたデモーション量管理テーブル２２０１はプールＶＯＬ毎、又はＰＧ毎に持って、プールＶＯＬ毎、又はＰＧ毎にデモーション閾値を決めてもよい。その場合は、プールＶＯＬ毎又はＰＧ毎の度数分布を図１４の度数分布作成処理プログラムの実行の際に作成し、その情報を元に負荷レベル２２０２毎のページ数２２０３を算出することが出来る。
【００９９】
また、拡張ページ毎モニタテーブル（１）２２０７は、ページ毎モニタテーブル５０２のカラムを拡張したテーブルであり、モニタ情報インデックス番号９０１はページ毎モニタテーブルの構造と同様である。短周期再配置ページ固定化マーク２２０８は、ＯＮの場合に、ページを現在のＴｉｅｒに固定化している状態を表している。また、短周期プロモーション実行時刻２２０９は、当該ページが短周期プロモーションされた場合に、その実行時刻を格納する。これらの情報により、短周期プロモーションしたページを一定期間（Ｓｔ）デモーション判定されるのを防ぐことが出来る。また、一時的な置き換え対象の長周期の負荷が少ないデモーションしたページも、マークをＯＮすることにより、プロモーション判定されるのを防ぐことが出来る。
【０１００】
図２３は、デモーション判定処理（２）の動作を表したフローチャートである。本処理は、図１９のＴｉｅｒ判定処理の（Ａ）デモーション判定（Ｓ１９０１）に相当する処理である。図２０で説明したデモーション判定処理フローと異なる点のみを説明する。
【０１０１】
ステップ２３０１で、当該ページに対応する拡張ページモニタテーブル（１）２２０７のエントリの短周期再配置ページ固定化マーク２２０８を参照し、当該ページがマークＯＮかどうかを判定する。マークＯＮであれば（Ｓ２３０１でＹ）、（現在時刻−短周期プロモーション実行時刻）＞Ｓｔが成立するかどうかを判定する（Ｓ２３０２）。Ｓｔは予め設定される所定値である。成立しない場合（Ｓ２３０２でＮ）、処理を終了する。成立する場合（Ｓ２３０２でＹ）、短周期ＩＯＰＳ＞ＰＴを判定する（Ｓ２３０３）。成立する場合（Ｓ２３０３でＮ）、当該ページはまだ高負荷状態でありデモーションする必要がないため、そのまま処理を終了する。成立しない場合（Ｓ２３０３でＮ）、マークをＯＦＦにして、デモーション計画数を１（所定値）減算し、ＤＴを必要に応じて更新して（Ｓ２３０４）、ステップ２３０５へ進む。ＤＴは、デモーション計画数＞デモーション実施数となる最小の負荷レベルがデモーション閾値２２０６（＝Ｄｔ）となるように更新する。
【０１０２】
その後、長周期ＩＯＰＳ≧Ｔ且つ長周期ＩＯＰＳ≦ＤＴが成立するかどうかを判定する（Ｓ２３０５）。本条件が成立するということは、短周期プロモーション実行時の置き換え対象としてのデモーション対象ページであることを意味する。条件が成立する場合（Ｓ２３０５でＹ）、当該ページの長周期の負荷レベルにおいて、デモーション計画数２２０４＞デモーション実施数が成立するかどうかを判定する（Ｓ２３０７）。本条件が成立しデモーションが必要とされている場合（Ｓ２３０７でＹ）、当該ページのマークをＯＮにして、デモーション実施数を１増加し（Ｓ２３０８）、デモーション要を返却（Ｓ２２０４）して処理を終了する。本条件が成立しない場合（Ｓ２３０７でＮ）、処理を終了する。
【０１０３】
また、Ｓ２３０５でＮの場合、長周期ＩＯＰＳ＜Ｔが成立するかどうかを判定する（Ｓ２３０６）。本条件が成立する場合、そもそも長周期負荷が低いため、基本的な配置をＴｉｅｒ２とすべきページである。したがって、デモーション要を返却（Ｓ２２０４）して処理を終了する。
【０１０４】
図２４は、プロモーション判定処理（２）の動作を表したフローチャートである。本処理は、図１９のＴｉｅｒ判定処理の（Ｂ）プロモーション判定（Ｓ１９０３）に相当する処理である。図２１と異なる点のみを説明する。
【０１０５】
ステップ２４０１はステップ２３０１と同様である。マークＯＮであれば（Ｓ２４０１でＹ）、ステップ２４０２に進む。ステップ２４０２では、（デモーション計画数＜デモーション実施数）、又は（短周期ＩＯＰＳ＞ＰＴ）が成立するかどうかを判定する。判定（デモーション計画数＜デモーション実施数）については、デモーション判定で短周期プロモーションしたページの負荷が低下した場合に成立する。判定（短周期ＩＯＰＳ＞ＰＴ）については、短周期プロモーションのための一時的な入れ替えのためのデモーションを実施したページの短周期の負荷が、突発的に上昇した場合に相当する。ステップ２４０２でＮの場合は、処理を終了する。ステップ２４０２でＹの場合は、当該ページのマークをＯＦＦにして、デモーション実施数を１削減し（Ｓ２４０３）、その後ステップ２４０４に進む。
【０１０６】
ステップ２４０４では、（長周期ＩＯＰＳ＞Ｔ）又は（短周期ＩＯＰＳ＞ＰＴ）が成立し、プロモーションが必要かどうかを判定する。ステップ２４０４でＹの場合は、当該ページが短周期プロモーションで、且つ短周期用ＳＳＤ容量未達かどうかをチェックする（ステップ２４０８）。ステップ２４０４の判定時に、条件（長周期ＩＯＰＳ＞Ｔ）が成立せず、条件（短周期ＩＯＰＳ＞ＰＴ）が成立していた場合に、当該ページが短周期プロモーションと判定できる。また、ＧＵＩ１８０１の設定項目の１８０７などにより設定した、設定情報テーブル５０７に格納された情報と、全体のＴｉｅｒ１容量から短周期プロモーションに使用してよいページ数を算出し、デモーション量管理テーブル２２０１の、各負荷レベル２２０２のデモーション計画数２２０４の累計値とを比較し、その累計値が短周期プロモーションに使用してよいページ数を超えていない場合は、短周期用ＳＳＤ容量未達と判定できる。
【０１０７】
ステップ２４０８でＮの場合は、処理を終了する。ステップ２４０８でＹの場合は、当該ページのマークをＯＮにして、デモーション量管理テーブル２２０１の当該ページの属する負荷レベルのデモーション計画数を１増加し、ＤＴを必要に応じて更新する（ステップ２４０９）。ＤＴは、デモーション計画数＞デモーション実施数となる最小の負荷レベルがデモーション閾値２２０６（＝Ｄｔ）となるように更新する。その後、デモーション要を返却して（Ｓ２２０４）、処理を終了する。ステップ２４０４でＮの場合は、処理を終了する。
【０１０８】
また、図２１で示した方法と同様の本処理の拡張案が考えられる。例えば、Ｔｉｅｒ１がＳＳＤの場合（特に消去回数の限界値が低いＭＬＣ）などに、フローに示すように、プロモーション回数が寿命ペース越えかどうかを判定してもよい（Ｓ２１０３、Ｓ２１０７）。プロモーション回数が寿命ペースを超えている場合は、ＰＴの値を増加（Ｓ２４０６）し、超えていない場合はＰＴの値を減少（Ｓ２４０５，Ｓ２４０７）させる（ただし、ＤＴ×Ｍを超えないように設定する）。以上により、限られたプロモーションによる消去回数（Ｗｌｉｍｉｔ）のペースを満たしながら、出来るだけＩ／Ｏ数の高いページを移動対象とすることが出来る。
【０１０９】
次に、実施例４について説明する。実施例４は、実施例１〜３で説明した方法において、各種パラメータの自動調整や短周期負荷量の見積もりを行うための一手段である。
【０１１０】
図２５は、処理の効率化の考え方を示した図である。図２５０１は、あるページの負荷量の変化のグラフにおける各種パラメータの意味を表している。グラフの縦軸２５０２は、ページの単位時間あたりの負荷量（ＩＯＰＳ）を示している。また横軸は、時間経過２５０３を表している。グラフ２５０６は、あるページの負荷量の時間経過に対する変化を表している。このページは、短周期の負荷が上昇してから落ちるまでの時間が、Ｓｔ（２５０８）である。負荷が上昇してから、Ｔｉｅｒ判定してページ再配置キューにエンキューされる迄の時間は、Ｓｄ（２５０７）である。この時間を、検出遅延時間と呼ぶ。検出遅延時間は、Ｎの値と単位時間あたりの短周期の負荷量（ＩＯＰＳ）の値によって決まる（Ｓｄ＝テンポラリカウンタ満了値（＝Ｎ）÷短周期ＩＯＰＳ）。エンキュー時刻（Ｅｔ）（２５１２）にページ再配置キューにエンキューされても、ページ再配置のタスクの実行中（ページ再配置のタスクの空きがない）などの理由で、直ちに実行されるわけではない。これから再配置の処理（タスク）に割り付けて、再配置を実行しようとしている時間（現在時間）をｔ（２５１３）とする。また、ページをプロモーションして、その後デモーションするまで（２５１４）の期間をＤｔとする。前記と同様の理由で、他のページの移動（プロモーション又はデモーション）があるため、ページをプロモーション後に、直ちにデモーションを開始できるわけではない。その影響を考慮するため、Ｄｔという値を用いる。すると、ページをプロモーションしてからデモーションするまでの間（Ｄｔ２５０９）の平均負荷を、当該ページを再配置（短周期で）した場合の基準値（２５１１）とする。この基準値が高いページを選択すれば、効率的にＴｉｅｒ１のヒット率を向上できる。
【０１１１】
図２７で各パラメータの管理テーブルを例示する。拡張ページ毎モニタテーブル（２）（２７０１）は、ページ毎モニタテーブル５０２のカラムを拡張したテーブルであり、モニタ情報インデックス番号９０１はページ毎モニタテーブルの構造と同様である。拡張ページ毎モニタテーブル（２）（２７０１）は、少なくとも、短周期負荷継続時間（Ｓｔ）（２７０２）と、カウンタ満了値（Ｎ）（２７０３）と、Ｉ／Ｏ発生間隔の２乗累積値の欄（２７０４、２７０５）の何れかを有する。たとえば周期毎に、採取中のデータと、前回の周期の確定されたデータとを管理するために本実施例では２つの欄２７０４，２７０５を設けている。
【０１１２】
Ｉ／Ｏ発生間隔の２乗累積値（採取中）（２７０４）は、Ｓ１７０１のモニタカウントアップ処理の契機で、前回のＩ／Ｏ発生時刻と、現在時刻との差分（＝Ｉ／Ｏ発生間隔）を２乗した値を、当該カウンタに加算する。また、Ｎが２以上の場合は、Ｓ１７０２のテンポラリカウンタ満了の契機で、Ｎ回分のＩ／Ｏが、均等な時間間隔で発生するという仮定を置いて、Ｉ／Ｏ発生間隔の２乗累積値を算出する方法を用いてもよい。
【０１１３】
以上で説明した情報から、各種パラメータを見積もる一手法を以下に説明する。
＜Ｓｔの見積もり方法＞
前提として、短周期の負荷が継続する時間は、ページ毎に一定である特性を持つ（短周期負荷パターンの継続性）傾向にあるとページ毎の短周期負荷継続時間（Ｓｔ）（２７０２）を何れかのタイミングで一度記録し、その値をＳｔの値とする。
【０１１４】
また、より精度を高めるためにページ毎の短周期負荷継続時間をページ毎に複数個保持し、過去の履歴から負荷の継続時間を、一般的に知られた予測方法（例えば、線形近似法など）を用いて予測してもよい。又、上記の仮定（短周期負荷パターンの継続性）を満たしているかどうかを、ページ毎モニタ情報から適宜判断し、本見積もり方法を用いた短周期の再配置の実行可否を切り替えてもよい。
＜分散値を用いた短周期負荷量の見積もり方法＞
上述したＳｔは、ページ毎に一定であるという仮定に基づいているが、実際のＩ／Ｏにおいては一定でない、つまりバラつきがある場合がある。以下に説明する短周期負荷量の見積もり方法は、このバラつきの特性がある場合においても、効率的にページを配置することを可能とする方法である。前提として長期的（かつ周期的に）に採取した、Ｉ／Ｏ発生間隔の平均値（Ｅ（ｆ）＝Ｉ／Ｏカウント９０２÷周期時間）及び、Ｉ／Ｏ発生間隔の２乗平均値（Ｅ（ｆ＾２））は、その後の周期も同等となる（長期的負荷パターンの継続性）と想定する。
【０１１５】
突発的な負荷が多いページはＩ／Ｏ発生間隔の分散値Ｖ（ｆ）が大きくなる（Ｖ（ｆ）＝Ｅ（ｆ＾２）−Ｅ（ｆ）＾２）という特性を持つ。さらに、同じ平均値Ｅ（ｆ）を持つページでも、分散値Ｖ（ｆ）が大きいほど、一定期間Ｑｔの間に受けるＩ／Ｏ数が多くなる確率が高くなる特性を持つ。さらに、Ｖ（ｆ）とＥ（ｆ）を一定とすると、Ｑｔが長いほど期待値のＩ／Ｏ到着数（期間Ｑｔの間に受けるＩ／Ｏ数の平均値）はＱｔ／Ｅ（ｆ）に近づくという特性を持つ（これは長周期の負荷量と一致する）。
【０１１６】
以上の特性を元に、短周期（Ｑｔ）の負荷量を予測する一手法を以降に述べる。まず、短周期プロモーションでＴｉｅｒ１に配置する時間間隔（Ｑｔ）を仮定する。ＱｔとＶ（ｆ）とＥ（ｆ）から、短周期Ｓｔ（＝Ｑｔ）における期待値のＩ／Ｏ到着数を算出し、短周期の負荷量（ＩＯＰＳ）（λｓ２５０５）を算出する（期待値のＩ／Ｏ到着数÷Ｑｔ）。例えば、期待値のＩ／Ｏ到着数は、近似式（期待値のＩ／Ｏ到着数＝（Ｑｔ＋（（Ｖ（ｆ）／（Ｅ（ｆ）＾２））／２））／Ｅ（ｆ）で算出してもよい。その他、一般的に知られた確率的理論に基づき、ＱｔとＶ（ｆ）とＥ（ｆ）の一部又は全部をパラメータとする式を用いてもよい。
【０１１７】
以上のように、ストレージがＩ／Ｏ発生間隔の２乗平均値（Ｅ（ｆ＾２））の情報を保持し、Ｉ／Ｏ発生間隔の分散値Ｖ（ｆ）の特性を元に、短周期（Ｑｔ）の負荷量を予測することで、バラつきの特性がある場合においても、効率的にページを配置することが可能となる。また、短周期の負荷量の履歴情報を持つ必要が無いため、メモリ使用効率が良いという効果もある。
【０１１８】
また、採取中のＩ／Ｏカウント９０２及び、採取中のＩ／Ｏ発生間隔の２乗累計値２７０４を用いることで、短周期負荷量の算出の精度を向上できる。長期的負荷パターンの継続性の仮定に基づき、前回の周期のカウント値から、現在までの採取したカウント値を引いた値が、現在から今回の周期が終わるまでの値の予測値と出来る。したがって、この差し引いた値でＶ（ｆ）とＥ（ｆ）を算出して上記の方法により短周期の負荷量を見積もることで、より予測の精度を向上できる。
【０１１９】
また、本見積もりにおいて仮定したＱｔは、移動可能なページ量（寿命やドライブの余剰稼働率などから算出）から算出した値を仮定してもよい。つまり、移動可能なページ量が少なければ、Ｑｔは長くなり、移動可能なページ量が多ければ、Ｑｔは短くなる。また、非同期デモーションの実行周期（例えば３０分）と仮定してもよい。つまり、Ｉ／Ｏに同期的なＴｉｅｒ判定はＩ／Ｏが来ないと実行されないため、回収までの最長の所要時間（＝非同期デモーションの実行周期）をＱｔと仮定してもよい。
【０１２０】
尚、上記の仮定（長期的負荷パターンの継続性）を満たしているかどうかを、ページ毎モニタ情報から判断し、本見積もり方法を用いた短周期再配置を実行するかどうかを切り替えてもよい。
＜Ｎの見積もり方法＞
前述した短周期負荷の継続時間Ｓｔと、短周期負荷量λｓから、短周期のＩＯ数を算出できる。もし短周期のＩＯ数がＮに対して一定量以上多くない場合、図２５で説明したＳｄとＳｔの差が縮まってしまい、ページをプロモーションしてもＴｉｅｒ１ヒット率向上効果を得られにくくなる。但し、Ｎを小さくしすぎると、短周期負荷の精度が悪くなる可能性があるため、これらのトレードオフを鑑み、Ｎの最適な値に調整してもよい（Ｎの値は、２７０３に格納する）。具体的には、例えば、短周期のＩＯ数に対して一定の係数を掛けた値をＮとするなどの方法が考えられる。
【０１２１】
また、一般にＮを小さくするとページ移動要と判定される頻度が増え、Ｎを大きくすると、ページ移動要と判定される頻度が減る。したがって、Ｎは、移動可能なページ量（寿命やドライブの余剰稼働率などから算出）から、算出してもよい。
【０１２２】
上述した各種見積もり方法は、組み合わせてもよいし、一部の方法のみを使用してもよい。また、上述した各種見積もり方法は、ページ毎ではなく、プール毎やプールＶＯＬ毎、ＰＧ毎でパラメータを持ち、又は算出してもよい。
【０１２３】
図２６は、キューのリオーダリングの動作を示した図である。本実施例ではページ再配置実行キュー（５０６）にエンキューされたエントリについて、図２５で説明した基準値２５１１の値によって、再配置タスク２６０３に優先的に割り当てるエントリを決める。例えば、プロモーション用のキューの場合は、基準値の高いものから優先的に再配置タスクに割り当て、デモーション用のキューの場合は、基準値の低いものから優先的に再配置タスクに割り当てるようにする。本構成により、よりＴｉｅｒ間データ再配置を効率化できる。
【０１２４】
また、上記の基準値２５１１は、具体的には、以下の式によって算出してもよい。
基準値（ＩＯＰＳ）＝  (Ｃｔ×λｓ ＋（Ｄｔ−Ｃｔ）×λｌ )／ Ｓｔ − α
αは、長周期の低負荷ページを追い出すペナルティ分を表す。αは、定数でもよいが、デモーション閾値（ＤＴ）などから動的に決定してもよい。また、Ｃｔ２５１０は、現在時刻（ｔ）から短周期の負荷上昇が落ち着くまでの時間（Ｃｔ＝Ｓｔ−Ｓｄ−（ｔ−Ｅｔ））を表している。
【０１２５】
また、Ｄｔは、具体的には、以下の式によって算出してもよい。
Ｄｔ ＝ Ｓｒ×デモーションのキュー長 ＋ Ｓｒ／２ ＋ Ｃｔ
Ｓｒは、デモーション処理の平均処理時間を表す。また、再配置タスク２６０３の多重度（スループット）に応じて、Ｓｒを短くしてもよい。また、その他一般的に知られた待ち行列理論などをベースとした式に変えてもよい。
【０１２６】
また、エンキューされた時刻Ｅｔから所定期間経過したキューについては、基準値を無視して、優先的に実行するようにしてもよい。また、キューのエントリ数が予め定めた上限に達している場合に、基準値が小さいものからキューから削除するようにして、キューの空きを作るようにしてもよい。
尚、本発明は、上述した実施例に限定されず、当業者であれば本発明の範囲内で様々な追加や変更等を行うことができる。
【符号の説明】
【０１２７】
１０１：ホスト、１０２：管理サーバ、１０３：ネットワーク、１０４：ストレージシステム、１０５：外部ストレージ、１０６：ポート、１０７：保守Ｉ／Ｆ、１０８：ポート、１０９：プロセッサパッケージ、１１０：キャッシュメモリ、１１１：共有メモリ、１１２：内部ネットワーク、１１３：ドライブ、１１４：ドライブ、１１５：Ｔｉｅｒ（階層）１、１１６：Ｔｉｅｒ（階層）２、１１７：Ｔｉｅｒ（階層）３
【図１】
2014174653.tif 000003
【図２】
2014174653.tif 000004
【図３】
2014174653.tif 000005
【図４】
2014174653.tif 000006
【図５】
2014174653.tif 000007
【図６】
2014174653.tif 000008
【図７】
2014174653.tif 000009
【図８】
2014174653.tif 000010
【図９】
2014174653.tif 000011
【図１０】
2014174653.tif 000012
【図１１】
2014174653.tif 000013
【図１２】
2014174653.tif 000014
【図１３】
2014174653.tif 000015
【図１４】
2014174653.tif 000016
【図１５】
2014174653.tif 000017
【図１６】
2014174653.tif 000018
【図１７】
2014174653.tif 000019
【図１８】
2014174653.tif 000020
【図１９】
2014174653.tif 000021
【図２０】
2014174653.tif 000022
【図２１】
2014174653.tif 000023
【図２２】
2014174653.tif 000024
【図２３】
2014174653.tif 000025
【図２４】
2014174653.tif 000026
【図２５】
2014174653.tif 000027
【図２６】
2014174653.tif 000028
【図２７】
2014174653.tif 000029
【手続補正書】
【提出日】平成27年7月30日(2015.7.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
制御部と、
第１の記憶階層を提供する第１の記憶デバイスと、
前記第１の記憶階層より性能の低い第２の記憶階層を提供する第２の記憶デバイスとを有し、
前記制御部は、
仮想ボリュームを提供し、前記仮想ボリュームのデータは前記第1と前記第２の記憶階層含む複数の記憶階層の何れかに、前記データの所定期間でのアクセス頻度に基づいて決定される第１の閾値に基づいて記憶し、
前記第２の記憶階層に記憶された第１のデータの、前記所定期間より短い期間でのアクセス頻度が第２の閾値よりも高い場合に、前記第１のデータを前記第１の記憶階層に再配置すること
を特徴とするストレージシステム。
【請求項２】
請求項１記載のストレージシステムであって、
前記第２の閾値は、前記第１の閾値よりも高いことを特徴とするストレージシステム。
【請求項３】
請求項１又は２に記載のストレージシステムであって、
前記データの所定期間でのアクセス頻度は前記所定期間の周期で求められるものであることを特徴とするストレージシステム。
【請求項４】
請求項１乃至３の何れか一項に記載のストレージシステムであって、
前記制御部は、前記第１のデータの再配置に応じて、前記第１の記憶階層に記憶され、アクセス頻度が前記第１のデータよりも少ない第２のデータを前記第２の記憶階層に再配置することを特徴とするストレージシステム。
【請求項５】
請求項４に記載のストレージシステムであって、
前記制御部は、前記第１の記憶階層に再配置した前記第１のデータのアクセス頻度が第３の閾値より低くなった場合には、前記第１のデータを前記第２の記憶階層に再々配置するとともに、前記第１の記憶階層から前記第２の記憶階層に再配置されているデータのうちの１のデータを前記第１の記憶階層に再々配置し、
前記第３の閾値は、前記第１の閾値より高く、前記第２の閾値より低いことを特徴とするストレージシステム。
【請求項６】
請求項１乃至５の何れか一項に記載のストレージシステムであって、
前記第１のデータへのＩ／Ｏ要求の処理の過程で前記第１のデータを前記再配置すべきかを判定することを特徴とするストレージシステム。
【請求項７】
請求項１乃至６の何れか一項に記載のストレージシステムであって、
前記仮想ボリュームは複数の仮想ページを有し、
前記所定期間でのアクセス頻度は前記仮想ページへのＩ／Ｏ要求の数であることを特徴とするストレージシステム。
【請求項８】
請求項１乃至７の何れか一項に記載のストレージシステムであって、
前記所定期間より短い期間でのアクセス頻度は、前記第１のデータに所定回数アクセスが生じた期間から求められることを特徴とするストレージシステム。
【請求項９】
請求項１乃至３の何れか一項に記載のストレージシステムであって、
前記制御部は、更に、
前記第１のデータを前記第２の記憶階層から前記第１の記憶階層に再配置するとともに、前記第１の記憶階層に記憶される第２のデータを前記第２の記憶階層に再配置し、
前記第２のデータは前記所定期間でのアクセス頻度と、前記所定期間より短い期間でのアクセス頻度とに基づいて選択されることを特徴とするストレージシステム。
【請求項１０】
請求項４、５、９の何れか一項に記載のストレージシステムであって、
前記第１の記憶階層の容量が閾値以下になった場合に前記第２のデータは前記第２の記憶階層に再配置されることを特徴とするストレージシステム。
【請求項１１】
請求項１乃至１０の何れか一項に記載のストレージシステムであって、
前記第２の記憶階層から前記第１の記憶階層に再配置されるデータの数は、少なくとも前記第1の記憶デバイスの利用年数と、前記第１の記憶階層に再配置されたデータの累積数に基づいて制御されることを特徴とするストレージシステム。
【請求項１２】
請求項１乃至１１の何れか一項に記載のストレージシステムであって、
前記第２の記憶階層から前記第１の記憶階層に再配置されるデータの数は、少なくとも前記第１の記憶階層の寿命に基づいて制御されることを特徴とするストレージシステム。
【請求項１３】
請求項１乃至１２の何れか一項に記載のストレージシステムであって、
前記制御部は、更に、
前記第１の記憶階層と前記第２の記憶階層を複数のプールとして管理し、
前記所定期間より短い期間でのアクセス頻度に基づいての前記再配置を実行するか否かを前記プール単位で設定することを特徴とするストレージシステム。
【請求項１４】
ストレージシステムにおいて実行されるデータ処理方法であって、
前記ストレージシステムは、
制御部と、
第１の記憶階層を提供する第１の記憶デバイスと、
前記第１の記憶階層より性能の低い第２の記憶階層を提供する第２の記憶デバイスとを有し、
前記制御部は、
仮想ボリュームを提供し、前記仮想ボリュームのデータは前記第1と前記第２の記憶階層含む複数の記憶階層の何れかに、前記データの所定期間でのアクセス頻度に基づいて決定される第１の閾値に基づいて記憶し、
前記第２の記憶階層に記憶された第１のデータの、前記所定期間より短い期間でのアクセス頻度が第２の閾値よりも高い場合に、前記第１のデータを前記第１の記憶階層に再配置すること
を特徴とするデータ処理方法。
【請求項１５】
請求項１４記載のデータ処理方法であって、
前記第２の閾値は、前記第１の閾値よりも高いことを特徴とするデータ処理方法。
【請求項１６】
請求項１４又は１５に記載のデータ処理方法であって、
前記データの所定期間でのアクセス頻度は前記所定期間の周期で求められるものであることを特徴とするデータ処理方法。
【請求項１７】
請求項１４乃至１６の何れか一項に記載のデータ処理方法であって、
前記制御部は、前記第１のデータの再配置に応じて、前記第１の記憶階層に記憶され、アクセス頻度が前記第１のデータよりも少ない第２のデータを前記第２の記憶階層に再配置することを特徴とするデータ処理方法。
【請求項１８】
請求項１７に記載のデータ処理方法であって、
前記制御部は、前記第１の記憶階層に再配置した前記第１のデータのアクセス頻度が第３の閾値より低くなった場合には、前記第１のデータを前記第２の記憶階層に再々配置するとともに、前記第１の記憶階層から前記第２の記憶階層に再配置されているデータのうちの１のデータを前記第１の記憶階層に再々配置し、
前記第３の閾値は、前記第１の閾値より高く、前記第２の閾値より低いことを特徴とするデータ処理方法。
【請求項１９】
請求項１４乃至１８の何れか一項に記載のストレージシステムであって、
前記第１のデータへのＩ／Ｏ要求の処理の過程で前記第１のデータを前記再配置すべきかを判定することを特徴とするストレージシステム。
【請求項２０】
請求項１４乃至１６の何れか一項に記載のデータ処理方法であって、
前記制御部は、更に、
前記第１のデータを前記第２の記憶階層から前記第１の記憶階層に再配置するとともに、前記第１の記憶階層に記憶される第２のデータを前記第２の記憶階層に再配置し、
前記第２のデータは前記所定期間でのアクセス頻度と、前記所定期間より短い期間でのアクセス頻度とに基づいて選択されることを特徴とするデータ処理方法。
【請求項２１】
請求項１７、１８、２０の何れか一項に記載のデータ処理方法であって、
前記第１の記憶階層の容量が閾値以下になった場合に前記第２のデータは前記第２の記憶階層に再配置されることを特徴とするデータ処理方法。
【請求項２２】
請求項１４乃至２１の何れか一項に記載のデータ処理方法であって、
前記第２の記憶階層から前記第１の記憶階層に再配置されるデータの数は、少なくとも前記第1の記憶デバイスの利用年数と、前記第１の記憶階層に再配置されたデータの累積数に基づいて制御されることを特徴とするデータ処理方法。
【請求項２３】
請求項１４乃至２２の何れか一項に記載のデータ処理方法であって、
前記第２の記憶階層から前記第１の記憶階層に再配置されるデータの数は、少なくとも前記第１の記憶階層の寿命に基づいて制御されることを特徴とするデータ処理方法。
【請求項２４】
請求項１４乃至２３の何れか一項に記載のデータ処理方法であって、
前記制御部は、更に、
前記第１の記憶階層と前記第２の記憶階層を複数のプールとして管理し、
前記所定期間より短い期間でのアクセス頻度に基づいての前記再配置を実行するか否かを前記プール単位で設定することを特徴とするデータ処理方法。
【手続補正書】
【提出日】平成28年11月11日(2016.11.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
制御部と、
第１の記憶階層を提供する第１の記憶デバイスと、
前記第１の記憶階層より性能の低い第２の記憶階層を提供する第２の記憶デバイスとを有し、
前記制御部は、
仮想ボリュームを提供し、前記仮想ボリュームのデータは前記第１と前記第２の記憶階層を含む複数の記憶階層の何れかに、前記データの所定期間でのアクセス頻度に基づいて決定される第１の閾値と、前記所定期間でのアクセス頻度とを比較することで記憶され、
前記仮想ボリュームのデータのうち前記第２の記憶階層に記憶された第１のデータの、前記所定期間より短い期間でのアクセス頻度が第２の閾値よりも高い場合に、前記第１のデータを前記第１の記憶階層に再配置すること
を特徴とするストレージシステム。
【請求項２】
請求項１記載のストレージシステムであって、
前記第２の閾値は、前記第１の閾値よりも高いことを特徴とするストレージシステム。
【請求項３】
請求項１又は２に記載のストレージシステムであって、
前記データの所定期間でのアクセス頻度は前記所定期間の周期で求められるものであることを特徴とするストレージシステム。
【請求項４】
請求項１乃至３の何れか一項に記載のストレージシステムであって、
前記制御部は、前記第１のデータの再配置に応じて、前記第１の記憶階層に記憶され、アクセス頻度が前記第１のデータよりも少ない第２のデータを前記第２の記憶階層に再配置することを特徴とするストレージシステム。
【請求項５】
請求項４に記載のストレージシステムであって、
前記制御部は、前記第１の記憶階層に再配置した前記第１のデータのアクセス頻度が第３の閾値より低くなった場合には、前記第１のデータを前記第２の記憶階層に再々配置するとともに、前記第１の記憶階層から前記第２の記憶階層に再配置されているデータのうちの１のデータを前記第１の記憶階層に再々配置し、
前記第３の閾値は、前記第１の閾値より高く、前記第２の閾値より低いことを特徴とするストレージシステム。
【請求項６】
請求項１乃至５の何れか一項に記載のストレージシステムであって、
前記第１のデータへのＩ／Ｏ要求の処理の過程で前記第１のデータを前記再配置すべきかを判定することを特徴とするストレージシステム。
【請求項７】
請求項１乃至６の何れか一項に記載のストレージシステムであって、
前記仮想ボリュームは複数の仮想ページを有し、
前記所定期間でのアクセス頻度は前記仮想ページへのＩ／Ｏ要求の数であることを特徴とするストレージシステム。
【請求項８】
請求項１乃至７の何れか一項に記載のストレージシステムであって、
前記所定期間より短い期間でのアクセス頻度は、前記第１のデータに所定回数アクセスが生じた期間から求められることを特徴とするストレージシステム。
【請求項９】
請求項１乃至３の何れか一項に記載のストレージシステムであって、
前記制御部は、更に、
前記第１のデータを前記第２の記憶階層から前記第１の記憶階層に再配置するとともに、前記第１の記憶階層に記憶される第２のデータを前記第２の記憶階層に再配置し、
前記第２のデータは前記所定期間でのアクセス頻度と、前記所定期間より短い期間でのアクセス頻度とに基づいて選択されることを特徴とするストレージシステム。
【請求項１０】
請求項４、５、９の何れか一項に記載のストレージシステムであって、
前記第１の記憶階層の容量が閾値以下になった場合に前記第２のデータは前記第２の記憶階層に再配置されることを特徴とするストレージシステム。
【請求項１１】
請求項１乃至１０の何れか一項に記載のストレージシステムであって、
前記第２の記憶階層から前記第１の記憶階層に再配置されるデータの数は、少なくとも前記第１の記憶デバイスの利用年数と、前記第１の記憶階層に再配置されたデータの累積数に基づいて制御されることを特徴とするストレージシステム。
【請求項１２】
請求項１乃至１１の何れか一項に記載のストレージシステムであって、
前記第２の記憶階層から前記第１の記憶階層に再配置されるデータの数は、少なくとも前記第１の記憶階層の寿命に基づいて制御されることを特徴とするストレージシステム。
【請求項１３】
請求項１乃至１２の何れか一項に記載のストレージシステムであって、
前記制御部は、更に、
前記第１の記憶階層と前記第２の記憶階層を複数のプールとして管理し、
前記所定期間より短い期間でのアクセス頻度に基づいての前記再配置を実行するか否かを前記プール単位で設定することを特徴とするストレージシステム。
【請求項１４】
ストレージシステムにおいて実行されるデータ処理方法であって、
前記ストレージシステムは、
制御部と、
第１の記憶階層を提供する第１の記憶デバイスと、
前記第１の記憶階層より性能の低い第２の記憶階層を提供する第２の記憶デバイスとを有し、
前記制御部は、
仮想ボリュームを提供し、前記仮想ボリュームのデータは前記第１と前記第２の記憶階層を含む複数の記憶階層の何れかに、前記データの所定期間でのアクセス頻度に基づいて決定される第１の閾値と、前記所定期間でのアクセス頻度とを比較することで記憶され、
前記仮想ボリュームのデータのうち前記第２の記憶階層に記憶された第１のデータの、前記所定期間より短い期間でのアクセス頻度が第２の閾値よりも高い場合に、前記第１のデータを前記第１の記憶階層に再配置すること
を特徴とするデータ処理方法。
【請求項１５】
請求項１４記載のデータ処理方法であって、
前記第２の閾値は、前記第１の閾値よりも高いことを特徴とするデータ処理方法。
【請求項１６】
請求項１４又は１５に記載のデータ処理方法であって、
前記データの所定期間でのアクセス頻度は前記所定期間の周期で求められるものであることを特徴とするデータ処理方法。
【請求項１７】
請求項１４乃至１６の何れか一項に記載のデータ処理方法であって、
前記制御部は、前記第１のデータの再配置に応じて、前記第１の記憶階層に記憶され、アクセス頻度が前記第１のデータよりも少ない第２のデータを前記第２の記憶階層に再配置することを特徴とするデータ処理方法。
【請求項１８】
請求項１７に記載のデータ処理方法であって、
前記制御部は、前記第１の記憶階層に再配置した前記第１のデータのアクセス頻度が第３の閾値より低くなった場合には、前記第１のデータを前記第２の記憶階層に再々配置するとともに、前記第１の記憶階層から前記第２の記憶階層に再配置されているデータのうちの１のデータを前記第１の記憶階層に再々配置し、
前記第３の閾値は、前記第１の閾値より高く、前記第２の閾値より低いことを特徴とするデータ処理方法。
【請求項１９】
請求項１４乃至１８の何れか一項に記載のストレージシステムであって、
前記第１のデータへのＩ／Ｏ要求の処理の過程で前記第１のデータを前記再配置すべきかを判定することを特徴とするストレージシステム。
【請求項２０】
請求項１４乃至１６の何れか一項に記載のデータ処理方法であって、
前記制御部は、更に、
前記第１のデータを前記第２の記憶階層から前記第１の記憶階層に再配置するとともに、前記第１の記憶階層に記憶される第２のデータを前記第２の記憶階層に再配置し、
前記第２のデータは前記所定期間でのアクセス頻度と、前記所定期間より短い期間でのアクセス頻度とに基づいて選択されることを特徴とするデータ処理方法。
【請求項２１】
請求項１７、１８、２０の何れか一項に記載のデータ処理方法であって、
前記第１の記憶階層の容量が閾値以下になった場合に前記第２のデータは前記第２の記憶階層に再配置されることを特徴とするデータ処理方法。
【請求項２２】
請求項１４乃至２１の何れか一項に記載のデータ処理方法であって、
前記第２の記憶階層から前記第１の記憶階層に再配置されるデータの数は、少なくとも前記第１の記憶デバイスの利用年数と、前記第１の記憶階層に再配置されたデータの累積数に基づいて制御されることを特徴とするデータ処理方法。
【請求項２３】
請求項１４乃至２２の何れか一項に記載のデータ処理方法であって、
前記第２の記憶階層から前記第１の記憶階層に再配置されるデータの数は、少なくとも前記第１の記憶階層の寿命に基づいて制御されることを特徴とするデータ処理方法。
【請求項２４】
請求項１４乃至２３の何れか一項に記載のデータ処理方法であって、
前記制御部は、更に、
前記第１の記憶階層と前記第２の記憶階層を複数のプールとして管理し、
前記所定期間より短い期間でのアクセス頻度に基づいての前記再配置を実行するか否かを前記プール単位で設定することを特徴とするデータ処理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
各仮想ボリュームを構成するページ２０２毎にホストからのＩ／Ｏ処理の特性が存在する（これをアクセスローカリティと呼ぶ）。例えば、Ｉ／Ｏの頻度が高いページと低いページが混在する場合、一般的にはＩ／Ｏの頻度が高いページを上位の階層に配置したほうが、システム全体の性能を向上することができる。例えば、ＳＳＤの階層（１１５）は１００ＩＯＰ、ＳＡＳの階層（１１６）は１０ＩＯＰＳ処理できるとする。ここで５０ＩＯＰＳの特性を持つページ２０２ＣにＳＡＳ階層が割り当たり、２０ＩＯＰＳの特性を持つページ２０２ＡにＳＳＤ階層が割りあたっている場合、ストレージシステム１０４は、基本的にホストからのページに対するＩＯＰＳの比率は一定であることが多いため、全体として１０（ＳＡＳ階層の上限）＋４＝１４ＩＯＰＳの性能しか発揮できない。この状態をネック状態と呼ぶ。ページ２０２ＣをＳＡＳから、ＳＳＤの階層へプロモーションすることができれば、ストレージシステム１０４は、全体として５０＋２０＝７０ＩＯＰＳの性能を発揮できる。
【国際調査報告】
2014174653.tif 000030
2014174653.tif 000031
2014174653.tif 000032
2014174653.tif 000033