(57)【要約】  計算機は、ＩＯ性能が異なる複数のページ群である複数のストレージ階層から構成された階層型プールを有しており移動要求を受信した場合に移動要求に従いストレージ階層間でページ単位のデータであるページデータを移動するようになっているストレージ装置に接続される。計算機は、記憶デバイスと、記憶デバイスに接続されている制御デバイスとを有する。記憶デバイスは、所定の処理の実行単位であるタスクの性能要件を表す情報を含む性能要件管理情報と、複数のストレージ階層間のＩＯ性能の差異を特定可能なＩＯ性能情報とを記憶する。制御デバイスは、ＩＯ性能情報に基づいて、タスクで使用する１以上のデータオブジェクトを他のストレージ階層のページに移動させることを想定した場合におけるタスクの実行性能の予測変化量を算出し、予測変化量に基づいて、タスクに対する実行性能が性能要件を満たす状況を確保しつつ、他のストレージ階層のページに移動させることのできる１以上のデータオブジェクトを特定する。
2014045441.tif 000002
【特許請求の範囲】
【請求項１】
ＩＯ性能が異なる複数のページ群である複数のストレージ階層から構成された階層型プールを有しており移動要求を受信した場合に前記移動要求に従いストレージ階層間でページ単位のデータであるページデータを移動するようになっているストレージ装置に接続される計算機であって、
記憶デバイスと、
前記記憶デバイスに接続されている制御デバイスと
を有し、
前記記憶デバイスは、所定の処理の実行単位であるタスクの性能要件を表す情報を含む性能要件管理情報と、前記複数のストレージ階層間のＩＯ性能の差異を特定可能なＩＯ性能情報とを記憶し、
前記制御デバイスは、前記ＩＯ性能情報に基づいて、前記タスクで使用する１以上のデータオブジェクトを他のストレージ階層のページに移動させることを想定した場合における前記タスクの実行性能の予測変化量を算出し、前記予測変化量に基づいて、前記タスクに対する実行性能が前記性能要件を満たす状況を確保しつつ、他のストレージ階層のページに移動させることのできる１以上のデータオブジェクトを特定する
計算機。
【請求項２】
前記タスクは、少なくとも１以上のサブタスクで構成されており、
前記記憶デバイスは、
前記サブタスクで利用する全てのデータオブジェクトのそれぞれが格納されているページが属するストレージ階層を特定可能な階層特定情報を記憶し、
前記制御デバイスは、
前記階層特定情報と、前記ＩＯ性能情報とに基づいて、前記サブタスクで利用する全てのデータオブジェクトを他のストレージ階層のページに移動させることを想定した場合における前記タスクの実行性能の予測変化量を算出し、
前記予測変化量に基づいて、前記タスクに対する実行性能が前記性能要件を満たす状況を確保しつつ、利用する全てのデータオブジェクトを他のストレージ階層のページに移動させることのできるサブタスクを特定する
請求項１に記載の計算機。
【請求項３】
前記制御デバイスは、
前記階層特定情報と、前記ＩＯ性能情報とに基づいて、前記サブタスクで利用する全てのデータオブジェクトを他のストレージ階層のページに移動させることを想定した場合における前記タスクの実行性能の予測変化量についての所定のデータ量当たりの量である単位予測変化量を算出し、
前記単位予測変化量に基づいた優先順序で、前記タスクに対する実行性能が前記性能要件を満たす状況を確保しつつ、利用する全てのデータオブジェクトを他のストレージ階層のページに移動させることのできるサブタスクを特定する
請求項２に記載の計算機。
【請求項４】
前記制御デバイスは、サブタスクが利用する全てのデータオブジェクトを下位のストレージ階層のページに移動させても、前記タスクに対する実行性能が前記性能要件を満たす状況を確保できると想定されるサブタスクを特定する際に、前記単位予測変化量が小さいサブタスクを優先する
請求項３に記載の計算機。
【請求項５】
前記制御デバイスは、サブタスクが利用する全てのデータオブジェクトを上位のストレージ階層のページに移動させることにより、前記タスクに対する実行性能が前記性能要件を満たす状況を確保できると想定されるサブタスクを特定する際に、前記単位予測変化量が大きいサブタスクを優先する
請求項３に記載の計算機。
【請求項６】
前記制御デバイスは、
前記予測変化量に基づいて、前記タスクに対する実行性能が前記性能要件を満たす状況を確保しつつ、利用する全てのデータオブジェクトを他のストレージ階層のページに移動させることのできる複数のサブタスクの組み合わせを特定する
請求項２に記載の計算機。
【請求項７】
前記制御デバイスは、サブタスクが利用する全てのデータオブジェクトを下位のストレージ階層のページに移動させても、前記タスクに対する実行性能が前記性能要件を満たす状況を確保できると想定される複数のサブタスクの組み合わせを、下位のストレージ階層のページに移動させるデータ量が多くなるサブタスクの組み合わせとし、
サブタスクが利用する全てのデータオブジェクトを上位のストレージ階層のページに移動させることにより、前記タスクに対する実行性能が前記性能要件を満たす状況を確保できると想定される複数のサブタスクの組み合わせを、上位のストレージ階層のページに移動させるデータ量が少なくなるサブタスクの組み合わせとする
請求項６に記載の計算機。
【請求項８】
前記記憶デバイスは、
前記タスクで利用する全てのデータオブジェクトのそれぞれが格納されているページが属するストレージ階層を特定可能な階層特定情報を記憶し、
前記制御デバイスは、
前記階層特定情報と、前記ＩＯ性能情報とに基づいて、前記サブタスクの各データオブジェクトを他のストレージ階層のページに移動させることを想定した場合における前記タスクの実行性能の予測変化量を算出し、
前記予測変化量に基づいて、前記タスクに対する実行性能が前記性能要件を満たす状況を確保しつつ、他のストレージ階層のページに移動させることのできる１以上のデータオブジェクトを特定する
請求項１に記載の計算機。
【請求項９】
前記記憶デバイスは、
前記タスクにおける各データオブジェクトに対するアクセス回数を記憶し、
前記制御デバイスは、
前記ＩＯ性能情報と、前記アクセス回数とに基づいて、前記サブタスクの各データオブジェクトを他のストレージ階層のページに移動させることを想定した場合における前記タスクの実行性能の予測変化量を算出する
請求項８に記載の計算機。
【請求項１０】
前記制御デバイスは、
前記階層特定情報と、前記ＩＯ性能情報とに基づいて、各データオブジェクトを他のストレージ階層のページに移動させることを想定した場合における前記タスクの実行性能の予測変化量についての所定のデータ量当たりの量である単位予測変化量を算出し、
前記単位予測変化量に基づいた優先順序で、前記タスクに対する実行性能が前記性能要件を満たす状況を確保しつつ、他のストレージ階層のページに移動させることのできるデータオブジェクトを特定する
請求項８に記載の計算機。
【請求項１１】
前記制御デバイスは、データオブジェクトを下位のストレージ階層のページに移動させても、前記タスクに対する実行性能が前記性能要件を満たす状況を確保できると想定されるデータオブジェクトを特定する際に、前記単位予測変化量が小さいデータオブジェクトを優先する
請求項１０に記載の計算機。
【請求項１２】
前記制御デバイスは、データオブジェクトを上位のストレージ階層のページに移動させることにより、前記タスクに対する実行性能が前記性能要件を満たす状況を確保できると想定されるデータオブジェクトを特定する際に、前記単位予測変化量が大きいデータオブジェクトを優先する
請求項１０に記載の計算機。
【請求項１３】
前記制御デバイスは、
前記予測変化量に基づいて、前記タスクに対する実行性能が前記性能要件を満たす状況を確保しつつ、他のストレージ階層のページに移動させることのできる複数のデータオブジェクトの組み合わせを特定する
請求項９に記載の計算機。
【請求項１４】
前記制御デバイスは、下位のストレージ階層のページに移動させても、前記タスクに対する実行性能が前記性能要件を満たす状況を確保できると想定される複数のデータオブジェクトの組み合わせを、下位のストレージ階層のページに移動させるデータ量が多くなるデータオブジェクトの組み合わせとし、
上位のストレージ階層のページに移動させることにより、前記タスクに対する実行性能が前記性能要件を満たす状況を確保できると想定される複数のデータオブジェクトの組み合わせを、上位のストレージ階層のページに移動させるデータ量が少なくなるデータオブジェクトの組み合わせとする
請求項１３に記載の計算機。
【請求項１５】
ＩＯ性能が異なる複数のページ群である複数のストレージ階層から構成された階層型プールを有しており移動要求を受信した場合に前記移動要求に従いストレージ階層間でページ単位のデータであるページデータを移動するようになっているストレージ装置に接続される計算機によるデータ配置制御方法であって、
前記計算機の制御デバイスは、
前記複数のストレージ階層間のＩＯ性能の差異を特定可能なＩＯ性能情報に基づいて、所定の処理の実行単位である前記タスクで使用する１以上のデータオブジェクトを他のストレージ階層のページに移動させることを想定した場合における前記タスクの実行性能の予測変化量を算出し、
前記予測変化量に基づいて、前記タスクに対する実行性能が、前記タスクの性能要件を表す情報を含む性能要件管理情報に基づく前記性能要件を満たす状況を確保しつつ、他のストレージ階層のページに移動させることのできる１以上のデータオブジェクトを特定する
データ配置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入出力性能の異なる複数のページ群で構成された記憶領域である階層型プール内のデータの配置の制御に関する。
【背景技術】
【０００２】
計算機システムにおいて、記憶領域を効率的に利用するため、ストレージ装置が、ＩＯ（入出力）性能とハードウェアコストの異なる記憶デバイスの記憶領域をそのＩＯ性能によって階層的に管理し、且つ、データのアクセス頻度に基づいて、ＩＯ性能の異なる複数の記憶デバイスのいずれかから当該データの格納に必要な記憶領域をページと呼ばれる単位で動的に仮想ボリューム（仮想的な論理ボリューム）に割当てる技術がある。この技術は、例えば、Thin  Provisioningの一種である。この技術によれば、仮想ボリュームは、複数の仮想領域で構成されており、ストレージ装置は、ＩＯ性能の異なる複数のページ群で構成された記憶領域である階層型プールを有し、階層型プールから、仮想ボリュームにおける仮想領域にページを割り当てる。一般に、１つのページ群は、同じＩＯ性能（又は近似したＩＯ性能）の１以上の記憶デバイスに基づいている。【０００３】
このように、記憶デバイスのＩＯ性能によって、階層的に管理される当該記憶デバイスの記憶領域を、以降、「ストレージ階層」と呼ぶこととする。ストレージ階層は、ページ群に相当する。すなわち、ＩＯ性能の異なる複数のページ群は、それぞれ、複数のストレージ階層に対応する。【０００４】
また、対象の仮想領域に割り当てられている移動元ページから、その移動元ページを有するストレージ階層とは別のストレージ階層内の移動先ページにデータを移動し、且つ、対象の仮想領域に移動元ページに代えて移動先ページを割り当てることを、以降、「ページ移動」と呼ぶことがある。ページ移動では、データが、ページ単位で移動する。以降、ページ移動で移動されるページ単位のデータを、「ページデータ」と呼ぶことがある。【０００５】
特許文献１では、複数のストレージ階層で構成された階層型プールを有するストレージ装置において、ユーザがデータを管理する単位であるファイルに付与されたＩＯ性能の要求に基づき、ＩＯ性能の要件を満たすストレージ階層に当該ファイルを格納する技術が開示されている。【０００６】
特許文献１によれば、ユーザが指定するファイルのＩＯ性能の要件に基づき、当該ファイルを含んだページデータを適切なＩＯ性能のストレージ階層に移動し、かつ当該ページデータを記憶したページに対するアクセス頻度に基づくページ移動を抑止することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２０１１／１１７９２５号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００８】
アプリケーションプログラムの性能要件が決まれば、アプリケーションプログラムの実行に関わる種々の要素の性能要件（例えば、プロセッサの性能要件）として望ましい要件はあるが、少なくとも１種類の要件が望ましくなくても、アプリケーションプログラムの性能要件さえ満たせれば良い。【０００９】
特許文献１では、ユーザがアプリケーションプログラムについて指定した性能要件（例えば、アプリケーションプログラムが起動してから所定の処理を終了するまでの時間長がＸ秒以下、１００回のＩＯを１秒間以内に行う等）を満たすために必要なファイルのＩＯ性能を指定することで、当該ファイルを適切なＩＯ性能のストレージ階層に格納できる。【００１０】
しかし、アプリケーションが使用するファイルの数は、一般に、膨大である。このため、ユーザが、ファイル毎に、アプリケーションの性能要件を満たすために必要となる、ファイルのＩＯ性能、を特定し、特定したＩＯ性能を指定することは、作業負荷が高い。【００１１】
また、アプリケーションプログラムの実行を継続しているうちに、或るファイルに対するアクセス頻度が変わり、故に、その或るファイルについてユーザが指定したＩＯ性能とは異なるＩＯ性能が望ましくなることがある。【００１２】
さらに、ページ移動がアクセス頻度に基づいて行われても、アプリケーションプログラムの性能要件を満たすことは必ずしもできない。なぜなら、データがどのアプリケーションプログラムによって使用されているか及びアプリケーションプログラムの性能要件をストレージ装置は把握しておらず、また、ページ移動に関して、アクセス頻度という指標は、ストレージ装置のＩＯ性能を向上することには適しているものの、アプリケーションプログラムの性能要件を満たすことには必ずしもマッチしていないからである。【００１３】
上記のような課題は、ファイルに限らず、他種のデータオブジェクト（ユーザ又はアプリケーションプログラムが管理するデータの単位（或る意味のまとまりの単位））、例えば、メインフレームで一般に呼ばれるデータセットについてもあり得る。【００１４】
また、上記のような課題は、性能要件がアプリケーションプログラムについて指定されるケースに限らず、他種の処理単位（例えば、複数のサブタスクから成るタスク）について指定されるケースについてもあり得る。
【課題を解決するための手段】
【００１５】
計算機は、ＩＯ性能が異なる複数のページ群である複数のストレージ階層から構成された階層型プールを有しており移動要求を受信した場合に移動要求に従いストレージ階層間でページ単位のデータであるページデータを移動するようになっているストレージ装置に接続される。計算機は、記憶デバイスと、記憶デバイスに接続されている制御デバイスとを有する。記憶デバイスは、所定の処理の実行単位であるタスクの性能要件を表す情報を含む性能要件管理情報と、複数のストレージ階層間のＩＯ性能の差異を特定可能なＩＯ性能情報とを記憶する。制御デバイスは、ＩＯ性能情報に基づいて、タスクで使用する１以上のデータオブジェクトを他のストレージ階層のページに移動させることを想定した場合におけるタスクの実行性能の予測変化量を算出し、当該予測変化量に基づいて、タスクに対する実行性能が性能要件を満たす状況を確保しつつ、他のストレージ階層のページに移動させることのできる１以上のデータオブジェクトを特定する。
【発明の効果】
【００１６】
ファイル毎にＩＯ性能の要件を利用することなく、アプリケーションが使用するファイルに対して、当該アプリケーションの性能要件を満たす格納先ストレージ階層を特定できる。これにより、当該ファイルを適切なＩＯ性能のストレージ階層に格納できる。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施例１に係る計算機システムのハードウェア構成図である。
【図２】図２は、実施例１に係る管理計算機の構成図である。
【図３】図３は、実施例１に係るホスト計算機の構成図である。
【図４】図４は、実施例１に係るストレージ装置の構成図である。
【図５】図５は、実施例１に係る計算機システムの処理の概要を説明する概念図である。
【図６】図６は、実施例１に係るホスト計算機及びストレージ装置の処理の概要を説明する概念図である。
【図７】図７は、実施例１に係るアプリケーション及びジョブの概念図である。
【図８】図８は、実施例１に係る性能過剰のデータセットの特定方法の概要を説明する概念図である。
【図９】図９は、実施例１に係るデータ構成管理テーブルの一例を示す図である。
【図１０】図１０は、実施例１に係るページ構成管理テーブルの一例を示す図である。
【図１１】図１１は、実施例１に係るストレージ階層情報管理テーブルの一例を示す図である。
【図１２】図１２は、実施例１に係るジョブ性能情報管理テーブルの一例を示す図である。
【図１３】図１３は、実施例１に係るジョブステップ実行時間管理テーブルの一例を示す図である。
【図１４】図１４は、実施例１に係るストレージ基本情報の一例を示す図である。
【図１５】図１５は、実施例１に係る論理ボリューム管理テーブルの一例を示す図である。
【図１６】図１６は、実施例１に係るプール内ページ管理テーブルの一例を示す図である。
【図１７】図１７は、実施例１に係るプールボリューム管理テーブルの一例を示す図である。
【図１８】図１８は、実施例１に係るＩＯ要求を示す図である。
【図１９】図１９は、実施例１に係るＩＯ処理のフローチャートである。
【図２０】図２０は、実施例１に係るページ割当て処理のフローチャートである。
【図２１】図２１は、実施例１に係るストレージ階層制御処理のフローチャートである。
【図２２】図２２は、実施例１に係るＩＯ要求に基づくストレージ階層制御処理のフローチャートである。
【図２３】図２３は、実施例１に係るホスト計算機の準備段階の準備処理のフローチャートである。
【図２４】図２４は、実施例１に係るストレージ階層の容量見積もり処理のフローチャートである。
【図２５】図２５は、実施例１に係る性能過剰のジョブステップ特定処理のフローチャートである。
【図２６】図２６は、実施例１に係る性能過剰のジョブステップの組み合わせ決定処理のフローチャートである。
【図２７】図２７は、実施例１に係るホスト計算機の操作画面の一例を示す第１の図である。
【図２８】図２８は、実施例１に係るホスト計算機の操作画面の一例を示す第２の図である。
【図２９】図２９は、実施例１に係るホスト計算機管理テーブルの一例を示す図である。
【図３０】図３０は、実施例２に係る管理計算機の構成図である。
【図３１】図３１は、実施例２に係るホスト計算機の構成図である。
【図３２】図３２は、実施例２に係る性能過剰のデータセットの特定方法の概要を説明する概念図である。
【図３３】図３３は、実施例２に係るデータアクセス情報管理テーブルの一例を示す図である。
【図３４】図３４は、実施例２に係るストレージ階層の容量見積もり処理のフローチャートである。
【図３５】図３５は、実施例２に係る性能過剰のデータセット特定処理のフローチャートである。
【図３６】図３６は、実施例２に係る性能過剰のデータセットの組み合わせ決定処理のフローチャートである。
【図３７】図３７は、実施例４に係るストレージ階層の容量見積もり処理のフローチャートである。
【図３８】図３８は、実施例４に係る性能不足を解消できるジョブステップの特定処理のフローチャートである。
【図３９】図３９は、実施例４に係る性能不足を解消できるジョブステップの組み合わせ決定処理のフローチャートである。
【図４０】図４０は、実施例５に係るストレージ階層の容量見積もり処理のフローチャートである。
【図４１】図４１は、実施例５に係る性能不足を解消できるデータセットの特定処理のフローチャートである。
【図４２】図４２は、実施例５に係る性能不足を解消できるデータセットの組み合わせ決定処理のフローチャートである。
【発明を実施するための形態】
【００１８】
幾つかの実施例について、図面を参照して説明する。なお、以下に説明する実施例は請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１９】
なお、以下の説明では、「ａａａテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていても良い。データ構造に依存しないことを示すために「ａａａテーブル」を「ａａａ情報」と呼ぶことができる。さらに、テーブル内の各列の値からなる情報要素をエントリと呼び、「ａａａテーブル」のエントリを、説明のために、「ａａａテーブルエントリ」と称する。
【００２０】
また、以下の説明では、単に管理計算機及びホスト計算機を主語として処理を説明する場合があるが、これら処理は、計算機が備える制御デバイスが有するプロセッサ（例えば、ＣＰＵ（Ｃｅｎｔｒａｌ
Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ））によって、実行されていることを示す。同様に、単にストレージ装置を主語として処理を説明する場合には、ストレージ装置が備えるコントローラが実行していることを示す。また、上記制御デバイス及びコントローラのうちの少なくとも１つは、プロセッサそれ自体であっても良いし、制御デバイス又はコントローラが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。
【００２１】
プログラムは、プログラムソースから各計算機或いはストレージ装置にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
【００２２】
また、以下の説明では、アプリケーションの性能要件を実行時間の要件として説明するが、アプリケーションの性能要件は実行時間の要件に限定されるものではない。例えば、アプリケーションの性能要件は実行速度の要件であっても良い。同様に、ＩＯ性能をデータアクセスに要する時間として説明しているが、ＩＯ性能はデータアクセスに要する時間に限定されるものではない。
【００２３】
ここで、ユーザから見たホスト計算機により実行させる処理単位である「タスク」は、ホスト計算機がメインフレームであれば、「ジョブ」に相当し、ホスト計算機が所謂オープンシステムであれば、「タスク」に相当する。また、「タスク」に含まれる「サブタスク」は、ホスト計算機がメインフレームであれば、「ジョブステップ」に相当し、ホスト計算機がオープンシステムであれば、「サブタスク」に相当する。また、ホスト計算機が使用するデータの単位である「データオブジェクト」は、ホスト計算機がメインフレームであれば、「データセット」に相当し、ホスト計算機がオープンシステムであれば、「ファイル」に相当する。
【実施例１】
【００２４】
（１−１）実施例１の概要【００２５】
実施例１では、ホスト計算機をメインフレームとする。メインフレームでは、ユーザが１つの処理単位として認識するジョブに対してアプリケーションプログラムを規定することで、アプリケーションを実行する。このため、メインフレームでは、ジョブの性能要件は、アプリケーションの性能要件に相当する。また、メインフレームでは、ホスト計算機が使用するデータ単位であるデータオブジェクトは、データセットに相当する。したがって、実施例１では、アプリケーションの性能要件をジョブの性能要件とし、データオブジェクトをデータセットとして説明する。【００２６】
実施例１では、性能要件を満たしているジョブのアプリケーションについて、当該アプリケーションが使用するデータセットのうち、当該ジョブの性能要件を満たしつつ、現在ストレージ階層よりもＩＯ性能の低いストレージ階層に格納できるファイルを特定する。【００２７】
これは、ユーザが、現在のストレージ階層よりもＩＯ性能の低いストレージ階層に移動できるデータセットを把握できるようにすることを意図している。これにより、ユーザは、当該アプリケーションが使用するデータセットを格納するために必要な各ストレージ階層の容量を適切に把握できる。また、当該データセットを現在のストレージ階層よりＩＯ性能の低いストレージ階層に格納することで、他のデータセットがＩＯ性能のより高いストレージ階層を有効利用できるようになる。あるいは、ＩＯ性能の比較的高いストレージ階層の利用頻度を低くすることができ、当該ストレージ階層を構成する記憶デバイスの長寿命化を図ることができる。【００２８】
ここで、ジョブの性能要件を満たしつつ、現在のストレージ階層よりもＩＯ性能の低いストレージ階層、すなわち、下位のストレージ階層に移動できるデータセットを、以後、性能過剰のデータセットと呼ぶ。【００２９】
実施例１では、ホスト計算機２００がジョブを構成するジョブステップ毎に、そのジョブステップのアプリケーションで使用する１又は複数のデータセットが性能過剰であるか否かを判定する。具体的には、ホスト計算機２００が、ジョブの実行時間の要件と、実行時間の実測値との差分から実行時間増加の許容量を算出する。次に、ホスト計算機２００が、ジョブステップで使用するデータセットを下位のストレージ階層に移動した場合における当該ジョブステップの実行時間の増加量を算出する。そして、ホスト計算機２００が、実行時間の増加量と実行時間増加の許容量とを比較することで、当該ジョブステップで使用するデータセットが性能過剰であるか否かを判定する。【００３０】
ここで、ジョブステップ毎に、ジョブステップで使用する１又は複数のデータセットが性能過剰であるか否かを判定するのは、次の３つの理由による。１つ目の理由は、ジョブステップがジョブよりも細かな処理単位のためである。２つ目の理由は、ジョブを構成するジョブステップの数は、ジョブが使用するデータセットの数に比べて少ない。このため、各ジョブステップの実行時間の取得が、各データセットのデータアクセス時間の取得に比べて容易なためである。３つ目の理由は、ジョブステップには、使用するデータセットが規定してあるため、ジョブステップで使用するデータセットを特定できるためである。【００３１】
さらに、ホスト計算機２００が、ジョブの性能要件を満たす範囲で、１又は複数の性能過剰のデータセットを組み合わせる。そして、ホスト計算機２００が、組み合わせた１又は複数の性能過剰のデータセットをユーザに提示する。【００３２】
これにより、ユーザは、データセット毎に必要なＩＯ性能の要件を特定することなく、ジョブの性能要件を満たす範囲で、現在のストレージ階層よりもＩＯ性能の低いストレージ階層に移動できるデータセット又は、データセットの集合を把握できる。【００３３】
（１−２）計算機システムのハードウェア構成【００３４】
図１は、実施例１に係る計算機システムのハードウェア構成図である。【００３５】
計算機システム１０は、管理計算機１００、ホスト計算機２００、及びストレージ装置３００を備える。管理計算機１００及びホスト計算機２００は、同一計算機であっても良い。また、管理計算機１００と、ホスト計算機２００とは、それぞれ１台であっても良いし、少なくとも一方が複数台であっても良い。ここで、管理計算機１００又はホスト計算機２００は、特許請求の範囲でいう計算機の一例である。【００３６】
管理計算機１００、ホスト計算機２００、及びストレージ装置３００は、ＩＯ処理用の通信ネットワーク（例えば、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ））５００を介して相互に接続される。ホスト計算機２００は、通信ネットワーク５００を介して、ストレージ装置３００に対して、各種データ、例えば、データアクセス（データＩＯ）又はストレージ階層制御を指示するためのＩＯ要求６００（図１８参照）を送信する。ストレージ装置３００は、通信ネットワーク５００を介して、ＩＯ要求を受信し、ＩＯ要求に対応する処理を実行し、ホスト計算機２００に対して、受信したＩＯ要求６００に対する応答を送信する。【００３７】
管理計算機１００は、ホスト計算機２００及びストレージ装置３００に、装置管理用の通信ネットワーク（例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ））５５０を介して接続される。管理計算機１００は、通信ネットワーク５５０を介して、ホスト計算機２００又はストレージ装置３００に対して、各種データ、例えば、ストレージ階層制御を指示するためのデータを送信する。なお、通信ネットワーク５００と通信ネットワーク５５０とは、単一の通信ネットワークでも良い。【００３８】
以降、ストレージ装置３００、ホスト計算機２００、及び管理計算機１００の構成を述べるが、これら装置が保持する各種テーブル及びプログラムの詳細は、それぞれ（１−４）各種テーブルの内容及び（１−５）各装置の動作において述べる。【００３９】
図４は、実施例１に係るストレージ装置３００の構成図である。【００４０】
ストレージ装置３００は、メモリ３０１、コントローラ３０２、管理ポート３０３、ＩＯポート３０４、キャッシュメモリ３０７、記憶デバイス３０８（３０８Ａ、３０８Ｂ、３０８Ｃ）、ＩＯ部３０５、及び内部ネットワーク３０６を備える。コントローラ３０２は、内部ネットワーク３０６を介して、メモリ３０１、管理ポート３０３、ＩＯポート３０４、キャッシュメモリ３０７、記憶デバイス３０８、及びＩＯ部３０５に接続される。【００４１】
メモリ３０１は、コントローラ３０２によって実行されるプログラム及びコントローラ３０２によって必要とされる情報等を記憶する。具体的には、メモリ３０１は、ＩＯ処理プログラム３５１、ページ割当て制御プログラム３５２、ストレージ階層制御プログラム３５３、ストレージ装置管理プログラム３５４、ストレージ基本情報３７０、論理ボリューム管理テーブル３７１、プール内ページ管理テーブル３７２、及びプールボリューム管理テーブル３７３を記憶する。【００４２】
ＩＯ処理プログラム３５１は、ＩＯポート３０４を介して受信したＩＯ要求６００を処理するためのプログラムである。ＩＯ要求６００は、例えば、データアクセス指示又はストレージ階層制御指示（移動要求の一例）などを含む。ＩＯ要求６００の詳細は、後述する。ページ割当て制御プログラム３５２は、ＩＯ要求６００によって、データの書き込み要求がなされた場合に、当該ＩＯ要求６００に指定された記憶領域にページ３２３を割当てるためのプログラムである。ストレージ階層制御プログラム３５３は、ストレージ階層制御を行うためのプログラムである。ストレージ装置管理プログラム３５４は、ユーザからのＩＯ部３０５による入力を受け付けて、ストレージ装置３００の設定を行うためのプログラムである。【００４３】
ストレージ基本情報３７０は、通信ネットワーク５５０におけるストレージ装置３００の識別子の情報である。論理ボリューム管理テーブル３７１は、論理ボリューム３２２を管理するための情報を格納する。論理ボリューム３２２の詳細は、後述する。プール内ページ管理テーブル３７２は、ページ３２３を管理するための情報を格納する。プール内ページ管理テーブル３７２の詳細は、後述する。プールボリューム管理テーブル３７３は、プールボリューム３２０を管理するための情報を格納する。プールボリューム管理テーブル３７３の詳細は、後述する。【００４４】
コントローラ３０２は、メモリ３０１に記憶されるプログラムを実行することによって、各種処理を行う。例えば、コントローラ３０２は、ＩＯポート３０４を介して受信したＩＯ要求６００に従った処理を実行することによって、指定された論理ボリューム３２２へのデータアクセスを行う。管理ポート３０３は、通信ネットワーク５５０を介して管理計算機１００及びホスト計算機２００に接続するためのインタフェースである。ＩＯポート３０４は、通信ネットワーク５００を介して管理計算機１００及びホスト計算機２００に接続するためのインタフェースである。キャッシュメモリ３０７は、記憶デバイス３０８に書き込まれるデータ及び記憶デバイス３０８から読み出されるデータを一時的に記憶する。【００４５】
記憶デバイス３０８は、記憶メディアを備え、ホスト計算機２００から書き込み要求がなされたデータを記憶する。なお、ストレージ装置３００は、１又は複数の記憶デバイス３０８を備える。記憶デバイス３０８としては、例えば、記憶デバイス３０８Ａ（ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ
Ｄｉｓｋ））、記憶デバイス３０８Ｂ（ＳＡＳ（Ｓｅｒｉａｌ Ａｔｔａｃｈｅｄ ＳＣＳＩ））、記憶デバイス３０８Ｃ（ＳＡＴＡ（Ｓｅｒｉａｌ ＡＴＡ））等がある。【００４６】
ＩＯ部３０５は、ユーザからの入力を受け付ける入力部（例えば、キーボード、スイッチ、ポインティングデバイス及び／又はマイクロフォン等）とユーザに対して各種情報を表示する出力部（例えば、ディスプレイ装置及び／又はスピーカ等）とを有する。【００４７】
図３は、実施例１に係るホスト計算機２００の構成図である。【００４８】
ホスト計算機２００は、メモリ２０１、プロセッサ２０２、管理ポート２０３、ＩＯポート２０４、ＩＯ部２０５、及び内部ネットワーク２０６を有する。メモリ２０１、プロセッサ２０２、管理ポート２０３、ＩＯポート２０４、及びＩＯ部２０５は、内部ネットワーク２０６を介して相互に接続される。【００４９】
メモリ２０１は、プロセッサ２０２によって実行されるプログラム及びプロセッサ２０２によって必要とされる情報等を記憶する。具体的には、メモリ２０１は、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）２２０、１又は複数のアプリケーションプログラム（ＡＰ）２２４、ユーザ入力情報受付プログラム２５１、ジョブ実行情報取得プログラム２５２、ストレージ階層情報取得プログラム２５３、性能過不足データセット特定プログラム２５４、ストレージ階層制御指示プログラム２５７、データ構成管理テーブル２７１、ページ構成管理テーブル２７２、ストレージ階層情報管理テーブル２７３、ジョブ性能情報管理テーブル２７４、及びジョブステップ実行時間管理テーブル２７５を記憶する。【００５０】
ＯＳ２２０は、ホスト計算機２００の処理の全体を制御するためのプログラムである。ＡＰ２２４は、ホスト計算機２００のプロセッサ２０２が実行する各種処理を定義するプログラムである。例えば、ホスト計算機２００のプロセッサ２０２は、ＡＰ２２４の定義に基づいて処理を実行し、データベース機能又はメールサーバ機能等を提供する。ユーザ入力情報受付プログラム２５１は、ＩＯ部２０５を介してユーザからの情報の入力を受け付けるためのプログラムである。ジョブ実行情報取得プログラム２５２は、ＯＳ２２０が持つジョブ２２５に関する情報を取得するためのプログラムである。ジョブ２２５の詳細は、後述する。ストレージ階層情報取得プログラム２５３は、ストレージ装置３００が持つストレージ階層に関する情報を取得するためのプログラムである。性能過不足データセット特定プログラム２５４は、ジョブ２２５で使用されるデータセット３３１のうち、性能過剰のデータセット３３１を特定するためのプログラムである。ストレージ階層制御指示プログラム２５７は、ＩＯ部２０５を介してユーザから受け付けたストレージ階層制御の指示に基づき、ストレージ装置３００にストレージ階層制御を指示するためのプログラムである。【００５１】
データ構成管理テーブル２７１は、ストレージ装置３００に格納しているデータセット３３１に関する情報を格納する。ページ構成管理テーブル２７２は、ページ３２３とデータセット３３１との対応付けを行うための情報を格納する。ストレージ階層情報管理テーブル２７３は、ストレージ装置３００のストレージ階層３２４の利用状況に関する情報を格納する。ジョブ性能情報管理テーブル２７４は、ジョブ２２５の性能を管理するための情報を格納する。ジョブステップ実行時間管理テーブル２７５は、ジョブ２２５を構成するジョブステップ２２６の処理の実行時間を管理するための情報を格納する。ジョブステップ２２６の詳細は後述する。【００５２】
プロセッサ２０２は、メモリ２０１に記憶されるプログラムを実行することによって、各種処理を行う。例えば、プロセッサ２０２は、ストレージ装置３００にＩＯ要求６００を送信することによって、ストレージ装置３００によって実行されるストレージ階層制御又はストレージ装置３００によって管理される論理ボリューム３２２のデータセット３３１へのデータアクセスを行う。管理ポート２０３は、通信ネットワーク５５０を介して管理計算機１００及びストレージ装置３００に接続するためのインタフェースである。ＩＯポート２０４は、通信ネットワーク５００を介して管理計算機１００及びストレージ装置３００に接続するためのインタフェースである。ＩＯ部２０５は、ユーザからの入力を受け付ける入力部（例えば、キーボード、スイッチ、ポインティングデバイス及び／又はマイクロフォン等）と各種情報をユーザに対して表示する出力部（例えば、ディスプレイ装置及び／又はスピーカ等）とを有する。【００５３】
図２は、実施例１に係る管理計算機１００の構成図である。【００５４】
管理計算機１００は、メモリ１０１、プロセッサ１０２、管理ポート１０３、ＩＯポート１０４、ＩＯ部１０５、及び内部ネットワーク１０６を有する。メモリ１０１、プロセッサ１０２、管理ポート１０３、ＩＯポート１０４、及びＩＯ部１０５は、内部ネットワーク１０６を介して相互に接続される。【００５５】
メモリ１０１は、プロセッサ１０２によって実行されるプログラム及びプロセッサ１０２によって必要とされる情報等を記憶する。具体的には、メモリ１０１は、集中ユーザ入力情報受付プログラム１５１、集中ジョブ実行情報取得プログラム１５２、集中ストレージ階層情報取得プログラム１５３、集中性能過不足データセット特定プログラム１５４、集中ストレージ階層制御指示プログラム１５７、ホスト計算機管理テーブル１７０、集中データ構成管理テーブル１７１、集中ページ構成管理テーブル１７２、集中ストレージ階層情報管理テーブル１７３、集中ジョブ性能情報管理テーブル１７４、及び集中ジョブステップ実行時間管理テーブル１７５を記憶する。なお、メモリ１０１は、ＯＳ及びＡＰを記憶しても良い。【００５６】
集中ユーザ入力情報受付プログラム１５１は、ＩＯ部１０５を介してユーザからの情報の入力を受け付けるためのプログラムである。集中ジョブ実行情報取得プログラム１５２は、１又は複数のホスト計算機２００のメモリ２０１に記憶されるＯＳ２２０が持つジョブ２２５に関する情報を取得するためのプログラムである。集中ストレージ階層情報取得プログラム１５３は、ストレージ装置３００が持つストレージ階層に関する情報を取得するためのプログラムである。集中性能過不足データセット特定プログラム１５４は、１又は複数のホスト計算機２００のプロセッサが実行するジョブ２２５で使用されるデータセット３３１のうち、性能過剰のデータセット３３１を特定するためのプログラムである。【００５７】
ホスト計算機管理テーブル１７０は、管理計算機１００が管理対象とする１以上のホスト計算機２００に関する情報を格納する。集中データ構成管理テーブル１７１は、ストレージ装置３００に格納しているデータセット３３１に関する情報を格納する。集中ページ構成管理テーブル１７２は、ページ３２３とデータセット３３１との対応付けを行うための情報を格納する。集中ストレージ階層情報管理テーブル１７３は、ストレージ装置３００のストレージ階層３２４の利用状況に関する情報を格納する。集中ジョブ性能情報管理テーブル１７４は、ジョブ２２５の性能を管理するための情報を格納する。集中ジョブステップ実行時間管理テーブル１７５は、ジョブ２２５を構成するジョブステップ２２６の処理の実行時間を管理するための情報を格納する。【００５８】
プロセッサ１０２は、メモリ１０１に記憶されるプログラムを実行することによって、各種処理を行う。例えば、プロセッサ１０２は、ホスト計算機２００にストレージ階層制御を指示することで、ホスト計算機２００を介して、ストレージ装置３００により実行されるページ移動を制御する。管理ポート１０３は、通信ネットワーク５５０を介してホスト計算機２００及びストレージ装置３００に接続するためのインタフェースである。ＩＯポート１０４は、通信ネットワーク５００を介してホスト計算機２００及びストレージ装置３００に接続するためのインタフェースである。ＩＯ部１０５は、ユーザからの入力を受け付ける入力部（例えば、キーボード、スイッチ、ポインティングデバイス及び／又はマイクロフォン等）と各種情報をユーザに対して表示する出力部（例えば、ディスプレイ装置及び／又はスピーカ等）とを有する。【００５９】
（１−３）計算機システムの処理の概要【００６０】
図５は、実施例１に係る計算機システム１０の処理の概要を説明する概念図である。【００６１】
はじめに、本実施例で前提となるプールボリューム３２０、プール（階層型プール）３２１、及び論理ボリューム３２２の関係を説明する。【００６２】
プールボリューム３２０は、ストレージ装置３００によって、１又は複数の記憶デバイス３０８（３０８Ａ、３０８Ｂ、３０８Ｃ）の記憶領域（実記憶領域）から作成される論理的な記憶領域である。【００６３】
本実施例では、ストレージ装置３００は、特性が異なる複数の記憶デバイス３０８（記憶デバイス３０８Ａ、３０８Ｂ、３０８Ｃ）を有しており、記憶領域を提供する記憶デバイスの違いによって、複数の特性が異なるプールボリューム３２０を有することができる。特性が異なるとは、例えば、半導体ドライブ（例えば、ＳＳＤ）や磁性体ドライブ（例えば、ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの記憶素子の違い、ＦＣ、ＳＡＳ、ＳＡＴＡなどのインタフェースの違い又は記憶デバイス３０８から記憶領域を形成する方法の違いを意味する。特性が異なることによって、データアクセスに要する時間やハードウェア障害の発生時にデータを復旧できるか否かが異なる。図５に示す例では、高性能な記憶デバイス３０８の記憶領域から構成されるプールボリューム３２０（以下、プールボリューム（高性能）という。）は、複数の記憶デバイス３０８Ａの記憶領域から構成されている。【００６４】
プール３２１は、プールボリューム３２０の集合であって、１又は複数の論理ボリューム３２２に対応付けられている。ストレージ装置３００は、ホスト計算機２００から論理ボリューム３２２へのデータ書き込みが行われると、当該論理ボリューム３２２に対応付けられたプール３２１に属するプールボリューム３２０から記憶領域を提供する。プール３２１には、特性の異なる１又は複数のプールボリューム３２０が管理される。図５に示す例では、３つのプールボリューム３２０（高性能、中性能、及び低性能）が、同一のプール３２１に管理されている。【００６５】
論理ボリューム３２２は、ストレージ装置３００がホスト計算機２００に提供する仮想的なボリュームである。ホスト計算機２００は、ストレージ装置３００に対して、この論理ボリューム３２２と、論理ボリューム３２２上の記憶領域を示すアドレスとを指定したＩＯ要求６００により、データアクセスを要求する。ストレージ装置３００は、論理ボリューム３２２の記憶領域のうち、データアクセスの要求で指定されるデータだけをプール３２１に属するプールボリューム３２０に記憶する。具体的には、論理ボリューム３３２にデータの書き込みがあると、ストレージ装置３００は、プールボリューム３２０の記憶領域をページ３２３と呼ばれる単位で、データの書き込み対象となっている論理ボリューム３２２上の仮想アドレスに割当てる。【００６６】
更に、図５を参照して、データとデータを記憶するページ３２３との関係を説明する。【００６７】
図５に示す例では、ホスト計算機２００からのＩＯ要求６００によって論理ボリューム３２２の３つの領域に、それぞれデータオブジェクト３３０（データオブジェクト１、データオブジェクト２、及びデータオブジェクト３）が記憶されている。ここで、データオブジェクト３３０とは、ユーザが管理するデータの単位であって、例えば、オープンシステムにおけるファイル又はメインフレームにおけるデータセット３３１に相当する。各データオブジェクト３３０は、ストレージ装置３００がプールボリューム３２０から論理ボリューム３２２の各領域に割当てたページ３２３に記憶される。なお、データオブジェクト３３０と、データオブジェクト３３０に割当てられるページ３２３とは必ずしも１対１の関係にはない。具体的には、複数のページ３２３に単一のデータオブジェクト３３０が記憶されることもあるし、単一のページ３２３に複数のデータオブジェクト３３０が記憶されることもある。例えば、図５のデータオブジェクト１のように、ページ３２３の大きさ（ページサイズと称する）よりもデータオブジェクト３３０の大きさ（データサイズと称する）が大きい場合、ストレージ装置３００は、当該データオブジェクト３３０を記憶ために、複数のページ３２３（同図の例では、ページ１及びページ２）を割当てる。一方、データオブジェクト２のように、ページサイズよりもデータサイズが小さい場合、データオブジェクト３３０を記憶するページ３２３内に未使用の記憶領域が存在するため、ホスト計算機２００からのＩＯ要求６００によって、当該ページ３２３の未使用の記憶領域へデータオブジェクト３３０（データオブジェクト３）の書き込みがあっても、ストレージ装置３００は、このデータオブジェクト３３０（データオブジェクト３）に対して新たにページ３２３の割当てを行わない。この結果、単一のページ３２３（ページ５）に複数のデータオブジェクト３３０（データオブジェクト２及びデータオブジェクト３）が存在する。【００６８】
次に、ストレージ装置３００におけるページ移動と、ストレージ階層制御について説明する。【００６９】
ページ移動とは、論理ボリューム３２２において、プール３２１内のプールボリューム３２０間でページ３２３上のデータを移動させることをいう。また、ストレージ階層制御とは、データに対して当該データのアクセス頻度や性能要件に応じた適切な性能の論理ボリューム３２２を提供することを目的として、ストレージ装置３００が特性の異なるプールボリューム３２０間でページ３２３上のデータを移動させることにより、データを記憶するプールボリューム３２０を制御することをいう。【００７０】
ここで、図５を参照して、ストレージ階層制御の一例を説明する。ストレージ装置３００では、ホスト計算機２００によるデータアクセスに要する時間の違いを特性情報（図５の例では、高性能、中性能、又は低性能）として管理しているものとする。ここで、ホスト計算機２００からデータオブジェクト１を記憶している記憶領域のうち、ページ１に割当てられる記憶領域に対してアクセス頻度が過去との比較で高まったと判断した場合、ストレージ装置３００は、ページ１に対して、プールボリューム３２０（中性能）からプールボリューム３２０（高性能）へのページ移動を行う。【００７１】
ストレージ装置３００は、このようなページ移動を実施することで、ホスト計算機２００によるデータへのアクセス頻度に応じて、当該データに対して適切な性能の論理ボリューム３２２を提供できる。なお、ストレージ装置３００は、このストレージ階層制御を、定期的、又は不定期的に実行する。例えば、ストレージ装置３００は、１時間おきにストレージ階層制御を実行するようにしても良い。または、ＩＯ部３０５を介したユーザからの指示やホスト計算機２００からの指示を契機として、ストレージ装置３００がストレージ階層制御を実行するようにしても良い。【００７２】
以上説明したように、ストレージ階層制御においては、プール３２１内の特性の異なるプールボリューム３２０間でページ移動を実施する。本実施例では、プールボリューム３２０をその特性に応じて、複数の階層に区分して管理している。なお、本実施例では、特に断らない限り、プールボリューム３２０の階層を、３階層（高性能、中性能、及び低性能）であるとして説明する。ただし、プールボリューム３２０の階層は、３階層に限定されるものではない。ここで、あるストレージ階層３２４よりもＩＯ性能の高いストレージ階層３２４を上位のストレージ階層３２４と称し、あるストレージ階層３２４よりもＩＯ性能の低いストレージ階層３２４を下位のストレージ階層３２４と称する。【００７３】
次に、本実施例におけるホスト計算機２００の指示に基づくストレージ階層制御の概要を説明する。【００７４】
図６は、実施例１に係るホスト計算機２００及びストレージ装置３００の処理の概要を説明する概念図である。【００７５】
図６に示すように、ホスト計算機２００は、ストレージ階層制御指示プログラム２５７に基づいて、ストレージ装置３００に対して、ページ３２３とページ移動先のストレージ階層３２４（例えば、高性能のストレージ階層３２４）とを指定してストレージ階層制御の指示を送信する。なお、高性能のストレージ階層３２４は、プールボリューム３２０（高性能）により構成され、中性能のストレージ階層３２４は、プールボリューム３２０（中性能）により構成され、低性能のストレージ階層３２４は、プールボリューム３２０（低性能）により構成される。【００７６】
ストレージ装置３００は、受信したホスト計算機２００のストレージ階層制御の指示によって、ストレージ階層制御プログラム３５３に基づいて、ページ移動を実施する。さらに、ストレージ装置３００は、移動したページ３２３がホスト計算機２００の指示に基づくストレージ階層制御の制御対象のページであることを記憶して、当該ページ３２３がアクセス頻度に応じたストレージ階層制御の制御対象とならないようにする。このように、ストレージ装置３００がホスト計算機２００の指示に基づくストレージ階層制御の制御対象ページ３２３であることを記憶して、アクセス頻度に応じたストレージ階層制御の制御対象とならないようにする処理を、以後、ページロックと呼ぶ。なお、ストレージ装置３００は、アクセス頻度に応じたストレージ階層制御を実行する時に、アクセス頻度に応じたストレージ階層制御の制御対象のページ３２３からページロックされたページ３２３を除外する。このため、アクセス頻度に応じたストレージ階層制御によって、ページロックされたページ３２３が移動されることを適切に防止することができる。【００７７】
更に、ホスト計算機２００は、ストレージ階層制御の指示に必要な情報を取得し、又はＩＯ部２０５を介してユーザに対してデータアクセスの特性情報を表示するために、ストレージ階層情報取得プログラム２５３に基づいて、ストレージ装置３００に対して、ストレージ階層３２４の割当てやＩＯ処理時間に関する情報を取得するＩＯ要求６００を送信する。当該ＩＯ要求６００を受信したストレージ装置３００は、ＩＯ処理プログラム３５１に基づいて、ホスト計算機２００に対して、論理ボリューム３２２に割当てたページ３２３の記憶領域の情報及び当該ページ３２３のストレージ階層３２４の特性情報を返送する。【００７８】
次に、ホスト計算機２００上で起動するアプリケーション及びジョブ２２５の概念を説明する。【００７９】
図７は、実施例１に係るアプリケーション及びジョブの概念図である。【００８０】
ホスト計算機２００では、１又は複数のアプリケーションを同時に実行させることができる。アプリケーションを実行する場合、実行対象のアプリケーション名、アプリケーションが使用するデータセット名などをジョブ２２５に規定し、そのジョブ２２５を実行（ＳＵＢＭＩＴ）する。具体的に、ジョブ２２５には、アプリケーション名やデータセット名だけではなく、ジョブ名、ジョブ２２５の種別であるジョブクラス、ジョブ２２５の使用者等を規定することもできる。ジョブ２２５の実行がユーザにより指示されると、ＯＳ２２０の指示に従って、ホスト計算機２００はジョブ２２５の実行を開始する。ここで、データセット３３１とは、特にメインフレームＯＳで管理される論理的な単位であり、ホスト計算機２００で主に動作するアプリケーションが使用するデータであり、図５に示すデータオブジェクト３３０に相当する。また、データセット３３１は、オープンシステムにおけるファイルに相当する。【００８１】
図７に示すように、ＯＳ２２０は、ホスト計算機２００でジョブ２２５を処理するためのジョブ受付部２２１、ジョブスプール部２２２、及びアプリケーション実行部２２３を備えている。例えば、ジョブ２２５の実行をユーザに指示されると、ＯＳ２２０内のジョブ受付部２２１（実際には、ジョブ受付部２２１を実行するプロセッサ２０２）がそのジョブ２２５を受け付け、ジョブ２２５で規定されている種々の情報を取得するための処理をホスト計算機２００に指示する。【００８２】
ホスト計算機２００は、ジョブ２２５で規定されている情報を取得後、当該ジョブ２２５をジョブ受付部２２１からジョブスプール部２２２に移動する。【００８３】
ジョブスプール部２２２は、アプリケーション実行部２２３でジョブ２２５の処理の実行が可能になるまで、ジョブ２２５の実行を保留する。アプリケーション実行部２２３で新しいジョブ２２５の処理の実行が可能になると、ホスト計算機２００はジョブスプール部２２２内にあるジョブ２２５を、アプリケーション実行部２２３に移動する。【００８４】
アプリケーション実行部２２３は、ジョブ２２５に規定されているアプリケーションを実行する。アプリケーションが実行されて初めて、ジョブ２２５に規定されたアプリケーションプログラムを格納したデータセット３３１が参照される。アプリケーション実行部２２３による処理が終了する（すなわち、ジョブ２２５に規定されたアプリケーションの処理が完了する）と、ホスト計算機２００は、ジョブ２２５の終了処理を実行し、ジョブ２２５を終了させる。【００８５】
一般に、ユーザは、計算機システムが提供するサービスの要件を満たすために、当該サービスの実現に必要な処理を規定したアプリケーションに対して性能要件を設定する。ここで、サービスの要件の例としては、１時間当たり１００万件の預金データを更新する、といった単位時間当たりの処理件数の最低数が挙げられる。また、アプリケーションの性能要件の例としては、預金データの更新処理がアプリケーションに対して、実行開始から終了までに要する時間が１ミリ秒以内である、といったアプリケーションの実行時間の上限値が挙げられる。ＯＳ２２０は、ユーザから設定されたアプリケーションの性能要件を満たすように、当該アプリケーションを実行するジョブ２２５に対してプロセッサ２０２やメモリ２０１といった計算機資源を割当てる。【００８６】
次に、本実施例におけるアプリケーションの性能要件に基づき性能過剰のデータセット３３１を特定する方法の概要を説明する。【００８７】
図８は、実施例１に係るアプリケーションの性能要件に基づく性能過剰のデータセット３３１の特定方法の概要を説明する概念図である。【００８８】
ここで、ホスト計算機２００のメモリ２０１には、図８に示すようにジョブ２２５が展開されているとする。一般的に、ジョブ２２５は１又は複数のジョブステップ２２６から構成される。ホスト計算機２００は、１又は複数のジョブステップ２２６を逐次的に実行することで、ジョブステップ２２６が構成するジョブ２２５を実行する。ジョブステップ２２６には、当該ジョブステップ２２６で使用するデータセット３３１が定義される。ここで、１つのジョブステップ２２６が複数のデータセット３３１を使用することもあるし、複数のジョブステップ２２６が１つのデータセット３３１を使用することもある。図８に示す例では、ジョブ２２５は、３つのジョブステップ２２６（ジョブステップ１、ジョブステップ２、及びジョブステップ３）から構成される。ジョブステップ１は、データセットＡとデータセットＢとを使用し、ジョブステップ２は、データセットＢとデータセットＣとを使用し、ジョブステップ３は、データセットＤを使用する。【００８９】
本実施例では、ホスト計算機２００は、ジョブ２２５の実行時間に対する要件（実行時間の要件）と、ジョブ２２５の実行時間の実測値と、各ジョブステップ２２６の実行時間と、各ジョブステップ２２６が使用するデータセット３３１の格納先のストレージ階層（格納先ストレージ装置という。）３２４と、各ストレージ階層３２４のＩＯ処理時間（所定のデータ量の一回のＩＯ処理に要する時間）と、を利用して性能過剰のジョブステップ２２６を特定する。ここで、性能過剰のジョブステップ２２６とは、性能過剰のデータセット３３１のみを使用するジョブステップ２２６のことを指す。これにより、ホスト計算機２００は、性能過剰のデータセット３３１を１以上含むデータセットの集合を特定する。【００９０】
まず、ホスト計算機２００は、ジョブ２２５の実行時間の要件と実行時間の実測値との差分によって、当該ジョブ２２５の実行時間増加についての許容量を算出する。図８の例では、ジョブ２２５の実行時間増加の許容量は、２３０ｍｓ（４００ｍｓ（ジョブ２２５の実行時間の要件）−１７０ｍｓ（ジョブ２２５の実行時間の実測値））である。【００９１】
次に、ホスト計算機２００は、ジョブステップ２２６が使用するデータセット３３１の格納先ストレージ階層３２４と、各ストレージ階層３２４のＩＯ処理時間とに基づいて、当該ジョブステップ２２６が使用するデータセット３３１を下位のストレージ階層３２４に移動した場合におけるデータアクセスに要する時間の増加率を算出する。図８に示す例ではジョブステップ１が使用するデータセットＡとデータセットＢとは、どちらも高性能のストレージ階層３２４に格納されている。高性能のストレージ階層３２４のＩＯ処理時間は１ｍｓであり、中性能のストレージ階層３２４のＩＯ処理時間は１０ｍｓである。この場合には、データセットＡとデータセットＢとを中性能のストレージ階層３２４に移動すると、ジョブステップ１におけるデータアクセスに要する時間が１０（１０ｍｓ／１ｍｓ）倍になると算出できる。【００９２】
そして、ホスト計算機２００は、算出したデータアクセスに要する時間の増加率と、ジョブステップ２２６の実行時間とに基づいて、データセット３３１を下位のストレージ階層３２４に移動した場合における当該ジョブステップ２２６の実行時間の最大増加量を算出する。図８に示す例では、ジョブステップ１の実行時間の実測値は２０ｍｓであるので、データセットＡとデータセットＢとを中性能のストレージ階層３２４に移動する場合、ジョブステップ１の実行時間は最大で２００ｍｓ（２０ｍｓ×１０）になると算出できる。したがって、算出した２００ｍｓと、ジョブステップ１の実行時間の実測値２０ｍｓとの差分からジョブステップ１の実行時間の最大増加量は、１８０ｍｓと算出できる。【００９３】
さらに、ホスト計算機２００は、算出したジョブステップ２２６の実行時間の最大増加量と、ジョブ２２５の実行時間増加の許容量とを比較する。ジョブステップ２２６の実行時間の最大増加量がジョブ２２５の実行時間増加の許容量よりも少ない場合、ホスト計算機２００は、当該ジョブステップ２２６が使用するデータセット３３１は性能過剰の可能性があると判定する一方、ジョブステップ２２６の実行時間の最大増加量がジョブ２２５の実行時間増加の許容量よりも少なくない場合、当該ジョブステップ２２６が使用するデータセット３３１は性能過剰でないと判定する。図８に示す例では、ジョブステップ１の実行時間の最大増加量は１８０ｍｓであり、ジョブ２２５の実行時間増加の許容量は２３０ｍｓであるので、ジョブステップ２２６の実行時間の最大増加量がジョブ２２５の実行時間増加の許容量よりも少ない。このため、ジョブステップ１が使用するデータセットＡとデータセットＢとは、性能過剰の可能性があると判定する。【００９４】
ホスト計算機２００は、上記の判定を各ジョブステップ２２６について行い、性能過剰の可能性があると判定したデータセット３３１のみを利用するジョブステップ２２６を性能過剰のジョブステップ２２６と判定する。そして、性能過剰のジョブステップ２２６が使用するデータセット３３１を性能過剰と特定する。図８に示す例では、ジョブステップ２が使用するデータセットＢとデータセットＣとは高性能のストレージ階層３２４に格納されている。ジョブステップ２が使用するこれらデータセットを中性能のストレージ階層３２４に移動すると、ジョブステップ２のデータアクセスに要する時間は、ジョブステップ１と同様に、１０倍になると算出できる。また、ジョブステップ２の実行時間の実測値は５０ｍｓであるので、ジョブステップ２の実行時間の最大増加量は、４５０ｍｓと算出できる。一方、ジョブ２２５の実行時間増加の許容量は２３０ｍｓである。実行時間の最大増加量が実行時間増加の許容量よりも多いため、ホスト計算機２００は、ジョブステップ２で使用するデータセットＢとデータセットＣとが性能過剰でないと判定する。また、ジョブステップ３が使用するデータセットＤは中性能のストレージ階層３２４に格納されている。中性能のストレージ階層３２４のＩＯ処理時間は、１０ｍｓであり、低性能のストレージ階層３２４のＩＯ処理時間は、３０ｍｓである。ここで、データセットＤを中性能のストレージ階層３２４から下位のストレージ階層３２４、すなわち、低性能のストレージ階層３２４に移動すると、ジョブステップ３のデータアクセスに要する時間は、３倍になると算出できる。また、ジョブステップ３の実行時間の実測値は１００ｍｓであるので、ジョブステップ３の実行時間の最大増加量は、２００ｍｓと算出できる。一方、ジョブ２２５の実行時間増加の許容量は、２３０ｍｓである。実行時間の最大増加量が実行時間増加の許容量よりも少ない。このため、ジョブステップ３が使用するデータセットＤは、性能過剰の可能性があると判定する。図８に示す例では、各ジョブステップ２２６に対する判定において、性能過剰の可能性があると判定されるデータセット３３１は、データセットＡとデータセットＤとなる。したがって、性能過剰のジョブステップ２２６はジョブステップ３であり、性能過剰のデータセット３３１はデータセットＤであると特定できる。【００９５】
以上、本実施例におけるアプリケーションの性能要件に基づき性能過剰のデータセット３３１を特定する方法の概要を説明した。【００９６】
ユーザは、ホスト計算機２００に上記の処理を実行させて、下位のストレージ階層３２４に移動できるデータセット３３１の集合を把握できる。これにより、ユーザは、各ストレージ階層３２４に必要な容量を把握できる。また、性能過剰のデータセット３３１の集合を下位のストレージ階層３２４に移動させることで、より上位のストレージ階層３２４を他のデータセット３３１が有効利用できるようにすることができる。具体的には、ストレージ階層３２４を備えたストレージ装置の導入時において、ユーザは、導入するストレージ装置に格納する予定のデータセット３３１について、ホスト計算機２００に上記の処理を実行させるようにすれば良い。この処理により、データセット３３１の集合に対して、当該データセット３３１を使用するジョブ２２５の性能要件を満たしつつ、かつ性能過剰とならないストレージ階層３２４を特定できる。この結果、ユーザは、ストレージ階層３２４を備えたストレージ装置の導入時に、各ストレージ階層３２４に必要な容量を把握できる。また、ストレージ階層３２４を備えたストレージ装置の運用時において、ユーザは、実行時間の実測値が要件に比べて非常に短いと判断したジョブ２２５について、ホスト計算機２００に上記の処理を実行させるようにすれば良い。この処理により、ユーザは、性能過剰のデータセット３３１の集合を特定し、これらデータセット３３１を下位のストレージ階層３２４に移動するように指示できる。この結果、他のデータセット３３１が、より上位のストレージ階層３２４を有効利用できるようになる。また、上位のストレージ階層３２４の利用頻度を低くすることにより、当該ストレージ階層３２４を構成する記憶デバイスの長寿命化を図ることができる。【００９７】
なお、計算機システム１０により実現されるストレージ階層制御の処理は、基本的に、ホスト計算機２００及びストレージ装置３００によって実行されるが、必要に応じて、管理計算機１００が、複数のホスト計算機２００及びストレージ装置３００を集中管理するようにしても良い。具体的には、管理計算機１００が、複数のホスト計算機２００へストレージ階層制御の指示を行う。各ホスト計算機２００は、管理計算機１００の指示により、ストレージ装置３００へストレージ階層制御の指示を行う。これにより、複数のホスト計算機２００が存在する場合、ユーザが操作するＩＯ部を管理計算機１００のＩＯ部１０５に集約することができ、ユーザが各ホスト計算機２００のＩＯ部２０５を個別に操作する手間を削減することができる。なお、管理計算機１００は、ストレージ装置３００に直接、ストレージ階層制御の指示を送信するようにしても良い。【００９８】
（１−４）各種テーブルの内容【００９９】
図１４は、実施例１に係るストレージ基本情報の一例を示す図である。【０１００】
ストレージ基本情報３７０は、ストレージ装置３００の情報を管理するテーブルであって、ＩＰアドレス３７０１及びストレージＩＤ３７０２を含む。ＩＰアドレス３７０１は、ストレージ装置３００に付与されたＩＰアドレスである。ストレージＩＤ３７０２は、ＩＰアドレスが示すストレージ装置３００を一意に識別する識別子である。【０１０１】
図１５は、実施例１に係る論理ボリューム管理テーブルの一例を示す図である。【０１０２】
論理ボリューム管理テーブル３７１は、論理ボリューム３２２を管理するテーブルであって、各エントリには、プールＩＤ３７１１、論理ボリュームＩＤ３７１２、仮想アドレス３７１３、ページＩＤ３７１４、及びロックフラグ３７１５のフィールドが含まれる。【０１０３】
プールＩＤ３７１１には、１又は複数のプールボリューム３２０が属するプール３２１をストレージ装置３００が一意に識別するための識別子が格納される。論理ボリュームＩＤ３７１２には、ストレージ装置３００が付与した論理ボリューム３２２を一意に識別するための識別子（論理ボリュームＩＤ）が格納される。仮想アドレス３７１３には、論理ボリューム３２２上の記憶領域を示すアドレス（仮想アドレス）が格納される。アドレスは、例えば、先頭シリンダ、ヘッダ数、及び、最後尾シリンダ、ヘッダ数である。アドレスは、通信ネットワーク５００がＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）の場合、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）であっても良い。なお、仮想アドレス３７１３に格納されるアドレスの範囲の大きさは、例えば、ページサイズと同一である。ページＩＤ３７１４には、同一エントリの仮想アドレスが示す記憶領域が割当てられているページ３２３を一意に識別するための識別子（ページＩＤ）が格納される。なお、記憶領域にページ３２３が割当てられていない場合には、ページＩＤ３７１４には、「空き」が格納される。ロックフラグ３７１５には、仮想アドレス３７１３の仮想アドレスが示す記憶領域がページロック制御中であるか否かを示すフラグ（ロックフラグ）が格納される。例えば、ロックフラグ３７１５には、仮想アドレス３７１３の仮想アドレスが示す記憶領域がページロック制御中である場合には、「ロック中」が格納され、ページロック制御中でない場合には、「ロック解除」が格納される。【０１０４】
図１６は、実施例１に係るプール内ページ管理テーブルの一例を示す図である。【０１０５】
プール内ページ管理テーブル３７２は、プール３２１内の、論理ボリューム３２２に割当てているページ３２３を管理するテーブルであって、各エントリには、プールＩＤ３７２１、ページＩＤ３７２２、アクセス頻度３７２３、プールボリュームＩＤ３７２４、及び実アドレス３７２５のフィールドが含まれる。【０１０６】
プールＩＤ３７２１には、同一エントリのプールボリュームＩＤが示すプールボリューム３２０が登録されているプール３２１を一意に識別するための識別子（プールＩＤ）が格納される。ページＩＤ３７２２には、論理ボリューム３２２に対して、ストレージ装置３００が割当てたプール３２１内のページ３２３を一意に識別するための識別子（ページＩＤ）が格納される。アクセス頻度３７２３には、当該ページ３２３の割当て後に、当該ページ３２３が何回参照されたかを示す情報（アクセス回数）が格納される。プールボリュームＩＤ３７２４には、ページ３２３を割当てたプールボリューム３２０を一意に識別するための識別子（プールボリュームＩＤ）が格納される。実アドレス３７２５には、プールボリューム３２０上の記憶領域を示すアドレスが格納される。なお、実アドレスが示す記憶領域の大きさは、例えば、ページサイズと同一である。【０１０７】
図１７は、実施例１に係るプールボリューム管理テーブル３７３の一例を示す図である。【０１０８】
プールボリューム管理テーブル３７３は、プール３２１に登録されたプールボリューム３２０を管理するテーブルであって、各エントリには、プールＩＤ３７３１、プールボリュームＩＤ３７３２、階層３７３３、ＩＯ処理時間３７３４、実アドレス３７３５、記憶デバイスＩＤ３７３６、物理アドレス３７３７、及び使用フラグ３７３８のフィールドが含まれる。【０１０９】
プールＩＤ３７３１は、ストレージ装置３００が管理しているプール３２１を一意に識別するための識別子（プールＩＤ）が格納される。プールボリュームＩＤ３７３２には、ストレージ装置３００が管理するプールボリューム３２０を一意に識別するための識別子（プールボリュームＩＤ）が格納される。階層３７３３には、プールボリューム３２０のＩＯ性能に関する特性情報が格納される。ＩＯ処理時間３７３４には、プールボリューム３２０に格納されたデータセット３３１の所定量のデータに対する１回のデータアクセスに要する時間（ＩＯ処理時間）が格納される。実アドレス３７３５には、プールボリューム３２０上の記憶領域を示すアドレス（実アドレス）が格納される。なお、実アドレスが示す記憶領域の大きさは、例えば、ページサイズと同一である。記憶デバイスＩＤ３７３６には、実アドレスによって示される記憶領域を構成する記憶デバイス３０８を一意に識別するための識別子（記憶デバイスＩＤ）が格納される。物理アドレス３７３７には、実アドレスが示す記憶領域を構成する記憶デバイス３０８の記憶領域を示すアドレスが格納される。使用フラグ３７３８には、実アドレスが示す記憶領域がページ３２３の割当てに使用されているか否かを示すフラグ（使用フラグ）が設定される。使用フラグ３７３８には、実アドレスが示す記憶領域がページ３２３の割当てに使用されている場合には、「使用中」が格納され、実アドレスが示す記憶領域がページ３２３の割当てに使用されていない場合には、「未使用」が格納される。【０１１０】
図１８は、実施例１に係るＩＯ要求を示す図である。【０１１１】
ＩＯ要求６００は、管理計算機１００又はホスト計算機２００によって発行される。ＩＯ要求６００は、宛先６０１、指示内容６０２、通し番号６０３、及びオプション６０４のフィールドから構成される。【０１１２】
宛先６０１には、このＩＯ要求６００の宛先に関する情報が格納される。宛先に関する情報としては、例えば、このＩＯ要求６００の送信先となるストレージ装置３００の識別子と、当該ストレージ装置３００における論理ボリュームＩＤと、当該論理ボリュームＩＤが示す論理ボリューム３２２の記憶領域を示す仮想アドレスと、を含む情報が格納される。指示内容６０２には、このＩＯ要求６００によって指示される処理の内容（指示内容）が格納される。例えば、指示内容は、ストレージ階層制御指示又はデータアクセスの指示である。ストレージ階層制御指示の例としては、ページロック開始、ページロック解除、指定したストレージ階層３２４へのページ移動、階層利用状況取得、又はプール３２１の状態取得等が挙げられる。また、データアクセスの指示の例としては、データ書き込み指示又はデータ読み込み指示が挙げられる。通し番号６０３には、このＩＯ要求６００が発行された順番（通し番号）が格納される。通し番号は、このＩＯ要求６００の発行元である管理計算機１００又はホスト計算機２００によって決められる。オプション６０４には、このＩＯ要求６００によって書き込みが要求されるデータの内容、ページ移動先のストレージ階層３２４等が格納される。【０１１３】
図９は、実施例１に係るデータ構成管理テーブルの一例を示す図である。【０１１４】
データ構成管理テーブル２７１は、データセット３３１が記憶されている論理ボリューム３２２の記憶領域を管理するテーブルであって、各エントリには、データセット名２７１１、格納デバイス名２７１２、仮想アドレス２７１３、ストレージＩＤ２７１４、及び論理ボリュームＩＤ２７１５のフィールドが含まれる。【０１１５】
データセット名２７１１には、ＯＳ２２０で管理されるデータセット３３１の名称（データセット名）が格納される。格納デバイス名２７１２には、データセット名のデータセット３３１が記憶される論理ボリューム３２２をホスト計算機２００上のＯＳ２２０が一意に識別するための識別子（例えば、デバイス番号）が格納される。仮想アドレス２７１３には、同一エントリのデータセット名のデータセット３３１が記憶される論理ボリューム３２２の記憶領域を示すアドレスが格納される。ストレージＩＤ２７１４には、ホスト計算機２００によって管理されるストレージ装置３００を一意に識別するための識別子（ストレージＩＤ）が格納される。論理ボリュームＩＤ２７１５には、ストレージＩＤによって識別されるストレージ装置３００が付与した論理ボリューム３２２を一意に識別するための識別子（論理ボリュームＩＤ）が格納される。【０１１６】
図１０は、実施例１に係るページ構成管理テーブルの一例を示す図である。【０１１７】
ページ構成管理テーブル２７２は、論理ボリューム３２２の記憶領域（仮想アドレス）とページ３２３との対応付けを管理するテーブルであって、各エントリには、ストレージＩＤ２７２１、論理ボリュームＩＤ２７２２、ページＩＤ２７２３、及び仮想アドレス２７２４のフィールドが含まれる。【０１１８】
ストレージＩＤ２７２１には、ホスト計算機２００によって管理されるストレージ装置３００を一意に識別するための識別子（ストレージＩＤ）が格納される。論理ボリュームＩＤ２７２２には、同一エントリのストレージＩＤによって識別されるストレージ装置３００が付与した論理ボリューム３２２を一意に識別するための識別子（論理ボリュームＩＤ）が格納される。ページＩＤ２７２３には、同一エントリのストレージＩＤ及び論理ボリュームＩＤによって識別される論理ボリューム３２２に対して、ストレージ装置３００が割当てたページ３２３を一意に識別するための識別子（ページＩＤ）が格納される。仮想アドレス２７２４には、ページＩＤによって識別されるページ３２３に対して割当てられた論理ボリューム３２２上の記憶領域のアドレス（仮想アドレス）が格納される。【０１１９】
図１１は、実施例１に係るストレージ階層情報管理テーブルの一例を示す図である。【０１２０】
ストレージ階層情報管理テーブル２７３は、ストレージ階層３２４の利用状況に関する情報や性能に関する情報（ＩＯ性能情報）を管理するテーブルであって、各エントリには、ストレージＩＤ２７３１、階層２７３２、ＩＯ処理時間２７３３、全体容量２７３４、及びページロック済み容量２７３５のフィールドが含まれる。【０１２１】
ストレージＩＤ２７３１には、ホスト計算機２００によって管理されるストレージ装置３００を一意に識別するための識別子（ストレージＩＤ）が格納される。階層２７３２には、同一エントリの対応するストレージＩＤが示すストレージ装置３００によって管理されるプールボリューム３２０のストレージ階層を一意に識別するための識別子が格納される。ＩＯ処理時間２７３３には、ストレージ階層に格納されたデータセット３３１の所定量のデータに対するデータアクセス（例えば、１回のデータアクセス）に要する時間（データアクセス時間）が格納される。このデータアクセス時間を他のエントリと比較することにより、各エントリに対応するストレージ階層間のデータアクセス時間の差異を把握することができる。全体容量２７３４には、ストレージ階層に対応する１又は複数のプールボリューム３２０の総容量の合計値（全体容量）が格納される。ページロック済み容量２７３５には、ストレージ階層に対応する１又は複数のプールボリューム３２０から割当てられたページ３２３のうち、ページロック実施中のページ３２３の総容量が格納される。【０１２２】
図１２は、実施例１に係るジョブ性能情報管理テーブルの一例を示す図である。【０１２３】
ジョブ性能情報管理テーブル２７４は、ホスト計算機２００上で動作するＯＳ２２０により実行されるジョブ２２５を管理するテーブルであって、各エントリには、ジョブ名２７４１、実行時間の要件２７４２、及び実行時間の実測値２７４３のフィールドが含まれる。【０１２４】
ジョブ名２７４１には、ホスト計算機２００上で動作するＯＳ２２０がアプリケーションを実行する時に使用するジョブ２２５の名称（ジョブ名）が格納される。実行時間の要件２７４２には、ユーザより定められるジョブにおけるアプリケーションの実行時間に対する要件（性能要件管理情報の一例）が格納される。実行時間の実測値２７４３には、ジョブ２２５がＯＳ２２０によって、実行された際のジョブ２２５の実行に要した時間（実行時間）の実測値が格納される。【０１２５】
図１３は、実施例１に係るジョブステップ実行時間管理テーブルの一例を示す図である。【０１２６】
ジョブステップ実行時間管理テーブル２７５は、ジョブ２２５を構成するジョブステップ２２６の実行時間、格納先ストレージ階層等に関する情報（階層特定情報の一例）を管理するテーブルであって、各エントリには、ジョブ名２７５１、ジョブステップ名２７５２、実行時間の実測値２７５３、データセット名２７５４、及び格納先ストレージ階層２７５５のフィールドが含まれる。【０１２７】
ジョブ名２７５１には、ホスト計算機２００上で動作するＯＳ２２０がアプリケーションを実行する時に使用するジョブ２２５の名称（ジョブ名）が格納される。ジョブステップ名２７５２には、同一エントリのジョブ名が示すジョブ２２５を構成するジョブステップ２２６の名称（ジョブステップ名）が格納される。実行時間の実測値２７５３には、同一エントリのジョブステップ名が示すジョブステップ２２６の実行時間の実測値が格納される。データセット名２７５４には、同一エントリのジョブステップ名が示すジョブステップ２２６が使用するデータセット３３１の名称（データセット名）が格納される。格納先ストレージ階層２７５５には、データセット名が示すデータセット３３１を格納するストレージ階層３２４を示す情報が格納される。【０１２８】
図２９は、実施例１に係るホスト計算機管理テーブルの一例を示す図である。【０１２９】
ホスト計算機管理テーブル１７０は、管理計算機１００により管理されるホスト計算機２００の情報であって、各エントリには、ホスト名１７０１及びＩＰアドレス１７０２のフィールドが含まれる。【０１３０】
ホスト名１７０１には、ホスト計算機２００の名称が格納される。ＩＰアドレス１７０２には、ホスト計算機２００に付与されるＩＰアドレスが格納される。【０１３１】
管理計算機１００のメモリ１０１には、図２に示すように、集中データ構成管理テーブル１７１、集中ページ構成管理テーブル１７２、集中ストレージ階層情報管理テーブル１７３、集中ジョブ性能情報管理テーブル１７４、及び集中ジョブステップ実行時間管理テーブル１７５が記憶される。これらテーブルは、ホスト計算機２００のメモリ２０１に記憶される各種テーブルとほぼ同様な情報を記憶する。本実施例では、図３に示すホスト計算機２００のメモリ２０１に記憶される「ａａａ管理テーブル」と同様な情報を記憶する管理計算機１００のメモリ１０１に記憶されるテーブルを図２に示すように「集中ａａａ管理テーブル」としている。これら「集中ａａａ管理テーブル」が記憶する内容は、ａａａ管理テーブルにおいて、ホスト計算機２００を一意に識別するための識別子（ホストＩＤ）を格納するためのカラム（列：フィールド）を追加したものであり、管理計算機１００が管理する各ホスト計算機２００で管理されている「ａａａ管理テーブル」の情報を集約したものである。なお、このような構成であるので、これら集中ａａａテーブルの内容を示す図及び詳細な説明は、割愛する。【０１３２】
（１−５）各装置の動作の詳細【０１３３】
実施例１における各装置の動作の詳細を、ストレージ装置３００、ホスト計算機２００、管理計算機１００の順に説明する。【０１３４】
まず、ストレージ装置３００の動作について説明する。【０１３５】
ストレージ装置３００は、ストレージ装置管理プログラム３５４に基づいて、ユーザからストレージ装置３００の設定に関する情報を取得し、ストレージ基本情報３７０、論理ボリューム管理テーブル３７１、及びプールボリューム管理テーブル３７３を作成する。具体的には、ストレージ装置３００は、ユーザの入力（例えば、ＩＯ部３０５に対するユーザの入力）からＩＰアドレス及びストレージＩＤを取得し、取得したＩＰアドレスをストレージ基本情報３７０のＩＰアドレス３７０１に格納する。次に、ストレージ装置３００は、プールボリューム３２０を作成するため、ユーザの入力からプールＩＤ、プールボリュームＩＤ、記憶デバイスＩＤ、及び物理アドレスを取得する。さらに、ストレージ装置３００は、プールボリューム管理テーブル３７３に新たなエントリを追加し、取得した情報を当該エントリのプールＩＤ３７３１、プールボリュームＩＤ３７３２、記憶デバイスＩＤ３７３６、及び物理アドレス３７３７に格納する。さらに、ストレージ装置３００は、記憶デバイスＩＤ３７３６に格納された記憶デバイスＩＤが示す記憶デバイス３０８から性能情報や容量情報を取得し、取得した情報を当該エントリの階層３７３３及びＩＯ処理時間３７３４に格納する。さらに、ストレージ装置３００は、使用フラグ３７３８を「未使用」とすることにより使用フラグを初期化する。ストレージ装置３００は、この動作をユーザの入力回数だけ繰り返し、プールボリューム管理テーブル３７３を作成する。さらに、論理ボリューム３２２を作成するために、ストレージ装置３００は、ユーザの入力からプールＩＤ、論理ボリュームＩＤ、及び仮想アドレスを取得する。さらに、ストレージ装置３００は、論理ボリューム管理テーブル３７１に新たなエントリを追加し、取得した情報を当該エントリのプールＩＤ３７１１、論理ボリュームＩＤ３７１２、及び仮想アドレス３７１３に格納する。さらに、ストレージ装置３００は、当該エントリのページＩＤ３７１４を「空き」に設定し、ロックフラグ３７１５を「ロック解除」に設定することによりロックフラグを初期化する。ストレージ装置３００は、この動作をユーザの入力回数だけ繰り返し、論理ボリューム管理テーブル３７１を作成する。【０１３６】
図１９は、実施例１に係るＩＯ処理のフローチャートである。【０１３７】
ストレージ装置３００は、ホスト計算機２００からＩＯ要求６００を受信すると、ＩＯ処理プログラム３５１に基づいて、当該ＩＯ要求６００の指示内容６０２に格納されている指示内容がストレージ階層制御指示であるか否かを判定する（Ｓ３０００）。【０１３８】
この結果、当該ＩＯ要求６００の指示内容がストレージ階層制御指示である場合（Ｓ３０００でＹｅｓ）、ストレージ装置３００は、ストレージ階層制御処理（図２１参照）を実行して（Ｓ３０６０）、ＩＯ処理を終了する。一方、当該ＩＯ要求６００の指示内容がストレージ階層制御指示ではない場合（Ｓ３０００でＮｏ）、ストレージ装置３００は、処理をステップＳ３０１０に進める。【０１３９】
ステップＳ３０１０において、ストレージ装置３００は、当該ＩＯ要求６００の指示内容がページ未割当ての記憶領域に対するデータアクセスであるか否かを判定する。具体的には、ストレージ装置３００は、論理ボリューム管理テーブル３７１を参照して、当該ＩＯ要求６００に格納されている仮想アドレスに合致するエントリを取得する。ストレージ装置３００は、取得したエントリのページＩＤ３７１４が「空き」を示す場合、ページ未割当ての記憶領域に対するデータアクセスであると判定する。一方、当該ページＩＤ３７１４が「空き」を示していない場合、ストレージ装置３００は、ページ未割当ての記憶領域に対するデータアクセスでないと判定する。【０１４０】
この結果、当該ＩＯ要求６００の指示内容がページ未割当ての記憶領域に対するデータアクセスである場合（Ｓ３０１０でＹｅｓ）、ストレージ装置３００は、処理をステップＳ３０２０に進める。一方、当該ＩＯ要求６００の指示内容がページ未割当ての記憶領域に対するデータアクセスでない場合（Ｓ３０１０でＮｏ）、ストレージ装置３００は、処理をステップＳ３０４０に進める。【０１４１】
ステップＳ３０２０において、ストレージ装置３００は、当該ＩＯ要求６００の指示内容が、データ書き込みか否かを判定する。この結果、当該ＩＯ要求６００の指示内容がデータ書き込みである場合（Ｓ３０２０でＹｅｓ）、ストレージ装置３００は、当該記憶領域に対して、プールボリューム３２０からページ３２３を割当てるために、ページ割当て処理（図２０参照）を実行し（Ｓ３０３０）、処理をステップＳ３０４０に進める。一方、当該ＩＯ要求６００の指示内容がデータ書き込みでない場合（Ｓ３０２０でＮｏ）、ストレージ装置３００は、ＩＯ要求６００によるデータ読み込みの結果を０として（つまり、０を表すデータが読み出されたとして）、ホスト計算機２００にデータ０を返信し（Ｓ３０５０）、ＩＯ処理を終了する。【０１４２】
ステップＳ３０４０において、ストレージ装置３００は、この論理ボリューム管理テーブル３７１のエントリ（論理ボリュームエントリ）の仮想アドレス３７１３に格納された仮想アドレスに対して、データアクセス処理を実行する。具体的には、ストレージ装置３００は、この論理ボリュームエントリのページＩＤ３７１４のページＩＤに合致するエントリ（プール内ページ管理テーブルエントリ）を、プール内ページ管理テーブル３７２から取得する。次に、ストレージ装置３００は、取得したプール内ページ管理テーブルエントリのアクセス頻度３７２３の値に１を加算する。さらに、ストレージ装置３００は、プール内ページ管理テーブルエントリのプールボリュームＩＤ３７２４及び実アドレス３７２５に合致するエントリ（プールボリューム管理テーブルエントリ）を、プールボリューム管理テーブル３７３から取得する。さらに、ストレージ装置３００は、取得したプールボリューム管理テーブルエントリの記憶デバイスＩＤ３７３６及び物理アドレス３７３７によって識別される記憶デバイス３０８の記憶領域に対してデータアクセス処理を実行する。ストレージ装置３００は、この後、ＩＯ処理を終了する。【０１４３】
図２０は、実施例１に係るページ割当て処理のフローチャートである。【０１４４】
ページ割当て処理は、ＩＯ処理（図１９）のステップＳ３０３０において実行される処理に対応する。ページ割当て処理は、ストレージ装置３００がページ割当て制御プログラム３５２に基づいて実行する。【０１４５】
ストレージ装置３００は、ＩＯ処理のステップＳ３０１０で取得した論理ボリュームエントリのプールＩＤ３７１１のプールＩＤに合致する１又は複数のエントリ（プールボリューム管理テーブルエントリ）を、プールボリューム管理テーブル３７３から特定し、特定したプールボリューム管理テーブルエントリの階層３７３３が最上位のストレージ階層を選定する（Ｓ３１００）。【０１４６】
次に、ストレージ装置３００は、論理ボリューム３２２に対して割当て可能なプールボリューム３２０が選定したストレージ階層にあるか否かを判定する（Ｓ３１１０）。具体的には、ストレージ装置３００は、選定したストレージ階層３２４に合致するプールボリューム管理テーブルエントリを特定し、特定した各プールボリューム管理テーブルエントリの実アドレス３７３５と使用フラグ３７３８とを参照し、実アドレス３７３５の示す記憶領域のサイズがページサイズ以上であり、かつ使用フラグ３７３８が未使用であるエントリがあるか否か、すなわち、割当て可能なプールボリューム３２０があるか否か判定する。【０１４７】
この結果、割当て可能なプールボリューム３２０が存在する場合（Ｓ３１１０でＹｅｓ）には、ストレージ装置３００は、処理をステップＳ３１２０に進める一方、割当て可能なプールボリューム３２０が存在しない場合（Ｓ３１１０でＮｏ）には、処理をステップＳ３１３０に進める。【０１４８】
ステップＳ３１２０において、ストレージ装置３００は、ステップＳ３１１０で特定したプールボリューム管理テーブルエントリの使用フラグ３７３８にページ割当てに使用することを示す使用フラグ「使用中」を登録する。さらに、ストレージ装置３００は、当該プールボリューム管理テーブルエントリの情報に基づいて、プール内ページ管理テーブル３７２に、新たなエントリを追加する。具体的には、ストレージ装置３００は、プール内ページ管理テーブル３７２に新たなエントリを追加し、追加したエントリのプールＩＤ３７２１に、この論理ボリュームエントリのプールＩＤ３７１１のプールＩＤを格納する。また、ストレージ装置３００は、追加したエントリのページＩＤ３７２２に、ページ３２３を一意に識別できる識別子として、プール内ページ管理テーブル３７２の各エントリのページＩＤ３７２２に格納されていない任意の値（例えば、プール内ページ管理テーブル３７２のページＩＤ３７２２に格納されている最大の値に１を加算した値）を格納する。また、ストレージ装置３００は、追加したエントリのアクセス頻度３７２３に初期値である０を格納し、プールボリュームＩＤ３７２４にステップＳ３１１０で特定したプールボリューム管理テーブルエントリのプールボリュームＩＤ３７３２の値を格納する。さらに、ストレージ装置３００は、追加したエントリの実アドレス３７２５に、ステップＳ３１１０で特定したプールボリューム管理テーブルエントリの実アドレス３７３５の値を格納する。その後、ストレージ装置３００は、ページ割当て処理を終了する。【０１４９】
一方、ステップＳ３１３０においては、ストレージ装置３００は、選定したストレージ階層３２４よりも一つ下位のストレージ階層３２４の記憶領域を保持するプールボリューム３２０の有無を確認する。この結果、１つ下位のストレージ階層３２４の記憶領域を保持するプールボリューム３２０が存在する場合（Ｓ３１３０でＹｅｓ）、ストレージ装置３００は、処理をステップＳ３１４０に進める一方、１つ下位のストレージ階層３２４の記憶領域を保持するプールボリューム３２０が存在しない場合（Ｓ３１３０でＮｏ）、ストレージ装置３００は、処理をステップＳ３１５０に進める。【０１５０】
ステップＳ３１４０において、ストレージ装置３００は、現在のストレージ階層３２４よりも１つ下位のストレージ階層３２４を選定し、当該ストレージ階層を対象として、ステップＳ３１１０以降の処理を実行する。【０１５１】
一方、ステップＳ３１５０において、ストレージ装置３００は、ＩＯエラーをＩＯ要求発行元のホスト計算機２００に返す。なお、ストレージ装置３００は、ホスト計算機２００にＩＯエラーを返すだけでなく、メールなどで使用者にＩＯエラーを通知しても良い。その後、ストレージ装置３００は、ページ割当て処理を終了する。【０１５２】
図２１は、実施例１に係るストレージ階層制御処理のフローチャートである。【０１５３】
ストレージ階層制御処理は、ストレージ装置３００がストレージ階層制御プログラム３５３に基づいて実行される。このストレージ階層制御処理は、例えば、定期的に実行され、若しくは、管理計算機１００又はホスト計算機２００の指示により実行される。ストレージ階層制御処理は、例えば、ＩＯ処理（図１９）のステップＳ３０６０において実行される。なお、以下では、各プール３２１に対するストレージ階層制御処理を説明する。【０１５４】
まず、ストレージ装置３００は、指定されたプールＩＤに合致するエントリ（プール内ページ管理テーブルエントリ）を、プール内ページ管理テーブル３７２から取得し、取得したプール内ページ管理テーブルエントリのアクセス頻度３７２３のアクセス頻度を参照する（Ｓ８０００）。また、ストレージ装置３００は、取得したプール内ページ管理テーブルエントリのプールボリュームＩＤ３７２４に合致するエントリ（プールボリューム管理テーブルエントリ）を、プールボリューム管理テーブル３７３から取得し、取得したプールボリューム管理テーブルエントリの階層３７３３が示すストレージ階層３２４を参照する。なお、本実施例では、ストレージ装置３００は、最も低いストレージ階層３２４のプールボリュームＩＤに合致するプール内ページ管理テーブルエントリを上位エントリから順に参照する。【０１５５】
以下、説明のため、ストレージ装置３００が現時点のページ３２３の格納先ストレージ階層３２４（置き換え元のストレージ階層３２４）をソース階層とし、ソース階層のプールボリュームＩＤに合致するプール内ページ管理テーブル３７２のエントリをソースエントリとする。また、ページ３２３の置き換え先として参照するストレージ階層３２４をターゲット階層とし、ターゲット階層のプールボリュームＩＤに合致するプール内ページ管理テーブル３７２のエントリをターゲットエントリとする。【０１５６】
次に、ストレージ装置３００は、今回のストレージ階層制御処理がストレージ階層制御指示（ＩＯ要求）によるものなのかを否かを判定する（Ｓ８００５）。ここで、ストレージ階層制御指示によるものである場合（Ｓ８００５でＹｅｓ）、ストレージ装置３００は、ＩＯ要求に基づくストレージ階層制御処理（図２２参照）を実行し（Ｓ８２００）、ストレージ階層制御処理を終了する。一方、ストレージ階層制御指示によるものではない場合（Ｓ８００５でＮｏ）、ストレージ装置３００は、処理をステップＳ８０１０に進める。【０１５７】
ステップＳ８０１０において、ストレージ装置３００は、ターゲット階層（初期値は、ソース階層と同じストレージ階層３２４）に対して規定されている基準となるアクセス頻度（基準アクセス頻度、基準値）と、当該エントリのアクセス頻度とを比較する。なお、各ストレージ階層３２４に対する基準アクセス頻度は、あらかじめユーザ等により指定されている。【０１５８】
この結果、アクセス頻度が基準アクセス頻度よりも大きい場合（Ｓ８０１０でＹｅｓ）、ストレージ装置３００は、ストレージ階層３２４の異なるプールボリューム３２０間でページ移動を実行することを試みるために、処理をステップＳ８０９０に進める。一方、アクセス頻度が基準アクセス頻度よりも大きくない場合（Ｓ８０１０でＮｏ）、ストレージ装置３００は、処理をステップＳ８０１３に進める。【０１５９】
ステップＳ８０９０において、ストレージ装置３００は、ソース階層よりも１つ上位にストレージ階層３２４があるか否かを判定する。この結果、ソース階層よりも１つ上位のストレージ階層３２４がある場合（Ｓ８０９０でＹｅｓ）、ストレージ装置３００は、ターゲット階層を現在のストレージ階層よりも１つ上のストレージ階層３２４に選定し（Ｓ８０７０）、処理をステップＳ８０１０に進める。【０１６０】
ストレージ装置３００は、上述の処理（Ｓ８０１０、Ｓ８０９０、Ｓ８０７０等）を繰り返し行うことにより、エントリのアクセス頻度が、基準値よりも大きくならないターゲット階層を特定することができる。なお、ソース階層の１つに上位にストレージ階層３２４がないと判定された場合（Ｓ８０９０でＮｏ）、ストレージ装置３００は、対応するページ３２３に対し、ページ移動を行わずに（Ｓ８１２０）、ステップＳ８０２５に処理を進める。このように、ソース階層の上位にストレージ階層３２４が無い場合、すなわち、ソース階層が最も高いストレージ階層３２４である場合、最も高いストレージ階層３２４を使い続けるために、ストレージ装置３００は、ソースエントリのページ移動を行わず、そのまま処理を継続する。【０１６１】
一方、ステップＳ８０１０において、ソースエントリのアクセス頻度３７２３のアクセス頻度が基準値以下である場合（Ｓ８０１０でＮｏ）、ストレージ装置３００は、ソース階層とターゲット階層とが同一か否かを判定する（Ｓ８０１３）。ソース階層とターゲット階層が同一であると判定された場合（Ｓ８０１３でＹｅｓ）、ストレージ装置３００は、ソースエントリが示すページ３２３は現状割当てられているストレージ階層３２４の基準値を満たしており、ソースエントリのページ移動は必要無いと判断し、処理をステップＳ８０２５に進める。【０１６２】
一方、ソース階層とターゲット階層とが同一でないと判定された場合（Ｓ８０１３でＮｏ）、ストレージ装置３００は、ソースエントリが示すページ３２３は現状割当てられているストレージ階層３２４の基準値を満たしておらず、ソースエントリのページ移動が必要であると判断し、ターゲット階層のプールボリューム３２０に対応するプールボリューム管理テーブル３７３のエントリの使用フラグ３７３８を参照し、ターゲット階層に空きがあるか否か、すなわち、ターゲット階層にページ割当てが可能なプールボリューム３２０が存在するか否かを確認する（Ｓ８０１５）。【０１６３】
この結果、ターゲット階層に空きが無い場合（Ｓ８０１５でＮｏ）、ストレージ装置３００は、ターゲット階層にソースエントリのアクセス頻度３７２３のアクセス頻度よりも低いアクセス頻度のエントリであって、かつ対応するページ３２３のロックフラグが、ロック中以外であるか否かを判定する（Ｓ８１００）。【０１６４】
この結果、ターゲット階層にソースエントリのアクセス頻度３７２３の値よりも低いアクセス頻度のエントリが無い、又は、ターゲット階層にソースエントリのアクセス頻度３７２３よりも低いアクセス頻度のエントリはあるものの、当該エントリのページＩＤが示す論理ボリューム管理テーブル３７１のエントリのロックフラグ３７１５がページロック制御中（ロック中）のものしか無い場合（Ｓ８１００でＮｏ）、ストレージ装置３００は、ターゲット階層よりも１つ下位のストレージ階層３２４をターゲット階層に選定し（Ｓ８１０７）、処理をステップＳ８０１３に進める。【０１６５】
一方、ターゲット階層にソースエントリのアクセス頻度３７２３の参照頻度よりも低いアクセス頻度のエントリがあり、かつ、当該エントリのページＩＤが示す論理ボリューム管理テーブル３７１のエントリのロックフラグ３７１５がページロック制御中でない（ロック解除）場合（Ｓ８１００でＹｅｓ）、ストレージ装置３００は、ソースエントリのページ３２３とターゲットエントリのページ３２３との間でページ入れ替え、すなわち、ソースエントリのページ３２３のデータを、ターゲットエントリのページ３２３が格納されていたプールボリューム３２０に格納する一方、ターゲットエントリのページ３２３のデータを、ソースエントリのページ３２３が格納されていたプールボリューム３２０に格納する（Ｓ８１１０）。【０１６６】
一方、ステップＳ８０１５において、ターゲット階層へのページ移動が可能な空きのあるプールボリューム３２０が存在する場合（Ｓ８０１５でＹｅｓ）、ストレージ装置３００は、ターゲット階層の空きが存在するプールボリューム３２０に対してページ移動を行う、すなわち、対応するページ３２３のデータをプールボリューム３２０に対して格納する（Ｓ８０２０）。【０１６７】
ストレージ装置３００は、ステップＳ８０２０、ステップＳ８１１０、又は、ステップＳ８１２０を実行した後、ソースエントリを次のエントリに変更する（Ｓ８０２５）。【０１６８】
次に、ストレージ装置３００は、プール３２１内のソース階層の全ソースエントリに対して判定処理を実行したかを確認し（Ｓ８０３０）、全ソースエントリに対して判定処理をしておらず未処理のエントリがある場合（Ｓ８０３０でＮｏ）、ストレージ装置３００は、処理をステップＳ８０１０に進めて、他のエントリに対する判定処理を実行する。一方、全ソースエントリに対して判定処理をしたことによりソース階層に未処理のエントリが無い場合（Ｓ８０３０でＹｅｓ）、ストレージ装置３００は、ソース階層よりも１つ上位のストレージ階層３２４をソース階層に設定し（Ｓ８０４０）、当該ソース階層が、プール３２１に登録された最上位のストレージ階層３２４を上回ったか否かを判定する（Ｓ８０５０）。【０１６９】
この結果、ソース階層が最も高い階層を上回っていない、すなわち、ソース階層よりも１つ上位のストレージ階層３２４が存在する場合（Ｓ８０５０でＮｏ）、ストレージ装置３００は、処理をステップＳ８０１０に進める。一方、設定されたストレージ階層３２４が最も高いストレージ階層３２４を上回っている、すなわち、ソース階層よりも１階層高いストレージ階層３２４が存在しない場合（Ｓ８０５０でＹｅｓ）、ストレージ装置３００は、プール３２１内の全ストレージ階層３２４のプール内ページ管理テーブル３７２におけるアクセス頻度３７２３のアクセス頻度を０にリセットして（Ｓ８１３０）、ストレージ階層制御処理を終了する。【０１７０】
図２２は、実施例１に係るＩＯ要求に基づくストレージ階層制御処理のフローチャートである。【０１７１】
ＩＯ要求に基づくストレージ階層制御処理は、ストレージ階層制御処理（図２１）のステップＳ８２００で行われる処理に対応する。ＩＯ要求に基づくストレージ階層制御処理は、管理計算機１００又はホスト計算機２００の指示によりストレージ装置３００においてストレージ階層制御処理が実行された場合に実行される。【０１７２】
ストレージ階層制御処理は定期的に実行されることがある処理であるのに対し、ＩＯ要求に基づくストレージ階層制御処理は、管理計算機１００又はホスト計算機２００によるＩＯ要求の指示によって実行される処理である。以下には、ＩＯ要求に基づくストレージ階層制御処理がページ３２３単位で実行される例を挙げて説明するが、ＩＯ要求のオプション領域に指定されたアドレス範囲に複数のページ３２３が含まれる場合、ストレージ装置３００は、ページ３２３の個数分、本処理を繰り返し実行するようにしても良い。以下には、各プール３２１におけるＩＯ要求６００に基づくストレージ階層制御処理を説明する。【０１７３】
まず、ストレージ装置３００は、ＩＯ要求６００により指定された指示内容６０２中の指示内容がページロック開始又はページロック解除であるか否かを判定する（Ｓ８２１０）。ここで、指示内容がページロック開始であるＩＯ要求６００は、例えば、ジョブ２２５の開始時に生成され、指示内容がページロック解除であるＩＯ要求６００は、例えば、ジョブ２２５の終了時に生成される。指示内容がページロック開始又はページロック解除の場合（Ｓ８２１０でＹｅｓ）、ストレージ装置３００は、ＩＯ要求６００の指示内容がページロック開始か否かを判定する（Ｓ８２１２）。指示内容がページロック開始の場合（Ｓ８２１２でＹｅｓ）、ストレージ装置３００は、ＩＯ要求６００の宛先６０１に指定されたページ３２３をページロックする（Ｓ８２１６）。具体的には、ストレージ装置３００は、宛先６０１に指定された論理ボリューム３２２の仮想アドレスに合致する論理ボリューム管理テーブル３７１のエントリを特定し、当該エントリのロックフラグ３７１５にページロック制御中であることを示すフラグ（ロック中）を登録する。これにより、当該ページ３２３は、アクセス頻度に基づいたストレージ階層制御処理（図２１のステップＳ８０１０以降の処理）においては、ストレージ階層３２４が移動されない。なお、ページロック制御中の状態は、ページロック解除がされるまで維持されることとなる。その後、ストレージ装置３００は、ＩＯ要求に基づくストレージ階層制御処理を終了する。【０１７４】
一方、指示内容６０２がページロック解除の場合（Ｓ８２１２でＮｏ）、ストレージ装置３００は、ＩＯ要求６００の宛先６０１に指定されたページ３２３のページロックを解放する（Ｓ８２１８）。具体的には、ストレージ装置３００は、宛先６０１に指定された論理ボリューム３２２の仮想アドレスに合致する論理ボリューム管理テーブル３７１のエントリを特定し、当該エントリのロックフラグ３７１５に格納されたページロック制御中であることを示すフラグを、ページロック解除を示すフラグ（ロック解除）に変更する。これにより、当該ページ３２３は、アクセス頻度に基づいたストレージ階層制御処理（図２１のステップＳ８０１０以降の処理）においては、ストレージ階層３２４が移動される可能性がある。その後、ストレージ装置３００は、ＩＯ要求に基づくストレージ階層制御処理を終了する。【０１７５】
一方、ステップＳ８２１０の判定の結果、指示内容が、ページロック開始でも、ページロック解除でもない場合（Ｓ８２１０でＮｏ）、ストレージ装置３００は、ＩＯ要求６００の指示内容がページ移動であるか否かを判定する（Ｓ８２２０）。【０１７６】
この結果、指示内容がページ移動である場合（Ｓ８２２０でＹｅｓ）、ストレージ装置３００は、ＩＯ要求６００に指定された移動先のストレージ階層３２４に移動対象のページ３２３を割当てることができる空きプールボリューム３２０があるか否かを判定する（Ｓ８２２１）。ここで、ＩＯ要求６００に指定された移動先のストレージ階層３２４の情報を取得するために、ストレージ装置３００は、ＩＯ要求６００に指定されたページのアドレスに対応する論理ボリューム管理テーブル３７１のエントリを参照し、当該エントリのページＩＤ３７１４のページＩＤに基づいて、プール内ページ管理テーブル３７２のエントリを参照する。さらに、ストレージ装置３００は、当該エントリのプールボリュームＩＤに基づいて、プールボリューム管理テーブル３７３のエントリを参照し、当該エントリの階層３７３３に移動先のストレージ階層３２４が格納されているエントリの使用フラグ３７３８の値が未使用であるエントリを特定することにより、空きプールボリュームがあるか否かを判定する。【０１７７】
この結果、割当て可能なプールボリューム３２０が存在する場合（Ｓ８２２１でＹｅｓ）、ストレージ装置３００は、ＩＯ要求６００で指定されたページ３２３が示す仮想アドレスのデータについて現在のストレージ階層３２４から指定されたストレージ階層３２４へページ移動を行う（Ｓ８２２９）。ページ移動後、ストレージ装置３００は、ＩＯ要求に基づくストレージ階層制御処理を終了する。【０１７８】
一方、割当て可能なプールボリューム３２０が存在しない場合（Ｓ８２２１でＮｏ）、ストレージ装置３００は、ＩＯ要求６００で指定されたページ３２３と、当該ページ３２３の移動先のストレージ階層３２４に存在するページ３２３との入れ替えを実施するための処理を行う。具体的には、ストレージ装置３００は、次の処理を行う。【０１７９】
まず、ストレージ装置３００は、ＩＯ要求６００で指定されたページ移動が上位のストレージ階層３２４へのページ移動であるか否かを判定する（Ｓ８２２２）。【０１８０】
この結果、上位のストレージ階層３２４へのページ移動である場合（Ｓ８２２２でＹｅｓ）、ストレージ装置３００は、ページ移動先である上位のストレージ階層３２４から最もアクセス頻度の低いページ３２３を選出する（Ｓ８２２６）。これは、ページ入れ替えにより、選出したページ３２３は、現在割当てられているストレージ階層３２４よりも下位のストレージ階層３２４に移動となる。このため、移動先の下位のストレージ階層３２４が示す低い入出力性能でも十分にそのストレージ階層３２４を活用できるようにすることを意図し、アクセス頻度の低いページ３２３を選出する。【０１８１】
一方、上位のストレージ階層３２４へのページ移動でない場合（Ｓ８２２２でＮｏ）、ストレージ装置３００は、ページ移動先である下位のストレージ階層３２４から最もアクセス頻度の高いページ３２３を選出する（Ｓ８２２４）。これは、ページ入れ替えにより、選出したページ３２３は、現在割当てられているストレージ階層３２４よりも上位のストレージ階層３２４に移動となる。このため、移動先である下位のストレージ階層３２４の高い入出力性能をアクセス頻度の高いページ３２３によって、有効に活用する狙いがある。【０１８２】
次に、ストレージ装置３００は、ＩＯ要求６００で指定されたページ３２３と、ステップＳ８２２４又はＳ８２２６で選出したページ３２３との記憶領域を入れ替える（Ｓ８２２８）。入れ替え完了後、ストレージ装置３００は、ＩＯ要求に基づくストレージ階層制御処理を終了する。【０１８３】
一方、ステップＳ８２２０において、ＩＯ要求６００の指示内容がページ移動ではないと判定した場合（Ｓ８２２０でＮｏ）、ストレージ装置３００は、ＩＯ要求６００のストレージ階層制御指示がストレージ階層３２４に関する情報取得であるとして、ＩＯ要求６００が指定した論理ボリューム３２２におけるストレージ階層３２４の割当て情報を取得し、ＩＯ要求６００の要求元に返送する（Ｓ８２３０）。具体的には、ストレージ装置３００は、ＩＯ要求６００の宛先６０１で指定される論理ボリューム３２２が指す論理ボリューム管理テーブル３７１のエントリを参照し、仮想アドレスを取得する。次に、ストレージ装置３００は、当該エントリのプールＩＤ及びページＩＤによって識別されるプール内ページ管理テーブル３７２のエントリを参照し、プールボリュームＩＤを取得する。さらに、ストレージ装置３００は、プールＩＤ及びプールボリュームＩＤによって識別されるプールボリューム管理テーブル３７３のエントリを参照し、ストレージ階層３２４を取得する。そして、ストレージ装置３００は、取得した仮想アドレス及びストレージ階層３２４をＩＯ要求６００の要求元に返送する。その後、ストレージ装置３００は、ＩＯ要求に基づくストレージ階層制御処理を終了する。【０１８４】
以上のように、ＩＯ要求に基づくストレージ階層制御処理をストレージ装置３００で実施することで、管理計算機１００又はホスト計算機２００の指示に基づいて、ストレージ装置３００上のストレージ階層３２４をページ３２３単位で制御することが可能となる。【０１８５】
次に、ホスト計算機２００が行う処理として、準備段階、ストレージ階層３２４を備えたストレージ装置３００の導入段階、及びストレージ階層３２４を備えたストレージ装置３００の運用段階の３段階のそれぞれにおける処理を説明する。【０１８６】
まず、準備段階におけるホスト計算機２００の処理を説明する。【０１８７】
図２３は、実施例１に係るホスト計算機２００の準備段階の準備処理のフローチャートである。【０１８８】
準備処理は、ホスト計算機２００のプロセッサ２０２が、ユーザ入力情報受付プログラム２５１、ジョブ実行情報取得プログラム２５２、及びストレージ階層情報取得プログラム２５３を実行することにより、実行される。【０１８９】
ホスト計算機２００は、ユーザ入力情報受付プログラム２５１に基づいて、計算機システム１０上に存在するストレージ装置３００を検出する（Ｓ２０１０）。ストレージ装置３００を検出するための情報としては、例えば、ホスト計算機２００のユーザによりＩＯ部２０５により入力されるストレージ装置３００のＩＰアドレスを使用することができる。ＩＰアドレスの入力方法としては、例えば、１９２．１６８．１．１〜１９２．１６８．１．５０のように、ＩＰアドレスの範囲を入力するようにしても良いし、特定のＩＰアドレスを入力するようにしても良い。【０１９０】
ホスト計算機２００は、ストレージ装置３００の構成情報取得用のＩＯ要求６００を作成し、作成されたＩＯ要求６００を、入力されたＩＰアドレス宛に送信する。構成情報取得用のＩＯ要求６００を受信した場合、ストレージ装置３００は、メモリ３０１に記憶されている論理ボリューム管理テーブル３７１及びストレージ基本情報３７０を参照し、それらに格納されている各種情報や記憶デバイス３０８が保持する情報をまとめてホスト計算機２００に返送する。ホスト計算機２００は、返送のあったストレージ装置３００を、ストレージ階層制御の管理対象のストレージ装置３００であると判定する。【０１９１】
次に、ホスト計算機２００は、ジョブ実行情報取得プログラム２５２に基づいて、ＯＳ２２０からジョブ２２５に関する情報を取得し、データ構成管理テーブル２７１、ジョブ性能情報管理テーブル２７４、及びジョブステップ実行時間管理テーブル２７５を作成する（Ｓ２０２０）。具体的には、ホスト計算機２００は、ＯＳ２２０からデータセット名、格納デバイス名、仮想アドレス、ストレージＩＤ、及び論理ボリュームＩＤを取得し、取得した情報を、それぞれデータセット名２７１１、格納デバイス名２７１２、仮想アドレス２７１３、ストレージＩＤ２７１４、及び論理ボリュームＩＤ２７１５に格納したエントリを作成して、データ構成管理テーブル２７１に格納する。また、ホスト計算機２００は、ＯＳ２２０からジョブ名、ジョブ２２５の実行時間の要件、及びジョブ２２５の実行時間の実測値を取得し、取得した情報を、それぞれジョブ名２７４１、実行時間の要件２７４２、及び実行時間の実測値２７４３に格納したエントリを作成してジョブ性能情報管理テーブル２７４に格納する。さらに、ホスト計算機２００は、ＯＳ２２０からジョブ２２５の名称、当該ジョブ２２５を構成するジョブステップ２２６の名称、当該ジョブステップ２２６の実行時間の実測値、及び当該ジョブステップ２２６が使用するデータセット３３１の名称を取得し、取得した情報を、それぞれジョブ名２７５１、ジョブステップ名２７５２、実行時間の実測値２７５３、及びデータセット名２７５４に格納したエントリを作成して、ジョブステップ実行時間管理テーブル２７５に格納する。【０１９２】
次に、ホスト計算機２００は、ストレージ階層情報取得プログラム２５３に基づいて、ステップＳ２０１０で特定したストレージ装置３００に対して、ストレージ階層３２４の情報取得用のＩＯ要求６００を作成し、ＩＯ要求６００を当該ストレージ装置３００に送信する。ストレージ階層３２４の情報取得用のＩＯ要求６００を受信した場合、ストレージ装置３００は、メモリ３０１に記憶されている論理ボリューム管理テーブル３７１、プール内ページ管理テーブル３７２、及びプールボリューム管理テーブル３７３を参照し、ページ３２３及びストレージ階層３２４の使用状況に関する情報をホスト計算機２００に返送する。ホスト計算機２００は、ストレージ装置３００からの返送に含まれる情報に基づいて、ページ構成管理テーブル２７２及びストレージ階層情報管理テーブル２７３を作成する（Ｓ２０３０）。【０１９３】
具体的には、ホスト計算機２００は、ＩＯ要求６００の宛先６０１に指定したストレージＩＤをページ構成管理テーブル２７２のストレージＩＤ２７２１に格納する。また、ホスト計算機２００は、論理ボリューム管理テーブル３７１の論理ボリュームＩＤ３７１２の論理ボリュームＩＤ（実際には、ストレージ装置３００からの返送に含まれる情報中の対応する内容）を、論理ボリュームＩＤ２７２２に格納し、ページＩＤ３７１４のページＩＤをページＩＤ２７２３に格納し、仮想アドレス３７１３の仮想アドレスを仮想アドレス２７２４に格納する。また、ホスト計算機２００は、ＩＯ要求６００の宛先６０１に指定したストレージＩＤをストレージ階層情報管理テーブル２７３のストレージＩＤ２７３１に格納する。また、ホスト計算機２００は、プールボリューム管理テーブル３７３の階層３７３３に存在する値を階層２７３２に格納し、ＩＯ処理時間３７３４に存在する値をＩＯ処理時間２７３３に格納する。さらに、ホスト計算機２００は、階層２７３２に合致するプールボリューム管理テーブルエントリの実アドレス３７３５が示す記憶領域のサイズの合計値を全体容量２７３４に格納し、当該プールボリューム管理テーブルエントリの容量のうち、ページロック済みの容量の合計値をページロック済み容量２７３５に格納する。【０１９４】
次に、ホスト計算機２００は、データ構成管理テーブル２７１、ページ構成管理テーブル２７２、及びジョブステップ実行時間管理テーブル２７５を参照し、ジョブステップ実行時間管理テーブル２７５のデータセット名２７５４が示すデータセット３３１を格納しているページ３２３を特定する。そして、ホスト計算機２００は、プール内ページ管理テーブル３７２及びプールボリューム管理テーブル３７３を参照し、特定したページ３２３の格納先ストレージ階層３２４を特定する。ホスト計算機２００は、特定した格納先ストレージ階層３２４をジョブステップ実行時間管理テーブル２７５の格納先ストレージ階層２７５５に格納する。【０１９５】
以上、準備段階におけるホスト計算機２００の処理を説明した。【０１９６】
次に、ストレージ階層３２４を備えたストレージ装置３００の導入段階におけるホスト計算機２００の処理を説明する。ストレージ装置３００の導入段階においては、ホスト計算機２００は、ストレージ階層の容量見積もり処理を実行する。【０１９７】
図２４は、実施例１に係るストレージ階層の容量見積もり処理のフローチャートである。【０１９８】
まず、ホスト計算機２００は、ユーザ入力情報受付プログラム２５１に基づいて、ＩＯ部２０５を介して、ユーザから見積もり対象のジョブ２２５の名称を取得する（Ｓ２１１０）。ここで、ＩＯ部２０５を介してのユーザからの入力の受付は、例えば、図２７に示す画面２４０によってなされる。画面２４０は、ユーザからの入力を受け付け、ホスト計算機２００が実行するストレージ階層の容量見積もり処理の結果を表示するための画面である。画面２４０には、ユーザから見積もり対象のジョブ名の入力を受け付けるジョブ名入力領域２４０ａが含まれる。ジョブ名入力領域２４０ａには、１又は複数のジョブ名を入力することができるようになっている。また、画面２４０には、ユーザからジョブ名入力領域２４０ａに入力されたジョブ名のジョブについてのストレージ階層の容量見積もり処理の実行指示を受け付ける見積もり指示ボタン２４０ｂが含まれる。【０１９９】
次に、ホスト計算機２００は、性能過不足データセット特定プログラム２５４に基づいて、性能過剰のジョブステップ特定処理（図２５参照）を実行し、ステップＳ２１１０で取得した１又は複数のジョブ名が示すジョブ２２５について、性能過剰のジョブステップ２２６を特定する（Ｓ２１２０）。【０２００】
さらに、ホスト計算機２００は、性能過剰のジョブステップの組み合わせ決定処理（図２６参照）を実行し、ステップＳ２１２０で特定した性能過剰のジョブステップ２２６から下位のストレージ階層３２４に移動できる性能過剰のジョブステップ２２６の組み合わせを決定する（Ｓ２１３０）。【０２０１】
そして、ホスト計算機２００は、ステップＳ２１１０で取得した全てのジョブ２２５について、性能過剰のジョブステップ２２６の組み合わせを特定したか否かを判定する（Ｓ２１４０）。全てのジョブについて、性能過剰のジョブステップ２２６の組み合わせを特定した場合（Ｓ２１４０でＹｅｓ）、ホスト計算機２００は、処理をステップＳ２１５０に進める。一方、全てのジョブ２２５について、性能過剰のジョブステップ２２６の組み合わせを特定していない場合（Ｓ２１４０でＮｏ）、ホスト計算機２００は、処理をステップＳ２１２０に進める。【０２０２】
ステップＳ２１５０では、ホスト計算機２００は、ステップＳ２１３０で決定した１又は複数の性能過剰のジョブステップ２２６が使用するデータセット３３１を下位のストレージ階層３２４に格納する場合における各ストレージ階層３２４に必要な容量を算出する。具体的には、ステップＳ２１１０で取得したジョブ２２５が使用するデータセット３３１の総サイズから性能過剰のデータセット３３１の総サイズを差し引いた値が上位のストレージ階層３２４に必要な容量となる。一方、性能過剰のデータセット３３１の総サイズが下位のストレージ階層３２４に必要な容量となる。このように、ジョブ２２５が使用するデータセット３３１を格納するために必要な各ストレージ階層３２４の容量を算出する。そして、ホスト計算機２００は、ＩＯ部２５０を介して、算出した各ストレージ階層３２４の容量の情報を表示する。【０２０３】
ここで、ＩＯ部２０５を介しての情報の表示は、例えば、図２７に示す画面２４０によって行われる。画面２４０には、ホスト計算機２００が算出した各ストレージ階層３２４の容量の見積もりが表示される見積もり表示領域２４０ｃが含まれる。図２７に示すように、見積もり表示領域２４０ｃに表示させる各ストレージ階層３２４の容量の見積もりは、１つでも良いし、複数あっても良い。さらに、ジョブ２２５の実行時間の増加量を抑えることを重視した見積もりや上位のストレージ階層３２４の容量をできる限り削減することを重視した見積もりを表示するようにしても良い。この画面２４０には、１又は複数のストレージ階層３２４の容量見積もりについて、各ジョブ２２５の実行時間の変化や各データセット３３１の格納先のストレージ階層３２４の詳細を表示させるための詳細表示ボタン２４０ｄも用意されている。この詳細表示ボタン２４０ｄが押下されると、各ジョブ２２５の実行時間の変化や各データセット３３１の格納先のストレージ階層３２４に関する情報が表示される。【０２０４】
図２５は、実施例１に係る性能過剰のジョブステップ特定処理のフローチャートである。【０２０５】
性能過剰のジョブステップ特定処理は、ストレージ階層の容量見積もり処理（図２４参照）のステップＳ２１２０で行われる処理に対応する。性能過剰のジョブステップ特定処理は、ユーザの指示により管理計算機１００またはホスト計算機２００がストレージ階層の容量見積もり処理を実行する場合に実行される。【０２０６】
まず、ホスト計算機２００は、性能過剰のジョブステップ２２６を特定する対象のジョブ２２５について、ジョブ２２５の実行時間増加の許容量を算出する（Ｓ２２１０）。具体的には、ホスト計算機２００は、ユーザからの入力によって取得したジョブ名に合致するエントリを、ジョブ性能情報管理テーブル２７４から取得する。そして、ホスト計算機２００は、取得したエントリの実行時間の要件２７４２から実行時間の実測値２７４３を減算することで、ジョブ名２７４１が示すジョブ２２５の実行時間増加の許容量を算出する。【０２０７】
次に、ホスト計算機２００は、ジョブ２２５を構成するジョブステップ２２６の実行時間と、ジョブステップ２２６で使用するデータセット３３１のデータセット名とを取得する（Ｓ２２２０）。具体的には、ホスト計算機２００は、ジョブ性能情報管理テーブル２７４のジョブ名２７４１のジョブ名に合致するエントリを、ジョブステップ実行時間管理テーブル２７５から取得する。そして、ホスト計算機２００は、取得したエントリの実行時間の実測値２７５３を参照して、ジョブステップ名２７５２のジョブステップ名が示すジョブステップ２２６の実行時間の実測値を取得する。また、ホスト計算機２００は、データセット名２７５４を参照することで、ジョブステップ名２７５２のジョブステップ名が示すジョブステップ２２６が使用するデータセット３３１のデータセット名を特定する。【０２０８】
そして、ホスト計算機２００は、ジョブステップ２２６が使用する全てのデータセット３３１を下位のストレージ階層３２４に移動した場合における当該ジョブステップ２２６の実行時間の最大増加量（実行性能の予測変化量）を算出する（Ｓ２２４０）。具体的には、まず、ホスト計算機２００は、現在の格納先のストレージ階層３２４から下位のストレージ階層３２４にデータセット３３１を移動した場合におけるデータアクセス時間の最大増加率を算出する。このために、ホスト計算機２００は、各データセット３３１について、ジョブステップ実行時間管理テーブル２７５とストレージ階層情報管理テーブル２７３とを参照して、ストレージ階層情報管理テーブル２７３からデータセット３３１の格納先ストレージ階層２７５５のストレージ階層に対応するストレージ階層が格納されている階層２７３２を有するエントリを取得する。そして、ホスト計算機２００は、取得したエントリのＩＯ処理時間２７３３のＩＯ処理時間で、当該階層２７３２のストレージ階層３２４より下位のストレージ階層３２４を示すエントリのＩＯ処理時間２７３３を除算して、データセット３３１を下位のストレージ階層に移動した場合におけるデータアクセスの処理時間の増加率を算出する。ただし、データセット３３１の格納先ストレージ階層２７５５のストレージ階層が最下位のストレージ階層である場合には、当該データセット３３１に関してデータアクセスの処理時間の増加率を算出しない。ホスト計算機２００は、上記のような処理をジョブステップ２２６が使用する全てのデータセット３３１について実行し、データアクセス時間の最大増加率を算出する。これは、ジョブステップ２２６が使用する全てのデータセット３３１を下位のストレージ階層３２４に移動する場合におけるジョブステップ２２６の実行時間の最大増加量を算出するために、データアクセス時間の最大増加率を特定することを意図している。そして、ホスト計算機２００は、特定したデータアクセス時間の最大増加率と、ジョブステップ実行時間管理テーブル２７５の実行時間の実測値２７５３と、を積算して、当該ジョブステップ２２６の実行時間の最大増加量を算出する。このようにして実行時間の最大増加量を算出するのは、ジョブステップ２２６の実行時間に占めるデータアクセス時間の割合が最大のとき、すなわちジョブステップ２２６の実行時間とデータアクセス時間とが等しいとき、データセット３３１を下位のストレージ階層３２４に移動させた場合においてジョブステップ２２６の実行時間が最も増加するためである。【０２０９】
次に、ホスト計算機２００は、ステップＳ２２１０で算出したジョブ２２５の実行時間増加の許容量と、ステップＳ２２４０で算出したジョブステップ２２６の実行時間の最大増加量とを比較する（Ｓ２２５０）。実行時間増加の許容量が実行時間の最大増加量よりも少ない場合（Ｓ２２５０でＹｅｓ）、ホスト計算機２００は、当該ジョブステップ２２６が使用するデータセット３３１を性能過剰でないと判定して（Ｓ２２６０）、処理をステップＳ２２７０に進める。一方、実行時間増加の許容量が実行時間の最大増加量以上の場合（Ｓ２２５０でＮｏ）、ホスト計算機２００は、当該ジョブステップ２２６が使用するデータセット３３１が性能過剰の可能性があると判定して（Ｓ２２６５）、処理をステップＳ２２７０に進める。【０２１０】
ステップＳ２２７０において、ホスト計算機２００は、全てのジョブステップ２２６を判定したか否かを特定する。全てのジョブステップ２２６を判定した場合（Ｓ２２７０でＹｅｓ）、ホスト計算機２００は、処理をステップＳ２２８０に進める。一方、全てのジョブステップ２２６を判定していない場合（Ｓ２２７０でＮｏ）、ホスト計算機２００は、処理をステップＳ２２２０に進める。【０２１１】
ステップＳ２２８０において、ホスト計算機２００は、各ジョブステップ２２６が使用するデータセット３３１について、性能過剰でないと判定されたデータセット３３１の有無を特定し、性能過剰の可能性があるデータセット３３１のみを使用するジョブステップ２２６を性能過剰と判定し、性能過剰のジョブステップ特定処理を終了する。【０２１２】
図２６は、実施例１に係る性能過剰のジョブステップの組み合わせ決定処理を示すフローチャートである。【０２１３】
性能過剰のジョブステップの組み合わせ決定処理は、ストレージ階層の容量見積もり処理（図２４参照）のステップＳ２１３０で行われる処理に対応する。性能過剰のジョブステップの組み合わせ決定処理は、ユーザの指示により管理計算機１００またはホスト計算機２００がストレージ階層の容量見積もり処理を実行する場合に実行される。【０２１４】
まず、ホスト計算機２００は、性能過剰のジョブステップ２２６を特定する対象のジョブ２２５について、図２５のステップＳ２２１０と同じ処理を行い、ジョブ２２５の実行時間増加の許容量を算出する（Ｓ２３１０）。【０２１５】
次に、ホスト計算機２００は、変数である当該ジョブ２２５の実行時間増加量を０に初期化する（Ｓ２３２０）。【０２１６】
そして、ホスト計算機２００は、性能過剰のジョブステップ特定処理（図２５参照）のステップＳ２２８０で性能過剰と判定されているジョブステップ２２６から、下位のストレージ階層３２４に移動できるデータセット３３１の所定のデータサイズ当たりに対する実行時間の最大増加量（単位予測変化量）が最も少ないジョブステップ２２６を選出する（Ｓ２３３０）。これは、移動するデータセット３３１の所定のデータサイズ当たりに対する実行時間の最大増加量が少ないジョブステップ２２６から組み合わせに選出することを意図している。これにより、ジョブ２２５の実行時間増加の許容量の範囲内で、下位のストレージ階層３２４に移動するデータセット３３１の総サイズをできる限り大きくすることができる。ここで、データセット３３１の所定のデータサイズ当たりに対する実行時間の最大増加量は、データセット３３１に対する実行時間の最大増加量を、そのデータセット３３１に対応するデータ構成管理テーブル２７１の仮想アドレス２７１３の仮想アドレス範囲に対応するデータ量で除算することにより得られる。【０２１７】
次に、ホスト計算機２００は、選出したジョブステップ２２６の実行時間の最大増加量をジョブ２２５の実行時間増加量に加算して（Ｓ２３５０）、ジョブ２２５の実行時間増加量と実行時間増加の許容量を比較する（Ｓ２３６０）。ジョブ２２５の実行時間増加量が、実行時間増加の許容量以上の場合（Ｓ２３６０でＹｅｓ）、ホスト計算機２００は、これ以上多くのデータセット３３１を下位のストレージ階層３２４に移動すると、ジョブ２２５の性能要件を満たせなくなると判断し、処理をステップＳ２３９０に進める。【０２１８】
一方、ジョブ２２５の実行時間増加量が実行時間増加の許容量未満の場合（Ｓ２３６０でＮｏ）、ホスト計算機２００は、ステップＳ２３３０で選出したジョブステップ２２６を性能過剰のジョブステップ２２６の組み合わせ候補に追加する（Ｓ２３７０）。次に、ホスト計算機２００は、ジョブの全てのジョブステップ２２６を選出したか否かを特定する（ステップＳ２３８０）。全てのジョブステップ２２６を選出した場合（Ｓ２３８０でＹｅｓ）、ホスト計算機２００は、ステップＳ２３９０に処理を進める。一方、全てのジョブステップ２２６を選出していない場合（Ｓ２３８０でＮｏ）、ホスト計算機２００は、処理をステップＳ２３３０に進める。【０２１９】
ステップＳ２３９０では、ホスト計算機２００は、ステップＳ２３７０で追加したジョブステップ２２６の組み合わせ候補の全体及びその部分集合のそれぞれを性能過剰のジョブステップ２２６の組み合わせに決定して、性能過剰のジョブステップの組み合わせ決定処理を終了する。これにより、ページを移動させることのできる複数のジョブステップ２２６の組み合わせを適切に特定することができる。【０２２０】
以上、ストレージ階層３２４を備えたストレージ装置３００の導入段階におけるホスト計算機２００の処理を説明した。【０２２１】
最後に、ストレージ階層３２４を備えたストレージ装置３００の運用段階におけるホスト計算機２００の処理を説明する。【０２２２】
図２８は、実施例１に係るホスト計算機の操作画面の一例を示す第２の図である。図２８は、ストレージ階層３２４を備えたストレージ装置３００の運用段階におけるホスト計算機２００の操作画面の一例を示している。
運用段階において、ホスト計算機２００は、ユーザ入力情報受付プログラム２５１に基づいて、ＩＯ部２０５を介して、ユーザから性能過剰のデータセット３３１を特定するためにジョブ２２５の名称を取得する。これは、例えば、図２８に示す画面２４１を用いて行われる。画面２４１は、ユーザからの入力を受け付け、ホスト計算機２００が特定した性能過剰のデータセット３３１の情報を表示するための画面である。画面２４１には、ユーザから処理対象とするジョブ名の入力を受け付けるジョブ名入力領域２４１ａが含まれる。ジョブ名入力領域２４１ａには、ジョブ名を入力することができるようになっている。また、画面２４１には、ユーザからジョブ名入力領域２４１ａに入力されたジョブ名のジョブについてのストレージ階層を移動するデータセットの組み合わせを探す処理の実行指示を受け付ける探索指示ボタン２４１ｂが含まれる。【０２２３】
次に、ホスト計算機２００は、性能過不足データセット特定プログラム２５４に基づいて、ユーザの入力から取得したジョブ名が示すジョブ２２５に対して、性能過剰のジョブステップ特定処理（図２５参照）を実行する。さらに、ホスト計算機２００は、性能過剰のジョブステップ特定処理で特定した性能過剰のジョブステップ２２６に対して、性能過剰のジョブステップの組み合わせ決定処理（図２６参照）を実行する。【０２２４】
そして、ホスト計算機２００は、性能過剰のジョブステップの組み合わせ決定処理で性能過剰のジョブステップ２２６の組み合わせとして決定されたジョブステップ２２６の組が使用するデータセット３３１を下位のストレージ階層３２４に移動できる性能過剰のデータセット３３１の組み合わせとして、ＩＯ部２０５を介してユーザに表示する。移動できる性能過剰のデータセット３３１の組み合わせの表示は、例えば、図２８に示す画面２４１によって行われる。【０２２５】
ホスト計算機２００は、表示させた性能過剰のデータセット３３１を下位のストレージ階層３２４に移動させるとのユーザによる指示を受け付けることができる。ホスト計算機２００は、例えば、図２８の画面２４１に示すデータセット移動指示ボタン２４１ｃをユーザが押下することにより、データセット３３１の移動の指示を受け付ける。【０２２６】
ユーザからデータセット３３１の移動の指示を受けたホスト計算機２００は、ストレージ階層制御指示プログラム２５７に基づいて、当該データセット３３１を格納するページ３２３に対するストレージ階層制御を行うよう、ストレージ装置３００に指示する。具体的には、ホスト計算機２００は、ユーザの入力から取得したストレージ階層制御の対象のデータセット名に合致するエントリを、データ構成管理テーブル２７１から取得する。次に、ホスト計算機２００は、取得したエントリの仮想アドレス２７１３に合致するエントリをページ構成管理テーブル２７２から取得する。さらに、ホスト計算機２００は、ストレージ階層制御指示用のＩＯ要求６００を作成し、作成したＩＯ要求６００に、取得したエントリのページＩＤ２７２３と、ユーザの入力から取得したデータセット３３１の移動先階層とを格納する。そして、ホスト計算機２００は、作成したＩＯ要求６００をストレージ装置３００に送信する。これにより、ストレージ装置３００では、図２１及び図２２に示す処理が実行されて、ユーザの指示に従ったデータセット３３１の移動が行われることとなる。【０２２７】
以上、ストレージ階層３２４を備えたストレージ装置３００の運用段階におけるホスト計算機２００の処理を説明した。【０２２８】
次に、管理計算機１００の動作を説明する。【０２２９】
管理計算機１００は、ホスト計算機２００のメモリ２０１に記憶される各種プログラムと同様の役割を持つプログラムに基づいて、ホスト計算機２００と同様の動作を行う。ここで、管理計算機１００のメモリ１０１に記憶される「集中ａａａプログラム」は、ホスト計算機２００のメモリ２０１に記憶される「ａａａプログラム」と同様な役割を持つプログラムである。管理計算機１００は、複数のホスト計算機２００を集中管理している。具体的には、管理計算機１００は、複数のホスト計算機２００のそれぞれに対して、上記したホスト計算機２００の処理を行うことができる。なお、各ホスト計算機２００に対する処理については、上記したホスト計算機２００と同様であるので、管理計算機１００の詳細な動作の説明は割愛する。【０２３０】
（１−６）実施例１の効果【０２３１】
以上のように、実施例１によれば、ホスト計算機２００は、ジョブ２２５が使用するデータセット３３１のうち、当該ジョブ２２５の性能要件を満たしつつ、下位のストレージ階層３２４に移動できるデータセット３３１の集合を特定する。また、ホスト計算機２００は、当該ジョブ２２５の性能要件を満たせる範囲で、特定したデータセット３３１の集合に対して、データセット３３１の組み合わせを特定し、出力する。【０２３２】
これにより、ユーザは、ストレージ階層３２４を備えたストレージ装置の導入時に、各ストレージ階層３２４に必要な容量を把握できる。また、ストレージ階層３２４を備えたストレージ装置の運用時には、ユーザは、性能過剰のデータセット３３１を下位のストレージ階層３２４に移動させることができる。この結果、他のデータセット３３１が上位のストレージ階層３２４を有効利用できるようになる。また、上位のストレージ階層３２４の利用頻度を低くすることにより、当該ストレージ階層３２４を構成する記憶デバイスの長寿命化を図ることができる。
【実施例２】
【０２３３】
（２−１）実施例２の概要【０２３４】
次に、実施例２に係る計算機システムを説明する。【０２３５】
実施例２は、実施例１と同様に、性能要件を満たしているジョブ２２５について、当該ジョブ２２５が使用するデータセット３３１のうち、性能過剰のデータセット３３１を特定する。【０２３６】
ただし、実施例２では、実施例１のようにジョブ２２５を構成するジョブステップ２２６毎に、ジョブステップ２２６で使用する１又は複数のデータセット３３１が性能過剰であるか否かを判定するのではなく、ジョブ２２５が使用するデータセット３３１毎に、当該データセット３３１が性能過剰であるか否かを判定する。具体的には、データセット３３１毎に、ジョブ２２５の実行開始から終了までの当該データセット３３１に対するデータアクセス回数の合計値を計測する。次に、ストレージ階層３２４間のＩＯ処理時間差を特定する。そして、データアクセス回数とデータアクセス当たりのＩＯ処理時間から当該データセット３３１を下位のストレージ階層３２４に移動した場合におけるジョブ２２５の実行時間の増加量を算出する。さらに、実施例１と同様に、ジョブ２２５の実行時間増加の許容量を算出し、実行時間の増加量と実行時間増加の許容量とを比較することで、当該データセット３３１が性能過剰であるか否かを判定する。【０２３７】
このように、実施例２では、ジョブステップで使用するデータセットの集合単位ではなく、それよりも細かいデータセット３３１単位で、ジョブ２２５の実行時間の増加量を算出する。このため、実施例１に比べて、実行時間の増加量を算出するための情報の取得に要する時間が増加するものの、性能過剰のデータセット３３１をきめ細かく特定できるという効果がある。【０２３８】
（２−２）計算機システムのハードウェア構成【０２３９】
実施例２における計算機システム及びストレージ装置の構成は、実施例１における計算機システムの構成（図１参照）及びストレージ装置の構成（図４参照）と同じである。【０２４０】
図３１は、実施例２に係るホスト計算機の構成図である。なお、図３に示す実施例１に係るホスト計算機と同様な部分については、同一の符号を付している。【０２４１】
実施例２に係るホスト計算機２００（以下、２００Ａという）のメモリ２０１は、実施例１に係るホスト計算機２００（図３参照）のメモリ２０１に展開される各種プログラム及びテーブルからジョブステップ処理時間管理テーブル２７５を取り除いたプログラム及びテーブルを記憶するとともに、データアクセス情報管理テーブル２７６を更に記憶する。【０２４２】
データアクセス情報管理テーブル２７６は、ジョブ２２５によるデータセットに対するデータアクセス回数を管理するための情報を格納する。【０２４３】
図３０は、実施例２に係る管理計算機の構成図である。なお、図２に示す実施例１に係る管理計算機と同様な部分については、同一の符号を付している。【０２４４】
実施例２に係る管理計算機１００（以下、１００Ａという）のメモリ１０１は、実施例１における管理計算機１００（図２参照）のメモリ１０１に展開される各種プログラム及びテーブルから集中ジョブステップ処理時間管理テーブル１７５を取り除いたプログラム及びテーブルを記憶するとともに、集中データアクセス情報管理テーブル１７６を更に記憶する。【０２４５】
集中データアクセス情報管理テーブル１７６は、ジョブ２２５によるデータセットに対するデータアクセス回数を管理するための情報を格納する。【０２４６】
（２−３）計算機システムの処理の概要【０２４７】
次に、実施例２に係る計算機システムの処理の概要を説明する。【０２４８】
実施例２におけるホスト計算機２００Ａは、実施例１におけるホスト計算機２００と同様に、ジョブ２２５が使用するデータセット３３１を下位のストレージ階層３２４に移動した場合におけるジョブ２２５の実行時間の増加量を算出して、性能過剰のデータセット３３１を特定する。ただし、実施例２では、データセット３３１毎に、ジョブ２２５の実行時間の増加量、すなわちジョブ２２５の実行時間の増加量を算出する。【０２４９】
以下に、実施例２におけるデータセット３３１毎に、ジョブ２２５の実行時間の増加量を算出して、性能過剰であるか否かを判定する方法について説明する。【０２５０】
図３２は、実施例２に係る性能過剰のデータセットの特定方式の概要を説明する概念図である。【０２５１】
ここで、図３２に示すように、ホスト計算機２００Ａのメモリ２０１には、ジョブ２２５が展開されているとする。また、展開されているジョブ２２５は、４つのデータセット３３１（データセットＡ、データセットＢ、データセットＣ、及びデータセットＤ）を使用するものとする。【０２５２】
本実施例では、ホスト計算機２００Ａは、ジョブ２２５の実行時間に対する要件と、ジョブ２２５の実行時間の実測値と、ジョブ２２５が使用するデータセット３３１の格納先ストレージ階層３２４と、各ストレージ階層３２４のＩＯ処理時間と、各データセットに対するデータアクセス回数とを利用して性能過剰のデータセット３３１を特定する。【０２５３】
まず、ホスト計算機２００Ａは、実施例１と同様に、ジョブ２２５の実行時間の要件と実行時間の実測値との差分によって、当該ジョブ２２５の実行時間増加についての許容量を算出する。図３２の例では、ジョブ２２５の実行時間増加の許容量は、２３０ｍｓ（４００ｍｓ（ジョブ２２５の実行時間の要件）−１７０ｍｓ（ジョブ２２５の実行時間の実測値））である。【０２５４】
次に、ホスト計算機２００Ａは、ジョブ２２５が使用するデータセット３３１の格納先ストレージ階層３２４と、各ストレージ階層３２４のＩＯ処理時間とに基づいて、このデータセット３３１を下位のストレージ階層３２４に移動した場合におけるデータアクセス一回当たりのデータアクセス時間の増加量を算出する。図３２に示す例では、ジョブ２２５が使用するデータセットＤは、中性能のストレージ階層３２４に格納されている。中性能のストレージ階層３２４のＩＯ処理時間は１０ｍｓであり、低性能のストレージ階層３２４のＩＯ処理時間は３０ｍｓである。この場合には、データセットＤを低性能のストレージ階層３２４に移動すると、データセットＤに対するデータアクセス一回当たりのデータアクセス時間の増加量は２０ｍｓ（３０ｍｓ−１０ｍｓ）と算出できる。【０２５５】
そして、ホスト計算機２００Ａは、算出したデータセット３３１に対するデータアクセス時間の増加量と、当該データセット３３１に対するデータアクセス回数とに基づいて、当該データセット３３１を下位のストレージ階層３２４に移動した場合におけるジョブ２２５の実行時間の増加量を算出する。図３２に示す例では、データセットＤに対するデータアクセス時間の増加量は２０ｍｓであり、データアクセス回数は４回であるので、データセットＤを下位のストレージ階層３２４に移動した場合、ジョブの実行時間は８０ｍｓ増加すると算出できる。ここで、実際のデータアクセス回数を用いるので、実行時間の増加量をより適切に算出することができる。【０２５６】
さらに、ホスト計算機２００Ａは、算出したジョブ２２５の実行時間の増加量と、ジョブ２２５の実行時間増加の許容量とを比較する。ジョブ２２５の実行時間の増加量がジョブ２２５の実行時間増加の許容量よりも少ない場合、ホスト計算機２００Ａは、当該データセット３３１は性能過剰であると判定する一方、ジョブ２２５の実行時間の増加量がジョブ２２５の実行時間増加の許容量よりも少なくない場合、当該データセット３３１は性能過剰でないと判定する。図３２に示す例では、データセットＤを下位のストレージ階層３２４に移動した場合におけるジョブ２２５の実行時間の増加量は８０ｍｓであり、ジョブ２２５の実行時間増加の許容量は２３０ｍｓである。このため、ホスト計算機２００Ａは、データセットＤは、性能過剰であると判定する。【０２５７】
ホスト計算機２００Ａは、上記の判定を各データセット３３１について行い、性能過剰のデータセット３３１を特定する。【０２５８】
以上、本実施例における性能過剰のデータセット３３１を特定する方法の概要を説明した。【０２５９】
なお、計算機システム１０により実現されるストレージ階層制御の処理は、実施例１と同様であり、基本的には、ホスト計算機２００Ａ及びストレージ装置３００によって実行される。ただし、必要に応じて、実施例１と同様に、管理計算機１００が、複数のホスト計算機２００及びストレージ装置３００を集中管理するようにしても良い。または、管理計算機１００が、ストレージ装置３００に直接、ストレージ階層制御の指示を送信するようにしても良い。【０２６０】
（２−４）各種テーブルの内容【０２６１】
図３３は、実施例２に係るデータアクセス情報管理テーブルの一例を示す図である。【０２６２】
データアクセス情報管理テーブル２７６は、データセット３３１を下位のストレージ階層３２４に移動した場合におけるジョブの実行時間の増加量を算出するために必要なデータアクセスに関する情報を管理するテーブルであって、各エントリには、ジョブ名２７６１、データセット名２７６２、格納先ストレージ階層２７６３、及びデータアクセス回数２７６４のフィールドが含まれる。【０２６３】
ジョブ名２７６１には、ホスト計算機２００Ａ上で動作するＯＳ２２０がアプリケーションを実行する時に使用するジョブ２２５の名称（ジョブ名）が格納される。データセット名２７６２には、同一エントリのジョブ名が示すジョブ２２５が使用するデータセット３３１の名称（データセット名）が格納される。格納先ストレージ階層２７６３には、データセット名が示すデータセット３３１を格納するストレージ階層３２４が格納される。データアクセス回数２７６４には、同一エントリのジョブ名が示すジョブ２２５の実行開始から実行終了までに、データセット名２７６２が示すデータセット３３１にデータアクセスした回数が格納される。【０２６４】
なお、図３０に示すように、管理計算機１００Ａのメモリ１０１には、集中データアクセス情報管理テーブル１７６が記憶される。集中データアクセス情報管理テーブル１７６は、ホスト計算機２００Ａのメモリ２０１に記憶されるデータアクセス情報管理テーブル２７６と同様の役割を持つ。具体的には、集中データアクセス情報管理テーブル１７６は、データアクセス情報管理テーブル２７６に、ホスト計算機２００Ａを一意に識別するための識別子（ホストＩＤ）を格納するためのカラム（列）が追加されたものであり、管理計算機１００が管理する各ホスト計算機２００Ａで管理されているデータアクセス情報管理テーブル１７６の情報を集約したものである。なお、このような構成であるので、集中データアクセス情報管理テーブル１７６の内容を示す図及び詳細な説明は、割愛する。【０２６５】
（２−５）各装置の動作の詳細【０２６６】
実施例２における各装置の動作の詳細を、ホスト計算機２００Ａ、管理計算機１００Ａ、の順に説明する。なお、本実施例におけるストレージ装置３００の動作の詳細は、実施例１におけるストレージ装置３００の動作の詳細（図１９、図２０、図２１、及び図２２）と同様である。このため、実施例２におけるストレージ装置３００の動作の詳細な説明は、割愛する。【０２６７】
はじめに、ホスト計算機２００Ａの動作を説明する。【０２６８】
実施例２におけるホスト計算機２００Ａが行う処理として、準備段階、ストレージ階層３２４を備えたストレージ装置３００の導入段階、及びストレージ階層３２４を備えたストレージ装置３００の運用段階の３段階のそれぞれにおける処理を説明する。【０２６９】
まず、準備段階におけるホスト計算機２００Ａの処理を説明する。【０２７０】
実施例２の準備段階におけるホスト計算機２００Ａは、実施例１の準備段階におけるホスト計算機２００の処理（図２３参照）からジョブステップ処理時間管理テーブル２７５を作成する処理を除いた処理を実行する。つまり、ホスト計算機２００Ａは、データ構成管理テーブル２７１、ページ構成管理テーブル２７２、ストレージ階層情報管理テーブル２７３、及びジョブ性能情報管理テーブル２７４を作成する。【０２７１】
さらに、ホスト計算機２００Ａは、ジョブ実行情報取得プログラム２５２に基づいて、ＯＳ２２０からジョブ２２５に関する情報を取得し、データアクセス情報管理テーブル２７６を作成する。具体的に、ホスト計算機２００Ａは、ＯＳ２２０からジョブ名、ジョブ２２５が使用するデータセット名、及びデータセット３３１のデータアクセス回数を取得する。また、ホスト計算機２００Ａは、データ構成管理テーブル２７１及びページ構成管理テーブル２７２を参照し、取得したデータセット３３１を格納するページ３２３の格納先ストレージ階層３２４を特定する。そして、ホスト計算機２００Ａは、取得し又は特定した情報を、それぞれジョブ名２７６１、データセット名２７６２、格納先ストレージ階層２７６３、及びデータアクセス回数２７６４に格納したエントリを作成して、データアクセス情報管理テーブル２７６に格納する。【０２７２】
次に、ストレージ階層３２４を備えたストレージ装置３００の導入段階におけるホスト計算機２００Ａの処理を説明する。ストレージ装置３００の導入段階においては、ホスト計算機２００Ａは、ストレージ階層の容量見積もり処理を実行する。
図３４は、実施例２に係るストレージ階層の容量見積もり処理のフローチャートである。【０２７３】
まず、ホスト計算機２００Ａは、実施例１におけるホスト計算機２００と同様な処理（図２４のＳ２１１０）を実行して、ユーザから見積もり対象のジョブ２２５の名称を取得する（Ｓ２４１０）。【０２７４】
次に、ホスト計算機２００Ａは、性能過不足データセット特定プログラム２５４に基づいて、性能過剰のデータセット特定処理（図３５参照）を実行し、ステップＳ２４１０で取得した１又は複数のジョブ名が示すジョブ２２５について、性能過剰のデータセット３３１を特定する（Ｓ２４２０）。【０２７５】
さらに、ホスト計算機２００Ａは、性能過剰のデータセットの組み合わせ決定処理（図３６参照）を実行し、ステップＳ２４２０で特定した性能過剰のデータセット３３１から下位のストレージ階層３２４に移動できる性能過剰のデータセット３３１の組み合わせを決定する（Ｓ２４３０）。【０２７６】
そして、ホスト計算機２００Ａは、ステップＳ２４１０で取得した全てのジョブ２２５について、性能過剰のデータセット３３１の組み合わせを特定したか否かを判定する（Ｓ２４４０）。全てのジョブについて、性能過剰のデータセット３３１の組み合わせを特定した場合（Ｓ２４４０でＹｅｓ）、ホスト計算機２００Ａは、処理をステップＳ２４５０に進める。一方、全てのジョブ２２５について、性能過剰のデータセット３３１の組み合わせを特定していない場合（Ｓ２４４０でＮｏ）、ホスト計算機２００Ａは、処理をステップＳ２４２０に進める。【０２７７】
ステップＳ２４５０では、ホスト計算機２００Ａは、実施例１におけるホスト計算機２００と同様な処理（図２４のＳ２１５０）を実行して、各ストレージ階層３２４に必要な容量の情報を表示する。【０２７８】
図３５は、実施例２に係る性能過剰のデータセット特定処理を示すフローチャートである。【０２７９】
性能過剰のデータセット特定処理は、ストレージ階層の容量見積もり処理（図３４参照）のステップＳ２４２０で行われる処理に対応する。性能過剰のデータセット特定処理は、ユーザの指示により管理計算機１００Ａまたはホスト計算機２００Ａがストレージ階層の容量見積もり処理を実行する場合に実行される。【０２８０】
まず、ホスト計算機２００Ａは、性能過剰のデータセット３３１を特定する対象のジョブ２２５について、実施例１におけるホスト計算機２００と同様な処理（図２５のＳ２２１０）を実行して、ジョブ２２５の実行時間増加の許容量を算出する（Ｓ２５１０）。【０２８１】
次に、ホスト計算機２００Ａは、ジョブ２２５が使用するデータセット３３１の１つを処理対象のデータセット（処理対象データセット）とし、処理対象データセット３３１を格納しているストレージ階層３２４が最下位であるか否かを判定する（Ｓ２５２０）。処理対象データセット３３１を格納しているストレージ階層３２４が最下位である場合（Ｓ２５２０でＹｅｓ）、ホスト計算機２００Ａは、処理対象データセット３３１を性能過剰でないと判定し（Ｓ２５５５）、処理をステップＳ２５６０に進める。一方、処理対象データセット３３１を格納しているストレージ階層３２４が最下位でない場合（Ｓ２５２０でＮｏ）、ホスト計算機２００Ａは、ステップＳ２５３０に処理を進める。【０２８２】
ステップＳ２５３０では、ホスト計算機２００Ａは、処理対象データセット３３１について、現在の格納先のストレージ階層３２４から下位のストレージ階層３２４に移動した場合におけるジョブ２２５の実行時間の増加量を算出する。具体的には、ホスト計算機２００Ａは、データアクセス情報管理テーブル２７６のデータセット名２７６２のデータセット名に合致するエントリを、データ構成管理テーブル２７１から取得する。そして、ホスト計算機２００Ａは、取得したエントリのストレージＩＤ２７１４のストレージＩＤ、および格納先ストレージ階層２７５５のストレージ階層に合致するエントリをストレージ階層情報管理テーブル２７３から取得する。さらに、ホスト計算機２００Ａは、下位のストレージ階層３２４を示すエントリのＩＯ処理時間２７３３のＩＯ処理時間から、取得したエントリのＩＯ処理時間２７３３のＩＯ処理時間を減算し、処理対象データセット３３１を下位のストレージ階層３２４に移動した場合におけるデータアクセス一回当たりのデータアクセス時間の増加量を算出する。そして、ホスト計算機２００Ａは、算出したデータアクセス一回当たりのデータアクセス時間の増加量と、データアクセス情報管理テーブル２７６の処理対象データセット３３１に対応するデータアクセス回数２７６４のデータアクセス回数とを積算して、処理対象データセット３３１を下位のストレージ階層３２４に移動した場合におけるジョブ２２５の実行時間の増加量を算出する。【０２８３】
次に、ホスト計算機２００Ａは、算出したジョブ２２５の実行時間の増加量と、ジョブ２２５の実行時間増加の許容量とを比較する（Ｓ２５４０）。ジョブ２２５の実行時間増加の許容量がジョブ２２５の実行時間の増加量よりも少ない場合（Ｓ２５４０でＹｅｓ）、ホスト計算機２００Ａは、処理対象データセット３３１を性能過剰でないと判定（Ｓ２５５５）し、処理をステップＳ２５６０に進める。一方、ジョブ２２５の実行時間増加の許容量がジョブ２２５の実行時間の増加量以上の場合（Ｓ２５４０でＮｏ）、ホスト計算機２００Ａは、処理対象データセット３３１を性能過剰であると判定し（Ｓ２５５０）、ステップＳ２５６０に処理を進める。【０２８４】
ステップＳ２５６０では、ホスト計算機２００Ａは、ジョブ２２５が使用する全てのデータセット３３１について判定したか否かを特定する。全てのデータセット３３１について判定した場合（Ｓ２５６０でＹｅｓ）、ホスト計算機２００Ａは、性能過剰のデータセット特定処理を終了する。一方、全てのデータセット３３１について判定していない場合（Ｓ２５６０でＮｏ）、ホスト計算機２００Ａは、処理をステップＳ２５２０に進めて、判定していないデータセット３１１を処理対象として、以降の処理を実行する。【０２８５】
図３６は、実施例２に係る性能過剰のデータセットの組み合わせ決定処理を示すフローチャートである。【０２８６】
性能過剰のデータセットの組み合わせ決定処理は、ストレージ階層の容量見積もり処理（図３４参照）のステップＳ２４３０で行われる処理に対応する。性能過剰のデータセットの組み合わせ決定処理は、ユーザの指示により管理計算機１００Ａまたはホスト計算機２００Ａがストレージ階層の容量見積もり処理を実行する場合に実行される。【０２８７】
まず、ホスト計算機２００Ａは、性能過剰のデータセット３３１を特定する対象のジョブ２２５について、図３５のステップＳ２５１０と同様な処理を行い、ジョブ２２５の実行時間増加の許容量を算出する（Ｓ２６１０）。【０２８８】
次に、ホスト計算機２００Ａは、変数である当該ジョブ２２５の実行時間増加量を０に初期化する（Ｓ２６２０）。【０２８９】
そして、ホスト計算機２００Ａは、性能過剰のデータセット特定処理（図３５参照）のステップＳ２５５０で性能過剰であると判定されているデータセット３３１のうち、下位のストレージ階層３２４に移動した場合における所定のデータサイズ当たりのデータアクセス時間の増加量が最も少ないデータセット３３１を選出する（Ｓ２６３０）。これは、ジョブ２２５の実行時間増加の許容量の範囲内で、下位のストレージ階層３２４に移動するデータセット３３１の総データサイズをできる限り大きくするために、データサイズ当たりのジョブ２２５の実行時間の増加量が少ないデータセット３３１を優先して組み合わせに選出することを意図している。ここで、各データセット３３１の所定のデータサイズ当たりのデータアクセス時間の増加量は、各データセット３３１に対する実行時間の増加量を、そのデータセット３３１に対応するデータ構成管理テーブル２７１の仮想アドレス２７１３の仮想アドレス範囲に対応するデータ量で除算することにより得られる。【０２９０】
次に、ホスト計算機２００Ａは、ステップＳ２６３０で選出したデータセット３３１のデータアクセス時間の増加量をジョブ２２５の実行時間増加量に加算する（Ｓ２６５０）。【０２９１】
そして、ホスト計算機２００Ａは、ジョブ２２５の実行時間増加量と実行時間増加の許容量を比較する（Ｓ２６６０）。ジョブ２２５の実行時間増加量が実行時間増加の許容量以上の場合（Ｓ２６６０でＹｅｓ）、ホスト計算機２００Ａは、当該データセット３３１を下位のストレージ階層３２４に移動すると、ジョブ２２５の性能要件を満たせなくなると判断し、処理をステップＳ２６９０に進める。一方、ジョブ２２５の実行時間増加量が実行時間増加の許容量未満の場合（Ｓ２６６０でＮｏ）、ホスト計算機２００Ａは、ステップＳ２６３０で選出したデータセット３３１を性能過剰のデータセット３３１の組み合わせ候補に追加する（Ｓ２６７０）。次に、ホスト計算機２００Ａは、性能過剰であると判定された全てのデータセット３３１を選出したか否かを特定する（Ｓ２６８０）。全てのデータセット３３１を選出した場合（Ｓ２６８０でＹｅｓ）、ホスト計算機２００Ａは、ステップＳ２６９０の処理を実行する。一方、全てのデータセット３３１を選出していない場合（Ｓ２６８０でＮｏ）、ホスト計算機２００Ａは、処理をステップＳ２６３０に進める。【０２９２】
ステップＳ２６９０では、ホスト計算機２００Ａは、ステップＳ２６７０で追加したデータセット３３１の組み合わせ候補の全体及びその部分集合のそれぞれを性能過剰のデータセット３３１の組み合わせに決定して、性能過剰のデータセットの組み合わせ決定処理を終了する。これにより、ページを移動させることのできる複数のデータセット３３１の組み合わせを適切に特定することができる。【０２９３】
以上、ストレージ階層３２４を備えたストレージ装置３００の導入段階におけるホスト計算機２００Ａの処理を説明した。【０２９４】
最後に、ストレージ階層３２４を備えたストレージ装置３００の運用段階におけるホスト計算機２００Ａの処理を説明する。【０２９５】
運用段階において、ホスト計算機２００Ａは、ユーザ入力情報受付プログラム２５１に基づいて、ＩＯ部２０５を介して、ユーザから性能過剰のデータセット３３１を特定するためにジョブ２２５の名称を取得する。これは、例えば、実施例１に係るホスト計算機２００と同様に、図２８に示す画面２４１を用いて行われる。【０２９６】
次に、ホスト計算機２００Ａは、性能過不足データセット特定プログラム２５４に基づいて、ユーザの入力から取得したジョブ名が示すジョブ２２５に対して、性能過剰のデータセット特定処理（図３５参照）を実行する。さらに、ホスト計算機２００Ａは、性能過剰のデータセットの組み合わせ決定処理（図３６参照）を実行する。【０２９７】
そして、ホスト計算機２００Ａは、実施例１におけるホスト計算機２００と同様に、性能過剰のデータセットの組み合わせ決定処理で決定した性能過剰のデータセット３３１の組み合わせを、ＩＯ部２０５を介してユーザに対して表示する。【０２９８】
また、ホスト計算機２００Ａは、実施例１におけるホスト計算機２００と同様に、ストレージ階層制御指示プログラム２５７に基づいて、ユーザからのデータセット３３１の移動指示に従って、ストレージ装置３００に対して当該データセット３３１を格納したページのページ移動を指示する。これにより、ストレージ装置３００では、図２１及び図２２に示す処理が実行されて、ユーザの指示に従ったデータセット３３１の移動が行われることとなる。【０２９９】
以上、ストレージ階層３２４を備えたストレージ装置３００の運用段階におけるホスト計算機２００Ａの処理を説明した。【０３００】
次に、管理計算機１００Ａの動作を説明する。【０３０１】
管理計算機１００Ａは、ホスト計算機２００Ａのメモリ２０１に記憶される各種プログラムと同様の役割を持つプログラムに基づいて、ホスト計算機２００Ａと同様の動作を行う。ここで、管理計算機１００Ａのメモリ１０１に記憶される「集中ａａａプログラム」は、ホスト計算機２００Ａのメモリ２０１に記憶される「ａａａプログラム」と同様な役割を持つプログラムである。管理計算機１００Ａは、複数のホスト計算機２００Ａを集中管理している。具体的には、管理計算機１００Ａは、複数のホスト計算機２００Ａのそれぞれに対して、上記したホスト計算機２００Ａの処理を行うことができる。なお、各ホスト計算機２００Ａに対する処理については、上記したホスト計算機２００Ａと同様であるので、管理計算機１００Ａの詳細な動作の説明は割愛する。【０３０２】
（２−６）実施例２の効果【０３０３】
以上のように、実施例２によれば、ホスト計算機２００Ａは、ジョブ２２５が使用するデータセット３３１のうち、当該ジョブ２２５の性能要件を満たしつつ、下位のストレージ階層３２４に移動できるデータセット３３１を特定する。また、ホスト計算機２００Ａは、当該ジョブ２２５の性能要件を満たせる範囲で、特定したデータセット３３１に対して、データセット３３１の組み合わせを特定し、出力する。なお、ホスト計算機２００Ａは、データセット３３１単位に性能過剰のデータセット３３１を特定する。【０３０４】
これにより、ユーザは、実施例１に比べて、下位のストレージ階層３２４に移動できるデータセット３３１をきめ細かく把握できる。この結果、実施例１に比べて、上位のストレージ階層３２４に必要な容量を削減できる。また、多くのデータセット３３１が上位のストレージ階層３２４を有効利用できるようになる。さらに、上位のストレージ階層３２４の利用頻度をより低くすることにより、当該ストレージ階層３２４を構成する記憶デバイスの長寿命化を図ることができる。【０３０５】
上記実施例１及び実施例２では、ホスト計算機２００及びホスト計算機２００Ａがメインフレームである。【０３０６】
メインフレームのユーザ（メインフレーム管理者）は、メインフレームのＩＯ部を介して、メインフレーム上で動作するアプリケーションの性能要件を定め、当該アプリケーションの性能を監視し、かつ当該アプリケーションに割当てる計算機資源を制御する。【０３０７】
実施例１及び実施例２では、メインフレーム管理者は、従来の計算機資源の割当て制御と同様に、メインフレームのＩＯ部を介して、性能過剰のデータセットを把握できる。
【実施例３】
【０３０８】
（３−１）実施例３の概要【０３０９】
次に、実施例３に係る計算機システムを説明する。【０３１０】
実施例３におけるホスト計算機２００は、オープンシステムである。実施例３に係る計算機システム１０と、実施例１に係る計算機システム１０との動作の違いを以下に説明する。【０３１１】
実施例１に係る計算機システム１０は、ジョブ２２５、ジョブステップ２２６及びデータセット３３１を扱う。一方、実施例３に係る計算機システム１０は、ジョブ２２５に相当するタスク、ジョブステップ２２６に相当するサブタスク、及びデータセット３３１に相当するファイルを扱う。【０３１２】
実施例１では、基本的に、ホスト計算機２００が性能過剰のデータセット３３１を特定する。一方、実施例３では、基本的に、管理計算機１００が性能過剰のファイルを特定する。なお、実施例３に係る管理計算機１００は、基本的に、タスクの性能情報やファイルの構成情報の収集を各ホスト計算機２００に指示する。指示を受けたホスト計算機２００は、タスクの性能情報やファイルの構成情報をまとめて管理計算機１００に返送する。ただし、必要に応じて、実施例１と同様に、ユーザがホスト計算機２００を利用してストレージ階層制御を指示しても良い。または、管理計算機１００は、ストレージ装置３００に直接、ストレージ階層制御の指示を送信するようにしても良い。【０３１３】
実施例１に係る管理計算機１００及びホスト計算機２００は、ＩＯポート１０４及びＩＯポート２０４を利用し、通信ネットワーク５００を介して、ストレージ装置３００にストレージ階層制御の指示を送信する。一方、実施例３に係る管理計算機１００及びホスト計算機２００は、基本的に、管理ポート１０３及び管理ポート２０３を利用し、通信ネットワーク５５０を介して、ストレージ装置３００にストレージ階層制御の指示を送信する。ただし、実施例３においても、管理計算機１００及びホスト計算機２００が通信ネットワーク５００を介して、ストレージ装置３００にストレージ階層制御の指示を送信しても良い。【０３１４】
また、実施例１に係るホスト計算機２００は、ジョブ２２５の実行時間の要件をＯＳ２２０から取得する。一方、実施例３に係る管理計算機１００又はホスト計算機２００は、タスクの実行時間の要件をユーザから取得する。【０３１５】
（３−２）計算機システムのハードウェア構成【０３１６】
実施例３に係る計算機システムのハードウェア構成は、実施例１に係る計算機システムのハードウェア構成と同様である。このため、実施例３における計算機システムのハードウェア構成の詳細な説明は、割愛する。【０３１７】
（３−３）計算機システムの処理の概要【０３１８】
実施例３に係る計算機システムの処理の概要について、実施例１と異なる点を中心に説明する。【０３１９】
実施例３に係る計算機システム１０は、ジョブ２２５に相当するタスク、ジョブステップ２２６に相当するサブタスク、及びデータセット３３１に相当するファイルを扱う。【０３２０】
また、実施例３に係る管理計算機１００及びホスト計算機２００は、基本的に、管理ポート１０３及び管理ポート２０３を利用し、通信ネットワーク５５０を介して、ストレージ装置３００にストレージ階層制御の指示を送信する。また、実施例３における管理計算機１００又はホスト計算機２００は、タスクの実行時間の要件をユーザから取得する。【０３２１】
（３−４）各種テーブルの内容【０３２２】
実施例３では、実施例１における各種テーブルと同様なテーブルを各計算機のメモリ（メモリ１０１、メモリ２０１、及びメモリ３０１）に記憶する。なお、各種テーブルは、実施例１におけるジョブ２２５、ジョブステップ２２６、及びデータセット３３１をそれぞれに対応するタスク、サブタスク、及びファイルに置き換えたものとなっている。なお、それ以外については、同様であるので、各種テーブルの詳細な説明は、割愛する。【０３２３】
（３−５）各装置の動作の詳細【０３２４】
実施例３における各装置の動作の詳細について、実施例１と異なる点を中心に説明する。【０３２５】
実施例３では、基本的に、管理計算機１００が性能過剰のファイルを特定する。このため、実施例３に係る管理計算機１００は、準備段階において、実施例１に係るホスト計算機２００の準備段階の処理（図２３参照）と同様の処理を行う。具体的には、管理計算機１００は、図２３のステップＳ２０１０と同様な処理を実行してストレージ装置３００を検出する。
次に、管理計算機１００は、１又は複数のホスト計算機２００に対して、当該ホスト計算機２００上で動作するタスクの情報取得を指示する。タスクの情報取得の指示を受けたホスト計算機２００は、ＯＳ２２０からタスクに関する情報を取得する。ただし、ホスト計算機２００は、タスクの実行時間の要件については、ＯＳ２２０ではなく、ＩＯ部２０５を介してユーザから取得する。そして、ホスト計算機２００は、ＯＳ２２０及びユーザから取得したタスクに関する情報を管理計算機１００に返送する。さらに、管理計算機１００は、ホスト計算機２００から返送された情報に基づき、データ構成管理テーブル２７１、タスク性能情報管理テーブル（図３のジョブ性能情報管理テーブル２７４に相当）、及びサブタスク実行時間管理テーブル（ジョブステップ実行管理テーブル２７５に相当）を作成する。【０３２６】
そして、管理計算機１００は、図２３のステップＳ２０３０と同様な処理を行い、ページ構成管理テーブル２７２及びストレージ階層情報管理テーブル２７３を作成する。【０３２７】
（３−６）実施例３の効果【０３２８】
以上のように、実施例３によれば、ホスト計算機２００は、タスクが使用するファイルのうち、当該タスクの性能要件を満たしつつ、下位のストレージ階層３２４に移動できるファイルの集合を特定する。また、ホスト計算機２００は、当該タスクの性能要件を満たせる範囲で、特定したファイルの集合に対して、ファイルの組み合わせを特定し、出力する。【０３２９】
これにより、オープンシステムにおいても、ユーザは、ストレージ階層３２４を備えたストレージ装置の導入時に、各ストレージ階層３２４に必要な容量を把握できる。また、ストレージ階層３２４を備えたストレージ装置の運用時には、ユーザは、性能過剰のファイルを把握し、これらファイルを下位のストレージ階層３２４に移動することできる。この結果、他のファイルが上位のストレージ階層３２４を有効利用できるようになる。また、上位のストレージ階層３２４の利用頻度を低くすることにより、当該ストレージ階層３２４を構成する記憶デバイスの長寿命化を図ることができる。
【実施例４】
【０３３０】
（４−１）実施例４の概要【０３３１】
次に、実施例４に係る計算機システムを説明する。なお、実施例４では、実施例１と同じく、ホスト計算機２００をメインフレームとする。
実施例４では、性能要件を満たしていないジョブ（ジョブのアプリケーション）について、当該ジョブが使用するデータセットのうち、当該アプリケーションの性能要件を満たすために、上位のストレージ階層３２４に格納するデータセットを特定する。これにより、ユーザは、アプリケーションの性能要件を満たすために、上位のストレージ階層３２４に移動する必要があるデータセットを把握できる。【０３３２】
ここで、上位のストレージ階層３２４に移動することで、ジョブの性能要件を満たせるデータセット３３１を、以後、性能不足を解消できるデータセット３３１と呼ぶ。【０３３３】
実施例４においては、ホスト計算機２００は、ジョブステップ２２６毎に、ジョブステップ２２６で使用する１又は複数のデータセット３３１によって性能不足を解消できる否かを判定する。具体的には、ホスト計算機２００は、ジョブ２２５の実行時間の要件と実行時間の実測値との差分から実行時間短縮の必要量を算出する。次に、ホスト計算機２００は、ジョブステップ２２６で使用するデータセット３３１を上位のストレージ階層３２４に移動した場合における当該ジョブステップ２２６の実行時間の短縮量を算出する。そして、ホスト計算機２００は、実行時間の短縮量と実行時間短縮の必要量とを比較することで、当該ジョブステップ２２６で使用するデータセット３３１によって性能不足を解消できるか否かを判定する。ここで、ジョブステップ毎に、ジョブステップで使用する１又は複数のデータセットが性能過剰であるか否かを判定するのは、次の３つの理由による。１つ目の理由は、ジョブステップがジョブよりも細かな処理単位のためである。２つ目の理由は、ジョブを構成するジョブステップの数は、ジョブが使用するデータセットの数に比べて少ない。このため、各ジョブステップの実行時間の取得が、各データセットのデータアクセス時間の取得に比べて容易なためである。３つ目の理由は、ジョブステップには、使用するデータセットが規定してあるため、ジョブステップで使用するデータセットを特定できるためである。【０３３４】
さらに、ホスト計算機２００は、あるジョブステップ２２６で使用するデータセット３３１のみでは、性能不足を解消できないと判定したデータセット３３１について、ジョブ２２５の性能要件を満たせるデータセット３３１の組み合わせを決定する。そして、ホスト計算機２００は、性能不足を解消できると判定したデータセット３３１の集合及び決定したデータセット３３１の組み合わせをユーザに提示する。【０３３５】
これにより、ユーザは、データセット３３１毎に必要なＩＯ性能の要件を特定することなく、ジョブ２２５の性能要件を満たすために、上位のストレージ階層３２４に移動する必要があるデータセット３３１の集合を把握できる。【０３３６】
（４−２）計算機システムのハードウェア構成【０３３７】
実施例４に係る計算機システム、管理計算機、ホスト計算機、及びストレージ装置の構成は、実施例１における計算機システム１０の構成（図１参照）、管理計算機１００の構成（図２参照）、ホスト計算機２００の構成（図３参照）、及びストレージ装置３００の構成（図４参照）と基本的には同様である。このため、実施例４に係る計算機システム１０のハードウェア構成の詳細についての説明は、割愛する。【０３３８】
（４−３）計算機システムの処理の概要【０３３９】
次に、実施例４に係る計算機システムの処理の概要を説明する。【０３４０】
実施例４では、ホスト計算機２００は、ジョブ２２５を構成するジョブステップ２２６毎に、ジョブステップ２２６が使用するデータセットを上位のストレージ階層３２４に移動することで、ジョブ２２５の性能要件を満たすことができるか否か（つまり、性能不足を解消できるか否か）を判定する。具体的には、まず、ホスト計算機２００は、ジョブ２２５の実行時間の要件と実行時間の実測値との差分によって、当該ジョブ２２５の実行時間短縮の必要量を算出する。次に、ホスト計算機２００は、ジョブステップ２２６毎に使用するデータセット３３１について、現在の格納先ストレージ階層３２４及び上位のストレージ階層３２４のＩＯ処理時間の差分を算出する。そして、ホスト計算機２００は、各データセット３３１に対して算出した差分の合計値を、当該ジョブステップ２２６で使用するデータセット３３１を上位のストレージ階層３２４に移動した場合におけるジョブ２２５の実行時間の最小短縮量（予測変化量の一例）とする。これは、各データセット３３１に対して１度だけデータアクセスを行うとき、当該データセット３３１を上位のストレージ階層３２４に移動した場合におけるジョブ２２５の実行時間の短縮量が最小となるためである。さらに、ホスト計算機２００は、算出した実行時間の最小短縮量がジョブ２２５の実行時間短縮の必要量を比較する。実行時間の最小短縮量が実行時間短縮の必要量以上の場合、ホスト計算機２００は、当該ジョブステップ２２６が使用するデータセット３３１によって性能不足を解消できると判定する。一方、算出した実行時間の最小短縮量が実行時間短縮の必要量よりも小さい場合、ホスト計算機２００は、当該ジョブステップ２２６単体が使用するデータセット３３１だけでは、性能不足を解消できないと判定する。【０３４１】
また、ホスト計算機２００は、単体では性能不足を解消できないと判定した複数のジョブステップ２２６から、ジョブ２２５の性能要件を満たせるまで、データセット３３１の所定のサイズ当たりの実行時間の最小短縮量の大きい順に、ジョブステップ２２６を選出する。そして、ホスト計算機２００は、選出したジョブステップ２２６の組み合わせと、性能不足を解消できると判定したジョブステップ２２６と、を表示する。【０３４２】
上記した判定を各データセット３３１について行い、性能不足を解消できるデータセット３３１を特定する。【０３４３】
以上、本実施例におけるアプリケーションの性能要件に基づき、性能不足を解消できるデータセット３３１を特定する方法の概要を説明した。【０３４４】
なお、計算機システム１０により実現されるストレージ階層制御の処理は、実施例１と同様に、基本的に、ホスト計算機２００及びストレージ装置３００によって実行される。ただし、必要に応じて、実施例１と同様に、管理計算機１００が複数のホスト計算機２００及びストレージ装置３００を集中管理するようにしても良い。または、管理計算機１００が、ストレージ装置３００に直接、ストレージ階層制御の指示を送信するようにしても良い。【０３４５】
（４−４）各種テーブルの内容【０３４６】
実施例４におけるメモリ１０１、メモリ２０１、及びメモリ３０１に展開される各種テーブルは、実施例１におけるメモリ１０１、メモリ２０１、及びメモリ３０１に展開される各種テーブルと同じである。このため、実施例４における各種テーブルの内容を示す図及び詳細な説明は、割愛する。【０３４７】
（４−５）各装置の動作の詳細【０３４８】
実施例４に係る各装置の動作の詳細を、ホスト計算機２００Ａ、管理計算機１００Ａ、の順に説明する。なお、実施例４に係るストレージ装置３００の動作の詳細は、実施例１に係るストレージ装置３００の動作の詳細（図１９、図２０、図２１、及び図２２）と同様である。このため、実施例４に係るストレージ装置３００の動作の詳細な説明は、割愛する。【０３４９】
はじめに、ホスト計算機２００の動作を説明する。【０３５０】
実施例４に係るホスト計算機２００が行う処理として、ストレージ階層３２４を備えたストレージ装置３００の導入段階及びストレージ階層３２４を備えたストレージ装置３００の運用段階の２段階のそれぞれにおける処理を説明する。なお、実施例４に係るホスト計算機２００が準備段階で行う処理は、実施例１に係るホスト計算機２００が準備段階で行う処理（図２３参照）と同様である。このため、実施例４に係るホスト計算機２００が準備段階で行う処理の詳細な説明は、割愛する。【０３５１】
ストレージ階層３２４を備えたストレージ装置３００の導入段階におけるホスト計算機２００の処理を説明する。ストレージ装置３００の導入段階においては、ホスト計算機２００は、ストレージ階層の容量見積もり処理を実行する。【０３５２】
図３７は、実施例４に係るストレージ階層の容量見積もり処理のフローチャートである。【０３５３】
まず、ホスト計算機２００は、実施例１のホスト計算機２００と同様な処理（図２４のＳ２１１０）を実行して、ユーザから見積もり対象のジョブ２２５の名称を取得する（Ｓ４１１０）。【０３５４】
次に、ホスト計算機２００は、性能過不足データセット特定プログラム２５４に基づいて、性能不足を解消できるジョブステップの特定処理（図３８参照）を実行し、ステップＳ４１１０で取得した１又は複数のジョブ名が示すジョブ２２５について、ジョブステップ２２６毎に、当該ジョブステップ２２６で使用するデータセット３３１によって性能不足を解消できるか否かを特定する（Ｓ４１２０）。【０３５５】
さらに、ホスト計算機２００は、性能不足を解消できるジョブステップの組み合わせ決定処理（図３９参照）を実行し、単体では性能不足を解消できないジョブステップ２２６から、ジョブ２２５の性能要件を満たせるジョブステップ２２６の組み合わせを決定する（Ｓ４１３０）。【０３５６】
そして、ホスト計算機２００は、ステップＳ４１１０で取得した全てのジョブ２２５について、性能不足を解消できるジョブステップ２２６及びジョブステップ２２６の組み合わせを特定したか否かを判定する（Ｓ４１４０）。全てのジョブ２２５に対して特定が完了した場合（Ｓ４１４０でＹｅｓ）、ホスト計算機２００は、処理をステップＳ４１５０に進める。一方、全てのジョブ２２５に対して特定が完了していない場合（Ｓ４１４０でＮｏ）、ホスト計算機２００は、処理をステップＳ４１２０に進める。【０３５７】
ステップＳ４１５０では、ホスト計算機２００は、実施例１におけるホスト計算機２００と同様な処理（図２４のＳ２１５０）を実行して、各ストレージ階層３２４に必要な容量の情報をＩＯ部２０５に表示する。【０３５８】
図３８は、実施例４に係る性能不足を解消できるジョブステップの特定処理を示すフローチャートである。【０３５９】
性能不足を解消できるジョブステップの特定処理は、ストレージ階層の容量見積もり処理（図３７参照）のステップＳ４１２０で行われる処理に対応する。性能不足を解消できるジョブステップの特定処理は、ユーザの指示により管理計算機１００またはホスト計算機２００がストレージ階層の容量見積もり処理を実行する場合に実行される。【０３６０】
まず、ホスト計算機２００は、対象のジョブ２２５について、ジョブ２２５の実行時間短縮の必要量を算出する（Ｓ４２１０）。具体的には、ホスト計算機２００は、ユーザからの入力によって取得したジョブ名に合致するエントリを、ジョブ性能情報管理テーブル２７４から取得する。そして、ホスト計算機２００は、取得したエントリの実行時間の実測値２７４３から実行時間の要件２７４２を減算することで、ジョブ名２７４１が示すジョブ２２５の実行時間短縮の必要量を算出する。【０３６１】
次に、ホスト計算機２００は、実施例１におけるホスト計算機２００と同様な処理（図２５のＳ２２２０）を実行して、ジョブ２２５を構成するジョブステップ２２６の実行時間と使用するデータセット３３１を取得する（Ｓ４２２０）。【０３６２】
そして、ホスト計算機２００は、ジョブステップ２２６が使用する全てのデータセット３３１を上位のストレージ階層３２４に移動した場合における当該ジョブステップ２２６の実行時間の最小短縮量（実行性能の予測変化量）を算出する（Ｓ４２４０）。具体的には、まず、ホスト計算機２００は、各データセット３３１について、ジョブステップ実行時間管理テーブル２７５とストレージ階層情報管理テーブル２７３とを参照して、現在の格納先のストレージ階層３２４と上位のストレージ階層３２４と間のＩＯ処理時間の差分を特定する。そして、ホスト計算機２００は、特定したＩＯ処理時間の差分の合計値を当該ジョブステップ２２６の実行時間の最小短縮量とする。これは、各データセット３３１に対して１度だけデータアクセスを行うことを想定したときが、当該データセット３３１を上位のストレージ階層３２４に移動した場合におけるジョブ２２５の実行時間の短縮量が最小となるためである。【０３６３】
次に、ホスト計算機２００は、ステップＳ４２１０で算出したジョブ２２５の実行時間短縮の必要量と、ステップＳ４２４０で算出したジョブステップ２２６の実行時間の最小短縮量とを比較する（Ｓ４２５０）。この結果、実行時間短縮の必要量が実行時間の最小短縮量以上の場合（Ｓ４２５０でＹｅｓ）、ホスト計算機２００は、当該ジョブステップ２２６が使用するデータセット３３１のみで性能不足を解消できると判定して（Ｓ４２６０）、処理をステップＳ４２７０に進める。一方、実行時間短縮の必要量が実行時間の最小短縮量より少ない場合（Ｓ４２５０でＮｏ）、ホスト計算機２００は、当該ジョブステップ２２６が使用するデータセット３３１のみでは、性能不足を解消できないと判定して（Ｓ４２６５）、処理をステップＳ４２７０に進める。【０３６４】
ステップＳ４２７０において、ホスト計算機２００は、全てのジョブステップ２２６を判定したか否かを特定する。全てのジョブステップ２２６を判定した場合（Ｓ４２７０でＹｅｓ）、ホスト計算機２００は、性能不足を解消できるジョブステップの特定処理を終了する。一方、全てのジョブステップ２２６を判定していない場合（Ｓ４２７０でＮｏ）、ホスト計算機２００は、処理をステップＳ４２２０に進める。【０３６５】
図３９は、実施例４に係る性能不足を解消できるジョブステップの組み合わせ決定処理を示すフローチャートである。【０３６６】
性能不足を解消できるジョブステップの組み合わせ決定処理は、ストレージ階層の容量見積もり処理（図３７参照）のステップＳ４１３０で行われる処理に対応する。性能不足を解消できるジョブステップの組み合わせ決定処理は、ユーザの指示により管理計算機１００またはホスト計算機２００がストレージ階層の容量見積もり処理を実行する場合に実行される。【０３６７】
まず、ホスト計算機２００は、対象のジョブ２２５について、ジョブ２２５の実行時間短縮の必要量を算出する（Ｓ４３１０）。具体的な処理は、図３８に示す性能不足を解消できるジョブステップの特定処理のステップＳ４２１０と同様である。【０３６８】
次に、ホスト計算機２００は、変数である当該ジョブ２２５の実行時間短縮量を０に初期化する（Ｓ４３２０）。そして、ホスト計算機２００は、単体では性能不足を解消できないジョブステップ２２６から、上位のストレージ階層３２４に移動できるデータセット３３１の所定のデータサイズ当たりに対する実行時間の最小短縮量が最も多いジョブステップ２２６を選出する（Ｓ４３３０）。これは、ジョブ２２５の実行時間短縮の必要量を達成しつつ、上位のストレージ階層３２４に移動するデータセット３３１の総サイズをできる限り小さくするために、移動するデータセット３３１の所定のデータサイズ当たりに対する実行時間の最小短縮量が多いジョブステップ２２６から優先して組み合わせに選出することを意図している。ここで、データセット３３１の所定のデータサイズ当たりに対する実行時間の最小短縮量は、データセット３３１に対する実行時間の最小短縮量を、そのデータセット３３１に対応するデータ構成管理テーブル２７１の仮想アドレス２７１３の仮想アドレス範囲に対応するデータ量で除算することにより得られる。【０３６９】
次に、ホスト計算機２００は、選出したジョブステップ２２６を組み合わせに追加し（Ｓ４３４５）、選出したジョブステップ２２６の実行時間の最小短縮量をジョブ２２５の実行時間短縮量に加算する（Ｓ４３５０）。【０３７０】
さらに、ホスト計算機２００は、ジョブ２２５の実行時間短縮量と、実行時間短縮の必要量を比較する（Ｓ４３６０）。ジョブ２２５の実行時間短縮量が、実行時間短縮の必要量以上の場合（Ｓ４３６０でＹｅｓ）、ホスト計算機２００は、性能不足を解消できるジョブステップ２２６の組み合わせを決定できたと判定し、性能不足を解消できるジョブステップの組み合わせ特定処理を終了する。これにより、ページを移動させることのできる複数のジョブステップ２２６の組み合わせを適切に特定することができる。【０３７１】
一方、ジョブ２２５の実行時間短縮量が実行時間短縮の必要量より少ない場合（Ｓ４３６０でＮｏ）、ホスト計算機２００は、全てのジョブステップ２２６を選出したか否かを特定する（Ｓ４３８０）。全てのジョブステップ２２６を選出した場合（Ｓ４３８０でＹｅｓ）、ホスト計算機２００は、性能不足を解消できるジョブステップ２２６の組み合わせはないと判定して（Ｓ４３９０）、性能不足を解消できるジョブステップの組み合わせ特定処理を終了する。一方、全てのジョブステップ２２６を選出していない場合（Ｓ４３８０でＮｏ）、ホスト計算機２００は、処理をステップＳ４３３０に進める。【０３７２】
以上、ストレージ階層３２４を備えたストレージ装置３００の導入段階におけるホスト計算機２００の処理を説明した。【０３７３】
次に、ストレージ階層３２４を備えたストレージ装置３００の運用段階におけるホスト計算機２００の処理を説明する。【０３７４】
実施例４におけるホスト計算機２００は、実施例１におけるホスト計算機２００の処理と同様に、ユーザ入力情報受付プログラム２５１に基づいて、ＩＯ部２０５を介して、ユーザから性能要件を満たしていないジョブ２２５の名称を取得する。【０３７５】
次に、ホスト計算機２００は、性能過不足データセット特定プログラム２５４に基づいて、ユーザの入力から取得したジョブ名が示すジョブ２２５に対して、性能不足を解消できるジョブステップの特定処理（図３８参照）を実行する。さらに、ホスト計算機２００は、単体では性能不足を解消できないジョブステップ２２６について、性能不足を解消できるジョブステップの組み合わせ決定処理（図３９参照）を実行する。【０３７６】
そして、ホスト計算機２００は、性能不足を解消できるジョブステップ２２６と、決定した性能不足を解消できるジョブステップ２２６の組み合わせとについて、使用するデータセット３３１を特定する。次に、ホスト計算機２００は、実施例１におけるホスト計算機２００の処理と同様に、特定したデータセット３３１を、ＩＯ部２０５に表示する。【０３７７】
ホスト計算機２００は、表示させた性能不足を解消できるデータセット３３１を上位のストレージ階層３２４に移動させるとのユーザによる指示を、ＩＯ部２０５を介して受け付けることができる。【０３７８】
ユーザからデータセット３３１の移動の指示を受けたホスト計算機２００は、ストレージ階層制御指示プログラム２５７に基づいて、実施例１におけるホスト計算機２００と同様な処理を行い、ストレージ装置３００にストレージ階層制御を指示する。これにより、ストレージ装置３００では、図２１及び図２２に示す処理が実行されて、ユーザの指示に従ったデータセット３３１の移動が行われることとなる。【０３７９】
以上、ストレージ階層３２４を備えたストレージ装置３００の運用段階におけるホスト計算機２００の処理を説明した。【０３８０】
次に、管理計算機１００の動作を説明する。【０３８１】
管理計算機１００は、ホスト計算機２００のメモリ２０１に記憶される各種プログラムと同様の役割を持つプログラムに基づいて、ホスト計算機２００と同様の動作を行う。
ここで、管理計算機１００のメモリ１０１に記憶される「集中ａａａプログラム」は、ホスト計算機２００のメモリ２０１に記憶される「ａａａプログラム」と同様な役割を持つプログラムである。管理計算機１００は、複数のホスト計算機２００を集中管理している。具体的には、管理計算機１００は、複数のホスト計算機２００のそれぞれに対して、上記したホスト計算機２００の処理を行うことができる。なお、各ホスト計算機２００に対する処理については、上記したホスト計算機２００と同様であるので、管理計算機１００の詳細な動作の説明は割愛する。【０３８２】
（４−６）実施例４の効果【０３８３】
以上のように、実施例４によれば、ホスト計算機２００は、性能要件を満たしていないジョブ２２５について、性能要件を満たすために、上位のストレージ階層３２４に移動できるデータセット３３１の集合を特定し、その情報を出力することができる。なお、ホスト計算機２００は、上位のストレージ階層３２４に過剰にデータセット３３１を移動しないように、データセット３３１の集合を特定することができる。【０３８４】
これにより、ユーザは、特定したデータセット３３１を上位のストレージ階層３２４に移動ように指示することで、上位のストレージ階層３２４にデータセット３３１が過剰に移動されることを防ぎつつも、ジョブ２２５の性能要件を満たすようにすることができる。なお、実施例４に係る計算機システムと、実施例１に係る計算機システムを組み合わせても良い。
【実施例５】
【０３８５】
（５−１）実施例５の概要【０３８６】
次に、実施例５に係る計算機システムを説明する。【０３８７】
実施例５は、実施例４と同様に、性能要件を満たしていないジョブ２２５について、当該ジョブ２２５が使用するデータセット３３１のうち、当該ジョブ２２５の性能要件を満たすために、上位のストレージ階層３２４に格納すべきデータセット３３１を特定する。【０３８８】
ただし、実施例４では、ジョブ２２５を構成するジョブステップ２２６毎に、ジョブステップ２２６で使用する１又は複数のデータセット３３１によって性能不足を解消できるか否かを判定していたのに対し、実施例５では、ジョブ２２５が使用するデータセット３３１毎に、当該データセット３３１が性能不足を解消できるか否かを判定する。この違いは、実施例１と実施例２との違いと同様である。つまり、実施例５では、実施例２と同様に、データセット３３１毎に、ジョブ２２５の実行開始から終了までの当該データセット３３１に対するデータアクセス回数の合計値を計測する。次に、ストレージ階層３２４間のＩＯ処理時間差を特定する。そして、データアクセス回数と、１回のデータアクセス当たりのＩＯ処理時間とに基づいて、当該データセット３３１を上位のストレージ階層３２４に移動した場合におけるジョブ２２５の実行時間の短縮量を算出する。さらに、実施例４と同様に、ジョブ２２５の実行時間短縮の必要量を算出し、実行時間の短縮量と実行時間短縮の必要量とを比較することで、当該データセット３３１によって性能不足を解消できるか否かを判定する。【０３８９】
このように、実施例５では、ジョブステップで使用するデータセットの集合単位ではなく、それよりも細かいデータセット３３１単位で、ジョブ２２５の実行時間の短縮量を算出する。このため、実施例４に比べて、実行時間の短縮量を算出するための情報の取得に要する時間が増加するものの、性能不足を解消できるデータセット３３１をきめ細かく特定できるという効果がある。【０３９０】
（５−２）計算機システムのハードウェア構成【０３９１】
実施例５に係る計算機システム、管理計算機、ホスト計算機、及びストレージ装置の構成は、実施例２における計算機システム１０の構成（図１参照）、管理計算機１００Ａの構成（図３０参照）、ホスト計算機２００Ａの構成（図３１参照）、及びストレージ装置３００の構成（図４参照）と同じである。このため、実施例５における計算機システム１０のハードウェア構成の詳細についての説明は、割愛する。【０３９２】
（５−３）計算機システムの処理の概要【０３９３】
次に、実施例５に係る計算機システムの処理の概要を説明する。【０３９４】
実施例５では、実施例２と同様に、ホスト計算機２００Ａは、データセット３３１を異なるストレージ階層３２４に移動した場合におけるデータアクセス時間の変化量を算出する。ただし、実施例５では、ホスト計算機２００Ａは、データアクセス時間の短縮量を算出する。具体的には、ホスト計算機２００Ａは、ジョブ２２５が使用するデータセット３３１の格納先ストレージ階層３２４と、各ストレージ階層３２４のＩＯ処理時間とに基づいて、データセット３３１を上位のストレージ階層３２４に移動した場合における１回のデータアクセス当たりのデータアクセス時間の短縮量を算出する。【０３９５】
そして、ホスト計算機２００Ａは、算出した１回のデータアクセス当たりのデータアクセス時間の短縮量と、当該データセット３３１に対するデータアクセス回数とに基づいて、当該データセットを上位のストレージ階層３２４に移動した場合におけるジョブ２２５の実行時間の短縮量を算出する。【０３９６】
また、ホスト計算機２００Ａは、ジョブ２２５の実行時間の要件と、実行時間の実測値の差分とに基づいて当該ジョブ２２５の実行時間短縮の必要量を算出する。【０３９７】
そして、ホスト計算機２００Ａは、ジョブ２２５の実行時間の短縮量がジョブ２２５の実行時間短縮の必要量以上の場合、当該データセット３３１によって性能不足を解消できると判定する。【０３９８】
さらに、ホスト計算機２００Ａは、性能不足を解消できると判定されなかったデータセット３３１に対して、ジョブ２２５の性能要件を満たせる組み合わせを特定する。そして、ホスト計算機２００Ａは、性能不足を解消できるデータセット３３１と、性能不足を解消できるデータセット３３１の組み合わせを出力する。【０３９９】
以上、本実施例におけるアプリケーションの性能要件に基づき、性能不足を解消できるデータセット３３１を特定する方法の概要を説明した。【０４００】
なお、計算機システム１０により実現されるストレージ階層制御の処理は、実施例１と同様に、基本的には、ホスト計算機２００及びストレージ装置３００によって実行される。ただし、必要に応じて、実施例１と同様に、管理計算機１００Ａが、複数のホスト計算機２００Ａ及びストレージ装置３００を集中管理するようにしても良い。または、管理計算機１００が、ストレージ装置３００に直接、ストレージ階層制御の指示を送信するようにしても良い。【０４０１】
（５−４）各種テーブルの内容【０４０２】
実施例５に係るメモリ１０１、メモリ２０１、及びメモリ３０１に展開される各種テーブルは、実施例２に係るメモリ１０１、メモリ２０１、及びメモリ３０１に展開される各種テーブルと同様である。このため、実施例５における各種テーブルの内容を示す図及び詳細な説明は、割愛する。【０４０３】
（５−５）各装置の動作の詳細【０４０４】
実施例５に係る各装置の動作の詳細を、ホスト計算機２００Ａ、管理計算機１００Ａ、の順に説明する。なお、本実施例におけるストレージ装置３００の動作の詳細は、実施例１におけるストレージ装置３００の動作の詳細（図１９、図２０、図２１、及び図２２）と同様である。このため、実施例５に係るストレージ装置３００の動作の詳細な説明は、割愛する。【０４０５】
はじめに、ホスト計算機２００Ａの動作を説明する。【０４０６】
実施例５におけるホスト計算機２００Ａが行う処理として、ストレージ階層３２４を備えたストレージ装置３００の導入段階及びストレージ階層３２４を備えたストレージ装置３００の運用段階の２段階のそれぞれにおける処理を説明する。なお、実施例５に係るホスト計算機２００Ａが準備段階で行う処理は、実施例２に係るホスト計算機２００Ａが準備段階で行う処理（図２３参照）と同様である。このため、実施例５に係るホスト計算機２００Ａが準備段階で行う処理の詳細な説明は、割愛する。【０４０７】
まず、ストレージ階層３２４を備えたストレージ装置３００の導入段階におけるホスト計算機２００Ａの処理を説明する。ストレージ装置３００の導入段階においては、ホスト計算機２００Ａは、ストレージ階層の容量見積もり処理を実行する。【０４０８】
図４０は、実施例５に係るストレージ階層の容量見積もり処理のフローチャートである。【０４０９】
まず、ホスト計算機２００Ａは、実施例２におけるホスト計算機２００Ａと同様な処理（図３４のＳ２４１０）を実行して、ユーザから見積もり対象のジョブ２２５の名称を取得する（Ｓ４４１０）。【０４１０】
次に、ホスト計算機２００Ａは、性能過不足データセット特定プログラム２５４に基づいて、性能不足を解消できるデータセットの特定処理（図４１参照）を実行し、ステップＳ４４１０で取得した１又は複数のジョブ名が示すジョブ２２５について、性能不足を解消できるデータセット３３１を特定する（Ｓ４４２０）。【０４１１】
さらに、ホスト計算機２００Ａは、性能不足を解消できるデータセットの組み合わせ決定処理（図４２参照）を実行し、単体では性能不足を解消できない複数のデータセット３３１から、上位のストレージ階層３２４に移動することで、ジョブ２２５の性能要件を満たせるデータセット３３１の組み合わせを決定する（Ｓ４４３０）。【０４１２】
そして、ホスト計算機２００Ａは、ステップＳ４４１０で取得した全てのジョブ２２５について、性能不足を解消できるデータセット３３１を特定したか否かを判定する（Ｓ４４４０）。全てのジョブについて特定した場合（Ｓ４４４０でＹｅｓ）、ホスト計算機２００Ａは、処理をステップＳ４４５０に進める。一方、全てのジョブ２２５について特定していない場合（Ｓ４４４０でＮｏ）、ホスト計算機２００Ａは、処理をステップＳ４４２０に進める。【０４１３】
ステップＳ４４５０では、ホスト計算機２００Ａは、実施例２のホスト計算機２００Ａと同様な処理（図３４のＳ２４５０）を実行して、各ストレージ階層３２４に必要な容量をＩＯ部２０５に表示する。【０４１４】
図４１は、実施例５に係る性能不足を解消できるデータセットの特定処理を示すフローチャートである。【０４１５】
性能不足を解消できるデータセットの特定処理は、ストレージ階層の容量見積もり処理（図４０参照）のステップＳ４４２０で行われる処理に対応する。性能不足を解消できるデータセットの特定処理は、ユーザの指示により管理計算機１００Ａまたはホスト計算機２００Ａがストレージ階層の容量見積もり処理を実行する場合に実行される。【０４１６】
まず、ホスト計算機２００Ａは、性能過剰のデータセット３３１を特定する対象のジョブ２２５について、実施例４のホスト計算機２００と同様な処理（図３８のＳ４２１０）を実行して、ジョブ２２５の実行時間短縮の必要量を算出する（Ｓ４５１０）。【０４１７】
次に、ホスト計算機２００Ａは、ジョブ２２５が使用するデータセット３３１を格納しているストレージ階層３２４が最上位であるか否かを判定する（Ｓ４５２０）。データセット３３１を格納しているストレージ階層３２４が最上位である場合（Ｓ４５２０でＹｅｓ）、ホスト計算機２００Ａは、当該データセット３３１を性能不足の解消に利用できないと判定（Ｓ４５５８）し、処理をステップＳ４５６０に進める。一方、データセット３３１を格納しているストレージ階層３２４が最上位でない場合（Ｓ４５２０でＮｏ）、ホスト計算機２００Ａは、処理をステップＳ４５３０に進める。【０４１８】
ステップＳ４５３０では、ホスト計算機２００Ａは、ジョブ２２５が使用するデータセット３３１について、現在の格納先のストレージ階層３２４から上位のストレージ階層３２４に移動した場合におけるジョブ２２５の実行時間の短縮量を算出する。具体的には、ホスト計算機２００Ａは、データアクセス情報管理テーブル２７６のデータセット名２７６２のデータセット名に合致するエントリを、データ構成管理テーブル２７１から取得する。そして、ホスト計算機２００Ａは、取得したエントリのストレージＩＤ２７１４のストレージＩＤ、および格納先ストレージ階層２７５５のストレージ階層に合致するエントリを、ストレージ階層情報管理テーブル２７３から取得する。さらに、ホスト計算機２００Ａは、上位のストレージ階層３２４を示すエントリのＩＯ処理時間２７３３のＩＯ処理時間から、取得したエントリのＩＯ処理時間２７３３のＩＯ処理時間を減算し、当該データセット３３１を上位のストレージ階層３２４に移動した場合における１回のデータアクセス当たりのデータアクセス時間の短縮量を算出する。そして、ホスト計算機２００Ａは、算出した１回のデータアクセス当たりのデータアクセス時間の短縮量と、データアクセス情報管理テーブル２７６のデータアクセス回数２７６４とを積算して、当該データセット３３１を上位のストレージ階層３２４に移動した場合におけるジョブ２２５の実行時間の短縮量を算出する。【０４１９】
次に、ホスト計算機２００Ａは、算出したジョブ２２５の実行時間の短縮量と、ジョブ２２５の実行時間短縮の必要量とを比較する（Ｓ４５４０）。実行時間の短縮量が実行時間短縮の必要量以上の場合（Ｓ４５４０でＹｅｓ）、ホスト計算機２００Ａは、当該データセット３３１によって性能不足を解消できると判定し（Ｓ４５５０）、処理をステップＳ４５６０に進める。一方、実行時間の短縮量が実行時間短縮の必要量よりも少ない場合（Ｓ４５４０でＮｏ）、ホスト計算機２００Ａは、当該データセット３３１単体では性能不足を解消できないと判定し（Ｓ４５５５）、処理をステップＳ４５６０に進める。【０４２０】
ステップＳ４５６０では、ホスト計算機２００Ａは、ジョブ２２５が使用する全てのデータセット３３１について判定したか否かを特定する。全てのデータセット３３１について判定した場合（Ｓ４５６０でＹｅｓ）、ホスト計算機２００Ａは、性能不足を解消できるデータセット特定処理を終了する。一方、全てのデータセット３３１について判定していない場合（Ｓ４５６０でＮｏ）、ホスト計算機２００Ａは、処理をステップＳ４５２０に進める。【０４２１】
図４２は、実施例５に係る性能不足を解消できるデータセットの組み合わせ決定処理を示すフローチャートである。【０４２２】
性能不足を解消できるデータセットの組み合わせ決定処理は、ストレージ階層の容量見積もり処理（図４０参照）のステップＳ４４３０で行われる処理に対応する。性能不足を解消できるデータセットの組み合わせ決定処理は、ユーザの指示により管理計算機１００Ａまたはホスト計算機２００Ａがストレージ階層の容量見積もり処理を実行する場合に実行される。【０４２３】
まず、ホスト計算機２００Ａは、性能過剰のデータセット３３１を特定する対象のジョブ２２５について、図４１に示す性能不足を解消できるデータセットの特定処理のステップ４５１０と同様な処理を行い、ジョブ２２５の実行時間短縮の必要量を算出する（Ｓ４６１０）。【０４２４】
次に、ホスト計算機２００Ａは、変数である当該ジョブ２２５の実行時間短縮量を０に初期化する（Ｓ４６２０）。【０４２５】
そして、ホスト計算機２００Ａは、ジョブ２２５が使用する性能過剰のデータセット３３１のうち、上位のストレージ階層３２４に移動した場合における所定のデータサイズ当たりのデータアクセス時間の短縮量が最も多いデータセット３３１を選出する（Ｓ４６３０）。これは、所定のデータサイズ当たりに対する実行時間の短縮量が多いデータセット３３１から優先して組み合わせに選出することを意図している。これにより、ジョブ２２５の実行時間短縮の必要量を達成しつつ、上位のストレージ階層３２４に移動するデータセット３３１の総サイズをできる限り小さくすることができる。ここで、各データセット３３１の所定のデータサイズ当たりのデータアクセス時間の短縮量は、各データセット３３１に対する実行時間の短縮量を、そのデータセット３３１に対応するデータ構成管理テーブル２７１の仮想アドレス２７１３の仮想アドレス範囲に対応するデータ量で除算することにより得られる。【０４２６】
次に、ホスト計算機２００Ａは、選出したデータセット３３１を組み合わせに追加し（Ｓ４６４５）、選出したデータセット３３１によるデータアクセス時間の短縮量をジョブ２２５の実行時間短縮量に加算する（Ｓ４６５０）。【０４２７】
さらに、ホスト計算機２００Ａは、ジョブ２２５の実行時間短縮量と実行時間短縮の必要量とを比較する（Ｓ４６６０）。ジョブ２２５の実行時間短縮量が実行時間短縮の必要量以上の場合（Ｓ４６６０でＹｅｓ）、ホスト計算機２００Ａは、性能不足を解消できるデータセット３３１の組み合わせを決定できたと判定し、性能不足を解消できるデータセットの組み合わせ特定処理を終了する。【０４２８】
一方、ジョブ２２５の実行時間短縮量が必要量より少ない場合（Ｓ４６６０でＮｏ）、ホスト計算機２００Ａは、全てのジョブステップ２２６を選出したか否かを特定する（Ｓ４６８０）。全てのデータセット３３１を選出した場合（Ｓ４６８０でＹｅｓ）、ホスト計算機２００Ａは、性能不足を解消できるデータセット３３１の組み合わせはないと判定して（Ｓ４６９０）、性能不足を解消できるデータセットの組み合わせ特定処理を終了する。一方、全てのデータセット３３１を選出していない場合（Ｓ４６８０でＮｏ）、ホスト計算機２００Ａは、処理をステップＳ４６３０に進める。【０４２９】
以上、ストレージ階層３２４を備えたストレージ装置３００の導入段階におけるホスト計算機２００Ａの処理を説明した。【０４３０】
次に、ストレージ階層３２４を備えたストレージ装置３００の運用段階におけるホスト計算機２００Ａの処理を説明する。【０４３１】
実施例５に係るホスト計算機２００Ａは、実施例４に係るホスト計算機２００の処理と同様に、ユーザ入力情報受付プログラム２５１に基づいて、ＩＯ部２０５を介して、ユーザから性能要件を満たしていないジョブ２２５の名称を取得する。【０４３２】
次に、ホスト計算機２００Ａは、性能過不足データセット特定プログラム２５４に基づいて、ユーザの入力から取得したジョブ名が示すジョブ２２５に対して、性能不足を解消できるデータセットの特定処理（図４１参照）を実行する。さらに、ホスト計算機２００Ａは、単体では性能不足を解消できないデータセット３３１について、性能不足を解消できるデータセットの組み合わせ決定処理（図４２参照）を実行する。【０４３３】
そして、ホスト計算機２００Ａは、実施例２におけるホスト計算２００Ａと同様の処理を実行して、性能不足を解消できるデータセット３３１と、決定した性能不足を解消できるデータセット３３１の組み合わせとをＩＯ部２０５により表示する。【０４３４】
ホスト計算機２００Ａは、実施例４と同様に、性能不足を解消できるデータセット３３１を上位のストレージ階層３２４に移動させるとのユーザの指示を受け付けることができる。【０４３５】
ユーザからデータセット３３１の移動の指示を受けたホスト計算機２００Ａは、ストレージ階層制御指示プログラム２５７に基づいて、実施例１におけるホスト計算機２００と同様な動作を行い、ストレージ装置３００にストレージ階層制御を指示する。これにより、ストレージ装置３００では、図２１及び図２２に示す処理が実行されて、ユーザの指示に従ったデータセット３３１の移動が行われることとなる。【０４３６】
以上、ストレージ階層３２４を備えたストレージ装置３００の運用段階におけるホスト計算機２００Ａの処理を説明した。【０４３７】
次に、管理計算機１００Ａの動作を説明する。【０４３８】
管理計算機１００Ａは、ホスト計算機２００Ａのメモリ２０１に記憶される各種プログラムと同様の役割を持つプログラムに基づいて、ホスト計算機２００Ａと同様な動作を行う。ここで、管理計算機１００のメモリ１０１に記憶される「集中ａａａプログラム」は、ホスト計算機２００Ａのメモリ２０１に記憶される「ａａａプログラム」と同様な役割を持つプログラムである。管理計算機１００は、複数のホスト計算機２００Ａを集中管理している。具体的には、管理計算機１００は、複数のホスト計算機２００Ａのそれぞれに対して、上記したホスト計算機２００Ａの処理を行うことができる。なお、各ホスト計算機２００Ａに対する処理については、上記したホスト計算機２００Ａと同様であるので、管理計算機１００の詳細な動作の説明は割愛する。【０４３９】
（５−６）実施例５の効果【０４４０】
以上のように、実施例５によれば、ホスト計算機２００Ａは、性能要件を満たしていないジョブ２２５について、性能要件を満たすために、上位のストレージ階層３２４に移動すべきデータセット３３１の集合を特定し、出力する。なお、ホスト計算機２００は、上位のストレージ階層３２４に過剰にデータセット３３１を移動しないように、データセット３３１の集合を特定することができる。また、ホスト計算機２００Ａは、性能不足を解消できるデータセット３３１をデータセット３３１単位に特定することができる。【０４４１】
これにより、ユーザは、実施例４に比べて、上位のストレージ階層３２４に移動するデータセット３３１をきめ細かく把握できる。この結果、実施例４に比べて、上位のストレージ階層３２４に移動するデータセット３３１の総サイズを小さくできる。なお、実施例５に係る計算機システムと、実施例２に係る計算機システムを組み合わせても良い。
【実施例６】
【０４４２】
（６−１）実施例６の概要【０４４３】
次に、実施例６に係る計算機システムを説明する。【０４４４】
実施例６に係るホスト計算機２００は、オープンシステムである。実施例６に係る計算機システム１０と、実施例４に係る計算機システム１０との動作の違いは、上記の（３−１）で説明した実施例３に係る計算機システム１０と、実施例１に係る計算機システム１０との動作の違いと同様である。このため、実施例６に係る計算機システムのハードウェア構成、処理の概要、各種テーブルの内容、及び各装置の動作の詳細についての説明は、割愛する。【０４４５】
（６−２）実施例６の効果【０４４６】
実施例６によれば、ホスト計算機２００は、性能要件を満たしていないタスクについて、性能要件を満たすために、上位のストレージ階層３２４に移動すべきファイルの集合を特定し、出力することができる。なお、ホスト計算機２００は、上位のストレージ階層３２４に過剰にファイルを移動しないように、ファイルの集合を特定することができる。これにより、オープンシステムにおいても、ユーザは、特定したファイルを上位のストレージ階層３２４に移動ように指示することで、上位のストレージ階層３２４にファイルを過剰に移動することを防ぎつつも、タスクの性能要件を満たすことができる。【０４４７】
以上、６つの実施例を述べた。例えば、管理計算機１００又はホスト計算機２００は、アプリケーションに規定される処理を実行するタスクについて、タスクを構成するサブタスク毎に、その実行性能と使用するファイルを特定する。そして、管理計算機１００又はホスト計算機２００は、サブタスクで使用するファイルについて、アプリケーションの性能要件を満たすストレージ階層３２４を特定し、その情報を出力する。【０４４８】
これにより、ユーザは、アプリケーションの性能要件を満たすために必要な各ストレージ階層３２４の容量を把握できる。また、ユーザは、特定したストレージ階層３２４にファイルを移動させることで、上位のストレージ階層３２４に過剰にファイルが格納されることを防ぐことができる。この結果、上位のストレージ階層３２４を他のファイルが有効活用できるようになる。また、上位のストレージ階層３２４を構成する記憶デバイスの長寿命化を図ることができる。
【符号の説明】
【０４４９】
１００：管理計算機、２００：ホスト計算機、３００：ストレージ装置
【図１】
2014045441.tif 000003
【図２】
2014045441.tif 000004
【図３】
2014045441.tif 000005
【図４】
2014045441.tif 000006
【図５】
2014045441.tif 000007
【図６】
2014045441.tif 000008
【図７】
2014045441.tif 000009
【図８】
2014045441.tif 000010
【図９】
2014045441.tif 000011
【図１０】
2014045441.tif 000012
【図１１】
2014045441.tif 000013
【図１２】
2014045441.tif 000014
【図１３】
2014045441.tif 000015
【図１４】
2014045441.tif 000016
【図１５】
2014045441.tif 000017
【図１６】
2014045441.tif 000018
【図１７】
2014045441.tif 000019
【図１８】
2014045441.tif 000020
【図１９】
2014045441.tif 000021
【図２０】
2014045441.tif 000022
【図２１】
2014045441.tif 000023
【図２２】
2014045441.tif 000024
【図２３】
2014045441.tif 000025
【図２４】
2014045441.tif 000026
【図２５】
2014045441.tif 000027
【図２６】
2014045441.tif 000028
【図２７】
2014045441.tif 000029
【図２８】
2014045441.tif 000030
【図２９】
2014045441.tif 000031
【図３０】
2014045441.tif 000032
【図３１】
2014045441.tif 000033
【図３２】
2014045441.tif 000034
【図３３】
2014045441.tif 000035
【図３４】
2014045441.tif 000036
【図３５】
2014045441.tif 000037
【図３６】
2014045441.tif 000038
【図３７】
2014045441.tif 000039
【図３８】
2014045441.tif 000040
【図３９】
2014045441.tif 000041
【図４０】
2014045441.tif 000042
【図４１】
2014045441.tif 000043
【図４２】
2014045441.tif 000044
【国際調査報告】
2014045441.tif 000045
2014045441.tif 000046
2014045441.tif 000047
2014045441.tif 000048