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