(57)【要約】【課題】より多くのノードを情報処理ネットワークに接続できるようにする。【解決手段】本システムは、複数集合のいずれかにそれぞれ分類された複数のノードと、複数ノードのいずれかに接続され、接続されたノードの第1中継情報を有する複数の第1スイッチと、第1スイッチからのパケットを中継し、各々複数集合のうち担当するいずれかの集合の第2中継情報を有する複数の第2スイッチとを有する。そして第1ノードが、第1集合に属する第2ノード宛のパケットを、第1ノードが接続された第1スイッチに送信すると、当該第1スイッチは、受信パケットの宛先情報と第１中継情報とに基づき、第1集合を担当する第2スイッチに受信パケットを送信する。宛先の第2スイッチは、受信パケットの宛先情報と第2中継情報とに基づき、第2ノードが接続された第1スイッチ宛に受信パケットを送信する。さらに、宛先の第1スイッチは、受信パケットを第2ノードに送信する。【選択図】図６
2015222919.tif 000002
【特許請求の範囲】
【請求項１】
複数の集合のいずれかにそれぞれ分類される複数のノードと、
前記複数のノードのいずれかに接続され、接続されたノードの第１の中継情報を有する複数の第１スイッチと、
前記複数の第１スイッチからのパケットを中継し、各々前記複数の集合のうち担当するいずれかの集合の第２の中継情報を有する複数の第２スイッチと、
を有し、
前記複数のノードのうち第１のノードが、前記複数の集合のうち第１の集合に属する第２のノード宛の第１のパケットを、前記第１のノードが接続された第１スイッチに送信すると、
前記第１のノードが接続された第１スイッチは、前記第１のパケットを受信し、前記第２のノードが自スイッチに接続されていない場合、前記第１のパケットの宛先情報と前記第１の中継情報とに基づき、前記第２のノードが属する集合を担当する第２スイッチに、前記第１のパケットを送信し、
前記第１の集合を担当する第２スイッチは、前記第１のパケットを受信すると、前記第１のパケットの宛先情報と前記第２の中継情報とに基づき、前記第２のノードが接続された第１スイッチ宛に、前記第１のパケットを送信し、
前記第２のノードが接続された第１スイッチは、前記第１のパケットを受信すると、前記第１のパケットを前記第２のノードに送信する
情報処理システム。
【請求項２】
前記複数のノードの各々は、第１のアドレス及び第２のアドレスを有しており、
前記第１のノードは、前記第１のアドレスとして所定のアドレスを含み且つ前記第２のアドレスとして前記第２のノードの第２のアドレスを含む宛先情報を含む第１のパケットを送信し、
前記第２のノードが属する集合を担当する第２スイッチは、前記第１のパケットの宛先情報に含まれる前記所定のアドレスを前記第２のノードの第１のアドレスに変更する
請求項１記載の情報処理システム。
【請求項３】
前記複数のノードの各々は、第１のアドレス及び第２のアドレスを有しており、
前記第１のノードは、前記第１のアドレスとして所定のアドレスを含み且つ前記第２のアドレスとして前記第２のノードの第２のアドレスを含む宛先情報を含む第１のパケットを送信し、
前記第２のノードが接続された第１スイッチは、前記第１のパケットの宛先情報に含まれる前記所定のアドレスを前記第２のノードの第１のアドレスに変更する
請求項１記載の情報処理システム。
【請求項４】
前記第１の中継情報は、
集合毎に、当該集合を担当する第２スイッチに対応するポートを、パケットの宛先情報の一部から特定するための情報をさらに含む
請求項１乃至３のいずれか１つ記載の情報処理システム。
【請求項５】
前記第２の中継情報は、
担当する集合に属するノードに対応するポートを、パケットの宛先情報全体から特定するための情報を含む
請求項１乃至４のいずれか１つ記載の情報処理システム。
【請求項６】
同一集合を担当する第２スイッチが複数存在する場合には、
前記第１の中継情報は、
集合毎に、当該集合を担当する第２スイッチに対応するポートを、パケットの宛先情報の一部及び当該パケットに含まれる識別情報から特定するための情報をさらに含む
請求項１乃至３のいずれか１つ記載の情報処理システム。
【請求項７】
複数の集合のいずれかにそれぞれ分類される複数のノードと、前記複数のノードのいずれかに接続され、接続されたノードの第１の中継情報を有する複数の第１スイッチと、前記複数の第１スイッチからのパケットを中継し、各々前記複数の集合のうち担当するいずれかの集合の第２の中継情報を有する複数の第２スイッチとを有する情報処理システムにおいて、
前記複数のノードのうち第１のノードが、前記複数の集合のうち第１の集合に属する第２のノード宛の第１のパケットを、前記第１のノードが接続された第１スイッチに送信し、
前記第１のノードが接続された第１スイッチは、前記第１のパケットを受信し、前記第２のノードが自スイッチに接続されていない場合、前記第１のパケットの宛先情報と前記第１の中継情報とに基づき、前記第２のノードが属する集合を担当する第２スイッチに、前記第１のパケットを送信し、
前記第１の集合を担当する第２スイッチは、前記第１のパケットを受信すると、前記第１のパケットの宛先情報と前記第２の中継情報とに基づき、前記第２のノードが接続された第１スイッチ宛に、前記第１のパケットを送信し、
前記第２のノードが接続された第１スイッチは、前記第１のパケットを受信すると、前記第１のパケットを前記第２のノードに送信する
処理を含む通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報通信ネットワークにおける情報処理システム及び情報処理方法に関する。
【背景技術】
【０００２】
Ethernet（登録商標）上にFibre Channel (ＦＣ) Storage Area Network (ＳＡＮ)を実現する技術として、Fibre Channel over Ethernet (ＦＣｏＥ) がある。ＦＣｏＥによって、従来個別に配備されていたEthernetによるＬＡＮ（Local Area Network）とＳＡＮとを、１つのネットワークに統合することができるようになる。これによって、スイッチ、アダプタ、ケーブルの数を半減でき、ネットワーク管理の簡素化が可能となる。
【０００３】
一方、データセンタにおいて設置されるサーバ数の増加や、仮想化技術による仮想サーバの増加により、エンドノード数が増加するという問題が起こっている。このようなエンドノード数の増加に伴い、ネットワークの能力も増加させることになる。しかしながら、比較的安価なＬＳＩ（Large-Scale Integrated Circuits）を用いたスイッチを多数用いてネットワークを構築するケースが多い。
【０００４】
ＦＣｏＥでは、ＦＣと同様に、エンドノードの情報をＦＣｏＥ  Forwarder（ＦＣＦ）が管理するようになっており、エンドノードの数に比例してエンドノードの情報を格納する領域を確保することになる。しかしながら、上で述べたように比較的安価なＬＳＩでは記憶容量が制限されており、ＦＣｏＥを単純に実装すれば、結果としてシステムの規模が制限されることになる。
【０００５】
なお、ＦＣｏＥでは、２つのプロトコルが用いられる。１つのプロトコルは、ＦＣｏＥプロトコルであり、ＦＣｏＥのデータプレーンに関するプロトコルである。ＦＣｏＥプロトコルでは、イーサネットパケット（イーサネットフレームとも呼ぶ）内にＦＣパケット（ＦＣフレームとも呼ぶ）をカプセル化及び非カプセル化することが規定されている。
【０００６】
もう一つのプロトコルは、ＦＣｏＥ  Initialization Protocol（ＦＩＰ）であり、ＦＣｏＥのコントロールプレーンに関するプロトコルである。ＦＩＰは、イーサネット網に接続し且つ制御パケットによりＦＣｏＥが動作可能なデバイスを見つけ出すために用いられ、また、ＦＣのログイン及びログアウトプロセスを規定している。
【０００７】
ある文献には、ＦＣｏＥのコントロールプレーンにおける処理の分散について考慮したものが存在しているが、データプレーンについては考慮されていない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２０１４−５０２１２６号公報
【特許文献２】特表２０１１−５２８２０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従って、本発明の目的は、一側面においては、より多くのエンドノードを情報処理ネットワークに接続できるようにするための技術を提供することである。
【課題を解決するための手段】
【００１０】
本発明に係る情報処理システムは、（Ａ）複数の集合のいずれかにそれぞれ分類される複数のノードと、（Ｂ）複数のノードのいずれかに接続され、接続されたノードの第１の中継情報を有する複数の第１スイッチと、（Ｃ）複数の第１スイッチからのパケットを中継し、各々複数の集合のうち担当するいずれかの集合の第２の中継情報を有する複数の第２スイッチとを有する。そして、（ｄ１）上記複数のノードのうち第１のノードが、複数の集合のうち第１の集合に属する第２のノード宛の第１のパケットを、第１のノードが接続された第１スイッチに送信すると、（ｄ２）第１のノードが接続された第１スイッチは、第１のパケットを受信し、第２のノードが自スイッチに接続されていない場合、第１のパケットの宛先情報と第１の中継情報とに基づき、第２のノードが属する集合を担当する第２スイッチに、第１のパケットを送信する。そして、（ｄ３）第１の集合を担当する第２スイッチは、第１のパケットを受信すると、第１のパケットの宛先情報と第２の中継情報とに基づき、第２のノードが接続された第１スイッチ宛に、第１のパケットを送信する。（ｄ４）さらに、第２のノードが接続された第１スイッチは、第１のパケットを受信すると、第１のパケットを第２のノードに送信する。
【発明の効果】
【００１１】
一側面によれば、より多くのエンドノードを情報処理ネットワークに接続できるようになる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態の概要を説明するための図である。
【図２】図２は、実施の形態に係るスイッチの機能ブロック図である。
【図３】図３は、ＦＣｏＥ中継テーブルの一例を示す図である。
【図４】図４は、スイッチの処理内容を説明するための図である。
【図５】図５は、実施例における情報処理システムの構成例を示す図である。
【図６】図６は、実施例１の概略を説明するための図である。
【図７】図７は、実施例１において送信元エンドノードが接続されたLeafスイッチのＦＣｏＥ中継テーブルの一例を示す図である。
【図８】図８は、実施例１において関係するSpineスイッチのＦＣｏＥ中継テーブルの一例を示す図である。
【図９】図９は、実施例１において宛先エンドノードが接続されたLeafスイッチのＦＣｏＥ中継テーブルの一例を示す図である。
【図１０】図１０は、実施例におけるコントローラの機能ブロック構成を示す図である。
【図１１】図１１は、初期設定部の処理の処理フローを示す図である。
【図１２】図１２は、実施例１における追加設定部の処理の処理フローを示す図である。
【図１３】図１３は、実施例２の概略を説明するための図である。
【図１４】図１４は、実施例２において送信元エンドノードが接続されたLeafスイッチのＦＣｏＥ中継テーブルの一例を示す図である。
【図１５】図１５は、実施例２において関係するSpineスイッチのＦＣｏＥ中継テーブルの一例を示す図である。
【図１６】図１６は、実施例１において宛先エンドノードが接続されたLeafスイッチのＦＣｏＥ中継テーブルの一例を示す図である。
【図１７】図１７は、実施例２における追加設定部の処理の処理フローを示す図である。
【図１８】図１８は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１３】
本実施の形態の概要を図１を用いて説明する。本実施の形態では、図１において最下段に四角で表わされたエンドノードを、複数の集合（ここでは２つの集合Ａ及びＢ）に分類する。分類には、例えば各エンドノードが有する識別子（ＩＤ）の一部を使用すればよい。図１に示す情報処理システムにおけるネットワークでは、丸で表されたスイッチをツリー状に接続しており、Spineスイッチ１０１及び１０２と、中間スイッチ１０１１乃至１０２２と、Leafスイッチ１０１１１乃至１０２２２とが含まれる。
【００１４】
具体的には、Leafスイッチ１０１１１及び１０１１２は、中間スイッチ１０１１に接続され、Leafスイッチ１０１２１及び１０１２２は、中間スイッチ１０１２に接続される。Leafスイッチ１０２１１及び１０２１２は、中間スイッチ１０２１に接続され、Leafスイッチ１０２２１及び１０２２２は、中間スイッチ１０２２に接続される。そして、中間スイッチ１０１１乃至１０２２は、それぞれSpineスイッチ１０１及び１０２に接続される。
【００１５】
Spineスイッチ１０１は、集合Ａのエンドノードを担当しており、Spineスイッチ１０２は、集合Ｂのエンドノードを担当する。すなわち、Spineスイッチ１０１及び１０２でもってエンドノードからのパケットの中継を分担することで、各々が保持すべき中継情報の量を削減している。
【００１６】
図１に示されたネットワークにおいては、中間スイッチ１０１１乃至１０２２は、各々自らの配下に配置されたエンドノードについての中継情報を有する。例えば、中間スイッチ１０２２は、実線矩形Ｘで囲われた４つのエンドノードについての中継情報を有している。同様に、Leafスイッチ１０１１１乃至１０２２２は、各々自らが接続されているエンドノードについての中継情報を有している。例えば、Leafノード１０２２１は、点線矩形Ｙで囲われた２つのエンドノードについての中継情報を有している。
【００１７】
また、図１の例では、コントローラ２００が、Spineスイッチ１０１に接続されている。コントローラ２００は、各スイッチへの直接又は間接的なパスを有しており、ネットワークのトポロジ情報とエンドノードのＩＤ及び位置情報とを収集して、各スイッチで用いられる中継情報の設定を指示する。
【００１８】
ここで、左から３番目の送信元エンドノードＣから、右から３番目の宛先エンドノードＤへ、パケットを送信する例を用いて、中継処理の概要を説明する。
【００１９】
まず、送信元エンドノードＣは、宛先エンドノードＤ宛のパケットをLeafスイッチ１０１１２に送信する。そうすると、Leafスイッチ１０１１２は、宛先エンドノードＤについての中継情報を有していない、すなわち自らの配下に宛先エンドノードＤが存在しないことを確認の上、受信したパケットを中間スイッチ１０１１に送信する。
【００２０】
中間スイッチ１０１１は、宛先エンドノードＤについての中継情報を有していない、すなわち自らの配下に宛先エンドノードＤが存在しないことを確認の上、宛先エンドノードＤが属する集合Ｂを担当するSpineスイッチ１０２へ、受信したパケットを送信する。
【００２１】
集合Ｂを担当するSpineスイッチ１０２は、宛先エンドノードＤのＩＤ及び自ら保持している中継情報から中間スイッチ１０２２を選択し、当該中間スイッチ１０２２に対して受信したパケットを送信する。
【００２２】
中間スイッチ１０２２も、宛先エンドノードＤのＩＤ及び自ら保持している中継情報からLeafスイッチ１０２２１を選択し、当該Leafスイッチ１０２２１に対して受信したパケットを送信する。そして、Leafスイッチ１０２２１も、宛先エンドノードＤのＩＤ及び自らの保持する中継情報から、受信したパケットを宛先エンドノードＤに送信する。
【００２３】
このように、送信元エンドノードが接続されているLeafスイッチのポートである入口ポートから、宛先エンドノードが接続されているLeafスイッチのポートである出口ポートとの間には、「折り返し点」に相当するスイッチ（図１の例ではSpineスイッチ）が決定される。「折り返し点」に相当するスイッチは、図１の例のように、各集合について１つの場合もあれば、負荷分散などのために複数設けられている場合もある。ここで、入力ポートと出力ポートとの間の通信を、通信フローと呼ぶことにする。
【００２４】
また、本実施の形態では、当初、宛先ＭＡＣ（Media Access Control）アドレスとしてＦＣＦ（FCoE Forwarder）のＭＡＣアドレスが設定されているが、通信フローにおいて折り返し点から出口ポートの間のいずれかのスイッチで、宛先ＭＡＣアドレスに宛先エンドノードのＭＡＣアドレスを設定すると共に送信元ＭＡＣアドレスにＦＣＦのＭＡＣアドレスを設定するというヘッダの修正が行われる。なお、以下では、折り返し点に相当するSpineスイッチで修正を行う例と、出口ポートを有するLeafスイッチで修正を行う例を示す。
【００２５】
通信フローにおいて入口ポートから折り返し点までのスイッチは、折り返し点に相当するスイッチが担当するエンドノード集合を特定するための情報、すなわち宛先エンドノードのＦＣ−ＩＤ（Ｄ−ＩＤ（FC Destination ID））の一部を用いて転送を行う。１つのエンドノード集合に対して折り返し点に相当するスイッチが複数存在する場合には、宛先エンドノードのＦＣ−ＩＤだけではなく、送信元エンドノードのＦＣ−ＩＤ（Ｓ−ＩＤ（FC Source ID））やエクスチェンジＩＤ（ＯＸ−ＩＤ（FC Exchange ID）。ＦＣフレームのヘッダに含まれる通信管理上のＩＤ）等を用いて、負荷分散を図っても良い。
【００２６】
なお、ＦＣｏＥでは、ＦＣＦが、コントロールプレーンとデータプレーン両方の機能を有する。上でも述べたが、コントロールプレーンとは、エンドノードとログイン処理などのための制御パケットをＦＩＰで交換し、その位置情報を得る機能である。また、データプレーンは、その位置情報を基に、ＦＣｏＥプロトコルによってデータパケットの中継処理を行う機能である。
【００２７】
また、ＦＣ−ＩＤは、ＦＣポートのＩＤであり、ＦＣにおいてルーティングに用いられる。ＦＣ−ＩＤは、３オクテットで指定され、例えば１６進数で０ｘＸＸＹＹＺＺであれば、ＸＸはDomain ＩＤを表し、ＹＹは、Area ＩＤを表し、ＺＺはPort ＩＤを表す。ＦＣにおいてDomain  ＩＤとは、複数のＦＣスイッチ（ＦＣ−ＳＷ）でＳＡＮを形成する場合、各スイッチに個別に与えられるものである。Domain ＩＤは、８ビットであり、ネットワークにおいて最大２３９個のスイッチを接続することができる。
【００２８】
本実施の形態のコントローラ２００は、従来のＦＣＦが有する、エンドノードの位置情報に加えて、ネットワークのトポロジ情報を有するようにする。トポロジ情報については、自動的に収集するようにしても良いし、管理者によって設定される場合もある。一方、コントローラ２００は、データプレーン機能を有してはいない。但し、コントローラ２００は、ＦＣＦのコントロールプレーン機能を拡張したものであっても良い。さらに、図１のように、ＦＣＦとして動作するSpineスイッチ１０１及び１０２から分離して、ＦＣＦから位置情報等を取得するようにしても良い。
【００２９】
図２に、本実施の形態に係るスイッチの基本的な機能ブロック図を示す。
【００３０】
本実施の形態に係るスイッチは、外部の装置と接続され且つ外部の装置からパケットを受信する受信ポート１乃至ｎと、外部の装置と接続され且つ外部の装置に対してパケットを送信する送信ポート１乃至ｎと、スイッチＬＳＩ１５１と、例えばプロセッサとプログラムとの組み合わせにて実現されるプロトコル処理部１５２とを有する。プロトコル処理部１５２についても、専用ＬＳＩにて実装される場合もある。
【００３１】
プロトコル処理部１５２は、内部ポートＡと内部ポートＢとでスイッチＬＳＩ１５１と接続されている。このプロトコル処理部１５２は、コネクションの確立やプロトコルの監視、スイッチＬＳＩ１５１への指示などのための処理を行う。この処理については、本実施の形態と直接関係ないのでこれ以上述べない。
【００３２】
スイッチＬＳＩ１５１は、受信ポート１乃至ｎ及び内部ポートＡと接続されるマルチプレクサ１５１１と、パケットバッファ１５１２と、パケット処理部１５１５と、パケット更新部１５１３と、送信ポート１乃至ｎ及び内部ポートＢと接続されるデマルチプレクサ１５１４とを有する。
【００３３】
マルチプレクサ１５１１が受信したパケット全体については、パケットバッファ１５１２に格納される。また、マルチプレクサ１５１１が受信したパケットのヘッダ情報及び制御情報は、パケット処理部１５１５に出力される。
【００３４】
パケット更新部１５１３は、パケット処理部１５１５による指示に応じてパケットのヘッダを更新する処理（修正又は変換する処理とも呼ぶ）を行う。また、デマルチプレクサ１５１４は、パケット処理部１５１５によるポート選択指示に応じて、選択された送信ポートからパケットを出力する。
【００３５】
パケット処理部１５１５は、本実施の形態に関係する構成要素として、ＦＣｏＥ中継処理部１５１５１と、ＦＣｏＥ中継テーブル１５１５２とを有する。パケット処理部１５１５は、パケット識別処理やEthernetについての処理などを行うが、本実施の形態の主要部ではないので、説明は省略する。
【００３６】
ＦＣｏＥ中継テーブル１５１５２の一例を図３に示す。ＦＣｏＥ中継テーブル１５１５２には、Ｍａｔｃｈと示される条件部分と、Ａｃｔｉｏｎと示され且つ条件が満たされた場合に実行すべき処理とが規定されている。
【００３７】
より具体的には、Ｍａｔｃｈ欄には、受信したパケットにおける宛先エンドノードの宛先ＭＡＣアドレス（ＤＡ：Destination MAC address）と照合すべきＭＡＣアドレスが設定されるＤＡ欄と、受信したパケットにおける宛先エンドノードのＦＣ−ＩＤと照合すべきＦＣ−ＩＤが設定されるＤ−ＩＤ欄と、受信したパケットにおけるＦＣのエクスチェンジＩＤと照合すべきＯＸ−ＩＤが設定されるＯＸ−ＩＤ欄とを含む。
【００３８】
図３の例で１行目は、受信したパケットにおいて、ＤＡがＦＣＦのＭＡＣアドレスを表しており且つＤ−ＩＤがエンドノードＳ１のＦＣ−ＩＤを表しているという条件を表している。なお、「＊」は、ワイルドカードを表し、いずれの値であっても合致していると判断される。なお、Ｎ／Ａは、適用無しを表す。また、図３の例で２行目は、Ｄ−ＩＤがエンドノードＳ１のＦＣ−ＩＤを表している。
【００３９】
また、Ａｃｔｉｏｎ欄には、受信したパケットのヘッダの修正処理を規定するＭｏｄｉｆｙ欄と、パケットの転送先ポート番号を表すＦｗｄ欄とを含む。図３の１行目では、ＤＡに対して、宛先エンドノードＳ１のＭＡＣアドレスを設定し、且つ送信元のＭＡＣアドレスであるＳＡ（Source Address）に対して、ＦＣＦのＭＡＣアドレスを設定する処理が規定され、受信したパケットを送信ポート１に出力するものと規定されている。図３の２行目では、ヘッダの修正は不要で、受信したパケットを送信ポート１に出力するものと規定されている。
【００４０】
このようなＦＣｏＥ中継テーブル１５１５２においては、上の行ほど優先度が高く、上から下にＭａｔｃｈ欄に規定された条件を照合して行き、最初に合致した行に規定された処理を実行するものとする。
【００４１】
図４を用いて、パケット処理部１５１５のＦＣｏＥ中継処理部１５１５１の処理内容について説明する。
【００４２】
まず、ＦＣｏＥ中継処理部１５１５１は、受信パケットのヘッダ（ＭＡＣフレーム部分のヘッダ及びＦＣフレーム部分のヘッダ）と、ＦＣｏＥ中継テーブル１５１５２においてＡｃｔｉｏｎ欄に規定されている条件とを、優先度順に照合して行き、最初に合致する条件の行を特定する（ステップＳ１）。
【００４３】
そして、ＦＣｏＥ中継処理部１５１５１は、合致する条件に対応するＡｃｔｉｏｎ欄に修正処理（Ｍｏｄｉｆｙ）が規定されていれば、規定どおりの修正をパケット更新部１５１３に指示する（ステップＳ３）。パケット更新部１５１３は、指示に従って、パケットバッファ１５１２に格納されているパケットに対して上で述べたようなヘッダの修正処理を行った後、修正後のパケットのデータをデマルチプレクサ１５１４に出力する。なお、指示がなければ、パケット更新部１５１３は、パケットバッファ１５１２に格納されているパケットに対して何もせずにデマルチプレクサ１５１４に出力する。
【００４４】
さらに、ＦＣｏＥ中継処理部１５１５１は、合致する条件に対応するＡｃｔｉｏｎ欄において指定された送信ポートのポート選択指示を、デマルチプレクサ１５１４に出力する（ステップＳ５）。これによって、デマルチプレクサ１５１４は、指定された送信ポートに対して、パケット更新部１５１３からのパケットを出力する。
【００４５】
［実施例１］
上で述べた本実施の形態の概要を、図５に示すような情報処理システムに適用した場合について説明する。
【００４６】
図５のネットワークは、Ｃｌｏｓ２段のネットワークであって、４つのSpineスイッチ１６１乃至１６４と、４つのLeafスイッチ１７１乃至１７４とを含む。いずれのLeafスイッチも、各Spineスイッチに接続されている。また、Leafスイッチ１７１には、エンドノードとしてサーバ１８１及びディスク装置１８２が接続され、Leafスイッチ１７２には、エンドノードとしてサーバ１８３が接続されている。また、Leafスイッチ１７３には、ディスク装置１８４が接続され、Leafスイッチ１７４には、ディスク装置１８５が接続される。なお、コントローラ２００は、Spineスイッチ１６１に接続されている。
【００４７】
本実施例では、図６に模式的に示すように、Spineスイッチ１６１及び１６２は、ＦＣ−ＩＤの最下位ビット値が０である（ＦＣ−ＩＤ［０］＝０と表す）エンドノードの集合を担当し、Spineスイッチ１６３及び１６４は、ＦＣ−ＩＤ［０］＝１の集合を担当する。
【００４８】
例えばディスク装置１８４の名前をＳ１としてＦＣ−ＩＤの最下位ビット値が「１」であると仮定する。このディスク装置１８４（Ｓ１）のＦＣ−ＩＤを、ＦＣＩＤS1と表し、ＭＡＣアドレスを、ＭＡＣS1と表すものとする。
【００４９】
上でも述べたように、ディスク装置１８４（Ｓ１）を、Spineスイッチ１６３及び１６４が担当して、ディスク装置１８４（Ｓ１）への中継情報を保持している。すなわち、Spineスイッチ１６３及び１６４は、ディスク装置１８４（Ｓ１）のＤ−ＩＤ（Destination FC-ID）を保持しており、ヘッダの修正及びパケットの転送を行う。
【００５０】
一方、ディスク装置１８２の名前をＳ０としてＦＣ−ＩＤの最下位ビット値が「０」であると仮定する。このディスク装置１８２（Ｓ０）のＦＣ−ＩＤを、ＦＣＩＤS0と表し、ＭＡＣアドレスを、ＭＡＣS0と表すものとする。
【００５１】
このディスク装置１８２（Ｓ０）を、Spineスイッチ１６１及び１６２が担当して、ディスク装置１８２（Ｓ０）への中継情報を保持している。すなわち、Spineスイッチ１６１及び１６２は、ディスク装置１８２（Ｓ０）のＤ−ＩＤ（Destination FC-ID）を保持しており、ヘッダの修正及びパケットの転送を行う。
【００５２】
本実施例では、Spineスイッチは、集合毎に、二重化されており、負荷分散が可能となる。具体的には、エクスチェンジＩＤ（ＯＸ−ＩＤ）の最下位ビット値が「１」（ＯＸ−ＩＤ［０］＝１と表す）であるか否かで、Spineスイッチを切り替える。図６に示すように、受信パケットのＯＸ−ＩＤ［０］＝１であればSpineスイッチ１６４がその受信パケットを担当し、受信パケットのＯＸ−ＩＤ［０］＝０であればSpineスイッチ１６３がその受信パケットを担当する。
【００５３】
Spineスイッチ１６１及び１６２についても、ＯＸ−ＩＤ［０］＝１を担当するSpineスイッチ１６２と、ＯＸ−ＩＤ［０］＝０を担当するSpineスイッチ１６１とに分けられる。
【００５４】
このような情報処理システムにおいて、サーバ１８１がディスク装置１８４（Ｓ１）に対してパケットを送信する場合（第１のケース）の処理について説明する。なお、このパケットについてはＯＸ−ＩＤ［０］＝０であるものとする。
【００５５】
また、サーバ１８１がディスク装置１８２（Ｓ０）に対してパケットを送信する場合（第２のケース）の処理についても説明する。
【００５６】
Leafスイッチ１７１のＦＣｏＥ中継テーブル１５１５２は、図７に示すようなデータを含む。
【００５７】
図７の１行目は、Leafスイッチ１７１配下のサーバ１８１等から、ディスク装置１８２（Ｓ０）へのパケットを受信した場合の中継情報を表す。すなわち、受信パケットのＤＡがＭＡＣFCFであり、Ｄ−ＩＤがＦＣＩＤS0である場合に、ＤＡをＭＡＣS0に修正し且つＳＡをＭＡＣFCFに修正し、受信パケットを送信ポート「２」に出力するというものである。図６に示すように、送信ポート「２」には、ディスク装置１８２（Ｓ０）が接続されている。
【００５８】
２行目は、１行目以外でディスク装置１８２（Ｓ０）へのパケットを受信した場合の中継情報を表す。具体的には、Spineスイッチからディスク装置１８２（Ｓ０）へのパケットを受信する場合の中継情報である。すなわち、受信パケットのＤ−ＩＤが、ＦＣＩＤS0であれば、ヘッダの更新無く、送信ポート「２」に出力するというものである。図６に示すように、送信ポート「２」には、ディスク装置１８２（Ｓ０）が接続されている。
【００５９】
３行目については、受信パケットのＤ−ＩＤの最下位ビット値が「１」であり、ＯＸ−ＩＤの最下位ビットが「０」である場合に、ヘッダの更新無く、受信パケットを送信ポート「５」に出力するというものである。送信ポート「５」には、Spineスイッチ１６３が接続されている。
【００６０】
４行目については、受信パケットのＤ−ＩＤの最下位ビット値が「１」であり、ＯＸ−ＩＤの最下位ビットが「１」である場合に、ヘッダの更新無く、受信パケットを送信ポート「６」に出力するというものである。送信ポート「６」には、Spineスイッチ１６４が接続されている。
【００６１】
５行目については、受信パケットのＤ−ＩＤの最下位ビット値が「０」であり、ＯＸ−ＩＤの最下位ビットが「０」である場合に、ヘッダの更新無く、受信パケットを送信ポート「３」に出力するというものである。送信ポート「３」には、Spineスイッチ１６１が接続されている。
【００６２】
６行目については、受信パケットのＤ−ＩＤの最下位ビット値が「０」であり、ＯＸ−ＩＤの最下位ビットが「１」である場合に、ヘッダの更新無く、受信パケットを送信ポート「４」に出力するというものである。送信ポート「４」には、Spineスイッチ１６２が接続されている。
【００６３】
このように、Leafスイッチ１７１のＦＣｏＥ中継テーブル１５１５２には、配下のエンドノードについては、個別Ｄ−ＩＤについての中継情報が含まれるが、それ以外のエンドノードについては、Ｄ−ＩＤの最下位ビット値及びＯＸ−ＩＤの最下位ビット値の組み合わせ毎に、転送先のSpineスイッチへの中継情報のみが含まれる。
【００６４】
従って、上で述べた第２のケースでは、受信パケットのヘッダは、Leafスイッチ１７１のＦＣｏＥ中継テーブル１５１５２（図７）における１行目の条件に合致するので、Leafスイッチ１７１は、上で述べたようなヘッダの修正処理（変換処理とも呼ぶ）を実行して、送信ポート「２」に受信パケットを出力する（ステップ（１））。
【００６５】
一方、第１のケースでは、Leafスイッチ１７１において、受信パケットのヘッダは、３行目の条件に合致する。すなわち、宛先エンドノードのディスク装置１８４（Ｓ１）のＦＣ−ＩＤの最下位ビット値が「１」で且つＯＸ−ＩＤの最下位ビット値は「０」である。従って、Leafスイッチ１７１は、受信パケットを、ヘッダの更新無く、Spineスイッチ１６３が接続されている送信ポート「５」に出力する（ステップ（１１））。
【００６６】
Spineスイッチ１６３のＦＣｏＥ中継テーブル１５１５２には、図８に示すようなデータが含まれる。すなわち、受信パケットのＤＡがＦＣＦのＭＡＣアドレスであるＭＡＣFCFであり且つＤ−ＩＤがＦＣＩＤS1である場合に、ＤＡをＭＡＣS1に修正し、ＳＡをＭＡＣFCFに修正し、Leafスイッチ１７３が接続されている送信ポート「３」に出力するというものである。このように、担当する集合に属するエンドノードのＦＣ−ＩＤについての中継情報が含まれるようになっている。
【００６７】
Leafスイッチ１７１からのパケットを受信したSpineスイッチ１６３は、その受信パケットのＤＡがＭＡＣFCFとなっており且つＤ−ＩＤがＦＣＩＤS1となっているので、受信パケットのＤＡに対してディスク装置１８４（Ｓ１）のＭＡＣアドレスＭＡＣS1を設定し、ＳＡに対してＦＣＦのＭＡＣアドレスであるＭＡＣFCFを設定する処理を行う。そして、Spineスイッチ１６３は、修正後のパケットを、送信ポート「３」からLeafスイッチ１７３に送信する（ステップ（１２））。
【００６８】
Leafスイッチ１７３のＦＣｏＥ中継テーブル１５１５２は、図９に示すようなデータを含む。
【００６９】
図９の１行目は、Leafスイッチ１７１配下のサーバ１８１等から、ディスク装置１８４（Ｓ１）へのパケットを受信した場合の中継情報を表す。すなわち、受信パケットのＤＡがＭＡＣFCFであり、Ｄ−ＩＤがＦＣＩＤS1である場合に、ＤＡをＭＡＣS1に修正し且つＳＡをＭＡＣFCFに修正し、受信パケットを送信ポート「１」に出力するというものである。図６に示すように、送信ポート「１」には、ディスク装置１８４（Ｓ１）が接続されている。
【００７０】
２行目は、１行目以外でディスク装置１８４（Ｓ１）へのパケットを受信する場合の中継情報を表す。具体的には、Spineスイッチからディスク装置１８４（Ｓ１）へのパケットを受信した場合の中継情報である。すなわち、受信パケットのＤ−ＩＤが、ＦＣＩＤS1であれば、ヘッダの更新無く、送信ポート「１」に出力するというものである。図６に示すように、送信ポート「１」には、ディスク装置１８４（Ｓ１）が接続されている。
【００７１】
３行目については、受信パケットのＤ−ＩＤの最下位ビット値が「１」であり、ＯＸ−ＩＤの最下位ビットが「０」である場合に、ヘッダの更新無く、受信パケットを送信ポート「５」に出力するというものである。送信ポート「５」には、Spineスイッチ１６３が接続されている。
【００７２】
４行目については、受信パケットのＤ−ＩＤの最下位ビット値が「１」であり、ＯＸ−ＩＤの最下位ビットが「１」である場合に、ヘッダの更新無く、受信パケットを送信ポート「６」に出力するというものである。送信ポート「６」には、Spineスイッチ１６４が接続されている。
【００７３】
５行目については、受信パケットのＤ−ＩＤの最下位ビット値が「０」であり、ＯＸ−ＩＤの最下位ビットが「０」である場合に、ヘッダの更新無く、受信パケットを送信ポート「３」に出力するというものである。送信ポート「３」には、Spineスイッチ１６１が接続されている。
【００７４】
６行目については、受信パケットのＤ−ＩＤの最下位ビット値が「０」であり、ＯＸ−ＩＤの最下位ビットが「１」である場合に、ヘッダの更新無く、受信パケットを送信ポート「４」に出力するというものである。送信ポート「４」には、Spineスイッチ１６２が接続されている。
【００７５】
このように、Leafスイッチ１７３のＦＣｏＥ中継テーブル１５１５２には、配下のエンドノードについては、個別Ｄ−ＩＤについての中継情報が含まれるが、それ以外のエンドノードについては、Ｄ−ＩＤの最下位ビット値及びＯＸ−ＩＤの最下位ビット値の組み合わせ毎に、転送先のSpineスイッチへの中継情報のみが含まれる。
【００７６】
Leafスイッチ１７３は、Spineスイッチ１６３から上で述べたように修正後のパケットを受信すると、Ｄ−ＩＤがＦＣＩＤS1であるからＦＣｏＥ中継テーブル１５１５２の２行目に従って、対応付けられている送信ポート「１」に対して、受信パケットを出力する（ステップ（１３））。
【００７７】
このようにパケットが転送されるようになる。但し、SpineスイッチのＦＣｏＥ中継テーブル１５１５２には、担当する集合に属するエンドノードについてのエントリのみが含まれるので、Spineスイッチにおけるメモリのメモリ容量が少ない場合でも対処できるようになる。Leafスイッチについても、配下のエンドノード以外についてはＦＣＦとなるSpineスイッチへ転送するための中継情報を保持するだけであり、その中継情報もＤ−ＩＤの一部及びＯＸ−ＩＤの一部で特定されるので、メモリ容量が少ない場合でも対処できるようになる。
【００７８】
なお、ＯＸ−ＩＤ［０］＝１である場合には、図６において点線で表される通信フローのように、Leafスイッチ１７１においては、パケットは、送信ポート「６」から、Spineスイッチ１６４に転送される。そして、Spineスイッチ１６４は、Spineスイッチ１６３と同様に、ヘッダの修正を行った上で、Leafスイッチ１７３に送信する。
【００７９】
なお、図７乃至図９のようなＦＣｏＥ中継テーブル１５１５２の設定を行うコントローラ２００は、図１０に示すような構成を有する。
【００８０】
コントローラ２００は、初期設定部２１０と、追加設定部２２０と、データ格納部２３０とを有する。
【００８１】
初期設定部２１０は、LeafスイッチからSpineスイッチへの方向に係る中継情報を設定するための処理を行う。
【００８２】
追加設定部２２０は、エンドノードが追加される毎に、SpineスイッチからLeafスイッチへの方向に係る中継情報を設定するための処理を行う。
【００８３】
データ格納部２３０は、区分数などの設定データと、エンドノードの位置情報（アドレス情報）と、ネットワークのトポロジ情報とを格納する。
【００８４】
次に、初期設定部２１０の処理内容について、図１１を用いて説明する。
【００８５】
まず、初期設定部２１０は、Spineスイッチの集合を、区分数ＮＰ個に分割する（ステップＳ１１）。例えば、エンドノードを、ＦＣ−ＩＤ［Ｐ：０］、すなわちＦＣ−ＩＤの最下位からＰビット目（Ｐ＝０から開始）で分類する場合には、ＮＰ＝２P+1となる。図６の例では、Ｐ＝０でＮＰ＝２となっている。
【００８６】
さらに、初期設定部２１０は、Leafスイッチの集合において未処理のLeafスイッチＬＳを１つ特定する（ステップＳ１３）。
【００８７】
そして、初期設定部２１０は、区分番号についてのカウンタＲを０に設定する（ステップＳ１５）。
【００８８】
その後、初期設定部２１０は、特定されたLeafスイッチＬＳにおいて、区分番号Ｒの集合を担当するSpineスイッチへのリンクが接続されたポートの集合を特定し、集合Ｋに設定する（ステップＳ１７）。
【００８９】
また、初期設定部２１０は、リンクについてのカウンタｉを０に初期化する（ステップＳ１９）。そして、初期設定部２１０は、特定されたLeafスイッチＬＳに対する中継情報の設定を行う（ステップＳ２１）。具体的には、優先度「０」（Ｐｒ０）として、受信パケットのＤ−ＩＤの最下位からＰビット目がＲであり且つＯＸ−ＩＤの最下位からＬビット目（Ｌ＝０から開始）がｉであれば（Ｄ−ＩＤ［Ｐ：０］＝Ｒ，ＯＸ−ＩＤ［Ｌ：０］＝ｉ）、集合Ｋにおいてｉ番目のリンクが接続された送信ポートに受信パケットを出力するという処理を中継情報として設定する。Ｐｒ＜優先度＞：＜比較条件＞→処理というフォーマットで記載すれば、Ｐｒ０：＜Ｄ−ＩＤ［Ｐ：０］＝Ｒ，ＯＸ−ＩＤ［Ｌ：０］＝ｉ＞→Forward（Ｋ［ｉ］）と表される。なお、１つの集合を担当するSpineスイッチへのリンクは、２L+1本存在するものとする。図６の例では、Ｌ＝０であって、各Leafスイッチから１つの集合を担当する２つのSpineスイッチへのリンクは２本である。
【００９０】
なお、優先度は、数字が小さいほど優先度が低いものとする。
【００９１】
そして、初期設定部２１０は、ｉがＫの要素数−１以上となったか否かを判断する（ステップＳ２３）。この条件が満たされない場合には、初期設定部２１０は、ｉを１インクリメントして（ステップＳ２５）、処理はステップＳ２１に戻る。
【００９２】
一方、ステップＳ２３の条件が満たされた場合には、初期設定部２１０は、Ｒが区分数ＮＰ−１以上となったか否かを判断する（ステップＳ２７）。この条件が満たされない場合には、初期設定部２１０は、Ｒを１インクリメントして（ステップＳ２９）、処理はステップＳ１７に移行する。
【００９３】
一方、ステップＳ２７の条件が満たされた場合には、初期設定部２１０は、Leafスイッチの集合において未処理Leafスイッチが存在するか否かを判断する（ステップＳ３１）。未処理のLeafスイッチが存在する場合には、処理はステップＳ１３に戻る。一方、未処理のLeafスイッチが存在しない場合には、処理を終了する。
【００９４】
このような処理を行うことで、図７及び図９の３行目乃至６行目のデータが設定されるようになる。
【００９５】
次に、追加設定部２２０の処理内容について図１２を用いて説明する。以下の処理は、エンドノードが情報処理システムに追加される毎に実行される。
【００９６】
まず、追加設定部２２０は、追加されたエンドノードＥＮについて、以下の設定を行う（ステップＳ４１）。具体的には、エンドノードＥＮが接続されたLeafスイッチをＬＳに設定する。エンドノードＥＮが接続されているLeafスイッチＬＳのポートをＰに設定する。エンドノードＥＮに対応するＦＣ−ＩＤをＦＩＤに設定する。エンドノードＥＮのＭＡＣアドレスをＭに設定する。
【００９７】
そして、追加設定部２２０は、エンドノードＥＮを担当するSpineスイッチのうち、未処理のSpineスイッチＳＳを１つ特定する（ステップＳ４３）。また、追加設定部２２０は、ＬＳと接続されたＳＳのポートをＱに設定する（ステップＳ４５）。
【００９８】
そして、追加設定部２２０は、特定されたSpineスイッチＳＳに対する中継情報の設定を行う（ステップＳ４７）。優先度０（Ｐｒ０）として、受信パケットのＤＡがＭＡＣFCFであり且つＤ−ＩＤがＦＩＤであれば（ＤＡ＝ＭＡＣFCF，Ｄ−ＩＤ＝ＦＩＤ）、受信パケットのＳＡをＭＡＣFCFに修正し、ＤＡをＭに修正し、受信パケットを送信ポートＱに出力するという中継情報を設定する。上で述べた記法に従えば、Ｐｒ０：＜ＤＡ＝ＭＡＣFCF，Ｄ−ＩＤ＝ＦＩＤ＞→Modify（ＳＡ←ＭＡＣFCF，ＤＡ←Ｍ），Forward（Ｑ）となる。Modify（）は、括弧内に示される修正を行う処理を表す。
【００９９】
その後、追加設定部２２０は、エンドノードＥＮを担当するSpineスイッチのうち、未処理のSpineスイッチが存在するか否かを判断する（ステップＳ４９）。未処理のSpineスイッチが存在する場合には、処理はステップＳ４３に戻る。
【０１００】
このような処理を行うことで、図８のような中継情報が設定される。
【０１０１】
一方、未処理のSpineスイッチが存在しない場合には、追加設定部２２０は、エンドノードＥＮが接続されたLeafスイッチＬＳに対する中継情報の設定を行う（ステップＳ５１）。具体的には、優先度２（Ｐｒ２）として、受信パケットのＤＡがＭＡＣFCFであり且つＤ−ＩＤがＦＩＤであれば（ＤＡ＝ＭＡＣFCF，Ｄ−ＩＤ＝ＦＩＤ）、受信パケットのＳＡにＭＡＣFCFを設定し、ＤＡにＭを設定し、ポートＰに修正後のパケットを出力するという中継情報を設定する。上で述べた記法に従えば、Ｐｒ２：＜ＤＡ＝ＭＡＣFCF，Ｄ−ＩＤ＝ＦＩＤ＞→Modify（ＳＡ←ＭＡＣFCF，ＤＡ←Ｍ），Forward（Ｐ）となる。これによって、図７及び図９の第１行目が設定されることになる。
【０１０２】
さらに、優先度１（Ｐｒ１）として、受信パケットのＤ−ＩＤがＦＩＤであれば（Ｄ−ＩＤ＝ＦＩＤ）、受信パケットを送信ポートＰに修正後のパケットを出力するという中継情報を設定する。上で述べた記法に従えば、Ｐｒ１：＜Ｄ−ＩＤ＝ＦＩＤ＞→Forward（Ｐ）となる。これによって、図７及び図９の第２行目が設定されることになる。
【０１０３】
このようにコントローラ２００が処理を行えば、上で述べたようなパケットの転送処理が行われるようになる。
【０１０４】
［実施例２］
実施例１では、Spineスイッチにおいてヘッダの修正を行うケースを示したが、Leafスイッチのみでヘッダの修正を行うようにしても良い。
【０１０５】
ここでも図５に示したような情報処理システムを前提として説明する。
【０１０６】
本実施例でも、図１３に模式的に示すように、Spineスイッチ１６１及び１６２は、ＦＣ−ＩＤの最下位ビット値が０である（ＦＣ−ＩＤ［０］＝０と表す）エンドノードの集合を担当し、Spineスイッチ１６３及び１６４は、ＦＣ−ＩＤ［０］＝１の集合を担当する。
【０１０７】
図６と同様に、ディスク装置１８４（Ｓ１）を、Spineスイッチ１６３及び１６４が担当して、ディスク装置１８４（Ｓ１）への中継情報を保持している。すなわち、Spineスイッチ１６３及び１６４は、ディスク装置１８４（Ｓ１）のＤ−ＩＤ（Destination FC-ID）を保持しており、パケットの転送を行う。
【０１０８】
また、ディスク装置１８２（Ｓ０）を、Spineスイッチ１６１及び１６２が担当して、ディスク装置１８２（Ｓ０）への中継情報を保持している。すなわち、Spineスイッチ１６１及び１６２は、ディスク装置１８２（Ｓ０）のＤ−ＩＤ（Destination FC-ID）を保持しており、パケットの転送を行う。
【０１０９】
本実施例でも、Spineスイッチは、集合毎に、二重化されており、負荷分散が可能となる。具体的には、エクスチェンジＩＤ（ＯＸ−ＩＤ）の最下位ビット値が「１」（ＯＸ−ＩＤ［０］＝１と表す）であるか否かで、Spineスイッチを切り替える。
【０１１０】
図１３にも示すように、受信パケットのＯＸ−ＩＤ［０］＝１であればSpineスイッチ１６４がその受信パケットを担当し、受信パケットのＯＸ−ＩＤ［０］＝０であればSpineスイッチ１６３がその受信パケットを担当する。
【０１１１】
Spineスイッチ１６１及び１６２についても、ＯＸ−ＩＤ［０］＝１を担当するSpineスイッチ１６２と、ＯＸ−ＩＤ［０］＝０を担当するSpineスイッチ１６１とに分けられる。
【０１１２】
このような情報処理システムにおいて、サーバ１８１がディスク装置１８４（Ｓ１）に対してパケットを送信する場合（第３のケース）の処理について説明する。なお、このパケットについてはＯＸ−ＩＤ［０］＝０であるものとする。
【０１１３】
また、サーバ１８１がディスク装置１８２（Ｓ０）に対してパケットを送信する場合（第４のケース）の処理についても説明する。
【０１１４】
Leafスイッチ１７１のＦＣｏＥ中継テーブル１５１５２は、図１４に示すようなデータを含む。
【０１１５】
図１４の１行目は、他のエンドノードから、ディスク装置１８２（Ｓ０）へのパケットを受信した場合の中継情報を表す。すなわち、受信パケットのＤ−ＩＤがＦＣＩＤS0である場合に、受信パケットのＤＡをＭＡＣS0に修正し且つＳＡをＭＡＣFCFに修正し、受信パケットを送信ポート「２」に出力するというものである。図１３に示すように、送信ポート「２」には、ディスク装置１８２（Ｓ０）が接続されている。
【０１１６】
２行目については、受信パケットのＤ−ＩＤの最下位ビット値が「１」であり、ＯＸ−ＩＤの最下位ビットが「０」である場合に、ヘッダの更新無く、受信パケットを送信ポート「５」に出力するというものである。送信ポート「５」には、Spineスイッチ１６３が接続されている。
【０１１７】
３行目については、受信パケットのＤ−ＩＤの最下位ビット値が「１」であり、ＯＸ−ＩＤの最下位ビットが「１」である場合に、ヘッダの更新無く、受信パケットを送信ポート「６」に出力するというものである。送信ポート「６」には、Spineスイッチ１６４が接続されている。
【０１１８】
４行目については、受信パケットのＤ−ＩＤの最下位ビット値が「０」であり、ＯＸ−ＩＤの最下位ビットが「０」である場合に、ヘッダの更新無く、受信パケットを送信ポート「３」に出力するというものである。送信ポート「３」には、Spineスイッチ１６１が接続されている。
【０１１９】
５行目については、受信パケットのＤ−ＩＤの最下位ビット値が「０」であり、ＯＸ−ＩＤの最下位ビットが「１」である場合に、ヘッダの更新無く、受信パケットを送信ポート「４」に出力するというものである。送信ポート「４」には、Spineスイッチ１６２が接続されている。
【０１２０】
このように、Leafスイッチ１７１のＦＣｏＥ中継テーブル１５１５２には、配下のエンドノードについては、個別Ｄ−ＩＤについての中継情報が含まれるが、それ以外のエンドノードについては、Ｄ−ＩＤの最下位ビット値及びＯＸ−ＩＤの最下位ビット値の組み合わせ毎に、転送先のSpineスイッチへの中継情報のみが含まれる。
【０１２１】
従って、上で述べた第４のケースでは、受信パケットのヘッダは、Leafスイッチ１７１のＦＣｏＥ中継テーブル１５１５２（図１４）における１行目の条件に合致するので、Leafスイッチ１７１は、上で述べたようなヘッダの修正処理（変換処理とも呼ぶ）を実行して、送信ポート「２」に受信パケットを出力する（ステップ（２１））。
【０１２２】
一方、第３のケースでは、Leafスイッチ１７１において、受信パケットのヘッダは、２行目の条件に合致する。すなわち、宛先エンドノードのディスク装置１８４（Ｓ１）のＦＣ−ＩＤの最下位ビット値が「１」で且つＯＸ−ＩＤの最下位ビット値は「０」である。従って、Leafスイッチ１７１は、受信パケットを、ヘッダの更新無く、Spineスイッチ１６３が接続されている送信ポート「５」に出力する（ステップ（３１））。
【０１２３】
Spineスイッチ１６３のＦＣｏＥ中継テーブル１５１５２には、図１５に示すようなデータが含まれる。すなわち、受信パケットのＤ−ＩＤがＦＣＩＤS1である場合に、Leafスイッチ１７３が接続されている送信ポート「３」に出力するというものである。このように、担当する集合に属するエンドノードのＦＣ−ＩＤについての中継情報が含まれるようになっている。
【０１２４】
Leafスイッチ１７１からのパケットを受信したSpineスイッチ１６３は、その受信パケットのＤ−ＩＤがＦＣＩＤS1となっているので、受信パケットそのものを、修正せずに、送信ポート「３」からLeafスイッチ１７３に送信する（ステップ（３２））。
【０１２５】
Leafスイッチ１７３のＦＣｏＥ中継テーブル１５１５２は、図１６に示すようなデータを含む。
【０１２６】
図１６の１行目は、他のエンドノードから、ディスク装置１８４（Ｓ１）へのパケットを受信した場合の中継情報を表す。すなわち、受信パケットのＤ−ＩＤがＦＣＩＤS1である場合に、受信パケットのＤＡをＭＡＣS1に修正し且つＳＡをＭＡＣFCFに修正し、受信パケットを送信ポート「１」に出力するというものである。図１３に示すように、送信ポート「１」には、ディスク装置１８４（Ｓ１）が接続されている。
【０１２７】
２行目については、受信パケットのＤ−ＩＤの最下位ビット値が「１」であり、ＯＸ−ＩＤの最下位ビットが「０」である場合に、ヘッダの更新無く、受信パケットを送信ポート「５」に出力するというものである。送信ポート「５」には、Spineスイッチ１６３が接続されている。
【０１２８】
３行目については、受信パケットのＤ−ＩＤの最下位ビット値が「１」であり、ＯＸ−ＩＤの最下位ビットが「１」である場合に、ヘッダの更新無く、受信パケットを送信ポート「６」に出力するというものである。送信ポート「６」には、Spineスイッチ１６４が接続されている。
【０１２９】
４行目については、受信パケットのＤ−ＩＤの最下位ビット値が「０」であり、ＯＸ−ＩＤの最下位ビットが「０」である場合に、ヘッダの更新無く、受信パケットを送信ポート「３」に出力するというものである。送信ポート「３」には、Spineスイッチ１６１が接続されている。
【０１３０】
５行目については、受信パケットのＤ−ＩＤの最下位ビット値が「０」であり、ＯＸ−ＩＤの最下位ビットが「１」である場合に、ヘッダの更新無く、受信パケットを送信ポート「４」に出力するというものである。送信ポート「４」には、Spineスイッチ１６２が接続されている。
【０１３１】
このように、Leafスイッチ１７３のＦＣｏＥ中継テーブル１５１５２には、配下のエンドノードについては、個別Ｄ−ＩＤについての中継情報が含まれるが、それ以外のエンドノードについては、Ｄ−ＩＤの最下位ビット値及びＯＸ−ＩＤの最下位ビット値の組み合わせ毎に、転送先のSpineスイッチへの中継情報のみが含まれる。
【０１３２】
Leafスイッチ１７３は、Spineスイッチ１６３から上で述べたようにパケットを受信すると、Ｄ−ＩＤがＦＣＩＤS1であるからＦＣｏＥ中継テーブル１５１５２の１行目に従って、受信パケットのＤＡをＭＡＣS1に修正し且つＳＡをＭＡＣFCFに修正した上で、対応付けられている送信ポート「１」に対して、修正後のパケットを出力する（ステップ（３３））。
【０１３３】
このようにパケットが転送されるようになる。但し、SpineスイッチのＦＣｏＥ中継テーブル１５１５２には、担当する集合に属するエンドノードについてのエントリのみが含まれるので、Spineスイッチにおけるメモリのメモリ容量が少ない場合でも対処できるようになる。Leafスイッチについても、配下のエンドノード以外についてはＦＣＦとなるSpineスイッチへ転送するための中継情報を保持するだけであり、その中継情報もＤ−ＩＤの一部及びＯＸ−ＩＤの一部で特定されるので、メモリ容量が少ない場合でも対処できるようになる。
【０１３４】
なお、ＯＸ−ＩＤ［０］＝１である場合には、図１３において点線で表される通信フローのように、Leafスイッチ１７１においては、パケットは、送信ポート「６」から、Spineスイッチ１６４に転送される。そして、Spineスイッチ１６４は、Spineスイッチ１６３と同様に、ヘッダの修正を行うこと無くLeafスイッチ１７３に送信する。
【０１３５】
図１４乃至図１６に示すような中継情報を設定するコントローラ２００は、図１０に示すような構成を有する。但し、初期設定部２１０の処理内容については、実施例１と同様なので、説明は省略する。
【０１３６】
一方、追加設定部２２０は、図１７に示すような処理を実行する。以下の処理は、エンドノードが情報処理システムに追加される毎に実行される。
【０１３７】
すなわち、追加設定部２２０は、追加されたエンドノードＥＮについて、以下の設定を行う（ステップＳ６１）。具体的には、エンドノードＥＮが接続されたLeafスイッチをＬＳに設定する。エンドノードＥＮが接続されているLeafスイッチＬＳのポートをＰに設定する。エンドノードＥＮに対応するＦＣ−ＩＤをＦＩＤに設定する。エンドノードＥＮのＭＡＣアドレスをＭに設定する。
【０１３８】
そして、追加設定部２２０は、エンドノードＥＮを担当するSpineスイッチのうち、未処理のSpineスイッチＳＳを１つ特定する（ステップＳ６３）。また、追加設定部２２０は、ＬＳと接続されたＳＳのポートをＱに設定する（ステップＳ６５）。
【０１３９】
そして、追加設定部２２０は、特定されたSpineスイッチＳＳに対する中継情報の設定を行う（ステップＳ６７）。優先度０（Ｐｒ０）として、受信パケットのＤ−ＩＤがＦＩＤであれば（Ｄ−ＩＤ＝ＦＩＤ）、受信パケットを送信ポートＱに出力するという中継情報を設定する。上で述べた記法に従えば、Ｐｒ０：＜Ｄ−ＩＤ＝ＦＩＤ＞→Forward（Ｑ）となる。
【０１４０】
その後、追加設定部２２０は、エンドノードＥＮを担当するSpineスイッチのうち、未処理のSpineスイッチが存在するか否かを判断する（ステップＳ６９）。未処理のSpineスイッチが存在する場合には、処理はステップＳ６３に戻る。
【０１４１】
このような処理を行うことで、図１５のような中継情報が設定される。
【０１４２】
一方、未処理のSpineスイッチが存在しない場合には、追加設定部２２０は、エンドノードＥＮが接続されたLeafスイッチＬＳに対する中継情報の設定を行う（ステップＳ７１）。具体的には、優先度２（Ｐｒ２）として、受信パケットのＤ−ＩＤがＦＩＤであれば（Ｄ−ＩＤ＝ＦＩＤ）、受信パケットのＳＡにＭＡＣFCFを設定し、ＤＡにＭを設定し、ポートＰに修正後のパケットを出力するという中継情報を設定する。上で述べた記法に従えば、Ｐｒ２：＜Ｄ−ＩＤ＝ＦＩＤ＞→Modify（ＳＡ←ＭＡＣFCF，ＤＡ←Ｍ），Forward（Ｐ）となる。これによって、図１４及び図１６の第１行目が設定されることになる。
【０１４３】
このようにコントローラ２００が処理を行えば、図１３に示すようなパケットの転送処理が行われるようになる。
【０１４４】
以上のような技術を導入することで、リソースが限られた低コストのハードウエアを用いる場合であっても、多数のエンドノードを含む情報処理システムを構築できるようになる。すなわち、ＦＣｏＥにおけるデータプレーンを、エンドノードの数に応じて分割することで、スケーラビリティの向上が図られる。
【０１４５】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。
【０１４６】
例えば、上で述べた機能ブロック構成は一例であって、同様の機能を実現するための機能構成は様々に変更可能である。処理フローについても、処理結果が変わらない限り、処理順番を入れ替えたり、処理を並列に実行するようにしても良い。
【０１４７】
さらに、各種スイッチについては、専用ＬＳＩ内の回路で上で述べたような処理を行わせる場合もあれば、プロセッサに上記機能を実現させるためのプログラムを実行させることで実現するようにしても良い。
【０１４８】
なお、上で述べたコントローラ２００は、例えばコンピュータ装置であって、図１８に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１４９】
以上述べた本実施の形態をまとめると、以下のようになる。
【０１５０】
本実施の形態に係る情報処理システムは、（Ａ）複数の集合に分類されている複数のノードと、（Ｂ）複数のノードの少なくともいずれかに接続され、接続されたノードの第１の中継情報を有する複数の第１スイッチと、（Ｃ）複数の第１スイッチからのパケットを中継し、各々複数の集合のうち担当するいずれかの集合の第２の中継情報を有する複数の第２スイッチとを有する。そして、（ｄ１）上記複数のノードのうち第１のノードが、複数の集合のうち第１の集合に属する第２のノード宛の第１のパケットを、第１のノードが接続された第１スイッチに送信すると、（ｄ２）第１のノードが接続された第１スイッチは、第１のパケットを受信し、第２のノードが自スイッチに接続されていない場合には、第１のパケットの宛先情報と第１の中継情報とに基づき、第２のノードが属する集合を担当する第２スイッチに、第１のパケットを送信する。そして、（ｄ３）第１の集合を担当する第２スイッチは、第１のパケットを受信すると、第１のパケットの宛先情報と第２の中継情報とに基づき、第２のノードが接続された第１スイッチ宛に、第１のパケットを送信する。（ｄ４）さらに、第２のノードが接続された第１スイッチは、第１のパケットを受信すると、第１のパケットを第２のノードに送信する。
【０１５１】
このような情報処理システムを導入することで、複数の第２スイッチで分担されるので、ノードの数が増加しても対処できるようになる。
【０１５２】
さらに、上で述べた複数のノードの各々は、第１のアドレス（例えばＭＡＣアドレス）及び第２のアドレス（例えばＦＣ−ＩＤ）を有するようにしても良い。この場合、上で述べた第１のノードは、第１のアドレスとして所定のアドレス（例えば実施の形態におけるＦＣＦのＭＡＣアドレス）を含み且つ第２のアドレスとして第２のノードの第２のアドレスを含む宛先情報を含む第１のパケットを送信する。また、この場合においては、第２のノードが属する集合を担当する第２スイッチは、第１のパケットの宛先情報に含まれる所定のアドレスを第２のノードの第１のアドレスに変更する。これによって、正しくパケットがルーティングされるようになる。
【０１５３】
また、上で述べた複数のノードの各々は、第１のアドレス（例えばＭＡＣアドレス）及び第２のアドレス（例えばＦＣ−ＩＤ）を有している場合もある。この場合には、上で述べた第１のノードは、第１のアドレスとして所定のアドレス（例えば実施の形態におけるＦＣＦのＭＡＣアドレス）を含み且つ第２のアドレスとして第２のノードの第２のアドレスを含む宛先情報を含む第１のパケットを送信する。また、この場合においては、第２のノードが接続された第１スイッチは、第１のパケットの宛先情報に含まれる所定のアドレスを第２のノードの第１のアドレスに変更する。このようにしても、正しくパケットがルーティングされるようになる。
【０１５４】
なお、上で述べた第１の中継情報は、集合毎に、当該集合を担当する第２スイッチに対応するポートを、パケットの宛先情報の一部から特定するための情報をさらに含むようにしても良い。このようにすれば、第１の中継情報のデータ量を削減できる。
【０１５５】
また、上で述べた第２の中継情報は、担当する集合に属するノードに対応するポートを、パケットの宛先情報全体から特定するための情報を含むようにしても良い。複数のノードの数が増加しても、集合数を増加させれば、第２の中継情報のデータ量を削減できる。
【０１５６】
さらに、同一集合を担当する第２スイッチが複数存在する場合には、上で述べた第１の中継情報は、集合毎に、当該集合を担当する第２スイッチに対応するポートを、パケットの宛先情報の一部及び当該パケットの識別情報（例えばＯＸ−ＩＤ。ＳＡであっても良い。）から特定するための情報をさらに含むようにしても良い。このようにすれば、負荷分散も可能となる。
【０１５７】
なお、上で述べたような処理をプロセッサに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【０１５８】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１５９】
（付記１）
複数の集合のいずれかにそれぞれ分類される複数のノードと、
前記複数のノードのいずれかに接続され、接続されたノードの第１の中継情報を有する複数の第１スイッチと、
前記複数の第１スイッチからのパケットを中継し、各々前記複数の集合のうち担当するいずれかの集合の第２の中継情報を有する複数の第２スイッチと、
を有し、
前記複数のノードのうち第１のノードが、前記複数の集合のうち第１の集合に属する第２のノード宛の第１のパケットを、前記第１のノードが接続された第１スイッチに送信すると、
前記第１のノードが接続された第１スイッチは、前記第１のパケットを受信し、前記第２のノードが自スイッチに接続されていない場合、前記第１のパケットの宛先情報と前記第１の中継情報とに基づき、前記第２のノードが属する集合を担当する第２スイッチに、前記第１のパケットを送信し、
前記第１の集合を担当する第２スイッチは、前記第１のパケットを受信すると、前記第１のパケットの宛先情報と前記第２の中継情報とに基づき、前記第２のノードが接続された第１スイッチ宛に、前記第１のパケットを送信し、
前記第２のノードが接続された第１スイッチは、前記第１のパケットを受信すると、前記第１のパケットを前記第２のノードに送信する
情報処理システム。
【０１６０】
（付記２）
前記複数のノードの各々は、第１のアドレス及び第２のアドレスを有しており、
前記第１のノードは、前記第１のアドレスとして所定のアドレスを含み且つ前記第２のアドレスとして前記第２のノードの第２のアドレスを含む宛先情報を含む第１のパケットを送信し、
前記第２のノードが属する集合を担当する第２スイッチは、前記第１のパケットの宛先情報に含まれる前記所定のアドレスを前記第２のノードの第１のアドレスに変更する
付記１記載の情報処理システム。
【０１６１】
（付記３）
前記複数のノードの各々は、第１のアドレス及び第２のアドレスを有しており、
前記第１のノードは、前記第１のアドレスとして所定のアドレスを含み且つ前記第２のアドレスとして前記第２のノードの第２のアドレスを含む宛先情報を含む第１のパケットを送信し、
前記第２のノードが接続された第１スイッチは、前記第１のパケットの宛先情報に含まれる前記所定のアドレスを前記第２のノードの第１のアドレスに変更する
付記１記載の情報処理システム。
【０１６２】
（付記４）
前記第１の中継情報は、
集合毎に、当該集合を担当する第２スイッチに対応するポートを、パケットの宛先情報の一部から特定するための情報をさらに含む
付記１乃至３のいずれか１つ記載の情報処理システム。
【０１６３】
（付記５）
前記第２の中継情報は、
担当する集合に属するノードに対応するポートを、パケットの宛先情報全体から特定するための情報を含む
付記１乃至４のいずれか１つ記載の情報処理システム。
【０１６４】
（付記６）
同一集合を担当する第２スイッチが複数存在する場合には、
前記第１の中継情報は、
集合毎に、当該集合を担当する第２スイッチに対応するポートを、パケットの宛先情報の一部及び当該パケットに含まれる識別情報から特定するための情報をさらに含む
付記１乃至３のいずれか１つ記載の情報処理システム。
【０１６５】
（付記７）
複数の集合のいずれかにそれぞれ分類される複数のノードと、前記複数のノードのいずれかに接続され、接続されたノードの第１の中継情報を有する複数の第１スイッチと、前記複数の第１スイッチからのパケットを中継し、各々前記複数の集合のうち担当するいずれかの集合の第２の中継情報を有する複数の第２スイッチとを有する情報処理システムにおいて、
前記複数のノードのうち第１のノードが、前記複数の集合のうち第１の集合に属する第２のノード宛の第１のパケットを、前記第１のノードが接続された第１スイッチに送信し、
前記第１のノードが接続された第１スイッチは、前記第１のパケット受信し、前記第２のノードが自スイッチに接続されていない場合、前記第１のパケットの宛先情報と前記第１の中継情報とに基づき、前記第２のノードが属する集合を担当する第２スイッチに、前記第１のパケットを送信し、
前記第１の集合を担当する第２スイッチは、前記第１のパケットを受信すると、前記第１のパケットの宛先情報と前記第２の中継情報とに基づき、前記第２のノードが接続された第１スイッチ宛に、前記第１のパケットを送信し、
前記第２のノードが接続された第１スイッチは、前記第１のパケットを受信すると、前記第１のパケットを前記第２のノードに送信する
処理を含む通信方法。
【符号の説明】
【０１６６】
１５１５１  ＦＣｏＥ中継処理部
１５１５２  ＦＣｏＥ中継テーブル
【図１】
2015222919.tif 000003
【図２】
2015222919.tif 000004
【図３】
2015222919.tif 000005
【図４】
2015222919.tif 000006
【図５】
2015222919.tif 000007
【図６】
2015222919.tif 000008
【図７】
2015222919.tif 000009
【図８】
2015222919.tif 000010
【図９】
2015222919.tif 000011
【図１０】
2015222919.tif 000012
【図１１】
2015222919.tif 000013
【図１２】
2015222919.tif 000014
【図１３】
2015222919.tif 000015
【図１４】
2015222919.tif 000016
【図１５】
2015222919.tif 000017
【図１６】
2015222919.tif 000018
【図１７】
2015222919.tif 000019
【図１８】
2015222919.tif 000020