説明

アドレス指定方法、アドレス指定装置、ファブリックマネージャ、スイッチ、およびデータルーティング方法

【課題】 本発明は、データセンターネットワーク用のアドレス指定方法、アドレス指定装置、ファブリックマネージャ、スイッチ、およびデータルーティング方法を提供する。
【解決手段】 本発明によるアドレス指定装置は、複数のツリーを取得するために、ネットワークトポロジ発見機能を使用して、各スイッチを順にルートとして、全ホストを含むツリーを作成するツリー作成手段と、ツリー作成手段によって作成された複数のツリーから最低高さを有するツリーを選択するツリー選択手段と、ツリー選択手段によって選択された最低高さを有する各ツリーに関し、ネットワーク内の各スイッチおよび各ホストにアドレスを割り当てるアドレス割り当て手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データセンターネットワークに関し、特に、データセンターで採用される様々なトポロジに適応可能な、データセンターネットワーク用のアドレス指定方法、アドレス指定装置、ファブリックマネージャ、スイッチ、およびデータルーティング方法に関する。本発明は、転送テーブルの短縮を目的としたロケータアドレスの集約と、ネットワークのロードバランスとを実現することができる。
【背景技術】
【0002】
クラウドサービスの普及により、数万〜数十万台のサーバを備えるデータセンターの創設が加速している。また、データセンターは複数の異なるアプリケーションを同時にサポートしており、それには、データセンター内のサーバ間における帯域集約型の全対全通信を必要とするものも含まれる。こうしたアプリケーションの大規模化と発達により、データセンターのネットワークファブリックに様々な課題が生じている。
【0003】
データセンターネットワークの目的を達成するためには、多数のデータセンターサーバを相互接続し、効率的で耐故障性を有するルーティングおよび転送サービスを高レベルのアプリケーションに提供する必要がある。データセンターネットワークファブリックの主な選択肢としては、レイヤ2ネットワークとレイヤ3ネットワークの2つが挙げられる。
・レイヤ2ネットワークにおいては、データセンターは単一のEthernetとみなされる。Ethernetでは、ネットワーク管理は容易であるが(プラグアンドプレイ、シームレスな仮想マシンマイグレーション等)、数万台のサーバを含むネットワークへの拡張は不可能である。
・レイヤ3方式では、拡張性の問題は克服できるが、Ethernetの単純性が犠牲にされているため、管理負担が大きい。
【0004】
Ethernetの拡張性の問題を解決して、「プラグアンドプレイ」と大規模データセンターネットワークの両方をサポートすることを目指して、研究者によって新しい方法およびシステムが提案されている。
【0005】
Ethernetは、現在広く使用されているコモンLAN(Local Area Network)技術である。Ethernetはネットワーク内のノードをMACアドレスで識別する。IPアドレスの階層構造とは異なり、MACアドレスはフラット構造であり、全世界において一意である。宛先MACアドレスから送信ポートへのマッピングレコードは、スイッチ内の転送テーブルで保持される。
【0006】
図1は、スイッチが自己学習方式で転送テーブルを作成する場合を示す概略図である。データフレームがスイッチに着信すると、スイッチはデータフレームの送信元MACアドレスをチェックし、送信元MACアドレスとデータフレームが入力されるポート間のマッピングを転送テーブルに格納する。自己学習メカニズムとMACアドレスの使用により、ネットワーク管理は容易になり、スイッチは「プラグアンドプレイ」の機能を獲得する。
【0007】
しかし、以下の理由により、Ethernetは依然として数万台のサーバを備えるネットワークに拡張することはできない。第1に、MACアドレスは階層的ではないので、複数のMACアドレスを1つに集約することができない。宛先MACアドレスと送信ポート間のマッピングレコードはスイッチの転送テーブルに格納されるため、ネットワーク全体の全ホストのMACアドレスが、各スイッチの転送テーブルに格納されなければならない。ネットワーク内のホスト数は、スイッチのバッファサイズによって制限される。第2に、図2に示すように、未知の宛先MACアドレスを有するデータフレームについては(宛先MACアドレスは転送テーブルに格納されない)、スイッチはそれをデータフレームが着信したポートを除くすべてのポートへ送信(ブロードキャスト)する。加えて、一部の基本的なネットワークサービス(アドレス解決プロトコル、動的ホスト構成プロトコル等)はブロードキャストによって実行される。Ethernetは、このブロードキャストメカニズムによっても、大規模ネットワークへの拡張を制限される。最後に、Ethernetはスパニングツリープロトコル(STP)を使用してループを回避するが、単一のツリーに沿って転送するためルーティングが非効率的であり、リンクの負荷バランスも悪化する。
【0008】
そのため、データセンターネットワークを大規模LANとして構築することはできない。1つの解決法は、レイヤ2構成とレイヤ3構成を混在させることである。これは、データセンターを、IPルートによって接続された複数のLANとして構築することを意味する。各LANは数十〜数百のマシンから成り、1つのIPサブネットを形成する。レイヤ2構成とレイヤ3構成を混在させることで、拡張性の問題は克服できるが、Ethernetの単純性が犠牲にされるため、管理負担は依然として重い。本発明の目的は、Ethernetの拡張性の問題を解決して、「プラグアンドプレイ」と大規模データセンターネットワークの両方をサポートすることである。
【0009】
非特許文献1は、データセンターネットワークのためのレイヤ2アドレス指定プロトコル、ルーティングプロトコル、および転送プロトコルをセットにした、PortLandプロトコルを提案している。このプロトコルでは、疑似MAC(PMAC)アドレスをネットワーク内のすべてのホストに割り当てることにより、トポロジ内のホストの位置が符号化される。PMACアドレスを使用すると、少ないスイッチステートで効率的に転送することができる。以下では、PortLandシステムについて詳細に説明する。
【0010】
図3に、PortLandシステムのアーキテクチャの概略図を示す。
【0011】
PortLandシステムにおいては、各エンドホストに、PMACが割り当てられ(図3の例では、MACアドレスが「00.19.B9.FA.88.E2」、IPアドレスが「10.5.1.2」のエンドホストにPMAC「00.00.01.02.00.01」が割り当てられている)、これによりトポロジ内のエンドホストの位置が符号化されている。データパケットを転送するための転送テーブルには、実際のMACアドレスではなく、PMACアドレスが格納される。PMACアドレスは階層的なので、スイッチが保持する転送テーブルを小規模に維持することができる。加えて、PortLandシステムは、ネットワークの構成情報と状態を保持する、集中型のファブリックマネージャ(FM)300を備えている。FM300は、従来のEthernetの純粋なブロードキャストメカニズムとは異なり、ARPの解決を容易にし、耐故障性能を向上させる。
【0012】
PortLandプロトコルは、ファットツリートポロジに基づく、アドレス指定プロトコル、ルーティングプロトコル、および転送プロトコルのセットである(非特許文献3参照)。ファットツリートポロジでは、スイッチはエッジ層、集約層、コア層という3つの層に分割される。各層のすべてのスイッチは同一であり、それぞれk個のポートを備える。図3のファットツリートポロジでは、k=4である。このファットツリーは、k個の個別ポッドに分割されている。図3の点線の枠で示すエッジ層と集約層には、k個のスイッチから成るポッドが1つの枠で囲まれている。一般に、ファットツリーは、k個のポートを備える5k/4個のスイッチを使用して、k/4個のホストの間でノンブロッキング通信をサポートすることができる。
【0013】
エッジスイッチは、各48ビットPMACアドレスを、直接接続されたすべてのホストにそれぞれ割り当てる。PMACアドレスは階層的であり、トポロジ内のホストの位置を符号化する。PMACアドレスは、以下の形式である。
ポッド位置ポート仮想マシンID
【0014】
ここで、
「ポッド」は16ビットの長さで、エッジスイッチのポッド番号を表す。
「位置」は8ビットの長さで、ポッド内のエッジスイッチの位置を示す。
「ポート」は8ビットの長さで、ホストが接続されるエッジスイッチのポート番号を表す。
「仮想マシンID」は16ビットの長さで、物理マシン上の仮想マシンの番号を示す(同じ物理マシン上に複数の仮想マシンが存在できる)。
【0015】
図3の例において、左から3番目のホストのPMACアドレスは「00.00010200.01」であり、ここで、
ポッド「00.00」はポッド0を示す。
位置「01」はポッド0内の位置01を表す。
ポート「02」は、エンドホストはエッジスイッチのポート02に接続されていることを示す。
仮想マシンID「00.01」は、エンドホスト内の仮想マシンの番号は1であることを示す。
【0016】
図3に示すように、データパケットを転送するための転送テーブルには、実際のMACアドレスではなくPMACアドレスが格納される(図3の右側のテーブル参照)。MACアドレスのフラット構造とは異なり、PMACアドレスは階層的なので、スイッチに保持する転送テーブルは小さくてもよい。各層のスイッチの転送テーブルは、以下のとおりである。
・コアスイッチ:ポッド.*⇔送信ポート
この例では、図3の右端にあるコアスイッチのポート0および1は、それぞれポッド0および1に接続されている。したがって、宛先MACアドレスが「00.00.*」のすべてのデータパケットはポート0に送られる。これは、ポッド0を宛先とするすべてのデータパケットはポート0に送信されることを意味する。同様に、ポッド1を宛先とするすべてのデータパケットはポート1に送信されることを意味する。
・集約スイッチ:ポッド.位置.*⇔送信ポート
例えば、図3の右端にある集約スイッチは、ポッド3、すなわち00.11に属する。したがって、宛先MACアドレスが「00.11.*」のすべてのデータパケットはこのポッド3に送られ(すなわち、宛先MACアドレスが「00.11.00.*」のすべてのデータパケットは位置「0」(ポート0)のエッジスイッチに送られ)、宛先MACアドレスが「00.11.01.*」のすべてのデータパケットは位置「1」(すなわち、ポート1)のエッジスイッチに送られる。他の宛先MACアドレスを有するデータパケットは、ポート2またはポート3を介して、アップリンクデータパケットとして他のポッドに送られる。
・エッジスイッチ:ポッド.位置.ポート.*⇔送信ポート
この例では、図3の右端にあるエッジスイッチは、ポッド3、位置1,すなわち00.11.01に属する。このスイッチには2つのホストが直接接続されており、宛先MACアドレスが「00.11.01.00.*」のすべてのデータパケットはポート0に送られ、宛先MACアドレスが「00.11.01.01.*」のすべてのデータパケットはポート1に送られる。他の宛先MACアドレスを有するデータパケットは、ポート2またはポート3を介して、アップリンクデータパケットとして他のホストに送られる。
【0017】
PortLandプロトコルは、データセンターネットワークのためのレイヤ2アドレス指定プロトコル、ルーティングプロトコル、および転送プロトコルのセットで構成される。ただし、PortLandプロトコルはこのファットツリートポロジに限定され、他のトポロジには適用できない。例えば、PortLandプロトコルによって使用されるPMACの形式「ポッド.位置.ポート.仮想マシンID」は、非特許文献2で提案されるClosトポロジに直接適用することはできない。
【0018】
図4に、Closトポロジの概略図を示す。Closトポロジもやはり3つの層に分割され、Top of Rack(ToR)スイッチは、エンドホストに直接接続されるファットツリートポロジのエッジスイッチと類似している。ファットツリートポロジのすべてのスイッチは同一である。ただし、Closトポロジでは、コアスイッチと集約スイッチは10Gポートを有するスイッチである。ToRスイッチは10Gのアップリンクポートを介して集約スイッチに接続されるが、ホストへは1Gのダウンリンクポートを介して接続される。
【0019】
Closトポロジにポッドの概念はないので、PMACの形式(ポッド.位置.ポート.仮想マシンID)を直接利用することはできない。集約スイッチがポッドに対応する場合(例えば、集約スイッチS3およびS4がそれぞれポッド0およびポッド1に対応する場合)、ToRスイッチをアドレス指定することはできない。各ToRスイッチは2つの集約スイッチに接続されている(例:ToRスイッチS7が集約スイッチS3およびS4に接続されている)ので、ToRスイッチS7のポッド番号は0または1の可能性があるからである。その結果、非特許文献1で提案されるPortLandプロトコルは、非特許文献2で提案されるClosトポロジに直接適用することはできない。
【先行技術文献】
【非特許文献】
【0020】
【非特許文献1】“PortLand:A Scalable Fault Tolerant layer−2 Data Center Network Fabric(PortLand:スケーラブル故障耐性レイヤ2データセンターネットワークファブリック)”,Radhika Niranjan Mysore etc.,in Sigcomm 2009
【非特許文献2】“VL2:A Scalable and Flexible Data Center Network(VL2:スケーラブルでフレキシブルなデータセンターネットワーク)”,Albert Greenberg etc.,in Sigcomm 2009
【非特許文献3】“A Scalable,Commodity Data Center Network Architecture(スケーラブルなコモディティデータセンターネットワークアーキテクチャ”,M.Al−Fares etc.,in Sigcomm 2008
【発明の概要】
【発明が解決しようとする課題】
【0021】
関連技術における上記の欠点を鑑みて、本発明の目的は、データセンターで採用される様々なトポロジに適応可能な、データセンターネットワーク用のアドレス指定方法、アドレス指定装置、ファブリックマネージャ、スイッチ、およびデータルーティング方法を提供することにある。本発明は、転送テーブルの短縮を目的としたロケータアドレスの集約と、ネットワークのロードバランスとを実現することができる。
【0022】
本発明は、データセンターネットワーク用のアドレス指定方法、アドレス指定装置、ファブリックマネージャ、スイッチ、およびデータルーティング方法を提供する。ネットワーク内のホストとスイッチは、1つ以上のロケータアドレスに割り当てられる。ロケータアドレスは階層的であり、トポロジ内のホストおよびスイッチの位置を符号化する。トポロジ内に冗長パスが設けられている場合、スイッチおよびホストは複数のロケータアドレスに割り当てられる。データパケットを転送するためのスイッチの転送テーブルには、MACアドレスではなく、ロケータアドレスが格納される。複数のロケータアドレスは複数のパスがあることを示す。複数のパスからロードバランスを実現できるいくつかの適切なパスを選択することが可能となる。
【0023】
本発明の第1の態様によれば、アドレス指定装置であって、複数のツリーを取得するために、ネットワークトポロジ発見機能を使用して、各スイッチを順にルートとして、全ホストを含むツリーを作成するツリー作成手段と、ツリー作成手段によって作成された複数のツリーから最低高さを有するツリーを選択するツリー選択手段と、ツリー選択手段によって選択された最低高さを有する各ツリーに関し、ネットワーク内の各スイッチおよび各ホストにアドレスを割り当てるアドレス割り当て手段とを備えるアドレス指定装置を提供する。
【0024】
好ましくは、1つのスイッチをルートとして、全ホストを含む複数のツリーが作成された場合、ツリー作成手段は、当該スイッチをルートとする複数のツリーのうち最低高さを有するツリーの1つを、作成されたツリーとして選択する。
【0025】
好ましくは、1つのスイッチをルートとして、全ホストを含む複数のツリーが作成された場合、ツリー作成手段は、当該複数のツリーのすべてを、作成されたツリーとして記録する。
【0026】
好ましくは、当該複数のツリーのうち最低高さを有するツリーが複数個ある場合、ツリー選択手段は、最低高さを有する当該複数個のツリーのすべてを選択する。
【0027】
好ましくは、アドレス割り当て手段は、ツリー選択手段によって選択された最低高さHを有する各ツリーについて、ルートスイッチロケータアドレスを、ツリーのルートに位置するルートスイッチ(「第0層スイッチ」とも称する)に割り当て、ルートスイッチに直接接続された第1層スイッチから開始して、第(i−1)層スイッチに直接接続された第i層スイッチの各々について、ルートスイッチから第i層スイッチまでのすべてのパスを検出し、各パスについて、「ルートスイッチロケータアドレス.第1層スイッチアドレス.・・・.第i層スイッチアドレス」(ここで1≦i≦H−2)の形式で、第i層スイッチロケータアドレスを第i層スイッチに割り当て、かつ、「エッジスイッチロケータアドレス.ホストアドレス」(ここで、エッジスイッチはホストに直接接続された第k層スイッチであり、0≦k≦H−2)の形式で、ホストロケータアドレスを各ホストに割り当てる。
【0028】
好ましくは、第i層スイッチアドレスは、第(i−1)層スイッチの各第i層スイッチに接続された個々のポートのポート番号である。
【0029】
好ましくは、ホストアドレスは、エッジスイッチの各ホストに接続された個々のポートのポート番号である。
【0030】
本発明の第2の態様によれば、アドレス指定方法であって、複数のツリーを取得するために、ネットワークトポロジ発見機能を使用して、各スイッチを順にルートとして、全ホストを含むツリーを作成するステップと、作成された複数のツリーから最低高さを有するツリーを選択するステップと、選択された最低高さを有する各ツリーに関し、ネットワーク内の各スイッチおよび各ホストにアドレスを割り当てるステップとを備えるアドレス指定方法を提供する。
【0031】
好ましくは、1つのスイッチをルートとして、全ホストを含む複数のツリーが作成された場合、当該スイッチをルートとする複数のツリーのうち最低高さを有するツリーの1つが、作成されたツリーとして選択される。
【0032】
好ましくは、1つのスイッチをルートとして、全ホストを含む複数のツリーが作成された場合、当該複数のツリーのすべてが、作成されたツリーとして記録される。
【0033】
好ましくは、当該複数のツリーのうち最低高さを有するツリーが複数個ある場合には、最低高さを有する当該複数個のツリーのすべてが選択される。
【0034】
好ましくは、最低高さHを有する各選択されたツリーについて、ルートスイッチロケータアドレスが、ツリーのルートに位置するルートスイッチ(「第0層スイッチ」とも称する)に割り当てられ、ルートスイッチに直接接続された第1層スイッチから開始して、第(i−1)層スイッチに直接接続された第i層スイッチの各々について、ルートスイッチから第i層スイッチまでのすべてのパスが検出され、各パスについて、「ルートスイッチロケータアドレス.第1層スイッチアドレス.・・・.第i層スイッチアドレス」(ここで1≦i≦H−2)の形式で、第i層スイッチロケータアドレスが第i層スイッチに割り当てられ、かつ、「エッジスイッチロケータアドレス.ホストアドレス」(ここで、エッジスイッチはホストに直接接続された第k層スイッチであり、0≦k≦H−2)の形式で、ホストロケータアドレスが各ホストに割り当てられる。
【0035】
好ましくは、第i層スイッチアドレスは、第(i−1)層スイッチの各第i層スイッチに接続された個々のポートのポート番号である。
【0036】
好ましくは、ホストアドレスは、エッジスイッチの各ホストに接続された個々のポートのポート番号である。
【0037】
本発明の第3の態様によれば、ファブリックマネージャであって、本発明によるアドレス指定装置と、各ホストのインターネットプロトコル(IP)アドレスおよびそのホストのすべてのホストロケータアドレス間のマッピングを保持するグローバルロケータアドレステーブルを格納するための記憶装置とを備えるファブリックマネージャを提供する。
【0038】
好ましくは、ファブリックマネージャは、アドレス解決プロトコル(ARP)要求を受信すると、宛先ホストのIPアドレスを索引としてグローバルロケータアドレステーブルを検索し、スケジューリングアルゴリズムに基づいて、宛先ホストのIPアドレスに対応する検索された1つ以上のホストロケータアドレスから1つのホストロケータアドレスを選択し、選択された1つのホストロケータアドレスを送信元ホストに返してARPアドレス解決を完了する、スケジューリング手段をさらに備える。
【0039】
好ましくは、スケジューリング手段は、グローバルロケータアドレステーブルから宛先ホストのIPアドレスに対応するホストロケータアドレスが検索されなかった場合、ネットワークブロードキャストを実行して宛先ホストの1つ以上のホストロケータアドレスを取得し、スケジューリングアルゴリズムに基づいて、宛先ホストのIPアドレスに対応する取得された1つ以上のホストロケータアドレスから1つのホストロケータアドレスを選択し、選択された1つのホストロケータアドレスを送信元ホストに返してARPアドレス解決を完了する。
【0040】
好ましくは、ファブリックマネージャは、スイッチが隣接スイッチの故障またはリンクの故障を検出した場合には、グローバルロケータアドレステーブル内の関連のホストロケータアドレスを無効化する障害処理手段をさらに備え、スケジューリング手段は宛先ホストのIPアドレスに対応するホストロケータアドレスを選択する際に、無効化されたホストロケータアドレスを選択しない。
【0041】
本発明の第4の態様によれば、本発明によるアドレス指定装置を備えるスイッチを提供する。
【0042】
本発明の第5の態様によれば、本発明によるアドレス指定方法によってアドレス指定されたスイッチアドレスとホストアドレスが適応される、データルーティング方法を提供する。当該データルーティング方法は、ルートスイッチ/第0層スイッチが、宛先ホストのホストロケータアドレスとして、「ルートスイッチロケータアドレス.第1層スイッチアドレス/ホストアドレス.*」を含むデータパケットを「第1層スイッチアドレス/ホストアドレス」として付番されたポートへ送信するステップと、第i層スイッチが、宛先ホストのホストロケータアドレスとして、「第i層スイッチロケータアドレス.第(i+1)層スイッチアドレス/ホストアドレス.*」を含むデータパケットを、「(i+1)層スイッチアドレス/ホストアドレス」として付番されたポート(ここで、1≦i≦H−2)へ送信するステップと、第i層スイッチが、宛先ホストのホストロケータアドレスとして、「ルートスイッチロケータアドレス.*」を含むデータパケットを、「ルートスイッチロケータアドレス」のルートスイッチロケータアドレスを有するルートスイッチをルートとする第(i−1)層スイッチ(ここで、1≦i≦H−2)に接続されたポートに送信するステップとを備える。
【0043】
本発明は、ファットツリートポロジ、Closトポロジ等の、データセンターによって採用される様々なトポロジに適応可能な新しいアドレス指定解決法を提供する。データパケットを転送するためのスイッチの転送テーブルには、MACアドレスではなく、ロケータアドレスが格納される。ロケータアドレスは階層的なので、スイッチが保持する転送テーブルを小規模に維持することができる。トポロジ内に冗長パスが設けられている場合、スイッチおよびホストは複数のロケータアドレスに割り当てられる。複数のロケータアドレスは、それぞれ複数のパスがあることを示す。複数のパスからロードバランスを実現できるいくつかの適切なパスを選択することが可能となる。
【図面の簡単な説明】
【0044】
本発明の上記および他の目的、特徴、利点は、本発明の実施例に関する以下の説明と添付図面とを参照することにより、明らかになるであろう。
【0045】
【図1】スイッチが自己学習方式で転送テーブルを作成する場合を示す概略図である。
【図2】スイッチが、未知の宛先MACアドレスを有するデータフレームを転送(ブロードキャスト)する場合を示す概略図である。
【図3】PortLandシステムのアーキテクチャの概略図である。
【図4】Closトポロジの概略図である。
【図5】本発明によるアドレス指定装置500のブロック図である。
【図6】本発明によるアドレス指定装置600のフローチャートである。
【図7】非特許文献3で提案されるファットツリートポロジを示す概略図である。
【図8】ネットワークトポロジ発見機能がファットツリートポロジに基づいて作成するツリーの例を示す。
【図9】ネットワークトポロジ発見機能がファットツリートポロジに基づいて作成するツリーの他の例を示す。
【図10】ネットワークトポロジ発見機能がファットツリートポロジに基づいて作成するツリーの他の例を示す。
【図11】ファットツリートポロジに基づくアドレス指定結果の一部を示す。
【図12】Closトポロジに基づくアドレス指定結果の一部を示す。
【図13】ファットツリートポロジにおけるデータパケットの転送を示す概略図である。
【図14】本発明によるアドレス指定装置500を備えるファブリックマネージャ1400の一例のブロック図である。
【図15】複数のパスのそれぞれに対応する複数のロケータアドレスを示す概略図である。
【0046】
これらの図面においては、同一もしくは類似の要素またはステップは、同一もしくは類似の参照記号で識別されている。
【発明を実施するための形態】
【0047】
以下では、図面を参照して本発明の実施例について詳述する。これにより、当業者には本発明の原理および実装は明らかとなるであろう。ただし、本発明はここで説明する特定の実施例に限定されない。さらに、明快で簡素な内容とするため、本発明に関連する一般的な要素の説明は省略している。
【0048】
図5は、本発明によるアドレス指定装置500のブロック図である。本発明によるアドレス指定装置500は、図3に示すファブリックマネージャ300や他の任意のスイッチに配置することができる。図5に示すように、本発明によるアドレス指定装置500は、ツリー作成手段510と、ツリー選択手段520と、アドレス割り当て手段530とを備える。
【0049】
ツリー作成手段510は、ネットワークトポロジ発見機能によって、各スイッチを順にルートとして全ホストを含むツリーを作成し、複数のツリーを取得する。トポロジは冗長パスを設けることができるので、各ツリーにスイッチのすべてを含める必要はない。また、1つのスイッチをルートとして、全ホストを含む複数のツリーが作成されることもある。この場合、ツリー作成手段510は、ツリー選択手段520の動作の前に、当該スイッチをルートとする複数のツリーから最低高さを有する任意の1つのツリーを、作成されたツリーとして選択することができる。あるいは、ツリー作成手段510がすべてのツリーを作成して記録しておき、ツリー選択手段520が選択を行うようにしてもよい。
【0050】
ツリー選択手段520は、ツリー作成手段510によって作成された複数のツリーから最低高さを有するツリーを選択する。当該複数のツリーのうち最低高さを有するツリーが複数個ある場合には、ツリー選択手段520は、最低高さを有する複数個のツリーのすべてを選択する。ツリー選択手段520の動作によれば、同じ最低高さを有するツリーが複数個存在する場合には、トポロジは複数ルートのツリーとして構築される。
【0051】
アドレス割り当て手段530は、ネットワーク内の各スイッチおよび各ホストにアドレスを割り当てる。
【0052】
以下では、便宜上、ネットワーク内のスイッチの階層構造についてまず説明する。
【0053】
各ツリーのルートノードにあるスイッチを「ルートスイッチ」と称する(「第0層スイッチ」とも称する)。第(i−1)層スイッチに直接接続されたスイッチを「第i層スイッチ」(1≦i≦H−2、Hはツリーの高さ)と称する。ホストに直接接続されたスイッチを「エッジスイッチ」と称する(第k層スイッチとも称し、0≦k≦H−2である)。
【0054】
最初に、各選択された最低高さを有するツリーについて、ツリーのルートにあるルートスイッチにルートスイッチロケータアドレスが割り当てられる。このルートスイッチは「第0層スイッチ」と称する。
【0055】
続いて、ルートスイッチ(第0層スイッチ)に直接接続された第1層スイッチから開始して、各第i層スイッチについて、ルートスイッチから第i層スイッチまでのすべてのパスが検出され、各パスについて、「ルートスイッチロケータアドレス.第1層スイッチアドレス.・・・.第i層スイッチアドレス」の形式で、第i層スイッチロケータアドレスが第i層スイッチに割り当てられる。ここで、第i層スイッチアドレスは、第(i−1)層スイッチの第i層スイッチに接続された各ポートのポート番号である。
【0056】
最後に、「エッジスイッチロケータアドレス.ホストアドレス」の形式で、ホストロケータアドレスが各ホストに割り当てられる。ここで、ホストアドレスは、エッジスイッチの各ホストに接続された各ポートのポート番号である。
【0057】
図6は、本発明によるアドレス指定方法600のフローチャートである。
【0058】
ステップS610において、ツリー作成手段510は、ネットワークトポロジ発見機能によって、各スイッチを順にルートとして全ホストを含むツリーを作成し、複数のツリーを取得する。トポロジは冗長パスを設けることができるので、各ツリーにスイッチのすべてを含める必要はない。また、1つのスイッチをルートとして、全ホストを含む複数のツリーが作成されることもある。この場合、ツリー作成手段510は、ツリー選択手段520の動作の前に、当該スイッチをルートとする複数のツリーから最低高さを有する任意の1つのツリーを、作成されたツリーとして選択することができる。あるいは、ツリー作成手段510がすべてのツリーを作成して記録しておき、ツリー選択手段520が選択を行うようにしてもよい。
【0059】
ステップS620において、ツリー選択手段520は、ツリー作成手段510によって作成された複数のツリーから最低高さを有するツリーを選択する。当該複数のツリーのうち最低高さを有するツリーが複数個ある場合には、ツリー選択手段520は、最低高さを有する複数個のツリーのすべてを選択する。ツリー選択手段520の動作によれば、同じ最低高さを有する(R)ツリーが複数個存在する場合には、トポロジは複数ルートのツリーとして構築される。複数ルートのツリーの高さはHである。各ツリーのルートノードにあるスイッチを「ルートスイッチ」と称する(「第0層スイッチ」とも称する)。第(i−1)層スイッチに直接接続されたスイッチを「第i層スイッチ」(1≦i≦H−2)と称する。ホストに直接接続されたスイッチを「エッジスイッチ」と称する(第k層スイッチとも称し、0≦k≦H−2である)。
【0060】
ステップS630において、アドレス割り当て手段530は、各選択された最低高さHを有するツリーについて、ツリーのルートにあるルートスイッチにルートスイッチロケータアドレスを割り当てる。このルートスイッチは「第0層スイッチ」とも称する。ツリーのルートノードには、例えばルートスイッチロケータアドレス「0」、「1」、・・・、「R−1」を順に割り当てることができる。
【0061】
ステップS640において、アドレス割り当て手段530は、ルートスイッチ(第0層スイッチ)に直接接続された第1層スイッチから開始して、各第i層スイッチについて、ルートスイッチから第i層スイッチまでのすべてのパスを検出し、各パスについて、「ルートスイッチロケータアドレス.第1層スイッチアドレス.・・・.第i層スイッチアドレス」の形式で、第i層スイッチロケータアドレスを第i層スイッチに割り当てる。ここで、第i層スイッチアドレスは、第(i−1)層スイッチの第i層スイッチに接続された各ポートのポート番号である。
【0062】
ステップS650において、アドレス割り当て手段530は、「エッジスイッチロケータアドレス.ホストアドレス」の形式で、ホストロケータアドレスを各ホストに割り当てる。ここで、ホストアドレスは、エッジスイッチの各ホストに接続された各ポートのポート番号である。
【0063】
ロケータアドレス「ルートスイッチロケータアドレス.第1層スイッチアドレス.・・・.第i層スイッチアドレス.・・・.エッジスイッチロケータアドレス.ホストアドレス」については、ロケータアドレスの各層は8ビットで示すことができる。そのため、トポロジ発見機能によって取得された複数ルートのツリーの高さHが6未満の場合には、ロケータアドレスの長さが48ビットのMACアドレス領域を超えることはない。
【0064】
ロケータアドレスが全6層(48ビット)に達しなかった場合、(アドレス割り当て手段530によって)無効なアドレスビットが「1」で示される。例えば、「0.1.2.3.255.255」は、ホストのロケータアドレスの形式は「ルートスイッチロケータアドレス.第1層アドレス.第2層アドレス.ホストアドレス」であり、その固有値は「0.1.2.3」であることを示す。煩雑化を避けるため、記述においては無効なアドレスビットは通常省略される。よって、「0.1.2.3」は「0.1.2.3.255.255」を表す。
【0065】
「ルートスイッチロケータアドレス」のアドレス領域のサイズは、ルートスイッチ数によって決まる。8ビットは、最大255個のルートスイッチを表すことができる。通常、コア層のスイッチは10Gポートを備えるスイッチである。ここで、コア層には、各々128ポートを有する255個のスイッチがあると想定する。したがって、この構成では、255*128*10=326,400のホストにおいて1G通信をサポートすることが可能である。この数は大規模なデータセンターの要件を十分に満たすことができる。
【0066】
「ルートスイッチロケータアドレス」だけでなく、「第1層アドレス」、「第2層アドレス」、・・・、「第n層アドレス」、または「ホストアドレス」のアドレス領域のサイズも、スイッチのポート数によって異なる。8ビットは最大255ポートを表現できるので、既存のスイッチの要件を満たすには十分である。
【0067】
一方、トポロジ発見機能によって取得された複数ルートのツリーの高さHが6より大きい場合、ロケータアドレス「ルートスイッチロケータアドレス.第1層スイッチアドレス.・・・.第i層スイッチアドレス.・・・.エッジスイッチロケータアドレス.ホストアドレス」を圧縮する必要がある。ある特定層の最大アドレス領域≦2−1とすると、この層のビット数はNビットに圧縮される(アドレス割り当て手段530によって実行される)。この場合、各層はもはや固定ビット長(8ビット)で示されないため、ファブリックマネージャ300(図3)はトポロジ発見の完了後に、すべてのスイッチに各層のビット長を通知する。
【0068】
本発明で提案されるアドレス指定の解決法は、データセンターによって採用される様々なトポロジに適応可能である。以下に、典型的なトポロジにおけるアドレス指定の例を示す。
【0069】
図7は、非特許文献3で提案されるファットツリートポロジを示す概略図である。詳細については図3を参照すると分かるので、ここでは煩雑化を避けるため省略する。
【0070】
図8に、ネットワークトポロジ発見機能がファットツリートポロジに基づいて作成するツリーの例を示す。
【0071】
図8に示すように、ツリー作成手段510は、ネットワークトポロジ発見機能を使用し、スイッチS1をルートとして、全ホストを含むツリーを作成する(ステップS610)。ツリーの高さHは4である。
【0072】
図9に、ネットワークトポロジ発見機能がファットツリートポロジに基づいて作成するツリーの他の例を示す。
【0073】
図9に示すように、ツリー作成手段510は、ネットワークトポロジ発見機能を使用し、スイッチS5をルートとして、全ホストを含む他のツリーを作成する(ステップS610)。ツリーの高さHは5である。
【0074】
図10に、ネットワークトポロジ発見機能がファットツリートポロジに基づいて作成するツリーの他の例を示す。
【0075】
図10に示すように、ツリー作成手段510は、ネットワークトポロジ発見機能を使用し、スイッチS13をルートとして、全ホストを含む他のツリーを作成する(ステップS610)。ツリーの高さHは6である。
【0076】
上記の動作によれば、ツリー作成手段510は、図7に示すファットツリートポロジに対し少なくとも20個のツリーを作成することができる。
【0077】
図11に、ファットツリートポロジに基づくアドレス指定結果の一部を示す。
【0078】
ツリー選択手段520は、ツリー作成手段510によって作成された少なくとも20個のツリーから、最低高さ(H=4)を有するツリーを選択する。最低高さH=4のツリーは4個あり、それぞれスイッチS1、S2、S3、S4をルートとする(ステップS620)。
【0079】
そのため、アドレス割り当て手段530は、ルートスイッチである4個のスイッチS1、S2、S3、S4にロケータアドレス「0」、「1」、「2」、「3」を割り当てる(ステップS630)。
【0080】
スイッチS5〜S12はルートスイッチに直接接続されているため、第1層スイッチである。第1層スイッチの各々について、ルートスイッチから第1層スイッチまでのパスは2つある。したがって、第1層スイッチの各々に2つのロケータアドレスが割り当てられる。例えば、スイッチS5の場合、1つのパスはS1→S5である。スイッチS5がルートスイッチS1のポート0に接続されているとすると、スイッチS5によってこのパスのために取得されるスイッチロケータアドレスは「0.0」である。ルートスイッチからスイッチS5までのもう一方のパスは、S2→S5である。スイッチS5がルートスイッチS2のポート0に接続されているとすると、スイッチS5によってこのパスのために取得されるスイッチロケータアドレスは「1.0」である。スイッチS13〜S20は第1層スイッチに直接接続されているので、第2層スイッチである。第2層スイッチの各々について、ルートスイッチから第2層スイッチまでのパスは4つある。そのため、第2層スイッチの各々には4個のロケータアドレスが割り当てられる。例えば、、スイッチS13の4個のパスはS1→S5→S13、S2→S5→S13、S3→S6→S13、S4→S6→S13であり、対応する4個のスイッチロケータアドレスは「0.0.0」、「1.0.0」、「2.0.0」、「3.0.0」である(ステップS630)。
【0081】
ホストはエッジスイッチ(第2層スイッチ)に直接接続される。エッジスイッチの各スイッチロケータアドレスに対応して、1つのホストロケータアドレスが各ホストに割り当てられる。そのため、図11に示す各ホストは4個のホストロケータアドレスを有する。例えば、ホストH1はS13のポート0に接続される。したがって、スイッチS13の4個のスイッチロケータアドレス「0.0.0」、「1.0.0」、「2.0.0」、「3.0.0」に対応するホストH1のホストロケータアドレスは、「0.0.0.0」、「1.0.0.0」、「2.0.0.0」、「3.0.0.0」である(ステップS640)。
【0082】
図12に、Closトポロジに基づくアドレス指定結果の一部を示す。
【0083】
図12に示すClosトポロジの場合、ツリー作成手段510は少なくとも10個のツリーを作成する可能性がある。
【0084】
ツリー選択手段520は、ツリー作成手段510によって作成された少なくとも10個のツリーから、最低高さ(H=4)を有するツリーを選択する。最低高さH=4のツリーは2個あり、それぞれスイッチS1、S2をルートとする(ステップS620)。
【0085】
そのため、アドレス割り当て手段530は、ルートスイッチである2個のスイッチS1、S2にロケータアドレス「0」、「1」を割り当てる(ステップS630)。
【0086】
スイッチS3〜S6はルートスイッチに直接接続されているので、第1層スイッチである。第1層スイッチの各々について、ルートスイッチから第1層スイッチまでのパスは2つある。したがって、第1層スイッチの各々に2つのロケータアドレスが割り当てられる。例えば、スイッチS3の場合、1つのパスはS1→S3である。スイッチS3がルートスイッチS1のポート0に接続されているとすると、スイッチS3によってこのパスのために取得されるスイッチロケータアドレスは「0.0」である。ルートスイッチからスイッチS3までのもう一方のパスは、S2→S3である。スイッチS3がルートスイッチS2のポート0に接続されているとすると、スイッチS3によってこのパスのために取得されるスイッチロケータアドレスは「1.0」である。スイッチS7〜S10は第1層スイッチに直接接続されているので、第2層スイッチである。第2層スイッチの各々について、ルートスイッチから第2層スイッチまでのパスは4つある。そのため、第2層スイッチの各々には4個のロケータアドレスが割り当てられる。例えば、スイッチS7の4個のパスはS1→S3→S7、S2→S3→S7、S1→S4→S7、S2→S4→S7であり、4個のスイッチロケータアドレスは「0.0.0」、「1.0.0」、「0.1.0」、「1.1.0」である(ステップS630)。
【0087】
ホストはエッジスイッチ(第2層スイッチ)に直接接続されている。エッジスイッチの各スイッチロケータアドレスに対応して、1つのホストロケータアドレスが各ホストに割り当てられる。そのため、図12に示す各ホストは4個のホストロケータアドレスを有する。例えば、ホストH1はS7のポート0に接続される。したがって、スイッチS7の4個のスイッチロケータアドレス「0.0.0」、「1.0.0」、「0.1.0」、「1.1.0」に対応するホストH1のホストロケータアドレスは、「0.0.0.0」、「1.0.0.0」、「0.1.0.0」、「1.1.0.0」である(ステップS640)。
【0088】
データパケットを転送するためのスイッチの転送テーブルには、MACアドレスではなく、ロケータアドレスが格納される。図13は、ファットツリートポロジにおけるデータパケットの転送を示す概略図である。各層のスイッチの転送テーブルは、以下のとおりである。
・ルートスイッチ:
セルフロケータ.ポート.*⇔ポート「ポート」
ここで、「セルフロケータ」はルートスイッチ自体のルートスイッチロケータアドレスを表し、「ポート」はルートスイッチロケータアドレスの後に位置する次のアドレスフィールドを表す。
例えば、ルートスイッチS1の「セルフロケータ」は「0」である。そのポート0はS5に接続されており、S5に割り当てられている第1層アドレスも「0」である。そのため、宛先ロケータアドレス「0.0.*」を有するデータパケットはポート0に送信される。同様に、宛先ロケータアドレス「0.1.*」を有するデータパケットはポート1に送信される。
・第i層スイッチ:
セルフロケータ.ポート.*⇔ポート「ポート」
親のルート.*⇔第(i−1)層スイッチに接続されたポート
ここで、「セルフロケータ」は第i層スイッチ自体の第i層スイッチロケータアドレスを表し、「ポート」は第i層スイッチロケータアドレスの後に位置する次のアドレスフィールドを表し、「親のルート」は第i層スイッチに接続される第(i−1)層スイッチのルートスイッチのルートスイッチロケータアドレスを表す。
例えば、スイッチS5の「セルフロケータ」は「0.0」および「1.0」である。そのポート0はS13に接続されており、S13に割り当てられている第2層アドレスも「0」である。そのため、宛先ロケータアドレス「セルフロケータ.0.*」を有するデータパケットはポート0に送信される(すなわち、“0.0.0.*” ⇔ポート0、“1.0.0.*” ⇔ポート0)。同様に、宛先ロケータアドレス「セルフロケータ1.*」を有するデータパケットはポート1に送信される(すなわち、“0.0.1.*” ⇔ポート1、“1.0.1.*” ⇔ポート1)。スイッチS5のポート2および3はアップリンクポートであり、第(i−1)層スイッチに接続されている。スイッチS5のポート2および3に接続されている第(i−1)層スイッチを、スイッチS5の親スイッチと称する。したがって、スイッチS5は2個の親スイッチS1およびS2を有する。スイッチS2はスイッチS5のポート2に接続されているとすると、スイッチS2のルートノードはS2自体(ルートスイッチロケータアドレスは「1」(親のルート))である。したがって、対応する転送テーブル項目は「1.*」⇔ポート2である。同様に、スイッチS1はスイッチS5のポート3に接続されているとすると、スイッチS1のルートノードはS1自体(ルートスイッチロケータアドレスは「0」(親のルート))である。したがって、対応する転送テーブル項目は「0.*」⇔ポート3である。
別の例を挙げると、スイッチS13の「セルフロケータ」は「0.0.0」、「1.0.0」、「2.0.0」、「3.0.0」である。そのポート0はホストH1に接続されており、H1に割り当てられているホストロケータアドレスも「0」である。そのため、宛先ロケータアドレス「セルフロケータ.0.*」を有するデータパケットはポート0に送信される(すなわち、「0.0.0.0.*」⇔ポート0、「1.0.0.0.*」⇔ポート0、「2.0.0.0.*」⇔ポート0、「3.0.0.0.*」⇔ポート0)。同様に、宛先ロケータアドレス「セルフロケータ1.*」を有するデータパケットはポート1に送信される(すなわち、「0.0.0.1.*」⇔ポート1、「1.0.0.1.*」⇔ポート1、「2.0.0.1.*」⇔ポート1、「3.0.0.1.*」⇔ポート1)。スイッチS13のポート2および3はアップリンクポートであり、第(i−1)層スイッチに接続されている。スイッチS13のポート2および3に接続されている第(i−1)層スイッチを、スイッチS13の親スイッチと称する。したがって、スイッチS13は2個の親スイッチS5およびS6を有する。スイッチS6はスイッチS13のポート2に接続されているとすると、スイッチS6のルートノードはルートスイッチS3(ルートスイッチロケータアドレスは「2」(親のルート))またはルートスイッチS4(ルートスイッチロケータアドレスは「3」(親のルート))である。したがって、対応する転送テーブル項目は「2.*」⇔ポート2と「3.*」⇔ポート2である。同様に、スイッチS5はスイッチS13のポート3に接続されているとすると、スイッチS5のルートノードはルートスイッチS1(ルートスイッチロケータアドレスは「0」(親のルート))またはルートスイッチS2(ルートスイッチロケータアドレスは「1」(親のルート))である。したがって、対応する転送テーブル項目は「0.*」⇔ポート3と「1.*」⇔ポート3である。
【0089】
トポロジ内に冗長パスが設けられている場合、スイッチおよびホストは複数のロケータアドレスに割り当てられる。複数のロケータアドレスは、それぞれ複数のパスがあることを示す。ロードバランスのために、複数のパスからいくつかの適切なパスが選択されることがある。
【0090】
図14は、本発明によるアドレス指定装置500を備えるファブリックマネージャ1400の一例のブロック図である。図15は、複数のパスのそれぞれに対応する複数のロケータアドレスを示す概略図である。
【0091】
図14に示すように、本発明によるアドレス指定装置500を備えるファブリックマネージャ1400は、記憶装置1410と、スケジューリング手段1420と、障害処理手段1430とをさらに備える。
【0092】
記憶装置1410は、各ホストのインターネットプロトコル(IP)アドレスと、アドレス指定装置500によって作成された当該ホストのすべてのホストロケータアドレスとの間のマッピングを保持するグローバルロケータアドレステーブルを格納する。
【0093】
スケジューリング手段1420は、アドレス解決プロトコル(ARP)要求が受信されると、宛先ホストのIPアドレスを索引としてグローバルロケータアドレステーブルを検索し、スケジューリングアルゴリズムに基づいて、宛先ホストのIPアドレスに対応する検索された1つ以上のホストロケータアドレスから1つのホストロケータアドレスを選択し、選択された1つのホストロケータアドレスを送信元ホストに返してARPアドレス解決を完了する。グローバルロケータアドレステーブルから宛先ホストのIPアドレスに対応するホストロケータアドレスが検索されなかった場合には、スケジューリング手段1420は、ネットワークブロードキャストを実行して宛先ホストの1つ以上のホストロケータアドレスを取得し(宛先ホストの1つ以上のホストロケータアドレスとIPアドレスとのマッピングは、グローバルロケータテーブルに格納してもよい)、スケジューリングアルゴリズムに基づいて、宛先ホストのIPアドレスに対応する取得された1つ以上のホストロケータアドレスから1つのホストロケータアドレスを選択し、選択された1つのホストロケータアドレスを送信元ホストに返してARPアドレス解決を完了する。
【0094】
スイッチが隣接スイッチの故障またはリンクの故障を検出した場合には、障害処理手段1430が、グローバルロケータアドレス(*テーブル?)内の関連のホストロケータアドレスを無効化する。スケジューリング手段1420は、宛先ホストのIPアドレスに対応するホストロケータアドレスを選択する際に、無効化されたホストロケータアドレスを選択しない。
【0095】
図15に示すように、ホストH1は送信元ホストであり、ホストH5は宛先ホストである。ホストH5には4個のロケータアドレスが付与されている。したがって、やはり図15に示されるように、ホストH1からホストH5までのパスは4つある。グローバルロケータアドレステーブル(記憶装置1410に格納されている)には、全ホストのすべてのホストロケータアドレスが保持されている。ファブリックマネージャがアドレス解決プロトコル(ARP)要求を受信すると、スケジューリング手段1420は、ホストロケータアドレスから1個のホストロケータアドレスを選択することで、それに応答することがある。ホストロケータアドレスを選択することは、複数のパスから1つのパスを選択することに相当する。ロードバランスのために、複数のパスからいくつかの適切なパスが選択されることがある。この選択方法としては、ランダム、ラウンドロビン等のスケジューリングアルゴリズムを使用できる。ファブリックマネージャは、ARPアドレス解決のために、グローバルロケータアドレステーブルを格納する。ファブリックマネージャはARP要求が受信されると、グローバルロケータアドレステーブルを検索して、宛先ホストのIPアドレスに対応するホストロケータアドレスを見つける。宛先ホストのIPアドレスに対応する1つ以上のホストロケータアドレスが見つかった場合には、スケジューリングアルゴリズムに基づいて、検索された1つ以上のホストロケータアドレスから1つのホストロケータアドレスが選択され、選択された1つのホストロケータアドレスが送信元ホストに返されて、ARPアドレス解決が完了する。グローバルロケータアドレステーブルから宛先ホストのIPアドレスに対応するホストロケータアドレスが検索されなかった場合には、ファブリックマネージャは、ネットワークブロードキャストを実行して宛先ホストの1つ以上のホストロケータアドレスを取得し、スケジューリングアルゴリズムに基づいて、取得された1つ以上のホストロケータアドレスから1つのホストロケータアドレスを選択し、選択された1つのホストロケータアドレスを送信元ホストに返してARPアドレス解決を完了する。ほとんどの場合、ファブリックマネージャが関与するときには、ネットワーク全体に対するブロードキャストは不要である。
【0096】
加えて、データセンターは数万台のサーバとスイッチを備えており、複数の異なるアプリケーションを同時にサポートしているため、データセンターネットワークの耐故障性に対する要件は厳しい。本発明は、耐故障性の容易な実現方法として、1つのスイッチに対して1つ以上のスイッチロケータアドレスを使用している。隣接スイッチの動作状態を検出するため、スイッチ間でキープアライブメッセージが定期的に交換されている(これは、スイッチ内の障害検出手段によって行うことができる)。スイッチまたはリンクに障害が発生した場合には、隣接スイッチ内の障害検出手段がこの障害を検出し、ファブリックマネージャに報告する。その後、障害処理手段1430が、グローバルロケータアドレステーブル内の関連のホストロケータアドレスを無効化する。スケジューリング手段1420は、以降のARP要求を処理する際に無効なホストロケータアドレスを避け、有効なホストロケータアドレスを選択してARPアドレス解決を完了する。
【0097】
本発明の他の構成としては、方法実施例のステップおよび動作を実行するソフトウェアプログラムが挙げられる。以下ではまずその概要を述べ、次に詳細に説明する。具体的には、1つの実施例は、符号化されたコンピュータプログラム論理を格納するコンピュータ可読媒体で構成されるコンピュータプログラム製品である。コンピュータプログラム論理は、コンピュータ装置上で実行されると、上記の3D位置決め解決法を提供するために必要な動作を提供する。コンピュータプログラム論理は、それがコンピューティングシステムの少なくとも1つのプロセッサ上で実行されたときに、当該少なくとも1つのプロセッサが本発明の実施例の動作(方法)を実行することを可能にする。本発明のこうした構成は、典型的には、光媒体(例:CD−ROM)、ソフトディスク、ハードディスク等のコンピュータ可読媒体、1つ以上のROM、RAM、もしくはPROMチップに格納されたファームウェアもしくはマイクロコード等のその他の媒体、特定用途向け集積回路(ASIC)、または単一もしくは複数モジュール上のダウンロード可能なソフトウェアイメージおよび共有データベース等において提供または符号化されるソフトウェア、コード、その他のデータ構造として提供される。ソフトウェア、ハードウェア等の構成は、コンピューティング装置上にインストールされることにより、コンピューティング装置内の1つ以上のプロセッサを介して、本発明の実施例による技法を実行することができる。また、本発明のノードおよびホストは、ソフトウェアプロセスを、例えば他のエンティティ内の一連のデータ通信装置やコンピューティング装置と共に稼働させることによっても実現することができる。本発明のノードおよびホストはさらに、複数のデータ通信装置の複数のソフトウェアプロセス間に分散させたり、一連の小型専用コンピュータ上で稼働するすべてのソフトウェアプロセス、あるいは単一のコンピュータ上で稼働するすべてのソフトウェアプロセスに分散させることも可能である。
【0098】
本発明の実施例は、厳密には、ソフトウェアプログラム、1台のデータ処理装置上のソフトウェアおよびハードウェア、独立したソフトウェア、または独立した回路として実装できることに留意されたい。
【0099】
以上、実施例に関連して本発明を説明してきたが、本発明はその精神と範囲から逸脱することなく様々な変更、置換、追加を行うことが当業者によって可能なことは理解されるであろう。したがって、本発明の範囲は上記の特定の実施例に限定されず、以下の請求項によって限定される。
【0100】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
【0101】
(付記1)
複数のツリーを取得するために、ネットワークトポロジ発見機能を使用して、各スイッチを順にルートとして、全ホストを含むツリーを作成するツリー作成手段と、
前記ツリー作成手段によって作成された複数のツリーから最低高さを有するツリーを選択するツリー選択手段と、
前記ツリー選択手段によって選択された最低高さを有する各ツリーに関し、ネットワーク内の各スイッチおよび各ホストにアドレスを割り当てるアドレス割り当て手段と
を備えることを特徴とするアドレス指定装置。
【0102】
(付記2)
1つのスイッチをルートとして、全ホストを含む複数のツリーが作成された場合、前記ツリー作成手段は、当該スイッチをルートとする複数のツリーのうち最低高さを有するツリーの1つを、作成されたツリーとして選択することを特徴とする付記1に記載のアドレス指定装置。
【0103】
(付記3)
1つのスイッチをルートとして、全ホストを含む複数のツリーが作成された場合、前記ツリー作成手段は、当該複数のツリーのすべてを、作成されたツリーとして記録することを特徴とする付記1に記載のアドレス指定装置。
【0104】
(付記4)
前記複数のツリーのうち最低高さを有するツリーが複数個ある場合、前記ツリー選択手段は、最低高さを有する当該複数個のツリーのすべてを選択することを特徴とする付記1から付記3の何れかに記載のアドレス指定装置。
【0105】
(付記5)
前記ツリー選択手段によって選択された最低高さHを有する各ツリーについて、前記アドレス割り当て手段は、
ルートスイッチロケータアドレスを、ツリーのルートに位置するルートスイッチ(第0層スイッチ)に割り当て、
前記ルートスイッチに直接接続された第1層スイッチから開始して、第(i−1)層スイッチに直接接続された第i層スイッチの各々について、ルートスイッチから第i層スイッチまでのすべてのパスを検出し、各パスについて、「ルートスイッチロケータアドレス.第1層スイッチアドレス.・・・.第i層スイッチアドレス」(ここで、1≦i≦H−2)の形式で、第i層スイッチロケータアドレスを第i層スイッチに割り当て、
「エッジスイッチロケータアドレス.ホストアドレス」(ここで、エッジスイッチはホストに直接接続された第k層スイッチであり、0≦k≦H−2)の形式で、ホストロケータアドレスを各ホストに割り当てる
ことを特徴とする付記1から付記4の何れかに記載のアドレス指定装置。
【0106】
(付記6)
前記第i層スイッチアドレスは、第(i−1)層スイッチの各第i層スイッチに接続された個々のポートのポート番号であることを特徴とする付記5に記載のアドレス指定装置。
【0107】
(付記7)
前記ホストアドレスは、エッジスイッチの各ホストに接続された個々のポートのポート番号であることを特徴とする付記5又は付記6に記載のアドレス指定装置。
【0108】
(付記8)
複数のツリーを取得するために、ネットワークトポロジ発見機能を使用して、各スイッチを順にルートとして、全ホストを含むツリーを作成するステップと、
作成された複数のツリーから最低高さを有するツリーを選択するステップと、
選択された最低高さを有する各ツリーに関し、ネットワーク内の各スイッチおよび各ホストにアドレスを割り当てるステップと
を備えることを特徴とするアドレス指定方法。
【0109】
(付記9)
1つのスイッチをルートとして、全ホストを含む複数のツリーが作成された場合、当該スイッチをルートとする複数のツリーのうち最低高さを有するツリーの1つが、作成されたツリーとして選択されることを特徴とする付記8に記載のアドレス指定方法。
【0110】
(付記10)
1つのスイッチをルートとして、全ホストを含む複数のツリーが作成された場合、当該複数のツリーのすべてが、作成されたツリーとして記録されることを特徴とする付記8に記載のアドレス指定方法。
【0111】
(付記11)
当該複数のツリーのうち最低高さを有するツリーが複数個ある場合、最低高さを有する当該複数個のツリーのすべてが選択されることを特徴とする付記8から付記10の何れか1項に記載のアドレス指定方法。
【0112】
(付記12)
最低高さHを有する各選択されたツリーについて、
ルートスイッチロケータアドレスが、ツリーのルートに位置するルートスイッチ(「第0層スイッチ」とも称する)に割り当てられ、
ルートスイッチに直接接続された第1層スイッチから開始して、第(i−1)層スイッチに直接接続された第i層スイッチの各々について、ルートスイッチから第i層スイッチまでのすべてのパスが検出され、各パスについて、「ルートスイッチロケータアドレス.第1層スイッチアドレス.・・・.第i層スイッチアドレス」(ここで1≦i≦H−2)の形式で、第i層スイッチロケータアドレスが第i層スイッチに割り当てられ、
「エッジスイッチロケータアドレス.ホストアドレス」(ここで、エッジスイッチはホストに直接接続された第k層スイッチであり、0≦k≦H−2)の形式で、ホストロケータアドレスが各ホストに割り当てられる
ことを特徴とする付記8から付記11の何れか1項に記載のアドレス指定方法。
【0113】
(付記13)
前記第i層スイッチアドレスは、第(i−1)層スイッチの各第i層スイッチに接続された個々のポートのポート番号であることを特徴とする付記12に記載のアドレス指定方法。
【0114】
(付記14)
前記ホストアドレスは、エッジスイッチの各ホストに接続された個々のポートのポート番号であることを特徴とする付記12又は付記13に記載のアドレス指定方法。
【0115】
(付記15)
付記1から付記7の何れかに記載のアドレス指定装置と、
各ホストのインターネットプロトコル(IP)アドレスおよびそのホストのすべてのホストロケータアドレス間のマッピングを保持するグローバルロケータアドレステーブルを格納するための記憶装置と
を備えることを特徴とするファブリックマネージャ。
【0116】
(付記16)
アドレス解決プロトコル(ARP)要求を受信すると、宛先ホストのIPアドレスを索引としてグローバルロケータアドレステーブルを検索し、スケジューリングアルゴリズムに基づいて、宛先ホストのIPアドレスに対応する検索された1つ以上のホストロケータアドレスから1つのホストロケータアドレスを選択し、選択された1つのホストロケータアドレスを送信元ホストに返してARPアドレス解決を完了する、スケジューリング手段を
さらに備えることを特徴とする付記15に記載のファブリックマネージャ。
【0117】
(付記17)
前記スケジューリング手段は、グローバルロケータアドレステーブルから宛先ホストのIPアドレスに対応するホストロケータアドレスが検索されなかった場合には、ネットワークブロードキャストを実行して宛先ホストの1つ以上のホストロケータアドレスを取得し、スケジューリングアルゴリズムに基づいて、宛先ホストのIPアドレスに対応する取得された1つ以上のホストロケータアドレスから1つのホストロケータアドレスを選択し、選択された1つのホストロケータアドレスを送信元ホストに返してARPアドレス解決を完了することを特徴とする付記16に記載のファブリックマネージャ。
【0118】
(付記18)
スイッチが隣接スイッチの故障またはリンクの故障を検出した場合、グローバルロケータアドレステーブル内の関連のホストロケータアドレスを無効化する障害処理手段をさらに備え、
前記スケジューリング手段は、宛先ホストのIPアドレスに対応するホストロケータアドレスを選択する際に、前記無効化されたホストロケータアドレスを選択しないことを特徴とする付記16又は付記17に記載のファブリックマネージャ。
【0119】
(付記19)
付記1から付記7の何れかに記載のアドレス指定装置を備えることを特徴とするスイッチ。
【0120】
(付記20)
付記14に記載のアドレス指定方法によってアドレス指定されたスイッチアドレスとホストアドレスが適応される、データルーティング方法であって、
ルートスイッチ/第0層スイッチが、宛先ホストのホストロケータアドレスとして、「ルートスイッチロケータアドレス.第1層スイッチアドレス/ホストアドレス.*」を含むデータパケットを「第1層スイッチアドレス/ホストアドレス」として付番されたポートへ送信するステップと、
第i層スイッチが、宛先ホストのホストロケータアドレスとして、「第i層スイッチロケータアドレス.第(i+1)層スイッチアドレス/ホストアドレス.*」を含むデータパケットを、「(i+1)層スイッチアドレス/ホストアドレス」として付番されたポート(ここで、1≦i≦H−2)へ送信するステップと、
第i層スイッチが、宛先ホストのホストロケータアドレスとして、「ルートスイッチロケータアドレス.*」を含むデータパケットを、「ルートスイッチロケータアドレス」のルートスイッチロケータアドレスを有するルートスイッチをルートとする第(i−1)層スイッチ(ここで、1≦i≦H−2)に接続されたポートに送信するステップと
を備えることを特徴とするデータルーティング方法。
【符号の説明】
【0121】
500:アドレス指定装置
510:ツリー作成手段
520:ツリー選択手段
530:アドレス割り当て手段
600:アドレス指定方法
1400:ファブリックマネージャ
1410:記憶装置
1420:スケジューリング手段
1430:障害処理手段

【特許請求の範囲】
【請求項1】
複数のツリーを取得するために、ネットワークトポロジ発見機能を使用して、各スイッチを順にルートとして、全ホストを含むツリーを作成するツリー作成手段と、
前記ツリー作成手段によって作成された複数のツリーから最低高さを有するツリーを選択するツリー選択手段と、
前記ツリー選択手段によって選択された最低高さを有する各ツリーに関し、ネットワーク内の各スイッチおよび各ホストにアドレスを割り当てるアドレス割り当て手段と
を備えることを特徴とするアドレス指定装置。
【請求項2】
1つのスイッチをルートとして、全ホストを含む複数のツリーが作成された場合、前記ツリー作成手段は、当該スイッチをルートとする複数のツリーのうち最低高さを有するツリーの1つを、作成されたツリーとして選択することを特徴とする請求項1に記載のアドレス指定装置。
【請求項3】
1つのスイッチをルートとして、全ホストを含む複数のツリーが作成された場合、前記ツリー作成手段は、当該複数のツリーのすべてを、作成されたツリーとして記録することを特徴とする請求項1に記載のアドレス指定装置。
【請求項4】
前記複数のツリーのうち最低高さを有するツリーが複数個ある場合、前記ツリー選択手段は、最低高さを有する当該複数個のツリーのすべてを選択することを特徴とする請求項1から請求項3の何れかに記載のアドレス指定装置。
【請求項5】
前記ツリー選択手段によって選択された最低高さHを有する各ツリーについて、前記アドレス割り当て手段は、
ルートスイッチロケータアドレスを、ツリーのルートに位置するルートスイッチ(第0層スイッチ)に割り当て、
前記ルートスイッチに直接接続された第1層スイッチから開始して、第(i−1)層スイッチに直接接続された第i層スイッチの各々について、ルートスイッチから第i層スイッチまでのすべてのパスを検出し、各パスについて、「ルートスイッチロケータアドレス.第1層スイッチアドレス.・・・.第i層スイッチアドレス」(ここで、1≦i≦H−2)の形式で、第i層スイッチロケータアドレスを第i層スイッチに割り当て、
「エッジスイッチロケータアドレス.ホストアドレス」(ここで、エッジスイッチはホストに直接接続された第k層スイッチであり、0≦k≦H−2)の形式で、ホストロケータアドレスを各ホストに割り当てる
ことを特徴とする請求項1から請求項4の何れかに記載のアドレス指定装置。
【請求項6】
前記第i層スイッチアドレスは、第(i−1)層スイッチの各第i層スイッチに接続された個々のポートのポート番号であることを特徴とする請求項5に記載のアドレス指定装置。
【請求項7】
前記ホストアドレスは、エッジスイッチの各ホストに接続された個々のポートのポート番号であることを特徴とする請求項5又は請求項6に記載のアドレス指定装置。
【請求項8】
複数のツリーを取得するために、ネットワークトポロジ発見機能を使用して、各スイッチを順にルートとして、全ホストを含むツリーを作成するステップと、
作成された複数のツリーから最低高さを有するツリーを選択するステップと、
選択された最低高さを有する各ツリーに関し、ネットワーク内の各スイッチおよび各ホストにアドレスを割り当てるステップと
を備えることを特徴とするアドレス指定方法。
【請求項9】
請求項1から請求項7の何れかに記載のアドレス指定装置と、
各ホストのインターネットプロトコル(IP)アドレスおよびそのホストのすべてのホストロケータアドレス間のマッピングを保持するグローバルロケータアドレステーブルを格納するための記憶装置と
を備えることを特徴とするファブリックマネージャ。
【請求項10】
請求項1から請求項7の何れかに記載のアドレス指定装置を備えることを特徴とするスイッチ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−205300(P2012−205300A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−241155(P2011−241155)
【出願日】平成23年11月2日(2011.11.2)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ETHERNET
【出願人】(505418870)エヌイーシー(チャイナ)カンパニー, リミテッド (108)
【氏名又は名称原語表記】NEC(China)Co.,Ltd.
【Fターム(参考)】