(57)【特許請求の範囲】
【請求項１】
１つまたは複数のデータセンタのための分離された検索及び最適化のためのコンピュータ実装方法であって、
前記１つまたは複数のデータセンタに組み込まれ、互いに接続された複数のコンピュータシステムの１つまたは複数のネットワークのためのネットワークトポロジを決定する工程と、
決定されたネットワークトポロジに基づいて、ルーティング候補を検索する工程と、
テナントリクエストに基づいて組み込み目標を満たすように最適ルーティング候補を決定し、前記最適ルーティング候補を前記１つまたは複数のデータセンタに組み込むために、１つまたは複数の目的関数を前記ルーティング候補に対して更新及び適用する工程と、
を含み、
前記ルーティング候補を検索する工程に、前記ルーティング候補を検索するための検索空間を、スケーリングされた全数検索を用いて絞り込む工程を含み、
前記スケーリングされた全数検索を用いて絞り込む工程に、検索空間を絞り込む間に特定された所定のサイズ制約を満たす全てのスパニングツリーに対する選択されたスイッチ及び／またはハイパーバイザのみを検索する工程を含み、
前記ルーティング候補を検索する工程に、
ハイパーバイザセットのための全ての共通ノードを決定する工程と、
各共通ノードから前記ハイパーバイザセット内の各ハイパーバイザまでの１つの下方経路を、複数の共通ノード内の共通ノード毎に検索する工程と、
１つのルーティング候補を生成するために、全ての共通ノードから各ハイパーバイザまでの複数の経路を結合する工程と、
をさらに含む、コンピュータ実装方法。
【請求項２】
前記ルーティング候補を検索する工程に、仮想端末ネットワーク（ＶＴＮ）情報を決定する工程をさらに含み、
前記ＶＴＮ情報は、前記ＶＴＮ内の複数の仮想マシン（ＶＭ）のリスト及び前記複数のＶＭの各々をホストするハイパーバイザを含む、請求項１に記載の方法。
【請求項３】
前記目的関数は、レイテンシ、帯域幅及びホップ数の重みのバランスをとる結合関数を含む、請求項１に記載の方法。
【請求項４】
前記最適ルーティング候補は、スイッチで構成された仮想端末ネットワーク（ＶＴＮ）に組み込まれている、請求項１に記載の方法。
【請求項５】
１つまたは複数のデータセンタのための分離された検索及び最適化のためのシステムであって、
互いに接続された複数のコンピュータシステムの１つまたは複数のネットワークに接続され、１つまたは複数の組み込み目標を含むテナントリクエストを受信するための問い合わせデバイスと、
互いに接続された複数のコンピュータシステムの前記１つまたは複数のネットワークのネットワークトポロジを決定するために、前記テナントリクエストに応答する、決定されたネットワークトポロジに基づいてルーティング候補を検索する検索ルータと、
前記テナントリクエストに基づいて組み込み目標を満たすように最適ルーティング候補を決定し、１つまたは複数の目的関数を前記ルーティング候補に対して更新及び適用する、前記最適ルーティング候補を前記１つまたは複数のデータセンタに組み込むための最適化部と、
を有し、
前記検索ルータは、ルーティング候補を前記検索するための検索空間を、スケーリングされた全数検索を用いて絞り込むように構成され、
前記スケーリングされた全数検索に、検索空間を前記絞り込む間に特定された所定のサイズ制約を満たす全てのスパニングツリーに対する選択されたスイッチ及び／またはハイパーバイザのみを検索する処理をさらに含み、
前記検索ルータは、
ハイパーバイザセットのための全ての共通ノードを決定し、
各共通ノードから前記ハイパーバイザセット内の各ハイパーバイザまでの１つの下方経路を、複数の共通ノード内の共通ノード毎に検索し、
１つのルーティング候補を生成するために、全ての共通ノードから各ハイパーバイザまでの複数の経路を結合するように構成された、システム。
【請求項６】
前記検索ルータは、仮想端末ネットワーク（ＶＴＮ）情報を決定するように構成され、
前記ＶＴＮ情報は、前記ＶＴＮ内の複数の仮想マシン（ＶＭ）のリスト及び前記複数のＶＭの各々をホストするハイパーバイザを有する、請求項５に記載のシステム。
【請求項７】
前記目的関数は、レイテンシ、帯域幅及びホップ数の重みのバランスをとる結合関数を含む、請求項５に記載のシステム。
【請求項８】
前記最適ルーティング候補は、スイッチで構成された仮想端末ネットワーク（ＶＴＮ）に組み込まれている、請求項５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、２０１４年  ８月２０日に出願された米国特許仮出願第６２／０３９５０２号を基礎とし、その開示の全てをここに取り込む。
本発明は、データセンタのための最適化フレームワークに関し、特にマルチテナントデータセンタのための分離された検索及び最適化のためのシステム、並びに方法に関する。
【背景技術】
【０００２】
ソフトウェア定義ネットワークの出現によって、ネットワークの最適化は、マルチテナントデータセンタの重要な目標となり、多様な目的（例えば、短いレイテンシ、低い経路インフレーション、最小の構成コスト等）によって方向付けられた様々な最適化の機会をもたらしている。しかしながら、マルチテナントデータセンタにおける最適化リクエスト数、ルーティングの検索空間及び検索アルゴリズムの複雑性を考慮すると、このような最適化処理は、ある程度の計算資源及び時間が要してしまう（例えば、従来のシステムは各テナントのために異なる検索アルゴリズムを用いる必要があるため）。
【０００３】
クラウドコンピューティングの台頭と共に、マルチテナントデータセンタは、数千ものスイッチ及びサーバの規模まで増大し、多数の（例えば、数万の）テナントの仮想マシン（ＶＭ：Virtual Machine）をホストする機能を有している。効率、スケーラビリティ及び迅速性を確実にするため、このような規模においてマルチテナンシを管理することは、技術研究として相当な注目を集める困難な課題である。従来のシステムは、一般的に、管理努力をハイパーバイザに置き、大部分のテナントネットワークはテナントＶＭのネットワーク位置によって決定されると仮定している。しかしながら、ソフトウェア定義ネットワーク（ＳＤＮ：Software-Defined Networking）の役割がデータセンタにおいてますます重要となっているため、この仮定はもはや有効ではない。例えば、ＶＭのネットワークの位置が決まっている場合でも、ネットワーク内の転送は未だ異なることがある。
【０００４】
最適化の観点から、予め設定された特定の目的関数によって方向付けられた最適ルーティングを達成するいくつかの試みがなされてきた。これらのシステム／方法では、一般的に、最初に性能が増大する、すなわち特性が向上（例えば、資源効率の向上、混雑の低下等）するという期待をもたらす、いくつかの目的関数を提案している。これら従来のシステム／方法では、ネットワーク上で徐々にリンクを追加することを繰り返して、テナントの仮想マシンを互いに接続し、追加するリンクが提案された目的関数によって決定される。これらのシステム／方法の解決法では、単一の仮想端末ネットワーク（ＶＴＮ：Virtual Terminal Network）」を最適化のために用いることができる。しかしながら、マルチテナントデータセンタネットワークにおいて、ＶＴＮ最適化リクエスト数は非常に多い場合があり、従来のシステム／方法では、スケーラビリティ及びネットワーク効率を達成しながら、多数のＶＴＮを最適化することができない。
【発明の概要】
【０００５】
１つまたは複数のデータセンタのための分離された検索及び最適化のためのコンピュータ実装方法であって、１つまたは複数のデータセンタに組み込まれ、互いに接続された複数のコンピュータシステムの１つまたは複数のネットワークのためのネットワークトポロジを決定する工程と、決定されたネットワークトポロジに基づいてルーティング候補を検索する工程と、テナントリクエストに基づいて組み込み目標（embedding goals）を満たすように最適ルーティング候補を決定し、最適ルーティング候補を１つまたは複数のデータセンタに組み込むために、１つまたは複数の目的関数をルーティング候補に対して更新及び適用する工程と、を有するコンピュータ実装方法。
【０００６】
１つまたは複数のデータセンタのための分離された検索及び最適化のためのシステムであって、１つまたは複数のデータセンタ内の１つまたは複数のネットワークのためのネットワークトポロジを問い合わせるための決定部と、決定されたネットワークトポロジに基づいてルーティング候補を検索するためのルーティング検索デバイスと、組み込み中に組み込み目標を満たすように最適ルーティング候補を決定し、１つまたは複数の目的関数をルーティング候補に対して更新及び適用するための最適化部と、を有するシステム。
【０００７】
コンピュータで読み取り可能なプログラムを含むコンピュータで読み取り可能な記録媒体であって、コンピュータで読み取り可能なプログラムがコンピュータ上で実行されるとき、１つまたは複数のデータセンタに組み込まれ、互いに接続された複数のコンピュータシステムの１つまたは複数のネットワークのためのネットワークトポロジを決定する工程と、決定されたネットワークトポロジに基づいて、ルーティング候補を検索する工程と、テナントリクエストに基づいて組み込み目標を満たすように最適ルーティング候補を決定するために、及び最適ルーティング候補を１つまたは複数のデータセンタに組み込むために、１つまたは複数の目的関数をルーティング候補に対して更新及び適用する工程と、コンピュータに実行させる、コンピュータで読み取り可能な記録媒体。
【０００８】
本発明のこれら及び他の利点は、当業者にとって以下の詳細な説明及び添付の図面を参照することで明らかになるであろう。
【図面の簡単な説明】
【０００９】
本開示では、後述するように、以下の図面を参照しながら好ましい実施形態について詳細に説明する。
【図１】図１は、本原理の一実施形態による、本発明の原理が適用可能な例示的な処理システムを示している。
【図２】図２は、本原理の一実施形態による、マルチテナントデータセンタのための分離された検索及び最適化のための一システム／方法例のハイレベル図を示している。
【図３】図３は、本原理の一実施形態による、マルチテナントデータセンタのための分離された検索及び最適化のための一方法例を示している。
【図４】図４は、本原理の一実施形態による、マルチテナントデータセンタのための分離された検索及び最適化のための一システム例を示している。
【発明を実施するための形態】
【００１０】
本原理は、マルチテナントデータセンタのための検索及び最適化が分離された、最適化フレームワークのためのシステム及び方法を対象とする、基本的なネットワークインフラの使用率及び個々の仮想テナント（ＶＴ）の性能を向上するためのものである。本原理は、またルーティングオプションを検索する際の計算コストを低減するために用いられる。このことはネットワークに関するスケーラビリティのために、マルチテナントデータセンタにおいて好ましい。
【００１１】
一実施形態において、本原理では、検索と最適化とを分離した最適化フレームワークが用いられる。一実施形態において、検索結果の再利用を最大にするため、本原理では、最適化フレームワークについて、以下のように検索と最適化とが「分離された」モデルを提供する。（１）ネットワークトポロジのみに基づいてルーティング候補のリストを検索し、（２）提案された目的関数を候補とし、（３）全ての候補の中で最良の候補を最終決定する。「分離された」手法の欠点は、検索が高コストになることであるが、個々のテナントの仮想ネットワーク（ＶＮ）は、一般的に比較的小さいため、コストの問題は様々な方法で対処できる。例えば、少数のＶＭは、検索空間を少しのスイッチに絞り込めるため、全数検索を実行しても許容可能なコストに収まる可能性がある。また、検索空間をさらに絞り込むために、候補数及び／またはホップインフレーションを制限してもよい（例えば、少数の他のルーティング候補で十分な場合があるため）。
【００１２】
一実施形態において、本原理は、テナントリクエスト（例えば、組み込み目標）に基づいて、テナントレベルのルーティング制御をマルチテナントデータセンタで達成するために用いられる。テナントルーティングの更新は、常にマルチテナントデータセンタ内で発生する。新しいテナントネットワークの頻繁な到着、または既存のテナントネットワークを動的なネットワーク状況に適応させるルーティングの更新は、相当量のルーティング更新リクエストを起動させる。各リクエストには、特定のテナントネットワークの要件を満たすために、データセンタネットワーク全体の最上位の適切なオーバレイ仮想ネットワークの検索を含む。しかしながら、そのような大量のリクエストは、予期しないトポロジの検索コストを引き起こすことがある。また、テナントネットワークを組み込むことは、単に１つのランダムなルーティングオプションを決定することよりも多くのものを含むが、テナントまたはネットワークオペレータにより提案された様々な組み込み目的及び要件（例えば、帯域幅保証組み込み）を達成するためにオーバレイネットワークを決定することを含む。
【００１３】
一実施形態において、本原理は、検索及び組み込みの「分離されたモデル」を用いて、マルチテナントデータセンタにおける仮想テナントネットワーク組み込みを自動化するために用いられる。具体的には、本原理は、各テナントネットワークについて所望のオーバレイネットワーク候補のリストを包括的に検索し（例えば、ネットワークトポロジ及び／またはテナントのＶＭ配置に基づき）、これらの候補（例えば、ルーティング候補）に目的関数を適用し、組み込み目標を最も満たす候補を最終決定するために用いられる。
【００１４】
様々な実施形態において、本原理は、従来のシステム及び方法に対していくつかの利点を提供する。例えば、トポロジの検索結果は、キャッシュされて、テナントネットワーク組み込みで再利用される。トポロジの検索結果の再利用により、任意の既存のテナントと同一のＶＭ配置を有する新しいテナントのためのネットワーク検索の繰り返しを回避できる（例えば、それらのＶＭはハイパーバイザの同一セットによってホストされている）。検索の取り組みは、ネットワークダイナミクス及び組み込み目標から独立していてもよく（例えば、「分離されている」）、それら既存のテナントの現在のネットワークがネットワークダイナミクス（例えば、リンク輻輳、障害等）により影響を受けるとき、または既存のテナントが新しい組み込み目的を達成するために、それら既存のテナントがネットワークの再組み込みを望むとき、既存のテナントのためのネットワーク検索を繰り返す必要はない。
【００１５】
一実施形態において、本原理では、さらにテナントネットワークの組み込み目標を満たす順応性を達成することができ、それによりネットワークオペレータは、様々な検索アルゴリズムの使用を制限されることなく、組み込み目標を達成できる。その代わりに、様々な実施形態において、本原理では、高度な目的関数及び／または方法を設計及び実施し、ルーティング候補を効果的に求め、最も望ましい候補を決定するために用いられる。
【００１６】
分離された設計の欠点は、検索空間が特定の検索目的関数によって制限されずに、各テナントが所望する全てのオーバレイネットワーク候補を発見するには高コストになることである。しかしながら、１つのテナントのＶＭは、通常、データセンタ内のわずかなラックのみに及ぶため、検索空間をネットワーク全体の小さいサブグラフに縮小して、検索コストを低減してもよい。また、大部分のデータセンタトポロジ（例えば、ＶＬ２、ファットツリー等）は、いくつかの層により階層的に体系化され、それらのトラフィックは異なる層間で転送されないため、この特性が様々な実施形態において検索空間をさらに絞り込むために使用される。
【００１７】
一実施形態において、本原理は、マルチテナントデータセンタにおいてＶＴＮ組み込みを自動化するスケーリング可能なシステムとして使用される。ネットワーク管理の観点から、本原理では、効率的かつ迅速なテナント管理（例えば、トラフィックアカウンタビリティ、カスタマイズされたルーティング選択等）がエクスプリシットなテナントレベルのネットワーク内のルーティング制御によって可能になる。ネットワーク性能の観点から、本原理では、検索及び組み込みを分離した新しい設計により、ネットワークオペレータは、広範囲にわたるネットワーク性能の目標を改善するための、複数のテナントネットワーク組み込み目標を効果的に達成できる。
【００１８】
カプセル化プロトコル（例えば、ＶＸＬＡＮ、ＮＶＧＲＥ等）は、構成を簡単にするために、データセンタにおいて広く利用されている。しかしながら、テナントトラフィックを単にトンネリングすると、ネットワークオペレータは、可視性及び／またはトラッキング・アカウンタビリティを失うことがある。可視性及び／またはトラッキング・アカウンタビリティを失う理由としては、トラフィックが、ネットワークに到着する前にハイパーバイザでカプセル化され、１つのハイパーバイザは、複数のテナントに関して複数のＶＭをホストとするため、ネットワークオペレータは任意のトラフィックを送出したテナントを識別できないためである。データセンタがリンク集約を実行する、及び／またはロードバランシングを実行するとき（例えば、冗長な物理リンクにわたってトラフィックを広げるために）、このような可視性の逸失がさらに悪化する。その結果、テナントがデータセンタ全体の計算資源のわずかな部分（例えば、少数のハイパーバイザによってホストされるいくつかのＶＭ）のみを占める場合でも、そのトラフィックが、多くのスイッチ及び物理リンクで出現し、ネットワークオペレータにデータセンタネットワーク内の実際の転送を見失わせることがある。
【００１９】
従来のシステム及び方法では、テナントの細分度において、ネットワーク内のルーティング管理が欠けているため、ネットワーク動作が制限される。例えば、特定のテナントのトラフィックが多数の物理リンク及びスイッチにまで及ぶ場合があるため、ネットワークオペレータには、その特定のテナントのための監視、測定及びトラブルシューティングを実行することは困難である。これらの管理の制限の結果、ネットワークの性能低下が起こる。例えば、リンク輻輳または障害が発生したとき、ネットワークオペレータは、妥当な時間内に、影響を受けたテナントを検索し、ネットワークを再構成することは困難である。また、仮想のプライベートクラウドの要望が増大するにつれて、テナントでは、自身の要求に基づきプライベートクラウドをカスタマイズする動機付けが発生する（例えば、あるテナントはウェブサーバのレイテンシ性能向上を希望し、別のテナントはマップリデュースタスク（MapReduce tasks）のための帯域幅を懸念する場合がある）。明確なテナント毎のルーティング管理無しでは、ネットワークオペレータは個々のテナントのための資源使用率をカスタマイズすることができない。
【００２０】
したがって、テナントネットワークを効率的に管理するため、ネットワークオペレータは、テナントの細分度において、ネットワーク内のルーティング管理を行うことが望ましい。例えば、一実施形態において、ネットワークオペレータは、各テナントについて、基本的にそのＶＭを接続しているオーバレイネットワークである仮想テナントネットワーク（ＶＴＮ）を明示的に構成できる。様々な実施形態において、各テナントのトラフィックは、そのＶＴＮ内に制限され、他の物理リンクは、そのテナントのトラフィックを搬送することができない。テナントは、自身のＶＴＮを識別可能であるため、トラフィックはテナントで利用可能であり、本原理では、個々のテナントのためにカスタマイズされたルーティング構成が用いられる。
【００２１】
一実施形態において、効率的なＶＴＮ組み込みを達成するため、以下の２つの課題、（１）頻繁なＶＴＮ組み込みリクエストにより生じるスケーラビリティ問題、（２）高度な組み込み目標を達成する限られた性能を、本原理では取り上げる。これらの課題に対処する本原理の適用例は、以下、詳細に説明する。
【００２２】
本明細書で説明する実施形態は、全てハードウェアであるか、またはハードウェア要素と、ファームウェア、常駐ソフトウェア、マイクロコード等を含むが、これらに限定されないソフトウェア要素との、両方を含んでいてもよいことを理解されたい。好ましい実施形態において、本発明はハードウェア内に実装される。本発明は、システム、方法及び／またはコンピュータプログラム製品でもよい。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータで読み取り可能なプログラム命令を有する１つまたは複数のコンピュータで読み取り可能な記憶媒体を含んでもよい。
【００２３】
各実施形態は、コンピュータまたは任意の命令実行システムによって、あるいはこれらで使用するためのプログラムコードを提供する、コンピュータで使用可能またはコンピュータで読み取り可能な媒体からアクセス可能な、コンピュータプログラム製品を含んでいてもよい。コンピュータで使用可能またはコンピュータで読み取り可能な媒体は、命令実行システム、装置またはデバイスに接続される、あるいはこれらで使用するためのプログラムを格納、通信、伝搬または移送する、任意の装置を含んでいてもよい。媒体は、磁気、光、電子、電磁、赤外線または半導体のシステム（または装置またはデバイス）、あるいは伝搬媒体とすることができる。媒体は、半導体またはソリッドステートメモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、リジッド磁気ディスク、光ディスク等の、コンピュータ読み取り可能な記録媒体を含んでいてもよい。
【００２４】
プログラムコードを記憶及び／または実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接または間接的に接続された、少なくとも１つのプロセッサを含んでいてもよい。メモリ要素には、プログラムコードの実行中に用いられるローカルメモリ、バルクストレージ、並びに実行中にコードがバルクストレージから読み出される回数を減らすために少なくとも何らかのプログラムコードの一時ストレージを提供するキャッシュメモリを含むことができる。システムには、入力／出力、すなわちＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティングデバイス等を含むがこれらに限定されない）を、直接またはＩ／Ｏコントローラを介して接続してもよい。
【００２５】
システムには、ネットワークアダプタを接続し、データ処理システムを、専用または公衆ネットワークを介して他のデータ処理システムまたはリモートプリンタまたはストレージデバイスに接続できるようにしてもよい。モデム、ケーブルモデム及びイーサネットカードは、現在使用可能なタイプのネットワークアダプタのほんの数例である。
【００２６】
次に、同じ数字が同一または同様の要素を表す図面、まず図１を参照すると、図１には、本原理の一実施形態による、本原理に好適な処理システム１００の一例が示されている。処理システム１００は、システムバス１０２を介して他の構成要素と動作可能に接続された、少なくとも１つのプロセッサ（ＣＰＵ）１０４を含む。システムバス１０２には、キャッシュ１０６、読み取り専用メモリ（ＲＯＭ）１０８、ランダムアクセスメモリ（ＲＡＭ）１１０、入力／出力（Ｉ／Ｏ）アダプタ１２０、サウンドアダプタ１３０、ネットワークアダプタ１４０、ユーザインターフェースアダプタ１５０及びディスプレイアダプタ１６０が動作可能に接続されている。
【００２７】
第１のストレージデバイス１２２及び第２のストレージデバイス１２４は、Ｉ／Ｏアダプタ１２０によりシステムバス１０２に動作可能に接続されている。ストレージデバイス１２２及び１２４は、ディスク記憶装置（例えば、磁気記憶装置または光学ディスク記憶装置）、固体磁気装置等のいずれであってもよい。ストレージデバイス１２２及び１２４は、同じタイプの記憶装置であってもよく、異なるタイプの記憶装置であってもよい。
【００２８】
スピーカ１３２は、サウンドアダプタ１３０によってシステムバス１０２に動作可能に接続されている。トランシーバ１４２は、ネットワークアダプタ１４０によってシステムバス１０２に動作可能に接続されている。ディスプレイデバイス１６２は、ディスプレイアダプタ１６０によってシステムバス１０２に動作可能に接続されている。
【００２９】
第１のユーザ入力デバイス１５２、第２のユーザ入力デバイス１５４及び第３のユーザ入力デバイス１５６は、ユーザインターフェースアダプタ１５０によってシステムバス１０２に動作可能に接続されている。ユーザ入力デバイス１５２、１５４及び１５６は、キーボード、マウス、キーパッド、イメージキャプチャデバイス、モーション感知デバイス、マイクロフォン、あるいはこれらのデバイスのうちの少なくとも２つのデバイスの機能が組み込まれたデバイス等のいずれであってもよい。本原理の趣旨を維持する限りにおいて、他のタイプの入力デバイスを使用してもよい。ユーザ入力デバイス１５２、１５４及び１５６は、同じタイプのユーザ入力デバイスであってもよく、異なるタイプのユーザ入力デバイスであってもよい。ユーザ入力デバイス１５２、１５４及び１５６は、システム１００に情報を入力し、システム１００から情報を出力するために使用される。
【００３０】
処理システム１００は、当業者であれば容易に思いつくような他の要素（図示せず）を含んでいてもよく、特定の要素を除いてもよい。例えば、当業者であれば容易に理解できるが、処理システム１００には、その詳細な実装に応じて他の様々な入力デバイス及び／または出力デバイスを含むことができる。例えば、無線及び／または有線による種々の入力デバイス及び／または出力デバイスを使用できる。さらに、当業者であれば容易に理解できるが、様々な構成において追加のプロセッサ、コントローラ、メモリ等を使用することも可能である。処理システム１００の上記及び他の変形例は、本明細書で提供される本原理の教示によって当業者であれば容易に考えられるであろう。
【００３１】
また、図２及び図４を参照してそれぞれ後述されるシステム２００及び４００が、本発明の原理のそれぞれの実施形態を実施するシステムであることを理解されたい。処理システム１００の一部または全部は、システム２００及び４００の要素の１つまたは複数において実施されてもよい。
【００３２】
さらに、処理システム１００は、例えば、図２の方法２００及び図３の方法３００の少なくとも一部を含む、本明細書に記載された方法の少なくとも一部を実行してもよいことを理解されたい。同様に、システム４００の一部または全部を用いて、図２の方法２００及び図３の方法３００の少なくとも一部を実行してもよい。
【００３３】
次に、図２を参照すると、図２には、本原理の一実施形態による、マルチテナントデータセンタのための分離された検索及び最適化のためのシステム／方法２００のハイレベル図が示されている。
一実施形態において、システム２０２は、検索ルータ／ルーティング検索エンジン２０４及び最適化部２０８を、システム２０２の主要なコンポーネントとして含む。検索ルータ／ルーティング検索エンジン２０４は、仮想テナントネットワーク（ＶＴＮ）配置リクエストのために、ブロック２０１において、ルーティング候補（例えば、配置された複数の仮想マシン（ＶＭ））のリストを検索する。ルーティング候補は、例えばハッシュデータ構造を用いたルーティングキャッシュ２０６で記憶される。一実施形態において、ＶＴＮ内のＶＭ２０１のリストは、検索ルータ／ルーティング検索エンジン２０４を用いて検索する前に、１つまたは複数のハイパーバイザに配置される。検索ルータ／ルーティング検索エンジン２０４は、ネットワーク情報データベース２０３からネットワークトポロジ情報を決定し、様々な実施形態において、本原理では、ＶＴＮ内でＶＭを接続しているスパニングツリーの検索を実行する。
【００３４】
一実施形態において、最適化部は、ブロック２０８にて、高度な目的関数（例えば、最小数の他のテナントと共有される大部分のローカルリンクを含むルート等）を使用する。目的関数は、予め設定されていてもよく（例えば、ネットワークオペレータによって）、リアルタイムに決定してもよい。最適化部２０８は、入力（例えば、ルーティング候補のリスト）を検索ルータ／ルーティング検索エンジン２０４から受信し、目的関数（例えば、順次）を適用し、ルーティングキャッシュ２０６で保存されているルーティング候補リストの中で最も望ましい候補（すなわち、目的関数に準じた最良の候補）を決定する。最も望ましいルートは最適化部２０８によって選択され、本原理では、システム２０２は、選択されたルート（例えば、ルーティング候補のリストの中で最も望ましい候補ルート）を構成するために、ネットワークアクションコンテナ２０５に指示する。検索ルータ／ルーティング検索エンジン２０４を用いる検索、並びに最適化部２０８を用いる最適化は、以下で、より詳細に説明する。
【００３５】
次に図３を参照すると、図３には、本原理の一実施形態による、マルチテナントデータセンタのための分離された検索及び最適化のための方法３００が示されている。一実施形態において、方法３００は、特定のテナントの全てのＶＭに対して、トポロジ的に互いに接続された複数のルーティング候補を検索するために使用される。一実施形態において、テナントネットワークリクエストは、ブロック３０１にて入力され、検索はブロック３０２にて実行される。
【００３６】
一実施形態において、検索３０２は、ブロック３０４にて決定されたネットワークトポロジに基づいて実施される。ブロック３０４で決定されたネットワークトポロジを用いた検索３０２は、比較的安定している（例えば、物理ネットワークトポロジはほとんど変化せずにトポロジが維持され、送信元と宛先の所与のペアのためのルート候補も維持される）。検索結果は、ＶＭがハイパーバイザの同一セットに配置された他のテナントで使用されてもよい。本原理では、ネットワークトポロジ３０４は、ネットワーク情報データベース（図示せず）から検索される。様々な実施形態において、本原理では、検索３０２は、ネットワークトポロジの決定／問い合わせ３０４、ＶＴＮ情報の決定／問い合わせ３０６、検索空間の絞り込み３０８、及び／またはスケーリングされた全数検索の実行３１０を含む。
【００３７】
ブロック３０４において、ネットワークトポロジを決定し／問い合わせ、特定のネットワークトポロジに関する情報を集める。この情報は、例えば、コンピュータで読み取り可能な記憶媒体で保存される。一実施形態において、ブロック３０４で、ネットワークトポロジを決定する工程は、任意のＶＴＮリクエストに関係なく実行されるバックグラウンドタスクであってもよい。一実施形態において、ネットワークトポロジ全体のためのネットワーク情報データベースに対するリクエストが実行されてもよく、ブロック３０４における決定工程は、トポロジの更新のためのリクエストを周期的に送信してもよい。
【００３８】
一実施形態において、トポロジの更新は、リンクステータス更新情報（例えば、リンクアップ及びリンクダウン）を含んでいてもよい。但し、通常、リンク更新は頻繁に発生しない。一実施形態において、ブロック３０４における決定工程には、記憶デバイス内のネットワークトポロジ更新のローカル知識ベースを維持することを含む。様々な実施形態において、本原理では、ＶＴＮリクエストの到着が存在するとき、それらのルーティング候補はネットワークトポロジのローカル知識ベースに基づいて決定されるため、該ローカル知識ベースは頻繁にアクセスされてもよい。いくつかの実施形態において、知識ベースは、ローカルな高速メモリで保存される。
【００３９】
ブロック３０６において、一実施形態では、ＶＴＮ情報を決定し／問い合わせ、現在のＶＴＮリクエストに関する情報を集める。ＶＴＮ情報は、最適化のための現在のＶＴＮに関連する情報でもよい。ブロック３０６で決定される情報は、例えば特定のＶＴＮ内のＶＭのリスト及び１つまたは複数のＶＭの各々をホストするハイパーバイザを含む。ＶＭは所与のＶＴＮにおいて既に配置されていると仮定してもよい。ＶＭが既に配置されているという仮定は、最適化方法／フレームワーク３００の制約でなく、むしろ実施においては有効な仮定である。なぜなら、本原理では、ＶＭを配置する位置は、ＶＭの接続方法から切り離されて、計算資源の使用率によって制限される場合があるからである。
【００４０】
ブロック３０８において、一実施形態では、検索空間が絞り込まれて、ルーティング候補のための検索空間が管理される。例えば、マルチテナントデータセンタにおいて、特定のＶＴＮのサイズは少数のＶＭ（例えば、５、１０、２０等）の場合があり、これらのＶＭがデータセンタ全体に広がるとしても、中央に位置するスイッチ（例えば、ルート候補をともに形成するために連結しているスイッチ）の数は少ないままである。それゆえ、データセンタ全体の空間でルーティング候補を検索するのは非効率的である。しかしながら、ブロック３０８における検索空間の絞り込みの間、スイッチのサブセットが候補ルートの検索空間として選択された場合、より良好なルートへ導く別のスイッチが、該サブセットではない場所に存在する場合がある。この問題は、シュタイナースパニングツリーと称されるＮＰ困難な問題である（例えば、アルゴリズム複雑性解析において、ＮＰ困難は「非決定性多項式の時間」を指す）。
【００４１】
一実施形態において、本原理では、シュタイナーツリー問題は、最小スパニングツリー問題と表面上類似している。例えば、可能な限り最小のサイズのネットワークによって互いに接続されたハイパーバイザのセットを考える。ここで、サイズとは、ツリーのリンクの総数である。シュタイナーツリー問題と最小スパニングツリー問題との違いは、シュタイナーツリー問題では、余分な中間のスイッチが追加されて、スパニングツリーのサイズを縮小してもよいということである。
【００４２】
一実施形態において、マルチテナントデータセンタの設定では、シュタイナーツリー問題に追加される性質が存在する。１つは、ネットワークトポロジが一般的に小さく構築されることであり、第２の性質は、本原理が、ただ１つのシュタイナースパニングツリーよりもサイズインフレーションの制約下で全てのスパニングツリーを検索するために使用されることである。第１の性質は、ブロック３０８において検索空間を絞り込むために使用され、スイッチのどのサブセットがスパニングツリーの検索に含まれるべきかを決定する。一実施形態において、本原理では、第２の性質のため、指向検索よりも全数検索がブロック３１０において実行される。一実施形態において、全てのルーティング候補を見つけるため、全数検索を実行することが望ましいが、これは非常に高コストになる可能性がある。したがって、第２の性質（例えば、サイズ制約）は、検索空間を制限するために適用される。
【００４３】
ブロック３１０において、本原理の一実施形態では、スケーリングされた全数検索は、サイズインフレーション制約（すなわち、上述した第２の性質）を満たす全てのスパニングツリーのための小さな規模の選択されたスイッチ及びハイパーバイザで実行される。ＶＴＮ内のＶＭは、一般的に、位置の優先度に基づいて割り当てられるため（例えば、ＶＴＮ内の５つのＶＭのうちの３つは、１ホップを超えないようにすべきである）、これらのＶＭ及びＶＭを接続するスイッチは、データセンタ内の少数のラックに及んでいてもよく、ネットワークサブグラフは、ブロック３１０において、高コスト（例えば、計算コスト）を招くことなく網羅的検索を実行できるくらい小さくしてもよい。
【００４４】
一実施形態において、ブロック３０２の検索出力は、ルーティング候補のリストから、最良／最適なルーティング候補を決定し、及び／または、例えば、特定の数のホップ、リクエストされた帯域幅（ｂａｎｄｗｉｔｈ）等を含む組み込み目標（例えば、テナントリクエスト）を満たす、ブロック３０３における最適化のための入力として使用される。最良のルーティング候補は、本原理の一実施形態では、例えば、データセンタオペレータ及びテナントユーザの両方の利益／要求を最も満たす候補であってもよい。
【００４５】
一実施形態において、ブロック３０３における最適化は、本原理では、データセンタオペレータが、高度なグローバル目的関数を設計、生成及び／または実装できるようにするために、「分離」されてもよい（例えば、検索及び最適化を分離／切り離してもよい）。一実施形態において、本原理では、システム／方法が分離されているため、検索結果は、目的関数から独立し、かつＶＭのネットワーク位置のみに依存する。それゆえ、同一のネットワーク位置のＶＴＮのための検索結果を再利用できる。様々な実施形態において、各ＶＴＮは、候補（例えば、検索結果）の同一セットに適用される、自身の目的関数を有することもできる。目的関数は、各物理リンクがどの仮想リンクを有するのかを考慮することで、コントローラ（図示せず）を用いた各スパニングツリーを評価するために使用される。従来のシステム及び方法では、この評価を実行することができない。なぜなら、本原理による分離された検索及び最適化無しではこの評価が不可能であるからである（例えば、本原理による分離なしでは、物理リンクが有する仮想リンクが不明であるからである）。
【００４６】
ブロック３１２において、一実施形態では、リンク情報を決定し／問い合わせ、（例えば、各ルーティング候補に属しているリンクに関する）現在のネットワーク使用率を正確に決定する。ブロック３０６におけるＶＴＮ情報の決定／問い合わせと同様に、本原理では、このリンク情報がネットワーク情報データベースと交換される。ブロック３１４において、１つまたは複数の目的関数（例えば、オーバレイ候補の採点の評価基準）は、ネットワークダイナミクス及び／またはテナント要求／利益に適用される高度な目的関数を生成するために更新される。例えば、テナントネットワークがＶＭをｗｅｂサーバとして使用する場合、目的関数は、そのＶＭのトラフィックを搬送する物理リンクのためのレイテンシ性能を促進させる。説明のためにテナントのｗｅｂサーバを例示しているが、様々な実施形態において、複数の目的関数が、複数のテナントの要求／利益のために使用される。
【００４７】
一実施形態において、本原理は、分離された検索３０２及び最適化３０３が高度なメソッドまたは目的関数を生成して、任意の組み込み目標を満たすために用いられる。例えば、一実施形態において、ブロック３１４からの有効な目的関数は、レイテンシ、帯域幅、ホップ数等の重みのバランスをとった結合関数と同程度に高度である。本原理は、任意の目的関数を用いて利用されてもよく、方法３００は、任意のサイズのネットワーク（例えば、ＶＴＮ）にスケーリング可能であり、任意のＶＴＮの組み込み目標を達成する順応性及び能力を可能とする。様々な実施形態において、本原理では、１つまたは複数の目的関数を更新した後、更新された目的関数はブロック３１６において、全ての候補に反復的に適用され、それに応じて最良の候補が選択され、出力は組み込み目標を達成するために、ブロック３１７においてネットワークアクションタスクコンテナに渡される。
【００４８】
図２及び図３の参照に引き続き、図４を参照すると、図４には、本原理の一実施形態による、マルチテナントデータセンタのための分離された検索及び最適化のためのシステム４００が示されている。様々な実施形態において、本原理では、コントローラ４０２は、バス４０１に接続され、システム１００及び／または４００を制御することに加えて、図２の方法２００及び／または図３の方法３００の全部または一部を制御するために使用される。
【００４９】
システム４００の多くの態様が例示及び明確さのために単数で記載されているが、システム４００の説明に関して言及される要素は複数の場合にも同じことが適用可能である。例えば、単一のスイッチ４０８が記載されているが、本原理の趣旨を維持する限り、複数のスイッチ４０８を、本原理の教示により用いることができる。さらに、スイッチ４０８はシステム４００に含まれる単なる１つの態様にすぎず、本原理の趣旨を維持する限り、複数の場合にも拡張できることを理解されたい。
【００５０】
本原理の様々な実施形態において、システム４００は、コントローラ４０２、決定部／評価部４０４、ルーティング検索デバイス／検索エンジン４０６、ルーティング検索デバイス４０６、スイッチ４０８、記憶デバイス４１０、最適化部４１２、ネットワークアクションタスクコンテナ及び／または組み込み部４１６を含む。
【００５１】
一実施形態において、コントローラ４０２は、ネットワークトポロジ３０４、ＶＴＮ情報３０６及び／またはリンク情報３１６を（図３に関して上述したように）決定し／問い合わせるように決定部４０４に指示する。一実施形態において、ルーティング検索デバイス／検索エンジン４０６は、例えば特定のＶＭの配置に基づき、所望のルーティング候補のリストを生成する。説明を簡単にするため、特に明記しない限り、ルーティングは、オーバレイネットワークを含むテナントレベルのルーティングとして定義される。
【００５２】
いくつかの実施形態において、本原理では、所与のＶＭ配置に関して可能な全てのルーティングを決定できないことがあるため、検索エンジン４０６は、全ての「望ましい」ルーティング候補を決定してもよい。例えば、階層構造のネットワークレイアウトにおいて、任意の２つのＶＭ間のトラフィックが２つの異なる階層間で影響しない場合、ルーティングが「望まれる」。他のトポロジについては、ルーティング候補がテナントにとって望ましいか否か（例えば、限定されたホップ数）、または１つもしくは複数の特定の候補が検索から除外されるべきか否かを決定するために、他の要因が考慮されてもよい。
【００５３】
説明を簡単にするため、検索エンジンは、以下の特徴を含む階層構造のデータセンタトポロジに関して記載されている。（１）トポロジは、１つまたは複数のコアスイッチ４０８によって互いに接続された、分離されたポッドのセットを含み、（２）各分離されたポッドは、２以上の層を含み、（３）ある層上のスイッチ４０８は、複数の異なる層上の複数のスイッチ４０８のみに接続されている。多くの現在のデータセンタの実施態様（例えば、ＶＬ２、ファットツリー等）は、これらの要件を満たしている。
【００５４】
一実施形態において、ネットワークグラフ（図示せず）は、検索ルータ／ルーティングエンジン４０６を用いた検索のために使用され、各ノード（例えば、ＶＭ）は、高さに関連付けられている。本原理では、コアスイッチ４０８は、高さ（例えば、１）が割り当てられ、他のノードの最初の高さは無限大に設定される（例えば、典型的には２０未満であり、それがスイッチの総数を超える限り、本方法は効果的である）。コントローラ４０２は、コアスイッチ４０８から他のノードの方へ下方に追跡し、他のノードに高さを割り当てるように、検索ルータ／ルーティング検索デバイス４０６に指示する。いくつかの実施形態において、特定ノード（例えば、Ｋ）の高さは、隣接ノード間の最小の高さに１を加えた高さであり、各層はその特定の層のノードの高さに等しい層数を有する。
【００５５】
説明を簡単にするため、「直線経路」が検索ルータ／検索エンジン４０６を用いる検索のために記載されている。経路上の全てのノードが異なる高さである場合、経路は「直線経路」であるとみなしてもよく、２つのタイプの直線経路（例えば、上方及び下方）が存在してもよい。本原理では、上方経路は、より低い層の送信元ノードからより高い層の宛先ノードまでに存在し、下方経路は、より高い層の送信元ノードからより低い層の宛先ノードまでに存在する。
【００５６】
一実施形態において、所望のルーティングは（例えば、階層構造のデータセンタトポロジにおいて）、直線経路のみをとり、層間で影響しないため、第１のノードと第２のノード（例えば、ハイパーバイザセット（Ａ、Ｂ）におけるＶＭ）を接続する、第１のノード（Ａ）の上方経路は、第２のノード（Ｂ）の上方経路と同一の宛先ノードを共有する。２つのノードが記載されているが、様々な実施形態において、本原理は、任意の数のノードに適用される。この共有されるノードは、ハイパーバイザセット（Ａ、Ｂ）のための共通ノードと称す。ノードがセット内の各ハイパーバイザへの少なくとも１つの下方経路を有する、または共通ノードに到達するために少なくとも１つの上方経路を有する場合、該ノードはハイパーバイザのセットのための共通ノードとして定義される。
【００５７】
一実施形態において、検索ルータ／ルーティング検索エンジン４０６は、以下のようにルーティング検索を実行する。
【表１】
0006463461.tif 000002
一実施形態において、上述したルーティング検索は、以下の方法により、検索ルータ／ルーティング検索エンジン４０６で実行される。（１）特定のハイパーバイザセットのための全ての共通ノードを決定し、（２）共通ノード毎に、共通ノードから各ハイパーバイザまでの１つの下方経路を見つけ、（３）これらの経路を結合し、１つのルーティング候補を生成する。
【００５８】
一実施形態において、１つのルーティング候補は１つの共通ノードのみを含んでいてもよく（１を超えて有することでループを生成する）、本原理を使用して、データセンタネットワークにおける全ての所望のルーティング候補を決定する。しかしながら、本原理を使用して、全ての望ましい経路をデータセンタネットワークにおいて見つけても、方法の複雑性はＯ（｜Ｅ｜）だけとなる。ここで、｜Ｅ｜は、上方グラフのエッジ数である（データセンタネットワーク全体よりもはるかに小さい）。一実施形態において、ランダムなデータセンタトポロジ（例えば、ジェリーフィッシュ）のため、本原理は、既存の方法を利用して所望のルーティングを獲得してもよく、例えば、ｋ−最短経路法を採用して各ハイパーバイザペア間の経路を決定し、ルーティング候補としてこれらの経路を結合してもよい。
【００５９】
一実施形態において、ルーティング検索デバイス４０６からの検索結果は記憶デバイス４１０で保存され、ハッシュデータ構造を用いてキャッシュされる。ここで、キーはＶＭ配置のハッシュでもよく（ホスティングハイパーバイザのリストに関する）、値はルーティング候補のリストでもよい。各候補は、リンク関連の情報（例えば、使用率）をネットワーク情報データベースから取り出すために使用され、物理リンクＩＤのリストとして保存される。様々な実施形態において、本原理では、キャッシュ結果は、ネットワークトポロジが変更されるときに更新される。
【００６０】
ブロック４１２において、本原理の一実施形態では、最適化部は、最適化を（例えば、図３の要素３０３について上述した通り）実行する。最適化部４１６を用いて最も望ましいルーティングを決定した後、本原理では、ＶＴＮが組み込み部４１２を用いてデータセンタに組み込まれる。組み込みは、特定のテナントの所望のトラフィック転送を実行するために、コントローラ４０２を用いてスイッチへ指示することで、ルーティング上でスイッチ４０８を構成する処理（例えば、ＶＬＡＮタグの構成、ルールの追加等）を含む。いくつかのルーティング構成動作（例えば、レガシースイッチの構成）は、完成するのにある程度の期間を要するため、ネットワークアクションコンテナ４１４は、全体の構成遅延を減らすため、構成タスクを適切に集約するために使用される。いくつかの実施形態において、ネットワークアクションコンテナ４１４は、システム４００のユーザビリティを改善するプラグインとしてもよい。いくつかの実施形態において、本原理は、全体システム４００の性能を向上できる他のプラグインを使用してもよい。
【００６１】
図４に示す実施形態では、複数の要素は、バス４０１によって互いに接続されている。しかしながら、他の実施形態では、他のタイプの接続を用いることもできる。さらに、一実施形態では、システム４００の要素の少なくとも１つはプロセッサベースである。さらに、１つまたは複数の要素が別の要素として示されていてもよく、他の実施形態では、これらの要素は、１つの要素として結合されていてもよい。その逆もまた適用可能であり、１つまたは複数の要素が別の要素の一部でもよく、他の実施形態では、１つまたは複数の要素が独立した要素として実装されてもよい。本明細書で提供されている本発明の原理の教示を考慮すると、システム４００の要素のこれら及びその他の変形例は、本発明の原理の趣旨を維持する限りにおいて、当業者によって容易に決定される。
【００６２】
上述した説明は、あらゆる点で説明的かつ例示的なものであり、制限的なものではないと理解されるべきであり、本明細書で開示する本発明の範囲は、詳細な説明から決定されるべきではなく、特許法で認められた最大限の広さに基づいて解釈される特許請求の範囲から決定されるべきである。本明細書で示し、説明した実施形態は、本原理に関する例示にすぎないこと、また当業者は、本発明の範囲及び主旨から逸脱することなく、様々な変更を実施してもよいと理解されるべきである。当業者は、本発明の範囲及び主旨から逸脱することなく、他の様々な特徴の組み合わせを実施できる。
【図１】
0006463461.tif 000003
【図２】
0006463461.tif 000004
【図３】
0006463461.tif 000005
【図４】
0006463461.tif 000006