(57)【特許請求の範囲】
【請求項１】
第１のサーバ装置と、１又は複数の第２のサーバ装置とを有し、クライアントから前記第１のサーバ装置に与えられる命令を前記第１のサーバ装置で実行し、又は、当該命令を前記第１のサーバ装置から前記第２のサーバ装置に転送して前記第２のサーバ装置で実行する情報処理システムにおいて、
前記第２のサーバ装置は、
過去に実行した前記命令の種別及び当該命令の実行に利用した経路の組合せごとの、当該命令の処理に要した当該第２のサーバ装置自体の処理時間と、当該命令の実行時のデータ通信量とをそれぞれ保持し、
前記第１のサーバ装置は、
各前記第２のサーバ装置から、当該第２のサーバ装置が保持している前記命令の種別及び前記経路の組合せごとの前記処理時間及び前記データ通信量と、当該第２のサーバ装置の負荷状況を表す負荷情報と、当該第２のサーバ装置が接続された各前記経路の通信性能とをサーバ関連情報としてそれぞれ収集する情報収集部と、
前記情報収集部により収集された各前記第２のサーバ装置の前記サーバ関連情報に基づいて、前記命令の種別及び前記経路の組合せごとの処理時間をそれぞれ予測する経路処理時間予測部と、
前記経路処理時間予測部の予測結果に基づき、前記クライアントから与えられた前記命令の特性を考慮して、当該命令を実行する経路を決定する経路決定部と、
前記経路決定部の決定結果に基づいて、前記クライアントから与えられた命令を実行し又は対応する前記第２のサーバ装置に実行させる実行部と
を備えることを特徴とする情報処理システム。
【請求項２】
前記経路決定部は、
前記経路処理時間予測部の予測結果に基づいて、前記経路の選択が与える応答性能への影響度を算出し、
算出した前記影響度が予め設定された閾値以上のときには、応答速度を優先して前記クライアントから与えられた前記命令を実行するための前記経路を決定し、前記影響度が前記閾値未満のときには、負荷分散を優先して当該命令を実行するための前記経路を決定する
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記クライアントからの前記命令が同期命令である場合の前記閾値の値が、当該命令が非同期命令である場合の当該閾値の値よりも低い値に設定された
ことを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記経路決定部は、
前記クライアントから与えられた前記命令について、使用可能なすべての前記経路の処理時間が前記経路処理時間予測部により予測されていない場合には、当該処理時間が予測されていない前記経路の中から当該命令を実行する前記経路を決定する
ことを特徴とする請求項１に記載の情報処理システム。
【請求項５】
前記経路決定部は、
前記命令の特性として、前記クライアントからの命令に応じて実際に前記第１又は第２のサーバ装置で実行される命令の内容、当該命令を発行した前記クライアントを利用するユーザの属性、及び、当該命令が即座に実行すべき種類のものであるか否かを考慮して、前記クライアントからの前記命令を実行する前記経路を決定する
ことを特徴とする請求項１に記載の情報処理システム。
【請求項６】
第１のサーバ装置と、１又は複数の第２のサーバ装置とを有し、クライアントから前記第１のサーバ装置に与えられる命令を前記第１のサーバ装置で実行し、又は、当該命令を前記第１のサーバ装置から前記第２のサーバ装置に転送して前記第２のサーバ装置で実行する情報処理システムにおいて実行される情報処理方法であって、
前記第２のサーバ装置は、
過去に実行した前記命令の種別及び当該命令の実行に利用した経路の組合せごとの、当該命令の処理に要した当該第２のサーバ装置自体の処理時間と、当該命令の実行時のデータ通信量とをそれぞれ保持し、
前記第１のサーバ装置が、各前記第２のサーバ装置から、当該第２のサーバ装置が保持している前記命令の種別及び前記経路の組合せごとの前記処理時間及び前記データ通信量と、当該第２のサーバ装置の負荷状況を表す負荷情報と、当該第２のサーバ装置が接続された各前記経路の通信性能とをサーバ関連情報としてそれぞれ収集する第１のステップと、
前記第１のサーバ装置が、収集した各前記第２のサーバ装置の前記サーバ関連情報に基づいて、前記命令の種別及び前記経路の組合せごとの処理時間をそれぞれ予測する第２のステップと、
前記第１のサーバ装置が、予測結果に基づき、前記クライアントから与えられた前記命令の特性を考慮して、当該命令を実行する経路を決定する第３のステップと、
前記第１のサーバ装置が、決定結果に基づいて、前記クライアントから与えられた命令を実行し又は対応する前記第２のサーバ装置に実行させる第４のステップと
を備えることを特徴とする情報処理方法。
【請求項７】
前記第３のステップにおいて、前記第１のサーバ装置は、
前記第２のステップの予測結果に基づいて、前記経路の選択が与える応答性能への影響度を算出し、
算出した前記影響度が予め設定された閾値以上のときには、応答速度を優先して前記クライアントから与えられた前記命令を実行するための前記経路を決定し、前記影響度が前記閾値未満のときには、負荷分散を優先して当該命令を実行するための前記経路を決定する
ことを特徴とする請求項６に記載の情報処理方法。
【請求項８】
前記クライアントからの前記命令が同期命令である場合の前記閾値の値が、当該命令が非同期命令である場合の当該閾値の値よりも低い値に設定された
ことを特徴とする請求項７に記載の情報処理方法。
【請求項９】
前記第３のステップにおいて、前記第１のサーバ装置は、
前記クライアントから与えられた前記命令について、使用可能なすべての前記経路の処理時間を予測していない場合には、当該処理時間を予測していない前記経路の中から当該命令を実行する前記経路を決定する
ことを特徴とする請求項６に記載の情報処理方法。
【請求項１０】
前記第３のステップにおいて、前記第１のサーバ装置は、
前記命令の特性として、前記クライアントからの命令に応じて実際に前記第１又は第２のサーバ装置で実行される命令の内容、当該命令を発行した前記クライアントを利用するユーザの属性、及び、当該命令が即座に実行すべき種類のものであるか否かを考慮して、前記クライアントからの前記命令を実行する前記経路を決定する
ことを特徴とする請求項６に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理システム及び方法に関し、例えば、マネージャ（Manager）−エージェント（Agent）構成を有する情報処理システムに適用して好適なものである。
【背景技術】
【０００２】
従来、クライアントからの命令を複数のサーバ装置に分散させる方法の１つとして、マネージャ−エージェント構成がある。マネージャ−エージェント構成のシステムでは、クライアントからの命令をマネージャが実装されたサーバ装置（以下、これをマネージメントサーバと呼ぶ）で受け付け、実際の命令実行はエージェントが実装されたサーバ装置（以下、これをエージェントサーバと呼ぶ）で実施し、エージェントサーバから戻ってきた結果をマネージメントサーバからクライアントに送信する。【０００３】
このようなマネージャ−エージェント構成を有する情報処理システムについて、従来、エージェントサーバが命令の実行対象の装置（以下、ストレージ装置とする）までの通信経路を経路の通信速度等に基づいて選択することにより応答性能を向上させる方法が広く用いられている（特許文献１及び特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２７３９５１号公報
【特許文献２】特開２０００−１９４６５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ストレージ装置に対する管理命令の処理時間は、実行基盤（Out of Band又はIn Band）の種類によって異なる。これは単にOut of Bandの多くがＬＡＮ（Local Area Network）などから構成され、In Bandの多くがＦＣ（Fibre Cannel）等のOut of Bandよりも通信速度が速い経路から構成されることによるだけではなく、実行基盤の種類によってストレージ装置における処理内容が異なり、この結果として実行基盤の種類によってストレージ装置における命令の処理時間が異なってくることに起因する。【０００６】
このため、システム全体としての応答速度（ストレージ装置の処理時間＋システム内の通信時間）を考えた場合に、ストレージ装置への経路の通信速度を考慮するだけではより応答速度の速い経路を選択し難いという問題があった。【０００７】
実際上、かかる管理命令の中には応答性能が変わらないものもあれば、実行基盤により顕著な差がでるものある。特に、内部で複数の命令を組み合わせるプロビジョニングやペア操作などの命令は実行基盤によって応答性能の差がでやすい。【０００８】
またストレージ装置の管理命令には実行時間が数分に及ぶものも多く、従来手法による経路選択では、エージェントサーバにおいて、実行に長時間を要する命令の集中によるキュー詰まりが発生したり、同期命令が遅い経路で実行されることによる経路占有の長期化が発生する問題があった。【０００９】
さらにストレージ装置の管理には操作権限が設定されているため、一般ユーザからの命令よりも管理者からの管理命令を優先させてストレージ装置に実行されることが期待されるが、従来方法では、このような配慮がなく、管理者からの管理命令が一般ユーザからの命令に埋もれて応答性能が悪くなるおそれもあった。【００１０】
本発明は以上の点を考慮してなされたもので、かかる問題を一気に解決して、システム全体の処理速度を向上させ得る情報処理システム及び方法を提案しようとするものである。
【課題を解決するための手段】
【００１１】
かかる課題を解決するため本発明においては、第１のサーバ装置と、１又は複数の第２のサーバ装置とを有し、クライアントから前記第１のサーバ装置に与えられる命令を前記第１のサーバ装置で実行し、又は、当該命令を前記第１のサーバ装置から前記第２のサーバ装置に転送して前記第２のサーバ装置で実行する情報処理システムにおいて、前記第２のサーバ装置は、過去に実行した前記命令の種別及び当該命令の実行に利用した経路の組合せごとの、当該命令の処理に要した当該第２のサーバ装置自体の処理時間と、当該命令の実行時のデータ通信量とをそれぞれ保持し、前記第１のサーバ装置は、各前記第２のサーバ装置から、当該第２のサーバ装置が保持している前記命令の種別及び前記経路の組合せごとの前記処理時間及び前記データ通信量と、当該第２のサーバ装置の負荷状況を表す負荷情報と、当該第２のサーバ装置が接続された各前記経路の通信性能とをサーバ関連情報としてそれぞれ収集する情報収集部と、前記情報収集部により収集された各前記第２のサーバ装置の前記サーバ関連情報に基づいて、前記命令の種別及び前記経路の組合せごとの処理時間をそれぞれ予測する経路処理時間予測部と、前記経路処理時間予測部の予測結果に基づき、前記クライアントから与えられた前記命令の特性を考慮して、当該命令を実行する経路を決定する経路決定部と、前記経路決定部の決定結果に基づいて、前記クライアントから与えられた命令を実行し又は対応する前記第２のサーバ装置に実行させる実行部とを設けるようにした。【００１２】
また本発明においては、第１のサーバ装置と、１又は複数の第２のサーバ装置とを有し、クライアントから前記第１のサーバ装置に与えられる命令を前記第１のサーバ装置で実行し、又は、当該命令を前記第１のサーバ装置から前記第２のサーバ装置に転送して前記第２のサーバ装置で実行する情報処理システムにおいて実行される情報処理方法であって、前記第２のサーバ装置は、過去に実行した前記命令の種別及び当該命令の実行に利用した経路の組合せごとの、当該命令の処理に要した当該第２のサーバ装置自体の処理時間と、当該命令の実行時のデータ通信量とをそれぞれ保持し、前記第１のサーバ装置が、各前記第２のサーバ装置から、当該第２のサーバ装置が保持している前記命令の種別及び前記経路の組合せごとの前記処理時間及び前記データ通信量と、当該第２のサーバ装置の負荷状況を表す負荷情報と、当該第２のサーバ装置が接続された各前記経路の通信性能とをサーバ関連情報としてそれぞれ収集する第１のステップと、前記第１のサーバ装置が、収集した各前記第２のサーバ装置の前記サーバ関連情報に基づいて、前記命令の種別及び前記経路の組合せごとの処理時間をそれぞれ予測する第２のステップと、前記第１のサーバ装置が、予測結果に基づき、前記クライアントから与えられた前記命令の特性を考慮して、当該命令を実行する経路を決定する第３のステップと、前記第１のサーバ装置が、決定結果に基づいて、前記クライアントから与えられた命令を実行し又は対応する前記第２のサーバ装置に実行させる第４のステップとを設けるようにした。【００１３】
本発明の情報処理システム及び方法によれば、システムの応答速度を向上させながら、システム内での負荷分散をも適正に行うことができる。
【発明の効果】
【００１４】
本発明によれば、システム全体の処理速度を向上させ得る情報処理システム及び方法を実現できる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態による情報処理システムの構成例を示すブロック図である。
【図２】マネージメントサーバの構成例を示すブロック図である。
【図３】エージェントサーバの構成例を示すブロック図である。
【図４】エージェントが管理するエージェント経路テーブルの構成例を示す概念図である。
【図５】エージェントが管理する装置処理時間テーブルの構成例を示す概念図である。
【図６】エージェントが管理する通信量テーブルの構成例を示す概念図である。
【図７】エージェントが管理するキュー管理テーブルの構成例を示す概念図である。
【図８】エージェントが管理するサーバ負荷テーブルの構成例を示す概念図である。
【図９】マネージャが管理する経路管理テーブルの構成例を示す概念図である。
【図１０】マネージャが管理する装置処理時間テーブルの構成例を示す概念図である。
【図１１】マネージャが管理する通信量テーブルの構成例を示す概念図である。
【図１２】マネージャが管理する通信性能テーブルの構成例を示す概念図である。
【図１３】マネージャが管理する命令情報テーブルの構成例を示す概念図である。
【図１４】マネージャが管理するサーバ負荷テーブルの構成例を示す概念図である。
【図１５】マネージャが管理する予測処理時間テーブルの構成例を示す概念図である。
【図１６】予測処理時間算出処理の処理手順を示すフローチャートである。
【図１７】経路決定処理の処理手順を示すフローチャートである。
【図１８】情報収集優先経路決定処理の処理手順を示すフローチャートである。
【図１９】速度優先経路決定処理の処理手順を示すフローチャートである。
【図２０】負荷分散経路決定処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下図面について、本発明の一実施の形態を詳述する。
【００１７】
（１）本実施の形態による情報処理システムの構成
図１において、１は全体としてマネージャ−エージェント構成を有する本実施の形態による情報処理システムを示す。この情報処理システム１では、１又は複数のクライアント２がＬＡＮ（Local Area Network）等の第１のネットワーク３を介してマネージメントサーバ４と接続されている。
【００１８】
またマネージメントサーバ４は、同じくＬＡＮなどから構成されるOut of Bandでなる第２のネットワーク５を介して第１及び第２のエージェントサーバ６Ａ，６Ｂ並びに１又は複数のストレージ装置７と接続されている。さらに第１のエージェントサーバ６Ａは、第１及び第２のネットワーク３，５と比べて高速な通信規格（以下、ファイバチャネル（ＦＣ：Fibre Channel）規格とする）に準拠したIn Bandでなる通信路８を介してストレージ装置７と接続されている。なお、以下においては、第１及び第２のエージェントサーバ６Ａ，６Ｂを特に区別する必要がない場合には、これらをまとめてエージェントサーバ６と呼ぶものとする。
【００１９】
クライアント２は、本情報処理システム１のユーザ（本情報処理システム１の管理者を含む）側に設けられたコンピュータ装置である。クライアント２は、ユーザ操作等に応じて第１のネットワーク３を介してストレージ装置７に対するＩ／Ｏ処理の実行命令や、ストレージ装置７に対する管理命令などの各種命令をマネージメントサーバ４に送信する。
【００２０】
マネージメントサーバ４は、クライアント２からの命令を自ら実行し、又は、当該命令を第２のネットワーク５を介してエージェントサーバ６に転送し、その命令をそのエージェントサーバ６に実行させる機能を有するサーバ装置であり、図２に示すように、ＣＰＵ（Central Processing Unit）１０、メモリ１１、補助記憶装置１２及び通信インタフェース部１３などの情報処理資源を備えて構成される。
【００２１】
ＣＰＵ１０は、マネージメントサーバ４全体の動作制御を司るプロセッサである。またメモリ１１は、例えば揮発性の半導体メモリから構成され、ＣＰＵ１０のワークメモリとして利用される。情報収集部１４、経路処理時間予測部１５、経路決定部１６及び実行部１７から構成されるマネージャ（プログラム）１８は、このメモリ１１に格納されて保持される。情報収集部１４、経路処理時間予測部１５、経路決定部１６及び実行部１７の詳細については、後述する。
【００２２】
補助記憶装置１２は、例えばハードディスク装置やＳＳＤ（Solid State Drive）などの大容量の不揮発性記憶デバイスから構成され、各種プログラムや必要な情報を長期期間保持するために利用される。補助記憶装置１２に格納されたプログラムがメモリ１１に読み出され、メモリ１１に読み出されたプログラムがＣＰＵ１０により実行されることにより、マネージメントサーバ４全体としての各種処理が行われる。後述する経路管理テーブル１９、装置処理時間テーブル２０、通信量テーブル２１、通信性能テーブル２２、命令情報テーブル２３、サーバ負荷テーブル２４及び予測処理時間テーブル２５もこの補助記憶装置１２に保持される。
【００２３】
通信インタフェース部１３は、例えば、ＮＩＣ（Network Interface Card）などから構成される。通信インタフェース部１３は、第１のネットワーク３を介したクライアント２との通信時や、第２のネットワーク５を介した第１又は第２のエージェントサーバ６Ａ，６Ｂ又はストレージ装置７との通信時におけるプロトコル制御を行う。
【００２４】
エージェントサーバ６は、第２のネットワーク５を介してマネージメントサーバ４から転送されてきたクライアント２からの命令を実行するサーバ装置である。エージェントサーバ６は、図３に示すように、ＣＰＵ３０、メモリ３１、補助記憶装置３２及び通信インタフェース部３３を備えて構成される。これらＣＰＵ３０、メモリ３１、補助記憶装置３２及び通信インタフェース部３３は、マネージメントサーバ４の対応部位（ＣＰＵ１０、メモリ１１、補助記憶装置１２及び通信インタフェース部１３）と同様の構成及び機能を有するものであるため、ここでの詳細説明は省略する。
【００２５】
エージェントサーバ６では、情報収集部３４及び実行部３５から構成されるエージェント（プログラム）３６がメモリ３１に格納されて保持される。情報収集部３４及び実行部３５の詳細については、後述する。また後述するエージェント経路テーブル３７、装置処理時間テーブル３８、通信量テーブル３９、キュー管理テーブル４０及びサーバ負荷テーブル４１は、補助記憶装置３２に格納されて保持される。
【００２６】
マネージメントサーバ４に実装されたマネージャ（プログラム）１８（図２）と、エージェントサーバ６に実装されたエージェント（プログラム）３６とによりマネージャ−エージェント構成が構築され、これによりクライアント２からの命令に対する処理の負荷分散が図られる。
【００２７】
ストレージ装置７は、例えば複数のハードディスク装置やＳＳＤが搭載されたディスクアレイ装置などから構成され、クライアント２に対してデータを読み書きするための記憶領域である論理デバイスを提供する。ストレージ装置７は、クライアント２からの命令に応じてマネージメントサーバ４のマネージャ１８（図２）やエージェントサーバ６のエージェント３６（図３）から与えられる各種コマンドに従って、要求されたデータの読み書きや、論理デバイスの作成及びコピーペア設定などの各種処理を実行する。
【００２８】
（２）本実施の形態による経路選択機能
次に、マネージメントサーバ４に搭載された本実施の形態の経路選択機能について説明する。本実施の形態の場合、マネージメントサーバ４には、クライアント２から与えられた命令の特性と、過去にその命令を実行したときの実績と、各サーバ装置（マネージメントサーバ４及び各エージェントサーバ６）の負荷状況とに基づいて、その命令を実行するための経路ＲＴとして応答性能と負荷分散とを両立させた最適な経路ＲＴを選択する経路選択機能が搭載されている。
【００２９】
なお、ここでの「命令の特性」とは、クライアント２からの命令に応じて実際にマネージメントサーバ４やエージェントサーバ６で実行される命令（以下、これを内部処理命令と呼ぶ）の内容や、その命令を発行したクライアント２を利用するユーザの属性（管理者又は一般ユーザ）、及び、その命令が即座に実行すべき種類の命令（以下、これを同期命令と呼ぶ）であるか又はこれ以外の命令（以下、これを非同期命令と呼ぶ）であるかなどを指す。
【００３０】
実際上、本情報処理システム１の場合、各エージェントサーバ６は、過去に実行した各命令について、その命令の処理に自サーバが要した処理時間（以下、これを装置処理時間と呼ぶ）と、当該命令の実行時のデータ通信量とをそれぞれ経路ＲＴごとに分けて記憶している。
【００３１】
そしてマネージメントサーバ４は、これら経路ＲＴごとの装置処理時間及びデータ通信量と、そのときのエージェントサーバ６の負荷状況となどを各エージェントサーバ６からそのエージェントサーバ６のサーバ関連情報として収集し、収集したこれらのサーバ関連情報と、そのときクライアント２から与えられた命令の特性とに基づいて、その命令を実行するための経路ＲＴを選択する。
【００３２】
この際、マネージメントサーバ４は、本情報処理システム１の管理者が用いるクライアント２から発行された命令については、一般ユーザが用いるクライアント２から発行された命令に優先して実行すべく、応答速度を優先してその命令を実行する経路ＲＴを選択する。
【００３３】
また同期命令は、経路ＲＴを占有するため非同期命令に比べて応答性能の重要性が高い。そこでマネージメントサーバ４は、同期命令については、なるべく応答性能が良い経路ＲＴをその命令を実行するための経路ＲＴとして選択し、非同期命令については、なるべくマネージメントサーバ４及び各エージェントサーバ６間で負荷分散を行うようその命令を実行するための経路ＲＴを選択する。
【００３４】
以上のような本実施の形態による経路選択機能を実現するための手段として、図３に示すように、各エージェントサーバ６のメモリ３１には情報収集部３４及び実行部３５を備えて構成されるエージェント（プログラム）３６が格納され、各エージェントサーバ６の補助記憶装置３２にはエージェント経路テーブル３７、装置処理時間テーブル３８、通信量テーブル３９、キュー管理テーブル４０及びサーバ負荷テーブル４１が格納されている。
【００３５】
情報収集部３４は、自エージェントサーバ６に関する必要な各種情報を収集し、収集した情報に基づいてエージェント経路テーブル３７、装置処理時間テーブル３８、通信量テーブル３９、キュー管理テーブル４０及びサーバ負荷テーブル４１を作成又は更新する機能を有するモジュールである。
【００３６】
また実行部３５は、マネージメントサーバ４のマネージャ１８（図２）から転送されるクライアント２からの命令を実行する機能を有するモジュールである。実行部３５は、後述のようにクライアント２からの命令と併せてマネージャ１８から通知される、当該マネージャ１８により決定されたその命令に対する経路ＲＴを利用して、当該命令を実行する。
【００３７】
エージェント経路テーブル３７は、そのエージェントサーバ６に実装されたエージェント３６が管理するストレージ装置７と、そのストレージ装置７への経路ＲＴとを管理するために利用されるテーブルである。このエージェント経路テーブル３７は、新たなストレージ装置７や、ストレージ装置７への新たな通信経路がユーザにより追加登録されたときに、エージェント３６により作成又は更新される。
【００３８】
エージェント経路テーブル３７は、図４に示すように、１又は複数のレコード（行）を有し、これら１つ１つのレコードがそれぞれ１つの経路ＲＴと対応付けられている。また、これらのレコードは、それぞれエージェント経路ＩＤ欄３７Ａ、ストレージＩＤ欄３７Ｂ及び通信モード欄３７Ｃに区分されている。
【００３９】
そしてストレージＩＤ欄３７Ｂには、そのエージェント３６が管理するストレージ装置７の識別子（ストレージＩＤ）が格納され、エージェント経路ＩＤ欄３７Ａには、そのエージェントサーバ６からそのストレージ装置７への経路のうちの対応する経路ＲＴに付与された識別子（エージェント経路ＩＤ）が格納される。また通信モード欄３７Ｃには、その経路ＲＴにおける通信モード（ＬＡＮ又はＦＣといった通信規格）が格納される。
【００４０】
従って、図４の例では、対応するエージェント３６は、少なくとも「Storage#1」というストレージＩＤが付与されたストレージ装置７を管理しており、そのエージェント３６が実装されたエージェントサーバ６からそのストレージ装置７に至る経路ＲＴとして「Storage#1-1」及び「Storage#1-2」というエージェント経路ＩＤがそれぞれ付与された少なくとも２つの経路ＲＴが存在し、「Storage#1-1」という経路ＲＴの通信モードは「Lan_Connection#1」、「Storage#1-2」という経路ＲＴの通信モードは「FC_Connection#1」であることが示されている。
【００４１】
また装置処理時間テーブル３８は、クライアント２からの命令と、その命令を実行可能な経路ＲＴとの組合せごとに、対応するエージェントサーバ６が過去にその命令をその経路ＲＴを利用して実行したときに要した上述の装置処理時間を管理するために利用されるテーブルである。この装置処理時間テーブル３８は、そのエージェントサーバ６がクライアント２からの命令を実行したときにエージェント３６の情報収集部３４（図３）により作成又は更新される。
【００４２】
装置処理時間テーブル３８は、図５に示すように、１又は複数のレコード（行）を有し、これら１つ１つのレコードがそれぞれ１つの命令及び経路ＲＴの組合せと対応付けられている。またこれらのレコードは、命令欄３８Ａ、エージェント経路ＩＤ欄３８Ｂ及び装置処理時間欄３８Ｃに区分されている。
【００４３】
そして命令欄３８Ａには、対応するエージェント３６が過去にマネージャ１８（図２）から転送されてきたクライアント２からの命令の種別が格納され、エージェント経路ＩＤ欄３８Ｂには、その命令を実行したときに利用した経路ＲＴのエージェント経路ＩＤが格納される。
【００４４】
また装置処理時間欄３８Ｃは、複数（例えば、５つ）の履歴欄３８ＣＡ及び平均欄３８ＣＢに区分されている。そして各履歴欄３８ＣＡには、対応する命令を対応する経路ＲＴを用いて実行したときの上述の装置処理時間のうちの直近のものがそれぞれ格納される。具体的に、対応する命令を対応する経路ＲＴを用いて最後に実行したときの装置処理時間が「履歴１」という履歴欄３８ＣＡに格納され、それ以前に実行したときの装置処理時間が「履歴１」という履歴欄３８ＣＡの右側に順次隣接する各履歴欄３８ＣＡにそれぞれより新しいものから順番に格納される。従って、装置処理時間テーブル３８は、命令及び経路ＲＴの組合せごとに、直近の履歴欄３８ＣＡの数と同じ実行回数分の装置処理時間を保持することになる。また平均欄３８ＣＢには、装置処理時間テーブル３８に格納された対応する命令及び経路ＲＴの組合せの各装置処理時間の平均値が格納される。
【００４５】
従って、図５の例では、対応するエージェント３６が、過去に、ストレージ装置７内の各論理デバイスの情報を収集する「Get Ldev」という命令を「Storage#1-1」という経路を介してストレージ装置７にアクセスするようにして実行したときの装置処理時間が「110」〔msec〕、……であり、その平均値が「100」〔msec〕であったことが示されている。
【００４６】
通信量テーブル３９は、対応するエージェント３６が過去にクライアント２からの命令を実行したときのデータ通信量を管理するために利用されるテーブルである。通信量テーブル３９は、図６に示すように、１又は複数のレコード（行）を有し、これら１つ１つのレコードがそれぞれ過去に実行した１つの命令と対応付けられている。また、これらのレコードは、命令欄３９Ａ、ストレージＩＤ欄３９Ｂ及び通信データ量欄３９Ｃに区分されている。
【００４７】
そして命令欄３９Ａには、過去にマネージャ１８（図２）から転送されてきたクライアント２からの命令の種別が格納され、ストレージＩＤ欄３９Ｂには、その命令の対象となったストレージ装置７のストレージＩＤが格納される。
【００４８】
また通信データ量欄３９Ｃは、複数（例えば、５つ）の履歴欄３９ＣＡ及び平均欄３９ＣＢに区分されている。そして各履歴欄３９ＣＡには、対応する命令を対応するストレージ装置７に対して実行したときの通信データ量のうちの直近のものがそれぞれ格納される。具体的に、対応する命令を対応するストレージ装置７に対して最後に実行したときの通信データ量が「履歴１」という履歴欄３９ＣＡに格納され、それ以前に実行したときの通信データ量間が「履歴１」という履歴欄３９ＣＡの右側に順次隣接する各履歴欄３９ＣＡにそれぞれより新しいものから順番に格納される。従って、通信量テーブル３９は、命令及びストレージ装置７の組合せごとに、直近の履歴欄３９ＣＡの数と同じ実行回数分の通信データ量を保持することになる。また平均欄３９ＣＢには、装置処理時間テーブル３８に格納された対応する命令及びストレージ装置７の組合せの各通信データ量の平均値が格納される。
【００４９】
従って、図６の例では、対応するエージェント３６が、過去に「Get Ldev」という命令を「Storage#1」というストレージ装置７に対して実行した際のデータ通信量が「500」〔KByte〕、……であり、その平均値が「500」〔KByte〕であったことが示されている。
【００５０】
キュー管理テーブル４０は、対応するエージェントサーバ６に設けられたキューを管理するために利用されるテーブルであり、図７に示すように、キューＩＤ欄４０Ａ、命令欄４０Ｂ及び処理完了予測時間欄４０Ｃを備えて構成される。
【００５１】
そしてキューＩＤ４０Ａ欄には、そのエージェントサーバ６に設けられた各キューにそれぞれ付与された識別子（キューＩＤ）が格納され、命令欄４０Ｂには、対応するキューにそのとき格納されている命令の種別が格納される。
【００５２】
また処理完了予測時間欄４０Ｃには、対応する命令に対する処理を開始してから完了するまでの予測時間（以下、これを処理完了予測時間と呼ぶ）が格納される。なお、この処理完了予測時間は、装置処理時間テーブル３８（図５）のその命令に対応する個々のレコード（行）における装置処理時間欄３８Ｃ（図５）の平均欄３８ＣＢ（図５）にそれぞれ格納されている値の平均値として算出される。
【００５３】
従って、図７の例では、対応するエージェントサーバ６の「１」というキューＩＤのキューには「Get Ldev」という命令が格納されており、その処理完了予測時間が「30」〔msec〕であることが示されている。
【００５４】
なおこのキュー管理テーブル４０における各情報は、クライアント２からの命令がキューに格納されるごとにエージェント３６（図２）の情報収集部３４により登録されると共に、キューに格納された命令が完了するごとに情報収集部３４により消去される。
【００５５】
サーバ負荷テーブル４１は、対応するエージェントサーバ６の負荷状態を管理するために利用されるテーブルであり、図８に示すように、同時実行可能キュー数欄４１Ａ、保持キュー数欄４１Ｂ、全キュー処理完了予測時間欄４１Ｃ、処理開始時間欄４１Ｄ及びサーバ負荷欄４１Ｅを備えて構成される。
【００５６】
そして同時実行可能キュー数欄４１Ａには、そのエージェントサーバ６に設けられたクライアント２からの命令をそれぞれ保持するためのキューのうち、そのエージェントサーバ６が同時に実行可能なキューの数が格納される。以下においては、このキュー数を同時実行可能キュー数と呼ぶ。
【００５７】
また保持キュー数欄４１Ｂには、そのエージェントサーバ６において、今現在、クライアント２からの命令を保持しているキューの数（以下、これを保持キュー数と呼ぶ）が格納される。
【００５８】
さらに全キュー処理完了予測時間欄４１Ｃには、各保持キューにそれぞれ保持された命令をすべて完了するまでの予測時間（以下、これを全キュー処理完了予測時間と呼ぶ）が格納される。本実施の形態の場合、この全キュー処理完了予測時間は、各保持キューにそれぞれ保持された各命令の処理完了予測時間の合計として算出される。
【００５９】
さらに処理開始時間欄４１Ｄには、今現在、新たな命令が与えられたときにその命令に応じた処理を開始するまでの時間（以下、これを処理開始時間と呼ぶ）が格納される。この処理開始時間は、次式
【数１】
0006530572.tif 000002
により算出された値である。
【００６０】
なお（１）式において、（総実行時間／保持キュー数）は小数点以下を含めて計算に用いることとし、（保持キュー数／同時実行キュー数）は割り切れる商を計算に用い、余りは無視することとする。例えば、総実行時間が80〔msec〕、保持キュー数が35、同時実行可能キュー数が10の場合、処理開始時間は、次式
【数２】
0006530572.tif 000003
のようになる。
【００６１】
さらにサーバ負荷欄４１Ｅには、次式
【数３】
0006530572.tif 000004
により算出された値（以下、これをサーバ負荷と呼ぶ）がそのエージェントサーバ６の負荷状況を表す数値として格納される。
【００６２】
一方、上述した本実施の形態による経路選択機能を実現するための手段として、図２に示すように、マネージメントサーバ４のメモリ１１には、情報収集部１４、経路処理時間予測部１５、経路決定部１６及び実行部１７を備えて構成されるマネージャ（プログラム）１８が格納され、マネージメントサーバ４の補助記憶装置１２には、経路管理テーブル１９、装置処理時間テーブル２０、通信量テーブル２１、通信性能テーブル２２、命令情報テーブル２３、サーバ負荷テーブル２４及び予測処理時間テーブル２５が格納されている。
【００６３】
情報収集部１４は、システム内の各エージェントサーバ６からそのエージェントサーバ６が保持する上述の各情報をそれぞれ収集し、収集した情報や、収集した情報に基づいて算出した必要な情報を装置処理時間テーブル２０、通信量テーブル２１、通信性能テーブル２２、サーバ負荷テーブル２４及び予測処理時間テーブル２５にそれぞれ格納する機能を有するモジュールである。
【００６４】
また経路処理時間予測部１５は、情報収集部１４により収集された情報に基づいて、クライアント２からの命令を実行した場合の実行可能な経路ＲＴごとの処理時間をそれぞれ予測する機能を有するモジュールである。
【００６５】
さらに経路決定部１６は、経路処理時間予測部１５の予測結果と、そのとき受信したクライアント２からの命令の特性とに基づいて、その命令を実行する経路ＲＴを決定する機能を有するモジュールである。
【００６６】
さらに実行部１７は、経路決定部１６の決定結果に基づいてその命令を自サーバ（マネージメントサーバ４）で実行し、又は、対応するエージェントサーバ６に実行させる機能を有するモジュールである。
【００６７】
一方、経路管理テーブル１９は、マネージャ１８（図２）が、直接又はいずれかのエージェント３６を経由してアクセス可能な各ストレージ装置７と、そのストレージ装置７への経路ＲＴとを管理するために利用するテーブルである。この経路管理テーブル１９は、新たなストレージ装置７や、ストレージ装置７への新たな経路ＲＴがユーザにより追加登録されたときにマネージャ１８により作成又は更新される。
【００６８】
経路管理テーブル１９は、図９に示すように、１又は複数のレコード（行）を有し、これら１つ１つのレコードがそれぞれ１つの経路ＲＴと対応付けられている。また、これらのレコードは、それぞれ経路ＩＤ欄１９Ａ、ストレージＩＤ欄１９Ｂ、エージェントＩＤ欄１９Ｃ及び通信モード欄１９Ｄに区分されている。
【００６９】
そしてストレージＩＤ欄１９Ｂには、マネージャ１８（図２）が管理するストレージ装置７のストレージＩＤが格納され、経路ＩＤ欄１９Ａには、マネージメントサーバ４からそのストレージ装置７への経路ＲＴのうちの対応する経路ＲＴに付与された識別子（経路ＩＤ）が格納される。
【００７０】
またエージェントＩＤ欄１９Ｃには、対応する経路ＲＴがいずれかのエージェント３６（図３）を経由する場合にそのエージェント３６の識別子（エージェントＩＤ）が格納される。さらに通信モード欄１９Ｄには、その経路ＲＴにおける通信モードが格納される。
【００７１】
従って、図９の例では、マネージャ１８がアクセス可能なストレージ装置７として「Storage#1」というストレージＩＤが付与されたストレージ装置７が存在し、そのストレージ装置７への経路としてマネージャ１８が直接アクセスする「Storage#1-1」という経路ＩＤの経路ＲＴと、「Agent#1」というエージェントＩＤのエージェント３６を経由する「Storage#1-Agent#1-1」及び「Storage#1-Agent#1-2」という２つの経路ＲＴとが少なくとも存在し、「Storage#1-1」及び「Storage#1-Agent#1-2」という経路ＲＴの通信モードはいずれも「Lan_Connection#1」で、「Storage#1-Agent#1-1」という経路ＲＴの通信モードは「FC_Connection#1」であることが示されている。
【００７２】
また装置処理時間テーブル２０は、クライアント２からの命令の種別と、その命令を実行可能な経路ＲＴとの組合せごとに、マネージャ１８（図２）又はエージェント３６（図３）が過去にその命令をその経路ＲＴを利用して実行したときの装置処理時間を管理するために利用されるテーブルである。
【００７３】
マネージャ１８が実行した命令については、当該マネージャ１８の情報収集部１４（図２）により必要な情報が装置処理時間テーブル２０に登録される。またエージェント３６が実行した命令については、その命令の実行完了後にマネージャ１８の情報収集部１４がそのエージェント３６が管理する上述の装置処理時間テーブル３８（図５）から情報を取得してその情報を装置処理時間テーブル２０に登録する。
【００７４】
この装置処理時間テーブル２０は、図１０に示すように、１又は複数のレコード（行）を有し、これら１つ１つのレコードがそれぞれ１つの命令及び経路ＲＴの組合せと対応付けられている。またこれらのレコードは、命令欄２０Ａ、エージェント経路ＩＤ欄２０Ｂ及び装置処理時間欄２０Ｃに区分されている。さらに装置処理時間欄２０Ｃは、複数の履歴欄２０ＣＡ及び平均欄２０ＣＢに区分されている。
【００７５】
そしてこれら命令欄２０Ａ及びエージェント経路ＩＤ欄２０Ｂと、装置処理時間欄２０Ｃの各履歴欄２０ＣＡ及び平均欄２０ＣＢには、それぞれ図５について上述した各エージェント３６が管理する装置処理時間テーブル３８の対応する欄（命令欄３８Ａ、エージェント経路ＩＤ欄３８Ｂ、履歴欄３８ＣＡ又は平均欄３８ＣＢ）に格納される情報と同様の情報がそれぞれ格納される。
【００７６】
通信量テーブル２１は、マネージャ１８又はエージェント３６が過去にクライアント２からの命令を実行したときのデータ通信量を管理するために利用されるテーブルである。マネージャ１８が実行した命令については、マネージャ１８の情報収集部１４により必要な情報が通信量テーブル２１に登録される。またエージェント３６により実行された命令については、マネージャ１８の情報収集部１４が定期的に各エージェント３６にアクセスして、そのエージェント３６が管理する図６について上述した通信量テーブル３９から情報を取得して通信量テーブル２１に登録する。
【００７７】
この通信量テーブル２１は、図１１に示すように、１又は複数のレコード（行）を有し、これら１つ１つのレコードがそれぞれ過去に実行した１つの命令と対応付けられている。また、これらのレコードは、命令欄２１Ａ、ストレージＩＤ欄２１Ｂ及び通信データ量欄２１Ｃに区分されている。また通信データ量欄２１Ｃは、複数の履歴欄２１ＣＡ及び平均欄２１ＣＢに区分されている。
【００７８】
そして通信量テーブル２１の命令欄２１Ａ及びストレージＩＤ欄２１Ｂと、通信データ量欄２１Ｃの各履歴欄２１ＣＡ及び平均欄２１ＣＢとには、それぞれ図６について上述した通信量テーブル３９の対応する欄（命令欄３９Ａ、ストレージＩＤ欄３９Ｂ、履歴欄３９ＣＡ又は平均欄３９ＣＢ）に格納される情報と同様の情報がそれぞれ格納される。
【００７９】
通信性能テーブル２２は、マネージャ１８が管理する各ストレージ装置７にそれぞれ接続された経路ＲＴごとの通信性能を管理するために利用されるテーブルである。マネージャ１８の情報収集部１４（図２）は、各エージェント３６に対して定期的にそのエージェント３６が実装されたエージェントサーバ６に接続された各経路ＲＴをそれぞれ介して一定データ量のデータをその経路ＲＴに接続されたストレージ装置７から取得すべき旨の指示を与え、そのデータを取得するのに用いた経路ＲＴと、そのデータを取得するのに要した時間とを通知させる。そして情報収集部１４は、通知されたこれら経路ＲＴごとの所要時間に基づいて、当該所要時間をそのデータのデータ量で除算した値をその経路ＲＴの通信性能として取得し、取得した経路ＲＴごとの通信性能を通信性能テーブル２２に登録して管理する。
【００８０】
この通信性能テーブル２２は、図１２に示すように、１又は複数のレコード（行）を有し、これら１つ１つのレコードがそれぞれ１つの経路ＲＴと対応付けられている。また、これらのレコードは、経路ＩＤ欄２２Ａ、エージェントＩＤ欄２２Ｂ及び通信性能欄２２Ｃに区分されている。
【００８１】
そして経路ＩＤ欄２２Ａには対応する経路ＲＴの経路ＩＤが格納され、エージェントＩＤ欄２２Ｂには、その経路ＲＴに接続されたエージェントサーバ６に実装されたエージェント３６のエージェントＩＤが格納される。また通信性能欄２２Ｃには、上述のようにして算出された、対応する経路ＲＴの直近の通信性能が格納される。
【００８２】
従って、図１２の例では、「Agent#1」というエージェントＩＤのエージェント３６が実装されたエージェントサーバ６に接続されている「Storage#1-Agent#1-1」という経路ＩＤの経路ＲＴの通信性能が「0.25」〔msec/KByte〕であり、同じエージェントサーバ６に接続された「Storage#1-Agent#2-1」という経路ＩＤの経路ＲＴの通信性能が「0.01」〔msec/KByte〕であることが示されている。
【００８３】
命令情報テーブル２３は、クライアント２からの命令を受けたマネージメントサーバ４やエージェントサーバ６がその命令を実行する際に、その命令の内容に応じて対象とするストレージ装置７に発行する内部処理命令を管理するために利用されるテーブルである。この命令情報テーブル２３は、ユーザ等により事前に作成される。
【００８４】
命令情報テーブル２３は、図１３に示すように、１又は複数のレコード（行）を有し、これら１つ１つのレコードがそれぞれ１つの命令と対応付けられている。また、これらのレコードは、クライアント命令欄２３Ａと、複数の内部処理命令欄２３Ｂとに区分されている。
【００８５】
そしてクライアント命令欄２３Ａには、クライアント２から発行される命令の種別が格納され、内部処理命令欄２３Ｂには、その命令を実行するマネージメントサーバ４（マネージャ１８）やエージェントサーバ６（エージェント３６）が実際に対象とするストレージ装置７に発行するすべての内部処理命令がそれぞれ「内部処理命令１」という内部処理命令欄２３Ｂから順番に必要な数の内部処理命令欄２３Ｂに順次格納される。
【００８６】
従って、図１３の例の場合、クライアント２から与えられた、対象とするストレージ装置７内に定義された各コピーペアの情報を取得すべき旨の「Get CopyPair」という命令をマネージメントサーバ４（マネージャ１８）やエージェントサーバ６（エージェント３６）が実行する場合に、そのマネージメントサーバ４（マネージャ１８）又はエージェントサーバ６（エージェント３６）が、そのストレージ装置７に対して各コピーペアのコピー元の論理デバイスの情報を送信すべき旨の「Get P-VOL-instance」という内部処理命令と、各コピーペアのコピー先の論理デバイスの情報を送信すべき旨の「Get S-VOL-instance」という内部処理命令と、各コピーペア全体の情報を送信すべき旨の「GetCopyPairInfo」という内部処理命令とを順番に順次送信することが示されている。
【００８７】
サーバ負荷テーブル２４は、マネージメントサーバ４及びエージェントサーバ６の負荷状態を管理するために利用されるテーブルである。マネージメントサーバ４に関する情報については、マネージャ１８の情報収集部１４（図２）によりサーバ負荷テーブル２４に登録される。またエージェントサーバ６に関する情報については、マネージャ１８の情報収集部１４が定期的に各エージェント３６にそれぞれアクセスし、そのエージェント３６が管理する上述のサーバ負荷テーブル４１（図８）から情報を取得してサーバ負荷テーブル２４に登録する。
【００８８】
このサーバ負荷テーブル２４は、図１４に示すように、１又は複数のレコード（行）を有し、１つの行が１つの経路ＲＴと対応付けられている。また、これらのレコードは、経路ＩＤ欄２４Ａ、エージェントＩＤ欄２４Ｂ、同時実行可能キュー数欄２４Ｃ、保持キュー数欄２４Ｄ、全キュー処理完了予測時間欄２４Ｅ及びサーバ負荷欄２４Ｆに区分されている。
【００８９】
そして経路ＩＤ欄２４Ａには、対応する経路ＲＴの経路ＩＤが格納される。またエージェントＩＤ欄２４Ｂには、その経路ＲＴに接続されたサーバがエージェントサーバ６である場合にそのエージェントサーバ６に実装されたエージェント３６のエージェントＩＤが格納され、その経路ＲＴに接続されたサーバがマネージメントサーバ４である場合には何も格納されない。
【００９０】
さらに同時実行可能キュー数欄２４Ｃには、その経路ＲＴに接続されたマネージメントサーバ４又はエージェントサーバ６における同時実行可能キューの数（同時実行可能キュー数）が格納され、保持キュー数欄２４Ｄには、そのマネージメントサーバ４又はエージェントサーバ６に設けられたすべてのキューの数（保持キュー数）が格納される。
【００９１】
さらに全キュー処理完了予測時間欄２４Ｅには、対応する経路ＲＴに接続されたマネージメントサーバ４又はエージェントサーバ６において、各保持キューに格納された命令を完了するまでの予測時間（全キュー処理完了予測時間）が格納される。この全キュー処理完了予測時間は、対応する経ＲＴ路に接続されたサーバがマネージメントサーバ４である場合にはマネージャ１８の情報収集部１４により上述のように算出されたものが格納され、対応する経路ＲＴに接続されたサーバがエージェントサーバ６である場合にはそのエージェントサーバ６から取得された全キュー処理完了予測時間が格納される。
【００９２】
さらにサーバ負荷欄２４Ｆには、対応するサーバ（マネージメントサーバ４又はエージェントサーバ６）の負荷状況を表す値（サーバ負荷）が格納される。このサーバ負荷は、対応する経路ＲＴに接続されたサーバがマネージメントサーバ４である場合にはマネージャ１８の情報収集部１４により上述の（３）式を用いて算出されたものが格納され、対応する経路ＲＴに接続されたサーバがエージェントサーバ６である場合にはそのエージェントサーバ６から取得されたサーバ負荷が格納される。
【００９３】
従って、図１４の例では、例えば「Storage#1-Agent#1-1」という経路ＩＤの経路ＲＴに接続された「Agent#1」というエージェントＩＤのエージェント３６が実装されたエージェントサーバ６の同時実行可能キュー数が「30」、保持キュー数が「20」、全キュー処理完了予測時間が「6000」〔msec〕であり、その経路ＲＴと接続されたサーバ（マネージメントサーバ４又はエージェントサーバ６）のサーバ負荷が「0.4」であることが示されている。
【００９４】
予測処理時間テーブル２５は、クライアント２からの命令と、その命令を処理する際に利用する経路ＲＴとの組合せごとのその処理に要する時間の予測値（予測処理時間）を管理するために利用されるテーブルである。マネージメントサーバ４に実装されたマネージャ１８の情報収集部１４は、命令及び経路の組合せごとに、その組合せで過去に行った処理の際の処理時間や、定期的に実行されるダミーの処理の際の処理時間の平均値などをその命令及び経路ＲＴの組合せについての予測処理時間として算出し、算出した予測処理時間をこの予測処理時間テーブル２５に登録して管理する。
【００９５】
この予測処理時間テーブル２５は、図１５に示すように、１又は複数のレコード（行）を有し、１つのレコードが１つの命令及び経路ＲＴの組合せと対応付けられている。また各レコードは、命令欄２５Ａ、経路ＩＤ欄２５Ｂ及び予測処理時間欄２５Ｃに区分されている。
【００９６】
そして命令欄２５Ａには、クライアント２から与えられる命令の種別が格納され、経路ＩＤ欄２５Ｂには、その命令を実行する際に利用可能な経路ＲＴの経路ＩＤが格納される。また予測処理時間欄２５Ｃには、対応する命令を対応する経路ＲＴを利用して実行した場合の予測処理時間が格納される。なお、この予測処理時間の算出手法については、図１６を用いて説明する。
【００９７】
従って、図１５の例では、「Get Ldev」という命令を実行するための経路ＲＴとして少なくとも「Storage#1-1」、「Storage#1-Agent#1-1」及び「Storage#1-Agent#1-2」という経路ＩＤの３つの経路ＲＴが存在し、これらの経路ＲＴに対する予測処理時間がそれぞれ「30」〔msec〕、「20」〔msec〕及び「35」〔msec〕であることが示されている。
【００９８】
（３）本実施の形態による経路選択機能に関する各種処理
次に、本実施の形態による経路選択機能に関する各種処理の具体的な内容について説明する。なお、以下においては、各種処理の処理主体を「モジュール」として説明するが、実際上は、そのモジュールに基づいてマネージメントサーバ４のＣＰＵ１０がその処理を実行することは言うまでもない。
【００９９】
（３−１）予測処理時間算出処理
図１６は、マネージャ１８（図２）の経路処理時間予測部１５（図２）により定期的に実行される予測処理時間算出処理の処理手順を示す。経路処理時間予測部１５は、この図１６に示す処理手順に従って、クライアント２から与えられる命令と経路ＲＴとの組合せごとの図１５について上述した予測処理時間（その命令の処理を完了するまでの予測時間）をそれぞれ算出する。
【０１００】
実際上、経路処理時間予測部１５は、この予測処理時間算出処理を開始すると、まず、命令情報テーブル２３（図１３）に登録されている命令の中から１つの命令を選択し（ＳＰ１）、命令情報テーブル２３（図１３）を参照して、ステップＳＰ１で選択した命令（以下、これを選択命令と呼ぶ）について実行する内部処理命令の中から１つの内部処理命令を選択する（ＳＰ２）。
【０１０１】
続いて、経路処理時間予測部１５は、選択命令を実行可能な経路ＲＴごとの装置処理時間を装置処理時間テーブル２０（図１０）から取得する（ＳＰ３）。また経路処理時間予測部１５は、選択命令を実行可能な経路ＲＴごとの通信量の平均値を通信量テーブル２１（図１１）の対応するレコードの平均欄２１ＣＢ（図１１）から取得し（ＳＰ４）、さらに選択命令を実行可能な経路ＲＴごとの通信性能を通信性能テーブル２２（図１２）から取得する（ＳＰ５）。
【０１０２】
次いで、経路処理時間予測部１５は、選択命令と、当該選択命令を実行可能な経路ＲＴとの込み合わせごとに、その経路ＲＴに接続されたマネージメントサーバ４又はエージェントサーバ６がその選択命令に対する処理を開始できるまでの時間（処理開始時間）をサーバ負荷テーブル２４（図１４）から取得する（ＳＰ６）。
【０１０３】
この後、経路処理時間予測部１５は、ステップＳＰ３で取得した装置処理時間をＴ１、ステップＳＰ４で取得した通信量をＣＴ、ステップＳＰ５で取得した通信性能をＣＰ、ステップＳＰ６で取得した処理開始時間をＴ２として、選択命令を実行可能な経路ＲＴごとに、次式
【数４】
0006530572.tif 000005
によりステップＳＰ２で選択した内部処理命令を実行するのに要する予測処理時間Ｔ３を算出し（ＳＰ７）、算出した予測処理時間Ｔ３を、選択命令を実行可能な経路ＲＴごとに、選択命令についてそれまでに算出した予測処理時間Ｔ３の合計値（初期値は「０」）に加算する（ＳＰ８）。
【０１０４】
続いて、経路処理時間予測部１５は、命令情報テーブル２３（図１３）を参照して、選択命令のすべての内部処理命令についてステップＳＰ３〜ステップＳＰ８の処理を実行し終えたか否かを判断する（ＳＰ９）。そして経路処理時間予測部１５は、この判断で否定結果を得るとステップＳＰ２に戻り、この後ステップＳＰ２で選択する内部処理命令を未処理の他の内部処理命令に順次切り替えながら、ステップＳＰ２〜ステップＳＰ９の処理を繰り返す。
【０１０５】
そして経路処理時間予測部１５は、やがて選択命令のすべての内部処理命令についてステップＳＰ３〜ステップＳＰ８の処理を実行し終えることによりステップＳＰ９で肯定結果を得ると、最後のステップＳＰ８で得られた経路ＲＴごとの予測処理時間を、それぞれその経路ＲＴと選択命令との組合せの予測処理時間として予測処理時間テーブル２５（図１５）にそれぞれ登録（新規登録又は更新）する（ＳＰ１０）。
【０１０６】
次いで、経路処理時間予測部１５は、命令情報テーブル２３（図１３）に登録されたすべての命令についてステップＳＰ２〜ステップＳＰ１０の処理を実行し終えたか否かを判断する（ＳＰ１１）。そして経路処理時間予測部１５は、この判断で否定結果を得るとステップＳＰ１に戻り、この後、ステップＳＰ１で選択する命令を未処理の他の命令に順次切り替えながら、ステップＳＰ１〜ステップＳＰ１１の処理を繰り返す。
【０１０７】
そして経路処理時間予測部１５は、やがて、命令情報テーブル２３に登録されたすべての命令についてステップＳＰ２〜ステップＳＰ１０の処理を実行し終えることによりステップＳＰ１１で肯定結果を得ると、この予測処理時間算出処理を終了する。
【０１０８】
（３−２）経路決定処理
一方、図１７は、マネージメントサーバ４に実装されたマネージャ１８（図２）の経路決定部１６（図２）により実行される経路決定処理の処理手順を示す。経路決定部１６は、クライアント２からの命令を受け付けると、この図１７に示す処理手順に従ってその命令を実行する際に利用する経路ＲＴを決定する。
【０１０９】
実際上、経路決定部１６は、クライアント２からの命令を受け付けると、この図１７に示す経路決定処理を開始し、まず、予測処理時間テーブル２５（図１５）を参照して、その命令（以下、適宜、これを受付命令と呼ぶ）を実行可能なすべての経路ＲＴについて予測処理時間が登録されているか否かを判断する（ＳＰ２０）。
【０１１０】
そして経路決定部１６は、この判断で肯定結果を得ると、受付命令を実行可能な経路ＲＴであって未だ予測処理時間テーブル２５に予測処理時間が登録されていない経路（以下、これを予測処理時間未登録経路と呼ぶ）ＲＴに関する情報を収集することを優先するため、今回の受付命令の実行に用いる経路ＲＴを予測処理時間未登録経路ＲＴの中から決定する情報収集優先経路決定処理を実行し（ＳＰ２１）、この後、ステップＳＰ３１に進む。
【０１１１】
これに対して経路決定部１６は、ステップＳＰ２０の判断で否定結果を得ると、かかる受付命令が、本情報処理システム１の管理者が使用するクライアント２からの発行されたものであるか否かを判断する（ＳＰ２２）。そして経路決定部１６は、この判断で肯定結果を得ると、応答速度を優先して受付命令に対する経路ＲＴを決定する速度優先経路決定処理を実行し（ＳＰ２９）、この後、ステップＳＰ３１に進む。
【０１１２】
一方、ステップＳＰ２２の判断で否定結果を得ることは、かかる受付命令が、本情報処理システム１の管理者でない一般ユーザが使用するクライアント２からの発行されたものであることを意味する。かくして、このとき経路決定部１６は、予測処理時間テーブル２５から、受付命令を実行可能な経路ＲＴのうち、予測処理時間が最短の経路（以下、これを最速経路と呼ぶ）の当該予測処理時間と、予測処理時間が最長の経路（以下、これを最遅経路と呼ぶ）の当該予測処理時間とをそれぞれ取得する（ＳＰ２３）。
【０１１３】
続いて、経路決定部１６は、ステップＳＰ２３で取得した最遅経路の予測処理時間を最速経路の予測処理時間で除算した商をその受付命令の経路比として算出する（ＳＰ２４）。なお、この経路比は、経路ＲＴの選択が与えるシステムの応答性能への影響の度合い（影響度）を表すことになる。
【０１１４】
次いで、経路決定部１６は、受付命令の属性が例えばコピーペアに設定された論理デバイス同士などを同期させる同期命令であるか否かを判断する（ＳＰ２５）。そして経路決定部１６は、この判断で肯定結果を得ると、後述のステップＳＰ２８で用いる閾値として、予め設定された同期命令用の閾値（以下、これを同期命令用閾値と呼ぶ）を選択する（ＳＰ２６）。また経路決定部１６は、ステップＳＰ２５の判断で否定結果を得ると、ステップＳＰ２８で用いる閾値として、予め設定された非同期命令用の閾値（以下、これを非同期命令用閾値と呼ぶ）を選択する（ＳＰ２７）。
【０１１５】
次いで、経路決定部１６は、ステップＳＰ２４で算出した経路比が、ステップＳＰ２６又はステップＳＰ２７で選択した閾値（同期命令用閾値又は非同期用閾値）以上であるか否かを判断する（ＳＰ２８）。そして経路決定部１６は、この判断で肯定結果を得ると、応答速度を優先して受付命令に対する経路ＲＴを選択する速度優先経路選択処理を実行する（ＳＰ２９）。また経路決定部１６は、ステップＳＰ２８の判断で否定結果を得ると、負荷分散を優先して受付命令に対する経路ＲＴを選択する負荷分散優先経路選択処理を実行する（ＳＰ３０）。
【０１１６】
なお、上述のように同期命令は経路ＲＴを占有するため、非同期命令に比べて応答性能の重要性が高い。このためクライアント２からの命令が同期命令である場合にはなるべく応答速度を優先して経路ＲＴを選択し、当該命令が非同期命令である場合にはなるべくシステム内の負荷分散を優先して経路ＲＴを選択すべく、ステップＳＰ２６の同期命令用閾値の値は、ステップＳＰ２７の非同期命令用閾値の値よりも低い値に設定される。
【０１１７】
この後、経路決定部１６は、マネージャ１８の実行部１７（図２）に、ステップＳＰ２１、ステップＳＰ２９又はステップＳＰ３０で選択した経路ＲＴを利用して受付命令を直接的に又は対応するエージェント３６を利用して間接的に実行するよう指示を与える（ＳＰ３１）。また経路決定部１６は、必要な情報を収集するようマネージャ１８の情報収集部１４（図２）に第１の指示を与えると共に、予測処理時間テーブル２５（図１５）を作成又は更新するよう経路処理時間予測部１５（図２）に第２の指示を与える（ＳＰ３１）。
【０１１８】
かくして、かかる第１の指示を受けた情報収集部１４は、そのときその受付命令を実行したサーバがマネージメントサーバ４である場合には、そのとき取得した装置処理時間を装置処理時間テーブル２０（図１０）に登録し、そのときその受付命令を実行したサーバがエージェントサーバ６である場合には、そのエージェントサーバ６からそのときの装置処理時間を取得して装置処理時間テーブル２０に登録する。またかかる第２の指示を受けた経路処理時間予測部１５は、図１６について上述した経路処理時間予測処理のステップＳＰ２〜ステップＳＰ９の処理を実行することにより、予測処理時間テーブル２５（図１５）における受付命令に対する予測処理時間を新規登録又は更新する。
【０１１９】
そして経路決定部１６は、この後、この経路決定処理を終了する。
【０１２０】
なお、上述した経路決定処理のステップＳＰ２１において経路決定部１６により実行される情報収集優先経路決定処理の具体的な処理内容を図１８に示す。
【０１２１】
経路決定部１６は、経路決定処理のステップＳＰ２１に進むと、この図１８に示す情報収集優先経路決定処理を開始し、予測処理時間テーブル２５（図１５）に予測処理時間が登録されていない経路（予測処理時間未登録経路）の中から１つの予測処理時間未登録経路を選択する（ＳＰ４０）。なお、このときの予測処理時間未登録経路の選択方法は、どのような選択方法を適用しても良い。
【０１２２】
続いて、経路決定部１６は、ステップＳＰ４０で選択した予測処理時間未登録経路を今回の受付命令を実行する経路ＲＴに決定し（ＳＰ４１）、この後、この情報収集優先経路決定処理を終了して図１７の経路決定処理に戻る。
【０１２３】
一方、図１９は、経路決定処理のステップＳＰ２９において経路決定部１６により実行される速度優先経路決定処理の具体的な処理内容を示す。
【０１２４】
経路決定部１６は、経路決定処理のステップＳＰ２９に進むと、この図１９に示す速度優先経路決定処理を開始し、まず、予測処理時間テーブル２５を参照して、今回の受付命令を実行可能な経路ＲＴの中から予測処理時間が最も短い経路ＲＴを選択する（ＳＰ５０）。
【０１２５】
続いて、経路決定部１６は、ステップＳＰ５０で選択した経路ＲＴに接続されたマネージメントサーバ４又はエージェントサーバ６の負荷が、過度の負荷集中を防止するために予め設定された閾値（以下、これを負荷上限閾値と呼ぶ）を超えていないか否かを判断する（ＳＰ５１）。この判断は、サーバ負荷テーブル２４（図１４）におけるステップＳＰ５０で選択した経路ＲＴに対応するレコードのサーバ負荷欄２４Ｆ（図１４）に格納された値を取得し、その値が負荷上限閾値を超えていないか否かを判断することにより行われる。
【０１２６】
そして経路決定部１６は、ステップＳＰ５１の判断で否定結果を得ると、予測処理時間テーブル２５を参照して、今回の受付命令を実行可能な経路ＲＴの中から次に予測処理時間が短い経路を選択し（ＳＰ５２）、この後、ステップＳＰ５１で肯定結果を得るまでステップＳＰ５１−ステップＳＰ５２−ステップＳＰ５１のループを繰り返す。
【０１２７】
そして経路決定部１６は、やがて負荷が負荷上限閾値を超えていない経路ＲＴをステップＳＰ５１又はステップＳＰ５２で選択することによりステップＳＰ５１で肯定結果を得ると、ステップＳＰ５１又はステップＳＰ５２で選択した経路ＲＴを今回の受付命令に対する経路ＲＴに決定し（ＳＰ５３）、この後、この速度優先経路決定処理を終了して図１７の経路決定処理に戻る。
【０１２８】
他方、図２０は、図１７について上述した経路決定処理のステップＳＰ３０において経路決定部１６により実行される負荷分散優先経路決定処理の具体的な処理内容を示す。
【０１２９】
経路決定部１６は、経路決定処理のステップＳＰ３０に進むと、この図２０に示す負荷分散優先経路決定処理を開始し、まず、サーバ負荷テーブル２４（図１４）を参照して、今回の受付命令を実行可能な経路ＲＴであって、その経路ＲＴと接続されたサーバ（マネージメントサーバ４又はエージェントサーバ６）のサーバ負荷が予め設定された閾値（以下、これを負荷分散閾値と呼ぶ）を超えない経路ＲＴをすべて取得する（ＳＰ６０）。なお、負荷分散閾値は、負荷分散を目的とした閾値であり、速度優先経路決定処理のステップＳＰ５１（図１９）で使用する上述の負荷上限閾値よりも低い値に設定される。
【０１３０】
続いて、経路決定部１６は、ステップＳＰ６０において経路ＲＴを選択できたか否かを判断する（ＳＰ６１）。そして経路決定部１６は、ステップＳＰ６１の判断で否定結果を得ると、今回の受付命令を実行可能な経路ＲＴの中からその経路ＲＴに接続されたサーバ（マネージメントサーバ４又はエージェントサーバ６）のサーバ負荷が最も低い経路ＲＴを今回の受付命令を実行する命令実行経路に決定し（ＳＰ６２）、この後、この負荷分散優先経路決定処理を終了して図１７の経路決定処理に戻る。
【０１３１】
これに対して経路決定部１６は、ステップＳＰ６１の判断で肯定結果を得ると、予測処理時間テーブル２５（図１５）を参照して、ステップＳＰ６０で取得した経路の中から、予測処理時間が最も短い経路を今回の受付命令を実行する命令実行経路に決定し（ＳＰ６３）、この後、この負荷分散優先経路決定処理を終了して図１７の経路決定処理に戻る。
【０１３２】
（４）本実施の形態の効果
以上のように本実施の形態の情報処理システム１では、マネージメントサーバ４が、クライアント２から与えられた命令の特性と、過去にその命令を実行したときの実績と、マネージメントサーバ４及び各エージェントサーバ６の負荷状況とに基づいて、その命令を実行するための経路ＲＴとして応答性能と負荷分散とを両立させた最適な経路ＲＴを選択する。
【０１３３】
従って、本情報処理システム１によれば、システムの応答速度を向上させながら、システム内での負荷分散をも適正に行うことができ、かくしてシステム全体としての処理速度を向上させることができる。
【０１３４】
（５）他の実施の形態
なお上述の実施の形態においては、本発明を図１のように構成された情報処理システム１に適用するようにした場合について述べたが、本発明はこれに限らず、マネージャ−エージェント構成を有するこの他種々のシステムに広く適用することができる。
【０１３５】
また上述の実施の形態においては、クライアント２からの命令の対象がストレージ装置７である場合について述べたが、本発明はこれに限らず、ストレージ装置７以外の装置が命令の対象であっても良い。
【産業上の利用可能性】
【０１３６】
本発明はマネージャ−エージェント構成を有する情報処理システムに広く適用することができる。
【符号の説明】
【０１３７】
１……情報処理システム、２……クライアント、４……マネージメントサーバ、６，６Ａ，６Ｂ……エージェントサーバ、７……ストレージ装置、１０，３０……ＣＰＵ、１１，３１……メモリ、１２，３２……補助記憶装置、１４，３４……情報収集部、１５……経路処理時間予測部、１６……経路決定部、１７，３５……実行部、１８……マネージャ、１９……経路管理テーブル、２０，３８……装置処理時間テーブル、２１，３９……通信量テーブル、２２……通信性能テーブル、２３……命令情報テーブル、２４，４１……サーバ負荷テーブル、２５……予測処理時間テーブル、３６……エージェント、３７……エージェント経路テーブル、４０……キュー管理テーブル。
【図１】
0006530572.tif 000006
【図２】
0006530572.tif 000007
【図３】
0006530572.tif 000008
【図４】
0006530572.tif 000009
【図５】
0006530572.tif 000010
【図６】
0006530572.tif 000011
【図７】
0006530572.tif 000012
【図８】
0006530572.tif 000013
【図９】
0006530572.tif 000014
【図１０】
0006530572.tif 000015
【図１１】
0006530572.tif 000016
【図１２】
0006530572.tif 000017
【図１３】
0006530572.tif 000018
【図１４】
0006530572.tif 000019
【図１５】
0006530572.tif 000020
【図１６】
0006530572.tif 000021
【図１７】
0006530572.tif 000022
【図１８】
0006530572.tif 000023
【図１９】
0006530572.tif 000024
【図２０】
0006530572.tif 000025