説明

動的フローレットスケジューリングシステムおよび方法

【課題】 動的フローレットスケジューリングシステムおよび動的フローレットスケジューリング方法を提供する。
【解決手段】 ホストは、データセンターのフロースケジューラに対し、特定フロー用として予約された帯域幅を申請する。フロースケジューラは、当該特定フローが通過しうるすべてのパスの帯域幅の使用状況をチェックする。これらのパスの残余帯域幅の合計が、当該特定フローの帯域幅要求を満たす場合、このフローは1つ以上のフローレットに分割された後、対応するパスに転送される。これらのパスの残余帯域幅の合計が、当該特定フローの帯域幅要求を満たさない場合には、当該特定フローを転送するための余地を作るために、これらのパス上の既存のフローが他のパスに移動される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データセンターネットワークの分野に関し、特に、動的フローレットスケジューリングのためのシステムおよび方法に関する。
【背景技術】
【0002】
インターネットや、クラウドコンピューティングサービス等のアプリケーションの発達に伴って、データセンターの規模はますます増大しており、今や数万〜数十万台のサーバおよびスイッチを備えていることも珍しくない。加えて、データセンターは多種多様なアプリケーションを同時にサポートするのが一般的であり、これらのアプリケーションにはデータセンター内の異なるサーバ間で大量なデータ通信を必要とするものも含まれる。こうしたデータセンターの拡大とアプリケーションの発達により、データセンターのネットワークアーキテクチャに新たな課題が生じている。
【0003】
一般に、スイッチのポート数には限りがあるため、データセンターは複数ルートのツリートポロジ形式となっている。図1に、ホスト間通信用として複数の任意パスを提供する、複数ルートのツリートポロジを示す。このトポロジには複数の任意パスが存在するので、高度に集約された帯域幅を実現するために、これらのパス間のフローを動的にスケジューリングする方法を確立することが重要な課題となる。
【0004】
現在、フローのスケジューリングにおいて最も一般的に使用されているメカニズムは、等価コストマルチパス(ECMP:Equal Cost Multipath)スキームである。1つの宛先ホストが与えられると、スイッチは当該ホストに関して複数の転送用任意パスが確立されるように構成される。スイッチにパケットが着信すると、スイッチはパケットのヘッダ内の特定フィールドに対してハッシュ演算を実行し、続いて任意パスの総数に関するモジュロ演算を実行して最終的に選択されるパスを決定し、そのパスを介してパケットを転送する。ハッシュアルゴリズムは、複数の任意パスの間でデータトラフィックを無作為に分散して負荷バランスを確保する。
【0005】
ただし、ECMPは静的なマッピングスキームなので、同じフローのすべてのパケットが常に1つの特定のパスにマッピングされる。さらに、ECMPによれば、ネットワークの使用状況やフローサイズは無視され、ハッシュ演算の結果だけに基づいて転送用パスが選択される。このような方法であれば、状況によっては、複数の大量フローに対して同じパスが選択される可能性がある。これが発生すると、ネットワーク内にボトルネックが生じて、ネットワーク全体の使用率が低下する。図2に2種類のフロー衝突を示す。図2を見ると、スイッチAgg0でハッシュ衝突が発生したために、フローAとフローBに対して同じパスが選択されている。加えて、スイッチAgg1およびAgg2からそれぞれ別個に転送されたフローCとフローDのパケットが、スイッチCore2で衝突している。図2の各リンクの最大帯域は1Gbpsとすると、衝突のために、全4つのフローは500Mbpsの帯域幅にしか到達できない。ECMよりも優れた、ネットワークリソースの使用状況とフロー状態とに基づいてフローをスケジューリングできる方法があれば、例えばフローAはスイッチCore1にスケジューリングされ、フローDはスイッチCore3にスケジューリングされるので、全4フローの各々が1Gbpsの帯域幅に到達することができる。
【0006】
このように、静的なマッピングスキームであるECMPはネットワークの使用状況とフローサイズのいずれも考慮しないため、衝突が発生し、ネットワーク全体の使用率が低下する結果となる。
【0007】
非特許文献1(“Hedera:Dynamic Flow Scheduling for Data Center Networks(Hedera:データセンターネットワークのための動的フロースケジューリング)”,Mohammad Al−Fares,et al,NSDI 2010)は、データセンターネットワークのための動的フロースケジューリングシステムを提案している。Hederaは、まず、エッジスイッチで大量フローを検出する。次に、大量フローによる帯域幅要求を予想し、これらのフローのための最良のパスを計算する。最後に、計算されたパスがスイッチ上にインストールされる。
【0008】
図3はHederaシステムの構造図である。図3に示すように、Hederaは「ファットツリー」ネットワークトポロジに基づき設計および実装されたフロースケジューリングシステムである(非特許文献2(“A scalable,Commodity Data Center Network Architecture(スケーラブルなコモディティデータセンターネットワークアーキテクチャ)”,Mohammad Al−Fares,et al,SIGCOMM 2008)を参照)。ファットツリー内のスイッチは、エッジ層、集約層、コア層(下から上)に編成される。3つの異なる層のすべてのスイッチは同じであり、各々k個のポートを備えている。図3は、k=4のファットツリートポロジを示す。ファットツリーはk個のポッドに分割されており、これはエッジ層と集約層にあるk個の点線枠で示されている。k個の点線枠の各々に囲まれたk個のスイッチが、1つのポッドを構成する。ファットツリートポロジでは、各々k個のポートを有する5k/4個のスイッチによって、k/4個のホストをサポートすることができる。各スイッチではOpenFlowが稼働している。OpenFlowコントローラは、各スイッチ内の転送テーブルにアクセスして、転送テーブル内のフローエントリに対してクエリ、挿入、修正等の操作を実行することができる。フロースケジューラは、現在のネットワーク状態に基づいて、衝突が発生しないパスにフローをスケジューリングする。OpenFlowコントローラとフロースケジューラは、論理的に中央化された中央管理装置上で稼働する。
【0009】
図4はHederaシステム40のブロック図である。図4に示すように、Hederaシステム40はスイッチ410と中央管理装置420で構成される。
【0010】
スイッチ410は、転送テーブル4110と、パケット転送手段4120と、フロー統計報告手段4130とを備える。転送テーブル4110は、フローと送信ポート間のマッピングを保持する。パケット転送手段4120は、転送テーブル4110に保持されるマッピングに基づいてパケットを転送する。フロー統計報告手段4130はトラフィック統計を生成し、その統計を中央管理装置420に定期的(例:5秒間隔)に報告する。
【0011】
中央管理装置420は、スイッチコントローラ4210と、フロースケジューリング手段4220と、フロー要求予想手段4230と、フロー要求テーブル4240と、フロー統計収集手段4250とを備える。フロー統計収集手段4250は、各スケジューリング期間(例:5秒間)にフロー統計報告手段4130からトラフィック統計を受信し、大量フローを検出する。フロー要求テーブル4240は、全ホストに関するフロー要求行列を保持する。フロー要求予想手段4230は、トラフィック統計を使ってフローの帯域幅要求を予想する。フロースケジューリング手段4220は、大量フローに、すべての任意パスから適切なパスを選んで割り当てる。スイッチコントローラ4210は、フロースケジューリング手段4220から受け取ったスケジューリング結果に基づいて、対応するスイッチ内に転送エントリを作成し、大量フローが新たに選択されたパスに転送されるようにする。
【0012】
具体的に述べると、新たなフローが開始したときにスイッチ410がとるデフォルトの振る舞いは、フローのハッシュ値(ECMPに関連して説明済み)に基づいて等価コストパスの1つを選択することである。スイッチ410はこのパスに沿ってフローを転送し、フローのトラフィック量が事前に決定されたしきい値を超えるまでこれを継続する。しきい値としては、例えば100 Mbps(1GigEリンクの帯域幅の10%)が考えられる。フロー統計収集手段4250は、各スケジューリング期間中に、大量フローを検出するためにエッジスイッチからトラフィック統計を1度取得する。その後、フロー要求予想手段4230が大量フローの帯域幅要求を予想する。次に、フロースケジューリング手段4220が、大量フローの帯域幅要求に基づいて、大量フローに適切なパスを計算する。最後に、スイッチコントローラ4210が、転送エントリを修正することにより対応するスイッチ上にパスをインストールし、大量フローはこの新たに選択されたパスに転送されるようになる。
【0013】
すべての大量フローの現在のトラフィック統計は、N×N行列M(Nはホスト数)を保持するフロー要求予想手段4230に入力される。行列Mの第i行第j列の要素M(i,j)には、ホストiからホストjへのフローの予想要求が保持される。フロー要求予想手段4230は、送信元ホストにおいてフローの帯域幅要求を増大させ、かつ宛先ホストの帯域幅限界に基づいてフロー帯域幅を超過分だけ減少させる作業を繰り返し実行し、すべてのフローの帯域幅要求が満たされるまでこれを継続する。
【0014】
大量フローの帯域幅要求が予想された後、フロースケジューリング手段4220は、帯域幅要求に基づいて大量フローに適切なパスを計算する。非特許文献1では、2つのスケジューリングアルゴリズムが使用されている。第1のスケジューリングアルゴリズムは「Global First Fit」と呼ばれるもので、新たな大量フロー検出されると、スケジューラがすべての任意パスを直線的に検索し、そのフローの帯域幅要求をすべて収容可能なリンクを有するパスを発見して、その発見されたパスをスケジューリング結果として選択する。第2のスケジューリングアルゴリズムは「Simulated Annealing」と呼ばれ、状態空間を検索してほぼ最適な解決法を発見する汎用の確率的アルゴリズムである。Hederaシステム40は、検索空間内の状態数を削減するため、各フローに1つのコアスイッチを割り当てるのではなく、各宛先ホストに1つのコアスイッチを割り当てる。
【先行技術文献】
【非特許文献】
【0015】
【非特許文献1】“Hedera:Dynamic Flow Scheduling for Data Center Networks(Hedera:データセンターネットワークのための動的フロースケジューリング)”,Mohammad Al−Fares,et al,NSDI 2010
【非特許文献2】“A scalable,Commodity Data Center Network Architecture(スケーラブルなコモディティデータセンターネットワークアーキテクチャ)”,Mohammad Al−Fares,et al,SIGCOMM 2008
【発明の概要】
【発明が解決しようとする課題】
【0016】
ただし、Hederaシステムで使用されるスケジューリングメカニズムは、以下の欠点を有する。第1に、フローの実際の帯域幅要求はエッジスイッチで測定されたトラフィック統計から予想されるが、この統計は時にアプリケーションの実際の帯域幅要求を正確に反映していないため、実際のフローの帯域幅要求を正確かつ時宜を得て取得することができない。また、スケジューリングは各スケジューリング期間(例:5秒間)に1度しか実行されないため、1つのスケジューリング期間中にトラフィック状態が大幅に変動したという可能性が常に残る。第2に、フローの粒度に基づくスケジューリングは、状況によっては、バランスのとれたネットワーク使用と高度に集約されたネットワーク帯域幅を達成するのには不十分である。
【0017】
上記の問題に対処するため、本発明は、データセンターネットワークのための動的フローレットスケジューリングシステムを提供する。ホストは、データセンターのフロースケジューラに対し、特定フロー用として予約された帯域幅を申請する。フロースケジューラは、当該特定フローが通過しうるすべてのパスの帯域幅の使用状況をチェックする。これらのパスの残余帯域幅の合計が、当該特定フローの帯域幅要求を満たす場合、このフローは1つ以上のフローレットに分割された後、対応するパスに転送される。これらのパスの残余帯域幅の合計が、当該特定フローの帯域幅要求を満たさない場合には、当該特定フローを転送するための余地を作るために、これらのパス上の既存のフローが他のパスに移動される。
【課題を解決するための手段】
【0018】
本発明の第1の態様によれば、中央管理装置であって、送信元ホストからの特定フローの帯域幅要求を収集するように構成された帯域幅要求収集手段と、リンクの帯域幅使用状況とホストペアの任意パスとを記憶するように構成された記憶手段と、現在のリンクの帯域幅使用状況に基づいて、当該特定フローの任意パスから1つ以上のパスを当該特定フロー用として割り当て、割り当てられたパスを送信元ホストに返し、かつ送信元ホストからフローレット情報を受信するように構成されたフロースケジューリング手段と、フロースケジューリング手段のスケジューリング結果に基づいて、対応するスイッチを設定するように構成されたスイッチコントローラとを備える、中央管理装置が提供される。
【0019】
フロースケジューリング手段は、当該特定フローの任意パスにおけるアイドル帯域幅の合計を計算し、当該特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合、当該特定フローの任意パスから1つ以上のパスを当該特定フロー用として割り当てるように構成されるのが望ましい。
【0020】
フロースケジューリング手段はさらに、当該特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合、当該特定フローの任意パスをアイドル帯域幅の多い順に並び替え、選択したパスのアイドル帯域幅の合計が前記特定フローの帯域幅要求と同じかそれ以上になるまで、前記並び替えられた任意パスからパスを順に選択するように構成されるのが望ましい。
【0021】
フロースケジューリング手段はさらに、当該特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求を下回る場合、当該特定フローの任意パスを通過する他のフローを検出して、当該他のフローの任意パスにおけるアイドル帯域幅の合計を計算し、当該他のフローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合、当該他のフローを再スケジュールして、当該特定フローの任意パスから1つ以上のパスを当該特定フロー用として割り当てるように構成されるのが望ましい。
【0022】
フロースケジューリング手段はさらに、当該他のフローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合、当該他のフローをその任意パスにおけるアイドル帯域幅合計の多い順に並び替えて、並び替えられたフローから1つのフローを順に選択し、当該特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上になるまで、選択したフローを再スケジュールするように構成されるのが望ましい。
【0023】
フロースケジューリング手段はさらに、当該他のフローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求を下回る場合には、当該他のフローをそのアイドルパスへ再スケジュールして、当該特定フローの任意パスにおけるアイドル帯域幅を、当該特定フローと、マキシミン公正原理に基づいた再スケジュール後にもまだ当該特定フローの任意パスを通過する残余フローとに割り当てるように構成されるのが望ましい。
【0024】
フロースケジューリング手段はさらに、送信元ホストから受信されたフローレット情報を宛先ホストへ送信するように構成されるのが望ましい。
【0025】
記憶手段はさらに、フローレット情報を記憶するように構成されるのが望ましい。
【0026】
フローレット情報はフローレットのポート番号を含むのが望ましい。
【0027】
本発明の他の態様によれば、フロースケジューリング方法であって、送信元ホストからの特定フローの帯域幅要求を収集するステップと、現在のリンクの帯域幅使用状況に基づいて、当該特定フローの任意パスから1つ以上のパスを当該特定フロー用として割り当てるステップと、割り当てられたパスを送信元ホストに返すステップと、送信元ホストからフローレット情報を受信するステップと、スケジューリング結果に基づいて対応するスイッチを構成するステップとを備えるのが望ましい。
【0028】
割り当てステップは、当該特定フローの任意パスにおけるアイドル帯域幅の合計を計算するステップと、当該特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合には、当該特定フローの任意パスから1つ以上のパスを当該特定フロー用として割り当てるステップとを備えるのが望ましい。
【0029】
当該特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合には、当該特定フローの任意パスがアイドル帯域幅の多い順に並び替えられて、並び替えられた任意パスから1つのパスが選択され、選択されたパスのアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上になるまでこれが継続されるのが望ましい。
【0030】
当該特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求を下回る場合には、当該特定フローの任意パスを通過するフローが検出されて、当該他のフローの任意パスにおけるアイドル帯域幅の合計が計算され、当該他のフローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合には、当該他のフローが再スケジュールされて、当該特定フローの任意パスから1つ以上のパスが当該特定フロー用として割り当てられるのが望ましい。
【0031】
当該他のフローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合には、当該他のフローをその任意パスにおけるアイドル帯域幅合計の多い順に並び替えて、並び替えられたフローから1つのフローが順に選択され、そのフローが再スケジュールされ、当該特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上になるまでこれが継続されるのが望ましい。
【0032】
当該他のフローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求を下回る場合には、当該他のフローがそのアイドルパスへ再スケジュールされて、当該特定フローの任意パスにおけるアイドル帯域幅が、当該特定フローと、マキシミン公正原理に基づいた再スケジュール後にもまだ当該特定フローの任意パスを通過する残余フローとに割り当てられるのが望ましい。
【0033】
この方法は、送信元ホストから受信されたフローレット情報を宛先ホストへ送信するステップをさらに備えるのが望ましい。
【0034】
フローレット情報はフローレットのポート番号を含むのが望ましい。
【0035】
本発明の他の態様によれば、ホストであって、中央管理装置に特定フロー用の帯域幅を申請するように構成された帯域幅予約手段と、中央管理装置から返されたスケジューリング結果に基づいて、当該特定フローを1つ以上のフローレット(分流:flowlet)に分割し、中央管理装置によって割り当てられたパス上で1つ以上のフローレットを転送するための対応する接続を確立するように構成されたフロー制御手段とを備えるホストが提供される。
【0036】
このホストは、1つ以上のフローレットを介して受信されたデータを再構築するように構成されたデータ再構築手段をさらに備えるのが望ましい。
【0037】
フロー制御手段は、フローレットを変更するコマンドが中央管理装置から受信された場合には、対応する接続を調整するように構成されるのが望ましい。
【発明の効果】
【0038】
本発明の動的フローレットスケジューリングシステムおよび動的フローレットスケジューリング方法を使用することにより、フローの実際の帯域幅要求を正確かつ時宜を得て取得でき、かつ、スケジューリングをフローよりも細かい粒度に基づいて(すなわち、フローレットの粒度に基づいて)実行することができる。そのため、本発明の動的フローレットスケジューリングシステムおよび動的フローレットスケジューリング方法は、データセンターネットワーク全体のネットワーク使用率のバランスをとり、さらには、データセンターネットワーク全体の集約帯域幅を増大させることが可能となる。
【図面の簡単な説明】
【0039】
本発明の上記および他の特徴は、詳細な説明と添付図面を併せて参照することでより明らかとなるであろう。
【0040】
【図1】従来技術における複数ルートのツリートポロジを示す概略図である。
【図2】従来技術における2種類のフロー衝突を示す概略図である。
【図3】従来技術におけるHederaシステムを示す概略図である。
【図4】従来技術におけるHederaシステムを示すブロック図である。
【図5】本発明の一実施例による動的フローレットスケジューリングシステムを示すブロック図である。
【図6】本発明の一実施例による動的フローレットスケジューリングシステムの動作を示すフローチャートである。
【図7】本発明の一実施例によるフロースケジューリングアルゴリズムを示すフローチャートである。
【図8】本発明の他の実施例による動的フローレットスケジューリングシステムを示すブロック図である。
【図9】本発明の他の実施例による動的フローレットスケジューリングシステムの動作を示すフローチャートである。
【発明を実施するための形態】
【0041】
以下では、本発明の原理および実施がより明らかとなるように、添付図面を参照して本発明による特定の実施例を説明する。本発明は以下で説明する特定の実施例に限定されないことに留意されたい。煩雑化を避けるため、本発明に直接関係しないよく知られた技術の詳細な説明は省略する。
【0042】
図5は、本発明の一実施例による動的フローレットスケジューリングシステム50を示すブロック図である。図5に示すように、動的フローレットスケジューリングシステム50は、ホスト510、中央管理装置520、スイッチ530という3種類のノードで構成される。
【0043】
スイッチ530は、転送テーブル5310とパケット転送手段5320とを備える。転送テーブル5310は、フローと送信ポート間のマッピングを保持する。パケット転送手段5320は、転送テーブル5310に保持されるマッピングに基づいてパケットを転送する。
【0044】
ホスト510は、フロー制御手段5110と帯域幅予約手段5120とを備える。帯域幅予約手段5120は、中央管理装置520に対し、特定フロー用として予約された帯域幅を申請する。フロー制御手段5110は、中央管理装置520からのスケジューリング結果に基づいて、当該特定フローを1つ以上のフローレットに分割し、当該フローレットを各々のパス上で転送する。
【0045】
中央管理装置520は、スイッチコントローラ5210と、フロースケジューリング手段5220と、帯域幅使用状況・パス情報テーブル記憶手段5230と、帯域幅要求収集手段5240とを備える。帯域幅要求収集手段5240は、ホスト510からフローの帯域幅要求を収集する。帯域幅使用状況・パス情報テーブル記憶手段5230は、すべてのリンクの帯域幅使用状況と、各ホストペアのすべての任意パスとを記憶する。フロースケジューリング手段5220は、ネットワークリンクの現在の帯域幅使用状況に基づいて、特定フロー用のすべての任意パスから1つ以上の適切なパスを割り当てる。スイッチコントローラ5210は、当該特定フローを転送するために、フロースケジューリング手段5220から受け取ったスケジューリング結果に基づいて、対応するスイッチ内に転送エントリを作成する。
【0046】
次に、図5に示す動的フローレットスケジューリングシステム50の動作について、図6を参照しながら詳細に説明する。
【0047】
図6は、本発明の一実施例による動的フローレットスケジューリングシステム50の動作を示すフローチャートである。図6においては、ホストA、ホストB、ホストCの各々は図5に示すホスト510を使用して実施し、中央管理装置は図5に示す中央管理装置520を使用して実施し、スイッチは図5に示すスイッチ530を使用して実施することができる。具体的な動作は以下のとおりである。
【0048】
1.1:送信元ホストA上で、ある特定のアプリケーションが帯域幅予約手段に対し、このアプリケーションに対応するフローの帯域幅要求を通知する。
1.2:送信元ホストAの帯域幅予約手段が、中央管理装置に対し帯域幅の予約を申請する。
1.3:中央管理装置のフロースケジューリング手段が、スケジューリングアルゴリズム(後述する)に基づいて、フロースケジューリングを実行する(すなわち、すべての任意パスからの1つ以上のパスを当該特定フロー用に割り当てる)。
1.4:中央管理装置が、帯域幅の予約を申請した送信元ホストAに、割り当てられたパスと、各パスの予約された帯域幅とを返す。
1.5:送信元ホストAのフロー制御手段が、スケジューリング結果に基づいて、当該特定フローを1つ以上のフローレットに分割する。
1.6:送信元ホストAが、中央管理装置にフローレット情報(フローレットが使用するポート番号等)を報告する。
1.7:中央管理装置のスイッチコントローラが、対応するスイッチ内に転送エントリを作成して、対応するスイッチが新たに選択されたパスを介してフローレットを転送するようにする。
1.8:中央管理装置は、状況に応じて、当該特定フローの帯域幅予約に対応するための余地を作るために、他のホスト(例:ホストC)に対しいくつかの既存のフローのパスと占有帯域幅を変更するよう指示する。
1.9:このコマンドを受信したホストCは、中央管理装置の指示に従って、当該いくつかの既存のフローのパスと占有帯域幅を変更する。
1.10:送信元ホストAが、各々1つのフローレットに対応する1つ以上の接続を介してデータを送信する。
1.11:宛先ホストBが、当該1つ以上のフローレットを介してデータを受信する。
【0049】
図7は、本発明の一実施例によるフロースケジューリングアルゴリズムを示すフローチャートである。このスケジューリングアルゴリズムは、フロースケジューリングを実行するために、図5に示す中央管理装置520のフロースケジューリング手段5220によって実行されてもよい。
【0050】
まず、ステップS701において、フローFとその帯域幅要求Rが取得される。
【0051】
ステップS702において、フローFのすべての任意パスが検出される。ここでは、各々アイドル帯域幅Ciを有する合計N個のパス{Pi、1<=i<=N}があると想定する。
【0052】
ステップS703において、以下の式を用いて、全N個のパスのアイドル状態帯域幅の合計が計算される。
【数1】

【0053】
次に、ステップS704において、SはR以上か否かが判定される。SがR以上の場合(これは、既存のN個のパスのアイドル帯域幅がフローFの帯域幅要求を満たすことを意味する)には、処理はステップS705に進む。SがR未満の場合(これは、既存のN個のパスのアイドル帯域幅がフローFの帯域幅要求を満たさず、従ってこれらのパスの他のフローは、フローFが流れる余地を作る必要があることを意味する)には、処理はステップS707に進む。
【0054】
がR以上の場合には、ステップS705において、当該特定フローの任意パスPiがそのアイドル帯域幅Ciの多い順に並べ替えられ、これらの並び替えられた任意パスからいくつかのパスPi(この数をMとする)が選択され、条件
【数2】

が満足されるまでこれが繰り返される。次にステップS706において、選択されたM個のパスがフローFに割り当てられ、M個のパスのアイドル帯域幅CiがフローFのために予約される。これでフロースケジューリング処理は終了し、制御が返される。
【0055】
がR未満の場合には、ステップS707において、{Pi,1<=i<=N}を通る他のフロー{Fj,1<=j<=L}(すなわち、フローFと同じパスを共有するフロー)が検出される。既存のN個のパスのアイドル帯域幅ではフローFの帯域幅要求を満たすことができないので、L個のフローのうちいくつかのフローが、フローFの帯域幅要求を満たすための余地を作る必要がある。
【0056】
ステップS708において、各フローFjについて、すべての任意パス{Hjk,1<=k<=Nj}が検出される。ここで、j番目のフローFjはNj個のパスを有し、各パスHjkはアイドル帯域幅Cjkを有する。また、パス{Hjk,1<=k<=Nj,1<=j<=L}においては、合計T個のパスがあり、当該T個のパスの各々はアイドル帯域幅Ctを有すると想定する。異なる複数のフローFjは、各々のパスセットHjk、
【数3】

に共通の要素を有することができる。
【0057】
ステップS709において、T個のパスのアイドル帯域幅の合計
【数4】

と、各フローFjのアイドル帯域幅の合計
【数5】

とが、計算される。
【0058】
ステップS710において、T個のパスのアイドル帯域幅の合計SumがR以上かどうかが判定される。SumがR以上の場合には、フローFが流れる余地を作るためにL個のフローFjが他のパスに再スケジュールされて、フローFの帯域幅要求が満足されるので、プロセスはステップS711に進む。SumがR未満の場合には、L個のフローFjが他のパスに再スケジュールされても、フローFの帯域幅要求は満足されないので、プロセスはステップS712に進む。
【0059】
SumがR以上の場合には、ステップS711において、フローFjはパスSjのアイドル帯域幅の合計が多い順に並び替えられ、いくつかのフローFjが順に選択され、これらのフローがそれぞれのアイドルパスに再スケジュールされ、解放された帯域幅がフローFに割り当てられる。この動作は、SがR以上になるまで繰り返し継続される。前記再スケジュール動作は、既存のフローレットの再分割、集約、および帯域幅変更で構成される。SがR以上になると、プロセスはステップS705に進む。
【0060】
SumがR未満の場合には、ステップS712において、フローFの追加によりフローFのどのパスにもアイドル帯域幅はもうないが、Fjの他のパスにはアイドル帯域幅Sjがある可能性があることを考慮して、Fjがそれぞれのアイドルパスに再スケジュールされ、その帯域幅が使い果たされる。その後、ステップS713において、L個のフローFjを他のパスに再スケジュールしたとしてもフローFの帯域幅要求は満足されないことを考慮して、パス{Pi,1<=i<=N}のアイドル帯域幅が、フローFと、マキシミン公正原理に基づいた再スケジュール後にもまだパス{Pi,1<=i<=N}のいずれかを通過する残余フローとに割り当てられる。このとき、パスPiと、計算された対応する帯域幅が、フローFに割り当てられる。これでフロースケジューリング処理は終了し、制御が返される。
【0061】
フロースケジューリングの終了後、ホスト510のフロー制御手段5110は中央管理装置520から、スケジューリング結果を取得する。この結果には、当該特定フローに割り当てられたパスと、各パスの予約された帯域幅とが含まれる。フロー制御手段5110は、割り当てられたパスに基づいて、当該特定フローを各々1つの割り当てられたパスに対応する1つ以上のフローレットに分割し、その後、各々1つのフローレットに対応する1つ以上の接続を確立する。フロー制御手段5110は、このようにして、異なるパス上の帯域幅予約に基づいて、個々のデータトラフィックを送信する。
【0062】
フロー制御手段5110は、データ送信中に中央管理装置520からある接続に対応するフローを変更するよう求めるコマンドを受信した場合には、その接続を終了して新たな接続を開始することができる。対応するフローの変更では、フローの分割、フローレットの集約、フローレットの予約済み帯域幅の変更といった動作が実行される。
【0063】
これに加えて、フロー制御手段5110はデータ送信中に、上位層アプリケーションのデータトラフィックも制御する。上位層アプリケーションがデータトラフィックを予約された帯域幅よりも高速で送信する場合には、フロー制御手段5110は、上位層アプリケーションのデータをキャッシュして、中央管理装置520によって予約された帯域幅に基づいてそのデータを送信することができる。アプリケーション用として大きな帯域幅が予約されたために、一定時間が経過した後もデータ送信速度が予約された帯域幅に到達しなかった場合には、フロー制御手段5110は中央管理装置520に通知して、リソースの予約を変更するよう求めることができる。
【0064】
アプリケーションが終了すると、フロー制御手段5110は中央管理装置520に通知して、対応するリソースの予約をキャンセルするよう求めることができる。
【0065】
中央管理装置520のフロースケジューリング手段5220は、フロースケジューリング中には、すべてのリンクの帯域幅使用状況と、各ホストペアのすべての任意パスとを把握している必要がある。この理由から、帯域幅使用状況・パス情報テーブル記憶手段5230には、各ホストペアのすべての任意パスを保持するパステーブルと、すべてのフローレットについて、各々が属するフロー、各々が通過するパス、およびこれらのパスの予約された帯域幅を保持する帯域幅使用状況テーブルとが記憶されている。以下の表1および表2は、それぞれ、パステーブルと帯域幅使用テーブルの例を示す。
【表1】


【表2】

【0066】
メディアストリーミング等の一部のアプリケーションでは、受信されたデータをその順序で保持する必要がある。しかし、データはホストで複数のフローレットに分割された後、複数の接続を介して送信されるので、データの順序は保証されない。そのため、受信側のホストは、データの再構築を実行する必要がある。
【0067】
図8は、受信されたデータの再構築を可能にした、本発明の他の実施例による動的フローレットスケジューリングシステムを示すブロック図である。図8に示す動的フローレットスケジューリングシステム80が、図5に示す動的フローレットスケジューリングシステム50と異なる点は、動的フローレットスケジューリングシステム80のホスト810がデータ再構築手段8130をさらに備えることと、中央管理装置820の帯域幅使用状況・パス情報テーブル記憶手段8230が、帯域幅使用状況・パス情報テーブル記憶手段5230とは異なる内容を記憶していることである。具体的には、本実施例においては、データ再構築手段8130は複数フローレットから受信したデータを構築し、帯域幅使用状況・パス情報テーブル記憶手段8230は、すべてのリンクの帯域幅使用状況、および各ホストペアのすべての任意パスだけでなく、ポート番号等のフローレット情報も記憶する。次に、図8に示す動的フローレットスケジューリングシステム80の動作について、図9を参照しながら詳細に説明する。
【0068】
図9は、本発明の一実施例による動的フローレットスケジューリングシステム80の動作を示すフローチャートである。図9においては、ホストA、ホストB、ホストCの各々は図8に示すホスト810を使用して実施し、中央管理装置は図8に示す中央管理装置820を使用して実施し、スイッチは図8に示すスイッチ830を使用して実施することができる。
【0069】
図から分かるように、図9の動作1.1〜1.11は図6のそれと同じなので、ここでは動作1.1〜1.11の詳細な説明は省略する。図6と比較して、図9は、1.12および1.13という2つの動作をさらに備える。
【0070】
宛先ホストBが複数フローレットから受信したデータを再構築して、上位アプリケーションが元の順序でデータを受信できるようにするためには、データ再構築手段はどのフローレットが同じフローに属するかを把握している必要がある。そのため、中央管理装置はフローレット情報を宛先ホストBに提供する(動作1.12)。その後、宛先ホストBは複数フローレットからデータを受信し、中央管理装置から提供されたフローレット情報に基づいて受信したデータを再構築する(動作1.13)。
【0071】
したがって、たとえデータが複数フローレットに分割され、複数の接続を介して送信されたとしても、動的フローレットスケジューリングシステム80は受信したデータの順序を復元して、メディアストリーミング等の特定のアプリケーションの要件を満たすことができる。
【0072】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【0073】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
【0074】
(付記1)
送信元ホストからの特定フローの帯域幅要求を収集するように構成された帯域幅要求収集手段と、
リンクの帯域幅使用状況とホストペアの任意パスとを記憶するように構成された記憶手段と、
現在のリンクの帯域幅使用状況に基づいて、前記特定フローの任意パスから1つ以上のパスを前記特定フロー用として割り当て、割り当てられたパスを送信元ホストに返し、かつ送信元ホストからフローレット情報を受信するように構成されたフロースケジューリング手段と、
前記フロースケジューリング手段のスケジューリング結果に基づいて、対応するスイッチを設定するように構成されたスイッチコントローラと
を備えることを特徴とする中央管理装置。
【0075】
(付記2)
前記フロースケジューリング手段は、前記特定フローの任意パスにおけるアイドル帯域幅の合計を計算し、前記特定フローの任意パスにおけるアイドル帯域幅の合計が前記特定フローの帯域幅要求と同じかそれ以上の場合、前記特定フローの任意パスから1つ以上のパスを前記特定フロー用として割り当てるように構成されることを特徴とする付記1に記載の中央管理装置。
【0076】
(付記3)
前記フロースケジューリング手段は、前記特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合、前記特定フローの任意パスをアイドル帯域幅の多い順に並び替え、選択したパスのアイドル帯域幅の合計が前記特定フローの帯域幅要求と同じかそれ以上になるまで、前記並び替えた任意パスから1つのパスを順に選択するように構成されることを特徴とする付記2に記載の中央管理装置。
【0077】
(付記4)
前記フロースケジューリング手段は、前記特定フローの任意パスにおけるアイドル帯域幅の合計が前記特定フローの帯域幅要求を下回る場合、前記特定フローの任意パスを通過する他のフローを検出し、当該他のフローの任意パスにおけるアイドル帯域幅の合計を計算し、当該他のフローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合、前記他のフローを再スケジュールして、前記特定フローの任意パスから1つ以上のパスを前記特定フロー用として割り当てるように構成されることを特徴とする付記2に記載の中央管理装置。
【0078】
(付記5)
前記フロースケジューリング手段は、前記他のフローの任意パスにおけるアイドル帯域幅の合計が前記特定フローの帯域幅要求と同じかそれ以上の場合、前記他のフローをその任意パスにおけるアイドル帯域幅合計の多い順に並び替え、並び替えられたフローから1つのフローを順に選択し、当該特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上になるまで、選択したフローを再スケジュールするように構成されることを特徴とする付記4に記載の中央管理装置。
【0079】
(付記6)
前記フロースケジューリング手段は、前記他のフローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求を下回る場合、前記他のフローをそのアイドルパスへ再スケジュールし、前記特定フローの任意パスにおけるアイドル帯域幅を、前記特定フローと、マキシミン公正原理に基づいた再スケジュール後にもまだ前記特定フローの任意パスを通過する残余フローとに割り当てるように構成されることを特徴とする付記4に記載の中央管理装置。
【0080】
(付記7)
前記フロースケジューリング手段は、前記送信元ホストから受信されたフローレット情報を宛先ホストへ送信するように構成されることを特徴とする付記1に記載の中央管理装置。
【0081】
(付記8)
前記記憶手段は、さらに、フローレット情報を記憶するように構成されることを特徴とする付記7に記載の中央管理装置。
【0082】
(付記9)
前記フローレット情報は、フローレットのポート番号を含むことを特徴とする付記7又は付記8に記載の中央管理装置。
【0083】
(付記10)
送信元ホストからの特定フローの帯域幅要求を収集するステップと、
現在のリンクの帯域幅使用状況に基づいて、前記特定フローの任意パスから1つ以上のパスを前記特定フロー用として割り当てるステップと、
割り当てられたパスを送信元ホストに返すステップと、送信元ホストからフローレット情報を受信するステップと、
スケジューリング結果に基づいて対応するスイッチを設定するステップと
を含むことを特徴とするフロースケジューリング方法。
【0084】
(付記11)
前記割り当てステップが、
前記特定フローの任意パスにおけるアイドル帯域幅の合計を計算し、
前記特定フローの任意パスにおけるアイドル帯域幅の合計が前記特定フローの帯域幅要求と同じかそれ以上の場合、当該特定フローの任意パスから1つ以上のパスを前記特定フロー用として割り当てることを特徴とする付記10に記載のフロースケジューリング方法。
【0085】
(付記12)
前記割り当てステップが、
前記特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合、当該特定フローの任意パスがアイドル帯域幅の多い順に並び替え、選択したパスのアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上になるまで、前記並び替えた任意パスから1つのパスを順に選択することを特徴とする付記11に記載のフロースケジューリング方法。
【0086】
(付記13)
前記割り当てステップが、
前記特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求を下回る場合、前記特定フローの任意パスを通過する他のフローを検出し、当該他のフローの任意パスにおけるアイドル帯域幅の合計を計算し、当該他のフローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合、前記他のフローを再スケジュールし、前記特定フローの任意パスから1つ以上のパスを前記特定フロー用として割り当てることを特徴とする付記11に記載のフロースケジューリング方法。
【0087】
(付記14)
前記割り当てステップが、
前記他のフローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合、前記他のフローをその任意パスにおけるアイドル帯域幅合計の多い順に並び替え、並び替えたフローから1つのフローを順に選択し、当該特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上になるまで、選択したフローを再スケジュールすることを特徴とする付記13に記載のフロースケジューリング方法。
【0088】
(付記15)
前記割り当てステップが、
前記他のフローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求を下回る場合、前記他のフローをそのアイドルパスへ再スケジュールし、前記特定フローの任意パスにおけるアイドル帯域幅を、当該特定フローと、マキシミン公正原理に基づいた再スケジュール後にもまだ当該特定フローの任意パスを通過する残余フローとに割り当てることを特徴とする付記13に記載のフロースケジューリング方法。
【0089】
(付記16)
前記送信元ホストから受信されたフローレット情報を宛先ホストへ送信するステップをさらに含むことを特徴とする付記10に記載のフロースケジューリング方法。
【0090】
(付記17)
前記フローレット情報はフローレットのポート番号を含むことを特徴とする付記16に記載のフロースケジューリング方法。
【0091】
(付記18)
中央管理装置に特定フロー用の帯域幅を申請するように構成された帯域幅予約手段と、
前記中央管理装置から返されたスケジューリング結果に基づいて、当該特定フローを1つ以上のフローレットに分割し、中央管理装置によって割り当てられたパス上で1つ以上のフローレットを転送するための対応する接続を確立するように構成されたフロー制御手段と
を備えることを特徴とするホスト。
【0092】
(付記19)
前記フロー制御手段は、フローレットを変更するコマンドを前記中央管理装置から受信した場合、対応する接続を調整するように構成されることを特徴をとする付記18に記載のホスト。
【0093】
(付記20)
1つ以上のフローレットを介して受信されたデータを再構築するように構成されたデータ再構築手段をさらに備えることを特徴とする付記18又は付記19に記載のホスト。
【符号の説明】
【0094】
4110:転送テーブル
4120:パケット転送手段
4130:フロー統計報告手段
4210:スイッチコントローラ
4220:フロースケジューリング手段
4230:フロー要求予想手段
4240:フロー要求テーブル
4250:フロー統計収集手段
5110:フロー制御手段
5120:帯域幅予約手段
5210:スイッチコントローラ
5220:フロースケジューリング手段
5230:帯域幅使用状況・パス情報テーブル
5240:帯域幅要求収集手段
5310:転送テーブル
5320:パケット転送手段
8110:フロー制御手段
8130:データ再構築手段
8120:帯域幅予約手段
8210:スイッチコントローラ
8220:フロースケジューリング手段
8230:帯域幅使用状況・パス情報テーブル記憶手段
8240:帯域幅要求収集手段
8310:転送テーブル
8320:パケット転送手段
830:スイッチ
80:動的フローレットスケジューリングシステム

【特許請求の範囲】
【請求項1】
送信元ホストからの特定フローの帯域幅要求を収集するように構成された帯域幅要求収集手段と、
リンクの帯域幅使用状況とホストペアの任意パスとを記憶するように構成された記憶手段と、
現在のリンクの帯域幅使用状況に基づいて、前記特定フローの任意パスから1つ以上のパスを前記特定フロー用として割り当て、割り当てられたパスを送信元ホストに返し、かつ送信元ホストからフローレット情報を受信するように構成されたフロースケジューリング手段と、
前記フロースケジューリング手段のスケジューリング結果に基づいて、対応するスイッチを設定するように構成されたスイッチコントローラと
を備えることを特徴とする中央管理装置。
【請求項2】
前記フロースケジューリング手段は、前記特定フローの任意パスにおけるアイドル帯域幅の合計を計算し、前記特定フローの任意パスにおけるアイドル帯域幅の合計が前記特定フローの帯域幅要求と同じかそれ以上の場合、前記特定フローの任意パスから1つ以上のパスを前記特定フロー用として割り当てるように構成されることを特徴とする請求項1に記載の中央管理装置。
【請求項3】
前記フロースケジューリング手段は、前記特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合、前記特定フローの任意パスをアイドル帯域幅の多い順に並び替え、選択したパスのアイドル帯域幅の合計が前記特定フローの帯域幅要求と同じかそれ以上になるまで、前記並び替えた任意パスから1つのパスを順に選択するように構成されることを特徴とする請求項2に記載の中央管理装置。
【請求項4】
前記フロースケジューリング手段は、前記特定フローの任意パスにおけるアイドル帯域幅の合計が前記特定フローの帯域幅要求を下回る場合、前記特定フローの任意パスを通過する他のフローを検出し、当該他のフローの任意パスにおけるアイドル帯域幅の合計を計算し、当該他のフローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上の場合、前記他のフローを再スケジュールして、前記特定フローの任意パスから1つ以上のパスを前記特定フロー用として割り当てるように構成されることを特徴とする請求項2に記載の中央管理装置。
【請求項5】
前記フロースケジューリング手段は、前記他のフローの任意パスにおけるアイドル帯域幅の合計が前記特定フローの帯域幅要求と同じかそれ以上の場合、前記他のフローをその任意パスにおけるアイドル帯域幅合計の多い順に並び替え、並び替えられたフローから1つのフローを順に選択し、当該特定フローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求と同じかそれ以上になるまで、選択したフローを再スケジュールするように構成されることを特徴とする請求項4に記載の中央管理装置。
【請求項6】
前記フロースケジューリング手段は、前記他のフローの任意パスにおけるアイドル帯域幅の合計が当該特定フローの帯域幅要求を下回る場合、前記他のフローをそのアイドルパスへ再スケジュールし、前記特定フローの任意パスにおけるアイドル帯域幅を、前記特定フローと、マキシミン公正原理に基づいた再スケジュール後にもまだ前記特定フローの任意パスを通過する残余フローとに割り当てるように構成されることを特徴とする請求項4に記載の中央管理装置。
【請求項7】
前記フロースケジューリング手段は、前記送信元ホストから受信されたフローレット情報を宛先ホストへ送信するように構成されることを特徴とする請求項1に記載の中央管理装置。
【請求項8】
前記記憶手段は、さらに、フローレット情報を記憶するように構成されることを特徴とする請求項7に記載の中央管理装置。
【請求項9】
送信元ホストからの特定フローの帯域幅要求を収集するステップと、
現在のリンクの帯域幅使用状況に基づいて、前記特定フローの任意パスから1つ以上のパスを前記特定フロー用として割り当てるステップと、
割り当てられたパスを送信元ホストに返すステップと、送信元ホストからフローレット情報を受信するステップと、
スケジューリング結果に基づいて対応するスイッチを設定するステップと
を含むことを特徴とするフロースケジューリング方法。
【請求項10】
中央管理装置に特定フロー用の帯域幅を申請するように構成された帯域幅予約手段と、
前記中央管理装置から返されたスケジューリング結果に基づいて、当該特定フローを1つ以上のフローレットに分割し、中央管理装置によって割り当てられたパス上で1つ以上のフローレットを転送するための対応する接続を確立するように構成されたフロー制御手段と
を備えることを特徴とするホスト。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−209928(P2012−209928A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−244242(P2011−244242)
【出願日】平成23年11月8日(2011.11.8)
【出願人】(505418870)エヌイーシー(チャイナ)カンパニー, リミテッド (108)
【氏名又は名称原語表記】NEC(China)Co.,Ltd.
【Fターム(参考)】