(57)【特許請求の範囲】
【請求項１】
それぞれ複数のノードが接続された複数の１段目スイッチ、前記１段目スイッチの上位のスイッチである複数の２段目スイッチ、及び前記２段目スイッチの上位のスイッチである複数の３段目スイッチがファットツリーの構成で接続されたネットワークを管理するネットワーク管理装置において、
前記１段目スイッチのそれぞれに接続された複数のノードに対して、各ノードが連番となり、且つ１段目スイッチ毎に、当該１段目スイッチに接続されているノードが連番となるように各ノードに番号をアドレスとして割り当てる初期アドレス割当部と、
各１段目スイッチ、各２段目スイッチ、及び各３段目スイッチのそれぞれから各々の接続状態を取得する接続状態取得部と、
前記接続状態取得部により取得された接続状態と、予め記憶している結線状態とを比較し、誤結線を検出する誤結線検出部と、
前記誤結線検出部により誤結線が検出された場合、前記接続状態を基に、前記初期アドレス割当部によって割り当てられた前記ノードのアドレスを、２段目スイッチが１段目スイッチを介して接続する各ノードから受信した信号の送信先番号を所定の値で割った場合に、それぞれの割り算の結果得られた余りが異なるという、経路競合が起こらないための第１の条件を満たすように変更するアドレス変更部と
を備えたことを特徴とするネットワーク管理装置。
【請求項２】
前記初期アドレス割当部は、各ノードが連番となり、且つ第１段目スイッチ毎に、接続されているノードが連番となるように各ノードに番号を割り当て、
前記アドレス変更部は、誤結線が検出された２段目スイッチを誤結線スイッチとして特定し、前記誤結線スイッチが接続されている１段目スイッチに接続している他の２段目スイッチの中から関連スイッチを特定し、誤結線スイッチ及び関連スイッチが接続されている第１段目スイッチに、前記初期アドレス割当部が割り当てた番号がより小さいノードに接続されている順に１から番号を割り当て、既に番号を割り当てた第１段目スイッチの中で最大の番号を有する１段目スイッチが接続されている２段目スイッチに接続されている他の１段目スイッチに対して、前記初期アドレス割当部が割り当てた番号がより小さいノードに接続されている順に、既に第１段目スイッチに割り当てた最大の番号の次の番号から番号を割り当てる処理を繰返して各１段目スイッチに番号を割り当て、前記１段目スイッチに割り当てた番号が、２段目スイッチのポート数の半分の数で割った余りがそれぞれ異なるという第２の条件を満たす場合、前記割り当てた番号に基づいて各前記ノードのアドレスを前記第１の条件を満たすように変更することを特徴とする請求項１に記載のネットワーク管理装置。
【請求項３】
各１段目スイッチは、接続しているノードから受信した信号の送信先のアドレスを所定の値で割った余りを基に、前記ノードから受信した信号を前記２段目スイッチに対して送信し、
前記アドレス変更部は、２段目スイッチ毎に、接続されている１段目スイッチに割り当てた番号を前記所定の値で割った余りが全て異なる場合に前記第２の条件を満たすと判定することを特徴とする請求項２に記載のネットワーク管理装置。 
【請求項４】
前記アドレス変更部は、前記１段目スイッチに割り当てた番号から１を減算した値に前記所定の値を乗算した番号を、当該１段目スイッチに接続されているノードの一番小さいアドレスとして、連番で当該１段目スイッチに接続されているノードに番号をふることで前記ノードのアドレスを変更することを特徴とする請求項３に記載のネットワーク管理装置。
【請求項５】
複数のノードが接続された１段目スイッチ、前記１段目スイッチの上位のスイッチである２段目スイッチ及び前記２段目スイッチの上位のスイッチである３段目スイッチがファットツリーの構成で接続されているネットワークを管理するネットワーク管理方法において、
前記１段目スイッチのそれぞれに接続された複数のノードに対して、各ノードが連番となり、且つ１段目スイッチ毎に、当該１段目スイッチに接続されているノードが連番となるように各ノードに番号をアドレスとして割り当て、
各１段目スイッチ、各２段目スイッチ、及び各３段目スイッチのそれぞれから各々の接続状態を取得し、
取得した接続状態と、予め記憶している結線状態とを比較し、誤結線を検出し、
誤結線を検出した場合、前記接続状態を基に、割り当てられた前記ノードのアドレスを、２段目スイッチが１段目スイッチを介して接続する各ノードから受信した信号の送信先番号を所定の値で割った場合に、それぞれの割り算の結果得られた余りが異なるという、経路競合が起こらないための所定の条件を満たすように変更する
処理をネットワーク管理装置に実行させることを特徴とするネットワーク管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク管理装置及びネットワーク管理方法に関する。
【背景技術】
【０００２】
近年、ＨＰＣ（High  Performance  Computer）の分野において、多数のノード、例えばサーバなどを高速なネットワークで接続するクラスタシステムが広く用いられている。このようなクラスタシステムでは、並列計算処理が行われることが多い。そして、そのような並列計算処理における通信では、信号伝送における広い帯域の確保と低い遅延が求められる。これを実現するため、特に大規模なクラスタシステムにおいては、ＩｎｆｉｎｉＢａｎｄによるＦａｔ  Ｔｒｅｅ（ファットツリー）接続が広く用いられている。
【０００３】
ＩｎｆｉｎｉＢａｎｄでは、最大３６ポート構成のクロスバースイッチが存在する。これを超える規模のスイッチが必要な場合には、図１１に示すような、複数のスイッチを２段のＦａｔ  Ｔｒｅｅで結線したネットワークを内蔵する多ポートスイッチ９０１及び９０２などを使用する。図１１は、多ポートスイッチを用いたＦａｔ  Ｔｒｅｅの構成を有するネットワーク装置の構成図である。
【０００４】
Ｆａｔ  Ｔｒｅｅとは、例えば、図１１に示す構成のような、多重化されたツリー型の網構成を有するネットワークのトポロジーである。図１１では、ネットワークは、多ポートスイッチ９０１及び９０２と下段のスイッチとでは２段のＦａｔ  Ｔｒｅｅとなっているが、多ポートスイッチ９０１及び９０２の中にさらにＦａｔ  Ｔｒｅｅの構成が含まれているので、論理的には３段となっている。ここで、図１１の点線９１１で囲われた領域に含まれるスイッチを１段目スイッチ、点線９１２で囲われた領域に含まれるスイッチを２段目スイッチ、点線９１３で囲われた領域に含まれるスイッチを３段目スイッチとする。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】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
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図１１のような、Ｆａｔ  Ｔｒｅｅの結線においては、２段目スイッチと３段目スイッチとの結線は、多ポートスイッチの筐体内に実装されており、誤結線のおそれはない。
【０００７】
これに対して、１段目スイッチと２段目スイッチとの間の結線は、ネットワークの管理者が、一つ一つ手作業で行う。そのため、１段目スイッチと２段目スイッチとの間の結線では、誤結線が発生するおそれがある。特に多ポートスイッチ９０１及び９０２の側には大量のケーブルが集中するため、誤結線の可能性が高くなる。このため、従来は、結線作業完了後に結線のチェックを行い、誤結線が検出された場合、結線の修正を行ない正しい結線を構築することが行なわれてきた。特に、大規模なＩｎｆｉｎｉＢａｎｄネットワークを構築する際には、誤結線の検出及び訂正は、多大な工数を伴う作業となり、ネットワーク構築作業の効率が低下し、作業時間が長くなってしまっていた。
【０００８】
誤結線としては、例えば、図１１の点線で示す経路９２３及び９２４のように、本来であれば経路９２１及び９２２となるはずが、誤って経路を入れ替えた状態で接続してしまうことが考えられる。誤結線の場合、Ｆａｔ  Ｔｒｅｅにおける標準的なルーティングを行うと、全対全通信に代表される集合通信時において、１つの経路に同時に２つ以上の信号の送信が行われるという経路競合が生じてしまい、信号伝送において信号が通過する帯域が狭くなる。このため、誤結線の状態では、ネットワークをＦａｔ  Ｔｒｅｅの構成を有するように構築していても、信号の伝送スピードなどの性能が低下してしまうおそれがあった。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、誤結線が発生した場合のネットワークの性能の低下を軽減するネットワーク管理装置及びネットワーク管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示するネットワーク管理装置及びネットワーク管理方法は、一つの態様において、それぞれ複数のノードが接続された複数の１段目スイッチ、前記１段目スイッチの上位のスイッチである複数の２段目スイッチ、及び前記２段目スイッチの上位のスイッチである複数の３段目スイッチがファットツリーの構成で接続されたネットワークを管理する。そして、初期アドレス割当部は、前記１段目スイッチのそれぞれに接続された複数のノードに対して、各ノードが連番となり、且つ１段目スイッチ毎に、当該１段目スイッチに接続されているノードが連番となるように各ノードに番号をアドレスとして割り当てる。接続状態取得部は、各１段目スイッチ、各２段目スイッチ、及び各３段目スイッチのそれぞれから各々の接続状態を取得する。誤結線検出部は、前記接続状態取得部により取得された接続状態と、予め記憶している結線状態とを比較し、誤結線を検出する。アドレス変更部は、前記誤結線検出部により誤結線が検出された場合、前記接続状態を基に、前記初期アドレス割当部によって割り当てられた前記ノードのアドレスを、２段目スイッチが１段目スイッチを介して接続する各ノードから受信した信号の送信先番号を所定の値で割った場合に、それぞれの割り算の結果得られた余りが異なるという、経路競合が起こらないための第１の条件を満たすように変更する。
【発明の効果】
【００１１】
本願の開示するネットワーク管理装置及びネットワーク管理方法の一つの態様によれば、誤結線が発生した場合のネットワークの性能の低下を軽減することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例に係るネットワーク管理装置のブロック図である。
【図２】図２は、実施例に係るネットワークのＦａｔＴｒｅｅ構成の正常な結線状態を示す図である。
【図３】図３は、スイッチが取得する結線情報を説明する図である。
【図４】図４は、実施例に係るネットワークの誤結線が発生した状態を示す図である。
【図５】図５は、接続情報テーブルの一例の図である。
【図６】図６は、誤結線時におけるアドレス算出方法を説明するための図である。
【図７】図７は、変更後のアドレス及び信号の送信について説明するための図である。
【図８】図８は、誤結線時におけるアドレス変更の処理のフローチャートである。
【図９】図９は、接続状態の取得の処理のフローチャートである。
【図１０】図１０は、アドレス算出処理のフローチャートである。
【図１１】図１１は、多ポートスイッチを用いたＦａｔ  Ｔｒｅｅの構成を有するネットワーク装置の構成図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するネットワーク管理装置及びネットワーク管理方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するネットワーク管理装置及びネットワーク管理方法が限定されるものではない。特に、以下では、６ポートスイッチを用いた３段のＦａｔ  Ｔｒｅｅ構成を例に説明するが、これに限らず、４ポートスイッチや８ポートスイッチなど他のスイッチを用いてもよい。
【実施例】
【００１４】
図１は、実施例に係るネットワーク管理装置のブロック図である。図１に示すように、本実施例に係るネットワーク管理装置１は、初期アドレス割当部１１、接続状態取得部１２、誤結線検出部１３及びアドレス変更部１４を有している。さらに、ネットワーク管理装置１は、管理対象であるネットワークシステム２と接続されている。
【００１５】
また、ネットワークシステム２は、ノード２１、１段目スイッチ２２、２段目スイッチ２３及び３段目スイッチ２４を有している。そして、ノード２１、１段目スイッチ２２、２段目スイッチ２３及び３段目スイッチ２４はそれぞれネットワークでＦａｔＴｒｅｅ構成となるように接続されている。
【００１６】
ここで、図２を参照して、ネットワークシステム２の構成に付いて説明する。図２は、実施例に係るネットワークのＦａｔＴｒｅｅ構成の正常な結線状態を示す図である。図２に示すように、１段目スイッチ２２は、本実施例ではスイッチＢ１〜Ｂ９の９個のスイッチを有している。また、２段目スイッチ２３は、本実施例ではスイッチＭ１〜Ｍ９の９個のスイッチを有している。また、３段目スイッチ２４は、本実施例ではスイッチＴ１〜Ｔ９の９個のスイッチを有している。そして、１段目スイッチ２２及び２段目スイッチ２３は、８ポートスイッチである。また、３段目スイッチ２４は、４ポートスイッチである。以下では、１段目スイッチ２２に含まれる個々のスイッチについて説明する場合、スイッチＢ１〜Ｂ９を用いて説明する。また、２段目スイッチ２３に含まれる個々のスイッチについて説明する場合、スイッチＭ１〜Ｍ９を用いて説明する。また、３段目スイッチ２４に含まれる個々のスイッチについて説明する場合、スイッチＴ１〜Ｔ９を用いて説明する。また、以下では、Ｂ１〜Ｂ９、Ｍ１〜Ｍ９及びＴ１〜Ｔ９をそれぞれのスイッチの番号と言う。そして、英字の後ろについている数字の大きさによって、スイッチの番号の大小をあらわす。例えば、スイッチＢ１はスイッチＢ２より小さい番号を有している。
【００１７】
１段目スイッチ２２には、それぞれ３つのノードが接続されている。ノードとは、例えばサーバなどである。また、１段目スイッチ２２は、Ｆａｔ  Ｔｒｅｅ構成を有するようにそれぞれ３つの２段目スイッチ２３に接続されている。例えば、スイッチＢ１〜Ｂ３は、それぞれスイッチＭ１、Ｍ４及びＭ７に接続されている。また、スイッチＢ４〜Ｂ６は、それぞれスイッチＭ２、Ｍ５及びＭ８に接続されている。また、スイッチＢ７〜Ｂ９は、それぞれスイッチＭ３、Ｍ６及びＭ９に接続されている。
【００１８】
また、２段目スイッチ２３は、Ｆａｔ  Ｔｒｅｅ構成を有するようにそれぞれ３つの３段目スイッチ２４に接続されている。例えば、スイッチＭ１〜Ｂ３は、それぞれスイッチＴ１〜Ｔ３に接続されている。また、スイッチＭ４〜Ｍ６は、それぞれスイッチＴ４〜Ｔ６に接続されている。また、スイッチＭ７〜Ｍ９は、それぞれスイッチＴ６〜Ｔ９に接続されている。以下では、図２のように接続された状態を、「正常な接続状態」という。
【００１９】
各ノード２１には、後述するように連続する番号によってアドレスが割り当てられる。以下では、各ノード２１に割り当てられたアドレスをノード番号という場合ある。そして、各ノード２１は、信号を送信する場合、送信先のノードのアドレス、すなわちノード番号を指定して信号を送信する。
【００２０】
１段目スイッチ２２は、ノード２１が他のノード宛に送信した信号を受信する。そして、１段目スイッチ２２は、受信した信号の送信先のノード番号を３で割った余りが０（０ｍｏｄ３）の場合、自己に接続されている２段目スイッチ２３のうち最小の番号を有するスイッチに信号を送信する。また、１段目スイッチ２２は、受信した信号の送信先のノード番号を３で割った余りが１（１ｍｏｄ３）の場合、自己に接続されている２段目スイッチ２３のうち２番目に小さい番号を有するスイッチに信号を送信する。また、１段目スイッチ２２は、受信した信号の送信先のノード番号を３で割った余りが２（２ｍｏｄ３）の場合、自己に接続されている２段目スイッチ２３のうち最大の番号を有するスイッチに信号を送信する。例えば、スイッチＢ１は、受信した信号の送信先のノード番号が０ｍｏｄ３の場合、スイッチＭ１に対して信号を送信する。すなわち、スイッチＢ１が受信した信号の送信先のノード番号が０ｍｏｄ３であれば、その信号は、経路１１１を経由するよう送信される。また、スイッチＢ１は、受信した信号の送信先のノード番号が１ｍｏｄ３の場合、スイッチＭ４に対して信号を送信する。すなわち、スイッチＢ１が受信した信号の送信先のノード番号が１ｍｏｄ３であれば、その信号は、経路１１２を経由するよう送信される。さらに、スイッチＢ１は、受信した信号の送信先のノード番号が２ｍｏｄ３の場合、スイッチＭ７に対して信号を送信する。すなわち、スイッチＢ１が受信した信号の送信先のノード番号が２ｍｏｄ３であれば、その信号は、経路１１３を経由するよう送信される。
【００２１】
２段目スイッチ２３は、いずれかのノードが他のノード宛に送信した信号を１段目スイッチ２２から受信する。そして、２段目スイッチ２３は、受信した信号を９で割った余りによって、信号の送信先の３段目スイッチ２４を選択する。具体的には、各２段目スイッチ２３は、図２の各３段目スイッチ２４の紙面に向かって上側に記載されたｍｏｄ関数と同じ余りとなる信号を、当該ｍｏｄ関数が上側に記載されている３段目スイッチ２４へ向けて送信する。
【００２２】
例えば、スイッチＭ１は、受信した信号の送信先のノード番号が０ｍｏｄ９の場合、スイッチＴ１に信号を送信する。すなわち、スイッチＭ１が受信した信号の送信先のノード番号が０ｍｏｄ９であれば、その信号は、経路１２１を経由するよう送信される。また、スイッチＭ１は、受信した信号の送信先のノード番号が１ｍｏｄ９の場合、スイッチＴ２に信号を送信する。すなわち、スイッチＭ１が受信した信号の送信先のノード番号が１ｍｏｄ９であれば、その信号は、経路１２２を経由するよう送信される。また、スイッチＭ１は、受信した信号の送信先のノード番号が２ｍｏｄ９の場合、スイッチＴ３に信号を送信する。すなわち、スイッチＭ１が受信した信号の送信先のノード番号が２ｍｏｄ９であれば、その信号は、経路１２３を経由するよう送信される。
【００２３】
さらに、図３は、スイッチが取得する結線情報を説明する図である。結線情報２０１は、スイッチＭ１が取得する結線情報の例である。スイッチＢ１〜Ｂ９、Ｍ２〜Ｍ９及びＴ１〜Ｔ３は、それぞれ結線情報２０１のような自己のポートへの接続の結線情報を取得することができる。例えば以下のような方法で各スイッチは、結線情報を取得する。ここでは、スイッチＭ１を例に説明する。スイッチＭ１は、ネットワーク管理装置１からの指示を受けて、自己のそれぞれのポートから接続先の問合せを行う。そして、スイッチＭ１は、ポート１から出力した問合せに対す応答として、スイッチＢ１のポート４である旨を受信する。また、スイッチＭ１は、ポート２から出力した問合せに対す応答として、スイッチＢ２のポート５である旨を受信する。また、スイッチＭ１は、ポート３から出力した問合せに対す応答として、スイッチＢ３のポート６である旨を受信する。また、スイッチＭ１は、ポート４から出力した問合せに対す応答として、スイッチＴ１のポート１である旨を受信する。また、スイッチＭ１は、ポート５から出力した問合せに対す応答として、スイッチＴ２のポート２である旨を受信する。また、スイッチＭ１は、ポート６から出力した問合せに対す応答として、スイッチＴ３のポート３である旨を受信する。このようにして受信した情報を用いて、スイッチＭ１は、結線情報２０１を作成する。同様にして、スイッチＢ１〜Ｂ９、スイッチＭ２〜Ｍ９及びスイッチＴ１〜Ｔ３も結線情報を取得することができる。
【００２４】
次に、図１に戻ってネットワーク管理装置１の各部について説明する。ここで、誤結線の発生は、接続が外れて再度接続しなおしたときに発生する。そこで、本実施例では、以下の動作は、リンクが外れて再度接続されたことをトリガとして動作する。ただし、動作のトリガはこれに限らない。例えば、動作の周期を決めておき、周期的に動作を行うようにしても良い。本実施例では、各部がリンクの挿抜を検知し、検知した場合に動作する。ただし、挿抜の検知方法は他の方法でも良く、例えば挿抜検知部を設けて、挿抜検知部が検知した場合に各部が動作するようにしてもよい。以下では、リンクの挿抜検知については説明を省略する。
【００２５】
初期アドレス割当部１１は、ネットワークシステムが起動すると各ノードに、連番となるアドレスであり、且つ１段目スイッチに接続されているノード同士が連番となり、さらに１段目スイッチの番号の小さい順に小さいノード番号を割り当てる。本実施例では、初期アドレス割当部１１は、０から２６までの番号を各ノード２１に割り当てる。より詳しくは、初期アドレス割当部１１は、スイッチＭ１接続されているノード２１に番号１〜３を割当て、次に、スイッチＭ２に接続されているノード２１に番号４〜６を割当てる。そして、初期アドレス割当部１１は、このような番号の割当てを順次繰り返して、図２に示すようにスイッチＭ９に接続されているノード２１まで番号を順番に割当てる。以下では、ノード２１の個々について説明する場合、各ノード２１に割り当てられたノード番号を用いて該当するノードを表す。例えば、０番のノード番号が割り当てられたノード２１は、ノード＃０と表す。すなわち、初期アドレス割当部１１によってアドレスが割り当てられた状態では、ノード２１は、図２に示すように１段目スイッチ２２が番号順に並んだ状態で、ノード＃０〜＃２６が順番に並んだ状態となる。
【００２６】
次に、図２を参照して、この状態における信号の伝送状態について説明する。ネットワークシステム２は、シフト通信パターンを用いた全対全通信を行う。シフト通信パターンは、ノード数をＮとすると、Ｎ回の通信フェーズから構成される。そして、ｉ番目の通信フェーズでは、自信のノード番号からｉ番先のノード番号に対してメッセージを送信する。したがって、各ノード番号をｐ（ｐ＝１，２，・・・，Ｎ）とすると、ｉ番目の通信フェーズでは、（（ｉ＋ｐ）ｍｏｄＮ）が各ノードのメッセージの送信先となる。
【００２７】
図２において、ノード２１の紙面に向かって下側に記載された数字は初期アドレス割当部１１によって各ノード２１に割り当てられたノード番号を示している。さらに、図２において、枠１３０で囲われた数字は、シフト通信パターンの９番目の通信フェーズでの、各ノードにおける送信先のノード番号を表している。９番目の通信フェーズでの各ノードにおける送信先のノード番号は、各ノードのノード番号に９を加えた番号である。そして、シフト通信パターンでは、１段目スイッチ２２が配下のノードから受信する信号のノード番号は連番である。したがって、１段目スイッチ２２は、それぞれ送信先のノード番号が１ｍｏｄ３、２ｍｏｄ３及び３（０）ｍｏｄ３である３つの信号を受信する。このため、１段目スイッチ２２は受信した各信号をそれぞれ異なる２段目スイッチ２３へ送信する。この時、スイッチＭ１〜Ｍ９が、受信する信号の送信先のノード番号は、スイッチＭ１〜Ｍ９のそれぞれの下に記載した番号となる。
【００２８】
２段目スイッチ２３は、それぞれ９個の連番の送信先のノード番号の中の３で割った余りが等しい信号を受信することになる。そして、９個の連番の送信先のノード番号の中の３で割った余りが等しい番号は、９で割った余りが異なる番号である。例えば、スイッチＭ１は、送信先のノード番号が９、１２及び１５の信号を受信する。そこで、スイッチＭ１は、送信先のノード番号が９の信号をスイッチＴ１に送り、送信先のノード番号が１２の信号をスイッチＴ２に送り、送信先のノード番号が１５の信号をスイッチＴ３に送る。同様に、スイッチＭ２〜Ｍ９においても、受信された各信号はそれぞれ異なる３段目スイッチに送信されることになる。このように、９番目の通信フェーズにおいて、１つの経路に対して１つの信号しか送られないため、信号の経路競合は発生しない。さらに、ここでは、９番目の通信フェーズについて説明したが、他の通信フェーズについても同様に、信号の経路競合は発生しない。このように、図２のような正常な接続状態では、シフト通信パターンを用いて通信を行った場合に、信号の経路競合が発生しない。
【００２９】
図４は、ネットワークの誤結線が発生した状態の一例を示す図である。図４は、正常な接続状態であれば、経路１３１及び１３２のように接続されているはずが、経路１３３及び１３４のように接続されており、誤結線となってしまっている。この場合、スイッチＭ１やスイッチＭ２は、正常な接続状態とは異なる信号を受信してしまい、経路競合が発生してしまう。例えば、図４の状態では、スイッチＭ１は送信先のノード番号が０及び９の信号を受信する。この場合、いずれノード番号も０ｍｏｄ９であるので、スイッチＭ１は、２つの信号をスイッチＴ１に送信する。したがって、経路競合が発生してしまうことになる。
【００３０】
図１に戻って、接続状態取得部１２は、１段目スイッチ２２、２段目スイッチ２３及び３段目スイッチ２４のそれぞれから結線情報を取得する。例えば、接続状態取得部１２は、自己が接続している１つのスイッチに対して接続状態の通知命令である情報取得パケットを送信する。
【００３１】
パケットを受信したスイッチは、自己の識別情報、接続しているポート番号及び自己のアクティブなポートの情報を接続状態取得部１２へ通知する。接続状態取得部１２は、接続しているスイッチの識別情報及びポート番号を接続情報テーブルに記録する。さらに、接続状態取得部１２は、アクティブなポートの情報を取得すると、そのスイッチのアクティブなポートに接続されているノード又はスイッチに対して情報取得パケットを送信する。そして、接続状態取得部１２は、アクティブなポートに接続されているスイッチからそれぞれの識別情報、パケットを受けたポート番号及びアクティブなポートの情報を含む応答を取得する。そして、接続状態取得部１２は、応答を受信したスイッチの識別情報及びポート番号を、接続元のスイッチのポートに対応させて接続情報テーブルに記録する。また、接続状態取得部１２は、アクティブなポートに接続されているノードから識別情報を含む応答を取得する。そして、接続状態取得部１２は、応答を受信したノードの識別情報を接続元のスイッチのポートに対応させて接続情報テーブルに記録する。接続状態取得部１２は、このような接続状態の取得を繰返していく。すなわち、接続状態取得部１２は、各スイッチから図３に示す結線情報２０１の内容を有する接続情報を取得して接続情報テーブルに記録していく。そして、接続状態取得部１２は、既に接続情報テーブルに記載されている接続情報を取得した場合には、それより先のスイッチ又はノードに対する情報取得パケットの送信を行わない。このようにして、接続状態取得部１２は、図５に示すような、接続情報テーブル２０２を作成する。図５は、接続情報テーブルの一例の図である。そして、接続状態取得部１２は、取得した接続情報テーブル２０２を誤結線検出部へ出力する。
【００３２】
また、誤結線検出部１３は、正常な接続状態、すなわち図２の状態の結線情報を予め記憶している。誤結線検出部１３は、接続情報テーブル２０２を接続状態取得部１２から取得する。そして、誤結線検出部１３は、記憶している正常な接続状態と接続状態取得部１２から取得した現在の接続状態とを比較する。
【００３３】
誤結線検出部１３は、正常な接続状態と現在の接続状態とが同じであれば、誤結線が無いと判定してアドレス変更の処理を終了する。これに対して、正常な接続状態と現在の接続状態とが異なる場合、誤結線が発生していると判定する。そして、誤結線検出部１３は、現在の接続状態が正常な接続状態と異なっている、すなわち誤結線がある２段目スイッチ２３を特定する。さらに、誤結線検出部１３は、特定した２段目スイッチ２３に接続している１段目スイッチ２２を特定する。そして、誤結線検出部１３は、特定した１段目スイッチ２２に接続している他の２段目スイッチ２３を特定する。その上で、誤結線検出部１３は、特定した２段目スイッチ２３及び１段目スイッチ２２の情報を接続関係と共にアドレス変更部１４へ出力する。
【００３４】
例えば、図４に示すような誤結線がある場合、誤結線検出部１３は、接続情報テーブルからスイッチＭ１とスイッチＭ２との誤結線があることを検出する。そして、誤結線検出部１３は、スイッチＭ１とスイッチＭ２との接続している１段目スイッチ２２としてスイッチＢ１〜Ｂ６を特定する。このスイッチＢ１〜Ｂ６が「誤結線スイッチ」の一例である。さらに、スイッチＢ１〜Ｂ６に接続している他の２段目スイッチとして、スイッチＭ４及びＭ５を特定する。このスイッチＭ４及びＭ５が「関連スイッチ」の一例である。そして、誤結線検出部１３は、スイッチＭ１、Ｍ２、Ｍ４、Ｍ５及びＢ１〜Ｂ６の情報とそれぞれの接続関係をアドレス変更部１４へ出力する。
【００３５】
アドレス変更部１４は、誤結線検出部１３により特定された２段目スイッチ２３及び１段目スイッチ２２の情報並びにその接続関係の入力を誤結線検出部１３から受ける。そして、アドレス変更部１４は、受信した２段目スイッチ２３及び１段目スイッチ２２の情報並びにその接続関係から、図６の表３１２のような２段目スイッチ２３及び１段目スイッチ２２の接続関係を表す接続表を作成する。図６は、誤結線時におけるアドレス算出方法を説明するための図である。さらに、アドレス変更部１４は、記載欄３１１のような接続表にアドレス割当て欄を付加して、アドレス算出表３０１を作成する。
【００３６】
また、アドレス変更部１４は、初期アドレス割当部１１から各ノード２１のノード番号及び初期アドレス割当部１１がノード番号を割り当てた状態での各ノード２１が接続されている１段目スイッチの情報を取得する。そして、アドレス変更部１４は、初期アドレス割当部１１がノード番号を割り当てた状態で接続されているノードのノード番号が小さい順に１段目スイッチに１から順に番号をふる。本実施例では、アドレス変更部１４は、スイッチＢ１〜Ｂ９の順に１〜９までの番号をふる。そして、アドレス変更部１４は、アドレス算出表３０１に載っている１段目スイッチ２２に対してふった番号を使用番号として取得する。本実施例では、アドレス変更部１４は、使用番号として１〜６を取得する。
【００３７】
次に、アドレス変更部１４は、アドレス算出表３０２の枠３２１で表わすように、最も番号の小さい２段目スイッチ２３及びその２段目スイッチ２３に接続している１段目スイッチ２２を特定する。そして、アドレス変更部１４は、特定した１段目スイッチ２２のうち最小の番号を有するスイッチに、使用番号の内の最小の番号を割り当てる。本実施例では、最小の番号は１番であるので、アドレス変更部１４は、矢印３２２で示すように、スイッチＢ１に対して１番を割り当てる。さらに、アドレス変更部１４は、他の１段目スイッチ２２に対してスイッチの番号の小さい順に、残りの使用番号の小さい方から番号を割り当てる。本実施例では、アドレス変更部１４は、矢印３２３及び３２４で示すように、スイッチＢ２に２番を割り当て、スイッチＢ４に３番を割り当てる。
【００３８】
次に、アドレス変更部１４は、アドレス算出表３０３の枠３３１で表されているように、割り当てた番号のうち最大の番号を有する１段目スイッチ２２の接続のある他の行を確認する。
【００３９】
次に、アドレス変更部１４は、アドレス算出表３０４の枠３４１で表わすように、割り当てた番号のうち最大の番号を有する１段目スイッチ２２が接続する他の２段目スイッチ２３及びそのスイッチに接続する他の１段目スイッチ２２を特定する。そして、アドレス変更部１４は、ここで特定した１段目スイッチ２２のうち最小の番号を有するスイッチに、残りの使用番号の内の最小の番号を割り当てる。本実施例では、残っている最小の番号は４番であるので、アドレス変更部１４は、矢印３４２で示すように、スイッチＢ５に対して４番を割り当てる。さらに、アドレス変更部１４は、他の１段目スイッチ２２に対してスイッチの番号の小さい順に、残りの使用番号の小さい方から番号を割り当てる。本実施例では、アドレス変更部１４は、矢印３４３で示すように、スイッチＢ６に５番を割り当てる。
【００４０】
次に、アドレス変更部１４は、アドレス算出表３０５の枠３５１で表されているように、割り当てた番号のうち最大の番号を有する１段目スイッチ２２の接続のある他の行を確認する。
【００４１】
次に、アドレス変更部１４は、アドレス算出表３０６の枠３６１で表わすように、割り当てた番号のうち最大の番号を有する１段目スイッチ２２が接続する他の２段目スイッチ２３及びそのスイッチに接続する他の１段目スイッチ２２を特定する。そして、アドレス変更部１４は、ここで特定した１段目スイッチ２２のうち最小の番号を有するスイッチに、残りの使用番号のうち最小の番号を割り当てる。本実施例では、残っている最小の番号は６番であるので、アドレス変更部１４は、矢印３６２で示すように、スイッチＢ３に対して６番を割り当てる。ここで、本実施例では、番号を割り当てていない１段目スイッチ２３が無くなるので、アドレス変更部１４は、番号の割当てを終了する。これに対して、まだ番号を割り当てていない１段目スイッチ２２がある場合、さらに、アドレス変更部１４は、他の１段目スイッチ２２に対してスイッチの番号の小さい順に、残りの使用番号の小さい方から番号を割り当てる。
【００４２】
アドレス変更部１４は、接続表に記載されている全ての１段目スイッチ２２に対して番号の割当てが完了するまで番号の割当ての処理を繰り返す。
【００４３】
次に、アドレス変更部１４は、各１段目スイッチ２２に割り当てた番号をスイッチのポート数の半分の値で割った余りをそれぞれ算出する。そして、アドレス変更部１４は、任意の２段目スイッチ２３に接続されている１段目スイッチ２２に対する算出した値がそれぞれ異なる値を有しているか否かを判定する。全てが異なる値を有していれば、アドレス変更部１４は、番号の割当てが成功したと判定する。これに対して、同じ値を有するものがあれば、アドレス変更部１４は、番号の割当てが失敗したと判定し、アドレスの算出処理を終了する。本実施例では、図６のアドレス算出表３０６のように、スイッチＭ１に接続された１段目スイッチ２２には番号１、２及び３がふられている。この番号は、割ると余りはそれぞれ１、２、０となり、全てが異なる値となっている。また、スイッチＭ２に接続された１段目スイッチ２２には番号６、４及び５がふられている。この番号は、割ると余りはそれぞれ０、１、２となり、全てが異なる値となっている。また、スイッチＭ４に接続された１段目スイッチ２３には番号１、２及び６がふられている。この番号は、割ると余りはそれぞれ１、２、０となり、全てが異なる値となっている。また、スイッチＭ５に接続された１段目スイッチ２３には番号３、４及び５がふられている。この番号は、割ると余りはそれぞれ０、１、２となり、全てが異なる値となっている。したがって、本実施例では、アドレス変更部１４は、番号の割り当ては成功したと判定する。
【００４４】
アドレス変更部１４は、番号の割当てが成功したと判定すると、割り当てた番号から１を減算した値にポート数の半分の値を乗算することで、その番号が割り当てられた１段目スイッチ２２に接続されているノード２１の最小のノード番号を算出する。そして、アドレス変更部１４は、算出した値から連番で番号をふっていき、１段目スイッチ２２に接続されている全てのノード２１のノード番号を求める。このようにして、アドレス変更部１４は、ノード番号を変更するノード２１及びそのノード番号を決定する。本実施例の場合、スイッチＢ１には１番が割り当てられているので、スイッチＢ１に接続しているノード２１の最小のノード番号は（１−１）×３＝０となる。そして、スイッチＢ１に接続しているノード２１のノード番号は０、１及び２となる。また、スイッチＢ２には２番が割り当てられているので、スイッチＢ２に接続しているノード２１のノード番号は３、４及び５となる。また、スイッチＢ３には６番が割り当てられているので、スイッチＢ３に接続しているノード２１のノード番号は１５、１６及び１７となる。また、スイッチＢ４には３番が割り当てられているので、スイッチＢ４に接続しているノード２１のノード番号は６、７及び８となる。また、スイッチＢ５には４番が割り当てられているので、スイッチＢ５に接続しているノード２１のノード番号は９、１０及び１１となる。また、スイッチＢ６には５番が割り当てられているので、スイッチＢ６に接続しているノード２１のノード番号は１２、１３及び１４となる。
【００４５】
アドレス変更部１４は、初期アドレス割当部１１が割り当てたノード番号の内、変更を決定したノード２１に対して求めた新しいノード番号を割り当てて、ノード２１に対する新しいノード番号の割り当てを決定する。
【００４６】
ここで、本実施例では、１段目スイッチ２２に割り当てた番号を用いて、ノード番号の割り当ての可否を判定したが、これは他の方法でも良い。例えば、各ノードの新しいノード番号まで算出してしまい、その後、算出したノード番号を用いたシフト通信パターンによる通信をシミュレーションし、経路競合が発生しないことを確かめることで、ノード番号の割り当ての可否を判定してもよい。
【００４７】
アドレス変更部１４は、決定した新しいノード番号の割り当てを用いて、ノード２１に対してノードを割り当て、ノード２１のアドレスの変更を行う。この結果、本実施例に係るネットワークシステム２では、ノード２１に対して、ノード番号として図７に示す番号１４０が割り当てられる。ここで、図７は、変更後のアドレス及び信号の送信について説明するための図である。
【００４８】
次に、図７を参照して、本実施例に係るアドレス変更後の信号の送信について説明する。ここでも、シフト通信パターンを用いた場合の９番目の通信フェーズにおける信号の送信状態を例に説明する。枠１４１で囲われた数字は、９番目の通信フェーズにおける各ノード２１からの信号の送信先のノード番号を表している。
【００４９】
スイッチＢ１〜Ｂ９は、自己に接続されたノード２１から受信した信号を、そのノード番号を３で割った余りに従って対応する２段目スイッチ２３へ送信する。ここで、枠１４１の中で示される値で分かるように、それぞれのノード２１から出力された３つの信号は０ｍｏｄ３、１ｍｏｄ３、２ｍｏｄ３となっている。したがって、スイッチＢ１〜Ｂ９からスイッチＭ１〜Ｍ９に対しては、すべての信号が異なる経路を経由して送信されるので、経路競合は起こらない。
【００５０】
そして、スイッチＭ１〜Ｍ９は、それぞれの下に記載したノード番号を送信先とする信号を受信する。スイッチＭ１〜Ｍ３のそれぞれが受信した信号の送信先のノード番号は０ｍｏｄ９、１ｍｏｄ９、２ｍｏｄ９である。また、スイッチＭ４〜Ｍ６のそれぞれが受信した信号の送信先のノード番号は３ｍｏｄ９、４ｍｏｄ９、５ｍｏｄ９である。また、スイッチＭ７〜Ｍ９のそれぞれが受信した信号の送信先のノード番号は６ｍｏｄ９、７ｍｏｄ９、８ｍｏｄ９である。したがって、スイッチＭ１〜Ｍ９からスイッチＴ１〜Ｔ９に対しても、すべての信号が異なる経路を経由して送信されるので、経路競合は起こらない。したがって、上述したアドレス変更によって、誤結線が発生した状態でシフト通信パターンを用いた全対全通信を行った場合にも、信号伝送において広い帯域を確保することができている。
【００５１】
次に、図８を参照して、本実施例に係るネットワーク管理装置による誤結線時におけるアドレス変更の処理の流れについて説明する。図８は、誤結線時におけるアドレス変更の処理のフローチャートである。
【００５２】
初期アドレス割当部１１は、各ノード２１に対して連番となる初期アドレスを割り当てる（ステップＳ１）。
【００５３】
接続状態取得部１２は、１段目スイッチ２２、２段目スイッチ２３及び３段目スイッチ２４から結線情報を所得する。そして、接続状態取得部１２は、取得した結線情報をまとめて接続情報テーブルを作成する（ステップＳ２）。この接続情報テーブル作成の処理の流れの詳細は後で説明する。
【００５４】
誤結線検出部１３は、接続情報テーブルを接続状態取得部１２から取得し、現在の接続状態と予め記憶している正常な接続状態とを比較する。そして、誤結線検出部１３は、現在の接続状態に誤結線があるか否かを判定する（ステップＳ３）。
【００５５】
誤結線検出部１３により誤結線が無いと判定された場合（ステップＳ３：否定）、ネットワーク管理装置１は、アドレスの変更を終了する。
【００５６】
これに対して、誤結線検出部１３により誤結線が有ると判定された場合（ステップＳ３：肯定）、アドレス変更部１４は、接続状態テーブルに記載された現在の接続状態を用いて、誤結線の状態における各ノード２１の新しいアドレスを算出する（ステップＳ４）。この、アドレス算出の処理の詳細な流れについては後で説明する。
【００５７】
そして、アドレス変更部１４は、算出した新しいアドレスを各ノード２１に割り当て、各ノード２１のアドレスの変更を行う（ステップＳ５）。
【００５８】
次に、図９を参照して、接続状態の取得の流れについて説明する。図９は、接続状態の取得の処理のフローチャートである。図９に記載されたフローは、図８におけるステップＳ２における処理の詳細にあたる。
【００５９】
接続状態取得部１２は、隣接するスイッチに、接続状態を問い合わせる問合せパケットを送信する（ステップＳ１１）。
【００６０】
接続状態取得部１２は、問合せパケットに対する応答から、問合せパケットを送信したスイッチ又はノードの接続状態を特定する（ステップＳ１２）。例えば、接続状態取得部１２は、スイッチからは、スイッチの識別情報、問合せパケットを受信したポートの情報及びアクティブなポートの情報を取得する。また、接続状態取得部１２は、ノードからは、ノードの識別情報を取得する。
【００６１】
そして、接続状態取得部１２は、特定した接続状態が既に接続情報テーブルに記載されているか否かを判定する（ステップＳ１３）。記録されていない場合（ステップＳ１３：否定）、接続状態取得部１２は、接続情報テーブルに特定した接続状態を記録する（ステップＳ１４）。
【００６２】
これに対して、特定した接続状態が記録済みの場合（ステップＳ１３：肯定）、接続状態取得部１２は、ステップＳ１５へ進む。
【００６３】
そして、接続状態取得部１２は、接続情報テーブルに接続先の記録の無いアクティブポートがあるか存在するか否かを判定する（ステップＳ１５）。記録の無いアクティブポートがある場合（ステップＳ１５：肯定）、接続状態取得部１２は、当該アクティブポートの接続先に問合せパケットを送信し（ステップＳ１６）、ステップＳ１２へ戻る。
【００６４】
これに対して、記録の無いアクティブポートがない場合（ステップＳ１５：否定）、接続状態取得部１２は、接続情報テーブルの作成を終了する。
【００６５】
次に、図１０を参照して、本実施例に係るネットワーク管理装置によるアドレス算出処理の流れについて説明する。図１０は、アドレス算出処理のフローチャートである。図１０に記載されたフローは、図８におけるステップＳ４における処理の詳細にあたる。
【００６６】
アドレス変更部１４は、誤結線が発生している２段目スイッチ２３、当該２段目スイッチ２３に接続された１段目スイッチ２２及び当該１段目スイッチ２２に接続された他の２段目スイッチ２３の情報を接続状態と共に誤結線検出部１３から受信する。そして、アドレス変更部１４は、誤結線検出部１３から受信した情報を用いて接続表を作成する（ステップＳ２１）。さらに、アドレス変更部１４は、初期アドレス割当部１１が割り当てたノード番号の中で小さい番号がふられたノード２１が接続されている順に１段目スイッチ２２に対して１から番号を連番でふっていく。そして、アドレス変更部１４は、１段目スイッチ２２にふった番号の中で、接続表に記載されている１段目スイッチ２２に割り当てられた番号を使用番号として取得する。
【００６７】
次に、アドレス変更部１４は、スイッチの番号が最も小さい２段目スイッチ２３の接続を表す行、すなわち接続表の１行目を選択する（ステップＳ２２）。
【００６８】
そして、アドレス変更部１４は、選択した行に記載された１段目スイッチ２２のスイッチ番号が小さい順に使用番号の小さいものを割り当てる（ステップＳ２３）。
【００６９】
アドレス変更部１４は、全ての１段目スイッチ２２に番号の割り当てが完了したか否かを判定する（ステップＳ２４）。割り当てが完了していない場合（ステップＳ２４：否定）、アドレス変更部１４は、割り当てた最後の番号を有する１段目スイッチに接続された他の２段目スイッチ２３の行を選択し（ステップＳ２５）、ステップＳ２３に戻る。
【００７０】
これに対して、割り当てが完了している場合（ステップＳ２４：肯定）、アドレス変更部１４は、各１段目スイッチ２２に割り当てた番号をスイッチのポート数の半分の数ｎで割り余りを求める。そして、アドレス変更部１４は、それぞれの２段目スイッチ２３に接続されている１段目スイッチ２２における余りが全て異なるか否かを判定する（ステップＳ２６）。ｎで割った余りが同じものがある場合（ステップＳ２６：否定）、アドレス変更部１４は、アドレスの算出処理を終了する。
【００７１】
一方、ｎで割った余りが全て異なる場合（ステップＳ２６：肯定）、アドレス変更部１４は、１段目スイッチ２２に割り当てた番号から１を減算した値にスイッチのポート数の半分の数ｎを乗算してノード２１の新しいアドレスを算出する（ステップＳ２７）。
【００７２】
以上に説明したように、本実施例に係るネットワーク管理装置は、正常なＦａｔ  Ｔｒｅｅ構成に対して誤結線が発生している場合、経路競合の発生を抑えるように自動的にノード番号を変更する。これにより、ネットワークに誤結線が発生した場合にも、信号伝送において広い帯域を確保することができ、ネットワークの性能の低下を軽減することができる。
【００７３】
ここで、本実施例では、ネットワーク管理装置１をネットワークシステム２の外部に配置された装置として説明したがこれに限らない。例えば、ノードの中にネットワーク管理装置を組み込んでもよいし、第１〜第３スイッチのいずれかにネットワーク管理装置を組み込んでもよい。また、ネットワーク管理装置としての動作を制御するプログラムは、ネットワークの管理を行う「ＳｕｂｎｅｔＭａｎａｇｅｒ」と呼ばれるアプリケーションの機能の一部として動作してもよい。
【符号の説明】
【００７４】
１  ネットワーク管理装置
２  ネットワークシステム
１１  初期アドレス割当部
１２  接続状態取得部
１３  誤結線検出部
１４  アドレス変更部
２１  ノード
２２  １段目スイッチ
２３  ２段目スイッチ
２４  ３段目スイッチ
【図１】
0005794011.tif 000002
【図２】
0005794011.tif 000003
【図３】
0005794011.tif 000004
【図４】
0005794011.tif 000005
【図５】
0005794011.tif 000006
【図６】
0005794011.tif 000007
【図７】
0005794011.tif 000008
【図８】
0005794011.tif 000009
【図９】
0005794011.tif 000010
【図１０】
0005794011.tif 000011
【図１１】
0005794011.tif 000012