JP2014082650A - 管理装置、ボトルネック判定・経路制御プログラム、及び、並列分散処理システム - Google Patents

管理装置、ボトルネック判定・経路制御プログラム、及び、並列分散処理システム Download PDF

Info

Publication number
JP2014082650A
JP2014082650A JP2012229383A JP2012229383A JP2014082650A JP 2014082650 A JP2014082650 A JP 2014082650A JP 2012229383 A JP2012229383 A JP 2012229383A JP 2012229383 A JP2012229383 A JP 2012229383A JP 2014082650 A JP2014082650 A JP 2014082650A
Authority
JP
Japan
Prior art keywords
information
terminal device
route
task
network topology
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012229383A
Other languages
English (en)
Other versions
JP6088197B2 (ja
Inventor
Minsok Hwang
▲民▼錫 黄
Shinya Takeuchi
真也 竹内
Yutaka Kaneko
金子  豊
Yoshinori Izumi
吉則 和泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Broadcasting Corp
Original Assignee
Nippon Hoso Kyokai NHK
Japan Broadcasting Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Hoso Kyokai NHK, Japan Broadcasting Corp filed Critical Nippon Hoso Kyokai NHK
Priority to JP2012229383A priority Critical patent/JP6088197B2/ja
Publication of JP2014082650A publication Critical patent/JP2014082650A/ja
Application granted granted Critical
Publication of JP6088197B2 publication Critical patent/JP6088197B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】本発明は、実行中のタスクに関係したボトルネックを正確に検出し、新たなボトルネックを誘発しない並列分散処理システムを提供する。
【解決手段】並列分散処理システム1は、OpenFlowによりスイッチ30に対する経路制御を行うと共に、タスクの実行を、少なくとも情報処理端末装置が2台以上で並列化されるようにサーバ20に命令する管理装置10において、ネットワークに関する情報だけでなく、プロセスに関する情報も考慮して、実行中のタスクでボトルネックが発生したか否かの判定と、タスクを実行中のプロセスで使用しているフローの迂回経路の計算とを行う。
【選択図】図3

Description

本発明は、OpenFlowにより経路制御を行うと共に、端末装置が2台以上で並列化されるようにタスクを実行する管理装置、ボトルネック判定・経路制御プログラム、及び、並列分散処理システムに関する。
高精細な映像の加工処理など、大量のデータ処理の高速化のためには、専用で高価な計算装置やネットワーク装置が必要とされていた。だが近年、これら装置の高性能化、低廉化が進み、一般的なIA(Intel Architecture)サーバ(つまり、PC:(Personal Computer)サーバ)と、イーサネット(登録商標)機器とを用いた並列分散処理により、データ処理の高速化が可能となりつつある。
従来の並列分散処理システムは、サーバの数を増やすことで処理速度を向上させる一方、多数のサーバを集約して処理することにより、サーバ間トラヒックでネットワークが輻輳することがある(例えば、非特許文献1)。そのため、従来の並列分散処理システムは、サーバの数を増やしたり、サーバの性能を向上させたりしても、ネットワークがボトルネックになり、処理速度が上がらない場合がある。
ここで、従来の並列分散処理システムは、イーサネット機器を用いると、比較的、安価にネットワークを構築することができる。このイーサネット機器を用いた場合、レイヤ2ネットワークでは、ブロードキャストストームによるループ問題を回避するため、スパニングツリープロトコルを利用することが多い。しかし、このスパニングツリープロトコルは、レイヤ2ネットワークに存在する複数の経路のうち、主となる一つの経路以外の冗長な経路を、障害が発生するまで論理的にブロックするため、帯域を有効活用することができない。
そこで、レイヤ2ネットワークにおいて、複数の経路を有効活用できる方式として、TRILLやOpenFlowが提案されている(例えば、非特許文献2,3)。このTRILLは、複数の経路で長さが異なるときは最短経路を選択し、複数の経路で長さが同じときは予め設定されたアルゴリズムで経路を選択する。これによって、TRILLは、ネットワーク負荷を分散すると共に、ブロックして使わない経路を無くすことができる。
また、OpenFlowでは、従来のネットワークスイッチで行っていた経路制御及びパケット転送制御のうち、パケット転送制御のみをOpenFlow対応スイッチで行い、経路制御をOpenFlowコントローラで行う。このとき、OpenFlowでは、予め設定されたアルゴリズムにより、フロー単位で経路を変えることができる。
なお、フローとは、入力スイッチポート(物理ポート)、送信元/宛先MACアドレス、送信元/宛先IPアドレス、送信元/宛先ポート番号等の識別子を任意に組み合わせたものである。
さらに、OpenFlowコントローラは、OpenFlow対応スイッチとの間でLLDP(Link Layer Discovery Protocol)パケットを交換することで、ネットワークトポロジを検出することができる(例えば、非特許文献4)。このLLDPは、隣接ノードを発見するためのプロトコルであり、ネットワーク上の隣接ノードに対し、自装置に関する情報を通知すると共に、他装置に関する情報を取得するものである。
黄他、"処理速度を保証可能な並列分散処理手法の検討"、電子情報通信学会ソサイエティ大会、B-7-60、2011 IETF RFC5556,"Transparent Interconnection of Lots of Links (TRILL): Problem and Applicability Statement" The OpenFlow Switch Consortium(http://www.Openflowswitch.org/) IEEE802.1AB,"Station and Media Access Control Connectivity Discovery"
しかし、従来の並列分散処理システムでは、OpenFlow等の経路制御技術を適用しても、ネットワークに関する情報しか考慮しないため、実行中のタスクに関係したボトルネックを正確に検出できない。さらに、従来の並列分散処理システムでは、ネットワークに関する情報しか考慮しないため、ボトルネックを回避するための経路制御が、実行中のタスクで使用している他のフローに影響を与え、新たなボトルネックを誘発することがある。
そこで、本発明は、実行中のタスクに関係したボトルネックを正確に検出し、新たなボトルネックを誘発しない管理装置、ボトルネック判定・経路制御プログラム、及び、並列分散処理システムを提供することを課題とする。
前記した課題を解決するため、本願第1発明に係る管理装置は、データを蓄積する端末装置である送信元端末装置と、送信元端末装置に蓄積されたデータに所定の情報処理を施す端末装置である情報処理端末装置と、情報処理端末装置で情報処理が施されたデータを蓄積する端末装置である送信先端末装置と、OpenFlowにより端末装置の間で前記データを転送するスイッチとを備える並列分散処理システムに用いられ、OpenFlowによりスイッチに対する経路制御を行うと共に、送信元端末装置のデータに情報処理端末装置で情報処理を施して送信先端末装置に送信するタスクの実行を、少なくとも情報処理端末装置が2台以上で並列化されるように端末装置に命令する管理装置であって、ネットワークトポロジ検出手段と、経路計算手段と、経路制御手段と、タスク入力手段と、端末装置決定手段と、端末装置制御手段と、ボトルネック判定手段と、を備えることを特徴とする。
かかる構成によれば、管理装置は、ネットワークトポロジ検出手段によって、端末装置から、端末装置に接続されたスイッチを示すノード情報を受信すると共に、スイッチから、スイッチに接続された端末装置又は他のスイッチを示すノード情報を受信し、端末装置及びスイッチから受信したノード情報に基づいて、端末装置及びスイッチの接続形態であるネットワークトポロジを検出する。
また、管理装置は、経路計算手段によって、ネットワークトポロジに基づいて、タスクを実行する端末装置で起動するプロセスのポート番号で特定され、かつ、OpenFlowの経路制御単位であるフロー毎に、端末装置の間を結ぶ最短経路又は最小コスト経路を主要経路として計算し、計算した主要経路を示す経路情報を生成する。
また、管理装置は、経路制御手段によって、経路計算手段で生成した経路情報をスイッチに送信する。そして、管理装置は、タスク入力手段によって、タスクを実行する端末装置の識別情報が含まれるタスク情報を入力する。さらに、管理装置は、端末装置決定手段によって、タスク情報に基づいて、タスクを実行する端末装置を決定する。
また、管理装置は、端末装置制御手段によって、端末装置決定手段で決定された端末装置の識別情報と、フロー毎に固有のプロセスのポート番号とを対応付けた転送コネクション情報を生成し、プロセスの起動と、転送コネクションの作成とを端末装置に命令する。
また、管理装置は、ボトルネック判定手段によって、ネットワークに関する情報だけでなく、プロセスに関する情報も考慮して、実行中のタスクでボトルネックが発生したか否かを判定する。
プロセスに関する情報とは、転送コネクション情報及びタスク完了情報のことである。
ネットワークに関する情報とは、経路情報、ノード情報及びデータ転送量情報のことである。
また、管理装置は、経路計算手段によって、実行中のタスクでボトルネックが発生していると判定された場合、ネットワークに関する情報だけでなく、プロセスに関する情報も考慮して、タスクを実行中のプロセスで使用しているフローの迂回経路を計算して、計算した迂回経路を示す迂回経路情報を生成する。
また、本願第2発明に係る管理装置は、ネットワークトポロジ検出手段が、ネットワークトポロジの差分により、ネットワークトポロジが変更されたか否かを判定し、ネットワークトポロジが変更された場合、経路情報に基づいて、主要経路が削除されたか否かを判定し、経路計算手段が、主要経路が削除された場合、変更されたネットワークトポロジに基づいて、削除された主要経路の代わりとなる主要経路を計算することを特徴とする。
かかる構成によれば、管理装置は、主要経路が削除された場合でも、最適な主要経路を計算することができる。
また、本願第3発明に係る管理装置は、経路制御手段が、予め設定された数のフローについて、迂回経路情報をスイッチに送信することを特徴とする。
かかる構成によれば、管理装置は、ボトルネックとなっているフローの経路を全て一度に迂回させて、ボトルネックが発生していなかったフローの経路にも、大量の通信がなだれ込み、新たなボトルネックが誘発することを防止できる。
また、本願第4発明に係る管理装置は、経路計算手段が、迂回経路の計算結果に基づいて、迂回経路が存在するか否かを判定し、迂回経路が存在しない場合、予め設定されたネットワークリソースの追加を提案するメッセージを提示することを特徴とする。
かかる構成によれば、管理装置は、迂回経路が存在しない場合、並列分散処理システムの利用者にネットワークリソースの追加を提案することができる。
また、前記した課題を解決するため、本願第5発明に係る並列分散処理システムは、データを蓄積する送信元端末装置、送信元端末装置に蓄積されたデータに所定の情報処理を施す情報処理端末装置、又は、情報処理端末装置で情報処理が施されたデータを蓄積する送信先端末装置のうち、何れか1以上の役割を担う端末装置と、OpenFlowにより端末装置の間で前記データを転送するスイッチと、本願第1発明に係る管理装置と、を備えることを特徴とする。
かかる構成によれば、並列分散処理システムは、管理装置によって、ネットワークに関する情報だけでなく、プロセスに関する情報も考慮して、実行中のタスクでボトルネックが発生したか否かを判定する。
また、並列分散処理システムは、管理装置によって、実行中のタスクでボトルネックが発生していると判定された場合、ネットワークに関する情報だけでなく、プロセスに関する情報も考慮して、タスクを実行中のプロセスで使用しているフローの迂回経路を計算して、計算した迂回経路を示す迂回経路情報を生成する。
なお、本願第1発明に係る管理装置は、コンピュータが備えるCPU、メモリ、ハードディスクなどのハードウェア資源を、ネットワークトポロジ検出手段、経路計算手段、経路制御手段、タスク入力手段、端末装置決定手段、端末装置制御手段、ボトルネック判定手段として機能させるためのボトルネック判定・経路制御プログラムによって実現することもできる(本願第6発明)。このプログラムは、通信回線を介して配布してもよく、CD−ROMやフラッシュメモリ等の記録媒体に書き込んで配布してもよい。
本発明によれば、以下のような優れた効果を奏する。
本願第1,5,6発明によれば、プロセスに関する情報と、ネットワークに関する情報との両方を用いるため、ボトルネックを正確に検出できると共に、新たなボトルネックを発生させずに経路制御を行うことができる。
本願第2発明によれば、主要経路が削除された場合でも、最適な主要経路を計算できるため、新たなボトルネックを発生させずに経路制御を行うことができる。
本願第3発明によれば、ボトルネックが発生していないフローの経路に、大量の通信トラフィックがなだれ込むことを防止できるため、新たなボトルネックの発生を抑制することができる。
本願第4発明によれば、迂回経路が存在しない場合、並列分散処理システムの利用者にネットワークリソースの追加を提案することができる。
本発明の実施形態に係る並列分散処理システムの概略図である。 従来のOpenFlowを説明する説明図である。 図1の並列分散処理システムの構成を示すブロック図である。 (a)〜(c)は、図1の並列分散処理システムにおける、ネットワークトポロジの変更を説明する説明図である。 図1の並列分散処理システムにおける、主要経路を説明する説明図である。 図1の並列分散処理システムの動作を示すシーケンス図である。 図6のネットワークトポロジの変更判定・経路制御処理のフローチャートである。 図6の並列プロセス制御処理のフローチャートである。 図6のボトルネックの検出・迂回経路制御処理のフローチャートである。
[並列分散処理システムの概略]
以下、本発明の実施形態について、適宜図面を参照しながら詳細に説明する。
図1を参照し、本発明の実施形態に係る並列分散処理システム1の概略について、説明する。
並列分散処理システム1は、処理装置2を使用してデータの並列分散処理を行うものであり、処理装置2と、管理装置10とを備える。
処理装置2は、管理装置10からの制御に応じて並列分散処理を行うものであり、サーバ(端末装置)20と、スイッチ30と、通信回線40とを備える。
管理装置10は、並列分散処理に必要な情報を処理装置2から収集して管理すると共に、処理装置2を制御するものである。具体的には、管理装置10は、後記するネットワークトポロジの変更判定、経路制御、並列プロセス制御、ボトルネックの検出、及び、迂回経路制御といった処理を行う(図6)。
サーバ20は、送信元端末装置20、情報処理端末装置20、又は、送信先端末装置20のうち、何れかの1以上の役割を担うものである。
送信元端末装置20は、並列分散処理の対象となるデータを蓄積すると共に、蓄積したデータを予め指定されたサイズ(粒度)で分割してパケット化し、情報処理端末装置20に送信するサーバ20である。
情報処理端末装置20は、送信元端末装置20から受信したデータのパケットに情報処理を施して、処理結果を送信先端末装置20に送信するサーバ20である。
送信先端末装置20は、情報処理端末装置20から受信したデータのパケットを所定の順番で配列することでデータを復元し、蓄積するサーバ20である。
スイッチ30は、サーバ20の間でパケット転送制御を行うものである。本実施形態では、経路制御技術としてOpenFlowを用いるため、スイッチ30は、OpenFlow対応スイッチであることとする。
通信回線40は、例えば、サーバ20及びスイッチ30を接続するLAN(Local Area Network)ケーブルである。
<情報処理の一例>
以下、並列分散処理システム1で行われる情報処理の一例について、説明する。
並列分散処理システム1は、例えば、情報処理として、映像データに対し、トランスコーディング等の映像加工処理を行うことができる。すなわち、並列分散処理システム1は、送信元端末装置20に蓄積された映像データを分割してパケット化し、各情報処理端末装置20に送信する。また、並列分散処理システム1は、各情報処理端末装置20が、この映像データのパケットに映像加工処理を並列で施し、映像加工処理が施された映像データのパケットを送信先端末装置20に送信する。そして、並列分散処理システム1は、送信先端末装置20が、映像加工処理が施された映像データのパケットを所定の順番で配列することで映像加工処理済みのデータを復元し、蓄積する。
なお、本発明での情報処理は、映像加工処理に限定されないことは言うまでもない。
<OpenFlowの説明>
図2を参照し、並列分散処理システム1で用いるOpenFlowについて、具体的に説明する。
なお、図2では、OpenFlowコントローラを「コントローラ」と略記し、OpenFlow対応スイッチ30を「スイッチ」と略記した。
また、図2では、OpenFlowコントローラ10とOpenFlow対応スイッチ30との間において、経路制御に伴う信号及び情報の入出力を、一点鎖線で図示した。
本実施形態では、図1の管理装置10が、OpenFlowコントローラ10に相当する。また、図1のスイッチ30がOpenFlow対応スイッチ30に相当する。
図2に示すように、OpenFlow対応スイッチ30は、従来のネットワークスイッチにおける経路制御とパケット転送制御のうち、パケット転送制御のみを行う。一方、OpenFlowコントローラ10は、OpenFlow対応スイッチ30に対して、経路の集中制御を行う。
OpenFlowでは、フローが経路制御単位であり、各フローに、アクションと、統計情報と、マッチングルールという概念が適用されている。
本実施形態では、宛先ポート番号で識別される一つのデータ転送処理がフローである。言い換えるなら、各フローは、タスクを実行するサーバ20で起動するプロセスのポート番号(宛先ポート番号)で特定できる。従って、宛先ポート番号の値により、出力するスイッチポートを、フロー毎に切り換えることとする。
アクションとは、マッチングルール毎に予め設定された処理定義のことである。例えば、アクションでは、出力するスイッチポートの指定や宛先MACアドレスの書き換えによって、サーバ20とスイッチ30との間で直接経路を設定することができる。
統計情報は、例えば、フロー毎のデータ転送量(バイト数)である。ここで、コントローラ10は、隣接する2つのスイッチ30の統計情報を用いて、パケットロスの発生を判定できる。
マッチングルールとは、入力スイッチポート、送信元/宛先MAC(Media Access Control)アドレス、送信元/宛先IP(Internet Protocol)アドレス、送信元/宛先ポート番号等の識別情報により、フローを識別する規則である。ここで、パケットA(入力スイッチポート番号1、宛先ポート番号10000)、パケットB(入力スイッチポート番号2、宛先ポート番号10000)、パケットC(入力スイッチポート番号1、宛先ポート番号10001)という3つのパケットがある場合を考える。この場合、“入力スイッチポート=1”がマッチングルールであれば、パケットA,Cが同一フローとなる。また、“宛先ポート番号=10000”がマッチングルールであれば、パケットA,Bが同一フローとなる。このように、OpenFlow対応スイッチは、パケットを受信すると、保存している経路情報のマッチングルールに一致するパケットの通信について、マッチングルールに対応して定められたアクションを実行する。その結果、OpenFlowでは、フロー毎に経路50を制御することができる。さらに、OpenFlowでは、あるパケットが複数のマッチングルールに一致する場合、優先度が高いマッチングルールに対応して定められたアクションを実行する。
ここで、フローとプロセスとの関係について、補足する。
前記したように、フローとプロセスとが対応することから、サーバ20で起動したプロセス間でのデータ転送処理が1フローとなる。例えば、送信元端末装置20で起動したプロセスと情報処理端末装置20で起動したプロセスとの間でのデータ転送処理が1フローとなり、情報処理端末装置20で起動したプロセスと送信先端末装置20で起動したプロセスとの間でのデータ転送処理が1フローとなる。
[管理装置の構成]
図3を参照し、管理装置10の構成について、説明する。
なお、図3では、並列分散処理に必要な情報の入出力を分かり易くするため、管理装置10とサーバ20との間で直接、各情報の入出力を示す矢印を図示したが、実際には、スイッチ30を介して各情報が入出力される。
図3に示すように、管理装置10は、タスク入力手段110と、情報管理手段120と、情報表示手段130と、並列プロセス計算手段(端末装置決定手段)140と、並列プロセス制御手段(端末装置制御手段)150と、経路計算手段160と、経路制御手段170とを備える。
タスク入力手段110は、利用者がタスク情報を入力するものである。例えば、タスク入力手段110は、ウェブブラウザのようなインターフェースを介して、利用者にタスク情報を入力させてもよく、テキストファイルにタスク情報の内容を記述させてもよい。そして、タスク入力手段110は、入力されたタスク情報を、並列プロセス計算手段140に出力する。
利用者とは、例えば、並列分散処理システム1の管理者や使用者のことである。
タスク情報とは、並列分散処理に必要な情報であり、例えば、タスクを実行するサーバ20の識別情報と、並列分散処理を行う数(並列化数)と、データの分割サイズ(粒度)、並列分散処理に用いるデータ(ファイル)へのパスが含まれる。
例えば、サーバ20の識別情報には、送信元端末装置20としてタスクを実行するサーバ20のIPアドレスと、送信先端末装置20としてタスクを実行するサーバ20のIPアドレスとが含まれる。
また、並列化数には、並列分散処理を行う数、つまり、情報処理端末装置20で起動するプロセスの数が含まれる。例えば、並列化数は、ある映像の色を変える映像加工処理を場合、その映像加工処理を行う情報処理端末装置20で起動されるプロセスの数を示す。
なお、プロセスとは、サーバ20の役割に応じた情報処理を実行するプログラムのことであり、後記する並列処理実行手段230により起動される(不図示)。本実施形態では、送信元端末装置20、情報処理端末装置20及び送信先端末装置20の何れの役割であっても、各サーバ20がプロセスを1つだけ起動することとする。
情報管理手段120は、並列分散処理に必要な情報を管理(蓄積)するものであり、ネットワークトポロジ検出手段121と、ボトルネック判定手段122と、タスク完了判定手段123と、蓄積手段124とを備える。
ネットワークトポロジ検出手段121は、後記する蓄積手段124に蓄積されたノード情報に基づいて、ネットワークトポロジを検出するものである。また、ネットワークトポロジ検出手段121は、検出したネットワークトポロジの差分により、ネットワークトポロジが変更されたか否かを判定する。そして、ネットワークトポロジ検出手段121は、ネットワークトポロジが変更された場合、変更後のネットワークトポロジを示すネットワークトポロジ情報を生成し、蓄積手段124に蓄積する。
<ネットワークトポロジの変更>
図4を参照し、ネットワークトポロジの変更について、具体的に説明する(適宜図3参照)。
なお、図4では、スイッチ30a,30bに接続されたサーバ20の図示を省略した。
ネットワークトポロジとは、処理装置2に含まれるノード(サーバ20及びスイッチ30)の接続形態のことである。
ここで、ノード情報は、サーバ20に接続されたスイッチ30や、スイッチ30に接続されたサーバ20又は他のスイッチ30を示す。このため、ネットワークトポロジ検出手段121は、全ノードのノード情報を用いれば、各ノードに接続された他のノードが分かるため、ノード同士の接続形態を把握することができる。
経路50とは、1以上のスイッチ30及び通信回線40により形成された、2台のサーバ20を接続する通信路のことである。本実施形態では、フロー毎に経路50が設定される。
図4(a)に示すように、3台のスイッチ30a,30b,30cがネットワーク内に存在することとする。そして、スイッチ30a,30bが通信回線40で接続され、スイッチ30b,30cが別の通信回線40で接続されていることとする。この場合、ネットワークトポロジ検出手段121は、図4(a)のネットワークトポロジを検出し、検出したネットワークトポロジを示すネットワークトポロジ情報を生成し、蓄積手段124に蓄積する。さらに、ネットワークトポロジ検出手段121は、ネットワークトポロジが存在しない状態において、図4(a)のネットワークトポロジを検出したため、ネットワークトポロジが変更されたと判定する。
なお、図4(a)では、スイッチ30a,30bを直接接続する経路50が1本存在することになる。
図4(b)に示すように、図4(a)のネットワークトポロジに、スイッチ30a,30cの間に別の通信回線40を追加したこととする。この場合、ネットワークトポロジ検出手段121は、図4(b)のネットワークトポロジを検出し、検出したネットワークトポロジを示すネットワークトポロジ情報を生成する。そして、ネットワークトポロジ検出手段121は、蓄積手段124に蓄積されている図4(a)のネットワークトポロジを示すネットワークトポロジ情報を、図4(b)のネットワークトポロジを示すネットワークトポロジ情報で更新する。さらに、ネットワークトポロジ検出手段121は、図4(a)及び図4(b)のネットワークトポロジに差分があるため、ネットワークトポロジが変更されたと判定する。
なお、図4(b)では、スイッチ30a,30bを直接接続する経路50と、スイッチ30a,30c,30bの順で経由する経路50との計2本存在がすることになる。
図4(c)に示すように、図4(b)のネットワークトポロジから、スイッチ30a,30bの間で通信回線40を削除したこととする。この場合、ネットワークトポロジ検出手段121は、図4(c)のネットワークトポロジを検出し、検出したネットワークトポロジを示すネットワークトポロジ情報を生成する。そして、ネットワークトポロジ検出手段121は、蓄積手段124に蓄積されている図4(b)のネットワークトポロジを示すネットワークトポロジ情報を、図4(c)のネットワークトポロジを示すネットワークトポロジ情報で更新する。さらに、ネットワークトポロジ検出手段121は、図4(b)及び図4(c)のネットワークトポロジに差分があるため、ネットワークトポロジが変更されたと判定する。
なお、図4(c)では、スイッチ30a,30c,30bの順で経由する経路50が1本存在することになる。このように、ネットワークトポロジの変更に従い、通信可能な経路50が変動することになる。
さらに、ネットワークトポロジ検出手段121は、図4(a)〜図4(c)のように、ネットワークトポロジが変更された場合、以下の処理を行う。
ネットワークトポロジ検出手段121は、蓄積手段124に蓄積された経路情報に基づいて、ネットワークトポロジの変更により主要経路の通信回線40が削除されたか否かを判定する。例えば、図4(b)の経路50が主要経路であり、その後、図4(c)のようにスイッチ30a,30bの間で通信回線40が削除された場合を考える。この場合、ネットワークトポロジ検出手段121は、主要経路である経路50に含まれる通信回線40が削除されたため、削除された通信回線40の識別情報を、通信回線削除情報として、経路計算手段160に出力する。
<主要経路の説明>
図5を参照し、主要経路60について、具体的に説明する。
主要経路60とは、2台のサーバ20を接続する1以上の経路50(図4)のうち、テータ転送に最適な経路50のことである。例えば、2台のサーバ20が4本の経路50で接続されている場合、4本の経路50のうち、最適な1本の経路50が、主要経路60となる(不図示)。
なお、主要経路60の計算手法は、経路計算手段160で説明する。
さらに、図5に示すように、2台のサーバ20が送信元端末装置20の役割を担い、3台のサーバ20が情報処理端末装置20の役割を担い、1台のサーバ20が送信先端末装置20の役割を担う場合を考える。
なお、図5では、サーバ20の間に配置されるスイッチ30の図示を省略した。
この場合、2台の送信元端末装置20と、3台の情報処理端末装置20との間では、主要経路60が、両装置の台数とを乗じた6本となる。さらに、3台の情報処理端末装置20と、1台のサーバ20が送信先端末装置20との間では、主要経路60が、両装置の台数とを乗じた3本となる。つまり、図5の例では、主要経路60が合計9本となる。
図3に戻り、管理装置10の構成について、説明を続ける。
ボトルネック判定手段122は、後記する転送コネクション情報と、経路情報と、タスク完了情報と、ノード情報と、データ転送量情報とに基づいて、実行中のタスクでボトルネックが発生したか否かを判定するものである。つまり、ボトルネック判定手段122は、ネットワークに関する情報だけでなく、プロセスに関する情報も考慮して、実行中のタスクでボトルネックが発生したか否かを判定する。
<ボトルネックの判定>
ボトルネックの判定について、具体的に説明する。
具体的には、ボトルネック判定手段122は、スイッチ30から送信されたデータ転送量情報に基づいて、2台のスイッチ30の間で発生したパケットロスを検出する。そして、ボトルネック判定手段122は、パケットロスが検出された場合、それらスイッチ30の間に接続された通信回線40にボトルネックが発生したと判定する。
通信回線40にボトルネックが発生した場合、ボトルネック判定手段122は、経路情報及びノード情報に基づいて、何れのフローでボトルネックが発生したかを特定する。つまり、ボトルネック判定手段122は、経路情報がフロー毎の主要経路を示し、ノード情報がネットワークトポロジを示すため、ボトルネックが発生した通信回線40を使用しているフロー(つまり、ボトルネックとなるフロー)を特定することができる。
ボトルネックとなるフローを特定できた場合、ボトルネック判定手段122は、転送コネクション情報及びタスク完了情報に基づいて、実行中のタスクでボトルネックが発生したか否かを判定する。つまり、ボトルネック判定手段122は、転送コネクション情報がタスクとプロセスとフローとの対応関係を示し、タスク完了情報がタスクの完了又は実行中を示すため、ボトルネックとなるフローを使用している実行中のタスクを特定することができる。
ここで、ボトルネック判定手段122は、実行中のタスクでボトルネックが発生した場合、ボトルネックが発生した通信回線40の識別情報と、その通信回線40を使用しているフローの識別情報とを、ボトルネック情報として、経路計算手段160に出力すると共に、蓄積手段124に蓄積する。
一方、ボトルネック判定手段122は、通信回線40にボトルネックが発生していない場合、何の処理も行わない。
さらに、ボトルネックとなるフローを特定できない場合、又は、実行中のタスクでボトルネックが発生していない場合もある。この場合も、ボトルネック判定手段122は、ボトルネックが発生した通信回線40がフローで使用されていないため、ボトルネックを放置してもタスクの実行に影響がなく、何の処理も行わない。
タスク完了判定手段123は、サーバ20から入力されたタスク完了情報に基づいて、タスクが完了したか否かを判定するものである。つまり、タスク完了判定手段123は、タスク完了情報が入力された場合、そのタスクが完了したと判定する。そして、タスクが完了した場合、タスク完了判定手段123は、完了したタスクの転送コネクション情報を、蓄積手段124から削除する。
また、タスク完了判定手段123は、蓄積手段124に蓄積された転送コネクション情報に基づいて、実行中のタスクが有るか無いかを判定する。つまり、タスク完了判定手段123は、蓄積手段124に転送コネクション情報が蓄積されている場合、実行中のタスクが有ると判定する。一方、タスク完了判定手段123は、蓄積手段124に転送コネクション情報が蓄積されていない場合、実行中のタスクが無いと判定する。そして、実行中のタスクが無い場合、タスク完了判定手段123は、経路計算指示を経路計算手段160に出力する。
蓄積手段124は、並列プロセス制御手段150が生成した転送コネクション情報と、経路計算手段160が生成した経路情報及び迂回経路情報と、ネットワークトポロジ検出手段121が生成したネットワークトポロジ情報と、ボトルネック判定手段122が生成したボトルネック情報とを蓄積するメモリ、ハードディスク等の記憶装置である。
情報表示手段130は、蓄積手段124に蓄積されたネットワークトポロジ情報、経路情報、及び、ボトルネック情報を、利用者に提示するものである。また、情報表示手段130は、経路計算手段160から入力されたメッセージを利用者に提示する。例えば、情報表示手段130は、ネットワークトポロジ情報、経路情報、ボトルネック情報及びメッセージを、図示を省略したディスプレイに表示する。
並列プロセス計算手段140は、タスク入力手段110から入力されたタスク情報に基づいて、タスクを実行するサーバ20を決定するものである。
例えば、並列プロセス計算手段140は、タスクを実行するサーバ20を、以下のように決定する。
この場合、並列プロセス計算手段140は、タスク情報の識別情報を参照し、送信元端末装置20及び送信先端末装置20を決定する。また、並列プロセス計算手段140は、送信元端末装置20及び送信先端末装置20として決定されなかった残りサーバ20のうち、タスク情報の並列化数と同じ台数のサーバ20を、ラウンドロビンにより、情報処理端末装置20として決定する。
そして、並列プロセス計算手段140は、決定したサーバ20の識別情報と、各サーバ20で起動するプロセスの数とを示すサーバ特定情報を、並列プロセス制御手段150に出力する。
並列プロセス制御手段150は、並列プロセス計算手段140から入力されたサーバ特定情報に従って、プロセスの起動と、転送コネクションの作成とをサーバ20に命令し、並列分散処理に必要なパラメータを通知するものである。このとき、並列プロセス制御手段150は、プロセス毎に別の宛先ポート番号を付与し、かつ、プロセスを複数起動できるため、データの転送処理や映像加工処理を並列化することができる。
なお、パラメータとは、例えば、映像加工処理におけるトランスコードの有無やビットレートのことである。
また、並列プロセス制御手段150は、前記したサーバ特定情報に従って、タスク開始により転送コネクション情報を生成し、生成した転送コネクション情報を蓄積手段124に蓄積する。
転送コネクション情報とは、例えば、タスクの識別情報と、サーバ特定情報に含まれるサーバ20の識別情報と、フローの識別情報と、フロー毎に固有のプロセスのポート番号とを対応付けた情報である。
例えば、タスクの識別情報と、並列分散処理システム1で固有に付けられたタスクのID(IDentification)である。
また、例えば、フローの識別情報とは、並列分散処理システム1で固有に付けられたフローのIDである。
経路計算手段160は、経路を計算するものである。
本実施形態では、経路計算手段160は、全ての主要経路の計算(図7のステップS17)と、削除された主要経路の代わりとなる新たな主要経路の計算(図7のステップS14)と、迂回経路の計算(図9のステップS31)という、3種類の経路計算を行う。以下、3種類の経路計算について、順に説明する。
<1種類目:全ての主要経路の計算>
経路計算手段160は、蓄積手段124に蓄積されているネットワークトポロジ情報に基づいて、フローが発生する全てのサーバ20について、これらサーバ20の間を結ぶ最短経路を主要経路として計算する。例えば、経路計算手段160は、ダイクストラ法での最短経路を主要経路として計算する。そして、経路計算手段160は、計算した主要経路を示す経路情報を生成し、生成した経路情報を経路制御手段170に出力すると共に、蓄積手段124に蓄積する。
このダイクストラ法は、例えば、参考文献「E.W.Dijkstra, ”A note on two problems in connexion with graphs”, Numerische Mathematik, (1959), Volume 1, Number 1,pp.269-271」に記載されている。
<2種類目:新たな主要経路の計算>
経路計算手段160は、ネットワークトポロジ検出手段121から通信回線削除情報が入力された場合、蓄積手段124に蓄積されているネットワークトポロジ情報に基づいて、新たな主要経路を計算する。このネットワークトポロジ情報は、ネットワークトポロジの変更が反映されている。例えば、経路計算手段160は、通信回線削除情報が示す通信回線40を使用していた主要経路に代わりに、ダイクストラ法での最短経路を新たな主要経路として計算する。そして、経路計算手段160は、計算した新たな主要経路を示す経路情報を生成し、生成した経路情報を経路制御手段170に出力すると共に、蓄積手段124に蓄積する。
<3種類目:迂回経路の計算>
経路計算手段160は、ボトルネック判定手段122からボトルネック情報が入力された場合、転送コネクション情報と、経路情報と、タスク完了情報と、ノード情報とに基づいて、タスクを実行中のプロセスで使用しているフローを迂回可能な迂回経路を計算する。つまり、経路計算手段160は、ネットワークに関する情報だけでなく、プロセスに関する情報も考慮して、迂回経路を計算する。
具体的には、経路計算手段160は、転送コネクション情報及びタスク完了情報に基づいて、実行中のタスクが使用しているプロセス及びフローを特定する。つまり、経路計算手段160は、転送コネクション情報がタスクとプロセスとフローとの対応関係を示し、タスク完了情報がタスクの完了又は実行中を示すため、実行中のタスクが使用しているプロセス及びフローを特定することができる。
次に、経路計算手段160は、経路情報及びノード情報に基づいて、実行中のタスクが使用しているフローや、重要度の高いタスク(例えば、ストリーム処理タスク)に影響を与えないように迂回経路を計算する。例えば、経路計算手段160は、蓄積手段124に蓄積されているネットワークトポロジ情報から、ボトルネック情報が示す通信回線40を除いた仮想ネットワークトポロジを用いて、ダイクストラ法での最短経路を迂回経路として計算する。
そして、経路計算手段160は、迂回経路が存在する場合に迂回可能と判定し、迂回経路が存在しない場合に迂回不可能と判定する。例えば、経路計算手段160は、2台のサーバ20の間で1本の経路しか存在せず、その1本の経路でボトルネックが検出された場合、迂回不能と判定する。
迂回可能な場合、経路計算手段160は、計算した迂回経路を示す迂回経路情報を生成し、生成した迂回経路情報を経路制御手段170に出力すると共に、蓄積手段124に蓄積する。
一方、迂回不可能な場合、経路計算手段160は、情報表示手段130を介して、予め設定されたメッセージを利用者に提示する。このメッセージは、並列分散処理システム1の利用者にネットワークリソースの追加を提案するメッセージである。
経路制御手段170は、経路計算手段160から入力された経路情報を、この経路情報が示す主要経路上のスイッチ30に対して送信すると共に、蓄積手段124に蓄積するものである。つまり、平常状態では、経路計算手段160は、フローが主要経路を通るように経路制御することになる。
また、経路制御手段170は、経路計算手段160から入力された迂回経路情報を、この迂回経路情報が示す経路上のスイッチ30に対して送信すると共に、蓄積手段124に蓄積する。ここで、フローを迂回経路に迂回させる際、経路制御手段170は、OpenFlowにおける優先度を高くすることで、迂回経路を通るように経路制御できる。
ボトルネックとなっているフローの経路を全て一度に迂回させると、ボトルネックが発生していなかったフローの経路にも、大量の通信がなだれ込み、新たなボトルネックを誘発することがある。これを防止するため、経路制御手段170は、予め設定された数のフロー(例えば、1個のフロー)について、迂回経路情報をスイッチに送信する。
さらに、経路制御手段170は、迂回経路情報に生存時間を付加して、生存時間が経過すると、迂回経路情報を無効にしてもよい。この場合、経路制御手段170は、迂回前の経路情報を再び使用すると共に、無効になった迂回経路情報を蓄積手段124から削除してもよい。
[サーバの構成]
以下、サーバ20の構成について、説明する。
図3に示すように、サーバ20は、命令実行手段210と、情報収集手段220と、並列処理実行手段230と、蓄積手段240とを備える。
命令実行手段210は、管理装置10から命令を受信し、受信した命令を並列処理実行手段230に出力することで、この命令を並列処理実行手段230に実行させるものである。
情報収集手段220は、ARP(Address Resolution Protocol)パケットやLLDPパケットの交換により、隣接するノードを発見するものである。そして、情報収集手段220は、発見したノード情報を、サーバ20の識別情報と共に、管理装置10に送信する。
並列処理実行手段230は、命令実行手段210から入力される命令に従って、並列処理を実行するものである。具体的には、並列処理実行手段230は、この命令に従って、タスクの実行に必要なプロセスを起動し、転送コネクションを作成する。
具体的には、並列処理実行手段230は、送信元端末装置20、情報処理端末装置20及び送信先端末装置20の役割に応じたプロセスを起動し、命令を実行する。
例えば、このサーバ20が送信元端末装置20として動作する場合、並列処理実行手段230は、映像データのパケットを送信するプロセスを起動する。そして、並列処理実行手段230は、起動したプロセスにより、蓄積手段240に蓄積されているデータを分割してパケット化し、情報処理端末装置20に送信する。
また、例えば、このサーバ20が情報処理端末装置20として動作する場合、並列処理実行手段230は、映像加工処理を施すプロセスを起動する。そして、並列処理実行手段230は、起動したプロセスにより、送信元端末装置20から受信したデータのパケットに情報処理を施して、処理結果を送信先端末装置20に送信する。
また、例えば、このサーバ20が送信先端末装置20として動作する場合、並列処理実行手段230は、映像加工処理が施された映像データのパケットを受信し、所定の順番で配列して復元するプロセスを起動する。そして、並列処理実行手段230は、起動したプロセスにより、情報処理端末装置20から受信したデータのパケットを、所定の順番で配列することで情報処理済みのデータを復元し、蓄積手段240に蓄積する。
また、並列処理実行手段230は、予め設定されたタスク完了条件を満たす場合、タスクの完了を示すタスク完了情報を管理装置10に送信する。
このタスク完了条件とは、タスクが完了したことを示す条件である。例えば、タスク完了条件は、このサーバ20が送信先端末装置20として動作する場合、送信先端末装置20が情報処理端末装置20から、情報処理後のデータを全て受信したという条件である。
蓄積手段240は、並列分散処理の対象となるデータを蓄積するメモリ、ハードディスク等の記憶装置である。
[スイッチの構成]
図3に示すように、スイッチ30は、命令実行手段310と、情報収集手段320と、パケット転送手段(データ転送手段)330とを備える。
命令実行手段310は、管理装置10から経路情報を受信し、受信した経路情報に従ってパケット転送手段330にパケットの転送処理を実行させるものである。
情報収集手段320は、OpenFlowの統計情報として、スイッチ30のデータ転送量を収集し、収集したデータ転送量を示すデータ転送量情報を管理装置10に送信するものである。
また、情報収集手段320は、ARPパケットやLLDPパケットの交換により、隣接するノードを発見する。そして、情報収集手段320は、発見したノード情報を、管理装置10に送信する。
パケット転送手段330は、命令実行手段310から入力された経路情報に従い、受信したデータのパケットを転送するものである。また、パケット転送手段330は、並列分散処理に必要な情報を、管理装置10とサーバ20との間で転送する。
[並列分散処理システムの動作]
以下、図6を参照し、並列分散処理システム1の動作について、説明する(適宜図3参照)。
管理装置10は、処理装置2(サーバ20及びスイッチ30)から送信されたノード情報を用いて、ネットワークトポロジの変更判定・経路制御処理を行い、経路情報を処理装置2(スイッチ30)に送信する(ステップS1)。
管理装置10は、入力されたタスク情報に従って、並列プロセス制御処理を行い、命令を処理装置2(サーバ20)に送信する(ステップS2)。
管理装置10は、処理装置2(スイッチ30)から送信されたデータ転送量情報を用いて、ボトルネックの検出・迂回経路制御処理を行い、迂回経路情報を処理装置2(スイッチ30)に送信する(ステップS3)。
[ネットワークトポロジの変更判定・経路制御処理]
図7を参照して、ネットワークトポロジの変更判定・経路制御処理について、具体的に説明する(適宜図3参照)。
管理装置10は、情報管理手段120によって、サーバ20及びスイッチ30から、ノード情報を収集(受信)する。
管理装置10は、ネットワークトポロジ検出手段121によって、ノード情報に基づいて、ネットワークトポロジを検出する。
管理装置10は、ネットワークトポロジ検出手段121によって、検出したネットワークトポロジの差分により、ネットワークトポロジが変更されたか否かを判定する(ステップS10)。
ネットワークトポロジが変更された場合(ステップS10でYes)、管理装置10は、ステップS11の処理に進む。
管理装置10は、ネットワークトポロジ検出手段121によって、蓄積手段124に蓄積されているネットワークトポロジ情報を、変更後のネットワークトポロジを示すネットワークトポロジ情報で更新する(ステップS11)。
管理装置10は、情報表示手段130によって、ネットワークトポロジ情報、経路情報、及び、ボトルネック情報を利用者に提示する(ステップS12)。
管理装置10は、ネットワークトポロジ検出手段121によって、経路情報に基づいて、主要経路上の通信回線40が削除されたか否かを判定する(ステップS13)。
主要経路上の通信回線40が削除された場合(ステップS13でYes)、管理装置10は、ステップS14の処理に進む。
管理装置10は、ネットワークトポロジ検出手段121によって、通信回線削除情報を生成すると共に、削除された通信回線40を使用している経路情報を蓄積手段124から削除する。
管理装置10は、経路計算手段160によって、変更後のネットワークトポロジ情報に基づいて、通信回線削除情報が示す通信回線40を使用していた主要経路に代わりに、新たな主要経路を計算し、計算した新たな主要経路を示す経路情報を生成する(ステップS14)。
管理装置10は、経路制御手段170によって、ステップS14で生成した経路情報を、この経路情報が示す主要経路上のスイッチ30に対して送信すると共に、蓄積手段124に蓄積する(ステップS15)。
管理装置10は、タスク完了判定手段123によって、並列プロセス制御手段150から入力された転送コネクション情報に基づいて、実行中のタスクが有るか無いかを判定する(ステップS16)。
実行中のタスクが有る場合(ステップS16でYes)、管理装置10は、ステップS16の処理に戻り、実行中のタスクが終了するのを待つ。これによって、経路制御により、転送中のフローの経路が大幅に変わり、新たなボトルネックの誘発を防止できる。
一方、実行中のタスクが無い場合(ステップS16でNo)、管理装置10は、ステップS17の処理に進む。
管理装置10は、経路計算手段160によって、ネットワークトポロジ情報に基づいて、フローが発生し得る全てのサーバ20について主要経路を計算し、計算した主要経路を示す経路情報を生成する(ステップS17)。
管理装置10は、経路制御手段170によって、ステップS17で生成した経路情報を、この経路情報が示す主要経路上のスイッチ30に対して送信すると共に、蓄積手段124に蓄積する(ステップS18)。
ネットワークトポロジが変更されていない場合(ステップS10でNo)、又は、ステップS18の後、管理装置10は、ネットワークトポロジの変更判定・経路制御処理を終了する。
[並列プロセス制御処理]
図8を参照して、並列プロセス制御処理について、具体的に説明する(適宜図3参照)。
この図8では、タスク情報の入力前に、各サーバ20の間で主要経路の計算と経路制御とが完了していることとする。
管理装置10は、タスク入力手段110によって、タスク情報が入力され、入力されたタスク情報を並列プロセス計算手段140に出力する(ステップS20)。
管理装置10は、並列プロセス計算手段140によって、タスク情報に基づいて、タスクを実行するサーバ20を決定して、サーバ特定情報を生成する(ステップS21:並列プロセス計算)。
管理装置10は、並列プロセス制御手段150によって、サーバ特定情報に従って、タスク開始により転送コネクション情報を生成すると共に、プロセスの起動と、転送コネクションの作成とをサーバ20に命令する(ステップS22:並列プロセス制御)。
管理装置10は、並列プロセス制御手段150によって、転送コネクション情報を蓄積手段124に蓄積する(ステップS23)。
管理装置10は、タスク完了判定手段123によって、タスクが完了したか否かを判定する(ステップS24)。
タスクが完了していない場合(ステップS24でNo)、管理装置10は、ステップS24の処理に戻る。
タスクが完了した場合(ステップS24でYes)、管理装置10は、ステップS25の処理に進む。
管理装置10は、タスク完了判定手段123によって、完了したタスクの転送コネクション情報を、蓄積手段124から削除する(ステップS25)。
[ボトルネックの検出・迂回経路制御処理]
図9を参照して、ボトルネックの検出・迂回経路制御について、具体的に説明する(適宜図3参照)。
管理装置10は、ボトルネック判定手段122によって、実行中のタスクでボトルネックが発生したか否かを判定する(ステップS30)。
実行中のタスクでボトルネックが発生した場合(ステップS30でYes)、管理装置10は、ステップS31の処理に進む。
一方、実行中のタスクでボトルネックが発生していない場合(ステップS30でNo)、管理装置10は、ボトルネックの検出・迂回経路制御処理を終了する。
管理装置10は、ボトルネック判定手段122によって、ボトルネック情報を経路計算手段160に出力する。
管理装置10は、経路計算手段160によって、ボトルネック情報に基づいて迂回経路を計算し、迂回経路の計算結果に基づいて、迂回可能か否かを判定する(ステップS31)。
迂回可能な場合(ステップS31でYes)、管理装置10は、ステップS32の処理に進む。
管理装置10は、経路計算手段160によって、経路制御手段170に迂回経路情報を出力する。
管理装置10は、経路制御手段170によって、経路情報を、この経路情報が示す主要経路上のスイッチ30に対して送信すると共に、蓄積手段124に蓄積し(ステップS32)、ステップS30の処理に戻る。
一方、迂回不可能な場合(ステップS31でNo)、管理装置10は、ステップS33の処理に進む。
管理装置10は、経路計算手段160によって、ネットワークリソースの追加を提案するメッセージを出力し(ステップS33)、ステップS30の処理に戻る。
つまり、管理装置10は、実行中のタスクでボトルネックが発生していないと判定されるまで、ボトルネックの検出・迂回経路制御処理を繰り返す。
以上のように、本発明の実施形態に係る管理装置10は、プロセスに関する情報と、ネットワークに関する情報との両方を用いるため、ボトルネックを正確に検出できると共に、新たなボトルネックを誘発させずに経路制御を行うことができる。
また、管理装置10は、主要経路が削除された場合でも、最適な主要経路を計算できるため、新たなボトルネックを誘発させずに経路制御を行うことができる。
また、管理装置10は、メッセージにより、並列分散処理システムの利用者にネットワークリソースの追加を提案することができる。
本発明は、実施形態に限定されず、その趣旨を逸脱しない範囲で様々な変形を加えることができる。以下、本発明の変形例について、具体的に説明する。
(変形例1)
前記した実施形態では、ステップS14(図7)のように、主要経路上の通信回線40が削除されたときに、新たな主要経路を計算しているが、本発明は、これに限定されない。
例えば、経路計算手段160は、下記参考文献に記載の経路計算手法により、事前に複数の主要経路を計算し、計算した主要経路を示す経路情報を、蓄積手段124に蓄積させてもよい。
参考文献:J.Y.Yen.,”Finding the K shortest loopless paths in a network.”,Management Science, 17:712-716, 1971
(変形例2)
前記した実施形態では、ステップS31(図9)のように、ボトルネックの検出後、迂回経路を計算しているが、本発明は、これに限定されない。
例えば、経路計算手段160は、ステップS17で事前に迂回経路を計算し、計算した迂回経路を示す迂回経路情報を、蓄積手段124に蓄積してもよい。
(変形例3)
前記した実施形態では、ネットワークトポロジを表示するとしているが、本発明は、これに限定されない。
例えば、蓄積手段124に蓄積されている情報を用いて、プロセス毎のフローをネットワークトポロジに関連付けて表示してもよい。これによって、利用者は、ネットワークリソースの配置の偏りや、削減可能なネットワークリソースの有無を、容易に判断することができる。
(変形例4)
前記した実施形態では、宛先ポート番号をマッチングルールとして用いることとしたが、このマッチングルールは、OpenFlowで利用可能であれば、宛先ポート番号に限定されない。
(変形例5)
前記した実施形態では、サーバ20が、送信元端末装置20、情報処理端末装置20、又は、送信先端末装置20の何れかの役割を担うものとして説明したが、本発明は、これに限定されない。
つまり、サーバ20は、決まった役割を予め与える必要はない。また、サーバ20は、送信元端末装置20及び送信先端末装置20を兼用するなど、複数の役割を同時に担ってもよい。
(変形例6)
前記した実施形態では、サーバ20又はスイッチ30が定期的にノード情報を送信することとして説明したが、本発明は、これに限定されない。
例えば、サーバ20又はスイッチ30が、隣接ノードが変更されたときにノード情報を送信し、このノード情報に基づいて、ネットワークトポロジ検出手段121が、ネットワークトポロジの変更を判定してもよい。
(変形例7)
前記した実施形態では、経路計算手段160がダイクストラ法で経路計算を行うこととして説明したが、本発明は、これに限定されない。
例えば、経路計算手段160は、利用者が予め設定した通信回線40毎のコスト値に基づいて、最小コストとなる経路を主要経路として計算してもよい。
(変形例8)
並列プロセス計算手段140は、タスクの実行中に、蓄積手段124に蓄積されたプロセス進行情報を元に、並列化数を増減させてもよい。例えば、並列プロセス計算手段140は、予め設定した目標よりプロセス進行状況が遅れている場合に並列化数を増加させ、プロセス進行状況が目標を達成している場合に並列化数を減少させる。この場合、並列プロセス制御手段150は、並列化数の増減に応じて、増減したフローの転送コネクション情報を生成し、蓄積手段124に蓄積する。
この場合、情報収集手段220は、サーバ20でのプロセスの進行状況を収集し、収集したプロセスの進行状況を示すプロセス進行情報を管理装置10に送信する。そして、管理装置10は、サーバ20から送信されたプロセス進行情報を蓄積手段124に蓄積する。
1 並列分散処理システム
2 処理装置
10 管理装置
110 タスク入力手段
120 情報管理手段
121 ネットワークトポロジ検出手段
122 ボトルネック判定手段
123 タスク完了判定手段
124 蓄積手段
130 情報表示手段
140 並列プロセス計算手段(端末装置決定手段)
150 並列プロセス制御手段(端末装置制御手段)
160 経路計算手段
170 経路制御手段
20 サーバ(端末装置)
210 命令実行手段
220 情報収集手段
230 並列処理実行手段
240 蓄積手段
20 送信元端末装置
20 情報処理端末装置
20 送信先端末装置
30 スイッチ
310 命令実行手段
320 情報収集手段
330 パケット転送手段(データ転送手段)
40 通信回線
50 経路
60 主要経路

Claims (6)

  1. データを蓄積する端末装置である送信元端末装置と、前記送信元端末装置に蓄積されたデータに所定の情報処理を施す前記端末装置である情報処理端末装置と、前記情報処理端末装置で情報処理が施されたデータを蓄積する前記端末装置である送信先端末装置と、OpenFlowにより前記端末装置の間で前記データを転送するスイッチとを備える並列分散処理システムに用いられ、前記OpenFlowにより前記スイッチに対する経路制御を行うと共に、前記送信元端末装置のデータに前記情報処理端末装置で情報処理を施して前記送信先端末装置に送信するタスクの実行を、少なくとも前記情報処理端末装置が2台以上で並列化されるように前記端末装置に命令する管理装置であって、
    前記端末装置及び前記スイッチから、互いに接続された前記スイッチ又は端末装置を示すノード情報を受信し、受信した前記ノード情報に基づいて、前記端末装置及び前記スイッチの接続形態であるネットワークトポロジを検出するネットワークトポロジ検出手段と、
    前記ネットワークトポロジに基づいて、前記タスクを実行する端末装置で起動するプロセスのポート番号で特定され、かつ、前記OpenFlowの経路制御単位であるフロー毎に、前記端末装置の間を結ぶ最短経路又は最小コスト経路を主要経路として計算し、計算した当該主要経路を示す経路情報を生成する経路計算手段と、
    前記経路計算手段で生成した経路情報を前記スイッチに送信する経路制御手段と、
    前記タスクを実行する端末装置の識別情報が含まれるタスク情報を入力するタスク入力手段と、
    前記タスク情報に基づいて、前記タスクを実行する端末装置を決定する端末装置決定手段と、
    前記端末装置決定手段で決定された端末装置の識別情報と、前記フロー毎に固有のプロセスのポート番号とを対応付けた転送コネクション情報を生成し、前記プロセスの起動と、前記転送コネクションの作成とを前記端末装置に命令する端末装置制御手段と、
    前記転送コネクション情報と、前記経路情報と、前記タスク完了情報と、前記ノード情報と、前記データ転送量情報とに基づいて、実行中の前記タスクでボトルネックが発生したか否かを判定するボトルネック判定手段と、を備え、
    前記経路計算手段は、
    前記実行中のタスクでボトルネックが発生した場合、前記転送コネクション情報と、前記経路情報と、前記タスク完了情報と、前記ノード情報とに基づいて、前記タスクを実行中のプロセスで使用しているフローの迂回経路を計算して、計算した当該迂回経路を示す迂回経路情報を生成することを特徴とする管理装置。
  2. 前記ネットワークトポロジ検出手段は、
    前記ネットワークトポロジの差分により、前記ネットワークトポロジが変更されたか否かを判定し、前記ネットワークトポロジが変更された場合、前記経路情報に基づいて、前記主要経路が削除されたか否かを判定し、
    前記経路計算手段は、
    前記主要経路が削除された場合、変更された前記ネットワークトポロジに基づいて、削除された前記主要経路の代わりとなる主要経路を計算することを特徴とする請求項1に記載の管理装置。
  3. 前記経路制御手段は、予め設定された数の前記フローについて、前記経路計算手段が生成した迂回経路情報を前記スイッチに送信することを特徴とする請求項1又は請求項2に記載の管理装置。
  4. 前記経路計算手段は、前記迂回経路の計算結果に基づいて、前記迂回経路が存在するか否かを判定し、前記迂回経路が存在しない場合、予め設定されたネットワークリソースの追加を提案するメッセージを提示することを特徴とする請求項1から請求項3の何れか一項に記載の管理装置。
  5. データを蓄積する端末装置である送信元端末装置と、前記送信元端末装置に蓄積されたデータに所定の情報処理を施す前記端末装置である情報処理端末装置と、前記情報処理端末装置で情報処理が施されたデータを蓄積する前記端末装置である送信先端末装置と、OpenFlowにより前記端末装置の間で前記データを転送するスイッチとを備える並列分散処理システムに用いられ、前記OpenFlowにより前記スイッチに対する経路制御を行うと共に、前記送信元端末装置のデータに前記情報処理端末装置で情報処理を施して前記送信先端末装置に送信するタスクの実行を、少なくとも前記情報処理端末装置が2台以上で並列化されるように前記端末装置に命令するために、コンピュータを、
    前記端末装置及び前記スイッチから、互いに接続された前記スイッチ又は端末装置を示すノード情報を受信し、受信した前記ノード情報に基づいて、前記端末装置及び前記スイッチの接続形態であるネットワークトポロジを検出するネットワークトポロジ検出手段、
    前記ネットワークトポロジに基づいて、前記タスクを実行する端末装置で起動するプロセスのポート番号で特定され、かつ、前記OpenFlowの経路制御単位であるフロー毎に、前記端末装置の間を結ぶ最短経路又は最小コスト経路を主要経路として計算し、計算した当該主要経路を示す経路情報を生成する経路計算手段、
    前記経路計算手段で生成した経路情報を前記スイッチに送信する経路制御手段、
    前記タスクを実行する端末装置の識別情報が含まれるタスク情報を入力するタスク入力手段、
    前記タスク情報に基づいて、前記タスクを実行する端末装置を決定する端末装置決定手段、
    前記端末装置決定手段で決定された端末装置の識別情報と、前記フロー毎に固有のプロセスのポート番号とを対応付けた転送コネクション情報を生成し、前記プロセスの起動と、前記転送コネクションの作成とを前記端末装置に命令する端末装置制御手段、
    前記転送コネクション情報と、前記経路情報と、前記タスク完了情報と、前記ノード情報と、前記データ転送量情報とに基づいて、実行中の前記タスクでボトルネックが発生したか否かを判定するボトルネック判定手段、として機能させ、
    前記経路計算手段は、
    前記実行中のタスクでボトルネックが発生した場合、前記転送コネクション情報と、前記経路情報と、前記タスク完了情報と、前記ノード情報とに基づいて、前記タスクを実行中のプロセスで使用しているフローの迂回経路を計算して、計算した当該迂回経路を示す迂回経路情報を生成することを特徴とするボトルネック判定・経路制御プログラム。
  6. データを蓄積する送信元端末装置、前記送信元端末装置に蓄積されたデータに所定の情報処理を施す情報処理端末装置、又は、前記情報処理端末装置で情報処理が施されたデータを蓄積する送信先端末装置のうち、何れか1以上の役割を担う端末装置と、
    OpenFlowにより前記端末装置の間で前記データを転送するスイッチと
    請求項1に記載の管理装置と、
    を備えることを特徴とする並列分散処理システム。
JP2012229383A 2012-10-17 2012-10-17 管理装置、ボトルネック判定・経路制御プログラム、及び、並列分散処理システム Expired - Fee Related JP6088197B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012229383A JP6088197B2 (ja) 2012-10-17 2012-10-17 管理装置、ボトルネック判定・経路制御プログラム、及び、並列分散処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012229383A JP6088197B2 (ja) 2012-10-17 2012-10-17 管理装置、ボトルネック判定・経路制御プログラム、及び、並列分散処理システム

Publications (2)

Publication Number Publication Date
JP2014082650A true JP2014082650A (ja) 2014-05-08
JP6088197B2 JP6088197B2 (ja) 2017-03-01

Family

ID=50786455

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012229383A Expired - Fee Related JP6088197B2 (ja) 2012-10-17 2012-10-17 管理装置、ボトルネック判定・経路制御プログラム、及び、並列分散処理システム

Country Status (1)

Country Link
JP (1) JP6088197B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06119420A (ja) * 1992-10-06 1994-04-28 Hitachi Ltd 編集システム
JP2001237889A (ja) * 2000-02-25 2001-08-31 Nippon Telegr & Teleph Corp <Ntt> データ通信網における迂回経路制御方法及び装置
JP2011101245A (ja) * 2009-11-06 2011-05-19 Nec Corp 通信システム、経路制御装置、経路制御方法および経路制御用プログラム
JP2012023582A (ja) * 2010-07-15 2012-02-02 Hitachi Ltd 輻輳制御を備えるパケット中継装置、輻輳制御方法およびネットワークシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06119420A (ja) * 1992-10-06 1994-04-28 Hitachi Ltd 編集システム
JP2001237889A (ja) * 2000-02-25 2001-08-31 Nippon Telegr & Teleph Corp <Ntt> データ通信網における迂回経路制御方法及び装置
JP2011101245A (ja) * 2009-11-06 2011-05-19 Nec Corp 通信システム、経路制御装置、経路制御方法および経路制御用プログラム
JP2012023582A (ja) * 2010-07-15 2012-02-02 Hitachi Ltd 輻輳制御を備えるパケット中継装置、輻輳制御方法およびネットワークシステム

Also Published As

Publication number Publication date
JP6088197B2 (ja) 2017-03-01

Similar Documents

Publication Publication Date Title
US10374956B1 (en) Managing a hierarchical network
US9077640B2 (en) Method and system of congestion control in a mobile virtual network
TWI521924B (zh) 藉由鏈路利用作為回饋至平局決勝機制的多協定標籤交換〈mpls〉技術之自動化的訊務工程
JP5674107B2 (ja) 通信システム、制御装置、処理規則の設定方法およびプログラム
US8456982B2 (en) System and method for fast network restoration
JP5850068B2 (ja) 制御装置、通信システム、通信方法およびプログラム
WO2011118585A1 (ja) 情報システム、制御装置、仮想ネットワークの管理方法およびプログラム
US9705704B2 (en) Method and system of forming a mobile virtual network
RU2612599C1 (ru) Устройство управления, система связи, способ управления коммутаторами и программа
JP5044537B2 (ja) トランスポート制御サーバ、ネットワークシステム及び集約パス決定方法
JP2012049674A (ja) 通信装置、通信システム、通信方法、および通信プログラム
US9094342B2 (en) Method and system for sharing router resources via a mobile virtual router
US20130182605A1 (en) Method and system for providing a mobile virtual router
US10237202B2 (en) Network control device, network control method, and recording medium for program
WO2011118574A1 (ja) 通信システム、制御装置、遅延測定方法およびプログラム
EP3076611B1 (en) Communication system, communication method, network information combination apparatus, and network information combination program
US20160301595A1 (en) Communication system, communication method, network information combination apparatus, processing rule conversion method, and processing rule conversion program
JP5682620B2 (ja) 経路選択方法、情報処理装置、ネットワークシステムおよび経路選択プログラム
JP6650287B2 (ja) 通信経路制御装置、通信経路制御方法及び通信経路制御プログラム
JP6088197B2 (ja) 管理装置、ボトルネック判定・経路制御プログラム、及び、並列分散処理システム
JP2005159846A (ja) マルチキャスト転送経路設定方法および装置
JP6565914B2 (ja) 通信制御装置、通信システム、通信制御方法および通信制御用プログラム
JP5945254B2 (ja) ネットワーク制御システムおよびネットワーク制御方法
JP6390091B2 (ja) トンネル管理装置、通信制御装置、トンネル管理方法及びトンネル管理プログラム
Lin et al. D 2 ENDIST-FM: Flow migration in routing of OpenFlow-based cloud networks

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140328

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150901

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160816

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170203

R150 Certificate of patent or registration of utility model

Ref document number: 6088197

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees