JP6312779B2 - バーチャルマシーンバッチライブマイグレーション - Google Patents

バーチャルマシーンバッチライブマイグレーション Download PDF

Info

Publication number
JP6312779B2
JP6312779B2 JP2016224129A JP2016224129A JP6312779B2 JP 6312779 B2 JP6312779 B2 JP 6312779B2 JP 2016224129 A JP2016224129 A JP 2016224129A JP 2016224129 A JP2016224129 A JP 2016224129A JP 6312779 B2 JP6312779 B2 JP 6312779B2
Authority
JP
Japan
Prior art keywords
virtual machine
virtual
migration
group
virtual machines
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016224129A
Other languages
English (en)
Other versions
JP2017117440A (ja
Inventor
ズゥ ドーン ヤオ
ズゥ ドーン ヤオ
ドゥ ユイヤーン
ドゥ ユイヤーン
スゥン ミーンチウ
スゥン ミーンチウ
Original Assignee
インテル コーポレイション
インテル コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2017117440A publication Critical patent/JP2017117440A/ja
Application granted granted Critical
Publication of JP6312779B2 publication Critical patent/JP6312779B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Description

本開示は、バーチャルマシーンのマイグレーションに関する。
バーチャルマシーン(VM)は、特定のオペレーティング環境のエミュレーションである。バーチャルマシーンは、現実又は仮想的コンピュータのコンピュータアーキテクチャ及び機能に基づき動作し、その実現形態は特殊なハードウェア、ソフトウェア又はその双方に関する。バーチャルマシーンは、対象となるリアルマシーンの機能がバーチャルマシーン内で実現される程度に基づき分類されうる。システムのバーチャルマシーンは、対象となるリアルマシーンの完全な代替と、完全なオペレーティングシステムの実行をサポートするのに求められるレベルの機能とを提供する。プロセスバーチャルマシーンは、抽象化されたプラットフォームから独立したプログラム実行環境を提供することによって、単一のアプリケーションを実行するよう設計されている。
バーチャルマシーンは、例えば、1つ以上のリモートサーバシステムなどの1つ以上のホストデバイス上でローカル又はリモートに実現されうる。ときには、第1のリモートホストデバイスから第2のリモートホストデバイスに複数のバーチャルマシーンをマイグレートすることが必要になりうる。バーチャルマシーンのライブマイグレーションは、バーチャルマシーンが処理を継続しながら、物理的ホスト間でバーチャルマシーンをリロケートする。バーチャルマシーンは、サービス可用性を向上させ、リソース利用を増加させ、物理的ホストの管理を簡単化し、サーバメンテナンスを実行し、又は複数の物理的ホスト間でロードバランスするため、物理的ホスト間でマイグレートされうる。バーチャルマシーンのライブマイグレーションは、Openstackなどのクラウドベースオペレーティングシステム及び仮想化データセンタにおけるキーとなる技術である。
ハードウェアキャパシティを増加させることによって、単一のデバイスが多数の共置されているバーチャルマシーンをサポートする能力は増加し続ける。共置されるバーチャルマシーンの個数が増加することによって、何れかの数のバーチャルマシーンが同時にマイグレートされる確率は増加する。同様に、マイグレーション間のオーバラップの確率及び/又は第1の物理的ホストから第2の物理的ホストへの全てのバーチャルマシーンのマイグレーションもまた、バーチャルマシーンの個数の増加によって増加する傾向となる。
あるいは、バーチャルマシーンはシーケンシャル又はスケジューリングベースで個別にマイグレートされうる。しかしながら、複数のバーチャルマシーンがグループとしてマイグレートされる際には利益がある。
・バーチャルマシーンがVM間通信チャネルを含むとき、バーチャルマシーンはパラレルにマイグレートされ、デスティネーション物理的ホストにおいて同時に再開されるべきである。このようなバーチャルマシーンのシーケンシャルなマイグレーションは、バーチャルマシーンが物理的ホストの間で個別にマイグレートされるとき、VM間通信チャネルの中断のため失敗しうる。
・共通の物理的ホストに共置されるバーチャルマシーンは、多数のメモリページを共有し、当該バーチャルマシーンの個別のマイグレートは多数の重複したメモリページのマイグレーションを生じさせうる。このような重複は、デスティネーション物理的ホストのストレージキャパシティと共に、バーチャルマシーンをマイグレートするのに用いられるネットワークにおける帯域幅との双方を浪費させる。
・コンテナVMのケースによると(インテルのClear Containerなど)、多数のバーチャルマシーンが単一のホスト上に存在しうる。このような実現形態では、バーチャルマシーンは、複数のメモリページを共有し、また互いに通信する可能性があり、当該状態の下では、バーチャルマシーンのバッチマイグレーションが効果的である。
大部分の既知のバーチャルマシーンマイグレーション手段は、ソース物理的ホスト上で実現される全てのバーチャルマシーンを移転するか、又は個々のバーチャルマシーンのみを移転する。このようなマイグレーションレジームは、個々のバーチャルマシーンのマイグレーション又は全てのバーチャルマシーンのマイグレーションが、バーチャルマシーンの間で全体的又は部分的に共有又は重複されるメモリページを特定することによって、ソース物理的ホストとデスティネーション物理的ホストとの間で転送されるデータを有意に減少させる機会を失うため、次善的なものである。さらに、このような手段は、プリコピー段階における収束しないダーティメモリページのためにマイグレーションの失敗を生じさせうる。
請求された主題の各種実施例の特徴及び効果は、以下の詳細な説明が進むに従って、同様の数値が同様のパーツを示す図面を参照することによって明らかになるであろう。
図1は、本開示の少なくとも1つの実施例によるライブバーチャルマシーンマイグレーションシステムの概略図である。 図2Aは、本開示の少なくとも1つの実施例による第1の物理的ホスト上に実現される4つのバーチャルマシーンが第1の物理的ホストにおける同一のメモリ位置に記憶される共通のメモリページを共有する例示的なシステムの概略である。 図2Bは、本開示の少なくとも1つの実施例による第1の物理的ホスト上で実現される4つのバーチャルマシーンが各自のメモリページにデータを通信し、各メモリページが同一又は同様のデータを有する例示的なシステムの概略である。 図3は、本開示の少なくとも1つの実施例によるマイグレート対象のバーチャルマシーンの全てのペア間のメモリページ共通性の程度を示すデータを有するチャート300である。 図4は、本開示の少なくとも1つの実施例による例示的なライブバーチャルマシーンマイグレーション方法のハイレベルなフロー図である。 図5は、本開示の少なくとも1つの実施例による各バーチャルマシーングループの予測されるマイグレーション時間に基づく第1の物理的ホストと第2の物理的ホストとの間のバーチャルマシーングループをマイグレートする例示的な方法のハイレベルなフロー図である。 図6は、本開示の少なくとも1つの実施例による他の例示的なライブバーチャルマシーンマイグレーション方法のハイレベルなフロー図である。 図7は、本開示の少なくとも1つの実施例による例示的なバーチャルマシーンマイグレーションコントローラのブロック図である。 以下の詳細な説明は例示的な実施例を参照することにより進められるが、それの多数の代替、修正及び変形は当業者に明らかであろう。
物理的ホストの間でバーチャルマシーンをマイグレートする1つの態様は、バーチャルマシーンがソースホストからデスティネーションに依然として実行しているとき、ターゲットバーチャルマシーンの変化するメモリをコピーすることである。バーチャルマシーンに関連するメモリページは、メモリページが転送されるデータ転送及びネットワーク帯域幅のかなりの部分を表すか、あるいは、物理的ホストの間でメモリページを迅速に転送する能力を制限又は限定しうる。多数のデータ集中メモリページをマイグレートすることに関連する問題を解決するため、バーチャルマシーンのライブマイグレーションは以下によって実行されてもよい。
・共有メモリページを特定するためソース物理的ホストのメモリに記憶されるマイグレート対象のバーチャルマシーンに論理的に関連するメモリページを調べること。このとき、共有メモリページの1つのインスタンスしか転送されない。
・ソース物理的ホスト内の共有された又は部分的に同一のメモリページを特定する可能性を増加させるため、バーチャルマシーンライブマイグレーションコントローラは、ある粒度レベルでメモリページを調べ、粒度レベルでサブページを確認し、1つ以上のデータフィンガープリント技術を利用して共有された、部分的に同一の又は完全に同一のメモリページの特定を迅速化する。
・各バーチャルマシーンは全体的に一貫したメモリページダーティ処理レートを維持するため、バーチャルマシーンライブマイグレーションコントローラは、ダーティログモードを用いてダーティ処理されたメモリページの個数を追跡する書き換え可能なメモリワーキングセットパターンを収集する。このとき、バーチャルマシーンライブマイグレーションコントローラは、マイグレーションに費やされる収束、期間及び繰り返しを含む所与のネットワーク帯域幅におけるメモリワーキングセットパターンを動的に予測する。予測されたマイグレーション時間に基づき、バーチャルマシーンライブマイグレーションコントローラは、バッチマイグレーションの完了を成功させるため、所与の(又は割り当てられた)メモリ帯域幅におけるマイグレーションのためのバーチャルマシーングループを選択する。
第1の物理的ホストから第2の物理的ホストに複数のバーチャルマシーンをライブマイグレートするためのシステムが提供される。当該システムは、第1の物理的ホスト及び第2の物理的ホストに通信結合される少なくとも1つのネットワークインタフェースと、少なくとも1つのネットワークインタフェースに通信結合される少なくとも1つの回路とを有する。当該システムは更に、少なくとも1つの回路に通信結合される少なくとも1つの記憶装置を有し、当該少なくとも1つの記憶装置は、実行されると、回路の少なくとも一部にバーチャルマシーンライブマイグレーションコントローラを提供させるマシーン可読命令を有し、バーチャルマシーンライブマイグレーションコントローラは、第1の物理的ホスト上に提供される複数のバーチャルマシーンの各バーチャルマシーンについて、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定し、複数のバーチャルマシーングループを提供するため複数のバーチャルマシーンの少なくとも一部のバーチャルマシーンを選択的にグループ化し、各バーチャルマシーングループの各バーチャルマシーンは第1の物理的ホスト上の同一のメモリページコンテンツ部分にアクセスし、各バーチャルマシーングループにおけるバーチャルマシーンによりアクセスされる同一のメモリページコンテンツ部分の1つのマイグレーション、第1の物理的ホストから第2の物理的ホストに各バーチャルマシーングループをマイグレートするのに利用可能な帯域幅、及び各バーチャルマシーングループに含まれる各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値に少なくとも部分的に基づき、各バーチャルマシーングループをマイグレートするための期間を動的に予測する。
他のライブバーチャルマシーンマイグレーションシステムが提供される。当該システムは、少なくとも1つのコントローラ回路と、少なくとも1つのコントローラ回路に通信結合される少なくとも1つの記憶装置とを有し、少なくとも1つの記憶装置は、少なくとも1つのコントローラ回路により実行されると、少なくとも1つのコントローラ回路にバーチャルマシーンマイグレーションコントローラを提供させるマシーン実行可能命令を有する。バーチャルマシーンマイグレーションコントローラは、第1のホストシステム上にある複数のバーチャルマシーンのそれぞれについてページダーティ処理レートを決定し、複数のバーチャルマシーングループを構成するため複数のバーチャルマシーンの少なくとも一部を選択的にグループ化し、各バーチャルマシーングループは少なくとも1つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含み、少なくとも1つの同一のメモリページコンテンツ部分、各グループに含まれる各バーチャルマシーンのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、第1のホストシステムから第2のホストシステムに複数のバーチャルマシーングループのそれぞれをマイグレートするための計画されるマイグレーション時間を決定する。
ライブバーチャルマシーンマイグレーション方法が提供される。当該方法は、複数のバーチャルマシーンにおける各バーチャルマシーンについて、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定し、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化することを含み、各バーチャルマシーングループにおける各バーチャルマシーンは同一のメモリページコンテンツ部分にアクセスする。当該方法は更に、各バーチャルマシーングループについて、各バーチャルマシーングループにおけるバーチャルマシーンによりアクセスされる同一のメモリページコンテンツ部分の1つのマイグレーション、及び各バーチャルマシーングループに含まれる各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値に少なくとも部分的に基づき、各バーチャルマシーングループをマイグレートするための期間を動的に予測することを含む。
他のライブバーチャルマシーンマイグレーション方法が提供される。当該方法は、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定することを含む。当該方法は更に、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することを含み、各バーチャルマシーングループは、少なくとも1つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含む。当該方法は更に、バーチャルマシーンマイグレーションコントローラが、少なくとも1つの同一のメモリページコンテンツ部分、各グループに含まれる各バーチャルマシーンのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、複数のバーチャルマシーングループのそれぞれの計画されるマイグレーション時間を決定することを含む。
他のライブバーチャルマシーンマイグレーションシステムが提供される。当該システムは、複数のバーチャルマシーンにおける各バーチャルマシーンについて、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定する手段を有する。当該システムは更に、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化する手段を有し、各バーチャルマシーングループにおける各バーチャルマシーンは、同一のメモリページコンテンツ部分にアクセスする。当該システムは更に、各バーチャルマシーングループについて、各バーチャルマシーングループにおけるバーチャルマシーンによりアクセスされる同一のメモリページコンテンツ部分の1つのマイグレーション、各バーチャルマシーングループをマイグレートするのに利用可能な帯域幅及び各バーチャルマシーングループに含まれる各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値に少なくとも部分的に基づき、各バーチャルマシーングループをマイグレートするための時間を動的に予測する手段を含む。
他のライブバーチャルマシーンマイグレーションシステムが提供される。当該システムは、第1のホストシステム上で実現される複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定する手段を含む。当該システムは更に、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段を含み、各バーチャルマシーングループは少なくとも1つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含む。当該システムは更に、少なくとも1つの同一のメモリページコンテンツ部分、各グループに含まれる各バーチャルマシーンのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、複数のバーチャルマシーングループのそれぞれの計画されるマイグレーション時間を決定する手段を含む。
ここで用いられるように、“トップ”及び“ボトム”という用語は、位置に対する絶対的な参照でなく相対的な参照を提供することを意図する。従って、“トップ部分”及び“ボトム部分”を有するとして説明されるオブジェクトを反転させることは、オブジェクトの上部に“ボトム部分”を配置し、オブジェクトの下部に“トップ部分”を配置することであってもよい。このような構成は、本開示の範囲内に含まれるとみなされるべきである。
ここで用いられるように、“第1”、“第2”及び他の同様の序数の用語は、複数の類似又は同一のオブジェクトを区別することを意図したものであり、オブジェクトの特定又は絶対的な順序を示すことを意図していない。従って、“第1のオブジェクト”及び“第2のオブジェクト”は、第1のオブジェクトに対して第2のオブジェクトが空間又は時間的に前に現れる順序を含む何れかの順序で現れうる。このような構成は、本開示の範囲内に含まれるとして解釈されるべきである。
図1は、本開示の少なくとも1つの実施例によるバーチャルマシーンマイグレーションコントローラ102がネットワークを介し通信結合される第1の物理的ホスト110から第2の物理的ホストに複数のバーチャルマシーン120A〜120n(まとめて“バーチャルマシーン120”)をマイグレート140するライブバーチャルマシーンマイグレーションシステム100の概略図である。何れかの個数のバーチャルマシーン120が、第1の物理的ホストシステム110上で実現されてもよい。例えば、第1の物理的ホストシステム110は、10個以上のマシーン120、50個以上のバーチャルマシーン120、100個以上のバーチャルマシーン120、500個以上のバーチャルマシーン120又は1000個以上のバーチャルマシーン120を提供してもよい。各バーチャルマシーンは、同一又は異なるオペレーティングシステム及び/又はアプリケーションを実現してもよい。
第1の物理的ホストシステム110は、メモリ122などの1つ以上の記憶装置を有する。バーチャルマシーン120の一部又は全ては、メモリ122に記憶又は保持されるメモリページ124A〜124n(まとめて“メモリページ124”)にマッピング及び/又は論理的に関連付けされる。各メモリページ124は、各メモリページ124にマッピングされるバーチャルマシーン120により生成及び/又は利用されるデータ及び/又は情報を含む。実施例では、1つのバーチャルマシーン120は、何れかの個数のメモリページ124にマッピングされる。各バーチャルマシーン120は、バーチャルマシーン120がマッピングされるメモリページ124上のデータ及び/又は情報を断続的、定期的又は非定期的に追加、変更又は削除する。特定のバーチャルマシーン120がメモリページ124に含まれる情報及び/又はデータを追加、変更又は削除しうるレートは、“ページダーティ処理レート”として参照されるか、又は単に各バーチャルマシーン120の“ダーティ処理レート”として参照されてもよい。バーチャルマシーン120は、類似した又は異なるダーティ処理レートを有する。
一部の実現形態では、複数のバーチャルマシーン120が1つのメモリページ124にマッピングされる。このような実現形態では、1つのメモリページ124は、各バーチャルマシーン120の間で又はによって“共有”されるとみなされうる。一部の実現形態では、異なるバーチャルマシーン120によって共有されないが、マッピングされるメモリページ124の部分は、類似した又は同一のデータ及び/又は情報を有する。一部の実現形態では、異なるバーチャルマシーン120により共有されないが、マッピングされるメモリページ124全体は、類似した又は同一の情報及び/又はデータを含む。従って、一部の実現形態では、異なるメモリページ124に含まれる情報及び/又はデータは同様又は同一であってもよく、この結果、かなりの量の冗長な情報及び/又はデータが第1の物理的ホストシステム110のメモリ122にあってもよい。ここに説明されるシステム及び方法は、同様及び/又は同一の情報及び/又はデータを含み、異なるバーチャルマシーン120にマッピングされるメモリページ124と複数のバーチャルマシーン120との間で共有及びマッピングされるメモリページ124を効果的に特定可能である。
実施例では、メモリ複製マネージャ112の全て又は一部は、図1に示されるように、第1の物理的ホストシステム110に配置される。他の実施例では、メモリ複製マネージャ112の全て又は一部は、バーチャルマシーンマイグレーションコントローラ102に配置される。メモリ複製マネージャ112の位置に関わらず、メモリ複製マネージャ112は、バーチャルマシーンコントローラ102に通信結合される。メモリ複製マネージャ112は、異なるバーチャルマシーン120にマッピングされる重複したメモリページ124(すなわち、同一の情報及び/又はデータを含む異なるメモリページ124)を特定するため、メモリページ124の一部又は全てをスキャン又は解析する。メモリ複製マネージャ112は、異なるバーチャルマシーン120にマッピングされる部分的に重複したメモリページ124(すなわち、同一の情報及び/又はデータの少なくとも一部を含む異なるメモリページ124)を特定するため、メモリページ124の一部又は全てをスキャン又は解析する。
一部の実現形態では、メモリ複製マネージャ112は、重複した情報及び/又はデータを全体的に又は部分的に含むメモリページ124を特定するため、複数のバーチャルマシーン120にマッピングされるメモリページ124の少なくとも一部を解析する。一部の実現形態では、メモリ複製マネージャ112は、時間ベースでメモリページ124を解析する。例えば、メモリ複製マネージャ112は、定期的に、不定期的に又は周期的にメモリページ124を解析してもよい。一部の実現形態では、メモリ複製マネージャ112は、イベントドリブンベースでメモリページ124を解析する。例えば、メモリ複製マネージャ112は、第1の物理的ホスト110から第2の物理的ホスト150へのバーチャルマシーン120の一部又は全ての差し迫ったマイグレーションの1つ以上のメッセージ又はインジケータを受信すると、メモリページ124を解析する。一部の実施例では、バーチャルマシーンマイグレーションコントローラ102は、第1の物理的ホスト110から第2の物理的ホスト150へのバーチャルマシーン120の一部又は全ての差し迫ったマイグレーションのメッセージ又はインジケータをメモリ複製マネージャ112に提供する。
メモリ複製マネージャ112は、何れかの現在又は以降に開発された解析技術を利用して、重複情報及び/又はデータを少なくとも部分的に含むメモリページ124を特定する。例えば、メモリ複製マネージャ112は、第1の物理的ホスト110上のメモリページ124の一部又は全てについてフィンガープリントを生成及び比較してもよい。メモリ複製マネージャは、Rabinのアルゴリズムなどの何れかの現在又は以降に開発されたフィンガープリント処理技術を利用してこのようなフィンガープリント処理を実行し、各メモリページ124をメモリページ124に含まれるコンテンツに位置的な相対的に短いデータ文字列に減少させる。実施例では、メモリ複製マネージャ112は、候補となるメモリページの一致を特定するため、各メモリページ124のフィンガープリントを比較する。候補となる一致したメモリページ124のコンテンツが同一であることを確認するため、メモリ複製マネージャ112は、バイト単位で候補となる一致したメモリページ124を比較し、候補となる一致したメモリページ124が実際に同一であることを確認する。実施例では、メモリ複製マネージャ112は、1つ以上のハッシュ処理関数を利用して、2つ以上のメモリページ124の同一部分を特定する。
バーチャルマシーンマイグレーションコントローラ102は、スタンドアローンコントローラであってもよいし、あるいは、より大きな制御装置の一部として実現されてもよい。実施例では、バーチャルマシーンマイグレーションコントローラ102は、1つ以上の通信結合された記憶装置を有する。一部の実現形態では、バーチャルマシーンマイグレーションコントローラ102は、1つ以上のマシーン実行可能命令セットを実行可能な1つ以上のコントローラ回路を有する。1つ以上のマシーン実行可能命令セットは、1つ以上の通信結合された記憶装置に全体的に又は部分的に記憶又は保持される。一部の実現形態では、バーチャルマシーンマイグレーションコントローラ102は、第1の物理的ホストシステム110によって全体的に又は部分的に実行される。一部の実現形態では、バーチャルマシーンマイグレーションコントローラ102は、第2の物理的ホストシステム1509によって全体的に又は部分的に実行される。一部の実現形態では、バーチャルマシーンマイグレーションコントローラ102は、第1の物理的ホストシステム110及び第2の物理的ホストシステム150の双方の外部の1つ以上の装置によって実行される。
バーチャルマシーンマイグレーションコントローラ102は、第1の物理的ホストシステム110から第2の物理的ホストシステム150へのバーチャルマシーン120のマイグレーション140を制御する。少なくとも一部の実現形態では、第1の物理的ホストシステム110は、第2の物理的ホストシステム150に結合されるハードウェア160であってもよい(例えば、共通のラック内の他のブレードサーバ上に配置される)。このような実現形態では、バーチャルマシーン120のマイグレーション140は、配線接続160を介し全体的に又は部分的に行われる。一部の実現形態では、第1の物理的ホストシステム110は、1つ以上のネットワーク162を介し第2の物理的ホストシステム150に通信結合される。このような実現形態では、バーチャルマシーン120のマイグレーション140はネットワーク接続162を介し行われる。
第1の物理的ホストシステム110は、1つ以上のネットワーク帯域幅配分装置114を有する。ネットワーク帯域幅配分装置114は、利用可能なネットワーク帯域幅をバーチャルマシーンマイグレーション140に分割、専用化又は配分する。このような帯域幅の配分は、第1の物理的ホストシステム110上で現在実行されている他の処理の帯域幅要求に全体的に又は部分的に基づく。一部の実施例では、ネットワーク帯域幅配分装置114は、バーチャルマシーンマイグレーション140に利用可能な帯域幅をバーチャルマシーンマイグレーションコントローラ102に通信する。
図2Aは、本開示の少なくとも1つの実施例による第1の物理的ホストシステム110上で実行される複数のバーチャルマシーン120A〜120Dが共通のメモリページ124にマッピング(202A〜202D)する例示的なシステム200の概略である。一部の実現形態では、複数のバーチャルマシーン120は、単一の共有メモリページ124*にマッピングする。共有メモリページ124*は、第1の物理的ホストシステム110のメモリ122に記憶又は保持される。
実施例では、メモリ複製マネージャ112は、共通又は共有メモリページ124*へのマッピング202として、複数のバーチャルマシーン120を特定する。実施例では、バーチャルマシーンマイグレーションコントローラ102は、共通又は共有メモリページ124*へのマッピング202として複数のバーチャルマシーン120を特定する。このような実施例では、バーチャルマシーンマイグレーションコントローラ102は、共通又は共有メモリページ124*に少なくとも部分的に基づき、第2の物理的ホストシステム150へのマイグレーション140のために複数のバーチャルマシーン120を選択的にグループ化210する。マイグレーションのために複数のバーチャルマシーン120を選択的にグループ化することによって、バーチャルマシーンマイグレーションコントローラ102は、共有メモリページ124*の1つのインスタンスしか利用せずにマイグレーションを完了させることができる。他方、バーチャルマシーンマイグレーションコントローラ102が複数のバーチャルマシーン120のそれぞれを別々にマイグレートした場合、共有メモリページ124*は、複数のバーチャルマシーン120に含まれる各バーチャルマシーン120について1回マイグレートされる。従って、共通メモリページ124*を共有する複数のバーチャルマシーン120をグループ化することによって、帯域幅及びマイグレーション時間要求が効果的に低減される。
図2Bは、本開示の少なくとも1つの実施例による第1の物理的ホストシステム110上で実行される複数のバーチャルマシーン120A〜120Dが異なるメモリページ124A〜124Dにマッピング(202A〜202D)するが、各メモリページ124の少なくとも一部は共通の情報又はデータ220を含む例示的なシステム200の概略である。一部の実現形態では、複数のバーチャルマシーン120は異なるメモリページ124にマッピングするが、異なるメモリページ124のそれぞれは同一の情報又はデータ220を含む。このような例では、メモリページ124は、第1の物理的ホストシステム110のメモリ122に記憶又は保持される。
実施例では、メモリ複製マネージャ112は、それぞれが共通の情報又はデータ220の少なくとも一部を含む異なるメモリページ124へのマッピング202として複数のバーチャルマシーン120を特定する。実施例では、異なるメモリページ124の一部又は全ては同一の情報又はデータを含む。実施例では、メモリ複製マネージャ112は、異なるメモリページ124のそれぞれについてフィンガープリントを生成する。メモリ複製マネージャ112は、同一の情報又はデータを含む候補となる一致するメモリページ124を決定するため、異なるメモリページ124のそれぞれについてフィンガープリントを比較する。実施例では、メモリ複製マネージャ112は、候補となる一致するメモリページ124が実際に同一であるか判断するため、バイト単位で候補となる一致するメモリページ124を比較する。
実施例では、異なるメモリページ124の一部又は全ては、共通又は同一の情報又はデータセクション、パッセージ又は部分220を含む。実施例では、メモリ複製マネージャ112は、1つ以上のハッシュ処理関数を用いて異なるメモリページ124のそれぞれの共通部分220を特定する。
このような実施例では、バーチャルマシーンマイグレーションコントローラ102は、異なるメモリページ124に含まれる共通又は共有情報又はデータに少なくとも部分的に基づき、第2の物理的ホストシステム150へのマイグレーション140のために複数のバーチャルマシーン120を選択的にグループ化210する。マイグレーションのために複数のバーチャルマシーン120を選択的にグループ化することによって、バーチャルマシーンマイグレーションコントローラ102は、グループ210に含まれる各バーチャルマシーン120について1回でなく、共通情報又はデータを1回のみマイグレートすることによって、グループ化されたバーチャルマシーンのマイグレーションを完了させることができる。従って、共通又は同一の情報又はデータ部分220を含むメモリページ124にマッピングする複数のバーチャルマシーン120をグループ化することによって、帯域幅及びマイグレーション時間要求が効果的に低減される。
図3は、本開示の少なくとも1つの実施例による全てのバーチャルマシーンペア210の間のメモリページの共通性の程度を示すデータを含む図300である。一部の実施例では、バーチャルマシーンマイグレーションコントローラ102は、1つのメモリページ124が異なるバーチャルマシーン120にマッピング(すなわち、共有)される程度、及び/又はバーチャルマシーン120が同一又は共通の情報又はデータを含む異なるメモリページ124にマッピングされる程度を決定する。実施例では、バーチャルマシーンマイグレーションコントローラ102は、各バーチャルマシーン120にマッピングされる同一の情報又はデータの少なくとも一部を有するメモリページ124と共有メモリページ124とに基づき、バーチャルマシーン120の全てのペアの間の共通性の程度を示すデータを含む図300又は他のグラフなどの出力を生成する。図300は、特定のバーチャルマシーンペア210が第1の物理的ホストシステム110のメモリ122内のメモリスペースを共有する程度を示す値302によって占有される。
図4は、本開示の少なくとも1つの実施例による例示的なライブバーチャルマシーンマイグレーション方法400のハイレベルなフロー図である。方法400では、バーチャルマシーンマイグレーションコントローラ102は、メモリページ共通性の高い程度を有するバーチャルマシーンを選択的に特定及びグループ化することによって、マイグレーション時間とネットワーク帯域幅とを減少させる。このようなバーチャルマシーンの選択的な特定及びグループ化は、ソース物理的ホストとデスティネーション物理的ホストとの間の冗長なメモリページコンテンツの送信及び/又は冗長なメモリページの送信を最小化又は排除することによって、マイグレーションを完了させるのに要する時間及び帯域幅を減少させる。各バーチャルマシーングループに含まれるバーチャルマシーンのページダーティ処理時間を追跡することによって、バーチャルマシーンマイグレーションコントローラ102は、ページダーティ処理レート、各バーチャルマシーンによりマッピングされるメモリページ間の共通性の程度及びネットワーク帯域幅に基づき、計画されたマイグレーション時間を決定できる。方法400は402において開始される。
404において、バーチャルマシーンマイグレーションコントローラ102は、第1の物理的ホストシステム110から第2の物理的ホストシステム150へのマイグレーションのため予定される各バーチャルマシーン120のページダーティ処理レートを決定する。ページダーティ処理レートは、バーチャルマシーン102が各バーチャルマシーンにマッピングされる1つ以上のメモリページ124上の情報又はデータを変更、追加又は削除するレートである。実施例では、所与のバーチャルマシーン120のページダーティ処理レートは、経時的に比較的安定的である。従って、バーチャルマシーンマイグレーションコントローラ102は、毎時など規定された期間において特定のバーチャルマシーン120の過去のページダーティ処理レートを決定する。その後、当該データは各バーチャルマシーンのダーティ処理レートを予測し、各バーチャルマシーン120にマッピングされるメモリページ124を転送するのに必要なネットワーク帯域幅を決定するのに利用される。
実施例では、メモリワーキングセットのダーティ処理レートを追跡するため、バーチャルマシーンマイグレーション140の前の繰り返し中にダーティメモリページを追跡するためバーチャルマシーン処理におけるバーチャルマシーンメモリログダーティモードが利用される。ログダーティモードは、バーチャルマシーンメモリページに対してライトプロテクションを設定し、バーチャルマシーンがページに書き込みするとき、失敗時にメモリページのダーティ状態を示すためのビットマップを設定する(例えば、システム仮想化におけるバーチャルマシーンイグジット、又はコンテナバーチャルマシーンにおけるページフォルトなど)。
406において、バーチャルマシーンマイグレーションコントローラ102は、バーチャルマシーン120を複数のバーチャルマシーングループ210に選択的にグループ化する。バーチャルマシーンマイグレーションコントローラ102は、グループ210に含まれる構成要素となるバーチャルマシーン120のうちの共有メモリ124の有無に少なくとも部分的に基づき、バーチャルマシーン120をグループ化210する。バーチャルマシーンマイグレーションコントローラ102は、各グループ210に含まれる他のバーチャルマシーン120がマッピングされる他のメモリページ124とメモリページ124上に含まれるコンテンツの少なくとも一部を共有する複数のメモリページ124への構成要素となる各バーチャルマシーン120のマッピングに少なくとも部分的に基づき、バーチャルマシーン120をグループ化210する。バーチャルマシーンマイグレーションコントローラ102は、各グループに含まれるバーチャルマシーン120により共有されるメモリページコンテンツの共通性の程度に少なくとも部分的に基づき、バーチャルマシーン120をグループ化する。グループ210に含まれるバーチャルマシーン120の間のメモリページコンテンツの共通性の程度の増加は、バーチャルマシーン120がライブマイグレート140される際にマイグレートされるデータ量を減少させ、これにより、マイグレーションを完了させるのに要する時間及び帯域幅を効果的に減少させる。
408において、バーチャルマシーンマイグレーションコントローラ102は、406において生成された各バーチャルマシーングループの計画されたマイグレーション時間を動的に決定する。計画されたマイグレーション時間は、以下のファクタなどによって影響を受ける可能性がある。
1.グループ210に含まれるバーチャルマシーン120のページダーティ処理レート(より高いメモリページダーティ処理レートがマイグレーション時間及び帯域幅を増加させる傾向がある)
2.グループ210に含まれるバーチャルマシーンの間のメモリページ124の共通性の程度(より大きなメモリページ共通性は、マイグレーション時間及び帯域幅を減少させる傾向がある)
3.マイグレーションを実行するのに利用可能なネットワーク帯域幅
ダーティ処理レートに基づき、所与のネットワーク伝送速度におけるメモリダーティ処理レートが予測される。実施例では、所与のメモリダーティ処理レートについて計画されたマイグレーション時間が、第1の時間と第2の時間との間でダーティ処理されるメモリページ数をまず決定することによって決定される。
Figure 0006312779
ただし、M=ダーティ処理されたメモリ、D(t)=メモリダーティ処理レートである。
所与のネットワーク速度においてダーティ処理されるメモリを転送するのに必要な時間は、
Figure 0006312779
であり、ここで、T=マイグレートするのに要する時間、s=ネットワーク速度である。
次のメモリコピー繰り返しは、以下のようなダーティ処理されたメモリを有する。
Figure 0006312779
方法400は410において終了する。
図5は、本開示の少なくとも1つの実施例による各バーチャルマシーングループの予測されるマイグレーション時間に基づき第1の物理的ホストシステム110と第2の物理的ホストシステム150との間でバーチャルマシーングループ210をマイグレートする例示的な方法500のハイレベルフロー図である。少なくとも一部の実現形態では、バーチャルマシーンマイグレーションコントローラ102は、図4の408に関して詳細に説明されるものなどの複数のファクタに基づきマイグレーションを完了させるための計画又は推定される時間に少なくとも部分的に基づき、バーチャルマシーングループのマイグレーションを実行させる。方法500は502において開始される。
504において、バーチャルマシーンマイグレーションコントローラ102は、各バーチャルマシーングループ210について計算される計画されたマイグレーション時間に少なくとも部分的に基づき、バーチャルマシーングループ210を選択的にマイグレートする。一部の実現形態では、バーチャルマシーンマイグレーションコントローラ102は、計画されたマイグレーション時間に基づき昇順に(すなわち、最短のマイグレーション時間から最長のマイグレーション時間まで)バーチャルマシーングループ210をマイグレートする。
実施例では、バーチャルマシーンマイグレーションが第1のバーチャルマシーングループ210をマイグレートした後、バーチャルマシーンマイグレーションコントローラ102は、再度残りのバーチャルマシーンを複数のバーチャルマシーングループ210に選択的にグループ化する。バーチャルマシーンマイグレーションコントローラ102は、グループ210に含まれる構成要素となるバーチャルマシーン120のうちの共有メモリページ124の有無に少なくとも部分的に基づき、残りのバーチャルマシーン120をグループ化210する。残りのバーチャルマシーン102を複数のバーチャルマシーングループ210に選択的にグループ化した後、バーチャルマシーンマイグレーションコントローラ102は、再度各バーチャルマシーングループ210について計画されたマイグレーション時間を動的に決定する。各バーチャルマシーングループ210について計画されたマイグレーション時間を動的に決定した後、バーチャルマシーンマイグレーションコントローラ102は、各バーチャルマシーングループ210について計算された計画されたマイグレーション時間に少なくとも部分的に基づき、バーチャルマシーングループ210を選択的に再度マイグレートする。バーチャルマシーンマイグレーションコントローラ102は、バーチャルマシーン120の全てが第1の物理的ホストシステム110から第2の物理的ホストシステム120にマイグレートされるまで、当該グループ化、計画されたマイグレーション時間及びマイグレート手順を繰り返し実行する。方法500は506において終了する。
図6は、本開示の少なくとも1つの実施例による例示的なライブバーチャルマシーンマイグレーション方法600のハイレベルなフロー図である。方法600では、バーチャルマシーンマイグレーションコントローラ102は、共有メモリページ124及び/又は異なるメモリページ124上の同一コンテンツへのマッピングに少なくとも部分的に基づき、バーチャルマシーン120がバーチャルマシーンペアに選択的に分配される繰り返し処理を利用する。バーチャルマシーンマイグレーションコントローラ102は、各バーチャルマシーンペアについて計画されたマイグレーション時間を決定する。バーチャルマシーンマイグレーションコントローラ102は、各バーチャルマシーンペアに含まれる各バーチャルマシーンのメモリページダーティ処理レート、各ペアに含まれるバーチャルマシーン間の共有メモリページ及び同一のコンテンツの数、及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき計画されたマイグレーション時間を決定する。バーチャルマシーンマイグレーションコントローラ102は、計画されたマイグレーション時間に基づきバーチャルマシーンペアを順序付けし、最小の計画されたマイグレーション時間を有するバーチャルマシーンペアをマイグレートする。最小の計画されたマイグレーション時間を有するバーチャルマシーンペアをマイグレートした後、バーチャルマシーンマイグレーションコントローラ102は、残りのバーチャルマシーン120を新たなバーチャルマシーンペアに再分配し、マイグレーション処理を繰り返す。方法600は602において開始される。
604において、バーチャルマシーンマイグレーションコントローラ102は、各バーチャルマシーン120からメモリワーキングセットダーティ処理レートを収集し、各バーチャルマシーン120についてメモリ動作パターンを決定する。実施例では、バーチャルマシーンマイグレーションコントローラ102は、各バーチャルマシーンの過去のダーティ処理レートを利用して、第1の物理的ホストシステム110から第2の物理的ホストシステム150への各バーチャルマシーン120にマッピングされるメモリページ124をマイグレートするのに必要なネットワーク帯域幅及び/又はマイグレーション時間を予測する。
606において、バーチャルマシーンマイグレーションコントローラ102は、バーチャルマシーンバッチライブマイグレーション中に利用されるメモリページデータ、バーチャルマシーングループデータ、ネットワーク帯域幅データ及び同様のデータを記憶するのに利用されるデータ構造を初期化する。
608において、バーチャルマシーンマイグレーションコントローラ102は、各バーチャルマシーン120の間のメモリページ共通性を評価するため、バーチャルマシーン120を複数のバーチャルマシーンペアに選択的にグループ化する。実施例では、バーチャルマシーンマイグレーションコントローラ102は、バーチャルマシーン120により共有されるメモリページコンテンツの共通性の程度を示す1つ以上の値を生成する。実施例では、バーチャルマシーンマイグレーションコントローラ102は、各種バーチャルマシーン120の間のメモリページ共通性を評価するため、図3に示されるものなどの1つ以上のデータ構造を生成する。
610において、バーチャルマシーンマイグレーションコントローラ102は、バーチャルマシーン120により共有されるメモリページコンテンツの共通性の程度に少なくとも部分的に基づき、バーチャルマシーン120をバーチャルマシーンペアにグループ化210する。実施例では、バーチャルマシーンマイグレーションコントローラ102は、バーチャルマシーン120により共有されるメモリページコンテンツの共通性の決定された程度に基づき、バーチャルマシーンペア210を順序付けする。バーチャルマシーンペア210に含まれるバーチャルマシーン120の間のメモリページコンテンツの共通性の程度の増加は、バーチャルマシーンペアがライブバッチマイグレート140される際にマイグレートされるデータ量を減少させ、これにより、マイグレーションを完了させるのに必要とされる時間及び帯域幅を効果的に減少させる。
612において、バーチャルマシーンマイグレーションコントローラ102は、ネットワーク帯域幅配分装置114から、第1の物理的ホストシステム110と第2の物理的ホストシステム150との間の所与のメモリ帯域幅を示すデータを取得する。実施例では、バーチャルマシーンマイグレーションコントローラ102は、以下の基準に基づき一緒にマイグレートするのに成功しうるバーチャルマシーンペア210を選択するため、610において決定される順序付けされたリストにおけるバーチャルマシーンペア120を繰り返す。
1.ペアに含まれるバーチャルマシーン120のページダーティ処理レート(より高いメモリページダーティ処理レートは、マイグレーション時間及び帯域幅を増加させる傾向がある。)
2.転送対象のトータル命令数 実施例では、バーチャルマシーンペア210について転送されるメモリ数は、ペア210に含まれるバーチャルマシーン120の間のメモリページの共通性の程度によって影響を受けうる(より大きなメモリページ共通性は、マイグレーション時間及び帯域幅を減少させる傾向がある。)
3.日和見的なバーチャルマシーンバッチマイグレーション バーチャルマシーンマイグレーションコントローラ102がバーチャルマシーンのワークロードがメモリダーティ処理レートの周期的な変動を示すと判断した場合、バーチャルマシーンマイグレーションコントローラ102は、ダーティ処理レートが最小値に近く付いているか、又は最小値になったとき、バーチャルマシーンペア210のマイグレーションをスケジューリングする。
ダーティ処理レートに基づき、バーチャルマシーンマイグレーションコントローラ102は、所与のネットワーク伝送速度において各バーチャルマシーンペアについて計画されたマイグレーション時間を予測する。
614において、バーチャルマシーンマイグレーションコントローラ102は、最短の計画されたマイグレーション時間を有するバーチャルマシーンペアを選択する。
616において、バーチャルマシーンマイグレーションコントローラ102は、バーチャルマシーンペア210の何れかが612において実行された解析に少なくとも部分的に基づきマイグレート成功しているか判断する。バーチャルマシーンマイグレーションコントローラ102が全ての基準を充たすバーチャルマシーンペア210を選択できない場合、方法は618に進む。バーチャルマシーンマイグレーションコントローラ102が基準を充たすバーチャルマシーンペア210を選択できる場合、方法は620に進む。
618において、何れのバーチャルマシーンペア210もマイグレートに成功しないと判断したことに応答して、バーチャルマシーンマイグレーションコントローラ102は、第1の物理的ホスト装置110から第2の物理的ホスト装置へのマイグレーションのため、最小のメモリページ共通性を有するバーチャルマシーン120を選択する。
620において、バーチャルマシーンマイグレーションコントローラ102は、最短の計画されたマイグレーション時間を有するバーチャルマシーンペア210をマイグレートする。
622において、最短のマイグレーション時間を有するバーチャルマシーンペア210のマイグレーションの成功に応答して、バーチャルマシーンマイグレーションコントローラ102は、608において生成されたデータセットからバーチャルマシーンペアを削除する。
624において、バーチャルマシーンマイグレーションコントローラ102は、全てのバーチャルマシーン120がマイグレートされたか判断する。全てのバーチャルマシーン120がマイグレートされていない場合、方法600は608に戻る。全てのバーチャルマシーン120がマイグレートされている場合、方法600は626で終了する。
図7及び以下の説明は、説明された各種実施例が実現可能なバーチャルマシーンマイグレーションコントローラ102、第1の物理的ホストシステム110及び第2の物理的ホストシステム150を有する例示的なバーチャルマシーンバッチライブマイグレーションシステム700を構成するコンポーネントの簡潔で全体的な説明を提供する。必要ではないが、実施例の一部は、バーチャルマシーンマイグレーションコントローラ102により実行されるプログラムアプリケーションモジュール、オブジェクト又はマクロなどのマシーン可読又はコンピュータ実行可能命令セットの一般的なコンテクストにおいて説明される。当業者は、説明される実施例と共に他の実施例がまた、例えば、スマートフォン、ポータブルコンピュータ、ウェアラブルコンピュータ、マイクロプロセッサベース又はプログラマブル家電機器、パーソナルコンピュータ(PC)、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどのポータブル電子又は携帯電子装置を含む他の回路ベースデバイスコンフィギュレーションにより実現可能であることを理解するであろう。実施例は、タスク又はモジュールが通信ネットワークを介しリンクされるリモート処理装置によって実行される分散計算環境において実施可能である。分散計算環境では、プログラムモジュールは、ローカルとリモートとの双方のメモリ記憶装置に配置される。
バーチャルマシーンマイグレーションコントローラ102は、マシーン可読命令を実行可能なPC、サーバ又は他の計算システムにおいて部分的又は全体的に配置される電子及び/又は半導体コンポーネントを含む1つ以上の回路の形態をとりうる。バーチャルマシーンマイグレーションコントローラ102は、1つ以上の回路712を有し、システムメモリ714を有する各種システムコンポーネントと1つ以上の回路712とを結合する通信リンク716を有することがあってもよい。バーチャルマシーンマイグレーションコントローラ102は、ここでは単数形で参照されることがあるが、特定の実施例では、複数のバーチャルマシーンマイグレーションコントローラ102又は他のネットワーク化された回路又は装置を伴うため、これは単一のシステムに実施例を限定することを意図していない。
回路712は、何れかの個数、タイプ又は組み合わせの装置を有する。時々、回路712は、ダイオード、トランジスタ、インダクタ、キャパシタ及びレジスタなどの半導体デバイスの形態で全体的又は部分的に実現される。このような実現形態は、限定することなく、1つ以上のシステム・オン・チップ(SOC)、中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、グラフィクス処理ユニット(GPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)などの何れか現在又は以降に開発されたシングル又はマルチコアプロセッサ又はマイクロプロセッサを有してもよい。特段の断りがない場合、図7に示される各種ブロックの構成及び処理は、従来の設計を有する。この結果、このようなブロックは、当業者により理解されるように、以降において詳細に説明される必要はない。例示的なバーチャルマシーンマイグレーションコントローラ102のコンポーネントの少なくとも一部を相互接続する通信リンク716は、何れか既知のバス構造又はアーキテクチャを利用してもよい。
システムメモリ714は、読み出し専用メモリ(ROM)718及びランダム・アクセス・メモリ(RAM)720を有する。ROM718の一部は、基本入出力システム(BIOS)722を含む。BIOS722は、例えば、1つ以上の回路712にバーチャルマシーンマイグレーションコントローラ102を提供及び機能させるマシーン可読命令セットをコントローラにロードさせるなどによって、バーチャルマシーンマイグレーションコントローラ102に基本的機能を提供する。バーチャルマシーンマイグレーションコントローラ102は、1つ以上の通信結合される非一時的なデータ記憶装置732を有する。1つ以上のデータ記憶装置732は、何れか現在又は以降に開発される非一時的な記憶装置を有する。このような非一時的なデータ記憶装置732の非限定的な具体例は、限定されることなく、1つ以上の磁気記憶装置、1つ以上の光記憶装置、1つ以上のソリッドステート電磁記憶装置、1つ以上の電子抵抗記憶装置、1つ以上の分子記憶装置、1つ以上の量子記憶装置又はこれらの各種組み合わせを含むものであってもよい。
1つ以上の記憶装置732は、当業者に知られるように、各記憶装置又はシステムを通信リンク716に通信結合するインタフェース又はコントローラ(図示せず)を有する。1つ以上の記憶装置732は、バーチャルマシーンマイグレーションコントローラ102に有用なマシーン可読命令セット、データ構造、プログラムモジュール及び他のデータを含む。一部の具体例では、1つ以上の外部記憶装置728は、例えば、1つ以上のテザリング又は無線ネットワークを介しバーチャルマシーンマイグレーションコントローラ102に通信結合される。
マシーン可読命令セット738及び他の命令セット740は、システムメモリ714に全体的又は部分的に記憶される。このような命令セットは、バーチャルマシーンマイグレーションコントローラ102によって実行されるとき、1つ以上の記憶装置732及び/又は1つ以上の外部記憶装置728から転送され、システムメモリ714に全体的又は部分的に記憶される。マシーン可読命令セット738は、ここに説明されるライブバーチャルマシーンマイグレーション機能及び能力を提供可能なロジックを含む。
例えば、1つ以上のマシーン可読命令セット738は、バーチャルマシーンマイグレーションコントローラ102に第1の物理的ホストシステム110上で提供される複数のバーチャルマシーン120のそれぞれのメモリワーキングセットダーティ処理レートを表すデータを収集させてもよい。1つ以上のマシーン可読命令セット738は、各バーチャルマシーン12のメモリダーティ処理レート及び/又はメモリダーティ処理レートパターンを決定するため、複数のバーチャルマシーン120のそれぞれのメモリワーキングセットダーティ処理レートを表す収集されたデータをバーチャルマシーンマイグレーションコントローラ102に解析させる。
1つ以上のマシーン可読命令セット738は、複数のバーチャルマシーン120により共有されるメモリページ124を示すデータ又は情報をバーチャルマシーンマイグレーションコントローラ102に生成させる。1つ以上のマシーン可読命令セット738は、異なるバーチャルマシーン120にマッピングされるメモリページ124の同一部分を示すデータ又は情報の少なくとも1つをバーチャルマシーンマイグレーションコントローラ102に生成させる。1つ以上のマシーン可読命令セット738は、複数の異なるバーチャルマシーン120の間のメモリページ124の共通性を示す、図3に示されるようなテーブルなどの1つ以上の論理構造をバーチャルマシーンマイグレーションコントローラ102に生成させる。
1つ以上のマシーン可読命令セット738は、第1の物理的ホストシステム110から第2の物理的ホストシステム150に複数のバーチャルマシーン120をライブ転送するため、利用可能な帯域幅を示すデータをバーチャルマシーンマイグレーションコントローラ102に収集させる。1つ以上のマシーン可読命令セット738は、マイグレーション用のバーチャルマシーングループ又はペア210を選択するため、バーチャルマシーンマイグレーションコントローラ102にバーチャルマシーングループ又はペア210を繰り返させる。
1つ以上のマシーン可読命令セット738は、各バーチャルマシーン120のダーティ処理レート、グループ又はペア210におけるバーチャルマシーン120の間で共有されるメモリページ及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、バーチャルマシーングループ又はペア210のマイグレーション時間をバーチャルマシーンマイグレーションコントローラ102に予測させる。
バーチャルマシーンマイグレーションコントローラ102のユーザは、1つ以上のテキスト入力装置751(例えば、キーボード)、1つ以上のポインティング装置752(例えば、マウス、トラックボール、タッチ画面)及び/又は1つ以上のオーディオ入力装置753などの1つ以上の通信結合される物理的な入力装置750を利用して、バーチャルマシーンマイグレーションコントローラ102に情報(例えば、対象者識別情報、カラーパラメータ)と共にコマンド(例えば、アクノリッジメント、選択、確認など)を提供又は供給する。物理的入力装置750の一部又は全てはバーチャルマシーンマイグレーションコントローラ102に物理及び通信結合される。例えば、一例となるバーチャルマシーンマイグレーションコントローラ102は、タッチ画面751などの複数の物理的入力装置750を提供するタッチ画面ユーザインタフェースを含むものであってもよい。
バーチャルマシーンマイグレーションコントローラ102のユーザは、1つ以上の物理的出力装置754を介し出力を生成する。少なくとも一部の実現形態では、物理的出力装置754は、限定することなく、1つ以上のディスプレイ装置755、1つ以上の触覚出力装置756、1つ以上のオーディオ出力装置757又はこれらの何れかの組み合わせを含む。物理的入力装置750の一部又は全て及び物理的出力装置754の一部又は全ては、1つ以上の有線又は無線インタフェースを介しバーチャルマシーンマイグレーションコントローラ102に通信結合される。
便宜上、ネットワークインタフェース760、1つ以上の回路712、システムメモリ714、物理的入力装置750及び物理的出力装置754は、通信リンク716を介し互いに通信結合されるように示され、これにより、上述したコンポーネントの間の接続性を提供する。他の実施例では、上述したコンポーネントは、図7に示されたものと異なる方式で通信結合される。例えば、上述したコンポーネントの1つ以上は他のコンポーネントと直接的に結合されるか、あるいは、1つ以上の中間コンポーネント(図示せず)を介し互いに結合されてもよい。一部の実施例では、通信リンク716は省略され、コンポーネントは適切な有線又は無線接続を用いて互いに直接的に結合される。
第1の物理的ホスト装置110は、1つ以上のマシーン可読命令セットを実行可能な1つ以上の回路768Aを有する。時々、マシーン可読命令セットの一部又は全ては、第1の物理的ホスト装置110内のシステムメモリ769Aに記憶又は保持される。システムメモリ769Aは、読み出し専用メモリ(ROM)770A、ランダム・アクセス・メモリ772A又はこれらの組み合わせを有する。第1の物理的ホスト装置のBIOS771Aは、ROM770Aの少なくとも一部を占有、保持又は記憶される。
第1の物理的ホスト装置110はまた、1つ以上の記憶装置773Aを有する。時々、1つ以上の記憶装置773Aは、限定することなく、第1の物理的ホスト装置110に全体的又は部分的に配置されるソリッドステート記憶装置、回転媒体記憶装置、静電気記憶装置、電気抵抗記憶装置又はこれらの組み合わせを含む。時々、第1の物理的ホスト装置110は、クラウドベースラック搭載サーバコンピュータシステムを有する。時々、1つ以上の記憶装置773Aは、例えば、1つ以上のホットスワップ可能なハードドライブ又は同様のストレージ機器などの1つ以上のタイプの着脱可能媒体774Aを有する。
第1の物理的ホスト装置110はまた、1つ以上のユーザインタフェース775Aを有する。1つ以上のユーザインタフェース775Aは、1つ以上のユーザ入力装置776Aを有する。例えば、非限定的なユーザ入力装置776Aは、限定することなく、1つ以上のポインタ、1つ以上のテキスト入力装置、1つ以上のオーディオ入力装置、1つ以上のタッチ画面入力装置又はこれらの組み合わせを含む。1つ以上のユーザインタフェース775Aは、代わりに又はさらに、1つ以上のユーザ出力装置777Aを有する。例えば、非限定的なユーザ出力装置777Aは、限定することなく、1つ以上の視覚出力装置、1つ以上の触覚出力装置、1つ以上のオーディオ出力装置又はこれらの組み合わせを含む。
第1の物理的ホストシステム110は、1つ以上のネットワークインタフェース778Aを有する。1つ以上のネットワークインタフェース778Aは、何れか現在又は以降のテザリングインタフェース(例えば、バックプレーン、イーサネット(登録商標)など)又は無線ネットワークインタフェース(例えば、WiFi、IEEE802.11)を含む。1つ以上のネットワークインタフェース778Aは、時々、第1の物理的ホストシステム110とバーチャルマシーンマイグレーションコントローラ102とを通信結合する。
1つ以上の回路768Aは、1つ以上のマシーン可読命令セットを実行するよう構成される1つ以上のシングル又はマルチコアプロセッサ又はマイクロプロセッサを有する。1つ以上の回路768Aは、1つ以上のマイクロプロセッサ、RISC(Reduced Instruction Set Computer)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、システム・オン・チップ(SoC)などを有する。
システムメモリ769Aは、基本入出力システム(BIOS)、ブートシーケンス、ファームウェア、スタートアップルーチンなどの全て又は一部を記憶する。システムメモリ769Aは、初期的な電源オンに応答して、1つ以上の回路768Aにより実行されるバーチャルマシーンマイグレーションコントローラ102のオペレーティングシステム(例えば、iOS(登録商標)、Android(登録商標)、Windows(登録商標) Phone、Windows(登録商標) 10など)の全て又は一部を記憶する。
第2の物理的ホスト装置150は、1つ以上のマシーン可読命令セットを実行可能な1つ以上の回路768Bを有する。時々、マシーン可読命令セットの一部又は全ては、第2の物理的ホスト装置150内のシステムメモリ769Bに記憶又は保持される。システムメモリ769Bは、読み出し専用メモリ(ROM)770B、ランダム・アクセス・メモリ722B又はこれらの組み合わせを有する。第2の物理的ホスト装置のBIOS771Bは、ROM770Bの少なくとも一部を占有、保持又は記憶する。
第2の物理的ホスト装置150はまた、1つ以上の記憶装置773Bを有する。時々、1つ以上の記憶装置773Bは、限定することなく、第2の物理的ホスト装置150に全体的又は部分的に配置されるソリッドステート記憶装置、回転媒体記憶装置、静電気記憶装置、電気抵抗記憶装置又はこれらの組み合わせを有する。時々、第2の物理的ホスト装置150は、クラウドベースラック搭載サーバコンピュータシステムを有する。時々、1つ以上の記憶装置773Bは、例えば、1つ以上のホットスワップ可能なハードドライブ又は同様のストレージ機器などの1つ以上のタイプの着脱可能な媒体774Bを有する。
第2の物理的ホスト装置150はまた、1つ以上のユーザインタフェース775Bを有する。1つ以上のユーザインタフェース775Bは、1つ以上のユーザ入力装置776Bを有する。例えば、非限定的なユーザ入力装置776Bは、限定することなく、1つ以上のポインタ、1つ以上のテキスト入力装置、1つ以上のオーディオ入力装置、1つ以上のタッチ画面入力装置又はこれらの組み合わせを含む。1つ以上のユーザインタフェース775Bは、代わりに又はさらに、1つ以上のユーザ出力装置777Bを有する。例えば、非限定的なユーザ出力装置777Bは、限定することなく、1つ以上の視角出力装置、1つ以上の触覚出力装置、1つ以上のオーディオ出力装置又はこれらの組み合わせを有する。
第2の物理的ホスト装置150は、1つ以上のネットワークインタフェース778Bを有する。1つ以上のネットワークインタフェース778Bは、何れか現在又は以降のテザリングインタフェース(例えば、バックプレーン、イーサネット(登録商標)など)又は無線ネットワークインタフェース(例えば、WiFi、IEEE802.11)を有する。1つ以上のネットワークインタフェース778Bは、時々、第2の物理的ホスト装置150とバーチャルマシーンマイグレーションコントローラ102とを通信結合する。
1つ以上の回路768Bは、1つ以上のマシーン可読命令セットを実行するよう構成される1つ以上のシングル又はマルチコアプロセッサ又はマイクロプロセッサを有する。1つ以上の回路768Bは、1つ以上のマイクロプロセッサ、RISC(Reduced Instruction Set Computer)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、システム・オン・チップ(SoC)などを有する。
システムメモリ769Bは、基本入出力システム(BIOS)、ブートシーケンス、ファームウェア、スタートアップルーチンなどの全て又は一部を記憶する。システムメモリ769Bは、初期的な電源オンに応答して、1つ以上の回路768Aにより実行されるバーチャルマシーンマイグレーションコントローラ102のオペレーティングシステム(例えば、iOS(登録商標)、Android(登録商標)、Windows(登録商標) Phone、Windows(登録商標) 10など)の全て又は一部を記憶する。
以下の具体例は更なる実施例に関する。本開示の以下の具体例は、第1の物理的ホストシステム110から第2の物理的ホストシステム150への複数のバーチャルマシーン120のライブマイグレーションを実現する装置、システム及び方法などの主題を有する。
具体例1によると、第1の物理的ホストから第2の物理的ホストに複数のバーチャルマシーンをライブマイグレートするシステムが提供される。当該システムは、第1の物理的ホスト及び第2の物理的ホストに通信結合される少なくとも1つのネットワークインタフェースと、少なくとも1つのネットワークインタフェースに通信結合される少なくとも1つの回路とを有する。当該システムは更に、少なくとも1つの回路に通信結合される少なくとも1つの記憶装置を有し、少なくとも1つの記憶装置は、実行されると、回路の少なくとも一部にバーチャルマシーンマイグレーションコントローラを提供させるマシーン可読命令を有し、バーチャルマシーンマイグレーションコントローラは、第1のホストシステム上にある複数のバーチャルマシーンの各バーチャルマシーンについて、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定するステップと、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、各バーチャルマシーングループの各バーチャルマシーンは、第1の物理的ホスト上の同一のメモリページコンテンツ部分にアクセスする、グループ化するステップと、各バーチャルマシーングループにおけるバーチャルマシーンによりアクセスされる同一のメモリページコンテンツ部分の1つのマイグレーション、第1の物理的ホストから第2の物理的ホストに各バーチャルマシーングループをマイグレートするのに利用可能な帯域幅、及び各バーチャルマシーングループに含まれるバーチャルマシーンのそれぞれに論理的に関連するメモリページダーティ処理レートを示す値に少なくとも部分的に基づき、各バーチャルマシーングループをマイグレートするための時間を動的に予測するステップとを実行する。
具体例2は、具体例1の要素を含み、マシーン可読命令は更に、第1の物理的ホストから第2の物理的ホストに複数のバーチャルマシーングループのそれぞれを選択的にマイグレートするステップであって、バーチャルマシーングループのマイグレーションは、利用可能な帯域幅において各バーチャルマシーングループをマイグレートするのに予測される時間に少なくとも部分的に基づく順序で実行される、マイグレートするステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例3は、具体例1の要素を含み、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、規定された時間間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す値を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例4は、具体例3の要素を含み、規定された過去の時間間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す値を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、60分の間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す過去の値を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例5は、具体例1の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のバーチャルマシーンペアを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にペアリングするステップであって、各バーチャルマシーンペアにおける各バーチャルマシーンは、少なくとも1つの同一のメモリページコンテンツ部分にアクセスする、ペアリングするステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例6は、具体例1の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、各バーチャルマシーングループにおける各バーチャルマシーンが少なくとも1つの共通のメモリページにアクセスするように、バーチャルマシーンを選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例7は、具体例1の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも1つにアクセスするように、バーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、複数のメモリページのそれぞれは少なくとも部分的に同一のコンテンツを含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例8は、具体例7の要素を含み、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも1つにアクセスするように、バーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、複数のメモリページのそれぞれは少なくとも部分的に同一のコンテンツを含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも2つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも2つのメモリページについて、少なくとも2つのページのそれぞれに含まれる同一のコンテンツを特定するステップとをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例9は、具体例1の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも1つにアクセスするように、バーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、複数のメモリページのそれぞれは少なくとも部分的に同一のコンテンツを含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例10は、具体例9の要素を含み、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも1つにアクセスするように、バーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、複数のメモリページのそれぞれは少なくとも部分的に同一のコンテンツを含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきフィンガープリント値を決定するステップと、複数のメモリページにおける少なくとも2つの候補となる同一のメモリページを特定するため、フィンガープリント値を比較するステップと、バイト毎に少なくとも2つの候補となる同一のメモリページのそれぞれを比較するステップと、バイト毎の比較に少なくとも部分的に基づき複数のメモリページ内の同一のコンテンツを有する少なくとも2つのメモリページを特定するステップとバーチャルマシーンマイグレーションコントローラに実行させる。
具体例11によると、バーチャルマシーンマイグレーションシステムが提供される。当該システムは、少なくとも1つのコントローラ回路と、少なくとも1つのコントローラ回路に通信結合される少なくとも1つの記憶装置とを有し、少なくとも1つの記憶装置は、少なくとも1つのコントローラ回路によって実行されると、少なくとも1つのコントローラ回路にバーチャルマシーンマイグレーションコントローラを提供させる。バーチャルマシーンマイグレーションコントローラは、第1のホストシステム上にある複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップと、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは少なくとも1つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含む、グループ化するステップと、少なくとも1つの同一のメモリページコンテンツ部分、各グループに含まれるバーチャルマシーンのそれぞれのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、第1のホストシステムから第2のホストシステムに複数のバーチャルマシーングループのそれぞれをマイグレートするために計画されるマイグレーション時間を決定するステップとを実行する。
具体例12は、具体例11の要素を含み、マシーン実行可能命令は更に、バーチャルマシーンマイグレーションコントローラによる複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例13は、具体例12の要素を含み、複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、複数のバーチャルマシーングループのそれぞれの計画されたマイグレーション時間に少なくとも部分的に基づき、複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例14は、マシーン実行可能命令は更に、利用可能な帯域幅において各バーチャルマシーングループをマイグレートするのに予想される時間に少なくとも部分的に基づく順序で第1のホストシステムから第2のホストシステムに複数のバーチャルマシーングループのそれぞれを選択的にマイグレートするステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例15は、具体例11の要素を含み、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、規定された時間間隔にわたってバーチャルマシーンのそれぞれによる過去のページダーティ処理に基づき、バーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例16は、具体例11の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、複数のバーチャルマシーンのそれぞれを複数のバーチャルマシーンペアの1つに選択的にグループ化するステップであって、各バーチャルマシーンペアにおける各バーチャルマシーンは少なくとも1つの同一のメモリページコンテンツ部分にアクセスする、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例17は、具体例11〜16の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは少なくとも1つの共通のメモリページに以前にアクセスしたバーチャルマシーンを含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例18は、具体例11〜16の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも1つに以前にアクセスしたバーチャルマシーンを含み、複数のメモリページのそれぞれは、同一のメモリページコンテンツ部分を少なくとも部分的に含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例19は、具体例18の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも2つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも2つのメモリページについて、少なくとも2つのページのそれぞれに含まれる同一のコンテンツを特定するステップとをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例20は、具体例11〜16の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも1つに以前にアクセスしたバーチャルマシーンを含み、複数のメモリページのそれぞれは、同一のメモリページコンテンツを有する、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例21は、具体例20の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも2つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも2つのメモリページについて、少なくとも2つのページのそれぞれに含まれる同一のコンテンツを特定するステップとをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例22によると、ライブバーチャルマシーンマイグレーション方法が提供される。当該方法は、複数のバーチャルマシーンの各バーチャルマシーンについて、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定するステップと、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップであって、各バーチャルマシーングループの各バーチャルマシーンは、同一のメモリページコンテンツ部分にアクセスする、グループ化するステップとを有する。当該方法は更に、各バーチャルマシーングループについて、各バーチャルマシーングループにおけるバーチャルマシーンによりアクセスされる同一のメモリページコンテンツ部分の1つのマイグレーション、各バーチャルマシーングループをマイグレートするのに利用可能な帯域幅、及び各バーチャルマシーングループに含まれるバーチャルマシーンのそれぞれに論理的に関連するメモリページダーティ処理レートを示す値に少なくとも部分的に基づき、各バーチャルマシーングループをマイグレートするための時間を動的に予測するステップを有する。
具体例23は、具体例22の要素を含み、当該方法は更に、利用可能な帯域幅において各バーチャルマシーングループをマイグレートするのに予測される時間に少なくとも部分的に基づく順序で複数のバーチャルマシーングループのそれぞれを選択的にマイグレートするステップを有する。
具体例24は、具体例22の要素を含み、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定するステップは、規定された過去の時間間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す値を決定するステップを有する。
具体例25は、具体例24の要素を含み、規定された過去の時間間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す値を決定するステップは、60分の間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す過去の値を決定するステップを有する。
具体例26は、具体例22の要素を含み、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップは、複数のバーチャルマシーンペアを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にペアリングするステップであって、各バーチャルマシーンペアにおける各バーチャルマシーンは、少なくとも1つの同一のメモリページコンテンツ部分にアクセスする、ペアリングするステップを有する。
具体例27は、具体例22の要素を含み、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップであって、各バーチャルマシーングループにおける各バーチャルマシーンが少なくとも1つの同一のメモリページコンテンツ部分にアクセスする、グループ化するステップは、各バーチャルマシーングループにおける各バーチャルマシーンが少なくとも1つの共通のメモリページにアクセスするように、バーチャルマシーンを選択的にグループ化するステップを有する。
具体例28は、具体例22の要素を含み、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップであって、各バーチャルマシーングループにおける各バーチャルマシーンが少なくとも1つの同一のメモリページコンテンツ部分にアクセスする、グループ化するステップは、各バーチャルマシーングループにおける各バーチャルマシーンが同一のメモリページコンテンツを有する複数のメモリページの少なくとも1つにアクセスするように、バーチャルマシーンを選択的にグループ化するステップを有する。
具体例29は、具体例28の要素を含み、各バーチャルマシーングループにおける各バーチャルマシーンが同一のメモリページコンテンツを有する複数のメモリページの少なくとも1つにアクセスするように、バーチャルマシーンを選択的にグループ化するステップは、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも2つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも2つのメモリページについて、少なくとも2つのページのそれぞれに含まれる同一のコンテンツを特定するステップとを有する。
具体例30は、具体例22の要素を含み、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化するステップであって、各バーチャルマシーングループにおける各バーチャルマシーンが少なくとも1つの同一のメモリページコンテンツ部分にアクセスする、グループ化するステップは、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも1つにアクセスするように、バーチャルマシーンを選択的にグループ化するステップであって、複数のメモリページのそれぞれが、少なくとも部分的に同一のコンテンツを有する、グループ化するステップを有する。
具体例31は、具体例30の要素を含み、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも1つにアクセスするように、バーチャルマシーンを選択的にグループ化するステップであって、複数のメモリページのそれぞれは少なくとも部分的に同一のコンテンツを含む、グループ化するステップは、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきフィンガープリント値を決定するステップと、複数のメモリページにおける少なくとも2つの候補となる同一のメモリページを特定するため、フィンガープリント値を比較するステップと、バイト毎に少なくとも2つの候補となる同一のメモリページのそれぞれを比較するステップと、バイト毎の比較に少なくとも部分的に基づき複数のメモリページ内の同一のコンテンツを有する少なくとも2つのメモリページを特定するステップとを有する。
具体例32によると、ライブバーチャルマシーンマイグレーション方法が提供される。当該方法は、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップを有する。当該方法は更に、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは少なくとも1つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含む、グループ化するステップを有する。当該方法は更に、バーチャルマシーンマイグレーションコントローラが、少なくとも1つの同一のメモリページコンテンツ部分、各グループに含まれるバーチャルマシーンのそれぞれのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、複数のバーチャルマシーングループのそれぞれの計画されるマイグレーション時間を決定するステップを有する。
具体例33は、具体例32の要素を含み、当該方法は、バーチャルマシーンマイグレーションコントローラによる複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップを更に有する。
具体例34は、具体例33の要素を含み、当該方法は、複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップは、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループのそれぞれの計画されたマイグレーション時間に少なくとも部分的に基づき、複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップを有する。
具体例35は、具体例33の要素を含み、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップは、バーチャルマシーンマイグレーションコントローラが、規定された時間間隔にわたってバーチャルマシーンのそれぞれによる過去のページダーティ処理に基づき、バーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップを有する。
具体例36は、具体例32の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップは、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーンのそれぞれを複数のバーチャルマシーンペアの1つに選択的にグループ化するステップであって、各バーチャルマシーンペアにおける各バーチャルマシーンは少なくとも1つの同一のメモリページコンテンツ部分にアクセスする、グループ化するステップを有する。
具体例37は、具体例32〜36の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップは、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは少なくとも1つの共通のメモリページに以前にアクセスしたバーチャルマシーンを含む、グループ化するステップを有する。
具体例38は、具体例32〜36の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップは、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも1つに以前にアクセスしたバーチャルマシーンを含み、複数のメモリページのそれぞれは、同一のメモリページコンテンツ部分を少なくとも部分的に含む、グループ化するステップを有する。
具体例39は、具体例38の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップは、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも2つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも2つのメモリページについて、少なくとも2つのページのそれぞれに含まれる同一のコンテンツを特定するステップとを有する。
具体例40は、具体例32〜36の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップは、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも1つに以前にアクセスしたバーチャルマシーンを含み、複数のメモリページのそれぞれは、同一のメモリページコンテンツを有する、グループ化するステップを有する。
具体例41は、具体例40の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップは、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも2つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも2つのメモリページについて、少なくとも2つのページのそれぞれに含まれる同一のコンテンツを特定するステップとを有する。
具体例42によると、ライブバーチャルマシーンマイグレーションシステムが提供される。当該システムは、複数のバーチャルマシーンにおける各バーチャルマシーンについて、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定する手段を有する。当該システムは更に、複数のバーチャルマシーングループを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化する手段であって、各バーチャルマシーングループにおける各バーチャルマシーンは同一のメモリページコンテンツ部分にアクセスする、グループ化する手段を有する。当該システムは更に、各バーチャルマシーングループについて、各バーチャルマシーングループにおけるバーチャルマシーンによりアクセスされる同一のメモリページコンテンツ部分の1つのマイグレーション、各バーチャルマシーングループをマイグレートするのに利用可能な帯域幅及び各バーチャルマシーングループに含まれるバーチャルマシーンのそれぞれに論理的に関連するメモリページダーティ処理レートを示す値に少なくとも部分的に基づき、各バーチャルマシーングループをマイグレートするための時間を動的に予測する手段を有する。
具体例43は、具体例42の要素を含み、当該システムは、利用可能な帯域幅において各バーチャルマシーングループをマイグレートするのに予測される時間に少なくとも部分的に基づく順序で複数のバーチャルマシーングループのそれぞれを選択的にマイグレートする手段を更に有する。
具体例44は、具体例42の要素を含み、各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定する手段は、規定された過去の時間間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す値を決定する手段を有する。
具体例45は、具体例44の要素を含み、規定された過去の時間間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す値を決定する手段は、60分の間隔にわたって各バーチャルマシーンのメモリページダーティ処理レートを示す過去の値を決定する手段を有する。
具体例46は、具体例42の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化する手段は、複数のバーチャルマシーンペアを提供するため、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にペアリングする手段であって、各バーチャルマシーンペアにおける各バーチャルマシーンは少なくとも1つの同一のメモリページコンテンツ部分にアクセスする、ペアリングする手段を有する。
具体例47は、具体例42の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化する手段は、各バーチャルマシーングループにおける各バーチャルマシーンが少なくとも1つの共通のメモリページにアクセスするように、バーチャルマシーンを選択的にグループ化する手段を有する。
具体例48は、具体例42の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化する手段は、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも1つにアクセスするように、バーチャルマシーンを選択的にグループ化する手段であって、複数のバーチャルマシーンのそれぞれは少なくとも部分的に同一のコンテンツを有する、グループ化する手段を有する。
具体例49は、具体例48の要素を含み、各バーチャルマシーングループにおける各バーチャルマシーンが複数のメモリページの少なくとも1つにアクセスするように、バーチャルマシーンを選択的にグループ化する手段であって、複数のバーチャルマシーンのそれぞれは少なくとも部分的に同一のコンテンツを有する、グループ化する手段は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定する手段と、類似のハッシュ値を有する複数のメモリページ内の少なくとも2つのメモリページを検出する手段と、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも2つのメモリページの少なくとも2つのページのそれぞれに含まれる同一のコンテンツを特定する手段とを有する。
具体例50は、具体例48の要素を含み、複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化する手段は、各バーチャルマシーングループにおける各バーチャルマシーンが同一のメモリページコンテンツを有する複数のメモリページの少なくとも1つにアクセスするように、バーチャルマシーンを選択的にグループ化する手段を有する。
具体例51は、具体例50の要素を含み、各バーチャルマシーングループにおける各バーチャルマシーンが同一のメモリページコンテンツを有する複数のメモリページの少なくとも1つにアクセスするように、バーチャルマシーンを選択的にグループ化する手段は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきフィンガープリント値を決定する手段と、複数のメモリページにおける少なくとも2つの候補となる同一のメモリページを特定するため、フィンガープリント値を比較する手段と、バイト毎に少なくとも2つの候補となる同一のメモリページのそれぞれを比較する手段と、バイト毎の比較に少なくとも部分的に基づき複数のメモリページ内の同一のコンテンツを有する少なくとも2つのメモリページを特定する手段とを有する。
具体例52によると、ライブバーチャルマシーンマイグレーションシステムが提供される。当該システムは、第1のホストシステム上に実現される複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定する手段を有する。当該システムは更に、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段を有し、各バーチャルマシーングループは、少なくとも1つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを有する。当該システムは更に、少なくとも1つの同一のメモリページコンテンツ部分、各グループに含まれるバーチャルマシーンのそれぞれのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき複数のバーチャルマシーングループのそれぞれの計画されたマイグレーション時間を決定する手段を有する。
具体例53は、具体例52の要素を含み、当該システムは更に、バーチャルマシーンマイグレーションコントローラによる複数のバーチャルマシーンのそれぞれのマイグレーション順序を決定する手段を有する。
具体例54は、具体例53の要素を含み、複数のバーチャルマシーンのそれぞれのマイグレーション順序を決定する手段は、複数のバーチャルマシーングループのそれぞれの計画されたマイグレーション時間に少なくとも部分的に基づき複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定する手段を有する。
具体例55は、具体例53の要素を含み、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定する手段は、規定された時間間隔にわたってバーチャルマシーンのそれぞれによる過去のページダーティ処理に基づき各バーチャルマシーンのページダーティ処理レートを決定する手段を有する。
具体例56は、具体例52の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段は、複数のバーチャルマシーンのそれぞれを複数のバーチャルマシーンペアの1つに選択的にグループ化する手段を有し、各バーチャルマシーンペアにおける各バーチャルマシーンは少なくとも1つの同一のメモリページコンテンツ部分にアクセスする。
具体例57は、具体例52〜56の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段は、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段を有し、各バーチャルマシーングループは、少なくとも1つの共通のメモリページに以前にアクセスしたバーチャルマシーンを含む。
具体例58は、具体例52〜56の何れかの要素を有し、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段は、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段を有し、各バーチャルマシーングループは、複数のメモリページの少なくとも1つに以前にアクセスしたバーチャルマシーンを有し、複数のメモリページのそれぞれは少なくとも部分的に同一のメモリページコンテンツ部分を有する。
具体例59は、具体例58の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定する手段と、類似のハッシュ値を有する複数のメモリページ内の少なくとも2つのメモリページを検出する手段と、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも2つのメモリページの少なくとも2つのページのそれぞれに含まれる同一のコンテンツを特定する手段とを有する。
具体例60は、具体例52〜56の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段は、バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段を有し、バーチャルマシーングループのそれぞれは複数のメモリページの少なくとも1つに以前にアクセスしたバーチャルマシーンを有し、複数のメモリページのそれぞれは同一のメモリページコンテンツを有する。
具体例61は、具体例60の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化する手段は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定する手段と、類似のハッシュ値を有する複数のメモリページ内の少なくとも2つのメモリページを検出する手段と、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも2つのメモリページの少なくとも2つのページに含まれる同一のコンテンツを特定する手段とを有する。
具体例62によると、回路によって実行されると、回路にバーチャルマシーンマイグレーションコントローラを提供させるマシーン可読命令を有する記憶装置が提供される。バーチャルマシーンコントローラは、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップと、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは少なくとも1つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含む、グループ化するステップと、少なくとも1つの同一のメモリページコンテンツ部分、各グループに含まれるバーチャルマシーンのそれぞれのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、複数のバーチャルマシーングループのそれぞれの計画されるマイグレーション時間を決定するステップとを有する。
具体例63は、具体例62の要素を含み、バーチャルマシーンマイグレーションコントローラにより実行されると、複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令を更に有する。
具体例64は、具体例63の要素を含み、複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のバーチャルマシーングループのそれぞれの計画されたマイグレーション時間に少なくとも部分的に基づき、複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定するステップをバーチャルマシーンマイグレーションコントローラに更に実行させる。
具体例65は、具体例63の要素を含み、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、規定された時間間隔にわたってバーチャルマシーンのそれぞれによる過去のページダーティ処理に基づき、バーチャルマシーンのそれぞれのページダーティ処理レートを決定するステップをバーチャルマシーンマイグレーションコントローラに更に実行させる。
具体例66は、具体例62の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のバーチャルマシーンのそれぞれを複数のバーチャルマシーンペアの1つに選択的にグループ化するステップであって、各バーチャルマシーンペアにおける各バーチャルマシーンは少なくとも1つの同一のメモリページコンテンツ部分にアクセスする、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例67は、具体例62〜66の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは少なくとも1つの共通のメモリページに以前にアクセスしたバーチャルマシーンを含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例68は、具体例62〜66の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも1つに以前にアクセスしたバーチャルマシーンを含み、複数のメモリページのそれぞれは、同一のメモリページコンテンツ部分を少なくとも部分的に含む、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例69は、具体例68の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも2つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも2つのメモリページについて、少なくとも2つのページのそれぞれに含まれる同一のコンテンツを特定するステップとをバーチャルマシーンマイグレーションコントローラに更に実行させる。
具体例70は、具体例62〜66の何れかの要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップであって、バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも1つに以前にアクセスしたバーチャルマシーンを含み、複数のメモリページのそれぞれは、同一のメモリページコンテンツを有する、グループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例71は、具体例70の要素を含み、複数のバーチャルマシーングループを構成するため、複数のバーチャルマシーンの少なくとも一部を選択的にグループ化するステップをバーチャルマシーンマイグレーションコントローラに実行させるマシーン可読命令は、複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定するステップと、類似のハッシュ値を有する複数のメモリページ内の少なくとも2つのメモリページを検出するステップと、類似のハッシュ値を有する複数のメモリページ内の検出された少なくとも2つのメモリページについて、少なくとも2つのページのそれぞれに含まれる同一のコンテンツを特定するステップとをバーチャルマシーンマイグレーションコントローラに実行させる。
具体例72によると、第1のホストシステムから第2のホストシステムに複数のバーチャルマシーンをマイグレートするシステムであって、具体例32〜41の何れかの方法を実行するよう構成されるシステムが提供される。
具体例73によると、具体例32〜41の何れかの方法を実行するよう構成されるチップセットが提供される。
具体例74によると、計算装置上で実行されたことに応答して、具体例32〜41の何れかによる方法を計算装置に実行させる複数の命令を有する少なくとも1つのマシーン可読媒体が提供される。
具体例75によると、第1のホストシステムから第2のホストシステムに複数のバーチャルマシーンをマイグレートするよう構成される装置であって、具体例32〜41の何れかの方法を実行するよう構成される装置が提供される。
ここで用いられた用語及び表現は、限定のためでなく説明のために利用され、当該用語及び表現を使用する際、図示及び説明された特徴の何れかの均等(又はその一部)を排除することを意図しておらず、各種改良が請求項の範囲内で可能であることが認識される。従って、請求項はこのような全ての均等をカバーすることが意図される。

Claims (24)

  1. ライブバーチャルマシーンマイグレーションシステムであって、
    少なくとも1つのコントローラ回路と、
    前記少なくとも1つのコントローラ回路に通信結合される少なくとも1つの記憶装置と、
    を有し、
    前記少なくとも1つの記憶装置は、前記少なくとも1つのコントローラ回路によって実行されると、前記少なくとも1つのコントローラ回路にバーチャルマシーンマイグレーションコントローラを提供させるマシーン実行可能命令を有し、
    前記バーチャルマシーンマイグレーションコントローラは、
    第1のホストシステム上にある複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定することと、
    複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは少なくとも1つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含む、グループ化することと、
    前記少なくとも1つの同一のメモリページコンテンツ部分、各グループに含まれる前記バーチャルマシーンのそれぞれのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、前記第1のホストシステムから第2のホストシステムに前記複数のバーチャルマシーングループのそれぞれをマイグレートするために計画されるマイグレーション時間を決定することと、
    を実行するシステム。
  2. 前記マシーン実行可能命令は更に、
    前記バーチャルマシーンマイグレーションコントローラによる前記複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定することを前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項1記載のライブバーチャルマシーンマイグレーションシステム。
  3. 前記複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
    前記複数のバーチャルマシーングループのそれぞれの計画されたマイグレーション時間に少なくとも部分的に基づき、前記複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定することを前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項2記載のライブバーチャルマシーンマイグレーションシステム。
  4. 前記複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
    規定された時間間隔にわたって前記バーチャルマシーンのそれぞれによる過去のページダーティ処理に基づき、前記バーチャルマシーンのそれぞれのページダーティ処理レートを決定することを前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項1記載のライブバーチャルマシーンマイグレーションシステム。
  5. 前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
    前記複数のバーチャルマシーンのそれぞれを複数のバーチャルマシーンペアの1つに選択的にグループ化することであって、各バーチャルマシーンペアにおける各バーチャルマシーンは少なくとも1つの同一のメモリページコンテンツ部分にアクセスする、グループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項1記載のライブバーチャルマシーンマイグレーションシステム。
  6. 前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
    複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは少なくとも1つの共通のメモリページに以前にアクセスしたバーチャルマシーンを含む、グループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項1乃至何れか一項記載のライブバーチャルマシーンマイグレーションシステム。
  7. 前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
    複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも1つに以前にアクセスしたバーチャルマシーンを含み、前記複数のメモリページのそれぞれは、前記同一のメモリページコンテンツ部分を少なくとも部分的に含む、グループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項1乃至何れか一項記載のライブバーチャルマシーンマイグレーションシステム。
  8. 前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
    前記複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定することと、
    類似のハッシュ値を有する前記複数のメモリページ内の少なくとも2つのメモリページを検出することと、
    前記類似のハッシュ値を有する前記複数のメモリページ内の検出された少なくとも2つのメモリページについて、前記少なくとも2つのページのそれぞれに含まれる同一のコンテンツを特定することと、
    を前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項記載のライブバーチャルマシーンマイグレーションシステム。
  9. 前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
    複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも1つに以前にアクセスしたバーチャルマシーンを含み、前記複数のメモリページのそれぞれは、同一のメモリページコンテンツを有する、グループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項1乃至何れか一項記載のライブバーチャルマシーンマイグレーションシステム。
  10. 前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することを前記バーチャルマシーンマイグレーションコントローラに実行させるマシーン実行可能命令は更に、
    前記複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定することと、
    類似のハッシュ値を有する前記複数のメモリページ内の少なくとも2つのメモリページを検出することと、
    前記類似のハッシュ値を有する前記複数のメモリページ内の検出された少なくとも2つのメモリページについて、前記少なくとも2つのページのそれぞれに含まれる同一のコンテンツを特定することと、
    を前記バーチャルマシーンマイグレーションコントローラに実行させる、請求項記載のライブバーチャルマシーンマイグレーションシステム。
  11. ライブバーチャルマシーンマイグレーション方法であって、
    バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定することと、
    前記バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは少なくとも1つの同一のメモリページコンテンツ部分に以前にアクセスしたバーチャルマシーンを含む、グループ化することと、
    前記バーチャルマシーンマイグレーションコントローラが、前記少なくとも1つの同一のメモリページコンテンツ部分、各グループに含まれる前記バーチャルマシーンのそれぞれのページダーティ処理レート及び利用可能なネットワーク帯域幅に少なくとも部分的に基づき、前記複数のバーチャルマシーングループのそれぞれの計画されるマイグレーション時間を決定することと、
    を有する方法。
  12. 前記バーチャルマシーンマイグレーションコントローラによる前記複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定することを更に有する、請求項11記載のライブバーチャルマシーンマイグレーション方法。
  13. 前記複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定することは、
    前記バーチャルマシーンマイグレーションコントローラが、前記複数のバーチャルマシーングループのそれぞれの計画されたマイグレーション時間に少なくとも部分的に基づき、前記複数のバーチャルマシーングループのそれぞれのマイグレーション順序を決定することを有する、請求項12記載のライブバーチャルマシーンマイグレーション方法。
  14. 前記複数のバーチャルマシーンのそれぞれのページダーティ処理レートを決定することは、
    前記バーチャルマシーンマイグレーションコントローラが、規定された時間間隔にわたって前記バーチャルマシーンのそれぞれによる過去のページダーティ処理に基づき、前記バーチャルマシーンのそれぞれのページダーティ処理レートを決定することを有する、請求項12記載のライブバーチャルマシーンマイグレーション方法。
  15. 前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することは、
    前記バーチャルマシーンマイグレーションコントローラが、前記複数のバーチャルマシーンのそれぞれを複数のバーチャルマシーンペアの1つに選択的にグループ化することであって、各バーチャルマシーンペアにおける各バーチャルマシーンは少なくとも1つの同一のメモリページコンテンツ部分にアクセスする、グループ化することを有する、請求項11記載のライブバーチャルマシーンマイグレーション方法。
  16. 前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することは、
    前記バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは少なくとも1つの共通のメモリページに以前にアクセスしたバーチャルマシーンを含む、グループ化することを有する、請求項11乃至15何れか一項記載のライブバーチャルマシーンマイグレーション方法。
  17. 前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することは、
    前記バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも1つに以前にアクセスしたバーチャルマシーンを含み、前記複数のメモリページのそれぞれは、前記同一のメモリページコンテンツ部分を少なくとも部分的に含む、グループ化することを有する、請求項11乃至15何れか一項記載のライブバーチャルマシーンマイグレーション方法。
  18. 前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することは、
    前記複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定することと、
    類似のハッシュ値を有する前記複数のメモリページ内の少なくとも2つのメモリページを検出することと、
    前記類似のハッシュ値を有する前記複数のメモリページ内の検出された少なくとも2つのメモリページについて、前記少なくとも2つのページのそれぞれに含まれる同一のコンテンツを特定することと、
    を有する、請求項17記載のライブバーチャルマシーンマイグレーション方法。
  19. 前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することは、
    前記バーチャルマシーンマイグレーションコントローラが、複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することであって、前記バーチャルマシーングループのそれぞれは、複数のメモリページの少なくとも1つに以前にアクセスしたバーチャルマシーンを含み、前記複数のメモリページのそれぞれは、同一のメモリページコンテンツを有する、グループ化することを有する、請求項11乃至15何れか一項記載のライブバーチャルマシーンマイグレーション方法。
  20. 前記複数のバーチャルマシーングループを構成するため、前記複数のバーチャルマシーンの少なくとも一部を選択的にグループ化することは、
    前記複数のメモリページのそれぞれの少なくとも一部に含まれるコンテンツに少なくとも部分的に基づきハッシュ値を決定することと、
    類似のハッシュ値を有する前記複数のメモリページ内の少なくとも2つのメモリページを検出することと、
    前記類似のハッシュ値を有する前記複数のメモリページ内の検出された少なくとも2つのメモリページについて、前記少なくとも2つのページのそれぞれに含まれる同一のコンテンツを特定することと、
    を有する、請求項19記載のライブバーチャルマシーンマイグレーション方法。
  21. ライブバーチャルマシーンマイグレーションシステムであって、
    複数のバーチャルマシーンにおける各バーチャルマシーンについて、前記各バーチャルマシーンに論理的に関連するメモリページダーティ処理レートを示す値を決定する手段と、
    複数のバーチャルマシーングループを提供するため、前記複数のバーチャルマシーンにおけるバーチャルマシーンを選択的にグループ化する手段であって、各バーチャルマシーングループにおける各バーチャルマシーンは同一のメモリページコンテンツ部分にアクセスする、グループ化する手段と、
    各バーチャルマシーングループについて、前記各バーチャルマシーングループにおけるバーチャルマシーンによりアクセスされる同一のメモリページコンテンツ部分の1つのマイグレーション、前記各バーチャルマシーングループをマイグレートするのに利用可能な帯域幅及び前記各バーチャルマシーングループに含まれるバーチャルマシーンのそれぞれに論理的に関連するメモリページダーティ処理レートを示す値に少なくとも部分的に基づき、前記各バーチャルマシーングループをマイグレートするための時間を動的に予測する手段と、
    を有するシステム。
  22. 請求項11乃至20何れか一項記載の方法を実行するよう構成されるチップセット。
  23. 請求項11乃至20何れか一項記載の方法を計算装置に実行させるプログラム。
  24. 請求項23記載のプログラムを記憶するコンピュータ可読記憶媒体。
JP2016224129A 2015-12-18 2016-11-17 バーチャルマシーンバッチライブマイグレーション Active JP6312779B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
WOPCT/CN2015/097863 2015-12-18
PCT/CN2015/097863 WO2017101100A1 (en) 2015-12-18 2015-12-18 Virtual machine batch live migration

Publications (2)

Publication Number Publication Date
JP2017117440A JP2017117440A (ja) 2017-06-29
JP6312779B2 true JP6312779B2 (ja) 2018-04-18

Family

ID=59055526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016224129A Active JP6312779B2 (ja) 2015-12-18 2016-11-17 バーチャルマシーンバッチライブマイグレーション

Country Status (6)

Country Link
US (1) US11074092B2 (ja)
JP (1) JP6312779B2 (ja)
CN (1) CN107015844B (ja)
DE (1) DE112015007188T5 (ja)
SG (1) SG10201609126TA (ja)
WO (1) WO2017101100A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107352078B (zh) * 2017-07-12 2022-10-28 浙江工业大学 半自动绒螯蟹包装机

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9389901B2 (en) * 2014-09-09 2016-07-12 Vmware, Inc. Load balancing of cloned virtual machines
WO2017101100A1 (en) 2015-12-18 2017-06-22 Intel Corporation Virtual machine batch live migration
US10545777B2 (en) * 2016-11-08 2020-01-28 International Business Machines Corporation Generating a virtual machines relocation protocol
US10445129B2 (en) * 2017-10-31 2019-10-15 Vmware, Inc. Virtual computing instance transfer path selection
CN107967168B (zh) * 2017-12-08 2021-11-12 中南大学 一种云数据中心里基于共享内存页面的虚拟机整合方法
CN108037980B (zh) * 2018-01-02 2023-03-14 腾讯科技(深圳)有限公司 控制执行虚拟机热迁移的方法、装置和可读存储介质
CN108153580A (zh) * 2018-01-05 2018-06-12 北京中实信息技术有限公司 一种超融合架构下的虚拟机内存热扩展的方法
US10613893B2 (en) * 2018-02-02 2020-04-07 Nutanix, Inc. System and method for reducing downtime during hypervisor conversion
US10606630B2 (en) 2018-02-02 2020-03-31 Nutanix, Inc. System and method for preserving entity identifiers
EP3752915B1 (en) 2018-02-14 2024-02-07 Google LLC System for live migration of virtual machines with assigned peripheral devices
CN109388478A (zh) * 2018-11-01 2019-02-26 郑州云海信息技术有限公司 用于OpenStack环境中迁移虚拟机的方法和装置
US10698722B2 (en) * 2018-11-27 2020-06-30 Sap Se Virtual machine migration across cloud computing providers
CN110708154B (zh) * 2019-08-31 2022-05-10 苏州浪潮智能科技有限公司 一种虚拟机迁移方法、系统、终端及存储介质
US11169870B2 (en) * 2020-01-15 2021-11-09 Vmware, Inc. Managing the migration of virtual machines in the presence of uncorrectable memory errors
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration
CN112363801B (zh) * 2020-11-10 2022-10-21 海光信息技术股份有限公司 虚拟机迁移方法、处理方法、系统、装置、芯片及介质
US20220214901A1 (en) * 2021-01-06 2022-07-07 Red Hat, Inc. Migration speed-up for multiple virtual machines
US11494076B2 (en) * 2021-01-19 2022-11-08 Dell Products L.P. Storage-usage-based host/storage mapping management system

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4894745B2 (ja) 2007-12-14 2012-03-14 富士通株式会社 仮想マシン移動制御方式
US8386612B2 (en) * 2009-02-10 2013-02-26 International Business Machines Corporation Optimizing migration policy during live virtual memory migration
JP5235751B2 (ja) 2009-03-30 2013-07-10 株式会社日立製作所 仮想計算機を有する物理計算機
US8689211B2 (en) * 2009-05-25 2014-04-01 International Business Machines Corporation Live migration of virtual machines in a computing environment
US8327060B2 (en) * 2009-11-30 2012-12-04 Red Hat Israel, Ltd. Mechanism for live migration of virtual machines with memory optimizations
US8533711B2 (en) * 2009-11-30 2013-09-10 Red Hat Israel, Ltd. Method and system for adjusting a selection algorithm for selecting a candidate host with a highest memory sharing history value with a target virtual machine from amongst a set of host machines that have a standard deviation of memory sharing history with the virtual machine below a threshold amount
US8244957B2 (en) * 2010-02-26 2012-08-14 Red Hat Israel, Ltd. Mechanism for dynamic placement of virtual machines during live migration based on memory
US9250863B1 (en) * 2010-12-28 2016-02-02 Amazon Technologies, Inc. Managing virtual machine migration
US8490091B2 (en) * 2011-03-28 2013-07-16 International Business Machines Corporation Virtual machine placement to improve memory utilization
US8943296B2 (en) * 2011-04-28 2015-01-27 Vmware, Inc. Virtual address mapping using rule based aliasing to achieve fine grained page translation
US9767039B2 (en) * 2011-07-18 2017-09-19 Vmware, Inc. Increasing granularity of dirty bit information in hardware assisted memory management systems
JP2013026943A (ja) 2011-07-25 2013-02-04 Sharp Corp 立体画像処理装置および立体画像処理方法
US8694644B2 (en) * 2011-09-29 2014-04-08 Nec Laboratories America, Inc. Network-aware coordination of virtual machine migrations in enterprise data centers and clouds
KR101586598B1 (ko) * 2012-01-10 2016-01-18 후지쯔 가부시끼가이샤 가상 머신 관리 기록 매체, 방법 및 장치
US9384035B2 (en) * 2012-08-22 2016-07-05 Hitachi, Ltd. Virtual computer system, management computer, and virtual computer management method
US9172587B2 (en) * 2012-10-22 2015-10-27 International Business Machines Corporation Providing automated quality-of-service (‘QoS’) for virtual machine migration across a shared data center network
CN103049308B (zh) * 2012-11-30 2016-01-20 华为技术有限公司 实现虚拟机热迁移的方法、装置及系统
US9372726B2 (en) * 2013-01-09 2016-06-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
JP5876425B2 (ja) 2013-02-12 2016-03-02 日本電信電話株式会社 仮想マシンのライブマイグレーションスケジューリング方法及び仮想マシンシステム
US9417899B2 (en) * 2013-03-14 2016-08-16 International Business Machines Corporation Memory page de-duplication in a computer system that includes a plurality of virtual machines
US9081599B2 (en) * 2013-05-28 2015-07-14 Red Hat Israel, Ltd. Adjusting transfer rate of virtual machine state in virtual machine migration
US9459902B2 (en) * 2013-08-16 2016-10-04 Red Hat Israel, Ltd. Memory duplication by destination host in virtual machine live migration
US9454400B2 (en) * 2013-08-16 2016-09-27 Red Hat Israel, Ltd. Memory duplication by origin host in virtual machine live migration
US9317326B2 (en) * 2013-11-27 2016-04-19 Vmware, Inc. Consistent migration of a group of virtual machines using source and destination group messaging
JP6031462B2 (ja) 2014-02-12 2016-11-24 日本電信電話株式会社 仮想マシン配置装置及び方法及びプログラム
CN103885829A (zh) 2014-04-16 2014-06-25 中国科学院软件研究所 一种基于统计的虚拟机跨数据中心动态迁移优化方法
CN103955399B (zh) * 2014-04-30 2017-06-20 华为技术有限公司 一种虚拟机迁移方法和装置及物理主机
US9558005B2 (en) 2014-05-19 2017-01-31 Intel Corporation Reliable and deterministic live migration of virtual machines
US9342346B2 (en) * 2014-07-27 2016-05-17 Strato Scale Ltd. Live migration of virtual machines that use externalized memory pages
US9348655B1 (en) * 2014-11-18 2016-05-24 Red Hat Israel, Ltd. Migrating a VM in response to an access attempt by the VM to a shared memory page that has been migrated
EP3274822A4 (en) * 2015-03-27 2018-11-07 Intel Corporation Technologies for virtual machine migration
CN107735767B (zh) * 2015-06-26 2022-02-11 英特尔公司 用于虚拟机迁移的装置和方法
US9870248B2 (en) * 2015-08-13 2018-01-16 Red Hat Israel, Ltd. Page table based dirty page tracking
WO2017049617A1 (en) * 2015-09-25 2017-03-30 Intel Corporation Techniques to select virtual machines for migration
WO2017101100A1 (en) 2015-12-18 2017-06-22 Intel Corporation Virtual machine batch live migration

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107352078B (zh) * 2017-07-12 2022-10-28 浙江工业大学 半自动绒螯蟹包装机

Also Published As

Publication number Publication date
CN107015844A (zh) 2017-08-04
US11074092B2 (en) 2021-07-27
WO2017101100A1 (en) 2017-06-22
SG10201609126TA (en) 2017-07-28
DE112015007188T5 (de) 2018-09-13
CN107015844B (zh) 2021-08-31
US20180329737A1 (en) 2018-11-15
JP2017117440A (ja) 2017-06-29

Similar Documents

Publication Publication Date Title
JP6312779B2 (ja) バーチャルマシーンバッチライブマイグレーション
US10691491B2 (en) Adapting a pre-trained distributed resource predictive model to a target distributed computing environment
US20210182190A1 (en) Intelligent die aware storage device scheduler
CN107924323B (zh) 基于依赖的容器部署
US11652884B2 (en) Customized hash algorithms
US10977086B2 (en) Workload placement and balancing within a containerized infrastructure
ES2734248T3 (es) Procedimiento para bifurcar o migrar una máquina virtual
US20200026560A1 (en) Dynamic workload classification for workload-based resource allocation
US9442791B2 (en) Building an intelligent, scalable system dump facility
US11681544B2 (en) Interference-aware scheduling service for virtual GPU enabled systems
US10430723B1 (en) Storage system with machine learning based skew prediction
US20220197514A1 (en) Balancing The Number Of Read Operations And Write Operations That May Be Simultaneously Serviced By A Storage System
US11042519B2 (en) Reinforcement learning for optimizing data deduplication
GB2489562A (en) Use of data sampling to improve parallel processing of computations
US20210303327A1 (en) Gpu-remoting latency aware virtual machine migration
CN112988478A (zh) 分配线程给虚拟化硬件用的多个处理器核心的装置和方法
US10379912B2 (en) Data storage allocation utilizing virtual machine resource allocation
US11928517B2 (en) Feature resource self-tuning and rebalancing
CN109154902A (zh) 用于备份调度的系统和方法
JP6816824B2 (ja) 分散システム、データ管理装置、データ管理方法、及びプログラム
Nirmala et al. Research Challenges in Pre‐Copy Virtual Machine Migration in Cloud Environment
Deng et al. Migration cost aware mitigating hot nodes in the cloud
Elder et al. vSphere High Performance Cookbook
Segalin et al. An approach to deal with processing surges in cloud computing
Hegde et al. Performance Characterization of Containerized DNN Training and Inference on Edge Accelerators

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180206

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180320

R150 Certificate of patent or registration of utility model

Ref document number: 6312779

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250