IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特開2024-96844無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法
<>
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図1
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図2
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図3
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図4
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図5
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図6
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図7
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図8
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図9
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図10
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図11
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図12
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図13
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図14
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図15
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図16
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図17
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図18
  • 特開-無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024096844
(43)【公開日】2024-07-17
(54)【発明の名称】無損失ネットワークにおける効率的な仮想化のためのシステムおよび方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240709BHJP
   G06F 9/455 20180101ALI20240709BHJP
【FI】
G06F9/50 120Z
G06F9/455 150
【審査請求】有
【請求項の数】15
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024063247
(22)【出願日】2024-04-10
(62)【分割の表示】P 2022114933の分割
【原出願日】2016-11-18
(31)【優先権主張番号】62/259,321
(32)【優先日】2015-11-24
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/259,831
(32)【優先日】2015-11-25
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/261,103
(32)【優先日】2015-11-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/210,595
(32)【優先日】2016-07-14
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/210,599
(32)【優先日】2016-07-14
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】タソウラス,エバンジェロス
(72)【発明者】
【氏名】ザヒド,フェロツ
(72)【発明者】
【氏名】ヨンセン,ビョルン・ダグ
(72)【発明者】
【氏名】グラン,アーンスト・ガンナー
(57)【要約】      (修正有)
【課題】無損失相互接続ネットワークにおける効率的な仮想化をサポートするためのシステムおよび方法を提供する。
【解決手段】ネットワーク切替環境600(例えばInfiniBand(IB)サブネット)内において、仮想スイッチ(vSwitch)アーキテクチャは、少なくともリーフスイッチを含む1つ以上のスイッチ501~504、少なくとも1つの仮想機能514~516、524~526、534~536、少なくとも1つの仮想スイッチ及び少なくとも1つの物理機能を含む複数のホストチャネルアダプタ(HCA)、複数のハイパーバイザ及び夫々が少なくとも1つの仮想機能に関連付けられる複数の仮想マシン550~552を備える。物理的なHCAは、2つ以上のポートを有し、仮想HCAも2つのポートで表わされ、1つ又は2つ以上の仮想スイッチを介して外部IBサブネットに接続される。
【選択図】図6
【特許請求の範囲】
【請求項1】
無損失相互接続ネットワークにおける効率的な仮想化をサポートするためのシステムであって、
1つ以上のマイクロプロセッサと、
1つ以上のスイッチとを含み、前記1つ以上のスイッチの各々は複数のポートを含み、前記システムはさらに、
複数のホストチャネルアダプタを含み、前記複数のホストチャネルアダプタの各々は少なくとも1つの仮想機能、少なくとも1つの仮想スイッチおよび少なくとも1つの物理機能を含み、前記複数のホストチャネルアダプタは前記1つ以上のスイッチを介して相互接続されており、前記システムはさらに、
複数のハイパーバイザを含み、前記複数のハイパーバイザの各々は、前記複数のホストチャネルアダプタのうち少なくとも1つのホストチャネルアダプタに関連付けられており、前記システムはさらに、
複数の仮想マシンを含み、前記複数の仮想マシンの各々は、少なくとも1つの仮想機能に関連付けられており、
前記複数のホストチャネルアダプタは、予めポピュレートされたローカル識別子(LID)アーキテクチャを備えた仮想スイッチまたは動的LID割当てアーキテクチャを備えた仮想スイッチのうち1つ以上と共に配置されており、
前記仮想スイッチの各々には、関連付けられた物理機能のLIDに対応するLIDが割当てられており、
1つ以上のリニアフォワーディングテーブル(LFT)は、前記仮想スイッチの各々に割当てられた前記LIDに少なくとも基づいて計算され、前記1つ以上のLFTの各々は、前記1つ以上のスイッチのうちの一のスイッチに関連付けられている、システム。
【請求項2】
前記仮想マシンの各々には重みパラメータが割当てられており、
前記重みパラメータの各々は前記1つ以上のリニアフォワーディングテーブルを計算するのに用いられる、請求項1に記載のシステム。
【請求項3】
前記1つ以上のスイッチは少なくともリーフスイッチを含み、前記重みパラメータの各々は、仮想スイッチとリーフスイッチとの間の各リンクのトラフィックの割合を反映している、請求項2に記載のシステム。
【請求項4】
前記1つ以上のリニアフォワーディングテーブルを計算することは、
仮想マシンのために、利用可能な上りポート群の間で最少累積の下り重みに基づいてスイッチにおける下りポートを選択することと、
前記仮想マシンの割当てられた前記重みパラメータによって、前記選択されたポートについて、累積された下り重みを増やすこととを含む、請求項2または3に記載のシステム。
【請求項5】
前記1つ以上のリニアフォワーディングテーブルの各々は宛先ノードから計算が開始される、請求項1から4のいずれか1項に記載のシステム。
【請求項6】
前記複数の仮想マシンのうち、前記複数のハイパーバイザのうちの第1のハイパーバイザ上で実行中である第1の仮想マシンは、前記複数のハイパーバイザのうち第2のハイパーバイザに対するライブマイグレーションを実行するように動作し、
前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザまでライブマイグレーションを実行した後、少なくとも1つのLFTが再計算される、請求項1から5のいずれか1項に記載のシステム。
【請求項7】
前記少なくとも1つのLFTの再計算は最小数のLFTに制限され、前記最小数のLFTはスイッチタプルに少なくとも基づいて決定され、前記スイッチタプルは、再計算される必要のある前記最小数のLFTを備えたスカイラインを発見するために用いられる、請求項6に記載のシステム。
【請求項8】
無損失相互接続ネットワークにおける効率的な仮想化をサポートするための方法であって、
1つ以上のマイクロプロセッサを含む1つ以上のコンピュータにおいて、1つ以上のスイッチと、複数のホストチャネルアダプタと、複数のハイパーバイザと、複数の仮想マシンとを設けるステップを含み、
前記1つ以上のスイッチの各々は複数のポートを含み、
前記複数のホストチャネルアダプタの各々は少なくとも1つの仮想機能、少なくとも1つの仮想スイッチおよび少なくとも1つの物理機能を含み、前記複数のホストチャネルアダプタは前記1つ以上のスイッチを介して相互接続されており、
前記複数のハイパーバイザの各々は、前記複数のホストチャネルアダプタのうち少なくとも1つのホストチャネルアダプタに関連付けられており、
前記複数の仮想マシンの各々は、少なくとも1つの仮想機能に関連付けられており、前記方法はさらに、
予めポピュレートされたローカル識別子(LID)アーキテクチャを備えた仮想スイッチまたは動的LID割当てアーキテクチャを備えた仮想スイッチのうち1つ以上を備えた前記複数のホストチャネルアダプタを配置するステップと、
各々の仮想スイッチにLIDを割当てるステップとを含み、前記割当てられたLIDは関連付けられた物理機能のLIDに対応しており、前記方法はさらに、
前記仮想スイッチの各々に割当てられた前記LIDに少なくとも基づいて1つ以上のリニアフォワーディングテーブルを計算するステップを含み、前記1つ以上のLFTの各々は、前記1つ以上のスイッチのうちの一のスイッチに関連付けられている、方法。
【請求項9】
前記仮想マシンの各々には、重みパラメータが割当てられており、
前記重みパラメータの各々は、前記1つ以上のリニアフォワーディングテーブルを計算するのに用いられる、請求項8に記載の方法。
【請求項10】
前記1つ以上のスイッチは少なくともリーフスイッチを含み、前記重みパラメータの各々は、仮想スイッチとリーフスイッチとの間の各リンクのトラフィックの割合を反映している、請求項9に記載の方法。
【請求項11】
前記1つ以上のリニアフォワーディングテーブルを計算するステップは、
仮想マシンのために、利用可能な上りポート群の間で最少累積の下り重みに基づいてスイッチにおける下りポートを選択するステップと、
前記仮想マシンの割当てられた前記重みパラメータによって、前記選択されたポートについて、累積された下り重みを増やすステップとを含む、請求項9または10に記載の方法。
【請求項12】
前記1つ以上のリニアフォワーディングテーブルの各々は宛先ノードから計算が開始される、請求項9から11のいずれか1項に記載の方法。
【請求項13】
前記複数の仮想マシンのうち、前記複数のハイパーバイザのうちの第1のハイパーバイザ上で実行中である第1の仮想マシンは、前記複数のハイパーバイザのうち第2のハイパーバイザに対するライブマイグレーションを実行するように動作し、
前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザまでライブマイグレーションを実行した後、少なくとも1つのLFTが再計算される、請求項
8から12のいずれか1項に記載の方法。
【請求項14】
前記少なくとも1つのLFTの再計算は、最小数のLFTに制限され、前記最小数のLFTはスイッチタプルに少なくとも基づいて決定され、前記スイッチタプルは、再計算される必要のある前記最小数のLFTを備えたスカイラインを発見するために用いられる、請求項13に記載の方法。
【請求項15】
無損失相互接続ネットワークにおける効率的な仮想化をサポートするための命令が格納されている非一時的なコンピュータ読取り可能記憶媒体であって、前記命令が1つ以上のコンピュータによって読出されて実行されると、前記1つ以上のコンピュータに、請求項8から14のいずれか1項に記載の方法を実行させる、非一時的なコンピュータ読取り可能記憶媒体。
【請求項16】
無損失相互接続ネットワークにおける効率的な仮想化をサポートするための命令が格納されている非一時的なコンピュータ読取り可能記憶媒体であって、前記命令が1つ以上のコンピュータによって読出されて実行されると、前記1つ以上のコンピュータに以下のステップを実行させ、前記以下のステップは、
1つ以上のマイクロプロセッサを含む1つ以上のコンピュータにおいて、1つ以上のスイッチと、複数のホストチャネルアダプタと、複数のハイパーバイザと、複数の仮想マシンとを設けるステップを含み、
前記1つ以上のスイッチの各々は複数のポートを含み、
前記複数のホストチャネルアダプタの各々は少なくとも1つの仮想機能、少なくとも1つの仮想スイッチおよび少なくとも1つの物理機能を含み、前記複数のホストチャネルアダプタは前記1つ以上のスイッチを介して相互接続されており、
前記複数のハイパーバイザの各々は、前記複数のホストチャネルアダプタのうち少なくとも1つのホストチャネルアダプタに関連付けられており、
前記複数の仮想マシンの各々は、少なくとも1つの仮想機能に関連付けられており、前記以下のステップはさらに、
予めポピュレートされたローカル識別子(LID)アーキテクチャを備えた仮想スイッチまたは動的LID割当てアーキテクチャを備えた仮想スイッチのうち1つ以上を備えた前記複数のホストチャネルアダプタを配置するステップと、
各々の仮想スイッチにLIDを割当てるステップとを含み、前記割当てられたLIDは関連付けられた物理機能のLIDに対応しており、前記以下のステップはさらに、
前記仮想スイッチの各々に割当てられた前記LIDに少なくとも基づいて、1つ以上のリニアフォワーディングテーブルを計算するステップを含み、前記1つ以上のLFTの各々は、前記1つ以上のスイッチのうちの一のスイッチに関連付けられている、非一時的なコンピュータ読取り可能記憶媒体。
【請求項17】
前記仮想マシンの各々には重みパラメータが割当てられており、
前記重みパラメータの各々は、前記1つ以上のリニアフォワーディングテーブルを計算するのに用いられる、請求項16に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項18】
前記1つ以上のスイッチは少なくともリーフスイッチを含み、前記重みパラメータの各々は、仮想スイッチとリーフスイッチとの間の各リンクのトラフィックの割合を反映している、請求項17に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項19】
前記1つ以上のリニアフォワーディングテーブルを計算するステップは、
仮想マシンのために、利用可能な上りポート群の間で最少累積の下り重みに基づいてスイッチにおける下りポートを選択するステップと、
前記仮想マシンの割当てられた前記重みパラメータによって、前記選択されたポートに
ついて、累積された下り重みを増やすステップとを含む、請求項17または18に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項20】
前記1つ以上のリニアフォワーディングテーブルの各々は宛先ノードから計算が開始される、請求項16から19のいずれか1項に記載の非一時的なコンピュータ読取り可能記憶媒体。
【請求項21】
前記複数の仮想マシンのうち、前記複数のハイパーバイザのうちの第1のハイパーバイザ上で実行中である第1の仮想マシンは、前記複数のハイパーバイザのうち第2のハイパーバイザに対するライブマイグレーションを実行するように動作し、
前記第1の仮想マシンが前記第1のハイパーバイザから前記第2のハイパーバイザまでライブマイグレーションを実行した後、少なくとも1つのLFTが再計算され、
前記少なくとも1つのLFTの再計算は最小数のLFTに制限され、前記最小数のLFTはスイッチタプルに少なくとも基づいて決定され、前記スイッチタプルは、再計算される必要のある前記最小数のLFTを備えたスカイラインを発見するために用いられる、請求項16から20のいずれか1項に記載の非一時的なコンピュータ読取り可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
著作権表示:
この特許文献の開示の一部は、著作権保護の対象となる資料を含む。この特許文献または特許開示は特許商標庁の特許ファイルまたは記録に記載されているため、著作権保有者は、何人によるその複写複製に対しても異議はないが、その他の場合には如何なるときもすべての著作権を保有する。
【0002】
発明の分野:
本発明は、概して、コンピュータシステムに関し、特に、SR-IOV vSwitchアーキテクチャを用いてコンピュータシステム仮想化およびライブマイグレーションをサポートすることに関する。
【背景技術】
【0003】
背景:
導入されるクラウドコンピューティングアーキテクチャがより大規模になるのに応じて、従来のネットワークおよびストレージに関する性能および管理の障害が深刻な問題になってきている。クラウドコンピューティングファブリックのための基礎としてインフィニバンド(登録商標)(InfiniBand:IB)技術などの高性能な無損失相互接続を用いることへの関心がますます高まってきている。これは、本発明の実施形態が対応するように意図された一般領域である。
【発明の概要】
【課題を解決するための手段】
【0004】
概要:
サブネットにおいて仮想マシンマイグレーションをサポートするためのシステムおよび方法がこの明細書中に記載される。例示的な方法は、1つ以上のマイクロプロセッサを含む1つ以上のコンピュータにおいて、1つ以上のスイッチを設けることができ、当該1つ以上のスイッチは少なくともリーフスイッチを含み、当該1つ以上のスイッチの各々は複数のポートを含み、当該方法はさらに、複数のホストチャネルアダプタを設けることができる。複数のホストチャネルアダプタの各々は、少なくとも1つの仮想機能、少なくとも1つの仮想スイッチおよび少なくとも1つの物理機能を含む。複数のホストチャネルアダプタは当該1つ以上のスイッチを介して相互接続されている。当該方法はさらに、複数のハイパーバイザを設けることができる。当該複数のハイパーバイザの各々は当該複数のホストチャネルアダプタのうち少なくとも1つのホストチャネルアダプタに関連付けられている。当該方法はさらに、複数の仮想マシンを設けることができる。複数の仮想マシンの各々は、少なくとも1つの仮想機能に関連付けられている。当該方法はさらに、予めポピュレートされたローカル識別子(local identifier:LID)アーキテクチャを備えた仮想スイッチ、または動的LID割当てアーキテクチャを備えた仮想スイッチのうち1つ以上を備えた複数のホストチャネルアダプタを配置することができる。当該方法は、各々の仮想スイッチをLIDに割当てることができ、割当てられたLIDは関連付けられた物理機能のLIDに対応している。当該方法は、仮想スイッチの各々に割当てられたLIDに少なくとも基づいて、1つ以上のリニアフォワーディングテーブル(linear forwarding table:LFT)を計算することができる。1つ以上のLFTの各々は、1つ以上のスイ
ッチのうちの一のスイッチに関連付けられている。
【0005】
一実施形態に従うと、方法は、1つ以上のマイクロプロセッサを含む1つ以上のコンピュータにおいて、1つ以上のマイクロプロセッサと、少なくともリーフスイッチを含む1
つ以上のスイッチとを設けることができ、当該1つ以上のスイッチの各々は複数のポートを含み、さらに、複数のホストチャネルアダプタを設けることができ、ホストチャネルアダプタの各々は少なくとも1つの仮想機能、少なくとも1つの仮想スイッチおよび少なくとも1つの物理機能を含み、複数のホストチャネルアダプタは1つ以上のスイッチを介して相互接続されており、さらに、複数のハイパーバイザを設けることができ、複数のハイパーバイザの各々は、複数のホストチャネルアダプタのうち少なくとも1つのホストチャネルアダプタに関連付けられており、さらに、複数の仮想マシンを設けることができ、複数の仮想マシンの各々は少なくとも1つの仮想機能に関連付けられている。当該方法は、予めポピュレートされたローカル識別子(LID)アーキテクチャを備えた仮想スイッチまたは動的LID割当てアーキテクチャを備えた仮想スイッチのうち1つ以上を備えた複数のホストチャネルアダプタを配置することができる。当該方法は、仮想スイッチの各々に複数の物理的LID(physical LID:pLID)のうち1つのpLIDを割当てることができ、割当てられたpLIDは関連付けられた物理機能のpLIDに対応している。当該方法はまた、複数の仮想マシンの各々に複数の仮想LID(virtual LID:vLID)
のうち1つのvLIDを割当てることができ、LIDスペースは複数のpLIDおよび複数のvLIDを含んでいる。
【0006】
一実施形態に従うと、各々のpLID値は、インフィニバンドパケットのローカルルートヘッダにおける標準SLIDフィールドおよび標準DLIDフィールドを用いて表わすことができる。同様に、各々のvLID値は、拡張を表わす追加の2ビット以上と組合わせて、標準SLIDフィールドと標準DLIDフィールドとの組合せを用いて表わすことができる。
【図面の簡単な説明】
【0007】
図1】一実施形態に従ったインフィニバンド環境の一例を示す図である。
図2】一実施形態に従った、ネットワーク環境におけるツリートポロジーの一例を示す図である。
図3】一実施形態に従った例示的な共有ポートアーキテクチャを示す図である。
図4】一実施形態に従った例示的なvSwitchアーキテクチャを示す図である。
図5】一実施形態に従った例示的なvPortアーキテクチャを示す図である。
図6】一実施形態に従った、LIDが予めポピュレートされた例示的なvSwitchアーキテクチャを示す図である。
図7】一実施形態に従った、動的LID割当てがなされた例示的なvSwitchアーキテクチャを示す図である。
図8】一実施形態に従った、動的LID割当てがなされかつLIDが予めポピュレートされているvSwitchを備えた例示的なvSwitchアーキテクチャを示す図である。
図9】一実施形態に従った、拡張されたローカルルートヘッダを示す図である。
図10】一実施形態に従った、2つの例示的なリニアフォワーディングテーブルを示す図である。
図11】一実施形態に従った、無損失相互接続ネットワークにおける効率的な仮想化のサポートの例を示す図である。
図12】一実施形態に従った、無損失相互接続ネットワークにおける効率的な仮想化のサポートの例を示す図である。
図13】一実施形態に従った、無損失相互接続ネットワークにおける効率的な仮想化のサポートの例を示す図である。
図14】一実施形態に従った、無損失相互接続ネットワークにおける効率的な仮想化のサポートの例を示す図である。
図15】一実施形態に従った潜在的な仮想マシンマイグレーションを示す図である。
図16】一実施形態に従ったスイッチタプルを示す図である。
図17】一実施形態に従った再構成プロセスを示す図である。
図18】一実施形態に従った、無損失相互接続ネットワークにおける効率的な仮想化をサポートするための方法を示すフローチャートである。
図19】一実施形態に従った、無損失相互接続ネットワークにおける効率的な仮想化をサポートするための方法を示すフローチャートである。
【発明を実施するための形態】
【0008】
詳細な説明:
本発明は、同様の参照番号が同様の要素を指している添付図面の図において、限定のためではなく例示のために説明されている。なお、この開示における「ある」または「1つの」または「いくつかの」実施形態への参照は必ずしも同じ実施形態に対するものではなく、そのような参照は少なくとも1つを意味する。特定の実現例が説明されるが、これらの特定の実現例が例示的な目的のためにのみ提供されることが理解される。当業者であれば、他の構成要素および構成が、この発明の範囲および精神から逸脱することなく使用され得ることを認識するであろう。
【0009】
図面および詳細な説明全体にわたって同様の要素を示すために、共通の参照番号が使用され得る。したがって、ある図で使用される参照番号は、要素が別のところで説明される場合、そのような図に特有の詳細な説明において参照される場合もあり、または参照されない場合もある。
【0010】
無損失相互接続ネットワークにおける効率的な仮想化をサポートするためのシステムおよび方法がこの明細書中に記載される。
【0011】
この発明の以下の説明は、高性能ネットワークについての一例として、インフィニバンド(IB)ネットワークを使用する。他のタイプの高性能ネットワークが何ら限定されることなく使用され得ることが、当業者には明らかであるだろう。以下の説明ではまた、ファブリックトポロジーについての一例として、ファットツリートポロジーを使用する。他のタイプのファブリックトポロジーが何ら限定されることなく使用され得ることが当業者には明らかであるだろう。
【0012】
現代(たとえばExascale(エクサスケール)時代)におけるクラウドの要求を満たすために、仮想マシンがリモート・ダイレクト・メモリ・アクセス(Remote Direct Memory Access:RDMA)などの低オーバーヘッドネットワーク通信パラダイムを利用できるこ
とが望ましい。RDMAはOSスタックをバイパスし、ハードウェアと直接通信することで、シングルルートI/O仮想化(Single-Root I/O Virtualization:SR-IOV)ネットワークアダプタのようなパススルー技術が使用可能となる。一実施形態に従うと、高性能な無損失相互接続ネットワークにおける適用可能性のために、仮想スイッチ(virtual switch:vSwitch)SR-IOVアーキテクチャを提供することができる。ライブマイグレーションを実際に選択できるようにするためにネットワーク再構成時間が重要となるので、ネットワークアーキテクチャに加えて、スケーラブルであるとともにトポロジーに依存しない動的な再構成メカニズムを提供することができる。
【0013】
一実施形態に従うと、さらには、vSwitchを用いる仮想化された環境のためのルーティング戦略を提供することができ、ネットワークトポロジー(たとえばファットツリートポロジー)のための効率的なルーティングアルゴリズムを提供することができる。動的な再構成メカニズムは、ファットツリーにおいて課されるオーバーヘッドを最小限にするためにさらに調整することができる。
【0014】
本発明の一実施形態に従うと、仮想化は、クラウドコンピューティングにおける効率的なリソース利用および融通性のあるリソース割当てに有益であり得る。ライブマイグレーションは、アプリケーションにトランスペアレントな態様で物理サーバ間で仮想マシン(virtual machine:VM)を移動させることによってリソース使用を最適化することを可
能にする。このため、仮想化は、ライブマイグレーションによる統合、リソースのオン・デマンド・プロビジョニングおよび融通性を可能にし得る。
【0015】
インフィニバンド(登録商標)
インフィニバンド(IB)は、インフィニバンド・トレード・アソシエーション(InfiniBandTM Trade Association)によって開発されたオープン標準無損失ネットワーク技術である。この技術は、特に高性能コンピューティング(high-performance computing:HPC)アプリケーションおよびデータセンタを対象とする、高スループットおよび少ない待ち時間の通信を提供するシリアルポイントツーポイント全二重相互接続(serial point-to-point full-duplex interconnect)に基づいている。
【0016】
インフィニバンド・アーキテクチャ(InfiniBand Architecture:IBA)は、2層ト
ポロジー分割をサポートする。低層では、IBネットワークはサブネットと呼ばれ、1つのサブネットは、スイッチおよびポイントツーポイントリンクを使用して相互接続される一組のホストを含み得る。より高いレベルでは、1つのIBファブリックは、ルータを使用して相互接続され得る1つ以上のサブネットを構成する。
【0017】
1つのサブネット内で、ホストは、スイッチおよびポイントツーポイントリンクを使用して接続され得る。加えて、サブネットにおける指定されたデバイス上に存在する、1つのマスター管理エンティティ、すなわちサブネットマネージャ(subnet manager:SM)があり得る。サブネットマネージャは、IBサブネットを構成し、起動し、維持する役割を果たす。加えて、サブネットマネージャ(SM)は、IBファブリックにおいてルーティングテーブル計算を行なう役割を果たし得る。ここで、たとえば、IBネットワークのルーティングは、ローカルサブネットにおけるすべての送信元と宛先とのペア間の適正な負荷バランシングを目標とする。
【0018】
サブネット管理インターフェイスを通して、サブネットマネージャは、サブネット管理パケット(subnet management packet:SMP)と呼ばれる制御パケットを、サブネット管理エージェント(subnet management agent:SMA)と交換する。サブネット管理エ
ージェントは、すべてのIBサブネットデバイス上に存在する。SMPを使用することにより、サブネットマネージャは、ファブリックを発見し、エンドノードおよびスイッチを構成し、SMAから通知を受信することができる。
【0019】
一実施形態によれば、IBネットワークにおけるサブネット内のルーティングは、スイッチに格納されたLFTに基づき得る。LFTは、使用中のルーティングメカニズムに従って、SMによって計算される。サブネットでは、エンドノード上のホストチャネルアダプタ(Host Channel Adapter:HCA)ポートおよびスイッチが、ローカル識別子(LID)を使用してアドレス指定される。LFTにおける各エントリは、宛先LID(destination LID:DLID)と出力ポートとからなる。テーブルにおけるLIDごとに1つの
エントリのみがサポートされる。パケットがあるスイッチに到着すると、その出力ポートは、そのスイッチのフォワーディングテーブルにおいてDLIDを検索することによって判断される。所与の送信元-宛先ペア(LIDペア)間のネットワークにおいてパケットは同じ経路を通るため、ルーティングは決定論的である。
【0020】
一般に、マスターサブネットマネージャを除く他のすべてのサブネットマネージャは、
耐故障性のために待機モードで作動する。しかしながら、マスターサブネットマネージャが故障した状況では、待機中のサブネットマネージャによって、新しいマスターサブネットマネージャが取り決められる。マスターサブネットマネージャはまた、サブネットの周期的なスイープ(sweep)を行なってあらゆるトポロジー変化を検出し、それに応じてネ
ットワークを再構成する。
【0021】
さらに、サブネット内のホストおよびスイッチは、ローカル識別子(LID)を用いてアドレス指定され得るとともに、単一のサブネットは49151個のユニキャストLIDに制限され得る。サブネット内で有効なローカルアドレスであるLIDの他に、各IBデバイスは、64ビットのグローバル一意識別子(global unique identifier:GUID)を有し得る。GUIDは、IBレイヤー3(L3)アドレスであるグローバル識別子(global identifier:GID)を形成するために使用され得る。
【0022】
SMは、ネットワーク初期化時間に、ルーティングテーブル(すなわち、サブネット内のノードの各ペア間の接続/ルート)を計算し得る。さらに、トポロジーが変化するたびに、ルーティングテーブルは、接続性および最適性能を確実にするために更新され得る。通常動作中、SMは、トポロジー変化をチェックするためにネットワークの周期的なライトスイープ(light sweep)を実行し得る。ライトスイープ中に変化が発見された場合、
または、ネットワーク変化を信号で伝えるメッセージ(トラップ)をSMが受信した場合、SMは、発見された変化に従ってネットワークを再構成し得る。
【0023】
たとえば、SMは、リンクがダウンした場合、デバイスが追加された場合、またはリンクが除去された場合など、ネットワークトポロジーが変化する場合に、ネットワークを再構成し得る。再構成ステップは、ネットワーク初期化中に行なわれるステップを含み得る。さらに、再構成は、ネットワーク変化が生じたサブネットに制限されるローカルスコープを有し得る。また、ルータを用いる大規模ファブリックのセグメント化は、再構成スコープを制限し得る。
【0024】
一実施形態によれば、IBネットワークは、ネットワークファブリックを共有するシステムの論理グループの分離をもたらすためにセキュリティメカニズムとしてパーティショニングをサポートし得る。ファブリックにおけるノード上の各HCAポートは、1つ以上のパーティションのメンバであり得る。パーティションメンバーシップは、SMの一部であり得る集中型パーティションマネージャによって管理される。SMは、各ポートに関するパーティションメンバーシップ情報を、16ビットのパーティションキー(partition key:P_キー)のテーブルとして構成することができる。SMはまた、これらのポート
を介してデータトラフィックを送信または受信するエンドノードに関連付けられたP_Key情報を含むパーティション実施テーブルを用いて、スイッチポートおよびルータポートを構成することができる。加えて、一般的な場合には、スイッチポートのパーティションメンバーシップは、(リンクに向かう)出口方向に向かってポートを介してルーティングされたLIDに間接的に関連付けられたすべてのメンバーシップの集合を表わし得る。
【0025】
一実施形態によれば、ノード間の通信のために、管理キューペア(QP0およびQP1)を除き、キューペア(Queue Pair:QP)およびエンドツーエンドコンテキスト(End-to-End context:EEC)を特定のパーティションに割当てることができる。次に、P_キー情報を、送信されたすべてのIBトランスポートパケットに追加することができる。パケットがHCAポートまたはスイッチに到着すると、そのP_キー値を、SMによって構成されたテーブルに対して確認することができる。無効のP_キー値が見つかった場合、そのパケットは直ちに廃棄される。このように、通信は、パーティションを共有するポート間でのみ許可される。
【0026】
一実施形態に従ったインフィニバンド環境100の例を示す図1に、インフィニバンドファブリックの一例を示す。図1に示す例では、ノードA101~E105は、インフィニバンドファブリック120を使用して、それぞれのホストチャネルアダプタ111~115を介して通信する。一実施形態に従うと、さまざまなノード(たとえばノードA101~E105)はさまざまな物理デバイスによって表わすことができる。一実施形態に従うと、さまざまなノード(たとえばノードA101~E105)は仮想マシンなどのさまざまな仮想デバイスによって表わすことができる。
【0027】
インフィニバンドにおける仮想マシン
過去10年の間に、ハードウェア仮想化サポートによってCPUオーバーヘッドが実質的に排除され、メモリ管理ユニットを仮想化することによってメモリオーバーヘッドが著しく削減され、高速SANストレージまたは分散型ネットワークファイルシステムの利用によってストレージオーバーヘッドが削減され、シングルルートI/O仮想化(Single Root Input/Output Virtualization:SR-IOV)のようなデバイス・パススルー技術
を使用することによってネットワークI/Oオーバーヘッドが削減されてきたことに応じて、仮想化された高性能コンピューティング(High Performance Computing:HPC)環境の将来見通しが大幅に改善されてきた。現在では、クラウドが、高性能相互接続ソリューションを用いて仮想HPC(virtual HPC:vHPC)クラスタに対応し、必要な性能
を提供することができる。
【0028】
しかしながら、インフィニバンド(IB)などの無損失ネットワークと連結されたとき、仮想マシン(VM)のライブマイグレーションなどのいくつかのクラウド機能は、これらのソリューションにおいて用いられる複雑なアドレス指定およびルーティングスキームのせいで、依然として問題となる。IBは、高帯域および低レイテンシを提供する相互接続ネットワーク技術であり、このため、HPCおよび他の通信集約型の作業負荷に非常によく適している。
【0029】
IBデバイスをVMに接続するための従来のアプローチは直接割当てされたSR-IOVを利用することによるものである。しかしながら、SR-IOVを用いてIBホストチャネルアダプタ(HCA)に割当てられたVMのライブマイグレーションを実現することは難易度の高いものであることが判明した。各々のIBが接続されているノードは、3つの異なるアドレス(すなわちLID、GUIDおよびGID)を有する。ライブマイグレーションが発生すると、これらのアドレスのうち1つ以上が変化する。マイグレーション中のVM(VM-in-migration)と通信する他のノードは接続性を失う可能性がある。これ
が発生すると、IBサブネットマネージャ(Subnet Manager:SM)にサブネット管理(Subnet Administration:SA)経路記録クエリを送信することによって、再接続すべき
仮想マシンの新しいアドレスを突きとめることにより、失われた接続を回復させるように試みることができる。
【0030】
IBは3つの異なるタイプのアドレスを用いる。第1のタイプのアドレスは16ビットのローカル識別子(LID)である。少なくとも1つの固有のLIDは、SMによって各々のHCAポートおよび各々のスイッチに割当てられる。LIDはサブネット内のトラフィックをルーティングするために用いられる。LIDが16ビット長であるので、65536個の固有のアドレス組合せを構成することができ、そのうち49151個(0×0001-0×BFFF)だけをユニキャストアドレスとして用いることができる。結果として、入手可能なユニキャストアドレスの数は、IBサブネットの最大サイズを定義することとなる。第2のタイプのアドレスは、製造業者によって各々のデバイス(たとえば、HCAおよびスイッチ)ならびに各々のHCAポートに割当てられた64ビットのグローバル一意識別子(GUID)である。SMは、HCAポートに追加のサブネット固有GUIDを割当ててもよく、これは、SR-IOVが用いられる場合に有用となる。第3のタイ
プのアドレスは128ビットのグローバル識別子(GID)である。GIDは有効なIPv6ユニキャストアドレスであり、少なくとも1つが各々のHCAポートに割当てられている。GIDは、ファブリックアドミニストレータによって割当てられたグローバルに固有の64ビットプレフィックスと各々のHCAポートのGUIDアドレスとを組合わせることによって形成される。
【0031】
ファットツリー(Fat Tree:FTree)トポロジーおよびルーティング
一実施形態によれば、IBベースのHPCシステムのいくつかは、ファットツリートポロジーを採用して、ファットツリーが提供する有用な特性を利用する。これらの特性は、各送信元宛先ペア間の複数経路の利用可能性に起因する、フルバイセクション帯域幅および固有の耐故障性を含む。ファットツリーの背後にある初期の概念は、ツリーがトポロジーのルート(root)に近づくにつれて、より利用可能な帯域幅を用いて、ノード間のより太いリンクを採用することであった。より太いリンクは、上位レベルのスイッチにおける輻輳を回避するのに役立てることができ、バイセクション帯域幅が維持される。
【0032】
図2は、一実施形態に従った、ネットワーク環境におけるツリートポロジーの例を示す。図2に示すように、ネットワークファブリック200において、1つ以上のエンドノード201~204が接続され得る。ネットワークファブリック200は、複数のリーフスイッチ211~214と複数のスパインスイッチまたはルート(root)スイッチ231~234とを含むファットツリートポロジーに基づき得る。加えて、ネットワークファブリック200は、スイッチ221~224などの1つ以上の中間スイッチを含み得る。
【0033】
また、図2に示すように、エンドノード201~204の各々は、マルチホームノード、すなわち、複数のポートを介してネットワークファブリック200のうち2つ以上の部分に接続される単一のノードであり得る。たとえば、ノード201はポートH1およびH2を含み、ノード202はポートH3およびH4を含み、ノード203はポートH5およびH6を含み、ノード204はポートH7およびH8を含み得る。
【0034】
加えて、各スイッチは複数のスイッチポートを有し得る。たとえば、ルートスイッチ231はスイッチポート1~2を有し、ルートスイッチ232はスイッチポート3~4を有し、ルートスイッチ233はスイッチポート5~6を有し、ルートスイッチ234はスイッチポート7~8を有し得る。
【0035】
一実施形態によれば、ファットツリールーティングメカニズムは、IBベースのファットツリートポロジーに関して最も人気のあるルーティングアルゴリズムのうちの1つである。ファットツリールーティングメカニズムはまた、OFED(Open Fabric Enterprise
Distribution:IBベースのアプリケーションを構築しデプロイするための標準ソフト
ウェアスタック)サブネットマネージャ、すなわちOpenSMにおいて実現される。
【0036】
ファットツリールーティングメカニズムの目的は、ネットワークファブリックにおけるリンクにわたって最短経路ルートを均一に広げるLFTを生成することである。このメカニズムは、索引付け順序でファブリックを横断し、エンドノードの目標LID、ひいては対応するルートを各スイッチポートに割当てる。同じリーフスイッチに接続されたエンドノードについては、索引付け順序は、エンドノードが接続されるスイッチポートに依存し得る(すなわち、ポートナンバリングシーケンス)。各ポートについては、メカニズムはポート使用カウンタを維持することができ、新しいルートが追加されるたびに、ポート使用カウンタを使用して使用頻度が最小のポートを選択することができる。
【0037】
一実施形態に従うと、パーティショニングされたサブネットでは、共通のパーティションのメンバではないノードは通信することを許可されない。実際には、これは、ファット
ツリールーティングアルゴリズムによって割当てられたルートのうちのいくつかがユーザトラフィックのために使用されないことを意味する。ファットツリールーティングメカニズムが、それらのルートについてのLFTを、他の機能的経路と同じやり方で生成する場合、問題が生じる。この動作は、リンク上でバランシングを劣化させるおそれがある。なぜなら、ノードが索引付けの順序でルーティングされているからである。パーティションに気づかずにルーティングが行なわれるため、ファットツリーでルーティングされたサブネットにより、概して、パーティション間の分離が不良なものとなる。
【0038】
一実施形態に従うと、ファットツリーは、利用可能なネットワークリソースでスケーリングすることができる階層ネットワークトポロジーである。さらに、ファットツリーは、さまざまなレベルの階層に配置された商品スイッチを用いて容易に構築される。さらに、k-ary-n-tree、拡張された一般化ファットツリー(Extended Generalized Fat-Tree:XGFT)、パラレルポート一般化ファットツリー(Parallel Ports Generalized Fat-Tree:PGFT)およびリアルライフファットツリー(Real Life Fat-Tree:RLFT)を含むファットツリーのさまざまな変形例が、一般に利用可能である。
【0039】
また、k-ary-n-treeは、nレベルのファットツリーであって、kエンドノードと、n・kn-1スイッチとを備え、各々が2kポートを備えている。各々のスイ
ッチは、ツリーにおいて上下方向に同数の接続を有している。XGFTファットツリーは、スイッチのための異なる数の上下方向の接続と、ツリーにおける各レベルでの異なる数の接続とをともに可能にすることによって、k-ary-n-treeを拡張させる。PGFT定義はさらに、XGFTトポロジーを拡張して、スイッチ間の複数の接続を可能にする。多種多様なトポロジーはXGFTおよびPGFTを用いて定義することができる。しかしながら、実用化するために、現代のHPCクラスタにおいて一般に見出されるファットツリーを定義するために、PGFTの制限バージョンであるRLFTが導入されている。RLFTは、ファットツリーにおけるすべてのレベルに同じポートカウントスイッチを用いている。
【0040】
入出力(Input/Output:I/O)仮想化
一実施形態に従うと、I/O仮想化(I/O Virtualization:IOV)は、基礎をなす物理リソースに仮想マシン(VM)がアクセスすることを可能にすることによって、I/Oを利用可能にすることができる。ストレージトラフィックとサーバ間通信とを組合せると、シングルサーバのI/Oリソースにとって抗し難い高い負荷が課され、結果として、データの待機中に、バックログが発生し、プロセッサがアイドル状態になる可能性がある。I/O要求の数が増えるにつれて、IOVにより利用可能性をもたらすことができ、最新のCPU仮想化において見られる性能レベルに匹敵するように、(仮想化された)I/Oリソースの性能、スケーラビリティおよび融通性を向上させることができる。
【0041】
一実施形態に従うと、I/Oリソースの共有を可能にして、VMからリソースへのアクセスが保護されることを可能にし得るようなIOVが所望される。IOVは、VMにエクスポーズされる論理装置を、その物理的な実装から分離する。現在、エミュレーション、準仮想化、直接的な割当て(direct assignment:DA)、およびシングルルートI/O
仮想化(SR-IOV)などのさまざまなタイプのIOV技術が存在し得る。
【0042】
一実施形態に従うと、あるタイプのIOV技術としてソフトウェアエミュレーションがある。ソフトウェアエミュレーションは分離されたフロントエンド/バックエンド・ソフトウェアアーキテクチャを可能にし得る。フロントエンドはVMに配置されたデバイスドライバであり得、I/Oアクセスをもたらすためにハイパーバイザによって実現されるバックエンドと通信し得る。物理デバイス共有比率は高く、VMのライブマイグレーションはネットワークダウンタイムのわずか数ミリ秒で実現可能である。しかしながら、ソフト
ウェアエミュレーションはさらなる不所望な計算上のオーバーヘッドをもたらしてしまう。
【0043】
一実施形態に従うと、別のタイプのIOV技術として直接的なデバイスの割当てがある。直接的なデバイスの割当てでは、I/OデバイスをVMに連結する必要があるが、デバイスはVM間では共有されない。直接的な割当てまたはデバイス・パススルーは、最小限のオーバーヘッドでほぼ固有の性能を提供する。物理デバイスはハイパーバイザをバイパスし、直接、VMに取付けられている。しかしながら、このような直接的なデバイスの割当ての欠点は、仮想マシン間で共有がなされないため、1枚の物理ネットワークカードが1つのVMと連結されるといったように、スケーラビリティが制限されてしまうことである。
【0044】
一実施形態に従うと、シングルルートIOV(Single Root IOV:SR-IOV)は、
ハードウェア仮想化によって、物理装置がその同じ装置の複数の独立した軽量のインスタンスとして現われることを可能にし得る。これらのインスタンスは、パススルー装置としてVMに割当てることができ、仮想機能(Virtual Function:VF)としてアクセスすることができる。ハイパーバイザは、(1つのデバイスごとに)固有の、十分な機能を有する物理機能(Physical Function:PF)によってデバイスにアクセスする。SR-IO
Vは、純粋に直接的に割当てする際のスケーラビリティの問題を軽減する。しかしながら、SR-IOVによって提示される問題は、それがVMマイグレーションを損なう可能性があることである。これらのIOV技術の中でも、SR-IOVは、ほぼ固有の性能を維持しながらも、複数のVMから単一の物理デバイスに直接アクセスすることを可能にする手段を用いてPCI Express(PCIe)規格を拡張することができる。これにより、SR-IOVは優れた性能およびスケーラビリティを提供することができる。
【0045】
SR-IOVは、PCIeデバイスが、各々のゲストに1つの仮想デバイスを割当てることによって複数のゲスト間で共有することができる複数の仮想デバイスをエクスポーズすることを可能にする。各々のSR-IOVデバイスは、少なくとも1つの物理機能(PF)と、1つ以上の関連付けられた仮想機能(VF)とを有する。PFは、仮想マシンモニタ(virtual machine monitor:VMM)またはハイパーバイザによって制御される通
常のPCIe機能であるのに対して、VFは軽量のPCIe機能である。各々のVFはそれ自体のベースアドレス(base address:BAR)を有しており、固有のリクエスタIDが割当てられている。固有のリクエスタIDは、I/Oメモリ管理ユニット(I/O memory
management unit:IOMMU)がさまざまなVFへの/からのトラフィックストリームを区別することを可能にする。IOMMUはまた、メモリを適用して、PFとVFとの間の変換を中断する。
【0046】
しかし、残念ながら、直接的デバイス割当て技術は、仮想マシンのトランスペアレントなライブマイグレーションがデータセンタ最適化のために所望されるような状況においては、クラウドプロバイダにとって障壁となる。ライブマイグレーションの本質は、VMのメモリ内容がリモートハイパーバイザにコピーされるという点である。さらに、VMがソースハイパーバイザにおいて中断され、VMの動作が宛先において再開される。ソフトウェアエミュレーション方法を用いる場合、ネットワークインターフェイスは、それらの内部状態がメモリに記憶され、さらにコピーされるように仮想的である。このため、ダウンタイムは数ミリ秒にまで減らされ得る。
【0047】
しかしながら、SR-IOVなどの直接的デバイス割当て技術が用いられる場合、マイグレーションはより困難になる。このような状況においては、ネットワークインターフェイスの内部状態全体は、それがハードウェアに結び付けられているのでコピーすることができない。代わりに、VMに割当てられたSR-IOV VFが分離され、ライブマイグ
レーションが実行されることとなり、新しいVFが宛先において付与されることとなる。インフィニバンドおよびSR-IOVの場合、このプロセスがダウンタイムを数秒のオーダでもたらす可能性がある。さらに、SR-IOV共有型ポートモデルにおいては、VMのアドレスがマイグレーション後に変化することとなり、これにより、SMにオーバーヘッドが追加され、基礎をなすネットワークファブリックの性能に対して悪影響が及ぼされることとなる。
【0048】
インフィニバンドSR-IOVアーキテクチャ-共有ポート
さまざまなタイプのSR-IOVモデル(たとえば共有ポートモデル、仮想スイッチモデルおよび仮想ポートモデル)があり得る。
【0049】
図3は、一実施形態に従った例示的な共有ポートアーキテクチャを示す。図に示されるように、ホスト300(たとえばホストチャネルアダプタ)はハイパーバイザ310と対話し得る。ハイパーバイザ310は、さまざまな仮想機能330、340および350をいくつかの仮想マシンに割当て得る。同様に、物理機能はハイパーバイザ310によって処理することができる。
【0050】
一実施形態に従うと、図3に示されるような共有ポートアーキテクチャを用いる場合、ホスト(たとえばHCA)は、物理機能320と仮想機能330、350、350との間において単一の共有LIDおよび共有キュー対(Queue Pair:QP)のスペースがあるネットワークにおいて単一のポートとして現われる。しかしながら、各々の機能(すなわち、物理機能および仮想機能)はそれら自体のGIDを有し得る。
【0051】
図3に示されるように、一実施形態に従うと、さまざまなGIDを仮想機能および物理機能に割当てることができ、特別のキュー対であるQP0およびQP1(すなわちインフィニバンド管理パケットのために用いられる専用のキュー対)が物理機能によって所有される。これらのQPはVFにも同様にエクスポーズされるが、VFはQP0を使用することが許可されておらず(VFからQP0に向かって入来するすべてのSMPが廃棄され)、QP1は、PFが所有する実際のQP1のプロキシとして機能し得る。
【0052】
一実施形態に従うと、共有ポートアーキテクチャは、(仮想機能に割当てられることによってネットワークに付随する)VMの数によって制限されることのない高度にスケーラブルなデータセンタを可能にし得る。なぜなら、ネットワークにおける物理的なマシンおよびスイッチによってLIDスペースが消費されるだけであるからである。
【0053】
しかしながら、共有ポートアーキテクチャの欠点は、トランスペアレントなライブマイグレーションを提供することができない点であり、これにより、フレキシブルなVM配置についての可能性が妨害されてしまう。各々のLIDが特定のハイパーバイザに関連付けられており、かつハイパーバイザ上に常駐するすべてのVM間で共有されているので、マイグレートしているVM(すなわち、宛先ハイパーバイザにマイグレートする仮想マシン)は、そのLIDを宛先ハイパーバイザのLIDに変更させなければならない。さらに、QP0アクセスが制限された結果、サブネットマネージャはVMの内部で実行させることができなくなる。
【0054】
インフィニバンドSR-IOVアーキテクチャモデル-仮想スイッチ(vSwitch)
図4は、一実施形態に従った例示的なvSwitchアーキテクチャを示す。図に示されるように、ホスト400(たとえばホストチャネルアダプタ)はハイパーバイザ410と対話することができ、当該ハイパーバイザ410は、さまざまな仮想機能430、440および450をいくつかの仮想マシンに割当てることができる。同様に、物理機能はハ
イパーバイザ410によって処理することができる。仮想スイッチ415もハイパーバイザ401によって処理することができる。
【0055】
一実施形態に従うと、vSwitchアーキテクチャにおいては、各々の仮想機能430、440、450は完全な仮想ホストチャネルアダプタ(virtual Host Channel Adapter:vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSMについては、HCA400は、仮想スイッチ415を介して追加のノードが接続されているスイッチのように見えている。ハイパーバイザ410はPF420を用いることができ、(仮想機能に付与された)VMはVFを用いる。
【0056】
一実施形態に従うと、vSwitchアーキテクチャは、トランスペアレントな仮想化を提供する。しかしながら、各々の仮想機能には固有のLIDが割当てられているので、利用可能な数のLIDが速やかに消費される。同様に、多くのLIDアドレスが(すなわち、各々の物理機能および各々の仮想機能ごとに1つずつ)使用されている場合、より多くの通信経路をSMによって演算しなければならず、それらのLFTを更新するために、より多くのサブネット管理パケット(SMP)をスイッチに送信しなければならない。たとえば、通信経路の演算は大規模ネットワークにおいては数分かかる可能性がある。LIDスペースが49151個のユニキャストLIDに制限されており、(VFを介する)各々のVMとして、物理ノードおよびスイッチがLIDを1つずつ占有するので、ネットワークにおける物理ノードおよびスイッチの数によってアクティブなVMの数が制限されてしまい、逆の場合も同様に制限される。
【0057】
インフィニバンドSR-IOVアーキテクチャモデル-仮想ポート(vPort)
図5は、一実施形態に従った例示的なvPortの概念を示す。図に示されるように、ホスト300(たとえばホストチャネルアダプタ)は、さまざまな仮想機能330、340および350をいくつかの仮想マシンに割当てることができるハイパーバイザ410と対話することができる。同様に、物理機能はハイパーバイザ310によって処理することができる。
【0058】
一実施形態に従うと、ベンダーに実装の自由を与えるためにvPort概念は緩やかに定義されており(たとえば、当該定義では、実装がSRIOV専用とすべきであるとは規定されていない)、vPortの目的は、VMがサブネットにおいて処理される方法を標準化することである。vPort概念であれば、空間ドメインおよび性能ドメインの両方においてよりスケーラブルであり得る、SR-IOV共有のポートのようなアーキテクチャおよびvSwitchのようなアーキテクチャの両方、または、これらのアーキテクチャの組合せが規定され得る。また、vPortはオプションのLIDをサポートするとともに、共有のポートとは異なり、SMは、vPortが専用のLIDを用いていなくても、サブネットにおいて利用可能なすべてのvPortを認識する。
【0059】
インフィニバンドSR-IOVアーキテクチャモデル-LIDが予めポピュレートされたvSwitch
一実施形態に従うと、本開示は、LIDが予めポピュレートされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。
【0060】
図6は、一実施形態に従った、LIDが予めポピュレートされた例示的なvSwitchアーキテクチャを示す。図に示されるように、いくつかのスイッチ501~504は、ネットワーク切替環境600(たとえばIBサブネット)内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリック
はホストチャネルアダプタ510、520、530などのいくつかのハードウェアデバイスを含み得る。さらに、ホストチャネルアダプタ510、520および530は、それぞれ、ハイパーバイザ511、521および531と対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能514、515、516、524、525、526、534、535および536と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン1 550はハイパーバイザ511によって仮想機能1 514に割当てることができる。ハイパーバイザ511は、加えて、仮想マシン2 551を仮想機能2 515に割当て、仮想マシン3
552を仮想機能3 516に割当てることができる。ハイパーバイザ531は、さらに、仮想マシン4 553を仮想機能1 534に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上で十分な機能を有する物理機能513、523および533を介してホストチャネルアダプタにアクセスすることができる。
【0061】
一実施形態に従うと、スイッチ501~504の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境600内においてトラフィックを方向付けるためにリニアフォワーディングテーブルを設定するのに用いられる。
【0062】
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521、531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して追加のノードが接続されているスイッチのように見えている。
【0063】
一実施形態に従うと、本開示は、LIDが予めポピュレートされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。図5を参照すると、LIDは、さまざまな物理機能513、523および533に、さらには、仮想機能514~516、524~526、534~536(その時点でアクティブな仮想マシンに関連付けられていない仮想機能であっても)にも、予めポピュレートされている。たとえば、物理機能513はLID1が予めポピュレートされており、仮想機能1 534はLID10が予めポピュレートされている。ネットワークがブートされているとき、LIDはSR-IOV vSwitch対応のサブネットにおいて予めポピュレートされている。VFのすべてがネットワークにおけるVMによって占有されていない場合であっても、ポピュレートされたVFには、図5に示されるようにLIDが割当てられている。
【0064】
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが2つ以上のポートを有することができ(冗長性のために2つのポートが共用となっている)、仮想HCAも2つのポートで表わされ、1つまたは2つ以上の仮想スイッチを介して外部IBサブネットに接続され得る。
【0065】
一実施形態に従うと、LIDが予めポピュレートされたvSwitchアーキテクチャにおいては、各々のハイパーバイザは、それ自体のための1つのLIDをPFを介して消費し、各々の追加のVFごとに1つ以上のLIDを消費することができる。IBサブネットにおけるすべてのハイパーバイザにおいて利用可能なすべてのVFを合計すると、サブネットにおいて実行することが可能なVMの最大量が得られる。たとえば、サブネット内の1ハイパーバイザごとに16個の仮想機能を備えたIBサブネットにおいては、各々のハイパーバイザは、サブネットにおいて17個のLID(16個の仮想機能ごとに1つのLIDと、物理機能のために1つのLID)を消費する。このようなIBサブネットにお
いては、単一のサブネットについて理論上のハイパーバイザ限度は利用可能なユニキャストLIDの数によって規定されており、(49151個の利用可能なLIDをハイパーバイザごとに17個のLIDで割って得られる)2891であり、VMの総数(すなわち限度)は(ハイパーバイザごとに2891個のハイパーバイザに16のVFを掛けて得られる)46256である(実質的には、IBサブネットにおける各々のスイッチ、ルータまたは専用のSMノードが同様にLIDを消費するので、これらの数は実際にはより小さくなる)。なお、vSwitchが、LIDをPFと共有することができるので、付加的なLIDを占有する必要がないことに留意されたい。
【0066】
一実施形態に従うと、LIDが予めポピュレートされたvSwitchアーキテクチャにおいては、ネットワークが一旦ブートされると、すべてのLIDについて通信経路が計算される。新しいVMを始動させる必要がある場合、システムは、サブネットにおいて新しいLIDを追加する必要はない。それ以外の場合、経路の再計算を含め、ネットワークを完全に再構成させ得る動作は、最も時間を消費する要素となる。代わりに、VMのための利用可能なポートはハイパーバイザのうちの1つに位置し(すなわち利用可能な仮想機能)、仮想マシンは利用可能な仮想機能に付与されている。
【0067】
一実施形態に従うと、LIDが予めポピュレートされたvSwitchアーキテクチャはまた、同じハイパーバイザによってホストされているさまざまなVMに達するために、さまざまな経路を計算して用いる能力を可能にする。本質的には、これは、LIDを連続的にすることを必要とするLMCの制約によって拘束されることなく、1つの物理的なマシンに向かう代替的な経路を設けるために、このようなサブネットおよびネットワークがLIDマスク制御ライク(LID-Mask-Control-like:LMCライク)な特徴を用いること
を可能にする。VMをマイグレートしてその関連するLIDを宛先に送達する必要がある場合、不連続なLIDを自由に使用できることは特に有用となる。
【0068】
一実施形態に従うと、LIDが予めポピュレートされたvSwitchアーキテクチャについての上述の利点と共に、いくつかの検討事項を考慮に入れることができる。たとえば、ネットワークがブートされているときに、SR-IOV vSwitch対応のサブネットにおいてLIDが予めポピュレートされているので、(たとえば起動時の)最初の経路演算はLIDが予めポピュレートされていなかった場合よりも時間が長くかかる可能性がある。
【0069】
インフィニバンドSR-IOVアーキテクチャモデル-動的LID割当てがなされたvSwitch
一実施形態に従うと、本開示は、動的LID割当てがなされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。
【0070】
図7は、一実施形態に従った、動的LID割当てがなされた例示的なvSwitchアーキテクチャを示す。図に示されるように、いくつかのスイッチ501~504は、ネットワーク切替環境700(たとえばIBサブネット)内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックは、ホストチャネルアダプタ510、520、530などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ510、520および530は、さらに、ハイパーバイザ511、521および531とそれぞれ対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能514、515、516、524、525、526、534、535および536と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン1 550はハイパーバイザ511によって仮想機能1 514に割当てることができる。ハイパーバイザ511は、加えて、仮想マシン2 551を仮想機能2 515に割当て、仮想マシン3 5
52を仮想機能3 516に割当てることができる。ハイパーバイザ531はさらに、仮想マシン4 553を仮想機能1 534に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上において十分な機能を有する物理機能513、523および533を介してホストチャネルアダプタにアクセスすることができる。
【0071】
一実施形態に従うと、スイッチ501~504の各々はいくつかのポート(図示せず)を含み得る。いくつかのポートは、ネットワーク切替環境700内においてトラフィックを方向付けるためにリニアフォワーディングテーブルを設定するのに用いられる。
【0072】
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521および531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
【0073】
一実施形態に従うと、本開示は、動的LID割当てがなされたvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。図7を参照すると、LIDには、さまざまな物理機能513、523および533が動的に割当てられており、物理機能513がLID1を受取り、物理機能523がLID2を受取り、物理機能533がLID3を受取る。アクティブな仮想マシンに関連付けられたそれらの仮想機能はまた、動的に割当てられたLIDを受取ることもできる。たとえば、仮想マシン1 550がアクティブであり、仮想機能1 514に関連付けられているので、仮想機能514にはLID5が割当てられ得る。同様に、仮想機能2 515、仮想機能3 516および仮想機能1 534は、各々、アクティブな仮想機能に関連付けられている。このため、これらの仮想機能にLIDが割当てられ、LID7が仮想機能2 515に割当てられ、LID11が仮想機能3 516に割当てられ、LID9が仮想機能1 534に割当てられている。LIDが予めポピュレートされたvSwitchとは異なり、アクティブな仮想マシンにその時点で関連付けられていない仮想機能はLIDの割当てを受けない。
【0074】
一実施形態に従うと、動的LID割当てがなされていれば、最初の経路演算を実質的に減らすことができる。ネットワークが初めてブートしており、VMが存在していない場合、比較的少数のLIDを最初の経路計算およびLFT分配のために用いることができる。
【0075】
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが2つ以上のポートを有することができ(冗長性のために2つのポートが共用となっている)、仮想HCAも2つのポートで表わされ、1つまたは2つ以上の仮想スイッチを介して外部IBサブネットに接続され得る。
【0076】
一実施形態に従うと、動的LID割当てがなされたvSwitchを利用するシステムにおいて新しいVMが作成される場合、どのハイパーバイザ上で新しく追加されたVMをブートすべきであるかを決定するために、自由なVMスロットが発見され、固有の未使用のユニキャストLIDも同様に発見される。しかしながら、新しく追加されたLIDを処理するためのスイッチのLFTおよびネットワークに既知の経路が存在しない。新しく追加されたVMを処理するために新しいセットの経路を演算することは、いくつかのVMが毎分ごとにブートされ得る動的な環境においては望ましくない。大規模なIBサブネットにおいては、新しい1セットのルートの演算には数分かかる可能性があり、この手順は、新しいVMがブートされるたびに繰返されなければならないだろう。
【0077】
有利には、一実施形態に従うと、ハイパーバイザにおけるすべてのVFがPFと同じアップリンクを共有しているので、新しいセットのルートを演算する必要はない。ネットワークにおけるすべての物理スイッチのLFTを繰返し、(VMが作成されている)ハイパーバイザのPFに属するLIDエントリから新しく追加されたLIDにフォワーディングポートをコピーし、かつ、特定のスイッチの対応するLFTブロックを更新するために単一のSMPを送信するだけでよい。これにより、当該システムおよび方法では、新しいセットのルートを演算する必要がなくなる。
【0078】
一実施形態に従うと、動的LID割当てアーキテクチャを備えたvSwitchにおいて割当てられたLIDは連続的である必要はない。各々のハイパーバイザ上のVM上で割当てられたLIDをLIDが予めポピュレートされたvSwitchと動的LID割当てがなされたvSwitchとで比較すると、動的LID割当てアーキテクチャにおいて割当てられたLIDが不連続であり、そこに予めポピュレートされたLIDが本質的に連続的であることが分かるだろう。さらに、vSwitch動的LID割当てアーキテクチャにおいては、新しいVMが作成されると、次に利用可能なLIDが、VMの生存期間の間中ずっと用いられる。逆に、LIDが予めポピュレートされたvSwitchにおいては、各々のVMは、対応するVFに既に割当てられているLIDを引継ぎ、ライブマイグレーションのないネットワークにおいては、所与のVFに連続的に付与されたVMが同じLIDを得る。
【0079】
一実施形態に従うと、動的LID割当てアーキテクチャを備えたvSwitchは、いくらかの追加のネットワークおよびランタイムSMオーバーヘッドを犠牲にして、予めポピュレートされたLIDアーキテクチャモデルを備えたvSwitchの欠点を解決することができる。VMが作成されるたびに、作成されたVMに関連付けられた、新しく追加されたLIDで、サブネットにおける物理スイッチのLFTが更新される。この動作のために、1スイッチごとに1つのサブネット管理パケット(SMP)が送信される必要がある。各々のVMがそのホストハイパーバイザと同じ経路を用いているので、LMCのような機能も利用できなくなる。しかしながら、すべてのハイパーバイザに存在するVFの合計に対する制限はなく、VFの数は、ユニキャストLIDの限度を上回る可能性もある。このような場合、当然、アクティブなVM上でVFのすべてが必ずしも同時に付与されることが可能になるわけではなく、より多くの予備のハイパーバイザおよびVFを備えることにより、ユニキャストLID限度付近で動作する際に、断片化されたネットワークの障害を回復および最適化させるための融通性が追加される。
【0080】
インフィニバンドSR-IOVアーキテクチャモデル-動的LID割当てがなされかつLIDが予めポピュレートされたvSwitch
図8は、一実施形態に従った、動的LID割当てがなされてLIDが予めポピュレートされたvSwitchを備えた例示的なvSwitchアーキテクチャを示す。図に示されるように、いくつかのスイッチ501~504は、ネットワーク切替環境800(たとえばIBサブネット)内においてインフィニバンドファブリックなどのファブリックのメンバ間で通信を確立することができる。ファブリックはホストチャネルアダプタ510、520、530などのいくつかのハードウェアデバイスを含み得る。ホストチャネルアダプタ510、520および530は、それぞれ、さらに、ハイパーバイザ511、521および531と対話することができる。各々のハイパーバイザは、さらに、ホストチャネルアダプタと共に、いくつかの仮想機能514、515、516、524、525、526、534、535および536と対話し、設定し、いくつかの仮想マシンに割当てることができる。たとえば、仮想マシン1 550は、ハイパーバイザ511によって仮想機能1 514に割当てることができる。ハイパーバイザ511は、加えて、仮想マシン2
551を仮想機能2 515に割当てることができる。ハイパーバイザ521は、仮想
マシン3 552を仮想機能3 526に割当てることができる。ハイパーバイザ531は、さらに、仮想マシン4 553を仮想機能2 535に割当てることができる。ハイパーバイザは、ホストチャネルアダプタの各々の上において十分な機能を有する物理機能513、523および533を介してホストチャネルアダプタにアクセスすることができる。
【0081】
一実施形態に従うと、スイッチ501~504の各々はいくつかのポート(図示せず)を含み得る。これらいくつかのポートは、ネットワーク切替環境800内においてトラフィックを方向付けるためにリニアフォワーディングテーブルを設定するのに用いられる。
【0082】
一実施形態に従うと、仮想スイッチ512、522および532は、それぞれのハイパーバイザ511、521、531によって処理することができる。このようなvSwitchアーキテクチャにおいては、各々の仮想機能は、完全な仮想ホストチャネルアダプタ(vHCA)であり、これは、ハードウェアにおいて、VFに割当てられたVMに、IBアドレス一式(たとえばGID、GUID、LID)および専用のQPスペースが割当てられていることを意味する。残りのネットワークおよびSM(図示せず)については、HCA510、520および530は、仮想スイッチを介して、追加のノードが接続されているスイッチのように見えている。
【0083】
一実施形態に従うと、本開示は、動的LID割当てがなされLIDが予めポピュレートされたハイブリッドvSwitchアーキテクチャを提供するためのシステムおよび方法を提供する。図7を参照すると、ハイパーバイザ511には、予めポピュレートされたLIDアーキテクチャを備えたvSwitchが配置され得るとともに、ハイパーバイザ521には、LIDが予めポピュレートされて動的LID割当てがなされたvSwitchが配置され得る。ハイパーバイザ531には、動的LID割当てがなされたvSwitchが配置され得る。このため、物理機能513および仮想機能514~516には、それらのLIDが予めポピュレートされている(すなわち、アクティブな仮想マシンに付与されていない仮想機能であってもLIDが割当てられている)。物理機能523および仮想機能1 524にはそれらのLIDが予めポピュレートされ得るとともに、仮想機能2 525および仮想機能3 526にはそれらのLIDが動的に割当てられている(すなわち、仮想機能2 525は動的LID割当てのために利用可能であり、仮想機能3 526は、仮想マシン3 552が付与されているので、11というLIDが動的に割当てられている)。最後に、ハイパーバイザ3 531に関連付けられた機能(物理機能および仮想機能)にはそれらのLIDを動的に割当てることができる。これにより、結果として、仮想機能1 534および仮想機能3 536が動的LID割当てのために利用可能となるとともに、仮想機能2 535には、仮想マシン4 553が付与されているので、9というLIDが動的に割当てられている。
【0084】
LIDが予めポピュレートされたvSwitchおよび動的LID割当てがなされたvSwitchがともに(いずれかの所与のハイパーバイザ内で独立して、または組合わされて)利用されている、図8に示されるような一実施形態に従うと、ホストチャネルアダプタごとの予めポピュレートされたLIDの数はファブリックアドミニストレータによって定義することができ、(ホストチャネルアダプタごとに)0<=予めポピュレートされたVF<=総VFの範囲内になり得る。動的LID割当てのために利用可能なVFは、(ホストチャネルアダプタごとに)VFの総数から予めポピュレートされたVFの数を減じることによって見出すことができる。
【0085】
一実施形態に従うと、多くの同様の物理的なホストチャネルアダプタが2つ以上のポートを有することができ(冗長性のために2つのポートが共用となっている)、仮想HCAも2つのポートで表わされ、1つまたは2つ以上の仮想スイッチを介して外部IBサブネ
ットに接続され得る。
【0086】
vSwitchスケーラビリティ
一実施形態に従うと、vSwitchアーキテクチャを用いる場合の問題はLIDスペースが制限されていることである。LIDスペースに関するスケーラビリティの問題を克服するために、以下の3つの代替例(各々を以下にさらに詳細に説明する)を独立して用いるかまたは組合わせることができる:すなわち、複数のサブネットを用いること;後方互換性のあるLIDスペース拡張を導入すること;および、軽量のvSwitchを形成するためにvPortアーキテクチャとvSwitchアーキテクチャとを組合わせること;である。
【0087】
一実施形態に従うと、複数のIBサブネットを用いることができる。LIDは、層2アドレスであり、サブネット内において固有でなければならない。IBトポロジーが複数のサブネット上にわたっている場合、LIDはそれ以上制限事項とはならないが、VMを異なるサブネットにマイグレートする必要がある場合、そのLIDアドレスは変更することができる。なぜなら、そのアドレスが新しいサブネットにおいて既に使用されているかもしれないからである。複数のサブネット上にわたっていることで、単一のサブネットトポロジーのLID制限を解決することができるが、これはまた、ルーティングプロセスに付加的なオーバーヘッドおよび待ち時間を付加するサブネット間ルーティングのために層3GIDアドレスを用いなければならないことを意味している。なぜなら、サブネットの端に位置するルータによって層2ヘッダを変更しなければならないからである。また、現在のハードウェア実装、ソフトウェア実装および緩いIBA(インフィニバンド・アーキテクチャ)規格の下では、複数のサブネット上にわたっているクラスタのために最適化されたルーティング経路を提供するために、個々のサブネットのSMはグローバルトポロジーを認識することができなくなっている。
【0088】
一実施形態に従うと、IBAにおける後方互換性のあるLIDスペース拡張を導入することができる。LIDビットの数を、たとえば24ビットまたは32ビットに増やすことにより、不十分なLIDスペースを増やす場合に問題が生じる可能性がある。このような量だけLIDスペースを増やすことにより、後方互換性に破断が生じる可能性がある。なぜなら、IBローカルルートヘッダ(Local Route Header:LRH)がオーバーホールされなければならなくなり、レガシーハードウェアが新しい基準では機能することができなくなるからである。一実施形態に従うと、後方互換性を維持しながらも、依然として新しいハードウェアが拡張機能を利用できるように、LIDスペースを拡張することができる。LRHは、0として送信されて受信機には無視される予備の7ビットを有する。送信元LID(Source LID:SLID)についてのLRHにおけるこれらの予備ビットと宛先LID(Destination LID:DLID)についての2ビットとのうち2つを利用することに
より、LIDスペースを18ビットに拡張する(LIDスペースを4倍にする)ことができ、物理的装置に割当てられた物理的LID(pLID)およびVMに割当てられた仮想LID(vLID)を用いたスキームを作成することができる。
【0089】
一実施形態に従うと、追加の2ビットが0として送信されると、LIDがIBA(48KユニキャストLIDおよび16KマルチキャストLID)においてその時点で定義されるとおりに用いられ、スイッチは、パケットの転送のためにそれらの主要なLFTを検索することができる。他の場合、LIDはvLIDであり、192Kのサイズを有する二次的LFTに基づいて転送することができる。vLIDがVMに属しており、VMが、pLIDを有する物理ノードとアップリンクを共有しているので、vLIDは、ネットワークを構成(たとえば初期構成)または(たとえばトポロジー変更後に)再構成する際に、経路演算段階から除外することができるが、スイッチにおける二次的LFTテーブルは、上述のとおり更新することができる。SMがネットワークをブートし発見すると、SMはハ
ードウェアのすべてが拡張されたLIDスペースをサポートするかどうかを識別することができる。そうでなければ、SMはレガシー互換モードでフォールバックすることができ、VMはpLIDスペースからのLIDを占有するはずである。
【0090】
図9は、一実施形態に従った、拡張されたローカルルートヘッダを示す。図に示されるように、ローカルルートヘッダ内では、仮想レーン(virtual lane:VL)900は4ビットを含み、リンクバージョン(link version:Lver)901は4ビットを含み、サービスレベル(service level:SL)902は4ビットを含み、LID拡張フラグ(LID
extension flag:LEXTF)903は1ビットを含み、第1の予備ビット(R1)9
04は1ビットを含み、リンク次ヘッダ(link next header:LNH)905は2ビットを含み、宛先ローカルID(destination local ID:DLID)906は16ビットを含み、DLIDプレフィックス拡張(DLID prefix extension:DPF)907は2ビット
を含み、SLIDプレフィックス拡張(SLID prefix extension:SPF)908は2ビ
ットを含み、第2の予備ビット(R2)909は1ビットを含み、パケット長(packet length:PktLen)910は11ビット含み、送信元ローカルID(source local ID:SLID)911は16ビットを含む。一実施形態に従うと、両方の予備ビット904および909はゼロに設定することができる。
【0091】
一実施形態に従うと、上述のとおり、図9に示されるLRHは、宛先ローカルID906および送信元ローカルID908についてのプレフィックス拡張として7つの(元の)予備ビットのうちの4つを利用する。これにより、利用時に、LID拡張フラグに関連付けて、スイッチにおける二次的LFTを介してルーティングされ得るvLIDに関連付けてLRHが使用されることが信号で伝えられる。代替的には、拡張907および908がゼロとして送信され(受信機によって無視され)ると、LIDは、pLIDに関連付けられ、IBAにおいてその時点で定義されるとおり用いられる。
【0092】
図10は、一実施形態に従った、2つの例示的なリニアフォワーディングテーブルを示す。図10に示されるように、リニアフォワーディングテーブル916はpLIDに関連付けられたフォワーディングテーブルである。LFTは、エントリ912(DLID=0によって索引付けされたエントリ0)からエントリ913(DLID=48K-1によって索引付けされたエントリ48K-1)にわたっている。この場合、LFTにおける各エントリは、規格16ビットDLIDによって索引付けされ、標準IBポート番号を含んでいる。対照的に、リニアフォワーディングテーブル917はvLIDに関連付けられた二次的フォワーディングテーブルである。LFTは、エントリ914(18ビットDPF+DLID=0によって索引付けされたエントリ0)からエントリ915(18ビットDPF+DLID=256K-1によって索引付けされたエントリ256K-1)にわたっている。この場合、各エントリは、拡張された18ビットDPF+DLIDによって索引付けされ、標準IBポート番号を含んでいる。
【0093】
一実施形態に従うと、軽量のvSwitchアーキテクチャを形成するためにハイブリッドアーキテクチャを用いることができる。マイグレートされたVMと共にLIDをマイグレートすることができるvSwitchアーキテクチャは、LIDが変化するであろう共有のLIDのスキームとは対照的にマイグレーションの後にピアとの接続性を再構築するために付加的なシグナリングについての要件が存在しないので、サブネット管理に対して十分にスケーリングする。他方で、共有のLIDスキームは、LIDスペースに対して十分にスケーリングする。ハイブリッドvSwitch+共有型vPortモデルは、SMがサブネットにおける利用可能なSR-IOV仮想機能を認識する場合、実現することができるが、特定のVFが専用のLIDを受取り得る一方で、他のものはそれらのGIDに基づいて共有LIDの態様でルーティングされている。VMノード役割についての何らかの情報があれば、(たとえば、ルートを計算し、ネットワークにおける負荷バランシン
グを実行している間に別々に考慮されるようにするために)、多数のピアを備えたポピュラーなVM(たとえばサーバ)には専用のLIDが割当てられ得る一方で、多くのピアと対話しないかまたはステートレスなサービスを実行する(マイグレートされる必要がなく、再生成され得る)他のVMはLIDを共有することができる。
【0094】
vSwitchベースのサブネットのためのルーティング戦略
一実施形態に従うと、より高い性能を得るために、ルーティングアルゴリズムは、ルートを計算する際にvSwitchアーキテクチャを考慮に入れることができる。ファットツリーにおいては、vSwitchは、vSwitchが対応するリーフスイッチへの上りリンクを1つだけ有するという独特な特性によってトポロジー発見プロセスにおいて識別することができる。vSwitchが識別されると、ルーティング機能は、各VMからのトラフィックがネットワークにおける他のすべてのVMに向かう経路を発見することができるように、すべてのスイッチのためのLFTを生成することができる。各VMはそれ自体のアドレスを有しており、このため、各VMは、同じvSwitchに付与された他のVMからは独立してルーティングすることができる。これにより、結果として、トポロジーにおけるvSwitchに向かうとともに各々が特定のVMへのトラフィックを担持している独立した複数の経路を生成するルーティング機能が得られる。このアプローチの1つの欠点として、VM分配がvSwitchの間で均一でない場合、より多くのVMを備えたvSwitchには潜在的により大きなネットワークリソースが割当てられる点がある。しかしながら、vSwitchから対応するリーフスイッチまでの単一の上りリンクは、依然として、特定のvSwitchに付与されたすべてのVMによって共有されるボトルネックリンクのままである。結果として、準最適にネットワークが利用される可能性がある。最も単純で最速のルーティング戦略は、すべてのvSwitch-vSwitchの対の間に経路を生成して、対応するvSwitchに割当てられるのと同じ経路を備えたVMをルーティングすることである。予めポピュレートされたLID割当てスキームと動的LID割当てスキームとがあれば、各々のvSwitchは、SR-IOVアーキテクチャにおけるPFによって定義されたLIDを有する。vSwitchについてのこれらのPF LIDは、ルーティングの第1段階でLFTを生成するために用いることができ、第2段階では、VMのLIDを生成されたLFTに追加することができる。予めポピュレートされたLIDスキームにおいては、VF LIDへのエントリは対応するvSwitchの出力ポートをコピーすることによって追加することができる。同様に、新しいVMがブートされた場合の動的LID割当ての場合、VMのLIDと対応するvSwitchによって決定された出力ポートとを備えた新しいエントリがすべてのLFTにおいて追加される。この戦略についての問題点は、vSwitchを共有する別々のテナントに属するVMが、ネットワークにおいて同じ完全な経路を共有しているせいで、それらの間で固有に干渉する可能性がある点である。高いネットワーク利用率を維持しながらもこの問題を解決するために、仮想化されたサブネットのための重み付けされたルーティングスキームを用いることができる。
【0095】
一実施形態に従うと、vSwitchベースの仮想化サブネットのための重み付けされたルーティングスキームを利用することができる。このようなメカニズムにおいては、vSwitch上の各VMには、ルートを計算する際にバランスを取るために考慮に入れることができるパラメータ重みが割当てられる。重みパラメータの値は、そのvSwitchにおけるVMに割付けられたリーフスイッチリンク容量に対するvSwitchの割合を反映している。たとえば、単純な構成により、各VMに、1/num_vmsに等しい重みが割当てられてもよく、この場合、num_vmsは、対応するvSwitchハイパーバイザ上のブートされたVMの数である。別の可能な実現例は、最も重要なVMに対して、これらVMに向かって流れるトラフィックに優先順位を付けるために、より高い割合のvSwitch容量を割当てることであり得る。しかしながら、vSwitch毎のVMの累積的な重みはすべてのvSwitch上で等しくなり得るので、トポロジーにお
けるリンクは、実際のVM分配によって影響されことなくバランスを取ることができる。同時に、スキームは、トポロジーにおける中間リンクで同じvSwitch VM間における干渉をなくした上で、各VMがネットワークにおいて独立してルーティングされ得る多重通路を可能にする。当該スキームは、VMがその割当てられた容量を上回るのを確実に防止するために、VM率の上限ごとに、各vSwitch上での実施と組合わせることができる。加えて、ネットワークにおいて複数のテナントグループが存在している場合、テナント認識型ルーティングのような技術は、テナント間でネットワーク全体を分離させるために、提案されたルーティングスキームと統合することができる。
【0096】
一実施形態に従うと、以下に、IBベースのファットツリートポロジーについての重み付けされたルーティングを記載する。ファットツリールーティングアルゴリズムとして、vSwitchFatTreeは、サブネットにおける各VMに関連付けられたLIDのためのすべてのスイッチにおけるLFTを設定するために、ファットツリートポロジーを再帰的に横断する。このメカニズムは決定論的であり、すべてのルートについての後方計算が宛先ノードから開始される宛先ベースのルーティングをサポートする。
【0097】
仮想化されたサブネットについての重み付けされたファットツリールーティングアルゴリズム
【0098】
【数1】
【0099】
一実施形態に従うと、vSwitchFatTreeルーティングメカニズムは以下のように作用する。各々のVMには、比例した重みが割当てられる。この比例した重みは、vSwitchノードの(たとえば、定数1として得られる)重みをその上で実行されるVMの総数で割ることによって計算される。さまざまな重み付けスキームを実現することもできる。たとえば、VMタイプに基づいて重みを割当てるための実現例を選ぶことができる。しかしながら、簡潔にするために、この説明は比例重み付けスキームに焦点を合わ
せている。各々のリーフスイッチのために、ルーティングメカニズムは、接続されたVM(行3)に基づいて減少する順序で、接続されたvSwitchをソートする。この順序は、より高い重みが付けられたVMが最初にルーティングされることを確実にするので、リンクに割当てられたルートのバランスを取ることができる。ルーティングメカニズムは、すべてのリーフスイッチおよびそれらの対応するvSwitchを通過し、各々のVMからツリー内を横断して、ROUTEDOWNGOINGBYGOINGUP(行10)をコールすることによって、ツリー内においてVMに向かう経路を再帰的に割当てる。各々のスイッチにおける下りポートは、利用可能な上りポート群のすべての中で最少累積の下り重み(downward weight)に基づいて選択されている(ROUTEDOWNGOIN
GBYGOINGUP;行16)。下りポートが選択されると、当該メカニズムは、ルーティングされているVMの重みによって、対応するポートについての下り累積重みを増やすことができる(ROUTEDOWNGOINGBYGOINGUP;行19)。下りポートが設定された後、ルーティングメカニズムは、ツリーを下降していくことによってすべての接続された下りスイッチ上において、VMに向かうルートのために上りポートを割当てることができる(ポートについての対応する上り重み(upward weight)を更新する
)(ROUTEUPGOINGBYGOINGDOWN;行20)。次いで、当該プロセスはツリーにおける次のレベルまで上っていくことによって繰返される。すべてのVMがルーティングされると、(擬似コードに図示されない)トポロジーにおいてvSwitch経路とvSwitch経路との間でバランスを取るように等しい重み付けがなされているにも関わらず、アルゴリズムはまた、VMと同じ方法でvSwitchの物理的LIDをルーティングする。これは、最小限の再構成方法がライブマイグレーションの文脈において用いられる際にバランスを取るのを向上させるのに望ましい。また、vSwitchのベースとなる物理的LID上のルーティング経路は、再構成を必要とすることなく、新しいVMを迅速にデプロイするために予め定められた経路として用いることができる。しかしながら、一定の期間にわたって、全体的なルーティング性能は、元のvSwitchFatTreeルーティングの間にわずかに減少するだろう。性能の低下を制限するために、ある性能しきい値を超えたとき、vSwitchFatTreeに基づいた再構成をオフラインで実行してもよい。
【0100】
一実施形態に従うと、上述のルーティングメカニズムは、正規の/レガシーなールーティングメカニズムに勝るさまざまな改善を提供することができる。トポロジーにおけるvSwitchまたはVMを考慮に入れていない当初のファットツリールーティングアルゴリズムとは異なり、vSwitchFatTreeは、vSwitchに印付けをして、vSwitchに接続された他のVMからは独立して各々のVMをルーティングする。同様に、vSwitch間で不均一なVM分配を行なうために、各々のVMには、vSwitch上で割付けられているリンクの割合に対応する重みが割当てられている。重みは、ファットツリーにおける経路配分のバランスを取るためのポートカウンタを維持するのに用いられる。スキームはまた、一般化された重み付けされたファットツリールーティングを可能にする。この場合、各々のVMには、ネットワークにおけるそのトラヒックプロファイルまたは役割の優先順位に基づいて重みを割当てることができる。
【0101】
図11から図14は、一実施形態に従った、無損失相互接続ネットワークにおいて効率的な仮想化をサポートする例を示す。具体的には、図11は、4つのスイッチとして、ルートスイッチ925および926、リーフスイッチ920および921、さらには、4つの仮想スイッチVS1 931、VS2 941、VS3 951およびVS4 961を備えた2レベルのファットツリートポロジーを示す。4つの仮想スイッチVS1 931、VS2 941、VS3 951およびVS4 961には、それぞれ、4つのホスト/ハイパーバイザ930、940、950、960が関連付けられており、この場合、4つの仮想スイッチは、8つの仮想マシンVM1 932、VM2 933、VM3 942、VM4 943、VM5 952、VM6 953、VM7 954、およびVM
8 962のために接続性を提供する。
【0102】
vSwitchFatTreeルーティングをさらに詳しく説明するために、図11に示されるように、4つのエンドノード(vSwitch)を備えた単純な仮想化されたファットツリートポロジーについて検討する。リーフスイッチ920、VS1およびVS2に接続されたvSwitchの各々は、実行中の2つのVM(VS1についてはVM1およびVM2、ならびにVS2についてはVM3およびVM4)を有する。第2のリーフスイッチ921は、3つのVM(VM5、VM6、VM7)を備えたVS3を有し、1つのVMがホストvSwitch VS4の上で実行中である。各々のリーフスイッチは、両方のルートスイッチ925および926に接続されているため、ルートを介して各々のVMに向かうルートを設定するのに利用可能な2つの代替経路が存在している。VS1に接続されたVMのためのルーティングは、ルートスイッチからの選択された下り経路を示す円を用いて、図12に示される。VM1は925→920を用いてルーティングされ、VM2は926→920からルーティングされている。対応する下り負荷カウンタは、選択されたリンク上で更新されて、各々のVMのために0.5を追加する。同様に、図13に示されるように、VS2のためのルートを追加した後、VM3およびVM4は、リンク925→920およびリンク926→920を介してそれぞれルーティングされる。リーフスイッチ920に接続されたすべてのVMをルーティングした後、たとえVMが個々にルーティングされていたとしても、両方のリンク上の下り負荷の合計が等しくなることに留意されたい。リーフスイッチ921に接続されたvSwitch上のVM分配は異なっており、このため、1つのVMを備えたvSwitch(VS4)は最初にルーティングされることとなるだろう。ルート925→921がVM8に割付けられ、VS3に接続された3つのすべてのVMが926→921からルーティングされて、両方の下りリンク上で累積された負荷のバランスが取られた状態を維持するようにする。図14に示される最後のルーティングでは、トポロジーにVM分配がなされていると想定して、可能な限り、VMに向かう独立したルートと共に、各々のリンク上で負荷のバランスが取られている。
【0103】
仮想マシンライブマイグレーション上での最小限のオーバーヘッド再構成
一実施形態に従うと、ItRC(Iterative Reconfiguration:反復再構成)と略され
得る動的な再構成メカニズムは、VMがマイグレートされたときに、必要に応じて、ルートの切替えおよび更新をすべてを繰返す。しかしながら、サブネットにおける既存のLFT(すなわち、既に計算されたLFTであって、サブネット内の各スイッチに存在しているLFT)に応じて、スイッチのサブセットだけを実際に更新する必要がある。
【0104】
図15は、一実施形態に従った潜在的な仮想マシンマイグレーションを示す。より具体的には、図15は、ネットワークトポロジーにもかかわらず、対応するリーフスイッチだけがLFT更新を必要としているリーフスイッチ内のVMのマイグレーションの特別な事例を示している。
【0105】
図15に示されるように、サブネットは、いくつかのスイッチ、すなわち、スイッチ1
1301~スイッチ12 1312を含み得る。これらのスイッチのうちのいくつかは、スイッチ1 1301、スイッチ2 1302、スイッチ11 1311、スイッチ12 1312などのリーフスイッチを含み得る。サブネットは、付加的に、いくつかのホスト/ハイパーバイザ1330、1340、1350および1360、いくつかの仮想スイッチVS1 1331、VS2 1341、VS3 1351およびVS4 1361を含み得る。さまざまなホスト/ハイパーバイザは、仮想機能を介して、VM1 1332、VM2 1333、VM3 1334、VM4 1342、VM5 1343およびVM6 1352などのサブネット内の仮想マシンをホストすることができる。
【0106】
一実施形態に従うと、VM3が(太字矢印によって示されるように)付随しているハイ
パーバイザ1330からハイパーバイザ1340における自由な仮想機能にマイグレートする場合、リーフスイッチ1 1301におけるLFTだけが更新される必要がある。なぜなら、両方のハイパーバイザが同じリーフスイッチに接続されており、局所的な変更がネットワークの残りの部分に影響を及ぼさないからである。たとえば、最初のルーティングアルゴリズムは、ハイパーバイザ1360からハイパーバイザ1330に向かうトラフィックが実線(すなわち、12→9→5→3→1)によって印付けされた第1の経路を追従すると判断する。同様に、ハイパーバイザ1360からハイパーバイザ1340に向かうトラフィックは、破線(すなわち、12→10→6→4→1)によって印付けされた第2の経路を追従する。VM3がマイグレートされ、ネットワークを再構成するためにItRCが用いられる場合、VM3に向かうトラフィックは、マイグレーションの前にハイパーバイザ1330に向かう第1の経路を追従し、マイグレーションの後、ハイパーバイザ1340に向かう第2の経路を追従することとなるだろう。この状況においては、ファットツリールーティングアルゴリズムが最初のルーティングのために用いられたと想定すると、ItRC法は、スイッチの総数の半分(6/12)を更新するだろう。しかしながら、マイグレートされたVMを接続されたままにしておくためにリーフスイッチを1つだけ更新する必要がある。
【0107】
一実施形態に従うと、VMマイグレーションの後にスイッチ更新の回数を制限することによって、ネットワークをより速く再構成することができ、従来のルーティング更新の際に必要とされる時間およびオーバーヘッドを減らすことができる。これは、トポロジーに依存しないスカイライン技術(topology-agnostic skyline technique)に基づいて、F
TreeMinRCと称される、ファットツリー上でのVMマイグレーションをサポートするためのトポロジー認識型高速再構成方法によって達成することができる。
【0108】
ファットツリーにおけるサブツリーおよびスイッチタプル
一実施形態に従うと、以下の記述は、例示的なファットツリーネットワークとしてXGFTを用いて、最小限のオーバーヘッドネットワーク再構成方法であるFTreeMinRCを利用する。しかしながら、ここで提示される概念は、PGFTおよびRLFTにとっても有効である。XGFT(n;m,...,m;w,...,w)は、n+1レベルのノードを備えたファットツリーである。レベルは0からnで表わされ、計算ノードがレベルnにあり、スイッチが他のすべてのレベルにある。子がない計算ノードを除いては、レベルi、0≦i≦n-1におけるすべてのノードは、mの子ノードを有する。同様に、親がないルートスイッチを除いては、レベルi、1≦i≦nにおける他のすべてのノードはw+1の親ノードを有する。
【0109】
【数2】
【0110】
一実施形態に従うと、n+1レベルであるXGFTにおける各々のスイッチは固有のnタプル(l,x,x,...,x)によって表わすことができる。左端のタプル値(l)はツリーが位置するレベルを表わしており、残りの値(x,x,...,x)は、他のスイッチに対応するツリーにおけるスイッチの位置を表わしている。特に、レベルlにおけるスイッチA(l,a,...,a,...,a)は、i=l+1である場合を除いて、すべての値についてa=bであるとき、かつそのときに限り、レベルl+1,(l+1,b,...,b,bl+1,...,b)におけるスイッチBに接続される。
【0111】
図16は、一実施形態に従ったスイッチタプルを示す。より具体的には、当該図は、例示的なファットツリーであるXGFT(4;2,2,2,2;2,2,2,1)のために実現されたOpenSMのファットツリールーティングアルゴリズムによって割付けられるようなスイッチタプルを示している。ファットツリー1400は、スイッチ1401~1408、1411~1418、1421~1428および1431~1438を含み得る。ファットツリーが(リーフレベルにおける列3まで、ルートレベルにおける列0として印付けされた)n=4のスイッチレベルを有しているので、ファットツリーは、各々がn′=n-1=3スイッチレベルであるm=2の第1レベルサブツリーで構成されている。これは、図において、レベル1から3までのスイッチを囲んでいる破線によって規定される2つのボックスによって示されている。各々の第1レベルのサブツリーが0または1の識別子を受取る。第1レベルのサブツリーの各々は、各々がリーフスイッチを上回っているn″=n′-1=2のスイッチレベルであるm=2の第2レベルのサブツリーから構成されている。これは、図において、レベル2から3までのスイッチを囲んでいる点線によって規定される4つのボックスによって示されている。各々の第2レベルのサブツリーは0または1の識別子を受取る。同様に、リーフスイッチの各々は、図において、鎖線によって規定される8つのボックスによって示されるサブツリーと見なすこともできる。これらのサブツリーの各々は0または1の識別子を受取る。
【0112】
一実施形態に従うと、図に例示されているように、4つの数字のタプルなどのタプルは、さまざまなスイッチに割当てることができ、タプルの各々の数字は、タプルにおける各々の値の位置についての特定のサブツリー対応を示している。たとえば、(スイッチ1_3と参照され得る)スイッチ1413は、レベル1におけるその位置と0番目の第1レベルのサブツリーとを表わしているタプル1.0.1.1に割当てることができる。
【0113】
ライブマイグレーションの文脈におけるFTreeMinRCを用いたファットツリー認識型の最小再構成
一実施形態に従うと、スイッチタプルは、トポロジーにおけるサブツリーに対応するスイッチの位置についての情報を符号化する。FTreeMinRCは、ライブVMマイグレーションの場合における迅速な再構成を可能にするためにこの情報を用いることができる。タプル情報は、VMがマイグレートされたときにSMによって再構成される必要のあるスイッチの数が最も少ないスカイランを発見するために用いることができる。特に、VMがファットツリートポロジーにおける2つのハイパーバイザ間でマイグレートされると、更新される必要のある最小数のスイッチを表わしているスカイラインは、マイグレーションに関与しているすべてのサブツリーのうちすべての最上位レベルのスイッチによって形成されている。
【0114】
一実施形態に従うと、VMがライブマイグレートされると、スイッチ印付けメカニズムを両方のリーフスイッチから開始することができる。この場合、送信元ハイパーバイザと宛先ハイパーバイザとが接続され、スイッチのタプルを比較する。タプル同士が一致する場合、メカニズムは、VMがリーフスイッチ内でマイグレートされていると判断することができる。これにより、再構成のために対応するリーフスイッチだけに印が付けられる。
しかしながら、タプルが一致していなければ、送信元リーフスイッチおよび宛先リーフスイッチの両方からの上りリンクがトレースされる。1レベル上に位置するスイッチは、リーフレベルのサブツリーが接続されているイミディエイト・スーパーツリーのうち最上位レベルのスイッチであり、ツリーを下方へと横切る際にリーフスイッチに到達する前に生じる可能性のある唯一のホップである。次いで、当該メカニズムは、送信元リーフスイッチタプルおよび宛先リーフスイッチタプルを新しくトレースされたスイッチと比較することができ、その時点のレベルを反映させるためにタプル値を調整した後、その時点のツリーのサブツリーに対応する値がワイルドカードにされる。さらに、(対応するサブツリーのための最上位レベルのスイッチである)トレースされたスイッチは更新されるべく印付けされ、送信元スイッチタプルおよび宛先スイッチタプルの両方からの比較がトレースされたすべてのスイッチのタプルと一致する場合、トレースが停止される。他の場合には、メカニズムが両端から共通の先祖スイッチを特定するまで、同じ手順が繰返される。最悪の場合、ファットツリートポロジーのルートスイッチに到達した後、メカニズムを停止することができる。すべての上り経路のトレースがリーフレベルから開始されており、かつ、連続したサブツリーのスカイラインスイッチに印付けされているので、メカニズムがマイグレーションによって影響される最上位のサブツリーに到達した場合、当該メカニズムは、その途中で、下位レベルスイッチに向かう潜在的なトラフィックゲートウェイであるすべてのスイッチや、ライブマイグレーションに関与するハイパーバイザを既に選択してしまっている。これにより、当該メカニズムは、ネットワークのうちライブマイグレーションによって影響を受けた部分のスカイラインを形成するすべてのスイッチに印を付けた。
【0115】
一実施形態に従うと、スイッチ印付けメカニズムは、物理的接続の観点から更新される必要のある、最小数のスイッチを発見する。しかしながら、これらのスイッチのすべてが再構成によって影響を受けたLIDに対するルーティングアルゴリズムによって計算されたアクティブな経路を含むとは限らない可能性もある。このため、アクティブなルートを含んでいるスイッチには更新手順において優先順位が付けられる一方で、スイッチのうち二次ルートを有する残りのスイッチは後で更新することができる。
【0116】
一実施形態に従うと、ファットツリールーティングメカニズムは、常に、同じルートスイッチを介して所与の宛先にトラフィックをルーティングする。トポロジーにおいてはルートスイッチとエンドノードとの間に単一の経路だけが存在しているので、所与のエンドノードを表わすために選択されたルートスイッチが位置特定されると、エンドノードにトラフィックをルーティングするために用いられる中間スイッチを見出すことができる。アクティブなルートを発見するために、経路は、関与するハイパーバイザの送信元LIDから宛先LIDにまで、またはこれの逆の態様でトレースすることができる。再構成のために既に選択されていたスイッチのサブセットであるスイッチに印を付けることができ、それらのスイッチのLFT更新に優先順位を付けることができる。その後、すべてのLFTを有効に維持するために、残りの選択されたスイッチを更新することができる。
【0117】
図17は、一実施形態に従った再構成プロセスを示す。ファットツリー1400は、スイッチ1401~1408、1411~1418、1421~1428および1431~1438を含み得る。ファットツリーが(リーフレベルにおける列3まで、ルートレベルにおける列0として印付けされた)n=4スイッチレベルを有しているので、ファットツリーは、各々がn′=n-1=3のスイッチレベルであるm=2の第1レベルのサブツリーから構成されている。これら第1レベルのサブツリーの各々は、各々がリーフスイッチを上回っているn″=n′-1=2のスイッチレベルであるm=2の第2レベルのサブツリーから構成されている。同様に、リーフスイッチの各々もサブツリーと見なすことができる。
【0118】
一実施形態に従うと、図17は、タプル3.0.0.0および3.0.1.1を備えたリーフスイッチに接続された2つのハイパーバイザ間でVMがマイグレートされている状況を示す。これらの2つのタプルは、選択されたリーフスイッチから上方向への経路をメカニズムがトレースする際の比較についての基準として用いられる。この例においては、共通の先祖スイッチがレベル1上で発見される。レベル0はルートレベルであり、レベル3はリーフレベルである。表示されたタプル情報を有するスイッチ間のリンクはメカニズムの実行中ずっとトレースすることができるリンクであり、それらの同じスイッチすべてに更新するための印を付けることができる。強調表示された5つのスイッチ(スイッチ1431、1421、1411、1423および1434)およびそれらの間のリンクは、アクティブなルートを表わしており、それらのLFT更新に優先順位を付けることができる。
【0119】
一実施形態に従うと、ライブマイグレーションをサポートする仮想化されたデータセンタにおける最小限のオーバーヘッドに迅速な接続性を提供するために、FTreeMinRCは、スイッチに送信される必要のあるLFT更新の回数を最小限にする。
【0120】
図18は、一実施形態に従った、無損失相互接続ネットワークにおける効率的な仮想化をサポートするための方法のフローチャートである。ステップ1810において、当該方法は、1つ以上のマイクロプロセッサを含む1つ以上のコンピュータにおいて、少なくともリーフスイッチを含む1つ以上のスイッチを設けることができ、当該1つ以上のスイッチの各々は複数のポートを含み、さらに、複数のホストチャネルアダプタを設けることができ、ホストチャネルアダプタの各々は少なくとも1つの仮想機能、少なくとも1つの仮想スイッチおよび少なくとも1つの物理機能を含み、複数のホストチャネルアダプタは1つ以上のスイッチを介して相互接続されており、さらに、複数のハイパーバイザを設けることができ、複数のハイパーバイザの各々は、複数のホストチャネルアダプタのうち少なくとも1つのホストチャネルアダプタに関連付けられており、さらに、複数の仮想マシンを設けることができ、複数の仮想マシンの各々は少なくとも1つの仮想機能に関連付けられている。
【0121】
ステップ1820において、当該方法は、予めポピュレートされたローカル識別子(local identifier:LID)アーキテクチャを備えた仮想スイッチまたは動的LID割当てアーキテクチャを備えた仮想スイッチのうち1つ以上を備えた複数のホストチャネルアダプタを配置することができる。
【0122】
ステップ1830において、当該方法は、各々の仮想スイッチにLIDを割当てることができ、割当てられたLIDは関連付けられた物理機能のLIDに対応している。
【0123】
ステップ1840において、当該方法は、仮想スイッチの各々に割当てられたLIDに少なくとも基づいて1つ以上のリニアフォワーディングテーブルを計算することができ、1つ以上のLFTの各々は、1つ以上のスイッチのうちの一のスイッチに関連付けられている。
【0124】
図19は、一実施形態に従った、無損失相互接続ネットワークにおける効率的な仮想化をサポートするための方法のフローチャートである。ステップ1910において、当該方法は、1つ以上のマイクロプロセッサを含む1つ以上のコンピュータにおいて、1つ以上のマイクロプロセッサと、1つ以上のスイッチとを設けることができ、1つ以上のスイッチは少なくともリーフスイッチを含み、1つ以上のスイッチの各々は複数のポートを含み、さらに、複数のホストチャネルアダプタを設けることができ、ホストチャネルアダプタの各々は少なくとも1つの仮想機能、少なくとも1つの仮想スイッチおよび少なくとも1つの物理機能を含み、複数のホストチャネルアダプタは1つ以上のスイッチを介して相互
接続されており、さらに、複数のハイパーバイザを設けることができ、複数のハイパーバイザの各々は、複数のホストチャネルアダプタのうち少なくとも1つのホストチャネルアダプタに関連付けられており、さらに、複数の仮想マシンを設けることができ、複数の仮想マシンの各々は、少なくとも1つの仮想機能に関連付けられている。
【0125】
ステップ1920において、当該方法は、予めポピュレートされたローカル識別子(LID)アーキテクチャを備えた仮想スイッチまたは動的LID割当てアーキテクチャを備えた仮想スイッチのうち1つ以上を備えた複数のホストチャネルアダプタを配置することができる。
【0126】
ステップ1930において、当該方法は、仮想スイッチの各々に複数のpLIDのうち1つのpLIDを割当てることができる。割当てられたpLIDは関連付けられた物理機能のpLIDに対応している。
【0127】
ステップ1940において、当該方法は、複数の仮想マシンの各々に複数のvLIDのうち1つのvLIDを割当てることができ、LIDスペースは、複数のpLIDおよび複数のvLIDを含む。
【0128】
本発明の多くの特徴は、ハードウェア、ソフトウェア、ファームウェアまたはそれらの組合せにおいて、それらを用いて、またはそれらの支援により、実行可能である。したがって、本発明の特徴は、(たとえば、1つ以上のプロセッサを含む)処理システムを用いて実現され得る。
【0129】
この発明の特徴は、ここに提示された特徴のうちのいずれかを行なうように処理システムをプログラミングするために使用可能な命令を格納した記憶媒体またはコンピュータ読取り可能媒体であるコンピュータプログラム製品において、それを使用して、またはその助けを借りて実現され得る。記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD-ROM、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリ装置、磁気カードもしくは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに好適な任意のタイプの媒体もしくは装置を含み得るものの、それらに限定されない。
【0130】
この発明の特徴は、機械読取り可能媒体のうちのいずれかに格納された状態で、処理システムのハードウェアを制御するために、および処理システムがこの発明の結果を利用する他の機構とやり取りすることを可能にするために、ソフトウェアおよび/またはファームウェアに取込まれ得る。そのようなソフトウェアまたはファームウェアは、アプリケーションコード、装置ドライバ、オペレーティングシステム、および実行環境/コンテナを含み得るものの、それらに限定されない。
【0131】
この発明の特徴はまた、たとえば、特定用途向け集積回路(application specific integrated circuit:ASIC)などのハードウェアコンポーネントを使用して、ハードウ
ェアにおいて実現されてもよい。ここに説明された機能を行なうようにハードウェアステートマシンを実現することは、関連技術の当業者には明らかであろう。
【0132】
加えて、この発明は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取り可能記憶媒体を含む、1つ以上の従来の汎用または特殊デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現され得る。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練した
プログラマによって容易に準備され得る。
【0133】
この発明のさまざまな実施形態が上述されてきたが、それらは限定のためではなく例示のために提示されたことが理解されるべきである。この発明の精神および範囲から逸脱することなく、形状および詳細のさまざまな変更を行なうことができることは、関連技術の当業者には明らかであろう。
【0134】
この発明は、特定された機能およびそれらの関係の実行を示す機能的構築ブロックの助けを借りて上述されてきた。説明の便宜上、これらの機能的構築ブロックの境界は、この明細書中ではしばしば任意に規定されてきた。特定された機能およびそれらの関係が適切に実行される限り、代替的な境界を規定することができる。このため、そのようないかなる代替的な境界も、この発明の範囲および精神に含まれる。
【0135】
この発明の前述の説明は、例示および説明のために提供されてきた。それは、網羅的であるよう、またはこの発明を開示された形態そのものに限定するよう意図されてはいない。この発明の幅および範囲は、上述の例示的な実施形態のいずれによっても限定されるべきでない。多くの変更および変形が、当業者には明らかになるだろう。これらの変更および変形は、開示された特徴の関連するあらゆる組合せを含む。実施形態は、この発明の原理およびその実用的応用を最良に説明するために選択され説明されたものであり、それにより、考えられる特定の使用に適したさまざまな実施形態についての、およびさまざまな変更例を有するこの発明を、当業者が理解できるようにする。この発明の範囲は、請求項およびそれらの同等例によって定義されるよう意図されている。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
【手続補正書】
【提出日】2024-04-19
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
無損失相互接続ネットワークにおける効率的な仮想化をサポートするためのシステムであって、
1つ以上のマイクロプロセッサと、
複数のスイッチを含む第1のサブネットとを含み、各々のスイッチには複数のスイッチタプルのうちの1つのスイッチタプルが割当てられており、
仮想マシンは前記第1のサブネット内においてマイグレーションを実行し、前記マイグレーションは第1のハイパーバイザから第2のハイパーバイザへと仮想マシンを移動させ、
前記仮想マシンのマイグレーションの結果として、複数のリニアフォワーディングテーブル(linear forwarding table:LFT)の第1のセットが更新され、前記複数のLFTの第1のセットは、前記マイグレーションの前に前記仮想マシンへのアクティブなルートを有するスイッチに関連付けられている、システム。
【請求項2】
前記複数のLFTの第1のセットは、前記複数のスイッチタプルのうち少なくとも2つのスイッチタプルの比較に少なくとも基づいて決定される、請求項1に記載のシステム。
【請求項3】
前記複数のLFTの第1のセットが更新されると、複数のLFTの第2のセットが、前記仮想マシンの前記マイグレーションの結果として更新され、前記複数のLFTの第2のセットは、前記マイグレーションの前に前記仮想マシンへの主要なルートを有するスイッチに関連付けられている、請求項2に記載のシステム。
【請求項4】
前記複数のLFTの第2のセットは、前記複数のスイッチタプルのうち少なくとも2つのスイッチタプルの比較に少なくとも基づいて決定される、請求項3に記載のシステム。
【請求項5】
前記複数のスイッチの各々は、前記複数のLFTのうちの1つのLFTに関連付けられており、
前記複数のLFTの第1のセットは前記複数のLFTのサブセットである、請求項1~4のいずれか1項に記載のシステム。
【請求項6】
前記複数のスイッチはファットツリートポロジーで配置される、請求項1~5のいずれか1項に記載のシステム。
【請求項7】
前記仮想マシンの各々には重みパラメータが割当てられ、
前記重みパラメータの各々は、前記複数のLFTを計算するのに用いられる、請求項6に記載のシステム。
【請求項8】
無損失相互接続ネットワークにおける効率的な仮想化をサポートするための方法であって、
1つ以上のマイクロプロセッサにおいて、複数のスイッチを含む第1のサブネットを設けるステップを含み、各々のスイッチには複数のスイッチタプルのうちの1つのスイッチタプルが割当てられており、
前記第1のサブネット内において仮想マシンをマイグレートさせるステップを含み、前記マイグレートさせるステップは、第1のハイパーバイザから第2のハイパーバイザへと仮想マシンを移動させ、前記方法はさらに、
前記仮想マシンのマイグレーションの結果として、複数のリニアフォワーディングテーブル(LFT)の第1のセットを更新するステップを含み、前記複数のLFTの第1のセットは、前記マイグレーションの前に前記仮想マシンへのアクティブなルートを有するスイッチに関連付けられている、方法。
【請求項9】
前記複数のLFTの第1のセットは、前記複数のスイッチタプルのうち少なくとも2つのスイッチタプルの比較に少なくとも基づいて決定される、請求項8に記載の方法。
【請求項10】
前記複数のLFTの第1のセットが更新されると、複数のLFTの第2のセットが、前記仮想マシンの前記マイグレーションの結果として更新され、前記複数のLFTの第2のセットは、前記マイグレーションの前に前記仮想マシンへの主要なルートを有するスイッチに関連付けられている、請求項9に記載の方法。
【請求項11】
前記複数のLFTの第2のセットは、前記複数のスイッチタプルのうち少なくとも2つのスイッチタプルの比較に少なくとも基づいて決定される、請求項10に記載の方法。
【請求項12】
前記複数のスイッチの各々は、前記複数のLFTのうちの1つのLFTに関連付けられており、
前記複数のLFTの第1のセットは前記複数のLFTのサブセットである、請求項8~11のいずれか1項に記載の方法。
【請求項13】
前記複数のスイッチはファットツリートポロジーで配置される、請求項8~12のいずれか1項に記載の方法。
【請求項14】
前記仮想マシンの各々には重みパラメータが割当てられ、
前記重みパラメータの各々は、前記複数のLFTを計算するのに用いられる、請求項13に記載の方法。
【請求項15】
請求項8~14のいずれか1項に記載の方法を1つ以上のコンピュータに実行させるためのコンピュータ可読プログラム。
【外国語明細書】