ネットワーク管理装置及びネットワーク管理方法
【課題】誤結線が発生した場合のネットワークの性能の低下を軽減するネットワーク管理装置及びネットワーク管理方法を提供する。
【解決手段】初期アドレス割当部11は、1段目スイッチ22のそれぞれに接続された複数のノード21に対して所定のアドレスを割り当てる。接続状態取得部12は、各1段目スイッチ22、各2段目スイッチ23及び各3段目スイッチ24のそれぞれから各々の接続状態を取得する。誤結線検出部13は、接続状態取得部12により取得された結線状態と予め記憶している所定の結線状態とを比較し、誤結線を検出する。アドレス変更部14は、誤結線検出部13により誤結線が検出された場合、接続状態を基に、初期アドレス割当部11により割り当てられたノード21のアドレスを第1の所定条件を満たすように変更する。
【解決手段】初期アドレス割当部11は、1段目スイッチ22のそれぞれに接続された複数のノード21に対して所定のアドレスを割り当てる。接続状態取得部12は、各1段目スイッチ22、各2段目スイッチ23及び各3段目スイッチ24のそれぞれから各々の接続状態を取得する。誤結線検出部13は、接続状態取得部12により取得された結線状態と予め記憶している所定の結線状態とを比較し、誤結線を検出する。アドレス変更部14は、誤結線検出部13により誤結線が検出された場合、接続状態を基に、初期アドレス割当部11により割り当てられたノード21のアドレスを第1の所定条件を満たすように変更する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク管理装置及びネットワーク管理方法に関する。
【背景技術】
【0002】
近年、HPC(High Performance Computer)の分野において、多数のノード、例えばサーバなどを高速なネットワークで接続するクラスタシステムが広く用いられている。このようなクラスタシステムでは、並列計算処理が行われることが多い。そして、そのような並列計算処理における通信では、信号伝送における広い帯域の確保と低い遅延が求められる。これを実現するため、特に大規模なクラスタシステムにおいては、InfiniBandによるFat Tree(ファットツリー)接続が広く用いられている。
【0003】
InfiniBandでは、最大36ポート構成のクロスバースイッチが存在する。これを超える規模のスイッチが必要な場合には、図11に示すような、複数のスイッチを2段のFat Treeで結線したネットワークを内蔵する多ポートスイッチ901及び902などを使用する。図11は、多ポートスイッチを用いたFat Treeの構成を有するネットワーク装置の構成図である。
【0004】
Fat Treeとは、例えば、図11に示す構成のような、多重化されたツリー型の網構成を有するネットワークのトポロジーである。図11では、ネットワークは、多ポートスイッチ901及び902と下段のスイッチとでは2段のFat Treeとなっているが、多ポートスイッチ901及び902の中にさらにFat Treeの構成が含まれているので、論理的には3段となっている。ここで、図11の点線911で囲われた領域に含まれるスイッチを1段目スイッチ、点線912で囲われた領域に含まれるスイッチを2段目スイッチ、点線913で囲われた領域に含まれるスイッチを3段目スイッチとする。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Using Fat-Trees to Maximize the Number of Processors in a Massively Parallel Computer, M.Valerio, L.E.Moser and P.M.Melliar-Smith, Department of Electrical and Computer Engineering University of California, Santa Barbara
【発明の概要】
【発明が解決しようとする課題】
【0006】
図11のような、Fat Treeの結線においては、2段目スイッチと3段目スイッチとの結線は、多ポートスイッチの筐体内に実装されており、誤結線のおそれはない。
【0007】
これに対して、1段目スイッチと2段目スイッチとの間の結線は、ネットワークの管理者が、一つ一つ手作業で行う。そのため、1段目スイッチと2段目スイッチとの間の結線では、誤結線が発生するおそれがある。特に多ポートスイッチ901及び902の側には大量のケーブルが集中するため、誤結線の可能性が高くなる。このため、従来は、結線作業完了後に結線のチェックを行い、誤結線が検出された場合、結線の修正を行ない正しい結線を構築することが行なわれてきた。特に、大規模なInfiniBandネットワークを構築する際には、誤結線の検出及び訂正は、多大な工数を伴う作業となり、ネットワーク構築作業の効率が低下し、作業時間が長くなってしまっていた。
【0008】
誤結線としては、例えば、図11の点線で示す経路923及び924のように、本来であれば経路921及び922となるはずが、誤って経路を入れ替えた状態で接続してしまうことが考えられる。誤結線の場合、Fat Treeにおける標準的なルーティングを行うと、全対全通信に代表される集合通信時において、1つの経路に同時に2つ以上の信号の送信が行われるという経路競合が生じてしまい、信号伝送において信号が通過する帯域が狭くなる。このため、誤結線の状態では、ネットワークをFat Treeの構成を有するように構築していても、信号の伝送スピードなどの性能が低下してしまうおそれがあった。
【0009】
開示の技術は、上記に鑑みてなされたものであって、誤結線が発生した場合のネットワークの性能の低下を軽減するネットワーク管理装置及びネットワーク管理方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本願の開示するネットワーク管理装置及びネットワーク管理方法は、一つの態様において、ネットワーク管理装置は、それぞれ複数のノードが接続された複数の1段目スイッチ、前記1段目スイッチの上位のスイッチである複数の2段目スイッチ、及び前記2段目スイッチの上位のスイッチである複数の3段目スイッチがファットツリーの構成で接続されたネットワークを管理する。そして、初期アドレス割当部は、前記1段目スイッチのそれぞれに接続された複数のノードに対してアドレスを割り当てる。接続状態取得部は、各1段目スイッチ、各2段目スイッチ、及び各3段目スイッチのそれぞれから各々の接続状態を取得する。誤結線検出部は、前記接続状態取得部により取得された接続状態と、予め記憶している結線状態とを比較し、誤結線を検出する。アドレス変更部は、前記誤結線検出部により誤結線が検出された場合、前記接続状態を基に、前記初期アドレス割当部によって割り当てられた前記ノードのアドレスを第1の条件を満たすように変更する。
【発明の効果】
【0011】
本願の開示するネットワーク管理装置及びネットワーク管理方法の一つの態様によれば、誤結線が発生した場合のネットワークの性能の低下を軽減することができるという効果を奏する。
【図面の簡単な説明】
【0012】
【図1】図1は、実施例に係るネットワーク管理装置のブロック図である。
【図2】図2は、実施例に係るネットワークのFatTree構成の正常な結線状態を示す図である。
【図3】図3は、スイッチが取得する結線情報を説明する図である。
【図4】図4は、実施例に係るネットワークの誤結線が発生した状態を示す図である。
【図5】図5は、接続情報テーブルの一例の図である。
【図6】図6は、誤結線時におけるアドレス算出方法を説明するための図である。
【図7】図7は、変更後のアドレス及び信号の送信について説明するための図である。
【図8】図8は、誤結線時におけるアドレス変更の処理のフローチャートである。
【図9】図9は、接続状態の取得の処理のフローチャートである。
【図10】図10は、アドレス算出処理のフローチャートである。
【図11】図11は、多ポートスイッチを用いたFat Treeの構成を有するネットワーク装置の構成図である。
【発明を実施するための形態】
【0013】
以下に、本願の開示するネットワーク管理装置及びネットワーク管理方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するネットワーク管理装置及びネットワーク管理方法が限定されるものではない。特に、以下では、6ポートスイッチを用いた3段のFat Tree構成を例に説明するが、これに限らず、4ポートスイッチや8ポートスイッチなど他のスイッチを用いてもよい。
【実施例】
【0014】
図1は、実施例に係るネットワーク管理装置のブロック図である。図1に示すように、本実施例に係るネットワーク管理装置1は、初期アドレス割当部11、接続状態取得部12、誤結線検出部13及びアドレス変更部14を有している。さらに、ネットワーク管理装置1は、管理対象であるネットワークシステム2と接続されている。
【0015】
また、ネットワークシステム2は、ノード21、1段目スイッチ22、2段目スイッチ23及び3段目スイッチ24を有している。そして、ノード21、1段目スイッチ22、2段目スイッチ23及び3段目スイッチ24はそれぞれネットワークでFatTree構成となるように接続されている。
【0016】
ここで、図2を参照して、ネットワークシステム2の構成に付いて説明する。図2は、実施例に係るネットワークのFatTree構成の正常な結線状態を示す図である。図2に示すように、1段目スイッチ22は、本実施例ではスイッチB1〜B9の9個のスイッチを有している。また、2段目スイッチ23は、本実施例ではスイッチM1〜M9の9個のスイッチを有している。また、3段目スイッチ24は、本実施例ではスイッチT1〜T9の9個のスイッチを有している。そして、1段目スイッチ22及び2段目スイッチ23は、8ポートスイッチである。また、3段目スイッチ24は、4ポートスイッチである。以下では、1段目スイッチ22に含まれる個々のスイッチについて説明する場合、スイッチB1〜B9を用いて説明する。また、2段目スイッチ23に含まれる個々のスイッチについて説明する場合、スイッチM1〜M9を用いて説明する。また、3段目スイッチ24に含まれる個々のスイッチについて説明する場合、スイッチT1〜T9を用いて説明する。また、以下では、B1〜B9、M1〜M9及びT1〜T9をそれぞれのスイッチの番号と言う。そして、英字の後ろについている数字の大きさによって、スイッチの番号の大小をあらわす。例えば、スイッチB1はスイッチB2より小さい番号を有している。
【0017】
1段目スイッチ22には、それぞれ3つのノードが接続されている。ノードとは、例えばサーバなどである。また、1段目スイッチ22は、Fat Tree構成を有するようにそれぞれ3つの2段目スイッチ23に接続されている。例えば、スイッチB1〜B3は、それぞれスイッチM1、M4及びM7に接続されている。また、スイッチB4〜B6は、それぞれスイッチM2、M5及びM8に接続されている。また、スイッチB7〜B9は、それぞれスイッチM3、M6及びM9に接続されている。
【0018】
また、2段目スイッチ23は、Fat Tree構成を有するようにそれぞれ3つの3段目スイッチ24に接続されている。例えば、スイッチM1〜B3は、それぞれスイッチT1〜T3に接続されている。また、スイッチM4〜M6は、それぞれスイッチT4〜T6に接続されている。また、スイッチM7〜M9は、それぞれスイッチT6〜T9に接続されている。以下では、図2のように接続された状態を、「正常な接続状態」という。
【0019】
各ノード21には、後述するように連続する番号によってアドレスが割り当てられる。以下では、各ノード21に割り当てられたアドレスをノード番号という場合ある。そして、各ノード21は、信号を送信する場合、送信先のノードのアドレス、すなわちノード番号を指定して信号を送信する。
【0020】
1段目スイッチ22は、ノード21が他のノード宛に送信した信号を受信する。そして、1段目スイッチ22は、受信した信号の送信先のノード番号を3で割った余りが0(0mod3)の場合、自己に接続されている2段目スイッチ23のうち最小の番号を有するスイッチに信号を送信する。また、1段目スイッチ22は、受信した信号の送信先のノード番号を3で割った余りが1(1mod3)の場合、自己に接続されている2段目スイッチ23のうち2番目に小さい番号を有するスイッチに信号を送信する。また、1段目スイッチ22は、受信した信号の送信先のノード番号を3で割った余りが2(2mod3)の場合、自己に接続されている2段目スイッチ23のうち最大の番号を有するスイッチに信号を送信する。例えば、スイッチB1は、受信した信号の送信先のノード番号が0mod3の場合、スイッチM1に対して信号を送信する。すなわち、スイッチB1が受信した信号の送信先のノード番号が0mod3であれば、その信号は、経路111を経由するよう送信される。また、スイッチB1は、受信した信号の送信先のノード番号が1mod3の場合、スイッチM4に対して信号を送信する。すなわち、スイッチB1が受信した信号の送信先のノード番号が1mod3であれば、その信号は、経路112を経由するよう送信される。さらに、スイッチB1は、受信した信号の送信先のノード番号が2mod3の場合、スイッチM7に対して信号を送信する。すなわち、スイッチB1が受信した信号の送信先のノード番号が2mod3であれば、その信号は、経路113を経由するよう送信される。
【0021】
2段目スイッチ23は、いずれかのノードが他のノード宛に送信した信号を1段目スイッチ22から受信する。そして、2段目スイッチ23は、受信した信号を9で割った余りによって、信号の送信先の3段目スイッチ24を選択する。具体的には、各2段目スイッチ23は、図2の各3段目スイッチ24の紙面に向かって上側に記載されたmod関数と同じ余りとなる信号を、当該mod関数が上側に記載されている3段目スイッチ24へ向けて送信する。
【0022】
例えば、スイッチM1は、受信した信号の送信先のノード番号が0mod9の場合、スイッチT1に信号を送信する。すなわち、スイッチM1が受信した信号の送信先のノード番号が0mod9であれば、その信号は、経路121を経由するよう送信される。また、スイッチM1は、受信した信号の送信先のノード番号が1mod9の場合、スイッチT2に信号を送信する。すなわち、スイッチM1が受信した信号の送信先のノード番号が1mod9であれば、その信号は、経路122を経由するよう送信される。また、スイッチM1は、受信した信号の送信先のノード番号が2mod9の場合、スイッチT3に信号を送信する。すなわち、スイッチM1が受信した信号の送信先のノード番号が2mod9であれば、その信号は、経路123を経由するよう送信される。
【0023】
さらに、図3は、スイッチが取得する結線情報を説明する図である。結線情報201は、スイッチM1が取得する結線情報の例である。スイッチB1〜B9、M2〜M9及びT1〜T3は、それぞれ結線情報201のような自己のポートへの接続の結線情報を取得することができる。例えば以下のような方法で各スイッチは、結線情報を取得する。ここでは、スイッチM1を例に説明する。スイッチM1は、ネットワーク管理装置1からの指示を受けて、自己のそれぞれのポートから接続先の問合せを行う。そして、スイッチM1は、ポート1から出力した問合せに対す応答として、スイッチB1のポート4である旨を受信する。また、スイッチM1は、ポート2から出力した問合せに対す応答として、スイッチB2のポート5である旨を受信する。また、スイッチM1は、ポート3から出力した問合せに対す応答として、スイッチB3のポート6である旨を受信する。また、スイッチM1は、ポート4から出力した問合せに対す応答として、スイッチT1のポート1である旨を受信する。また、スイッチM1は、ポート5から出力した問合せに対す応答として、スイッチT2のポート2である旨を受信する。また、スイッチM1は、ポート6から出力した問合せに対す応答として、スイッチT3のポート3である旨を受信する。このようにして受信した情報を用いて、スイッチM1は、結線情報201を作成する。同様にして、スイッチB1〜B9、スイッチM2〜M9及びスイッチT1〜T3も結線情報を取得することができる。
【0024】
次に、図1に戻ってネットワーク管理装置1の各部について説明する。ここで、誤結線の発生は、接続が外れて再度接続しなおしたときに発生する。そこで、本実施例では、以下の動作は、リンクが外れて再度接続されたことをトリガとして動作する。ただし、動作のトリガはこれに限らない。例えば、動作の周期を決めておき、周期的に動作を行うようにしても良い。本実施例では、各部がリンクの挿抜を検知し、検知した場合に動作する。ただし、挿抜の検知方法は他の方法でも良く、例えば挿抜検知部を設けて、挿抜検知部が検知した場合に各部が動作するようにしてもよい。以下では、リンクの挿抜検知については説明を省略する。
【0025】
初期アドレス割当部11は、ネットワークシステムが起動すると各ノードに、連番となるアドレスであり、且つ1段目スイッチに接続されているノード同士が連番となり、さらに1段目スイッチの番号の小さい順に小さいノード番号を割り当てる。本実施例では、初期アドレス割当部11は、0から26までの番号を各ノード21に割り当てる。より詳しくは、初期アドレス割当部11は、スイッチM1接続されているノード21に番号1〜3を割当て、次に、スイッチM2に接続されているノード21に番号4〜6を割当てる。そして、初期アドレス割当部11は、このような番号の割当てを順次繰り返して、図2に示すようにスイッチM9に接続されているノード21まで番号を順番に割当てる。以下では、ノード21の個々について説明する場合、各ノード21に割り当てられたノード番号を用いて該当するノードを表す。例えば、0番のノード番号が割り当てられたノード21は、ノード#0と表す。すなわち、初期アドレス割当部11によってアドレスが割り当てられた状態では、ノード21は、図2に示すように1段目スイッチ22が番号順に並んだ状態で、ノード#0〜#26が順番に並んだ状態となる。
【0026】
次に、図2を参照して、この状態における信号の伝送状態について説明する。ネットワークシステム2は、シフト通信パターンを用いた全対全通信を行う。シフト通信パターンは、ノード数をNとすると、N回の通信フェーズから構成される。そして、i番目の通信フェーズでは、自信のノード番号からi番先のノード番号に対してメッセージを送信する。したがって、各ノード番号をp(p=1,2,・・・,N)とすると、i番目の通信フェーズでは、((i+p)modN)が各ノードのメッセージの送信先となる。
【0027】
図2において、ノード21の紙面に向かって下側に記載された数字は初期アドレス割当部11によって各ノード21に割り当てられたノード番号を示している。さらに、図2において、枠130で囲われた数字は、シフト通信パターンの9番目の通信フェーズでの、各ノードにおける送信先のノード番号を表している。9番目の通信フェーズでの各ノードにおける送信先のノード番号は、各ノードのノード番号に9を加えた番号である。そして、シフト通信パターンでは、1段目スイッチ22が配下のノードから受信する信号のノード番号は連番である。したがって、1段目スイッチ22は、それぞれ送信先のノード番号が1mod3、2mod3及び3(0)mod3である3つの信号を受信する。このため、1段目スイッチ22は受信した各信号をそれぞれ異なる2段目スイッチ23へ送信する。この時、スイッチM1〜M9が、受信する信号の送信先のノード番号は、スイッチM1〜M9のそれぞれの下に記載した番号となる。
【0028】
2段目スイッチ23は、それぞれ9個の連番の送信先のノード番号の中の3で割った余りが等しい信号を受信することになる。そして、9個の連番の送信先のノード番号の中の3で割った余りが等しい番号は、9で割った余りが異なる番号である。例えば、スイッチM1は、送信先のノード番号が9、12及び15の信号を受信する。そこで、スイッチM1は、送信先のノード番号が9の信号をスイッチT1に送り、送信先のノード番号が12の信号をスイッチT2に送り、送信先のノード番号が15の信号をスイッチT3に送る。同様に、スイッチM2〜M9においても、受信された各信号はそれぞれ異なる3段目スイッチに送信されることになる。このように、9番目の通信フェーズにおいて、1つの経路に対して1つの信号しか送られないため、信号の経路競合は発生しない。さらに、ここでは、9番目の通信フェーズについて説明したが、他の通信フェーズについても同様に、信号の経路競合は発生しない。このように、図2のような正常な接続状態では、シフト通信パターンを用いて通信を行った場合に、信号の経路競合が発生しない。
【0029】
図4は、ネットワークの誤結線が発生した状態の一例を示す図である。図4は、正常な接続状態であれば、経路131及び132のように接続されているはずが、経路133及び134のように接続されており、誤結線となってしまっている。この場合、スイッチM1やスイッチM2は、正常な接続状態とは異なる信号を受信してしまい、経路競合が発生してしまう。例えば、図4の状態では、スイッチM1は送信先のノード番号が0及び9の信号を受信する。この場合、いずれノード番号も0mod9であるので、スイッチM1は、2つの信号をスイッチT1に送信する。したがって、経路競合が発生してしまうことになる。
【0030】
図1に戻って、接続状態取得部12は、1段目スイッチ22、2段目スイッチ23及び3段目スイッチ24のそれぞれから結線情報を取得する。例えば、接続状態取得部12は、自己が接続している1つのスイッチに対して接続状態の通知命令である情報取得パケットを送信する。
【0031】
パケットを受信したスイッチは、自己の識別情報、接続しているポート番号及び自己のアクティブなポートの情報を接続状態取得部12へ通知する。接続状態取得部12は、接続しているスイッチの識別情報及びポート番号を接続情報テーブルに記録する。さらに、接続状態取得部12は、アクティブなポートの情報を取得すると、そのスイッチのアクティブなポートに接続されているノード又はスイッチに対して情報取得パケットを送信する。そして、接続状態取得部12は、アクティブなポートに接続されているスイッチからそれぞれの識別情報、パケットを受けたポート番号及びアクティブなポートの情報を含む応答を取得する。そして、接続状態取得部12は、応答を受信したスイッチの識別情報及びポート番号を、接続元のスイッチのポートに対応させて接続情報テーブルに記録する。また、接続状態取得部12は、アクティブなポートに接続されているノードから識別情報を含む応答を取得する。そして、接続状態取得部12は、応答を受信したノードの識別情報を接続元のスイッチのポートに対応させて接続情報テーブルに記録する。接続状態取得部12は、このような接続状態の取得を繰返していく。すなわち、接続状態取得部12は、各スイッチから図3に示す結線情報201の内容を有する接続情報を取得して接続情報テーブルに記録していく。そして、接続状態取得部12は、既に接続情報テーブルに記載されている接続情報を取得した場合には、それより先のスイッチ又はノードに対する情報取得パケットの送信を行わない。このようにして、接続状態取得部12は、図5に示すような、接続情報テーブル202を作成する。図5は、接続情報テーブルの一例の図である。そして、接続状態取得部12は、取得した接続情報テーブル202を誤結線検出部へ出力する。
【0032】
また、誤結線検出部13は、正常な接続状態、すなわち図2の状態の結線情報を予め記憶している。誤結線検出部13は、接続情報テーブル202を接続状態取得部12から取得する。そして、誤結線検出部13は、記憶している正常な接続状態と接続状態取得部12から取得した現在の接続状態とを比較する。
【0033】
誤結線検出部13は、正常な接続状態と現在の接続状態とが同じであれば、誤結線が無いと判定してアドレス変更の処理を終了する。これに対して、正常な接続状態と現在の接続状態とが異なる場合、誤結線が発生していると判定する。そして、誤結線検出部13は、現在の接続状態が正常な接続状態と異なっている、すなわち誤結線がある2段目スイッチ23を特定する。さらに、誤結線検出部13は、特定した2段目スイッチ23に接続している1段目スイッチ22を特定する。そして、誤結線検出部13は、特定した1段目スイッチ22に接続している他の2段目スイッチ23を特定する。その上で、誤結線検出部13は、特定した2段目スイッチ23及び1段目スイッチ22の情報を接続関係と共にアドレス変更部14へ出力する。
【0034】
例えば、図4に示すような誤結線がある場合、誤結線検出部13は、接続情報テーブルからスイッチM1とスイッチM2との誤結線があることを検出する。そして、誤結線検出部13は、スイッチM1とスイッチM2との接続している1段目スイッチ22としてスイッチB1〜B6を特定する。このスイッチB1〜B6が「誤結線スイッチ」の一例である。さらに、スイッチB1〜B6に接続している他の2段目スイッチとして、スイッチM4及びM5を特定する。このスイッチM4及びM5が「関連スイッチ」の一例である。そして、誤結線検出部13は、スイッチM1、M2、M4、M5及びB1〜B6の情報とそれぞれの接続関係をアドレス変更部14へ出力する。
【0035】
アドレス変更部14は、誤結線検出部13により特定された2段目スイッチ23及び1段目スイッチ22の情報並びにその接続関係の入力を誤結線検出部13から受ける。そして、アドレス変更部14は、受信した2段目スイッチ23及び1段目スイッチ22の情報並びにその接続関係から、図6の表312のような2段目スイッチ23及び1段目スイッチ22の接続関係を表す接続表を作成する。図6は、誤結線時におけるアドレス算出方法を説明するための図である。さらに、アドレス変更部14は、記載欄311のような接続表にアドレス割当て欄を付加して、アドレス算出表301を作成する。
【0036】
また、アドレス変更部14は、初期アドレス割当部11から各ノード21のノード番号及び初期アドレス割当部11がノード番号を割り当てた状態での各ノード21が接続されている1段目スイッチの情報を取得する。そして、アドレス変更部14は、初期アドレス割当部11がノード番号を割り当てた状態で接続されているノードのノード番号が小さい順に1段目スイッチに1から順に番号をふる。本実施例では、アドレス変更部14は、スイッチB1〜B9の順に1〜9までの番号をふる。そして、アドレス変更部14は、アドレス算出表301に載っている1段目スイッチ22に対してふった番号を使用番号として取得する。本実施例では、アドレス変更部14は、使用番号として1〜6を取得する。
【0037】
次に、アドレス変更部14は、アドレス算出表302の枠321で表わすように、最も番号の小さい2段目スイッチ23及びその2段目スイッチ23に接続している1段目スイッチ22を特定する。そして、アドレス変更部14は、特定した1段目スイッチ22のうち最小の番号を有するスイッチに、使用番号の内の最小の番号を割り当てる。本実施例では、最小の番号は1番であるので、アドレス変更部14は、矢印322で示すように、スイッチB1に対して1番を割り当てる。さらに、アドレス変更部14は、他の1段目スイッチ22に対してスイッチの番号の小さい順に、残りの使用番号の小さい方から番号を割り当てる。本実施例では、アドレス変更部14は、矢印323及び324で示すように、スイッチB2に2番を割り当て、スイッチB4に3番を割り当てる。
【0038】
次に、アドレス変更部14は、アドレス算出表303の枠331で表されているように、割り当てた番号のうち最大の番号を有する1段目スイッチ22の接続のある他の行を確認する。
【0039】
次に、アドレス変更部14は、アドレス算出表304の枠341で表わすように、割り当てた番号のうち最大の番号を有する1段目スイッチ22が接続する他の2段目スイッチ23及びそのスイッチに接続する他の1段目スイッチ22を特定する。そして、アドレス変更部14は、ここで特定した1段目スイッチ22のうち最小の番号を有するスイッチに、残りの使用番号の内の最小の番号を割り当てる。本実施例では、残っている最小の番号は4番であるので、アドレス変更部14は、矢印342で示すように、スイッチB5に対して4番を割り当てる。さらに、アドレス変更部14は、他の1段目スイッチ22に対してスイッチの番号の小さい順に、残りの使用番号の小さい方から番号を割り当てる。本実施例では、アドレス変更部14は、矢印343で示すように、スイッチB6に5番を割り当てる。
【0040】
次に、アドレス変更部14は、アドレス算出表305の枠351で表されているように、割り当てた番号のうち最大の番号を有する1段目スイッチ22の接続のある他の行を確認する。
【0041】
次に、アドレス変更部14は、アドレス算出表306の枠361で表わすように、割り当てた番号のうち最大の番号を有する1段目スイッチ22が接続する他の2段目スイッチ23及びそのスイッチに接続する他の1段目スイッチ22を特定する。そして、アドレス変更部14は、ここで特定した1段目スイッチ22のうち最小の番号を有するスイッチに、残りの使用番号のうち最小の番号を割り当てる。本実施例では、残っている最小の番号は6番であるので、アドレス変更部14は、矢印362で示すように、スイッチB3に対して6番を割り当てる。ここで、本実施例では、番号を割り当てていない1段目スイッチ23が無くなるので、アドレス変更部14は、番号の割当てを終了する。これに対して、まだ番号を割り当てていない1段目スイッチ22がある場合、さらに、アドレス変更部14は、他の1段目スイッチ22に対してスイッチの番号の小さい順に、残りの使用番号の小さい方から番号を割り当てる。
【0042】
アドレス変更部14は、接続表に記載されている全ての1段目スイッチ22に対して番号の割当てが完了するまで番号の割当ての処理を繰り返す。
【0043】
次に、アドレス変更部14は、各1段目スイッチ22に割り当てた番号をスイッチのポート数の半分の値で割った余りをそれぞれ算出する。そして、アドレス変更部14は、任意の2段目スイッチ23に接続されている1段目スイッチ22に対する算出した値がそれぞれ異なる値を有しているか否かを判定する。全てが異なる値を有していれば、アドレス変更部14は、番号の割当てが成功したと判定する。これに対して、同じ値を有するものがあれば、アドレス変更部14は、番号の割当てが失敗したと判定し、アドレスの算出処理を終了する。本実施例では、図6のアドレス算出表306のように、スイッチM1に接続された1段目スイッチ22には番号1、2及び3がふられている。この番号は、割ると余りはそれぞれ1、2、0となり、全てが異なる値となっている。また、スイッチM2に接続された1段目スイッチ22には番号6、4及び5がふられている。この番号は、割ると余りはそれぞれ0、1、2となり、全てが異なる値となっている。また、スイッチM4に接続された1段目スイッチ23には番号1、2及び6がふられている。この番号は、割ると余りはそれぞれ1、2、0となり、全てが異なる値となっている。また、スイッチM5に接続された1段目スイッチ23には番号3、4及び5がふられている。この番号は、割ると余りはそれぞれ0、1、2となり、全てが異なる値となっている。したがって、本実施例では、アドレス変更部14は、番号の割り当ては成功したと判定する。
【0044】
アドレス変更部14は、番号の割当てが成功したと判定すると、割り当てた番号から1を減算した値にポート数の半分の値を乗算することで、その番号が割り当てられた1段目スイッチ22に接続されているノード21の最小のノード番号を算出する。そして、アドレス変更部14は、算出した値から連番で番号をふっていき、1段目スイッチ22に接続されている全てのノード21のノード番号を求める。このようにして、アドレス変更部14は、ノード番号を変更するノード21及びそのノード番号を決定する。本実施例の場合、スイッチB1には1番が割り当てられているので、スイッチB1に接続しているノード21の最小のノード番号は(1−1)×3=0となる。そして、スイッチB1に接続しているノード21のノード番号は0、1及び2となる。また、スイッチB2には2番が割り当てられているので、スイッチB2に接続しているノード21のノード番号は3、4及び5となる。また、スイッチB3には6番が割り当てられているので、スイッチB3に接続しているノード21のノード番号は15、16及び17となる。また、スイッチB4には3番が割り当てられているので、スイッチB4に接続しているノード21のノード番号は6、7及び8となる。また、スイッチB5には4番が割り当てられているので、スイッチB5に接続しているノード21のノード番号は9、10及び11となる。また、スイッチB6には5番が割り当てられているので、スイッチB6に接続しているノード21のノード番号は12、13及び14となる。
【0045】
アドレス変更部14は、初期アドレス割当部11が割り当てたノード番号の内、変更を決定したノード21に対して求めた新しいノード番号を割り当てて、ノード21に対する新しいノード番号の割り当てを決定する。
【0046】
ここで、本実施例では、1段目スイッチ22に割り当てた番号を用いて、ノード番号の割り当ての可否を判定したが、これは他の方法でも良い。例えば、各ノードの新しいノード番号まで算出してしまい、その後、算出したノード番号を用いたシフト通信パターンによる通信をシミュレーションし、経路競合が発生しないことを確かめることで、ノード番号の割り当ての可否を判定してもよい。
【0047】
アドレス変更部14は、決定した新しいノード番号の割り当てを用いて、ノード21に対してノードを割り当て、ノード21のアドレスの変更を行う。この結果、本実施例に係るネットワークシステム2では、ノード21に対して、ノード番号として図7に示す番号140が割り当てられる。ここで、図7は、変更後のアドレス及び信号の送信について説明するための図である。
【0048】
次に、図7を参照して、本実施例に係るアドレス変更後の信号の送信について説明する。ここでも、シフト通信パターンを用いた場合の9番目の通信フェーズにおける信号の送信状態を例に説明する。枠141で囲われた数字は、9番目の通信フェーズにおける各ノード21からの信号の送信先のノード番号を表している。
【0049】
スイッチB1〜B9は、自己に接続されたノード21から受信した信号を、そのノード番号を3で割った余りに従って対応する2段目スイッチ23へ送信する。ここで、枠141の中で示される値で分かるように、それぞれのノード21から出力された3つの信号は0mod3、1mod3、2mod3となっている。したがって、スイッチB1〜B9からスイッチM1〜M9に対しては、すべての信号が異なる経路を経由して送信されるので、経路競合は起こらない。
【0050】
そして、スイッチM1〜M9は、それぞれの下に記載したノード番号を送信先とする信号を受信する。スイッチM1〜M3のそれぞれが受信した信号の送信先のノード番号は0mod9、1mod9、2mod9である。また、スイッチM4〜M6のそれぞれが受信した信号の送信先のノード番号は3mod9、4mod9、5mod9である。また、スイッチM7〜M9のそれぞれが受信した信号の送信先のノード番号は6mod9、7mod9、8mod9である。したがって、スイッチM1〜M9からスイッチT1〜T9に対しても、すべての信号が異なる経路を経由して送信されるので、経路競合は起こらない。したがって、上述したアドレス変更によって、誤結線が発生した状態でシフト通信パターンを用いた全対全通信を行った場合にも、信号伝送において広い帯域を確保することができている。
【0051】
次に、図8を参照して、本実施例に係るネットワーク管理装置による誤結線時におけるアドレス変更の処理の流れについて説明する。図8は、誤結線時におけるアドレス変更の処理のフローチャートである。
【0052】
初期アドレス割当部11は、各ノード21に対して連番となる初期アドレスを割り当てる(ステップS1)。
【0053】
接続状態取得部12は、1段目スイッチ22、2段目スイッチ23及び3段目スイッチ24から結線情報を所得する。そして、接続状態取得部12は、取得した結線情報をまとめて接続情報テーブルを作成する(ステップS2)。この接続情報テーブル作成の処理の流れの詳細は後で説明する。
【0054】
誤結線検出部13は、接続情報テーブルを接続状態取得部12から取得し、現在の接続状態と予め記憶している正常な接続状態とを比較する。そして、誤結線検出部13は、現在の接続状態に誤結線があるか否かを判定する(ステップS3)。
【0055】
誤結線検出部13により誤結線が無いと判定された場合(ステップS3:否定)、ネットワーク管理装置1は、アドレスの変更を終了する。
【0056】
これに対して、誤結線検出部13により誤結線が有ると判定された場合(ステップS3:肯定)、アドレス変更部14は、接続状態テーブルに記載された現在の接続状態を用いて、誤結線の状態における各ノード21の新しいアドレスを算出する(ステップS4)。この、アドレス算出の処理の詳細な流れについては後で説明する。
【0057】
そして、アドレス変更部14は、算出した新しいアドレスを各ノード21に割り当て、各ノード21のアドレスの変更を行う(ステップS5)。
【0058】
次に、図9を参照して、接続状態の取得の流れについて説明する。図9は、接続状態の取得の処理のフローチャートである。図9に記載されたフローは、図8におけるステップS2における処理の詳細にあたる。
【0059】
接続状態取得部12は、隣接するスイッチに、接続状態を問い合わせる問合せパケットを送信する(ステップS11)。
【0060】
接続状態取得部12は、問合せパケットに対する応答から、問合せパケットを送信したスイッチ又はノードの接続状態を特定する(ステップS12)。例えば、接続状態取得部12は、スイッチからは、スイッチの識別情報、問合せパケットを受信したポートの情報及びアクティブなポートの情報を取得する。また、接続状態取得部12は、ノードからは、ノードの識別情報を取得する。
【0061】
そして、接続状態取得部12は、特定した接続状態が既に接続情報テーブルに記載されているか否かを判定する(ステップS13)。記録されていない場合(ステップS13:否定)、接続状態取得部12は、接続情報テーブルに特定した接続状態を記録する(ステップS14)。
【0062】
これに対して、特定した接続状態が記録済みの場合(ステップS13:肯定)、接続状態取得部12は、ステップS15へ進む。
【0063】
そして、接続状態取得部12は、接続情報テーブルに接続先の記録の無いアクティブポートがあるか存在するか否かを判定する(ステップS15)。記録の無いアクティブポートがある場合(ステップS15:肯定)、接続状態取得部12は、当該アクティブポートの接続先に問合せパケットを送信し(ステップS16)、ステップS12へ戻る。
【0064】
これに対して、記録の無いアクティブポートがない場合(ステップS15:否定)、接続状態取得部12は、接続情報テーブルの作成を終了する。
【0065】
次に、図10を参照して、本実施例に係るネットワーク管理装置によるアドレス算出処理の流れについて説明する。図10は、アドレス算出処理のフローチャートである。図10に記載されたフローは、図8におけるステップS4における処理の詳細にあたる。
【0066】
アドレス変更部14は、誤結線が発生している2段目スイッチ23、当該2段目スイッチ23に接続された1段目スイッチ22及び当該1段目スイッチ22に接続された他の2段目スイッチ23の情報を接続状態と共に誤結線検出部13から受信する。そして、アドレス変更部14は、誤結線検出部13から受信した情報を用いて接続表を作成する(ステップS21)。さらに、アドレス変更部14は、初期アドレス割当部11が割り当てたノード番号の中で小さい番号がふられたノード21が接続されている順に1段目スイッチ22に対して1から番号を連番でふっていく。そして、アドレス変更部14は、1段目スイッチ22にふった番号の中で、接続表に記載されている1段目スイッチ22に割り当てられた番号を使用番号として取得する。
【0067】
次に、アドレス変更部14は、スイッチの番号が最も小さい2段目スイッチ23の接続を表す行、すなわち接続表の1行目を選択する(ステップS22)。
【0068】
そして、アドレス変更部14は、選択した行に記載された1段目スイッチ22のスイッチ番号が小さい順に使用番号の小さいものを割り当てる(ステップS23)。
【0069】
アドレス変更部14は、全ての1段目スイッチ22に番号の割り当てが完了したか否かを判定する(ステップS24)。割り当てが完了していない場合(ステップS24:否定)、アドレス変更部14は、割り当てた最後の番号を有する1段目スイッチに接続された他の2段目スイッチ23の行を選択し(ステップS25)、ステップS23に戻る。
【0070】
これに対して、割り当てが完了している場合(ステップS24:肯定)、アドレス変更部14は、各1段目スイッチ22に割り当てた番号をスイッチのポート数の半分の数nで割り余りを求める。そして、アドレス変更部14は、それぞれの2段目スイッチ23に接続されている1段目スイッチ22における余りが全て異なるか否かを判定する(ステップS26)。nで割った余りが同じものがある場合(ステップS26:否定)、アドレス変更部14は、アドレスの算出処理を終了する。
【0071】
一方、nで割った余りが全て異なる場合(ステップS26:肯定)、アドレス変更部14は、1段目スイッチ22に割り当てた番号から1を減算した値にスイッチのポート数の半分の数nを乗算してノード21の新しいアドレスを算出する(ステップS27)。
【0072】
以上に説明したように、本実施例に係るネットワーク管理装置は、正常なFat Tree構成に対して誤結線が発生している場合、経路競合の発生を抑えるように自動的にノード番号を変更する。これにより、ネットワークに誤結線が発生した場合にも、信号伝送において広い帯域を確保することができ、ネットワークの性能の低下を軽減することができる。
【0073】
ここで、本実施例では、ネットワーク管理装置1をネットワークシステム2の外部に配置された装置として説明したがこれに限らない。例えば、ノードの中にネットワーク管理装置を組み込んでもよいし、第1〜第3スイッチのいずれかにネットワーク管理装置を組み込んでもよい。また、ネットワーク管理装置としての動作を制御するプログラムは、ネットワークの管理を行う「SubnetManager」と呼ばれるアプリケーションの機能の一部として動作してもよい。
【符号の説明】
【0074】
1 ネットワーク管理装置
2 ネットワークシステム
11 初期アドレス割当部
12 接続状態取得部
13 誤結線検出部
14 アドレス変更部
21 ノード
22 1段目スイッチ
23 2段目スイッチ
24 3段目スイッチ
【技術分野】
【0001】
本発明は、ネットワーク管理装置及びネットワーク管理方法に関する。
【背景技術】
【0002】
近年、HPC(High Performance Computer)の分野において、多数のノード、例えばサーバなどを高速なネットワークで接続するクラスタシステムが広く用いられている。このようなクラスタシステムでは、並列計算処理が行われることが多い。そして、そのような並列計算処理における通信では、信号伝送における広い帯域の確保と低い遅延が求められる。これを実現するため、特に大規模なクラスタシステムにおいては、InfiniBandによるFat Tree(ファットツリー)接続が広く用いられている。
【0003】
InfiniBandでは、最大36ポート構成のクロスバースイッチが存在する。これを超える規模のスイッチが必要な場合には、図11に示すような、複数のスイッチを2段のFat Treeで結線したネットワークを内蔵する多ポートスイッチ901及び902などを使用する。図11は、多ポートスイッチを用いたFat Treeの構成を有するネットワーク装置の構成図である。
【0004】
Fat Treeとは、例えば、図11に示す構成のような、多重化されたツリー型の網構成を有するネットワークのトポロジーである。図11では、ネットワークは、多ポートスイッチ901及び902と下段のスイッチとでは2段のFat Treeとなっているが、多ポートスイッチ901及び902の中にさらにFat Treeの構成が含まれているので、論理的には3段となっている。ここで、図11の点線911で囲われた領域に含まれるスイッチを1段目スイッチ、点線912で囲われた領域に含まれるスイッチを2段目スイッチ、点線913で囲われた領域に含まれるスイッチを3段目スイッチとする。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Using Fat-Trees to Maximize the Number of Processors in a Massively Parallel Computer, M.Valerio, L.E.Moser and P.M.Melliar-Smith, Department of Electrical and Computer Engineering University of California, Santa Barbara
【発明の概要】
【発明が解決しようとする課題】
【0006】
図11のような、Fat Treeの結線においては、2段目スイッチと3段目スイッチとの結線は、多ポートスイッチの筐体内に実装されており、誤結線のおそれはない。
【0007】
これに対して、1段目スイッチと2段目スイッチとの間の結線は、ネットワークの管理者が、一つ一つ手作業で行う。そのため、1段目スイッチと2段目スイッチとの間の結線では、誤結線が発生するおそれがある。特に多ポートスイッチ901及び902の側には大量のケーブルが集中するため、誤結線の可能性が高くなる。このため、従来は、結線作業完了後に結線のチェックを行い、誤結線が検出された場合、結線の修正を行ない正しい結線を構築することが行なわれてきた。特に、大規模なInfiniBandネットワークを構築する際には、誤結線の検出及び訂正は、多大な工数を伴う作業となり、ネットワーク構築作業の効率が低下し、作業時間が長くなってしまっていた。
【0008】
誤結線としては、例えば、図11の点線で示す経路923及び924のように、本来であれば経路921及び922となるはずが、誤って経路を入れ替えた状態で接続してしまうことが考えられる。誤結線の場合、Fat Treeにおける標準的なルーティングを行うと、全対全通信に代表される集合通信時において、1つの経路に同時に2つ以上の信号の送信が行われるという経路競合が生じてしまい、信号伝送において信号が通過する帯域が狭くなる。このため、誤結線の状態では、ネットワークをFat Treeの構成を有するように構築していても、信号の伝送スピードなどの性能が低下してしまうおそれがあった。
【0009】
開示の技術は、上記に鑑みてなされたものであって、誤結線が発生した場合のネットワークの性能の低下を軽減するネットワーク管理装置及びネットワーク管理方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本願の開示するネットワーク管理装置及びネットワーク管理方法は、一つの態様において、ネットワーク管理装置は、それぞれ複数のノードが接続された複数の1段目スイッチ、前記1段目スイッチの上位のスイッチである複数の2段目スイッチ、及び前記2段目スイッチの上位のスイッチである複数の3段目スイッチがファットツリーの構成で接続されたネットワークを管理する。そして、初期アドレス割当部は、前記1段目スイッチのそれぞれに接続された複数のノードに対してアドレスを割り当てる。接続状態取得部は、各1段目スイッチ、各2段目スイッチ、及び各3段目スイッチのそれぞれから各々の接続状態を取得する。誤結線検出部は、前記接続状態取得部により取得された接続状態と、予め記憶している結線状態とを比較し、誤結線を検出する。アドレス変更部は、前記誤結線検出部により誤結線が検出された場合、前記接続状態を基に、前記初期アドレス割当部によって割り当てられた前記ノードのアドレスを第1の条件を満たすように変更する。
【発明の効果】
【0011】
本願の開示するネットワーク管理装置及びネットワーク管理方法の一つの態様によれば、誤結線が発生した場合のネットワークの性能の低下を軽減することができるという効果を奏する。
【図面の簡単な説明】
【0012】
【図1】図1は、実施例に係るネットワーク管理装置のブロック図である。
【図2】図2は、実施例に係るネットワークのFatTree構成の正常な結線状態を示す図である。
【図3】図3は、スイッチが取得する結線情報を説明する図である。
【図4】図4は、実施例に係るネットワークの誤結線が発生した状態を示す図である。
【図5】図5は、接続情報テーブルの一例の図である。
【図6】図6は、誤結線時におけるアドレス算出方法を説明するための図である。
【図7】図7は、変更後のアドレス及び信号の送信について説明するための図である。
【図8】図8は、誤結線時におけるアドレス変更の処理のフローチャートである。
【図9】図9は、接続状態の取得の処理のフローチャートである。
【図10】図10は、アドレス算出処理のフローチャートである。
【図11】図11は、多ポートスイッチを用いたFat Treeの構成を有するネットワーク装置の構成図である。
【発明を実施するための形態】
【0013】
以下に、本願の開示するネットワーク管理装置及びネットワーク管理方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するネットワーク管理装置及びネットワーク管理方法が限定されるものではない。特に、以下では、6ポートスイッチを用いた3段のFat Tree構成を例に説明するが、これに限らず、4ポートスイッチや8ポートスイッチなど他のスイッチを用いてもよい。
【実施例】
【0014】
図1は、実施例に係るネットワーク管理装置のブロック図である。図1に示すように、本実施例に係るネットワーク管理装置1は、初期アドレス割当部11、接続状態取得部12、誤結線検出部13及びアドレス変更部14を有している。さらに、ネットワーク管理装置1は、管理対象であるネットワークシステム2と接続されている。
【0015】
また、ネットワークシステム2は、ノード21、1段目スイッチ22、2段目スイッチ23及び3段目スイッチ24を有している。そして、ノード21、1段目スイッチ22、2段目スイッチ23及び3段目スイッチ24はそれぞれネットワークでFatTree構成となるように接続されている。
【0016】
ここで、図2を参照して、ネットワークシステム2の構成に付いて説明する。図2は、実施例に係るネットワークのFatTree構成の正常な結線状態を示す図である。図2に示すように、1段目スイッチ22は、本実施例ではスイッチB1〜B9の9個のスイッチを有している。また、2段目スイッチ23は、本実施例ではスイッチM1〜M9の9個のスイッチを有している。また、3段目スイッチ24は、本実施例ではスイッチT1〜T9の9個のスイッチを有している。そして、1段目スイッチ22及び2段目スイッチ23は、8ポートスイッチである。また、3段目スイッチ24は、4ポートスイッチである。以下では、1段目スイッチ22に含まれる個々のスイッチについて説明する場合、スイッチB1〜B9を用いて説明する。また、2段目スイッチ23に含まれる個々のスイッチについて説明する場合、スイッチM1〜M9を用いて説明する。また、3段目スイッチ24に含まれる個々のスイッチについて説明する場合、スイッチT1〜T9を用いて説明する。また、以下では、B1〜B9、M1〜M9及びT1〜T9をそれぞれのスイッチの番号と言う。そして、英字の後ろについている数字の大きさによって、スイッチの番号の大小をあらわす。例えば、スイッチB1はスイッチB2より小さい番号を有している。
【0017】
1段目スイッチ22には、それぞれ3つのノードが接続されている。ノードとは、例えばサーバなどである。また、1段目スイッチ22は、Fat Tree構成を有するようにそれぞれ3つの2段目スイッチ23に接続されている。例えば、スイッチB1〜B3は、それぞれスイッチM1、M4及びM7に接続されている。また、スイッチB4〜B6は、それぞれスイッチM2、M5及びM8に接続されている。また、スイッチB7〜B9は、それぞれスイッチM3、M6及びM9に接続されている。
【0018】
また、2段目スイッチ23は、Fat Tree構成を有するようにそれぞれ3つの3段目スイッチ24に接続されている。例えば、スイッチM1〜B3は、それぞれスイッチT1〜T3に接続されている。また、スイッチM4〜M6は、それぞれスイッチT4〜T6に接続されている。また、スイッチM7〜M9は、それぞれスイッチT6〜T9に接続されている。以下では、図2のように接続された状態を、「正常な接続状態」という。
【0019】
各ノード21には、後述するように連続する番号によってアドレスが割り当てられる。以下では、各ノード21に割り当てられたアドレスをノード番号という場合ある。そして、各ノード21は、信号を送信する場合、送信先のノードのアドレス、すなわちノード番号を指定して信号を送信する。
【0020】
1段目スイッチ22は、ノード21が他のノード宛に送信した信号を受信する。そして、1段目スイッチ22は、受信した信号の送信先のノード番号を3で割った余りが0(0mod3)の場合、自己に接続されている2段目スイッチ23のうち最小の番号を有するスイッチに信号を送信する。また、1段目スイッチ22は、受信した信号の送信先のノード番号を3で割った余りが1(1mod3)の場合、自己に接続されている2段目スイッチ23のうち2番目に小さい番号を有するスイッチに信号を送信する。また、1段目スイッチ22は、受信した信号の送信先のノード番号を3で割った余りが2(2mod3)の場合、自己に接続されている2段目スイッチ23のうち最大の番号を有するスイッチに信号を送信する。例えば、スイッチB1は、受信した信号の送信先のノード番号が0mod3の場合、スイッチM1に対して信号を送信する。すなわち、スイッチB1が受信した信号の送信先のノード番号が0mod3であれば、その信号は、経路111を経由するよう送信される。また、スイッチB1は、受信した信号の送信先のノード番号が1mod3の場合、スイッチM4に対して信号を送信する。すなわち、スイッチB1が受信した信号の送信先のノード番号が1mod3であれば、その信号は、経路112を経由するよう送信される。さらに、スイッチB1は、受信した信号の送信先のノード番号が2mod3の場合、スイッチM7に対して信号を送信する。すなわち、スイッチB1が受信した信号の送信先のノード番号が2mod3であれば、その信号は、経路113を経由するよう送信される。
【0021】
2段目スイッチ23は、いずれかのノードが他のノード宛に送信した信号を1段目スイッチ22から受信する。そして、2段目スイッチ23は、受信した信号を9で割った余りによって、信号の送信先の3段目スイッチ24を選択する。具体的には、各2段目スイッチ23は、図2の各3段目スイッチ24の紙面に向かって上側に記載されたmod関数と同じ余りとなる信号を、当該mod関数が上側に記載されている3段目スイッチ24へ向けて送信する。
【0022】
例えば、スイッチM1は、受信した信号の送信先のノード番号が0mod9の場合、スイッチT1に信号を送信する。すなわち、スイッチM1が受信した信号の送信先のノード番号が0mod9であれば、その信号は、経路121を経由するよう送信される。また、スイッチM1は、受信した信号の送信先のノード番号が1mod9の場合、スイッチT2に信号を送信する。すなわち、スイッチM1が受信した信号の送信先のノード番号が1mod9であれば、その信号は、経路122を経由するよう送信される。また、スイッチM1は、受信した信号の送信先のノード番号が2mod9の場合、スイッチT3に信号を送信する。すなわち、スイッチM1が受信した信号の送信先のノード番号が2mod9であれば、その信号は、経路123を経由するよう送信される。
【0023】
さらに、図3は、スイッチが取得する結線情報を説明する図である。結線情報201は、スイッチM1が取得する結線情報の例である。スイッチB1〜B9、M2〜M9及びT1〜T3は、それぞれ結線情報201のような自己のポートへの接続の結線情報を取得することができる。例えば以下のような方法で各スイッチは、結線情報を取得する。ここでは、スイッチM1を例に説明する。スイッチM1は、ネットワーク管理装置1からの指示を受けて、自己のそれぞれのポートから接続先の問合せを行う。そして、スイッチM1は、ポート1から出力した問合せに対す応答として、スイッチB1のポート4である旨を受信する。また、スイッチM1は、ポート2から出力した問合せに対す応答として、スイッチB2のポート5である旨を受信する。また、スイッチM1は、ポート3から出力した問合せに対す応答として、スイッチB3のポート6である旨を受信する。また、スイッチM1は、ポート4から出力した問合せに対す応答として、スイッチT1のポート1である旨を受信する。また、スイッチM1は、ポート5から出力した問合せに対す応答として、スイッチT2のポート2である旨を受信する。また、スイッチM1は、ポート6から出力した問合せに対す応答として、スイッチT3のポート3である旨を受信する。このようにして受信した情報を用いて、スイッチM1は、結線情報201を作成する。同様にして、スイッチB1〜B9、スイッチM2〜M9及びスイッチT1〜T3も結線情報を取得することができる。
【0024】
次に、図1に戻ってネットワーク管理装置1の各部について説明する。ここで、誤結線の発生は、接続が外れて再度接続しなおしたときに発生する。そこで、本実施例では、以下の動作は、リンクが外れて再度接続されたことをトリガとして動作する。ただし、動作のトリガはこれに限らない。例えば、動作の周期を決めておき、周期的に動作を行うようにしても良い。本実施例では、各部がリンクの挿抜を検知し、検知した場合に動作する。ただし、挿抜の検知方法は他の方法でも良く、例えば挿抜検知部を設けて、挿抜検知部が検知した場合に各部が動作するようにしてもよい。以下では、リンクの挿抜検知については説明を省略する。
【0025】
初期アドレス割当部11は、ネットワークシステムが起動すると各ノードに、連番となるアドレスであり、且つ1段目スイッチに接続されているノード同士が連番となり、さらに1段目スイッチの番号の小さい順に小さいノード番号を割り当てる。本実施例では、初期アドレス割当部11は、0から26までの番号を各ノード21に割り当てる。より詳しくは、初期アドレス割当部11は、スイッチM1接続されているノード21に番号1〜3を割当て、次に、スイッチM2に接続されているノード21に番号4〜6を割当てる。そして、初期アドレス割当部11は、このような番号の割当てを順次繰り返して、図2に示すようにスイッチM9に接続されているノード21まで番号を順番に割当てる。以下では、ノード21の個々について説明する場合、各ノード21に割り当てられたノード番号を用いて該当するノードを表す。例えば、0番のノード番号が割り当てられたノード21は、ノード#0と表す。すなわち、初期アドレス割当部11によってアドレスが割り当てられた状態では、ノード21は、図2に示すように1段目スイッチ22が番号順に並んだ状態で、ノード#0〜#26が順番に並んだ状態となる。
【0026】
次に、図2を参照して、この状態における信号の伝送状態について説明する。ネットワークシステム2は、シフト通信パターンを用いた全対全通信を行う。シフト通信パターンは、ノード数をNとすると、N回の通信フェーズから構成される。そして、i番目の通信フェーズでは、自信のノード番号からi番先のノード番号に対してメッセージを送信する。したがって、各ノード番号をp(p=1,2,・・・,N)とすると、i番目の通信フェーズでは、((i+p)modN)が各ノードのメッセージの送信先となる。
【0027】
図2において、ノード21の紙面に向かって下側に記載された数字は初期アドレス割当部11によって各ノード21に割り当てられたノード番号を示している。さらに、図2において、枠130で囲われた数字は、シフト通信パターンの9番目の通信フェーズでの、各ノードにおける送信先のノード番号を表している。9番目の通信フェーズでの各ノードにおける送信先のノード番号は、各ノードのノード番号に9を加えた番号である。そして、シフト通信パターンでは、1段目スイッチ22が配下のノードから受信する信号のノード番号は連番である。したがって、1段目スイッチ22は、それぞれ送信先のノード番号が1mod3、2mod3及び3(0)mod3である3つの信号を受信する。このため、1段目スイッチ22は受信した各信号をそれぞれ異なる2段目スイッチ23へ送信する。この時、スイッチM1〜M9が、受信する信号の送信先のノード番号は、スイッチM1〜M9のそれぞれの下に記載した番号となる。
【0028】
2段目スイッチ23は、それぞれ9個の連番の送信先のノード番号の中の3で割った余りが等しい信号を受信することになる。そして、9個の連番の送信先のノード番号の中の3で割った余りが等しい番号は、9で割った余りが異なる番号である。例えば、スイッチM1は、送信先のノード番号が9、12及び15の信号を受信する。そこで、スイッチM1は、送信先のノード番号が9の信号をスイッチT1に送り、送信先のノード番号が12の信号をスイッチT2に送り、送信先のノード番号が15の信号をスイッチT3に送る。同様に、スイッチM2〜M9においても、受信された各信号はそれぞれ異なる3段目スイッチに送信されることになる。このように、9番目の通信フェーズにおいて、1つの経路に対して1つの信号しか送られないため、信号の経路競合は発生しない。さらに、ここでは、9番目の通信フェーズについて説明したが、他の通信フェーズについても同様に、信号の経路競合は発生しない。このように、図2のような正常な接続状態では、シフト通信パターンを用いて通信を行った場合に、信号の経路競合が発生しない。
【0029】
図4は、ネットワークの誤結線が発生した状態の一例を示す図である。図4は、正常な接続状態であれば、経路131及び132のように接続されているはずが、経路133及び134のように接続されており、誤結線となってしまっている。この場合、スイッチM1やスイッチM2は、正常な接続状態とは異なる信号を受信してしまい、経路競合が発生してしまう。例えば、図4の状態では、スイッチM1は送信先のノード番号が0及び9の信号を受信する。この場合、いずれノード番号も0mod9であるので、スイッチM1は、2つの信号をスイッチT1に送信する。したがって、経路競合が発生してしまうことになる。
【0030】
図1に戻って、接続状態取得部12は、1段目スイッチ22、2段目スイッチ23及び3段目スイッチ24のそれぞれから結線情報を取得する。例えば、接続状態取得部12は、自己が接続している1つのスイッチに対して接続状態の通知命令である情報取得パケットを送信する。
【0031】
パケットを受信したスイッチは、自己の識別情報、接続しているポート番号及び自己のアクティブなポートの情報を接続状態取得部12へ通知する。接続状態取得部12は、接続しているスイッチの識別情報及びポート番号を接続情報テーブルに記録する。さらに、接続状態取得部12は、アクティブなポートの情報を取得すると、そのスイッチのアクティブなポートに接続されているノード又はスイッチに対して情報取得パケットを送信する。そして、接続状態取得部12は、アクティブなポートに接続されているスイッチからそれぞれの識別情報、パケットを受けたポート番号及びアクティブなポートの情報を含む応答を取得する。そして、接続状態取得部12は、応答を受信したスイッチの識別情報及びポート番号を、接続元のスイッチのポートに対応させて接続情報テーブルに記録する。また、接続状態取得部12は、アクティブなポートに接続されているノードから識別情報を含む応答を取得する。そして、接続状態取得部12は、応答を受信したノードの識別情報を接続元のスイッチのポートに対応させて接続情報テーブルに記録する。接続状態取得部12は、このような接続状態の取得を繰返していく。すなわち、接続状態取得部12は、各スイッチから図3に示す結線情報201の内容を有する接続情報を取得して接続情報テーブルに記録していく。そして、接続状態取得部12は、既に接続情報テーブルに記載されている接続情報を取得した場合には、それより先のスイッチ又はノードに対する情報取得パケットの送信を行わない。このようにして、接続状態取得部12は、図5に示すような、接続情報テーブル202を作成する。図5は、接続情報テーブルの一例の図である。そして、接続状態取得部12は、取得した接続情報テーブル202を誤結線検出部へ出力する。
【0032】
また、誤結線検出部13は、正常な接続状態、すなわち図2の状態の結線情報を予め記憶している。誤結線検出部13は、接続情報テーブル202を接続状態取得部12から取得する。そして、誤結線検出部13は、記憶している正常な接続状態と接続状態取得部12から取得した現在の接続状態とを比較する。
【0033】
誤結線検出部13は、正常な接続状態と現在の接続状態とが同じであれば、誤結線が無いと判定してアドレス変更の処理を終了する。これに対して、正常な接続状態と現在の接続状態とが異なる場合、誤結線が発生していると判定する。そして、誤結線検出部13は、現在の接続状態が正常な接続状態と異なっている、すなわち誤結線がある2段目スイッチ23を特定する。さらに、誤結線検出部13は、特定した2段目スイッチ23に接続している1段目スイッチ22を特定する。そして、誤結線検出部13は、特定した1段目スイッチ22に接続している他の2段目スイッチ23を特定する。その上で、誤結線検出部13は、特定した2段目スイッチ23及び1段目スイッチ22の情報を接続関係と共にアドレス変更部14へ出力する。
【0034】
例えば、図4に示すような誤結線がある場合、誤結線検出部13は、接続情報テーブルからスイッチM1とスイッチM2との誤結線があることを検出する。そして、誤結線検出部13は、スイッチM1とスイッチM2との接続している1段目スイッチ22としてスイッチB1〜B6を特定する。このスイッチB1〜B6が「誤結線スイッチ」の一例である。さらに、スイッチB1〜B6に接続している他の2段目スイッチとして、スイッチM4及びM5を特定する。このスイッチM4及びM5が「関連スイッチ」の一例である。そして、誤結線検出部13は、スイッチM1、M2、M4、M5及びB1〜B6の情報とそれぞれの接続関係をアドレス変更部14へ出力する。
【0035】
アドレス変更部14は、誤結線検出部13により特定された2段目スイッチ23及び1段目スイッチ22の情報並びにその接続関係の入力を誤結線検出部13から受ける。そして、アドレス変更部14は、受信した2段目スイッチ23及び1段目スイッチ22の情報並びにその接続関係から、図6の表312のような2段目スイッチ23及び1段目スイッチ22の接続関係を表す接続表を作成する。図6は、誤結線時におけるアドレス算出方法を説明するための図である。さらに、アドレス変更部14は、記載欄311のような接続表にアドレス割当て欄を付加して、アドレス算出表301を作成する。
【0036】
また、アドレス変更部14は、初期アドレス割当部11から各ノード21のノード番号及び初期アドレス割当部11がノード番号を割り当てた状態での各ノード21が接続されている1段目スイッチの情報を取得する。そして、アドレス変更部14は、初期アドレス割当部11がノード番号を割り当てた状態で接続されているノードのノード番号が小さい順に1段目スイッチに1から順に番号をふる。本実施例では、アドレス変更部14は、スイッチB1〜B9の順に1〜9までの番号をふる。そして、アドレス変更部14は、アドレス算出表301に載っている1段目スイッチ22に対してふった番号を使用番号として取得する。本実施例では、アドレス変更部14は、使用番号として1〜6を取得する。
【0037】
次に、アドレス変更部14は、アドレス算出表302の枠321で表わすように、最も番号の小さい2段目スイッチ23及びその2段目スイッチ23に接続している1段目スイッチ22を特定する。そして、アドレス変更部14は、特定した1段目スイッチ22のうち最小の番号を有するスイッチに、使用番号の内の最小の番号を割り当てる。本実施例では、最小の番号は1番であるので、アドレス変更部14は、矢印322で示すように、スイッチB1に対して1番を割り当てる。さらに、アドレス変更部14は、他の1段目スイッチ22に対してスイッチの番号の小さい順に、残りの使用番号の小さい方から番号を割り当てる。本実施例では、アドレス変更部14は、矢印323及び324で示すように、スイッチB2に2番を割り当て、スイッチB4に3番を割り当てる。
【0038】
次に、アドレス変更部14は、アドレス算出表303の枠331で表されているように、割り当てた番号のうち最大の番号を有する1段目スイッチ22の接続のある他の行を確認する。
【0039】
次に、アドレス変更部14は、アドレス算出表304の枠341で表わすように、割り当てた番号のうち最大の番号を有する1段目スイッチ22が接続する他の2段目スイッチ23及びそのスイッチに接続する他の1段目スイッチ22を特定する。そして、アドレス変更部14は、ここで特定した1段目スイッチ22のうち最小の番号を有するスイッチに、残りの使用番号の内の最小の番号を割り当てる。本実施例では、残っている最小の番号は4番であるので、アドレス変更部14は、矢印342で示すように、スイッチB5に対して4番を割り当てる。さらに、アドレス変更部14は、他の1段目スイッチ22に対してスイッチの番号の小さい順に、残りの使用番号の小さい方から番号を割り当てる。本実施例では、アドレス変更部14は、矢印343で示すように、スイッチB6に5番を割り当てる。
【0040】
次に、アドレス変更部14は、アドレス算出表305の枠351で表されているように、割り当てた番号のうち最大の番号を有する1段目スイッチ22の接続のある他の行を確認する。
【0041】
次に、アドレス変更部14は、アドレス算出表306の枠361で表わすように、割り当てた番号のうち最大の番号を有する1段目スイッチ22が接続する他の2段目スイッチ23及びそのスイッチに接続する他の1段目スイッチ22を特定する。そして、アドレス変更部14は、ここで特定した1段目スイッチ22のうち最小の番号を有するスイッチに、残りの使用番号のうち最小の番号を割り当てる。本実施例では、残っている最小の番号は6番であるので、アドレス変更部14は、矢印362で示すように、スイッチB3に対して6番を割り当てる。ここで、本実施例では、番号を割り当てていない1段目スイッチ23が無くなるので、アドレス変更部14は、番号の割当てを終了する。これに対して、まだ番号を割り当てていない1段目スイッチ22がある場合、さらに、アドレス変更部14は、他の1段目スイッチ22に対してスイッチの番号の小さい順に、残りの使用番号の小さい方から番号を割り当てる。
【0042】
アドレス変更部14は、接続表に記載されている全ての1段目スイッチ22に対して番号の割当てが完了するまで番号の割当ての処理を繰り返す。
【0043】
次に、アドレス変更部14は、各1段目スイッチ22に割り当てた番号をスイッチのポート数の半分の値で割った余りをそれぞれ算出する。そして、アドレス変更部14は、任意の2段目スイッチ23に接続されている1段目スイッチ22に対する算出した値がそれぞれ異なる値を有しているか否かを判定する。全てが異なる値を有していれば、アドレス変更部14は、番号の割当てが成功したと判定する。これに対して、同じ値を有するものがあれば、アドレス変更部14は、番号の割当てが失敗したと判定し、アドレスの算出処理を終了する。本実施例では、図6のアドレス算出表306のように、スイッチM1に接続された1段目スイッチ22には番号1、2及び3がふられている。この番号は、割ると余りはそれぞれ1、2、0となり、全てが異なる値となっている。また、スイッチM2に接続された1段目スイッチ22には番号6、4及び5がふられている。この番号は、割ると余りはそれぞれ0、1、2となり、全てが異なる値となっている。また、スイッチM4に接続された1段目スイッチ23には番号1、2及び6がふられている。この番号は、割ると余りはそれぞれ1、2、0となり、全てが異なる値となっている。また、スイッチM5に接続された1段目スイッチ23には番号3、4及び5がふられている。この番号は、割ると余りはそれぞれ0、1、2となり、全てが異なる値となっている。したがって、本実施例では、アドレス変更部14は、番号の割り当ては成功したと判定する。
【0044】
アドレス変更部14は、番号の割当てが成功したと判定すると、割り当てた番号から1を減算した値にポート数の半分の値を乗算することで、その番号が割り当てられた1段目スイッチ22に接続されているノード21の最小のノード番号を算出する。そして、アドレス変更部14は、算出した値から連番で番号をふっていき、1段目スイッチ22に接続されている全てのノード21のノード番号を求める。このようにして、アドレス変更部14は、ノード番号を変更するノード21及びそのノード番号を決定する。本実施例の場合、スイッチB1には1番が割り当てられているので、スイッチB1に接続しているノード21の最小のノード番号は(1−1)×3=0となる。そして、スイッチB1に接続しているノード21のノード番号は0、1及び2となる。また、スイッチB2には2番が割り当てられているので、スイッチB2に接続しているノード21のノード番号は3、4及び5となる。また、スイッチB3には6番が割り当てられているので、スイッチB3に接続しているノード21のノード番号は15、16及び17となる。また、スイッチB4には3番が割り当てられているので、スイッチB4に接続しているノード21のノード番号は6、7及び8となる。また、スイッチB5には4番が割り当てられているので、スイッチB5に接続しているノード21のノード番号は9、10及び11となる。また、スイッチB6には5番が割り当てられているので、スイッチB6に接続しているノード21のノード番号は12、13及び14となる。
【0045】
アドレス変更部14は、初期アドレス割当部11が割り当てたノード番号の内、変更を決定したノード21に対して求めた新しいノード番号を割り当てて、ノード21に対する新しいノード番号の割り当てを決定する。
【0046】
ここで、本実施例では、1段目スイッチ22に割り当てた番号を用いて、ノード番号の割り当ての可否を判定したが、これは他の方法でも良い。例えば、各ノードの新しいノード番号まで算出してしまい、その後、算出したノード番号を用いたシフト通信パターンによる通信をシミュレーションし、経路競合が発生しないことを確かめることで、ノード番号の割り当ての可否を判定してもよい。
【0047】
アドレス変更部14は、決定した新しいノード番号の割り当てを用いて、ノード21に対してノードを割り当て、ノード21のアドレスの変更を行う。この結果、本実施例に係るネットワークシステム2では、ノード21に対して、ノード番号として図7に示す番号140が割り当てられる。ここで、図7は、変更後のアドレス及び信号の送信について説明するための図である。
【0048】
次に、図7を参照して、本実施例に係るアドレス変更後の信号の送信について説明する。ここでも、シフト通信パターンを用いた場合の9番目の通信フェーズにおける信号の送信状態を例に説明する。枠141で囲われた数字は、9番目の通信フェーズにおける各ノード21からの信号の送信先のノード番号を表している。
【0049】
スイッチB1〜B9は、自己に接続されたノード21から受信した信号を、そのノード番号を3で割った余りに従って対応する2段目スイッチ23へ送信する。ここで、枠141の中で示される値で分かるように、それぞれのノード21から出力された3つの信号は0mod3、1mod3、2mod3となっている。したがって、スイッチB1〜B9からスイッチM1〜M9に対しては、すべての信号が異なる経路を経由して送信されるので、経路競合は起こらない。
【0050】
そして、スイッチM1〜M9は、それぞれの下に記載したノード番号を送信先とする信号を受信する。スイッチM1〜M3のそれぞれが受信した信号の送信先のノード番号は0mod9、1mod9、2mod9である。また、スイッチM4〜M6のそれぞれが受信した信号の送信先のノード番号は3mod9、4mod9、5mod9である。また、スイッチM7〜M9のそれぞれが受信した信号の送信先のノード番号は6mod9、7mod9、8mod9である。したがって、スイッチM1〜M9からスイッチT1〜T9に対しても、すべての信号が異なる経路を経由して送信されるので、経路競合は起こらない。したがって、上述したアドレス変更によって、誤結線が発生した状態でシフト通信パターンを用いた全対全通信を行った場合にも、信号伝送において広い帯域を確保することができている。
【0051】
次に、図8を参照して、本実施例に係るネットワーク管理装置による誤結線時におけるアドレス変更の処理の流れについて説明する。図8は、誤結線時におけるアドレス変更の処理のフローチャートである。
【0052】
初期アドレス割当部11は、各ノード21に対して連番となる初期アドレスを割り当てる(ステップS1)。
【0053】
接続状態取得部12は、1段目スイッチ22、2段目スイッチ23及び3段目スイッチ24から結線情報を所得する。そして、接続状態取得部12は、取得した結線情報をまとめて接続情報テーブルを作成する(ステップS2)。この接続情報テーブル作成の処理の流れの詳細は後で説明する。
【0054】
誤結線検出部13は、接続情報テーブルを接続状態取得部12から取得し、現在の接続状態と予め記憶している正常な接続状態とを比較する。そして、誤結線検出部13は、現在の接続状態に誤結線があるか否かを判定する(ステップS3)。
【0055】
誤結線検出部13により誤結線が無いと判定された場合(ステップS3:否定)、ネットワーク管理装置1は、アドレスの変更を終了する。
【0056】
これに対して、誤結線検出部13により誤結線が有ると判定された場合(ステップS3:肯定)、アドレス変更部14は、接続状態テーブルに記載された現在の接続状態を用いて、誤結線の状態における各ノード21の新しいアドレスを算出する(ステップS4)。この、アドレス算出の処理の詳細な流れについては後で説明する。
【0057】
そして、アドレス変更部14は、算出した新しいアドレスを各ノード21に割り当て、各ノード21のアドレスの変更を行う(ステップS5)。
【0058】
次に、図9を参照して、接続状態の取得の流れについて説明する。図9は、接続状態の取得の処理のフローチャートである。図9に記載されたフローは、図8におけるステップS2における処理の詳細にあたる。
【0059】
接続状態取得部12は、隣接するスイッチに、接続状態を問い合わせる問合せパケットを送信する(ステップS11)。
【0060】
接続状態取得部12は、問合せパケットに対する応答から、問合せパケットを送信したスイッチ又はノードの接続状態を特定する(ステップS12)。例えば、接続状態取得部12は、スイッチからは、スイッチの識別情報、問合せパケットを受信したポートの情報及びアクティブなポートの情報を取得する。また、接続状態取得部12は、ノードからは、ノードの識別情報を取得する。
【0061】
そして、接続状態取得部12は、特定した接続状態が既に接続情報テーブルに記載されているか否かを判定する(ステップS13)。記録されていない場合(ステップS13:否定)、接続状態取得部12は、接続情報テーブルに特定した接続状態を記録する(ステップS14)。
【0062】
これに対して、特定した接続状態が記録済みの場合(ステップS13:肯定)、接続状態取得部12は、ステップS15へ進む。
【0063】
そして、接続状態取得部12は、接続情報テーブルに接続先の記録の無いアクティブポートがあるか存在するか否かを判定する(ステップS15)。記録の無いアクティブポートがある場合(ステップS15:肯定)、接続状態取得部12は、当該アクティブポートの接続先に問合せパケットを送信し(ステップS16)、ステップS12へ戻る。
【0064】
これに対して、記録の無いアクティブポートがない場合(ステップS15:否定)、接続状態取得部12は、接続情報テーブルの作成を終了する。
【0065】
次に、図10を参照して、本実施例に係るネットワーク管理装置によるアドレス算出処理の流れについて説明する。図10は、アドレス算出処理のフローチャートである。図10に記載されたフローは、図8におけるステップS4における処理の詳細にあたる。
【0066】
アドレス変更部14は、誤結線が発生している2段目スイッチ23、当該2段目スイッチ23に接続された1段目スイッチ22及び当該1段目スイッチ22に接続された他の2段目スイッチ23の情報を接続状態と共に誤結線検出部13から受信する。そして、アドレス変更部14は、誤結線検出部13から受信した情報を用いて接続表を作成する(ステップS21)。さらに、アドレス変更部14は、初期アドレス割当部11が割り当てたノード番号の中で小さい番号がふられたノード21が接続されている順に1段目スイッチ22に対して1から番号を連番でふっていく。そして、アドレス変更部14は、1段目スイッチ22にふった番号の中で、接続表に記載されている1段目スイッチ22に割り当てられた番号を使用番号として取得する。
【0067】
次に、アドレス変更部14は、スイッチの番号が最も小さい2段目スイッチ23の接続を表す行、すなわち接続表の1行目を選択する(ステップS22)。
【0068】
そして、アドレス変更部14は、選択した行に記載された1段目スイッチ22のスイッチ番号が小さい順に使用番号の小さいものを割り当てる(ステップS23)。
【0069】
アドレス変更部14は、全ての1段目スイッチ22に番号の割り当てが完了したか否かを判定する(ステップS24)。割り当てが完了していない場合(ステップS24:否定)、アドレス変更部14は、割り当てた最後の番号を有する1段目スイッチに接続された他の2段目スイッチ23の行を選択し(ステップS25)、ステップS23に戻る。
【0070】
これに対して、割り当てが完了している場合(ステップS24:肯定)、アドレス変更部14は、各1段目スイッチ22に割り当てた番号をスイッチのポート数の半分の数nで割り余りを求める。そして、アドレス変更部14は、それぞれの2段目スイッチ23に接続されている1段目スイッチ22における余りが全て異なるか否かを判定する(ステップS26)。nで割った余りが同じものがある場合(ステップS26:否定)、アドレス変更部14は、アドレスの算出処理を終了する。
【0071】
一方、nで割った余りが全て異なる場合(ステップS26:肯定)、アドレス変更部14は、1段目スイッチ22に割り当てた番号から1を減算した値にスイッチのポート数の半分の数nを乗算してノード21の新しいアドレスを算出する(ステップS27)。
【0072】
以上に説明したように、本実施例に係るネットワーク管理装置は、正常なFat Tree構成に対して誤結線が発生している場合、経路競合の発生を抑えるように自動的にノード番号を変更する。これにより、ネットワークに誤結線が発生した場合にも、信号伝送において広い帯域を確保することができ、ネットワークの性能の低下を軽減することができる。
【0073】
ここで、本実施例では、ネットワーク管理装置1をネットワークシステム2の外部に配置された装置として説明したがこれに限らない。例えば、ノードの中にネットワーク管理装置を組み込んでもよいし、第1〜第3スイッチのいずれかにネットワーク管理装置を組み込んでもよい。また、ネットワーク管理装置としての動作を制御するプログラムは、ネットワークの管理を行う「SubnetManager」と呼ばれるアプリケーションの機能の一部として動作してもよい。
【符号の説明】
【0074】
1 ネットワーク管理装置
2 ネットワークシステム
11 初期アドレス割当部
12 接続状態取得部
13 誤結線検出部
14 アドレス変更部
21 ノード
22 1段目スイッチ
23 2段目スイッチ
24 3段目スイッチ
【特許請求の範囲】
【請求項1】
それぞれ複数のノードが接続された複数の1段目スイッチ、前記1段目スイッチの上位のスイッチである複数の2段目スイッチ、及び前記2段目スイッチの上位のスイッチである複数の3段目スイッチがファットツリーの構成で接続されたネットワークを管理するネットワーク管理装置において、
前記1段目スイッチのそれぞれに接続された複数のノードに対してアドレスを割り当てる初期アドレス割当部と、
各1段目スイッチ、各2段目スイッチ、及び各3段目スイッチのそれぞれから各々の接続状態を取得する接続状態取得部と、
前記接続状態取得部により取得された接続状態と、予め記憶している結線状態とを比較し、誤結線を検出する誤結線検出部と、
前記誤結線検出部により誤結線が検出された場合、前記接続状態を基に、前記初期アドレス割当部によって割り当てられた前記ノードのアドレスを第1の条件を満たすように変更するアドレス変更部と
を備えたことを特徴とするネットワーク管理装置。
【請求項2】
初期アドレス割当部は、各ノードが連番となり、且つ1段目スイッチ毎に、当該1段目スイッチに接続されているノードが連番となるように各ノードに番号を割り当て、
前記アドレス変更部は、第1スイッチが、接続する各ノードから受信した信号の送信先番号を所定の値で割り、それぞれの割り算の結果得られた余りが異なれば前記第1の条件を満たすと判定することを特徴とする請求項1に記載のネットワーク管理装置。
【請求項3】
前記初期アドレス割当部は、各ノードが連番となり、且つ第1段目スイッチ毎に、接続されているノードが連番となるように各ノードに番号を割り当て、
前記アドレス変更部は、誤結線が検出された2段目スイッチを誤結線スイッチとして特定し、前記誤結線スイッチが接続されている1段目スイッチに接続している他の2段目スイッチを関連スイッチとして特定し、誤結線スイッチ及び関連スイッチが接続されている第1段目スイッチに、前記初期アドレス割当部が割り当てた番号がより小さいノードに接続されている順に1から番号を割り当て、既に番号を割り当てた第1段目スイッチの中で最大の番号を有する1段目スイッチが接続されている2段目スイッチに接続されている他の1段目スイッチに対して、前記初期アドレス割当部が割り当てた番号がより小さいノードに接続されている順に、既に第1段目スイッチに割り当てた最大の番号の次の番号から番号を割り当てる処理を繰返して各1段目スイッチに番号を割り当て、前記1段目スイッチに割り当てた番号が第2の条件を満たす場合、前記割り当てた番号に基づいて各前記ノードのアドレスを前記第1の条件を満たすように変更することを特徴とする請求項1に記載のネットワーク管理装置。
【請求項4】
各1段目スイッチは、接続しているノードから受信した信号の送信先のアドレスを所定の値で割った余りを基に、前記ノードから受信した信号を前記2段目スイッチに対して送信し、
前記アドレス変更部は、2段目スイッチ毎に、接続されている1段目スイッチに割り当てた番号を前記所定の値で割った余りが全て異なる場合に前記第2の条件を満たすと判定することを特徴とする請求項3に記載のネットワーク管理装置。
【請求項5】
前記アドレス変更部は、前記1段目スイッチに割り当てた番号から1を減算した値に前記所定の値を乗算した番号を、当該1段目スイッチに接続されているノードの一番小さいアドレスとして、連番で当該1段目スイッチに接続されているノードに番号をふることで前記ノードのアドレスを変更することを特徴とする請求項4に記載のネットワーク管理装置。
【請求項6】
複数のノードが接続された1段目スイッチ、前記1段目スイッチの上位のスイッチである2段目スイッチ及び前記2段目スイッチの上位のスイッチである3段目スイッチがファットツリーの構成で接続されているネットワークを管理するネットワーク管理方法において、
前記1段目スイッチのそれぞれに接続された複数のノードに対してアドレスを割り当て、
各1段目スイッチ、各2段目スイッチ、及び各3段目スイッチのそれぞれから各々の接続状態を取得し、
取得した接続状態と、予め記憶している結線状態とを比較し、誤結線を検出し、
誤結線を検出した場合、前記接続状態を基に、割り当てられた前記ノードのアドレスを所定の条件を満たすように変更するアドレス変更部と
処理をネットワーク管理装置に実行させることを特徴とするネットワーク管理方法。
【請求項1】
それぞれ複数のノードが接続された複数の1段目スイッチ、前記1段目スイッチの上位のスイッチである複数の2段目スイッチ、及び前記2段目スイッチの上位のスイッチである複数の3段目スイッチがファットツリーの構成で接続されたネットワークを管理するネットワーク管理装置において、
前記1段目スイッチのそれぞれに接続された複数のノードに対してアドレスを割り当てる初期アドレス割当部と、
各1段目スイッチ、各2段目スイッチ、及び各3段目スイッチのそれぞれから各々の接続状態を取得する接続状態取得部と、
前記接続状態取得部により取得された接続状態と、予め記憶している結線状態とを比較し、誤結線を検出する誤結線検出部と、
前記誤結線検出部により誤結線が検出された場合、前記接続状態を基に、前記初期アドレス割当部によって割り当てられた前記ノードのアドレスを第1の条件を満たすように変更するアドレス変更部と
を備えたことを特徴とするネットワーク管理装置。
【請求項2】
初期アドレス割当部は、各ノードが連番となり、且つ1段目スイッチ毎に、当該1段目スイッチに接続されているノードが連番となるように各ノードに番号を割り当て、
前記アドレス変更部は、第1スイッチが、接続する各ノードから受信した信号の送信先番号を所定の値で割り、それぞれの割り算の結果得られた余りが異なれば前記第1の条件を満たすと判定することを特徴とする請求項1に記載のネットワーク管理装置。
【請求項3】
前記初期アドレス割当部は、各ノードが連番となり、且つ第1段目スイッチ毎に、接続されているノードが連番となるように各ノードに番号を割り当て、
前記アドレス変更部は、誤結線が検出された2段目スイッチを誤結線スイッチとして特定し、前記誤結線スイッチが接続されている1段目スイッチに接続している他の2段目スイッチを関連スイッチとして特定し、誤結線スイッチ及び関連スイッチが接続されている第1段目スイッチに、前記初期アドレス割当部が割り当てた番号がより小さいノードに接続されている順に1から番号を割り当て、既に番号を割り当てた第1段目スイッチの中で最大の番号を有する1段目スイッチが接続されている2段目スイッチに接続されている他の1段目スイッチに対して、前記初期アドレス割当部が割り当てた番号がより小さいノードに接続されている順に、既に第1段目スイッチに割り当てた最大の番号の次の番号から番号を割り当てる処理を繰返して各1段目スイッチに番号を割り当て、前記1段目スイッチに割り当てた番号が第2の条件を満たす場合、前記割り当てた番号に基づいて各前記ノードのアドレスを前記第1の条件を満たすように変更することを特徴とする請求項1に記載のネットワーク管理装置。
【請求項4】
各1段目スイッチは、接続しているノードから受信した信号の送信先のアドレスを所定の値で割った余りを基に、前記ノードから受信した信号を前記2段目スイッチに対して送信し、
前記アドレス変更部は、2段目スイッチ毎に、接続されている1段目スイッチに割り当てた番号を前記所定の値で割った余りが全て異なる場合に前記第2の条件を満たすと判定することを特徴とする請求項3に記載のネットワーク管理装置。
【請求項5】
前記アドレス変更部は、前記1段目スイッチに割り当てた番号から1を減算した値に前記所定の値を乗算した番号を、当該1段目スイッチに接続されているノードの一番小さいアドレスとして、連番で当該1段目スイッチに接続されているノードに番号をふることで前記ノードのアドレスを変更することを特徴とする請求項4に記載のネットワーク管理装置。
【請求項6】
複数のノードが接続された1段目スイッチ、前記1段目スイッチの上位のスイッチである2段目スイッチ及び前記2段目スイッチの上位のスイッチである3段目スイッチがファットツリーの構成で接続されているネットワークを管理するネットワーク管理方法において、
前記1段目スイッチのそれぞれに接続された複数のノードに対してアドレスを割り当て、
各1段目スイッチ、各2段目スイッチ、及び各3段目スイッチのそれぞれから各々の接続状態を取得し、
取得した接続状態と、予め記憶している結線状態とを比較し、誤結線を検出し、
誤結線を検出した場合、前記接続状態を基に、割り当てられた前記ノードのアドレスを所定の条件を満たすように変更するアドレス変更部と
処理をネットワーク管理装置に実行させることを特徴とするネットワーク管理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2013−26754(P2013−26754A)
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願番号】特願2011−158479(P2011−158479)
【出願日】平成23年7月19日(2011.7.19)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願日】平成23年7月19日(2011.7.19)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]