(57)【要約】  アクセス性能の異なる複数の記憶階層を有する計算機システムの制御部が実行する階層記憶の制御方法であって、前記計算機システムの処理部が実行するアプリケーションプログラムは前記記憶階層内の記憶領域へアクセスする特定処理を有し、前記特定処理と前記記憶領域の対応に関する第１の情報を記憶する第１のステップと、前記特定処理の経時的なアクセスの動作に関する第２の情報を取得する第２のステップと、前記記憶領域の経時的なアクセス量に関する第３の情報を取得する第３のステップと、前記第１の情報に基づき前記第２の情報と前記第３の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記記憶階層間で移動するよう移動開始時刻を決定する第４のステップと、を有する。
2015107626.tif 000002
【特許請求の範囲】
【請求項１】
アクセス性能の異なる複数の記憶階層を有する計算機システムの制御部が実行する階層記憶の制御方法であって、
前記計算機システムの処理部が実行するアプリケーションプログラムは前記記憶階層内の記憶領域へアクセスする特定処理を有し、
前記特定処理と前記記憶領域の対応に関する第１の情報を記憶する第１のステップと、
前記特定処理の経時的なアクセスの動作に関する第２の情報を取得する第２のステップと、
前記記憶領域の経時的なアクセス量に関する第３の情報を取得する第３のステップと、
前記第１の情報に基づき前記第２の情報と前記第３の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記記憶階層間で移動するよう移動開始時刻を決定する第４のステップと、
を有することを特徴とする階層記憶の制御方法。
【請求項２】
前記アクセス量の変化がアクセス量の増加の場合、前記アクセス量の増加の時刻の前にアクセス性能の低い記憶階層からアクセス性能の高い記憶階層へ前記記憶領域のデータを移動するよう移動開始時刻を決定する前記第４のステップを有することを特徴とする請求項１に記載の階層記憶の制御方法。
【請求項３】
前記アクセス量の増加の時刻から前記記憶領域のデータの移動の時間を差し引くことにより前記移動時刻を決定する前記第４のステップを有することを特徴とする請求項２に記載の階層記憶の制御方法。
【請求項４】
前記アクセス量の変化がアクセス量の減少の場合、前記アクセス量の減少の時刻にアクセス性能の高い記憶階層からアクセス性能の低い記憶階層へ前記記憶領域のデータを移動するよう移動開始時刻を決定する第４のステップを有することを特徴とする請求項１に記載の階層記憶の制御方法。
【請求項５】
前記第２の情報と前記第３の情報を取得し、当該取得した第２の情報と第３の情報に基づき前記特定処理と前記記憶領域とを対応付けて前記第１の情報を生成し、前記生成した第１の情報を記憶する前記第１のステップを有することを特徴とする請求項１に記載の階層記憶の制御方法。
【請求項６】
前記アプリケーションプログラムに対する操作と時間的関係を有する前記特定処理の経時的なアクセスの開始に関する第２の情報を取得する前記第２のステップを有することを特徴とする請求項１に記載の階層記憶の制御方法。
【請求項７】
前記第１の情報に基づき前記第２の情報と前記第３の情報から前記操作の時刻に対する前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記記憶階層間で移動するよう前記操作の時刻を基準にした移動開始時刻を決定する第４のステップを有することを特徴とする請求項６に記載の階層記憶の制御方法。
【請求項８】
ストレージとホスト計算機と管理計算機を含む計算機システムであって、
前記ストレージは、アクセス性能の異なる複数の記憶階層を有し、
前記ホスト計算機は、前記記憶階層内の記憶領域へアクセスする特定処理を含むアプリケーションプログラムを実行し、
前記管理計算機は、
前記特定処理と前記記憶領域の対応に関する第１の情報を記憶し、
前記ホスト計算機から前記特定処理の経時的なアクセスの動作に関する第２の情報を取得し、
前記ストレージから前記記憶領域の経時的なアクセス量に関する第３の情報を取得し、
前記第１の情報に基づき前記第２の情報と前記第３の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記ストレージ内の記憶階層間で移動するよう移動開始時刻を決定する、
ことを特徴とする計算機システム。
【請求項９】
前記管理計算機は、
前記アクセス量の変化がアクセス量の増加の場合、前記アクセス量の増加の時刻の前に前記ストレージ内のアクセス性能の低い記憶階層からアクセス性能の高い記憶階層へ前記記憶領域のデータを移動するよう移動開始時刻を決定することを特徴とする請求項８に記載の計算機システム。
【請求項１０】
前記ホスト計算機は前記ストレージを含み、
前記管理計算機は、
前記ホスト計算機から前記第３の情報を取得し、
前記第１の情報に基づき前記第２の情報と前記第３の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記ホスト計算機内の記憶階層間で移動するよう移動開始時刻を決定する、
ことを特徴とする請求項８に記載の計算機システム。
【請求項１１】
前記ストレージは第１の記憶階層を含み、
前記ホスト計算機は第２の記憶階層を含み、
前記管理計算機は、
前記ホスト計算機と前記ストレージから前記第３の情報を取得し、
前記第１の情報に基づき前記第２の情報と前記第３の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記ホスト計算機内および／あるいは前記ストレージ内の記憶階層間で移動するよう移動開始時刻を決定する、
ことを特徴とする請求項８に記載の計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算機システムおよびその階層記憶の制御方法に関するものである。
【背景技術】
【０００２】
一般にサービスは、時期などの要因により利用量が変動する。その結果、ストレージシステムは最も利用量が増加する状況で要求される性能を持つ記憶領域を、増加する情報を格納するだけの容量分用意する必要がある。しかし、情報システムへの投資は急激には増えないため、必要な記憶領域を用意できないことが課題となっている。【０００３】
これに対し、特許文献１では、ストレージシステムが複数の異なる特性（入出力性能やビットコストなど）を持つ記憶領域を備える場合に、書き込まれたデータをページと呼ばれる一定サイズの断片に分割して、各ページを指定された特性を示す記憶領域に配置する。そして、ストレージシステムは、データが指定された特性を示す記憶領域に配置された後に、ホスト計算機によって当該ページにアクセスされる頻度に応じて、適切な入出力性能を有する記憶領域の当該ページを再配置する技術が開示されている。【０００４】
以降、説明のためにストレージシステムが備える複数の特性を示す記憶領域を記憶階層と称し、記憶階層を構成する各記憶領域をＴｉｅｒと称する。また、ページを記憶階層に配置する処理及びページを再配置する処理を階層制御と称する。【０００５】
特許文献１においては、一般的に高価な入出力性能の高い記憶領域（上位Ｔｉｅｒと称する）に、その性能が必要なデータのみを配置することが可能となるが、サービスの利用が突発的に増加した場合、当該サービスによってアクセスされるデータは上位階層記憶に配置されていないケースがある。その結果、サービスの利用者が期待する時間内に情報システムがサービスを完了できないことが課題となっている。【０００６】
これに対し、特許文献２では、アプリケーションプログラム（以降、アプリケーションプログラムを単にアプリケーションと称する場合もある）で使用するデータに対して満たすべきレスポンス性能（要求レスポンス性能と称する）が付与されている場合には、当該ファイルを、要求レスポンス性能を満たす適切な入出力性能を有する記憶装置に配置する技術が開示されている。特許文献２によれば、アプリケーションで利用されるデータを、要求レスポンス性能を満たす記憶領域に常時配置することにより、アプリケーションの処理遅延や停止を防ぐことが可能となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開第２００９／０３００２８５号明細書
【特許文献２】米国特許出願公開第２０１２／０１８５４２６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献２ではアプリケーションの利用状況を踏まえずに、アプリケーションで利用するデータを、要求レスポンス性能を満たす上位Ｔｉｅｒに常時配置し続ける。例えばアプリケーション起動時にのみアクセスされるデータは、アプリケーション未起動時やアプリケーション起動完了後であっても上位Ｔｉｅｒに配置され続ける。その結果、アプリケーションの利用状況によっては必ずしもレスポンス性能を必要としないデータが上位Ｔｉｅｒに配置されるため、上位Ｔｉｅｒが無駄に消費されてしまう。【０００９】
そこで、本発明の目的は、アプリケーションに対する操作に応じて適切なデータを適切なタイミングで記憶階層に配置することにより、各時刻において上位Ｔｉｅｒにアクセス量が少ないデータが配置されることを抑止するとともに、アプリケーションへのレスポンス性能を向上させることにある。
【課題を解決するための手段】
【００１０】
本発明にかかる代表的な階層記憶の制御方法は、アクセス性能の異なる複数の記憶階層を有する計算機システムの制御部が実行する階層記憶の制御方法であって、前記計算機システムの処理部が実行するアプリケーションプログラムは前記記憶階層内の記憶領域へアクセスする特定処理を有し、前記特定処理と前記記憶領域の対応に関する第１の情報を記憶する第１のステップと、前記特定処理の経時的なアクセスの動作に関する第２の情報を取得する第２のステップと、前記記憶領域の経時的なアクセス量に関する第３の情報を取得する第３のステップと、前記第１の情報に基づき前記第２の情報と前記第３の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記記憶階層間で移動するよう移動開始時刻を決定する第４のステップと、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、アプリケーションに対する操作に応じて適切なデータを適切なタイミングで記憶階層に配置することができ、各時刻において上位Ｔｉｅｒにアクセス量が少ないデータが配置されることを抑止できるとともに、アプリケーションへのレスポンス性能を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】階層制御の概略を示す図である。
【図２】計算機システムの構成の例を示す図である。
【図３】管理計算機の構成の例を示す図である。
【図４】ストレージシステムの構成の例を示す図である。
【図５】ホスト計算機の構成の例を示す図である。
【図６】サブプログラムページ関連テーブルの例を示す図である。
【図７】イベント解析テーブルの例を示す図である。
【図８】Ｉ／Ｏ解析データの例を示す図である。
【図９】ジョブ管理テーブルの例を示す図である。
【図１０】ページ階層制御タスク管理テーブルの例を示す図である。
【図１１】ＩＯＰＳ変移データの例を示す図である。
【図１２】ログファイルデータの例を示す図である。
【図１３】ログファイル管理テーブルの例を示す図である。
【図１４】階層記憶性能管理テーブルの例を示す図である。
【図１５】ログファイルの例を示す図である。
【図１６】ページ階層制御管理テーブルの例を示す図である。
【図１７】階層記憶容量管理テーブルの例を示す図である。
【図１８】Ｉ／Ｏ解析プログラムのフローチャートの例を示す図である。
【図１９】階層制御プラン作成プログラムのフローチャートの例を示す図である。
【図２０】ページを上位Ｔｉｅｒに移動させる処理のフローチャートの例を示す図である。
【図２１】ページを下位Ｔｉｅｒに移動させる処理のフローチャートの例を示す図である。
【図２２】ジョブ終了時Ｉ／Ｏ解析修正プログラムのフローチャートの例を示す図である。
【図２３】実施例２の管理計算機の構成の例を示す図である。
【図２４】実施例２のサブプログラムページ関連発見プログラムフローチャートの例を示す図である。
【図２５】実施例３の管理計算機の構成の例を示す図である。
【図２６】実施例３の相対階層記憶管理テーブルの例を示す図である。
【発明を実施するための形態】
【００１３】
以下図面にしたがって、好ましい一実施の形態を詳述する。なお、以下の説明では、「ｘｘｘテーブル」の表現にて各種情報を説明することもあるが、各種情報はテーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「ｘｘｘテーブル」を「ｘｘｘ情報」と呼ぶことができる。
【００１４】
また、以下の説明では、「プログラム」を主語として処理を説明する場合もあるが、プログラムはコントローラに含まれるプロセッサ（例えばＣＰＵ：Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インタフェースデバイス（例えば通信ポート）を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサ或いはそのプロセッサを有する管理システム（例えば、管理用計算機あるいはサーバ）が行う処理としても良い。また、コントローラはプロセッサそれ自体であっても良いし、コントローラが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。プログラムはプログラムソースから各コントローラにインストールされても良い。プログラムソースは例えばプログラム配布サーバ又は記憶メディアであっても良い。
【００１５】
なお、管理計算機は入出力デバイスを有する。入出力デバイスの例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外のデバイスであってもよい。また、入出力デバイスの代替としてシリアルインタフェースやイーサーネットインタフェース（イーサーネットは登録商標）を入出力デバイスとし、当該インタフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入力デバイスでの入力及び表示を代替してもよい。
【００１６】
以後、計算機システムを管理し、ストレージシステムを管理制御する一つ以上の計算機の集合を管理システムと呼ぶことがある。管理計算機が表示用情報を表示する場合は管理計算機が管理システムである。また、管理計算機と表示用計算機の組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数の計算機で管理計算機と同等の処理を実現してもよく、この場合は当該複数の計算機（表示を表示用計算機が行う場合は表示用計算機も含め）が管理システムである。
【００１７】
また、以下の説明では、「時刻」という言葉を用いるが、時刻は年、月、日といった情報も指し示しても良く、当然ながら時、分、秒（含む小数点以下の秒）を指し示しても良い。
【実施例１】
【００１８】
（１−１）本実施の形態の概要 
好ましい本実施の形態では、アプリケーションのログ情報からアプリケーションに対する操作に伴って発生する複数の特定処理（以降、説明のためにサブプログラムと称する。サブプログラムの詳細な説明は後述する。）の実行パターンを解析し、各サブプログラムによってアクセスされるページと、発生するアクセス数の経時変化を特定する。さらに、上記のサブプログラムによるアクセスの経時変化を基に、ページの階層制御を計画する。これにより、アプリケーションに対する操作に応じて適切なデータを、適切なタイミングで記憶階層に配置する。【００１９】
図１は本実施の形態の概略を示す図である。アプリケーションのログ情報以外にＯＳ起動ログからも経時的な処理の実行パターンを抽出できる。ここで、例えばＶＭがアプリケーションに相当し、処理ＡなどがアプリケーションＶＭ１のサブプログラムに相当する。処理Ａはページ１（ｐ１）へアクセスすることが処理とページとの関係テーブルから特定でき、時刻に対する各ページへのアクセス（ＩＯＰＳ）を測定し解析すると、起動時にはページ１のアクセス数（Ｉ／Ｏ数）が多いのに対し、起動５分後には処理Ｂによるページ３へのアクセスが急増するという経時変化が特定できる。このため、ジョブスケジューラで８時にＶＭ１を起動すると設定されている場合、起動５分後の８時５分に間に合うように７時５１分にページ３を上位Ｔｉｅｒへ移動開始する。【００２０】
図１において太い実線矢印はＩ／Ｏの解析処理の情報の流れであり、次回の起動において使用するページの階層制御のプランの準備をするためのものである。太い点線矢印は次回の起動においてページ階層制御のプランを作成してプランを実行する情報の流れである。
（１−２）計算機システムのハードウェア構成 
図２に計算機システム１０のハードウェア構成の例を示す。計算機システム１０は、管理計算機１００、ストレージシステム２００及びホスト計算機３００から構成される。計算機システム１０において、管理計算機１００及びホスト計算機３００は、同一計算機であってもよいし、それぞれ１台であってもよいし、複数台であってもよい。また、計算機システム１０において、ストレージシステム２００は、１台であってもよいし、複数台であってもよい。また、計算機システム１０において、ホスト計算機３００及びストレージシステム２００は、同一計算機であってもよいし、それぞれ１台であってもよいし、複数台であってもよい。【００２１】
ストレージシステム２００、ホスト計算機３００は、通信ネットワーク（例えばＳＡＮ（Ｓｔｏｒａｇｅ Ａｒｅａ Ｎｅｔｗｏｒｋ））５００を介して相互に接続される。また、管理計算機１００はホスト計算機３００及びストレージシステム２００に通信ネットワーク（例えばＬＡＮ（Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ））５５０を介して接続される。なお、通信ネットワーク５００及び５５０は図２に示すように別々のネットワークでもよいし、同一のネットワークでもよい。【００２２】
図３に管理計算機１００の構成の例を示す。管理計算機１００は、メモリ１１０、ディスク１２０、管理用Ｉ／Ｆ１３０、データ通信Ｉ／Ｆ１４０及びＣＰＵ１５０を有する計算機である。メモリ１１０、ディスク１２０、管理用Ｉ／Ｆ１３０、データ通信Ｉ／Ｆ１４０及びＣＰＵ１５０は、内部ネットワーク１６０を介して相互に接続されている。【００２３】
メモリ１１０はＣＰＵ１５０によって必要とされる情報を記憶する。具体的には、メモリ１１０は、サブプログラムページ関連テーブル１１０１、イベント解析テーブル１１０２、Ｉ／Ｏ解析データ１１０３、ジョブ管理テーブル１１０４、ページ階層制御タスク管理テーブル１１０５、ページ階層制御管理テーブル１１０６及び階層記憶容量管理テーブル１１０７を記憶する。【００２４】
ディスク１２０はＣＰＵ１５０によって実行されるプログラム及びＣＰＵ１５０によって必要とされる永続的な情報を記憶する。具体的には、ＩＯＰＳ変移データ１２０１、ログファイルデータ１２０２、ログファイル管理テーブル１２０３、階層記憶性能管理テーブル１２０４、ログファイル収集プログラム１２５１、ストレージＩ／Ｏ量集計プログラム１２５２、ページ割り当て状態監視プログラム１２５３、Ｉ／Ｏ解析プログラム１２５４、階層制御プラン作成プログラム１２５５、階層制御プログラム１２５６及びジョブ終了時Ｉ／Ｏ解析修正プログラム１２５７を記憶する。【００２５】
サブプログラムページ関連テーブル１１０１は、ホスト計算機３００のＣＰＵで実行されるアプリケーションプログラムに対する操作に伴い実行されるサブプログラムと、サブプログラムがアクセスするページの関連情報を格納する。イベント解析テーブル１１０２はホスト計算機３００のメモリに記憶されるアプリケーションプログラムに対する各種操作実行に伴い実行されるサブプログラムの解析情報を格納する。Ｉ／Ｏ解析データ１１０３はホスト計算機３００にてアプリケーションプログラムが実行された際のストレージシステム２００に対するアクセスの解析結果を格納する。ジョブ管理テーブル１１０４はホスト計算機３００のメモリに記憶されるアプリケーションプログラムに対する各種操作に関するジョブを格納する。ページ階層制御タスク管理テーブル１１０５は、ページの階層制御に関してストレージシステム２００に対する管理操作のタスク情報を格納する。ページ階層制御管理テーブル１１０６は、ページが配置されるＴｉｅｒと、ページに対するアクセス量を示す情報の経時変化を格納する。階層記憶容量管理テーブル１１０７はＴｉｅｒの容量の経時変化を格納する。メモリ１１０に記憶される各種テーブルについての詳細は後述する。【００２６】
ログファイル収集プログラム１２５１はホスト計算機３００のディスクに記憶されているログファイルを収集するプログラムである。ストレージＩ／Ｏ量集計プログラム１２５２はストレージシステム２００からページに対するアクセス量を表す情報（例えばＩＯＰＳ）を取得するプログラムである。ページ割り当て状態監視プログラム１２５３はページの階層制御の状態を監視するためのプログラムである。【００２７】
Ｉ／Ｏ解析プログラム１２５４はサブプログラムによって発生するストレージシステム２００に対するアクセス量の経時変化を解析するプログラムである。階層制御プラン作成プログラム１２５５はページの階層制御の実行プランを作成するためのプログラムである。階層制御プログラム１２５６はページの階層制御の実行プランに従い、ページの階層制御を実施するためのプログラムである。ジョブ終了時Ｉ／Ｏ解析修正プログラム１２５７はジョブ実行後に実行結果に基づきＩ／Ｏ解析結果を修正するためのプログラムである。【００２８】
ＩＯＰＳ変移データ１２０１はページに対するＩＯＰＳの時間変化を示す情報を格納する。ログファイルデータ１２０２はホスト計算機３００のディスクに記憶されるログファイルの情報を格納する。ログファイル管理テーブル１２０３はホスト計算機３００から収集したログの情報を保持するログファイルデータ１２０２を管理する情報を格納する。階層記憶性能管理テーブル１２０４は各Ｔｉｅｒの性能情報を格納する。ディスク１２０に記憶される各種テーブルについての詳細は後述する。【００２９】
管理用Ｉ／Ｆ１３０は通信ネットワーク５００を介してストレージシステム２００及びホスト計算機３００に接続するためのインタフェースである。データ通信Ｉ／Ｆ１４０は通信ネットワーク５５０を介してストレージシステム２００及びホスト計算機３００に接続するためのインタフェースである。ＣＰＵ１５０はディスク１２０に記憶されるプログラムを実行することによって各種処理を行う。なお、図３では管理用Ｉ／Ｆ１３０とデータ通信Ｉ／Ｆ１４０は同一ではないが、管理用Ｉ／Ｆ１３０とデータ通信Ｉ／Ｆ１４０は同一であってもよい。【００３０】
図４にストレージシステム２００の構成の例を示す。ストレージシステム２００は、メモリ２１０、コントローラ２２０、管理用Ｉ／Ｆ２３０、データ通信Ｉ／Ｆ２４０及び記憶メディア２５０を備える。メモリ２１０、コントローラ２２０、管理用Ｉ／Ｆ２３０、データ通信Ｉ／Ｆ２３０及び記憶メディア２５０は内部ネットワーク２６０を介して相互に接続されている。なお、図４では管理用Ｉ／Ｆ２３０とデータ通信Ｉ／Ｆ２４０は同一ではないが、管理用Ｉ／Ｆ２３０とデータ通信Ｉ／Ｆ２４０は同一であってもよい。【００３１】
メモリ２１０はコントローラ２２０によって実行されるプログラム及びコントローラ２２０によって必要とされる情報を記憶する。具体的には、メモリ２１０は、Ｉ／Ｏ量監視プログラム２１５１、ページ割り当て制御プログラム２１５２を記憶する。Ｉ／Ｏ量監視プログラム２１５１は階層記憶のページに対するアクセス量を監視するためのプログラムである。ページ割り当て制御プログラム２１５２はページを記憶領域を構成する記憶メディア２５０の実アドレス空間に割り当てるためのプログラムである。【００３２】
コントローラ２２０は、メモリ２１０に記憶されるプログラムを実行することによって、ストレージシステム２００の動作を制御する。管理用Ｉ／Ｆ２３０は通信ネットワーク５５０を介して管理計算機１００及びホスト計算機３００に接続するためのインタフェースである。データ通信Ｉ／Ｆ２４０は通信ネットワーク５００を介して管理計算機１００及びホスト計算機３００に接続するためのインタフェースである。【００３３】
記憶メディア２５０はホスト計算機３００から書き込み要求されたデータを記憶する。記憶メディア２５０は入出力性能やビットコストなどの特性が異なる複数種類のメディアであってもよい。例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）群２５０Ａ、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）磁気ディスク群２５０Ｂ、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）磁気ディスク群２５０Ｃなどの１種類以上の組み合わせであってもよい。【００３４】
図５にホスト計算機３００の構成の例を示す。ホスト計算機３００は、メモリ３１０、ディスク３２０、管理用Ｉ／Ｆ３３０、データ通信Ｉ／Ｆ３４０及びＣＰＵ３５０を有する計算機である。メモリ３１０、ディスク３２０、管理用Ｉ／Ｆ３３０、データ通信Ｉ／Ｆ３４０及びＣＰＵ３５０は内部ネットワーク３６０を介して相互に接続されている。【００３５】
メモリ３１０はＣＰＵ３５０によって実行されるプログラム及びＣＰＵ３５０によって必要とされる情報等を記憶する。具体的には、メモリ３１０は、１又は複数のアプリケーションプログラム３１０１を記憶する。アプリケーションプログラム３１０１はＣＰＵ３５０が実行する各種処理を定義するプログラムである。【００３６】
アプリケーションプログラム３１０１は１又は複数のサブプログラム３１０２を含む。サブプログラム３１０２はアプリケーションプログラム３１０１の処理を構成するプログラムの一部または全部であり、アプリケーションプログラム３１０１に対する操作に伴って発生する処理のプログラムである。操作としては例えば図示と説明を省略した計算機では一般的なＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）からアプリケーションプログラム３１０１への入力であって、ユーザからのアプリケーションプログラム３１０１の起動入力やデータ入力あるいはタイマなどによる割り込み入力などでもよい。【００３７】
サブプログラム３１０２は操作により直接発生する処理には限定されない。サブプログラム３１０２としてアプリケーションプログラム３１０１に対する操作が実行され、アプリケーションプログラム３１０１の何らかの処理が実行されて、その実行された処理から自動実行されるプログラムであってもよい。また、サブプログラム３１０２としてアプリケーションプログラム３１０１に対する複数の操作の組み合わせによって実行されるプログラムであってもよい。アプリケーションプログラム３１０１に対する操作と何らかの関係をもって発生する処理のプログラムをサブプログラム３１０２としてもよい。【００３８】
例えば、管理者がアプリケーションプログラム３１０１であるメールサーバプログラムの起動操作に伴って自動的に実行されるメールに関するＤＢ（データベース）プログラムであってもよいし、ユーザのメール受信操作に伴って発生するメール受信プログラムであってもよいし、メール受信プログラムの実行後に実行される受信メール一覧表示プログラムであってもよい。なお、サブプログラム３１０２は以上の説明に限定されるものではなく、以下のサブプログラム３１０２に関する説明に適合するプログラムをサブプログラム３１０２としてもよい。【００３９】
ディスク３２０はＣＰＵ３５０によって実行されるプログラム及びＣＰＵ３５０によって必要とされる永続的な情報を記憶する。具体的には、ディスク３２０は、ログファイル３２０１、ログファイル送信プログラム３２５１を記憶する。ログファイル３２０２は、メモリ３１０に記憶されるアプリケーションプログラム３１０１に対する各種操作のログ、アプリケーションプログラム３１０１に対して各種操作が行われた際にアプリケーションプログラム３１０１によって自動実行されるサブプログラム３１０２のログなどを格納するファイルである。ログファイル送信プログラム３２５１はログファイル３２０１を管理計算機１００に送信するためのプログラムである。【００４０】
管理用Ｉ／Ｆ３３０は通信ネットワーク５００を介して管理計算機１００及びストレージシステム２００に接続するためのインタフェースである。データ通信Ｉ／Ｆ３４０は通信ネットワーク５５０を介して管理計算機１００及びストレージシステム２００に接続するためのインタフェースである。ＣＰＵ３５０はディスク１２０に記憶されるプログラムを実行することによって各種処理を行う。なお、図５では管理用Ｉ／Ｆ３３０とデータ通信Ｉ／Ｆ３４０は同一ではないが、管理用Ｉ／Ｆ３３０とデータ通信Ｉ／Ｆ３４０は同一であってもよい。
（１−３）各種テーブルの内容
図６は管理計算機１００のメモリ１１０に記憶されているサブプログラムページ関連テーブル１１０１の例を示す図である。サブプログラムページ関連テーブル１１０１は、ホスト計算機３００のＣＰＵ３５０で実行されるプログラムとプログラムがアクセスするページの関連情報を管理するテーブルである。【００４１】
アプリケーション名欄１１０１０１にはホスト計算機３００のＣＰＵ３５０が実行するアプリケーションプログラム３１０１の名称が格納される。操作種別欄１１０１０２にはホスト計算機３００のＣＰＵ３５０が実行するアプリケーションプログラム３１０１に対して行う事ができる操作の種別が格納される。サーバ名欄１１０１０３にはホスト計算機３００の名称が格納される。サブプログラム欄１１０１０４には、ホスト計算機３００のＣＰＵ３５０が実行するアプリケーションプログラム３１０１に対して操作を実施した際に、ホスト計算機３００のディスク３２０が記憶するログファイル３２０１に記録される一連のサブプログラム３１０２の状態が格納される。データＩＤ欄１１０１０５にはサブプログラム３１０２によって利用されるデータのＩＤ情報（例えばファイルのディレクトリパスとファイル名、データセットのデータセット名など）が格納される。ページ番号欄１１０１０６にはデータＩＤ欄１１０１０５に格納されるデータＩＤに対応するデータが格納されているページの番号情報が格納される。【００４２】
なお、サブプログラムページ関連テーブル１１０１の内容は管理計算機１００の図示を省略した入力装置などから予め入力してもよい。【００４３】
図７は管理計算機１００のメモリ１１０に記憶されているイベント解析テーブル１１０２の例を示す図である。イベント解析テーブル１１０２は、ホスト計算機３００のメモリ３１０に記憶されるアプリケーションプログラム３１０１に対する各種操作実行に伴い実行されるサブプログラム３１０２の解析情報である。【００４４】
アプリケーション名欄１１０２０１にはホスト計算機３００のＣＰＵ３５０が実行するアプリケーションプログラム３１０１の名称が格納される。操作種別欄１１０２０２にはホスト計算機３００のＣＰＵ３５０が実行するアプリケーションプログラム３１０１に対して行う事ができる操作の種別が格納される。サーバ名欄１１０２０３にはホスト計算機３００の名称が格納される。サブプログラム欄１１０２０４には、ホスト計算機３００のＣＰＵ３５０が実行するアプリケーションプログラム３１０１に対して操作を実施した際に、ホスト計算機３００のディスク３２０が記憶するログファイル３２０１に記録される一連のサブプログラム３１０２の状態が格納される。サブプログラム発生タイミング欄１１０２０５には、サブプログラム欄１１０２０４に格納されるサブプログラム３１０２の状態変化が発生する、ホスト計算機３００のＣＰＵ３５０が実行するアプリケーションプログラム３１０１に対する操作実施からの経過時間が格納される。Ｉ／Ｏ解析データＩＤ欄１１０２０６はサブプログラム欄１１０２０４に格納されるサブプログラム３１０２の状態変化に伴うストレージシステム２００へのアクセス量変化を示すＩ／Ｏ解析データのＩＤ情報を格納する。【００４５】
図８は管理計算機１００のメモリ１１０に記憶されているＩ／Ｏ解析データ１１０３の例を示す図である。Ｉ／Ｏ解析データ１１０３は、ホスト計算機３００のＣＰＵ３５０によってサブプログラム３１０２が実行された際のストレージシステム２００に対するアクセスの解析結果に関する情報である。【００４６】
Ｉ／Ｏ解析データＩＤ欄１１０３０１には、Ｉ／Ｏ解析データ１１０３を識別するＩＤ情報が格納される。当該ＩＤ情報は、イベント解析テーブル１１０２のアプリケーション名欄１１０２０１、操作種別欄１１０２０２、サーバ名欄１１０２０３、サブプログラム欄１１０２０４に格納される情報の組み合わせ毎に発行される。【００４７】
経過時間欄１１０３０２にはイベント解析テーブル１１０２のサブプログラム発生タイミング欄１１０２０５に格納されるサブプログラム３１０２の状態変化発生からの経過時間が格納される。図８に示す当該経過時間（６０秒毎）は一例であって例えば他の時間間隔であってもよい。ページ番号欄１１０３０３にはサブプログラム３１０２によって利用されるデータが格納されるページの番号情報が格納される。平均ＩＯＰＳ欄１１０３０４には、経過時間欄１１０３０２に格納される経過時間において、ページ番号欄１１０３０３に番号情報が格納されるページに対して発生したアクセス量（ＩＯＰＳ）を示す情報が格納される。指定Ｔｉｅｒ欄１１０３０５には、ページ番号欄１１０３０３に番号情報が格納されるページを配置するよう指定された１又は複数のＴｉｅｒの番号情報が格納される。【００４８】
なお、指定Ｔｉｅｒ欄１１０３０５に指定されるＴｉｅｒの情報は管理計算機１００が記憶するプログラムが設定する。例えば、本実施例においては、ジョブ終了時Ｉ／Ｏ解析修正プログラム１２５７がストレージシステムの性能情報を基に設定する。しかし、これは一例であり、例えば、ユーザ入力値に基づき設定してもよいし、ホスト計算機３００が保持するアプリケーションプログラム３１０１の要求性能に基づき設定するなどをしてもよい。また、管理計算機１００に指定Ｔｉｅｒ欄１１０３０５に情報を設定するためのプログラムを用意することで、ホスト計算機３００が記憶するプログラムが上記プログラムを通して指定Ｔｉｅｒを変更可能とするなどをしてもよい。なお、性能とは異なる指標に基づく設定としてもよい。【００４９】
図９は管理計算機１００のメモリ１１０に記憶されているジョブ管理テーブル１１０４の例を示す図である。ジョブ管理テーブル１１０４は、ホスト計算機３００のメモリ３１０に記憶されるアプリケーションプログラム３１０１に対する各種操作に関するジョブを管理する情報である。【００５０】
ジョブＩＤ欄１１０４０１にはジョブを識別するためのＩＤ情報が格納される。実行時刻欄１１０４０２にはジョブを実行する時刻が格納される。アプリケーション名欄１１０４０３にはホスト計算機３００のＣＰＵ３５０が実行するアプリケーションプログラム３１０１の名称が格納される。操作種別欄１１０４０４には、ホスト計算機３００のＣＰＵ３５０が実行するアプリケーションプログラム３１０１に対して行う事ができる操作の種別が格納される。サーバ名欄１１０４０５にはホスト計算機３００の名称が格納される。【００５１】
図１０は管理計算機１００のメモリ１１０に記憶されているページ階層制御タスク管理テーブル１１０５の例を示す図である。ページ階層制御タスク管理テーブル１１０５は、ページの階層制御に関するストレージシステム２００に対する管理操作タスクの情報である。【００５２】
階層制御タスクID欄１１０５０１にはタスクを識別するためのＩＤ情報が格納される。実行時刻欄１１０５０２には、タスクを実行する予定の将来の時刻、又はタスクを実行した過去の時刻が格納される。完了予定時刻欄１１０５０３にはタスクの実行時刻におけるタスクが完了する予定である将来の時刻が格納される。完了時刻欄１１０５０４には、タスクが完了していない場合には、タスク未完了であることを示すために“―”が格納され、タスクが完了している場合には、タスクが完了した時刻が格納される。なお、タスク未完了を示す“―”は一例であって、他の表現形式であってもよい。ページＩＤ欄１１０５０５には階層制御の対象であるページの番号が格納される。移動先Ｔｉｅｒ欄１１０５０６にはページの移動先Ｔｉｅｒ番号が格納される。ジョブＩＤ欄１１０５０７には階層制御の対象のページを利用するジョブのＩＤ情報が格納される。【００５３】
図１１は管理計算機１００のディスク１２０に記憶されているＩＯＰＳ変移データ１２０１の例を示す図である。ＩＯＰＳ変移データ１２０１は、ページに対するアクセス量（ＩＯＰＳ）の時間変化を示す情報である。【００５４】
ＩＯＰＳ変移データＩＤ欄１２０１０１にはＩＯＰＳデータの取得元であるストレージシステム２００毎に異なる識別子となるＩＤが格納される。時刻欄１２０１０２にはストレージシステム２００にてページに対するアクセス量を測定した時刻情報が格納される。ページ番号欄１２０１０３にはストレージシステム２００にてアクセス量を測定したページの番号が格納される。ＩＯＰＳ欄１２０１０４には、ページ番号欄１２０１０３に格納される番号のページに対して、時刻欄１２０１０２に格納される時刻の間に発生したアクセス量を示す情報（例えばＩＯＰＳ）が格納される。【００５５】
図１２は管理計算機１００のディスク１２０に記憶されているログファイルデータ１２０２の例を示す図である。ログファイルデータ１２０２は、ホスト計算機３００から収集したログファイル３２０１の情報である。【００５６】
ログファイルＩＤ欄１２０２０１にはホスト計算機３００から収集したログファイル３２０１を識別するＩＤ情報が格納される。時刻欄１２０２０２にはアプリケーションプログラム３１０１に対する操作に伴う各種サブプログラム３１０２の実行時刻情報が格納され、サブプログラム欄１２０２０３にはサブプログラム３１０２の状態が格納される。時刻欄１２０２０２とサブプログラム欄１２０２０３は、ホスト計算機から収集したログファイル３２０１（詳細は図１５を用いて後で説明する）の時刻欄３２０１０３とサブプログラム欄３２０１０４とそれぞれ対応する。【００５７】
図１３は管理計算機１００のディスク１２０に記憶されているログファイル管理テーブル１２０３の例を示す図である。ログファイル管理テーブル１２０３は、ＩＯＰＳ変移データ１２０１とログファイルデータ１２０２の関連情報である。【００５８】
アプリケーション名欄１２０３０１にはホスト計算機３００のＣＰＵ３５０が実行するアプリケーションプログラム３１０１の名称が格納される。操作種別欄１２０３０２にはホスト計算機３００のＣＰＵ３５０がアプリケーションプログラム３１０１に対して実行した操作の種別が格納される。サーバ名欄１２０３０３にはホスト計算機３００の名称が格納される。実行時刻欄１２０３０４には、アプリケーション名欄１２０３０１に格納されるアプリケーションプログラム３１０１に対して、操作種別欄１２０３０２に格納される操作を実行した時刻が格納される。ログファイルＩＤ１２０３０５にはログファイルデータ１２０２を識別するＩＤが格納される。アプリケーション名欄１２０３０１と操作種別欄１２０３０２に格納される情報は、同一行のログファイルＩＤ欄１２０３０５に格納されるログファイルＩＤが指すログファイルデータ１２０２に対応するログファイル３２０１の情報（３２０１０３、３２０１０４）とそれぞれ対応する。【００５９】
図１４は管理計算機１００のディスク１２０に記憶されている階層記憶性能管理テーブル１２０４の例を示す図である。階層記憶性能管理テーブル１２０４は、各Ｔｉｅｒの性能情報である。【００６０】
Ｔｉｅｒ ＩＤ欄１２０４０１にはＴｉｅｒの番号情報が格納される。例えば図１４においては、このＴｉｅｒ番号が小さいほど性能（例えばスループットやＩＯＰＳ）が高い記憶領域であることを示す。Ｒｅａｄスループット欄１２０４０２には当該Ｔｉｅｒの読み込み性能（例えばＭＢ／ｓ）、Ｗｒｉｔｅスループット欄１２０４０３には当該Ｔｉｅｒの書き込み性能（例えばＭＢ／ｓ）が格納される。上限ＩＯＰＳ欄１２０４０４には当該Ｔｉｅｒが対応することができるＩＯＰＳの上限値が格納される。なお、図１４ではＴｉｅｒ番号が小さいほど性能が高いとしたが、これに限定されるものではない。例えば、Ｔｉｅｒ番号ではなく、Ｔｉｅｒを構成するメディアの名称をＴｉｅｒ  ＩＤ欄１２０４０１の内容として用いることもできる。【００６１】
図１５はホスト計算機３００のディスク３２０に記憶されているログファイル３２０１の例を示す図である。ログファイル３２０１は、アプリケーションプログラム３１０１のログ情報を格納するファイルである。【００６２】
アプリケーション名欄３２０１０１にはホスト計算機３００のＣＰＵ３５０が実行するアプリケーションプログラム３１０１の名称が格納される。操作種別欄３２０１０２にはホスト計算機３００のＣＰＵ３５０が実行するアプリケーションプログラム３１０１に対して行う事ができる操作の種別が格納される。時刻欄３２０１０３にはアプリケーションプログラム３１０１に対する操作に伴うサブプログラム３１０２の実行時刻情報が格納される。【００６３】
サブプログラム欄３２０１０４にはサブプログラム３１０２の状態が格納される。ここでのサブプログラム３１０２は例えば下記に記すサブプログラムである。
第１タイプのサブプログラム：アプリケーションプログラム３１０１に対する操作実行に伴い、アプリケーションプログラム３１０１によって自動実行されるサブプログラム。
第２タイプのサブプログラム：アプリケーションプログラム３１０１に対する操作実行後に、アプリケーションプログラム３１０１に対して実行される次なる操作によって実行されるサブプログラム。
第３タイプのサブプログラム：アプリケーションプログラム３１０１に対する操作実行後に、アプリケーションプログラム３１０１が利用されることによって実行されるサブプログラム。【００６４】
なお、上記サブプログラムはアプリケーションプログラム３１０１に対する操作に伴って実行されるサブプログラム３１０２の一例であって、他の契機、因果関係、実行手段で実行されるサブプログラムであってもよい。【００６５】
図１６は管理計算機１００のメモリ１１０に記憶されているページ階層制御管理テーブル１１０６の例示す図である。ページ階層制御管理テーブル１１０６は、ページが配置されるＴｉｅｒとページに対するアクセス量を示す情報の経時変化の情報である。【００６６】
時刻欄１１０６０１には一定間隔で区切られた時刻の区間が格納され、具体的には開始時刻と終了時刻の組が格納される。ページ番号欄１１０６０２にはページを識別する番号が格納される。Ｔｉｅｒ ＩＤ欄１１０６０３には、対応する時刻欄１１０６０１の時刻において、ページが配置されるＴｉｅｒの番号が格納される。ＩＯＰＳ欄１１０６０４にはページに対するアクセス数を表す情報（例えばＩＯＰＳ）が格納される。指定Ｔｉｅｒ欄１１０６０５には、時刻欄１１０６０１の時刻において、ページが配置されるように指定されたＴｉｅｒの番号が格納される。【００６７】
図１７は管理計算機１００のメモリ１１０に記憶されている階層記憶容量管理テーブル１１０７の例を示す図である。【００６８】
時刻欄１１０７０１には一定間隔で区切られた時刻の区間が格納され、具体的には開始時刻と終了時刻の組が格納される。Ｔｉｅｒ ＩＤ欄１１０７０２には、Ｔｉｅｒの番号が格納される。全体容量（ＧＢ）欄１１０７０３にはＴｉｅｒの使用可能な容量が格納され、具体的にはページ割り当て済みの記憶領域の容量と後述する空き容量（ＧＢ）の和である。空き容量（ＧＢ）欄１１０７０４はページを割り当てることができるＴｉｅｒの容量である。固定化容量（ＧＢ）欄１１０７０５は、時刻欄１１０７０１の時刻の区間において、Ｔｉｅｒ ＩＤ欄１１０７０２のＴｉｅｒに固定して配置されているページの総容量である。
（１−４）計算機システムの動作の詳細
（１−４−１）Ｉ／Ｏ解析の動作の詳細
まず、管理計算機１００におけるＩ／Ｏ解析の動作を詳細に説明する。管理計算機１００は、ディスク１２０に記憶するＩＯＰＳ変移データ１２０１とログファイルデータ１２０２を用いて、Ｉ／Ｏ解析プログラム１２５４に基づき、ホスト計算機３００のＣＰＵ３５０によって実行されるアプリケーションプログラム３１０１に対して行われる操作に伴い実行されるサブプログラム３１０２の実行タイミングと、サブプログラム３１０２によるストレージシステム２００に対するＩ／Ｏを解析する。【００６９】
Ｉ／Ｏ解析プログラム１２５４によって用いられるＩＯＰＳ変移データ１２０１とログファイルデータ１２０２は、それぞれストレージI/O量集計プログラム１２５２とログファイル収集プログラム１２５１により生成される。ＩＯＰＳ変移データ１２０１は、ストレージI/O量集計プログラム１２５２が管理計算機１００のＣＰＵ１５０で実行され、例えば、次の処理（ａ１）〜（ａ２）が実行されることにより生成される。
（ａ１）ストレージI/O量集計プログラム１２５２はページに対するアクセス数の累積値をストレージシステム２００から定期的に取得する。
（ａ２）ストレージI/O量集計プログラム１２５２は、ストレージシステム２００からページに対するアクセス数の累積値を受信すると、その結果から前回受信時の累積値との差分を算出し、前回受信時刻と今回受信時刻とその時刻間におけるページに対するアクセス数を、ＩＯＰＳ変移データ１２０１に追加する。【００７０】
ストレージシステム２００は、上記（ａ１）の実行に備え、Ｉ／Ｏ量監視プログラム２１５１をコントローラ２２０で実行し、例えば以下の処理（ｂ１）〜（ｂ２）を行う。
（ｂ１）Ｉ／Ｏ量監視プログラム２１５１に基づき、コントローラ２２０はページに対するアクセス数を監視し、ページに対するアクセス数の累積値を保持する。
（ｂ２）Ｉ／Ｏ量監視プログラム２１５１は、上記（ａ１）実行によるアクセス数累積値の送信要求に応答し、アクセス数累積値を管理計算機１００に送信する。【００７１】
ログファイルデータ１２０２は、ログファイル収集プログラム１２５１が管理計算機１００のＣＰＵ１５０で実行され、例えば次の処理（ｃ１）〜（ｃ３）が実行されることにより生成される。
（ｃ１）ログファイル収集プログラム１２５１はホスト計算機３００に対して定期的にログファイル３２０１を収集する。
（ｃ２）ログファイル収集プログラム１２５１は、ログファイル３２０１に含まれる時刻３２０１０３とサブプログラム情報３２０１０４を基にログファイルデータ１２０２を生成する。
（ｃ３）ログファイル収集プログラム１２５１は、アプリケーション名３２０１０１と操作種別３２０１０２の情報とともに、上記（ｃ２）で生成したログファイルデータ１２０２のＩＤをログファイル管理テーブル１２０３に追加する。【００７２】
なお、ログファイル収集プログラム１２５１を定期的に実行することは、ログファイル収集プログラム１２５１の実行契機の一例であり、例えばジョブ実行終了を契機に実行するなどしてもよい。【００７３】
また、ホスト計算機３００は、管理計算機１００からログファイル３２０１の取得要求（例えば上記（ｃ１）におけるログファイル収集要求）を受信すると、ログファイル送信プログラム３２５１に基づきログファイル３２０１を管理計算機１００に送信する。【００７４】
Ｉ／Ｏ解析プログラム１２５４のフローチャートの例を図１８に示す。管理計算機１００のＣＰＵ１５０（以下、管理計算機１００として説明する）は、定期的に図１３に示すログファイル管理テーブル１２０３に含まれるアプリケーション名１２０３０１、操作種別１２０３０２、サーバ名１２０３０３の組み合わせを入力としてＩ／Ｏ解析プログラム１２５４を実行する。他の実行契機が採用されてもよく、例えば、ログファイル収集プログラム１２５１に基づいてホスト計算機３００からログファイル３２０１を収集したタイミングであってもよい。また、以降の説明のため、アプリケーション名１２０３０１、操作種別１２０３０２、サーバ名１２０３０３の組み合わせのことをイベントと表現する。また、イベントが示すホスト計算機３００のＣＰＵ３５０で実行されるアプリケーションプログラム３１０１に対して操作が実行されることをイベントが発生すると表現する。【００７５】
管理計算機１００は、Ｉ／Ｏ解析プログラム１２５４が実行されると、入力として与えられたイベントに対応する全てのログファイルＩＤ１２０３０５をログファイル管理テーブル１２０３から取得する。次に、取得したログファイルＩＤ１２０３０５に対応するログファイルデータ１２０２を取得する（ステップＳ１００５）。【００７６】
次に、管理計算機１００はステップＳ１００５で取得したログファイルデータ群１２０２を比較し、サブプログラム欄１２０２０３のサブプログラム３１０２が出現するログファイルデータ１２０２の数の情報を基にイベントが発生した際に実行されるサブプログラム３１０２を推定する（ステップＳ１０１０）。ここでの推定方法は例えば統計的仮説検定などを用いてもよい。具体的には、まず、イベントが発生した際には特定のサブプログラム３１０２が実行されるとの仮定を設定する。この仮定の下で適当な有意水準（例えば１パーセント）を設定し、サブプログラム欄１２０２０３のサブプログラム３１０２がログファイルデータ１２０２に出現する確率について仮説検定を行えばよい。サブプログラム欄１２０２０３のサブプログラム３１０２がログファイルデータ１２０２に出現する確率は、２以上のログファイルデータ１２０２において、サブプログラム欄１２０２０３のサブプログラム３１０２が出現するログファイルデータの全体に対する割合から算出すればよい。【００７７】
管理計算機１００は、各サブプログラム３１０２について以降のステップＳ１０２０からステップＳ１０５０の処理を１又は複数回実行する（ステップＳ１０１５とステップＳ１０５５）。【００７８】
管理計算機１００は、ステップＳ１０１０で用いたログファイルデータ群１２０２のうち、サブプログラム３１０２が出現するログファイルデータ１２０２より、サブプログラム３１０２が実行された時刻１２０２０２を取得する。また、管理計算機１００は、ステップＳ１０１０で用いたログファイルデータ群のうち、サブプログラム３１０２が出現するログファイルデータ１２０２のログファイルＩＤ１２０２０１に対応するイベントの実行時刻１２０３０４をログファイル管理テーブル１２０３より取得する。次に、管理計算機１００は、上記で取得した１以上のイベントの実行時刻１２０３０４と、前記の実行時刻１２０３０４に対応するサブプログラム３１０２が実行された時刻１２０２０２の情報を基に、イベントが発生してからサブプログラム３１０２が実行されるまでの経過時間を算出する。【００７９】
管理計算機１００は、上記で２以上のログファイルデータ１２０２から算出した各イベントが発生してからサブプログラム３１０２が実行されるまでの経過時間群を基に、代表的なイベントが発生してからサブプログラム３１０２が実行されるまでの経過時間を推定する。推定方法は例えば微分エッジ検出法などの特徴検出法を用いてもよい。具体的には、特徴検出法を経過時間群に対して適用し、特徴的な値である経過時間を検出してもよい（以降、説明のために推定されたイベントが発生してからサブプログラム３１０２が実行されるまでの代表的な経過時間をサブプログラム３１０２が実行されるタイミングと称する）（ステップＳ１０２０）。【００８０】
ステップＳ１０２５において、管理計算機１００は図６に示すサブプログラムページ関連テーブル１１０１を参照し、Ｉ／Ｏ解析プログラム１２５４の入力として与えられたイベントに対応する情報（１１０１０１〜１１０１０３）が、サブプログラムページ関連テーブル１１０１に含まれるかを判断する。含まれる場合にはサブプログラム３１０２の情報（１１０１０４）がサブプログラムページ関連テーブル１１０１に含まれるかを判断する。【００８１】
ステップＳ１０２５における判断の結果が否定的な場合には、当該サブプログラム３１０２に関する処理を中止し、ステップ１０１５より別のサブプログラム３１０２に関する処理を開始する。【００８２】
ステップＳ１０２５における判断の結果が肯定的な場合に、管理計算機１００はイベントとサブプログラム３１０２に対応するページ番号欄１１０１０６のページ番号をサブプログラムページ関連テーブル１１０１より取得する（ステップＳ１０３０）。【００８３】
管理計算機１００は、ステップ１０２０で用いたサブプログラム３１０２が出現するログファイルデータ群１２０２からサブプログラム３１０２が実行されている時刻群を取得する。そして、ＩＯＰＳ変移データ１２０１から上記で求めた時刻におけるＩＯＰＳ変移をそれぞれ抽出する。【００８４】
管理計算機１００は、上記処理にて取得した各ＩＯＰＳ変移を基にして、例えば下記の処理ステップ（ｄ１）〜（ｄ３）を実行し、ステップＳ１０３０で特定したページ番号欄１１０１０６のページ番号に対応するページに対してアクセス数が変化するタイミング（以降説明のため、サブプログラム３１０２が発生してからページに対してアクセス数が変化するまでの経過時間を、ページに対してアクセス数が変化するタイミングと表現する。）を抽出する（ステップＳ１０３５）。
（ｄ１）図１１に示すＩＯＰＳ変移データ１２０１より、ステップ１０３０で特定したページ番号欄１１０１０６のページ番号に対応する時刻欄１２０１０１とＩＯＰＳ欄１２０１０４の情報を取得する。
（ｄ２）ＩＯＰＳ欄１２０１０４のＩＯＰＳ値の変移より、ＩＯＰＳ値の変更量が大きい時刻を検出する。検出方法は例えば微分エッジ検出法などの特徴検出法を用いてもよい。
（ｄ３）上記（ｄ２）で検出した時刻と、サブプログラム３１０２の実行タイミングと、イベントの実行時刻欄１２０３０４の時刻より、サブプログラム３１０２が実行されてからＩＯＰＳ値が変化するまでの経過時間を算出する。【００８５】
次に、管理計算機１００は、ステップＳ１０３５において算出したページに対してＩＯＰＳ値が変化するタイミングについて、外れ値を検出する。ステップＳ１０４５以降の処理において管理計算機１００は、検出した外れ値に対応するＩＯＰＳ変移と、その対応するログファイルデータ１２０２は除外して処理を行う。外れ値の検出方法は例えば統計的な外れ値検定方法を用いてもよい（ステップＳ１０４０）。【００８６】
管理計算機１００は、処理対象のログファイルデータ１２０２に格納されたサブプログラム３１０２の実行時刻におけるＩＯＰＳ変移を基に、ステップＳ１０３０で取得したページに対する各サブプログラム３１０２の実行からの各経過時間におけるＩＯＰＳ値の平均値を算出する。さらに、管理計算機１００は、Ｉ／Ｏ解析データ１１０３に対し、サブプログラム３１０２の実行後の経過時間欄の１１０３０２の時間、ステップＳ１０３０で取得したページをページ番号欄１１３０３へ、上記で算出したＩＯＰＳ値の平均値を平均ＩＯＰＳ欄１１０３０４へそれぞれ格納する。なお、平均値を使用する方法は一例であって中央値などの他の統計的方法であってもよい（ステップＳ１０４５）。【００８７】
管理計算機１００は、ステップＳ１０５０において、図７に示すイベント解析テーブル１１０２に対して、当該イベントの情報（１１０２０１〜１１０２０３）とサブプログラム３１０２の情報（１１０２０４）、ステップＳ１０２０で算出したサブプログラム３１０２の実行タイミング（１１０２０５）、ステップＳ１０５０で生成したＩ／Ｏ解析データ１１０３のＩＤ（１１０２０６）を格納する。【００８８】
ステップＳ１０５５において管理計算機１００は、ステップＳ１０１０で抽出したすべてのサブプログラム３１０２について、ステップＳ１０２０からステップＳ１０５０までの処理を実行したかを判断する。すべてのサブプログラム３１０２について、ステップＳ１０２０からステップＳ１０５０までの処理を実行したならば、Ｉ／Ｏ解析プログラム１２５４を終了する。すべてのサブプログラム３１０２について、ステップＳ１０２０からステップＳ１０５０までの処理を実行していないならば、ステップＳ１０１５へ戻り、ステップＳ１０１０で抽出した別のサブプログラム３１０２について処理を開始する。【００８９】
以上で説明したように、管理計算機１００でＩ／Ｏ解析プログラム１２５４を実行することで、ホスト計算機３００のディスク３２０に記憶されるログファイル３２０１とストレージシステム２００から取得されるＩＯＰＳ変移データ１２０１を基に、イベント実行にともなうサブプログラム３１０２の実行時のページに対するＩ／Ｏの経時変化を解析することが可能となる。なお、以上の説明ではログファイルデータ１２０２においてサブプログラム３１０２が実行される確率情報からイベントに伴い実行されるサブプログラム３１０２を推定したが、サブプログラム３１０２はユーザによる指定などによって管理計算機１００に対して通知されてもよい。その場合にはステップＳ１００５からステップＳ１０１０の処理が必要とされない。
（１−４−２）階層制御プラン作成の動作の詳細
管理計算機１００における階層制御プラン作成の動作を詳細に説明する。管理計算機１００は、ディスク１２０に記憶するイベント解析テーブル１１０２を用いて、階層制御プラン作成プログラム１２５５に基づき、ストレージシステム２００に対して階層制御を行うためのタスクを生成する。【００９０】
図１９は管理計算機１００における階層制御プラン作成プログラム１２５５のフローチャートの例を示す図である。管理計算機１００は、図９に示すジョブ管理テーブル１１０４に新規のジョブが追加されると、階層管理プラン作成プログラム１２５５を開始する（ステップＳ２０００）。まず、管理計算機１００はジョブ管理テーブル１１０４から新規に追加されたジョブを取得する（ステップＳ２００５）。【００９１】
管理計算機１００は、ジョブからイベント（アプリケーション名欄１１０４０３、操作種別欄１１０４０４、サーバ名欄１１０４０５）の情報を抽出し、図７に示すイベント解析テーブル１１０２に抽出したイベントに対応する情報が含まれるか、否かを判断する（ステップＳ２０１０）。ステップＳ２０１０において、イベントに対応する情報が含まれない場合には、階層制御プラン作成プログラム１２５５の処理を終了する。【００９２】
一方、ステップＳ２０１０において、イベントに対応する情報が含まれる場合には、管理計算機１００はイベント解析テーブル１１０２のサブプログラム欄１１０２０４からイベント実行時に伴い発生するサブプログラム３１０２の一覧を取得する。管理計算機１００は取得した各サブプログラム３１０２について以降のステップＳ２０２０からステップＳ２０７０の処理をループ（Ａ）として１又は複数回実行する（ステップＳ２０１５）。【００９３】
ステップＳ２０２０において、管理計算機１００は、処理対象のイベントとサブプログラム３１０２に対応する、イベントが発生してからサブプログラム３１０２が実行されるまでの経過時間とＩ／Ｏ解析データを特定し、イベント解析テーブル１１０２のサブプログラム発生タイミング欄１１０２０５とＩ／Ｏ解析データＩＤ欄１１０２０６より取得する（ステップＳ２０２０）。【００９４】
管理計算機１００は、ステップＳ２０２０にて取得したＩ／Ｏ解析データのＩＤから特定されるＩ／Ｏ解析データ１１０３の経過時間欄１１０３０２より、サブプログラム３１０２実行からの経過時間のステップを取得する。管理計算機１００は取得した経過時間のステップ毎に以降のステップＳ２０３０からステップ２０６５をループ（Ｂ）として１又は複数回実行する（ステップＳ２０２５）。【００９５】
管理計算機１００は、ステップＳ２０２０にて取得したＩ／Ｏ解析データのＩＤから特定されるＩ／Ｏ解析データ１１０３のページ番号欄１１０３０３より、当該経過時間のステップにおけるサブプログラム３１０２が参照するページを取得する。管理計算機１００は取得したページ毎に以降のステップＳ２０４０からステップ２０６０をループ（Ｃ）として１又は複数回実行する（ステップＳ２０３５）。【００９６】
管理計算機１００は、ステップＳ２０４０において、当該ページを配置することが指定されているＴｉｅｒとして、前経過時間ステップと比べ、より入出力性能が高いＴｉｅｒが指定されているか、否かを判断する。図１４を用いて説明したように、Ｔｉｅｒ番号が小さいほど、性能（例えばスループットやＩＯＰＳ）が高い記憶領域であると定義したため、Ｉ／Ｏ解析データ１１０３の指定Ｔｉｅｒ欄１１０３０５を参照し、経過時間ステップの変化に伴い、より番号の小さいＴｉｅｒが指定されているか、否かを判断する。また、Ｉ／Ｏ解析データ１１０３の指定Ｔｉｅｒ欄１１０３０５を参照した結果、前回経過時間ステップにおいて、ページを配置するＴｉｅｒが指定されておらず、今回経過時間ステップにおいてページを配置するＴｉｅｒが指定されている場合には、肯定的判断を行い、今回経過時間ステップにおいてページを配置するＴｉｅｒが指定されていない場合には、否定的判断を行う。【００９７】
なお、ループ（Ｃ）の１回目の実行時においては、今回経過時間ステップにおいて、ページを配置するＴｉｅｒが指定されている場合には肯定的判断を行い、ページを配置するＴｉｅｒが指定されていない場合には否定的判断を行う。【００９８】
ステップ２０４０の判断の結果、否定的判断であった場合に、管理計算機１００は、Ｉ／Ｏ解析データ１１０３を参照し、前回経過時間ステップにおけるページのＩＯＰＳ値と、今回経過時間ステップにおけるページのＩＯＰＳ値を比較する。なお、ループ（Ｃ）の１回目の実行時であった場合には、管理計算機１００は当該ページについて、他のページのＩＯＰＳ値と比較して適切なＴｉｅｒを決定するために、対象のＩ／Ｏ解析データ１１０３の指定Ｔｉｅｒ欄１１０３０５にすべてのＴｉｅｒ番号を指定した上で、肯定的判断を行う（ステップＳ２０４５）。【００９９】
ステップＳ２０４０の結果が肯定的である場合、または、ステップＳ２０４０の結果が否定的かつステップＳ２０４５の結果が肯定的である場合、管理計算機１００はステップＳ２０５０にて、後述するページを上位Ｔｉｅｒに移動させるための処理を実行する。また、ステップＳ２０４０の結果が否定的かつステップＳ２０４５の結果が否定的である場合、管理計算機１００はステップＳ２０６０にて、後述するページを下位Ｔｉｅｒに移動させるための処理を実行する。【０１００】
ステップＳ２０６５において、管理計算機１００はループ（Ｃ）の対象のすべてのページに対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機１００はステップＳ２０７０を実行し、実行されていない場合、管理計算機１００はステップＳ２０３５へ処理を戻す。ステップＳ２０７０において、管理計算機１００はループ（Ｂ）の対象のすべての経過時間ステップに対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機１００はステップＳ２０７５を実行し、実行されていない場合、管理計算機１００はステップＳ２０２５へ処理を戻す。ステップＳ２０７５において、管理計算機１００はループ（Ａ）の対象のすべてのページに対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機１００は階層制御プラン作成プログラム１２５５を終了し、実行されていない場合、管理計算機１００はステップＳ２０１５へ処理を戻す。【０１０１】
ページを上位Ｔｉｅｒに移動させるための処理（図１９のステップＳ２０５０）を詳細に図２０を用いて説明する。【０１０２】
管理計算機１００は、ステップＳ３００５において、階層制御プラン作成プログラム１２５５の入力情報である図９に示すジョブ管理テーブル１１０４に格納された新規のジョブと、ステップＳ２０５０を実行する状態において、処理対象としているサブプログラム３１０２、サブプログラム３１０２が実行されてからの経過時間、ページの情報から、対象の時刻情報を算出する。具体的には、管理計算機１００は、ジョブ管理テーブル１１０４の実行時刻欄１１０４０２からジョブの発生時刻と、イベント解析テーブル１１０２のサブプログラム発生タイミング欄１１０２０５からイベント発生からサブプログラム３１０２実行までの経過時間、処理対象としているサブプログラム３１０２が実行されてからの経過時間、を基に時刻を算出する（以降、説明のためにここで算出した時刻をＩ／Ｏ発生時刻と表現する）。【０１０３】
次に、管理計算機１００は、階層記憶容量管理テーブル１１０７を参照し、Ｉ／Ｏ発生時刻における各Ｔｉｅｒの容量情報（全体容量欄１１０７０３、空き容量情報欄１１０７０４、固定化容量欄１１０７０５）を取得する。さらに、管理計算機１００は、ステップＳ２０５０を実行時に処理対象であるＩ／Ｏ解析データ１１０３において、経過時間欄１１０３０２とページ番号欄１１０３０３の欄内の処理対象である経過時間とページ番号に対応する指定Ｔｉｅｒ番号欄１１０３０５のＴｉｅｒ番号を取得する。管理計算機１００は、上記で取得した各Ｔｉｅｒの空き容量情報とＴｉｅｒ番号の情報より、Ｉ／Ｏ発生時刻において指定されたＴｉｅｒより入出力性能が高いＴｉｅｒに空き容量があるか、否かを判断する。【０１０４】
ステップＳ３００５における判断が肯定的であった場合、管理計算機１００は、ステップＳ３０１０において、空き容量のあるＴｉｅｒの内、より入出力性能の高いＴｉｅｒを処理対象のページの移行先Ｔｉｅｒとして選択する。一方、ステップＳ３００５における判断が否定的であった場合、管理計算機１００はステップＳ３０１５を実行する。【０１０５】
ステップＳ３０１５において管理計算機１００は、階層記憶容量管理テーブル１１０７を参照し、Ｉ／Ｏ発生時刻における各Ｔｉｅｒの全体容量１１０７０３と固定化容量１１０７０５を比較し、各Ｔｉｅｒのページが固定されていない領域の容量を算出する。管理計算機１００は、上記で算出した各Ｔｉｅｒのページが固定されていない領域の容量の情報を基に、Ｉ／Ｏ発生時刻において指定Ｔｉｅｒより入出力性能が高いＴｉｅｒへＴｉｅｒを変更可能なページがあるか、否かを判断する。【０１０６】
ステップＳ３０１５における判断が否定的であった場合、管理計算機１００はさらにステップＳ３０３０を実行する。ステップＳ３０３０において管理計算機１００は、ページ階層制御管理テーブル１１０６を参照し、指定されたＴｉｅｒ以上の入出力性能を持つＴｉｅｒに配置されているページ番号をページ番号欄１１０６０２の中で特定する。そして、管理計算機１００は、特定したページ番号についてのＩＯＰＳ欄１１０６０４でのＩＯＰＳ値と処理対象のページに対するＩＯＰＳ値を比較し、処理対象のＩＯＰＳ値以下のＩＯＰＳであるページが、指定されたＴｉｅｒ以上の入出力性能を持つＴｉｅｒにあるか、否かを判断する。【０１０７】
ステップＳ３０１５における判断の結果が肯定的な場合、または、ステップＳ３０３０における判断が肯定的であった場合、管理計算機１００は、ステップＳ３０２０において、指定されたＴｉｅｒ以上の入出力性能を持つＴｉｅｒに配置済みのページから交換対象のページすなわち下位Ｔｉｅｒへ移動することにより上位Ｔｉｅｒに空きを作るページを特定し、交換対象のページに関する階層制御タスクを設定する。具体的には、管理計算機１００は、ページ階層制御管理テーブル１１０６を参照し、指定されたＴｉｅｒ以上の入出力性能を持つＴｉｅｒに配置されているページをページ番号欄１１０６０２の中で特定する。そして、管理計算機１００は、特定したページのうち、指定Ｔｉｅｒ欄１１０６０５のＴｉｅｒ番号が、Ｔｉｅｒ  ＩＤ１１０６０３のＴｉｅｒ番号と等しくないページを一つ選択する。次に、管理計算機１００は、選択したページについて、ページを上位Ｔｉｅｒに移動させるための処理に基づき、ページ階層制御タスクを生成する。【０１０８】
管理計算機１００は、交換対象のページが配置されていたＴｉｅｒを、処理対象のページの移動先Ｔｉｅｒとして選択する（ステップＳ３０２５）。【０１０９】
ステップＳ３０３０における判断が否定的であった場合に、管理計算機１００は、ページを上位Ｔｉｅｒに移動させることできないと判断し、ページを下位Ｔｉｅｒに移動させるための処理を終了し、図１９に示す処理へ戻る。【０１１０】
ステップＳ３０４０において管理計算機１００は、Ｉ／Ｏ発生時刻の時点において処理対象のページが配置されているＴｉｅｒ（以降、移動元Ｔｉｅｒと称する）から、移動先Ｔｉｅｒにページを移動する処理にかかる時間を算出する。具体的には、ページ階層制御テーブル１１０６からＩ／Ｏ発生時刻における処理対象ページが配置されるＴｉｅｒを参照する。次に、管理計算機１００は階層記憶性能管理テーブル１２０４を参照して移動元ＴｉｅｒのＲｅａｄスループットと移動先ＴｉｅｒのＷｒｉｔｅスループットを取得する。これらの性能情報を基に、（ページ階層制御に要する時間）＝Ｍｉｎ（移動元ＴｉｅｒのＲｅａｄスループット、移動先ＴｉｅｒのＷｒｉｔｅスループット）＊（ページの容量）でページ階層制御に要する時間を算出する。【０１１１】
管理計算機１００は、Ｉ／Ｏ発生時刻から上記で算出したページ階層制御に要する時間を差し引くことにより、階層制御タスクの実行時刻を算出する（ステップＳ３０４５）。【０１１２】
ステップＳ３０５０において管理計算機１００は移動先Ｔｉｅｒと階層制御タスクの実行時刻を基に階層制御タスクを生成する。具体的には、まず、管理計算機１００は、Ｉ／Ｏ発生時刻と処理対象のページの組み合わせに対応する、ページ階層制御管理テーブル１１０６におけるレコードのＴｉｅｒ  ＩＤ欄１１０６０３に対して、移動先Ｔｉｅｒの番号を設定し、ＩＯＰＳ欄１１０６０４に対して、Ｉ／Ｏ解析データ１１０３に格納されている処理対象ページにおけるＩＯＰＳ情報を設定し、指定Ｔｉｅｒ欄１１６０５へ処理対象ページに対して指定された指定Ｔｉｅｒの番号を設定する。【０１１３】
次に、管理計算機１００はＩ／Ｏ発生時刻の移動元Ｔｉｅｒと移動先Ｔｉｅｒに対応する階層記憶容量管理テーブル１１０７におけるレコードの容量情報を更新する。すなわち、移動元Ｔｉｅｒの空き容量に対応するフィールドについては、ページ容量分減少させ、移動先Ｔｉｅｒの空き容量に対応するフィールドについては、ページ容量分増加させる。移動元Ｔｉｅｒの固定化容量に対応するフィールドについては、ページ階層制御管理テーブル１１０６において、Ｉ／Ｏ発生時刻に移動元ページに対して設定されているＴｉｅｒ  ＩＤと指定Ｔｉｅｒが同一であれば、ページ容量分減少させる。また、移動先Ｔｉｅｒの固定化容量に対応するフィールドについては、ページ階層制御管理テーブル１１０６において、Ｉ／Ｏ発生時刻に移動先ページに対して設定されているＴｉｅｒ  ＩＤと指定Ｔｉｅｒが同一であれば、ページ容量分増加させる。さらに、管理計算機１００は、タスク実行時刻、Ｉ／Ｏ発生時刻、処理対象ページ、移動先Ｔｉｅｒの情報を基に、ページ階層制御タスクを生成し、ページ階層制御タスク管理テーブル１１０５に追加する。【０１１４】
ページを下位Ｔｉｅｒに移動させるための処理（図１９のステップＳ２０６０）を詳細に説明する。図２１はページを下位Ｔｉｅｒに移動させる処理のフローチャートの例を示す図である。【０１１５】
管理計算機１００は、Ｉ／Ｏ解析データ１１０３を参照し、処理対象ページに対して指定されるＴｉｅｒ番号の経時変化を取得する。さらに、管理計算機１００はＩ／Ｏ発生時刻の前後での指定Ｔｉｅｒを比較する（ステップＳ４００５）。【０１１６】
比較の結果、Ｉ／Ｏ発生時刻において、それ以前よりも入出力性能の高いＴｉｅｒが指定されていたか、指定されているＴｉｅｒが変わっていない場合には、ページを下位Ｔｉｅｒに移動させるための処理を終了し、図１９に示す処理へ戻る。一方、Ｉ／Ｏ発生時刻において、それ以前よりも入出力性能の低いＴｉｅｒが指定されていたか、Ｔｉｅｒが指定されていない場合には、ステップＳ４０１０以降の処理を実行する。【０１１７】
ステップＳ４０１０において管理計算機１００は、ページ階層制御管理テーブル１１０６を参照し、Ｉ／Ｏ発生時刻において処理対象のページに対して指定されたＴｉｅｒ以上のＴｉｅｒに対して配置されているページをページ番号欄１１０６０２から取得する。さらに、管理計算機は取得したページのなかで、指定Ｔｉｅｒ欄１１０６０５のＴｉｅｒ番号よりも、Ｔｉｅｒ  ＩＤ欄１１０６０３のＴｉｅｒ番号が入出力性能の低いＴｉｅｒとなっているページがあるか、否かを判断する。【０１１８】
ステップＳ４０１０における判断の結果が肯定的であった場合、管理計算機１００は、Ｓ４０１０で取得した指定Ｔｉｅｒ欄１１０６０５のＴｉｅｒ番号よりも、Ｔｉｅｒ  ＩＤ欄１１０６０３のＴｉｅｒ番号が入出力性能の低いＴｉｅｒとなっているページのうち、一つを処理対象ページとの交換対象のページとして選択する（ステップＳ４０１５）。【０１１９】
一方、ステップＳ４０１０における判断の結果が否定的であった場合、ステップＳ４０２０において管理計算機１００は、ページ階層制御管理テーブル１１０６を参照し、Ｉ／Ｏ発生時刻において処理対象のページに対して指定されたＴｉｅｒ以上のＴｉｅｒに対して配置されているページ番号をページ番号欄１１０６０２から取得する。さらに、管理計算機は取得したページのなかで、処理対象のページに対するＩＯＰＳ値よりも、ＩＯＰＳ欄１１０６０４のＩＯＰＳ値が小さいページがあるか、否かを判断する。【０１２０】
ステップＳ４０２０における判断の結果が肯定的であった場合、管理計算機１００は、ステップＳ４０２０で取得した処理対象のページに対するＩＯＰＳ値よりも、ＩＯＰＳ欄１１０６０４のＩＯＰＳ値が小さいページのうち、一つを処理対象ページとの交換対象のページとして選択する（ステップＳ４０２５）。【０１２１】
一方、ステップＳ４０２０における判断の結果が否定的であった場合、管理計算機１００は、ページを下位Ｔｉｅｒに移動させる必要はないと判断し、ページを下位Ｔｉｅｒに移動させるための処理を終了して、図１９に示す処理へ戻る。【０１２２】
ステップＳ４０３０において管理計算機１００は、ページ階層制御管理テーブル１１０６と、階層記憶容量管理テーブル１１０７を更新し、交換対象のページと処理対象のページを交換する階層制御タスクを生成し、ページ階層制御タスク管理テーブル１１０５に追加する。ページ階層制御管理テーブル１１０６と階層記憶容量管理テーブル１１０７を更新する処理および階層制御タスクの生成処理はステップＳ３０５０と同様である。
（１−４−３）ジョブ終了時Ｉ／Ｏ解析修正の動作の詳細
管理計算機１００におけるジョブ終了時Ｉ／Ｏ解析修正の動作を詳細に説明する。管理計算機１００は、ディスク１２０に記憶するイベント解析テーブル１１０２を用い、ジョブ終了時Ｉ／Ｏ解析修正プログラム１２５７に基づき、ストレージシステム２００に対して階層制御を行うためのタスクを生成する。【０１２３】
図２２は管理計算機１００におけるジョブ終了時Ｉ／Ｏ解析修正プログラム１２５７のフローチャートの例を示す図である。管理計算機１００は、図９に示されるジョブ管理テーブル１１０４に格納されたジョブ実行が終了すると、ジョブ終了時Ｉ／Ｏ解析修正プログラム１２５７を実行する（ステップＳ６０００）。管理計算機１００は、ジョブ終了を検知すると、ＩＯＰＳ変移データ１２０１より、ジョブ開始時刻から終了時刻までのＩＯＰＳ変移を抽出する（ステップＳ６００５）。【０１２４】
管理計算機１００は、ページ階層制御管理テーブル１１０６を参照し、ジョブ開始時刻から終了時刻までの階層制御情報を取得する（ステップＳ６０１０）。そして、管理計算機１００は、イベント解析テーブル１１０２から、終了したジョブに対応するイベントであるレコードを特定し、特定したレコードのサブプログラム欄１１０２０４とサブプログラム発生タイミング欄１１０２０５とＩ／Ｏ解析データＩＤ欄１１０２０６に含まれるサブプログラム３１０２の一覧とそれらのサブプログラム３１０２の実行タイミングとＩ／Ｏ解析データＩＤを取得する。次に、管理計算機１００は、取得した各サブプログラム３１０２について、以降のステップＳ６０２０からステップＳ６０６０をループ（Ａ）として１又は複数回実行する（ステップＳ６０１５）。【０１２５】
ステップＳ６０２０において管理計算機１００は、サブプログラム３１０２に対応するＩ／Ｏ解析データＩＤから、Ｉ／Ｏ解析データ１１０３を取得する（ステップＳ６０２０）。次に、管理計算機１００は、ステップＳ６０２０にて取得したＩ／Ｏ解析データ１１０３に含まれる各サブプログラム３１０２実行からの経過時間ステップについて、以降のステップＳ６０３０からステップＳ６０５５をループ（Ｂ）として１又は複数回実行する（ステップＳ６０２５）。さらに、管理計算機１００は、ステップＳ６０２０にて取得したＩ／Ｏ解析データ１１０３において、処理対象となっている経過時間ステップにおける各ページ番号について、以降のステップＳ６０３５からステップＳ６０５０をループ（Ｃ）として１又は複数回実行する（ステップＳ６０３０）。【０１２６】
ステップＳ６０３５において管理計算機１００は、処理対象のページがジョブ実行時に配置されていたＴｉｅｒにおいて性能が不足していたか、否かを判断する。具体的には、管理計算機１００は、ジョブの実行時刻、ステップＳ６０１５においてイベント解析テーブル１１０２から取得したサブプログラム３１０２の実行タイミング、ステップＳ６０２５にてＩ／Ｏ解析データ１１０３から取得したサブプログラム３１０２実行からの経過時間より、時刻情報を算出する。次に、管理計算機１００は、上記で算出した時刻において、処理対象のページに対して発生したＩＯＰＳ値を、ステップ６００５で生成したＩＯＰＳ変移データより取得する。また、同様に管理計算機１００は、上記で算出した時刻において、処理対象のページが配置されていたＴｉｅｒを、ステップ６０１０で取得した階層制御情報より求める。次に、管理計算機１００は、階層記憶性能管理テーブル１２０４を参照し、処理対象のページが配置されていたＴｉｅｒのＩＯＰＳ上限値を取得する。そして、管理計算機１００は、処理対象のページに対して発生したＩＯＰＳ値と処理対象のページが配置されていたＴｉｅｒのＩＯＰＳ上限値を比較し、ジョブ実行時に処理対象のページに対して発生したＩＯＰＳが上限値となっているか、否かを判断する（ステップＳ６０３５）。【０１２７】
ステップＳ６０３５の判断の結果が肯定的であれば、管理計算機１００は、処理対象のページが配置されていたＴｉｅｒが、Ｉ／Ｏ解析データ１１０３で指定されたＴｉｅｒよりも入出力性能の高いＴｉｅｒであるか、否かを判断する（ステップＳ６０３７）。【０１２８】
ステップＳ６０３７の判断の結果が肯定的であれば、管理計算機１００は、Ｉ／Ｏ解析データ１１０３の、ステップＳ６０２５で指定した経過時間のうち、ステップＳ６０３０で指定したページに対応する指定Ｔｉｅｒのフィールドに設定されているＴｉｅｒの情報を、より上位のＴｉｅｒに変更する（ステップＳ６０４０）。ステップＳ６０３７の判断の結果が否定的であれば、管理計算機１００はステップＳ６０５５以降の処理を実施する。【０１２９】
ステップＳ６０３５の判断の結果が否定的であれば、管理計算機１００は、処理対象のページがジョブ実行時に必要以上の性能のＴｉｅｒに割り当てられていたか、否かを判断する。具体的には、管理計算機１００は、ステップ６０３５で取得した処理対応のページに対して発生したＩＯＰＳ値と、階層記憶性能管理テーブル１２０４の各ＴｉｅｒのＩＯＰＳ上限値情報を比較し、処理対応のページに対して発生したＩＯＰＳ値よりも、実際に配置されたＴｉｅｒ以下のＴｉｅｒの上限値の方が大きいか、否かを判断する（ステップＳ６０４５）。【０１３０】
ステップＳ６０４５の判断の結果が肯定的であれば、管理計算機１００は、処理対象のページがジョブ実行時に必要以上の性能のＴｉｅｒに割り当てられていたと判断し、ステップＳ６０４５で参照した指定Ｔｉｅｒのフィールドに設定されるＴｉｅｒ情報を、より下位のＴｉｅｒに変更する。ステップＳ６０４５の判断の結果が否定的であれば、管理計算機１００は、ステップＳ６０５５以降の処理を実施する。【０１３１】
ステップＳ６０５５において管理計算機１００はループ（Ｃ）の対象のすべてのページに対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機１００はステップＳ６０６０を実行し、実行されていない場合、管理計算機１００はステップＳ６０３０に処理を戻す。ステップＳ６０６０において管理計算機１００はループ（Ｂ）の対象のすべての経過時間ステップに対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機１００はステップＳ６０７０を実行し、実行されていない場合、管理計算機１００はステップＳ６０２５に処理を戻す。ステップＳ６０７０において管理計算機１００はループ（Ａ）の対象のすべてのサブプログラム３１０２に対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機１００はジョブ終了時Ｉ／Ｏ解析修正プログラム１２５７を終了し、実行されていない場合、管理計算機１００はステップＳ６０１５に処理を戻す。【０１３２】
なお、以上の説明においては、ストレージシステム２００の階層記憶に関する性能情報（ＩＯＰＳ）とＴｉｅｒのＩＯＰＳ上限値を基に、階層制御プランの修正を判断したが、これは階層制御プラン修正の方法の一例であって、階層制御プラン修正を行う際に利用する情報を階層記憶に関する性能情報（ＩＯＰＳ）とＴｉｅｒのＩＯＰＳ上限値に限定するものではない。例えば、ホスト計算機３００のアプリケーションプログラム３１０１の応答性能情報とアプリケーションプログラム３１０１に設定されている要求性能などであってもよい。【０１３３】
以上で説明したように、サブプログラム３１０２のアクセス量の多いページをサブプログラム３１０２の実行前に上位Ｔｉｅｒへ移動することが可能であり、アプリケーションプログラムへのレスポンス性能を向上できる。また、サブプログラム３１０２のアクセス量の少ないページを下位Ｔｉｅｒへ移動することも可能であり、上位Ｔｉｅｒがアクセス量の少ないページで占有されることを防止できる。
【実施例２】
【０１３４】
（２−１）本実施の形態の概要 
実施例２の計算機システムについて、以下では実施例１と異なる部分のみを説明する。実施例１では、管理計算機１００のディスク１２０に記憶するサブプログラムページ関連テーブル１１０１において、アプリケーションプログラム３１０１を構成するサブプログラム３１０２とページの関連を予め設定できることが実施の前提であった。しかし、実施例２では、この関連が予め設定できないアプリケーションプログラム３１０１に対しても、Ｉ／Ｏ解析プログラム１２５４を適用可能とする。具体的には、管理計算機は、サブプログラムページ関連発見プログラムに基づき、サブプログラム３１０２に関連するページを特定し、サブプログラムページ関連テーブル１１０１を更新する。
（２−２）計算機システムのハードウェア構成
実施例２の計算機システムは、管理計算機１００Ａ、ストレージシステム２００、ホスト計算機３００から構成され、これらは通信ネットワーク５００及び通信ネットワーク５５０を介して相互に接続される。ここで、ストレージシステム２００とホスト計算機３００は図２と同じである。図２３は実施例２の管理計算機１００Ａの構成の例を示し、ディスク１２０Ａは、図３に示す管理計算機１００がディスク１２０Ａに展開されるプログラムとテーブルを記憶するとともに、サブプログラムページ関連発見プログラム１２５８を更に記憶する。
（２−３）サブプログラムページ関連の発見の動作の詳細
管理計算機１００Ａがディスク１２０Ａに記憶するサブプログラムページ関連発見プログラムの動作を詳細に説明する。図２４はサブプログラムページ関連発見プログラム１２５８のフローチャートの例を示す図である。管理計算機１００Ａは、定期的かつログファイル管理テーブル１２０３に含まれるイベントの情報（アプリケーション名欄１２０３０１、操作種別欄１２０３０２、サーバ名欄１２０３０３に示される情報の組み合わせ）毎に、イベントの情報を入力としてサブプログラムページ関連発見プログラム１２５８を実行する。【０１３５】
管理計算機１００ＡのＣＰＵ１５０（以降、管理計算機１００Ａと省略する）は、まず、ログファイル管理テーブル１２０３より、入力されたイベントの情報に対応するすべてのログファイルＩＤをログファイルＩＤ欄１２０３０５から取得し、取得したログファイルＩＤに対応するログファイルデータ１２０２を特定する（ステップＳ７００５）。次に、管理計算機１００Ａは、特定したログファイルデータ群１２０２から、１以上のサブプログラム３１０２を抽出する（ステップＳ７０１０）。ステップＳ７０１０の処理はステップＳ１０１０の処理と同様であるため、説明を省略する。【０１３６】
管理計算機１００Ａは、ステップＳ７０１０で抽出したサブプログラム３１０２毎に以降のステップＳ７０２０からステップＳ７０５０の処理をループ（Ａ）として１又は複数回実行する（ステップＳ７０１５）。ステップＳ７０２０において管理計算機１００Ａは、ステップＳ７００５で特定したログファイルデータ群１２０２のサブプログラム欄１２０２０３と時刻欄１２０２０２より、ステップＳ７０１５で選択しているサブプログラム３１０２に関する情報と対応する時刻情報を抽出する。具体的には、時刻情報はサブプログラム３１０２の開始時刻及び終了時刻を示している。【０１３７】
管理計算機１００Ａは、ＩＯＰＳ変移データ１１０３より、ステップＳ７０２０で抽出した時刻群におけるＩＯＰＳ変移を抽出する。具体的には、サブプログラム３１０２の開始時刻からの終了時刻までのＩＯＰＳ変移である。なお、ステップＳ７０２０において、サブプログラム３１０２の終了時刻が特定されていない場合は、ログファイルデータ１２０２に格納されている最終時刻までのＩＯＰＳ変移である（ステップＳ７０２５）。【０１３８】
管理計算機１００Ａは、ページ毎に以降のステップＳ７０３５からステップＳ７０４５の処理をループ（Ｂ）として１又は複数回実行する（ステップＳ７０３０）。管理計算機１００Ａは、ステップＳ７０３５において、ステップＳ７０３０で選択したページに対し、サブプログラム３１０２の実行後に必ずアクセスが発生しているか、否かを判断する。具体的には、ステップＳ７０２５で抽出したＩＯＰＳ変移群において、ページに対するＩＯＰＳがしきい値を超えない場合があるか、否かを判断する（ステップＳ７０３５）。なお、しきい値は、例えば、いずれのイベントも発生していない状態における当該ページに対するＩＯＰＳ値などを用いればよい。【０１３９】
ステップＳ７０３５の判断の結果、すべてのＩＯＰＳ変移のデータにおいて、ページに対してアクセスが発生しているならば、管理計算機１００ＡはステップＳ７０４０を実行する。管理計算機１００Ａは、ステップＳ７０４０において、ステップＳ７０３０で選択したページに対して発生するアクセス量が変化するタイミングが一定であるか、否かを判断する。具体的には、管理計算機１００Ａは、ステップＳ７０２５で抽出したＩＯＰＳ変移群に対して、ページ対して発生するアクセス量が変化するサブプログラム３１０２が実行されてからの経過時間を算出する。算出方法は、例えば、Ｓ１０２０と同様の処理を実行すればよい。次に、管理計算機１００Ａは、各ＩＯＰＳ変移群において、上記で算出したページに対するアクセス量が変化する、サブプログラム３１０２が実行されてからの経過時間にずれがないか、否かを判断する（ステップＳ７０４０）。経過時間のずれを検定する方法は、例えば、ステップＳ１０１０で利用する統計的検定手法を利用すればよい。【０１４０】
ステップＳ７０４０の判断の結果が肯定的であれば管理計算機１００ＡはステップＳ７０４５を実行し、否定的であれば管理計算機１００ＡはステップＳ７０５０を実行する。ステップＳ７０４５において管理計算機１００Ａは、入力として与えられたイベントの情報と、ステップＳ７０１５で選択されたサブプログラム３１０２と、ステップＳ７０３０で選択されたページの番号を、サブプログラムページ関連テーブル１１０１に格納する。なお、サブプログラムページ関連テーブル１１０１のデータＩＤ欄１１０１０５には空欄を示す情報を格納する。【０１４１】
ステップＳ７０５０において、管理計算機１００Ａはループ（Ｂ）の対象のすべてのページに対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機１００ＡはステップＳ７０５５を実行し、実行されていない場合、管理計算機１００ＡはステップＳ７０３０に処理を戻す。ステップＳ７０５５において管理計算機１００は、ループ（Ａ）の対象のすべてのサブプログラム３１０２に対して処理が実行されているかを判断する。処理が実行されている場合、管理計算機１００Ａはジョブ終了時Ｉ／Ｏ解析修正プログラム１２５８を終了し、実行されていない場合、管理計算機１００ＡはステップＳ７０３０に処理を戻す。【０１４２】
以上で説明したように、サブプログラム３１０２とページの関連が明らかとなっていないアプリケーションプログラム３１０１においても、サブプログラムページ関連発見プログラム１２５８に基づき、サブプログラム３１０２に関連するページを特定し、サブプログラムページ関連テーブル１１０１を更新することでＩ／Ｏ解析を行う事が可能となる。
【実施例３】
【０１４３】
（３−１）本実施の形態の概要 
実施例３の計算機システムについて、以下では実施例１と異なる部分のみを説明する。実施例１ではアプリケーションプログラム３１０１が利用するデータをストレージシステム２００に配置していた。これに対して実施例３によれば、ホスト計算機内のディスクに対しても、アプリケーションプログラム３１０１が利用するデータを配置することが可能となり、アプリケーションプログラム３１０１に対する操作実施時のＩ／Ｏ解析に基づき、ページ階層制御を実施することができる。
（３−２）計算機システムのハードウェア構成
実施例３の計算機システムは、管理計算機１００Ｂ、ストレージシステム２００、ホスト計算機３００Ｂから構成され、通信ネットワーク５００及び通信ネットワーク５５０を介して相互に接続されている。ここで、ストレージシステム２００は図４と同じである。図２５は実施例３の管理計算機１００Ｂの構成の例を示す図である。管理計算機１００Ｂのディスク１２０Ｂは、図３に示す管理計算機１００がディスク１２０に展開されるプログラムとテーブルを記憶するとともに、ディスク１２０Ｂに相対階層記憶管理テーブル１２０５を更に保持する。実施例３に係る管理計算機１００Ｂのメモリ１１０、管理用Ｉ／Ｆ１３０、データ通信Ｉ／Ｆ１４０、ＣＰＵ１５０及びメモリ１１０が記憶するプログラムとテーブルは、実施例１に係る管理計算機１００の構成と同様であるため、説明を省略する。【０１４４】
ホスト計算機３００Ｂのディスク３２０は、図５に示すホスト計算機３００がディスク３２０に展開されるプログラムとテーブルを記憶するとともに、図４に示すストレージシステム２００がメモリ２２０に記憶するＩ／Ｏ量監視プログラム２１５１とページ割り当て制御プログラム２１５２と同様のプログラムをディスク３２０に保持する。【０１４５】
なお、実施例３の計算機システムにおいては、図４に示すストレージシステム２００が記憶領域２５０に記憶するアプリケーションプログラムが利用するデータの一部または全部を、ストレージシステム２００の記憶領域２５０のみならず、ディスク３２０に記憶してもよく、図示を省略したホスト計算機３００Ｂに接続された外付けストレージＤＡＳ（Ｄｉｒｅｃｔ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）に記憶してもよい。すなわち、実施例３においてストレージシステム２００の存在は必須ではない。さらに、実施例３の計算機システムにおいては、２以上のホスト計算機３００Ｂの間で相互にデータの格納を行ってもよい。【０１４６】
実施例３のホスト計算機３００Ｂのメモリ３１０、管理用Ｉ／Ｆ３３０、データ通信Ｉ／Ｆ３４０、ＣＰＵ３５０及びメモリ３１０が記憶するプログラムとテーブルは、図５に示すホスト計算機３００の構成と同様であるため、説明を省略する。
（３−３）各種テーブルの詳細
図２６は管理計算機１００Ｂのディスク１２０Ｂに記憶されている相対階層記憶管理テーブル１２０５の例を示す図である。相対階層記憶管理テーブル１２０５は、ホスト計算機３００Ｂからデータアクセスを行った場合の、ストレージシステム２００及びホスト計算機３００Ｂが保持するＴｉｅｒを入出力性能の順に順序付けした情報である。【０１４７】
サーバ名欄１２０５０１にはアプリケーションプログラム３１０１が実行されるホスト計算機３００Ｂの名称が格納される。相対ＴｉｅｒＩＤ欄１２０５０２にはアプリケーションプログラム３１０１が実行されるホスト計算機３００Ｂからアクセス可能な記憶領域であるＴｉｅｒの番号が格納される。相対ＴｉｅｒＩＤ欄１２０５０２には、アプリケーションプログラム３１０１が実行されるホスト計算機３００Ｂから見て入出力性能が高いＴｉｅｒほど、小さい番号が与えられる。Ｔｉｅｒ提供マシン名欄１２０５０３には、実際にＴｉｅｒを保持するストレージシステム２００またはホスト計算機３００Ｂの名称が格納される。【０１４８】
Ｔｉｅｒ ＩＤ欄１２０５０４には、実際にＴｉｅｒを保持するストレージシステム２００またはホスト計算機３００Ｂの内部でのＴｉｅｒ番号が格納される。また、アプリケーションプログラム３１０１が実行されるホスト計算機３００Ｂから見た入出力性能によって番号が決定される相対Ｔｉｅｒに対し、ストレージシステム２００またはホスト計算機３００Ｂ内部において、ＴｉｅｒＩＤ１２０５０４で番号付けされるＴｉｅｒを絶対Ｔｉｅｒと表現する。なお、図２６ではＴｉｅｒ番号が小さいほど性能が高いとしたが、これに限定されるものではない。また、Ｔｉｅｒ番号ではなく、Ｔｉｅｒを構成するメディアの名称をＴｉｅｒ  ＩＤとして用いることもできる。
（３−４）各装置の動作の詳細
管理計算機１００Ｂがディスク１２０Ｂに記憶する各プログラムにおいてＴｉｅｒの番号を参照する際には、相対階層記憶管理テーブル１２０５の相対ＴｉｅｒＩＤ欄１２０５０２のＴｉｅｒの番号を参照する。さらに、管理計算機１００Ｂが階層制御プランを作成する際には、相対階層記憶管理テーブル１２０５を基に、相対Ｔｉｅｒから絶対Ｔｉｅｒを判別し、絶対Ｔｉｅｒを指定して階層制御タスクを生成する。【０１４９】
以上で説明したように、管理計算機１００ＢはＩ／Ｏ解析の結果に基づき、ストレージシステム２００とホスト計算機３００Ｂが提供するすべてのＴｉｅｒ間における階層制御プランを作成し、実行することができる。また、専用のストレージシステムが存在しない、すなわちサーバ内蔵もしくは外付けのストレージのみで構成された計算機システムにおいても階層制御プランを作成し、実行することができる。
【符号の説明】
【０１５０】
１００  管理計算機
２００  ストレージシステム
３００  ホスト計算機
１１０１  サブプログラム関連テーブル
１２０１  ＩＯＰＳ変移データ
３２０１  ログファイル
【図１】
2015107626.tif 000003
【図２】
2015107626.tif 000004
【図３】
2015107626.tif 000005
【図４】
2015107626.tif 000006
【図５】
2015107626.tif 000007
【図６】
2015107626.tif 000008
【図７】
2015107626.tif 000009
【図８】
2015107626.tif 000010
【図９】
2015107626.tif 000011
【図１０】
2015107626.tif 000012
【図１１】
2015107626.tif 000013
【図１２】
2015107626.tif 000014
【図１３】
2015107626.tif 000015
【図１４】
2015107626.tif 000016
【図１５】
2015107626.tif 000017
【図１６】
2015107626.tif 000018
【図１７】
2015107626.tif 000019
【図１８】
2015107626.tif 000020
【図１９】
2015107626.tif 000021
【図２０】
2015107626.tif 000022
【図２１】
2015107626.tif 000023
【図２２】
2015107626.tif 000024
【図２３】
2015107626.tif 000025
【図２４】
2015107626.tif 000026
【図２５】
2015107626.tif 000027
【図２６】
2015107626.tif 000028
【手続補正書】
【提出日】平成28年3月15日(2016.3.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アクセス性能の異なる複数の記憶階層を有する計算機システムの制御部が実行する階層記憶の制御方法であって、
前記計算機システムの処理部が実行するアプリケーションプログラムは前記記憶階層内の記憶領域へアクセスする特定処理を有し、
前記特定処理と前記記憶領域の対応に関する第１の情報を記憶する第１のステップと、
前記特定処理の経時的なアクセスの動作に関する第２の情報を取得する第２のステップと、
前記記憶領域の経時的なアクセス量に関する第３の情報を取得する第３のステップと、
前記第１の情報に基づき前記第２の情報と前記第３の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記記憶階層間で移動するよう移動開始時刻を決定する第４のステップと、
を有することを特徴とする階層記憶の制御方法。
【請求項２】
前記アクセス量の変化がアクセス量の増加の場合、前記アクセス量の増加の時刻の前にアクセス性能の低い記憶階層からアクセス性能の高い記憶階層へ前記記憶領域のデータを移動するよう移動開始時刻を決定する前記第４のステップを有することを特徴とする請求項１に記載の階層記憶の制御方法。
【請求項３】
前記アクセス量の増加の時刻から前記記憶領域のデータの移動の時間を差し引くことにより前記移動開始時刻を決定する前記第４のステップを有することを特徴とする請求項２に記載の階層記憶の制御方法。
【請求項４】
前記アクセス量の変化がアクセス量の減少の場合、前記アクセス量の減少の時刻にアクセス性能の高い記憶階層からアクセス性能の低い記憶階層へ前記記憶領域のデータを移動するよう移動開始時刻を決定する第４のステップを有することを特徴とする請求項１に記載の階層記憶の制御方法。
【請求項５】
前記第２の情報と前記第３の情報を取得し、当該取得した第２の情報と第３の情報に基づき前記特定処理と前記記憶領域とを対応付けて前記第１の情報を生成し、前記生成した第１の情報を記憶する前記第１のステップを有することを特徴とする請求項１に記載の階層記憶の制御方法。
【請求項６】
前記アプリケーションプログラムに対する操作と時間的関係を有する前記特定処理の経時的なアクセスの開始に関する第２の情報を取得する前記第２のステップを有することを特徴とする請求項１に記載の階層記憶の制御方法。
【請求項７】
前記第１の情報に基づき前記第２の情報と前記第３の情報から前記操作の時刻に対する前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記記憶階層間で移動するよう前記操作の時刻を基準にした移動開始時刻を決定する第４のステップを有することを特徴とする請求項６に記載の階層記憶の制御方法。
【請求項８】
ストレージとホスト計算機と管理計算機を含む計算機システムであって、
前記ストレージは、アクセス性能の異なる複数の記憶階層を有し、
前記ホスト計算機は、前記記憶階層内の記憶領域へアクセスする特定処理を含むアプリケーションプログラムを実行し、
前記管理計算機は、
前記特定処理と前記記憶領域の対応に関する第１の情報を記憶し、
前記ホスト計算機から前記特定処理の経時的なアクセスの動作に関する第２の情報を取得し、
前記ストレージから前記記憶領域の経時的なアクセス量に関する第３の情報を取得し、
前記第１の情報に基づき前記第２の情報と前記第３の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記ストレージ内の記憶階層間で移動するよう移動開始時刻を決定する、
ことを特徴とする計算機システム。
【請求項９】
前記管理計算機は、
前記アクセス量の変化がアクセス量の増加の場合、前記アクセス量の増加の時刻の前に前記ストレージ内のアクセス性能の低い記憶階層からアクセス性能の高い記憶階層へ前記記憶領域のデータを移動するよう移動開始時刻を決定することを特徴とする請求項８に記載の計算機システム。
【請求項１０】
前記ホスト計算機は前記ストレージを含み、
前記管理計算機は、
前記ホスト計算機から前記第３の情報を取得し、
前記第１の情報に基づき前記第２の情報と前記第３の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記ホスト計算機内の記憶階層間で移動するよう移動開始時刻を決定する、
ことを特徴とする請求項８に記載の計算機システム。
【請求項１１】
前記ストレージは第１の記憶階層を含み、
前記ホスト計算機は第２の記憶階層を含み、
前記管理計算機は、
前記ホスト計算機と前記ストレージから前記第３の情報を取得し、
前記第１の情報に基づき前記第２の情報と前記第３の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記ホスト計算機内および／あるいは前記ストレージ内の記憶階層間で移動するよう移動開始時刻を決定する、
ことを特徴とする請求項８に記載の計算機システム。
【手続補正書】
【提出日】平成28年8月8日(2016.8.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アクセス性能の異なる複数の記憶階層を有する計算機システムの制御部が実行する階層記憶の制御方法であって、
前記計算機システムの処理部が実行するアプリケーションプログラムは前記記憶階層内の記憶領域へアクセスする特定処理を有し、
前記特定処理と前記記憶領域の対応に関する第１の情報を記憶する第１のステップと、
前記特定処理の開始時刻と前記特定処理の経時的な動作に関する第２の情報を取得する第２のステップと、
前記記憶領域の経時的なアクセス量に関する第３の情報を取得する第３のステップと、
前記第１の情報に基づき前記第２の情報と前記第３の情報から前記特定処理の開始時刻に対応する前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記記憶階層間で移動するよう移動開始時刻を決定する第４のステップと、
を有することを特徴とする階層記憶の制御方法。
【請求項２】
前記アクセス量の変化がアクセス量の増加の場合、前記アクセス量の増加の時刻の前にアクセス性能の低い記憶階層からアクセス性能の高い記憶階層へ前記記憶領域のデータを移動するよう移動開始時刻を決定する前記第４のステップを有することを特徴とする請求項１に記載の階層記憶の制御方法。
【請求項３】
前記アクセス量の増加の時刻から前記記憶領域のデータの移動の時間を差し引くことにより前記移動開始時刻を決定する前記第４のステップを有することを特徴とする請求項２に記載の階層記憶の制御方法。
【請求項４】
前記アクセス量の変化がアクセス量の減少の場合、前記アクセス量の減少の時刻にアクセス性能の高い記憶階層からアクセス性能の低い記憶階層へ前記記憶領域のデータを移動するよう移動開始時刻を決定する第４のステップを有することを特徴とする請求項１に記載の階層記憶の制御方法。
【請求項５】
前記第２の情報と前記第３の情報を取得し、当該取得した第２の情報と第３の情報に基づき前記特定処理と前記記憶領域とを対応付けて前記第１の情報を生成し、前記生成した第１の情報を記憶する前記第１のステップを有することを特徴とする請求項１に記載の階層記憶の制御方法。
【請求項６】
ストレージとホスト計算機と管理計算機を含む計算機システムであって、
前記ストレージは、アクセス性能の異なる複数の記憶階層を有し、
前記ホスト計算機は、前記記憶階層内の記憶領域へアクセスする特定処理を含むアプリケーションプログラムを実行し、
前記管理計算機は、
前記特定処理と前記記憶領域の対応に関する第１の情報を記憶し、
前記ホスト計算機から前記特定処理の開始時刻と前記特定処理の経時的な動作に関する第２の情報を取得し、
前記ストレージから前記記憶領域の経時的なアクセス量に関する第３の情報を取得し、
前記第１の情報に基づき前記第２の情報と前記第３の情報から前記特定処理の開始時刻に対応する前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記ストレージ内の記憶階層間で移動するよう移動開始時刻を決定する、
ことを特徴とする計算機システム。
【請求項７】
前記管理計算機は、
前記アクセス量の変化がアクセス量の増加の場合、前記アクセス量の増加の時刻の前に前記ストレージ内のアクセス性能の低い記憶階層からアクセス性能の高い記憶階層へ前記記憶領域のデータを移動するよう移動開始時刻を決定することを特徴とする請求項６に記載の計算機システム。
【請求項８】
前記ホスト計算機は前記ストレージを含み、
前記管理計算機は、
前記ホスト計算機から前記第３の情報を取得し、
前記第１の情報に基づき前記第２の情報と前記第３の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記ホスト計算機内の記憶階層間で移動するよう移動開始時刻を決定する、
ことを特徴とする請求項６に記載の計算機システム。
【請求項９】
前記ストレージは第１の記憶階層を含み、
前記ホスト計算機は第２の記憶階層を含み、
前記管理計算機は、
前記ホスト計算機と前記ストレージから前記第３の情報を取得し、
前記第１の情報に基づき前記第２の情報と前記第３の情報から前記アクセス量の変化の時刻を特定し、前記アクセス量の変化の時刻に応じて前記記憶領域のデータを前記ホスト計算機内および／あるいは前記ストレージ内の記憶階層間で移動するよう移動開始時刻を決定する、
ことを特徴とする請求項６に記載の計算機システム。
【国際調査報告】
2015107626.tif 000029
2015107626.tif 000030
2015107626.tif 000031
2015107626.tif 000032