(57)【要約】      （修正有）【課題】複数のリンクに対してスループットを最大化するＴＣＰコネクション数を決定する際に２本目以降のリンクに対する最適なＴＣＰコネクション数を高速に探索する。【解決手段】ｉＳＣＳｉターゲットとｉＳＣＳｉセッションするｉＳＣＳｉホスト装置のイニシエータに振分制御部３が組み込まれている。振分制御部３は、まず、各接続Ｌｉｎｋ１．２の利用開始時刻が異なるときに、先に起動したＬｉｎｋ１に対してスループットを最大とするＴＣＰコネクション数の最適値を探索する。つぎに、先に起動したＬｉｎｋ１の前記最適値を、次に起動したＬｉｎｋ２のＴＣＰコネクション数に適用する。そして、両Ｌｉｎｋ１．２間のスループット差に基づきＬｉｎｋ２のＴＣＰコネクション数を調整する。【選択図】図３
2010283780.tif 000002
【特許請求の範囲】
【請求項１】
ｉＳＣＳＩセッションするｉＳＣＳＩホスト装置とｉＳＣＳＩデバイス装置の各接続リンク単位のＴＣＰコネクション数を、前記ホスト装置に構築されたイニシエータをもって制御する方法であって、
前記各接続リンクの利用開始時刻が異なるときに、先に起動したリンクに対してスループットを最大とするＴＣＰコネクション数の最適値を探索する第１ステップと、
前記第１ステップで探索した先に起動したリンクの前記最適値を、次に起動したリンクのＴＣＰコネクション数に適用し、両リンク間のスループット差に基づき次に起動したリンクに対してスループットを最大とするＴＣＰコネクション数に調整する第２ステップと、
を有することを特徴とするｉＳＣＳＩ接続におけるＴＣＰコネクション数の制御方法。
【請求項２】
監視制御手段が、前記各接続リンクの起動を監視して、次に起動するリンクを検知するステップと、
次に起動するリンクに対して前記最適値を初期値としてｉＳＣＳＩ接続を確立させるステップと、
をさらに有することを特徴とする請求項１記載のｉＳＣＳＩ接続におけるＴＣＰコネクション数の制御方法。
【請求項３】
ｉＳＣＳｉデバイス装置とｉＳＣＳｉセッションするイニシエータが構築されたｉＳＣＳｉホスト装置において、
前記イニシエータに、前記各リンクの利用開始時刻が異なるときに先に起動したリンクに対して、スループットを最大とするＴＣＰコネクション数の最適値を探索する手段と、
先に起動したリンクの前記最適値を、次に起動したリンクのＴＣＰコネクション数に適用し、両リンク間のスループット差に基づき次に起動したリンクに対してスループットを最大とするＴＣＰコネクション数に調整する手段と、
を設けたことを特徴とするｉＳＣＳＩホスト装置。
【請求項４】
前記各リンクの起動を監視して、次に起動するリンクを検知する監視制御手段をさらに備え、
前記監視制御手段が、次に起動するリンクに対して前記最適値を初期値としてｉＳＣＳＩ接続を確立させる
ことを特徴とする請求項３記載のｉＳＣＳＩホスト装置。
【請求項５】
請求項１または２のいずれか１項に記載のｉＳＣＳＩホスト装置として、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ｉＳＣＳＩホスト装置とｉＳＣＳＩデバイス装置とをＩＰ（ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ）ネットワークを使用して接続するｉＳＣＳＩ技術に関し、特に書き込みあるいは、読み出しスループット値を高速に最適化する技術に関する。
【背景技術】
【０００２】
≪ｉＳＣＳＩ（Ｉｎｔｅｒｎｅｔ  ＳＣＳＩ，ＳＣＳＩ  ｏｖｅｒ  ＴＣＰ）≫
単体、もしくは複数のハードディスクドライブの集合体、あるいは専用の制御部で複数のハードディスクドライブを制御するディスクアレイ装置等から構成されるストレージ装置が実用化されている。
【０００３】
ストレージ装置とホスト装置（サーバ，ＰＣ）間を接続するインタフェース技術としてはファイバチャネル（ＦＣ）、インフィニバンド（ＩｎｆｉｎｉＢａｎｄ）、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）などがある。ＳＣＳＩインタフェースは近距離間を経済的に接続する用途として優れ、既に広く普及している。
【０００４】
当該インタフェースでは、クライアントに相当する機能をイニシエータ、サーバに相当する機能をターゲットと呼び、イニシエータとターゲット間で、ＳＣＳＩコマンド（ＣＤＢ：Ｃｏｍｍａｎｄ  Ｄｅｓｃｒｉｐｔｏｒ  Ｂｌｏｃｋ）を交換する。ｉＳＣＳＩ（ｉｎｔｅｒｎｅｔ  ＳＣＳＩ）技術は、非特許文献１に示すように、２００４年にネットワークプロトコルであるＴＣＰ／ＩＰの上位プロトコルとしてＩＥＴＦ（Ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）で標準化された（ＲＦＣ３７２０）。
【０００５】
現在、ｉＳＣＳＩ技術はギガビット以上の回線品質、特にデータセンター内、データセンター間や大規模ＬＡＮシステム等の基幹回線で利用されている。ｉＳＣＳＩ技術は、非特許文献１でＴＣＰコネクションを複数利用する方法を規定されているが、これはオプション機能のため必ずしも実装されているわけではない。
【０００６】
≪ｉＳＣＳＩ高速化技術≫
その一方で、高遅延特性を有するＩＰネットワーク上で、ネットワーク遅延によるｉＳＣＳＩスループットの低下を防ぐ方法として、ＴＣＰコネクションの複数利用の有効性は知られている（非特許文献２．３）。また、ＴＣＰコネクションの複数利用の実現手段としてマルチリンクを用いる手法（非特許文献４参照）や、トランスポート層のプロトコルを変更する方法（非特許文献５）なども提案されている。
【０００７】
例えば、マルチリンクを用いる手法である非特許文献４では、ＶＰＮのマルチホーミング機能を用いて、並列ＴＣＰコネクションを複数の経路で確立させ、スループット向上を実現する手法が提案されている。また、トランスポート層のプロトコルを変更する手法である非特許文献５では、では、複数のＬＡＮポートを利用して物理的にリンクを多重化し、ＴＣＰコネクションを異なる経路で確立することによりスループットの向上を図っている。
【０００８】
しかしながら、非特許文献４の技術にはマルチリンクを利用できる環境に制限があり、非特許文献５の技術にはマルチベンダー機器への接続が困難であるという問題が残っている。
【０００９】
≪ＴＣＰ多重接続技術≫
ｉＳＣＳＩ接続において、並列ＴＣＰコネクションの多重度数を動的に制御し、スループットを最大化する手法が提案されている（非特許文献６参照）。
【００１０】
（１）リンクアグリゲーション（Ｌｉｎｋ  ａｇｇｒｅｇａｔｉｏｎ）
まず、サーバとＬＡＮスイッチの間、または２台のＬＡＮスイッチの間を接続する複数の物理リンクを１本に束ねる技術としてリンクアグリゲーションがあり、より高速な（結果，高価な）インタフェースを利用せずに帯域を増やすことが可能になる。
【００１１】
リンクアグリゲーションは、２０００年３月にＩＥＥＥ８０２．３ａｄとして標準化されている（非特許文献６参照）。このリンクアグリゲーションを使用すること自体はトランキングと呼称されている。
【００１２】
（２）チーミング（Ｔｅａｍｉｎｇ）、ボンディング（Ｂｏｎｄｉｎｇ）
サーバに装着する複数のネットワークインタフェースカードを、ソフトウェアにより仮想的に１枚のネットワークインタフェースに見せる技術を一般的にチーミングと呼ぶ。
【００１３】
チーミングをＬｉｎｕｘ（登録商標）のカーネルレベルで実現するのがボンディングである（非特許文献７参照）。いずれの場合も、ソフトウェアで仮想ネットワークインタフェースを実現し、２枚使用する場合にあたかも帯域を２倍に見せることができるものの、このような仮想化は静的な構成に止まる。
【先行技術文献】
【非特許文献】
【００１４】
【非特許文献１】ＲＦＣ３７２０  ”Ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ（ｉＳＣＳＩ）”，Ａｐｒ．２００４．
【非特許文献２】Ｑ．Ｋ．Ｙａｎｇ“Ｏｎ  ｐｅｒｆｏｒｍａｃｅ  ｏｆ  ｐａｒａｌｌｅｌ  ｉＳＣＳＩ  ｐｒｏｔｏｃｏｌ  ｆｏｒ  ｎｅｔｗｏｒｋｅｄ  ｓｔｏｒａｇｅ  ｓｙｓｔｅｍｓ，”ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２０ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｄｖａｎｃｅｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｎｅｔｗｏｒｋｉｎｇ  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ（ＡＩＮＡ  ２００６），ｖｏｌ．１，ｐｐ．６２９−６３６，Ａｐｒ．２００６．
【非特許文献３】Ｇ．Ｍｏｔｗａｎｉ  ａｎｄ  Ｋ．Ｇｏｐｉｎａｔｈ，“Ｅｖａｌｕａｔｉｏｎ  ｏｆ  ａｄｖａｎｃｅｄ  ＴＣＰ  ｓｔａｃｋｓ  ｉｎ  ｔｈｅ  ｉＳＣＳＩ  ｅｎｖｉｒｏｎｍｅｎｔ  ｕｓｉｎｇ  ｓｉｍｕｌａｔｉｏｎ  ｍｏｄｅｌ，”Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２２ｎｄ  ＩＥＥＥ／１３ｔｈ  ＮＡＳＡ  Ｇｏｄｄａｒｄ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍａｓｓ  Ｓｔｏｒａｇｅ  Ｓｙｓｔｅｍｓ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｉｅｓ（ＭＳＳＴ’０５），ｐｐ．２１０−２１７，２００５．
【非特許文献４】Ｂ．Ｋ．Ｋａｎｃｈｅｒｉａ，Ｇ．Ｍ．Ｎａｒａｙａｎ，ａｎｄ  Ｋ．Ｇｏｐｉｎａｔｈ，“Ｐｅｒｆｏｒｍａｎｃｅ  ｅｖａｌｕａｔｉｏｎ  ｏｆ  Ｍｕｌｔｉｐｌｅ  ＴＣＰ  ｃｏｎｎｅｃｔｉｏｎ  ｉｎ  ｉＳＣＳＩ，”ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２４ｔｈ  ＩＥＥＥ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍａｓｓ  Ｓｔｏｒａｇｅ  Ｓｙｓｔｅｍｓ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，ｐｐ．２３９−２４４，ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｓｏｃｉｅｔｙ，Ｓｅｐｔ．２００７．
【非特許文献５】千島  望，山口  実靖，小口  正人，“ｉＳＣＳＩストレージにおけるＶＰＮ複数経路アクセス時の性能とＴＣＰパラメータ解析，”電子情報通信学会  第１８回データ工学ワークショップＤＥＷＳ２００７），Ｆｅｂ．２００７．
【非特許文献６】”ＩＥＥ  Ｓｔｄ  ８０２．３ａｄ−２０００”．Ａｍｅｎｄｍｅｎｔ  ｔｏ  Ｃａｒｒｉｅｒ  Ｓｅｎｓｅ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ  ｗｉｔｈ  Ｃｏｌｌｉｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ（ＣＳＭＡ／ＣＤ）  Ａｃｃｅｓｓ  Ｍｅｔｈｏｄ  ａｎｄ  Ｐｈｙｓｉｃａｌ  Ｌａｙｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ−Ａｇｇｒｅｇａｔｉｏｎ  ｏｆ  Ｍｕｌｔｉｐｌｅ  Ｌｉｎｋ  Ｓｅｇｍｅｎｔｓ．Ｓｐｏｎｓｏｒ：ＬＡＮ  ＭＡＭ  Ｓｔａｎｄａｒｄｓ  Ｃｏｍｍｉｔｔｅｅ  ｏｆ  ｔｈｅ  ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｓｏｃｉｅｔｙ．Ａｐｐｒｏｖｅｄ  ３０  Ｍａｒｃｈ  ２０００  ＩＥＥＥ−ＳＡ  Ｓｔａｎｄａｒｄｓ  Ｂｏａｒｄ
【非特許文献７】”ＨＰ  Ｓｅｒｖｉｃｅｇｕａｒｄの管理Ｌｉｎｕｘ用（第６版）”Ｍａｎｕｆａｃｔｕｒｉｎｇ  Ｐａｒｔ  Ｎｕｍｂｅｒ：Ｂ９９０３−９００５２．Ａｕｇ．２００６，ｐｐ．１３２−１３７
【非特許文献８】Ｔ．Ｉｔｏ，  Ｈ．Ｏｈｓａｋｉ，  ａｎｄ  Ｍ．Ｉｍａｓｅ，“ＧｒｉｄＦＴＰ−ＡＰＴ：  Ａｕｔｏｍａｔｉｃ  ｐａｒａｌｌｅｌｉｓｍ  ｔｕｎｉｎｇ  ｍｅｃｈａｎｉｓｍ  ｆｏｒ  ｄａｔａ  ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ  ＧｒｉｄＦＴＰ，”  ｉｎ    Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ６ｔｈ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｌｕｓｔｅｒ  Ｃｏｍｐｕｔｉｎｇ  ａｎｄ  ｔｈｅ  Ｇｒｉｄ  （ＣＣＧｒｉｄ２００６）｝，  ｐｐ．４５４−４６１，  Ｍａｙ．  ２００６．
【発明の概要】
【発明が解決しようとする課題】
【００１５】
高遅延特性を有するＩＰネットワークにおいて、ｉＳＣＳＩのスループットが低下する問題は広く知られ、またｉＳＣＳＩに規定されたＴＣＰ多重接続を用いる方式がスループットを改善することも知られている。
【００１６】
ところが、広域・広帯域のＩＰネットワークを前提としたｉＳＣＳＩ接続では，スループット向上のため、利用する回線の帯域や遅延情報に基づき予めｉＳＣＳＩ／ＴＣＰなどのパラメータをチューニングし、あるいはサーバとストレージ間にプロトコル変換機を設置してスループットを改善するなど、運用設定が煩雑で、かつ経済的な運用が困難なおそれがある。
【００１７】
また、従来の改善は、固定的な情報に基づく設定であるため，帯域の変動に追随できず、効率的なデータ転送が難しく、またベストエフォート型の経済性の高い回線を利用できないおそれもある。
【００１８】
そこで、本発明者らはｉＳＣＳＩイニシエータに機能を付加することでＴＣＰコネクション数をスループットに対して最大化するためのチューニングを施す発明を提案した（特願２００８−０３７６９２）。
【００１９】
この手法を同一のイニシエータとターゲット間の複数のリンクに対して使用する場合、特に各リンクを予め帯域予約によって確保する環境についてはリンク毎の利用開始時間が異なるケースが想定される。このような環境の下では、リンク毎にＴＣＰコネクション数のチューニングを行わなければならず、トータルのチューニング時間を短縮する効率的な手法が必要となる。
【００２０】
本発明は、かかる環境下において、複数のリンクに対してスループットを最大化するＴＣＰコネクション数を決定する際に２本目以降のリンクに対する最適なＴＣＰコネクション数を高速に探索することを解決課題としている。
【課題を解決するための手段】
【００２１】
ｉＳＣＳＩ技術は、一つのｉＳＣＳＩセッション内に複数のＴＣＰコネクションを確立して、複数のＳＣＳＩコマンドを並列に発行し、各ＴＣＰコネクションで同時にデータ転送を行う機能を規定しているものの、ＴＣＰコネクション数をどのように決定するか、あるいは、確立済みの複数のＴＣＰコネクションに対して、上位層からのデータ読み出しや書き込み命令をどのコネクションに振り分けるかは規定していない。
【００２２】
そこで、本発明は、複数リンクを利用可能な状況な場合に、最初のリンクでチューニングしたＴＣＰコネクション数を、以降のチューニングの基点に用いることにより、２本目以降のリンクに対するＴＣＰコネクション数の最適値探索時間を短縮させている。すなわち、経路、及び遅延量が異なる複数の物理リンクと、物理リンク毎に収容する専用のネットワークインタフェースを備えるサーバとＩＰストレージ装置において、ｉＳＣＳＩ接続によるデータ転送を行う場合にｉＳＣＳＩ接続で使用するＴＣＰコネクションの多重度を利用するネットワークインタフェース毎に管理し、先行設定するリンクに使用するネットワークインタフェースに最適化した前記多重度を利用して、次に設定するネットワークインタフェースに使用する前記多重度の初期値を定め、ネットワークインタフェース毎のスループット差を利用してＴＣＰコネクションの多重度を高速に最適化する。
【００２３】
ここでは上位層からの読み出し、書き込み命令を、複数のＴＣＰコネクション数のいずれに振り分けるかを管理するアルゴリズムを、イニシエータ内に配置する。内蔵するアルゴリズムは、特願２００８−３７６９２と同様とし、読み出し命令の場合、各リンク単位の受信バッファを参照し、所定の時間で算出するリンク単位のスループットを算出し、記録する。この過程を繰り返すことで、特定のリンクを通したスループットを履歴上のスループット最大値から、ＴＣＰコネクション数最適値を探索する。
【００２４】
そして、利用開始時刻が異なる複数のリンクが利用可能な場合、最初のリンクに上記で決定したＴＣＰコネクション決定処理を用い、２本目以降の利用可能なリンクに対しては、１本目のリンクで決定したＴＣＰコネクション数（Ｌｉｎｋ１の最適値）を適用し、２本目以降のリンクに対するＴＣＰコネクション数の最適値探索時間を短縮させる。
【発明の効果】
【００２５】
本発明によれば、複数のリンクに対してスループットを最大化するＴＣＰコネクション数を決定する際に２本目以降のリンクに対する最適なＴＣＰコネクション数が高速に探索される。
【図面の簡単な説明】
【００２６】
【図１】ｉＳＣＳＩプロトコルにおいて１本のｉＳＣＳＩ接続（セッション）内に複数のＴＣＰコネクションを利用する接続形態の概略図。
【図２】本発明の基本原理を構成するｉＳＣＳｉのＴＣＰコネクション数最適化のための制御構成図。
【図３】本発明の実施形態に係るＴＣＰコネクション数の最適化処理の制御構成図。
【図４】（ａ）は図３中のＬｉｎｋ１の利用予約状況示すモデル図、（ｂ）は図３中のＬｉｎｋ２の利用予約状況を示すモデル図。
【図５】Ｌｉｎｋ２起動時のＴＣＰコネクション数の調整原理図。
【発明を実施するための形態】
【００２７】
≪ｉＳＣＳＩ接続形態≫
図１は、ｉＳＣＳＩイニシエータ１とｉＳＣＳＩターゲット２とがＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークを介して、ｉＳＣＳＩ接続される基本的な形態を示している。ここではｉＳＣＳＩプロトコルにおいて、１本のｉＳＣＳＩ接続（ｉＳＣＳＩセッション）内に複数のＴＣＰコネクションが利用されている。
【００２８】
ｉＳＣＳＩイニシエータ１は、ｉＳＣＳＩホスト装置を構成するファイルサーバなどに実装されている一方、ｉＳＣＳＩターゲット２は、ｉＳＣＳＩデバイス装置を構成するディスクストレージ装置などに実装されている。なお、ｉＳＣＳＩイニシエータ１の機能は、イーサネット（登録商標）インタフェースなどのネットワークインタフェースを通じて実現されている。
【００２９】
非特許文献１で規定された当該プロトコルではＴＣＰコネクションを複数利用する形態を規定しているが、定めているのは上位層からのｉＳＣＳＩコマンドを特定のＴＣＰコネクションを通して送信した場合、当該コマンドに起因する「ターゲットからのレスポンスの受信」と「レスポンスへのレスポンス」などを同一コネクションで完結することを定めているにすぎない。
【００３０】
すなわち、確立したｉＳＣＳＩセッションでのデータ送受信中にＴＣＰコネクション数を変更すること、あるいは確立したＴＣＰコネクションのいずれにｉＳＣＳＩ（Ｒｅａｄ／Ｗｒｉｔｅ）コマンドを送出するかは定められていない。
【００３１】
≪基本制御≫
図２は、ＴＣＰコネクション数のスループットに対する最適化手法の基本制御構成Ｓ１を示し、ｉＳＣＳＩイニシエータ１にＴＣＰコネクション数の振分制御部（ｉＳＣＳＩ−ＡＰＴ）３が追加されている。ここではネットワークインタフェース数、即ちリンク数は１本（Ｌｉｎｋ１）を想定し、特願２００８−３７６９２と同様な最適化処理を実施するものとする。以下、図２に基づきｉＳＣＳＩ（Ｒｅａｄ）の場合を例に動作を説明する。
【００３２】
まず、図２中の矢印ａに示すように、ファイルサーバ内の上位層（読み出し要求のコマンドキュー）からｉＳＣＳＩ（Ｒｅａｄ）コマンドが発行されと、矢印ｂに示すように、該コマンドがｉＳＣＳＩ層に機能追加するコネクション振分機能部４に送られる。
【００３３】
このコネクション振分機能部４では、上位層から届いたｉＳＣＳＩ（Ｒｅａｄ）コマンドのＴＣＰコネクションへの振分処理を行う。ここではまず、ｉＳＣＳＩ（Ｒｅａｄ）コマンドを、矢印ｃに示すように、特定のＴＣＰコネクションを通して送信する。つぎに、矢印ｄに示すように、ｉＳＣＳＩ（Ｒｅａｄ）コマンドを、別のＴＣＰコネクションを通して送信する。
【００３４】
それぞれのｉＳＣＳＩ（Ｒｅａｄ）要求の結果、受信バッファ５には、ｉＳＣＳＩターゲット２から受信した「Ｒｅａｄ  Ｄａｔａ」が蓄積される。この受信バッファ５の「Ｒｅａｄ  Ｄａｔａ」をスループット値に換算する。ここでは「Ｒｅａｄ  Ｄａｔａ」のデータ量と転送時間からスループット値を算出する。換算したスループット値を、矢印ｅに示すように、ｉＳＣＳＩイニシエータ１に組み込んだ振分制御部３にＴＣＰ多重度制御信号として通知する。
【００３５】
そして、振分制御部３は、前述までの過程を繰り返したスループット値の履歴に対して内蔵アルゴリズムの処理を適用する。すなわち、黄金探索法を適用して絞り込んで、スループット値が最大となるＴＣＰコネクション数（多重度数）の修正値（最大値）を抽出する。ここでは主に非特許文献８の手法が用いられる。非特許文献８は、ｉＳＣＳＩではなく、ＧｒｉｄＦＴＰという別の技術に黄金探索法が用いられている。
【００３６】
ここで抽出した修正値を、矢印ｆに示すように、コネクション振分機能部４の処理に反映させる。このような処理により使用するリンク数が１本の場合にＴＣＰコネクション数の最適値が探索される。
【００３７】
≪複数リンクを利用する場合≫
図３は、本発明の実施形態に係る制御構成Ｓ２を示し、複数リンクが利用可能な場合のＴＣＰコネクション数の最適化手法を示している。ここでは複数リンクが異なる利用開始時刻で予約可能であれば、各リンクに対してスループットを最大化するＴＣＰコネクション数を決定する際に、２本目以降のリンクに対する最適なＴＣＰコネクション数を高速に探索する。
【００３８】
すなわち、前記制御構成Ｓ１は、１本のリンクの使用を想定しているため、利用開始時間の異なる複数のリンクそれぞれに対して、ＴＣＰコネクション数の最適化を行うためにはリンク毎に２０〜４０秒程度の収束時間が必要となる。
【００３９】
その際に、同一イニシエータとターゲット間のリンクであれば、遅延量が大きく異なる確率は小さい場合が多く、各リンク間の帯域差が大きくなれば、以前に確立したＴＣＰコネクション数が、新たなリンクにおけるＴＣＰコネクション数に確率的に近いと考えられる。
【００４０】
このような考え方に基づき前記制御構成Ｓ１を改善し、２本目以降のリンクに対してＴＣＰコネクション数の最適値探索時間を短縮するために最初にチューニングしたＴＣＰコネクション数を、以降のチューニングの起点として用いることで探索時間の圧縮を行う。これによりトータルのデータ転送量の増大あるいはデータ転送時間の短縮が実現される。
【００４１】
具体的には、前記制御構成Ｓ２では、Ｌｉｎｋ２（２番目のネットワークインタフェース）の起動を検知する監視制御部６が組み込まれている。この監視制御部６は、Ｌｉｎｋ１（１番目のネットワークインタフェース）で運用するＴＣＰコネクション数Ｎを、Ｌｉｎｋ２のＴＣＰコネクション数の初期値としてｉＳＣＳＩ接続を確立させている。以下、前記制御構成Ｓ２の全体的な処理プロセスを説明する。ここではＬｉｎｋ１に対するＴＣＰコネクション数の最適化処理完了後にＬｉｎｋ２が追加される状況とし、各Ｌｉｎｋ１．２の利用開始時間は相違しているものとする。
（１）Ｌｉｎｋ１の最適化
まず、Ｌｉｎｋ１が、矢印Ａに示すように、利用開始時刻に起動すると、該Ｌｉｎｋ１の起動を検知して、ｉＳＣＳＩ／ＴＣＰ接続が確立される。その際のＴＣＰコネクション数は、ｉＳＣＳＩイニシエータ１とｉＳＣＳＩターゲットとの間でのネゴシエーションにおける最大値が初期値に選択される。ただし、実際のコネクション利用は最大値で運用されるとは限らない。
【００４２】
そして、ファイルサーバ内の上位層（読み出し要求のキュー）から発行されるｉＳＣＳＩ（Ｒｅａｄ）コマンドが、矢印Ｂに示すように、コネクション振分機能部４に発行されると、該振分機能部４によってｉＳＣＳＩ（Ｒｅａｄ）コマンドがＴＣＰコネクションに振り分けられる。通常は、どのＬｉｎｋを使用しているかに関係なく、ラウンドロビン方式で均等に振り分けられることが多い。ここで振り分けられたｉＳＣＳＩ（Ｒｅａｄ）コマンドを、矢印Ｃに示すように、特定のＴＣＰコネクションを通じて送信する。また、ｉＳＣＳＩ（Ｒｅａｄ）コマンドを、矢印Ｄに示すように、別のＴＣＰコネクションを通じて送信する。
【００４３】
それぞれのｉＳＣＳＩ（Ｒｅａｄ）要求の結果、受信バッファ５ａに蓄積された「Ｒｅａｄ  Ｄａｔａ」をスループット値に換算し、矢印Ｅに示すように、ＴＣＰ多重度数制御信号として振分制御部３に通知する。
【００４４】
振分制御部３は、スループットの履歴に対して内蔵アルゴリズムの処理を実施する。すなわち、スループット値の履歴からＴＣＰコネクション数の修正値（最大値）を探索し、矢印Ｆに示すように、コネクション振分機能部４の処理に反映させる（「ｉＳＣＳＩ  Ｒｅａｄ」コマンドを送り込むコネクションを制限する）。
【００４５】
この結果、Ｌｉｎｋ１を通したｉＳＣＳＩスループットを最適化したＴＣＰコネクション数Ｎによって運用が行われる。ここでは以降、Ｌｉｎｋ１に対してＴＣＰコネクション数の修正を行わずに運用を継続する。
（２）Ｌｉｎｋ２の最適化
つぎに、Ｌｉｎｋ２が、矢印Ｇに示すように、利用開始時刻に起動すると、矢印Ｈに示すように、監視制御部６がＬｉｎｋ１の起動を検知する。このとき監視制御部６は、Ｌｉｎｋ１で運用しているＴＣＰコネクション数Ｎを監視し、Ｌｉｎｋ２を通してｉＳＣＳＩ／ＴＣＰ接続を確立するための初期のＴＣＰコネクション数として、矢印Ｉに示すように、Ｌｉｎｋ１で運用しているＴＣＰコネクション数Ｎを用いる。
【００４６】
したがって、Ｌｉｎｋ２は、Ｎ本のＴＣＰコネクション数をもってｉＳＣＳＩ／ＴＣＰ接続が確立される。これによりＴＣＰコネクション毎にｉＳＣＳＩ（Ｒｅａｄ）コマンドが送信され、Ｌｉｎｋ２を通して受信した「Ｒｅａｄ  Ｄａｔａ」が受信バッファ５ｂに蓄積される。この受信バッファ５ｂに蓄積された「Ｒｅａｄ  Ｄａｔａ」をスループット値に換算し、矢印Ｊに示すように、ＴＣＰ多重度信号として振分制御部３に通知する。
【００４７】
振分制御部３では、Ｌｉｎｋ１とＬｉｎｋ２それぞれのデータ蓄積の変動量（スループット）の大小からＬｉｎｋ２の帯域がＬｉｎｋ１に比較して大きいか小さいかを判断し、またＬｉｎｋ２のスループットの履歴から最適なＴＣＰコネクション数を探索（内蔵アルゴリズムの処理を実施）したうえで、矢印Ｋに示すように、コネクション振分制御部３の振分処理に反映させる。
【００４８】
すなわち、コネクション振分機能部４は、振分制御部３の探索したＴＣＰコネクション数Ｎ’に応じて、矢印Ｌ．Ｍに示すように、ｉＳＣＳＩ（Ｒｅａｄ）コマンドをそれぞれ送信する。これによりＴＣＰコネクション数Ｎ’の下、Ｌｉｎｋ２を通して受信した「Ｒｅａｄ  Ｄａｔａ」が受信バッファ５ｂに蓄積される。この受信バッファ５ｂに蓄積された「Ｒｅａｄ  Ｄａｔａ」をスループット値に換算し、矢印Ｏに示すように、ＴＣＰ多重度信号として振分制御部３に再度通知する。
【００４９】
そして、振分制御部３では、Ｌｉｎｋ２のスループット値の履歴からＴＣＰコネクション数を再度修正（内蔵アルゴリズムの処理を再実施）し、矢印Ｐに示すように、コネクション振分機能部４の振分処理に反映させる。これによりＬｉｎｋ２を通したスループット値を最適化するＴＣＰコネクション数（多重度）Ｎ’’が探索され、以後は当該ＴＣＰコネクション数で運用を継続する。
≪Ｌｉｎｋ２起動時の調整原理≫
図４（ａ）は、図３中のＬｉｎｋ１の利用予約状況を示し、図４（ｂ）は図３中のＬｉｎｋ２の利用予約状況を示し、Ｌｉｎｋ１の利用開始時刻はｔ１と示され、Ｌｉｎｋ２の利用開始時刻はｔ２と示されている。ここでは「ｔ１＜ｔ２」が成立するため、Ｌｉｎｋ１はＬｉｎｋ２よりも早く利用が開始される。
【００５０】
また、図４（ａ）（ｂ）によれば、Ｌｉｎｋ１．２は、共に予約した帯域幅は同一（ｂｗ１）と示されていることから、Ｌｉｎｋ１で最適化（スループットが最大化）されたＴＣＰコネクション数Ｎは、Ｌｉｎｋ２のＴＣＰコネクション数の最適値に近いものと推定される。
【００５１】
このとき制御構成Ｓ２は、Ｌｉｎｋ１のＴＣＰコネクション数ＮをＬｉｎｋ２のＴＣＰコネクション数を初期値、即ちＴＣＰコネクション数の調整の起点とするため、該起点を利用できない時に比べて、制御構成Ｓ１におけるリンクごとの収束時間（２０秒〜４０秒程度）が短縮される。
【００５２】
図５は、Ｌｉｎｋ２起動時の初期値の調整原理を示している。ここでは図４（ａ）（ｂ）の予約状況の下で、Ｌｉｎｋ２の遅延量がＬｉｎｋ１に比べて大きいか小さいかににより、Ａ点→Ａ´もしくはＢ点→Ｂ´のスループット変動が示されている。このスループット変動からＬｉｎｋ２を通したデータ転送の実行帯域（Ｂａｎｄｗｉｄｔｈ）は、Ｌｉｎｋ１の運用時と比較してその到着したデータの変動量の大小が判断可能となり、ＴＣＰコネクション数が調整される。すなわち、ＴＣＰコネクション数を最適値に調整するためには、Ａ点→Ａ´点の変動の場合にはＮ１→Ｎ２に探索を実施すればよく、またＢ点→Ｂ´の変動の場合にＮ２→Ｎ１に探索を実施すればよい。
【００５３】
このように予約利用される複数リンクの予約帯域に大きな差が無い場合には、リンク毎にスループットを最大化するＴＣＰコネクション数の決定に要する時間が短縮され、データ転送を効率化することが可能となる。
【００５４】
なお、本発明は、上記実施形態に限定されるものではなく、例えばｉＳＣＳＩ（Ｒｅａｄ）コマンドだけではなく、ｉＳＣＳＩ（Ｗｒｉｔｅ）コマンドの場合も同様の効果が得られる。また、本発明は、振分制御部３・監視制御部６を含んだ制御構成Ｓ２として、コンピュータを機能させるプログラムとしても構成することができる。この場合には、該プログラムをコンピュータの処理部（例えばＣＰＵなど）が読み込んで図３中の各動作処理が実行される。
【００５５】
このプログラムは、Ｗｅｂサイトや電子メールなどネットワークを通じて提供することができる。また、前記プログラムは、ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＭＯ，ＨＤＤ，Ｂｌｕ−ｒａｙ  Ｄｉｓｋ（登録商標）などの記録媒体に記録して、保存・配布することも可能である。この記録媒体は、記録媒体駆動装置を利用して読み出され、そのプログラムコード自体が前記実施形態の処理を実現するので、該記録媒体も本発明を構成する。
【産業上の利用可能性】
【００５６】
現在、企業等を中心に災害対策のための大容量データバックアップ需要が高まっており、シンプルで経済的なシステムの実現に対する期待が大きい。本発明によるＴＣＰコネクション数のスループットに対する最適化手法は、インターネット標準規格であり、すでに市販のストレージ装置が普及を始めているｉＳＣＳＩ技術に対する改良技術である。
【００５７】
特に、今後進展が見込める帯域予約可能なネットワークサービスの利用を想定しているため、両者の連携により高速大容量データ転送を行う場合の運用（パラメータ設定）の自動化、転送時間の短縮によるネットワーク利用効率の改善等に効果を発揮する。
【符号の説明】
【００５８】
１…ｉＳＣＳＩイニシエータ
２…ｉＳＣＳＩターゲット
３…振分制御部
４…コネクション振分機能部
５．５ａ．５ｂ…受信バッファ
６…監視制御部
【図１】
2010283780.tif 000003
【図２】
2010283780.tif 000004
【図３】
2010283780.tif 000005
【図４】
2010283780.tif 000006
【図５】
2010283780.tif 000007