(57)【特許請求の範囲】
【請求項１】
第１の記憶装置と、
前記第１の記憶装置よりも高いデータアクセス性能を有する第２の記憶装置と、
前記第１の記憶装置に含まれる複数の単位領域の各々に関するアクセス情報を収集する収集部と、
前記収集部が収集した前記アクセス情報に基づき第１のパラメータを用いて、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域を特定する第１特定部と、
前記第１特定部が特定した前記第１の記憶装置における前記移動対象領域のデータを前記第２の記憶装置に移動させる移動処理部と、
前記収集部が収集した前記アクセス情報に基づき複数のパラメータをそれぞれ用いて、前記パラメータ毎に、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域候補を特定する第２特定部と、
前記収集部によって収集された前記アクセス情報に基づき、前記第２特定部によって前記複数のパラメータ毎に特定された前記移動対象領域候補のそれぞれに対するデータアクセスの発生数を計数する計数部と、
前記計数部によって計数された前記データアクセスの発生数が最も多い前記パラメータを推奨パラメータとして決定し、前記第１特定部が用いる前記第１のパラメータを前記推奨パラメータを用いて更新する更新部と
を備えることを特徴とする、階層ストレージ装置。
【請求項２】
前記パラメータが、前記単位領域のＩＯ集中が継続して発生した時間を表す継続時間情報であることを特徴とする、請求項１記載の階層ストレージ装置。
【請求項３】
前記パラメータが、前記第１の記憶装置と前記第２の記憶装置との間でデータを同時に移動させる前記移動対象領域の上限数を表す同時最大移動数であることを特徴とする、請求項１又は２記載の階層ストレージ装置。
【請求項４】
前記パラメータが、各単位領域に発生したデータアクセス数の合計に占める割合を表すデータアクセス率であることを特徴とする、請求項１〜３のいずれか１項に記載の階層ストレージ装置。
【請求項５】
第１の記憶装置と前記第１の記憶装置よりも高いデータアクセス性能を有する第２の記憶装置と接続される階層ストレージ制御装置であって、
前記第１の記憶装置に含まれる複数の単位領域の各々に関するアクセス情報を収集する収集部と、
前記収集部が収集した前記アクセス情報に基づき第１のパラメータを用いて、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域を特定する第１特定部と、
前記第１特定部が特定した前記第１の記憶装置における前記移動対象領域のデータを前記第２の記憶装置に移動させる移動処理部と、
前記収集部が収集した前記アクセス情報に基づき複数のパラメータをそれぞれ用いて、前記パラメータ毎に、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域候補を特定する第２特定部と、
前記収集部によって収集された前記アクセス情報に基づき、前記第２特定部によって前記複数のパラメータ毎に特定された前記移動対象領域候補のそれぞれに対するデータアクセスの発生数を計数する計数部と、
前記計数部によって計数された前記データアクセスの発生数が最も多い前記パラメータを推奨パラメータとして決定し、前記第１特定部が用いる前記第１のパラメータを前記推奨パラメータを用いて更新する更新部と
を備えることを特徴とする、階層ストレージ制御装置。
【請求項６】
第１の記憶装置と前記第１の記憶装置よりも高いデータアクセス性能を有する第２の記憶装置と接続されるコンピュータに、
前記第１の記憶装置に含まれる複数の単位領域の各々に関するアクセス情報を収集し、
収集した前記アクセス情報に基づき第１のパラメータを用いて、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域を特定し、
特定した前記第１の記憶装置における前記移動対象領域のデータを前記第２の記憶装置に移動させ、
収集した前記アクセス情報に基づき複数のパラメータをそれぞれ用いて、前記パラメータ毎に、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域候補を特定し、
収集された前記アクセス情報に基づき、前記複数のパラメータ毎に特定された前記移動対象領域候補のそれぞれに対するデータアクセスの発生数を計数し、
計数された前記データアクセスの発生数が最も多い前記パラメータを推奨パラメータとして決定し、前記第１のパラメータを前記推奨パラメータを用いて更新する
処理を実行させることを特徴とする、階層ストレージ制御プログラム。
【請求項７】
第１の記憶装置と前記第１の記憶装置よりも高いデータアクセス性能を有する第２の記憶装置と接続される階層ストレージ制御装置において、
前記第１の記憶装置に含まれる複数の単位領域の各々に関するアクセス情報を収集する処理と、
収集した前記アクセス情報に基づき第１のパラメータを用いて、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域を特定する処理と、
特定した前記第１の記憶装置における前記移動対象領域のデータを前記第２の記憶装置に移動させる処理と、
収集した前記アクセス情報に基づき複数のパラメータをそれぞれ用いて、前記パラメータ毎に、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域候補を特定する処理と、
収集された前記アクセス情報に基づき、前記複数のパラメータ毎に特定された前記移動対象領域候補のそれぞれに対するデータアクセスの発生数を計数する処理と、
計数された前記データアクセスの発生数が最も多い前記パラメータを推奨パラメータとして決定し、前記第１のパラメータを前記推奨パラメータを用いて更新する処理と
を実行させることを特徴とする、階層ストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層ストレージ装置，階層ストレージ制御装置，階層ストレージ制御プログラム及び階層ストレージ制御方法に関する。
【背景技術】
【０００２】
ストレージシステムのコストパフォーマンスを向上させる目的で、ＳＳＤ（Solid State Drive）とＨＤＤ（Hard Disk Drive）とを組み合わせた階層ストレージシステムが知られている。階層ストレージシステムにおいては、一定期間にアクセス頻度の高いデータをＳＳＤに置くことでデータアクセスの高速化を実現する。
ファイル共有ストレージへのアクセスパターンにおいては、記憶領域の狭い範囲に数分から数十分ＩＯ（Input Output）が集中し、時間と共に別の領域に移動する特徴があるため、長い期間の頻度でデータを移動する従来型の階層ストレージシステムは有効でない。
【０００３】
そこで、近年においては、階層ストレージシステムにおいて、短い時間でＩＯ集中が発生した領域をその都度捉えてＳＳＤに移動するＯＴＦ−ＡＳＴ（On-The-Fly-Automated Storage Tiering）がさらに知られている。
図９はＯＴＦ−ＡＳＴを説明するための図である。図９に示す制御装置１１０は、ＳＳＤ１２０とＨＤＤ１３０とに接続され、ストレージシステムを構成する。
【０００４】
ＯＴＦ−ＡＳＴにおいては、図示しないサーバから認識される１つのストレージボリュームであるＬＵＮを、予め決められたサイズ（例えば１ＧＢｙｔｅ）で分割した１単位であるサブＬＵＮ（ｓｕｂＬＵＮ）単位で管理する。
制御装置１１０は、分析・構成変更エンジン１１１と階層ドライバ１１２とを備える。分析・構成変更エンジン１１１は、どのサブＬＵＮをＳＳＤに移動すべきかの判断を行なう。階層ドライバ１１２は、ＳＳＤ１２０とＨＤＤ１３０との間におけるサブＬＵＮの移動と、ＳＳＤ１２０もしくはＨＤＤ１３０へのユーザＩＯの振り分けを行なう。
【０００５】
階層ドライバ１１２は、ＨＤＤ１３０とＳＳＤ１２０との間における、サブＬＵＮ単位でのデータの移動（転送）を制御する。
図９に示すように、階層ドライバ１１２は、ディスパッチャ１１２ａ，階層テーブル１１２ｂおよび一時バッファ１１２ｃを有する。
ディスパッチャ１１２ａは、階層テーブル１１２ｂを参照して、ＨＤＤドライバ１１４およびＳＳＤドライバ１１３に対して、サブＬＵＮ単位でのデータの移動（転送）の指示を行なう。ディスパッチャ１１２ａは、例えば、デバイス間のデータコピーを非同期で実行するｋｃｏｐｙｄの機能を用いてＳＳＤ１２０とＨＤＤ１３０との間でサブＬＵＮの移動を行なう。
【０００６】
階層テーブル１１２ｂは、ＳＳＤ１２０とＨＤＤ１３０との関連を示すテーブルである。一時バッファ１１２ｃは、ＩＯ要求を一時的に格納する。
ＳＳＤドライバ１１３は、階層ドライバ１１２の指示に基づいてＳＳＤ１２０へのアクセスを制御する。ＨＤＤドライバ１１４は、階層ドライバ１１２の指示に基づいてＨＤＤ１３０へのアクセスを制御する。
【０００７】
ここで、分析・構成変更エンジン１１１の動作について説明する。分析・構成変更エンジン１１１は、ログプール１１１ａ，ワークロード分析部１１１ｂおよび移動指示部１１１ｃを備える。ログプール１１１ａは、例えば１分間隔でサブＬＵＮごとのＩＯ数の集計・蓄積を行なう。ログプール１１１ａは、例えば、ｂｌｋｔｒａｃｅを用いてＳＳＤ１２０やＨＤＤ１３０についてトレースされたＩＯの情報を収集する。
【０００８】
ワークロード分析部１１１ｂは、ログプール１１１ａに蓄えられた集計データから、直近の１個のデータを取り出して移動判定を行なう。具体的には、ワークロード分析部１１１ｂは以下の処理を行なう。
（処理１）ログプール１１１ａから直前に登録されたデータを１つ取り出す。
（処理２）ＩＯ数が多い順にサブＬＵＮの並べ替えを行ない、上位ｎ個までのサブＬＵＮを抽出して、それらのＩＯ数を合計する。
【０００９】
（処理３）上記処理２のＩＯ数の合計値が全ＩＯ数のｍ％未満である場合には、他サブＬＵＮとの負荷の差が十分に大きくなく、サブＬＵＮをＳＳＤ１２０に移動するメリットがないとみなし、後述する処理６へ移行する。
（処理４）上記処理２で抽出したサブＬＵＮのうち、ｃ回連続して抽出されたサブＬＵＮをＳＳＤ１２０へ移動させるサブＬＵＮと判定する。このようなサブＬＵＮにおいては高負荷が持続するものと期待できるからである。
【００１０】
（処理５）上記処理２で抽出したサブＬＵＮをワークロード分析部１１１ｂ内で一時保存させる。さらに、以前に保存したサブＬＵＮのデータの内、ｃ回前のデータは廃棄する。
（処理６）例えば１分間スリープした後に、処理１へ戻る。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１４−１６４５１０号公報
【特許文献２】特表２０１３−５４３９９６号公報
【特許文献３】特開２０１３−２４６７７３号公報
【特許文献４】特開２０１３−１６８１６２号公報
【非特許文献】
【００１２】
【非特許文献１】大江和一、外2名、“On-The-Fly-Automated Storage Tiering (OTF-AST)の提案”、平成26年3月7日、情報処理学会研究報告、Vol.2014-OS-128 No.6
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上記処理１〜６において、ｎ，ｍ，ｃの各値は、ＨＤＤ１３０とＳＳＤ１２０との間で移動するサブＬＵＮの数と移動タイミングを定めるためのチューニングパラメータであり、ＯＴＦ−ＡＳＴにおいて生じる負荷（ワークロード）に応じて最適値が異なる。
従来のストレージシステムにおいては、直前の数日間でのワークロード分析結果に基づいてｎ，ｍ，ｃの各値を求め、これらのｎ，ｍ，ｃの各値を用いてＯＴＦ−ＡＳＴ制御を行なっている。すなわち、直前の数日間と同じアクセスパターンが続くことを前提にＯＴＦ−ＡＳＴの制御を行なっている。
【００１４】
従って、ワークロードの変化やユーザからのアクセスパターンの変化に応じた効率的なＯＴＦ−ＡＳＴ制御を行なうことができず、階層ストレージシステムとしての性能を十分に発揮することができないという課題がある。
１つの側面では、本発明は、階層ストレージシステムにおいて、ワークロードの変化に応じて効果的に性能を引き出すことができるようにすることを目的とする。
【課題を解決するための手段】
【００１５】
このため、この階層ストレージ装置は、第１の記憶装置と、前記第１の記憶装置よりも高いデータアクセス性能を有する第２の記憶装置と、前記第１の記憶装置に含まれる複数の単位領域の各々に関するアクセス情報を収集する収集部と、前記収集部が収集した前記アクセス情報に基づき第１のパラメータを用いて、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域を特定する第１特定部と、前記第１特定部が特定した前記第１の記憶装置における前記移動対象領域のデータを前記第２の記憶装置に移動させる移動処理部と、前記収集部が収集した前記アクセス情報に基づき複数のパラメータをそれぞれ用いて、前記パラメータ毎に、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域候補を特定する第２特定部と、前記収集部によって収集された前記アクセス情報に基づき、前記第２特定部によって前記複数のパラメータ毎に特定された前記移動対象領域候補のそれぞれに対するデータアクセスの発生数を計数する計数部と、前記計数部によって計数された前記データアクセスの発生数が最も多い前記パラメータを推奨パラメータとして決定し、前記第１特定部が用いる前記第１のパラメータを前記推奨パラメータを用いて更新する更新部とを備える。
【発明の効果】
【００１６】
一実施形態によれば、階層ストレージ装置において記憶装置を効率よく動作させることができ、装置性能を向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】実施形態の一例としての階層ストレージ装置の構成を示す図である。
【図２】（ａ），（ｂ）は実施形態の一例としての階層ストレージ装置における階層管理部１１の処理を説明するための図である。
【図３】実施形態の一例としての階層ストレージ装置におけるＳＳＤへの移動候補抽出を説明するための図である。
【図４】実施形態の一例としての階層ストレージ装置におけるＳＳＤへの移動判定手法を説明するための図である。
【図５】実施形態の一例としての階層ストレージ装置におけるＨＤＤへの移動判定手法を説明するための図である。
【図６】実施形態の一例としての階層ストレージ装置におけるＨＤＤへの移動判定手法を説明するための図である。
【図７】実施形態の一例としての階層ストレージ装置における性能推定部によって集計される情報例を示す図である。
【図８】階層ストレージ制御装置のハードウェア構成例を示す図である。
【図９】ＯＴＦ−ＡＳＴを説明するための図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本階層ストレージ装置，階層ストレージ制御装置，階層ストレージ制御プログラム及び階層ストレージ制御方法に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１９】
図１は実施形態の一例としての階層ストレージ装置１の構成を示す図である。図１に示すように、階層ストレージ装置（ストレージ装置）１は、階層ストレージ制御装置１０，ＳＳＤ２０，及びＨＤＤ３０をそなえる。
階層ストレージ制御装置１０は、図示しない、入力装置やネットワークを介したホスト装置からのユーザＩＯに応じて、ＳＳＤ２０及びＨＤＤ３０への種々のアクセスを行なうことができる。例えば、階層ストレージ制御装置１０は、ＳＳＤ２０及びＨＤＤ３０へのリード又はライト等のアクセスを行なうことができる。階層ストレージ制御装置１０としては、ＰＣ（Personal Computer）やサーバ，又はコントローラモジュール（ＣＭ；Controller Module）等の情報処理装置が挙げられる。
【００２０】
また、本実施形態に係る階層ストレージ制御装置１０は、ユーザＩＯのアクセス頻度に応じて、アクセス頻度が低い領域をＨＤＤ３０に配置する一方、アクセス頻度が高い領域をＳＳＤ２０に配置する、動的階層制御を行なうことができる。
ＨＤＤ（第１の記憶装置）３０は、種々のデータやプログラム等を格納する記憶装置の一例であり、ＳＳＤ（第２の記憶装置）２０は、ＨＤＤ３０とは異なる性能の（例えばより高速な）記憶装置の一例である。本実施形態において、互いに異なる記憶装置（以下、便宜上、第１及び第２の記憶装置と表記する場合がある）として、ＨＤＤ３０等の磁気ディスク装置，ＳＳＤ２０等の半導体ドライブ装置をそれぞれ例に挙げているが、これに限定されるものではない。第１及び第２の記憶装置として、互いに性能差（例えばリード／ライトの速度差）のある種々の記憶装置が用いられればよい。
【００２１】
ＳＳＤ２０及びＨＤＤ３０は、階層ストレージ装置１におけるストレージボリュームを構成する。
以下、ホスト装置等から認識される１つのストレージボリュームをＬＵＮ（Logical Unit Number）という。さらに、ＬＵＮを予め決められたサイズ（例えば１ＧＢｙｔｅ）で分割した１単位（単位領域）をサブＬＵＮ（ｓｕｂ  ＬＵＮ）という。なお、サブＬＵＮをセグメントという場合もある。サブＬＵＮにはＬＢＡ（Logical Block Addressing）が小さい順に識別情報であるサブＬＵＮ  ＩＤが採番され、設定される。例えば、３００ＧＢの容量があるＬＵＮを１ＧＢ単位で分割すると３００個のサブＬＵＮを持つことになり、１つのサブＬＵＮのサイズは１ＧＢである（図２（ａ），（ｂ）参照）。以下、サブＬＵＮのサイズが１ＧＢである例について示す。本例においては、サブＬＵＮ  ＩＤは１から始まって３００で終了するものとする。このサブＬＵＮ  ＩＤを用いることで個々のサブＬＵＮを特定することができる。
【００２２】
ＳＳＤ２０及びＨＤＤ３０の各々は、ストレージボリューム上のサブＬＵＮ（単位領域）のデータを格納可能な記憶領域を含む。階層ストレージ制御装置１０は、サブＬＵＮ単位で、ＳＳＤ２０−ＨＤＤ３０間の領域移動を制御する。
なお、図１では、階層ストレージ装置１がそれぞれ１つのＳＳＤ２０及びＨＤＤ３０をそなえるものとしているが、これに限定されるものではなく、それぞれ複数のＳＳＤ２０及びＨＤＤ３０をそなえてもよい。
【００２３】
［１］階層ストレージ制御装置の説明
次に、階層ストレージ制御装置１０の詳細について説明する。
階層ストレージ制御装置１０は、一例として、図１に示すように、階層管理部１１，階層ドライバ１２，ＳＳＤドライバ１３，パラメータ評価部１５及びＨＤＤドライバ１４をそなえる。なお、例えば、階層管理部１１は、ユーザ空間で実行されるプログラムとして実現され、階層ドライバ１２，ＳＳＤドライバ１３，及びＨＤＤドライバ１４は、ＯＳ（Operating System）空間で実行されるプログラムとして実現される。
【００２４】
階層ストレージ制御装置１０は、短い時間でＩＯ集中が発生した領域をその都度捉えてＳＳＤ２０に移動するＯＴＦ−ＡＳＴを実現する。
本実施形態においては、階層ストレージ制御装置１０は、例えば、Ｌｉｎｕｘ（登録商標）  ｄｅｖｉｃｅ−ｍａｐｐｅｒの機能を用いるものとする。ｄｅｖｉｃｅ−ｍａｐｐｅｒがストレージボリュームをサブＬＵＮ単位で監視し、高負荷となったサブＬＵＮのデータをＨＤＤ３０からＳＳＤ２０へ移動することで高負荷領域へのＩＯを処理する。
【００２５】
例えば、階層ストレージ制御装置１０のユーザ空間で実行されるアプリケーションがデータ格納先の変更要求としてコピー指示を発行すると、ＯＳ空間で実行される階層ドライバ１２は、コピー指示を受け取ると、格納先を変更するため、デバイス間のデータコピーを非同期で実行するｋｃｏｐｙｄに、ＳＳＤ２０−ＨＤＤ３０間のコピー（移動）を指示する。すなわち、ＨＤＤ３０とＳＳＤ２０との間におけるサブＬＵＮの移動は、ｋｃｏｐｙｄによって実現される。
【００２６】
なお、ｋｃｏｐｙｄによる移動中、ユーザからＩＯ要求が発行されると、階層ドライバ１２は、メモリ等の図示しないペンディングキューにＩＯ要求を格納し、移動完了まで待ち合わせを行なう。なお、ｄｅｖｉｃｅ−ｍａｐｐｅｒおよびｋｃｏｐｙｄはコンピュータプログラムとして実装されている。
階層管理部１１は、サブＬＵＮに対するデータアクセスを分析することで、ＨＤＤ３０からＳＳＤ２０へデータを移動させるサブＬＵＮを特定（移動候補抽出）する。また、階層管理部１１は、ＳＳＤ２０からＨＤＤ３０に対して、または、ＨＤＤ３０からＳＳＤ２０に対して、サブＬＵＮのデータを移動させる。
【００２７】
階層管理部１１は、例えばｂｌｋｔｒａｃｅを用いて、ＳＳＤ２０又は／及びＨＤＤ３０についてトレースされたＩＯの情報に基づいて、領域移動を行なうサブＬＵＮを判定し、判定したサブＬＵＮのデータの移動を階層ドライバ１２に指示する。ここで、ｂｌｋｔｒａｃｅは、ブロックＩＯレベルでのＩＯをトレースするコマンドである。階層管理部１１は、ｂｌｋｔｒａｃｅに代えて、ディスクＩＯの利用状況を確認するコマンドであるｉｏｓｔａｔを用いてもよい。なお、ｂｌｋｔｒａｃｅ及びｉｏｓｔａｔはＯＳ空間で実行される。
【００２８】
階層管理部１１は、図１に示すように、データ収集部（収集部）１１ａ，第１ワークロード分析部１１ｂおよび移動指示部１１ｃとしての機能をそなえる。
階層管理部１１は、例えば、Ｌｉｎｕｘ上においてはログプール（Log Pool），ワークロード分析およびサブＬＵＮ移動指示の３つのコンポーネントを有する分割・構成変更エンジンとして実装される。そして、これらのログプール，ワークロード分析およびサブＬＵＮ移動指示の各コンポーネントが、図１に示すデータ収集部１１ａ，第１ワークロード分析部１１ｂおよびサブＬＵＮ移動指示部１１ｃとしての機能をそれぞれ実現する。
【００２９】
データ収集部（収集部）１１ａは、ｂｌｋｔｒａｃｅを用いてＳＳＤ２０又は／ＨＤＤ３０についてトレースされたＩＯの情報を所定間隔（例えば１分間隔）で収集する。データ収集部１１ａは、ＩＯトレースにより、例えばｔｉｍｅｓｔａｍｐやＬＢＡ（Logical Block Addressing ），ｒ／ｗ（ｒｅａｄ／ｗｒｉｔｅ），ｌｅｎｇｔｈ等の情報を採取する。ＬＢＡからはサブＬＵＮ  ＩＤを求めることができる。
【００３０】
そして、データ収集部１１ａは、収集した情報に基づいて、サブＬＵＮごとのＩＯ数を集計する。
データ収集部１１ａは、一定時間間隔（ｔ）ごとにサブＬＵＮ単位でＩＯ数を集計する。例えば、階層管理部１１が１分間隔でサブＬＵＮの移動判定を行なう場合には、この一定時間間隔（ｔ）は１分に設定される。
【００３１】
図２（ａ），（ｂ）は実施形態の一例としての階層ストレージ装置１における階層管理部１１の処理を説明するための図である。
図２（ａ）はデータサイズが３００ＧＢのＬＵＮを例示している。図２（ｂ）は図２（ａ）に示すＬＵＮを１ＧＢ単位で分割して形成された３００個のサブＬＵＮ（サブＬＵＮ  ＩＤ＝１〜３００）のそれぞれに発生したＩＯ数を１分毎に集計した例を示す。
【００３２】
例えば、図２（ａ），（ｂ）に示す例において、サブＬＵＮ  ＩＤ＝２で特定されるサブＬＵＮには、１０：０１台に７６０回のＩＯアクセスが発生したことを示す。
データ収集部１１ａは、図２（ｂ）に示すような集計結果を図示しないデータベース等に書き込む。データ収集部１１ａによって収集されたこれらの情報は、後述する第１ワークロード分析部１１ｂ，第２ワークロード分析部１５１ａ，１５１ｂ，１５１ｃおよび性能推定部１５２ａ，１５２ｂ，１５２ｃによって用いられる。
【００３３】
なお、データ収集部１１ａが収集し集計する情報はＩＯ数に限定されるものではなく、他の情報を収集してもよい。例えば、データ収集部１１ａは、全セグメントを対象にした（全セグメントの）合計ＩＯ数及び平均レスポンス等も集計し、タイムスタンプとともにデータベースに書き込んでもよい。また、データ収集部１１ａは、各セグメント又は／及び全セグメントへのＩＯのリードライト比（ｒｗ比）を集計し、上述した情報に含めてもよい。
【００３４】
このように、データ収集部１１ａは、ＳＳＤ２０又はＨＤＤ３０で使用される領域を所
定の大きさで分割した複数の単位領域について、入力されたＩＯアクセス要求に関する情報を収集する収集部の一例である。
第１ワークロード分析部（第１特定部）１１ｂは、データ収集部１１ａによって収集されたサブＬＵＮごとのＩＯ数に基づき、ＳＳＤ２０又はＨＤＤ３０にデータを移動するサブＬＵＮを選択し、選択したセグメントに関する情報を移動指示部１１ｃに渡す。
【００３５】
以下に、第１ワークロード分析部１１ｂによるサブＬＵＮの選択手法（移動判定アルゴリズム）の一例を説明する。
第１ワークロード分析部１１ｂは、サブＬＵＮの移動判定を行なうに際して、最大サブＬＵＮ数（ｎ），ＩＯ割合（ｍ），ＩＯ集中継続数（ｃ），ｔｉｍｅｏｕｔ（ｏ）およびｉｏｐｓ閾値（ｉ）をパラメータ（入力情報）として用いる。
【００３６】
最大サブＬＵＮ数（ｎ）は、ＳＳＤ２０とＨＤＤ３０との間で同時に移動を行なうサブＬＵＮの数である。この最大サブＬＵＮ数（ｎ）としては、一定時間間隔（ｔ）内に移動可能なサブＬＵＮ数が目安として設定される。例えば、ｔ＝１分で１つのサブＬＵＮの移動に３秒かかる場合には、最大サブＬＵＮ数（ｎ）には２０前後を設定することが望ましい。
ＩＯ割合（ｍ）は、ＳＳＤ２０移動可否の判断に用いられる値であり、全ＩＯに示す割合を指す。ＩＯ数が多い順に最大サブＬＵＮ数（ｎ）までのサブＬＵＮの合計ＩＯ数がＩＯ割合（ｍ）を超えると、その最大サブＬＵＮ数（ｎ）までに入ったサブＬＵＮ群がＳＳＤ２０への移動候補として扱われる。
【００３７】
ＩＯ割合（ｍ）は、値を大きく設定すると、サブＬＵＮ移動後の性能向上効果は大きくなるがサブＬＵＮ移動が生じ難くなる。また、逆にＩＯ割合（ｍ）の値を小さくすると、サブＬＵＮ移動後の性能向上効果は小さくなるがサブＬＵＮ移動頻度は上昇する。ＩＯ割合（ｍ）としては、例えば、６０％程度とすることが望ましい。
ＩＯ集中継続数（ｃ）は、ＩＯ割合（ｍ）で抽出したサブＬＵＮのＩＯ集中が何分継続するのかを判断するために用いられる値である。すなわち、ＩＯ集中継続数（ｃ）は、前記単位領域のＩＯ集中が継続して発生した時間を表す継続時間情報を表す。
【００３８】
例えば、３分以上ＩＯ集中が継続したサブＬＵＮをＳＳＤ２０への移動対象とする場合には、ｃ＝３に設定し、同一サブＬＵＮがＩＯ割合（ｍ）の条件を連続して３回満たすかを監視し、条件を満たした場合に対象のサブＬＵＮをＳＳＤ２０に移動する。
ｔｉｍｅｏｕｔ（ｏ）は、ＳＳＤ２０からＨＤＤ３０にサブＬＵＮを移動させる、すなわち、ＳＳＤ２０からサブＬＵＮを落とす条件の判断に用いられる。ＳＳＤ２０に移動したサブＬＵＮに関して、ＩＯ割合（ｍ）を用いて抽出するＳＳＤ移動候補にｏ回連続して入らない場合に、ＳＳＤ２０から落とされる。
【００３９】
ｉｏｐｓ閾値（ｉ）は、本移動判定アルゴリズムを適用するか否かの判断を行なう足切り（カットオフ）のための閾値である。ＬＵＮ全体に発生する負荷が低い状態では、本移動判定アルゴリズムを適用して階層移動を行なっても大きな効果は望めない。そこで、ＬＵＮ全体ｉｏｐｓがｉを下回った場合には本移動判定アルゴリズムを適用しない。
例えば、ｉ＝５０とすると、ＬＵＮ全体のｉｏｐｓが５０未満の場合は次のデータを受け取るまで階層移動に関する処理は行なわない。
【００４０】
以下に、第１ワークロード分析部１１ｂによるＳＳＤ２０への移動判定アルゴリズムを説明する。
まず、第１ワークロード分析部１１ｂによるＳＳＤ２０への移動候補抽出手法について示す。
第１ワークロード分析部１１ｂは、サブＬＵＮ単位のＩＯ数が入力された１つのデータを用いてＳＳＤ２０への移動候補を抽出する。
【００４１】
図３は実施形態の一例としての階層ストレージ装置１におけるＳＳＤ２０への移動候補抽出を説明するための図である。
この図３においては、ＬＵＮのサイズが３００ＧＢであり、サブＬＵＮのサイズが１ＧＢであり、パラメータとしてｉ＝５０（ｉｏｐｓ）、ｎ＝２０（サブＬＵＮ）、ｍ＝６０（％）が設定された例を示す。
【００４２】
本手法においては、移動判定アルゴリズムを動作させる環境上で１−２分で移動可能な範囲に入ったＩＯ数が多いサブＬＵＮを抽出し、隣接サブＬＵＮでグルーピングした上で、あらかじめ決めておいたＩＯ集中（ｍ＝６０％）以上となるとＳＳＤ２０への移動候補とする。
隣接サブＬＵＮでグルーピングを行なうのは、ＩＯ集中が発生したサブＬＵＮの周囲に近い将来負荷が移動する可能性が高いからである。
【００４３】
本アルゴリズムは、ＳＳＤ２０移動による効果を厳密に判断するのではなく、移動によって効果が出る可能性が高いケースを抽出して投機的に動かす方式である。
次に、図３を参照しながら、本移動判定アルゴリズムの具体的な手順を説明する。本移動判定アルゴリズムは、以下のステップ１〜４の処理を備える。
［ステップ１］データ収集部１１ａがある時間サブＬＵＮ単位のＩＯ数情報を獲得したら、第１ワークロード分析部１１ｂは、ＬＵＮ全体のＩＯ数を計算し、その値をｔで除算することで、ＬＵＮ全体のｉｏｐｓを求める。図３においては、ｉ＝５０の場合の例を示している。
【００４４】
ＬＵＮ全体のｉｏｐｓの値がｉを下回っていたら、このデータでの処理を終了し、次のデータ待ちを行なう。図３に示す例では、ＬＵＮ全体のｉｏｐｓがｉ（＝５０）以上であるので、ステップ２に進む。
［ステップ２］獲得したデータに関して、ＩＯ数が多い順にサブＬＵＮをソートし、最大サブＬＵＮ数（ｎ）までのサブＬＵＮでカットオフを行なう。図３においては、ｎ＝２０の場合の例を示しており、サブＬＵＮ  ＩＤ＝６６を先頭とするサブＬＵＮ  ＩＤ＝６８までの上位２０個のサブＬＵＮを残して、サブＬＵＮ  ＩＤ＝１１４以降のサブＬＵＮのカットオフを行なう。
【００４５】
［ステップ３］残ったサブＬＵＮ群の中から隣接サブＬＵＮでグルーピングを行なう。さらに、各グループの合計ＩＯ数順にソートする。図３に示す例では、ステップ３において、ステップ２でカットオフした上位２０のサブＬＵＮを隣接サブＬＵＮでグルーピングし、グループの合計ＩＯ数でソートしておく。
［ステップ４］サブＬＵＮグループのＩＯ数を加算していき、サブＬＵＮグループでカットオフを行なう。図３に示す例においては、ＩＯ数の多い順にサブＬＵＮグループのＩＯ数を加算していき、全ＩＯの６０％（＝ｍ）を超えたところで、カットオフを行なっている。
【００４６】
次に、図４を参照しながら、第１ワークロード分析部１１ｂによるＳＳＤ２０への移動判定について説明する。
図４は実施形態の一例としての階層ストレージ装置１におけるＳＳＤへの移動判定手法を説明するための図である。この図４においては、ＬＵＮのサイズが３００ＧＢであり、サブＬＵＮのサイズが１ＧＢであり、パラメータとしてｔ＝６０（秒）、ｃ＝３（回）が設定された例を示す。
【００４７】
第１ワークロード分析部１１ｂは、上述の如くＳＳＤ２０への移動候補となったあるサブＬＵＮグループがｃ回連続して移動候補となった場合に、ＳＳＤ２０に移動させる対象として決定する。
図４に示す例においては、ある時刻ＴでＳＳＤ２０への移動候補となったサブＬＵＮ  ＩＤ＝６５，６６，６７，６８が、次のデータが得られる時刻Ｔ＋６０、さらにその次の時刻Ｔ＋１２０でも移動候補に入っている。すなわち、時刻Ｔ＋１２０の時点でｃ＝３回連続となり、ＳＳＤ２０への移動が行なわれることになる。
【００４８】
時刻Ｔ，Ｔ＋６０，Ｔ＋１２０でサブＬＵＮ  ＩＤは必ずしも一致しないが、重複したサブＬＵＮ  ＩＤが存在すれば同一サブＬＵＮグループへの負荷とみなす。さらに、ＳＳＤ２０へ移動判定が行なわれたサブＬＵＮグループは、その後のデータで新たなサブＬＵＮがサブＬＵＮグループに加わると即座にＳＳＤ２０への移動を行なう。
図４に示す例においては、時刻Ｔ＋１２０でサブＬＵＮ  ＩＤ＝６５〜６８がＳＳＤ２０への移動判定となるが、時刻Ｔ＋１８０でサブＬＵＮ  ＩＤ＝６９が新たにサブＬＵＮグループに加わり、即座にＳＳＤ２０への移動が実行される。
【００４９】
次に、図５，図６を参照しながら、第１ワークロード分析部１１ｂによるＨＤＤ３０への移動判定について説明する。
図５および図６は実施形態の一例としての階層ストレージ装置１におけるＨＤＤへの移動判定手法を説明するための図である。これらの図５および図６においては、ＬＵＮのサイズが３００ＧＢであり、サブＬＵＮのサイズが１ＧＢであり、パラメータとしてｔ＝６０（秒）、ｏ＝１０（回）が設定された例を示す。
【００５０】
ＨＤＤ３０への移動は、サブＬＵＮグループへの負荷が完全に収束したタイミングで行なう必要がある。
ＳＳＤ２０へ移動済みになったサブＬＵＮグループに対しても、新しいサブＬＵＮ単位のＩＯ数データを得るたびに、ＩＯ割合（ｍ）までのサブＬＵＮに含まれるかどうかを監視する。ｔｉｍｅｏｕｔ（ｏ）回連続してＩＯ割合（ｍ）に入らなかったサブＬＵＮはＨＤＤ３０へ移動させる。
【００５１】
図５においては、ＳＳＤ２０に移動となったサブＬＵＮグループの一部のサブＬＵＮをＨＤＤ３０へ移動する例を示している。サブＬＵＮ  ＩＤ＝６５，６６のサブＬＵＮは、１０回連続してＩＯ割合（ｍ）までのサブＬＵＮに含まれなかったので、ＨＤＤ３０に移動させる。
また、図６においては、サブＬＵＮ  ＩＤ＝６５〜６９によって構成されるサブＬＵＮグループは、１０回連続してＩＯ割合（ｍ）までのサブＬＵＮに含まれなかったので、ＨＤＤ３０に移動させる。
【００５２】
以下、サブＬＵＮの移動判定に用いられる、上述した最大サブＬＵＮ数（ｎ），ＩＯ割合（ｍ），ＩＯ集中継続数（ｃ），ｔｉｍｅｏｕｔ（ｏ）およびｉｏｐｓ閾値（ｉ）の各パラメータの組み合わせをパラメータセットという。また、特に、第１ワークロード分析部１１ｂがサブＬＵＮの移動判定に用いるパラメータセットを第１パラメータセットという場合がある。
【００５３】
上述の如く、第１ワークロード分析部１１ｂは、データ収集部１１ａが収集したＩＯ数（アクセス情報）に基づき第１のパラメータ（第１パラメータセット）を用いて、ＨＤＤ３０における、ＳＳＤ２０へデータを移動させる移動対象領域（サブＬＵＮ）を特定する第１特定部（１１ｂ）として機能する。
移動指示部１１ｃは、第１ワークロード分析部１１ｂからの指示に基づいて、階層ドライバ１２に、選択されたサブＬＵＮのデータの、ＨＤＤ３０からＳＳＤ２０への移動、又は、ＳＳＤ２０からＨＤＤ３０への移動を指示する。このとき、移動指示部１１ｃは、選択されたサブＬＵＮのストレージボリューム上のオフセットをＨＤＤ３０上のオフセットに変換してサブＬＵＮごとにデータの移動を指示してもよい。例えば、ＨＤＤ３０のセクターサイズが５１２Ｂである場合に、ボリューム上のオフセットが１ＧＢであれば、ＨＤＤ３０上でのオフセットは１×１０２４×１０２４×１０２４／５１２＝２０９７１５２となる。
【００５４】
このように、移動指示部１１ｃは、第１ワークロード分析部１１ｂが特定したＨＤＤ３０における移動対象領域のデータをＳＳＤ２０に移動させる移動処理部として機能する。
パラメータ評価部１５は、データ収集部１１ａによって収集された統計データを用いて、複数のパラメータセット（パラメータ）の評価を行ない、その評価結果に基づき、最適なパラメータセットを決定する。
【００５５】
パラメータ評価部１５は、第１ワークロード分析部１１ｂがサブＬＵＮの移動判定に用いたパラメータセット（第１パラメータセット：第１のパラメータ）を含む複数のパラメータセットについて評価を行なう。具体的には、パラメータ評価部１５は、これらの複数のパラメータセットを、上述した第１ワークロード分析部１１ｂと同様のサブＬＵＮの移動判定手法にそれぞれ適用することで、各パラメータセット毎に移動させるサブＬＵＮを決定する。
【００５６】
図１に示す例においては、パラメータ評価部１５は、第２ワークロード分析部１５１ａ，１５１ｂ，１５１ｃ，性能推定部１５２ａ，１５２ｂ，１５２ｃおよびパラメータ判定部１５３を備える。
第２ワークロード分析部１５１ａ，１５１ｂ，１５１ｃは、互いに異なるパラメータセットを、上述した第１ワークロード分析部１１ｂと同様のサブＬＵＮの移動判定手法（移動判定アルゴリズム）に適用することで、ＳＳＤ２０とＨＤＤ３０との間で移動させるサブＬＵＮをそれぞれ決定（特定）する。
【００５７】
第２ワークロード分析部１５１ａ，１５１ｂ，１５１ｃには、それぞれデータ収集部１１ａによって採取されたサブＬＵＮごとのＩＯ数が入力される。
第２ワークロード分析部１５１ａは第１ワークロード分析部１１ｂと同じ第１パラメータセットを前記移動判定アルゴリズムに適用することで、ＳＳＤ２０とＨＤＤ３０との間で移動させる候補のサブＬＵＮを決定する。
【００５８】
第２ワークロード分析部１５１ｂは、第２ワークロード分析部１５１ａとは異なるパラメータセット（第２パラメータセット）を前記移動判定アルゴリズムに適用することで、ＳＳＤ２０とＨＤＤ３０との間で移動させる候補のサブＬＵＮを決定する。
第２ワークロード分析部１５１ｃは、第２ワークロード分析部１５１ａおよび第２ワークロード分析部１５１ｂとは異なるパラメータセット（第３パラメータセット）を前記移動判定アルゴリズムに適用することで、ＳＳＤ２０とＨＤＤ３０との間で移動させる候補のサブＬＵＮを決定する。
【００５９】
すなわち、第２ワークロード分析部１５１ａ，１５１ｂ，１５１ｃは、データ収集部１１ａが収集したアクセス情報に基づき複数のパラメータ（第１〜第３パラメータセット）をそれぞれ用いて、これらのパラメータ毎に、ＨＤＤ３０とＳＳＤ２０との間でデータを移動させる候補のサブＬＵＮ（移動対象領域候補）を特定する。
また、第２ワークロード分析部１５１ａ，１５１ｂ，１５１ｃは、それぞれＳＳＤ２０に移動するサブＬＵＮを示す情報（サブＬＵＮ  ＩＤ）を定期的に（例えば毎分）出力する。
【００６０】
第２ワークロード分析部１５１ａによって決定された移動対象のサブＬＵＮのサブＬＵＮ  ＩＤが性能推定部１５２ａに通知される。同様に、第２ワークロード分析部１５１ｂによって決定された移動対象のサブＬＵＮのサブＬＵＮ  ＩＤが性能推定部１５２ｂに通知され、第２ワークロード分析部１５１ｃによって決定された移動対象のサブＬＵＮのサブＬＵＮ  ＩＤが性能推定部１５２ｃに通知される。
【００６１】
そして、性能推定部１５２ａ，１５２ｂ，１５２ｃにおいて、第２ワークロード分析部１５１ａ，１５１ｂ，１５１ｃにおいてそれぞれ決定されたサブＬＵＮに対する評価が行なわれる。
図１に示す例においては、上述の如く第１パラメータセットを含む３種類のパラメータセットをそれぞれ上述した移動判定アルゴリズムに適用することで、ＳＳＤ２０とＨＤＤ３０との間で移動させるサブＬＵＮを決定する。
【００６２】
例えば、第１パラメータセットに含まれる複数のパラメータのうち、あるパラメータ（例えばＩＯ集中継続数（ｃ））の値を第１パラメータセットよりも大きい値としたものを第２パラメータセットとして用いる。また、第１パラメータセットに含まれる複数のパラメータのうち、あるパラメータ（例えばＩＯ集中継続数（ｃ））の値を第１パラメータセットよりも小さい値としたものを第３パラメータセットとして用いる。これらの第２パラメータセットおよび第３パラメータセットにおける他のパラメータは第１パラメータと同一のものを用いることができる。
【００６３】
例えば、階層ストレージ装置１において性能向上を図るためには、長時間負荷が集中したサブＬＵＮを選んでＳＳＤ２０に移動することが有効である。
そこで、サブＬＵＮに発生した負荷集中の継続時間をキーにＳＳＤ２０への移動判定を行なう。例えば、３分負荷集中したサブＬＵＮはさらに長時間負荷が集中することを期待してＳＳＤ２０への移動を指示する。この基準値として用いる“３分”を長くするもしくは短くするためにパラメータＩＯ集中継続数（ｃ）が用いられる。
【００６４】
基準値を３分よりも長くすることで、短時間で終わってしまう負荷ＳＳＤ２０に移動してしまうリスクは減少する。しかしながらＳＳＤ２０移動判断までの時間が長くなってしまい、その分、性能向上効果が小さくなる。従って、基準値として最適な値を決定することが重要である。
以下、第２ワークロード分析部を示す符号としては、複数の第２ワークロード分析部のうち１つを特定する必要があるときには符号１５１ａ〜１５１ｃを用いるが、任意の第２ワークロード分析部を指すときには符号１５１を用いる。
【００６５】
第２ワークロード分析部１５１は、評価を行なうパラメータセットの数と同数備えられる。
なお、上記においては、パラメータセットのうちＩＯ集中継続数（ｃ）を変更して評価を行なう例について示したが、これに限定されるものではなく種々変形して実施することができる。例えば、ＩＯ集中継続数（ｃ）に代えて、ＩＯ割合（ｍ）や最大サブＬＵＮ数（ｎ）を変更してもよい。また、パラメータセットを構成するパラメータのうち２つ以上のパラメータを変更してもよく、また、最大サブＬＵＮ数（ｎ），ＩＯ割合（ｍ），ＩＯ集中継続数（ｃ）以外のパラメータを変更してもよい。
【００６６】
さらに、上述した例においては、第１〜第３の３つのパラメータセットの評価を行なう例について示したが、これに限定されるものではなく４つ以上のパラメータを評価してもよい。評価するパラメータセットを増やす場合には、これらのパラメータセットに合わせて４つ以上の第２ワークロード分析部１５１を備えることで対応できる。
例えば、最大サブＬＵＮ数（ｎ），ＩＯ割合（ｍ）およびＩＯ集中継続数（ｃ）の３つのパラメータについて、それぞれ第１パラメータセットを基準に、低減・維持・増加させることで、３×３×３＝２７種類のパラメータセットの評価を同時に行なうことができる。このような場合には、２７個の第２ワークロード分析部１５１を備える。
【００６７】
性能推定部１５２ａ，１５２ｂ，１５２ｃは、各ワークロード分析部１５１からＳＳＤ２０へ移動させるサブＬＵＮとして通知されるサブＬＵＮのそれぞれについて、当該サブＬＵＮをＳＳＤ２０へ移動させた場合のＩＯ性能をそれぞれ推定する。
なお、以下、性能推定部を示す符号としては、複数の性能推定部のうち１つを特定する必要があるときには符号１５２ａ，１５２ｂ，１５２ｃを用いるが、任意の性能推定部を指すときには符号１５２を用いる。
【００６８】
性能推定部１５２ａには、第２ワークロード分析部１５１ａがＳＳＤ２０に移動させるサブＬＵＮとして決定したサブＬＵＮを特定する情報（サブＬＵＮ  ＩＤ）が入力される。同様に、性能推定部１５２ｂには、第２ワークロード分析部１５１ｂがＳＳＤ２０に移動させるサブＬＵＮとして決定したサブＬＵＮのサブＬＵＮ  ＩＤが入力される。また、性能推定部１５２ｃには、第２ワークロード分析部１５１ｃがＳＳＤ２０に移動させるサブＬＵＮとして決定したサブＬＵＮのサブＬＵＮ  ＩＤが入力される。
【００６９】
また、性能推定部１５２ａ，１５２ｂ，１５２ｃには、それぞれデータ収集部１１ａによって採取されたサブＬＵＮごとのＩＯ数が入力される。
性能推定部１５２は、データ収集部１１ａから入力されたサブＬＵＮ毎のＩＯ数を用いて、第２ワークロード分析部１５１から通知された各サブＬＵＮ毎に、それぞれのＩＯ数を集計（計数）する。
【００７０】
仮に第２ワークロード分析部１５１から通知された各サブＬＵＮをＳＳＤ２０に移動させた場合には、当該サブＬＵＮへのＩＯはＳＳＤ２０においてヒット（ＳＳＤヒット）することになる。性能推定部１５２は、このように第２ワークロード分析部１５１から通知された各サブＬＵＮをＳＳＤ２０に移動させた場合にＳＳＤ２０において生じるＳＳＤヒット数を推定（計数）する。
【００７１】
性能推定部１５２は、データ収集部１１ａによって一定時間間隔（ｔ：例えば、ｔ＝１分）で収集されるサブＬＵＮ単位のＩＯ数と、第２ワークロード分析部１５１から通知されるＳＳＤ２０に移動させる各サブＬＵＮのサブＬＵＮ  ＩＤとを照らし合わせることで、当該サブＬＵＮをＳＳＤ２０に移動させた場合に、各時刻毎にどのサブＬＵＮがＳＳＤヒットとなるかを知ることができ、また、そのＳＳＤヒット数がいくつになるかを算出することができる。
【００７２】
図７は実施形態の一例としての階層ストレージ装置１における性能推定部１５２によって集計される情報例を示す図である。この図７においては、サブＬＵＮ（サブＬＵＮ  ＩＤ＝１〜３００）のそれぞれに発生したＩＯ数を１分毎に集計した例を示す。
この図７に示す例において、時刻１０：００に第２ワークロード分析部１５１がサブＬＵＮ  ＩＤ＝２のサブＬＵＮをＳＳＤ２０へ移動すると決定する。ここで、図７に示すように、サブＬＵＮ  ＩＤ＝２のサブＬＵＮには１０：００台に７２０回のＩＯが発生している。
【００７３】
移動指示部１１１ｃが、このサブＬＵＮ  ＩＤ＝２のサブＬＵＮをＳＳＤ２０に移動させた場合には、このＩＯ数はＳＳＤヒットする回数とみなすことができる。
また、たとえ１０：０１台においては、このサブＬＵＮ  ＩＤ＝２のサブＬＵＮをＳＳＤ２０へ移動させる移動指示が発行されない場合であっても、このサブＬＵＮ  ＩＤ＝２のサブＬＵＮは既にＳＳＤ２０に移動済み（ＳＳＤアップ済み）である。従って、１０：０１台に発生した７６０回のＩＯもＳＳＤヒットする回数とみなすことができる。
【００７４】
性能推定部１５２ａ〜１５２ｃは、それぞれ各時刻帯におけるＳＳＤヒットとみなされるＩＯ数を累計する。これにより、パラメータセットごと（第１パラメータセット〜第３パラメータセット）にＳＳＤヒットとみなされるＩＯ数の累積値が求められる。
性能推定部１５２ａ〜１５２ｃは、算出したパラメータセットごとのＳＳＤヒットとみなされるＩＯ数の累積値をメモリ１０ｂ（図６参照）等の記憶領域に格納する。メモリ１０ｂ等に格納されたこれらのＩＯ数の累積値は、後述するパラメータ判定部１５３によって読み出される。すなわち、性能推定部１５２は、算出したパラメータセットごとのＳＳＤヒットとみなされるＩＯ数の累積値をパラメータ判定部１５３に通知する。
【００７５】
なお、性能推定部１５２はＳＳＤヒットとみなされるＩＯ数の累積値をパラメータ判定部１５３に出力すると同時に、それまでの累積値をリセットして新たな蓄積を行なう。
上述の如く、パラメータ評価部１５においては、第１ワークロード分析部１１ｂによる移動候補のサブＬＵＮの決定と並行して、複数種類のパラメータセットを用いてＳＳＤ２０とＨＤＤ３０との間におけるデータ移動候補のサブＬＵＮを仮想的に決定し、その性能シミュレーションを行なう。
【００７６】
パラメータ判定部１５３は、性能推定部１５２によって算出されたパラメータセットごとのＳＳＤヒットとみなされるＩＯ数の累積値を、メモリ１０ｂ等の記憶領域から所定間隔毎（例えば１時間毎）に読み出す。
そして、パラメータ判定部１５３は、これらのＳＳＤヒットとみなされるＩＯ数の累積値を比較し、これらうち、ＳＳＤヒットとみなされるＩＯ数の累積値が最大のパラメータセットを、推奨パラメータセットとして決定する。
【００７７】
階層ストレージ装置１においては、ＳＳＤヒットとみなされるＩＯ数が多いほど、ＩＯ要求に対する応答性能が高く、装置性能を効率的に引き出すことができる。
パラメータ判定部１５３は、決定した推奨パラメータセットを用いて、階層管理部１１の第１ワークロード分析部１１ｂが使用する第１パラメータセットを更新する。これにより、第１ワークロード分析部１１ｂにおいて、ＳＳＤヒット率が高くなることが期待できるパラメータセットが設定され、装置性能を効率的に引き出すことができる。
【００７８】
パラメータ判定部１５３は、決定した推奨パラメータセットを第１ワークロード分析部１１ｂに通知して、第１パラメータセットの変更を指示する。
第１ワークロード分析部１１ｂは、通知された推奨パラメータセットと第１パラメータセットとを比較し、推奨パラメータセットと第１パラメータセットとが異なる場合に、第１パラメータセットを推奨パラメータセットを用いて更新する。
【００７９】
階層ドライバ１２は、ＩＯマップ部１２ａ，階層テーブル１２ｂおよび一時バッファ１２ｃをそなえる。
ＩＯマップ部１２ａは、ユーザからのストレージボリュームに対するＩＯ要求を階層テーブル１２ｂを用いてＳＳＤドライバ１３又はＨＤＤドライバ１４に振り分け、ＳＳＤドライバ１３又はＨＤＤドライバ１４からのＩＯレスポンスをユーザに返す。
【００８０】
一時バッファ１２ｃは、ＩＯ要求を一時的に格納する保持部であり、図示しないメモリ等により実現される。ＩＯマップ部１２ａは、階層移動中のサブＬＵＮに対してＩＯ要求が発行されると、当該サブＬＵＮのデータの移動が完了するまで、当該ＩＯ要求を一時バッファ１２ｃに格納し、ＩＯ要求を保留する。データの移動が完了すると、ＩＯマップ部１２ａは、一時バッファ１２ｃから当該ＩＯ要求を読み出して、ＳＳＤドライバ１３又はＨＤＤドライバ１４への振り分けを再開する。
【００８１】
階層テーブル１２ｂは、ＩＯマップ部１２ａによるＩＯ要求の振り分けによる階層制御に用いられるテーブルであり、例えば図示しないメモリ等により実現される。
階層テーブル１２ｂは、例えば、ＳＳＤ２０にデータが移動されたセグメントごとに、ＳＳＤオフセットと、ＨＤＤオフセットと、状態とを対応させて記憶するテーブルである。なお、階層テーブル１２ｂは公知であり、その詳細な説明は省略する。
【００８２】
ＩＯマップ部１２ａは、上述した階層テーブル１２ｂを参照することで、ＩＯ要求をＳＳＤドライバ１３又はＨＤＤドライバ１４のいずれに振り分けるかを判定することができるとともに、ＩＯ要求がセグメント移動中であるか否かを判定することができる。
図１の説明に戻り、階層ドライバ１２は、移動指示部１１ｃからサブＬＵＮ移動指示（セグメント移動指示）を受け取ると、ＨＤＤ３０又はＳＳＤ２０の移動対象の単位領域に記憶されたデータをＳＳＤ２０又はＨＤＤ３０に移動する移動処理を実行する。具体的には、階層ドライバ１２は、階層テーブル１２ｂにより、サブＬＵＮ移動指示で指定されたサブＬＵＮのデータをＳＳＤ２０−ＨＤＤ３０間で移動する。
【００８３】
なお、この階層ドライバ１２によるＳＳＤ２０−ＨＤＤ３０間のデータ移動は、既知の手法により実現することができ、その説明は省略する。
ＳＳＤドライバ１３は、階層ドライバ１２の指示に基づいてＳＳＤ２０へのアクセスを制御する。ＨＤＤドライバ１４は、階層ドライバ１２の指示に基づいてＨＤＤ３０へのアクセスを制御する。
【００８４】
［２］ハードウェア構成例
次に、図８を参照して、図１に示す階層ストレージ制御装置１０のハードウェア構成について説明する。図８は図１に示す階層ストレージ制御装置１０のハードウェア構成例を示す図である。
階層ストレージ制御装置１０は、図８に示すように、ＣＰＵ（Central Processing Unit）１０ａ，メモリ１０ｂ，記憶部１０ｃ，インタフェース部１０ｄ，入出力部１０ｅ，記録媒体１０ｆ，及び読取部１０ｇをそなえる。
【００８５】
ＣＰＵ１０ａは、対応する各ブロック１０ｂ〜１０ｇと接続され、種々の制御や演算を
行なう演算処理装置（プロセッサ）である。ＣＰＵ１０ａは、メモリ１０ｂ，記憶部１０ｃ，記録媒体１０ｆや１０ｈ，又は図示しないＲＯＭ（Read Only Memory）等に格納されたプログラムを実行することにより、階層ストレージ制御装置１０における種々の機能を実現する。
【００８６】
メモリ１０ｂは、種々のデータやプログラムを格納する記憶装置である。ＣＰＵ１０ａは、プログラムを実行する際に、メモリ１０ｂにデータやプログラムを格納し展開する。なお、メモリ１０ｂとしては、例えばＲＡＭ（Random Access Memory）等の揮発性メモリが挙げられる。
記憶部１０ｃは、種々のデータやプログラム等を格納するハードウェアである。記憶部１０ｃとしては、例えばＨＤＤ等の磁気ディスク装置，ＳＳＤ等の半導体ドライブ装置，フラッシュメモリ等の不揮発性メモリ等の各種デバイスが挙げられる。なお、記憶部１０ｃとして複数のデバイスが用いられてもよく、これらのデバイスでＲＡＩＤ（Redundant Arrays of Inexpensive Disks）が構成されてもよい。また、記憶部１０ｃは、図１に示
すＳＳＤ２０及びＨＤＤ３０を含んでもよい。
【００８７】
インタフェース部１０ｄは、有線又は無線による、ネットワーク（図示省略）や他の情報処理装置との間の接続及び通信の制御等を行なうものである。インタフェース部１０ｄとしては、例えば、ＬＡＮ（Local Area Network），ファイバチャネル（Fibre Channel
；ＦＣ），インフィニバンド（InfiniBand）等に準拠したアダプタが挙げられる。
入出力部１０ｅは、マウスやキーボード等の入力装置及びディスプレイやプリンタ等の出力装置の少なくとも一方を含むことができる。例えば、入出力部１０ｅは、階層ストレージ制御装置１０の使用者又は管理者等による種々の作業に用いられる。
【００８８】
記録媒体１０ｆは、例えばフラッシュメモリやＲＯＭ等の記憶装置であり、種々のデータやプログラムを記録することができる。読取部１０ｇは、コンピュータ読取可能な記録媒体１０ｈに記録されたデータやプログラムを読み出す装置である。記録媒体１０ｆ及び１０ｈの少なくとも一方には、本実施形態に係る階層ストレージ制御装置１０の各種機能の全部もしくは一部を実現する制御プログラムが格納されてもよい。例えば、ＣＰＵ１０ａは、記録媒体１０ｆから読み出したプログラム、又は、読取部１０ｇを介して記録媒体１０ｈから読み出したプログラムを、メモリ１０ｂ等の記憶装置に展開して実行することができる。これにより、コンピュータ（ＣＰＵ１０ａ，情報処理装置，各種端末を含む）は、上述した階層ストレージ制御装置１０の機能を実現することができる。
【００８９】
なお、記録媒体１０ｈとしては、例えばフレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク等の光ディスクや、ＵＳＢ（Universal Serial Bus）メモリやＳＤカード等のフラッシュメモリが挙げられる。なお、ＣＤとしては、ＣＤ−ＲＯＭ、ＣＤ−Ｒ（CD-Recordable）、ＣＤ−ＲＷ（CD-Rewritable）等が挙げられる。また、ＤＶＤとしては、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等が挙げられる。
【００９０】
なお、上述した各ブロック１０ａ〜１０ｇ間はバスで相互に通信可能に接続される。例えばＣＰＵ１０ａと記憶部１０ｃとの間は、ディスクインタフェースを介して接続される。また、階層ストレージ制御装置１０の上述したハードウェア構成は例示である。従って、階層ストレージ制御装置１０内でのハードウェアの増減（例えば任意のブロックの追加や省略），分割，任意の組み合わせでの統合，バスの追加又は省略等は適宜行なわれてもよい。
【００９１】
［３］動作
上述の如く構成された実施形態の一例としての階層ストレージ制御装置１０における処理を説明する。
（１）階層管理部１１における処理
図示しないホスト装置等からＬＵＮに対するＩＯアクセス要求が行なわれると、階層管理部１１において以下に示す処理が行なわれる。
【００９２】
すなわち、階層管理部１１のデータ収集部１１ａが、ｂｌｋｔｒａｃｅを用いて所定間隔（本実施形態では１分間隔）でＩＯトレースを採取する。データ収集部１１ａは、このＩＯトレースにより収集した情報に基づき、サブＬＵＮごとのＩＯ数を毎分単位で集計する（図２（ｂ）参照）。
第１ワークロード分析部１１ｂは、データ収集部１１ａによって収集されたサブＬＵＮごとのＩＯ数に基づき、ＳＳＤ２０又はＨＤＤ３０にデータを移動するサブＬＵＮを選択する。
【００９３】
第１ワークロード分析部１１ｂは、上述した移動判定アルゴリズムにおいて、最大サブＬＵＮ数（ｎ），ＩＯ割合（ｍ），ＩＯ集中継続数（ｃ），ｔｉｍｅｏｕｔ（ｏ）およびｉｏｐｓ閾値（ｉ）が設定された第１パラメータセットを用いることで、サブＬＵＮの移動判定を行なう。
第１ワークロード分析部１１ｂは、移動判定アルゴリズムによって選択したサブＬＵＮを特定するサブＬＵＮ  ＩＤを移動指示部１１ｃに渡す。
【００９４】
移動指示部１１ｃは、第１ワークロード分析部１１ｂからの指示に基づいて、階層ドライバ１２に、選択されたサブＬＵＮのデータの、ＨＤＤ３０からＳＳＤ２０への移動、又は、ＳＳＤ２０からＨＤＤ３０への移動を指示する。
（２）パラメータ評価部１５における処理
データ収集部１１ａによって収集されたサブＬＵＮごとのＩＯ数の情報は、パラメータ評価部１５も受け渡される。そして、上述した階層管理部１１における処理と並行して、このパラメータ評価部１５において複数のパラメータセットの評価が行なわれる。
【００９５】
データ収集部１１ａによって収集されたサブＬＵＮごとのＩＯ数の情報は、各第２ワークロード分析部１５１（１５１ａ，１５１ｂ，１５１ｃ）にそれぞれ入力される（図２（ｂ）の矢印Ａ１参照）。
第２ワークロード分析部１５１ａは第１ワークロード分析部１１ｂと同じ第１パラメータセットを前記移動判定アルゴリズムに適用することで、ＳＳＤ２０とＨＤＤ３０との間で移動させるサブＬＵＮを決定する。第２ワークロード分析部１５１ａは決定した移動対象のサブＬＵＮのサブＬＵＮ  ＩＤを性能推定部１５２ａに通知する。
【００９６】
性能推定部１５２ａは、データ収集部１１ａから入力されたサブＬＵＮ毎のＩＯ数を用いて（図２（ｂ）の矢印Ａ２参照）、第２ワークロード分析部１５１ａから通知されたサブＬＵＮ毎に、それぞれのＩＯ数を集計する。
性能推定部１５２ａは、算出したパラメータセットごとのＳＳＤヒットとみなされるＩＯ数の累積値をメモリ１０ｂ（図８参照）等の記憶領域に格納する。
【００９７】
第２ワークロード分析部１５１ｂは、第２ワークロード分析部１５１ａとは異なる第２パラメータセットを前記移動判定アルゴリズムに適用することで、ＳＳＤ２０とＨＤＤ３０との間で移動させるサブＬＵＮを決定する。  第２ワークロード分析部１５１ｂは決定した移動対象のサブＬＵＮのサブＬＵＮ  ＩＤを性能推定部１５２ｂに通知する。
性能推定部１５２ｂは、データ収集部１１ａから入力されたサブＬＵＮ毎のＩＯ数を用いて（図２（ｂ）の矢印Ａ２参照）、第２ワークロード分析部１５１ｂから通知されたサブＬＵＮ毎に、それぞれのＩＯ数を集計する。
【００９８】
性能推定部１５２ｂは、算出したパラメータセットごとのＳＳＤヒットとみなされるＩＯ数の累積値をメモリ１０ｂ（図８参照）等の記憶領域に格納する。
第２ワークロード分析部１５１ｃは、第２ワークロード分析部１５１ａおよび第２ワークロード分析部１５１ｂとは異なる第３パラメータセットを前記移動判定アルゴリズムに適用することで、ＳＳＤ２０とＨＤＤ３０との間で移動させるサブＬＵＮを決定する。第２ワークロード分析部１５１ｃは決定した移動対象のサブＬＵＮのサブＬＵＮ  ＩＤを
性能推定部１５２ｃに通知する。
【００９９】
性能推定部１５２ｃは、データ収集部１１ａから入力されたサブＬＵＮ毎のＩＯ数を用いて（図２（ｂ）の矢印Ａ２参照）、第２ワークロード分析部１５１ｃから通知されたサブＬＵＮ毎に、それぞれのＩＯ数を集計する。
性能推定部１５２ｃは、算出したパラメータセットごとのＳＳＤヒットとみなされるＩＯ数の累積値をメモリ１０ｂ（図６参照）等の記憶領域に格納する。
【０１００】
パラメータ判定部１５３は、性能推定部１５２ａ，１５２ｂ，１５２ｃによってそれぞれ算出されたパラメータセットごとのＳＳＤヒットとみなされるＩＯ数の累積値を、メモリ１０ｂ等の記憶領域から所定間隔毎（例えば１時間毎）に読み出す。
そして、パラメータ判定部１５３は、これらのＳＳＤヒットとみなされるＩＯ数の累積値を比較し、これらうち、ＳＳＤヒットとみなされるＩＯ数の累積値が最大のパラメータセットを、推奨パラメータセットとして決定する。
【０１０１】
パラメータ判定部１５３は、決定した推奨パラメータセットを用いて、階層管理部１１の第１ワークロード分析部１１ｂが使用する第１パラメータセットを更新する。これにより、第１ワークロード分析部１１ｂにおいて、ＳＳＤヒット率が高くなることが期待できるパラメータセットが設定され、装置性能を効率的に引き出すことができる。
パラメータ判定部１５３は、決定した推奨パラメータセットを第１ワークロード分析部１１ｂに通知して、第１パラメータセットの変更を指示する。
【０１０２】
第１ワークロード分析部１１ｂは、通知された推奨パラメータセットと第１パラメータセットとを比較し、推奨パラメータセットと第１パラメータセットとが異なる場合に、第１パラメータセットを推奨パラメータセットを用いて更新する。
［４］効果
実施形態の一例としての階層ストレージ装置１によれば、階層管理部１１における、第１ワークロード分析部１１ｂによるＳＳＤ２０又はＨＤＤ３０にデータを移動するサブＬＵＮの選択、および移動指示部１１ｃによる、階層ドライバ１２に対するサブＬＵＮのデータの移動指示と並行して、パラメータ評価部１５が複数のパラメータセットの評価を行なう。
【０１０３】
すなわち、複数の第２ワークロード分析部１５１によって、第１ワークロード分析部１１ｂによって用いられる第１パラメータセットを含む複数種類のパラメータセットをそれぞれ移動判定アルゴリズムに適用することで、ＳＳＤ２０とＨＤＤ３０との間で移動させるサブＬＵＮを決定する。
そして、複数の性能推定部１５２が、各パラメータセットを用いて決定された移動対象のサブＬＵＮについて、データ収集部１１ａから入力されたサブＬＵＮ毎のＩＯ数を用いて、パラメータセットごとのＳＳＤヒットとみなされるＩＯ数の累積値をそれぞれ算出する。
【０１０４】
パラメータ判定部１５３は、これらのＳＳＤヒットとみなされるＩＯ数の累積値を比較し、これらうち、ＳＳＤヒットとみなされるＩＯ数の累積値が最大のパラメータセットを、推奨パラメータセットとして決定する。そして、第１ワークロード分析部１１ｂが用いる第１パラメータセットを、この推奨パラメータセットで更新する。
これにより、第１ワークロード分析部１１ｂが、ＳＳＤヒット率が高くなるサブＬＵＮが選択されるようなパラメータセット（推奨パラメータセット）を用いる。従って、ＳＳＤ２０を効率良く動作させることができ、階層ストレージ装置１の性能を向上させることができる。また、ワークロードの状態に応じたＯＴＦ−ＡＳＴの動作が可能となる。
【０１０５】
［５］その他
そして、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、一実施形態において、ＳＳＤ２０及びＨＤＤ３０を用いた階層ストレージ装置１について説明したが、これに限定されるものではなく、例えばキャッシュメモリと主記憶装置とを用いた階層記憶システムにも同様に適用することができる。すなわち、本発明は、不揮発性記憶装置の階層記憶システムだけでなく、揮発性記憶装置を含む階層記憶システムにも同様に適用することができる。
【０１０６】
また、一実施形態に係る階層ストレージ装置１は、ＳＳＤ２０及びＨＤＤ３０の他に、速度差のある記憶装置にも適用することが可能である。例えばＨＤＤと、ＨＤＤよりも大容量だが低速なテープドライブ等の磁気記録装置とを用いた階層ストレージ装置等にも適用することが可能である。
さらに、一実施形態において、階層ストレージ制御装置１０の動作を１つのＳＳＤ２０及び１つのＨＤＤ３０に着目して説明したが、複数のＳＳＤ２０及び複数のＨＤＤ３０が階層ストレージ装置１及び１Ａにそなえられる場合も同様である。
【０１０７】
また、上述した実施形態においては、階層ストレージ制御装置１０がＬｉｎｕｘ  ｄｅｖｉｃｅ−ｍａｐｐｅｒ等の機能を用いる例を示したが、これに限定されるものではない。例えば、他のボリューム管理用ドライバや他のＯＳの機能を用いてもよく、種々変形して実施することができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【０１０８】
［６］付記
（付記１）
第１の記憶装置と、
前記第１の記憶装置よりも高いデータアクセス性能を有する第２の記憶装置と、
前記第１の記憶装置に含まれる複数の単位領域の各々に関するアクセス情報を収集する収集部と、
前記収集部が収集した前記アクセス情報に基づき第１のパラメータを用いて、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域を特定する第１特定部と、
前記第１特定部が特定した前記第１の記憶装置における前記移動対象領域のデータを前記第２の記憶装置に移動させる移動処理部と、
前記収集部が収集した前記アクセス情報に基づき複数のパラメータをそれぞれ用いて、前記パラメータ毎に、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域候補を特定する第２特定部と、
前記収集部によって収集された前記アクセス情報に基づき、前記第２特定部によって前記複数のパラメータ毎に特定された前記移動対象領域候補のそれぞれに対するデータアクセスの発生数を計数する計数部と、
前記計数部によって計数された前記データアクセスの発生数が最も多い前記パラメータを推奨パラメータとして決定し、前記第１特定部が用いる前記第１のパラメータを前記推奨パラメータを用いて更新する更新部と
を備えることを特徴とする、階層ストレージ装置。
【０１０９】
（付記２）
前記パラメータが、前記単位領域のＩＯ集中が継続して発生した時間を表す継続時間情報であることを特徴とする、付記１記載の階層ストレージ装置。
（付記３）
前記パラメータが、前記第１の記憶装置と前記第２の記憶装置との間でデータを同時に移動させる前記移動対象領域の上限数を表す同時最大移動数であることを特徴とする、付記１又は２記載の階層ストレージ装置。
【０１１０】
（付記４）
前記パラメータが、各単位領域に発生したデータアクセス数の合計に占める割合を表すデータアクセス率であることを特徴とする、付記１〜３のいずれか１項に記載の階層ストレージ装置。
（付記５）
第１の記憶装置と前記第１の記憶装置よりも高いデータアクセス性能を有する第２の記憶装置と接続される階層ストレージ制御装置であって、
前記第１の記憶装置に含まれる複数の単位領域の各々に関するアクセス情報を収集する収集部と、
前記収集部が収集した前記アクセス情報に基づき第１のパラメータを用いて、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域を特定する第１特定部と、
前記第１特定部が特定した前記第１の記憶装置における前記移動対象領域のデータを前記第２の記憶装置に移動させる移動処理部と、
前記収集部が収集した前記アクセス情報に基づき複数のパラメータをそれぞれ用いて、前記パラメータ毎に、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域候補を特定する第２特定部と、
前記収集部によって収集された前記アクセス情報に基づき、前記第２特定部によって前記複数のパラメータ毎に特定された前記移動対象領域候補のそれぞれに対するデータアクセスの発生数を計数する計数部と、
前記計数部によって計数された前記データアクセスの発生数が最も多い前記パラメータを推奨パラメータとして決定し、前記第１特定部が用いる前記第１のパラメータを前記推奨パラメータを用いて更新する更新部と
を備えることを特徴とする、階層ストレージ制御装置。
【０１１１】
（付記６）
前記パラメータが、前記単位領域のＩＯ集中が継続して発生した時間を表す継続時間情報であることを特徴とする、付記５記載の階層ストレージ制御装置。
（付記７）
前記パラメータが、前記第１の記憶装置と前記第２の記憶装置との間でデータを同時に移動させる前記移動対象領域の上限数を表す同時最大移動数であることを特徴とする、付記５又は６記載の階層ストレージ制御装置。
【０１１２】
（付記８）
前記パラメータが、各単位領域に発生したデータアクセス数の合計に占める割合を表すデータアクセス率であることを特徴とする、付記５〜７のいずれか１項に記載の階層ストレージ制御装置。
（付記９）
第１の記憶装置と前記第１の記憶装置よりも高いデータアクセス性能を有する第２の記憶装置と接続されるコンピュータに、
前記第１の記憶装置に含まれる複数の単位領域の各々に関するアクセス情報を収集し、
収集した前記アクセス情報に基づき第１のパラメータを用いて、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域を特定し、
特定した前記第１の記憶装置における前記移動対象領域のデータを前記第２の記憶装置に移動させ、
収集した前記アクセス情報に基づき複数のパラメータをそれぞれ用いて、前記パラメー
タ毎に、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域候補を特定し、
収集された前記アクセス情報に基づき、前記複数のパラメータ毎に特定された前記移動対象領域候補のそれぞれに対するデータアクセスの発生数を計数し、
計数された前記データアクセスの発生数が最も多い前記パラメータを推奨パラメータとして決定し、前記第１のパラメータを前記推奨パラメータを用いて更新する
処理を実行させることを特徴とする、階層ストレージ制御プログラム。
【０１１３】
（付記１０）
前記パラメータが、前記単位領域のＩＯ集中が継続して発生した時間を表す継続時間情報であることを特徴とする、付記９記載の階層ストレージ制御プログラム。
（付記１１）
前記パラメータが、前記第１の記憶装置と前記第２の記憶装置との間でデータを同時に移動させる前記移動対象領域の上限数を表す同時最大移動数であることを特徴とする、付記９又は１０記載の階層ストレージ制御プログラム。
【０１１４】
（付記１２）
前記パラメータが、各単位領域に発生したデータアクセス数の合計に占める割合を表すデータアクセス率であることを特徴とする、付記９〜１１のいずれか１項に記載の階層ストレージ制御プログラム。
（付記１３）
第１の記憶装置と前記第１の記憶装置よりも高いデータアクセス性能を有する第２の記憶装置と接続される階層ストレージ制御装置において、
前記第１の記憶装置に含まれる複数の単位領域の各々に関するアクセス情報を収集する処理と、
収集した前記アクセス情報に基づき第１のパラメータを用いて、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域を特定する処理と、
特定した前記第１の記憶装置における前記移動対象領域のデータを前記第２の記憶装置に移動させる処理と、
収集した前記アクセス情報に基づき複数のパラメータをそれぞれ用いて、前記パラメータ毎に、前記第１の記憶装置と前記第２の記憶装置との間でデータを移動させる移動対象領域候補を特定する処理と、
収集された前記アクセス情報に基づき、前記複数のパラメータ毎に特定された前記移動対象領域候補のそれぞれに対するデータアクセスの発生数を計数する処理と、
計数された前記データアクセスの発生数が最も多い前記パラメータを推奨パラメータとして決定し、前記第１のパラメータを前記推奨パラメータを用いて更新する処理と
を実行させることを特徴とする、階層ストレージ制御方法。
【０１１５】
（付記１４）
前記パラメータが、前記単位領域のＩＯ集中が継続して発生した時間を表す継続時間情報であることを特徴とする、付記１３記載の階層ストレージ制御方法。
（付記１５）
前記パラメータが、前記第１の記憶装置と前記第２の記憶装置との間でデータを同時に移動させる前記移動対象領域の上限数を表す同時最大移動数であることを特徴とする、付記１３又は１４記載の階層ストレージ制御方法。
【０１１６】
（付記１６）
前記パラメータが、各単位領域に発生したデータアクセス数の合計に占める割合を表すデータアクセス率であることを特徴とする、付記１３〜１５のいずれか１項に記載の階層ストレージ制御方法。
【符号の説明】
【０１１７】
１，１Ａ    階層ストレージ装置（ストレージ装置）
１０，１０Ａ    階層ストレージ制御装置（ストレージ制御装置）
１０ａ    ＣＰＵ
１０ｂ    メモリ
１０ｃ    記憶部
１０ｄ    インタフェース部
１０ｅ    入出力部
１０ｆ，１０ｈ    記録媒体
１０ｇ    読取部
１１  階層管理部
１１ａ  データ収集部（収集部）
１１ｂ  ワークロード分析部
１１ｃ  移動指示部
１２  階層ドライバ
１２ａ    ＩＯマップ部
１２ｂ    階層テーブル
１２ｃ    一時バッファ
１３    ＳＳＤドライバ
１４    ＨＤＤドライバ
１５    パラメータ評価部
１５１ａ，１５１ｂ，１５１ｃ  ワークロード分析部
１５２ａ，１５２ｂ，１５２ｃ  性能推定部
１５３    パラメータ判定部
１００    階層ストレージ制御装置
２０    ＳＳＤ
３０    ＨＤＤ
【図１】
0006443170.tif 000002
【図２】
0006443170.tif 000003
【図３】
0006443170.tif 000004
【図４】
0006443170.tif 000005
【図５】
0006443170.tif 000006
【図６】
0006443170.tif 000007
【図７】
0006443170.tif 000008
【図８】
0006443170.tif 000009
【図９】
0006443170.tif 000010