(57)【要約】  システムおよび方法が、ネットワークにおけるバーチャルマシーンのライブマイグレーションをサポートし得る。複数のホストが、ネットワークを介して相互に接続され得る。各ホストは、１つ以上のバーチャルマシーンを含む。少なくとも１つのバーチャルマシーンは、第１のホストから第２のホストへのライブマイグレーションを行なうよう動作する。キューペア（ＱＰ）に付与される仮想機能は、ホスト上のホストチャネルアダプタ（ＨＣＡ）によってサポートされ得る。
2015514270.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにおいてバーチャルマシーンのライブマイグレーションをサポートするためのシステムであって、
１つ以上のマイクロプロセッサと、
前記１つ以上のマイクロプロセッサ上で実行され、前記ネットワークを介して相互に接続される複数のホストと、
１つ以上のバーチャルマシーンとを含み、前記１つ以上のバーチャルマシーンにおける少なくとも１つのバーチャルマシーンは、第１のホストから第２のホストへのライブマイグレーションを行なうよう動作し、
前記少なくとも１つのバーチャルマシーンにはホスト上のホストチャネルアダプタ（ＨＣＡ）によってサポートされるキューペア（ＱＰ）に関連付けられる仮想機能が付与される、システム。
【請求項２】
前記１つ以上のバーチャルマシーンを管理する少なくとも１つのバーチャルマシーンモニタをさらに含む、請求項１に記載のシステム。
【請求項３】
前記仮想機能は入出力（Ｉ／Ｏ）仮想化モデルにおいて提供される、請求項１に記載のシステム。
【請求項４】
前記少なくとも１つのバーチャルマシーンは、
各々がプロセス識別ナンバー（ＰＩＤ）に関連付けられる１つ以上のユーザプロセスを含むユーザスペースと、
ＰＩＤをキューペアナンバー（ＱＰＮ）にマッピングする変換テーブルを含むカーネルスペースとを含み、前記変換テーブルは、前記仮想機能を前記少なくとも１つのバーチャルマシーンから分離するよう用いられる、請求項１に記載のシステム。
【請求項５】
遅延分離マイグレーションプロセスが、バーチャルマシーンライブマイグレーションの間のネットワーク／サービスダウンタイムを低減するよう用いられる、請求項１に記載のシステム。
【請求項６】
前記少なくとも１つのバーチャルマシーンが前記第１のホストから前記第２のホストにマイグレートした後、１つ以上の位置依存のＱＰ属性が更新されることが可能である、請求項１に記載のシステム。
【請求項７】
各ユーザプロセスは、更新された前記１つ以上の位置依存のＱＰ属性の検索および抽出を最適化するよう動作するマッピングテーブルを含む、請求項６に記載のシステム。
【請求項８】
ＱＰ状態情報は、ＱＰの物理リソースを再割り当てするよう前記少なくとも１つのバーチャルマシーンのイメージとともにマイグレートされることが可能である、請求項１に記載のシステム。
【請求項９】
ピアＱＰは、前記少なくとも１つのバーチャルマシーンの前記ライブマイグレーションの間、前記ＱＰとの通信を停止することが可能である、請求項１に記載のシステム。
【請求項１０】
接続マネージャ（ＣＭ）は、前記マイグレーションが完了した後で、マイグレートされた前記ＱＰと前記ピアＱＰとの間の新しい接続を再確立することが可能である、請求項９に記載のシステム。
【請求項１１】
ネットワークにおいてバーチャルマシーンのライブマイグレーションをサポートするための方法であって、
前記ネットワークを介して相互に接続される複数のホストを提供するステップと、
１つ以上のバーチャルマシーンを提供するステップとを含み、前記１つ以上のバーチャルマシーンにおける少なくとも１つのバーチャルマシーンには、ホスト上のホストチャネルアダプタ（ＨＣＡ）によってサポートされるキューペア（ＱＰ）に関連付けられる仮想機能が付与され、前記方法はさらに、
前記少なくとも１つのバーチャルマシーンを介して第１のホストから第２のホストへのライブマイグレーションを行なうステップを含む、方法。
【請求項１２】
前記１つ以上のバーチャルマシーンを管理する少なくとも１つのバーチャルマシーンモニタを提供するステップをさらに含む、請求項１１に記載の方法。
【請求項１３】
前記第１のホスト上のホストチャネルアダプタ（ＨＣＡ）によってサポートされるキューペア（ＱＰ）に前記仮想機能を関連付けるステップをさらに含む、請求項１１に記載の方法。
【請求項１４】
各々がプロセス識別ナンバー（ＰＩＤ）に関連付けられる１つ以上のユーザプロセスを含むユーザスペースを前記少なくとも１つのバーチャルマシーンに含めるステップと、
ＰＩＤをキューペアナンバー（ＱＰＮ）にマッピングする変換テーブルを含むカーネルスペースを前記少なくとも１つのバーチャルマシーンに含めるステップとをさらに含み、前記変換テーブルは、前記仮想機能を前記少なくとも１つのバーチャルマシーンから分離するよう用いられる、請求項１１に記載のシステム。
【請求項１５】
バーチャルマシーンライブマイグレーションの間のネットワーク／サービスダウンタイムを低減するよう遅延分離マイグレーションプロセスを用いるステップをさらに含む、請求項１１に記載の方法。
【請求項１６】
前記少なくとも１つのバーチャルマシーンが前記第１のホストから前記第２のホストにマイグレートされた後、１つ以上の位置依存のＱＰ属性を更新するステップをさらに含む、請求項１１に記載の方法。
【請求項１７】
更新された前記１つ以上の位置依存のＱＰ属性の検索および抽出を最適化するよう動作するマッピングテーブルを各ユーザプロセスに関連付けるステップをさらに含む、請求項１６に記載の方法。
【請求項１８】
ＱＰの物理リソースを再割り当てするよう前記少なくとも１つのバーチャルマシーンのイメージとともにＱＰ状態情報をマイグレートするステップをさらに含む、請求項１１に記載の方法。
【請求項１９】
前記少なくとも１つのバーチャルマシーンの前記ライブマイグレーションの間、前記ＱＰとの通信を停止するようピアＱＰを構成するステップをさらに含む、請求項１１に記載の方法。
【請求項２０】
実行されると、システムに、
前記ネットワークを介して相互に接続される複数のホストを提供するステップと、
１つ以上のバーチャルマシーンを提供するステップとを行なわせ、前記１つ以上のバーチャルマシーンにおける少なくとも１つのバーチャルマシーンには、ホスト上のホストチャネルアダプタ（ＨＣＡ）によってサポートされるキューペア（ＱＰ）に関連付けられる仮想機能が付与され、さらに、
前記少なくとも１つのバーチャルマシーンを介して第１のホストから第２のホストへのライブマイグレーションを行なうステップを行なわせる命令を格納する、一時的でない機械読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文書の開示の一部は、著作権の保護下にある内容を含む。著作権所有者は、特許商標庁の特許ファイルまたはレコードに現れるので、誰でも当該特許文書または特許開示を複製することについて異議はないが、そうでなければ如何なる場合でもすべての著作権を留保する。
【０００２】
発明の分野
本発明は、一般にコンピュータシステムに関し、特にコンピュータシステム仮想化をサポートすることに関する。
【背景技術】
【０００３】
背景
より大きなクラウドコンピューティングアーキテクチャが導入されるにつれて、従来のネットワークおよびストレージに関連付けられる性能および管理上のボトルネックが重要な問題になっている。インフィニバンド（InfiniBand（ＩＢ））技術は、クラウドコンピューティングファブリックの基礎として、展開が増加している。これは、本発明の実施例が対応することが意図される一般的な領域である。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
本願明細書では、ネットワークにおいてバーチャルマシーンライブマイグレーションをサポートするためのシステムおよび方法が記載される。複数のホストが、ネットワークを介して相互に接続され得る。各ホストは、１つ以上のバーチャルマシーンを含む。少なくとも１つのバーチャルマシーンは、第１のホストから第２のホストにライブマイグレーションを行なうよう動作する。キューペア（queue pair（ＱＰ））に付与される仮想機能は、ホスト上のホストチャネルアダプタ（host channel adapter（ＨＣＡ））によってサポートされ得る。
【図面の簡単な説明】
【０００５】
【図１】本発明の実施例に従った、仮想化環境におけるバーチャルマシーンのライブマイグレーションの図を示す図である。
【図２】本発明の実施例に従った、仮想化環境におけるバーチャルマシーンのライブマイグレーションをサポートするための例示的なフローチャートを示す図である。
【図３】本発明の実施例に従った、キューペアナンバー（ＱＰＮ）変換テーブルに対するプロセスＩＤ（ＰＩＤ）の図を示す図である。
【図４】本発明の実施例に従った、位置依存の通信リソースを再割り当てする図を示す図である。
【図５】本発明の実施例に従った、キューペア（ＱＰ）を中断および再開するよう決定性状態を使用する図を示す図である。
【図６】本発明の実施例に従った、ボトムアップアプローチを使用するバーチャルマシーンのライブマイグレーションの図を示す図である。
【図７】本発明の実施例に従った、マイグレーションの後にバーチャルマシーンを再活性化する図を示す図である。
【図８】本発明の実施例に従った、バーチャルマシーンのライブマイグレーションの前の２つのキューペア（ＱＰ）の図を示す図である。
【図９】本発明の実施例に従った、バーチャルマシーンのライブマイグレーションの後の通信における２つのキューペア（ＱＰ）の図を示す図である。
【発明を実施するための形態】
【０００６】
詳細な説明
本発明は、限定目的ではなく例示目的で、添付の図面の図において示される。当該図面においては、同様の参照符号が同様の要素を示す。なお、この開示における「ある」、「１つ」または「いくつか」の実施例への参照は、必ずしも同じ実施例に対してなされるものではなく、このような参照は、少なくとも１つの実施例を意味する。
【０００７】
以下の本発明の記載は、高性能ネットワークについての例として、インフィニバンド（ＩＢ）ネットワークを使用する。他のタイプの高性能ネットワークが限定なしで使用され得るということは、当業者には明らかであろう。さらに、以下の本発明の記載は、仮想化モデルについての例として、Ｘｅｎ仮想化モデルを使用する。他のタイプの仮想化モデルが限定なしで使用され得るということは、当業者には明らかであろう。
【０００８】
本願明細書において、ネットワークにおいてバーチャルマシーン（virtual machine（ＶＭ））ライブマイグレーション（live migration）をサポートすることができるシステムおよび方法が記載される。
【０００９】
本発明の実施例に従うと、仮想化は、クラウドコンピューティングでの効率的なリソース活用および弾性的なリソースアロケーションに有益になり得る。ライブマイグレーションは、物理サーバ同士の間でバーチャルマシーン（ＶＭ）をアプリケーショントランスペアレントな態様で移動させることによって、リソースの使用を最適化することを可能にする。したがって仮想化は、コンソリデーション、リソースのオンデマンドプロビジョニング、およびライブマイグレーションによる弾性を可能にし得る。
【００１０】
インフィニバンド（ＩＢ）アーキテクチャ
ＩＢアーキテクチャはシリアル・ポイント・ツー・ポイント全二重技術である。ＩＢネットワークは、サブネットとも称され得る。サブネットは、スイッチとポイント・ツー・ポイントリンクとを使用して相互接続されるホストのセットからなる。ＩＢサブネットは、サブネットにおけるすべてのスイッチ、ルータおよびホストチャネルアダプタ（ＨＣＡ）のコンフィギュレーションを含み、ネットワークを初期化および起動することを担う、少なくとも１つのサブネットマネージャ（subnet manager（ＳＭ））を含み得る。
【００１１】
ＩＢは、リモートダイレクトメモリアクセス（remote direct memory access（ＲＤＭＡ））および従来の送信／受信セマンティックスの両方を提供するために、伝送サービスの豊富なセットをサポートする。使用される伝送サービスから独立して、ＩＢ  ＨＣＡはキューペア（ＱＰ）を使用して通信する。ＱＰは、通信セットアップの間に作り出され、ＱＰナンバー、ＨＣＡポート、宛先ＬＩＤ、キューサイズおよび伝送サービスといった提供される初期属性のセットを有し得る。ＨＣＡは、多くのＱＰを扱い得、各ＱＰは、送信キュー（send queue（ＳＱ））および受信キュー（receive queue（ＲＱ））のようなキューのペアからなっており、このような１つのペアが、通信に参加する各エンドノードに存在する。送信キューは、リモートノードに転送されるワーク要求を保持する一方、受信キューは、リモートノードから受け取ったデータで何を行なうべきかについての情報を保持する。ＱＰに加えて、各ＨＣＡは、送信キューおよび受信キューのセットに関連付けられる１つ以上の完了キュー（completion queue（ＣＱ））を有する。ＣＱは、送信および受信キューにポスティングしたワーク要求についての完了通知を保持する。通信の複雑性はユーザから隠されているが、ＱＰ状態情報はＨＣＡに維持される。
【００１２】
入出力（Ｉ／Ｏ）仮想化
Ｉ／Ｏ仮想化（I/O Virtualization（ＩＯＶ））は、存在する物理リソースにＶＭがアクセスすることを可能にすることによって、Ｉ／Ｏの可用性を提供し得る。ストレージトラフィックおよびサーバ間通信の組合せによって、単一のサーバのＩ／Ｏリソースを圧倒し得るような増加した負荷が課され、これにより、データを待っている際に、バックログおよびアイドル状態になるプロセッサが引き起こされる。Ｉ／Ｏ要求の数の増加により、ＩＯＶは可用性を提供し得るとともに、現代のＣＰＵ仮想化において見られる性能のレベルに合致するよう、（仮想化された）Ｉ／Ｏリソースの性能、スケーラビリティおよびフレキシビリティを向上し得る。
【００１３】
エミュレーション、準仮想化、直接割当（direct assignment（ＤＡ））およびシングルルートＩ／Ｏ仮想化（single root-I/O virtualization（ＳＲ−ＩＯＶ））といった、異なるタイプのＩＯＶ技術が存在し得る。これらのＩＯＶ技術のうち、ＳＲ−ＩＯＶは、ほぼネイティブの性能を維持しつつ、複数のＶＭから単一の物理デバイスへの直接アクセスを可能にする手段により、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）規格を拡張し得る。したがってＳＲ−ＩＯＶは、良好な性能およびスケーラビリティを提供し得る。
【００１４】
ＳＲ−ＩＯＶは、各ゲストに１つの仮想デバイスを割り当てることによって複数のゲスト同士の間で共有され得る複数の仮想デバイスをＰＣＩｅデバイスが公開することを可能にする。各ＳＲ−ＩＯＶデバイスは、少なくとも１つの物理的機能（physical function（ＰＦ））と、１つ以上の関連付けられる仮想機能（virtual function（ＶＦ））とを有する。ＰＦは、バーチャルマシーンモニタ（virtual machine monitor（ＶＭＭ））またはハイパーバイザによって制御される通常のＰＣＩｅ機能であり、ＶＦは、軽量のＰＣＩｅ機能である。各ＶＦは、自身のベースアドレス（base address（ＢＡＲ））を有しており、ユニークリクエスタＩＤが割り当てられている。ユニークリクエスタＩＤは、Ｉ／Ｏメモリ管理ユニット（I/O memory management unit（ＩＯＭＭＵ））が、異なるＶＦに対する／異なるＶＦからのトラフィックストリーム同士を区別することを可能にする。ＩＯＭＭＵはさらに、ＰＦとＶＦとの間でメモリおよび割込変換を適用する。
【００１５】
たとえば共有ポートモデルおよび仮想スイッチモデルといった、異なるタイプのＳＲ−ＩＯＶモデルが存在し得る。共有ポートモデルでは、すべてのＶＦは、単一のポートアドレスおよび単一のＱＰネームスペースを共有し得、単一のＨＣＡポートのみがネットワークに公開される。仮想スイッチモデルでは、各ＶＦは、ユニークポートアドレスおよびユニークＱＰネームスペースを含む仮想ＨＣＡであり、デバイス上のＶＦごとに１つのＨＣＡがネットワークに公開される。したがって、より複雑なハードウェアであっても、仮想スイッチモデルはＩＯＶを簡素化し得る。
【００１６】
ＳＲ−ＩＯＶ対応のデバイスの使用によって、ほぼネイティブの性能およびスケーラビリティの向上が与えられ得る。その一方、ＳＲ−ｌＯＶは、ライブマイグレーションおよびチェックポイント／リスタートメカニズムと完全には互換性がないわけではない。
【００１７】
ライブマイグレーション
本発明の実施例に従うと、仮想化環境は、バーチャルマシーンのライブマイグレーションを可能にする。すなわち、ＶＭ上で実行されているアプリケーションを中断することなく、実行中のＶＭをあるマシンから別のマシンに移動させることを可能にする。
【００１８】
図１は、本発明の実施例に従った、仮想化環境におけるバーチャルマシーンのライブマイグレーションの図を示す。図１に示されるように、たとえばホストＡ−Ｂ１０１−１０２といった複数のホストがＩＢネットワーク１００を介して相互接続され得る。たとえばＶＭａ１０３のようなＶＭは、たとえばホストＡ１０１のようなあるホストからホストＢ１０２のような別のホストに（ＶＭａ１０４として）マイグレートし得る。
【００１９】
さらに図１に示されるように、各ホストは、ＨＣＡを使用するＶＭＭを含み得る。たとえば、ホストＡ１０１におけるＶＭＭ  Ａ１１５はＨＣＡ１１７を使用しており、ホストＢ１０２におけるＶＭＭ  Ｂ１１６はＨＣＡ１１８を使用している。さらにＶＭａ１０３には、たとえばＱＰａ１０７といったキューペアに接続されるＶＦ１０５のようなＶＦが付与され得る。
【００２０】
ＶＭＭの観点から、ＶＦ１０５が付与されるＶＭａ１０３をホストＡ１０１からホストＢ１０２にマイグレートするよう、３段階のマイグレーションプロセスが行なわれ得る。
【００２１】
段階１：ＶＭａ１０３からＶＦ１０５の分離
段階２：ホストＡ１０１からホストＢ１０２にＶＭａ１０３を（ＶＭａ１０４として）マイグレート
段階３：ＶＭａ１０４に新しいＶＦ１０６を付与
Ｘｅｎ仮想化モデルを使用して、各ホストは、特権ドメインと１つ以上のゲストＶＭを含むゲストドメインとを含み得る。たとえばホストＡ１０１は、特権ドメインであるＤｏｍ０  １１１と、ゲストドメインであるＤｏｍＵ  １１３とを含み得、ホストＢ１０２は特権ドメインであるＤｏｍ０  １１２と、ゲストドメインであるＤｏｍＵ  １１４とを含み得る。
【００２２】
図１に示されるように、特権ドメインであるＤｏｍ０  １１１は、そのデバイスドライバをアンロードすることによりＶＦ１０５を分離するために、ゲストドメインであるＤｏｍＵ  １１３への仮想割込を生成し得る。たとえば、ＰＣｌｅデバイスを切断するようハイパーバイザによってサポートされるホットプラグメカニズムがＶＦ１０５を分離するよう使用され得る。
【００２３】
本発明の実施例に従うと、当該システムは、ＶＭａ１０３からＶＦ１０５を分離するためのＰＩＤ−ＱＰＮ変換テーブルを使用し得る。ＱＰａ１０７が作り出されると、ユーザアプリケーション１１０のＰＩＤは、ＶＭａ１０３のカーネルスペースに存在するＰＩＤ−ＱＰＮ変換テーブルに登録され得る。次いで、たとえばＱＰａ１０７のようなアクティブなＱＰが存在しＶＦ１０５に接続する状況で、図３に示され得るＰＩＤ−ＱＰＮ変換テーブルに基づきＶＦ１０５の分離が成功し得る。さらに、ＶＭａ１０３がホストＡ１０１からホストＢ１０４まで（ＶＭａ１０４として）マイグレートした後、新しい仮想グローバルユニーク識別子（virtual globally unique identifier（ｖＧＵＩＤ））と新しいローカル識別子（local identifier（ＬＩＤ））とを含むＶＦ１０６がＶＭａ１０４に付与され得る。
【００２４】
ＩＢネットワークでは、ＱＰリソースは、ハードウェアによって直接的に管理され得、オパックハンドル（opaque handle）を通じてソフトウェアによってのみアクセスされ得る。したがって、ＶＦ１０６がＶＭａ１０４に付与されると、ユーザアプリケーションは、ＱＰａ１０７を指す無効なオパックハンドルを有し得る。これは、ユーザプロセスによって固定された物理メモリについての仮想アドレスが変化し、メモリ登録の間に作り出されたオパックハンドルは無効になり得るからである。
【００２５】
本発明の実施例に従うと、変換メカニズムは、ＱＰについて位置依存のリソースを扱うよう使用され得る。各ＱＰコンテキストは、ＨＣＡおよびホストに関連付けられる位置依存の属性を含む。変換メカニズムを使用して、これらの位置依存の属性は、マイグレーションの後に再び作り出され得る。さらに、アプリケーショントランスペアレンシーを維持するために、マイグレーションの後に、ユーザプロセスにおける仮想アドレスは、正しい物理メモリの新しい位置にそれらを固定するよう再び割り当てられ得る。
【００２６】
さらに、ＩＢネットワークは、ＶＭのライブマイグレーションの前および後にＱＰを中断および再開するための決定性状態を使用し得る。この決定性状態は、２つの異なる物理デバイス間でＱＰ状態をマイグレートするとともに、ロスレスネットワークであり得るＩＢネットワーク１００において致命的なエラーを引き起こし得る如何なるドロップしたパケットまたは使用不能なパケットも防止するよう使用され得る。次いで、マイグレーションの時に、マイグレートするＶＭａ１０３は、まだ伝送線で転送されていない各ＱＰにおいて、未処理のパケットをマイグレートさせることができる。
【００２７】
図２は、本発明の実施例に従った、仮想化環境におけるバーチャルマシーンのライブマイグレーションをサポートするための例示的なフローチャートを示す。図２に示されるように、ステップ２０１では、１つ以上のバーチャルマシーンを含む複数のホストは、ネットワークを介して相互接続される。その後、ステップ２０２では、少なくとも１つのバーチャルマシーンには、キューペア（ＱＰ）に関連付けられる仮想機能が付与される。当該ＱＰは、ホスト上のホストチャネルアダプタ（ＨＣＡ）によってサポートされる。さらに、ステップ２０３では、上記の少なくとも１つのバーチャルマシーンが、第１のホストから第２のホストにライブマイグレーションを行い得る。
【００２８】
キューペアナンバー（Queue Pair Number（ＱＰＮ））変換テーブルに対するプロセスＩＤ（Process ID（ＰＩＤ））
図３は、本発明の実施例に従った、キューペアナンバー（ＱＰＮ）変換テーブルに対するプロセスＩＤ（ＰＩＤ）の図を示す。図３に示されるように、バーチャルマシーン（ＶＭ）環境３００は、カーネルスペース３０１およびユーザスペース３０２を含み得る。
【００２９】
ユーザスペース３０２は、各々にプロセスＩＤ（ＰＩＤ）が割り当てられ得る、たとえばユーザプロセスＡ−Ｃ３１１−３１３のような１つ以上のユーザプロセスを含み得る。たとえば、プロセスＩＤ（ＰＩＤ）３２１がユーザプロセスＡ３１１に割り当てられ得る。
【００３０】
さらに、各ユーザプロセスＡ−Ｃ３１１−３１３は、システムにおける他のプロセスと通信するよう、１つ以上のキューペア（ＱＰ）を使用し得る。たとえば、ユーザプロセスＡ３１１は、キューペアナンバー（ＱＰＮ）３３２に関連付けられるＱＰａ３２２を使用し得る。
【００３１】
バーチャルマシーン３００のライブマイグレーションの前および後に正しいユーザプロセスを識別するために、カーネルスペース３０１は、バーチャルマシーン３００についてのＱＰを、ＱＰを使用する異なるユーザプロセスに関係付ける変換テーブル３１０を維持し得る。
【００３２】
たとえば、変換テーブル３１０は、ＱＰａ３２２についての（値ｘを有する）ＱＰＮ３３２を、ユーザプロセスＡ３１１に割り当てられる（値０ｘＡを有する）ＰＩＤ３２１にマッピングし得る。さらに、変換テーブル３１０は、ユーザプロセスＢ−Ｃ３１２−３１３のような他のユーザプロセスにＱＰをマッピングするためのエントリを有し得る。
【００３３】
本発明の実施例に従うと、ユーザプロセスＡ３１１についてのＰＩＤ３２１は、ＱＰａ３２２が作り出されると、変換テーブル３１０に登録され得、ＱＰａ３２２が破壊されると、ユーザプロセスＡ３１１についてのＰＩＤ３２１は登録抹消され得る。
【００３４】
Ｘｅｎベースのアーキテクチャの例においては、バーチャルマシーン３００における特権ドメインは、登録されたＱＰＮ３３２が存在する場合、固定されたメモリを解放するよう、登録されたＰＩＤ３２１でユーザプロセスＡ３１１に通知するためのイベントをトリガすることにより、ＩＢ  ＶＦを分離しようとし得る。ユーザプロセスＡ３１１による固定されたメモリが解放された後、ユーザプロセスＡ３１１に属するＱＰａ３２２は、再開イベントを受け取るまで中断され得る。結果として、カーネルスペース３０１モジュールはアンロードされ得、ＱＰａ３２２に接続されたＶＦは、ＶＭ３００からの分離が成功し得る。
【００３５】
さらに、ユーザスペース３０２とカーネルスペース３０１との間のインタラクションの欠如を解消するために、システムは、ＰＣＩ  ＩＢモジュールを登録解除する前にカーネルスペース３０１によってトリガされ得るユーザスペースコールバック機能を構成し得る。
【００３６】
位置依存の通信リソース
図４は、本発明の実施例に従った、位置依存の通信リソースを再割り当てする図を示す。図４に示されるように、バーチャルマシーン環境４００は、カーネルスペース４１０と、たとえばユーザプロセスＡ−Ｃ４１１−４１３といった１つ以上のユーザプロセスを有するユーザスペース４０１とを含み得る。
【００３７】
マイグレーションの後に、宛先ホストにて他のＱＰＮとの競合を回避するために、各ユーザプロセスＡ−Ｃ４１１−４１３は、更新されたＱＰ属性を検索および抽出する時間を最小化することができるマッピングテーブルを有し得る。
【００３８】
ユーザプロセスＡ４１１は、たとえばユーザプロセスＡ４１１の場合のユーザスペースデバイスドライバ４２２のようなユーザスペースライブラリの一部として実現され得るマッピングテーブル４３３を有し得る。さらに、マッピングテーブル４３３のサイズは、各ユーザプロセスＡ−Ｃ４１１−４１３が自身のマッピングテーブルを有し得るので、相対的に小さいサイズに維持され得る。
【００３９】
さらに、マッピングテーブル４３３は、新しいＩＢ  ＶＦが宛先ホストにて付与された後で、更新された位置依存のＱＰ属性を抽出するよう使用され得る。たとえば、各ＱＰ属性につき１つのマッピングテーブルを使用する代わりに、マッピングテーブル４３３は単に、（古いＱＰＮがキーとして使用される状態で）メモリに格納される新しいＱＰ属性へのポインタを含んでもよい。図４に示されるように、マッピングテーブル４３３において、第１のＱＰＮ値であるＸは、位置依存の属性４３２のアドレス４３１を格納するＱＰコンテキストポインタである０ｘａａに関連付けられる。
【００４０】
本発明の実施例に従うと、ＱＰコンテキストは、ローカル識別子（ＬＩＤ）、キューペアナンバー（ＱＰＮ）、リモートキー（ｒｋｅｙ）およびローカルキー（ｌｋｅｙ）のようないくつかの位置依存の属性４３２を含み得る。ＬＩＤは、サブネット初期化の間にサブネットマネージャによって各ＨＣＡポートに割り当てられるローカルアドレスである。ＱＰＮは、ＱＰを示す識別子であり、ＨＣＡの内でだけユニークである。ローカルキー（ｌｋｅｙ）およびリモートキー（ｒｋｅｙ）の両方は、マイグレーションの後で変更される必要がある位置依存の属性である。これらは、ローカルおよびリモートのメモリ領域にそれぞれアクセスするための認証キーである。
【００４１】
代替的には、これらのＱＰ属性を再マッピングするのための他のアプローチが存在し得る。１つのアプローチは、再マッピングメカニズムをハードウェアにオフロードすることである。このアプローチは、ハードウェアおよびソフトウェアアーキテクチャへの修正を必要とし得る。別の代替案は、ＶＦが再び付与された後、カーネルにマッピングテーブルを配置し、キャッシュされたＱＰ属性をＱＰ属性の新しいセットに再マッピングすることである。このアプローチは、ＬＩＤ、ｒｋｅｙ、ｌｋｅｙおよびＱＰＮといったすべての属性についてのマッピングテーブルを必要とする場合がある。さらに、ＱＰＮはサブネット内でユニークでない場合があり得、マイグレーションの後で競合を引き起こし得る。
【００４２】
したがって、ＱＰ属性４３２のような位置依存のリソースは、ユーザアプリケーション４２１によってキャッシュされ得る。さらに、ＱＰが確立された後、カーネル４１０からの割込なしで、ユーザアプリケーション４２１によるタイムクリティカルな動作が、ユーザスペース４０１におけるライブラリに基づき直接的に行なわれ得る。
【００４３】
キューペア（ＱＰ）状態
図５は、本発明の実施例に従った、キューペア（ＱＰ）を中断および再開するよう決定性状態を使用する図を示す。図５に示されるように、ネットワークモデル５００は、レディ・ツー・リード（ready-to-read（ＲＴＳ））状態５０１およびセンド・キュー・ドレイン（send-queue-drain（ＳＱＤ））状態５０２といったさまざまな規定された状態にキューペア（ＱＰ）があることを可能にする。さらに、ネットワークモデル５００はたとえば、ライブマイグレーション前および後にＱＰを中断および再開するよう、中断状態５０３のような決定性状態を使用し得る。
【００４４】
本発明の実施例に従うと、中断状態５０３は、センド・キュー・ドレイン（ＳＱＤ）状態５０２に基づき得る。ＱＰがＲＴＳ状態５０１からＳＱＤ状態５０２に移行される前に、ＱＰのワークキューにおけるすべての未処理の動作のドレインが成功する。したがってＳＱＤ状態５０２は、ＱＰが一時的に中断され得る前にすべての未処理の送信動作が完了することを確実にし得る。このアプローチを使用すると、ＱＰは、送信中のパケットが存在しない決定性状態になり得、ＱＰは安全に中断およびマイグレートされ得る。
【００４５】
遅延分離（Late-detach）マイグレーションプロセス
本発明の実施例に従うと、仮想環境は、ＶＭマイグレーションの間、遅延分離アプローチを使用して、サービスダウンタイムを低減することができる。
【００４６】
図６は、本発明の実施例に従った、ボトムアップアプローチを使用してバーチャルマシーンのライブマイグレーションの図を示す。図６に示されるように、たとえばホストＡ−Ｂ６０１−６０２のような複数のホストは、ＩＢネットワーク６００を介して相互に接続され得る。各ホストＡ−Ｂ６０１−６０２は、ＶＭＭ６１５−６１６のような、１つ以上のバーチャルマシーン（ＶＭ）を管理する１つ以上のバーチャルマシーンモニタ（ＶＭＭ）を含み得る。
【００４７】
たとえばＤｏｍＵ  ６１３におけるＶＭａ６０３のようなバーチャルマシーン（ＶＭ）には、たとえばＨＣＡ６１７上のＱＰａ６０７のようなキューペア（ＱＰ）に接続する仮想機能（ＶＦ）６０５が付与され得る。特権領域であるＤｏｍ０  ６１１は、ホストＡ６０１からホストＢ６０２へのＶＭａ６０３の（ＶＭａ６０４としての）マイグレーションを開始し得る。
【００４８】
図６に示されるように、システムは、まずＶＦ６０５を分離することなくＶＭａ６０３がマイグレートすることを可能にする。その後、システムは、ＶＭａ６０４が（ＶＭＭ６１６およびＨＣＡ６１８にサポートされる特権領域であるＤｏｍ０  ６１２と、ゲストドメインであるＤｏｍＵ  ６１４とを含む）宛先ホストＢ６０２上でセットアップされた後で、ＶＦ６０５を分離し得る。
【００４９】
したがって、ＶＭが中断されるまでＩＢデバイスは動作可能のままであり得るのでサービスダウンタイムは低減され得る。たとえばＨＣＡ６１７上のＱＰａ６０７は、ストップ・アンド・コピーの段階の開始まで機能的なままであり得る。
【００５０】
図７は、本発明の実施例に従った、マイグレーションの後のバーチャルマシーン環境を再活性する図を示す。図７に示されるように、たとえばホストＡ−Ｂ７０１−７０２のような複数のホストは、ＩＢネットワーク７００を介して相互に接続され得る。各ホストＡ−Ｂ７０１−７０２は、１つ以上のバーチャルマシーン（ＶＭ）を管理する、ホストＡ７０１上のＶＭＭ６１５およびホストＢ７０２上のＶＭＭ７１６といった１つ以上のバーチャルマシーンモニタ（ＶＭＭ）を含み得る。さらに、各ホストＡ−Ｂ７０１−７０２は、ホストＡ７０１上のＨＣＡ７１７およびホストＢ７０２上のＨＣＡ７１８のような１つ以上のＨＣＡを含み得る。
【００５１】
ＶＭａ７０４が宛先ホストＢ７０２にマイグレートした後、ＶＭａ７０４が再開される前に、新しいＶＦ７０６がＶＭａ７０４に付与（または再付与）され得る。新しいＶＦ７０６は、ＨＣＡ７１８上の新しく作り出されたＱＰａ’７０８に接続し得る。
【００５２】
Ｘｅｎ仮想化モデルを使用して、たとえばホストＢ７０２上のＤｏｍ０  ７１２のような特権領域は、初期の復元の間にＶＦ７０６を初期化する代わりに、ゲストドメインであるＤｏｍＵ  ７１４においてＶＭａ７０４の復元の最終段階にて、新しいＶＦ７０６を付与し得る。さらに、Ｄｏｍ０  ７１２は、ハードウェア依存リソースを再び作り出すことと、リモートＱＰとの接続を再び確立することとを含み得る再コンフィギュレーションプロセスを行い得る。
【００５３】
リモート接続の再確立
ＩＢネットワークは、複数の接続指向の伝送サービスを提供し得る。システムは、両方のＱＰがまだ動作中である際、たとえばＲＴＳ状態である際にＶＭマイグレーションが発生する状況において、マイグレーションが完了した後、宛先ホスト上にＱＰを再び作り出し得るとともにリモートのＱＰとの接続を再確立し得る。
【００５４】
図８は、本発明の実施例に従った、バーチャルマシーンのライブマイグレーションの前の２つのキューペア（ＱＰ）の図を示す。図８に示されるように、たとえばホストＡ−Ｂ８０１−８０２のような複数のホストは、ＩＢネットワーク８００を介して相互に接続され得る。各ホストＡ−Ｂ７０１−７０２は、ＶＭＭ８１５−８１６のような１つ以上のバーチャルマシーンモニタ（ＶＭＭ）と、ＨＣＡ８１７−８１８のような１つ以上のＨＣＡとを含み得る。
【００５５】
図８に示されるような例において、ホストＡ８０１上のＶＭａ８０３に関連付けられるＱＰａ８０８は、ホストＡ８０１からホストＢ８０２へのＶＭａ８０３のライブマイグレーションの前に、たとえばＶＭｃ８０５に関連付けられるＱＰｃ８０７のようなピアＱＰと通信し得る。
【００５６】
ＶＭａ８０３のライブマイグレーションの間、ＶＭａ８０３のマイグレーションを成功させるために、通信マネージャ（communication manager（ＣＭ））８１０は、デバイス除去イベントを許容するよう構成され得る。ＣＭ８１０は、デバイスが除去された後、接続を切断し得、新しいデバイスが再び付与されると接続を再び開始し得る。さらにシステムは、たとえばユーザスペースライブラリにおいて、再接続メカニズムを実現し得る。
【００５７】
図８に示されるように、Ｘｅｎベースのアーキテクチャの例において、ホストＡ８０１上の特権ドメインであるＤｏｍ０  ８１１は、ゲストドメインであるＤｏｍＵ  ８１３におけるＶＭａ８０３の、ホストＢ８０２へのマイグレーションを開始し得る。さらに、ホストＢ８０２は、特権ドメインであるＤｏｍ０  ８１２と、１つ以上のＶＭ（たとえばＶＭｘ８０４）を含むゲストドメインであるＤｏｍＵ  ８１４とを含み得る。
【００５８】
本発明の実施例に従うと、Ｘｅｎモデルのような仮想化モデルにおいて、ＶＭとゲストドメイン（すなわちＤｏｍＵ）との間に１対１の関係が存在し得る。さらに、ＶＭＭ／Ｄｏｍ０の制御の下でＶＭをホストする物理サーバ上のリソースコンテナであるＤｏｍＵは、ＶＭのＸｅｎノーションを示すよう使用され得る。さらに、他の仮想化モデルにおいて、１対多または多対１の関係が、限定なしで、ＶＭとゲストドメインとの間で存在し得る。たとえば、ゲストドメインは、異なるＶＭをホスト可能であり得る。
【００５９】
さらに、Ｄｏｍ０  ８１１は、ＶＭａ８０３からＶＦをアンプラグするようＰＣＩ分離スクリプトを実行し得る。この動作はさらに、中断段階をトリガし得る。中断段階では、ＶＭａ８０３上のカーネルＩＢ  ＰＣＩモジュールが、ＰＩＤがＱＰＮ−ＰＩＤマッピングテーブル３１０に存在することを照合し得るとともに、ＶＭａ８０３におけるユーザプロセスに通知するよう中断イベントを信号送信し得る。
【００６０】
マイグレートするＶＭａ８０８は、固定されたメモリが解放される前に、ＱＰ属性とＶＭｃ８０７への帯域外ソケットアドレスとを保存し得る。ここで、ソケットアドレスは、マイグレーションの後に変化しない、ＶＭについての位置独立アドレスとして使用され得る。位置独立ソケットアドレスは、ＶＭライフサイクルを通じてｖＧＵＩＤがユニークかつ静的な「名前」として使用されない場合に、ＶＭを識別するよう使用され得る。
【００６１】
次いで、固定されたメモリが解放された後、ＶＭａ８０８からのＶＦの分離が成功し得、再開イベントを受け取るまで、ＶＭａ８０８に関連付けられるユーザプロセスが中断状態のままであり得る。
【００６２】
ユーザプロセスは、中断イベントを受け取ると、中断フラグを設定し得るとともに、残っている送信動作を停止する。次いで、ユーザプロセスは、ＱＰａ８０８が中断されることをＶＭｃ８０７上のユーザライブラリに通知するよう、信頼性のある接続を使用して中断メッセージを生成し得る。両方のＱＰ８０７−８０８上のワークキューがドレインされた場合、ＶＭｃ８０５はＱＰｃ８０７をリセットし得、新しいＣＭイベントを待ち得る。
【００６３】
さらに、ライブマイグレーション中に、マイグレートするＶＭａ８０３は、ＱＰｃ８０７がマイグレートするＶＭａ８０３にデータを送信するのを防止し得、マイグレーションについてＱＰｃ８０７に通知するよう、信頼性のある接続（reliable connection（ＲＣ））中断メッセージを転送し得る。ＱＰｃ８０７は、メッセージを受け取った後、ワークキューのドレインがすべて成功することを保証し得る。その後、ＱＰｃ８０７はリセット状態に変化し得、通信を再開するよう新しいＣＭイベントを待つ。
【００６４】
したがってシステムは、マイグレーションの後、ＶＭａ８０８とＶＭｃ８０５との間の接続を維持し得る。
【００６５】
図９は、本発明の実施例に従った、バーチャルマシーンのライブマイグレーションの後の通信における２つのキューペア（ＱＰ）の図を示す。図９に示されるように、複数のホスト、たとえば、ホストＡ−Ｂ９０１−９０２は、ＩＢネットワーク９００を介して相互に接続され得る。
【００６６】
ホストＢ９０２上のＶＭａ９０４は、ホスト９０１からマイグレートされ得る。次いで、システムはＶＭａ９０４に新しいＶＦを付与し得るとともに、再開段階をトリガし得る。システムは、再開フラグをセットするとともにたとえばＱＰａ’９０８といった新しいＱＰを作り出すよう、ＶＭａ９０４におけるユーザプロセスに通知するための再開イベントを信号送信し得る。さらに、新しいＱＰ属性へのポインタは、以前のＱＰＮが抽出キーとして使用される状態で、マッピングテーブルに加えられ得る。
【００６７】
ＣＭ９１０がＶＭについての位置独立アドレスを使用してＶＭｃ９０５（または図８におけるＶＭｃ８０５）との接続を再確立した後、ＱＰ属性を交換するとともにＱＰ９０７−９０８の両方をＲＴＳ状態に移すことにより通信が再開され得る。この点で、アプリケーションは、マッピングテーブルから正しいＱＰ属性を抽出するよう、すべての動作がユーザライブラリによってインターセプトされた状態で、キャッシュされたＱＰ属性を使用し続けることができる。
【００６８】
本発明は、１つ以上のプロセッサ、メモリ、および／または本開示の教示に従ってプログラムされたコンピュータ読取可能な記録媒体を含む１つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを用いて簡便に実施され得る。ソフトウェア技術の当業者には明らかであるように、適切なソフトウェアコーディングは、熟練したプログラマによって本開示の教示に基づき容易に用意され得る。
【００６９】
いくつかの実施例では、本発明は、本発明の処理のいずれかを実行するようコンピュータをプログラムするのに用いられ得る命令を格納した記録媒体またはコンピュータ読取可能な媒体であるコンピュータプログラムプロダクトを含む。当該記録媒体は、フロッピーディスク（登録商標）、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリ素子、磁気または光学カード、ナノシステム（分子メモリＩＣを含む）、または命令および／またはデータを格納するのに好適な任意のタイプの媒体もしくはデバイスを含み得るが、これらに限定されない。
【００７０】
本発明の上記の記載は、例示および説明目的で与えられている。網羅的であることまたは開示されたそのものの形態に本発明を限定することを意図したものではない。当業者にとっては、多くの修正例および変形例が明確であろう。上記の実施例は、本発明の原理およびその実際的な適用をもっともよく説明するために選択および記載されたものであり、これにより他の当業者が、特定の使用に好適なさまざまな修正例を考慮して、さまざまな実施例について本発明を理解するのが可能になる。本発明の範囲は、添付の特許請求の範囲およびそれらの均等物によって定義されることが意図される。
【図１】
2015514270.tif 000003
【図２】
2015514270.tif 000004
【図３】
2015514270.tif 000005
【図４】
2015514270.tif 000006
【図５】
2015514270.tif 000007
【図６】
2015514270.tif 000008
【図７】
2015514270.tif 000009
【図８】
2015514270.tif 000010
【図９】
2015514270.tif 000011
【国際調査報告】
2015514270.tif 000012
2015514270.tif 000013