(57)【特許請求の範囲】
【請求項１】
複数の仮想マシン（VM）マイグレーションをスケジュールするシステムが実行する方法であって、
前記システムが、VMマイグレーションの動作を解析し、
前記システムが、異なるリンク条件およびVM特性の下での複数のVMマイグレーションの時間を予測するためのシミュレーションツールを作成し、
前記システムが、前記シミュレーションツールのシミュレーション結果に基づいて、ネットワークを構成するネットワークリンクごとに、所定の帯域幅共有方針を決定し、
前記システムが、ビンが前記ネットワーク内の全てのネットワークリンクを表しアイテムが前記複数のVMマイグレーションのタスクの各々を示すビンパッキング技術を使用して、前記所定の帯域幅共有方針に基づき、前記複数のVMマイグレーションを実行するための期間の長さに対応する前記ビンの数が最小となるように各VMマイグレーションを前記ビンに割り当てる、方法。
【請求項２】
前記システムが、１つのVMマイグレーションのパフォーマンスをシミュレーションすることを含む、請求項１の方法。
【請求項３】
前記システムが、複数のVMマイグレーションのパフォーマンスをシミュレーションすることを含む、請求項１の方法。
【請求項４】
前記システムが、ネットワークリソースにおいてVMマイグレーションを多重化し、通信プロトコルに関連するオーバーヘッドに起因する帯域幅の減少の度合いを決定することを含む、請求項３の方法。
【請求項５】
前記システムが、全体のリソース割り当てを決定することを含む、請求項１の方法。
【請求項６】
前記システムが、ネットワークリンク容量を決定することを含む、請求項５の方法。
【請求項７】
前記システムが、複数のマイグレーションを１つにまとめることを含む、請求項５の方法。
【請求項８】
前記システムが、マイグレーション要求を推定することを含む、請求項７の方法。
【請求項９】
スケジューラが、複数のネットワークリンク内の利用可能な帯域幅を
【数１】
0005851618.tif 000023
として決定することを含み、
Cは、C=[c1,c2,・・・cr]T（ここで、ｒはビンの中のリンク数に等しい。）で表されたオリジナルのリンク容量であり、複数のD(k)は、進行している複数のマイグレーションの帯域幅要求である、請求項１の方法。
【請求項１０】
前記システムが、マイグレーション以前のオーバーヘッドと、「繰り返される事前コピー」と「停止とコピー」とのステージにおいて要する時間と、マイグレーション以降のオーバーヘッドと、を最小にすることによって、VMマイグレーション時間を最小にすることを含む、請求項１の方法。
【請求項１１】
前記システムが、マイグレーションMiのエンドツーエンド帯域幅要求を、ベクトル
D(i)＝P(i)×d(i)＝[1,0,0,・・・1]T×d(i)
として決定し、バイナリーベクトルP(i)＝[1,0,0,・・・1]Tは、パスのi番目のリンクの包含を示すi番目のエントリ内の値'１'、そしてそうでない場合に'０'を有するマイグレーションMiのパスを表し、d(i)はMiに割り当てられた、予想された帯域幅である、請求項１の方法。
【請求項１２】
前記システムが、リンク
【数２】
0005851618.tif 000024
におけるMiのローカル帯域幅要求
【数３】
0005851618.tif 000025
を
【数４】
0005851618.tif 000026
として決定することを含む、請求項１の方法。
【請求項１３】
前記システムが、マイグレーションMiごとに、リソース要求ベクトルD(i)をスカラーη(i)に変換しD(i)→η(i)、ここで、η(i)はD(i)内の全てのエレメントの合計と等しく、
前記システムが、それらの変換されたη(i)値に基づいてリソース要求をソートし、
前記システムが、高いη(i)から低いη(i)へ複数のマイグレーションタスクをスキャンし、ここで、選択されたマイグレーションタスクごとに、前記タスクを処理するための空いている容量を有する最も近い将来の時間間隔Tに前記選択されたタスクを配置する、請求項１の方法。
【請求項１４】
前記システムが、Miのパスに沿って全てのリンク
【数５】
0005851618.tif 000027
帯域幅要求
【数６】
0005851618.tif 000028
を決定し、
前記システムが、Miの全体の帯域幅要求を、全てのローカルの推定値
【数７】
0005851618.tif 000029
の中の最大要求として決定する、請求項１の方法。
【請求項１５】
複数の仮想マシン（VM）マイグレーションをスケジュールするシステムであって、
VMマイグレーションの動作を解析する手段と、
異なるリンク条件およびVM特性の下での前記複数のVMマイグレーションの時間を予測するためのシミュレーションツールを作成する手段と、
前記シミュレーションツールのシミュレーション結果に基づいて、ネットワークを構成するネットワークリンクごとに、所定の帯域幅共有方針を決定する手段と、
ビンが前記ネットワーク内の全てのネットワークリンクを表しアイテムが前記複数のVMマイグレーションのタスクの各々を示すビンパッキング技術を使用して、前記所定の帯域幅共有方針に基づき、前記ビンの数が最小となるように前記複数のVMマイグレーションを前記ビンに割り当てる手段と、を含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１１年９月２９日に出願された仮出願番号６１／５４０５７４の優先権を主張し、その内容が参照によって含まれる。
【０００２】
本発明は、仮想マシンの複数のマイグレーション（移行）に関する。
【背景技術】
【０００３】
仮想マシン（VM）のマイグレーションは、今日では、コンピューティングシステムの管理を容易にするために、データセンタおよびクラウドにおいて利用が増えている。しかしながら、マイグレーションは、通常、ネットワーク帯域幅のようなシステムリソースを大量に必要とする。データセンタの動作中に定期的に発生もする複数の同時マイグレーションの場合、そのようなリソース要求は、劇的に増加するであろうし、直ちに充足させることは困難である。その結果、システムのパフォーマンスに著しい悪影響を及ぼすであろう。最悪の場合、システムは、リソース不足のために故障するかもしれない。
【０００４】
ライブVMマイグレーションは、絶えず変化する負荷の下で高いシステムパフォーマンスを維持する能力のため、仮想化されたデータセンタとクラウドにおいて広く利用されている。しかしながら、VMマイグレーションは、非常に多くのネットワーク帯域幅および他のリソースを必要とし、その結果、マイグレーションの期間中に、移行中のVMのパフォーマンス低下を引き起こすかもしれない。シングルVMマイグレーションは、短期間のプロセスであるため、通常、リソース要求とVMパフォーマンス低下を余裕で乗り越えられるが、複数の同時発生のマイグレーションを管理することは、システムが多くのVMからの劇的なリソース要求をうまく処理するための十分なリソースを直ちに確保できないため、難しい。その結果、複数のマイグレーションを完了するのに非常に長い時間を要することになり、この非常に長い時間は、それらのVMに長い期間のパフォーマンス低下を引き起こす。この目的を達成するために、この文書では、同時発生の複数のVMマイグレーションの動作を調べ、そして、リソース不足によって引き起こされる悪影響を回避するために複数のマイグレーションを適切にスケジュールする解決策を提案する。
【０００５】
一般に、複数のVMマイグレーションは、実際のシステム動作中に規則的に表れる。例えば、メンテナンスのためにいくつかの物理マシンをサービスから取り除くことが必要になると、それらのマシンの中の全てのVMは、他の場所に移行されなければならない。アプリケーションは、今日では、負荷分散やフォールトトレランスの目的のためにいくつかのマシンに分配された多くのVMで構成されているので、アプリケーションにおける負荷の急増は、システム内のいくつかのVMの存在の再配置を必要とする可能性がある。さらにより悪い状況としては、構成ミスのようなシステム障害が非常に多くのVMマイグレーションを誘発する可能性がある。そのような場合、効果的な方法で同時発生の複数のVMマイグレーションを処理することが重要であり、その際、それらをできる早く完了し、そしてそれゆえに、それらのVMでの全体のパフォーマンス劣化時間を最小にできるようにする。
【０００６】
複数のデータマイグレーションがストレージ装置間で実行される場合、通常、ストレージIOがリソースのボトルネックとなるが、VMマイグレーションがマシン間で複数のVMメモリページを移動する場合、多くのケースで、ネットワーク帯域幅が重要になる。より重要なことは、移動するデータのサイズが通常固定されているデータマイグレーションと違って、VMマイグレーションで移動される必要のある内容は、メモリのダーティ率のようなVMの特性と同様に、利用可能なネットワーク帯域幅に応じて変化することである。これは、多くのマイグレーションソフトウェアで実行される、繰り返されるメモリの事前コピーのメカニズムに起因し、各事前コピーにおいて送信される必要のあるメモリページの数は、以前のラウンドでの転送のスピードに依存する。同じマイグレーションタスクは、特にVMのメモリダーティ率が高いとき、狭い帯域幅のネットワークでは、十分な帯域幅を持つネットワークに比べて、予期された時間が長くなる可能性がある。
【０００７】
VMマイグレーションのユニークな特徴は、複数のVMが同時にマイグレーションをリクエストしたときに、新たな課題を引き起こす。まず、これらのマイグレーションは、それらのマイグレーションパスにおいて重複したリンクを持つ可能性があるので、システムは、同時にそれらを始めることによってそれらにリンクを共有させるか否かと、そのリンクにおいて許容された同時発生のマイグレーションの最大数が何かと、を決定する必要がある。複数のマイグレーションの間でのリンク共有は、複数のマイグレーションフローの間でのリソース多重化のため、ネットワーク帯域幅の全体の利用を改善することができ、その結果、マイグレーションの短時間の完了に貢献する。しかしながら、各VMが、重複したリンクにおける帯域幅の一部にのみ割り当てられるので、送信されるメモリページの量も増加する。ネットワークリンクを共有する同時発生のマイグレーションの最適な数を決定することにおいて、バランスが必要になる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
人間が作成した従来のやり方は、ネットワークで許容されたVMマイグレーションの最大数を特定するが、実際の状況では、ネットワーク帯域幅の使用とVMメモリの使用は常に変化しており、そのような固定化されたやり方は、実際の全ての条件を満たせない可能性がある。そのようなバランスをとることは、リンク容量とVMメモリダーティ率のようなものを含む数多くの要素に依存しているので、難しい。さらに、それらの要素に対するマイグレーションパフォーマンスの依存は、線形でなく、数学的な式によって予測することは困難である。
【課題を解決するための手段】
【０００９】
VMマイグレーションの動作を解析し、異なるリンク条件およびVM特性の下で複数のマイグレーションの時間を予測するためのシミュレーションツールを作成し、ネットワークリンクごとに所定の帯域幅共有方針を決定し、全てのネットワークリンクから帯域幅リソースを構成するためにビンパッキング技術を適用し、異なる複数のマイグレーションタスクに前記リンクを割り当てることによって、複数の仮想マシン（VM）マイグレーションをスケジュールするシステムと方法が開示される。
【００１０】
１つの実施形態では、システムは、VMマイグレーション動作を解析し、シミュレーションツールを作成して、異なるリンク条件およびVM特性の下での複数のマイグレーションの時間を予測する。シミュレーション出力を解析することによって、システムは、ネットワークリンクごとに、最良の帯域幅共有方針、すなわち、最短の完了時間を引き起こすことができる同時発生のマイグレーションの数を見つけることができる。リンク共有方針に基づき、システムは、ビンパッキングアルゴリズムを使用して全てのネットワークリンクから帯域幅リソースを構成し、そして、それらに異なる複数のマイグレーションタスクを割り当てる。全体的なリソース割り当ての結果、複数のマイグレーションタスクは、早い完了を実現するために、ネットワーク全体の中の利用可能なリソースを十分に使うことができる。
【００１１】
上記態様の実施は、１以上の以下のものを含んでもよい。システムは、シングルリンクVMマイグレーション共有方針を処理する。システムは、VMマイグレーションの動作を解析できる。システムは、シングルVMマイグレーションのパフォーマンスをシミュレーションできる。次に、システムは、ネットワークリソースの多重化を実行すること、および／または、通信プロトコルに関連するオーバーヘッドを決定すること、を含むことができる複数のVMマイグレーションのパフォーマンスを、シミュレーションすること、を含む。システムは、全体的なリソース割り当てを決定できてもよい。これは、ネットワークリンク容量を決定することを含む。システムは、複数のマイグレーションを１つにまとめてもよい。これは、マイグレーション要求の推定および／または各アイテムをまとめることを、順番に含むことができる。
【発明の効果】
【００１２】
システムのメリットは、１以上の以下のものを含んでもよい。複数のVMマイグレーションによって引き起こされる予期できないリソース不足の状況下でも現存のコンピューティングシステムが依然として良いパフォーマンスを維持できるように、システムは、現存のコンピューティングシステムを改善する。システムは、複数のVMを動かしている複数のコンピュータの信頼性も著しく改善する。既存の解決手法とは異なり、システムは、様々な状況で高いシステムパフォーマンスを維持できる複数のVMマイグレーションをスケジュールするための適応性のある解決手法を提供する。複数のVMマイグレーションのためのスケジュール方法は、複数のVMマイグレーションタスクの早い完了を保障し、システムパフォーマンスへの悪影響を減らす。
【図面の簡単な説明】
【００１３】
【図１】一実施形態のネットワーク構成を示した図である。
【図２】複数のネットワークリンクのVMマイグレーション共有方針のシミュレーションの一例を示した図である。
【図３】複数のVMマイグレーションの１セットの場合の全体的なリソース割り当ての一例を示した図である。
【図４】ビンパッキングプロセスで実行されたマイグレーションスケジュールの一例を示した図である。
【図５】マイグレーションスケジューラの一例を示した図である。
【図６】複数のVMマイグレーションを実行するコンピュータの一例を示した図である。
【発明を実施するための形態】
【００１４】
図１は、例えば、ノードs1、s2、s3、d1、d2およびd3を有するネットワーク構造の一例を示す。システムネットワーク構造が与えられると、システムは、各ネットワークリンクにおいて、利用可能な帯域幅を測定する。システムは、システム内の全てのVMについて、メモリ使用パターンのような仮想マシン特性も収集する。
【００１５】
さて図１に戻って、全体的なリソース割り当ての問題を表す例が示されている。典型的な３層データセンタネットワークでは、ソースSiから目的地マシンdi，i＝1、2、3，への３つのマイグレーションM1、M2、M3が存在し、それらの複数のマイグレーションパスは、それぞれ、破線、実線、鎖線で描かれている。我々がわかるように、マイグレーションM3は、M1およびM2と完全に分離しているパスを有しているので、M3は、M1およびM2と同時発生的にスケジュールされることが可能である。一方、M1とM2は、それらのマイグレーションパスにおいて重複したリンクを有しているため、我々がそれらを同時発生的にスケジュール可能か否かは、それらの共通するリンクの帯域幅共有方針に依存する。すなわち、重複したリンクで利用可能な帯域幅が、両方のタスクの早期完了のための並列マイグレーションをサポートするのに十分大きいと、我々は、M1とM2を同時発生的に実行し、その逆の場合は逆になる。
【００１６】
次に、システムは、各ネットワークリンクでのVMマイグレーション共有方針、すなわち、各リンクに特定の特性を有するVMマイグレーションをいくつ割り当てることが可能かを解析するための、シミュレーションツールを生成する。これは、図２にリンク１１０、１２０、１３０と共に示されている。
【００１７】
各マイグレーションタスクのパスと同様に、各ネットワークリンクでのVMマイグレーション共有方針を考慮して、システムは、図３に示されたように、全てのネットワークリソース１４０を最もよく使用するための全体的なリソース割り当て解決手法を生成する。
【００１８】
ソフトウェアシミュレーションは、VMおよびリンクの、異なる条件のもとで、最適のリンク共有方針を特定するために使われる。シミュレーションは、使用可能なリンク帯域幅とVM特性とが与えられると、Xenでのソースコードの実行に従ってVMマイグレーション時間を予測する。複数のVMマイグレーションの場合、システムは、シミュレーションにいくつかの追加要素を組み入れる。例えば、ターゲットマシンにおける、初期のリソース予約および最終のVM起動に要する時間のような、いくつかのマイグレーションオーバーヘッドが、複数のマイグレーションの並列処理によって保存されることができる。システムは、複数のマイグレーションがネットワークリンクを共有するときの帯域幅の使用の動作のモデルを作ることができる。シミュレーションツールを動作させることによって、システムは、異なる条件下でのVMマイグレーションパフォーマンスを比較でき、その次に、リンクごとに、最適な共有方針、すなわち、最小のトータルのマイグレーション時間を達成できる同時発生のVMマイグレーションの数を、リンクの利用可能な帯域幅とVMのメモリページのダーティ率とに基づいて生成できる。
【００１９】
ここで図４では、複数のVMを移行するプロセスが示されている。まず、システムは、シングルリンクVMマイグレーション共有方針を処理する（２００）。システムは、VMマイグレーションの動作を解析できる（２０２）。システムは、シングルVMマイグレーションのパフォーマンスをシミュレーションできる（２０４）。次に、システムは、ネットワークリソースの多重化を実行することと（２０８）、通信プロトコルに関連するオーバーヘッドを決定すること（２１０）と、を含むことができる複数のVMマイグレーションのパフォーマンスを、シミュレーションすることを含む（２０６）。
【００２０】
ネットワークリンク共有に追加して、複数のVMマイグレーションの他の課題は、それらの複数のタスクの早急な完了を達成するために、各マイグレーションにシステムの全体的な（グローバル）リソースを割り当てることである。その理由は、ネットワークは、それぞれ異なる利用可能な帯域幅を持つ多くのリンクで構成され、そして、複数のマイグレーションは、種々のネットワークリンクの組を通って行くからである。リンク共有方針は、各個別リンクにおけるマイグレーションの数にのみ関係する一方で、全体的なリソース割り当ては、ネットワーク全体での帯域幅を十分に使うための複数のVMマイグレーションの最適なスケジューリングを見つけるために試みられる。例えば、１つのVMのマイグレーションパスが他のタスクのパスと重複していないと、システムは、直ちにそれを開始できる。しかし、１つのVMのマイグレーションパスに沿ったいくつかのリンクが、他のマイグレーションと共有されていると、それらのリンクのマイグレーション共有方針に基づいてそれらのタスクを順序づけるための計画が必要になる。システムは、全体的なリソース割り当てを決定することもできる（２２０）。これは、ネットワークリンク容量を決定することも含む（２２２）。システムは、複数のマイグレーションを１つにまとめることができる（２２４）。これは、マイグレーション要求の推測（２２６）および／または各アイテムをまとめること（２２８）を順番に含むことができる。
【００２１】
１つの実施形態は、ビンパッキングアルゴリズムを使って、全体的なリソース割り当てを処理し、そして、ビンパッキングアルゴリズムでは、ビンがネットワーク内の全てのリンクを表し、アイテムが各マイグレーションタスクを示す。ビンの容量は、全てのネットワークリンク内の利用可能な帯域幅によって決定され、一方、各アイテムのサイズは、各マイグレーションの帯域幅要求に関連し、その要求は、VMのマイグレーションパスに沿った各リンクでのマイグレーション共有方針から推定されることができる。ビン容量とアイテムサイズが与えられると、システムは、ファーストフィットデクリーシング（first-fit decreasing：FFD）法を使って、これらの複数のマイグレーションを行うためのビンの数が最小になるように、各マイグレーションを、対応するビンに割り当てる。その結果、ビンの数が、それらの複数のマイグレーションを実行するための期間の長さに対応するので、システムは、複数のマイグレーションタスクの最短の完了を達成する。
【００２２】
異なるVM特性およびリンク帯域幅が与えられると、複数のVMマイグレーションを行うために、テストベットが使用される。実際の評価結果は、シミュレーション出力と比較され、そして、シミュレーションツールは、異なる条件下でのマイグレーションパフォーマンスの正確な予測を提供することができる。マイグレーションスケジューリング技術は、巨大なデータセンタにおいて異なる数のVMマイグレーションをシミュレーションすることによって、さらにテストされる。結果は、マイグレーションスケジューラが複数のマイグレーションの早期の完了を達成できることを示す。
【００２３】
１つの実施形態は、Xen、VMwareおよびKVMのような大多数の仮想化ソフトウェア用のデフォルトのVMマイグレーションメカニズムである事前コピーマイグレーション技術を重点的に取り扱う。VMマイグレーションベースの事前コピーの実際の実行は、種々のベンダーに応じて変化するが、それらの基本的なメカニズムは同じである。このため、Xenがマイグレーションスケジューリングの方法に使われるが、その方法は、他の仮想化ツールに適用することができる。
【００２４】
事前コピーマイグレーションは、繰り返されるマルチパスアルゴリズムを使って、連続するステップにてVMゲストメモリを移動する。各繰返しでは、その繰返しの中で書き換えられた（ダーティにされた）メモリだけが送られる。事前コピーステージが終了したとき、最終状態が新たなホストに送られ、新たな物理マシンへの制御の引き渡しが完了する。図４は、ホストAから目的地BへのVMマイグレーションの主なステージを表す。繰り返される事前コピーは、いくつかの停止条件が満たされるまで無期限に続けられてもよい。Xenでは、以下の条件の１つが当てはまれば、それは停止されることになる。
【００２５】
・５０未満のメモリページが、最新の事前コピーの繰り返しの間に書き換えられた（ダーティにされた）。
【００２６】
・２９回の事前コピーの繰り返しが実行された。
【００２７】
・コピーされたメモリのサイズが、VMに割り当てられたRAMの総量の３倍に達した。
【００２８】
上記条件のうち、最初のものは、少しのページのみが最後のラウンドで転送させられる必要があるというように、事前コピーの収束を表し、一方、他の２つの条件は、収束しない動作が観測されたときに、事前コピーステージの終了を、単に強制する。
【００２９】
ソースマシンAから目的地ホストBへの１つのVMのマイグレーションは、以下のステップを含む。
【００３０】
１．リソース予約：目的地ホストBでリソースが予約される。
【００３１】
２．繰り返される事前コピー：以前の繰り返しの間に更新されたVMメモリページが、目的地に転送される。最初の繰り返しでは、RAM全体が送られる。
【００３２】
３．停止とコピー：VMは、最後の転送ラウンドのために停止する。残っているメモリページが目的地Bに転送される。
【００３３】
４．引き渡しと起動：マシンBがVMの完全なコピーの受信に成功したことを示した後、リソースがホストB内のVMに再び結びつけられる。
【００３４】
「トータルのマイグレーション時間」と「サービスダウン時間」との２つの指標（metrics）が、VMマイグレーションパフォーマンスを量化するために共通に使用される。トータルのマイグレーション時間は、全体のマイグレーションプロセスの期間をカバーする一方で、サービスダウン時間は、VMがマシンAで一時停止されたときと、それがマシンBで起動されたときと、の間、すなわち、マイグレーションの最後のステージで発生する。システムは、移行中のVMがパフォーマンス低下をあらわにするトータルのマイグレーション時間を、主に重点的に取り扱う。ソースおよび目的地マシンに位置する他の複数のVMも、システムリソースのためのマイグレーションプロセスとの競合のため、悪影響を被る。システムは、移行中のVMとバックグラウンドのアプリケーションとの間の衝突を調べない。システムにおいて現在利用可能なリソースが与えられると、目標は、トータルのマイグレーション時間を減らすために複数のマイグレーションタスクを適切にスケジュールすることになる。その結果、移行中の複数のVM（および起こりうるバックグラウンドの複数のVM）におけるパフォーマンス低下の期間を減らすことが可能になる。
【００３５】
実際には、複数のマイグレーションが同時に起こったとき、それらの全体のマイグレーション時間は、事前コピーメカニズムのため、非常に長くなるかもしれない。これを明らかにするために、システムは、まず、利用可能な帯域幅Bを持つネットワークリンクにおいて、メモリサイズVとメモリダーティ率Rが与えられると、１つのVMのマイグレーション時間のモデルを作成する。図４に示した４つのステージのうち、「リソース予約」と「引き渡しと起動」とにおいて費やされる時間は、比較的安定しており、それは、２つの一定値：マイグレーション以前のオーバーヘッド（Pre-migrationOverhead）と、マイグレーション以降のオーバーヘッド（Post-migrationOverhead）と、によって表すことできる。しかしながら、事前コピーと、停止およびコピーと、のための時間は、リンク条件とVM特性とに応じて非常に変動する。それは、時間t0＝V/Bを要する全てのVMメモリページの転送でスタートし、その後、t1＝R*t0/B、t2＝R*t1/B、・・・、tk-1＝R*tk-2/B、・・・を要する、以前のラウンドで書き換えられた（ダーティにされた）メモリページの転送が続けられる。事前コピープロセスは、複数の停止条件が満たされたときのK番目のラウンドで停止される。その後、ソースVMは一時停止し、残りのメモリがtk＝R*tk-1/Bを要して目的地に転送される。このため、事前コピーと停止およびコピーとのための時間は、
T0＝t0＋t1＋・・・＋tk
【００３６】
【数１】
0005851618.tif 000002
【００３７】
として計算される。
【００３８】
全体として、トータルのマイグレーション時間は、
Tmig＝マイグレーション以前のオーバーヘッド＋T0
＋マイグレーション以降のオーバーヘッド          （２）
として表される。
VMマイグレーションは、純粋なデータマイグレーションとは異なる。データマイグレーションでは、システムがパケットロスのための再送データを無視すると、転送されるデータのサイズは、種々のネットワーク条件下で固定されるが、VMマイグレーションにおいて転送されるコンテンツのサイズは、式（１）に示されたように、VMメモリダーティ率と同様にリンク帯域幅に応じて変動する。大きいネットワーク帯域幅が与えられると、各事前コピーの繰り返しでの時間tiは短くなっていき、その結果、次のラウンドでのコンテンツR*tiが小さくなっていくと予想され、事前コピーの早期の収束を引き起こす。一方、少ない帯域幅を有するネットワークは、事前コピーの繰り返しにおいて転送される必要があるメモリページが多くなるであろう。
【００３９】
VMマイグレーションの独自の動作のため、システムは、複数のVMが同時にマイグレーションをリクエストする状況を適切に処理する必要がある。まず、複数のマイグレーションタスクが、ネットワーク内のいくつかの共通リンクを通って通過すると、システムは、それらの複数のタスクを、重複したリンクを共有する１つの群として、または、連続的ないくつかの群として、実行するかを、決定する必要がある。そのような決定を行うことは、それらの種々の条件下でVMマイグレーションのパフォーマンスの予測を必要とする。しかしながら、式（１）に示したように、マイグレーションのパフォーマンスは、リンク帯域幅とVM特性とを含むいくつかの要素に依存し、そのような依存は非線形である。ソフトウェアのシミュレーションは、種々のリンク共有方策の下でのマイグレーションのパフォーマンスを明らかにするために使用される。シミュレーション結果に基づいて、システムは、重複するネットワークリンクでの複数のマイグレーションの間での最適な共有方針を特定することができる。
【００４０】
最適なリンク共有は、各個々のネットワークリンクに関連づけられているが、各マイグレーションは、通常、多くのネットワークリンクを通って移動するので、全てのネットワークリンクからグローバルリソースを構成することと、複数のマイグレーションタスクにそれらを割り当てることも必要である。ネットワーク全体の帯域幅が十分に利用され、それゆえにそれらの複数のタスクのトータルのマイグレーション時間が最小になるように、どのVMが最初におよび他のどのVMと一緒に移行する必要があるかを決定するためのスケジュールを、システムは見つける。１つの実施形態は、マイグレーションのスケジューリングを、ビンがネットワークリンク全体を表しアイテムが各マイグレーションタスクを示すビンパッキング問題に変換する。システムは、複数のマイグレーションタスクを最小の数のビンにパックしてそれらのタスクの最も早い完了を引き起こすアルゴリズムを提示する。
【００４１】
s個のマイグレーションタスクが与えられた場合に、並列に実行されると、トータルのマイグレーション時間T(pal)は、
T(pal)＝max[Tmig-1，Tmig-2，・・・，Tmig-s]      （３）
となる。
【００４２】
ここで、Tmig-iはi番目のマイグレーションの期間である。Tmig-iの値は、割り当てられた帯域幅での差のために、同時発生のマイグレーションの数sに応じて変化することを示す。ここで、我々は、さまざまなsの設定の下でTmig-iを推定し、そして、最良のネットワークリンク共有方針、すなわち、最短のトータルマイグレーション時間を引き起こす同時発生のs個のマイグレーションを特定する。システムは、様々なs値の下での全体のマイグレーション時間を比較するために、標準化された値T(pal)/sを使う。
【００４３】
s＝１のとき、それは、複数のマイグレーションが連続的に実行されるときの場合に対応する。s値の増加につれて、並列に実行されるマイグレーションの数が多くなる。連続的なマイグレーションと比較して、複数のマイグレーションが同時に発生すると、メリットとデメリットの両方が存在する。まず、システムは、並列マイグレーションでの、マイグレーション以前のオーバーヘッドとマイグレーション以降のオーバーヘッドとのトータルの量を減らすことができる。その理由は、VMマイグレーションにおける「リソース予約」ステージおよび「引き渡しと起動」ステージで要する時間が、割り当てられたネットワーク帯域幅にほとんど依存しないからである。すべてのマイグレーションについてこれら２つのステージを並列に実行することによって、システムは、トータルのマイグレーション時間を節約することができる。
【００４４】
いくつかのマイグレーションを同時に予定することは、ネットワークリンクの帯域幅の利用を改善することもできる。VMメモリページは、マイグレーションにおいてTCPソケットで送信されるので、TCP輻輳制御におけるadditive increase and multiplicative decreaseメカニズムが、ネットワーク帯域幅を十分に活用しない可能性がある。大きいTCPバッファを割り当てるようないくつかのTCP輻輳の調整は、帯域幅利用を改善するかもしれないが、専用のTCPフローは、その実装オーバーヘッドのため、利用可能な帯域幅の全てを依然として使うことができない。１つのリンクに複数のマイグレーションフローを割り当てることによって、システムは、ネットワーク帯域幅の使用を多重化してマイグレーション効率を改善することができる。移行しない複数のVMによって使われ始められるバックグラウンドネットワークのトラフィックは、企業ネットワーク動作において一般的であるマイグレーションフローよりも、非常に短い期間となる。その結果、これらのバックグラウンドトラフィックフローは、長いマイグレーションフローをほとんど妨害しなくできる、ということが想定される。
【００４５】
一方、並列マイグレーションでのネットワークリンクの共有のために、マイグレーションごとの割り当てられたネットワーク帯域幅は、連続的な場合に比べて減らされる。そのような帯域幅の減少は、マイグレーションの間に送信される必要があるメモリページをより多くするであろうし、その結果、VMマイグレーション時間の増加を引き起こす。
【００４６】
表１：２つのVMマイグレーションが連続的、並列的に実行されたときの２つのVMマイグレーションのトータル時間。
【００４７】
【表１】
0005851618.tif 000003
【００４８】
ネットワークリンク共有のメリットとデメリットとの間のバランスを見つけるために、システムは、まず、種々のリンク共有方針の下でのVMマイグレーションのパフォーマンスを予測する必要がある。しかしながら、VMマイグレーションの複雑さのため、その期間は、リンクでの利用可能な帯域幅とVMメモリおよびダーティ率のようないくつかの要素に依存する。表１は、これを表すための２つの例を表し、システムは、２つのマイグレーションが、連続順と、同時と、で実行されたときの２つのマイグレーションの時間を比較する。第１の例では、システムは、１Gbpsの帯域幅のリンクにおいて、１GBのメモリを有する複数のVMを移行する。それは、複数のVMが１秒間に２kのメモリダーティページを有するとき、並列マイグレーションを完了するためには、ほんの２０秒しかかからないが、一方、連続マイグレーションは２２秒を要することを示す。しかしながら、VMメモリのダーティ率が１秒間に１５kのページに増加したとき、並列マイグレーションは連続マイグレーションよりも遅くなる。第２の例では、システムは、種々のリンク状況で、１GBのメモリを有し１秒のダーティ率が１０kメモリページの２つのVMのマイグレーション時間を比較する。それは、２つのマイグレーションが１Gbpsの利用可能な帯域幅を有するリンクで実行されたとき並列マイグレーションは連続の場合よりも早くなるが、リンク帯域幅が３００Mbpsに低下したとき連続マイグレーションがとても速くなることを示す。
【００４９】
上記情報は、パフォーマンスを正確に予測することが難しいVMマイグレーションの複雑な動作を表している。１つのVMの状況においてさえ、マイグレーション時間は、式（１）に示されたように、リンク条件とVM特性とに対して非線形に機能する。いくつかの追加の要素が複数の同時マイグレーションに含まれるとき、VMマイグレーションのパフォーマンスを予測するための数学的なモデルを開発することは困難にさえなる。代案として、ソフトウェアシミュレーションが、様々なリンク共有方針の下でのVMマイグレーションのパフォーマンスを特定するために使用可能である。我々のシミュレーションは、Xenにて実行されるVMマイグレーションのソースコードに従い、図４に示したステージに対応する。s個の同時発生の複数のマイグレーションの下でのVMごとのマイグレーション時間Tmig-iを予測することに重点が置かれ、ここで、それらの全体のマイグレーション時間をT(pal)とする。
【００５０】
VMマイグレーション時間Tmig-iは、マイグレーション以前のオーバーヘッドと、「繰り返される事前コピー」と「停止とコピー」との段階で要する時間T0と、マイグレーション以降のオーバーヘッドと、の３つの部分で構成されている。マイグレーション以前のオーバーヘッドおよびマイグレーション以降のオーバーヘッドのパラメータは、通常、割り当てられたリソースに関してはあまり変化しないので、複数の同時マイグレーションでは、システムは、マイグレーション以前のオーバーヘッドおよびマイグレーション以降オーバーヘッドの値を、１つのVMマイグレーションでのマイグレーション以前のオーバーヘッドおよびマイグレーション以降オーバーヘッドと同じ値として使う。しかしながら、時間T0は、複数のマイグレーション間で共有している帯域幅のために、非常に変化するであろう。s個のマイグレーションが、利用可能な帯域幅Bを有するネットワークリンクで同時に実行されたときの場合では、各マイグレーションは、B/sの帯域幅にのみ割り当てられる。帯域幅の利用でのTCPプロトコルのオーバーヘッドを考慮して、システムは、さらに、マイグレーションごとに、割り当てられた帯域幅を、
【００５１】
【数２】
0005851618.tif 000004
【００５２】
として示し、ここで、Δは、TCP輻輳制御のオーバーヘッドの起因する帯域幅の減少の度合いを表す。複数のマイグレーションの間の帯域幅使用の多重化のために、Δの値は、s、すなわち、同時発生のマイグレーションの数の増加に応じて減少する。システムは、以下の式を使ってΔ値を決定する。
Δ＝0.25*exp[-0.5*(s-1)]                  （５）
システムは、我々の実験の結果に最も適合するΔを見つけるので、（５）の指数関数を使ってΔを表す。（５）には２つの定数要素、0.25と0.5がある。最初の定数値0.25は、「additive increase and multiplicative decrease」のTCPの動作によって決定され、その理由は、１つだけのマイグレーションが１つのネットワークで発生したとき、すなわちs=1、帯域幅の使用は、全部の帯域幅の0.75（そして、0.25＝1-0.75）であるからである。２番目の定数値0.5は、実験結果に基づいた関数（５）の校正に由来する。式（４）と（５）から、１つのマイグレーションがその１つのリンクで実行されたとき、
【００５３】
【数３】
0005851618.tif 000005
【００５４】
は0.75Bあたりのみになり、一方、各マイグレーションで実際に使用された帯域幅は、同時発生のマイグレーションの数sの増加につれて、B/sに近づくために指数的に増加する。実際の帯域幅
【００５５】
【数４】
0005851618.tif 000006
【００５６】
が与えられると、システムは、マイグレーションごとに時間T0をシミュレーションすることができ、そして、そのトータルのマイグレーション時間をTmig-iとする。
【００５７】
さまざまなVM特性およびリンクの利用可能な帯域幅が与えられると、システムは、シミュレーションツールを使うことによって、さまざまなリンク共有方針の下での、全体のVMマイグレーション時間を求める。シミュレーション結果から、システムは、最適のリンク共有が、主に、リンク利用可能な帯域幅と移行中の複数のVMのメモリダーティ率という２つの要素に依存することを見つける。この理由は、これらの２つのメトリックが、マイグレーション中に転送されることが必要なオリジナルのVMメモリに加えて、追加コンテンツのサイズを決定するからである。多くのシミュレーションのシナリオを要約した後、特定のリンク帯域幅とVMメモリダーティ率が与えられると、システムは、最短のトータルのマイグレーション時間を引き起こす最適な同時発生のマイグレーションの数sを得ることができる。
【００５８】
システムは、移行中の複数の全てのVMが１GBのメモリを有し同じメモリダーティ率を共有していると想定する。最適なマイグレーション数sは、リンク帯域幅の増加に応じて増加するが、VMメモリのダーティ率の増加に応じて減少する。広いリンク帯域幅と小さいメモリダーティ率を有する領域では、システムは、最もよいパフォーマンスを実現するために、３つの同時発生のマイグレーションを行うことができる。これは、そのような十分な帯域幅と低いメモリダーティ率との条件では、リンク帯域幅の共有のメリットは、増加したメモリダーティ率のデメリットをしのぐからである。一方、リンク帯域幅が小さく複数のVMが大きいメモリダーティ率を有するとき、連続的なマイグレーションが最も良くなる。これら２つのメトリックのたった１つに基づいてs値を推定することは困難である。システムがリンク帯域幅とVMメモリダーティ率との両方の値を持つときのみ、システムは、最適な同時発生マイグレーション数を決定することができる。
【００５９】
次に、全体的なリソース割り当てを説明する。上記説明では、帯域幅が、複数のマイグレーションのための１つのネットワークリンクにおいて共有されている。しかしながら、全体のネットワークは、特定のトポロジデザインによって構成された多くの数の通信リンクで構成されている。一方では、各マイグレーションは、そのマイグレーションパス、すなわち、ソースから目的地のマシンまで、のうちの複数のネットワークリンクのセット、を、通常カバーする。各リンクの帯域幅共有方針に基づいて、このセクションは、最小のトータルのマイグレーション時間を達成するために、複数のマイグレーションに対して全体的なネットワークリソースの最適な割り当てを見つけることを試みる。図１は、ネットワークにおけるそのような複数のマイグレーションを表す。上記例のように、重複したリンクを有する２つだけのマイグレーションを処理することは比較的容易であるが、それらのマイグレーションパスに沿って重複する様々なリンクを有する多くのマイグレーションの最もよい構成を見つけることは、組合せ最適化問題になる。１つの実施形態では、システムは、ビンパッキングアルゴリズムを使ってその問題を処理する。システムは、ネットワーク内の全てのリンクをビンとして扱い、そして、多次元ベクトルＣを使ってその容量を表す。すなわち、システムは、ネットワーク内の各リンクに索引を付け、そして、それらのリンク内の利用可能な帯域幅を
Ｃ＝［c1，c2，・・・cr］T      （６）
として測定する。ここで、ｒはビンの中のリンクの数と等しい。実際には、ｒの値は、ネットワーク構成と同様に、ネットワーク内の物理リンクの数に依存する。例えば、ネットワークが、ネットワーク構成において典型的な全二重モードで動作されるとき、値ｒは、トラフィック方向の区別のためにネットワークリンクのサイズの２倍に等しい。ネットワークが、等価コストマルチパス（ECMP）負荷共有によって構成されている場合、システムは、負荷のバランスを取るために使用されるそれらの複数のリンクを１つの論理リンクに結合する必要があり、そして、ベクトル（６）内に論理リンクを唯一含む。
【００６０】
ビンパッキングアルゴリズムでのアイテムは、各マイグレーションタスクに関連する。複数のネットワークリンクの複数のインデックスが与えられると、システムは、ｒ次元のバイナリーベクトルP(i)＝[1,0,0,・・・,1]Tを使ってマイグレーションMiのパスを表し、そして、i番目のエントリ内の値「1」はパス内のi番目のリンクの包括を表し、「0」は包括を表さない。マイグレーションMiのエンドツーエンドの帯域幅要求は、ベクトル
D(i)＝P(i)×d(i)＝[1,0,0,・・・,1]T×d(i)        （７）
として定義され、d(i)は、Miに対して割り当てられた、予想された帯域幅であり、式９で決定されるであろう。
【００６１】
ここで、ビンの容量とすべてのアイテムのリソース要求が与えられると、ビンパッキングアルゴリズムは、それらのアイテムを最小数のビンの中に詰め込むことを行うことになる。そうすることによって、システムは、全てのマイグレーションの最早の完了を実現することができ、その理由は、ビンパッキングによって生成されたビンの数が、それらのマイグレーションのトータルの期間を表すからである。
【００６２】
ビンパッキング機構に続いて処理される必要があるいくつかの問題がある。１）式（７）内の予期された帯域幅割り当てd(i)をどのように決定するか、すなわち、マイグレーションタスクごとに要求D(i)をどのように決定するか。２）マイグレーションスケジューリングのために使用されるビンパッキングアルゴリズムの詳細は何か。３）同じ期間が全てのマイグレーションのために使われると、複数のマイグレーションタスクが異なる期間を持つ状況をどのように処理するか。システムは、マイグレーション要求を推定することによってこれらの問題を処理する。
【００６３】
各マイグレーションMiに割り当てられる予期された帯域幅d(i)は、複数のマイグレーションの最短の完了を実現するために重要である。d(i)が小さいと、システムは、各ビンに、より多くのマイグレーションを詰め込むことができ、そして、トータルのマイグレーション期間が減少可能になる。しかしながら、d(i)が非常に小さいと、各ビンの中に多くの同時発生のマイグレーションが存在することになり、ネットワークリソースの競い合いとなり、そのため、それらの同時発生タスクのためのマイグレーション時間、すなわち、各期間の長さが長くなっていくであろう。最適なリンク共有方針は、各ネットワークリンクにおいて、同時発生する複数のマイグレーションの数についてのガイドラインを提供するので、システムは、Miのマイグレーションパスに沿ったすべてのリンクにおいて、そのような方針に基づいてd(i)の値を決定する。
【００６４】
システムは、Miのパス内の複数のリンクを、
【００６５】
【数５】
0005851618.tif 000007
【００６６】
として示し、その各々は利用可能な帯域幅cj，j=1,・・・,kを有する。以下では、システムは、まず、
【００６７】
【数６】
0005851618.tif 000008
【００６８】
におけるMiの帯域幅要求を推定し、それから、それらのローカルの推定から全体の要求d(i)を得る。
【００６９】
【数７】
0005851618.tif 000009
【００７０】
の利用可能な容量cjと、メモリページダーティ率Riを有する移行中VMと、が与えられると、システムは、シミュレーション結果から、そのリンクにおける最適な帯域幅共有方針
【００７１】
【数８】
0005851618.tif 000010
【００７２】
を特定することができ、その最適な帯域幅共有方針は、最短のトータルマイグレーション時間を達成するためにそのリンクで同時に移行できるそのような複数のVMの最適な数を表す。それに基づいて、システムは、
【００７３】
【数９】
0005851618.tif 000011
【００７４】
におけるMiの帯域幅要求を
【００７５】
【数１０】
0005851618.tif 000012
【００７６】
として決定する。
すなわち、Miのローカル帯域幅要求
【００７７】
【数１１】
0005851618.tif 000013
【００７８】
は、最適なマイグレーション時間を達成するために、そのリンクに
【００７９】
【数１２】
0005851618.tif 000014
【００８０】
個のそのような同時発生の複数のマイグレーションを与えるために決定される。リンクの利用可能な容量が並列マイグレーションをサポートするために十分に大きくないと、すなわち、
【００８１】
【数１３】
0005851618.tif 000015
【００８２】
であると、マイグレーションMiが、そのリンクにおいて利用可能な帯域幅の全てを消費することができる。もしそうでなければ、Miは、他のマイグレーションタスクとそのリンクを共有しなければならないので、帯域幅容量の一部を得るのみとなる。移行中の全ての複数のVMはメモリページダーティ率のような同じ特性を持っていると仮定しているため、式（８）は、
【００８３】
【数１４】
0005851618.tif 000016
【００８４】
の近似値を提供する、ということを示す。システムは、移行中の複数のVMの特徴を差異化してより正確な
【００８５】
【数１５】
0005851618.tif 000017
【００８６】
を得ることができるが、それは、問題の複雑さを非常に増し、それゆえに、ビンパッキングアルゴリズム用の組合せ探索空間を増大する。そのため、システムは、実行が容易で良い精度も維持する、式（８）を使ったローカルのマイグレーション要求の推定を行う。
【００８７】
システムが、Miのパスに沿ったすべてのリンク
【００８８】
【数１６】
0005851618.tif 000018
【００８９】
の帯域幅要求
【００９０】
【数１７】
0005851618.tif 000019
【００９１】
を見つけると、Miの全体の帯域幅要求は、全てのローカルの推定の中の最大の要求
【００９２】
【数１８】
0005851618.tif 000020
【００９３】
として決定される。
ここで、全体の要求d(i)は、複数のマイグレーションの早期の完了を確実にするためにローカル要求
【００９４】
【数１９】
0005851618.tif 000021
【００９５】
の全てを満たすべきである、ということが直観的に理解できる。稀ではあるが、要求d(i)はMiのパスにおけるいくつかのリンクの利用可能な帯域幅を超えるかもしれない可能性がある、ということを示す。この場合、d(i)は、それらのリンクの最小の帯域幅容量として決定される。次に、システムは、ビンパッキング解決策を決定する。
【００９６】
システムは、複数のマイグレーションタスクを、最も少ない数のタイムスロットに中に詰めることを望み、ここで、各タイムスロット内に割り当てられた複数のマイグレーションの総要求は、ネットワークの容量を超えるべきではない。そのようなビンパッキング問題はNP困難であり、そして、その近い最適の解決策を特定するための多くの方法が存在している。この文書では、システムは、first-fit-decreasing（FFD）方法を使って、複数のマイグレーションをスケジュールする。FFD方法は、帯域幅要求の多い順に、複数のマイグレーションタスクをソートし、そして、各タスクを、それを収容できる最も近い将来の期間に配置することを試みる。より具体的には、FFDベースのマイグレーションスケジューリングは、以下のステップで示されることができる。
【００９７】
１．式（７）で示された、マイグレーションMiごとのリソース要求ベクトルD(i)を、スカラーη(i)に変換する、D(i)→η(i)、ここで、η(i)はD(i)内の全てのエレメントの合計と等しい。
【００９８】
２．それらの変換されたη(i)の値に基づいて、複数のリソース要求をソートする。
【００９９】
３．高いη(i)から低いη(i)へ複数のマイグレーションタスクをスキャンする。選択されたマイグレーションタスクごとに、システムは、選択されたマイグレーションタスクを扱うための使用されていない容量を依然として有している最も近い将来の時間間隔Tに、選択されたマイグレーションタスクを配置することを試みる。
【０１００】
４．すべてのマイグレーションジョブが割り当てられるまで、ステップ３）を繰り返す。
【０１０１】
ベクトルDを使って異なるマイグレーションの間の帯域幅要求を比較してソートすることが簡単ではないので、ステップ１では、システムは、要求ベクトルDをスカラηに変換する。ここで、システムは、D内の全てのエレメントの合計を、変換されたスカラηとして使う。より多くの帯域幅を必要とし多くのリンクをカバーもする複数のマイグレーションがスケジューリングにおいてより高い優先権を得るべきであるということが直感される。上記ステップの全てを実行した後、割り当てられたビンの数Tbが、トータルの複数のマイグレーションタスクの期間と等しくなる。
【０１０２】
実際には、複数のマイグレーションタスクは、VMメモリサイズ、メモリページダーティ率等におけるそれらの変動のために、異なる時間期間を有している。複数のマイグレーションタスクを同期させるための各タイムスロットの間での明らかな境界線はない。そのような一般的な状況では、システムは、依然としてFFDベースの方法を使って複数のマイグレーションをスケジュールする。しかしながら、各マイグレーションのスタートは、時間よりもむしろイベント信号によって誘発される。すなわち、１つのマイグレーションが完了したとき、それは、マイグレーションスケジューラに信号を送信する。スケジューラは、そのイベントを受け付けると、複数のネットワークリンクにおいて現在利用可能な帯域幅
【０１０３】
【数２０】
0005851618.tif 000022
【０１０４】
を計算する。ここで、Cは式（６）で表されたオリジナルのリンク容量であり、複数のD(k)は継続中の複数のマイグレーションの帯域幅要求である。システムは、C(new)を現在のビンのサイズとして見なし、C(new)の容量を満たすことができる多くのマイグレーションタスクを割り当てることの試みを用いて、待ちリストに配列されたマイグレーションタスクをスキャンする。すべての複数のVMがそれらの目標のマシンに移行したとき、全体の処理が停止する。
【０１０５】
図５は、我々のマイグレーションスケジューラの全体の機能を示す。システムは、ホストされる複数のVMのいずれかが移行を望むたびにスケジューラにリクエストを送信するために、各マシンに仮想管理ドメイン、すなわちXenでのドメイン０を設定する。スケジューラは、リクエストを受け付けると、他の仮想マシンからのリクエストに基づいてそのアクションを行う時を決定する。同時発生のマイグレーションのリクエストがないと、マイグレーションは直ちに開始できる。その反対の場合、スケジューラは、上述したビンパッキングアルゴリズムに基づいてマイグレーションの計画を作成する。すなわち、スケジューラは、まず、システムの利用可能な容量を満たすためのマイグレーションの数をスケジュールする。１つのマイグレーションが完了した後、スケジューラは、全てのマイグレーションが完了するまで、待ちリスト内の他のタスクを開始する。システムは、スケジューラの助けを得て、複数のマイグレーションの最速の完了を達成することができる。
【０１０６】
スケジューラがマイグレーションの決定をするためには、各VMのメモリページダーティ率、および、ネットワーク内の各リンクの利用可能な帯域幅という、２つの種類の計測が集められる必要がある。VMメモリダーティ率は、VMのメモリページごとにダーティ（‘1’）か否（‘0’）かの情報を含む、Xen内に提供されているビットマップデータ構造をチェックすることを、Xenハイパーバイザに指示することによって得られる。データ収集の間、システムは、５０msごとにダーティなビットマップを読み、そして、８秒ごとにビットマップをクリーンにする。そのような「ピークアンドクリーン」ステップを３回実行した後、システムは、平均VMダーティ率を計算し、それをマイグレーションスケジューラに送る。
【０１０７】
ネットワークリンクの利用は、複数のSNMPトラフィックカウンタを通じて複数のネットワークスイッチ内の各ポートのトラフィックを監視することによって獲得される。システムは、トラフィック値と複数のネットワークリンクのオリジナルの容量とに基づいて、各リンクにおいて利用可能な帯域幅を計算することができ、そして、それをマイグレーションスケジューラに送る。複数のVMマイグレーションの進展を保証するために、システムは、リンクごとに、利用可能な帯域幅の低い境界、すなわち、１００Mbpsを設定する。計算された利用可能な帯域幅が、その低い境界よりも低いと、システムは、その低い境界の帯域幅を使ってそのリンクの利用可能な帯域幅を表す。そうすることによって、複数のマイグレーションタスクは常に開始されるが、複数のマイグレーションタスクは帯域幅リソースにおいてバックグラウンドトラフィックと競合するかもしれない。
【０１０８】
VMメモリとネットワーク情報を集めるための時間間隔は、複数の同時発生のマイグレーションの頻度と同様にVMの負荷の変化に応じて変動する。通常、データ収集のオーバーヘッドを減らすために、それは１０分以内に設定されることができる。負荷が比較的安定し同時発生のマイグレーションがほとんど発生しないと、そのサンプリング期間は、数時間にまで延長することができる。データを収集する期間を決定することは、システムオペレータ次第である。スケジューラでは、マイグレーション計画を作成することに、最近に観測された測定が使われる。
【０１０９】
システムが、非常に多くのマシンを含む場合、システムは、複数のマイグレーションスケジューラを持つことができ、その各々は、複数のVMのサブセットからの複数のマイグレーションに対して責任を持つ。現在のVMマイグレーションは同じローカルエリアネットワーク（LAN）内にのみ限定されているので、ラージスケールのシステムにおいて、LANセグメントごとに、少なくとも１つのマイグレーションスケジューラを有することは当然のことである。
【０１１０】
システムは、ハードウェア、ファームウェア、または、ソフトウェア、もしくは、その３つの組合せで実現されてもよい。本発明は、プロセッサ、データ記憶システム、揮発性と不揮発性のメモリおよび／またはストレージエレメント、少なくとも１つの入力装置、および、少なくとも１つの出力装置、を有するプログラム可能なコンピュータで実行されるコンピュータプログラムで実現されることが望ましい。
【０１１１】
例の目的で、システムを実現するためにコンピュータのブロック図が図６において次に示されている。コンピュータは、好ましくは、プロセッサ、ランダムアクセスメモリ（RAM）、プログラムメモリ（好ましくは、フラッシュROMのような、書き込み可能なリードオンリーメモリ（ROM））、および、CPUバスに接続された入力／出力（I/O）コントローラを含む。コンピュータは、ハードディスクとCPUバスに接続されたハードドライブコントローラを適宜含んでもよい。ハードディスクは、本発明とデータのようなアプリケーションプログラムを記憶するために使われてもよい。あるいは、アプリケーションプログラムは、RAMまたはROMに記憶されてもよい。I/Oコントローラは、I/Oバスを通じてI/Oインタフェースと接続される。I/Oインタフェースは、シリアルリンク、ローカルエリアネットワーク、無線リンク、および、パラレルリンクのような、通信リンク上で、アナログまたはデジタル形式のデータを送受信する。適宜、表示部、キーボードおよびポインティングデバイス（マウス）が、I/Oバスに接続されてもよい。あるいは、別々の接続部（別々のバス）が、I/Oインタフェース、表示部、キーボード、および、ポインティング装置のために使われてもよい。プログラム可能なプロセッシングシステムは、予めプログラムされていてもよいし、他のソース（例えば、フロッピーディスク、CD-ROM、または、他のコンピュータ）からプログラムをダウンロードすることによってプログラム（および、再プログラム）されてもよい。
【０１１２】
各コンピュータプログラムは、マシンが読み取り可能な記録媒体、または、一般的または特定目的にプログラム可能なコンピュータによって読むことが可能な装置（例えば、プログラムメモリ、または、磁気ディスク）に実質的に記憶され、上述した処理を実行するためにその記録媒体または装置がコンピュータによって読まれたときにコンピュータを構成しコンピュータの動作を制御する。本発明のシステムは、コンピュータプログラムで構成され、コンピュータ読み取り可能な記録媒体において具体的に表現されると考えられることも可能であり、そのように構成された記録媒体は、コンピュータに、上述した機能を実行させるための特定および予め定義された手法を動作させる。
【０１１３】
システムは、特許法に従い、かつ、新規の原理を利用するために当業者に必要とされる情報を提供し、かつ、要求されるような具体的な構成要素を構成し使用するするために、かなり詳細に記載されている。しかしながら、本発明は、具体的に異なる機器や装置によっても実現可能であり、機器の詳細と動作処理との両方での種々の変形が本発明のスコープから逸脱することなく実現可能であることが理解されるべきである。
【図１】
0005851618.tif 000030
【図２】
0005851618.tif 000031
【図３】
0005851618.tif 000032
【図４】
0005851618.tif 000033
【図５】
0005851618.tif 000034
【図６】
0005851618.tif 000035