以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
本実施形態の情報処理システムは、複数処理ノード及び複数処理ノードを相互接続するネットワークシステムを含む。ネットワークシステムは、複数ネットワークスイッチ、接続可変ネットワーク装置、及び管理装置を含む。複数ネットワークスイッチは、接続可変ネットワーク装置と複数処理ノードとの間において、データを転送する。
管理装置は、ネットワークシステムのリアルタイムな通信トラフィックをモニタリングし、それらの履歴情報を保持する。管理装置は、接続可変ネットワーク装置においてボトルネックリンクを検出すると、当該ボトルネックを通過する一つの通信ルートを選択し、当該通信ルートのためのダイレクトリンクを、接続可変ネットワーク装置において追加する。
ダイレクトリンクは、ボトルネックリンクの送信元ネットワークスイッチと、選択された通信ルートの送信先処理ノードが接続するネットワークスイッチと、を直接に接続するリンクである。選択された通信ルートのデータは、接続可変ネットワーク装置において、当該ダイレクトリンクにより伝送され、ボトルネックリンクを通過しない。
選択された通信ルートの通過リンクを、ボトルネットリンクからダイレクトリンクに切り替えることで、ボトルネックを解消するためのトポロジ変更による波及的ボトルネックリンクの発生を抑制できる。
以下、本実施形態の情報処理システムについて具体的に説明する。図1は、本実施形態の情報処理システム100の構成例を示す。情報処理システム100は、複数の処理サーバ106_1〜106_8と、それらを通信可能に相互接続するネットワークシステムとを含む。ネットワークシステムは、ネットワークスイッチ(NWSW)110_1〜110_5、接続可変ネットワーク装置112、管理サーバ101、及びストレージ111を含む。
処理ノードの一例である処理サーバ106_1〜106_8は、それぞれ計算機である。処理サーバ106_1〜106_8は、アプリケーションプログラムに従って動作し、ネットワークシステムを介して通信を行いながら所定の処理を実行する。処理サーバ106_1〜106_8は、例えば、相互に通信を行いながらシミュレーションを実行する。
管理サーバ101は計算機である。管理サーバ101とストレージ111とが管理装置の一例を構成する。管理装置は、複数の計算機を含んでよく、ストレージと計算機が同一筐体内に含まれていてもよい。
管理サーバ101と処理サーバ106_1〜106_8は、それぞれ対応するNWSW110_1〜110_5に接続されている。本実施形態において、サーバがNWSWに接続されているとの記述は、当該サーバと当該NWSWが接続可変ネットワーク装置112を介することなく通信することを意味する。図1の例において、それらは物理リンクにより直接に接続されている。管理サーバとNWSWの間及び処理サーバとNWSWとの間に、データを転送する通信装置が存在してもよい。
NWSW110_1〜110_5及びストレージ111は、接続可変ネットワーク装置112を介して相互に通信可能に接続されている。図1の例において、NWSW110_1〜110_5及びストレージ111は、物理リンク120によって直接に接続可変ネットワーク装置112に接続されているが、これらは間接的に接続されていてもよい。
後述するように、NWSWのポートと通信する接続可変ネットワーク装置112のポートは、一意に決定されている。NWSWのポートと接続可変ネットワーク装置112のポートが接続されているとの記述は、当該NWSWの当該ポートが、接続可変ネットワーク装置112の可変リンク部117を介することなく、接続可変ネットワーク装置112の当該ポートと通信することを示す。
管理サーバ101は、メモリ102と、中央処理装置(CPU)103と、ネットワークインターフェース(NWI/F)104と、接続可変ネットワーク制御インターフェース(制御I/F)105と、を含む。制御I/F105は、接続可変ネットワーク装置112に応じた専用のインターフェース、又は、例えばEthernet、USBなど汎用のインターフェースである。
処理サーバ106_1〜106_8は、それぞれ管理サーバ101と同様な構成を有し、メモリ107、CPU108、及びNWI/F109を含む。NWSW110_1〜110_5は、それぞれ、メモリ122、CPU123、及び複数のNWI/F124を含む。
接続可変ネットワーク装置112は、複数のポート119を含み、接続対象のNWSWと複数の外部リンク120を用いて接続される。外部リンク120には、例えば光ファイバや電気ケーブルを用いることができる。接続可変ネットワーク装置112において、制御部113及び可変リンク部117を含む。制御部113は可変リンク部117を制御し、制御I/F114、CPU115、メモリ116、及びロジック118を含む。
CPU115は、メモリ116内のプログラムに従って動作し、制御I/F114を介して管理サーバ101と通信する。ロジック118は、CPU115から指示に従って、可変リンク部117内の要素を制御し、内部リンク171を、追加、変更及び削除する。制御部113の回路構成は、本例に限定されない。
可変リンク部117は、制御部113からの制御によって、任意のポート119間に内部リンク171を張ることができる。図1の例では、ポート1とポート10、ポート2とポート11、ポート3とポート14、ポート4とポート5、ポート7とポート16、ポート8とポート9が、それぞれ内部リンク171によって接続されている。一つのポート119は、1本の内部リンクとのみ直接に接続する。
内部リンク171の機能は物理的な結線と同じであり、内部リンク170接続されたポートは、他のポートを介することなく直接にデータを送受信する。内部リンク171は双方向のデータ伝送が可能である。ポートは、内部リンク171により他方のポートにデータを送信し、また、他方のポートからデータを受信する。
内部リンク171のトポロジを制御することは、接続可変ネットワーク装置112に接続されているNWSW間の物理的な結線を変更することに相当する。従って、NWSW間のネットワークトポロジを高い自由度で構築できる。一つのNWSWに接続できる内部リンク171の最大数は、一つのNWSWに接続できる外部リンク120の最大数で決まる。図1の例では、最大内部リンク数は4本である。
可変リンク部117の制御は、接続可変ネットワーク装置112内のポート間接続の制御であるため、高速である。接続可変ネットワーク装置112としては、例えばMEMS(Micro Electro Mechanical Systems)による光スイッチを用いることができる。
図2は、情報処理システム100の機能ブロック図を示す。管理サーバ101は、初期設定部200、モニタリング部201、ボトルネックリンク検出部(BNリンク検出部)202、及びボトルネック解消処理部(BN解消処理部)203を含む。BNリンクは、いずれか一方向における通信トラフィックが、割り当てられている閾値に達している内部リンク171である。
BN解消処理部203は、ボトルネック判定部(BN判定部)204、帯域幅決定部205、ボトルネックルート抽出部(BNルート抽出部)206、ボトルネックルートトラフィック比推定部(BNルートトラフィック比推定部)207、ダイレクトリンク決定部208、及びルーティング決定部209を含む。
管理サーバ101のメモリ102は、上記機能部200〜209を実現するためのプログラムを記憶している。プログラムは、OS(Operating System)を含む。プロセッサであるCPU103は、メモリ102に記憶されているプログラムを実行することによって上記機能部として動作する。プログラムは、例えば、ストレージ111又は管理サーバ101内の不揮発性記憶デバイスからメモリ102にロードされる。
NWSW110_1〜110_5は、それぞれ、ルート決定部213及びルーティングテーブル214を含む。メモリ122は、ルート決定部213を実現するためのプログラム及びルーティングテーブル214を記憶している。CPU123は、メモリ122内のプログラムに従ってルート決定部213として動作する。ルート決定部213は、あるポートにおいて受信したデータユニットを、ルーティングテーブル214が示すポートから送信する。
ストレージ111は、全ルート情報210、通信トラフィック履歴情報211、ボトルネックリンク情報(BNリンク情報)212、ネットワークスイッチ接続情報(NWSW接続情報)217を格納する。
全ルート情報210は、情報処理システム100における全通信ルートの情報を含む。ここでの通信ルートは、情報処理システム100において、通信データが流れるルートである。同一ノード間の逆方向のデータの流れは、異なる通信ルートに対応する。通信ルートは、データ通信を行う端ノード及び当該端ノード間において通信データが通過するポートによって示すことができる。
端ノードは、例えば、処理サーバ又はNWSWであり、ポートはNWSW又は接続可変ネットワーク装置112のポートである。一つの通信ルートは、1以上の内部リンク171を通過する。内部リンク171は、接続可変ネットワーク装置112の二つのポートで示される。
通信トラフィック履歴情報211は、情報処理システム100における通信トラフィックの履歴を示す。例えば、通信トラフィック履歴情報211は、情報処理システム100内の全NWSW110_1〜110_5の各ポートの通信トラフィックを示す。各エントリは、各時間帯(例えば1分間)のNWSW110_1〜110_5の全ポートの通信トラフィックを示す。各ポートの通信トラフィックは、受信トラフィックと送信トラフィックの双方を示す。通信トラフィックの値は、例えば、時間帯内の平均値、時間帯内のある時刻の値又は時間帯内の最大値でよい。
処理サーバと接続するNWSWのポートの通信トラフィックの情報は、当該処理サーバへの送信トラフィック及び当該処理サーバからの受信トラフィックを示す。接続可変ネットワーク装置112のポートと接続するNWSWのポートの通信トラフィックの情報は、当該NWSWポートと内部リンク171との通信トラフィックを示す。つまり、NWSWポートから内部リンク171への送信トラフィック及び内部リンク171からNWSWポートへの送信トラフィックを示す。
BNリンク情報212は、検出されたBNリンクの識別子を含む、BNリンクの情報を格納する。BNリンクにおけるボトルネックが解消されると、当該内部リンクの情報は、BNリンク情報212から削除される。NWSW接続管理情報217は、処理サーバとNWSWとの間の接続管理テーブル271、接続可変ネットワーク装置とNWSWとの間の接続管理テーブル273、及び内部リンク管理テーブル274を含む。これらの詳細は後述する。
図3は、情報処理システム100の全体的処理のフローチャートを示す。ステップS101において、管理サーバ101の初期設定部200は、処理サーバとNWSWとの間の接続管理テーブル271を作成する。処理サーバとNWSWとの間の接続管理テーブル271は、NWSW接続管理情報217に含まれる。
図4は、処理サーバとNWSWとの間の接続管理テーブル271の一例を示している。処理サーバとNWSWとの間の接続管理テーブル271は、処理サーバ番号、NWSW番号及びNWSWポート番号のカラムを有する。各エントリは、処理サーバと、当該処理サーバが接続されているNWSWポートとを示す。NWSWポートは、NWSW番号とNWSWポート番号で同定される。初期設定部200は、NWSW110_1〜110_5又はユーザから当該情報を取得する。
図3に戻って、ステップS103において、初期設定部200は、接続可変ネットワーク装置とNWSWとの間の接続管理テーブル273を作成する。接続可変ネットワーク装置とNWSWとの間の接続管理テーブル273は、NWSW接続管理情報217に含まれる。
図5は、接続可変ネットワーク装置とNWSWとの間の接続管理テーブル273の一例を示す。接続可変ネットワーク装置とNWSWとの間の接続管理テーブル273は、接続可変ネットワーク装置112のポートとNWSWのポートの接続関係を管理し、接続可変ネットワーク装置ポート番号、NWSW番号、及びNWSWポート番号のカラムを有する。各エントリは、各接続可変ネットワーク装置ポートに接続されているNWSWポートを示す。初期設定部200は、NWSW110_1〜110_5、接続可変ネットワーク装置112又はユーザから当該情報を取得する。
図3に戻って、ステップS104において、初期設定部200は、可変リンク部117の初期のリンクトポロジを決定し、内部リンク管理テーブル274、各NWSWのルーティングテーブル214及び全ルート情報210を作成する。
具体的には、初期設定部200は、接続可変ネットワーク装置とNWSWとの間の接続管理テーブル273及び内部リンク管理テーブル274の情報から、可変リンク部117の初期のリンクトポロジ(ネットワークトポロジ)を決定する。初期設定部200は、決定したリンクトポロジを示す内部リンク管理テーブル274を作成し、NWSW接続管理情報217に格納する。
初期設定部200は、接続可変ネットワーク装置112の制御部113に対して、決定した初期のリンクトポロジを形成することを指示する。制御部113は、指定されたリンクトポロジを形成するように複数内部リンク171を形成する。
図6は、内部リンク管理テーブル274の一例を示している。内部リンク管理テーブル274は、内部リンクの両端ポートを示す第1ポート番号及び第2ポート番号のカラムを有する。内部リンク管理テーブル274は、さらに、各内部リンク171の現在帯域幅及び最大帯域花のカラムを有する。本例において、可変リンク部117は、各内部リンク171の帯域幅を変更することができる。各内部リンク171の帯域幅は、最大帯域幅まで拡大できる。
初期設定部200は、上記テーブル271〜274から、全ルート情報210を作成する。全ルート情報210の各エントリは、端ノードと、端ノード間のデータが通過するポートを示す。端ノードは処理サーバ106_1〜106_8、管理サーバ101、NWSW110_1〜110_5、ストレージ111のいずれかである。各ポートは、NWSW110_1〜110_5又は接続可変ネットワーク装置110のポートである。
初期設定部200は、処理サーバとNWSWとの間の接続管理テーブル271、接続可変ネットワーク装置とNWSWとの間の接続管理テーブル273、及び内部リンク管理テーブル274の情報から、NWSW110_1〜110_5のそれぞれのルーティングテーブル214を作成し、NWSW110_1〜110_5にそれぞれ送信する。
図7は、NWSW110_1のルーティングテーブル214の構成例を示す。ルーティングテーブル214は、データユニットの最終的な宛先を示す宛先番号のカラムと、各宛先のデータユニットを送信する送信ポート番号のカラムを有する。NWSWは、受信したデータユニットの宛先に対応する送信ポートから、当該データユニットを送信する。
初期設定が終了すると、ステップS105において、管理サーバ101のモニタリング部201は、情報処理システム100全体のトラフィックのモニタリングを開始する。モニタリング部201は、NWSW110_1〜110_5から、定期的に、各ポートのトラフィックの情報を取得し、通信トラフィック履歴情報211に格納する。モニタリング部201は、接続可変ネットワーク装置112の制御部113から、接続可変ネットワーク装置112の各ポートのトラフィックの情報を取得してもよい。
次に、ステップS106において、処理サーバ106_1〜106_8が、アプリケーションの実行を開始する。アプリケーションの実行開始後、BNリンク検出部202は、可変リンク部117内の各内部リンク171のトラフィックを監視する(S107)。トラフィックの監視は、アプリケーションの実行終了まで続く(S107:NO、S108:NO)。
具体的には、モニタリング部201は、トラフィックのモニタリングを続行する。BNリンク検出部202は、通信トラフィック履歴情報211を参照して、可変リンク部117内の各内部リンク171のトラフィックを監視する。BNリンク検出部202は、接続可変ネットワーク装置とNWSWとの間の接続管理テーブル273を参照して、NWSWポートから内部リンク171を特定する。
BNリンク検出部202は、各内部リンク171に対応する閾値を保持している。閾値は、内部リンク171の帯域幅に依存する。BNリンク検出部202は、内部リンク管理テーブル274から、各内部リンク171の現在の帯域幅の値を得ることができる。
いずれかの内部リンク171において、いずれかの方向の通信トラフィックが対応する閾値を超えていることを検出すると(S107:YES)、BNリンク検出部202は、当該内部リンク171をBNリンクと判定し、管理サーバ101は、結合子Aを介して、図8のフローチャートに進む。ここで検出されたBNリンクを、BNリンクB1と呼ぶ。
図8は、BNリンクB1の帯域幅を拡大する処理のフローチャートである。BNリンクB1の帯域幅を拡大することで、BNリンクB1におけるボトルネックの解消を図ることができる。また、BNリンクB1のボトルネックが解消されない、又は、波及的ボトルネックが発生した場合、BNリンクを通過する通信ルート(BNルートとも呼ぶ)それぞれの通信トラフィックを推定することができる。なお、図8のフローチャートの処理が実行されている間も、モニタリング部201は、通信トラフィックのモニタリングを行っている。
具体的に説明する。帯域幅決定部205は、BNリンクB1の現在帯域幅の値W_B1を含む、BNリンクB1の情報を、内部リンク管理テーブル274から取得する(S201)。帯域幅決定部205は、取得したBNリンクB1の情報を、BNリンク情報212に格納する(S202)。
帯域幅決定部205は、BNリンクB1の現在帯域幅の値と最大帯域幅の値を比較して、BNリンクB1の現在帯域幅を拡大できるか判定する(S203)。現在帯域幅を拡大できる場合(S203:YES)、帯域幅決定部205は、所定量だけBNリンクB1の現在帯域幅を拡大する(S204)。帯域幅決定部205は、内部リンク管理テーブル274の該当エントリの値を更新する。
BN判定部204は、BNリンクB1の帯域拡大により、他の波及的BNリンクが発生しているか判定する(S205)。BN判定部204は、BNリンク検出部202と同様の方法で波及的BNリンクを検出することができる。波及的BNリンクは、BNルートが使用しているリンクであり、かつBNルートにおいてBNリンクB1より後ろのリンクである。
波及的BNリンクが発生してない場合(S205:NO)、BN判定部204は、BNリンクB1のボトルネック(BN)が解消しているか判定する(S206)。当該判定方法は、BNリンク検出方法と同様である。BNリンクB1のボトルネックが解消している場合(S206:YES)、BN判定部204は、BNリンクB1をBNリンク情報212から削除し、管理サーバ101は、結合子Cを介して図3のフローチャートのステップS108に戻る。これにより、ダイレクトリンクの追加を行うことなく帯域幅の拡大のみでボトルネックを解消できる。
帯域幅の拡大によりBNリンクB1のボトルネックが解消していない場合(S206:NO)、管理サーバ101は、ステップS203に戻る。波及的BNリンクが発生しない間、管理サーバ101は、ステップS203〜S106を繰り返す。BNリンクB1の帯域幅は、最大帯域幅の値まで拡大できる。
BNリンクB1の帯域幅が最大値に達してもボトルネックが解消されない場合(S203:NO)、管理サーバ101は、結合子Bを介して、図9のフローチャートに進む。BNリンクB1の帯域幅は拡大された値であり、ダイレクトリンクの追加によりBNリンクB1のボトルネック解消の可能性を高くできる。図9のフローチャートに進む前にBNリンクB1の現在帯域幅を拡大前の値W_B1に戻してもよい。
BNリンクB1の帯域幅の拡大において波及的BNリンクが発生した場合(S205:YES)、帯域幅決定部205は、BNリンクB1の現在帯域幅を拡大前の値W_B1に戻す(S208)。これにより、帯域幅の拡大による波及的BNリンクの発生を防ぐ。その後、管理サーバ101は、結合子Bを介して、図9のフローチャートに進む。ステップS208は省略してもよい。
図9は、ダイレクトリンクの追加処理のフローチャートを示す。BNリンクB1の帯域幅拡大によってもBNリンクB1のボトルネックが解消されない場合、又は、BNリンクB1の帯域幅拡大によって波及的ボトルネックが発生する場合、当該フローチャートの処理が実行される。
なお、図9のフローチャートの処理が実行されている間も、モニタリング部201は、通信トラフィックのモニタリングを行っている。また、アプリケーションの実行中、処理サーバ106_1〜106_8間のユーザデータ通信における通信トラフィックと比較して、NWSW110_1〜110_5、管理サーバ101及びストレージ111間の管理データ通信における通信トラフィックは無視できるものとする。なお、通信トラフィックのモニタリングデータは、別のローカルエリアネットワーク(イーサネットなど)を介して取得してもよい。
ダイレクトリンク決定部208は、追加リンク決定の処理回数を示す変数Kを0に初期化する(S301)。BNルート抽出部206は、BNリンクB1を通過する通信ルート(BNルート)の情報を取得する(S302)。具体的には、BNルート抽出部206は、全ルート情報210から、BNリンクB1を含み、ボトルネックが発生した方向における全ての通信ルート(BNルートとも呼ぶ)の情報を取得する。
BNルートトラフィック比推定部207は、BNリンクB1の帯域幅拡大前後における、各BNルートの宛先処理サーバへの通信トラフィックを、通信トラフィック履歴情報211から取得する(S303)。
通信ルートの宛先処理サーバへの通信トラフィックは、当該宛先処理サーバが接続するNWSWポートでの通信トラフィックであり、宛先処理サーバへの複数の通信ルートの通信トラフィックの総和である。BNルートトラフィック比推定部207は、例えば、帯域幅拡大前の値W_B1及び帯域幅拡大後の帯域幅最大値のそれぞれにおける宛先処理サーバへの通信トラフィックを、通信トラフィック履歴情報211から取得する。
BNルートトラフィック比推定部207は、ステップS303で取得した情報から、BNリンクB1における、全BNルートの通信トラフィック比を推定する(S304)。本例において、BNルートトラフィック比推定部207は、BNリンクB1の帯域幅拡大前後における、各BNルートの宛先処理サーバへの通信トラフィックの変化量を計算する。BNルートトラフィック比推定部207は、これら変化量の比が、BNリンクB1におけるBNルートの通信トラフィック比と一致すると推定する。
宛先処理サーバが接続するNWSWポート(端ポートとも呼ぶ)における通信トラフィックは、宛先処理サーバへの複数の通信ルートから通信トラフィックの総計である。BNリンクB1の帯域幅の変更に伴う端ポートでの通信トラフィックの変化量は、BNリンクB1を通過する通信ルートにおける通信トラフィックの変化量であると推定できる。本実施形態は、帯域幅拡大前後の通信トラフィック変化量の比を、BNリンクB1におけるBNルートの通信トラフィック比であると推定する。これにより、より正確な推定が実現できる。
BNルートトラフィック比推定部207は、他の推定方法を使用してもよい。例えば、BNルートトラフィック比推定部207は、各BNルートの宛先処理サーバへの通信トラフィックの比を、BNリンクB1におけるBNルートの通信トラフィック比であると推定する。また、図8のフローチャートにおいてBNリンクB1の帯域幅が変更されない場合、当該推定方法を使用できる。
次に、ダイレクトリンク決定部208は、ステップS304で決定された通信トラフィック比に基づき、追加するダイレクトリンクを決定する(S305)。例えば、ダイレクトリンク決定部208は、通信トラフィック比の値が最も大きいBNルートを選択し、当該BNルートのダイレクトリンクを追加する。これにより、BNリンクB1におけるボトルネック解消の可能性を高めることができる。なお、ダイレクトリンク決定部208は、BNルートの通信トラフィックに係わらずダイレクトリンクのためのBNルートを選択してもよい。
ダイレクトリンクは、接続可変ネットワーク装置112の二つのポートで定義される。一方のポートは、BNルートの送信元NWSWと接続するポートである。他方のポートは、BNルートの宛先処理サーバと接続するNWSW、と接続するポートである。
次に、ルーティング決定部209は、各新たに追加したダイレクトリンクを使用するため、NWSW110_1〜110_5それぞれのルーティングテーブル214を作成する(S306)。ルーティング決定部209は、上記選択されたBNルートの通過リンクを、BNリンクB1からダイレクトリンクに切り替える。ダイレクトリンクにより、BNリンクB1の通信トラフィックを低減すると共に、他の内部リンクの通信トラフィックの増加を効果的に防ぐことができる。
ルーティング決定部209は、接続可変ネットワーク装置112の制御部113に、ダイレクトリンクの追加を指示する(S307)。制御部113は、指示に応じて可変リンク部117においてダイレクトリンクを追加する。ルーティング決定部209は、さらに、内部リンク管理テーブル274及び各NWSWのルーティングテーブル214を更新する(S308)。
BN判定部204は、変数Kに1を加算し(S309)、BNリンクB1のボトルネックが解消されたか判定する(S310)。BN判定部204は、通信トラフィック履歴情報211からBNリンクB1の通信トラフィックを取得し、さらに、内部リンク管理テーブル274の現在帯域幅の値に応じた閾値と比較することで、BNリンクB1でボトルネックが解消されているか判定する。
ボトルネックが解消されている場合(S310:YES)、BN判定部204は、BNリンク情報212からBNリンクB1の情報を削除する(S311)。管理サーバ101は、結合子Cを介して図3のフローチャートのステップS108に戻る。ボトルネックが解消されていない場合(S310:NO)、BN判定部204は、変数Kが所定の閾値未満であるか判定する(S312)。
変数Kが閾値に達している場合(S312:NO)、BN判定部204は、BNリンク情報212からBNリンクB1の情報を削除する(S311)。管理サーバ101は、結合子Cを介して図3のフローチャートのステップS108に戻る。これにより、追加リンク数が大きくなりすぎることを避ける。変数Kが所定の閾値未満である場合(S312:YES)、管理サーバ101はステップS304に戻り、ステップS304以下のステップを再実行する。これにより、BNリンクB1のボトルネック解消の可能性を高める。
BN解消処理部203は、ステップS308の後、BNルート通信トラフィック比の再推定及び再推定結果に応じたダイレクトリンクの再設定を行ってもよい。ダイレクトリンクを追加した後、BNルートトラフィック比推定部207は、ダイレクトリンクにおける通信トラフィックの値を取得し、BNリンクB1における通信トラフィック比を再計算する。ここで、ステップS305で通信ルートR1が選択されたとする。
BNルートトラフィック比推定部207は、ステップS304で算出したBNリンクB1における通信ルートの通信トラフィック比と、BNリンクB1の通信トラフィックとから、BNリンクB1における各通信ルートの通信トラフィックを算出する。BNルートトラフィック比推定部207は、算出したBNリンクB1における通信ルートR1の通信トラフィックと、ダイレクトリンクで測定された通信トラフィックとの差分を算出する。
BNルートトラフィック比推定部207は、算出した差分を、BNリンクB1における通信トラフィック比に応じて、通信ルートR1以外の通信ルートに分配する。通信トラフィックが最大の通信ルートが通信ルートR1と異なる場合、ダイレクトリンクを通信ルーとR1から、通信トラフィックが最大の通信ルートに変更する。
一例を説明する。ステップS302において、通信ルートR1〜R4が選択されたとする。ステップS304で算出された通信ルートR1〜R4のトラフィック比T1:T2:T3:T4=350:200:150:10とする。ここで、通信ルートR1が選択されたダイレクトリンクが形成される。そのダイレクトリンクの通信トラフィック測定値が200であるとする。
BNルートトラフィック比推定部207は、BNリンクB1における通信トラフィックと、ダイレクトリンクの通信トラフィックの差分200を他の通信ルートに分配して、BNリンクB1における通信トラフィック比を再推定する。つまり、差分は350−200=150である。150/3=50が、他の通信ルートに分配される。最推定結果は、T1:T2:T3:T4=200:(200+50):(150+50):(10+50)である。
最推定結果は、通信ルートR2の通信トラフィックが最大であることを示している。ダイレクトリンク決定部208は、通信ルートR1のダイレクトリンクを削除し、通信ルートR2のためダイレクトリンクを追加する。通信トラフィック比を再推定することで、可変リンク部117の変更を小さくしつつ、ボトルネックを解消することができる。
BN解消処理部203は、二回目以降のループのステップS304において、上記再推定の方法を利用して、BNリンクB1において残っている通信ルートの通信トラフィック比を推定してもよい。二回目以降のループにおいて、前回ループ以前に追加されたダイレクトリンクは削除されず、新たなダイレクトリンクが追加される。
図9のフローチャートにおけるステップS305において、ダイレクトリンクを追加するための未使用ポートが存在しない場合、BN解消処理部203は、既存の内部リンクを削除して、ダイレクトリンクのための未使用ポートを確保してもよい。
例えば、ダイレクトリンク決定部208は、ダイレクトリンクを形成するためのNWSWにおいて利用率が低いポート(内部リンク)を選択し、当該ポートの内部リンクを削除して、未使用ポートを確保する。ルーティング決定部209は、既存内部リンクの削除及びダイナミックリンクの追加による可変リンク部117のトポロジの変更に応じて、ルーティングテーブル214を更新する。
例えば、ダイレクトリンク決定部208は、通信トラフィック履歴情報211を参照し、最大トラフィック/帯域幅により、対象NWSWの各ポートの利用率を計算する。利用率は、双方向の総計又はいずれか一方向の値であってよく、他のトラフィック統計値、(例えば平均値から算出されてもよい。ダイレクトリンク決定部208は、利用率が最小のポートを選択して内部リンクを削除する。ダイレクトリンク決定部208は、利用率に係わらず削除する内部リンクを選択してもよい。
以下において、図10〜図15を参照して、BNリンクB1の発生に対応するダイレクトリンク追加の処理例を説明する。図10は、ボトルネック発生前の情報処理システム100の状態例を示している。
情報処理システム100は、処理サーバ106_1〜106_16、NWSW110_1〜110_8を含む。リンク121は、それぞれ、処理サーバとNWSWのポートを接続する。接続可変ネットワーク装置112の外部リンク120は、それぞれ、接続可変ネットワーク装置112のポート119とNWSWのポートとを接続する。可変リンク部117は、それぞれ接続可変ネットワーク装置112の二つのポート119を直接に接続する内部リンク171_1〜171_11を有する。
図11に示すように、内部リンク171_3においてボトルネックが発生したとする。帯域幅決定部205は、内部リンク171_3の帯域幅を拡大する(図8におけるステップS204)。図12は、内部リンク171_3の帯域幅を拡大した後の状態を示す。内部リンク171_6、171_7、及び171_9において、ボトルネックが発生している(図8におけるステップS205:YES)。
BNルートトラフィック比推定部207は、BNリンク171_3を通過するBNルートの通信トラフィック比を算出する(図9におけるステップS304)。図13は、内部リンク171_3のBNルートの宛先処理サーバへの通信トラフィックの例303_1、301_2、及び303_3を示している。図13のグラフにおいて、横軸は時刻を示し、縦軸は通信トラフィックを示す。時刻301はBNリンク171_3の帯域幅拡大前であり、時刻302はBNリンク171_3の帯域幅拡大後である。
BNルートは、それぞれ、帯域幅拡大前後の通信トラフィック差304_1、304_2、及び304_3を有している。差304_1、304_2、及び304_3は、それぞれ、時刻301と時刻302とにおける通信303_1、301_2、及び303_3の差である。BNルートトラフィック比推定部207は、通信トラフィック差304_1、304_2、及び304_3の比が、BNリンク171_3におけるBNルートの通信トラフィック比であると推定する。
ダイレクトリンク決定部208は、例えば、通信トラフィック差が最も大きいBNルート、つまり、通信トラフィック差304_2のBNルートを選択し、当該BNルートに対応するダイレクトリンクを追加する。
図14は、新たにダイレクトリンク171_21が追加された例を示す。ダイレクトリンク171_21は、接続可変ネットワーク装置112のポート34とポート15とを直接に接続する。ダイレクトリンク171_21は、ポート34とポート15で定義される。
ポート34は、NWSW110_6のポートに接続されている。NWSW110_6は、BNリンク171_3の送信元NWSWである。ポート15は、処理サーバ106_5、106_6が接続するNWSW110_3のポートと接続されている。ダイレクトリンク171_21の宛先処理サーバは、処理サーバ106_5又は処理サーバ106_6である。当該宛先処理サーバは、BNリンク171_3で選択された通信ルートの宛先処理サーバである。
ダイレクトリンク171_21により、内部リンク171_3のボトルネックは、まだ解消されていない。内部リンク171_3の帯域幅を拡大すると、波及的BNリンク171_6と、新たなBNリンク171_9のボトルネックが発生する。BN解消処理部203は、図9に示すフローチャートに従い、BNリンク171_3のボトルネックを解消するための新たなダイレクトリンクを追加する。
図15は、BNリンク171_3のボトルネック解消のために新たに追加されたダイレクトリンク171_22と、新たなBNリンク171_9のボトルネック解消のために新たに追加されたダイレクトリンク171_23を示している。ダイレクトリンク171_22により、BNリンク171_3のボトルネックが解消され、波及的BNリンクも発生していない。しかし、新たなBNリンク171_9のボトルネックが存在する。ダイレクトリンク171_23により、BNリンク171_9のボトルネックが解消される。
ダイレクトリンク171_22は、接続可変ネットワーク装置112のポート33とポート5とを直接に接続する。ダイレクトリンク171_22は、ポート33とポート5で定義される。
ポート33は、NWSW110_6のポートに接続されている。NWSW110_6は、BNリンク171_3の送信元NWSWである。ポート5は、処理サーバ106_1、106_2が接続するNWSW110_1のポートと接続されている。ダイレクトリンク171_22の宛先処理サーバは、処理サーバ106_1又は処理サーバ106_2である。当該宛先処理サーバは、BNリンク171_3で選択された通信ルートの宛先処理サーバである。
ダイレクトリンク171_23は、接続可変ネットワーク装置112のポート29とポート39とを直接に接続する。ダイレクトリンク171_23は、ポート29とポート39で定義される。
ポート29は、NWSW110_5のポートに接続されている。NWSW110_5は、BNリンク171_9の送信元NWSWである。ポート39は、処理サーバ106_13、106_14が接続するNWSW110_7のポートと接続されている。ダイレクトリンク171_23の宛先処理サーバは、処理サーバ106_13又は処理サーバ106_14である。当該宛先処理サーバは、BNリンク171_9で選択された通信ルートの宛先処理サーバである。
他の実施形態
上記実施形態は、BNリンクB1の帯域幅を拡大することよって、BNリンクB1の通信トラフィックの帯域幅を拡大する。以下に説明する実施形態は、BNリンクB1と同一のNWSW間において異なる内部リンクを追加することで、BNリンクB1の通信トラフィックの帯域幅を拡大する。この方法は、接続可変ネットワーク装置112が内部リンクの帯域幅を拡大する機能を有していない場合に特に有用である。BNリンクB1と同一のNWSWは、BNリンクB1が接続されている接続可変ネットワーク装置112のポートと、それぞれ接続しているNWSWである。
図16は、本実施形態における、情報処理システム100の全体的処理のフローチャートを示す。図16においてステップS401〜S408は、図3のフローチャートにおけるS101〜S108に対応する。本実施形態は、ステップS407における判定結果がNOの場合に結合子Dを介して図17のフローチャートに移動する点、及び結合子Eを介してステップS408に戻る点が、図3のフローチャートと異なる。
図17は、BNリンクB1の通信トラフィックのための帯域幅を拡大するため、内部リンクを追加する処理例のフローチャートを示す。BNリンクB1と同一のNWSW間において内部リンクが追加される。なお、図17のフローチャートの処理中に、通信トラフィックのモニタリングは続いている。
BNルート抽出部206は、BNリンクB1を通過するBNルートの情報を取得する(S501)。具体的には、BNルート抽出部206は、全ルート情報210から、BNリンクB1を含み、ボトルネックが発生した方向における全ての通信ルート(BNルート)の情報を取得する。BNルート抽出部206は、取得した情報を、BNリンク情報212に格納する(S502)。
帯域幅決定部205は、BNリンクB1と同一のNWSW間において、新たな内部リンクを追加できるか判定する(S503)。BNリンクB1の両端NWSWが、接続可変ネットワーク装置112の未使用ポートを有している場合、新たな内部リンクを追加できる。帯域幅決定部205は、接続可変ネットワーク装置とNWSWとの間の接続管理テーブル273及び内部リンク管理テーブル274を参照して、BNリンクB1と同一のNWSWが、それぞれ未使用ポートを有しているか否か判定することができる。
新たな内部リンクを追加できない場合(S503:NO)、BN判定部204は、BNリンク情報212からBNリンクB1のエントリを削除する(S511)。BN解消処理部203は、結合子Bを介して図9のフローチャートに移動する。
新たな内部リンクを追加できる場合(S503:YES)、帯域幅決定部205は、追加する新たな内部リンクB2を決定する(S504)。帯域幅決定部205は、BNリンクB1の両端NWSWのそれぞれに対応する接続可変ネットワーク装置112の未使用ポートを選択する。
ルーティング決定部209は、BNルートから一部の通信ルートを選択して、新たな内部ルートB2に割り当て、新たなルーティングテーブル214を作成する(S505)。例えば、ルーティング決定部209は、宛先NWSW単位で通信ルートをまとめ、その数が均等になるように選択する。割り当てられる通信トラフィックは、内部ルートB2の帯域幅内である。ルーティング決定部209は、接続可変ネットワーク装置112の制御部113に、新たな内部リンクB2の設定を指示する(S506)。
ルーティング決定部209は、作成したルーティングテーブル214をNWSWにそれぞれ送信し、各NWSW内のルーティングテーブル214を更新する。ルーティング決定部209は、さらに、内部リンク管理テーブル274に、内部リンクB2の情報を追加する(S507)。
BN判定部204は、通信トラフィック履歴情報211を参照して、内部ルートB2の追加後に波及的BNリンクが発生しているか判定する(S508)。波及的BNリンクが発生している場合(S508:YES)、BN判定部204は、内部リンクB2を削除し、BNリンク情報212、ルーティングテーブル214及び内部リンク管理テーブル274を更新前の状態に戻す(S511)。これにより、波及的BNリンクの発生を避ける。BN解消処理部203は、結合子Bを介して図9のフローチャートに移動する。
波及的BNリンクが発生していない場合(S508:NO)、BN判定部204は、通信トラフィック履歴情報211を参照して、BNリンクB1のボトルネックが解消されているか判定する(S509)。
ボトルネックが解消されている場合(S509:YES)、BN判定部204は、BNリンク情報212からBNリンクB1の情報を削除する(S510)。以上により、ダイレクトリンクを利用することなく、かつ、波及的BNリンクの発生を避けつつ、BNリンクB1のボトルネックを解消できる。BN解消処理部203は、結合子Eを介して、図16のフローチャートのステップS408に移動する。
ボトルネックが解消されていない場合(S509:NO)、BN解消処理部203は、ステップS503に戻る。ボトルネックが解消されていない場合(S509:NO)、BN解消処理部203は、ステップS511に移動してもよい。ボトルネックが解消されていない場合(S509:NO)、または、波及的BNリンクが発生している場合(S508)、BN解消処理部203は、内部リンクB2に割り当てる通信ルートを変更してもよい。
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。