(57)【特許請求の範囲】
【請求項１】
ホストに、当該ホストがアクセス可能な共有ストレージを提供する情報処理装置であって、
前記ホストにつながる複数の通信路が接続される接続手段と、
前記ホストのＩ／Ｏ要求に応じて、前記共有ストレージのＩ／Ｏ処理を実行するＩ／Ｏ処理手段と、
前記ホストと前記接続手段との間で行われたデータ転送ごとに、当該データ転送に用いられた通信路の識別子と、当該データ転送に用いられた通信条件と、当該データ転送中に測定された、前記ホストの第１のＩ／Ｏ処理性能を表す第１の性能情報と通信コストに相関する第２のＩ／Ｏ処理性能を表す第２の性能情報と、の対応情報を、ログ情報として記憶する記憶手段と、
前記ホストと前記接続手段との間で、前記Ｉ／Ｏ要求の対象データの転送が行われる場合に、当該転送に用いる通信条件と前記各ログ情報の通信条件とを比較し、当該比較結果に基づき定まる通信ログ群のなかから、前記通信ログ群の各通信ログの前記第１の処理情報が表すＩ／Ｏ処理性能と、前記通信ログ群の各通信ログの前記第２の性能情報が表すＩ／Ｏ処理性能に相関する通信コストと、に基づき選択した通信ログに含まれる識別子が特定する通信路を、前記Ｉ／Ｏ要求の対象データの転送に用いる通信路として、前記複数の通信路のなかから選択する通信路選択手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
複数の通信路で接続されたホストに、当該ホストがアクセス可能な共有ストレージを提供する情報処理装置が実行するプログラムであって、
前記ホストとの間で行われたデータ転送ごとに、当該データ転送に用いられた通信路の識別子と、当該データ転送に用いられた通信条件と、当該データ転送中に測定された、前記ホストのＩ／Ｏ処理性能を表す第１の性能情報と通信コストに相関する第２の性能情報と、の対応情報を生成し、当該対応情報をログ情報として保持するログ生成処理と、
前記共有ストレージに対するＩ／Ｏ要求の対象データの転送が前記ホストとの間で行われる場合に、当該転送に用いる通信条件と前記各ログ情報の通信条件とを比較し、当該比較結果に基づき定まる通信ログ群のなかから、前記通信ログ群の各通信ログの前記第１の処理情報が表すＩ／Ｏ処理性能と、前記通信ログ群の各通信ログの前記第２の性能情報が表すＩ／Ｏ処理性能に相関する通信コストと、に基づき選択した通信ログに含まれる識別子が特定する通信路を、前記Ｉ／Ｏ要求の対象データの転送に用いる通信路として、前記複数の通信路のなかから選択する選択処理と、
を、前記情報処理装置に実行させることを特徴とするプログラム。
【請求項３】
請求項２記載のプログラムであって、
前記選択処理において、前記情報処理装置は、前記第２の性能情報が表すＩ／Ｏ処理性能に相関する通信コストが、外部から与えられた値以下となる１以上の通信ログを前記通信ログ群から選択し、当該１以上の通信ログのうち、前記第１の性能情報が表すＩ／Ｏ処理性能が最も高い通信ログに含まれる識別子が特定する通信路を、前記Ｉ／Ｏ要求の対象データの転送に用いる通信路として選択することを特徴とするプログラム。
【請求項４】
請求項２記載のプログラムであって、
前記選択処理において、前記情報処理装置は、前記通信ログ群から、前記第１の性能情報が表すＩ／Ｏ処理性能が、外部から与えられた値以上を示している１以上の通信ログを選択し、当該１以上の通信ログのうち、前記第２の性能情報が表すＩ／Ｏ処理性能に相関する通信コストが最も低い通信ログに含まれる識別子が特定する通信路を、前記Ｉ／Ｏ要求の対象データの転送に用いる通信路として選択することをことを特徴とするプログラム。
【請求項５】
請求項２〜４のいずれか一項に記載のプログラムが格納されたことを特徴とする、コンピュータ読取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置間をつなぐ複数の通信路から最適なデータ転送パスを選択する技術に関する。
【０００２】
【従来の技術】
ＵＲＬ http://www.emc2.co.jp/で示されるＷＷＷページには、ストレージとサーバとの間のデータ転送効率を向上させる管理ソフトウエアが記載されている。この管理ソフトウエアは、ストレージとホストとの間で転送されるデータのサイズに応じて、ＬＡＮ(Local Area Network)およびＳＡＮ(Storage Area Network)のうちの一方をデータ転送パスとして選択する機能を有する。具体的には、以下の通りである。管理ソフトウエアは、ホストからＬＡＮ(Local Area Network)経由でＮＦＳ／ＣＩＦＳファイル要求を受け付けると、ストレージ内におけるデータ位置を示すメタデータをホストに返す。これにより、ホストは、直接、ＳＡＮ経由でストレージにデータを要求する。一方、転送データのサイズが小さくて、ＳＡＮ経由でデータを転送することにメリットがない場合には、管理ソフトウエアは、データ転送パスとしてＬＡＮを選択する。
【０００３】
【発明が解決しようとする課題】
ところが、上記従来の技術では、ストレージとホストとをつなぐ複数の通信路のなかから、必ずしも、最適なデータ転送パスを選択できる訳ではない。例えば、インターネットのような、動的に特性(例えば、トラフィック、通信速度)の変化するネットワークがホストとストレージとの間に存在している状況下において、ユーザが、データ転送効率の向上の観点から最適なデータ転送パスの選択を要求している場合、転送データのサイズだけに基づきデータ転送パスが選択されても、そのような要求を満たすとは限らない。
【０００４】
そこで、本発明は、情報処理装置間に存在する複数の通信路が特性の変化するものであっても、それら複数の通信路のなかから最適な通信路を選択することができる情報処理装置を提供することを目的の一つとする。
【０００５】
【課題を解決するための手段】
本発明は、
ホストに、当該ホストがアクセス可能な共有ストレージを提供する情報処理装置であって、
前記ホストにつながる複数の通信路が接続される接続手段と、
前記ホストのＩ／Ｏ要求に応じて、前記共有ストレージのＩ／Ｏ処理を実行するＩ／Ｏ処理手段と、
前記ホストと前記接続手段との間で行われたデータ転送ごとに、当該データ転送に用いられた通信路の識別子と、当該データ転送に用いられた通信条件と、当該データ転送中に測定された、前記ホストのＩ／Ｏ処理性能を表す性能情報との対応情報を、ログ情報として記憶する記憶手段と、
前記ホストと前記接続手段との間で、前記Ｉ／Ｏ要求の対象データの転送が行われる場合に、当該転送に用いる通信条件と前記各ログ情報の通信条件とを比較し、当該比較結果に基づき定まる１以上の通信ログのなかから、当該１以上の通信ログの性能情報に基づき選択した通信ログに含まれる識別子が特定する通信路を、前記Ｉ／Ｏ要求の対象データの転送に用いる通信路として、前記複数の通信路のなかから選択する選択手段と、
を備えることを特徴とする情報処理装置を提供する。
【０００６】
【発明の実施の形態】
以下、添付の図面を参照しながら、本発明に係る実施の一形態について説明する。
【０００７】
まず、図１により、本実施の形態に係るストレージシステムの構成について説明する。
【０００８】
本実施の形態に係るストレージシステムは、共有ストレージを提供する１台以上の情報処理装置(以下、サーバと呼ぶ)１０と、複数の通信路３０でサーバ１０に接続された１台以上の情報処理装置(以下、ホストと呼ぶ)２０と、を含んでいる。図１には、一例として、１台のサーバ１０と２台のホスト２０とを含むストレージシステムの概略構成を示してある。
【０００９】
このストレージシステムにおいて、各通信路によるサーバ１０とホスト２０との接続方式は、どのようなものであってよい。例えば、イーサネット（登録商標）、無線ネットワーク、ＡＴＭ(Asynchronous Transfer Mode)、ファイバーチャネル等のネットワーク接続方式であってもよい。また、サーバ１０とホスト２０との接続形態も、どのようなものであってもよいし、いずれかの通信路に、リピータ、ルータ、ゲートウェイ等の中継装置、ファイアウォール等が存在していてもよい。
【００１０】
さて、サーバ１０には、複数の通信路が接続可能な１または複数のネットワークインタフェースカード(ＮＩＣ)１３、後述の通信ログ生成処理およびデータ転送処理が定義された管理プログラムとＯＳ等(Operating System)とがインストールされたハードディスク１２、メモリ(不図示)、ハードディスク１２からメモリにロードされたプログラムを実行するＣＰＵ１１、ディスクコントローラ１４、Ｉ／Ｏ処理を高速化させるためのキャッシュメモリ１６、これらの間を相互につないだバス(不図示)が内蔵されている。そして、ディスクコントローラ１４には、例えば、共有ストレージ１５として提供されるハードディスクが１台以上接続されている。ここでは、共有ストレージ１５の具体例としてハードディスクを挙げているが、磁気テープ記憶装置、光ディスク等の、ハードディスク以外の一般的なストレージを共有ストレージとして用いてもよい。ただし、いずれのストレージを用いる場合であっても、そのデータ記憶領域が、ホスト２０がアクセス可能な単位(ボリューム、パーティション、ブロックおよびその集合、ファイル等)に区分されている必要がある。
【００１１】
このようなハードウエアおよびプログラムによって、サーバ１０は、所定サイズ以上のデータ(Ｉ／Ｏ要求の対象データ)をホスト２０との間で送受信する通信制御部１１１、ホスト２０との間のデータ転送パスとして通信制御部１１１が用いる通信路を複数の通信路３０から選択する通信路選択処理部１１４、ホスト２０ごとに予め定められた通信路を介して所定サイズ未満のデータ(Ｉ／Ｏ要求等)をホスト２０との間で送受信する情報送受信部１１６、共有ストレージ１５またはキャッシュメモリ１６に対してＩ／Ｏ処理を実行するＩ／Ｏ処理部１１２、所定サイズ以上のデータの通信条件を収集する情報収集部１１５、情報収集部１１５の収集情報等から通信ログを生成する通信ログ生成部１１３、を実現する。これらの機能構成部には、必要に応じて、他の機能を付加することもできる。例えば、コネクション指向の通信における一般的な通信処理(初期化処理、終了処理、認証処理、暗号化処理等)を通信制御部１１１に実行させるようにしてもよい。
【００１２】
なお、これらの各機能構成を実現するための管理プログラムは、記憶媒体からハードディスク１２にインストールされたものであってもよいし、信号伝送媒体を介してハードディスク１２にインストールされたものであってもよい。
【００１３】
また、サーバ１０の内蔵ハードディスク１２には、管理プログラム等の他、この管理プログラムによって参照される５種類のデータテーブルがさらに格納されている。具体的には、通信路情報管理テーブル１２１、通信条件管理テーブル１２５、通信路選択結果管理テーブル１２３、Ｉ／Ｏ処理性能管理テーブル１２４、Ｉ／Ｏ処理ログ管理テーブル１２２が格納されている。これらのデータテーブル１２１〜１２５は、それぞれ、以下のデータ構造を有している。
【００１４】
通信路情報管理テーブル１２１には、図２に示すように、ホスト２０のＩ／Ｏ要求の対象データ(共有ストレージへの書込みデータ、共有ストレージからの読出しデータ)の転送パスとして選択可能な通信路ごとに、その通信路に関する情報(通信路情報)が登録されている。各通信路情報には、通信路の識別子(通信路識別子)１２１Ａ、通信路に接続された２つのＮＩＣ(サーバ１０のＮＩＣとホスト２０のＮＩＣ)の識別子(ＮＩＣ識別子)１２１Ｂ,１２１Ｃ、一方のＮＩＣ識別子１２１Ｃにより定まるＮＩＣを所有するホスト２０の識別子(ホスト識別子)１２１Ｄが含まれている。ここで、ＮＩＣ識別子１２１Ｂ,１２１Ｃには、サーバおよびホストが互いのＮＩＣを特定することができるものであればどのような情報が設定されていてもよい。例えば、ＩＰアドレス、ＭＡＣアドレス、ＩＰアドレスとＰｏｒｔ番号とを組み合わせた情報、ＷＷＮ(world wide name)等を設定されていればよい。このようなＮＩＣ識別子となり得る情報は、ホスト２０およびサーバ１０の管理者に入力を要求することによって取得してもよいし、ネームサーバ等から取得してもよい。または、ホスト２０のＮＩＣ識別子は、ホスト２０からサーバ１０にパケットが送信された際にそのパケットの送信元アドレスと送信先アドレスの組合せを、１つの通信路識別情報に含まれる２つのＮＩＣ識別子１２１Ｂ,１２１Ｃとして取得することもできる。
【００１５】
通信条件管理テーブル１２５には、図３に示すように、ホスト２０とサーバ１０との間で実行されたデータ転送ごとに、ホスト２０のホスト識別子１２５Ａ、データ転送の識別子(通信識別子)１２５Ｂ、データ転送に用いられる通信条件情報１２５Ｃが登録される。各通信条件情報には、例えば、Ｉ／Ｏ要求の対象データのサイズ(データサイズ)１２５Ｃ1、ホスト２０上でＬＶＭ(Logical Volume Manager)等にＩ／Ｏ要求を発行したアプリケーションがユーザに提供するサービス名１２５Ｃ2、Ｉ／Ｏ要求の発行時間帯１２５Ｃ3、Ｉ／Ｏ要求の対象データにユーザが設定した優先度１２５Ｃ4を含めることができる。これらの情報１２５Ｃ1, １２５Ｃ2,１２５Ｃ3,１２５Ｃ4は、通信条件情報に含まれる情報の一例として挙げたものである。したがって、必ずしも、これらの情報１２５Ｃ1, １２５Ｃ2,１２５Ｃ3,１２５Ｃ4のすべてが通信条件情報１２５Ｃに含まれている必要はない。また、ホストのＩ／Ｏ処理性能に影響を及ぼし得る他の情報が通信条件情報１２５Ｃに含まれていてもよい。なお、通信識別子１２５Ｂは、ホストごとに一意に定められる情報であるため、通信条件管理テーブル１２５には、重複する複数の通信識別子が登録されることがある。
【００１６】
通信路選択結果管理テーブル１２３には、図４に示すように、サーバ１０とホスト２０との間でデータ転送が行われるごとに、そのデータ転送に先立ち行われた通信路選択処理(図１１参照)の結果を表す情報(通信路選択結果情報)が登録される。各通信路選択結果情報には、サーバ１０にアクセスしたホスト２０のホスト識別子１２３Ａ、データ転送の通信識別子１２３Ｂ、データ転送に使用される通信路の通信路識別子１２３Ｃが含まれている。これらの情報１２３Ａ,１２３Ｂ,１２３Ｃは、通信路選択結果情報に含まれる情報の一例として挙げたものである。したがって、これらの情報１２３Ａ,１２３Ｂ,１２３Ｃ以外の情報を通信路選択結果情報に含ませてもよい。
【００１７】
Ｉ／Ｏ処理性能管理テーブル１２４には、図５に示すように、ホスト２０とサーバ１０との間で行われたデータ転送ごとに、ホスト２０のホスト識別子１２４Ａ、データ転送の通信識別子１２４Ｂ、データ転送中に検出されたＩ／Ｏ処理性能に関する情報(Ｉ／Ｏ処理性能情報)が登録される。各Ｉ／Ｏ処理性能情報には、例えば、データ転送に要した時間(通信時間)１２４Ｃ、データ転送中のホスト２０のＣＰＵ使用率１２４Ｄを含めることができる。これらの情報１２４Ｃ,１２４Ｄは、Ｉ／Ｏ処理性能情報に含まれる情報の一例として示したものである。したがって、必ずしも、これらの情報１２４Ｃ,１２４ＤのすべてがＩ／Ｏ処理性能情報に含まれている必要はない。また、データ転送中に検出されるＩ／Ｏ処理性能に関する他の情報がＩ／Ｏ処理性能情報に含まれていてもよい。
【００１８】
通信ログ管理テーブル１２２には、図６に示すように、ホスト１０とサーバ２０との間で実行されたデータ転送のログ(通信ログ)が、ホスト１０とサーバ２０との間で実行される次回のデータ転送に使用する通信路を選択するための指標として登録される。各通信ログには、通信ログの登録日を表す日付情報(不図示)、通信路選択結果管理テーブル１２３に登録された通信路選択結果情報と同様な通信路選択結果情報(ホスト識別子１２２Ａ、通信識別子１２２Ｂ、通信路識別子１２２Ｃ)、通信条件管理テーブル１２５の通信条件情報と同様な通信条件情報(データサイズ１２２Ｄ、サービス名１２２Ｅ、Ｉ／Ｏ要求の発行時間帯１２２Ｆ、優先度１２２Ｇ)、Ｉ／Ｏ処理性能管理テーブル１２４のＩ／Ｏ処理性能情報と同様なＩ／Ｏ処理性能情報(通信時間１２２Ｈ、ＣＰＵ使用率１２２Ｉ)が含まれている。
【００１９】
一方、ホスト２０には、複数の通信路３０に接続可能な１以上のネットワークインタフェースカード(ＮＩＣ)２３、後述のデータ転送処理が定義された通信プログラムとＯＳ等(Operating System)がインストールされたハードディスク２２、メモリ(不図示)、ハードディスク２２からメモリにロードされたプログラムを実行するＣＰＵ２１、これらの間を相互につないだバス(不図示)が内蔵されている。
【００２０】
このようなハードウエアおよびプログラムによって、ホスト２０は、所定サイズ以上のデータ(Ｉ／Ｏ要求の対象データ)をサーバ１０との間で送受信する通信制御部２１１、通信制御部２１１が行うデータ転送の通信条件情報およびＩ／Ｏ処理性能情報を収集する情報収集部２１２、予め定められた通信路を介して所定サイズ未満のデータ(Ｉ／Ｏ要求等)をホスト２０との間で送受信する情報送受信部２１３、を実現する。これらの機能構成部には、必要に応じて、他の機能を付加することもできる。例えば、コネクション指向の通信における一般的な通信処理(初期化処理、終了処理、認証処理、暗号化処理等)を通信制御部２１１に実行させるようにしてもよい。
【００２１】
なお、これらの機能構成を実現するための通信プログラムは、記憶媒体からハードディスク２２にインストールされたものであってもよいし、信号伝送媒体を介してハードディスク２２にインストールされたものであってもよい。
【００２２】
また、ホスト２０の内蔵ハードディスク２２には、通信プログラム等の他、サーバ１０が保持する通信路情報管理テーブル１２１と同様なデータ構造のデータテーブル２２１がさらに格納されている。ただし、ホスト２０が保持する通信路情報管理データベース２２１には、そのホスト２０のホスト識別子を含む通信路情報だけが登録されていてもよい。
【００２３】
つぎに、本実施の形態に係るストレージシステムにおいて実行される処理について説明する。
【００２４】
(１)サーバ１０が実行する通信ログ生成処理
サーバ１０においては、通信ログ生成部１１３によって、定期的に、または、通信ログ管理テーブル１２２の参照直前等の適当なタイミングで、通信ログ生成処理が実行される。この通信ログ生成処理のフローチャートを図７に示す。
【００２５】
通信ログ生成部１１３は、通信路選択結果管理テーブル１２３からすべての通信路選択結果情報を取り出す(Ｓ４０)。
【００２６】
このとき、通信路選択結果管理テーブル１２３から通信路選択結果情報を取り出すことができなければ(Ｓ４１)、通信ログ生成部１１３は、通信ログ生成処理を終了する。
【００２７】
一方、通信路選択結果管理テーブル１２３から通信路選択結果情報を取り出すことができれば(Ｓ４１)、通信ログ生成部１１３は、通信路選択結果情報ごとにさらに以下の処理を実行する。
【００２８】
通信ログ生成部１１３は、通信路識別結果情報から通信識別子およびホスト識別子を取り出し(Ｓ４２)、これらと共通の通信識別子およびホスト識別子に対応付けられた通信条件情報を通信条件管理テーブル１２５から取り出す(Ｓ４３)。さらに、通信ログ生成部１１３は、Ｓ４２で取り出した通信識別子およびホスト識別子と共通の通信識別子およびホスト識別子に対応付けられたＩ／Ｏ処理性能情報をＩ／Ｏ処理性能管理テーブル１２４から取り出す(Ｓ４４)。
【００２９】
そして、通信ログ生成部１１３は、Ｓ４３で取り出した通信条件情報と、Ｓ４３で取り出したＩ／Ｏ処理性能情報と、通信路選択結果情報とをマージすることによって通信ログを生成し、この通信ログを通信ログ管理テーブルに登録する。このとき、ハードディスク１２の空き領域が不足していたら、通信ログ生成部１１３は、日付情報が示す登録日の古い順に通信ログを通信ログ管理テーブル１２２から削除し、その後、新たに生成した通信ログを通信ログ管理テーブル１２２に登録する(Ｓ４５)。
【００３０】
通信ログ生成部１１３は、通信路選択結果管理テーブル１２３から取り出されたすべての通信路選択結果情報について以上の処理(Ｓ４２〜Ｓ４５)が実行されたか否かを判断する(Ｓ４６)。その結果、以上の処理(Ｓ４２〜Ｓ４５)が実行されていない通信路選択結果情報が存在していた場合には、その通信路選択結果情報について以上の処理(Ｓ４２〜Ｓ４５)を実行する。それ以外の場合には、通信ログ生成部１１３は、通信路選択結果管理テーブル１２１からすべての通信路選択結果情報を削除するとともに、Ｉ／Ｏ処理性能管理テーブル１２４からすべてのＩ／Ｏ処理性能情報を削除してから、通信ログ生成処理を終了する。
【００３１】
このような通信ログ生成処理によれば、前回の通信ログ生成処理の実行時以降にホストとサーバとの間で実行されたデータ転送の通信ログが通信ログ管理テーブルに登録される。このような通信ログ生成処理を繰り返し実行することによって、ホストとサーバとの間で実行されるデータ転送に使用される通信路を選択する際の指標とする通信ログを、各通信路の特性を反映した最新のものに更新することができる。
【００３２】
なお、以上においては、サーバの内蔵ハードディスクの空き領域が不足したら、古い通信ログを通信ログ管理テーブルから削除しているが、必ずしも、このようにする必要はない。例えば、通信ログの登録数に上限値を定めておき、通信路ログ管理テーブルに登録された通信ログの数がその上限値に達したら、古い通信ログを通信ログ管理テーブルから削除するようにしてもよい。または、通信ログの保存期間を定めておき、登録時から保存期間を経過した通信ログを通信ログ管理テーブル１２２から定期的に削除するようにしてもよい。
【００３３】
また、以上においては、Ｉ／Ｏ処理性能管理テーブルから取り出したＩ／Ｏ処理性能情報を、通信ログのＩ／Ｏ処理性能情報としてそのまま用いているが、必ずしも、このようにする必要はない。例えば、Ｉ／Ｏ処理性能管理テーブルから取り出したＩ／Ｏ処理性能情報と、通信条件管理テーブルから取り出した通信条件とから生成される情報を、通信ログのＩ／Ｏ処理性能情報に含めることにしてもよい。具体的には、Ｓ４５において、属性情報に含まれているデータサイズを、Ｉ／Ｏ処理性能情報に含まれている通信時間で割ることによって通信速度を算出し、図８に示すように、この通信速度１２２Ｊを、通信ログのＩ／Ｏ処理性能情報に含めるようにしてもよい。
【００３４】
(２)サーバ１０とホスト２０との間で実行されるデータ転送処理
いずれかのホスト２０がサーバ１０の共有ストレージ１５にアクセスすると、そのホスト２０とサーバ１０との間でデータ転送処理が実行される。このデータ転送処理のフローチャートを図９および図１０に示す。
【００３５】
ホスト２０上で、ファイルシステム、ＬＶＭ等よりも上位層のアプリケーションが、書込みデータを伴うＩ／Ｏ要求を発行すると、図９に示したデータ転送処理が実行される。
【００３６】
まず、ホスト２０では、情報収集部２１２が通信条件情報(書込みデータのサイズ、アプリケーションの提供サービス名、Ｉ／Ｏ要求の発行時間帯、書込みデータの優先度等)を収集する。そして、情報送受信部２１３が、その通信条件情報を含む通信路選択要求を、所定の通信路を介してサーバ１０に送信する(Ｓ５０)。
【００３７】
サーバ１０では、ホスト２０からの通信路選択要求を情報送受信部１１６が受信する。情報送受信部１１６が、その通信路選択要求の発信元ホストのホスト識別子とその通信路選択要求に含まれていた通信条件情報とを通信路選択処理部１１４に渡すと、通信路選択処理部１１４は、通信路選択要求の発信元ホストとの間で今回行うデータ転送に通信識別子を割り当てる。その後、通信路選択処理部１１４は、その通信識別子と、情報送受信部１１６から渡された情報とを通信条件管理テーブル１２５に追加登録してから、後述の通信路選択処理(図１１参照)を実行する。これにより、Ｉ／Ｏ要求の送信に用いる通信路の通信路識別子が選択される。さらに、通信路選択処理部１１４は、このとき選択した通信路識別子と、情報送受信部１１６から渡されたホスト識別子および通信識別子とを含む通信路選択結果情報を生成し、この通信路選択結果情報を通信路選択結果管理テーブル１２３に新規登録する。そして、情報送受信部１１６が、このとき通信路選択処理部１１４が生成した通信路選択結果情報を、Ｉ／Ｏ要求発信元ホスト２０に対して予め定められた通信路を介して、Ｉ／Ｏ要求発信元ホスト２０に送信する(Ｓ５１)。
【００３８】
ホスト２０では、情報送受信部２１３が、サーバ１０からの通信路選択結果情報を受け付ける。情報送受信部２１３が、その通信路選択結果情報を通信制御部２１１に渡すと、通信制御部２１１は、その通信路選択結果情報から通信路識別情報およびホスト識別子を取り出し、これらと共通の通信路識別情報およびホスト識別子に対応付けられた２つのＮＩＣ識別子(サーバのＮＩＣ識別子、ホストのＮＩＣ識別子)を通信路情報管理テーブル２２１から取り出す。そして、通信制御部２１１は、これら２つのＮＩＣ識別子により定まる通信路を、サーバ１０との間のデータ転送パスとして設定し、この通信路を介した、書込みデータを伴うＩ／Ｏ要求の送信を開始する(Ｓ５２)。このとき、書込みデータが複数のパケットデータに分割される場合には、各パケットデータにシーケンス番号等が付加されるようにしてもよい。
【００３９】
サーバ１０では、ホスト２０からのＩ／Ｏ要求を通信制御部１１１が受け付けると、そのＩ／Ｏ要求が通信制御部１１１からＩ／Ｏ処理部１１２に渡される。このとき、書込みデータが複数のパケットデータに分割され、各パケットデータにシーケンス番号が付されていたら、通信制御部１１１は、複数のパケットデータを、シーケンス番号の順に並べ換えてからＩ／Ｏ処理部１１２に渡す。Ｉ／Ｏ処理部１１２は、そのＩ／Ｏ要求に応じてＩ／Ｏ処理を実行する。このとき、Ｉ／Ｏ要求とともに送信されてきた書込みデータが、キャッシュ１６に一旦格納されてから共有ストレージ１５に書き込まれるようにしてもよい。
【００４０】
その後、サーバ１０では、Ｉ／Ｏ処理部１１２が、Ｉ／Ｏ結果（終了ステータス等）を情報送受信部１１６に渡す。情報送受信部１１６は、そのＩ／Ｏ結果を、Ｉ／Ｏ要求発信元ホストに対して予め定められた通信路を介して、Ｉ／Ｏ要求発信元ホストに送信する(Ｓ５５)。
【００４１】
ホスト２０では、サーバ１０からのＩ／Ｏ結果を通信制御部２１１が受け付けて、その終了ステータスが通信制御部２１１からＩ／Ｏ要求発行元アプリケーションに渡される(Ｓ５６)。その後、ホスト２０では、さらに、情報収集部２１２が、Ｉ／Ｏ処理性能情報(通信時間、ＣＰＵ使用率等)を収集し、情報送受信部２１２が、そのＩ／Ｏ処理性能情報を、所定の通信路を介してサーバ１０に送信する(Ｓ５７)。   サーバ２０では、ホスト２０からのＩ／Ｏ処理性能情報情報(通信時間、ＣＰＵ使用率等)を情報送受部１１６が受け付けると、そのＩ／Ｏ処理性能情報が情報送受部１１６から情報収集部１１５に渡される。そして、情報収集部１１５は、そのＩ／Ｏ処理性能情報をホスト識別子と通信識別子に対応付けて、Ｉ／Ｏ処理性能管理テーブル１２４に登録する(Ｓ５８)。
【００４２】
このようにして、書込みデータを伴うＩ／Ｏ要求がホスト２０からサーバ１０に送信された場合に実行されるデータ転送処理が完了する。
【００４３】
一方、ホスト２０上で、ファイルシステム、ＬＶＭ等よりも上位層のアプリケーションが、読出しデータの識別情報(読出しデータ識別子)を含むＩ／Ｏ要求を発行すると、図１０に示したデータ転送処理が実行される。
【００４４】
まず、ホスト２０では、情報収集部２１２が、ホスト側で収集可能な通信条件情報(アプリケーションの提供サービス名、Ｉ／Ｏ要求の発行時間帯、読込みデータの優先度等)を収集する。そして、情報送受信部２１３が、その通信条件情報を、所定の通信路を介してサーバ１０に送信する(Ｓ６０)。さらに、情報送受信部２１３が、所定の通信路を介してＩ／Ｏ要求をサーバ１０に送信する(Ｓ６１)。
【００４５】
サーバ１０では、ホスト２０からのＩ／Ｏ要求を情報送受信部１１６が受け付けると、そのＩ／Ｏ要求が通信制御部１１１からＩ／Ｏ処理部１１２に渡される。Ｉ／Ｏ処理部１１２は、そのＩ／Ｏ要求に応じてＩ／Ｏ処理を実行する。これにより、Ｉ／Ｏ要求に含まれていた読出しデータ識別子により定まるデータが、キャッシュ１６または共有ストレージ１５から読み出される(Ｓ６２)。そして、情報収集部１１５が、このとき読み出されたデータに関して、サーバ側で収集可能な通信条件情報(データサイズ等)を収集し、その通信条件情報を、ホスト２０からの通信条件情報に追加する(Ｓ６３)。さらに、通信路選択処理部１１４が、Ｉ／Ｏ要求発行元ホストとの間で今回行うデータ転送に通信識別子を割り当て、その通信識別子と、情報収集部１１５等が収集した通信条件情報とを通信条件管理テーブル１２５に追加登録してから、後述の通信路選択処理(図１１参照)を実行する。これにより、Ｉ／Ｏ結果(読出しデータ等)の送信に用いる通信路の通信路識別子が選択される。さらに、通信路選択処理部１１４は、このとき選択した通信路識別子と、Ｉ／Ｏ要求発信元ホストのホスト識別子と、Ｓ６２で割り当てた通信識別子とを含む通信路選択結果情報を生成し、この通信路選択結果情報を通信路選択結果管理テーブル１２３に新規登録する(Ｓ６４)。
【００４６】
その後、サーバ１０では、通信制御部１１１が、通信路選択処理部１１４の選択した通信路識別子と、Ｉ／Ｏ要求の発行元ホストのホスト識別子とに対応付けられた２つのＮＩＣ識別子(サーバのＮＩＣ識別子、ホストのＮＩＣ識別子)を通信路情報管理テーブル１２１から取り出し、これら２つのＮＩＣ識別子により定まる通信路を、Ｉ／Ｏ結果(読出しデータ等)の送信に用いるデータ転送パスとして設定し、この通信路を介して、Ｉ／Ｏ結果を、Ｉ／Ｏ要求に対する応答情報としてホストに送信する(Ｓ６５)。このとき、Ｉ／Ｏ結果が複数のパケットデータに分割される場合には、各パケットデータにシーケンス番号等が付加されるようにしてもよい。
【００４７】
ホスト２０では、Ｉ／Ｏ結果を通信制御部２１１が受信すると、そのＩ／Ｏ結果が通信制御部２１１からＩ／Ｏ要求の発行元アプリケーションに渡される(Ｓ６６)。このとき、Ｉ／Ｏ結果が、シーケンス番号等が付加された複数のパケットデータに分割されている場合には、通信制御部２１１は、複数のパケットデータを、シーケンス番号の順に並べ換えてからＩ／Ｏ要求の発行元アプリケーションに渡す。また、情報収集部２１２が、Ｉ／Ｏ処理性能情報(通信時間およびＣＰＵ使用率)を収集し、通信送受信２１３が、そのＩ／Ｏ処理性能情報を、予め定められた通信路を介してサーバ１０に送信する(Ｓ６７)。
【００４８】
サーバ１０では、ホスト２０からのＩ／Ｏ処理性能情報(通信時間、ＣＰＵ使用率等)を情報送受部１１６が受け付けると、そのＩ／Ｏ処理性能情報が、情報送受部１１６から情報収集部１１５に渡される。そして、情報収集部１１５は、そのＩ／Ｏ処理性能情報とホスト識別子と通信識別子とをＩ／Ｏ処理性能管理テーブル１２４に登録する(Ｓ５８)。
【００４９】
このようにして、読出しデータ識別子を含むＩ／Ｏ要求がホスト２０からサーバ１０に送信された場合に実行されるデータ転送処理が完了する。
【００５０】
なお、以上においては、読出しデータ識別子を含むＩ／Ｏ要求をサーバが受け付けると、そのＩ／Ｏ要求に対する応答情報の送信に使用する通信路をサーバが選択するようにしているが、Ｉ／Ｏ要求とそれに対する応答とを共通の通信路で通信させることを定めた通信プロトコルがホストとサーバとの間で採用されている場合には、サーバ１０は、Ｉ／Ｏ要求が送信されてきた通信路で応答情報をホストに返信すればよい。
【００５１】
(３)サーバ１０が実行する通信路選択処理
サーバ１０が実行する通信路選択処理のフローチャートを図１１に示す。
【００５２】
通信路選択処理部１１４は、通信条件情報とホスト識別子を取得すると(Ｓ７０)、そのホスト識別子に対応付けられた通信路識別子を通信路情報管理テーブル１２１からすべて取り出す。そして、このとき取り出した通信路識別子群を構成要素とする通信路識別子リストを生成する(Ｓ７１)。
【００５３】
つぎに、通信路選択処理部１１４は、通信路識別子リストに含まれている通信路識別子ごとに、それぞれ、その通信路識別子を含む通信ログを通信ログ管理テーブル１２２から取り出す。そして、この検索により取り出された各通信ログ群を、それらに含まれている通信路識別子によって分類する。通信路選択処理部１１４は、分類された各グループから、１つずつ、Ｓ７０で取得した通信条件情報に最も近似した通信条件情報を含む通信ログを類似事例として選択する(Ｓ７２)。通信ログ群のなかから類似事例を選択するための方法の具体例としては、通信条件情報の各構成情報の重みをユーザにあらかじめ設定させておき、Ｓ７０で取得した通信条件情報の各構成情報とそれに対応する構成情報との差分に重みをかけた値の総和が最小となる通信条件情報を含む通信ログを類似事例として選択する方法が挙げられる。もちろん、その他の選択方法によって、通信路識別子ごとに取り出した各通信ログ群のなかから類似事例を選択するようにしてもよい。例えば、類似事例の選択方法をユーザが指定している場合等には、その選択方法にしたがって類似事例を選択するようにすればよい。
【００５４】
このようにして通信路識別子ごとに選択された類似事例群を、それらに含まれているＩ／Ｏ処理性能情報が表すＩ／Ｏ処理性能の高い順番にソートする(Ｓ７３)。通信情報で類似事例群をソートするための方法の具体例としては、Ｉ／Ｏ処理性能情報の各構成情報の重みをユーザに設定させておき、Ｉ／Ｏ処理性能情報の各構成情報とその構成情報について予め定められた符号を付した重みとの積の和が小さな順に通信ログ群をソートする方法が挙げられる。この方法において、値が小さいほど性能が高いことを表す構成情報の重みに付す符号は負であり、値が大きいほど性能が高いことを表す構成情報の重みに付す符号は正である。もちろん、その他の方法によって類似事例群をソートするようにしてもよい。例えば、類似事例群のソート方法をユーザが指定している場合等には、そのソート方法にしたがって類似事例群をソートするようにすればよい。
【００５５】
通信路選択処理部１１４は、このようなソートにより得られた類似事例列の１番目の類似事例から、ホスト２０とのデータ転送パスとして用いる通信路の通信路識別子として通信路識別子を取り出す(Ｓ７４)。
【００５６】
以上の通信路選択処理によれば、通信条件が類似している過去の事例で選択された通信路のなかから、ユーザが重要と考えるＩ／Ｏ処理性能が特に良好な値を示した実績のある通信路をデータ転送パスとして選択することができる。このため、ホストとサーバとをつなぐ複数の通信路の特性が動的に変化する場合であっても、それら複数の通信路のなかから、ユーザの要求に合致した最適なデータ転送パスを選択することができる。
【００５７】
なお、以上においては、ホストとサーバとの間のデータ転送パスとして１つの通信路が選択されているが、ホストとサーバとの間のデータ転送パスとして２つ以上の通信路が選択され、それら２つ以上の通信路が仮想的に１つの通信路として機能するようにしてもよい。
【００５８】
ところで、以上の通信路選択処理においては、ユーザが重要と考えるＩ／Ｏ処理性能が特に良好な値を示した実績のある通信路をデータ転送パスとして選択されるようにしているが、Ｉ／Ｏ処理性能以外の要素も考慮して、データ転送パスとする通信路を選択するようにしてもよい。以下、具体例を挙げて説明する。
【００５９】
例えば、ユーザが課金方法として従量制を指定している場合には、Ｉ／Ｏ処理性能とコストとのトレードオフを考慮した通信路選択がなされることを、ユーザが望むことがある。
【００６０】
このような場合には、Ｓ７２で得られた類似事例群から、ユーザの指定値以上のＩ／Ｏ処理性能を示す類似事例だけを取り出し、さらに、それらの類似事例から、ユーザが指定する課金方法による通信コストが低いものを取り出すようにしてもよい。例えば、データ転送中のＣＰＵ使用率をユーザの指定値以下に抑制しつつ、通信コストを抑制することが望まれている場合には、Ｓ７３およびＳ７４において以下の処理が実行されるようにすればよい。まず、Ｓ７２で得られた類似事例群から、ユーザの指定値以下のＣＰＵ使用率を示した類似事例を取り出す。その後、このとき取り出した類似事例群を、通信時間の短い順または優先度の低い順にソートする。最終的に、このようなソートにより得られた類似事例列の１番目の類似事例から、ホスト２０とのデータ転送パスとして用いる通信路の通信路識別子として通信路識別子を取り出す。
【００６１】
または、Ｓ７２で得られた類似事例群から、ユーザが指定した金額以下に通信コストが抑制可能な類似事例だけを取り出し、さらに、それらの類似事例から、ユーザが指定したＩ／Ｏ処理性能が優れているものを取り出すようにしてもよい。例えば、通信コストをユーザの指定金額以下に抑制しつつ、データ転送中のＣＰＵ使用率を抑制することが望まれている場合には、Ｓ７３およびＳ７４において以下の処理が実行されるようにすればよい。まず、Ｓ７２で得られた類似事例群から、ユーザの指定金額以下の通信コストで利用可能な通信時間を含む類似事例を取り出す。その後、このとき取り出した類似事例群を、ＣＰＵ使用率が低い順にソートする。最終的に、このようなソートにより得られた類似事例列の１番目の類似事例から、ホスト２０とのデータ転送パスとして用いる通信路の通信路識別子として通信路識別子を取り出す。
【００６２】
このようにすれば、ユーザが要求するＩ／Ｏ処理性能を満たしつつ、コストを最小化する通信路を選択することができる。すなわち、Ｉ／Ｏ処理性能とコストとのトレードオフを意識した通信路選択を行うことができる。もちろん、同様な手法によって、Ｉ／Ｏ処理性能とコスト以外の競合条件とのトレードオフを意識した通信路選択を行うことも可能である。
【００６３】
以上においては、ＡＤＳＬ(Asymmetric Digital Subscriber Line)等の、指向性を有する通信路がホストとサーバとの間に存在している場合を考慮していないが、そのような、指向性を有する通信路がホストとサーバとの間に存在している場合には、通信条件情報にデータ送信方向を追加することが望ましい。
【００６４】
【発明の効果】
本発明によれば、情報処理装置間に複数の通信路が存在し、それらの特性が変化しても、それら複数の通信路のなかから最適な通信路を選択することができる。
【図面の簡単な説明】
【図１】本発明の実施の一形態に係るストレージシステムの概略構成図である。
【図２】本発明の実施の一形態に係る通信路情報管理テーブルのデータ構造を概念的に示した図である。
【図３】本発明の実施の一形態に係る通信条件管理テーブルのデータ構造を概念的に示した図である。
【図４】本発明の実施の一形態に係る通信路選択結果管理テーブルのデータ構造を概念的に示した図である。
【図５】本発明の実施の一形態に係るＩ／Ｏ処理性能管理テーブルのデータ構造を概念的に示した図である。
【図６】本発明の実施の一形態に係る通信ログ管理テーブルのデータ構造を概念的に示した図である。
【図７】本発明の実施の一形態に係る通信ログ生成処理のフローチャートである。
【図８】本発明の実施の一形態に係る通信ログ管理テーブルのデータ構造を概念的に示した図である。
【図９】本発明の実施の一形態に係るデータ転送処理のフローチャートである。
【図１０】本発明の実施の一形態に係るデータ転送処理のフローチャートである。
【図１１】本発明の実施の一形態に係る通信路選択処理のフローチャートである。
【符号の説明】
１０…情報処理装置，１１…ＣＰＵ，１２…ハードディスク，１３…ネットワークインタフェースカード，１４…ディスクコントローラ，１５…共有ストレージ，１６…キャッシュ，１１１…通信制御部，１１２…Ｉ／Ｏ処理部，１１３…通信ログ生成部，１１４…通信路選択処理部，１１５…情報収集部，１１６…情報送受信部，１２１…通信路情報管理テーブル，１２２…通信ログ管理テーブル，１２３…通信路選択結果管理テーブル，１２４…Ｉ／Ｏ処理性能管理テーブル，１２５…通信条件管理テーブル
２０…情報処理装置，２１…ＣＰＵ，２２…ハードディスク，２１１…通信制御部，２１２…情報収集部，２１３…情報送受信部，２２１…通信路情報管理テーブル
【図１】
0003848587.tif 000002
【図２】
0003848587.tif 000003
【図３】
0003848587.tif 000004
【図４】
0003848587.tif 000005
【図５】
0003848587.tif 000006
【図６】
0003848587.tif 000007
【図７】
0003848587.tif 000008
【図８】
0003848587.tif 000009
【図９】
0003848587.tif 000010
【図１０】
0003848587.tif 000011
【図１１】
0003848587.tif 000012