(57)【要約】【課題】ＤＢＭＳが稼動する計算機システムにおいて、記憶装置に対する性能管理を、ユーザの業務における性能指標を用いておこなえるようにし、性能管理を容易化する。【解決手段】計算機システムの管理サーバは、各構成要素の稼動状態や、業務の応答時間等をモニタし、要求性能等の予め与えた処理に関する情報や収集したモニタ情報を用いて、処理を実施するときやモニタ値からチューニングが必要と判断した場合に、ポートにおける処理量の割り当てや、データに対するキャッシュ量の割り当て、ディスク装置の論理構成等の変更指示を出す。バッチ業務をおこなう処理に対しては、処理時間を見積る方法を管理サーバに与え、見積り実行時間を基に設定変更指示を出す。オンライン業務をおこなう処理では、処理の応答時間やスループットが要求性能に満たない場合に、負荷が高い部分の設定を変更する指示を出す。【選択図】        図１
2004302751.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行する計算機と、そのプログラムの実行のためのデータを記憶する記憶装置とを有する計算機システムの性能管理方法において、
（１）前記プログラムに要求される性能の情報を取得する手順、
（２）前記プログラムを実行するためのデータのマッピング情報を、前記計算機、前記記憶装置から取得する手順、
（３）前記記憶装置から稼動統計情報を取得する手順、
（１０）前記（１）ないし（３）の手順で取得された情報を用いて前記記憶装置の設定変更案を作成する手順、
（１１）前記記憶装置に対して前記設定変更案に従った設定変更を指示する手順を有することを特徴とする性能管理方法。
【請求項２】
さらに、
（４）前記プログラムの優先度に関する情報を取得する手順を有し、
前記（１０）の手順で、前記（４）の手順で取得した情報をも利用して前記記憶装置の設定変更案を作成することを特徴とする請求項１記載の計算機システムの性能管理方法。
【請求項３】
前記（１）の手順が、前記プログラムに要求される処理実行時間と、処理実行時間見積り方法と、前記プログラムに入力として与えられるデータのデータ量とを取得する処理を含み、
前記（１０）の手順で、前記記憶装置の設定変更案を作成する際して、前記プログラムの処理実行時間と、前記処理実行時間見積り方法と、前記プログラムへの入力データ量とを利用することを特徴とする請求項１記載の計算機システムの性能管理方法。
【請求項４】
前記処理実行時間見積り方法を取得する際に、前記（３）の手順で取得した前記稼動統計情報を利用することを特徴とする請求項３記載の計算機システムの性能管理方法。
【請求項５】
前記（１）の手順が、前記プログラムに要求される処理の応答時間に関する情報と、前記プログラムの処理の応答時間の実測値に関する情報とを取得する処理を含み、
前記（１０）の手順で、前記記憶装置の設定変更案を作成する際して、前記プログラムに要求される処理の応答時間に関する情報と、前記プログラムの処理の応答時間の実測値に関する情報とを利用することを特徴とする請求項１記載の計算機システムの性能管理方法。
【請求項６】
前記記憶装置が、外部装置と接続するためのポートを備え、そのポートからのアクセスの処理量を制限する優先アクセス制御機能を有する記憶装置である場合に、
前記（１０）の手順で作成する設定変更案が、前記優先アクセス制御機能の設定値の変更案であることを特徴とする請求項１記載の計算機システムの性能管理方法。
【請求項７】
前記記憶装置が、データキャッシュを備え、そのデータキャッシュを幾つかの領域に区分された領域により管理して、その区分されたデータキャッシュの領域を動的に追加・削除・領域サイズ変更をする機能を有する記憶装置である場合に、
前記（１０）の手順で作成する設定変更案が、前記区分されたデータキャッシュの領域の追加・削除・領域サイズ変更案であることを特徴とする請求項１記載の計算機システムの性能管理方法。
【請求項８】
前記記憶装置が、少なくとも二つ以上の物理記憶手段を備え、
前記物理記憶手段の記憶領域を利用した論理記憶領域を提供する機能と、前記論理記憶領域の前記物理記憶手段の記憶領域への対応関係を動的に変更する物理記憶位置変更機能とを有し、
前記（１０）の手順で作成する設定変更案が、前記物理記憶位置変更機能による前記物理記憶手段と前記論理記憶領域の対応関係の変更指示案であることを作成することを特徴と請求項１記載の計算機システムの性能管理方法。
【請求項９】
データベース管理システムを動作させる第一の計算機と、前記データベース管理システムに対して処理要求を出すプログラムを実行する第二の計算機と、データベース管理システムで取扱うデータを記憶する記憶装置とを有する計算機システムの性能管理方法において、
（２１）前記プログラムに要求される性能の情報を取得する手順、
（２２）前記プログラムが前記データベース管理システムに対して要求する処理において利用するデータベースのデータの情報を取得する手順、
（２３）前記プログラムの実行するためのデータのマッピング情報を、前記第一の計算機、前記記憶装置から取得する手順、
（２４）前記記憶装置から稼動統計情報を取得する手順、
（３０）前記（２１）ないし（２４）の手順で取得された情報を用いて前記記憶装置の設定変更案を作成する手順、
（３１）前記記憶装置に対して前記設定変更案に従った設定変更を指示する手順を有することを特徴とする計算機システムの性能管理方法。
【請求項１０】
前記第一の計算機と前記第二の計算機が同一の計算機であることを特徴とする請求項９記載の計算機システムの性能管理方法。
【請求項１１】
前記記憶装置が、外部装置と接続するためのポートを備え、そのポートからのアクセスの処理量を制限する優先アクセス制御機能を有する記憶装置である場合に、
前記（３０）の手順で作成する設定変更案が、前記優先アクセス制御機能の設定値の変更案であることを特徴とする請求項９記載の計算機システムの性能管理方法。
【請求項１２】
前記記憶装置が、データキャッシュを備え、そのデータキャッシュを幾つかの領域に区分された領域により管理して、その区分されたデータキャッシュの領域を動的に追加・削除・領域サイズ変更をする機能を有する記憶装置である場合に、
前記（３０）の手順で作成する設定変更案が、前記区分されたデータキャッシュの領域の追加・削除・領域サイズ変更案であることを特徴とする請求項９記載の計算機システムの性能管理方法。
【請求項１３】
前記記憶装置が、少なくとも二つ以上の物理記憶手段を備え、
前記物理記憶手段の記憶領域を利用した論理記憶領域を提供する機能と、前記論理記憶領域の前記物理記憶手段の記憶領域への対応関係を動的に変更する物理記憶位置変更機能とを有する記憶装置である場合に、
前記（３０）の手順で作成する設定変更案が、前記物理記憶位置変更機能による前記物理記憶手段と前記論理記憶領域の対応関係の変更指示案であることを作成することを特徴とするの請求項９記載の計算機システムの性能管理方法。
【請求項１４】
データベース管理システムを動作させる第一の計算機と、前記データベース管理システムに対して処理要求を出すプログラムを実行する第二の計算機と、データベース管理システムで取扱うデータを記憶する記憶装置とを有する記憶装置の性能を管理する計算機システムにおいて、
管理装置を有し、
この管理装置が、前記プログラムに要求される性能の情報と、
前記プログラムが前記データベース管理システムに対して要求する処理において利用するデータベースのデータの情報と、
前記第一の計算機、前記記憶装置から得られる前記プログラムの実行するためのデータのマッピング情報と、
前記記憶装置から得られる稼動統計情報とを取得して、
前記管理装置が、取得した情報を用いて前記記憶装置の設定変更案を作成して、
前記記憶装置に対して前記設定変更案に従った設定変更を指示することを特徴とする記憶装置の性能を管理する計算機システム。
【請求項１５】
前記第一の計算機と前記第二の計算機が同一の計算機であることを特徴とする請求項１４記載の記憶装置の性能を管理する計算機システム。
【請求項１６】
さらに、
前記第一の計算機と、前記記憶装置との間に接続され、両者の間のデータ転送を制御する記憶制御装置を有することを特徴とする請求項１４記載の記憶装置の性能を管理する計算機システム。
【請求項１７】
前記管理装置の前記情報の収集と、前記設定変更案の作成と、前記設定変更案に従った設定変更の指示とをおこなう機能を、前記第一の計算機または前記第二の計算機で実現することを特徴とする請求項１４記載の記憶装置の性能を管理する計算機システム。
【請求項１８】
前記管理装置の情報の収集と、前記設定変更案の作成と、前記設定変更案に従った設定変更を指示とをおこなう機能を、前記記憶装置で実現することを特徴とする請求項１４記載の記憶装置の性能を管理する計算機システム。
【請求項１９】
前記管理装置の情報の収集と、前記設定変更案の作成と、前記設定変更案に従った設定変更を指示とをおこなう機能を、前記記憶制御装置で実現することを特徴とする請求項１６記載の記憶装置の性能を管理する計算機システム。
【請求項２０】
データベース管理システムを動作させる第一の計算機と、前記データベース管理システムに対して処理要求を出すプログラムを実行する第二の計算機と、データベース管理システムで取扱うデータを記憶する記憶装置とを有する計算機システムの性能を管理する管理装置において、
この管理装置が、前記プログラムに要求される性能の情報と、
前記プログラムが前記データベース管理システムに対して要求する処理において利用するデータベースのデータの情報と、
前記第一の計算機、前記記憶装置から得られる前記プログラムの実行するためのデータのマッピング情報と、
前記記憶装置から得られる稼動統計情報とを取得して、
取得した情報を用いて前記記憶装置の設定変更案を作成して、
前記記憶装置に対して前記設定変更案に従った設定変更を指示することを特徴とする計算機システムの性能を管理する管理装置。
【請求項２１】
前記第一の計算機と前記第二の計算機が同一の計算機であることを特徴とする請求項２０記載の計算機システムの性能を管理する管理装置。
【請求項２２】
前記記憶装置が、外部装置と接続するためのポートを備え、そのポートからのアクセスの処理量を制限する優先アクセス制御機能を有する記憶装置であって、
前記管理装置が作成する設定変更案が、前記優先アクセス制御機能の設定値の変更案であることを特徴とする請求項２０記載の計算機システムの性能を管理する管理装置。
【請求項２３】
前記記憶装置が、データキャッシュを備え、そのデータキャッシュを幾つかの領域に区分された領域により管理して、その区分されたデータキャッシュの領域を動的に追加・削除・領域サイズ変更をする機能を有する記憶装置であって、
前記管理装置が作成する設定変更案が、前記区分されたデータキャッシュの領域の追加・削除・領域サイズ変更案であることを特徴とする請求項２０記載の計算機システムの性能を管理する管理装置。
【請求項２４】
前記記憶装置が、少なくとも二つ以上の物理記憶手段を備え、
前記物理記憶手段の記憶領域を利用した論理記憶領域を提供する機能と、前記論理記憶領域の前記物理記憶手段の記憶領域への対応関係を動的に変更する物理記憶位置変更機能とを有する記憶装置であって、
前記管理装置で作成する設定変更案が、前記物理記憶位置変更機能による前記物理記憶手段と前記論理記憶領域の対応関係の変更指示案であることを特徴とする請求項２０記載の計算機システムの性能を管理する管理装置。
【請求項２５】
プログラムを実行する計算機と、そのプログラムの実行のためのデータを記憶する記憶装置とを有する計算機システムの性能管理プログラムにおいて、
前記プログラムに要求される性能の情報を取得する機能と、
前記プログラムを実行するためのデータのマッピング情報を、前記計算機、前記記憶装置から取得する機能と、
前記記憶装置から稼動統計情報を取得する機能とにより、
前記計算機システムより情報を収集し、前記収集された情報を用いて前記記憶装置の設定変更案を作成し、前記記憶装置に対して前記設定変更案に従った設定変更を指示する機能を実現することを特徴とする計算機システムの性能管理プログラム。
【請求項２６】
さらに、
前記プログラムの優先度に関する情報を取得する機能を有し、
前記計算機システムにより、プログラムの優先度に関する情報をも収集し、その情報をも利用して前記記憶装置の設定変更案を作成することを特徴とする請求項２５記載の計算機システムの性能管理プログラム。
【請求項２７】
前記プログラムに要求される性能の情報を取得する機能では、前記プログラムに要求される処理実行時間と、処理実行時間見積り方法と、前記プログラムに入力として与えられるデータのデータ量とを取得して、
前記記憶装置の設定変更案を作成する際して、前記プログラムの処理実行時間と、前記処理実行時間見積り方法と、前記プログラムへの入力データ量とを利用することを特徴とする請求項２５記載の計算機システムの性能管理プログラム。
【請求項２８】
前記処理実行時間見積り方法を取得する際に、前記機能で取得した前記稼動統計情報を利用することを特徴とする請求項２７記載の計算機システムの性能管理プログラム。
【請求項２９】
前記プログラムに要求される性能の情報を取得する機能では、前記プログラムに要求される処理の応答時間に関する情報と、前記プログラムの処理の応答時間の実測値に関する情報とを取得して
前記記憶装置の設定変更案を作成する際して、前記プログラムに要求される処理の応答時間に関する情報と、前記プログラムの処理の応答時間の実測値に関する情報とを利用することを特徴とする請求項２５記載の計算機システムの性能管理プログラム。
【請求項３０】
前記請求項２５記載の計算機システムの性能管理プログラムを記録する計算機読み取り可能な記憶媒体。
【請求項３１】
データベース管理システムを動作させる第一の計算機と、前記データベース管理システムに対して処理要求を出すプログラムを実行する第二の計算機と、データベース管理システムで取扱うデータを記憶する記憶装置とを有し、さらに、前記第一の計算機と、前記記憶装置との間に接続され、両者の間のデータ転送を制御する記憶制御装置とを有する計算機システムの性能管理プログラムにおいて、
前記プログラムに要求される性能の情報を取得する機能と、
前記プログラムが前記データベース管理システムに対して要求する処理において利用するデータベースのデータの情報を取得する機能と、
前記プログラムの実行するためのデータのマッピング情報を、前記第一の計算機、前記記憶装置から取得する機能と、
前記記憶装置から稼動統計情報を取得する機能とにより、
前記計算機システムより情報を収集し、前記収集された情報を用いて前記記憶装置の設定変更案を作成し、前記記憶装置に対して前記設定変更案に従った設定変更を指示する機能を実現することを特徴とする計算機システムの性能管理プログラム。
【請求項３２】
前記第一の計算機と前記第二の計算機が同一の計算機であることを特徴とする請求項３１記載の計算機システムの性能管理プログラム。
【請求項３３】
前記管理装置の前記情報の収集と、前記設定変更案の作成と、前記設定変更案に従った設定変更の指示とをおこなう機能を、前記第一の計算機または前記第二の計算機で実現することを特徴とする請求項３１記載の計算機システムの性能管理プログラム。
【請求項３４】
前記管理装置の情報の収集と、前記設定変更案の作成と、前記設定変更案に従った設定変更を指示とをおこなう機能を、前記記憶装置で実現することを特徴とする請求項３１記載の計算機システムの性能管理プログラム。
【請求項３５】
前記管理装置の情報の収集と、前記設定変更案の作成と、前記設定変更案に従った設定変更を指示とをおこなう機能を、前記記憶制御装置で実現することを特徴とする請求項３１記載の計算機システムの性能管理プログラム。
【請求項３６】
前記請求項３１記載の計算機システムの性能管理プログラムを記録する計算機読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機システムの性能管理方法、および、記憶装置の性能を管理する計算機システムに係り、特に、業務プログラム処理の要求性能に応じて、大規模データベース管理システム（ＤＢＭＳ，Ｄａｔａｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）が稼動する計算機システム内の記憶装置の性能を調整し、要求されたシステムの性能を発揮するために用いて好適な計算機システムの性能管理方法、および、記憶装置の性能を管理する計算機システムに関する。
【０００２】
【従来の技術】
近年、データベース（ＤＢ，Ｄａｔａｂａｓｅ）に関する一連の処理・管理をおこなうソフトウェアであるデータベース管理システム（ＤＢＭＳ）は極めて重要なものとなってきており、サーバ計算機上で実行されるアプリケーションプログラム（ＡＰプログラム）のソフトウェア構成を調べても、ＤＢを基盤として利用するものが多数を占めるようになってきている。
【０００３】
ＡＰプログラムの利用に際しては、業務毎に定まる要求性能が存在し、それを守ることが強く求められており、その管理は計算機システムの管理業務の中で極めて重要である。一般に、ＤＢＭＳの性能は、データへのアクセス性能から多大な影響を受ける。データアクセス性能は、データアクセスパスに含まれるハードウェアリソースの稼動状況に強い影響を受けるため、記憶装置の稼動状況を考慮した性能管理が重要である。
【０００４】
特許文献１では、データアクセスパスに含まれるハードウェアリソースの性能解析を容易化するため、ＤＢＭＳから記憶装置間のデータのマッピングを取得し、各レイヤにおける稼動状況（稼働率）や、ある表やファイル等、データの管理構造に対応する他のレイヤの管理構造の稼動状況を提示する技術を開示している。特定の部位が過負荷状態の場合には、そこが性能低下の原因となっている可能性が極めて高い。そこで、特許文献１では、ある管理構造に属するデータの記憶位置を変更することによりそれを解消する最適化案の作成することにしている。
【０００５】
一方、ハードウェアリソースの過負荷状態を解消することにより性能を最適化する機能を有する記憶装置が存在する。特許文献２は、計算機に論理記憶装置を認識させ、そのデータを記憶装置内部に複数存在する物理ディスク装置にマッピングして記憶する記憶装置において、論理記憶装置の物理ディスク装置へのマッピングを動的に（以下「他の処理を停止させることなく実施される」の意味で利用）変更することにより記憶装置のアクセス性能を向上する技術を開示している。この特許文献２では、稼働率が高い（過負荷状態の）物理ディスク装置に記憶されているデータの一部を他の物理ディスク装置に移動することにより、特定の物理ディスク装置が過負荷状態にならないようにし、性能を最適化する。
【０００６】
また、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ等を用いて、同一のポートを経由して複数の計算機と接続する場合に、特定の計算機からのアクセスを優先的に実行する機能を有する記憶装置が存在する（例えば、非特許文献１記載のＰｒｉｏｒｉｔｙＡｃｃｅｓｓ機能）。
【０００７】
さらに、記憶装置の多くはキャッシュメモリを有している。したがって、データリード時にデータがキャッシュに存在している状態（ヒット）である確率を向上させることによりアクセス性能を向上させることができる。特許文献３では、データ種類毎に区分されたキャッシュ領域を持つ場合に、その領域割り当てを最適化してキャッシュヒット率を向上させる技術について開示している。この特許文献３では、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）置換アルゴリズムによるキャッシュデータ置換制御をおこなうシステムで、キャッシュヒット時にＬＲＵ管理リスト中のどの位置に存在するかの情報を取得し、その情報を用いて領域割り当て変更時のキャッシュヒット率の見積りをおこない、領域分割の最適化をおこなっている。
【０００８】
【特許文献１】
米国特許第６，０３５，３０６号明細書
【特許文献２】
特開平９−２７４５４４号公報
【特許文献３】
米国特許第５，４３４，９９２号明細書
【非特許文献１】
Ｈｉｔａｃｈｉ  Ｄａｔａ  Ｓｙｓｔｅｍｓ社，「Ｈｉｔａｃｈｉ  Ｆｒｅｅｄｏｍ  Ｓｔｏｒａｇｅ（ＴＭ）  Ｌｉｇｈｔｎｉｎｇ  ９９００（ＴＭ）  Ｖ  Ｓｅｒｉｅｓ」，ｐｐ．８−９，ＤＩＳＫ−４３２−００ｂ，  ２００２年１０月
【０００９】
【発明が解決しようとする課題】
ユーザの業務における性能指標は、一括した大量データ処理をおこなうバッチ業務の場合には処理時間、オンライン業務の場合には応答時間や処理のスループットである場合が多い。しかしながら、従来技術が利用・提供する性能指標は、計算機システム内リソースの稼働率やキャッシュヒット率等の物理動作に直結したものであり、ユーザ視点での性能指標に直接結びつくものではない。また、多くの場合、従来技術が提供する複数の性能指標を調べ、その中から性能ボトルネックを発見・解消しないとユーザが求める性能を達成することはできない。現状では、それらの埋め合わせは管理者がおこなっており、しかも、これは簡単なものではなく、特別な技術を要する業務となっている。
【００１０】
このように、現状の性能管理に関しては、管理者が関与する部分が少なくない。しかしながら、ヒューマンエラーの排除やその他管理コスト削減の観点から、できる限り管理は自動化することが好ましい。
【００１１】
本発明は、上記従来技術の問題点を解決するためになされたもので、その目的は、ＤＢＭＳが稼動する計算機システムにおいて、記憶装置に対する性能管理を、ユーザの業務における性能指標を用いておこなえるようにし、性能管理を容易化することである。
【００１２】
また、本発明のさらなる目的は、ＤＢＳＭが稼動する計算機システムにおいて、記憶装置の性能チューニング処理を自動化し、性能管理コストを削減することである。
【００１３】
【課題を解決するための手段】
本発明の目的を達成するために以下のことを実施する。
【００１４】
先ず、計算機システムの構成要素の動作状態を把握するために、各構成要素においてそれらの稼動状況や、業務の応答時間等をモニタし、それを管理サーバに集約する。管理サーバは、収集したモニタ情報や要求性能等の予め与えられた情報を用いて、処理を実施するときや、モニタ値からチューニングが必要と判断した場合には、記憶装置へ設定変更指示を出す。設定変更内容としては、記憶装置のポートにおける処理量の割り当てや、データに対するキャッシュ量の割り当て、データを記憶するディスク装置の記憶領域の構成変更等がある。
【００１５】
バッチ業務をおこなうＪｏｂ（管理サーバにおける処理を実現するプログラムの管理単位）に対しては、処理時間を見積る方法を管理サーバに与え、これを用いて処理時間を見積る。この見積りを用いて、要求時間内に処理が終わるように記憶装置の設定を変更する。処理時間は、データ処理量と現在利用可能な記憶装置のＩ／Ｏ処理量を考慮して見積る。処理時間を見積る方法は、実際に処理を実施させて計算機システムの各構成要素の動作状況を確認し、それと処理内容の対応付けを取ることにより定めることができる。
【００１６】
オンライン業務をおこなうＪｏｂに関しては、処理の応答時間やスループットを計測し、要求性能に満たない場合に記憶装置の設定を変更する指示を出す。記憶装置のリソースの稼働率を参照して性能ボトルネックとなっている部分を発見し、それを解消するように設定変更指示を発行する。また、必要に応じて、アクセス性能を向上させるためにキャッシュ割り当ての変更指示を発行する。
【００１７】
計算機システム内で複数のＪｏｂが並列して実施される場合には、異なるＪｏｂ間で記憶装置内のリソースが共有され、性能ボトルネックになる可能性がある。そこで、Ｊｏｂ毎に処理優先度を設け、リソース共有により問題が発生した場合には、優先度の低いＪｏｂが利用している処理量の一部を優先度が高いＪｏｂに割り当てることにより、優先度の高いＪｏｂの要求性能を維持する制御をおこなう。
【００１８】
【発明の実施の形態】
以下、本発明に係る各実施形態を、図１ないし図２８を用いて説明する。
【００１９】
〔実施形態１〕
以下、本発明に係る第一の実施形態を、図１ないし図２７を用いて説明する。
（Ｉ）本発明を適用する計算機システムの構成
先ず、図１を用いて本発明の第一の実施形態に係る記憶装置の性能を管理する計算機システムの構成について説明する。
図１は、本発明の第一の実施形態に係る記憶装置の性能を管理する計算機システムの構成図である。
【００２０】
計算機システムは、記憶装置４０、記憶装置４０を使用する計算機（以下「サーバ」）７０、システム性能その他の管理をおこなう計算機（以下「管理サーバ」）１２０、および、記憶領域の仮想化処理をおこなう仮想化スイッチ６０を有する。各々の装置は、ネットワークＩ／Ｆ２２を有し、それを介してネットワーク２４に接続され、相互に通信可能である。
【００２１】
サーバ７０、仮想化スイッチ６０、および、記憶装置４０は、各々Ｉ／ＯパスＩ／Ｆ３２を有し、それを介して通信線（以下「Ｉ／Ｏパス」）３４により接続される。サーバ７０と記憶装置４０間のＩ／Ｏ処理は、Ｉ／Ｏパス３４を用いて行われる。なお、Ｉ／Ｏパス３４は、装置間で異なる物理媒体や異なるプロトコルでデータ転送をおこなう通信線が用いられてもよい。また、ネットワーク２４とＩ／Ｏパス３４が同一の通信線でもよい。
【００２２】
記憶装置４０は、ＣＰＵ１２、メモリ１４、ディスク装置（以下「ＨＤＤ」（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ））１６、ネットワークＩ／Ｆ２２、Ｉ／ＯパスＩ／Ｆ３２を有し、それらは、内部バス１８で接続される。なお、ＨＤＤ１６は単数でも複数でもよい。メモリ１４は、不揮発領域（ＲＯＭ領域）と高性能領域（ＲＡＭ領域）を有する。
【００２３】
本実施形態では、記憶装置は論理ディスク装置（以下、「ＬＵ」（Ｌｏｇｉｃａｌ  Ｕｎｉｔ））を外部装置に対して提供し、データのアクセス単位としてブロックを用いることにする。
【００２４】
記憶装置４０を制御するプログラムである制御プログラム４４は、メモリ１４の不揮発領域に記憶され、起動時にメモリ１４の高性能領域へ移された後にＣＰＵ１２により実行される。記憶装置４０が有する機能は、全て制御プログラム４４により実現・制御される。
【００２５】
また、メモリ１４には制御プログラム４４が記憶装置４０を制御・管理するために利用する管理情報４６が記憶される。さらに、メモリ１４の一部は外部装置からアクセス要求のあったデータを一時的に記憶しておく領域であるデータキャッシュ４２に割り当てられる。
【００２６】
記憶装置４０は、ＨＤＤ１６が有する物理記憶領域を仮想化して、一つまたは複数のＬＵ２０８を外部装置に対して提供する。ＬＵ２０８は、ＨＤＤ１６と一対一に対応してもよいし、複数のＨＤＤ１６から構成される記憶領域と対応してもよい。また、一つのＨＤＤ１６が複数のＬＵ２０８に対応してもよい。その対応関係は、管理情報４６中に領域マッピング情報３００の形で保持される。記憶装置４０は、ＬＵ２０８の作成・削除、ＬＵ２０８の記憶領域の拡大・縮小を動的に（従来技術の項の定義参照）おこなう機能を有する。また、記憶装置４０は、ＬＵ２０８とそのデータを記憶するＨＤＤ１６の記憶領域との対応関係をデータ移動により動的に変更する機能を有する。
【００２７】
記憶装置４０は、ＬＵ２０８をアクセス可能なＩ／ＯパスＩ／Ｆ３２のＩ／Ｏパス３４へのポート２６を一つ以上有する。また、ネットワークＩ／Ｆ２２におけるネットワーク２４へのポートを有する。
【００２８】
ポートとアクセスするデータの対応関係は、上位ポートマッピング情報３２２（図４で後述）の形で管理情報４６中に保持される。また、記憶装置４０は、ＬＵ２０８をアクセス可能なポート２６を動的に追加・削除する機能を有する。
【００２９】
記憶装置４０では、ＬＵ２０８を単位として記憶領域のグループ化が行われ、そのグループ毎に独立したデータキャッシュ４２内の領域が割り当てられる（以下、このＬＵ２０８のグループを「キャッシュグループ」と称する）。キャッシュグループの作成・削除や、それに所属するＬＵ２０８の追加・削除は、動的におこなうことができる。また、記憶装置４０は、キャッシュグループへのデータキャッシュ４２の割当量を動的に変更する機能を有する。キャッシュグループにおけるキャッシュデータ置換制御は、それぞれ独立にＬＲＵ置換アルゴリズムを用いておこなう。また、前記アルゴリズムによるデータ置換によりデータキャッシュ４２に存在しなくなったデータの記憶領域に関しても、置換後も一定量分は仮想管理領域としてＬＲＵ置換アルゴリズム用の管理リスト中にその情報を記憶し、稼動状況の計測に利用する。
【００３０】
記憶装置４０は、Ｉ／ＯパスＩ／Ｆ３２のポート２６毎に、特定の外部装置からアクセス要求を、単位時間あたりの処理量が設定値を満たすように優先的に実行する機能（以下「優先アクセス制御機能」）を有する。その設定は、管理情報４６中にポートスループット設定情報４４０（図８で後述）の形で保持される。記憶装置４０は、ポート２６における優先アクセス制御機能の設定を作成・変更・削除する機能を有する。
【００３１】
制御プログラム４４は、記憶装置４０の現存する各部位の稼動状況を計測し、それを管理情報４６中にストレージモニタ情報３６０の形で記憶する。特に、キャッシュヒット数統計に関し、ＬＲＵ置換アルゴリズム用のキャッシュセグメント（データキャッシュ４２の領域管理単位）の管理リストを等サイズの複数領域に分割し、分割領域毎にヒット数を計測する。さらに、仮想管理領域に関しても実管理領域（実際にデータに対してキャッシュセグメントが割り当てられている領域）と等サイズの領域に分割して実管理領域と同様にヒット数を計測する。
【００３２】
記憶装置４０は、外部からの要求に応じて、領域マッピング情報３００やストレージモニタ情報３６０、ポートスループット設定情報４４０、その他記憶装置４０の構成情報を、ネットワーク２４を介して外部に送信する機能を有する。なお、ここで出てきたデータ構造については、いずれも詳細に後述する。
【００３３】
また、外部装置からネットワーク２４を介して外部から受信した指示に従い、前述の各種機能を実行する機能を有する。
【００３４】
仮想化スイッチ６０は、ＣＰＵ１２、メモリ１４、ネットワークＩ／Ｆ２２、Ｉ／ＯパスＩ／Ｆ３２を有し、それらは内部バス１８で接続される。メモリ１４は、不揮発領域（ＲＯＭ領域）と高性能領域（ＲＡＭ領域）を有する。
【００３５】
仮想化スイッチ６０を制御するプログラムである制御プログラム６４は、メモリ１４の不揮発領域に記憶され、起動時にメモリ１４の高性能領域へ移された後にＣＰＵ１２により実行される。仮想化スイッチ６０が提供する機能は、全て制御プログラム６４により制御される。また、メモリ１４には、制御プログラム６４が仮想化スイッチ６０を制御・管理するために利用する管理情報６６が記憶される。
【００３６】
仮想化スイッチ６０は、本装置に接続された記憶装置４０から提供されるＬＵ２０８を認識し、その記憶領域を仮想化して仮想ボリューム２０６を外部装置に提供する。なお、仮想化スイッチ６０が多段接続された場合には、他の仮想スイッチ６０が提供する仮想ボリューム２０６を記憶装置４０から提供されるＬＵ２０８と等価に扱い、その記憶領域を仮想化して仮想ボリューム２０６を外部装置に提供する。その対応関係は管理情報６６中に領域マッピング情報３００の形で保持される。仮想化スイッチ６０は、仮想ボリューム２０６の作成・削除、仮想ボリューム２０６の記憶領域の拡大・縮小を動的におこなう機能を有する。さらに、仮想ボリューム２０６を構成するＬＵ２０８や他の仮想ボリューム２０６の記憶領域との対応関係を動的に変更する機能を有する。また、仮想化スイッチ６０は、それが保持する領域マッピング情報３００で後述するフリーエントリ３１４に対応する領域について、領域マッピング情報３００から削除する（以下「領域を開放する」）機能を有する。
【００３７】
仮想化スイッチ６０では、仮想ボリューム２０６をアクセス可能なＩ／ＯパスＩ／Ｆ３２のポート２６を一つ以上有する。その対応関係は、上位ポートマッピング情報３２２（後述）の形で管理情報６６中に保持される。また、仮想ボリューム２０６をアクセス可能なポート２６を動的に追加・削除する機能を有する。
【００３８】
仮想化スイッチ６０が提供する仮想ボリューム２０６がアクセスされた際、実施されたアクセス回数やその種別、転送されたデータ量をＩ／ＯパスＩ／Ｆ３２のポート２６毎に計測し、それを管理情報６６中にポートモニタ情報４００（図９で後述）の形で記憶する。
【００３９】
仮想化スイッチ６０は、外部からの要求に応じて、領域マッピング情報３００やポートモニタ情報３６０を、ネットワーク２４を介して外部に送信する機能を有する。また、外部装置からネットワーク２４を介して外部から受信した指示に従い、前述の各種機能を実行する機能を有する。なお、これらのデータ構造については、後に詳細に説明する。
【００４０】
サーバ７０は、ＣＰＵ１２、メモリ１４、ＨＤＤ１６、ネットワークＩ／Ｆ２２、Ｉ／ＯパスＩ／Ｆ３２を有し、それらは内部バス１８で接続される。
【００４１】
メモリ１４上には、オペレーティングシステム（ＯＳ，Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）７２と管理エージェント１４４がＨＤＤ１６から読み込まれ、ＣＰＵ１２により実行される。
【００４２】
ＯＳ７２には、デバイスドライバ７６、ボリュームマネージャ７８、ファイルシステム８０が含まれる。メモリ１４上に読み込まれたＯＳ７２は、それらや他のＯＳ７２を構成するプログラムが利用する管理情報であるＯＳ管理情報７４を有する。ＯＳ管理情報７４には、ＣＰＵ１２の数等、サーバ７０のハードウェア構成の情報を含まれる。また、ＯＳ７２は、ＯＳ管理情報７４中に記憶されている情報を外部プログラムが読むためのソフトウェアインターフェイスを有する。なお、図１に示した例では、サーバ７０は一つのファイルシステム８０しか有していないが、複数のファイルシステム８０を有してもよい。ＯＳ７２は、ＯＳ７２が動作している計算機で実施されるプログラムの管理をおこなう。このとき、実行中のプログラム全体がＣＰＵ１２をどれだけ利用したかを計測、それを基にＣＰＵ１２の稼働率を計算し、ＯＳ管理情報７４中に保持する。
【００４３】
デバイスドライバ７６は、ネットワークＩ／Ｆ２２やＩ／ＯパスＩ／Ｆ３２等のハードウェアを制御するプログラムである。ネットワークＩ／Ｆ２２やＩ／ＯパスＩ／Ｆ３２を通してデータ転送（アクセス）をおこなった際に、実施された回数やその種別、転送されたデータ量をネットワークＩ／Ｆ２２やＩ／ＯパスＩ／Ｆ３２のポート２６毎に計測し、それをＯＳ管理情報７４中にポートモニタ情報４００の形で記憶する。
【００４４】
ボリュームマネージャ７８は、記憶装置４０から提供されるＬＵ２０８や仮想化スイッチ６０から提供される仮想ボリューム２０６の記憶領域を仮想化し、論理ボリューム２０４をファイルシステム８０に提供するプログラムである。その対応関係はＯＳ管理情報７４中に領域マッピング情報３００の形で保持される。また、ボリュームマネージャ７８は論理ボリューム２０４の構成変更（作成・削除を含む）を動的に実施する機能を有し、ボリュームマネージャ７８が有するソフトウェアインターフェイスにより実行指示を与えることができる。ボリュームマネージャ７８は、それが保持する領域マッピング情報３００でフリーエントリ３１４に対応する領域を開放する機能を有する。また、ボリュームマネージャ７８は、複数Ｉ／Ｏパス３４を利用したＩ／Ｏ処理の負荷分散機能を有してもよい。
【００４５】
ファイルシステム８０は、記憶装置４０から提供されるＬＵ２０８や仮想化スイッチ６０から提供される仮想ボリューム２０６、ボリュームマネージャ７８から提供される論理ボリューム２０４の記憶領域を仮想化し、ファイル２０２を他のプログラムに提供するプログラムである。その対応関係はＯＳ管理情報７４中に領域マッピング情報３００の形で保持される。なお、ファイル２０２と同じソフトウェアインターフェイスで、論理ボリューム２０４、仮想ボリューム２０６、ＬＵ２０８の記憶領域に直接アクセスする機能であるローデバイス機能も、ファイルシステム８０により提供される。
【００４６】
管理エージェント１４４は、管理サーバ１２０上で実行されるシステム管理プログラム１４０からネットワーク２４を介して受け付けた処理要求をサーバ７０で実行し、必要に応じてその結果をネットワーク２４を介してシステム管理プログラム１４０に返信するプログラムである。管理エージェント１４４が実施する処理は、１）ＯＳ管理情報７４中に記憶されている情報の読み出し、２）ＤＢＭＳ９０やＡＰプログラム１００の実行・停止、３）ＤＢＭＳ管理情報９２中に記憶されている情報の読み出し、４）ＤＢＭＳ９０にＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）文を与え、ＳＱＬ実行計画を取得、５）ＡＰプログラム管理情報１０２中に記憶されている情報の読み出し、６）ボリュームマネージャ７８に対する構成変更指示、７）ＯＳ７２に対する各種設定指示、等である。
【００４７】
ＤＢＭＳ９０は、ＤＢに関する一連の処理・管理を実行するサーバ７０上で実行されるプログラムである。ＤＢＭＳ９０は、システム管理プログラム１４０からの指示に従って管理エージェント１４４から起動されて、サーバ７０内のＨＤＤ１６または記憶装置４０からメモリ１４に読み出されてＣＰＵ１２により実行される。
【００４８】
ＤＢＭＳ９０は、記憶領域の管理単位として、一つ以上のファイル２０２が提供する記憶領域からなる「データ領域」を用いる。ＤＢＭＳ９０が利用・管理する表・索引・ログ等（以下、まとめて「データ構造」と称する）は、それぞれ記憶されるべきデータ領域が定められている。データ領域の一部は、データ構造に対して未割り当てでもよい。
【００４９】
メモリ１４上に読み込まれたＤＢＭＳ９０は、データ記憶領域情報３４２を含むＤＢＭＳ９０の管理情報であるＤＢＭＳ管理情報９２を有する。ＤＢＭＳ９０は、ＤＢＭＳ管理情報９２を外部プログラムが読むためのソフトウェアインターフェイスを有する。
【００５０】
ＤＢＭＳ９０は、ＳＱＬ文を与えるとそれの実行計画（以下、「ＳＱＬ実行計画」と称す）を作成したのちにそれに従って処理を実行する。基本的に、検索条件以外同じＳＱＬ文を与えると同じＳＱＬ実行計画を作成する。ＤＢＭＳ９０は、与えたＳＱＬ文のＳＱＬ実行計画を出力するソフトウェアインターフェイスを有する。また、ＳＱＬ実行計画を出力するときに、ＤＢＭＳ９０が見積もった処理件数等を同時に出力してもよい。
【００５１】
ＡＰプログラム１００は、ユーザがおこなう業務のためにサーバ７０上で実行されるプログラムであり、ＤＢＭＳ９０に対して処理要求を発行するものとする。ＡＰプログラム１００は、システム管理プログラム１４０からの指示に従って管理エージェント１４４から起動され、サーバ７０内のＨＤＤ１６または記憶装置４０からメモリ１４に読み出されてＣＰＵ１２により実行される。メモリ１４上に読み込まれたＡＰプログラム１００は、その管理情報であるＡＰプログラム管理情報１０２を有する。なお、ＡＰプログラム１００は記憶装置４０に記憶されるデータを扱う際に常にＤＢＭＳ９０に処理要求を発行してもよく、その場合には、ＡＰプログラム１００が実行されるサーバ７０はＩ／ＯパスＩ／Ｆ３２を有さなくてもよい。
【００５２】
本実施形態におけるオンライン業務のために実行されるＡＰプログラム１００は、一つ以上の処理の組として実現され、処理それぞれに識別子である処理ＩＤ４３２がつけられる。ユーザはそのいずれかの処理実行を要求し、ＡＰプログラム１００はそれに応じて処理を実施する。ＡＰプログラム１００は受け付けた処理要求のキューイング制御を実施し、ＡＰプログラム１００からＤＢＭＳ９０に対して処理要求を発行した場合には、ＤＢＭＳ９０で即座に処理を開始できるものとする。ＡＰプログラム１００は、処理に関する実行統計情報を取得し、それをオンラインＪｏｂモニタ情報４３０（図１０で後述）としてＡＰプログラム管理情報１０２中に保持する。このとき、ＡＰプログラム１００は、ＡＰプログラム管理情報１０２を外部プログラムが読むためのソフトウェアインターフェイスを有する。
【００５３】
ＤＢＭＳ９０やＡＰプログラム１００は、１台のサーバ７０上で複数同時に実行することができる。また、ＤＢＭＳ９０とＡＰプログラム１００が異なるサーバ７０上で実行されてもよく、その場合には、ＡＰプログラム１００はＤＢＭＳ９０に処理要求をネットワークを経由して伝達する。
【００５４】
ＯＳ７２やＤＢＭＳ９０、ＡＰプログラム１００、管理エージェント１４４は、それらを記憶したＣＤ−ＲＯＭ（記憶媒体）が管理サーバ１２０が有するＣＤ−ＲＯＭドライブ２０を用いて読み出され、ネットワーク２４を介してサーバ７０内のＨＤＤ１６もしくは記憶装置４０にインストールされる。
【００５５】
管理サーバ１２０は、ＣＰＵ１２、メモリ１４、ＨＤＤ１６、ＣＤ−ＲＯＭドライブ２０、ネットワークＩ／Ｆ２２を有し、それらは内部バス１８で接続される。
【００５６】
メモリ１４上には、ＯＳ７２とシステム管理プログラム１４２がＨＤＤ１６から読み込まれ、ＣＰＵ１２により実行される。ＣＤ−ＲＯＭドライブ２０は、各種プログラムのインストールに用いられる。
【００５７】
また、管理サーバ１２０には、キーボード・マウス等の入力装置１１２および表示画面１１４を有する管理端末１１０がネットワーク２４を介して接続される。この接続は、ネットワーク２４とは異なる通信線を用いてもよく、管理サーバ７２と管理端末１１０が一体で構成されてもよい。管理者は、原則、情報の入出力を管理端末１１０を介して行い、必要に応じてＣＤ−ＲＯＭドライブ２０等も用いる。
【００５８】
システム管理プログラム１４０は、管理サーバ１２０が有する、性能その他のシステム管理機能を実現するプログラムである。ＨＤＤ１６からメモリ１４上に読み込まれ、ＣＰＵ１２により実行される。システム管理プログラム１４０は、その機能を実現するために必要な管理情報であるシステム管理情報１４２を有する。本プログラムは、それを記憶したＣＤ−ＲＯＭが管理サーバ１２０が有するＣＤ−ＲＯＭドライブ２０を用いて読み出され、ＨＤＤ１６にインストールされる。本プログラムの動作詳細については後述する。
【００５９】
なお、本実施形態の例では、システム管理プログラム１４０は管理サーバ１２０上で実行されるものとして説明するが、任意のサーバ７０、仮想化スイッチ６０、記憶装置４０上で実行されてもよい。このとき、サーバ７０では、ＨＤＤ１６に記憶され、メモリ１４に読み出された後にＣＰＵ１２により実行される。仮想化スイッチ６０、記憶装置４０では、メモリ１４の不揮発領域に記憶され、メモリ１４の高性能領域に移された後にＣＰＵ１２により実行される。
（ＩＩ）データマッピングの階層構造
次に、図２を用いて本実施形態のＤＢＭＳ９０が管理するデータのデータマッピングの階層構成について説明する。
図２は、本発明の第一の実施形態に係るＤＢＭＳ９０が管理するデータのデータマッピングの階層構成図である。
【００６０】
本実施形態の例では、サーバ７０と記憶装置４０との間に一つの仮想化スイッチ６０が存在する場合を説明する。なお、以下、ある２つの階層について、ＤＢＭＳ９０に近い方（すなわち、アプリケーション側）を「上位」、ＨＤＤ１６に近い方（すなわち、物理的記憶手段側）を「下位」の階層と称する。また、記憶装置４０、仮想化スイッチ６０、ボリュームマネージャ７８、ファイルシステム８０をまとめて「仮想化機構」と称する。ファイル２０２、論理ボリューム２０４、仮想ボリューム２０６、ＬＵ２０８をまとめて「仮想構造」と称し、さらに、仮想構造にＨＤＤ１６を加えたものをまとめて「管理構造」と称する。
【００６１】
図２で示した例では、ＤＢＭＳ９０は、それが管理しているデータ構造２００を記憶しているファイルシステム８０が提供するファイル２０２に対してアクセスをおこなう。ファイルシステム８０は、ファイル２０２に対するアクセスを対応する論理ボリューム２０４の領域へのアクセスに変換する。ボリュームマネージャ７８は、論理ボリューム２０４に対するアクセスを対応する仮想ボリューム２０６の領域へのアクセスに変換する。仮想化スイッチ６０は、仮想ボリューム２０６に対するアクセスを対応するＬＵ２０８の領域へのアクセスに変換する。記憶装置４０は、ＬＵ２０８に対するアクセスを、対応するＨＤＤ１６に対するアクセスに変換する。このように、仮想化機構は、それが上位階層に提供する仮想構造のデータを下位階層に存在する一つ以上の管理構造の記憶領域にマッピングする。
【００６２】
また、図示しないが、ある仮想構造のデータの同一部分が複数の下位階層の管理構造にマッピングされてもよい。また、ある仮想構造のデータがＨＤＤ１６にマッピングされる経路が複数存在してもよい。これらの場合には、仮想化機構が、そのようなマッピングであることを領域マッピング情報３００中に保持しておく。さらに、ある管理構造が複数のサーバ７０に共有されるマッピングを有してもよい。
【００６３】
本実施形態では、論理層２１２における管理構造間のデータの対応関係が明確化されればよく、サーバ７０でボリュームマネージャ７８が使用されなくてもよい。さらに、仮想化スイッチ６０は、複数段存在してもよいし、仮想化スイッチ６０が存在せずにサーバ７０と記憶装置４０がＩ／Ｏパス３４により直結されてもよい。仮想化スイッチ６０に相当するスイッチが記憶領域の仮想化機能を有しなくてもよく、この場合、仮想化スイッチ６０が下位階層から提供された管理構造をそのまま上位階層へ仮想構造として提供していると考える。
【００６４】
なお、本実施形態の階層構成のモデルで、一つのＬＵ２０８には一つのデータ構造２０８のみが記憶されるようにマッピングを作成すると、後述する記憶装置４０の構成変更を変更した際の効果見積の精度向上等に役立つというメリットがある。
（ＩＩＩ）データ構造
次に、図３ないし図１７を用いて本実施形態の性能管理方法に用いられるデータ構造について説明する。
【００６５】
先ず、図３を用いて領域マッピング情報３００を説明する。
図３は、領域マッピング情報３００のデータ構造を示す模式図である。
【００６６】
領域マッピング情報３００は、各仮想化機構の管理情報の中に置かれ、仮想化機構が提供する仮想構造の領域と、それが利用する管理構造の領域の対応を保持するものであり、エントリ３０２、３０４を有する。
【００６７】
なお、ここでの説明では、上位仮想構造と下位管理構造を対応させるものとして、モデル化しているが、実際には、各対応する仮想化機構に応じて、（ファイル、論理ボリューム）、（論理ボリューム、仮想ボリューム）、（仮想ボリューム、論理ディスク装置）、（論理ディスク装置、ＨＤＤ）の対応を示すものになる。
【００６８】
エントリ３０２は、仮想化機構が上位階層に提供する仮想構造の領域に関する情報であり、仮想構造の識別子である仮想構造ＩＤ３０６を保持するエントリ、その構造内の領域を示すエントリ、その領域が下位階層の複数の仮想構造へ記憶されたり、異なる経路でＨＤＤ１６に対応している場合に、それらを識別するための多重化方法を示すエントリの組を有する。エントリ３０４は、エントリ３０２に対応する下位階層の管理構造の領域に関する情報であり、管理構造をアクセスする際に利用するＩ／ＯパスＩ／Ｆ３２のポート２６の識別子であるポートＩＤ３２６を保持するエントリ、管理構造を提供する仮想化機構の識別子である仮想化機構ＩＤ３０８を保持するエントリ、管理構造の識別子である管理構造ＩＤ３１０を保持するエントリ、その構造内領域を示すエントリの組を有する。なお、ファイルシステム８０がボリュームマネージャ７８が提供する論理ボリューム２０４を利用する場合には、ポートＩＤ３２６を保持するエントリを保持しない。また、記憶装置４０においては、ポートＩＤ３２６と仮想化機構ＩＤ３０８を有するエントリを保持しない。
【００６９】
仮想構造ＩＤ３０６が“Ｆｒｅｅ”であるフリーエントリ３１４は、本領域マッピング情報３００を有する仮想化機構が、その領域を利用できる状態にあるが、まだ仮想構造として利用していない下位階層の記憶領域を示すことにする。データ移動による対応関係の動的変更機能を有する仮想化機構は、フリーエントリ３１４に対応する管理構造の記憶領域をデータ移動先として利用する。
【００７０】
本実施形態においては、異なる仮想構造が同一の管理構造の記憶領域を利用することが許されるものとする。また、仮想化機構ＩＤ３０８、仮想構造ＩＤ３０６、管理構造ＩＤ３１０、ポートＩＤ３２６はシステム内で一意に定まる識別子であるとする。あるいは、システム内で一意でない場合でも、装置の識別子を付加することによりシステム内で一意に定まるようにする。
【００７１】
次に、図４を用いて上位ポートマッピング情報３２２について説明する。
図４は、上位ポートマッピング情報３２２のデータ構造を示す模式図である。
【００７２】
上位ポートマッピング情報３２２は、仮想化スイッチ６０の管理情報６６および記憶装置４０の管理情報４６の中に置かれ、あるポートを通して外部装置に提供される仮想構造を管理する情報であり、ポートＩＤ３２６を保持するエントリと、対応する仮想構造ＩＤ３０６を保持するエントリの組を保持する。
【００７３】
次に、図５を用いてデータ記憶領域情報３４２について説明する。
図５は、データ記憶領域情報３４２のデータ構造を示す模式図である。
【００７４】
データ記憶領域情報３４２は、サーバ７０のＤＢＭＳ管理情報９２の中に置かれ、ＤＢＭＳ９０が管理するデータの記憶領域管理に用いる情報であり、データ領域の名前であるデータ領域名３４４を保持するエントリ、データ構造の名前であるデータ構造名３４６を保持するエントリ、対応データがファイル２０２のどの位置に記憶されているかの情報であるデータ記憶位置３４８を保持するエントリの組からなる。
【００７５】
次に、図６を用いてキャッシュグループ情報４６０について説明する。
図６は、キャッシュグループ情報４６０のデータ構造を示す模式図である。
【００７６】
キャッシュグループ情報４６０は、記憶装置４０の管理情報４６の中に置かれ、記憶装置４０がキャッシュグループの管理に用いる情報であり、キャッシュグループの識別子であるキャッシュグループＩＤ４６２を保持するエントリと、そのキャッシュグループに対して割り当てられるキャッシュセグメント数の情報である割当セグメント数４６４を保持するエントリ、そのキャッシュグループに属するＬＵ２０８の識別子であるＬＵＩＤ３６４を保持するエントリの組を有する。
【００７７】
次に、図７を用いてストレージモニタ情報３６０について説明する。
図７は、ストレージモニタ情報３６０のデータ構造を示す模式図である。
【００７８】
ストレージモニタ情報３６０は、記憶装置４０の管理情報４６の中に置かれ、記憶装置４０の稼動状況に関するデータを保持しており、キャッシュモニタ情報３６２、ストレージポートモニタ情報３８２、ＨＤＤモニタ情報３９２を含んでいる。
【００７９】
キャッシュモニタ情報３６２は、ＬＵ２０８が外部装置からアクセスされた場合にどのキャッシュヒットしたかに関する稼動統計情報である。
【００８０】
キャッシュモニタ情報３６２は、実管理領域の分割数を示す実領域分割数５０２と、実管理領域の分割後のサイズを単位とした仮想管理領域の保持量を示す仮想管理領域数５０４を含む。また、ＬＵ２０８毎のキャッシュヒット数の統計値として、ＬＵＩＤ３６４を保持するエントリと、それに対応するリード／ライトのＩ／Ｏ種別３６６を保持するエントリ、それに対応するＩ／Ｏ処理の累積実行回数３６８を保持するエントリ、そのときにヒットした回数を示すキャッシュヒット回数累計３７０を保持するエントリの組を保持する。なお、キャッシュヒット回数累計３７０は、実管理領域でのヒット数の総累計値と、実管理領域と仮想管理領域の双方で分割された各領域でのヒット数の累計値を保持する。本実施形態では、実管理領域と仮想管理領域を統合して分割された領域に通番を付加し、最も最近利用されたデータが存在する領域を第１領域、以下小さい通番の領域ほど最近利用されたデータを有する領域であるとする。
【００８１】
ストレージポートモニタ情報３８２は、ＬＵ２０８毎にＩ／ＯパスＩ／Ｆ３２のポート２６を利用してどれだけデータ転送処理が実施されたかの実行統計情報で、ポートＩＤ３８４を保持するエントリとＬＵＩＤ３６４を保持するエントリ、それに対応するＩ／Ｏ処理の累積実行回数３６８を有するエントリと累積データ転送量３８６を保持するエントリの組を有する。
【００８２】
ＨＤＤモニタ情報３９２は、ＬＵ２０８毎にＨＤＤ１６をどれだけ利用しているかの実行統計情報で、ＨＤＤの識別子であるＨＤＤＩＤ３９４を保持するエントリとＬＵＩＤ３６４を保持するエントリ、それに対応する実際に処理をおこなっていた時間（待ち時間を含まない）の累積値である累積処理時間３９６を保持するエントリの組を保持する。
【００８３】
次に、図８を用いてポートスループット設定情報４４０について説明する。
図８は、ポートスループット設定情報４４０のデータ構造を示す模式図である。
【００８４】
ポートスループット設定情報４４０は、記憶装置４０の管理情報４６の中に置かれ、特定のポート２６に対して外部装置の特定ポート２６からアクセス処理量を制限する優先アクセス制御機能のための設定情報である。このポートスループット設定情報４４０は、ポートＩＤ３８４を保持するエントリとアクセス元ポートＩＤ４４２を保持するエントリ、最大データ転送量４４４を保持するエントリと、最大Ｉ／Ｏ処理量４４４を保持するエントリ４４６の組を有する。
【００８５】
アクセス元ポートＩＤ４４２とは、制限をかけるポート２６にアクセスしてくる外部装置のポート２６のポートＩＤである。最大データ転送量４４４とは、ポート２６に対応する単位時間あたりの最大転送量設定値である。最大Ｉ／Ｏ処理量４４４とは、単位時間あたりの最大Ｉ／Ｏ処理量の設定値である。
【００８６】
次に、図９を用いてポートモニタ情報４００について説明する。
図９は、ポートモニタ情報４００のデータ構造を示す模式図である。
【００８７】
ポートモニタ情報４００は、仮想化スイッチ６０の管理情報６６およびサーバ７０のＯＳ管理情報７４の中に置かれ、ポート２６によりおこなわれたデータ転送処理に関する実行統計情報であり、ポートＩＤ３８４を保持するエントリと、対応するＩ／Ｏ種別３６６を保持するエントリ、Ｉ／Ｏ処理の累積実行回数３６８を有するエントリ、処理要求の発行／受取から処理完了までの時間（待ち時間を含む）である応答時間の累積値である累積応答時間４０２を保持するエントリ、累積データ転送量３８６を保持するエントリの組を有する。
【００８８】
次に、図１０を用いてオンラインＪｏｂモニタ情報４３０について説明する。
図１０は、オンラインＪｏｂモニタ情報４３０のデータ構造を示す模式図である。
【００８９】
オンラインＪｏｂモニタ情報４３０は、サーバ７０のＡＰ管理情報１０２の中に置かれ、ＡＰプログラム１００が取得するオンラインＪｏｂのための実行統計情報であり、処理ＩＤ４３２を保持するエントリ、対応する処理の累積実行回数３６８を保持するエントリ、その処理の累積応答時間４０２を保持するエントリ、その処理をＤＢＭＳ９０に対して発行した際の累積処理時間３９６を保持するエントリの組を有する。
【００９０】
次に、図１１を用いてストレージ性能情報６１０について説明する。
図１１は、ストレージ性能情報６１０のデータ構造を示す模式図である。
【００９１】
ストレージ性能情報６１０は、管理装置１２０のシステム管理情報１４２中に保持される情報であり、ＨＤＤ性能情報６１２とポート性能情報６１６を有する。この情報は、記憶装置４０やその対応部位の型式を取得し、それと事前に与えられた型式毎の性能情報と組み合わせて作成される。
【００９２】
ＨＤＤ性能情報６１２は、ＨＤＤ１６のアクセス性能に関する情報であり、記憶装置４０の識別子である装置ＩＤ５７２を保持するエントリとＨＤＤＩＤ３９４を保持するエントリ、それに対応するＨＤＤ１６が有するアクセス性能に関する情報であるアクセス性能情報６１２を含むエントリの組を有する。
【００９３】
アクセス性能情報６１２は、ランダムアクセス時のリードでキャッシュヒットした／しない（ミスした）場合、ライトでキャッシュヒットした／しない場合のそれぞれの平均応答時間を保持する。
【００９４】
ポート性能情報６１６は、記憶装置４０のＩ／ＯパスＩ／Ｆ３２のポート２６の最大性能に関する情報であり、装置ＩＤ５７２を保持するエントリとポートＩＤ３８４を保持するエントリ、対応するポート性能情報６１８を含むエントリの組を有する。ポート性能情報６１２は、そのポートの最大性能の情報として最大Ｉ／Ｏ処理量（ＩＯＰＳ）と最大データ転送量（ＭＢ／ｓ）の組を保持する。
【００９５】
次に、図１２を用いてモニタ履歴情報５１０について説明する。
図１２は、モニタ履歴情報５１０のデータ構造を示す模式図である。
【００９６】
モニタ履歴情報５１０は、管理装置１２０のシステム管理情報１４２中に保持される情報であり、各装置やプログラムが集めるモニタ情報であり、これまで説明してきたキャッシュモニタ情報３７０、ストレージポートモニタ情報３８２、ＨＤＤモニタ情報３９２、ポートモニタ情報４００、オンラインＪｏｂモニタ情報４３０、そして、ＯＳ７２が計算するＣＰＵ１２の稼働率（以下これらをまとめて「モニタ情報」と称す）を取得し、それを適当な形に編集した情報を履歴情報として保持するものである。
【００９７】
稼動状況がモニタされている部位（キャッシュモニタ情報３７０、ストレージポートモニタ情報３８２、ＨＤＤモニタ情報３９２に関しては、アクセス先のＬＵ２０８も含む）に関して、システム内で一意に定まるモニタ部位ＩＤ５１４が付加される。
【００９８】
モニタ履歴情報５１０は、モニタ部位ＩＤ５１４を保持するエントリとそのモニタ内容５１６を示す情報を保持するエントリと、対応する前回取得情報５１８を保持するエントリと、履歴情報５２０を保持するエントリの組を有する。モニタ内容５１６の具体的な内容としては、各モニタ情報のデータ構造を説明する際に説明した通りである。
【００９９】
前回取得情報５１８は、前回モニタ情報の値を取得した日時のエントリとその取得値のエントリを有する。
【０１００】
履歴情報５２０は、履歴として集計・記憶される値の内容を示す履歴内容５２２を保持するエントリと、ある期間のモニタ値であるサンプル５２４を保持する複数のエントリからなる。本実施形態おける履歴内容５２２としては、ストレージポートモニタ情報３８２から記憶装置４０のＩ／ＯパスＩ／Ｆ３２のポート２６におけるＬＵ２０８毎の平均実行回数と平均データ転送量、キャッシュモニタ情報３７０からＬＵ２０８におけるリード／ライト毎の平均実行回数と平均実ヒット率と、リードの領域毎の平均ヒット率（期間内の領域でのリードヒット回数／期間内のＬＵ２０８へのリード実行回数）、ＨＤＤモニタ情報からＨＤＤ１６におけるＬＵ２０８毎の平均稼働率、ポートモニタ情報４００から、サーバ７０、仮想化スイッチ６０のＩ／ＯパスＩ／Ｆ３２のポート２６もしくはサーバ７０のネットワークＩ／Ｆのポート２６におけるリード／ライト毎の平均実行回数、平均データ転送量、平均応答時間、オンラインＪｏｂモニタ情報４３０からとしてＡＰプログラム１００における各処理毎の平均実行回数、平均応答時間、平均処理時間、ＯＳ７２が計算するＣＰＵ１２の稼働率からとしてサーバ７０におけるＣＰＵ稼働率がある。
【０１０１】
サンプル５２４は、そこに記憶されたデータがいつの期間のモニタ値かを示すエントリと、その期間における集計値である平均値と最大値をそれぞれ保持するエントリからなる。
【０１０２】
次に、図１３を用いてバッチＪｏｂ管理情報７００について説明する。
図１３は、バッチＪｏｂ管理情報７００のデータ構造を示す模式図である。
【０１０３】
バッチＪｏｂ管理情報７００は、管理サーバ１２０のシステム管理情報１４２の中に置かれるバッチＪｏｂのための管理情報であり、Ｊｏｂの識別子であるＪｏｂＩＤ６２２を保持するエントリ、Ｊｏｂの実行優先度を示すＪｏｂ優先度７０４を保持するエントリ、Ｊｏｂ種別７０６を保持するエントリ、このＪｏｂがどのような開始条件で実行されるかを示す実行条件７０８を保持するエントリ、Ｊｏｂの最大実行時間の設定値である最大実行時間７１０を保持するエントリ、Ｊｏｂを実行するサーバ７０の識別子である実行サーバＩＤ７１２を保持するエントリとそのサーバ７０で実行するコマンドである実行コマンド７１４を保持するエントリの組、Ｊｏｂ依存入力情報７２０、Ｊｏｂ依存出力データ情報７３０、ＣＰＵ処理時間見積方法７１６、Ｊｏｂが利用するデータに関する情報であるＩ／Ｏ処理内容情報７４０ａを含む。実行サーバＩＤ７１２と実行コマンド７１４の組に関しては、複数存在しても良い。
【０１０４】
Ｊｏｂ種別７０６は、バッチＪｏｂ管理情報７００の場合には、バッチ業務向けであることを示す情報が保持される。実行条件７０８の内容として、バッチＪｏｂ管理情報７００では、実行すべき日付や曜日の条件を含めた実行開始時刻、あるいは、一つ以上の別のＪｏｂが完了した時に実行する等がある。
【０１０５】
本実施形態のＪｏｂの実行イメージとしては、バッチＪｏｂは連続して実行され、前段のＪｏｂの出力データを次段のＪｏｂの入力データとして引き継いでいくものを考える。
【０１０６】
Ｊｏｂ依存入力情報７２０は、そのＪｏｂを実行する際に利用するデータに関する情報であり、利用するデータを出力するＪｏｂのＪｏｂＩＤ６２２である前段ＪｏｂＩＤ７２２を保持するエントリと、その入力データの情報であるデータ情報７２４を保持するエントリと、データの行数やファイルサイズ等、データ量の計量単位の情報であるデータ量単位７２６を保持するエントリの組からなる。
【０１０７】
データ情報７２４に記憶される情報は、基本的に、ファイル２０２の識別子またはＤＢＭＳ９０とそれが管理するデータ構造２００の識別子の組等、記憶装置４０に記憶されるデータの識別子であるが、制御情報受け渡しのための識別子でもよい。なお、入力に依存する処理をおこなわない場合、Ｊｏｂ依存入力情報７２０は存在しない。
【０１０８】
Ｊｏｂ依存出力データ情報７３０は、他のＪｏｂ実行に利用されるＪｏｂの出力データに関する情報であり、出力データを利用するＪｏｂのＪｏｂＩＤ６２２である次段ＪｏｂＩＤ７３２を保持するエントリと、その出力データのデータ情報７２４を保持するエントリ、データ量単位７２６を保持するエントリの組からなる。Ｊｏｂ終了時に処理完了情報として返す出力データ量は、Ｊｏｂ依存出力データ情報７３０中のデータ量単位７２６を用いて計測する。なお、出力データを利用するＪｏｂが存在しない場合には、Ｊｏｂ依存出力データ情報７３０は存在しない。
【０１０９】
ＣＰＵ処理時間見積方法７１６は、処理の実行時間のうちサーバ７０のＣＰＵ１２がボトルネックとなっている時間を見積る方法に関する情報である。
【０１１０】
Ｉ／Ｏ処理内容情報７４０ａは、Ｊｏｂが利用するデータに関する情報であり、このＪｏｂが利用するデータのデータ情報７２４を保持するエントリと、対応するデータの、アクセス順７４２を保持するエントリ、Ｉ／Ｏネック７４４を保持するエントリ、Ｉ／Ｏタイプ７４６を保持するエントリ、Ｉ／Ｏベース性能７４８を保持するエントリ、入力データ量から処理量を見積る方法の情報である処理量見積７５２を保持するエントリ、Ｊｏｂ実行時に記憶装置４０に対して指示すべき内容であるストレージヒント７５４を保持するエントリの組を有する。なお、ストレージヒント７５４は、記憶装置４０に関する様々な内容が考えられるが、本実施形態では、データに対するキャッシュ量の明示的設定とした。
【０１１１】
アクセス順７４２はアクセス順に関する情報で、番号が若いほど先にアクセスされ、同じ値のものは同時にアクセスされることを意味する。Ｉ／Ｏネック７４４は、そのＩ／Ｏ処理が性能ボトルネックに、なる／ならないを示す情報であり、“Ｙ”“Ｎ”の値を取る。Ｉ／Ｏタイプ７４６はＩ／Ｏ処理種別に関する情報であり、“シーケンシャル”“ランダム”の値を取る。Ｉ／Ｏベース性能７４８は、実行時間の見積り等に利用するＩ／Ｏ性能に関する情報であり、データの複数の記憶装置４０への分散配置等に対応するため、そのデータをアクセスする際に利用される各記憶装置４０の各ポート２６毎にポートＩＤ３８４と性能値の組を保持する。性能値は、Ｉ／Ｏタイプ７４６が“シーケンシャル”の場合にはシーケンシャル性能（データ転送速度）、“ランダム”の場合にはランダム性能（ＩＯＰＳ）となる。また、処理量見積７５２はＩ／Ｏベース性能７４８に保持されるポートＩＤ３８４毎にその情報を保持する。
【０１１２】
次に、図１４を用いてバッチＳＱＬ設計情報８５０を説明する。
図１４は、バッチＳＱＬ設計情報８５０のデータ構造を示す模式図である。
【０１１３】
バッチＳＱＬ設計情報８５０は、バッチジョブ管理情報７００を設定するために管理サーバ１２０に入力され、ＡＰプログラム１００がＤＢＭＳ９０に対して要求する処理に関する情報である。このバッチＳＱＬ設計情報８５０は、設定をおこなうＪｏｂのＪｏｂＩＤ６２２を保持するエントリ、処理をおこなうＤＢＭＳ９０の識別子である実行ＤＢＭＳＩＤ８５２を保持するエントリ、主入力データ８５４を保持するエントリ、ＳＱＬＩＤ８５８ａを保持するエントリと対応する実行ＳＱＬ文８６０を保持するエントリの組、データ情報７２４を保持するエントリとそれに対応するＳＱＬＩＤ８５８ｂを保持するエントリの組、繰り返し実行ＳＱＬ情報８６２を有する。
【０１１４】
主入力データ８５４とは、その量がＡＰプログラム１００のＣＰＵ処理時間に一番大きく影響を与えるデータである。
【０１１５】
ＳＱＬＩＤ８５８ａは、ＡＰプログラム１００が実施する順に通番が振られ、ＡＰプログラム１００がＤＢＭＳ９０に発行するＳＱＬ文の情報として、ＳＱＬＩＤ８５８と実行されるＳＱＬ文である実行ＳＱＬ文８６０が対応して保持される。
【０１１６】
ＳＱＬＩＤ８５８ｂは、入出力データとしてファイル２０２を利用する場合に、そのデータ情報７２４と、そのデータ情報を利用したり、結果を保存するＳＱＬ文のＩＤである。
【０１１７】
繰り返し実行ＳＱＬ情報８６２は繰り返し実行されるＳＱＬ文に関する情報であり、ＳＱＬＩＤセット８６４を保持するエントリと、その繰り返しの際の入力データのデータ情報７２４を保持するエントリの組を有する。ＳＱＬＩＤセット８６４とは、繰り返し実行される一つまたは複数のＳＱＬ文のＳＱＬＩＤ８５８の組である。
次に、図１５を用いてオンラインＪｏｂ管理情報７７０について説明する。
図１５は、オンラインＪｏｂ管理情報７７０のデータ構造を示す模式図である。
【０１１８】
オンラインＪｏｂ管理情報７７０は、管理サーバ１２０のシステム管理情報１４２の中に置かれ、オンラインＪｏｂを管理するための情報であり、ＪｏｂＩＤ６２２を保持するエントリ、Ｊｏｂ優先度７０４を保持するエントリ、Ｊｏｂ種別７０６を保持するエントリ、実行条件７０８を保持するエントリ、要求性能７７４を保持するエントリ、実行サーバＩＤ７１２を保持するエントリと実行コマンド７１４を保持するエントリの組、Ｉ／Ｏ処理内容情報７４０ｃ、処理の多重度を示す処理多重度７８２を保持するエントリを含む。
【０１１９】
本実施形態で、図１３に示したバッチＪｏｂ管理情報７００とオンラインＪｏｂ管理情報７７０とを分けたのは、そのＪｏｂの性質により要求される性能、管理すべき情報が異なっていることを考慮したものである。
【０１２０】
オンラインＪｏｂ管理情報７７０の場合には、Ｊｏｂ種別７０６はオンライン業務向けであることを示す情報が保持される。実行サーバＩＤ７１２と実行コマンド７１４の組に関しては、複数存在しても良い。実行条件７０８の内容として、オンラインＪｏｂ管理情報７７０では、実行すべき日付や曜日の条件を含めた実行開始時刻と実行終了時刻（常時実行を含む）が与えられる。要求性能７７４はＪｏｂへの要求性能の設定情報であり、処理全体での平均応答時間と、高負荷状態における処理スループット（処理の平均実行回数）が保持される。
【０１２１】
Ｉ／Ｏ処理内容情報７４０ｃは、内容的には図１３に示したバッチＪｏｂ管理情報７００中のＩ／Ｏ処理内容情報７４０ａの一部を抜き出したものであり、データ情報７２４を保持するエントリと、対応するＩ／Ｏベース性能７４８を保持するエントリとストレージヒント７５４を保持するエントリの組を有する。Ｊｏｂの設計情報から処理がアクセスするデータを把握し、データ情報７２４を設定し、Ｉ／Ｏベース性能７４８のポートＩＤ３８６をマッピング集約情報を参照して求める。ストレージヒント７５４に関しては、記憶装置に対する指示情報を設定する。本実施形態では、必要に応じてデータ毎に利用したいデータキャッシュ量を計算してその値を設定する指示を設定することにした。
【０１２２】
Ｉ／Ｏベース性能７４８の性能値に関しては、Ｉ／Ｏ処理内容情報７４０ｃでは常にランダム性能（ＩＯＰＳ）である。この値の決定法は、例えば、実際に処理を実行し、そのときの処理スループットと記憶装置４０のＩ／ＯパスＩ／Ｆ３２のポート２６のＩ／Ｏ性能を記憶装置４０のモニタ情報から把握し、要求性能７７４に与えられるスループットを達成するのに必要なＩ／Ｏ性能をスループットとＩ／Ｏ性能が比例するとして見積り、その値を設定する。なお、複数のデータが同一のポート２６経由で同一のＬＵ２０８にデータを記憶している場合には、それらの間で必要な性能を適当に分配する。
【０１２３】
次に、図１６を用いてＪｏｂリソース管理情報６２０について説明する。
図１６は、Ｊｏｂリソース管理情報６２０のデータ構造を示す模式図である。
【０１２４】
Ｊｏｂリソース管理情報６２０は、管理サーバ１２０のシステム管理プログラム１４０がワーク情報として利用する情報であり、Ｊｏｂポート設定情報６３０とＪｏｂキャッシュ量情報６５０を含んでいる。
【０１２５】
Ｊｏｂポート設定情報６３０は、記憶装置４０のＩ／ＯパスＩ／Ｆ３２のポート２６毎の、ポート２６を利用するＪｏｂとそのＪｏｂに割り当てられた優先アクセス制御機能の設定に関する情報であり、装置ＩＤ５７２を保持するエントリと、ポートＩＤ３８４を保持するエントリと、対応するポート２６を利用してデータをアクセスするＪｏｂのＪｏｂＩＤ６２２とそのＪｏｂのそのポート２６に対して割り当てられた性能割合６３２を保持するエントリの組を有する。なお、性能割合６３２は、ポート性能情報６１６に保持される対応ポートの最大性能からの割合として計算される性能指標値で、Ｉ／Ｏ処理量やデータ転送量への変換は、そのポート２６に対応するポート性能情報６１８を参照して、そのポート２６の最大Ｉ／Ｏ処理量や最大データ転送量を求め、それに性能割合６３２を乗じることによりおこなう。
【０１２６】
Ｊｏｂキャッシュ量情報６５０は、記憶装置４０のキャッシュグループ毎に、そのキャッシュグループに属するＬＵ２０８を利用するＪｏｂとそのＪｏｂに対する割当量に関する情報であり、装置ＩＤ５７２を保持するエントリ、キャッシュグループＩＤ４６２を保持するエントリ、対応するキャッシュグループに属するＬＵ２０８に記憶されているデータを利用するＪｏｂのＪｏｂＩＤ６２２を保持するエントリ、Ｊｏｂへのキャッシュの割当量に関する情報である割当情報６５２を保持するエントリの組からなる。
【０１２７】
割当量に関しては、スタック形式で管理された複数世代の情報を持てるようにし、割当情報６５２中にその割当量が設定された理由に関しても割当量と組にして保持し、その原因が解決した場合には古い設定に戻れるようにする。なお、Ｊｏｂが利用する一つ以上のキャッシュグループのキャッシュ割当量が変更される場合には、キャッシュ量の変更のないＪｏｂが利用する他のキャッシュグループも同期して世代を更新する。
【０１２８】
次に、図１７を用いて優先度制御情報８８０について説明する。
図１７は、優先度制御情報８８０のデータ構造を示す模式図である。
【０１２９】
優先度制御情報８８０中は、管理サーバ１２０の中のシステム管理プログラム１４０がＪｏｂの優先度を考慮した制御をおこなう際に用いられる設定情報であり、Ｊｏｂ優先度７０４を保持するエントリと、対応する余裕係数８８２を保持するエントリの組を含む。
【０１３０】
本実施形態においては、Ｊｏｂ優先度７０４は、Ｐ段階に分けられ、優先度の高いものから順にその値として１、２、…、Ｐを取る。余裕係数８８２とは、記憶装置４０の設定変更方法を決定するときに、見積りデータに対して余裕を見込むための係数であり、Ｊｏｂの優先度を高いものほど余裕を大きくするものであり、本実施形態では、１以上の値を取ることにしている。
（ＩＶ）性能管理方法の処理
次に、図１８ないし図２７を用いて本実施形態の性能管理方法の処理について説明する。
【０１３１】
（ＩＶ−１）システム管理プログラムの処理概要
先ず、システム管理プログラム１４０の処理概要について説明する。
【０１３２】
システム管理プログラム１４０は、システムに関する構成を把握する。構成要素である記憶装置４０、仮想化スイッチ６０、サーバ７０、ボリュームマネージャ７８、ファイルシステム８０、ＤＢＭＳ９０、ＡＰプログラム１００に関してそれぞれ識別子を付加して管理する。また、ネットワーク２４やＩ／Ｏパス３４の接続関係をシステム管理情報１４２中に保持する。
【０１３３】
システム管理プログラム１４０は、他の装置から種々の情報を取得する。このとき、記憶装置４０と仮想化スイッ６０が保持する情報に関しては、ネットワーク２４を介して直接情報の送信要求を発行し、情報を取得する。また、サーバ７０上で実行されるプログラムが保持する情報に関しては、ネットワーク２４を介して管理エージェント１４４に対して情報の読み出し要求を発行して、それが必要な情報を読み出すことにより情報を収集する。
【０１３４】
システム管理プログラム１４０は、各仮想化機構から領域マッピング情報３００、ＤＢＭＳ９０からデータ記憶領域情報３４２、記憶装置４０と仮想化スイッチ６０から上位ポートマッピング情報３２２、記憶装置４０からキャッシュグループ情報４６０を取得し、それらを取得元の識別子とともにマッピング集約情報としてシステム管理情報１４２中に記憶する。
【０１３５】
ここで、システム管理プログラム１４０は、記憶装置４０のキャッシュグループの管理において、ある特定のキャッシュグループをキャッシュ割当量の調整で優先的に削減対象とする「フリーキャッシュグループ」として扱う。キャッシュ量の割り当て要求がないＬＵ２０８は、フリーキャッシュグループに属するとして制御する。
【０１３６】
また、ポートスループット設定情報４４０やキャッシュモニタ情報３６２に含まれる実領域分割数５０２と仮想管理領域数５０４に関しても各記憶装置４０から取得し、それらの取得元の識別子とともにシステム管理情報１４２中に記憶する。これらの情報に関しては、設定変更後や一定期間経過後、情報の再取得と保持内容の整合性確認をおこなう。
【０１３７】
また、上記のシステム管理情報１４２のマッピング集約情報としてより詳細に説明すると、システム管理プログラム１４０は、実行中のＪｏｂのハードウェアリソースに関連するマッピングの情報をシステム管理情報１４２中に保持する。サーバ７０に関しては、Ｊｏｂが実施されるサーバ７０の識別子と、どのデータがどのポート２６を経由してアクセスされるか、仮想化スイッチ６０に関しては、データは、どの仮想化スイッチ６０を経由し、仮想化スイッチ６０のどのＩ／ＯパスＩ／Ｆ３２のどのポート２６を経由してアクセスされるか、記憶装置４０に関しては、どのデータがどの記憶装置４０のどのＬＵ２０８を利用し、そのＬＵ２０８は記憶装置４０のＩ／ＯパスＩ／Ｆ３２のどのポート２６を経由してアクセスされ、そのＬＵ２０８中のデータはどのＨＤＤ１６に記憶されているか、また、そのＬＵ２０８は、どのキャッシュグループに属するか、に関する情報を保持する。以下、この情報を「Ｊｏｂリソースマッピング情報」と称する。
【０１３８】
（ＩＶ−２）システム管理プログラムのＪｏｂ管理方法とＪｏｂ管理情報への値の設定
以下、システム管理プログラムのＪｏｂ管理方法とＪｏｂ管理情報への値の設定について説明する。
【０１３９】
システム管理プログラム１４０は、バッチ業務を実施するためのＪｏｂの管理情報として、バッチＪｏｂ管理情報７００を、オンライン業務を実施するＪｏｂの管理情報として、オンラインＪｏｂ管理情報７７０をシステム管理情報１４２中に、それぞれ保持する。これらの情報はＨＤＤ１６に記憶され、システム管理プログラム１４０が起動時にメモリ１４上のシステム管理情報１４２中に読み出される。
【０１４０】
既に述べたように、Ｊｏｂ管理情報７００とオンラインＪｏｂ管理情報７７０とを分けたのは、そのＪｏｂの性質により要求される性能、管理すべき情報が異なっていることを考慮したものである。
【０１４１】
以下、バッチＪｏｂ管理情報７００とオンラインＪｏｂ管理情報７７０のいずれか、または、その両方を指す場合に「Ｊｏｂ管理情報」と称する。Ｊｏｂ管理情報は基本的に管理者が与えるが、一部の情報は後述する方法により設定される。
【０１４２】
また、バッチＪｏｂ管理情報７００中のＩ／Ｏ処理内容情報７４０ａとオンラインＪｏｂ管理情報７７０中のＩ／Ｏ処理内容情報７４０ｃをまとめて、「Ｉ／Ｏ処理内容情報７４０」と称することにする。
【０１４３】
既に述べたように、本実施形態のＪｏｂの実行は、バッチＪｏｂは連続して実行され、前段のＪｏｂの出力データを次段のＪｏｂの入力データとして引き継いでいくものとした。バッチＪｏｂ管理情報７００により管理されるＪｏｂにおいては、その中のＪｏｂ依存出力データ情報７３０に設定されているデータに関し、Ｊｏｂの終了時に処理完了情報としてそれらの出力データ量を返すことにする。そして、この情報とバッチＪｏｂ管理情報７００中の情報を基に、連続的に実施されるＪｏｂの実行時間見積りをおこなう。
【０１４４】
また、本実施形態において、出力データ量は、バッチ業務向けＪｏｂが実行するＡＰプログラム１００が処理完了情報として出力するものを利用する。
【０１４５】
以下、バッチＪｏｂ管理情報７００の値の設定処理について説明する。
【０１４６】
バッチＪｏｂ管理情報７００は、バッチジョブのＪｏｂ毎に与えられる情報であった。
【０１４７】
このエントリの内で、ＪｏｂＩＤ６２２、Ｊｏｂ優先度７０４、Ｊｏｂ種別７０６、実行条件７０８、最大実行時間７１０、実行サーバＩＤ７１２、実行コマンド７１４、Ｊｏｂ依存入力情報７２０、Ｊｏｂ依存出力データ情報７３０、予め管理者からＪｏｂ実行前に与えられる情報である。
【０１４８】
なお、Ｊｏｂの最大実行時間を見積る方法については、後に詳細に説明する。
【０１４９】
ＣＰＵ処理時間見積方法７１６とＩ／Ｏ処理内容情報７４０ａに関しては、モニタ情報を実測して設定される。
【０１５０】
以下、図１８を用いて、このＣＰＵ処理時間見積方法７１６とＩ／Ｏ処理内容情報７４０ａを設定する処理について説明する。
図１８は、Ｊｏｂ管理情報７００中のＣＰＵ処理時間見積方法７１６とＩ／Ｏ処理内容情報７４０ａをモニタ情報の実測により設定する処理のフローチャートである。
【０１５１】
手順開始時、バッチＪｏｂ管理情報７００中の他の情報と、図１４に示したバッチＳＱＬ設計情報８５０が管理者から与えられる。なお、この手順を開始する際には実際の動作時と同じように各種データがシステム内に存在する必要がある（ステップ１１０１）。
【０１５２】
先ず、バッチＳＱＬ設計情報８５０中の実行ＤＢＭＳＩＤ８５２から処理を実施するＤＢＭＳ９０を把握し、そこから実行ＳＱＬ文８６２中のＳＱＬ文のＳＱＬ実行計画を全て取得する（ステップ１１０２）。
【０１５３】
ＳＱＬ実行計画は、ＳＱＬを実行するための情報であり、ＳＱＬ文を実施するための処理ステップとその処理内容、利用データとアクセス方法の詳細情報などを含んでいる。
【０１５４】
なお、処理中に明示的に一時的に利用する表を作成する場合があるが、その表を利用するＳＱＬ文のＳＱＬ実行計画取得には、その表を作成した後にＳＱＬ実行計画を取得する。可能なら、処理をＳＱＬ文毎にステップ実行し、その処理実行直前にＳＱＬ実行計画を取得する。全てのＳＱＬ実行計画を取得した後に一時的に利用する表を削除する。
【０１５５】
取得したＳＱＬ実行計画とバッチＳＱＬ設計情報８５０中の情報から、各ＳＱＬ文によりアクセスされるデータとアクセス方法、アクセス順を把握する（ステップ１１０３）。
【０１５６】
ＳＱＬ実行計画は、ＳＱＬ文を実施するための処理ステップとその処理内容、利用データとアクセス方法の詳細情報を含むため、一つのＳＱＬ文内でのアクセスデータ・アクセス方法・アクセス順は、ＳＱＬ実行計画から把握できる。
【０１５７】
処理実施の際にＤＢＭＳ９０により暗黙に作成される一時表に関しては、その表が作成されるデータ領域のデータ領域名３４４を把握する。バッチＳＱＬ設計情報８５０中のＳＱＬＩＤ８５８と繰り返し実行ＳＱＬ情報８６２から、繰り返しを含めた実行順序がわかる。このとき、一つ以上のＳＱＬ文が繰り返し実行される場合には、それらがアクセスするデータは繰り返し処理により全て同時にアクセスされるものとする。
【０１５８】
そして、把握したアクセス先データとアクセス順をＩ／Ｏ処理内容情報７４０ａ中のデータ情報７２４とアクセス順７４２、Ｉ／Ｏベース性能７４８のポートＩＤ３８４に設定する。同じデータに複数の異なる処理ステップでアクセスされる場合には、それぞれ独立したものとする。ポートＩＤ３８４は、システム管理情報１４０中のマッピング集約情報を参照することにより、それが存在する記憶装置４０と共に求めることができ、複数のポートＩＤ３８４が求まる可能性もある。
【０１５９】
ここで、把握した処理が“表の全走査”の場合にはＩ／Ｏタイプ７４６は“シーケンシャル”（図１３では、「Ｓｅｑ」）に、Ｂ−Ｔｒｅｅ索引を利用した選択処理”の場合には、索引と表の双方ともに“ランダム”（図１３では、「Ｒｎｄ」）に設定する。ファイル２０２に対する入出力は全て“シーケンシャル”とする。
【０１６０】
これから処理を実施する際に外部から入力されるデータ量を把握する（ステップ１１０４）。
【０１６１】
Ｊｏｂ依存入力情報７２０中に設定されているデータに関して、そのデータ量単位７２６に従ってデータ量を把握する。本実施形態では、原則、複数のＪｏｂが一連の処理を形成するため、それらを順次実行して完了報告としてシステム管理情報１４２中に出力された出力データ量を把握する。
【０１６２】
続いて、実際に処理を実行し、実行時間の計測と、ＤＢＭＳ９０が稼動するサーバ７０におけるＣＰＵ稼働率と、記憶装置４０におけるＩ／Ｏ処理実行状況（Ｉ／Ｏ処理実行回数、データ転送量）を把握する（ステップ１１０５）。
【０１６３】
それらの稼動状況は、前述のシステム管理プログラム１４０が収集することにより把握する。このデータ取得の際にデータ取得間隔は処理の実行時間に比して十分に小さなものとする。システム負荷を削減するため、可能であれば、処理実行に関連するサーバ７０のＣＰＵ稼働率とステップ１１０３で把握したデータを記憶している部分のみ詳細なモニタ情報を取得する。
【０１６４】
取得したモニタ情報から、ＤＢＭＳ９０が稼動するサーバ７０におけるＣＰＵ稼働率がある閾値（例えば、８０％）以上の時間を把握し、その時間はバッチＳＱＬ設計情報８５０中の主入力データ８５４で指示されるデータのデータ量に比例するものとしてＣＰＵ処理時間見積方法７１６を決定する（ステップ１１０６）。
【０１６５】
入力データ量は、ステップ１１０４で把握したものを用いる。
【０１６６】
次に、モニタ情報から各アクセスデータにおけるＩ／Ｏネック、Ｉ／Ｏベース性能、入力データ量あたりのＩ／Ｏ処理量を把握し、Ｉ／Ｏ処理内容情報の値設定をおこなう（ステップ１１０７）。
【０１６７】
すなわち、ステップ１１０３で把握したアクセスデータとアクセス順、記憶装置４０のアクセス先のポート２６を基に、記憶装置４０のストレージポートモニタ情報３８２中のポート２６のモニタ情報との対応付けをおこなう。
【０１６８】
その後、あるアクセスデータに対応する期間における、ＤＢＭＳ９０が稼動するサーバ７０のＣＰＵ稼働率のモニタ値を調べ、それがステップ１１０６の閾値を越えている場合にはＩ／Ｏボトルネックではないとして対応するＩ／Ｏネック７４４の値を“Ｙ”に設定し、そうでない場合には“Ｎ”に設定する。
【０１６９】
続いて、モニタ情報からポート２６におけるＩ／Ｏ処理量とＩ／Ｏ処理を実施していた時間をＬＵ２０８毎に把握し、その平均性能としてデータに対応するＩ／Ｏベース性能７４８をポート２６毎に設定する。このとき、対応するＩ／Ｏタイプ７４４の値が“シーケンシャル”の場合には処理量としてデータ転送量を、“ランダム”の場合にはＩ／Ｏ処理実行回数を用いる。さらに、ステップ１１０４で把握した入力データ量とポート２６毎のＩ／Ｏ処理量から、対応する処理量見積７５２を設定する。なお、同一のＬＵ２０８に複数の異なるデータが記憶され、それらが同一のポート２６を経由してアクセスされる場合には、それらの間で適当にＩ／Ｏ処理量を分割する。
【０１７０】
そして、手順を終了する（ステップ１１０８）。
【０１７１】
本手順では、Ｉ／Ｏ処理内容情報７４０ａ中のストレージヒント７５４は設定されない。ここは、本手順終了後に管理者が設定する。ストレージヒント７５４を設定した場合には、Ｉ／Ｏ処理性能が変化するため、ステップ１１０５からステップ１１０７を再度実行し、Ｉ／Ｏネック７４４とＩ／Ｏベース性能７４８を再設定する。
【０１７２】
次に、バッチＪｏｂ管理情報７００で管理されるＪｏｂの最大実行時間７１０の処理時間の見積り方法について説明する。
【０１７３】
本実施形態においては、バッチＪｏｂ管理情報７００で管理されるＪｏｂの処理時間を、ＣＰＵがボトルネックとなっている状態でのＣＰＵ処理時間と、Ｉ／Ｏがボトルネックとなっている状態でのＩ／Ｏ処理時間と、ＣＰＵがボトルネックとなっている状態でのＩ／Ｏ遅延による影響時間の和として見積る。また、各Ｊｏｂへの入力データ量は、システム管理情報１４２中に記憶されるものとする。
【０１７４】
ＣＰＵがボトルネック状態でのＣＰＵ処理時間は、ＣＰＵ処理時間見積り方法７１６と処理開始時に与えられる入力データ量から計算する。
【０１７５】
Ｉ／Ｏがボトルネック状態でのＩ／Ｏ処理時間は、Ｉ／Ｏ処理内容情報７４０ａ内のＩ／Ｏネック４４４の値が“Ｙ”であるデータ情報７２４で識別されるデータに関して、処理開始時に与えられる入力データ量と処理量見積７５２により求まる処理量と、データアクセスに利用可能なＩ／Ｏ処理性能から計算し、その総和として求める。
【０１７６】
各データへのアクセスに利用可能な処理性能は以下のように求める。先ず、Ｊｏｂがアクセスする各データに関して、それをアクセスする際に利用される記憶装置４０のＩ／ＯパスＩ／Ｆ３２のポート２６をＩ／Ｏベース性能７４８から求める。続いて、各データ毎に求めたポート２６とそのデータに対応するアクセス順７４２の値によりデータをグループ化し、ポート２６を同時にアクセスするデータの組を求める。それぞれのグループにおいて、ポート２６でＪｏｂが利用可能な性能割合６３２は、Ｊｏｂポート設定情報６３０に保持されているか、あるいは、別途条件として指定されている。そして、その性能割合６３２を各データに対応するＩ／Ｏベース性能７４８の対応ポート２６における性能値から計算される性能割合６３２に比例して分配する。このようにして、あるデータが利用可能な性能割合６３２を求め、これからデータへのアクセスに利用可能なポート２６におけるＩ／Ｏ処理性能を求める。
【０１７７】
ＣＰＵがボトルネックとなっている状態でのＩ／Ｏ遅延による影響時間は次のように求める。Ｉ／Ｏ処理内容情報７４０ａ内のＩ／Ｏネック４４４の値が“Ｎ”であるデータ情報７２４で識別されるデータに関して、先ず、Ｉ／Ｏがボトルネック状態でのＩ／Ｏ処理時間と同様に現在のＩ／Ｏ処理量設定での処理時間を求める。引き続き、Ｉ／Ｏ処理性能がＩ／Ｏベース性能７４８に与えられた性能であると仮定して同様にＩ／Ｏ処理時間を求める。各データのポート２６毎に前者から後者を引いた値が求める影響時間である。なお、計算により負の値が求まった場合には影響時間は０であるとする。
【０１７８】
本実施形態においては、入力データ量は、原則前段のＪｏｂの処理完了報告から把握する。常時実行中のＡＰプログラム１００がある期間内に処理したデータを抽出するようなＪｏｂ等、対応する前段Ｊｏｂが存在しない場合、Ｊｏｂへの入力データ量を取得するためのＪｏｂを作成・先行して実施させ、それに目的とする入力データ量を完了報告として出力させることにより、処理時間の見積りに必要となる入力データ量がシステム管理情報１４２中に記憶されるようにする。前述の例では、入力データ量として、ＡＰプログラム１００の対象処理の対象期間内の処理実行回数をモニタ履歴情報５１０から取得し、それを件数として利用する。なお、データ量見積りＪｏｂを作成する代わりに、Ｊｏｂ依存入力情報７２０中にデータ入力量を取得する方法を記憶させ、それを用いてデータ量を把握してもよい。
【０１７９】
（ＩＶ−３）システム管理プログラムのモニタ情報の収集とそのモニタ情報によるＪｏｂチューニング処理
次に、図１９ないし図２１を用いてシステム管理プログラムのモニタ情報の収集とそのモニタ情報によるＪｏｂチューニング処理について説明する。
【０１８０】
システム管理プログラムのモニタ情報の収集とそのモニタ情報によるＪｏｂチューニング処理は、管理サーバ１２０の実行中でシステム管理プログラムがシステムを監視している間は、常時、無限ループで実行されることになる。
図１９は、システム管理プログラムのモニタ情報の収集とそのモニタ情報によるＪｏｂチューニング処理のゼネラルチャートである。
図２０は、モニタ情報によるＪｏｂチューニング処理のフローチャートである（その一）。
図２１は、モニタ情報によるＪｏｂチューニング処理のフローチャートである（その二）。
【０１８１】
モニタ履歴情報５１０への値の設定は以下のようにおこなう。
【０１８２】
この処理は、管理サーバ１２０が起ち上がり、システム管理プログラム１４０が起動し、その初期化が完了したときに開始される（ステップ１４０１）。
【０１８３】
先ず、初期モニタ値として、モニタ情報を取得している全ての装置やプログラムから現在のモニタ情報の値を取得し（ステップ１４０２）、前回取得情報５１８中の対応する取得日時と取得値のエントリを更新する。
【０１８４】
続いて、次のデータ取得タイミングまで、処理をスリープさせる（ステップ１４０３）。なお、データの取得は、前回モニタ値取得後一定間隔、もしくは、事前に定めた特定時刻におこなう。このとき、モニタする内容によりデータの取得間隔を個別に管理し、データ取得間隔をモニタする内容毎に異なるものとしてもよい。
【０１８５】
データを取得するタイミングが来たときに、現在のモニタ情報の値と現在日時を取得する。そして、それら情報の取得後、対応する前回取得情報５１８中に保存された前回取得日時とその取得値を把握し、履歴内容５２２の形の値を計算する方法をモニタ内容５１６を基に選択し、その値を計算する（ステップ１４０４）。
【０１８６】
現在日時と前回取得日時から期間を把握し、計算値を期間の平均かつ最大としてサンプル５２４を保持するエントリに記憶する。その後、現在日時と今回取得したモニタ情報の値を前回取得日時とその取得値として前回取得情報５１８に記憶する。
【０１８７】
続いて、ステップ１５０１から始まる収集したモニタ情報を基にしたチューニング処理を実施する（ステップ１４０５，図２０，図２１の処理）。
【０１８８】
そして、ある一定時間以前のデータを保持するサンプル５２４を整理して、モニタ履歴情報５１０のデータ量を削減する（ステップ１４０６）。
【０１８９】
その方法は、データの古さに応じて、１）ある期間内の複数のサンプル５２４を一つのサンプル５２４にまとめる、２）特に古いサンプル５２４のデータを削除する、ことをおこなう。処理完了後ステップ１４０３へ戻り、以下、繰り返しで処理を実施する。
【０１９０】
各装置の構成が変更されることにより、モニタすべき部位が動的に増減する。モニタ部位が増えた場合には、ステップ１４０４でモニタ履歴情報５１０中にエントリを追加し、その部位もモニタする。モニタ部位が削除された場合には、それに対応するデータは、ステップ１４０４の処理をおこなわず、ステップ１４０６において削除されたモニタ部位のサンプル５２４が全て削除された場合に、モニタ履歴情報５１０中のエントリを全て削除する。
【０１９１】
次に、図２０および図２１を用いてモニタ情報によるＪｏｂチューニング処理について説明する。
【０１９２】
このモニタ情報によるＪｏｂチューニング処理は、図１９のステップ１４０５に示された処理である。
【０１９３】
この処理は、実行中の全Ｊｏｂについて、各ステップを同時に、ステップ内ではＪｏｂ優先度７０４が最も高いものから順に処理を実施する。ステップ１５１５、ステップ１５１７において、複数のＪｏｂにより同一の部位を対象としてデータの移動やＩ／Ｏ処理量の増加／削減が要求される場合には、Ｊｏｂ優先度７０４が最も高いＪｏｂについてのみ処理を実施する。また、一つのＪｏｂに複数の問題点が存在すると判断された場合には、それぞれ独立した複数のパスに分岐する。
【０１９４】
Ｊｏｂチューニング処理は、図１９のステップ１４０５で、サブルーチンとしてコールされる（ステップ１５０１）。
【０１９５】
先ず、システム管理１４２中に記憶されている「データ移動要求」によりＨＤＤ過負荷状態の変更が実行可能か否かを確認する（ステップ１５０２）。ＨＤＤ過負荷状態の変更とは、データ移動によって、ＬＵ２０８を適当なＨＤＤ１６に配置換えするものである。なお、ここで扱うデータ移動要求は、以前に実施されたＪｏｂチューニング処理のステップ１５０８（後述）で実施されたものである。
【０１９６】
ここで、直近と、最近のある一定期間（例えば１週間）内の現時刻から一定時間（例えば３０分間）における移動元ＨＤＤ１６、移動先ＨＤＤ１６の全体の稼働率の最大値をモニタ履歴情報５１０を用いて把握し、双方でその値が事前に定められた閾値（例えば４０％）を下回っている場合にデータ移動を実行可能と判断する。他の仮想化機構におけるデータ移動の要求が存在する場合にも、同様に関連する部位の稼働率を調べ、全ての部位でその値が事前に定められた閾値未満のときに、データ移動とそれに伴う設定の変更を実施する。実行可能と判断されたデータ移動要求に関し、関連する仮想化機構に対して、そのデータ移動を実現するための処理要求を発行する。
【０１９７】
次に、Ｊｏｂが現在、記憶装置４０のデータキャッシュ４２に関して、初期設定よりも多くのキャッシュ量を利用している場合に、それを開放できるか確認する（ステップ１５０３）。
【０１９８】
ここでは、図１６に示したＪｏｂキャッシュ量情報６５０中の割当情報６５２を参照し、設定量が初期設定（最も古い世代のデータ）より大きなエントリを新しい世代の方から検索し、その原因をその設定理由から把握する。そして、その原因に対応するモニタ履歴情報５１０の最新のデータを把握し、設定理由中に記憶された負荷のよりも一定割合（例えば７５％）未満の負荷になっているか確認し、負荷が下がっている場合には、その１世代前の設定に戻すと判断する。前の設定に戻すと判断された場合には、割当情報６５２のさらに古い世代のデータの確認を同様に繰り返しおこなう。
【０１９９】
この確認処理により、戻されるべき割当情報６５２の世代を把握し、そのようなものが存在する場合には、Ｊｏｂキャッシュ量情報６５０中の割当情報６５２の戻される設定以降の新世代のデータを破棄し、戻された世代のデータに合わせて、記憶装置４０に対してキャッシュ割当量の変更指示を発行する。
【０２００】
次に、モニタ履歴情報５１０の最新データを参照し、問題点が存在するか確認する（ステップ１５０４）。
【０２０１】
ここで、ＪｏｂがオンラインＪｏｂ管理情報７７０で管理されている場合、すなわち、オンラインＪｏｂである場合には、図１２に示されたモニタ履歴情報５１０に記憶された、最新のＡＰプログラム１００における各処理の平均応答時間、平均処理時間、平均実行回数を把握し、それからＡＰプログラム１００全体での平均応答時間、平均稼動率、平均実行回数を計算する。そして、対応するオンラインＪｏｂ管理情報７７０を参照し、求めた平均応答時間が要求性能７７４に設定された平均応答時間を満たすか、また、平均稼働率が（処理多重度７８２）×（事前に定められた閾値）（例えば９５％）を超えている場合に高負荷状態にあるとし、平均実行回数が要求性能７７４に設定された処理スループットを満たすか否かを確認して、満たさない条件が存在する場合に問題点が存在するとする。
【０２０２】
ＪｏｂがバッチＪｏｂ管理情報７００で管理されている場合、すなわち、バッチＪｏｂである場合には、Ｊｏｂリソースマッピング情報を参照してそのＪｏｂが利用するデータが記憶されるＨＤＤ１６を把握し、それらのＨＤＤ１６全体の稼働率が事前に定められる閾値（例えば７０％）を超えている場合には過負荷状態にあると判断し、問題点が存在するとする。
【０２０３】
問題点が存在する場合には、ステップ１５０５に進む。存在しない場合には、ステップ１５３０に進み、処理を終了する。
【０２０４】
次に、図１２に示されたモニタ履歴情報５１０の最新データを参照し、Ｊｏｂに関連するハードウェアに関して、記憶装置４０以外に過負荷状態の部位が存在するか確認する（ステップ１５０５）。
【０２０５】
Ｊｏｂに関連するハードウェアとしては、サーバ７０におけるＣＰＵ稼働率、仮想化スイッチ６０とサーバ７０におけるＩ／ＯパスＩ／Ｆ３２のポート２６等があり、それらはＪｏｂリソースマッピング情報を参照することにより求めることができる。過負荷状態とは、各々の稼働率が各ハードウェア毎に事前に定められた値を超えた状態として認識する。そのような部位が存在する場合には、ステップ１５２５に進み、存在しない場合にはステップ１５０６に進む。
【０２０６】
ステップ１５０５で過負荷状態であると判断された部位の負荷を下げる構成を取ることが可能であれば、それを実現するようにサーバ７０中のＯＳ７２や仮想化スイッチ６０に対して指示を出す（ステップ１５２５）。なお、本発明は、記憶装置の性能を調整することに主眼を置いているので、ステップ１５２５の具体的な方法については詳説しない。
【０２０７】
ステップ１５０５で記憶装置４０以外に過負荷状態の部位が存在しないと判断されたときには、Ｊｏｂが利用するデータを記憶する記憶装置４０内の関連部位に関して、過負荷状態のものが存在するか否かを確認する（ステップ１５０６）。
【０２０８】
確認部位としては、Ｉ／ＯパスＩ／Ｆ３２のポート２６とＨＤＤ１６がある。ＨＤＤ１６についてはステップ１５０４で述べた通りである。
【０２０９】
ポート２６に関しては、ＪｏｂがオンラインＪｏｂ管理情報７７０で管理される場合のみ確認する。先ず、システム管理情報１４２の中に保持するＪｏｂリソースマッピング情報を参照し、Ｊｏｂが利用するポート２６とそこを通してアクセスするＬＵ２０８を把握する。図１２に示したモニタ履歴情報５１０の最新データを用いて、求めたＬＵ２０８のポート２６における性能割合６３２を計算し、ポート２６毎にその総和を求める。求めた値が、Ｊｏｂポート設定情報６３０に保存されているＪｏｂに対して割り当てられているポート２６の性能割合６３２の一定割合（例えば、９０％）を超える場合に、そのポート２６はＪｏｂに対し過負荷状態にあると判断する。
【０２１０】
ステップ１５０６で、関連するポート２６がＪｏｂに対し過負荷状態にある場合にはステップ１５１１に進む（図２１［Ａ］）。関連するＨＤＤ１６が過負荷状態にある場合にはステップ１５０７へ進む。そして、関連する全てのポート２６とＨＤＤ１６が正常値と判断される場合には、ステップ１５１９に進む。なお、このステップ以降は、過負荷状態の部位が複数存在する場合には、その部位毎にパスが分かれて、それぞれについて処理が進められる。
【０２１１】
ステップ１５０６で、関連する全てのポート２６とＨＤＤ１６が正常値と判断される場合には、性能問題が発生しているＪｏｂが利用するキャッシュグループのキャッシュ量割当を変更する方法を決定する（ステップ１５１９）。
【０２１２】
この処理では、このステップに来たＪｏｂに関して、Ｊｏｂ優先度７０４が高い順に、オンラインＪｏｂ向けにキャッシュ量をチューニングする処理を実施する。なお、オンラインＪｏｂ向けにキャッシュ量をチューニングする処理は、後に（ＩＶ−５）の図２５で説明する。
【０２１３】
このとき、先にチューニングを実施したＪｏｂが利用するキャッシュグループをシステム管理情報１４２の中のＪｏｂリソースマッピング情報から把握し、後続のＪｏｂに関して、オンラインＪｏｂ向けにキャッシュ量をチューニングする処理を実施する際に、それらキャッシュグループのキャッシュ割当量を減らさないように指示を出す。なお、Ｊｏｂに対する現在のキャッシュ割当量の一定比率分（例えば５％）をフリーキャッシュグループから割り当てた後に、オンラインＪｏｂ向けにキャッシュ量をチューニングする処理を実施してもよい。
【０２１４】
そして、ステップ１５１９で求めたキャッシュ割当量の変更指示を対応する記憶装置４０に発行し、その設定に合わせて、図１６のＪｏｂリソース管理情報６２０の中のＪｏｂキャッシュ量情報６５０の値を更新する（ステップ１５２１）。
【０２１５】
そして、処理を終了する（ステップ１５３０）。
【０２１６】
ステップ１５０７で関連するＨＤＤ１６が過負荷状態にあると判断された場合には、Ｊｏｂが過負荷状態にあるＨＤＤ１６にデータを記憶するＬＵ２０８に属するキャッシュグループにキャッシュを追加するチューニングが実行可能か確認する（ステップ１５０７）。
【０２１７】
そのようなキャッシュグループに対して、そのＪｏｂのキャッシュ量を現在値からある一定割合（例えば５％）増加させるとしたとき、フリーキャッシュグループからその量を確保できるかＪｏｂキャッシュ量情報６５０を参照して確認し、割当可能な場合にはそのキャッシュ割当量変更処理を実施することとする。不可能な場合には、可能量を全てこのチューニングに用いる。このとき、Ｊｏｂが利用する異なるデータについて、それぞれの異なるＬＵ２０８により問題のＨＤＤ１６に記憶される場合には、用いたＬＵ処理時間変化の平均を考え、関連するＬＵ２０８におけるその和が最大になるように割り当てる。なお、ＬＵ処理時間変化の平均を考えて、キャッシュ割当量変更変更案を作成する処理については、後の（ＩＶ−５）の図２５で説明する。また、Ｊｏｂキャッシュ量情報６５０の割当情報６５２をこのステップで設定した値に更新するときには新しい世代のデータとして記憶し、設定理由に過負荷ＨＤＤ１６のＨＤＤＩＤ３９４と現在の稼働率を記憶する。
【０２１８】
次に、過負荷状態のＨＤＤ１６上に記憶されている、Ｊｏｂが利用するＬＵ２０８のデータを通常負荷のＨＤＤ１６へ移動させるデータ移動要求を作成する（ステップ１５０８）。
【０２１９】
データ移動要求は、以下のようにして作成される。先ず、過負荷状態のＨＤＤ１６を移動元ＨＤＤ１６とする。Ｊｏｂリソースマッピング情報を参照し、移動元ＨＤＤ１６に記憶されたＬＵ２０８のうち、そのデータを利用する最も優先度の高いＪｏｂが利用するＬＵ２０８をデータを移動するＬＵ２０８として把握する。そして、移動元ＨＤＤ１６を有する記憶装置４０、移動元ＨＤＤ１６データを移動するＬＵ２０８を指定して、ＨＤＤ過負下状態を解消する方法を決定する処理を実施してデータ移動要求を作成し、システム管理情報１４２中に記憶する。ＨＤＤ過負下状態を解消する方法については、後に（ＩＶ−５）の図２７で説明する。
【０２２０】
データ移動要求作成後に、それを実行した後の稼働率を、移動したＬＵ２０８の稼働率分だけＨＤＤ１６全体の稼働率が下がるとして見積り、その値が事前に定めた閾値（例えば６０％）を下回らない場合には、次に優先度の高いＪｏｂが利用するＬＵ２０８をデータを移動するＬＵ２０８として、  ＨＤＤ過負下状態を解消する方法を決定する処理を実施し、移動元ＨＤＤ１６の稼働率見積値が閾値を下回るか、あるいは、全てのＪｏｂに関してその確認を完了するまで繰り返す。
【０２２１】
なお、仮想化スイッチ６０やボリュームマネージャ７８がデータ移動により仮想構造と管理構造との対応関係を動的に変更できる場合には、記憶装置４０内でのデータ移動要求の作成に失敗した場合に、  ＨＤＤ過負下状態を解消する方法を決定する処理からの処理を準用して仮想化スイッチ６０やボリュームマネージャ７８におけるデータ移動の要求を作成してもよい。このとき、以下の点も考慮する。１）新たに仮想構造をフリー領域から作成してそこにデータを移動させる。２）移動先決定時にＨＤＤ１６の稼働率のみでなく、データ移動先に対するアクセスパス（サーバ７０から記憶装置４０へ至るＩ／Ｏパス３４の経路）におけるポート２６の稼動状況を調べ、それぞれで移動後の値として見積られる稼働率が１００％を超えないようにする。この見積りは、ＨＤＤ１６における稼働率の見積りと同様に実施する。３）移動先となる記憶装置４０において、移動されたデータを保持するＬＵ２０８が属するキャッシュグループに対して、現状と同じ分のキャッシュ量を割り当てる。
【０２２２】
次に、ステップ１５０７で割り当てたキャッシュ量が十分か判断する（ステップ１５０９）。
【０２２３】
ＨＤＤ過負下状態を解消する方法で決定されたＬＵ処理時間変化の平均を考え、関連するＬＵ２０８におけるその値の和が事前に定められた閾値（例えば単位時間の５％）より大きい場合に十分と判断し、ステップ１５２１に進む。そうでない場合は不十分としてステップ１５１７に進む。
【０２２４】
ステップ１５０７で割り当てたキャッシュ量が十分と判断されたときには、これまでに求めたキャッシュ割当量の変更指示やＩ／Ｏ性能の設定変更を対応する記憶装置４０に発行し、その設定に合わせて、図１６のＪｏｂリソース管理情報６２０の中のＪｏｂポート設定情報６３０とＪｏｂキャッシュ量情報６５０の値を更新する（ステップ１５２１）。
【０２２５】
ステップ１５０７で割り当てたキャッシュ量が不十分と判断されたときには、ここでは、過負荷状態にあるＨＤＤ１６にＪｏｂがデータを記憶するＬＵ２０８へのＩ／Ｏ処理量を削減するチューニングが可能か判断し、可能ならＩ／Ｏ処理の設定変更をおこなう（ステップ１５１７）。なお、本ステップは、ポートにも問題があるときに、別パスでこの処理とは非同期に実施されるステップ１５１５より後に実施される必要がある。
【０２２６】
この処理では、先ず、現在チューニング中のＪｏｂのＪｏｂ管理情報からＪｏｂ優先度７０４を求める。過負荷状態にあるＨＤＤ１６にデータを記憶するＬＵ２０８を利用するＪｏｂを、システム管理情報１２４の中のＪｏｂリソースマッピング情報を参照して把握し、そのＪｏｂのＪｏｂ優先度７０４を前述と同様に求め、先に求めた現在チューニング中のＪｏｂのＪｏｂ優先度７０４より低いものを把握する。それらのＪｏｂに関して、過負荷状態にあるＨＤＤ１６にデータを記憶するＬＵ２０８をアクセスする際に利用される記憶装置４０のＩ／ＯパスＩ／Ｆ３２のポートをＪｏｂリソースマッピング情報から求め、Ｊｏｂポート設定情報６３０に記憶された、そのＪｏｂのそのポート２６における性能割合６３２の値を事前に定められた割合（例えば現在の値５％）を削減することとする。なお、直接ＨＤＤ１６へのアクセス量を制限できるときには、その設定をおこなってもよい。
【０２２７】
そして、ステップ１５２１を実施し、処理を終了する（ステップ１５３０）。
【０２２８】
ステップ１５０６で、関連するポート２６がＪｏｂに対し過負荷状態にある場合には、ポート２６がＪｏｂに対し過負荷状態である場合の解消方法を決定する（ステップ１５１１）。先ず、Ｊｏｂに対して過負荷状態にあるポート２６において、図１６に示したＪｏｂリソース管理情報６２０の中のＪｏｂポート設定情報６３０を参照して、Ｊｏｂに対して割り当てられているポート２６の性能割合６３２を求め、その値を一定割合（例えば５％）増やすＩ／Ｏ性能設定変更方法を作成する。
【０２２９】
次に、ステップ１５１１で作成したＩ／Ｏ処理量増加案を実現可能か確認する（ステップ１５１２）。
【０２３０】
ステップ１５１１で求めたＩ／Ｏ性能設定変更方法を採用した際に、Ｊｏｂに対して過負荷状態にあるポート２６の各Ｊｏｂに対して割り当てられた性能割合６３２を、Ｊｏｂポート設定情報６３０を参照して求めてその和を計算し、その値が１００％を超えない場合には実現可能としてステップ１５２１に進む。１００％を超える場合には実現不可能としてステップ１５１３に進む。
【０２３１】
ステップ１５１２で、Ｉ／Ｏ処理量増加案が実現不可能と判断されたときには、Ｊｏｂに対し過負荷状態にある問題ポート２６経由してアクセスされるＬＵ２０８に対して、サーバ７０からそれを回避してアクセスするアクセスパスを追加するか、変更することにより、過負荷状態を回避することが可能か否かを確認する（ステップ１５１３）。
【０２３２】
これは、ボリュームマネージャ７８、仮想化スイッチ６０、記憶装置４０が動的に複数のアクセスパスを設定・変更することにより実現するもので、Ｊｏｂリソースマッピング情報やその他システム管理情報１４２中に保持される情報を用いて確認する。可能であるときにはステップ１５２３に進み、不可能である場合にはステップ１５１４に進む。
【０２３３】
ステップ１５１３で、アクセスパスを変更・追加可能と判断されたときには、ステップ１５１３で作成または変更可能と判断された、問題となっているポート２６経由してアクセスされるＬＵ２０８に対して、サーバ７０からそれを回避してアクセスするアクセスパスを実現するように、ボリュームマネージャ７８、仮想化スイッチ６０、記憶装置４０に対して指示を出して（ステップ１５２３）、処理を終了する（図２０［Ｃ］、ステップ１５３０）。
【０２３４】
ステップ１５１３で、アクセスパスを変更・追加不可能と判断されたときには、次に、Ｊｏｂに対し過負荷状態のポート２６は複数のＪｏｂにより共有されているかＪｏｂリソースマッピング情報を参照して確認する（ステップ１５１４）。
【０２３５】
共有されている場合にはステップ１５１５に進む。共有されていない場合には、チューニング不可能としてステップ１５３０に進み、処理を終了する。
【０２３６】
ステップ１５１４で、過負荷状態のポート２６は複数のＪｏｂにより共有されているといると判断されたときには、問題となっているＪｏｂのうち最もＪｏｂ優先度７０４が高いものに対し、過負荷状態のポート２６を共有する他ＪｏｂのＩ／Ｏ処理量を絞り込むＩ／Ｏ処理性能の設定変更方法を決定する（ステップ１５１５）。
【０２３７】
すなわち、問題ポート２６で現在Ｊｏｂに割り当てられている性能割合６３２の値を一定割合（例えば５％）増加させるとし、ＪｏｂのＪｏｂＩＤ６２２、問題ポート２６のポートＩＤ３８４、新たに割り当てる性能割合６３２を指定して、ステップ１６０１から始まる処理を実施し、そのポート２６における新たなＩ／Ｏ処理性能の割当を決定する。
【０２３８】
そして、ステップ１５２１（図２０［Ｂ］）に進む。
【０２３９】
（ＩＶ−４）システム管理プログラムによるＪｏｂ実行処理
次に、図２２を用いてシステム管理プログラムによるＪｏｂ実行処理について説明する。
図２２は、システム管理プログラムによるＪｏｂ実行処理のフローチャートである。
【０２４０】
システム管理プログラム１４０は、与えられたＪｏｂ管理情報中の実行条件７０８を参照して、与えられた条件が満たさた場合にそのＪｏｂを実行する（ステップ１３０１）。
【０２４１】
そのときに、処理開始時の時刻をＪｏｂＩＤ６２２とともにシステム管理情報１４２中に記憶する。なお、複数のバッチ業務向けのＪｏｂが連続して実行される場合には、前段の処理時間によりバッチＪｏｂ管理情報７００中の実行最大時間７１０の値を変更してもよく、その場合には元の値を別途保存する。
【０２４２】
Ｊｏｂが開始されると、先ず、Ｊｏｂが利用するハードウェアリソースを把握し、Ｊｏｂリソースマッピング情報に設定する（ステップ１３０２）。
【０２４３】
これは、Ｊｏｂ管理情報中の実行サーバＩＤ７１２から処理が実施されるサーバ７０、Ｉ／Ｏ処理内容情報７４０中のデータ情報７２４から利用するデータを把握し、それらによりシステム管理情報１４２中のマッピング集約情報を参照しておこなう。
【０２４４】
次に、優先アクセス制御機能を利用した記憶装置４０のＩ／ＯパスＩ／Ｆ３２のポート２６におけるＩ／Ｏ処理性能の変更方法を決定して、それに基づいて記憶装置４０に対してその設定指示を出す（ステップ１３０３）。Ｉ／Ｏ処理性能の変更方法の決定処理については、後に（ＩＶ−４）で説明する。
【０２４５】
ここでは、開始するＪｏｂへ割当を追加する条件で、Ｉ／Ｏ処理性能の変更方法の決定処理を実施し、求めた値をＪｏｂポート設定情報６３０に反映させる。ここで求まる変更案は、Ｊｏｂ毎の割当であり、システム管理情報１４２の中のＪｏｂリソースマッピング情報を利用して、記憶装置４０へのアクセス元となるサーバ７０もしくは仮想化スイッチ６０のＩ／ＯパスＩ／Ｆ３２のポート２６を求め、同一のポート２６からのものをまとめることにより記憶装置４０への設定値を求め、記憶装置４０に対してその設定指示を出す。
【０２４６】
次に、キャッシュグループの設定とそのキャッシュ量の設定・変更方法を決定すし、それに基づいて記憶装置４０に対してその設定指示を出す（ステップ１３０４）。Ｊｏｂを開始する際のキャッシュ量の割当てを決定する処理は、後に（ＩＶ−５）の図２３で説明する。
【０２４７】
ここでは、先ず、Ｊｏｂ管理情報のＩ／Ｏ処理処理内容情報７４０中のストレージヒント７５４からキャッシュ量の割当指示があるか調べる。続いて、割当指示があるデータに関して、Ｊｏｂリソースマッピング情報を参照し、それが記憶されるＬＵ２０８を調べ、それがフリーキャッシュグループに属しているかを調べる。属すものが存在する場合には、同じデータを記憶し、かつ同じ記憶装置４０により提供されるＬＵ２０８は同じキャッシュグループなるような構成案を作成し、必要であればキャッシュグループの新規作成をおこなうことにし、Ｊｏｂリソースマッピング情報にその情報を追加する。このとき、できる限り異なるデータを保持するＬＵ２０８は異なるキャッシュグループに属するようにする。
【０２４８】
続いて、開始するＪｏｂのＪｏｂ管理情報とキャッシュグループ設定を変更する場合にはその情報を与えてステップ２３０１から始まる処理を実施し、Ｊｏｂキャッシュ量情報６５０に値を設定する。求まる値はＪｏｂ毎のキャッシュ割当量であり、あるキャッシュグループが利用するキャッシュ容量はそのキャッシュグループを利用するＪｏｂに与えられた割当量の総和とする。それらの変更内容に従って記憶装置４０に対して指示を出す。
【０２４９】
これらの処理の後、Ｊｏｂ管理情報中の実行サーバＩＤ７１２で識別されるサーバ７０に、対応する実行コマンド７１４を実行するように指示を出し、処理を実行する（ステップ１３０５）。
【０２５０】
処理完了後、バッチＪｏｂ管理情報７００により管理されるＪｏｂの場合には、Ｊｏｂ依存出力データ情報７３０に設定されているデータの出力データ量を処理完了情報として取得し、その値をＪｏｂＩＤ６２２やその出力データを識別するデータ情報７２４とともにシステム管理情報１４２内に記憶する。
【０２５１】
Ｊｏｂが終わると、ステップ１３０３で設定したポート２６におけるＩ／Ｏ処理性能の割当を他のＪｏｂ向けに開放する（ステップ１３０６）。
【０２５２】
ここでは、実行完了したＪｏｂへの割当分を削除する条件で、ステップ１３０３と同様の処理を実施する。
【０２５３】
次に、ステップ１３０４で設定したキャッシュグループとキャッシュ割当の設定を解除する（ステップ１３０７）。
【０２５４】
ここでは、完了したＪｏｂのＪｏｂＩＤ６２２を与えてステップ２５０１から始まる処理を実施してキャッシュグループの構成変更方法を求める。その内容をＪｏｂキャッシュ量情報６５０やＪｏｂリソースマッピング情報に反映させ、求めた方法に従って記憶装置４０に対して変更指示を出す。
【０２５５】
続いて、Ｊｏｂの実行時間（開始・終了時刻）や処理件数等の実行情報をＪｏｂ実行履歴として出力する（ステップ１３０８）。
【０２５６】
その後、処理を終了する（１３０９）。
【０２５７】
なお、処理開始時にバッチＪｏｂ管理情報７００中の実行最大時間７１０を変更した場合には、別途保存した元の値に戻す。また、バッチＪｏｂ管理情報７００で管理されたＪｏｂの処理完了時には、他のバッチＪｏｂ管理情報７００中の実行条件７０８を参照し、完了したＪｏｂに続いて実行すべきＪｏｂが存在するか確認し、そのＪｏｂの実行のため本手順を再度実施する。
【０２５８】
（ＩＶ−５）記憶装置の諸元の設定変更処理
次に、図２３ないし図２７を用いて記憶装置４０の諸元を変更し、設定する処理について説明する。
【０２５９】
先ず、図２３を用いてシステム管理プログラム１４０がＪｏｂを開始する際にキャッシュ量の割当を決定する処理について説明する。
図２３は、システム管理プログラム１４０がＪｏｂを開始する際にキャッシュ量の割当を決定する処理のフローチャートである。
【０２６０】
このキャッシュ量の割当を決定する処理は、システム管理プログラム１４０がＪｏｂを開始する際、図２２のステップ１３０４からコールされるものである。
【０２６１】
処理開始時に、上位ルーチンより、これから実行されるＪｏｂのＪｏｂ管理情報と、そのＪｏｂの実行開始に際して設定されるキャッシュグループ構成案が与えられる（ステップ２３０１）。
【０２６２】
先ず、Ｊｏｂリソースマッピング情報からＪｏｂが利用するデータとそのデータが記憶される記憶装置４０を求める（ステップ２３０２）。
【０２６３】
そして、Ｊｏｂ管理情報中のＩ／Ｏ処理内容情報７４０にあるストレージヒント７５４からそれぞれのキャッシュ要求量を把握し、システム管理情報１４２の中のＪｏｂリソースマッピング情報を参照して、ＬＵ２０８毎のキャッシュ要求量を求める。一つのデータが複数のＬＵ２０８に記憶される場合には、マッピング集約情報からそれぞれのＬＵ２０８においてデータが記憶される領域量を確認し、それに比例してキャッシュ量をＬＵ２０８間で分割するものとする。
【０２６４】
また、一つのＬＵ２０８に複数のデータが記憶されている場合には、その総和がＬＵ２０８のキャッシュ要求量であるとする。その値を処理開始時に与えられた構成に従ってキャッシュグループ毎に集計し、Ｊｏｂの初期設定としてＪｏｂキャッシュ量情報６５０に記憶する。さらに、その値を記憶装置４０毎に集計し、キャッシュ要求量とする。
【０２６５】
続いて、各記憶装置４０毎に、ステップ２３０２で求めたキャッシュ要求量をフリーキャッシュグループから割当可能か確認する。フリーキャッシュグループのキャッシュ量からキャッシュ要求量を差し引いた量が、事前に定められている閾値を下回らない場合には、割当可能とする。割当不可能と判断された場合には以下の処理をおこなう。
【０２６６】
先ず、キャッシュ割り当て中のＪｏｂに与えられたＪｏｂ優先度７０４をＪｏｂ管理情報から把握する。そして、その記憶装置４０のキャッシュグループに関して、それを利用しているＪｏｂをＪｏｂリソースマッピング情報から把握し、そのＪｏｂのＪｏｂ優先度７０４を求め、その値がキャッシュ割り当て中のＪｏｂより低いものを求める。そのようなＪｏｂが存在しない場合には、現在の割当量から変更なしとする。存在する場合には、それらのキャッシュ容量の一部をキャッシュ割当を要求しているＪｏｂへ再割当する方法を決定する（ステップ２３０３）。
【０２６７】
例えば、低優先度のＪｏｂに割り当てられているキャッシュを、その量に比例した分をキャッシュ割り当て中のＪｏｂに再割り当てする。このとき、キャッシュ量が削減されたＪｏｂに対して、Ｊｏｂキャッシュ量情報６５０中の割当情報６５２に、設定量を削減後の値、設定量を“キャッシュ不足”として新世代のデータを設定する。
【０２６８】
続いて、ステップ２３０３で求めた割当量に従って、キャッシュグループへの割当方法を決定する（ステップ２３０４）。
【０２６９】
フリーキャッシュグループから要求量を取得できたときには、その値がそのまま割当量になる。取得できなかったときは、総和が割当量になるようにキャッシュグループ毎に要求量に比例した量を割り当てる。このとき、Ｊｏｂキャッシュ量情報６５０中の割当情報６５２に、設定量として実際に割り当てられた量であり設定理由が“キャッシュ不足”である新世代のデータを設定する。
【０２７０】
そして、処理を終了する（ステップ２３０５）。なお、キャッシュ量を削減されたＪｏｂに対して、後に図２５で説明するキャッシュチューニング処理を実施してもよい。
【０２７１】
次に、図２４を用いてシステム管理プログラム１４０がＪｏｂの終了時処理として実施するキャッシュの再割当処理について説明する。
図２４は、システム管理プログラム１４０がＪｏｂの終了時処理として実施するキャッシュの再割当処理のフローチャートである。
【０２７２】
このキャッシュ量の再割当処理は、システム管理プログラム１４０がＪｏｂを終了する際、図２２のステップ１３０７からコールされるものである。
【０２７３】
この処理では、処理開始時に、上位ルーチンから終了したＪｏｂのＪｏｂＩＤ６２２が与えられる（ステップ２５０１）。
【０２７４】
先ず、Ｊｏｂキャッシュ量情報６５０を参照し、終了するＪｏｂが利用していたキャッシュ量を開放キャッシュ量として把握し、各記憶装置４０毎にその量を集計する（ステップ２５０２）。
【０２７５】
そして、対応エントリをＪｏｂキャッシュ量情報６５０から削除する。さらに、Ｊｏｂリソースマッピング情報を参照して、終了するＪｏｂのデータのみが記憶されるＬＵ２０８のみが属するキャッシュグループを把握し、そのキャッシュグループは削除するものとする。
【０２７６】
続いて、Ｊｏｂキャッシュ量情報６５０を参照して、終了するＪｏｂがデータを記憶していた記憶装置４０において、要求値分のキャッシュ量が割り当てられていないＪｏｂを把握する。対応する割当情報６５２の設定理由が“キャッシュ不足”のエントリのものがこれに相当する。そして、それらのＪｏｂのＪｏｂ優先度７０４をＪｏｂ管理情報から把握し、Ｊｏｂ優先度７０４が高いものから順にキャッシュ量の要求値からの不足分を充足するように開放キャッシュの再割当をおこなう（ステップ２５０３）。
【０２７７】
ステップ２５０３において、全てのＪｏｂに対してキャッシュの再割当を行った後も開放キャッシュに残りが存在する場合には、それらはフリーキャッシュグループに割り当てるものとする（ステップ２５０４）。
【０２７８】
そして、処理を終了する（ステップ２５０５）。なお、不足分が充足されたＪｏｂのキャッシュグループに関しては、Ｊｏｂキャッシュ量情報６５０の対応エントリを不足前の世代に戻す。
【０２７９】
次に、図２５を用いてモニタ情報を基にしたオンラインＪｏｂ向けにキャッシュ量をチューニングする処理について説明する。
図２５は、モニタ情報を基にしたオンラインＪｏｂ向けにキャッシュ量をチューニングする処理のフローチャートである。
【０２８０】
この処理は、図２０、図２１のＪｏｂのチューニング処理のステップ１５０７、ステップ１５１９からコールされる処理である。
【０２８１】
この処理では、処理開始時に上位ルーチンからチューニングを実施するＪｏｂのＪｏｂＩＤ６２２と、必要に応じてキャッシュ割当量を削減してはならないキャッシュグループが与えられる（ステップ２７０１）。
【０２８２】
先ず、指定されたＪｏｂが利用するデータを保持する記憶装置４０、ＬＵ２０８、キャッシュグループをＪｏｂリソースマッピング情報から求める（ステップ２７０２）。
【０２８３】
続いて、キャッシュ量を変更した際のキャッシュヒット率の変化量を計算する（ステップ２７０３）。
【０２８４】
本実施形態においては、記憶装置４０における実領域分割数５０２と仮想管理領域数５０４の値がそれぞれＲとＶであり、ＬＵ２０８が属するキャッシュグループの現在のキャッシュ量をＣとしたとき、キャッシュモニタ情報３６２中のキャッシュヒット回数累計３７０における第ｉ領域（０＜ｉ＜＝Ｒ）のヒット数は、そのＬＵ２０８が属するキャッシュグループのキャッシュ量をｉＣ／Ｒから（ｉ−１）Ｃ／Ｒに削減したときにヒットしなくなる回数、第ｉ領域（Ｒ＜ｉ＜＝Ｒ＋Ｖ）のヒット数は、キャッシュ量を（ｉ−１）Ｃ／ＲからｉＣ／Ｒに増加させたときにヒットするようになる回数と考えられる。
【０２８５】
ここで、各ＬＵ２０８毎のリードアクセス実行時の第ｉ領域（０＜ｉ＜＝Ｒ＋Ｖ）での平均ヒット率は、図１２に示されるモニタ履歴情報５１０に、記憶装置４０における実領域分割数５０２と仮想管理領域数５０４は別途システム管理情報１４２中に保持されている。例えば、キャッシュ量をＣからＣ／Ｒ減らしたときの平均実ヒット率の削減分が第Ｒ領域における平均ヒット率であるから、ＬＵ２０８におけるキャッシュ量が（ｉ−１）Ｃ／ＲからｉＣ／Ｒの範囲（０＜ｉ＜＝Ｒ）での単位キャッシュ量あたりの平均ヒット率削減分は（第ｉ領域での平均ヒット率）×Ｒ／Ｃとして近似可能である。同様に、キャッシュ量が（ｉ−１）Ｃ／ＲからｉＣ／Ｒの範囲（Ｒ＜ｉ＜＝Ｒ＋Ｖ）での単位キャッシュ量あたりの平均ヒット率増加分は（第ｉ領域での平均ヒット率）×Ｒ／Ｃとして近似可能である。
【０２８６】
この値をＪｏｂが利用するデータを保持するＬＵ２０８について全て計算し、ヒット率変化率とする。なお、以下のステップを含めてモニタ履歴情報５１０からは最も直近のサンプル５２４による値、あるいは、事前に定められた直近のある期間の平均値を取得するものとする。
【０２８７】
次に、システム管理情報４１２の中のＪｏｂリソースマッピング情報を用いて、Ｊｏｂが利用するデータを保存するＬＵ２０８とそれに対応するＨＤＤ１６を把握する（ステップ２７０４）。
【０２８８】
そして、ＨＤＤ性能情報６１２のＨＤＤ１６のアクセス性能情報６１４を参照してＨＤＤ１６のリードヒット時の平均応答時間とリードミス時の平均応答時間を求め、（リードミス時の平均応答時間）−（リードヒット時の平均応答時間）を計算しＬＵ２０８の応答時間変化量とする。なお、ＬＵ２０８中のデータが性能の異なるＨＤＤ１６に分割されて記憶される場合には、ＨＤＤ１６毎に応答時間変化量を求め、ＨＤＤ１６に記憶されるデータ量で重み付け平均を計算した値をＬＵ２０８の応答時間変化量とする。
【０２８９】
記憶装置４０毎に、
Ｉ  ＝  Σ（ＬＵ処理時間変化の平均）
ただし、  （ＬＵ処理時間変化の平均）＝（応答時間変化量）×（ＬＵの平均リードＩ／Ｏ回数）×（ヒット率変化量）
として、Ｉを最大化するようなキャッシュ割当の変更方法を求める（ステップ２７０５）。
【０２９０】
ここで、Σは、ある記憶装置４０における指定されたＪｏｂのデータを保持するＬＵ２０８に関して総和を取ることを意味する。また、応答時間変化量は、ステップ２７０４で求めたものを用い、ＬＵ２０８の平均リードＩ／Ｏ回数はモニタ履歴情報５１０から取得する。ヒット率変化量はステップ２７０３で求めたヒット率変化率とキャッシュ割当の変更量から求めることができる。このとき、ヒット率変化率は、キャッシュグループのキャッシュ量により変化することに注意する。
【０２９１】
最大化には、例えば、以下のアルゴリズムを用いる。
【０２９２】
先ず、あるキャッシュグループに対して、単位キャッシュ量を増やした場合と減らした場合のＩを計算する。そして、キャッシュ量を減らした場合に最もＩが大きい（影響が小さい）キャッシュグループからキャッシュ量を増やした場合に最もＩの値が大きい（効果が高い）キャッシュグループへ単位量分キャッシュ割当を変更したとした場合のＩの値を再計算し、それがある閾値以上のときに「効果あり」としてキャッシュ割当の変更をおこなうとする。以下、キャッシュ割当の変更がおこなわれたとして上記確認を繰り返し実施し、さらに割当変更をおこなうことに効果なしと判断されるか、あるいは、事前に定められる一定量（例えば、記憶装置４０でＪｏｂが利用しているキャッシュ量の一定割合）分の割当変更をおこなった場合に、この確認の繰り返しを終了させる。なお、処理開始時にキャッシュ割当量を削減してはならないキャッシュグループが指定された場合には、その制約を守るようにする。
【０２９３】
そして、処理を終了する（ステップ２７０６）。このとき、図１６のＪｏｂリソース管理情報６２０の中のＪｏｂキャッシュ量情報６５０中の割当情報６５２の値を更新する。
【０２９４】
次に、図２６を用いてＩ／Ｏ処理性能の変更方法を決定する処理について説明する。
図２６は、Ｉ／Ｏ処理性能の変更方法を決定する処理のフローチャートである。
【０２９５】
この処理は、Ｊｏｂとポートの割当てを調整して変更する処理であり、図２２のＪｏｂを実行する処理のステップ１３０３、図２０、図２１のＪｏｂのチューニング処理のステップ１５１５、１５１７からコールされる処理である。
【０２９６】
また、この処理は、処理開始時に、上位ルーチンからＪｏｂを新規に追加するときやＪｏｂの完了により割当を開放した際の変更をするときには、そのＪｏｂの識別子と追加・開放を示す情報が与えられ、既に割り当てられたＩ／Ｏ処理量を変更する場合には、変更するＪｏｂの識別子と割当を変更したいポート２６の識別子、そのポート２６へ新たに設定したい性能割合６３２が与えられる（ステップ１６０１）。他のＪｏｂが要求するＩ／Ｏ処理量は、特に指定がない限り、Ｊｏｂポート設定情報６３０とそこから識別されるＪｏｂのＪｏｂ管理情報７４０から把握する。
【０２９７】
先ず、割当変更の対象となる記憶装置４０におけるＩ／ＯパスＩ／Ｆ３２のポート２６を把握する（ステップ１６０２）。
【０２９８】
Ｊｏｂの新規追加・削除の時には、Ｊｏｂの識別子からＪｏｂリソースマッピング情報を参照し、そのＪｏｂが利用するポート２６を全て把握し、それらを処理量割当の変更対象とする。ポート２６のＩ／Ｏ処理量が直接指定されたときは、処理量割当の変更対象は指定されたポート２６のみとする。その後、求めたポート２６を利用する現在実行中のＪｏｂを、システム管理情報４１２の中のＪｏｂリソースマッピング情報を用いて全て把握する。
【０２９９】
次に、ステップ１６０２で求めた各ポート２６において、各Ｊｏｂの要求値通りＩ／Ｏ処理量を割り当てるとした割当案を作成する（ステップ１６０３）。
【０３００】
ここで要求値とは、処理が呼び出されたときに性能割合６３２が指定されたときにはその値であり、そうでない場合には以下のように求める。
【０３０１】
先ず、Ｊｏｂリソースマッピング情報から求まるポート２６を通してＪｏｂがアクセスする各データに対して、そのＪｏｂのＪｏｂ管理情報中のＩ／Ｏ処理内容情報７４０を参照し、そのデータに対応するアクセス順７４２の値によりグループ化する。次に、各グループ毎にそれに属するデータのＩ／Ｏベース性能７４８のそのポート２６における性能値を性能割合６３２に変換した値の和を計算する。それぞれのグループにおける計算値とＪｏｂポート設定情報６３０中の現在の性能割合６３２を比較し、その中で最も大きな値を要求値とする。
【０３０２】
ステップ１６０３で求めた割当案が実現可能か、すなわち、各ポート２６における各Ｊｏｂからの要求値の和が１００％を超えないかを確認する（ステップ１６０４）。
【０３０３】
実現不可能なポートが存在する場合には、ステップ１６０５に進む。全てのポートで実現可能である場合には、ステップ１６１０に進み、現在の割当案をＩ／Ｏ処理量の割当方法とし、処理を終了する。
【０３０４】
ステップ１６０４で全てのポートで実現可能である場合と判断された場合、ステップ１６０４の確認で問題が発生するとされたポート２６に対してのみ割当案の再計算をおこなう。
【０３０５】
先ず、オンライン業務向けＪｏｂの負荷確認に用いるモニタ情報の参照時間を定める（ステップ１６０５）。
【０３０６】
基本的には、現時刻から、事前に与えられた時間（例えば１時間）をその時間とする。ただし、ステップ１６０２で求めたＪｏｂに関して、あるＪｏｂがバッチＪｏｂ管理情報７００で管理される場合には、そのＪｏｂが開始された時間から最大実行時間７１０の値で与えられる時間、処理が実行されるとして実行終了時刻を見積り、その終了時刻が前述の参照期間の終了時刻より早い場合には、そのＪｏｂの実行終了見積時刻をモニタ情報の参照時間の終了時刻としてもよい。
【０３０７】
次に、要求性能に影響を与えないと見積られる範囲でＩ／Ｏ処理量を削減した割当案を作成する（ステップ１６０６）。
【０３０８】
割当値は、処理が呼び出されたときに処理量が指定されものはその値とする。
【０３０９】
バッチＪｏｂ管理情報７００で管理されるＪｏｂに対しては次のように計算する。先ず、割当量が定まっていないポート２６における処理性能は、要求値にＪｏｂ毎に定まる補正係数を掛けた値となるとし、そのときに処理実行時間見積値が最大実行時間７１０で与えられる時間となる補正係数を計算する。前述のＪｏｂの処理実行時間見積方法の説明に従うことにより補正係数を求める単純な方程式が得られ、これを解くことによりその値を求める。バッチＪｏｂ管理情報７００中のＪｏｂ優先度７０４を用いて優先度制御情報８８０を参照して求める余裕係数８８２と計算した補正係数を要求値に乗じた値と要求値を比較し、小さな値の方を割当値とする。
【０３１０】
オンラインＪｏｂ管理情報７７０で管理されるＪｏｂに対しては、次のように求める。先ず、割当量が定まっていないポート２６を経由してアクセスされるデータを記憶するＬＵ２０８をＪｏｂリソースマッピング情報から求める。過去のそのＬＵ２０８への対象ポート２６を介してのＩ／Ｏ処理量をモニタ履歴情報５１０から把握する。その際に参照するデータは、事前に定められた期間（例えば１週間）以内のステップ１６０５で求めたモニタ情報の参照時間内のモニタ値と、直前のモニタ値とする。そのモニタ値から計算する性能割合６３２の最大値にオンラインＪｏｂ管理情報７７０中のＪｏｂ優先度７０４から求まる余裕係数８８２を乗じた値と要求値を比較し、小さな方を割当値とする。
【０３１１】
そして、求めた各ポート２６における各Ｊｏｂからの割当値の和が１００％を超えないか確認する（ステップ１６０７）。なお、和が１００％を超えないポート２６に関しては、総和が１００％になるように割当値の修正をおこなう。この修正は、Ｊｏｂ優先度７０４が高いＪｏｂから順に要求値からの差分を順次割り当てることによりおこなう。
【０３１２】
一つ以上のポート２６で割当値の和が１００％を超える問題が解消されない場合にステップ１６０８に進む。全てのポートで問題が解消された場合にはステップ１６１０に進み、現在の割当案をＩ／Ｏ処理量の割当方法とし、処理を終了する。
【０３１３】
以降、ステップ１６０７までで、問題が解決されなかったポート２６に対して、Ｊｏｂの優先度を考慮してＩ／Ｏ処理量を割り当てる処理をおこなう（ステップ１６０８）。
【０３１４】
例えば、割当が決まっていないポート２６毎に、そのポート２６への各Ｊｏｂの割当量は、ステップ１６０６で求めた割当量にポート２６毎に定める新たな補正係数を（Ｊｏｂに与えられたＪｏｂ優先度７０４の値）乗じたものとし、その総和が１００％になるように補正係数を決定、その値を各Ｊｏｂへの割当値とする。
【０３１５】
ステップ１６０８でＩ／Ｏ処理量の割当案が作成されたポート２６を介してデータをアクセスするＪｏｂに関して、バッチＪｏｂ管理情報７００で管理されるＪｏｂにおいては割当案による処理時間見積り値が最大実行時間７１０を満たさない場合、オンラインＪｏｂ管理情報７７０で管理されるＪｏｂにおいてはＩ／Ｏ処理量のステップ１６０６で求めた割当値を確保できなかったポート２６が存在する場合に、要求性能を満たさない可能性が高い旨の情報を出力する（ステップ１６０９）。
【０３１６】
これは、管理端末１１０の画面１１４にその旨を表示してもよいし、また、システム管理プログラム１４０が各種イベントの履歴を記憶するログに追加してもよい。
【０３１７】
そして、処理を終了する（ステップ１６１０）。
【０３１８】
次に、図２７を用いてモニタ情報を基にしたデータ移動によるＨＤＤ過負荷状態の解消方法を決定する処理について説明する。
図２７は、モニタ情報を基にしたデータ移動によるＨＤＤ過負荷状態の解消方法を決定する処理のフローチャートである。
【０３１９】
この処理は、図２０のＪｏｂのチューニング処理のステップ１５０８からコールされる処理である。
【０３２０】
処理開始時に、上位ルーチンからデータの移動元となる移動元ＨＤＤ１６を有する記憶装置４０と移動元ＨＤＤ１６とそこに記憶されているデータを移動するＬＵ２０８のそれぞれの識別子が与えられる（ステップ２９０１）。
【０３２１】
先ず、各仮想化機構から領域マッピング情報３００の最新状態を取得し、マッピング集約情報を最新の状態に更新する。その後、各仮想化機構の領域マッピング情報３００におけるフリーエントリ３１４に対応する下位管理構造対応領域情報３０４を基に「フリー領域」として把握し、可能であれば、仮想化スイッチ６０、ボリュームマネージャ７８におけるフリー領域を開放する（ステップ２９０２）
ここで、「フリー領域」とは、フリーエントリ３１４に対応する下位管理構造対応領域情報３０４のうちで、システム管理情報１４２中に既に存在する「データ移動要求」のデータの移動先として利用されていないものである。また、データ移動要求とは、このステップ２９０１から開始される処理が作成するある記憶装置４０におけるデータ移動によりＬＵ２０８とＨＤＤ１６の対応を変更する方法に関する情報であり、そのデータ移動を実施する記憶装置４０の装置ＩＤ５７２と移動元となるＨＤＤ１６のＨＤＤＩＤ３９４とデータを移動すべきＬＵ２０８のＬＵＩＤ３６４、移動先となるＨＤＤ１６のＨＤＤＩＤ３９４とその中の領域に関する情報を含んでいる。この情報はシステム管理情報１４２中に保存される。
【０３２２】
把握したフリー領域のうち、仮想化スイッチ６０、ボリュームマネージャ７８におけるフリー領域に関しては、可能であればその領域を開放する指示を仮想化スイッチ６０、ボリュームマネージャ７８に発行することにより、開放することができる。ある領域が開放された際に、開放された領域を構成していたものが仮想構造であり、かつ、その仮想構造の全ての領域が上位階層で利用されなくなった場合には、その仮想構造を提供する仮想化機構にその仮想構造を削除するよう指示し、その仮想構造を構成していた管理構造の領域をフリー領域化する。以下、再帰的にこの領域開放処理を行い、それらについてもフリー領域の把握をおこなう。
【０３２３】
移動元ＨＤＤ１６を有する記憶装置４０内のＨＤＤ１６のうち、移動元ＨＤＤ１６上に記憶されている指定されたＬＵ２０８のデータを全て連続したフリー領域へ格納可能なＨＤＤ１６を求め、そのＨＤＤ１６のリードミス時の平均応答時間をＨＤＤ性能情報６１２中のアクセス性能情報６１４から求め、その値が移動元ＨＤＤ１６の値以下（同等以上のリードミス性能）のＨＤＤ１６を選択する（ステップ２９０３）。なお、ＨＤＤ１６が選択されない可能性もある。
【０３２４】
選択されたＨＤＤ１６において、モニタ履歴情報５１０中の最近のある一定期間（例えば１週間）におけるＨＤＤ１６の稼働率のサンプル５２４を把握し、その期間内の各サンプル５２４で、そこがデータの移動先となった場合の、データ移動後のＨＤＤ１６全体の稼働率（ＨＤＤ１６にデータを記憶するＬＵ２０８におけるＨＤＤ１６の稼働率の総和）を見積る（ステップ２９０４）。
【０３２５】
ここで、移動されたＬＵ２０８のデータによるＨＤＤ１６の稼働率は、移動先と移動元でＨＤＤ１６の稼働率はリードミス性能に比例するとして、移動元ＨＤＤ１６におけるＬＵ２０８分の稼働率を補正した値として見積る。
【０３２６】
各サンプル５２４の見積り値のうち、最も値の大きいものをそのＨＤＤ１６のデータ移動後の稼働率とし、その値が最も小さなＨＤＤ１６を選択し、それが事前に定められる閾値（例えば５０％）未満か否かを確認する。閾値未満の場合にはそこへ移動元ＨＤＤ１６におけるＬＵ２０８のデータを移動するデータ移動要求を作成する（ステップ２９０５）。閾値以上の場合、もしくは、ステップ２９０３でＨＤＤ１６が一つも選択されなかった場合には、作成失敗としてデータ移動要求は作成しない。
【０３２７】
そして処理を終了する（ステップ２９０６）。
【０３２８】
〔実施形態２〕
以下、本発明に係る第二の実施形態を、図２８を用いて説明する。
図２８は、本発明の第二の実施形態に係る記憶装置の性能を管理する計算機システムの構成図である。
【０３２９】
第一の実施形態では、サーバ７０と記憶装置４０の間に仮想化スイッチ６０が置かれ、Ｉ／Ｏパス３４と、ネットワーク２４により接続されていた。そして、図２に示すような管理構造により、データが仮想化されていた。
【０３３０】
本実施形態では、記憶装置４０ｂは、ファイルを外部装置に対して提供し、そのファイルは、ネットワークファイルシステムプロトコルを用いてネットワーク経由でアクセスされる。
【０３３１】
以下、第一の実施の形態との差異に関して説明する
本実施形態においては、Ｉ／Ｏパス３４、仮想化スイッチ６０が存在しない。ネットワークＩ／Ｆ２４のポート２６には、システム内で一意に識別可能なポートＩＤ３８４が付加される。
【０３３２】
サーバ７０は、Ｉ／ＯパスＩ／Ｆ３２を有せず、ネットワークＩ／Ｆ２２のみ有している。ＯＳ７２は、外部装置が提供するファイル２０２をネットワークファイルシステムプロトコルを用いて、ネットワーク２４経由でアクセスするネットワークファイルシステム８２を含む。
【０３３３】
ネットワークファイルシステム８２は、領域マッピング情報３００をＯＳ管理情報７４中に有する。また、ＤＢＭＳ９０やＡＰプログラム１００により認識されるファイル２０２と記憶装置４０ｂから提供されるファイル２０２があるルールに従って対応する場合、その対応関係を定める情報のみがＯＳ管理情報７４中に保持されても良い。この場合には、システム管理プログラム１４０は対応関係を定める情報を取得し、それから領域マッピング情報３００を作成し、マッピング集約情報中に記憶する。
【０３３４】
記憶装置４０ｂは、Ｉ／ＯパスＩ／Ｆ３２を有せず「ファイル」と言う概念で、外部装置に対してデータのアクセスをさせるものである。記憶装置４０ｂの制御プログラム４４ｂに変更され、次の機能を有する。制御プログラム４４ｂは、第一の実施形態のファイルシステム８０が提供する機能を有し、記憶装置４０ｂ内に存在するＬＵ２０８の記憶領域を仮想化して、ファイル２０２と言う概念でデータアクセスを可能にする。また、制御プログラム４４ｂは一つ以上のネットワークファイルシステムプロトコルを解釈し、ネットワーク２４、ネットワークＩ／Ｆ２２経由で外部装置からそのプロトコルを用いて要求されるファイルアクセス処理を実施する。
【０３３５】
データのマッピングに関しては、データのマッピング階層構成において、ファイル２０２以下が全て記憶装置４０ｂにより提供されるようになり、サーバ７０はＯＳ７２内のネットワークファイルシステム８２を用いて記憶装置４０ｂ上にあるファイル２０２をアクセスする。
【０３３６】
記憶装置内の論理階層としては、図２のようなファイル２０２とＬＵ２０８間に、論理ボリューム２０４、仮想ボリューム２０６を含んだものとしてもよいし、単に、ファイル２０２−ＬＵ２０８−ＨＤＤ１６という、より簡易な構成でもよい。
【０３３７】
その他の差異をまとめると以下のようになる。Ｉ／ＯパスＩ／Ｆ３２のポート２６をネットワークＩ／Ｆ２２のポート２６に対応させる。記憶装置４０が有していた優先アクセス制御機能に関してもこれを当てはめる。
【０３３８】
記憶装置４０のＬＵ２０８に対応するものとして、記憶装置４０ｂのファイル２０２を対応させる。キャッシュグループのメンバの管理単位もファイル２０２が単位となる。
【０３３９】
モニタ情報の取得や、各種処理においては、基本的に上記の変更をおこなうことにより、第一の実施の形態のものをそのまま当てはめることができる。
【０３４０】
【発明の効果】
本発明によれば、ＤＢＭＳが稼動する計算機システムにおいて、記憶装置に対する性能管理を、ユーザの業務における性能指標を用いておこなえるようにし、性能管理を容易化することができる。
【０３４１】
また、本発明によれば、ＤＢＳＭが稼動する計算機システムにおいて、記憶装置の性能チューニング処理を自動化し、性能管理コストを削減することができる。
【図面の簡単な説明】
【図１】本発明の第一の実施形態に係る記憶装置の性能を管理する計算機システムの構成図である。
【図２】本発明の第一の実施形態に係るＤＢＭＳ９０が管理するデータのデータマッピングの階層構成図である。
【図３】領域マッピング情報３００のデータ構造を示す模式図である。
【図４】上位ポートマッピング情報３２２のデータ構造を示す模式図である。
【図５】データ記憶領域情報３４２のデータ構造を示す模式図である。
【図６】キャッシュグループ情報４６０のデータ構造を示す模式図である。
【図７】ストレージモニタ情報３６０のデータ構造を示す模式図である。
【図８】ポートスループット設定情報４４０のデータ構造を示す模式図である。
【図９】ポートモニタ情報４００のデータ構造を示す模式図である。
【図１０】オンラインＪｏｂモニタ情報４３０のデータ構造を示す模式図である。
【図１１】ストレージ性能情報６１０のデータ構造を示す模式図である。
【図１２】モニタ履歴情報５１０のデータ構造を示す模式図である。
【図１３】バッチＪｏｂ管理情報７００のデータ構造を示す模式図である。
【図１４】バッチＳＱＬ設計情報８５０のデータ構造を示す模式図である。
【図１５】オンラインＪｏｂ管理情報７７０のデータ構造を示す模式図である。
【図１６】Ｊｏｂリソース管理情報６２０のデータ構造を示す模式図である。
【図１７】優先度制御情報８８０のデータ構造を示す模式図である。
【図１８】Ｊｏｂ管理情報７００中のＣＰＵ処理時間見積方法７１６とＩ／Ｏ処理内容情報７４０ａをモニタ情報の実測により設定する処理のフローチャートである。
【図１９】システム管理プログラムのモニタ情報の収集とそのモニタ情報によるＪｏｂチューニング処理のゼネラルチャートである。
【図２０】モニタ情報によるＪｏｂチューニング処理のフローチャートである（その一）。
【図２１】モニタ情報によるＪｏｂチューニング処理のフローチャートである（その二）。
【図２２】システム管理プログラムによるＪｏｂ実行処理のフローチャートである。
【図２３】システム管理プログラム１４０がＪｏｂを開始する際にキャッシュ量の割当を決定する処理のフローチャートである。
【図２４】システム管理プログラム１４０がＪｏｂの終了時処理として実施するキャッシュの再割当処理のフローチャートである。
【図２５】モニタ情報を基にしたオンラインＪｏｂ向けにキャッシュ量をチューニングする処理のフローチャートである。
【図２６】Ｉ／Ｏ処理性能の変更方法を決定する処理のフローチャートである。
【図２７】モニタ情報を基にしたデータ移動によるＨＤＤ過負荷状態の解消方法を決定する処理のフローチャートである。
【図２８】本発明の第二の実施形態に係る記憶装置の性能を管理する計算機システムの構成図である。
【符号の説明】
１６…ＨＤＤ、２２…ネットワークＩ／Ｆ、２４…ネットワーク、２６…ポート、３２…Ｉ／ＯパスＩ／Ｆ、３４…Ｉ／Ｏパス、４０…記憶装置、６０…仮想化スイッチ、７０…サーバ、９０…ＤＢＭＳ、１００…ＡＰプログラム、１２０…管理サーバ、１４０…システム管理プログラム。
【図１】
2004302751.tif 000003
【図２】
2004302751.tif 000004
【図３】
2004302751.tif 000005
【図４】
2004302751.tif 000006
【図５】
2004302751.tif 000007
【図６】
2004302751.tif 000008
【図７】
2004302751.tif 000009
【図８】
2004302751.tif 000010
【図９】
2004302751.tif 000011
【図１０】
2004302751.tif 000012
【図１１】
2004302751.tif 000013
【図１２】
2004302751.tif 000014
【図１３】
2004302751.tif 000015
【図１４】
2004302751.tif 000016
【図１５】
2004302751.tif 000017
【図１６】
2004302751.tif 000018
【図１７】
2004302751.tif 000019
【図１８】
2004302751.tif 000020
【図１９】
2004302751.tif 000021
【図２０】
2004302751.tif 000022
【図２１】
2004302751.tif 000023
【図２２】
2004302751.tif 000024
【図２３】
2004302751.tif 000025
【図２４】
2004302751.tif 000026
【図２５】
2004302751.tif 000027
【図２６】
2004302751.tif 000028
【図２７】
2004302751.tif 000029
【図２８】
2004302751.tif 000030