(57)【特許請求の範囲】
【請求項１】
ライブバーチャルマシーンマイグレーションシステムであって、
少なくとも１つのコントローラ回路と、
前記少なくとも１つのコントローラ回路に通信結合される少なくとも１つの記憶装置と、
を有し、
前記少なくとも１つの記憶装置は、前記少なくとも１つのコントローラ回路によって実行されると、前記少なくとも１つのコントローラ回路にバーチャルマシーンマイグレーションコントローラを提供させるマシーン実行可能命令を有し、
前記バーチャルマシーンマイグレーションコントローラは、
第１のホストシステム上にある複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定することと、
複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは少なくとも１つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含む、グループ化することと、
前記少なくとも１つの同一のメモリページコンテンツ部分、各グループに含まれる前記バーチャルマシーンのそれぞれのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、前記第１のホストシステムから第２のホストシステムに前記複数のバーチャルマシーングループのそれぞれをマイグレートするために計画されるマイグレーション時間を決定することと、
を実行するシステム。
【請求項２】
前記マシーン実行可能命令は更に、
前記バーチャルマシーンマイグレーションコントローラによる前記複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定することを前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項１記載のライブバーチャルマシーンマイグレーションシステム。
【請求項３】
前記複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
前記複数のバーチャルマシーングループのそれぞれの計画されたマイグレーション時間に少なくとも部分的に基づき、前記複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定することを前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項２記載のライブバーチャルマシーンマイグレーションシステム。
【請求項４】
前記複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
規定された時間間隔にわたって前記バーチャルマシーンのそれぞれによる過去のページダーティ処理に基づき、前記バーチャルマシーンのそれぞれのページダーティ処理レートを決定することを前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項１記載のライブバーチャルマシーンマイグレーションシステム。
【請求項５】
前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
前記複数のバーチャルマシーンのそれぞれを複数のバーチャルマシーンペアの１つに選択的にグループ化することであって、各バーチャルマシーンペアにおける各バーチャルマシーンは少なくとも１つの同一のメモリページコンテンツ部分にアクセスする、グループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項１記載のライブバーチャルマシーンマイグレーションシステム。
【請求項６】
前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは少なくとも１つの共通のメモリページに以前にアクセスしたバーチャルマシーンを含む、グループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項１乃至５何れか一項記載のライブバーチャルマシーンマイグレーションシステム。
【請求項７】
前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも１つに以前にアクセスしたバーチャルマシーンを含み、前記複数のメモリページのそれぞれは、前記同一のメモリページコンテンツ部分を少なくとも部分的に含む、グループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項１乃至５何れか一項記載のライブバーチャルマシーンマイグレーションシステム。
【請求項８】
前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
前記複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定することと、
類似のハッシュ値を有する前記複数のメモリページ内の少なくとも２つのメモリページを検出することと、
前記類似のハッシュ値を有する前記複数のメモリページ内の検出された少なくとも２つのメモリページについて、前記少なくとも２つのページのそれぞれに含まれる同一のコンテンツを特定することと、
を前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項７記載のライブバーチャルマシーンマイグレーションシステム。
【請求項９】
前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも１つに以前にアクセスしたバーチャルマシーンを含み、前記複数のメモリページのそれぞれは、同一のメモリページコンテンツを有する、グループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項１乃至５何れか一項記載のライブバーチャルマシーンマイグレーションシステム。
【請求項１０】
前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
前記複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定することと、
類似のハッシュ値を有する前記複数のメモリページ内の少なくとも２つのメモリページを検出することと、
前記類似のハッシュ値を有する前記複数のメモリページ内の検出された少なくとも２つのメモリページについて、前記少なくとも２つのページのそれぞれに含まれる同一のコンテンツを特定することと、
を前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項９記載のライブバーチャルマシーンマイグレーションシステム。
【請求項１１】
ライブバーチャルマシーンマイグレーション方法であって、
バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定することと、
前記バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは少なくとも１つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含む、グループ化することと、
前記バーチャルマシーンマイグレーションコントローラが、前記少なくとも１つの同一のメモリページコンテンツ部分、各グループに含まれる前記バーチャルマシーンのそれぞれのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、前記複数のバーチャルマシーングループのそれぞれの計画されるマイグレーション時間を決定することと、
を有する方法。
【請求項１２】
前記バーチャルマシーンマイグレーションコントローラによる前記複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定することを更に有する、請求項１１記載のライブバーチャルマシーンマイグレーション方法。
【請求項１３】
前記複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定することは、
前記バーチャルマシーンマイグレーションコントローラが、前記複数のバーチャルマシーングループのそれぞれの計画されたマイグレーション時間に少なくとも部分的に基づき、前記複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定することを有する、請求項１２記載のライブバーチャルマシーンマイグレーション方法。
【請求項１４】
前記複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定することは、
前記バーチャルマシーンマイグレーションコントローラが、規定された時間間隔にわたって前記バーチャルマシーンのそれぞれによる過去のページダーティ処理に基づき、前記バーチャルマシーンのそれぞれのページダーティ処理レートを決定することを有する、請求項１２記載のライブバーチャルマシーンマイグレーション方法。
【請求項１５】
前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することは、
前記バーチャルマシーンマイグレーションコントローラが、前記複数のバーチャルマシーンのそれぞれを複数のバーチャルマシーンペアの１つに選択的にグループ化することであって、各バーチャルマシーンペアにおける各バーチャルマシーンは少なくとも１つの同一のメモリページコンテンツ部分にアクセスする、グループ化することを有する、請求項１１記載のライブバーチャルマシーンマイグレーション方法。
【請求項１６】
前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することは、
前記バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは少なくとも１つの共通のメモリページに以前にアクセスしたバーチャルマシーンを含む、グループ化することを有する、請求項１１乃至１５何れか一項記載のライブバーチャルマシーンマイグレーション方法。
【請求項１７】
前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することは、
前記バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも１つに以前にアクセスしたバーチャルマシーンを含み、前記複数のメモリページのそれぞれは、前記同一のメモリページコンテンツ部分を少なくとも部分的に含む、グループ化することを有する、請求項１１乃至１５何れか一項記載のライブバーチャルマシーンマイグレーション方法。
【請求項１８】
前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することは、
前記複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定することと、
類似のハッシュ値を有する前記複数のメモリページ内の少なくとも２つのメモリページを検出することと、
前記類似のハッシュ値を有する前記複数のメモリページ内の検出された少なくとも２つのメモリページについて、前記少なくとも２つのページのそれぞれに含まれる同一のコンテンツを特定することと、
を有する、請求項１７記載のライブバーチャルマシーンマイグレーション方法。
【請求項１９】
前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することは、
前記バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも１つに以前にアクセスしたバーチャルマシーンを含み、前記複数のメモリページのそれぞれは、同一のメモリページコンテンツを有する、グループ化することを有する、請求項１１乃至１５何れか一項記載のライブバーチャルマシーンマイグレーション方法。
【請求項２０】
前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することは、
前記複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定することと、
類似のハッシュ値を有する前記複数のメモリページ内の少なくとも２つのメモリページを検出することと、
前記類似のハッシュ値を有する前記複数のメモリページ内の検出された少なくとも２つのメモリページについて、前記少なくとも２つのページのそれぞれに含まれる同一のコンテンツを特定することと、
を有する、請求項１９記載のライブバーチャルマシーンマイグレーション方法。
【請求項２１】
ライブバーチャルマシーンマイグレーションシステムであって、
複数のバーチャルマシーンにおける各バーチャルマシーンについて、前記各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定する手段と、
複数のバーチャルマシーングループを提供するため、前記複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化する手段であって、各バーチャルマシーングループにおける各バーチャルマシーンは同一のメモリページコンテンツ部分にアクセスする、グループ化する手段と、
各バーチャルマシーングループについて、前記各バーチャルマシーングループにおけるバーチャルマシーンによりアクセスされる同一のメモリページコンテンツ部分の１つのマイグレーション、前記各バーチャルマシーングループをマイグレートするのに利用可能な帯域幅及び前記各バーチャルマシーングループに含まれるバーチャルマシーンのそれぞれに論理的に関連するメモリページダーティ処理レートを示す値に少なくとも部分的に基づき、前記各バーチャルマシーングループをマイグレートするための時間を動的に予測する手段と、
を有するシステム。
【請求項２２】
請求項１１乃至２０何れか一項記載の方法を実行するよう構成されるチップセット。
【請求項２３】
請求項１１乃至２０何れか一項記載の方法を計算装置に実行させるプログラム。
【請求項２４】
請求項２３記載のプログラムを記憶するコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、バーチャルマシーンのマイグレーションに関する。
【背景技術】
【０００２】
バーチャルマシーン（ＶＭ）は、特定のオペレーティング環境のエミュレーションである。バーチャルマシーンは、現実又は仮想的コンピュータのコンピュータアーキテクチャ及び機能に基づき動作し、その実現形態は特殊なハードウェア、ソフトウェア又はその双方に関する。バーチャルマシーンは、対象となるリアルマシーンの機能がバーチャルマシーン内で実現される程度に基づき分類されうる。システムのバーチャルマシーンは、対象となるリアルマシーンの完全な代替と、完全なオペレーティングシステムの実行をサポートするのに求められるレベルの機能とを提供する。プロセスバーチャルマシーンは、抽象化されたプラットフォームから独立したプログラム実行環境を提供することによって、単一のアプリケーションを実行するよう設計されている。
【０００３】
バーチャルマシーンは、例えば、１つ以上のリモートサーバシステムなどの１つ以上のホストデバイス上でローカル又はリモートに実現されうる。ときには、第１のリモートホストデバイスから第２のリモートホストデバイスに複数のバーチャルマシーンをマイグレートすることが必要になりうる。バーチャルマシーンのライブマイグレーションは、バーチャルマシーンが処理を継続しながら、物理的ホスト間でバーチャルマシーンをリロケートする。バーチャルマシーンは、サービス可用性を向上させ、リソース利用を増加させ、物理的ホストの管理を簡単化し、サーバメンテナンスを実行し、又は複数の物理的ホスト間でロードバランスするため、物理的ホスト間でマイグレートされうる。バーチャルマシーンのライブマイグレーションは、Ｏｐｅｎｓｔａｃｋなどのクラウドベースオペレーティングシステム及び仮想化データセンタにおけるキーとなる技術である。
【０００４】
ハードウェアキャパシティを増加させることによって、単一のデバイスが多数の共置されているバーチャルマシーンをサポートする能力は増加し続ける。共置されるバーチャルマシーンの個数が増加することによって、何れかの数のバーチャルマシーンが同時にマイグレートされる確率は増加する。同様に、マイグレーション間のオーバラップの確率及び／又は第１の物理的ホストから第２の物理的ホストへの全てのバーチャルマシーンのマイグレーションもまた、バーチャルマシーンの個数の増加によって増加する傾向となる。
【０００５】
あるいは、バーチャルマシーンはシーケンシャル又はスケジューリングベースで個別にマイグレートされうる。しかしながら、複数のバーチャルマシーンがグループとしてマイグレートされる際には利益がある。
・バーチャルマシーンがＶＭ間通信チャネルを含むとき、バーチャルマシーンはパラレルにマイグレートされ、デスティネーション物理的ホストにおいて同時に再開されるべきである。このようなバーチャルマシーンのシーケンシャルなマイグレーションは、バーチャルマシーンが物理的ホストの間で個別にマイグレートされるとき、ＶＭ間通信チャネルの中断のため失敗しうる。
・共通の物理的ホストに共置されるバーチャルマシーンは、多数のメモリページを共有し、当該バーチャルマシーンの個別のマイグレートは多数の重複したメモリページのマイグレーションを生じさせうる。このような重複は、デスティネーション物理的ホストのストレージキャパシティと共に、バーチャルマシーンをマイグレートするのに用いられるネットワークにおける帯域幅との双方を浪費させる。
・コンテナＶＭのケースによると（インテルのＣｌｅａｒ  Ｃｏｎｔａｉｎｅｒなど）、多数のバーチャルマシーンが単一のホスト上に存在しうる。このような実現形態では、バーチャルマシーンは、複数のメモリページを共有し、また互いに通信する可能性があり、当該状態の下では、バーチャルマシーンのバッチマイグレーションが効果的である。
【０００６】
大部分の既知のバーチャルマシーンマイグレーション手段は、ソース物理的ホスト上で実現される全てのバーチャルマシーンを移転するか、又は個々のバーチャルマシーンのみを移転する。このようなマイグレーションレジームは、個々のバーチャルマシーンのマイグレーション又は全てのバーチャルマシーンのマイグレーションが、バーチャルマシーンの間で全体的又は部分的に共有又は重複されるメモリページを特定することによって、ソース物理的ホストとデスティネーション物理的ホストとの間で転送されるデータを有意に減少させる機会を失うため、次善的なものである。さらに、このような手段は、プリコピー段階における収束しないダーティメモリページのためにマイグレーションの失敗を生じさせうる。
【図面の簡単な説明】
【０００７】
請求された主題の各種実施例の特徴及び効果は、以下の詳細な説明が進むに従って、同様の数値が同様のパーツを示す図面を参照することによって明らかになるであろう。
【図１】図１は、本開示の少なくとも１つの実施例によるライブバーチャルマシーンマイグレーションシステムの概略図である。
【図２Ａ】図２Ａは、本開示の少なくとも１つの実施例による第１の物理的ホスト上に実現される４つのバーチャルマシーンが第１の物理的ホストにおける同一のメモリ位置に記憶される共通のメモリページを共有する例示的なシステムの概略である。
【図２Ｂ】図２Ｂは、本開示の少なくとも１つの実施例による第１の物理的ホスト上で実現される４つのバーチャルマシーンが各自のメモリページにデータを通信し、各メモリページが同一又は同様のデータを有する例示的なシステムの概略である。
【図３】図３は、本開示の少なくとも１つの実施例によるマイグレート対象のバーチャルマシーンの全てのペア間のメモリページ共通性の程度を示すデータを有するチャート３００である。
【図４】図４は、本開示の少なくとも１つの実施例による例示的なライブバーチャルマシーンマイグレーション方法のハイレベルなフロー図である。
【図５】図５は、本開示の少なくとも１つの実施例による各バーチャルマシーングループの予測されるマイグレーション時間に基づく第１の物理的ホストと第２の物理的ホストとの間のバーチャルマシーングループをマイグレートする例示的な方法のハイレベルなフロー図である。
【図６】図６は、本開示の少なくとも１つの実施例による他の例示的なライブバーチャルマシーンマイグレーション方法のハイレベルなフロー図である。
【図７】図７は、本開示の少なくとも１つの実施例による例示的なバーチャルマシーンマイグレーションコントローラのブロック図である。  以下の詳細な説明は例示的な実施例を参照することにより進められるが、それの多数の代替、修正及び変形は当業者に明らかであろう。
【発明を実施するための形態】
【０００８】
物理的ホストの間でバーチャルマシーンをマイグレートする１つの態様は、バーチャルマシーンがソースホストからデスティネーションに依然として実行しているとき、ターゲットバーチャルマシーンの変化するメモリをコピーすることである。バーチャルマシーンに関連するメモリページは、メモリページが転送されるデータ転送及びネットワーク帯域幅のかなりの部分を表すか、あるいは、物理的ホストの間でメモリページを迅速に転送する能力を制限又は限定しうる。多数のデータ集中メモリページをマイグレートすることに関連する問題を解決するため、バーチャルマシーンのライブマイグレーションは以下によって実行されてもよい。
・共有メモリページを特定するためソース物理的ホストのメモリに記憶されるマイグレート対象のバーチャルマシーンに論理的に関連するメモリページを調べること。このとき、共有メモリページの１つのインスタンスしか転送されない。
・ソース物理的ホスト内の共有された又は部分的に同一のメモリページを特定する可能性を増加させるため、バーチャルマシーンライブマイグレーションコントローラは、ある粒度レベルでメモリページを調べ、粒度レベルでサブページを確認し、１つ以上のデータフィンガープリント技術を利用して共有された、部分的に同一の又は完全に同一のメモリページの特定を迅速化する。
・各バーチャルマシーンは全体的に一貫したメモリページダーティ処理レートを維持するため、バーチャルマシーンライブマイグレーションコントローラは、ダーティログモードを用いてダーティ処理されたメモリページの個数を追跡する書き換え可能なメモリワーキングセットパターンを収集する。このとき、バーチャルマシーンライブマイグレーションコントローラは、マイグレーションに費やされる収束、期間及び繰り返しを含む所与のネットワーク帯域幅におけるメモリワーキングセットパターンを動的に予測する。予測されたマイグレーション時間に基づき、バーチャルマシーンライブマイグレーションコントローラは、バッチマイグレーションの完了を成功させるため、所与の（又は割り当てられた）メモリ帯域幅におけるマイグレーションのためのバーチャルマシーングループを選択する。
【０００９】
第１の物理的ホストから第２の物理的ホストに複数のバーチャルマシーンをライブマイグレートするためのシステムが提供される。当該システムは、第１の物理的ホスト及び第２の物理的ホストに通信結合される少なくとも１つのネットワークインタフェースと、少なくとも１つのネットワークインタフェースに通信結合される少なくとも１つの回路とを有する。当該システムは更に、少なくとも１つの回路に通信結合される少なくとも１つの記憶装置を有し、当該少なくとも１つの記憶装置は、実行されると、回路の少なくとも一部にバーチャルマシーンライブマイグレーションコントローラを提供させるマシーン可読命令を有し、バーチャルマシーンライブマイグレーションコントローラは、第１の物理的ホスト上に提供される複数のバーチャルマシーンの各バーチャルマシーンについて、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定し、複数のバーチャルマシーングループを提供するため複数のバーチャルマシーンの少なくとも一部のバーチャルマシーンを選択的にグループ化し、各バーチャルマシーングループの各バーチャルマシーンは第１の物理的ホスト上の同一のメモリページコンテンツ部分にアクセスし、各バーチャルマシーングループにおけるバーチャルマシーンによりアクセスされる同一のメモリページコンテンツ部分の１つのマイグレーション、第１の物理的ホストから第２の物理的ホストに各バーチャルマシーングループをマイグレートするのに利用可能な帯域幅、及び各バーチャルマシーングループに含まれる各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値に少なくとも部分的に基づき、各バーチャルマシーングループをマイグレートするための期間を動的に予測する。
【００１０】
他のライブバーチャルマシーンマイグレーションシステムが提供される。当該システムは、少なくとも１つのコントローラ回路と、少なくとも１つのコントローラ回路に通信結合される少なくとも１つの記憶装置とを有し、少なくとも１つの記憶装置は、少なくとも１つのコントローラ回路により実行されると、少なくとも１つのコントローラ回路にバーチャルマシーンマイグレーションコントローラを提供させるマシーン実行可能命令を有する。バーチャルマシーンマイグレーションコントローラは、第１のホストシステム上にある複数のバーチャルマシーンのそれぞれについてページダーティ処理レートを決定し、複数のバーチャルマシーングループを構成するため複数のバーチャルマシーンの少なくとも一部を選択的にグループ化し、各バーチャルマシーングループは少なくとも１つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含み、少なくとも１つの同一のメモリページコンテンツ部分、各グループに含まれる各バーチャルマシーンのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、第１のホストシステムから第２のホストシステムに複数のバーチャルマシーングループのそれぞれをマイグレートするための計画されるマイグレーション時間を決定する。
【００１１】
ライブバーチャルマシーンマイグレーション方法が提供される。当該方法は、複数のバーチャルマシーンにおける各バーチャルマシーンについて、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定し、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化することを含み、各バーチャルマシーングループにおける各バーチャルマシーンは同一のメモリページコンテンツ部分にアクセスする。当該方法は更に、各バーチャルマシーングループについて、各バーチャルマシーングループにおけるバーチャルマシーンによりアクセスされる同一のメモリページコンテンツ部分の１つのマイグレーション、及び各バーチャルマシーングループに含まれる各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値に少なくとも部分的に基づき、各バーチャルマシーングループをマイグレートするための期間を動的に予測することを含む。
【００１２】
他のライブバーチャルマシーンマイグレーション方法が提供される。当該方法は、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定することを含む。当該方法は更に、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することを含み、各バーチャルマシーングループは、少なくとも１つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含む。当該方法は更に、バーチャルマシーンマイグレーションコントローラが、少なくとも１つの同一のメモリページコンテンツ部分、各グループに含まれる各バーチャルマシーンのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、複数のバーチャルマシーングループのそれぞれの計画されるマイグレーション時間を決定することを含む。
【００１３】
他のライブバーチャルマシーンマイグレーションシステムが提供される。当該システムは、複数のバーチャルマシーンにおける各バーチャルマシーンについて、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定する手段を有する。当該システムは更に、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化する手段を有し、各バーチャルマシーングループにおける各バーチャルマシーンは、同一のメモリページコンテンツ部分にアクセスする。当該システムは更に、各バーチャルマシーングループについて、各バーチャルマシーングループにおけるバーチャルマシーンによりアクセスされる同一のメモリページコンテンツ部分の１つのマイグレーション、各バーチャルマシーングループをマイグレートするのに利用可能な帯域幅及び各バーチャルマシーングループに含まれる各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値に少なくとも部分的に基づき、各バーチャルマシーングループをマイグレートするための時間を動的に予測する手段を含む。
【００１４】
他のライブバーチャルマシーンマイグレーションシステムが提供される。当該システムは、第１のホストシステム上で実現される複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定する手段を含む。当該システムは更に、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段を含み、各バーチャルマシーングループは少なくとも１つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含む。当該システムは更に、少なくとも１つの同一のメモリページコンテンツ部分、各グループに含まれる各バーチャルマシーンのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、複数のバーチャルマシーングループのそれぞれの計画されるマイグレーション時間を決定する手段を含む。
【００１５】
ここで用いられるように、“トップ”及び“ボトム”という用語は、位置に対する絶対的な参照でなく相対的な参照を提供することを意図する。従って、“トップ部分”及び“ボトム部分”を有するとして説明されるオブジェクトを反転させることは、オブジェクトの上部に“ボトム部分”を配置し、オブジェクトの下部に“トップ部分”を配置することであってもよい。このような構成は、本開示の範囲内に含まれるとみなされるべきである。
【００１６】
ここで用いられるように、“第１”、“第２”及び他の同様の序数の用語は、複数の類似又は同一のオブジェクトを区別することを意図したものであり、オブジェクトの特定又は絶対的な順序を示すことを意図していない。従って、“第１のオブジェクト”及び“第２のオブジェクト”は、第１のオブジェクトに対して第２のオブジェクトが空間又は時間的に前に現れる順序を含む何れかの順序で現れうる。このような構成は、本開示の範囲内に含まれるとして解釈されるべきである。
【００１７】
図１は、本開示の少なくとも１つの実施例によるバーチャルマシーンマイグレーションコントローラ１０２がネットワークを介し通信結合される第１の物理的ホスト１１０から第２の物理的ホストに複数のバーチャルマシーン１２０Ａ〜１２０ｎ（まとめて“バーチャルマシーン１２０”）をマイグレート１４０するライブバーチャルマシーンマイグレーションシステム１００の概略図である。何れかの個数のバーチャルマシーン１２０が、第１の物理的ホストシステム１１０上で実現されてもよい。例えば、第１の物理的ホストシステム１１０は、１０個以上のマシーン１２０、５０個以上のバーチャルマシーン１２０、１００個以上のバーチャルマシーン１２０、５００個以上のバーチャルマシーン１２０又は１０００個以上のバーチャルマシーン１２０を提供してもよい。各バーチャルマシーンは、同一又は異なるオペレーティングシステム及び／又はアプリケーションを実現してもよい。
【００１８】
第１の物理的ホストシステム１１０は、メモリ１２２などの１つ以上の記憶装置を有する。バーチャルマシーン１２０の一部又は全ては、メモリ１２２に記憶又は保持されるメモリページ１２４Ａ〜１２４ｎ（まとめて“メモリページ１２４”）にマッピング及び／又は論理的に関連付けされる。各メモリページ１２４は、各メモリページ１２４にマッピングされるバーチャルマシーン１２０により生成及び／又は利用されるデータ及び／又は情報を含む。実施例では、１つのバーチャルマシーン１２０は、何れかの個数のメモリページ１２４にマッピングされる。各バーチャルマシーン１２０は、バーチャルマシーン１２０がマッピングされるメモリページ１２４上のデータ及び／又は情報を断続的、定期的又は非定期的に追加、変更又は削除する。特定のバーチャルマシーン１２０がメモリページ１２４に含まれる情報及び／又はデータを追加、変更又は削除しうるレートは、“ページダーティ処理レート”として参照されるか、又は単に各バーチャルマシーン１２０の“ダーティ処理レート”として参照されてもよい。バーチャルマシーン１２０は、類似した又は異なるダーティ処理レートを有する。
【００１９】
一部の実現形態では、複数のバーチャルマシーン１２０が１つのメモリページ１２４にマッピングされる。このような実現形態では、１つのメモリページ１２４は、各バーチャルマシーン１２０の間で又はによって“共有”されるとみなされうる。一部の実現形態では、異なるバーチャルマシーン１２０によって共有されないが、マッピングされるメモリページ１２４の部分は、類似した又は同一のデータ及び／又は情報を有する。一部の実現形態では、異なるバーチャルマシーン１２０により共有されないが、マッピングされるメモリページ１２４全体は、類似した又は同一の情報及び／又はデータを含む。従って、一部の実現形態では、異なるメモリページ１２４に含まれる情報及び／又はデータは同様又は同一であってもよく、この結果、かなりの量の冗長な情報及び／又はデータが第１の物理的ホストシステム１１０のメモリ１２２にあってもよい。ここに説明されるシステム及び方法は、同様及び／又は同一の情報及び／又はデータを含み、異なるバーチャルマシーン１２０にマッピングされるメモリページ１２４と複数のバーチャルマシーン１２０との間で共有及びマッピングされるメモリページ１２４を効果的に特定可能である。
【００２０】
実施例では、メモリ複製マネージャ１１２の全て又は一部は、図１に示されるように、第１の物理的ホストシステム１１０に配置される。他の実施例では、メモリ複製マネージャ１１２の全て又は一部は、バーチャルマシーンマイグレーションコントローラ１０２に配置される。メモリ複製マネージャ１１２の位置に関わらず、メモリ複製マネージャ１１２は、バーチャルマシーンコントローラ１０２に通信結合される。メモリ複製マネージャ１１２は、異なるバーチャルマシーン１２０にマッピングされる重複したメモリページ１２４（すなわち、同一の情報及び／又はデータを含む異なるメモリページ１２４）を特定するため、メモリページ１２４の一部又は全てをスキャン又は解析する。メモリ複製マネージャ１１２は、異なるバーチャルマシーン１２０にマッピングされる部分的に重複したメモリページ１２４（すなわち、同一の情報及び／又はデータの少なくとも一部を含む異なるメモリページ１２４）を特定するため、メモリページ１２４の一部又は全てをスキャン又は解析する。
【００２１】
一部の実現形態では、メモリ複製マネージャ１１２は、重複した情報及び／又はデータを全体的に又は部分的に含むメモリページ１２４を特定するため、複数のバーチャルマシーン１２０にマッピングされるメモリページ１２４の少なくとも一部を解析する。一部の実現形態では、メモリ複製マネージャ１１２は、時間ベースでメモリページ１２４を解析する。例えば、メモリ複製マネージャ１１２は、定期的に、不定期的に又は周期的にメモリページ１２４を解析してもよい。一部の実現形態では、メモリ複製マネージャ１１２は、イベントドリブンベースでメモリページ１２４を解析する。例えば、メモリ複製マネージャ１１２は、第１の物理的ホスト１１０から第２の物理的ホスト１５０へのバーチャルマシーン１２０の一部又は全ての差し迫ったマイグレーションの１つ以上のメッセージ又はインジケータを受信すると、メモリページ１２４を解析する。一部の実施例では、バーチャルマシーンマイグレーションコントローラ１０２は、第１の物理的ホスト１１０から第２の物理的ホスト１５０へのバーチャルマシーン１２０の一部又は全ての差し迫ったマイグレーションのメッセージ又はインジケータをメモリ複製マネージャ１１２に提供する。
【００２２】
メモリ複製マネージャ１１２は、何れかの現在又は以降に開発された解析技術を利用して、重複情報及び／又はデータを少なくとも部分的に含むメモリページ１２４を特定する。例えば、メモリ複製マネージャ１１２は、第１の物理的ホスト１１０上のメモリページ１２４の一部又は全てについてフィンガープリントを生成及び比較してもよい。メモリ複製マネージャは、Ｒａｂｉｎのアルゴリズムなどの何れかの現在又は以降に開発されたフィンガープリント処理技術を利用してこのようなフィンガープリント処理を実行し、各メモリページ１２４をメモリページ１２４に含まれるコンテンツに位置的な相対的に短いデータ文字列に減少させる。実施例では、メモリ複製マネージャ１１２は、候補となるメモリページの一致を特定するため、各メモリページ１２４のフィンガープリントを比較する。候補となる一致したメモリページ１２４のコンテンツが同一であることを確認するため、メモリ複製マネージャ１１２は、バイト単位で候補となる一致したメモリページ１２４を比較し、候補となる一致したメモリページ１２４が実際に同一であることを確認する。実施例では、メモリ複製マネージャ１１２は、１つ以上のハッシュ処理関数を利用して、２つ以上のメモリページ１２４の同一部分を特定する。
【００２３】
バーチャルマシーンマイグレーションコントローラ１０２は、スタンドアローンコントローラであってもよいし、あるいは、より大きな制御装置の一部として実現されてもよい。実施例では、バーチャルマシーンマイグレーションコントローラ１０２は、１つ以上の通信結合された記憶装置を有する。一部の実現形態では、バーチャルマシーンマイグレーションコントローラ１０２は、１つ以上のマシーン実行可能命令セットを実行可能な１つ以上のコントローラ回路を有する。１つ以上のマシーン実行可能命令セットは、１つ以上の通信結合された記憶装置に全体的に又は部分的に記憶又は保持される。一部の実現形態では、バーチャルマシーンマイグレーションコントローラ１０２は、第１の物理的ホストシステム１１０によって全体的に又は部分的に実行される。一部の実現形態では、バーチャルマシーンマイグレーションコントローラ１０２は、第２の物理的ホストシステム１５０９によって全体的に又は部分的に実行される。一部の実現形態では、バーチャルマシーンマイグレーションコントローラ１０２は、第１の物理的ホストシステム１１０及び第２の物理的ホストシステム１５０の双方の外部の１つ以上の装置によって実行される。
【００２４】
バーチャルマシーンマイグレーションコントローラ１０２は、第１の物理的ホストシステム１１０から第２の物理的ホストシステム１５０へのバーチャルマシーン１２０のマイグレーション１４０を制御する。少なくとも一部の実現形態では、第１の物理的ホストシステム１１０は、第２の物理的ホストシステム１５０に結合されるハードウェア１６０であってもよい（例えば、共通のラック内の他のブレードサーバ上に配置される）。このような実現形態では、バーチャルマシーン１２０のマイグレーション１４０は、配線接続１６０を介し全体的に又は部分的に行われる。一部の実現形態では、第１の物理的ホストシステム１１０は、１つ以上のネットワーク１６２を介し第２の物理的ホストシステム１５０に通信結合される。このような実現形態では、バーチャルマシーン１２０のマイグレーション１４０はネットワーク接続１６２を介し行われる。
【００２５】
第１の物理的ホストシステム１１０は、１つ以上のネットワーク帯域幅配分装置１１４を有する。ネットワーク帯域幅配分装置１１４は、利用可能なネットワーク帯域幅をバーチャルマシーンマイグレーション１４０に分割、専用化又は配分する。このような帯域幅の配分は、第１の物理的ホストシステム１１０上で現在実行されている他の処理の帯域幅要求に全体的に又は部分的に基づく。一部の実施例では、ネットワーク帯域幅配分装置１１４は、バーチャルマシーンマイグレーション１４０に利用可能な帯域幅をバーチャルマシーンマイグレーションコントローラ１０２に通信する。
【００２６】
図２Ａは、本開示の少なくとも１つの実施例による第１の物理的ホストシステム１１０上で実行される複数のバーチャルマシーン１２０Ａ〜１２０Ｄが共通のメモリページ１２４にマッピング（２０２Ａ〜２０２Ｄ）する例示的なシステム２００の概略である。一部の実現形態では、複数のバーチャルマシーン１２０は、単一の共有メモリページ１２４＊にマッピングする。共有メモリページ１２４＊は、第１の物理的ホストシステム１１０のメモリ１２２に記憶又は保持される。
【００２７】
実施例では、メモリ複製マネージャ１１２は、共通又は共有メモリページ１２４＊へのマッピング２０２として、複数のバーチャルマシーン１２０を特定する。実施例では、バーチャルマシーンマイグレーションコントローラ１０２は、共通又は共有メモリページ１２４＊へのマッピング２０２として複数のバーチャルマシーン１２０を特定する。このような実施例では、バーチャルマシーンマイグレーションコントローラ１０２は、共通又は共有メモリページ１２４＊に少なくとも部分的に基づき、第２の物理的ホストシステム１５０へのマイグレーション１４０のために複数のバーチャルマシーン１２０を選択的にグループ化２１０する。マイグレーションのために複数のバーチャルマシーン１２０を選択的にグループ化することによって、バーチャルマシーンマイグレーションコントローラ１０２は、共有メモリページ１２４＊の１つのインスタンスしか利用せずにマイグレーションを完了させることができる。他方、バーチャルマシーンマイグレーションコントローラ１０２が複数のバーチャルマシーン１２０のそれぞれを別々にマイグレートした場合、共有メモリページ１２４＊は、複数のバーチャルマシーン１２０に含まれる各バーチャルマシーン１２０について１回マイグレートされる。従って、共通メモリページ１２４＊を共有する複数のバーチャルマシーン１２０をグループ化することによって、帯域幅及びマイグレーション時間要求が効果的に低減される。
【００２８】
図２Ｂは、本開示の少なくとも１つの実施例による第１の物理的ホストシステム１１０上で実行される複数のバーチャルマシーン１２０Ａ〜１２０Ｄが異なるメモリページ１２４Ａ〜１２４Ｄにマッピング（２０２Ａ〜２０２Ｄ）するが、各メモリページ１２４の少なくとも一部は共通の情報又はデータ２２０を含む例示的なシステム２００の概略である。一部の実現形態では、複数のバーチャルマシーン１２０は異なるメモリページ１２４にマッピングするが、異なるメモリページ１２４のそれぞれは同一の情報又はデータ２２０を含む。このような例では、メモリページ１２４は、第１の物理的ホストシステム１１０のメモリ１２２に記憶又は保持される。
【００２９】
実施例では、メモリ複製マネージャ１１２は、それぞれが共通の情報又はデータ２２０の少なくとも一部を含む異なるメモリページ１２４へのマッピング２０２として複数のバーチャルマシーン１２０を特定する。実施例では、異なるメモリページ１２４の一部又は全ては同一の情報又はデータを含む。実施例では、メモリ複製マネージャ１１２は、異なるメモリページ１２４のそれぞれについてフィンガープリントを生成する。メモリ複製マネージャ１１２は、同一の情報又はデータを含む候補となる一致するメモリページ１２４を決定するため、異なるメモリページ１２４のそれぞれについてフィンガープリントを比較する。実施例では、メモリ複製マネージャ１１２は、候補となる一致するメモリページ１２４が実際に同一であるか判断するため、バイト単位で候補となる一致するメモリページ１２４を比較する。
【００３０】
実施例では、異なるメモリページ１２４の一部又は全ては、共通又は同一の情報又はデータセクション、パッセージ又は部分２２０を含む。実施例では、メモリ複製マネージャ１１２は、１つ以上のハッシュ処理関数を用いて異なるメモリページ１２４のそれぞれの共通部分２２０を特定する。
【００３１】
このような実施例では、バーチャルマシーンマイグレーションコントローラ１０２は、異なるメモリページ１２４に含まれる共通又は共有情報又はデータに少なくとも部分的に基づき、第２の物理的ホストシステム１５０へのマイグレーション１４０のために複数のバーチャルマシーン１２０を選択的にグループ化２１０する。マイグレーションのために複数のバーチャルマシーン１２０を選択的にグループ化することによって、バーチャルマシーンマイグレーションコントローラ１０２は、グループ２１０に含まれる各バーチャルマシーン１２０について１回でなく、共通情報又はデータを１回のみマイグレートすることによって、グループ化されたバーチャルマシーンのマイグレーションを完了させることができる。従って、共通又は同一の情報又はデータ部分２２０を含むメモリページ１２４にマッピングする複数のバーチャルマシーン１２０をグループ化することによって、帯域幅及びマイグレーション時間要求が効果的に低減される。
【００３２】
図３は、本開示の少なくとも１つの実施例による全てのバーチャルマシーンペア２１０の間のメモリページの共通性の程度を示すデータを含む図３００である。一部の実施例では、バーチャルマシーンマイグレーションコントローラ１０２は、１つのメモリページ１２４が異なるバーチャルマシーン１２０にマッピング（すなわち、共有）される程度、及び／又はバーチャルマシーン１２０が同一又は共通の情報又はデータを含む異なるメモリページ１２４にマッピングされる程度を決定する。実施例では、バーチャルマシーンマイグレーションコントローラ１０２は、各バーチャルマシーン１２０にマッピングされる同一の情報又はデータの少なくとも一部を有するメモリページ１２４と共有メモリページ１２４とに基づき、バーチャルマシーン１２０の全てのペアの間の共通性の程度を示すデータを含む図３００又は他のグラフなどの出力を生成する。図３００は、特定のバーチャルマシーンペア２１０が第１の物理的ホストシステム１１０のメモリ１２２内のメモリスペースを共有する程度を示す値３０２によって占有される。
【００３３】
図４は、本開示の少なくとも１つの実施例による例示的なライブバーチャルマシーンマイグレーション方法４００のハイレベルなフロー図である。方法４００では、バーチャルマシーンマイグレーションコントローラ１０２は、メモリページ共通性の高い程度を有するバーチャルマシーンを選択的に特定及びグループ化することによって、マイグレーション時間とネットワーク帯域幅とを減少させる。このようなバーチャルマシーンの選択的な特定及びグループ化は、ソース物理的ホストとデスティネーション物理的ホストとの間の冗長なメモリページコンテンツの送信及び／又は冗長なメモリページの送信を最小化又は排除することによって、マイグレーションを完了させるのに要する時間及び帯域幅を減少させる。各バーチャルマシーングループに含まれるバーチャルマシーンのページダーティ処理時間を追跡することによって、バーチャルマシーンマイグレーションコントローラ１０２は、ページダーティ処理レート、各バーチャルマシーンによりマッピングされるメモリページ間の共通性の程度及びネットワーク帯域幅に基づき、計画されたマイグレーション時間を決定できる。方法４００は４０２において開始される。
【００３４】
４０４において、バーチャルマシーンマイグレーションコントローラ１０２は、第１の物理的ホストシステム１１０から第２の物理的ホストシステム１５０へのマイグレーションのため予定される各バーチャルマシーン１２０のページダーティ処理レートを決定する。ページダーティ処理レートは、バーチャルマシーン１０２が各バーチャルマシーンにマッピングされる１つ以上のメモリページ１２４上の情報又はデータを変更、追加又は削除するレートである。実施例では、所与のバーチャルマシーン１２０のページダーティ処理レートは、経時的に比較的安定的である。従って、バーチャルマシーンマイグレーションコントローラ１０２は、毎時など規定された期間において特定のバーチャルマシーン１２０の過去のページダーティ処理レートを決定する。その後、当該データは各バーチャルマシーンのダーティ処理レートを予測し、各バーチャルマシーン１２０にマッピングされるメモリページ１２４を転送するのに必要なネットワーク帯域幅を決定するのに利用される。
【００３５】
実施例では、メモリワーキングセットのダーティ処理レートを追跡するため、バーチャルマシーンマイグレーション１４０の前の繰り返し中にダーティメモリページを追跡するためバーチャルマシーン処理におけるバーチャルマシーンメモリログダーティモードが利用される。ログダーティモードは、バーチャルマシーンメモリページに対してライトプロテクションを設定し、バーチャルマシーンがページに書き込みするとき、失敗時にメモリページのダーティ状態を示すためのビットマップを設定する（例えば、システム仮想化におけるバーチャルマシーンイグジット、又はコンテナバーチャルマシーンにおけるページフォルトなど）。
【００３６】
４０６において、バーチャルマシーンマイグレーションコントローラ１０２は、バーチャルマシーン１２０を複数のバーチャルマシーングループ２１０に選択的にグループ化する。バーチャルマシーンマイグレーションコントローラ１０２は、グループ２１０に含まれる構成要素となるバーチャルマシーン１２０のうちの共有メモリ１２４の有無に少なくとも部分的に基づき、バーチャルマシーン１２０をグループ化２１０する。バーチャルマシーンマイグレーションコントローラ１０２は、各グループ２１０に含まれる他のバーチャルマシーン１２０がマッピングされる他のメモリページ１２４とメモリページ１２４上に含まれるコンテンツの少なくとも一部を共有する複数のメモリページ１２４への構成要素となる各バーチャルマシーン１２０のマッピングに少なくとも部分的に基づき、バーチャルマシーン１２０をグループ化２１０する。バーチャルマシーンマイグレーションコントローラ１０２は、各グループに含まれるバーチャルマシーン１２０により共有されるメモリページコンテンツの共通性の程度に少なくとも部分的に基づき、バーチャルマシーン１２０をグループ化する。グループ２１０に含まれるバーチャルマシーン１２０の間のメモリページコンテンツの共通性の程度の増加は、バーチャルマシーン１２０がライブマイグレート１４０される際にマイグレートされるデータ量を減少させ、これにより、マイグレーションを完了させるのに要する時間及び帯域幅を効果的に減少させる。
【００３７】
４０８において、バーチャルマシーンマイグレーションコントローラ１０２は、４０６において生成された各バーチャルマシーングループの計画されたマイグレーション時間を動的に決定する。計画されたマイグレーション時間は、以下のファクタなどによって影響を受ける可能性がある。
【００３８】
１．グループ２１０に含まれるバーチャルマシーン１２０のページダーティ処理レート（より高いメモリページダーティ処理レートがマイグレーション時間及び帯域幅を増加させる傾向がある）
２．グループ２１０に含まれるバーチャルマシーンの間のメモリページ１２４の共通性の程度（より大きなメモリページ共通性は、マイグレーション時間及び帯域幅を減少させる傾向がある）
３．マイグレーションを実行するのに利用可能なネットワーク帯域幅
ダーティ処理レートに基づき、所与のネットワーク伝送速度におけるメモリダーティ処理レートが予測される。実施例では、所与のメモリダーティ処理レートについて計画されたマイグレーション時間が、第１の時間と第２の時間との間でダーティ処理されるメモリページ数をまず決定することによって決定される。
【００３９】
【数１】
0006312779.tif 000002
ただし、Ｍ＝ダーティ処理されたメモリ、Ｄ（ｔ）＝メモリダーティ処理レートである。
【００４０】
所与のネットワーク速度においてダーティ処理されるメモリを転送するのに必要な時間は、
【００４１】
【数２】
0006312779.tif 000003
であり、ここで、Ｔ＝マイグレートするのに要する時間、ｓ＝ネットワーク速度である。
【００４２】
次のメモリコピー繰り返しは、以下のようなダーティ処理されたメモリを有する。
【００４３】
【数３】
0006312779.tif 000004
方法４００は４１０において終了する。
【００４４】
図５は、本開示の少なくとも１つの実施例による各バーチャルマシーングループの予測されるマイグレーション時間に基づき第１の物理的ホストシステム１１０と第２の物理的ホストシステム１５０との間でバーチャルマシーングループ２１０をマイグレートする例示的な方法５００のハイレベルフロー図である。少なくとも一部の実現形態では、バーチャルマシーンマイグレーションコントローラ１０２は、図４の４０８に関して詳細に説明されるものなどの複数のファクタに基づきマイグレーションを完了させるための計画又は推定される時間に少なくとも部分的に基づき、バーチャルマシーングループのマイグレーションを実行させる。方法５００は５０２において開始される。
【００４５】
５０４において、バーチャルマシーンマイグレーションコントローラ１０２は、各バーチャルマシーングループ２１０について計算される計画されたマイグレーション時間に少なくとも部分的に基づき、バーチャルマシーングループ２１０を選択的にマイグレートする。一部の実現形態では、バーチャルマシーンマイグレーションコントローラ１０２は、計画されたマイグレーション時間に基づき昇順に（すなわち、最短のマイグレーション時間から最長のマイグレーション時間まで）バーチャルマシーングループ２１０をマイグレートする。
【００４６】
実施例では、バーチャルマシーンマイグレーションが第１のバーチャルマシーングループ２１０をマイグレートした後、バーチャルマシーンマイグレーションコントローラ１０２は、再度残りのバーチャルマシーンを複数のバーチャルマシーングループ２１０に選択的にグループ化する。バーチャルマシーンマイグレーションコントローラ１０２は、グループ２１０に含まれる構成要素となるバーチャルマシーン１２０のうちの共有メモリページ１２４の有無に少なくとも部分的に基づき、残りのバーチャルマシーン１２０をグループ化２１０する。残りのバーチャルマシーン１０２を複数のバーチャルマシーングループ２１０に選択的にグループ化した後、バーチャルマシーンマイグレーションコントローラ１０２は、再度各バーチャルマシーングループ２１０について計画されたマイグレーション時間を動的に決定する。各バーチャルマシーングループ２１０について計画されたマイグレーション時間を動的に決定した後、バーチャルマシーンマイグレーションコントローラ１０２は、各バーチャルマシーングループ２１０について計算された計画されたマイグレーション時間に少なくとも部分的に基づき、バーチャルマシーングループ２１０を選択的に再度マイグレートする。バーチャルマシーンマイグレーションコントローラ１０２は、バーチャルマシーン１２０の全てが第１の物理的ホストシステム１１０から第２の物理的ホストシステム１２０にマイグレートされるまで、当該グループ化、計画されたマイグレーション時間及びマイグレート手順を繰り返し実行する。方法５００は５０６において終了する。
【００４７】
図６は、本開示の少なくとも１つの実施例による例示的なライブバーチャルマシーンマイグレーション方法６００のハイレベルなフロー図である。方法６００では、バーチャルマシーンマイグレーションコントローラ１０２は、共有メモリページ１２４及び／又は異なるメモリページ１２４上の同一コンテンツへのマッピングに少なくとも部分的に基づき、バーチャルマシーン１２０がバーチャルマシーンペアに選択的に分配される繰り返し処理を利用する。バーチャルマシーンマイグレーションコントローラ１０２は、各バーチャルマシーンペアについて計画されたマイグレーション時間を決定する。バーチャルマシーンマイグレーションコントローラ１０２は、各バーチャルマシーンペアに含まれる各バーチャルマシーンのメモリページダーティ処理レート、各ペアに含まれるバーチャルマシーン間の共有メモリページ及び同一のコンテンツの数、及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき計画されたマイグレーション時間を決定する。バーチャルマシーンマイグレーションコントローラ１０２は、計画されたマイグレーション時間に基づきバーチャルマシーンペアを順序付けし、最小の計画されたマイグレーション時間を有するバーチャルマシーンペアをマイグレートする。最小の計画されたマイグレーション時間を有するバーチャルマシーンペアをマイグレートした後、バーチャルマシーンマイグレーションコントローラ１０２は、残りのバーチャルマシーン１２０を新たなバーチャルマシーンペアに再分配し、マイグレーション処理を繰り返す。方法６００は６０２において開始される。
【００４８】
６０４において、バーチャルマシーンマイグレーションコントローラ１０２は、各バーチャルマシーン１２０からメモリワーキングセットダーティ処理レートを収集し、各バーチャルマシーン１２０についてメモリ動作パターンを決定する。実施例では、バーチャルマシーンマイグレーションコントローラ１０２は、各バーチャルマシーンの過去のダーティ処理レートを利用して、第１の物理的ホストシステム１１０から第２の物理的ホストシステム１５０への各バーチャルマシーン１２０にマッピングされるメモリページ１２４をマイグレートするのに必要なネットワーク帯域幅及び／又はマイグレーション時間を予測する。
【００４９】
６０６において、バーチャルマシーンマイグレーションコントローラ１０２は、バーチャルマシーンバッチライブマイグレーション中に利用されるメモリページデータ、バーチャルマシーングループデータ、ネットワーク帯域幅データ及び同様のデータを記憶するのに利用されるデータ構造を初期化する。
【００５０】
６０８において、バーチャルマシーンマイグレーションコントローラ１０２は、各バーチャルマシーン１２０の間のメモリページ共通性を評価するため、バーチャルマシーン１２０を複数のバーチャルマシーンペアに選択的にグループ化する。実施例では、バーチャルマシーンマイグレーションコントローラ１０２は、バーチャルマシーン１２０により共有されるメモリページコンテンツの共通性の程度を示す１つ以上の値を生成する。実施例では、バーチャルマシーンマイグレーションコントローラ１０２は、各種バーチャルマシーン１２０の間のメモリページ共通性を評価するため、図３に示されるものなどの１つ以上のデータ構造を生成する。
【００５１】
６１０において、バーチャルマシーンマイグレーションコントローラ１０２は、バーチャルマシーン１２０により共有されるメモリページコンテンツの共通性の程度に少なくとも部分的に基づき、バーチャルマシーン１２０をバーチャルマシーンペアにグループ化２１０する。実施例では、バーチャルマシーンマイグレーションコントローラ１０２は、バーチャルマシーン１２０により共有されるメモリページコンテンツの共通性の決定された程度に基づき、バーチャルマシーンペア２１０を順序付けする。バーチャルマシーンペア２１０に含まれるバーチャルマシーン１２０の間のメモリページコンテンツの共通性の程度の増加は、バーチャルマシーンペアがライブバッチマイグレート１４０される際にマイグレートされるデータ量を減少させ、これにより、マイグレーションを完了させるのに必要とされる時間及び帯域幅を効果的に減少させる。
【００５２】
６１２において、バーチャルマシーンマイグレーションコントローラ１０２は、ネットワーク帯域幅配分装置１１４から、第１の物理的ホストシステム１１０と第２の物理的ホストシステム１５０との間の所与のメモリ帯域幅を示すデータを取得する。実施例では、バーチャルマシーンマイグレーションコントローラ１０２は、以下の基準に基づき一緒にマイグレートするのに成功しうるバーチャルマシーンペア２１０を選択するため、６１０において決定される順序付けされたリストにおけるバーチャルマシーンペア１２０を繰り返す。
【００５３】
１．ペアに含まれるバーチャルマシーン１２０のページダーティ処理レート（より高いメモリページダーティ処理レートは、マイグレーション時間及び帯域幅を増加させる傾向がある。）
２．転送対象のトータル命令数  実施例では、バーチャルマシーンペア２１０について転送されるメモリ数は、ペア２１０に含まれるバーチャルマシーン１２０の間のメモリページの共通性の程度によって影響を受けうる（より大きなメモリページ共通性は、マイグレーション時間及び帯域幅を減少させる傾向がある。）
３．日和見的なバーチャルマシーンバッチマイグレーション  バーチャルマシーンマイグレーションコントローラ１０２がバーチャルマシーンのワークロードがメモリダーティ処理レートの周期的な変動を示すと判断した場合、バーチャルマシーンマイグレーションコントローラ１０２は、ダーティ処理レートが最小値に近く付いているか、又は最小値になったとき、バーチャルマシーンペア２１０のマイグレーションをスケジューリングする。
【００５４】
ダーティ処理レートに基づき、バーチャルマシーンマイグレーションコントローラ１０２は、所与のネットワーク伝送速度において各バーチャルマシーンペアについて計画されたマイグレーション時間を予測する。
【００５５】
６１４において、バーチャルマシーンマイグレーションコントローラ１０２は、最短の計画されたマイグレーション時間を有するバーチャルマシーンペアを選択する。
【００５６】
６１６において、バーチャルマシーンマイグレーションコントローラ１０２は、バーチャルマシーンペア２１０の何れかが６１２において実行された解析に少なくとも部分的に基づきマイグレート成功しているか判断する。バーチャルマシーンマイグレーションコントローラ１０２が全ての基準を充たすバーチャルマシーンペア２１０を選択できない場合、方法は６１８に進む。バーチャルマシーンマイグレーションコントローラ１０２が基準を充たすバーチャルマシーンペア２１０を選択できる場合、方法は６２０に進む。
【００５７】
６１８において、何れのバーチャルマシーンペア２１０もマイグレートに成功しないと判断したことに応答して、バーチャルマシーンマイグレーションコントローラ１０２は、第１の物理的ホスト装置１１０から第２の物理的ホスト装置へのマイグレーションのため、最小のメモリページ共通性を有するバーチャルマシーン１２０を選択する。
【００５８】
６２０において、バーチャルマシーンマイグレーションコントローラ１０２は、最短の計画されたマイグレーション時間を有するバーチャルマシーンペア２１０をマイグレートする。
【００５９】
６２２において、最短のマイグレーション時間を有するバーチャルマシーンペア２１０のマイグレーションの成功に応答して、バーチャルマシーンマイグレーションコントローラ１０２は、６０８において生成されたデータセットからバーチャルマシーンペアを削除する。
【００６０】
６２４において、バーチャルマシーンマイグレーションコントローラ１０２は、全てのバーチャルマシーン１２０がマイグレートされたか判断する。全てのバーチャルマシーン１２０がマイグレートされていない場合、方法６００は６０８に戻る。全てのバーチャルマシーン１２０がマイグレートされている場合、方法６００は６２６で終了する。
【００６１】
図７及び以下の説明は、説明された各種実施例が実現可能なバーチャルマシーンマイグレーションコントローラ１０２、第１の物理的ホストシステム１１０及び第２の物理的ホストシステム１５０を有する例示的なバーチャルマシーンバッチライブマイグレーションシステム７００を構成するコンポーネントの簡潔で全体的な説明を提供する。必要ではないが、実施例の一部は、バーチャルマシーンマイグレーションコントローラ１０２により実行されるプログラムアプリケーションモジュール、オブジェクト又はマクロなどのマシーン可読又はコンピュータ実行可能命令セットの一般的なコンテクストにおいて説明される。当業者は、説明される実施例と共に他の実施例がまた、例えば、スマートフォン、ポータブルコンピュータ、ウェアラブルコンピュータ、マイクロプロセッサベース又はプログラマブル家電機器、パーソナルコンピュータ（ＰＣ）、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどのポータブル電子又は携帯電子装置を含む他の回路ベースデバイスコンフィギュレーションにより実現可能であることを理解するであろう。実施例は、タスク又はモジュールが通信ネットワークを介しリンクされるリモート処理装置によって実行される分散計算環境において実施可能である。分散計算環境では、プログラムモジュールは、ローカルとリモートとの双方のメモリ記憶装置に配置される。
【００６２】
バーチャルマシーンマイグレーションコントローラ１０２は、マシーン可読命令を実行可能なＰＣ、サーバ又は他の計算システムにおいて部分的又は全体的に配置される電子及び／又は半導体コンポーネントを含む１つ以上の回路の形態をとりうる。バーチャルマシーンマイグレーションコントローラ１０２は、１つ以上の回路７１２を有し、システムメモリ７１４を有する各種システムコンポーネントと１つ以上の回路７１２とを結合する通信リンク７１６を有することがあってもよい。バーチャルマシーンマイグレーションコントローラ１０２は、ここでは単数形で参照されることがあるが、特定の実施例では、複数のバーチャルマシーンマイグレーションコントローラ１０２又は他のネットワーク化された回路又は装置を伴うため、これは単一のシステムに実施例を限定することを意図していない。
【００６３】
回路７１２は、何れかの個数、タイプ又は組み合わせの装置を有する。時々、回路７１２は、ダイオード、トランジスタ、インダクタ、キャパシタ及びレジスタなどの半導体デバイスの形態で全体的又は部分的に実現される。このような実現形態は、限定することなく、１つ以上のシステム・オン・チップ（ＳＯＣ）、中央処理ユニット（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、グラフィクス処理ユニット（ＧＰＵ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）などの何れか現在又は以降に開発されたシングル又はマルチコアプロセッサ又はマイクロプロセッサを有してもよい。特段の断りがない場合、図７に示される各種ブロックの構成及び処理は、従来の設計を有する。この結果、このようなブロックは、当業者により理解されるように、以降において詳細に説明される必要はない。例示的なバーチャルマシーンマイグレーションコントローラ１０２のコンポーネントの少なくとも一部を相互接続する通信リンク７１６は、何れか既知のバス構造又はアーキテクチャを利用してもよい。
【００６４】
システムメモリ７１４は、読み出し専用メモリ（ＲＯＭ）７１８及びランダム・アクセス・メモリ（ＲＡＭ）７２０を有する。ＲＯＭ７１８の一部は、基本入出力システム（ＢＩＯＳ）７２２を含む。ＢＩＯＳ７２２は、例えば、１つ以上の回路７１２にバーチャルマシーンマイグレーションコントローラ１０２を提供及び機能させるマシーン可読命令セットをコントローラにロードさせるなどによって、バーチャルマシーンマイグレーションコントローラ１０２に基本的機能を提供する。バーチャルマシーンマイグレーションコントローラ１０２は、１つ以上の通信結合される非一時的なデータ記憶装置７３２を有する。１つ以上のデータ記憶装置７３２は、何れか現在又は以降に開発される非一時的な記憶装置を有する。このような非一時的なデータ記憶装置７３２の非限定的な具体例は、限定されることなく、１つ以上の磁気記憶装置、１つ以上の光記憶装置、１つ以上のソリッドステート電磁記憶装置、１つ以上の電子抵抗記憶装置、１つ以上の分子記憶装置、１つ以上の量子記憶装置又はこれらの各種組み合わせを含むものであってもよい。
【００６５】
１つ以上の記憶装置７３２は、当業者に知られるように、各記憶装置又はシステムを通信リンク７１６に通信結合するインタフェース又はコントローラ（図示せず）を有する。１つ以上の記憶装置７３２は、バーチャルマシーンマイグレーションコントローラ１０２に有用なマシーン可読命令セット、データ構造、プログラムモジュール及び他のデータを含む。一部の具体例では、１つ以上の外部記憶装置７２８は、例えば、１つ以上のテザリング又は無線ネットワークを介しバーチャルマシーンマイグレーションコントローラ１０２に通信結合される。
【００６６】
マシーン可読命令セット７３８及び他の命令セット７４０は、システムメモリ７１４に全体的又は部分的に記憶される。このような命令セットは、バーチャルマシーンマイグレーションコントローラ１０２によって実行されるとき、１つ以上の記憶装置７３２及び／又は１つ以上の外部記憶装置７２８から転送され、システムメモリ７１４に全体的又は部分的に記憶される。マシーン可読命令セット７３８は、ここに説明されるライブバーチャルマシーンマイグレーション機能及び能力を提供可能なロジックを含む。
【００６７】
例えば、１つ以上のマシーン可読命令セット７３８は、バーチャルマシーンマイグレーションコントローラ１０２に第１の物理的ホストシステム１１０上で提供される複数のバーチャルマシーン１２０のそれぞれのメモリワーキングセットダーティ処理レートを表すデータを収集させてもよい。１つ以上のマシーン可読命令セット７３８は、各バーチャルマシーン１２のメモリダーティ処理レート及び／又はメモリダーティ処理レートパターンを決定するため、複数のバーチャルマシーン１２０のそれぞれのメモリワーキングセットダーティ処理レートを表す収集されたデータをバーチャルマシーンマイグレーションコントローラ１０２に解析させる。
【００６８】
１つ以上のマシーン可読命令セット７３８は、複数のバーチャルマシーン１２０により共有されるメモリページ１２４を示すデータ又は情報をバーチャルマシーンマイグレーションコントローラ１０２に生成させる。１つ以上のマシーン可読命令セット７３８は、異なるバーチャルマシーン１２０にマッピングされるメモリページ１２４の同一部分を示すデータ又は情報の少なくとも１つをバーチャルマシーンマイグレーションコントローラ１０２に生成させる。１つ以上のマシーン可読命令セット７３８は、複数の異なるバーチャルマシーン１２０の間のメモリページ１２４の共通性を示す、図３に示されるようなテーブルなどの１つ以上の論理構造をバーチャルマシーンマイグレーションコントローラ１０２に生成させる。
【００６９】
１つ以上のマシーン可読命令セット７３８は、第１の物理的ホストシステム１１０から第２の物理的ホストシステム１５０に複数のバーチャルマシーン１２０をライブ転送するため、利用可能な帯域幅を示すデータをバーチャルマシーンマイグレーションコントローラ１０２に収集させる。１つ以上のマシーン可読命令セット７３８は、マイグレーション用のバーチャルマシーングループ又はペア２１０を選択するため、バーチャルマシーンマイグレーションコントローラ１０２にバーチャルマシーングループ又はペア２１０を繰り返させる。
【００７０】
１つ以上のマシーン可読命令セット７３８は、各バーチャルマシーン１２０のダーティ処理レート、グループ又はペア２１０におけるバーチャルマシーン１２０の間で共有されるメモリページ及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、バーチャルマシーングループ又はペア２１０のマイグレーション時間をバーチャルマシーンマイグレーションコントローラ１０２に予測させる。
【００７１】
バーチャルマシーンマイグレーションコントローラ１０２のユーザは、１つ以上のテキスト入力装置７５１（例えば、キーボード）、１つ以上のポインティング装置７５２（例えば、マウス、トラックボール、タッチ画面）及び／又は１つ以上のオーディオ入力装置７５３などの１つ以上の通信結合される物理的な入力装置７５０を利用して、バーチャルマシーンマイグレーションコントローラ１０２に情報（例えば、対象者識別情報、カラーパラメータ）と共にコマンド（例えば、アクノリッジメント、選択、確認など）を提供又は供給する。物理的入力装置７５０の一部又は全てはバーチャルマシーンマイグレーションコントローラ１０２に物理及び通信結合される。例えば、一例となるバーチャルマシーンマイグレーションコントローラ１０２は、タッチ画面７５１などの複数の物理的入力装置７５０を提供するタッチ画面ユーザインタフェースを含むものであってもよい。
【００７２】
バーチャルマシーンマイグレーションコントローラ１０２のユーザは、１つ以上の物理的出力装置７５４を介し出力を生成する。少なくとも一部の実現形態では、物理的出力装置７５４は、限定することなく、１つ以上のディスプレイ装置７５５、１つ以上の触覚出力装置７５６、１つ以上のオーディオ出力装置７５７又はこれらの何れかの組み合わせを含む。物理的入力装置７５０の一部又は全て及び物理的出力装置７５４の一部又は全ては、１つ以上の有線又は無線インタフェースを介しバーチャルマシーンマイグレーションコントローラ１０２に通信結合される。
【００７３】
便宜上、ネットワークインタフェース７６０、１つ以上の回路７１２、システムメモリ７１４、物理的入力装置７５０及び物理的出力装置７５４は、通信リンク７１６を介し互いに通信結合されるように示され、これにより、上述したコンポーネントの間の接続性を提供する。他の実施例では、上述したコンポーネントは、図７に示されたものと異なる方式で通信結合される。例えば、上述したコンポーネントの１つ以上は他のコンポーネントと直接的に結合されるか、あるいは、１つ以上の中間コンポーネント（図示せず）を介し互いに結合されてもよい。一部の実施例では、通信リンク７１６は省略され、コンポーネントは適切な有線又は無線接続を用いて互いに直接的に結合される。
【００７４】
第１の物理的ホスト装置１１０は、１つ以上のマシーン可読命令セットを実行可能な１つ以上の回路７６８Ａを有する。時々、マシーン可読命令セットの一部又は全ては、第１の物理的ホスト装置１１０内のシステムメモリ７６９Ａに記憶又は保持される。システムメモリ７６９Ａは、読み出し専用メモリ（ＲＯＭ）７７０Ａ、ランダム・アクセス・メモリ７７２Ａ又はこれらの組み合わせを有する。第１の物理的ホスト装置のＢＩＯＳ７７１Ａは、ＲＯＭ７７０Ａの少なくとも一部を占有、保持又は記憶される。
【００７５】
第１の物理的ホスト装置１１０はまた、１つ以上の記憶装置７７３Ａを有する。時々、１つ以上の記憶装置７７３Ａは、限定することなく、第１の物理的ホスト装置１１０に全体的又は部分的に配置されるソリッドステート記憶装置、回転媒体記憶装置、静電気記憶装置、電気抵抗記憶装置又はこれらの組み合わせを含む。時々、第１の物理的ホスト装置１１０は、クラウドベースラック搭載サーバコンピュータシステムを有する。時々、１つ以上の記憶装置７７３Ａは、例えば、１つ以上のホットスワップ可能なハードドライブ又は同様のストレージ機器などの１つ以上のタイプの着脱可能媒体７７４Ａを有する。
【００７６】
第１の物理的ホスト装置１１０はまた、１つ以上のユーザインタフェース７７５Ａを有する。１つ以上のユーザインタフェース７７５Ａは、１つ以上のユーザ入力装置７７６Ａを有する。例えば、非限定的なユーザ入力装置７７６Ａは、限定することなく、１つ以上のポインタ、１つ以上のテキスト入力装置、１つ以上のオーディオ入力装置、１つ以上のタッチ画面入力装置又はこれらの組み合わせを含む。１つ以上のユーザインタフェース７７５Ａは、代わりに又はさらに、１つ以上のユーザ出力装置７７７Ａを有する。例えば、非限定的なユーザ出力装置７７７Ａは、限定することなく、１つ以上の視覚出力装置、１つ以上の触覚出力装置、１つ以上のオーディオ出力装置又はこれらの組み合わせを含む。
【００７７】
第１の物理的ホストシステム１１０は、１つ以上のネットワークインタフェース７７８Ａを有する。１つ以上のネットワークインタフェース７７８Ａは、何れか現在又は以降のテザリングインタフェース（例えば、バックプレーン、イーサネット（登録商標）など）又は無線ネットワークインタフェース（例えば、ＷｉＦｉ、ＩＥＥＥ８０２．１１）を含む。１つ以上のネットワークインタフェース７７８Ａは、時々、第１の物理的ホストシステム１１０とバーチャルマシーンマイグレーションコントローラ１０２とを通信結合する。
【００７８】
１つ以上の回路７６８Ａは、１つ以上のマシーン可読命令セットを実行するよう構成される１つ以上のシングル又はマルチコアプロセッサ又はマイクロプロセッサを有する。１つ以上の回路７６８Ａは、１つ以上のマイクロプロセッサ、ＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、システム・オン・チップ（ＳｏＣ）などを有する。
【００７９】
システムメモリ７６９Ａは、基本入出力システム（ＢＩＯＳ）、ブートシーケンス、ファームウェア、スタートアップルーチンなどの全て又は一部を記憶する。システムメモリ７６９Ａは、初期的な電源オンに応答して、１つ以上の回路７６８Ａにより実行されるバーチャルマシーンマイグレーションコントローラ１０２のオペレーティングシステム（例えば、ｉＯＳ（登録商標）、Ａｎｄｒｏｉｄ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）  Ｐｈｏｎｅ、Ｗｉｎｄｏｗｓ（登録商標）  １０など）の全て又は一部を記憶する。
【００８０】
第２の物理的ホスト装置１５０は、１つ以上のマシーン可読命令セットを実行可能な１つ以上の回路７６８Ｂを有する。時々、マシーン可読命令セットの一部又は全ては、第２の物理的ホスト装置１５０内のシステムメモリ７６９Ｂに記憶又は保持される。システムメモリ７６９Ｂは、読み出し専用メモリ（ＲＯＭ）７７０Ｂ、ランダム・アクセス・メモリ７２２Ｂ又はこれらの組み合わせを有する。第２の物理的ホスト装置のＢＩＯＳ７７１Ｂは、ＲＯＭ７７０Ｂの少なくとも一部を占有、保持又は記憶する。
【００８１】
第２の物理的ホスト装置１５０はまた、１つ以上の記憶装置７７３Ｂを有する。時々、１つ以上の記憶装置７７３Ｂは、限定することなく、第２の物理的ホスト装置１５０に全体的又は部分的に配置されるソリッドステート記憶装置、回転媒体記憶装置、静電気記憶装置、電気抵抗記憶装置又はこれらの組み合わせを有する。時々、第２の物理的ホスト装置１５０は、クラウドベースラック搭載サーバコンピュータシステムを有する。時々、１つ以上の記憶装置７７３Ｂは、例えば、１つ以上のホットスワップ可能なハードドライブ又は同様のストレージ機器などの１つ以上のタイプの着脱可能な媒体７７４Ｂを有する。
【００８２】
第２の物理的ホスト装置１５０はまた、１つ以上のユーザインタフェース７７５Ｂを有する。１つ以上のユーザインタフェース７７５Ｂは、１つ以上のユーザ入力装置７７６Ｂを有する。例えば、非限定的なユーザ入力装置７７６Ｂは、限定することなく、１つ以上のポインタ、１つ以上のテキスト入力装置、１つ以上のオーディオ入力装置、１つ以上のタッチ画面入力装置又はこれらの組み合わせを含む。１つ以上のユーザインタフェース７７５Ｂは、代わりに又はさらに、１つ以上のユーザ出力装置７７７Ｂを有する。例えば、非限定的なユーザ出力装置７７７Ｂは、限定することなく、１つ以上の視角出力装置、１つ以上の触覚出力装置、１つ以上のオーディオ出力装置又はこれらの組み合わせを有する。
【００８３】
第２の物理的ホスト装置１５０は、１つ以上のネットワークインタフェース７７８Ｂを有する。１つ以上のネットワークインタフェース７７８Ｂは、何れか現在又は以降のテザリングインタフェース（例えば、バックプレーン、イーサネット（登録商標）など）又は無線ネットワークインタフェース（例えば、ＷｉＦｉ、ＩＥＥＥ８０２．１１）を有する。１つ以上のネットワークインタフェース７７８Ｂは、時々、第２の物理的ホスト装置１５０とバーチャルマシーンマイグレーションコントローラ１０２とを通信結合する。
【００８４】
１つ以上の回路７６８Ｂは、１つ以上のマシーン可読命令セットを実行するよう構成される１つ以上のシングル又はマルチコアプロセッサ又はマイクロプロセッサを有する。１つ以上の回路７６８Ｂは、１つ以上のマイクロプロセッサ、ＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、システム・オン・チップ（ＳｏＣ）などを有する。
【００８５】
システムメモリ７６９Ｂは、基本入出力システム（ＢＩＯＳ）、ブートシーケンス、ファームウェア、スタートアップルーチンなどの全て又は一部を記憶する。システムメモリ７６９Ｂは、初期的な電源オンに応答して、１つ以上の回路７６８Ａにより実行されるバーチャルマシーンマイグレーションコントローラ１０２のオペレーティングシステム（例えば、ｉＯＳ（登録商標）、Ａｎｄｒｏｉｄ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）  Ｐｈｏｎｅ、Ｗｉｎｄｏｗｓ（登録商標）  １０など）の全て又は一部を記憶する。
【００８６】
以下の具体例は更なる実施例に関する。本開示の以下の具体例は、第１の物理的ホストシステム１１０から第２の物理的ホストシステム１５０への複数のバーチャルマシーン１２０のライブマイグレーションを実現する装置、システム及び方法などの主題を有する。
【００８７】
具体例１によると、第１の物理的ホストから第２の物理的ホストに複数のバーチャルマシーンをライブマイグレートするシステムが提供される。当該システムは、第１の物理的ホスト及び第２の物理的ホストに通信結合される少なくとも１つのネットワークインタフェースと、少なくとも１つのネットワークインタフェースに通信結合される少なくとも１つの回路とを有する。当該システムは更に、少なくとも１つの回路に通信結合される少なくとも１つの記憶装置を有し、少なくとも１つの記憶装置は、実行されると、回路の少なくとも一部にバーチャルマシーンマイグレーションコントローラを提供させるマシーン可読命令を有し、バーチャルマシーンマイグレーションコントローラは、第１のホストシステム上にある複数のバーチャルマシーンの各バーチャルマシーンについて、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定するステップと、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、各バーチャルマシーングループの各バーチャルマシーンは、第１の物理的ホスト上の同一のメモリページコンテンツ部分にアクセスする、グループ化するステップと、各バーチャルマシーングループにおけるバーチャルマシーンによりアクセスされる同一のメモリページコンテンツ部分の１つのマイグレーション、第１の物理的ホストから第２の物理的ホストに各バーチャルマシーングループをマイグレートするのに利用可能な帯域幅、及び各バーチャルマシーングループに含まれるバーチャルマシーンのそれぞれに論理的に関連するメモリページダーティ処理レートを示す値に少なくとも部分的に基づき、各バーチャルマシーングループをマイグレートするための時間を動的に予測するステップとを実行する。
【００８８】
具体例２は、具体例１の要素を含み、マシーン可読命令は更に、第１の物理的ホストから第２の物理的ホストに複数のバーチャルマシーングループのそれぞれを選択的にマイグレートするステップであって、バーチャルマシーングループのマイグレーションは、利用可能な帯域幅において各バーチャルマシーングループをマイグレートするのに予測される時間に少なくとも部分的に基づく順序で実行される、マイグレートするステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【００８９】
具体例３は、具体例１の要素を含み、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、規定された時間間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す値を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【００９０】
具体例４は、具体例３の要素を含み、規定された過去の時間間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す値を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、６０分の間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す過去の値を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【００９１】
具体例５は、具体例１の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のバーチャルマシーンペアを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にペアリングするステップであって、各バーチャルマシーンペアにおける各バーチャルマシーンは、少なくとも１つの同一のメモリページコンテンツ部分にアクセスする、ペアリングするステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【００９２】
具体例６は、具体例１の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、各バーチャルマシーングループにおける各バーチャルマシーンが少なくとも１つの共通のメモリページにアクセスするように、バーチャルマシーンを選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【００９３】
具体例７は、具体例１の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも１つにアクセスするように、バーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、複数のメモリページのそれぞれは少なくとも部分的に同一のコンテンツを含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【００９４】
具体例８は、具体例７の要素を含み、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも１つにアクセスするように、バーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、複数のメモリページのそれぞれは少なくとも部分的に同一のコンテンツを含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも２つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも２つのメモリページについて、少なくとも２つのページのそれぞれに含まれる同一のコンテンツを特定するステップとをバーチャルマシーンマイグレーションコントローラに実行させる。
【００９５】
具体例９は、具体例１の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも１つにアクセスするように、バーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、複数のメモリページのそれぞれは少なくとも部分的に同一のコンテンツを含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【００９６】
具体例１０は、具体例９の要素を含み、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも１つにアクセスするように、バーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、複数のメモリページのそれぞれは少なくとも部分的に同一のコンテンツを含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきフィンガープリント値を決定するステップと、複数のメモリページにおける少なくとも２つの候補となる同一のメモリページを特定するため、フィンガープリント値を比較するステップと、バイト毎に少なくとも２つの候補となる同一のメモリページのそれぞれを比較するステップと、バイト毎の比較に少なくとも部分的に基づき複数のメモリページ内の同一のコンテンツを有する少なくとも２つのメモリページを特定するステップとバーチャルマシーンマイグレーションコントローラに実行させる。
【００９７】
具体例１１によると、バーチャルマシーンマイグレーションシステムが提供される。当該システムは、少なくとも１つのコントローラ回路と、少なくとも１つのコントローラ回路に通信結合される少なくとも１つの記憶装置とを有し、少なくとも１つの記憶装置は、少なくとも１つのコントローラ回路によって実行されると、少なくとも１つのコントローラ回路にバーチャルマシーンマイグレーションコントローラを提供させる。バーチャルマシーンマイグレーションコントローラは、第１のホストシステム上にある複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップと、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは少なくとも１つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含む、グループ化するステップと、少なくとも１つの同一のメモリページコンテンツ部分、各グループに含まれるバーチャルマシーンのそれぞれのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、第１のホストシステムから第２のホストシステムに複数のバーチャルマシーングループのそれぞれをマイグレートするために計画されるマイグレーション時間を決定するステップとを実行する。
【００９８】
具体例１２は、具体例１１の要素を含み、マシーン実行可能命令は更に、バーチャルマシーンマイグレーションコントローラによる複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【００９９】
具体例１３は、具体例１２の要素を含み、複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、複数のバーチャルマシーングループのそれぞれの計画されたマイグレーション時間に少なくとも部分的に基づき、複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【０１００】
具体例１４は、マシーン実行可能命令は更に、利用可能な帯域幅において各バーチャルマシーングループをマイグレートするのに予想される時間に少なくとも部分的に基づく順序で第１のホストシステムから第２のホストシステムに複数のバーチャルマシーングループのそれぞれを選択的にマイグレートするステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【０１０１】
具体例１５は、具体例１１の要素を含み、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、規定された時間間隔にわたってバーチャルマシーンのそれぞれによる過去のページダーティ処理に基づき、バーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【０１０２】
具体例１６は、具体例１１の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、複数のバーチャルマシーンのそれぞれを複数のバーチャルマシーンペアの１つに選択的にグループ化するステップであって、各バーチャルマシーンペアにおける各バーチャルマシーンは少なくとも１つの同一のメモリページコンテンツ部分にアクセスする、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【０１０３】
具体例１７は、具体例１１〜１６の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは少なくとも１つの共通のメモリページに以前にアクセスしたバーチャルマシーンを含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【０１０４】
具体例１８は、具体例１１〜１６の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも１つに以前にアクセスしたバーチャルマシーンを含み、複数のメモリページのそれぞれは、同一のメモリページコンテンツ部分を少なくとも部分的に含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【０１０５】
具体例１９は、具体例１８の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも２つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも２つのメモリページについて、少なくとも２つのページのそれぞれに含まれる同一のコンテンツを特定するステップとをバーチャルマシーンマイグレーションコントローラに実行させる。
【０１０６】
具体例２０は、具体例１１〜１６の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも１つに以前にアクセスしたバーチャルマシーンを含み、複数のメモリページのそれぞれは、同一のメモリページコンテンツを有する、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【０１０７】
具体例２１は、具体例２０の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも２つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも２つのメモリページについて、少なくとも２つのページのそれぞれに含まれる同一のコンテンツを特定するステップとをバーチャルマシーンマイグレーションコントローラに実行させる。
【０１０８】
具体例２２によると、ライブバーチャルマシーンマイグレーション方法が提供される。当該方法は、複数のバーチャルマシーンの各バーチャルマシーンについて、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定するステップと、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップであって、各バーチャルマシーングループの各バーチャルマシーンは、同一のメモリページコンテンツ部分にアクセスする、グループ化するステップとを有する。当該方法は更に、各バーチャルマシーングループについて、各バーチャルマシーングループにおけるバーチャルマシーンによりアクセスされる同一のメモリページコンテンツ部分の１つのマイグレーション、各バーチャルマシーングループをマイグレートするのに利用可能な帯域幅、及び各バーチャルマシーングループに含まれるバーチャルマシーンのそれぞれに論理的に関連するメモリページダーティ処理レートを示す値に少なくとも部分的に基づき、各バーチャルマシーングループをマイグレートするための時間を動的に予測するステップを有する。
【０１０９】
具体例２３は、具体例２２の要素を含み、当該方法は更に、利用可能な帯域幅において各バーチャルマシーングループをマイグレートするのに予測される時間に少なくとも部分的に基づく順序で複数のバーチャルマシーングループのそれぞれを選択的にマイグレートするステップを有する。
【０１１０】
具体例２４は、具体例２２の要素を含み、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定するステップは、規定された過去の時間間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す値を決定するステップを有する。
【０１１１】
具体例２５は、具体例２４の要素を含み、規定された過去の時間間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す値を決定するステップは、６０分の間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す過去の値を決定するステップを有する。
【０１１２】
具体例２６は、具体例２２の要素を含み、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップは、複数のバーチャルマシーンペアを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にペアリングするステップであって、各バーチャルマシーンペアにおける各バーチャルマシーンは、少なくとも１つの同一のメモリページコンテンツ部分にアクセスする、ペアリングするステップを有する。
【０１１３】
具体例２７は、具体例２２の要素を含み、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップであって、各バーチャルマシーングループにおける各バーチャルマシーンが少なくとも１つの同一のメモリページコンテンツ部分にアクセスする、グループ化するステップは、各バーチャルマシーングループにおける各バーチャルマシーンが少なくとも１つの共通のメモリページにアクセスするように、バーチャルマシーンを選択的にグループ化するステップを有する。
【０１１４】
具体例２８は、具体例２２の要素を含み、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップであって、各バーチャルマシーングループにおける各バーチャルマシーンが少なくとも１つの同一のメモリページコンテンツ部分にアクセスする、グループ化するステップは、各バーチャルマシーングループにおける各バーチャルマシーンが同一のメモリページコンテンツを有する複数のメモリページの少なくとも１つにアクセスするように、バーチャルマシーンを選択的にグループ化するステップを有する。
【０１１５】
具体例２９は、具体例２８の要素を含み、各バーチャルマシーングループにおける各バーチャルマシーンが同一のメモリページコンテンツを有する複数のメモリページの少なくとも１つにアクセスするように、バーチャルマシーンを選択的にグループ化するステップは、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも２つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも２つのメモリページについて、少なくとも２つのページのそれぞれに含まれる同一のコンテンツを特定するステップとを有する。
【０１１６】
具体例３０は、具体例２２の要素を含み、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップであって、各バーチャルマシーングループにおける各バーチャルマシーンが少なくとも１つの同一のメモリページコンテンツ部分にアクセスする、グループ化するステップは、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも１つにアクセスするように、バーチャルマシーンを選択的にグループ化するステップであって、複数のメモリページのそれぞれが、少なくとも部分的に同一のコンテンツを有する、グループ化するステップを有する。
【０１１７】
具体例３１は、具体例３０の要素を含み、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも１つにアクセスするように、バーチャルマシーンを選択的にグループ化するステップであって、複数のメモリページのそれぞれは少なくとも部分的に同一のコンテンツを含む、グループ化するステップは、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきフィンガープリント値を決定するステップと、複数のメモリページにおける少なくとも２つの候補となる同一のメモリページを特定するため、フィンガープリント値を比較するステップと、バイト毎に少なくとも２つの候補となる同一のメモリページのそれぞれを比較するステップと、バイト毎の比較に少なくとも部分的に基づき複数のメモリページ内の同一のコンテンツを有する少なくとも２つのメモリページを特定するステップとを有する。
【０１１８】
具体例３２によると、ライブバーチャルマシーンマイグレーション方法が提供される。当該方法は、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップを有する。当該方法は更に、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは少なくとも１つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含む、グループ化するステップを有する。当該方法は更に、バーチャルマシーンマイグレーションコントローラが、少なくとも１つの同一のメモリページコンテンツ部分、各グループに含まれるバーチャルマシーンのそれぞれのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、複数のバーチャルマシーングループのそれぞれの計画されるマイグレーション時間を決定するステップを有する。
【０１１９】
具体例３３は、具体例３２の要素を含み、当該方法は、バーチャルマシーンマイグレーションコントローラによる複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップを更に有する。
【０１２０】
具体例３４は、具体例３３の要素を含み、当該方法は、複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップは、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループのそれぞれの計画されたマイグレーション時間に少なくとも部分的に基づき、複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップを有する。
【０１２１】
具体例３５は、具体例３３の要素を含み、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップは、バーチャルマシーンマイグレーションコントローラが、規定された時間間隔にわたってバーチャルマシーンのそれぞれによる過去のページダーティ処理に基づき、バーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップを有する。
【０１２２】
具体例３６は、具体例３２の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップは、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーンのそれぞれを複数のバーチャルマシーンペアの１つに選択的にグループ化するステップであって、各バーチャルマシーンペアにおける各バーチャルマシーンは少なくとも１つの同一のメモリページコンテンツ部分にアクセスする、グループ化するステップを有する。
【０１２３】
具体例３７は、具体例３２〜３６の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップは、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは少なくとも１つの共通のメモリページに以前にアクセスしたバーチャルマシーンを含む、グループ化するステップを有する。
【０１２４】
具体例３８は、具体例３２〜３６の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップは、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも１つに以前にアクセスしたバーチャルマシーンを含み、複数のメモリページのそれぞれは、同一のメモリページコンテンツ部分を少なくとも部分的に含む、グループ化するステップを有する。
【０１２５】
具体例３９は、具体例３８の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップは、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも２つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも２つのメモリページについて、少なくとも２つのページのそれぞれに含まれる同一のコンテンツを特定するステップとを有する。
【０１２６】
具体例４０は、具体例３２〜３６の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップは、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも１つに以前にアクセスしたバーチャルマシーンを含み、複数のメモリページのそれぞれは、同一のメモリページコンテンツを有する、グループ化するステップを有する。
【０１２７】
具体例４１は、具体例４０の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップは、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも２つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも２つのメモリページについて、少なくとも２つのページのそれぞれに含まれる同一のコンテンツを特定するステップとを有する。
【０１２８】
具体例４２によると、ライブバーチャルマシーンマイグレーションシステムが提供される。当該システムは、複数のバーチャルマシーンにおける各バーチャルマシーンについて、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定する手段を有する。当該システムは更に、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化する手段であって、各バーチャルマシーングループにおける各バーチャルマシーンは同一のメモリページコンテンツ部分にアクセスする、グループ化する手段を有する。当該システムは更に、各バーチャルマシーングループについて、各バーチャルマシーングループにおけるバーチャルマシーンによりアクセスされる同一のメモリページコンテンツ部分の１つのマイグレーション、各バーチャルマシーングループをマイグレートするのに利用可能な帯域幅及び各バーチャルマシーングループに含まれるバーチャルマシーンのそれぞれに論理的に関連するメモリページダーティ処理レートを示す値に少なくとも部分的に基づき、各バーチャルマシーングループをマイグレートするための時間を動的に予測する手段を有する。
【０１２９】
具体例４３は、具体例４２の要素を含み、当該システムは、利用可能な帯域幅において各バーチャルマシーングループをマイグレートするのに予測される時間に少なくとも部分的に基づく順序で複数のバーチャルマシーングループのそれぞれを選択的にマイグレートする手段を更に有する。
【０１３０】
具体例４４は、具体例４２の要素を含み、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定する手段は、規定された過去の時間間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す値を決定する手段を有する。
【０１３１】
具体例４５は、具体例４４の要素を含み、規定された過去の時間間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す値を決定する手段は、６０分の間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す過去の値を決定する手段を有する。
【０１３２】
具体例４６は、具体例４２の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化する手段は、複数のバーチャルマシーンペアを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にペアリングする手段であって、各バーチャルマシーンペアにおける各バーチャルマシーンは少なくとも１つの同一のメモリページコンテンツ部分にアクセスする、ペアリングする手段を有する。
【０１３３】
具体例４７は、具体例４２の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化する手段は、各バーチャルマシーングループにおける各バーチャルマシーンが少なくとも１つの共通のメモリページにアクセスするように、バーチャルマシーンを選択的にグループ化する手段を有する。
【０１３４】
具体例４８は、具体例４２の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化する手段は、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも１つにアクセスするように、バーチャルマシーンを選択的にグループ化する手段であって、複数のバーチャルマシーンのそれぞれは少なくとも部分的に同一のコンテンツを有する、グループ化する手段を有する。
【０１３５】
具体例４９は、具体例４８の要素を含み、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも１つにアクセスするように、バーチャルマシーンを選択的にグループ化する手段であって、複数のバーチャルマシーンのそれぞれは少なくとも部分的に同一のコンテンツを有する、グループ化する手段は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定する手段と、類似のハッシュ値を有する複数のメモリページ内の少なくとも２つのメモリページを検出する手段と、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも２つのメモリページの少なくとも２つのページのそれぞれに含まれる同一のコンテンツを特定する手段とを有する。
【０１３６】
具体例５０は、具体例４８の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化する手段は、各バーチャルマシーングループにおける各バーチャルマシーンが同一のメモリページコンテンツを有する複数のメモリページの少なくとも１つにアクセスするように、バーチャルマシーンを選択的にグループ化する手段を有する。
【０１３７】
具体例５１は、具体例５０の要素を含み、各バーチャルマシーングループにおける各バーチャルマシーンが同一のメモリページコンテンツを有する複数のメモリページの少なくとも１つにアクセスするように、バーチャルマシーンを選択的にグループ化する手段は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきフィンガープリント値を決定する手段と、複数のメモリページにおける少なくとも２つの候補となる同一のメモリページを特定するため、フィンガープリント値を比較する手段と、バイト毎に少なくとも２つの候補となる同一のメモリページのそれぞれを比較する手段と、バイト毎の比較に少なくとも部分的に基づき複数のメモリページ内の同一のコンテンツを有する少なくとも２つのメモリページを特定する手段とを有する。
【０１３８】
具体例５２によると、ライブバーチャルマシーンマイグレーションシステムが提供される。当該システムは、第１のホストシステム上に実現される複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定する手段を有する。当該システムは更に、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段を有し、各バーチャルマシーングループは、少なくとも１つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを有する。当該システムは更に、少なくとも１つの同一のメモリページコンテンツ部分、各グループに含まれるバーチャルマシーンのそれぞれのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき複数のバーチャルマシーングループのそれぞれの計画されたマイグレーション時間を決定する手段を有する。
【０１３９】
具体例５３は、具体例５２の要素を含み、当該システムは更に、バーチャルマシーンマイグレーションコントローラによる複数のバーチャルマシーンのそれぞれのマイグレーション順序を決定する手段を有する。
【０１４０】
具体例５４は、具体例５３の要素を含み、複数のバーチャルマシーンのそれぞれのマイグレーション順序を決定する手段は、複数のバーチャルマシーングループのそれぞれの計画されたマイグレーション時間に少なくとも部分的に基づき複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定する手段を有する。
【０１４１】
具体例５５は、具体例５３の要素を含み、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定する手段は、規定された時間間隔にわたってバーチャルマシーンのそれぞれによる過去のページダーティ処理に基づき各バーチャルマシーンのページダーティ処理レートを決定する手段を有する。
【０１４２】
具体例５６は、具体例５２の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段は、複数のバーチャルマシーンのそれぞれを複数のバーチャルマシーンペアの１つに選択的にグループ化する手段を有し、各バーチャルマシーンペアにおける各バーチャルマシーンは少なくとも１つの同一のメモリページコンテンツ部分にアクセスする。
【０１４３】
具体例５７は、具体例５２〜５６の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段は、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段を有し、各バーチャルマシーングループは、少なくとも１つの共通のメモリページに以前にアクセスしたバーチャルマシーンを含む。
【０１４４】
具体例５８は、具体例５２〜５６の何れかの要素を有し、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段は、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段を有し、各バーチャルマシーングループは、複数のメモリページの少なくとも１つに以前にアクセスしたバーチャルマシーンを有し、複数のメモリページのそれぞれは少なくとも部分的に同一のメモリページコンテンツ部分を有する。
【０１４５】
具体例５９は、具体例５８の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定する手段と、類似のハッシュ値を有する複数のメモリページ内の少なくとも２つのメモリページを検出する手段と、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも２つのメモリページの少なくとも２つのページのそれぞれに含まれる同一のコンテンツを特定する手段とを有する。
【０１４６】
具体例６０は、具体例５２〜５６の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段は、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段を有し、バーチャルマシーングループのそれぞれは複数のメモリページの少なくとも１つに以前にアクセスしたバーチャルマシーンを有し、複数のメモリページのそれぞれは同一のメモリページコンテンツを有する。
【０１４７】
具体例６１は、具体例６０の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定する手段と、類似のハッシュ値を有する複数のメモリページ内の少なくとも２つのメモリページを検出する手段と、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも２つのメモリページの少なくとも２つのページに含まれる同一のコンテンツを特定する手段とを有する。
【０１４８】
具体例６２によると、回路によって実行されると、回路にバーチャルマシーンマイグレーションコントローラを提供させるマシーン可読命令を有する記憶装置が提供される。バーチャルマシーンコントローラは、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップと、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは少なくとも１つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含む、グループ化するステップと、少なくとも１つの同一のメモリページコンテンツ部分、各グループに含まれるバーチャルマシーンのそれぞれのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、複数のバーチャルマシーングループのそれぞれの計画されるマイグレーション時間を決定するステップとを有する。
【０１４９】
具体例６３は、具体例６２の要素を含み、バーチャルマシーンマイグレーションコントローラにより実行されると、複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令を更に有する。
【０１５０】
具体例６４は、具体例６３の要素を含み、複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のバーチャルマシーングループのそれぞれの計画されたマイグレーション時間に少なくとも部分的に基づき、複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップをバーチャルマシーンマイグレーションコントローラに更に実行させる。
【０１５１】
具体例６５は、具体例６３の要素を含み、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、規定された時間間隔にわたってバーチャルマシーンのそれぞれによる過去のページダーティ処理に基づき、バーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップをバーチャルマシーンマイグレーションコントローラに更に実行させる。
【０１５２】
具体例６６は、具体例６２の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のバーチャルマシーンのそれぞれを複数のバーチャルマシーンペアの１つに選択的にグループ化するステップであって、各バーチャルマシーンペアにおける各バーチャルマシーンは少なくとも１つの同一のメモリページコンテンツ部分にアクセスする、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【０１５３】
具体例６７は、具体例６２〜６６の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは少なくとも１つの共通のメモリページに以前にアクセスしたバーチャルマシーンを含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【０１５４】
具体例６８は、具体例６２〜６６の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも１つに以前にアクセスしたバーチャルマシーンを含み、複数のメモリページのそれぞれは、同一のメモリページコンテンツ部分を少なくとも部分的に含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【０１５５】
具体例６９は、具体例６８の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも２つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも２つのメモリページについて、少なくとも２つのページのそれぞれに含まれる同一のコンテンツを特定するステップとをバーチャルマシーンマイグレーションコントローラに更に実行させる。
【０１５６】
具体例７０は、具体例６２〜６６の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも１つに以前にアクセスしたバーチャルマシーンを含み、複数のメモリページのそれぞれは、同一のメモリページコンテンツを有する、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
【０１５７】
具体例７１は、具体例７０の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも２つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも２つのメモリページについて、少なくとも２つのページのそれぞれに含まれる同一のコンテンツを特定するステップとをバーチャルマシーンマイグレーションコントローラに実行させる。
【０１５８】
具体例７２によると、第１のホストシステムから第２のホストシステムに複数のバーチャルマシーンをマイグレートするシステムであって、具体例３２〜４１の何れかの方法を実行するよう構成されるシステムが提供される。
【０１５９】
具体例７３によると、具体例３２〜４１の何れかの方法を実行するよう構成されるチップセットが提供される。
【０１６０】
具体例７４によると、計算装置上で実行されたことに応答して、具体例３２〜４１の何れかによる方法を計算装置に実行させる複数の命令を有する少なくとも１つのマシーン可読媒体が提供される。
【０１６１】
具体例７５によると、第１のホストシステムから第２のホストシステムに複数のバーチャルマシーンをマイグレートするよう構成される装置であって、具体例３２〜４１の何れかの方法を実行するよう構成される装置が提供される。
【０１６２】
ここで用いられた用語及び表現は、限定のためでなく説明のために利用され、当該用語及び表現を使用する際、図示及び説明された特徴の何れかの均等（又はその一部）を排除することを意図しておらず、各種改良が請求項の範囲内で可能であることが認識される。従って、請求項はこのような全ての均等をカバーすることが意図される。
【図１】
0006312779.tif 000005
【図２Ａ】
0006312779.tif 000006
【図２Ｂ】
0006312779.tif 000007
【図３】
0006312779.tif 000008
【図４】
0006312779.tif 000009
【図５】
0006312779.tif 000010
【図６】
0006312779.tif 000011
【図７】
0006312779.tif 000012