JP4469168B2 - ツリートポロジーネットワークのデバイスの高速選択システムおよび方法 - Google Patents

ツリートポロジーネットワークのデバイスの高速選択システムおよび方法 Download PDF

Info

Publication number
JP4469168B2
JP4469168B2 JP2003414287A JP2003414287A JP4469168B2 JP 4469168 B2 JP4469168 B2 JP 4469168B2 JP 2003414287 A JP2003414287 A JP 2003414287A JP 2003414287 A JP2003414287 A JP 2003414287A JP 4469168 B2 JP4469168 B2 JP 4469168B2
Authority
JP
Japan
Prior art keywords
farm
solution
network
cost
devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003414287A
Other languages
English (en)
Other versions
JP2004208297A (ja
Inventor
スコット・アラン・リーネ
シャラド・シンハイ
シャオユン・ツー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2004208297A publication Critical patent/JP2004208297A/ja
Application granted granted Critical
Publication of JP4469168B2 publication Critical patent/JP4469168B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ツリートポロジーネットワークのデバイスの高速選択システムおよび方法に関する。
コンピュータネットワークは、今日、広く普及している。
通常のコンピュータネットワークでは、異なるタイプのさまざまなデバイスが、例えばルータ、スイッチ、およびハブといったスイッチング素子を介して相互接続され、それによって、デバイスが、予め定められた通信モデルに従って互いに通信することを可能にする。
ネットワークを、それらのネットワーク上のアプリケーションによって必要とされるトポロジーに構成できるさまざまな方法が存在する。
最も簡単なネットワークは、適切なスイッチング素子および相互接続媒体(例えば、導電性ケーブル、光ファイバケーブル、無線媒体など)を使用して、さまざまなデバイスを共に結線することを伴う傾向がある。
結線アプローチは、比較的小さい静的なネットワーク構成についてはうまく機能するけれども、うまく拡張しないので、その結果、管理およびアップグレードが困難なネットワークになりがちである。
最近、コンピュータネットワークを構築するためのより柔軟性のあるアプローチが提案された。
デバイスを共に結線することにより、各ネットワークトポロジーを断片的に構築するのではなく、デバイスは、リソースの共通プールに所属するとみなされる。
このリソースの共通プールは、階層的なツリートポロジーに配置される。
ツリー内のデバイスは、決定論的な通信路に沿ってそれら自身の間で通信を行うので、階層的なツリートポロジーが選択される。
これにより、タスクのプロビジョニングおよびアップグレードが簡単になる。
階層的なツリートポロジー内では、デバイスは、スイッチング素子のプールを使用して相互接続される。
スイッチング素子をどのように構成するかに応じて、さまざまな論理ネットワークを、例えば仮想ローカルエリアネットワーク(VLAN)技術を使用して、デバイスおよびスイッチング素子(例えばスイッチ、ルータ、およびハブ)のこの共通プールから構築することができる。
1つの例示的なVLAN技術の議論は、IEEE 802.1Q作業部会から得ることができる(非特許文献1;http://grouper.ieee.org/groups/802/1/、2002年9月)。
このアプローチのもとでは、ツリーのデバイスおよびスイッチング素子(例えばスイッチ、ルータ、およびハブ)の共通プールに十分なリソースが存在すれば、任意の個数の論理ネットワークトポロジーを物理ネットワークから同時に構築することができる。
例えば、ある組織が、2つのデータベースサーバと、5つのアプリケーションサーバと、4つのウェブサーバと、インターネットアクセス用の1つのファイアウォールとを有する3段のアプリケーショントポロジーの作成、またはそのトポロジーへのアップグレードを望んでいるとする。
この仕様および通信モデルから、必要なデバイス(例えば、データベースサーバ、アプリケーションサーバ、ウェブサーバ、およびファイアウォール)は、デバイスの共通プールから選択することができ、ツリーのスイッチング素子を使用して相互接続することができる。
なお、通信モデルは、そのアプリケーションに必要とされる各デバイスの通信ポリシー(予想される帯域幅使用量を含む)を統制する。
したがって、論理ネットワークトポロジーの構築は、ツリー階層に存在する利用可能なデバイスのプールから必要なデバイスを選択して、スイッチング素子を適切に構成して、通信モデルおよび論理仕様によって指定されたようにデバイスを相互接続することの実践になる。
このようなネットワーク(所与の通信モデルに従うような種々のデバイスおよびネットワーク素子を含む)は、本明細書では、「ファーム(farm)」と呼ばれる。
考察を容易にするために、図1は、ネットワーク接続されたデバイスおよびスイッチング素子からなる共通プールを表す例示的なデータセンター100を示している。
さまざまなファームは、この共通プールから構築することができる。
データセンター100は、階層的なツリーのルートレベルにハブ1101(合計4096Mbpsの帯域幅の8つのネットワークポートを収容する)を含む。
ハブ1101は、2つのルータ2000および2001と接続される。
これらのルータの双方は、ツリーのレベル1に配置される8ポート、4096Mbpsのルータである。
ルータ2000は、3つのスイッチ(8002、8001、および8003)ならびに3つの負荷分散装置(20001、20002、および20003)と接続される。
これらのスイッチおよび負荷分散装置のすべては、ツリーのレベル2に配置される。
ルータ2001は、3つのスイッチ(9002、9001、および9003)ならびに2つの負荷分散装置(20004および20005)と接続される。
これらのスイッチおよび負荷分散装置のすべては、ツリーのレベル2に配置される。
スイッチ8002は、12ポート、1024Mbpsのスイッチであり、2つのネットワーク接続型ストレージ(NAS(network attached storage))デバイス24002および24003に接続される。
これらのNASのそれぞれは、2ポート、80MbpsのNASであり、ツリーのレベル3に配置される。
また、スイッチ8002は、4つのLP2000Rアプリケーションサーバ(符号11001,11002、11003、および11004を付され、図1の例では、それぞれ1ポート、100Mbpsである)にも接続される。
これらのLP2000Rアプリケーションサーバのすべては、ツリーのレベル3に配置される。
スイッチ8001は、9ポート、1024Mbpsのスイッチであり、4つのデータベースサーバA500(符号12001、12002、12003、および12004を付され、図1の例では、それぞれ1ポート、100Mbpsのサーバである)に加えて、2つのファイアウォール18002および19002にも接続される。
これらのファイアウォールのそれぞれは、2ポート、100Mbpsのファイアウォールである。
スイッチ8003は、6ポート、1024Mbpsのスイッチであり、4つのN4000アプリケーションサーバ(符号31001、31002、31003、および31004を付され、それぞれ1ポート、100Mbpsのサーバである)に接続される。
スイッチ9001は、8ポート、1024Mbpsのスイッチであり、4つのLP2000R(1ポート、100Mbps)アプリケーションサーバ11005、11006、11007、および11008に加えて、1つのファイアウォール18003(2ポート、100Mbps)にも接続される。
これらのLP2000Rアプリケーションサーバおよびファイアウォールのすべては、ツリーのレベル3に配置される。
スイッチ9002は、8ポート、1024Mbpsのスイッチであり、1つのファイアウォール18004(2ポート、100Mbps)ならびに5つのLP2000R(1ポート、100Mbps)アプリケーションサーバ11010、11011、11012、11013、および11014に接続される。
これらのファイアウォールおよびLP2000Rアプリケーションサーバのすべては、ツリーのレベル3に配置される。
スイッチ9003は、11ポート、1024Mbpsのスイッチであり、2つのファイアウォール18005および18006(2ポート、100Mbps)ならびに2つのLP2000R(1ポート、100Mbps)アプリケーションサーバ11014および11015に接続される。
また、スイッチ9003は、4つのデータベースサーバA500(それぞれ1ポート、100Mbpsであり、図1の例では、符号12005、12006、12007、および12008を付されている)にも接続される。
これらのデータベースサーバのすべては、ツリーのレベル3に配置される。
図1のデータセンター100中で指定される物理ネットワークから、2つのA500データベースサーバと、5個のLP2000Rアプリケーションサーバと、インターネットアクセス用の1つのファイアウォールとを有する3段アーキテクチャを指定するファームを構築したいものと仮定する。
さらに、LP2000Rアプリケーションサーバ同士は互いに通信せず、また、A500データベースサーバ同士も、それら自身の間で通信しないものとする。
このファームの論理仕様を図2Aに示す。
データセンター100のすべてのデバイスが、使用のために利用可能であると仮定すると、データセンター100には、ファームを構築するのに十分過ぎるほどのリソースが存在する。
効率性が関係しない場合には、データセンター100の利用可能なデバイスからデバイス(例えば、データベースサーバ、LP2000Rアプリケーションサーバ、およびファイアウォール)をランダムに選択して、必要とされるファームを構築するためにその可能な通信路に沿って配置されるスイッチング素子を適切に構成することによって、ファームを構築することができる。
しかしながら、このようなランダムなアプローチは、データセンター100の帯域幅使用量を最適化せず、データが、必要以上に多くのホップ数を巡回しなければならないことになり得る。
例えば、ファイアウォールとLP2000Rアプリケーションサーバとの間の通信を考察する。
ファイアウォール18002およびLP2000Rアプリケーションサーバ11001が選択されると、ファイアウォール18002とLP2000Rアプリケーションサーバ11001との間の通信は、4ホップ(スイッチ8001、ルータ2000、およびスイッチ8002を介する)しか必要としない。
他方、ファイアウォール18002およびLP2000Rアプリケーションサーバ11005が選択されると、ファイアウォール18002とLP2000Rアプリケーションサーバ11005との間の通信は、全部で6ホップ(スイッチ8001、ルータ2000、ハブ1101、ルータ2001、およびスイッチ9001を介する)を必要とする。
さらに、トラフィックの輻輳が、スイッチにおいて問題となり得る。
例えば、ルータ2000に接続されたすべてのデバイスが、それらのすべてのトラフィック(4632Mbps)を、当該ルータを通じて送信すると、ルータ2000は、4096Mbpsしか利用可能でないので輻輳を引き起こし、トラフィックはルータで低下することになる。
ランダムなアプローチは、構成デバイスを選択する際に、帯域幅効率性およびネットワークの輻輳を考慮しない。
先着順方式(FCFS(first-come-first-served))として知られている別のアプローチは、ツリーを所与の方向に巡回して、すべてのリソースの要件が満たされるまで、進路に沿ったリソースの可能な限り多くを収集するように指令する。
このアプローチのもとでは、例えば、ルータ2000、その子ノードおよびその孫ノードを巡回し、その後、ルータ2001、その子ノードおよびその孫ノードを巡回する(もし必要なリソースがすべて得られたならば、途中で停止する)際に遭遇したリソースを使用して、上記ファームを構築することができる。
この例では、最初に遭遇するファイアウォールはファイアウォール18002であり、最初に遭遇する2つのデータベースサーバはA500データベースサーバ12001および12002であり、最初に遭遇する5つのLP2000Rアプリケーションサーバは、LP2000Rサーバ11001、11002、11003、11004、および11005である。
ランダムなアプローチと同様に、帯域幅の効率性に関して、ファームに必要とされる構成デバイスの選択にほとんどインテリジェンスがない。
したがって、デバイス選択に先着順パラダイムを使用して構築されるファームも、結果として、帯域幅が非効率的になり、性能が劣化する。
別の極端なものとして、徹底したアルゴリズムがあり、これは、最適な集合を選択するために、あらゆる可能なデバイスの置換を探索するものである。
残念なことに、このアルゴリズムは、許容できない時間量を要することがあり、適度なサイズの問題であっても、実行不可能となる。
http://grouper.ieee.org/groups/802/1/ 2002年9月
上記内容を考慮すると、ツリー階層の利用可能なデバイスのプールから、ファームに必要な構成デバイスを選択し、その結果、ファームが他のアプローチを使用して達成可能なものより効率的に帯域幅を使用することになる改良された方法および装置が望まれる。
本発明は、一実施の形態において、ツリートポロジーネットワークからネットワークファームを作成する方法に関する。
この方法は、ファームの論理仕様であって、ファームによって必要とされるデバイスタイプの少なくとも1つと、そのデバイスタイプのそれぞれのデバイスの個数とを指定する論理仕様、を受け取ることを含む。
この方法は、ファームの通信モデルであって、ファームのデバイスの予想される帯域幅使用量を指定する通信モデル、を受け取ることをさらに含む。
その上、この方法は、論理仕様および通信モデルに応じて、ファームを構築するために、ツリートポロジーネットワークのデバイスの中でデバイスの解集合を確認することを含む。
この確認することは、ツリートポロジーネットワークのスイッチング素子に対して、分割貪欲型再帰処理を実行することを含む。
分割貪欲型再帰処理は、ツリートポロジーネットワークの最上位レベルから開始して、ツリートポロジーネットワークの最下位のスイッチング素子レベルに向かって再帰処理を行って、ツリートポロジーネットワークの各スイッチング素子レベルにおける最小コストの解を再帰的に確認することを含む。
ファームのリソースの要件を完全に満足し、かつ、ツリートポロジーネットワークが分割貪欲型再帰処理によって巡回された後に見つけ出された最小コストの解が、デバイスの解集合とみなされる。
別の実施の形態では、本発明は、ネットワークファームの論理仕様およびそのファームの通信モデルに応じて、ファームを構築するために、ツリートポロジーネットワークのデバイスの中でデバイスの解集合を確認するコンピュータ実施される方法に関する。
この方法は、ツリートポロジーネットワークに対してスイッチ単純化を実行することを含む。
このスイッチ単純化は、各ラックスイッチから各デバイスタイプの個数を確認することを含む。
各ラックスイッチは、ツリートポロジーネットワークの最下位のスイッチング素子レベルのスイッチを表す。
また、このコンピュータ実施される方法は、ツリートポロジーネットワークのスイッチング素子に対して分割貪欲型再帰処理を実行することをも含む。
この分割貪欲型再帰処理は、ツリートポロジーネットワークの最上位レベルから開始して、ツリートポロジーネットワークの各スイッチング素子レベルにおける最小コストの解を再帰的に確認することを含む。
さらに別の実施の形態では、本発明は、当該実施の形態に具現化されたコンピュータ読み取り可能コードを有するプログラム記憶媒体を備えた製品に関する。
このコンピュータ読み取り可能コードは、ネットワークファームの論理仕様およびそのファームの通信モデルに応じて、ファームを構築するために、ツリートポロジーネットワークのデバイスの中でデバイスの解集合を確認するように構成される。
上記のコンピュータ読み取り可能コードは、ツリートポロジーネットワークに対してスイッチ単純化を実行するコンピュータ読み取り可能コードを含む。
このスイッチ単純化は、各ラックスイッチから各デバイスタイプの個数を確認することを含む。
各ラックスイッチは、ツリートポロジーネットワークの最下位のスイッチング素子レベルのスイッチを表す。
ツリートポロジーネットワークのスイッチング素子に対して分割貪欲型再帰処理を実行するコンピュータ読み取り可能コードが含まれる。
この分割貪欲型再帰処理のコンピュータ読み取り可能コードは、ツリートポロジーネットワークの最上位レベルから開始して、ツリートポロジーネットワークの各スイッチング素子レベルにおける最小コストの解を再帰的に確認するコンピュータ読み取り可能コードを含む。
本発明のこれらの特徴および他の特徴は、本発明の詳細な説明において図面と共に、以下においてさらに詳細に説明される。
本発明を、添付図面の図の例によって説明するが、この例は、本発明を限定するものではない。
添付図面において、同じ参照符号は、同様の構成要素を参照する。
ここで、本発明を、添付図面に示すような本発明のいくつかの好ましい実施の形態を参照して詳細に説明する。
以下の説明では、本発明の十分な理解を提供するために、多数の具体的な詳細を述べる。
しかしながら、これらの具体的な詳細のいくつかまたはすべてがなくても本発明を実施できることが、当業者には明らかである。
他の例では、本発明を不必要に分かりにくくすることがないように、周知のプロセスのステップおよび/または構造は、詳細に説明されていない。
一実施の形態では、ツリー階層にネットワーク接続された利用可能なデバイスのプールから、ファームに必要なデバイスを効率的に選択する技法が提供される。
ファームの論理仕様および通信モデルを用いて、貪欲型デバイス選択技法(GDST(greedy device selection technique))が使用され、必要なデバイスが選択される。
貪欲型デバイス選択技法(GDST)により、得られる解は、必要なデバイスのランダムな選択により得られる解、または、先着順方法論を使用してデバイスを選択することにより得られる解よりも十分に効率的である。
効率性は、解のコスト(送信バイトをホップ数倍したもの)およびスイッチの輻輳によって部分的に計測される。
さらに、貪欲型デバイス選択技法(GDST)は、ツリー階層において可能なすべての単一の置換の評価を必要とせずに、満足な解を得ることができることが有利である。
一例として、6個のコンピュータ、3個のストレージデバイス、および1個のファイアウォールの10個のデバイスのみを必要とするファームについて考える。
この例示的なファームの通信モデルは、各コンピュータが、インターネットおよび任意の利用可能なストレージデバイスのみとデータ伝送できるが、それ以外の任意のコンピュータとはデータ伝送できないことを要求する。
このファームは、1つの中央スイッチと、この中央スイッチの下にある10個の他のスイッチとを有し、これら10個の下位のスイッチのそれぞれが10個のデバイスに接続されるツリー階層から構築されなければならないと仮定する。
これら100個のデバイスのそれぞれは、下位のスイッチを介してそのすぐ隣のデバイスと通信することができ、中央スイッチまでホップを追加して上って、再び下ることによりそれ以外の任意のデバイスと通信することができる。
この簡単な例では、100個のデバイスを有する前述のネットワークからファームの10個のデバイスを選択するのに、17兆通りほどの選択が存在し得ると見積もられる。
高速なコンピュータを用いても、すべての置換を探索して完全に最良の解を確認するには、容認できない長い時間を要し、容認できない高い計算電力を必要とすることがある。
貪欲型デバイス選択技法(GDST)は、満足な解を得ることができる一方で、要する時間はずっと少ない。
最悪の場合、上述した例示的なファームウェアに必要なすべてのデバイスの選択に、360万ステップを必要とするが、これは、今日の技術を前提にすると、十分に容認可能な時間および計算制約の範囲内である。
図3は、本発明にかかるアルゴリズムを、ソフトウェアにより実現するコンピュータを示す。
以下に示すアルゴリズムは、図3に示すコンピュータにおいて動作するソフトウェアにより実現される。
本発明の一実施の形態では、貪欲型デバイス選択技法(GDST)は、
1)スイッチ単純化、
2)コスト制限(cost bounding)、および
3)分割貪欲型再帰アルゴリズム(PGRA(partitioned greedy recursion algorithm))
の3つの主なステップを含む。
これらのステップは、図4Aのブロック302、304、および306にそれぞれ示されている。
本発明の別の実施の形態では、貪欲型デバイス選択技法(GDST)は、
1)スイッチ単純化、
2)ニーズベースフィルタリング、
3)コスト制限、および
4)分割貪欲型再帰アルゴリズム(PGRA)
の4つの主なステップを含む。
これらのステップは、図4Bのブロック352、354、356、および358にそれぞれ示されている。
スイッチ単純化には、必要とされる正確なデバイスについて解を求めることから、最下位(ラック(rack))レベルの各スイッチから選択される各デバイスタイプの個数を確認することへと、問題を簡単にすることが含まれる。
この前提により、選択問題は、可能性のある複数のデバイスについて解を求めることを必要とする問題から、より少ない個数のスイッチについて解を求めることを必要とする問題へと軽減される。
ニーズベースフィルタリングは、貪欲型デバイス選択技法(GDST)に対するさらなる改良であり、候補となるスイッチの個数の大幅な削減に役立てることができる。
ニーズベースフィルタリングは、同一出願人による同時係属中の「Need-based Filtering for Rapid Selection of Devices in a Tree Topology Network」という発明の名称の出願に説明されている。
この出願は、本明細書と同日付で出願され、参照により本明細書に援用される。
コスト制限は、初期解を使用して(帯域幅利用率の観点から)初期上限コストを規定することにより、問題を制限することをいう。
初期解は、論理仕様で指定される必要なすべてのデバイスを含み、任意の方法で選択することができる。
例えば、初期解はランダムに選択することができるし、あるいは、先に述べた先着順方法論を使用して選択することができる。
この初期解は初期上限コストを規定する。
GDSTが、ツリー階層を巡回して可能な解を求めると、その後に提案されるあらゆる解は、実行可能な候補の解とみなされるためには、少なくとも初期上限コストと同程度に効率的でなければならない。
一実施の形態では、提案された解が、初期上限コストよりも低いコストを有することが判明すると、その提案された解に関連付けられたコストが現在の上限コストとなり、その後に提案されたあらゆる解は、実行可能な候補の解とみなされるためには、少なくとも現在の上限コストと同程度に効率的でなければならない。
さらなる実施の形態では、GDSTが部分解を求め、当該部分解に関連付けられたコストが現在の上限コストを越える場合には、GDSTは、その部分解を完全に求めることなく、考慮の対象から除去することができる。
このように、GDSTは、可能性のあるあらゆる解を完全に求める必要がないので、計算時間およびメモリの十分な節約を実現することができる。
分割貪欲型再帰アルゴリズム(PGRA)に関して、貪欲型デバイス選択技法(GDST)はツリー階層の最上位から開始し、分割貪欲型再帰アルゴリズム(PGRA)を再帰的に適用して、ツリーの各レベルにおいて良好な適合を見つけ出す。
ツリー全体が巡回された段階で明らかになった解が、選択された解とみなされる。
図4Cは、本発明の一実施の形態による、分割貪欲型再帰アルゴリズム(PGRA)を示している。
なお、図4Cにおいて、(A)には、アルゴリズムが英語表記され、(B)には、(A)のアルゴリズムの日本語訳が示されている。
ツリーの最上位ノードから開始して、所与のノードについて、ファームによって必要とされるデバイスを依然として有するすべての子供を列挙する(参照符号372)。
解集合にまだ存在しない親の各子供について、次のステップを実行するループが形成される(参照符号374)。
要求(demand)が満たされるまで、各リソースの可能限り多くのものを取り出す(参照符号376)。
したがって、貪欲型指定である。
同じデバイスタイプの複数の群が存在すると、最小の通信コストを有するものを最初に取り出す(参照符号378)。
次に、この選択(置換)のコストが求められる(参照符号380)。
子ノードの解が再帰的に求められる(参照符号382)。
この置換に関連付けられた通信コストが、現在の上限コストよりも小さい場合には、その置換をソートされたリストに挿入する(参照符号384)。
子供が残っていない場合には、失敗を返す(参照符号386)。
次に、これまでの最良の解が得られる(参照符号388)。
要求が残っていない場合には、その解が返される(参照符号390)。
その後、ループは次の子供に続けられる(参照符号392)。
本発明の特徴および利点は、以下の図面および説明を参照することにより、より良く理解することができる。
図5〜図10は、本発明の一実施の形態による、独創的な分割貪欲型再帰アルゴリズム(PGRA)の詳細なステップを示している。
図5〜図10のオペレーションは、例を参照することにより最も良く理解することができる。
図2の論理仕様(すなわち、1つのファイアウォールが5つのLP2000Rアプリケーションサーバに接続され、これらのLP2000Rアプリケーションサーバが2つのA500データベースサーバに接続される)を有するファームを図1のツリー階層から構築したいものと仮定する。
本明細書の付録Aは、図5〜図10に論述されるステップを参照して例を説明する。
図5は、一実施の形態における、独創的PGRAの高レベルのフローチャートである。
ブロック402では、論理仕様および通信モデルが入力される。
論理仕様は、段数(この例では3段)、デバイスタイプ、ならびに各段のデバイスの個数およびデバイスのタイプを指定する。
通信モデルは、各デバイスまたはデバイスの各タイプから送受信されるトラフィックの量も指定することができる。
ステップ404では、初期解集合がヌルにされる。
ステップ406では、ツリー階層が、ファームのニーズを満たすのに十分なリソースを有するかどうかを確認する初期判断が行われる。
このステップは、全体として、ファームを作成できるようにツリー階層に十分なリソースが存在することを確実にする。
この時点で、効率性はまだ関係せず、ステップ406は、リソースが十分であることを単にチェックするだけである。
リソースが十分でない場合には、適切な警告が生成され(ステップ408)、PGRA方法は終了する。
他方、ツリー階層に十分なリソースが存在する場合には、本方法はステップ410に進む。
ステップ410では、ルートノードがラックスイッチまたはデバイスであることの簡単な検査が行われる。
ルートノードがラックスイッチまたは簡単なデバイスである場合には、あるデバイスは、そのスイッチを通過することによりファームの他のデバイスと通信できるので、最も効率的な解がすでに見つけ出されていることになる。
図1を参照して、ツリー階層全体が、仮にスイッチ9002(ルートノードになる)およびその下のデバイスしか含んでいなかったとすると、ルートノード/スイッチを有する解がすでに最も効率的であるので、最も効率的な解について解を求める必要はない(ステップ406は、リソース要件を満足する十分なリソースがツリー階層に存在することをすでに示していることに留意されたい)。
もちろん、ルートノードがデバイである場合(ステップ406は、リソース要件を満足する十分なリソースがツリー階層に存在することをすでに示している)場合には、簡単な解が見つけ出されている。
いずれにしても、本方法は、ステップ412に進んでツリーのルートに解を設定し、その解および解のコストを出力する(ステップ414)。
他方、ツリーのルートがラックスイッチでもなくデバイスでもない場合には、本方法はステップ415に進む。
ステップ415では、SUBCOST(部分コスト)の初期値が0に設定され、変数NODE(ノード)が解のツリーのルートに設定される。
ステップ416では、プロセスSOLVE(解を求める)が呼び出されて、PGRAが見つけ出すことができる最も効率的な解を提供する。
プロセスSOLVEは、本明細書の図6およびその後の図面においてさらに探求される。
プロセスSOLVEによって出力された解は、ブロック418で検査されて、その出力された解がヌルの解であるかどうかが確認される。
プロセスSOLVEによって出力された解がヌルである場合、本方法はブロック420に進む。
ブロック420では、適切なメッセージが生成され、かつ/または表示される。
上限が使用される実施では、プロセスSOLVEは、初期解よりも効率的な解を見つけ出さないので、SOLVEによって出力される解はヌルの可能性がある。
この場合、ブロック420によって出力されるメッセージは、初期解がたまたま勝ち残った解であるという事実を反映することができる。
他方、プロセスSOLVEによって出力された解集合が、(ブロック418の判断により)ヌル集合でない場合には、その解集合がブロック414でそのコストと共に出力される。
図6は、本発明の一実施の形態による、プロセスSOLVEに関連するステップを示している。
図5のブロック416において、プロセスSOLVEが呼び出されて、最初にツリー全体がプロセスSOLVEに渡されることを思い出されたい。
ステップ502では、SUBSOLUTION(部分解)およびPOSSIBILITIES(可能性)がヌルに設定される。
ステップ504では、直接接続されたデバイスが探索される。
直接接続されたデバイスとは、本明細書で使用されるように、検討中のノードに直接的に接続されているデバイスである。
図1を参照して、検討中のノードがルータ2000である場合、直接接続されたデバイスは、3つの負荷分散装置20001、20002、および20003となる。
ルータ2000の下のそれ以外のすべてのデバイスは、3つのスイッチ8001、8002、および8003の1つを介してルータ2000に接続され、したがって直接接続されたデバイスとして分類されない。
同様に、検討中のノードがルータ2001である場合、直接接続されたデバイスは、2つの負荷分散装置20004および20005となる。
ルータ2001の下のそれ以外のすべてのデバイスは、3つのスイッチ9001、9002、および9003の1つを介してルータ2001に接続され、したがって、直接接続されたデバイスとして分類されない。
ブロック504(直接接続されたデバイスの探索)の一実施態様は、本明細書の図7を参照してより詳細に説明される。
図7では、ブロック602でノードが調べられて、ノードがさらに子供を有するかどうかが確認される。
ノードが子供を有しない場合には、直接接続されたデバイスの探索を行うプロセスは終了する(ブロック604)。
他方、ノードがさらに子供を有する場合には、ノードの当該子供を通るために一時変数Cが使用される(ブロック606)。
ブロック608では、ノードの子供が調べられて、その子供がデバイスである(例えば、ハブでもなく、スイッチでもなくまたはルータでもない)かどうかが判断される。
ノードの子供がデバイスでない場合(例えば、ノードの子供が、ハブ、スイッチまたはルータである場合)、本方法はブロック602に戻って、ノードの次の子供が存在する場合には、その子供を調べる。
他方、ノードの子供がデバイスである場合には、本方法はブロック610に進み、そのデバイスが、ファームによって必要とされるデバイスであるかどうかを確認する。
そのデバイスが、ファームを構築するのに必要とされるデバイスでない場合には、この場合も本方法はブロック602に戻って、ノードの次の子供が存在する場合には、その子供を調べる。
デバイスが、ファームを構築するのに必要とされるデバイスであることが判明すると、本方法はステップ612に進んで、(ノードの子供である)そのデバイスをSUBSOLUTIONに追加し、ファーム内のこのタイプのデバイスのニーズを1つだけディクリメントする。
その後、本方法はブロック602に戻って、ノードの次の子供が存在する場合にはその子供を調べる。
ノードのすべての子供が調べられると、本方法はブロック602からブロック604に進み、これにより、直接接続されたデバイスを探索するプロセスを終了する。
図6に戻って、ブロック506は、さらにデバイスが必要かどうかを確認する。
デバイスがもはや必要でない場合(例えば、ノードの子供がそのノードの直接接続されたデバイスであり、ファームのすべてのデバイスのニーズを満たしていた場合)には、本方法はブロック520に進み、SUBSOLUTIONに戻る。
デバイスがさらに必要とされる場合(すなわち、ノードの子供がそのノードの直接接続されたデバイスであり、ファームのすべてのデバイスのニーズを満たしていなかった場合)には、本方法はブロック508に進み、プロセスPERMUTE(置換)を使用して置換を見つけ出す。
一般的に言えば、高いレベルでは、プロセスPERMUTEはツリーの特定のノードの下にあるすべてのデバイスを探索し、現在の部分解が与えられると、最良の子供のスイッチを再帰的に見つけ出して、解に追加する。
ツリーのルートがプロセスPERMUTEに渡されると、プロセスPERMUTEによって返される解は、プロセスPERMUTEがツリー階層全体から見つけ出すことができる最良の解を表す。
ツリー階層の中間ノード(例えば、スイッチ、ハブ、またはルータ)がプロセスPERMUTEに渡されると、プロセスPERMUTEは、その特定のノードの下にあって、現在の部分解に追加することができる最良の子供のスイッチを再帰的に返す。
プロセスPERMUTEについては、本明細書の図8との関連で後にさらに詳細に説明する。
図6を参照して、プロセスPERMUTEによって見つけ出された置換が空である場合には(ブロック510)、プロセスはブロック522に進み、失敗を返す。
他方、ブロック508でプロセスPERMUTEによって見つけ出された置換が空でない場合には、本方法はブロック512に進み、その置換が十分なものであるかどうか、すなわち、その置換が部分解に依然として必要とされるすべてのリソースを含むものかどうかを検査する。
十分なものでない場合には、本方法はブロック508に戻り、置換の処理を続けて別の置換を見つけ出す。
他方、ブロック508でプロセスPERMUTEによって見つけ出された置換が十分なものである場合には、本方法は更新された解を返す。
図8は、本発明の一実施の形態による、図6のブロック508の置換(permute)プロセスを示している。
ブロック701において、置換AはSUBSOLUTIONに設定される。
これが最初の置換である場合には、置換Aは、初期値の設定(図6のブロック502)により、ブロック701ではヌルであり、ハブ1101の下の直接接続されたデバイスは存在しない(図6のブロック504)。
ブロック704では、現在のノードがさらに子供を有するかどうかが確認される。
子供を有しない場合には、本方法はブロック750に進む。
ブロック750では、Aは、POSSIBILITIESリストからの最も安価な解となるように設定される。
その後、プロセスはブロック752で終了する。
しかしながら、現在の例では、ノードがハブ1101に等しいので、最初の置換では答えはイエスとなる。
したがって、本方法はブロック706に進み、ブロック706において、一時変数Cがノードの次の子供に設定される。
ブロック708では、一時変数Cによって表されるノードの子供が試行中の解にすでに存在する場合には、その子供は無視され、本方法はブロック702(ブロック704の前の円によって表される)に戻る。
他方、子ノードが試行中の解にまだ存在しない場合には、本方法はブロック710のプロセスPICK(選択)に進む。
ブロック710では、一時変数Cによって表されるノードの子供は、その下のリソースを使用して、ファームのニーズを貪欲に、すなわちできるだけ多く満たすように試みる。
プロセスPICKは、本明細書の図9を参照して詳細に説明される。
ブロック712では、プロセスPICKの結果が空であるかどうかが確認される。
プロセスPICKの結果が空である場合には、本方法はブロック702に戻り、ブロック704において、現在のノードがさらに子供を有するかどうかを確認する。
他方、プロセスPICKによって返された結果が空でない場合には、本方法はブロック714に進み、ブロック714において、ノードの子供(この子供は現在、一時変数Cで表される)がルータであるかどうかが確認される。
ノードの子供がルータである場合には、本方法はブロック716に進み、プロセスSOLVEを再帰的に呼び出す。
SOLVEプロセスの呼び出しの結果は、ブロック718で検査される。
この結果が空である場合には、本方法はブロック702に戻る。
他方、プロセスSOLVEの再帰的呼び出しの結果が空でない場合には、本方法はブロック720に進み、ブロック720においてBのコストが計算される。
ブロック722では、部分コストの現在の値とBの新しいコスト(ブロック720からの計算されたコスト)との総和が現在の上限値よりも小さいかどうかが確認される。
この総和が、現在の上限値よりも小さくない場合には、この子供をさらに続ける必要はないので、本方法はブロック702に戻る。
他方、部分コストの現在の値とBの新しいコストとの総和が、現在の上限値よりも小さい場合には、部分解が、それらコストと共に可能性(possibilities)のリストに追加される(ブロック724)。
他方、ブロック714において、ノードの子供(この子供は現在、変数Cによって表されている)がルータでないことが確認されると、本方法はブロック730に進む。
ブロック730では、Bは、プロセスPICKの結果と等しくなるように設定され、その新しいコストが計算される。
このように、図1および図2の本実施例を通じて、ルータ2000は、1つのファイアウォール、4つのLP2000Rアプリケーションサーバおよび2つのA500サーバを貪欲に提供することができる。
LP2000Rアプリケーションサーバの1つが、まだ不足している状態である。
ルータ2001は、必要とされるすべてのデバイス(すなわち、1つのファイアウォール、5つのLP2000Rアプリケーションサーバおよび2つのA500サーバ)を貪欲に提供することができる。
ブロック724では、これらの解のコストも計算されて、可能性リストに追加される。
ハブ1101にそれ以外の子供は存在しないので、Aは、可能性リストからの最も安価な置換に設定され(ブロック750)、その置換がルータ2001であると判明する。
その後、PERMUTEプロセスは終了し、本方法は図6に戻る。
図6では、Aによって表される解が検査されて、解が空であるかどうかが調べられる(ブロック510)。
図6の残りの部分はすでに説明したので、ここでは繰り返さない。
図9は、本発明の一実施の形態による、図8のブロック710のプロセスPICKを示している。
プロセスPICKでは、所与のデバイスタイプのクラスタの可能な限り大きなものを使用して、ファームのニーズを貪欲に満たし、そのデバイスクラスタ内外へのトラフィックを最小にすることが目的である。
同じタイプおよび同じ通信パターンを有するデバイスの群は、本明細書では「クラスタ」と呼ばれる。
例えば、図2では、ファームは、ファイアウォール、LP200RおよびA500をそれぞれ含む3つのクラスタから構成される。
デバイスのクラスタは通常、他のクラスタとデータ伝送するが、クラスタ内のデバイスは一般に、それら自身の間で通信しない。
したがって、その作用は、最良な解が単一のノードからすべてのリソースを引き出すか、あるいはそれが不可能な場合には、可能な限り最小数のノードからリソースを引き出すものと仮定することにより、問題を局所化することである。
このように、すべての置換を徹底的に試すことが不要になり、かつすべての置換を別のものと比較することが不要になる。
ブロック802では、PICKの結果が初期値としてヌルに設定される。
次に、プロセスは各リソースタイプ(例えば、A500サーバ、LP2000Rサーバ、ファイアウォールなど)を通過し、ノードの下の利用可能なリソースを使用して、特定のリソースタイプに関連したすべての要件をできるだけ貪欲に満たすように試みる。
ブロック804では、より多くのリソースタイプが必要とされるかどうかが、ファームの要求から確認される。
より多くのリソースタイプが必要とされる場合には、本方法はブロック806に進み、ブロック806において、一時変数Xが次の必要なリソースタイプに設定される。
ブロック808では、ノードが、ファームによって必要とされる所与のリソースタイプXを当該ノードの下のどこかに有するかどうかが確認される。
有しない場合には、本方法はブロック804に戻り、ブロック804において別のリソースタイプが検査される。
他方、ブロック808において、ノードが、必要とされるリソースタイプXを有すると確認された場合には、本方法はブロック810に進み、ブロック810において、最大の要求を有するリソースタイプXの満たされていないクラスタが見つけ出される。
この発見的方法は、満たされていない要求の最大部分を最初に満たすことにより、最適な適合に近づく。
ブロック812では、クラスタ要求が、利用可能な残りのものよりも大きいかどうかが確認される。
大きくない場合には、クラスタの要求はPICKに追加され、利用可能なものから差し引かれる(ブロック814)。
その後、プロセスはブロック810に戻り、ブロック810において、最大の要求を有する、満たされていない残りのタイプXのクラスタが見つけ出される。
他方、ブロック812において、クラスタ要求が利用可能な残りのものよりも大きくないと確認された場合には、本方法はブロック816に進み、ブロック816において、利用可能なリソースがPICKに追加される。
その後、本方法はブロック804に戻る。
図10は、本発明の一実施の形態による、例えば図8のブロック720またはブロック730のプロセスCOST(コスト)を示している。
一般的に言えば、高いレベルにおいて、プロセスCOSTは、特定のノードの下で選択されたデバイスと、そのノード以外の要求される残りのデバイスとの間の通信コスト(すなわち、外部コスト)を求めることにより、その特定のノードの通信コストを求める。
プロセスCOSTは、図8のプロセスPERMUTEと協調的に機能し、その結果、外部コストは、そのノードの下で選択されたデバイスの内部の通信コストに追加されて、特定のノードに関連付けられた総通信コストになる(図8のブロック720、722および724参照)。
したがって、コスト計算は局所化され、階層的であり、また特定のノードの下のデバイスについて計算されたどんなコストも、現在の置換の現在のノードについて計算されたコストに追加されるという意味で累積的でもある。
さらに、各レベルにおいて、最小のコストの解のみが上に渡される。
ブロック902では、ローカル変数Cost(コスト)が0に初期化される。
ブロック904では、現在のノードがスイッチングデバイス(例えば、スイッチ、ハブ、またはルータ)であるかどうかが確認される。
スイッチングデバイスでない場合には、下で選択されたデバイスからそのノードを通じた外部のデバイスへの通信は行われない(現在の置換の選択されたデバイスの集合よりも小さいファームの要求として定義される)。
その場合、プロセスは、ブロック930でその呼び出し側プロセスに戻る。
他方、現在のノードがスイッチングデバイスである場合には、現在のノードの下で選択されたデバイスの集合内のクラスタが1つずつ処理される。
したがって、ブロック906では、集合OUTSIDEが確認される。
デバイスが、ファームの要求ごとに必要とされるものの、現在のノードの下で選択されたデバイスによって満足されない場合には、それらデバイスは、OUTSIDE集合に存在するとみなされる。
ブロック908では、未処理の任意のクラスタが存在するかどうかどうかが確認される。
存在しない場合には、プロセスは、ブロック930でその呼び出し側プロセスに戻る。
未処理のクラスタがまだ存在する場合には、本方法はブロック910に進み、ブロック910において、選択されたデバイスの現在の集合内の次の未処理のクラスタを表すために変数Xが使用される。
ブロック912では、集合OUTSIDE内にさらにクラスタが存在するかどうかが確認される。
クラスタが存在しない場合には、本方法はブロック902からブロック908に進み、現在のノードの下で選択されたデバイスの集合内の次のクラスタを処理する。
集合OUTSIDE内にクラスタがさらに存在する場合には(ブロック912によって確認されたものとして)、本方法はブロック914に進み、ブロック914において、変数Yが、OUTSIDE集合からの次のクラスタを表すために使用される。
ブロック916では、ブロック910で確認されたクラスタXが、ブロック914で確認されたクラスタYと通信するかどうかが確認される。
これらの2つのクラスタが通信しない場合には、本方法はブロック912に戻り、OUTSIDE集合からの次のクラスタを処理する。
他方、内部クラスタXが、OUTSIDEクラスタYと通信する場合には(ブロック916によって確認されたものとして)、本方法はブロック916からブロック918に進み、ブロック918において、クラスタXとクラスタYとの間の通信のコストが通信コストに追加される。
この時点では、プロセスは、有利なことに、現在のノードの下のクラスタに対するOUTSIDEクラスタの正確な位置を必要としないことに留意されたい。
OUTSIDEクラスタが現在のノードの外部にあり、かつ内部クラスタと通信する現在のノードを巡回する必要がある限り、コストを計算することができる。
この特徴は、有利なことに、この階層的で再帰的な技法の計算コストを削減する。
ブロック918の後、本方法はブロック912に戻って、OUTSIDE集合からの次のクラスタを処理する。
図4A、図4B、図4C、図5、図6、図7、図8、図9および図10のフローチャートのオペレーションは、実際の実施例を参照することによってより良く理解することができる。
本明細書の付録Aは、例示的な図2に指定されたファームが、本明細書の図面で説明された技法を使用して、図1の階層的ツリー構造からどのようにして作成できるのかを説明する。
読者は、本明細書の図面を参考に使用して、付録Aの実施例のステップをトレースするように案内される。
ただし、簡潔にするために、実施例のこのようなステップごとのトレースは、本出願では長々とは続けられない。
前記の内容から理解できるように、本発明は、ツリー階層からファームを構築するために選択されるデバイスの効率的な集合を見つけ出すのに必要な計算量および時間量を大幅に削減する。
初期上限コストによって最初に解に制限を設け、そのコストがその初期上限コストを越えるあらゆる解を却下することによって、可能なすべての置換の半分は統計的に削除される。
さらに、同じ実施の形態または異なる実施の形態のいずれかにおいて、より効率的な候補の解が見つけ出されるにつれて、上限は絶えず修正される。
さらに、同じ実施の形態または異なる実施の形態において、現在の上限コストよりも大きなコストを有する部分解は、その解の完了を要することなく廃棄される。
コスト計算が行われる場合には、そのコスト計算はノードにおいて局所的に行われ、そのノードの下のデバイスについてすでに計算された任意の内部コストが利用されると共に、そのノードの外部の残りのデバイスの正確な位置は配慮されない。
さらに、スイッチに対する問題の単純化(すなわち、上述したようなスイッチ単純化)は、解決すべき問題の個数を簡単にする。
また、ツリー内に深く進むことによってノードの解が再帰的に求められ、そのノードに関して提案された解を現在の最良の候補として受け入れるか、または、提案された解を拒否する再帰的なアプローチの使用により、本方法は、ツリー階層を効率的に通過することが可能になる。
[付録実施例]
[先着順(FCFS)]
図2を参照して、先着順のコストは、約1,440Mbpsホップである。
このコストは、ファイアウォール(100Mbps)、各アプリケーションサーバLP2000R(それぞれ100Mbps)、および各データベースサーバA500(それぞれ100Mbps)のトラフィック容量に基づいて計算される。
図1のツリー階層を左から右に進むと、デバイスは次のように満たされる。
下表A1に、FCFSを使用して選択されたデバイスを表形式で示す。
Figure 0004469168
総トラフィック負荷は2640Mbpsホップであり、次のように計算される。
ステップ1:ファイアウォールからLP2000Rサーバへ:
4ホップ(4/5)*100Mbps+6ホップ(1/5)*100Mbps=440Mbpsホップ
ステップ2:A500サーバからLP2000Rサーバへ:
4ホップ(4/5)*200Mbps+6ホップ(1/5)*200Mbps=880Mbpsホップ
LP2000Rサーバは、サブネットあたり最大500Mbpsまで生み出すことができるが、リンク最大容量が制約であると考えられる。
したがって、各VLANについて、出力データ量は入力データ量とほぼ同じであると考えられ、総トラフィック負荷は、2*(440Mbpsホップ+880Mbpsホップ)、つまり2640Mbpsホップである。
しかしながら、すべてのメッセージの最初のホップおよび最後のホップは回避不可能であり、すべての解に現れるので、無視することができる。
さらに、これらのホップは、ネットワークトラフィックにおいてスイッチを共有しない。
したがって、修正されたコストは次のように計算される。
修正ステップ1:ファイアウォールからLP2000Rサーバへ:
2ホップ(4/5)*100Mbps+4ホップ(1/5)*100Mbps=240Mbpsホップ
修正ステップ2:A500サーバからLP2000Rサーバへ:
2ホップ(4/5)*200Mbps+4ホップ(1/5)*200Mbps=480Mbpsホップ
各VLANについて、出力データ量は入力データ量とほぼ同じと考えられる。
したがって、修正された総トラフィック負荷は、2*(240Mbpsホップ+480Mbpsホップ)、すなわち1440Mbpsホップである。
[分割貪欲型再帰アルゴリズム(PGRA)]
図2に関連付けられた論理仕様および通信モデルを使用すると、PGRAは、図1のツリー階層を用いて表A2に示すようなファームを構築する。
下表A2は、PGRAを使用して選択されたデバイスを表形式で示す。
Figure 0004469168
総トラフィック負荷は800Mbpsホップであり、次のように計算される。
ステップ1:ファイアウォールからLP2000Rサーバへ:
それらのデバイスは、スイッチ9002を介して通信できるので、コストはかからない。
ステップ2:A500サーバからLP2000Rサーバへ:
2ホップ*200Mbps=400Mbpsホップ
各VLANについて、出力データ量は入力データ量とほぼ同じと考えられるので、修正された総トラフィック負荷は、2*(400Mbpsホップ)、すなわち800Mbpsホップである。
これは、FCFSを介して達成されるものよりはるかに効率的である。
PGRAの解に到達するために取られるステップは、以下の表B1〜B4に示す通りである。
初期上限を、FCFSによって与えられる1440Mbpsホップと仮定する。
この例では、ハブ1101の下に直接接続されたデバイスは存在しない。
ハブ1101から開始して、双方のルータの子供を調べる。
各子供は、どれだけの要求を受け付けるかを問われ、各子供はできるだけ貪欲に応答する。
Figure 0004469168
Figure 0004469168
Figure 0004469168
Figure 0004469168
以下に表B1の翻訳文を示す。
ルータ2000は、リソース別に、以下のものを取り扱うことができることを伝える。
1つのファイアウォール
4つのLP2000Rアプリケーションサーバ(1つは残されている)
2つのA500サーバ
子供について解を求める。
スイッチ8002は、4つのLP2000Rアプリケーションサーバを保持することを伝える。
再帰なし
Costは、ファイアウォールへ出力される80Mbps
ファイアウォールから入力される80Mbps
A500サーバへ出力される160Mbps
A500サーバから入力される160Mbps=480Mbps
保存する。
スイッチ8001は、1つのファイアウォールおよび2つのA500サーバを保持することを伝える。
再帰なし。
Costは、LP2000Rアプリケーションサーバへ出力される100Mbps(ファイアウォール)
LP2000Rアプリケーションサーバから入力される100Mbps(ファイアウォール)
LP2000Rアプリケーションサーバへ出力される200Mbps(A500サーバ)
LP2000Rアプリケーションサーバから入力される200Mbps(A500サーバ)
=600Mbps
保存する。
探索する。
スイッチ8002が最も安価であるので、スイッチ8002を最初に選択し、次に、残りのものを調べる。
スイッチ8001は、残りのすべてのものを保持すると伝える。
選択されたすべての子供の合計は、1080Mbpsである。
ルータ2000のみのCostは、
ファイアウォールからLP2000Rアプリケーションサーバへ20Mbps
LP2000Rアプリケーションサーバに戻される20Mbps
A500サーバからの40Mbps
A500サーバに戻される40Mbps=120Mbps
部分解の総コストは1200Mbpsであり、依然として1つのLP2000Rアプリケーションサーバを必要とする。
保存する。
以下に表B2の翻訳文を示す。
ルータ2001は、すべてのものを保持することを伝える。
子供について解を求める。
スイッチ9001は、1つのファイアウォールおよび4つのLP2000Rアプリケーションサーバを保持することを伝える。
再帰なし。
Costは、最後のLP2000Rアプリケーションサーバに入力される20Mbpsおよび出力される20Mbps、ならびに、A500サーバに入力される160Mbpsおよび出力される160Mbps=360Mbpsである。
保存する。
スイッチ9002は、1つのファイアウォールおよび5つのLP2000Rアプリケーションサーバを保持することを伝える。
再帰なし。
Costは、A500サーバに入力される200Mbpsおよび出力される200Mbps=400Mbpsである。
保存する。
スイッチ9003は、1つのファイアウォールおよび2つのA500サーバを保持することを伝える。
Costは、100Mbps+100Mbps+200Mbps+200Mbps=600Mbpsである。
保存する。
探索する。
以下に、表B3の翻訳文を示す。
スイッチ9001が、これまでのところ最小のコストであるので、スイッチ9001を最初に試みる。
すべての子供について
すでに解に存在するスイッチ9001を飛ばす。
スイッチ9002により拡大して、1つのLP2000Rアプリケーションサーバを取り出す。
コスト20Mbps+20Mbps+40Mbps+40Mbps=120Mbpsを追加する。
総コスト=360Mbpsベース+120Mbps=480Mbps
可能性(スイッチ9001、スイッチ9002)を保存する。
スイッチ9003により拡大して、2つのA500サーバを取り出す。
追加コスト=200Mbps+200Mbps=400Mbps
総コスト=360Mbpsベース+400Mbps=760Mbps
可能性(スイッチ9001、スイッチ9002)を保存する。
探索する。
現在、スイッチ9002が次に最小のコスト400Mbpsを有するので、スイッチ9002を試みる。
すべての子供について
提供すべきものがないスイッチ9001を飛ばす。
すでに解に存在するスイッチ9002を飛ばす。
スイッチ9003により拡大して、2つのA500サーバを取り出す。
追加コスト=200Mbps+200Mbps=400Mbps
総コスト=400Mbpsベース+400Mbps=800Mbps
[解がここで完了することに留意されたい。]
可能性(スイッチ9002、スイッチ9003)を保存する。
探索する。
以下に、表B4の翻訳文を示す。
480Mbpsのコストで可能性(スイッチ9001、9002)を試みる。
すべての子供について
解にすでに存在するスイッチ9001を飛ばす。
解にすでに存在するスイッチ9002を飛ばす。
スイッチ9003により拡大して、2つのA500サーバを取り出す。
追加コスト=200Mbps+200Mbps=400Mbps
総コスト=480Mbpsベース+400Mbps=880Mbps
[解がここで完了することに留意されたい。]
可能性(スイッチ9001、スイッチ9002、スイッチ9003)を保存する。
探索する
800Mbpsのコストで可能性(スイッチ9002、スイッチ9003)を試みる。
SOLUTION(解)を返す。
すべてのトラフィックは内部のものであるので、ルータ2001の追加トラフィック=0Mbpsを計算する。
解の総コスト=800Mbps
ルータ2001の解を保存する。
探索する。
ルータ2001は最小のコストを有する。
SOLUTION(解)を返す。
本発明を、いくつかの好ましい実施の形態の観点から説明してきたが、本発明の範囲内に入る変更形態、置換形態および均等物が存在する。
また、本発明の方法および装置を実施する多くの代替的な方法が存在することにも留意すべきである。
したがって、添付の特許請求の範囲は、本発明の真の精神および範囲内に入るようなすべての変更形態、置換形態および均等物を含むものとして解釈されることが意図される。
本発明は、ツリートポロジーネットワークのデバイスの高速選択のために利用することができる。
ネットワーク接続されたデバイスおよびスイッチング素子からなり、それによりさまざまなファームを構築できる共通プールを表す例示的なデータセンターを示す。 例示的なファームの論理仕様を示す。 本発明にかかるアルゴリズムを、ソフトウェアにより実現するコンピュータを示す。 本発明の一実施の形態による貪欲型デバイス選択技法(GDST)の主なステップを示す。 本発明の別の実施の形態による貪欲型デバイス選択技法(GDST)の主なステップを示す。 本発明の一実施の形態による、分割貪欲型再帰アルゴリズム(PGRA)の主なステップを示す。 独創的な分割貪欲型再帰アルゴリズムの一実施の形態の高レベルのフローチャートを示す。 本発明の一実施の形態による、図5および図8のプロセスSOLVEに関連付けられた主なステップを示す。 本発明の一実施の形態による、直接接続されたデバイスを探索する主なステップを示す。 本発明の一実施の形態による、図6のPERMUTEプロセスの主なステップを示す。 本発明の一実施の形態による、図6のPERMUTEプロセスの主なステップを示す。 本発明の一実施の形態による、図8のプロセスPICKの主なステップを示す。 本発明の一実施の形態による、図8のプロセスCOSTの主なステップを示す。
符号の説明
100・・・データセンター

Claims (7)

  1. ツリートポロジーネットワークにおいて生成されたデバイスの解集合を用いてネットワークファームを作成する方法であって、
    前記ファームの論理仕様であって、前記ファームによって必要とされるデバイスタイプの少なくとも1つと、前記デバイスタイプのそれぞれのデバイスの個数とを指定する論理仕様を受け取る(402)ことと、
    前記ファームの通信モデルであって、前記ファームのデバイスの予想される帯域幅使用量を指定する通信モデルを受け取る(402)ことと、
    前記論理仕様および前記通信モデルに応じて、前記ファームを構築するために前記ツリートポロジーネットワークのデバイスの中でデバイスの解集合を生成すること
    を含み、
    前記デバイスの解集合を生成することは、
    前記ツリートポロジーネットワークのスイッチング素子に対して、分割貪欲型再帰処理を実行(306)して、前記ツリートポロジーネットワークの最上位レベルから開始して、前記ツリートポロジーネットワークの最下位のスイッチング素子レベルに向かって再帰処理を行って、前記ツリートポロジーネットワークの各スイッチング素子レベルにおける最小コストの解を、前記通信モデルを用いて再帰的に確認することと、
    前記ツリートポロジーネットワークが前記分割貪欲型再帰処理によって巡回された後に見つけ出された前記論理仕様を完全に満足する最小コストの解を、前記デバイスの解集合として選択することと
    を含む
    ネットワークファームを作成する方法。
  2. 前記分割貪欲型再帰処理を実行することの前に、前記ツリートポロジーネットワークに対してスイッチ単純化を実行する(302)こと
    をさらに含む請求項1に記載のネットワークファームを作成する方法。
  3. 初期解から初期上限コストを設定する(304)こと
    をさらに含み、
    該初期上限コストは、前記初期解のデバイスが使用されて、前記論理仕様および前記通信モデルに従って前記ファームを構築するときの前記初期解の前記デバイスごとの帯域幅使用量に関係し、
    前記再帰的に確認することを行っている間に得られるあらゆる可能性のある解は、該可能性のある解に関連付けられた通信コストが前記初期上限コストを越える場合には、さらに検討することから除外される
    請求項1に記載のネットワークファームを作成する方法。
  4. 前記再帰的に確認することは、
    前記ツリートポロジーネットワークの特定のスイッチング素子において再帰処理を行っている間に、前記特定のスイッチング素子の下にあるリソースを使用して、前記ファームによって必要とされるリソースのできるだけ多くのものを貪欲に満たす(376)こと
    を含む請求項1に記載のネットワークファームを作成する方法。
  5. 前記特定のスイッチング素子の下にある前記リソースは、
    前記特定のスイッチング素子に直接的に接続される直接接続されたデバイス(504)と、
    前記特定のスイッチング素子の子供のスイッチング素子の下にあるリソースと
    を含む
    請求項4に記載のネットワークファームを作成する方法。
  6. 前記再帰的に確認することは、
    前記特定のスイッチング素子の下に同じデバイスタイプの複数の群が存在する場合に、最小の通信コストを有する群を選択する(378)ことであって、それによって、前記ファームによって必要とされる前記リソースを貪欲に満たす、最小の通信コストを有する群を選択すること
    をさらに含む
    請求項4に記載のネットワークファームを作成する方法。
  7. 前記分割貪欲型再帰処理の実行中に得られる可能性のある解は、ソートされたリストに保持され、
    該ソートされたリストの前記可能性のある解のうち、他の可能性のある解に対して最小の通信コスト(388)を有する可能性のある解は、前記ツリートポロジーネットワークが巡回された後の前記デバイスの解集合として選択される
    請求項4に記載のネットワークファームを作成する方法。
JP2003414287A 2002-12-20 2003-12-12 ツリートポロジーネットワークのデバイスの高速選択システムおよび方法 Expired - Lifetime JP4469168B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/327,356 US7310343B2 (en) 2002-12-20 2002-12-20 Systems and methods for rapid selection of devices in a tree topology network

Publications (2)

Publication Number Publication Date
JP2004208297A JP2004208297A (ja) 2004-07-22
JP4469168B2 true JP4469168B2 (ja) 2010-05-26

Family

ID=29780456

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003414287A Expired - Lifetime JP4469168B2 (ja) 2002-12-20 2003-12-12 ツリートポロジーネットワークのデバイスの高速選択システムおよび方法

Country Status (4)

Country Link
US (1) US7310343B2 (ja)
JP (1) JP4469168B2 (ja)
DE (1) DE10342310A1 (ja)
GB (1) GB2396991B (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313101B2 (en) * 2002-12-20 2007-12-25 Hewlett-Packard Development Company, L.P. Need-based filtering for rapid selection of devices in a tree topology network
US7861247B1 (en) 2004-03-24 2010-12-28 Hewlett-Packard Development Company, L.P. Assigning resources to an application component by taking into account an objective function with hard and soft constraints
US7865582B2 (en) * 2004-03-24 2011-01-04 Hewlett-Packard Development Company, L.P. System and method for assigning an application component to a computing resource
US20050240874A1 (en) * 2004-04-22 2005-10-27 Alcatel Bookmarks used for map navigation
US8281360B2 (en) * 2006-11-21 2012-10-02 Steven Adams Flewallen Control of communication ports of computing devices using policy-based decisions
CA2674613C (en) * 2007-01-24 2016-05-31 American Power Conversion Corporation System and method for evaluating equipment rack cooling performance
US20090138313A1 (en) * 2007-05-15 2009-05-28 American Power Conversion Corporation Methods and systems for managing facility power and cooling
KR101210273B1 (ko) * 2008-12-18 2012-12-10 한국전자통신연구원 온칩 네트워크 토폴로지 합성 방법
US9110860B2 (en) * 2009-11-11 2015-08-18 Mellanox Technologies Tlv Ltd. Topology-aware fabric-based offloading of collective functions
US8811417B2 (en) * 2009-11-15 2014-08-19 Mellanox Technologies Ltd. Cross-channel network operation offloading for collective operations
US20110161236A1 (en) * 2009-12-29 2011-06-30 Sharad Singhal System and method for negotiating a sale
US8825451B2 (en) * 2010-12-16 2014-09-02 Schneider Electric It Corporation System and methods for rack cooling analysis
JP5588936B2 (ja) * 2011-07-19 2014-09-10 日本電信電話株式会社 通信装置及びネットワーク管理方法及びプログラム
AU2011383606A1 (en) 2011-12-22 2014-07-17 Schneider Electric It Corporation System and method for prediction of temperature values in an electronics system
CN104137105B (zh) 2011-12-22 2017-07-11 施耐德电气It公司 关于瞬时事件对数据中心中的温度的影响分析
US10277485B1 (en) * 2015-08-21 2019-04-30 Amazon Technologies, Inc. Network device testing using non-destructive techniques
US10284383B2 (en) 2015-08-31 2019-05-07 Mellanox Technologies, Ltd. Aggregation protocol
US10521283B2 (en) 2016-03-07 2019-12-31 Mellanox Technologies, Ltd. In-node aggregation and disaggregation of MPI alltoall and alltoallv collectives
US11277455B2 (en) 2018-06-07 2022-03-15 Mellanox Technologies, Ltd. Streaming system
US11625393B2 (en) 2019-02-19 2023-04-11 Mellanox Technologies, Ltd. High performance computing system
EP3699770A1 (en) 2019-02-25 2020-08-26 Mellanox Technologies TLV Ltd. Collective communication system and methods
CN110620686B (zh) * 2019-09-05 2020-11-10 西安交通大学 一种基于复杂通信网络的路由节点选取方法
US11750699B2 (en) 2020-01-15 2023-09-05 Mellanox Technologies, Ltd. Small message aggregation
US11252027B2 (en) 2020-01-23 2022-02-15 Mellanox Technologies, Ltd. Network element supporting flexible data reduction operations
CN111695223B (zh) * 2020-06-11 2023-03-03 Ut斯达康通讯有限公司 一种网络拓扑布局方法及系统
US11876885B2 (en) 2020-07-02 2024-01-16 Mellanox Technologies, Ltd. Clock queue with arming and/or self-arming features
US11556378B2 (en) 2020-12-14 2023-01-17 Mellanox Technologies, Ltd. Offloading execution of a multi-task parameter-dependent operation to a network device
CN113051270B (zh) * 2021-03-26 2023-05-12 合安科技技术有限公司 基于异形结构树的分组方法、装置、电子设备及存储介质
US11922237B1 (en) 2022-09-12 2024-03-05 Mellanox Technologies, Ltd. Single-step collective operations

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991018462A1 (en) 1990-05-18 1991-11-28 The University Of Toronto Innovations Foundation High bandwidth fault tolerant lan
AU2001241895A1 (en) 2000-03-01 2001-09-12 Sun Microsystems, Inc. System and method for efficiently broadcasting information among nodes in a digital data network
US6519610B1 (en) * 2000-09-01 2003-02-11 Novell, Inc. Distributed reference links for a distributed directory server system
US6839541B2 (en) 2001-12-04 2005-01-04 Illinois Institute Of Technology Technique for establishing a virtual backbone in an ad hoc wireless network
US6999966B2 (en) 2002-04-23 2006-02-14 International Business Machines Corporation Content management system and methodology for implementing a complex object using nested/recursive structures
US7047510B1 (en) * 2003-04-23 2006-05-16 Cadence Design Systems, Inc. Method and system for partitioning an integrated circuit design
US7499912B2 (en) * 2003-10-23 2009-03-03 Hywire Ltd. Search method using coded keys

Also Published As

Publication number Publication date
GB2396991B (en) 2005-11-09
GB0328167D0 (en) 2004-01-07
JP2004208297A (ja) 2004-07-22
DE10342310A1 (de) 2004-07-15
US20040120331A1 (en) 2004-06-24
GB2396991A (en) 2004-07-07
US7310343B2 (en) 2007-12-18

Similar Documents

Publication Publication Date Title
JP4469168B2 (ja) ツリートポロジーネットワークのデバイスの高速選択システムおよび方法
US9014201B2 (en) System and method for providing deadlock free routing between switches in a fat-tree topology
JP4964735B2 (ja) ネットワークシステム、管理計算機、及びフィルタ再構成方法
JP3938582B2 (ja) 仮想lan構築装置
KR100878109B1 (ko) 분산형 프로세싱 네트워크의 토폴로지 발견 방법 및 시스템
US7561534B2 (en) Methods of network routing having improved resistance to faults affecting groups of links subject to common risks
JP5651756B2 (ja) ネットワークトポロジー要求を物理ネットワークにマッピングする方法及び通信システム
US20100027442A1 (en) Constructing scalable overlays for pub-sub with many topics: the greedy join-leave algorithm
US7382738B2 (en) Method and apparatus for computing metric information for abstracted network links
US6992988B2 (en) System and method for deadlock-free routing on arbitrary network topologies
CN108141416A (zh) 一种报文处理方法、计算设备以及报文处理装置
KR101754618B1 (ko) 소프트웨어 정의 네트워크 기반의 가상 네트워크 동적 생성 방법 및 그 장치
CN111147372A (zh) 下行报文发送、转发方法和装置
US7152113B2 (en) Efficient system and method of node and link insertion for deadlock-free routing on arbitrary topologies
CN108400922B (zh) 虚拟局域网络配置系统与方法及其计算机可读存储介质
US7313101B2 (en) Need-based filtering for rapid selection of devices in a tree topology network
US8842575B2 (en) Method and apparatus for providing a non-overlapping ring-mesh network topology
CN107995047A (zh) 一种数据中心的拓扑组网方法及装置
US11881997B1 (en) Determining reorder commands for remote reordering of policy rules
KR102287520B1 (ko) 계층화된 도메인 기반의 네트워크 구조에서 라우터의 도메인 라우팅 테이블 관리 방법
US9197542B2 (en) Systems and methods of network reconfiguration
CN118612140A (zh) 数据传输方法、装置、计算机设备、存储介质及程序产品
Rai et al. A new heuristic approach for minimum connected dominating set in adhoc wireless networks
CN114827008A (zh) 一种最短路径的确定方法以及相关设备
Holopainen et al. Tackling the delay-cost and time-cost trade-offs in computation of node-protected multicast tree pairs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090806

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091117

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100201

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100226

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3