(58)【調査した分野】(Int.Cl.,DB名)
前記1つ以上の物理サーバは、ユーザドメインが追加された場合、前記管理ドメイン内の前記マッピングテーブルを更新するように稼働する、請求項2に記載のシステム。
前記1つ以上の物理サーバは、前記仮想マシンが前記第1のホストから前記第2のホストに移行された後、当該仮想マシンに関連付けられたvGUIDを保存するように動作し、
前記仮想マシンは、別の仮想マシンピアと通信する、請求項2〜4のいずれか1項に記載のシステム。
【発明を実施するための形態】
【0005】
詳細の説明
本発明は、例として示され、限定とはならない。添付図面の図において、同様の参照符号は、同様の要素を示している。注意すべきことは、本開示において、「ある」または「1つ」または「いくつか」の実施形態を言及するときに、必ずしも同じ実施形態に限定されることがなく、少なくとも1つの実施形態を意味することである。
【0006】
以下の本発明の説明において、インフィニバンド(IB)ネットワークを高性能ネットワークの一例とする。他の種類の高性能ネットワークが制限なく使用できることは、当業者にとって明らかであろう。また、以下の本発明の説明において、Xen仮想モデルを用いて仮想モデルの一例とする。なお、他の種類の仮想モデルが制限なく使用できることは、当業者にとって明らかであろう。
【0007】
本明細書は、ネットワーク内で仮想マシン(VM)のライブ移行をサポートできるシステムおよび方法を記載している。
【0008】
本発明の実施形態によれば、仮想化は、クラウド・コンピューティング時にリソースの有効利用および弾性割当てに有益であり得る。ライブ移行は、アプリケーション透過方法で物理サーバの間に仮想マシン(VM)を移動させることにより、リソースの使用を最適化することができる。したがって、仮想化は、ライブ移行を通じて、リソースをオンデマンドで、安定的にかつ弾性的に提供することができる。
【0009】
インフィニバンド(IB)アーキテクチャ
IBアーキテクチャは、シリアルポイントツーポイント全二重技術である。IBネットワークは、スイッチとポイントツーポイントリンクとを用いて相互接続される一連のホストからなるサブネットとも呼ばれる。IBサブネットは、少なくとも1つのサブネットマネージャ(SM)を含むことができる。このサブネットマネージャは、ネットワークの初期化および起動に関与し、サブネット内のすべてのスイッチ、ルータおよびホスト側チャネルアダプタ(HCA)の構成を有する。
【0010】
IBは、リモートダイレクトメモリアクセス(RDMA)および従来の送受信動作の両方を提供するために、多くの転送サービスをサポートしている。使用された転送サービスとは独立して、IBのHCAは、キューペア(QP)を用いて通信する。QPは、通信の確立時に作成され、QP番号、HCAポート、宛先LID、キューサイズおよび転送サービスなどの一連の与えられた初期属性を有してもよい。HCAは、多くのQPを処理することができる。各々のQPは、送信キュー(SQ)および受信キュー(RQ)を含むキューペアからなる。このようなキューペアは、通信に関与する各エンドノードに存在する。受信キューは、リモートノードから受信したデータをどのように処理するかに関する情報を保存するが、送信キューは、リモートノードに転送される作業要求を保存する。QPに加えて、各HCAは、一連の送受信キューに関連付けられた1つ以上の完了キュー(CQ)を有する。CQは、送受信キューに転送された作業要求の完了通知を保有する。複雑な通信は、ユーザに見られないが、QP状態情報は、HCAに保存される。
【0011】
入力/出力(I/O)の仮想化
I/Oの仮想化(IOV)は、基盤となる物理リソースにVMがアクセスできるようにすることで、I/Oの可用性を提供することができる。トラフィックの記憶およびサーバ間の通信が同時に行うと、単一のサーバに与える負荷が大きくなり、サーバのI/Oリソースを溢れさせる可能性があり、その結果、プロセッサがデータを待っているようにバックログおよび待機状態を引起す。IOVは、I/O要求数の増加に伴う可用性を提供することができ、最新のCPUの仮想化で見られる性能のレベルに匹敵するように、(仮想化された)I/Oリソースの性能、拡張性および柔軟性を向上させることができる。
【0012】
さまざまな種類のIOV技術、たとえば、エミュレーション、準仮想化、直接割当て(DA)および単一のルート−L/O仮想化(SR−IOV)が存在し得る。これらのIOV技術の中では、SR−IOVは、固有性能に近い性能に維持しながら、複数のVMから単一の物理デバイスに直接アクセスすることを可能にする手段を、PCIエクスプレス(PCIe)仕様に拡張することができる。このため、SR−IOVは、優れた性能および拡張性を提供することができる。
【0013】
SR−IOVは、PCIeデバイスに複数の仮想デバイスを公開させ、各ゲストに1つの仮想デバイスを割当てることによって、複数のゲストに共有されることができる。各SR−IOVデバイスは、少なくとも1つの物理機能(PF)と、それに関連付けられた1つ以上の仮想機能(VF)を有する。PFは、仮想マシンモニタ(VMM)またはハイパーバイザによって制御される標準PCIe機能であり、VFは、軽量化したPCIe機能である。各VFは、独自のベースアドレス(BAR)を有し、特異リクエスタIDが割当てられている。このリクエスタIDは、I/Oメモリ管理ユニット(IOMMU)に異なるVFに行くトラフィック流れ/異なるVFからのトラフィック流れを識別させることを可能にする。IOMMUはまた、メモリを適用したり、PFとVFとの間の転換を中断したりする。
【0014】
SR−IOVモデルは、たとえば、ポート共有モデルおよび仮想スイッチモデルなどの異なる種類のモデルを有する。ポート共有モデルにおいて、すべてのVFが単一のポートアドレスおよび単一のQP名前空間を共有し、単一のHCAポートのみがネットワークに公開される。仮想スイッチモデルにおいて、各VFが唯一のポートアドレスおよび唯一のQP名前空間を有する仮想HCAであり、デバイス上の各VFのHCAがネットワークに公開される。したがって、仮想スイッチモデルは、より複雑なハードウェアを有するIOVを簡素化することができる。
【0015】
SR−IOV可能なデバイスを使用すれば、固有性能に近い性能をもたらすことができ、拡張性を向上させることができる。一方、SR−IOVは、ライブ移行およびチェックポイント/再起動メカニズムとは完全な互換性がない可能性がある。
【0016】
ハードウェアアドレスの割当ておよび仮想マシン(VM)のライブ移行
本発明の実施形態によれば、各物理IBデバイスは、ローカル識別子(LID)とグローバル唯一の識別子(GUID)との2つのアドレスを割当てることができる。LIDは、サブネット内でIBパケットのルーティングに使用することができる。GUIDは、異なるサブネットの間にIBパケットのルーティングに使用することができる。さらに、GUIDは、IBネットワーク内で物理IBデバイスを唯一に表わすことのできるハードウェアアドレスである。
【0017】
SR−IOVをIBネットワークに実装するために使用されるポート共有モデルにおいて、各VFは、独自の仮想GUID(vGUID)を有してもよく、物理サーバ上でPFとLIDを共有してもよい。本明細書においては、各仮想のGUID(vGUID)は、VFを唯一に表わすことのできるハードウェアアドレスである。
【0018】
図1は、本発明の実施形態に係る、仮想環境内で仮想マシンのライブ移行例を示す図である。
図1に示すように、IBネットワーク100は、サブネットマネージャ(SM)110と、ホストA101およびホストB102などの複数のホストを含むことができる。
【0019】
各ホストは、HCAを使用し、ユーザドメイン内で1つ以上の仮想マシン(VM)を管理する管理ドメイン(または特権ドメイン)をサポートするVMMを含むことができる。
図1に示すように、ホストA101は、HCA117を使用するVMM A 115を含む。VMM A 115は、DomU113を管理するDom0 111をサポートすることができる。同様に、ホストB102は、HCA118を使用するVMM B 116を含む。VMM B 116は、DomU114を管理するDom0 112をサポートすることができる。
【0020】
本発明の実施形態によれば、たとえばXenモデルのような仮想モデル内でVMとゲストドメイン(すなわちDomU)との間に一対一の関係が存在することができる。さらに、VMM/Dom0の制御下でVMをホストする物理サーバ上のリソースコンテナとしてのDomUは、VMのXen概念を表わすのに使用することができる。その上に、一対多または多対一の関係は、VMと他の仮想モデル内のゲストドメインとの間に制限なく存在してもよい。たとえば、一ゲストドメインは、異なるVMをホストすることが可能である。
【0021】
たとえばVMa103のようなVMは、1つのホストたとえばホストA101から別のホストたとえばホストB102に(VMa104として)移行することができる。移行前に、VMa103には、VF115のようなVFを加えることができる。VF115は、たとえばQPA107のようなキューペアに接続されている。さらに、VMa103は、VMc105と通信することができる。VMc105は、QPc109に関連している。移行後、VMa104には、たとえばVF116のような新しいVFを加えることができる。VF116は、QPc109との通信を再構築することができるQPa′
108のようなキューペアに関連付けられる。
【0022】
本発明の実施形態によれば、異なるハードウェアアドレス割当てモデルは、たとえばVF115のようなVFにvGUIDを割当てるために使用することができる。
【0023】
一例では、サブネットマネージャ(SM)110は、Dom0 111上のPFにLIDおよびGUIDを割当てることに加えて、VF115にvGUIDを割当てるために、動的割当てモデルを使用することができる。動的割当てモデルは、固有IBにアドレスを割当てることと同様である。
【0024】
サブネットの初期化中、Dom0 111上のPFは、VF115などのVFに割当てられる可能性のあるvGUIDをSM110から照会することができる。それに従い、SM110は、対応するvGUIDを生成し、要求元のPFに応答して送信することができる。その後、PFは、受信したvGUIDをDom0 111内のGUID管理インデックステーブル121に保存することができる。GUID管理インデックステーブル121において、各VFは、指定されたインデックスと関連付けられる。
【0025】
動的割当てモデルを使用するとき、割当てられたVFとVMとの関係は一定ではない。
図1に示すように、VMa103がホストA101からホストB102に移行した後、宛先サーバすなわちホストB102から新しいVF116をVMa104に割当てることができる。その結果、VMa104に関連付けられているvGUIDは、ホストB102のDom0 112内のGUID管理インデックステーブル122から取得されたため、変更する。
【0026】
動的割当てモデルは、SM110を用いてVFおよびPFの両方にアドレスを割当てるため、単純である。一方、VMa103に関連付けられたvGUIDは、VM移行後に保存されない場合がある。よって、VM移行後、(たとえば、サブネットマネージャ(SM)110上の)サブネット管理者(SA)に照会を送り、新vGUIDのためにパス情報を取得する必要がある。また、vGUIDがVMに固定されていない場合、パス情報がSAから得られる前に、リモートVMに現在使用されているvGUIDを再検出する必要がある。このようなマッピングは、IPアドレスに関連付けられたハードウェアアドレスを決定することができるアドレス解決プロトコル(ARP)演算を使用することを含んでもよい。これらの演算は、IB、VFを見出すときに追加的遅延を導入する場合がある。特に、ライブ移行が実行されるとき、この遅延は、サービスダウンの総時間を増加させる可能性がある。
【0027】
別の例では、サブネットマネージャ(SM)110は、静的割当てモデルを用いて、VF115にvGUIDを割当てることができる。この静的割当てモデルは、場所に関係なくVMに割当てられたvGUIDを保存することができるが、より複雑であり、固有IBアドレスの割当てとは異なる。VMのライフサイクルに亘って静的vGUIDを持たせるために、静的割当てモデルは、SM110に、またはSMおよび特権ドメイン(Dom0)の組み合わせに依存することができる(SMおよびDom0を組み合わせる手法は、好ましい解決策である。その理由は、SMのみを使用して静的vGUIDを維持する場合、過剰な管理メッセージが生成される可能性があるからのである)。
【0028】
静的割当てモデルを使用する場合、たとえばVMa103のようなVMがインスタンス化されると、VM構成の一部として保存されているvGUIDがVMに割当てられる。たとえばVF115のようなVFがVMa103に加えられると、Dom0 113は、VMの構成からvGUIDを読取り、読取ったvGUIDをGUID管理インデックステーブル121に書込むことができる。同時に、このイベントは、最新のvGUIDをLIDマッピング120に書込むことによってSM110を更新するための管理メッセージをトリガーする。
【0029】
VMa103をホストA101からホストB102に移行した後、VMa104に加えられたVF116は、VMa103に加えられたVF115に関連付けられているvGUIDを保存することができる。
【0030】
本発明の実施形態によれば、静的割当てモデルは、VMのライブ移行をサポートするために、さらなる拡張を必要とする場合がある。
図1に示すように、移行されるVMa103の通信ピアであるVMc105は、LID−vGUIDマッピングにおける変化を察知していない場合がある。よって、VMc105は、キャッシュされた古いパス情報を用いて移行されたVMa103との通信を継続する可能性がある。その結果、ピア同士は、新しい場所に移動されたVMa104と連絡取れなくなる可能性がある。
【0031】
その原因は、移行されたVMa104に関連付けられたvGUIDがそのままに維持されているにもかかわらず、宛先サーバから異なるLIDをもらった新しいVF116が移行されたVMa104に加えられたからである。さらに、SM110および移行されたVMa104は、最新のLID−vGUIDペアを持っているにもかかわらず、VMc105は、最新のパス情報を通知されない場合がある。したがって、移行されるVMピア内にキャッシュされ、以前に確立されたLID−vGUIDペアは、無効になったため、移行されたVMのピア同士は、移行されたVMと連絡取れなくなる可能性がある。
【0032】
シグナリングメカニズム
本発明の実施形態によれば、VM移行後ネットワーク接続性を維持するシグナリングメカニズムを実現することができる。さらに、シグナリング方法は、管理メッセージのオーバーヘッドを低減するために、ホストされるVMにかかわらず、同一のイベントを物理サーバに一回のみ転送することができるように、最適化されることができる。
【0033】
本発明の実施形態に係る、仮想環境内でシグナリング方法をサポートする例を示す図である。
図2に示すように、IBネットワーク200は、サブネットマネージャ(SM)210と、ホストA201およびホストB202などの複数のホストを含むことができる。ピア同士のVMb212と通信しているVMa211のようなVMは、1つのホストたとえばホストA201から別のホストたとえばホストB202に(VMa′213として)移行することができる。
【0034】
図2に示すように、ライブ移行の前に、VMa211は、vGUID A 231に割当てられ、ホストA201上の他のVMとLID A 221を共有することができる。SM210は、このような関係をエントリとしてLID−vGUIDマッピングテーブル220に保存することができる。
【0035】
静的割当てモデルを使用する場合、VMa211のライブ移行の後に、VMa′213は、vGUID A 231を保存することができ、ホストB202上の他のVMと異なるLID B 222を共有することができる。パス再設定/不設定通知は、SM210たとえばSAエージェントキャッシュでLID/vGUIDマッピング220を更新するために使用されることができる。SM210は、IBネットワーク200内でこのような変更またはイベントを検出することができ、それに応じてLID−vGUIDマッピングテーブルを更新することができる。
【0036】
さらに、SM210は、最新のパス情報を通信ピア同士に通知することができる。たとえば、SM210は、パス再設定/不設定通知を用いて、VMa211の移行およびLID−vGUIDマッピング220の変更をホストB上のVMb212に通知することができる。
【0037】
図3は、本発明の実施形態による、仮想環境内でシグナリング方法を実施する例を示す図である。
図3に示すように、IBネットワーク300は、サブネットマネージャ(SM)310と、ホスト301とを含むことができる。ホスト301は、仮想マシンモニタ(VMM)315およびホスト側チャネルアダプタ(HCA)317を含む。VMM315は、ユーザドメインDomU313内で1つ以上の仮想マシン(VM)を管理する管理ドメイン(または特権ドメイン)Dom0 311をサポートする。
【0038】
さらに、システムは、すべてのMADトラフィックを、管理ドメインに関連付けられた物理機能(PF)を介してトンネルされるように、設定することができる。
図3に示すように、たとえばPF306を含むホストA301上の権限ドメインDom0 311は、たとえばVMa303などの複数の仮想マシン(VM)をサポートすることができる。また、VMa303には、QPa307に関連付けられているVF305を加えることができる。さらに、VMa303は、IBネットワーク300内で(VM移行イベント314として示された)ライブ移行を実行することができるVMピア(図示せず)と通信することができる。
【0039】
本発明の実施形態によれば、シグナリング方法は、イベント登録段階とイベント転送段階との2つの段階を含むことができる。
【0040】
イベント登録段階では、各物理サーバは、パス再設定イベント通知を得るために、登録することができる。
図3に示すように、ホストA301は、PF306に関連付けられた物理ポートのGUIDを用いて、サブネットマネージャ(SM)310またはサブネット管理者(SA)に登録できる。物理ポートのGUIDがSM310に正常に登録された後、サブネットマネージャ(SM)310は、物理サーバすなわちホスト301を承認(ACK)する。
【0041】
イベント転送段階は、VM移行イベント314が発生時に実行されることができる。SM310は、LID−vGUIDマッピング320の変更を検出し、すべての登録されたサーバに通知することができる。たとえば、SM310は、最新のLID−vGUIDマッピングを持つパス再設定トラップをホストA301を含むすべての登録されたサーバに送信することができる。そして、ホストA301上の管理ドメインDom0 311は、マッピングテーブル316に登録されたGUIDに基づいて、受信された通知を関与するVMに転送することができる。
【0042】
新しいVMの作成イベントまたはVMの再起動イベント(VMが同一のサーバでシャットダウンされおよび再起動されるとき)にパス再設定トラップがトリガーされないようにするため、SM310は、以下のアルゴリズム1を使用してLID−vGUIDマッピング320の変更を確認することができる。
【0044】
VMのシャットダウンまたはVMの移行によってvGUIDがSM310から削除される場合、パス情報がVM作成イベントおよびVM移行イベントを識別するために使用することのできる一時的な記憶であるパス再設定トラップテーブルに追加されることができる。vGUIDがSM310に追加されたときに既にパス再設定トラップテーブルに存在している場合、関連付けられたパス情報がパス再設定トラップテーブル内のエントリと比較される。LIDが異なると、VM移行が起こったことを示している。そして、この新たに追加されたvGUIDおよびその関連パス情報は、パス再設定トラップテーブルにカプセル化され、ホストA301を含むすべての登録されたサーバに送信されることができる。その後、パス再設定トラップテーブルからvGUIDエントリを削除することができる。
【0045】
SM310にボトルネックが発生しないようにするために、物理ポートのGUID(すなわち、VF305のvGUIDの代わりにDom0 311のGUID)をSM310にイベント登録を申込むために使用されることができる。そして、Dom0 311は、ホストしているVMに受信された通知を配布する。
【0046】
以下は、Dom0311に実装され、受信されたパス再設定トラップ通知を稼働しているVMに転送するアルゴリズム2を示している。
【0048】
イベント登録を申込むために物理ポートGUIDを使用するだけで、生成された管理メッセージ(MMO)を低減することができる。
【0049】
さらに、Dom0 311によって転送された通知がホスト内の各VMによって受信されると、以下のアルゴリズム3は、キャッシュされたパス情報を再設定するために実行されることができる。
【0051】
たとえば、ホストA301は、キャッシュされたパス情報を抽出することができ、抽出したパス情報をパス再設定トラップにカプセル化されたパス記録と比較することができる。マッチしたvGUIDエントリが存在しても異なるLIDを持つ場合、ホストスタック内にキャッシュされたパス情報を更新してもよい。
【0052】
このようにして、サブネットマネージャ(SM)301は、関連付けられたvGUIDに基づき、VMの全ライフサイクルを追跡することができる。たとえば、サブネットマネージャ(SM)301は、オーバーヘッドを低減するかつ拡張性を向上させる最適階層アルゴリズムを用いて、各VMの現在位置を追跡することができ、VMが移行される度に新しいアドレス情報を関連する通信ピア同士に通知することができる。
【0053】
さらに、VM/vHCAの他の特徴、たとえば中断状態および移行状態は、vGUIDが現在任意のファブリックエンドポイントに関連付けられているか否かに係らず、関係するものに反映されることができる。
【0054】
図4は、本発明の実施形態に係る、仮想環境内で仮想マシンのライブ移行をサポートするフローチャート例を示す図である。
図4に示すように、ステップ401で、システムは、1つ以上の物理サーバ上の管理ドメインにマッピングテーブルを提供することができる。次いで、ステップ402で、管理ドメインは、サブネット管理者からの、ネットワーク内に仮想マシン(VM)移行などのパス記録変更イベントを表わすメッセージを受信することができる。さらに、ステップ403で、管理ドメインは、マッピングテーブルに基づいて、受信したメッセージを管理ドメインに関連付けられた1つ以上の仮想マシンに転送することができる。
【0055】
本発明は、1つ以上のプロセッサとメモリおよび/または本開示の教示に従ってプログラムされたコンピュータ読取り可能な記録媒体とを含む1つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティングデバイスまたはマシンまたはマイクロプロセッサを用いて、好都合的に実施されることができる。ソフトウェアの当業者にとって明らかであろうように、ソフトウェアの適切なコーディングは、本開示の教示に基づいて熟練したプログラマによって容易に準備することができる。
【0056】
いくつかの実施形態では、本発明は、コンピュータプログラム製品を含む。このコンピュータプログラム製品は、本発明のいずれかのプロセスを実行するようにコンピュータをプログラムさせるために使用することのできる指令を、その上に/中に記憶させる記録媒体またはコンピュータ読取可能な媒体である。この記録媒体は、フロッピーディスク(登録商標)、光ディスク、DVD、CD−ROM、マイクロドライブおよび光磁気ディスクを含む任意の種類のディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気または光カード、(分子メモリICを含む)ナノシステム、または指令および/またはデータの格納に適した任意の種類の媒体またはデバイスを含むことができるが、これらに限定されない。
【0057】
本発明の上記説明は、例示および説明のために提供されている。本発明を網羅的であることにまたは開示された形態に厳密に限定することを意図するものではない。多くの修正および変更は、当業者にとって明らかであろう。実施形態は、本発明の原理およびその実際の応用を説明するために選択され説明された。よって、当業者がさまざまな実施形態により本発明を理解し、考えられる特定の用途に適したさまざまな修正をできるようになる。なお、本発明の範囲が添付の特許請求の範囲およびその等価物によって定義されることが意図される。