(57)【要約】【課題】移動元の物理マシンからの複数の仮想マシン（ＶＭ）のライブマイグレーションを行う際に、メモリコピーに必要な帯域を十分に確保できるとともに、競合するユーザトラフィックを過度に制約しないようにする。【解決手段】ＶＭに関する情報及びネットワークでのトラフィックに関する情報の少なくとも一方に基づいて複数の仮想マシンにおけるライブマイグレーションの実行順を定め、かつ、ライブマイグレーション実施前のユーザトラフィック帯域からの変動が小さくなるようにライブマイグレーションの実施中におけるユーザトラフィック帯域の帯域制御量を決定する、スケジュール決定部２６を設ける。【選択図】図６
2014153997.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理マシンと前記物理マシン間を接続するネットワークとを有し前記各物理マシン上で仮想マシンが動作可能であって、移動元の物理マシンから他の一または複数の物理マシンへの複数の仮想マシンのライブマイグレーション時に、仮想マシン移動のためのメモリコピートラフィックと、前記仮想マシン移動のためのメモリコピートラフィックとは異なるその他トラフィックとが共通のリンクを使用する仮想マシンシステムにおいて、ライブマイグレーションのスケジューリングを行う方法であって、
前記仮想マシンに関する情報及び前記ネットワークでのトラフィックに関する情報の少なくとも一方に基づいて、前記複数の仮想マシンにおけるライブマイグレーションの実行順を定める段階と、
ライブマイグレーション実施前の前記その他トラフィックの帯域からの変動が小さくなるように、前記ライブマイグレーションの実施中における前記その他トラフィックの帯域制御量を決定する段階と、
前記実行順に応じて１つずつ前記仮想マシンのライブマイグレーションの実施を前記物理マシンに指示する段階と、
前記帯域制御量を前記物理マシンまたは前記ネットワークに組み込まれた帯域制御手段に設定する段階と、
を有するスケジューリング方法。
【請求項２】
前記各仮想マシンのメモリ使用量及びメモリ変化速度を収集する段階をさらに有し、
前記実行順を定める段階において、前記各仮想マシンごとのメモリ使用量及びメモリ変化速度に基づき、与えられた帯域の下でのライブマイグレーション時間が短い順に、あるいは、与えられた移動時間の下でのメモリコピートラフィック帯域が小さい順に、前記実行順を定める、請求項１に記載のスケジューリング方法。
【請求項３】
前記メモリ変化速度が０である仮想マシンのライブマイグレーションを、他の仮想マシンのライブマイグレーションの実行中に平行して実施するように、前記実行順を定める、請求項２に記載のライブマイグレーション方法。
【請求項４】
前記各仮想マシンに関するトラフィックについてのトラフィック情報を収集する段階をさらに有し、
前記実行順を定める段階において、前記トラフィック情報に基づき、仮想マシンごとの入力または出力トラフィックが多い順に、前記実行順を定める、請求項１に記載のライブマイグレーション方法。
【請求項５】
前記帯域制御量を決定する段階において、各仮想マシンの移動時間が均等であるという条件の下で、あるいは、前記その他トラフィックの帯域の低下量が設定値以内であってかつ最も短い時間で全ての仮想マシンのライブマイグレーションを完了させることができるという条件の下で、前記各仮想マシンに係る前記その他トラフィックの帯域制限量を決定する、請求項１乃至４のいずれか１項に記載のライブマイグレーション方法。
【請求項６】
複数の物理マシンと前記物理マシン間を接続するネットワークとを有し、前記各物理マシン上で仮想マシンが動作可能な仮想マシンシステムであって、
前記物理マシンまたは前記ネットワークに組み込まれて、仮想マシン移動のためのメモリコピートラフィックとは異なるその他トラフィックの帯域制御を行う帯域制御手段と、
前記物理マシン間での前記仮想マシンのライブマイグレーションを制御し、帯域制御の指示を行う管理装置と、
を備え、
前記管理装置は、
移動元の物理マシンから複数の仮想マシンのライブマイグレーションを実施する際に、前記仮想マシンに関する情報及び前記ネットワークでのトラフィックに関する情報の少なくとも一方に基づいて前記複数の仮想マシンにおけるライブマイグレーションの実行順を定め、かつ、ライブマイグレーション実施前の前記その他トラフィックの帯域からの変動が小さくなるように前記ライブマイグレーションの実施中における前記その他トラフィックの帯域制御量を決定する、スケジュール決定手段と、
前記スケジュール決定手段が決定した前記実行順に応じて１つずつ前記仮想マシンのライブマイグレーションの実施を前記物理マシンに指示するＶＭ管理手段と、
前記スケジュール決定手段が決定した前記その他トラフィックの帯域制御量を前記帯域制御手段に設定する帯域制御設定手段と、
を有する、仮想マシンシステム。
【請求項７】
前記物理マシンまたは前記管理装置内に設けられ、前記各仮想マシンの状態を監視するＶＭ状態監視手段と、
前記管理装置内に設けられ、前記ＶＭ状態監視手段から前記各仮想マシンのメモリ使用量及びメモリ変化速度を収集する情報収集手段と、
をさらに備え、
前記スケジュール決定手段は、前記情報収集手段が収集した前記各仮想マシンごとのメモリ使用量及びメモリ変化速度に基づき、与えられた帯域の下でのライブマイグレーション時間が短い順に、あるいは、与えられた移動時間の下でのメモリコピートラフィック帯域が小さい順に、前記実行順を定める、請求項６に記載の仮想マシンシステム。
【請求項８】
前記物理マシンまたは前記ネットワーク内に設けられ、前記各仮想マシンに関するトラフィックを監視するトラフィック監視手段と、
前記管理装置内に設けられ、前記トラフィック監視手段から前記各仮想マシンに関するトラフィックについてのトラフィック情報を収集する情報収集手段と、
をさらに備え、
前記スケジュール決定手段は、前記情報収集手段が収集した前記トラフィック情報に基づき、仮想マシンごとの入力または出力トラフィックが多い順に、前記実行順を定める、請求項６に記載の仮想マシンシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン技術に関し、特に、複数の物理マシンを有して仮想マシンの動作を停止させることなく物理マシン間で仮想マシンの移動を行うライブマイグレーションを行う際のスケジューリング方法と、そのようなスケジューリング方法を実行する仮想マシンシステムとに関する。
【背景技術】
【０００２】
負荷の最適配置や省電力化などを目的として、仮想マシン技術が注目されている。仮想マシン（ＶＭ：Virtual Machine）は、コンピュータの動作をエミュレートするソフトウェアによって実現されるものであり、仮想マシン技術を用いることによって、１台の物理マシン（物理的な実体としてのコンピュータ）上で、異なるオペレーティングシステム（ＯＳ：Operating System）を動作させてそのＯＳ上で各種のアプリケーションソフトウェア（ＡＰＬ）を実行させたり、あるいは、本来ならば異なるコンピュータアーキテクチャ環境で動作するソフトウェアを実行させたりすることができる。仮想マシン技術は、例えば、データセンタなどで広く用いられている。
【０００３】
また、ネットワークに接続された異なる物理マシン間で、仮想マシンの動作を止めずにＯＳごとその仮想マシンを移動させる「ライブマイグレーション技術」がある。ライブマイグレーションは、ネットワークを介して、仮想マシンのメモリ情報のコピーを移行先の物理マシンに送信することで実現している。このライブマイグレーション技術により、例えばある物理マシンが高負荷になった際に、当該物理マシン上で動作している仮想マシンを他の物理マシンに移動させることによって、高負荷状態を解消することができる。
【０００４】
図１は、仮想マシンのライブマイグレーションを説明する図である。移行元の物理マシン１１と移行先の物理マシン１２とは、ネットワーク１３で接続しており、また共有ストレージ１４を共有している。各物理マシン１１，１２では、それぞれ、仮想化ソフトウェア１５が動作しており、仮想化ソフトウェア１５によって物理マシン１１，１２上に仮想マシン（ＶＭ）が実現されている。ＶＭでは、オペレーティングシステムＯＳとアプリケーションソフトウェアＡＰＬが実行されている。ライブマイグレーションは、移行元の物理マシン１１から移行先の物理マシン１２へのネットワーク１３を介したメモリコピーによって達成される。
【０００５】
非特許文献１には、ＶＭを管理するＶＭ管理サーバを、物理マシンであるサーバとは別個に設け、サーバ上で動作しているＶＭに対し、ＶＭ管理サーバがライブマイグレーションの実行指示を与えると、ＶＭの動作を継続したまま、移行元のサーバと移行先のサーバとの間のネットワークを通じて、メモリ情報の送信を行うことが開示されている。送信中に発生するメモリ差分情報が決められた量まで少なくなると、移行元のサーバのＶＭを一旦停止し、移行先のサーバで、ＶＭを立ち上げる。これによって、ＶＭのライブマイグレーションを実現している。
【０００６】
図２は、ライブマイグレーションに要する時間を説明する図である。ライブマイグレーションのためにメモリコピーを行う場合、メモリコピーを行っている間も移行元の物理マシン上ではＶＭが動作しているため、メモリ情報が逐次変化する。そこで、移行元の物理マシンでのＶＭの全メモリ領域に相当するメモリコピーを実行したのち、そのメモリコピーの間に変化したメモリ情報に関する差分をコピーして移行先の物理マシンに送信する必要がある。この差分コピーの間にもメモリ状態は変化するから、さらにその間の差分をコピーする必要がある。このように、メモリコピーと何回かの差分コピーを実行してメモリ差分情報が上記の量にまで小さくなると（ここまでに要する時間をマイグレーション時間と呼ぶ）、移行元でＶＭを停止し、最後に残った差分をコピーし、その後、移行先でＶＭを立ち上げ、ＶＭによる処理を再開する。ここでの移行元でのＶＭの停止から移行先でのＶＭの再開までに要する時間をダウンタイムと呼ぶ。ライブマイグレーションの全体の要する時間（総マイグレーション時間）は、マイグレーション時間とダウンタイムとの和で表される。
【０００７】
ところで、仮想マシン環境を構成するネットワークには、ＶＭのライブマイグレーション用のネットワークの他にも、共有ストレージアクセスのためのＳＡＮ（ストレージエリアネットワーク：Storage Area Network）、予備系のＶＭとの同期をとるためのフォールトトレランス(fault tolerance)用ネットワーク、ＶＭ管理サーバとの通信のためのネットワーク、ＷＡＮ（広域ネットワーク：Wide Area Network）と接続するネットワークなど、さまざまなネットワークが必要である。図３は、ＶＭとネットワーク環境の一例を示している。インタフェース数の制限やコストの面などから全てのネットワークを物理的に分離することは非効率であり、物理リンクをこれらのネットワークで共用し仮想ローカルエリアネットワーク（ＶＬＡＮ：Virtual Local Area Network）技術などにより論理的にネットワークを分けることで、効率よくリソースを使用することができる。ただし、ＶＭのライブマイグレーションの実行時において、移行元の物理マシンと移行先の物理マシンとの間のネットワークには、ＶＭのライブマイグレーション用のメモリ情報以外にも、さまざまなトラフィックが流れている可能性がある。
【０００８】
図４は、ライブマイグレーションの実行時に想定されるネットワークトラフィックの一例を示す図である。図４では、複数の物理マシンがネットワークで接続されている仮想マシンシステムが示されており、ここでは、物理マシン＃１〜物理マシン＃３がスイッチ（ＳＷ）＃１に接続し、同様に、物理マシン＃４〜物理マシン＃６がスイッチ＃２に接続している。スイッチ＃１及びスイッチ＃２は、さらに、ルータを介してパケット転送網にも接続している。スイッチ＃１には、さらに、共有ストレージ１４と、ＶＭ管理サーバ１６も接続している。ここで、物理マシン＃３は、予備系のＶＭのためのものであるとし、物理マシン＃１から物理マシン＃２に１つのＶＭ（ＶＭ＃１）をライブマイグレーションする場合を考える。このとき、物理マシン＃１と共有ストレージ１４の間には共有ストレージアクセスのトラフィックが発生し、物理マシン＃１とパケット転送網の間にはユーザトラフィックが発生し、物理マシン＃１と物理マシン＃３との間にはフォールトトレランス同期情報のトラフィックが発生しており、これらのトラフィックによって、物理マシン＃１とスイッチ＃１との間の物理リンクの帯域が消費されて、物理マシン＃１と物理マシン＃２との間でのライブマイグレーションのためのメモリコピー用帯域が極端に小さくなる。ライブマイグレーションのために使用できる帯域が十分に確保できないと、メモリコピーに時間がかかってライブマイグレーション完了までに時間がかかるようになったり、メモリ差分情報がなかなか小さくならずにマイグレーション失敗となったりする可能性がある。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】“VMware vSphereTM vSphere vMotionTM：ダウンタイムなしで仮想マシンを移行”、[online]、［2012年6月11日検索］、インターネット〈http://www.vmware.com/jp/products/datacenter-virtualization/vsphere/vmotion/overview.html〉
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述したように、従来のネットワーク環境において仮想マシン（ＶＭ）のライブマイグレーションを行おうとする場合、ネットワークでの他のトラフィックの影響によりメモリコピー用に十分な帯域が確保できなくなり、ライブマイグレーションに時間がかかったりライブマイグレーションの失敗などが起きたりする。
【００１１】
従来のライブマイグレーション技術における上述した課題を解決するために、本発明者らは既に特願２０１２−１７６８１１において、ＶＭのライブマイグレーションの実行時に、ＶＭのメモリコピーのトラフィックが流れるネットワーク上でその他のトラフィックのための帯域を一時的に制限し、メモリコピーのトラフィックのための帯域を確保することを提案している。この手法によって、ＶＭライブマイグレーションを高速に完了させることができる。図５は、このように、ＶＭライブマイグレーションの実行時に、ＶＭメモリコピー以外のトラフィックの帯域を制限するようにしたシステムの構成の一例を示している。
【００１２】
図５に示すシステムにおいて、複数の物理マシン（物理マシン＃１〜物理マシン＃ｉ）がスイッチ３０を介して相互に接続しており、各スイッチ３０には、ネットワーク内のトラフィックを監視するトラフィック監視部３３とトラフィックごとに帯域を制御する帯域制御部３２とが設けられている。各物理マシン上では１または複数のＶＭを動作させることが可能であり、各物理マシンには当該物理マシン上のＶＭの状態を監視するＶＭ状態監視部３１が設けられている。各スイッチはルータを介してパケット転送網に接続し、パケット転送網には複数のユーザ端末が接続している。スイッチを制御するための管理装置２０も設けられている。管理装置２０は、ライブマイグレーションの実行が決定されたときに、各スイッチのトラフィック監視部３３でトラフィックを監視した結果に基づく情報と各物理マシンにおいてＶＭ状態監視部３１により各ＶＭの状態の監視した結果に基づく情報とに基づき、ライブマイグレーションに必要な帯域を求めてその帯域を上回る空き帯域があるかを判定し、空き帯域が不足する場合に、帯域制御方法を決定して各スイッチの帯域制御部３２に設定する。
【００１３】
図５に示した構成では、ユーザ端末から各ＶＭに対するトラフィック（ユーザトラフィック）と、ライブマイグレーション時にＶＭのメモリーコピーを行うためのトラフィック（ＶＭメモリコピートラフィック）とがネットワークを共有している。ここで１台の物理マシン（例えば物理マシン＃１）の上で動作している複数のＶＭを、順次、別の物理マシン（例えば、物理マシン＃２〜物理マシン＃ｉ）へ移動させる場合を考える。図５に示したシステムでは、ユーザトラフィックを一時的に制限することによりＶＭメモリコピートラフィック帯域を確保するが、図において太線で示すように、ＶＭの移動の高速化のためにＶＭメモリコピートラフィックにリンク帯域の大半を与えてしまうと、図において細い点線で示すように、ユーザトラフィックが使える帯域が極端に小さくなる。その結果、ＶＭによっては当該ＶＭのユーザトラフィックが長時間にわたって帯域制限されることになり、ユーザに品質劣化を感じさせる原因となる。ここでは、ＶＭメモリコピートラフィックと、ＶＭから出力されるユーザトラフィックが競合する例で説明しているが、ＶＭメモリコピートラフィックと競合するトラフィックは、ユーザトラフィック以外のトラフィックであってもよい。結局、ＶＭライブマイグレーション時にＶＭメモリコピー以外のトラフィックを帯域制限する場合には、ＶＭの移動スケジュールや帯域制御量によっては、ユーザトラフィック等を長時間にわたって制限することになり、ユーザ品質劣化が深刻になるなどの問題が生じる。
【００１４】
本発明の目的は、ライブマイグレーションのメモリコピーに必要な帯域を十分に確保できるとともに、ライブマイグレーションと競合するトラフィックを過度に制約しないスケジューリング方法と、そのようなスケジューリング方法を実行する仮想マシンシステムとを提供することにある。
【課題を解決するための手段】
【００１５】
本発明のライブマイグレーションスケジューリング方法は、複数の物理マシンと物理マシン間を接続するネットワークとを有し各物理マシン上で仮想マシンが動作可能であって、移動元の物理マシンから他の一または複数の物理マシンへの複数の仮想マシンのライブマイグレーション時に、仮想マシン移動のためのメモリコピートラフィックと、仮想マシン移動のためのメモリコピートラフィックとは異なるその他トラフィックとが共通のリンクを使用する仮想マシンシステムにおいて、ライブマイグレーションのスケジューリングを行う方法であって、仮想マシンに関する情報及びネットワークでのトラフィックに関する情報の少なくとも一方に基づいて、複数の仮想マシンにおけるライブマイグレーションの実行順を定める段階と、ライブマイグレーション実施前のその他トラフィックの帯域からの変動が小さくなるようにライブマイグレーションの実施中におけるその他トラフィックの帯域制御量を決定する段階と、実行順に応じて１つずつ仮想マシンのライブマイグレーションの実施を物理マシンに指示する段階と、帯域制御量を物理マシンまたはネットワークに組み込まれた帯域制御手段に設定する段階と、を有する。
【００１６】
本発明の仮想マシンシステムは、複数の物理マシンと物理マシン間を接続するネットワークとを有し、各物理マシン上で仮想マシンが動作可能な仮想マシンシステムであって、物理マシンまたはネットワークに組み込まれて、仮想マシン移動のためのメモリコピートラフィックとは異なるその他トラフィックの帯域制御を行う帯域制御手段と、物理マシン間での仮想マシンのライブマイグレーションを制御し、帯域制御の指示を行う管理装置と、を備え、管理装置は、移動元の物理マシンから複数の仮想マシンのライブマイグレーションを実施する際に、仮想マシンに関する情報及びネットワークでのトラフィックに関する情報の少なくとも一方に基づいて複数の仮想マシンにおけるライブマイグレーションの実行順を定め、かつ、ライブマイグレーション実施前のその他トラフィックの帯域からの変動が小さくなるようにライブマイグレーションの実施中におけるその他トラフィックの帯域制御量を決定する、スケジュール決定手段と、スケジュール決定手段が決定した実行順に応じて１つずつ仮想マシンのライブマイグレーションの実施を物理マシンに指示するＶＭ管理手段と、スケジュール決定手段が決定したその他トラフィックの帯域制御量を帯域制御手段に設定する帯域制御設定手段と、を有する。
【００１７】
本発明において、仮想マシン移動のためのメモリコピートラフィックとは異なるその他トラフィックは、例えば、ユーザトラフィックである。
【発明の効果】
【００１８】
本発明は、仮想マシンに関する情報及びネットワークでのトラフィックに関する情報の少なくとも一方に基づいて複数の仮想マシンにおけるライブマイグレーションの実行順を定め、かつ、ライブマイグレーション実施前のその他トラフィックの帯域からの変動が小さくなるようにライブマイグレーションの実施中におけるその他トラフィック帯域の帯域制御量を決定することにより、ライブマイグレーションと競合するユーザトラフィックを過度に制限することなく、ライブマイグレーションのメモリコピーのための帯域を十分に確保できるようになって、ユーザ品質劣化を最小限にできる、という効果を有する。
【図面の簡単な説明】
【００１９】
【図１】仮想マシン（ＶＭ）のライブマイグレーションを説明する図である。
【図２】ライブマイグレーションに必要な時間を説明する図である。
【図３】ＶＭとネットワーク環境の一例を示す図である。
【図４】ライブマイグレーションの実行時に想定されるネットワークトラフィックの一例を示す図である。
【図５】ＶＭのライブマイグレーションの実行時に、ＶＭメモリコピー以外のトラフィックの帯域を制限するようにしたシステムの構成の一例を示すブロック図である。
【図６】本発明の実施の一形態の仮想マシンシステムにおけるライブマイグレーションを説明するブロック図である。
【図７】図６における仮想マシンシステムにおいて、ＶＭのメモリコピーのために固定した帯域を与えてライブマイグレーションを行ったときと、本発明の方法に基づいてライブマイグレーションを行ったときとにおけるユーザトラフィック帯域を対比して示すグラフである。
【図８】仮想マシンシステムの第１の構成例を示すブロック図である。
【図９】仮想マシンシステムの第２の構成例を示すブロック図である。
【図１０】仮想マシンシステムの第３の構成例を示すブロック図である。
【図１１】仮想マシンシステムの第４の構成例を示すブロック図である。
【図１２】実施例１での動作を示すシーケンス図である。
【図１３】実施例２での動作を示すシーケンス図である。
【発明を実施するための形態】
【００２０】
次に、本発明を実施するための形態について、図面を参照して説明する。図６は、本発明の実施の一形態の仮想マシンシステムにおけるライブマイグレーションを説明する図である。
【００２１】
図６に示した仮想マシンシステムは、図５に示したものと同様に、複数の物理マシン（図示した例では５台の物理マシン＃１〜物理マシン＃５）がネットワークによって接続された構成を有している。各物理マシンはネットワーク内のスイッチ３０に接続している。ここでは、複数のスイッチ３０が設けられ、物理マシンごとにいずれかのスイッチ３０に接続するようになっている。各スイッチ３０は、ネットワーク内のルータを介してパケット転送網にも接続している。パケット転送網には、いくつかのユーザ端末も接続している。
【００２２】
この仮想マシンシステムにおいても、図５に示す仮想マシンシステムと同様に、各物理マシン、各ＶＭ（仮想マシン）及び各スイッチを制御し、ＶＭのライブマイグレーション（移動）や帯域制御を行い、特に、ライブマイグレーションの実行時にネットワーク内の各トラフィックの帯域を制限する管理装置２０が設けられている。図６に示す仮想マシンシステムの管理装置２０は、図５に示したものと比べ、さらに、スケジュール決定部２６を備えている。スケジュール決定部２６は、管理装置２０のデータ保存部２３に格納されているＶＭ状態情報とスケジュール決定アルゴリズム２７にしたがって、移動対象の複数のＶＭの移動順（すなわちＶＭのライブマイグレーションの実行順）、及びユーザトラフィックの帯域制御量と制御順を決定する。ここでの帯域制御量は、帯域制限の下で、当該ユーザトラフィックに対して割り当てられる帯域量を表す。さらに管理装置２０は、スケジュール決定部２６のほかに、ネットワークとのインタフェースとしてパケットを受信するパケット受信部２１と、ネットワークとのインタフェースとしてパケットを送信するパケット送信部２２と、上述したデータ保存部２３と、物理マシン上のＶＭを管理するＶＭ管理部２４と、必要となる情報を収集してデータ保存部２３に格納する情報収集部２５と、スケジュール決定部２６によって決定されたユーザトラフィック帯域制限量に基づき、各物理マシンやＶＭ、スイッチに対して帯域制御設定を行う帯域制御設定部２８と、を備えている。ここでＶＭ管理部２４は、特に、スケジュール決定部２７で決定された結果に基づき、ＶＭのライブマイグレーションの開始を各物理マシンに指示する。このような管理装置２０は、ライブマイグレーションを実行する同一グループの物理マシンに接続するが、管理装置２０からの接続は直接接続である必要はなく、ネットワーク上の到達性があればよい。したがって図示したものでは、管理装置２０は、各スイッチに対して直接接続している。
【００２３】
各物理マシンには、当該物理マシンの負荷状況、各ＶＭのＣＰＵ使用率やメモリ利用率、アプリケーションの動作状態などを監視してそれらに関する情報を収集するＶＭ状態監視部３１が設けられている。特にＶＭ状態監視部３１は、各ＶＭのメモリ使用量およびメモリ変化速度を監視する機能を有する。ここでメモリ変化速度とは、ＶＭのメモリに格納されている情報が時間当たりどれだけ変化するかを示すものである。メモリ変化速度が大きければ、図２に示した差分コピーをより大量に行わなければならなくなる。ＶＭ状態監視部３１は、後述するように、管理装置２０に設けられていてもよい。
【００２４】
各スイッチには帯域制御部３２とトラフィック監視部３３とが設けられている。帯域制御部３２は、管理装置２０での決定に基づき管理装置２０の帯域制御設定部２８から指示された通りに各トラフィックの帯域制御を行う機能を有する。後述するように、帯域制御部３２は、スイッチではなく各物理マシンに設けられていてもよい。トラフィック監視部３３は、各ＶＭの入出力トラフィックを監視する。トラフィック監視部３３は、各物理マシンに設けられていてもよい。
【００２５】
上記の構成において、情報収集部２５は、スイッチまたは物理マシンに設けられたトラフィック監視部３３から、ＶＭのライブマイグレーションを行う物理マシン間のリンクを流れるトラフィックの情報を収集し、スイッチまたは物理マシンに設けられたＶＭ状態監視部３１から、物理マシンの負荷状況、各ＶＭのＣＰＵ使用率やメモリ利用量、メモリ変化速度、アプリケーションの動作状況などを表すＶＭ状態情報を収集する。
【００２６】
次に、本実施形態におけるスケジュール決定アルゴリズム２７について説明する。スケジュール決定アルゴリズム２７は、ＶＭのライブマイグレーションの実行を決定したときに、ＶＭの移動順やトラフィックの帯域制限量、移動スケジュールなどをどのように定めるかを規定するスケジュール決定方式を表すものである。具体的に言えばスケジュール決定方式は、ＶＭの数、ＶＭ移動計画時間、各ＶＭのメモリ使用量、各ＶＭのメモリ変化速度、及びユーザトラフィック量などが与えられたときに、ＶＭの移動順、トラフィックの帯域制御量や制御スケジュール等を定める方式である。ＶＭ移動計画時間は、１または複数について、順次、ＶＭのライブマイグレーションを行うときに、移動対象のＶＭの全体の移動に要する時間として計画された時間のことである。スケジュール決定部２６は、ＶＭライブマイグレーションの実行が決定されたときに、ＶＭマイグレーションの開始に先立って、データ保存部２３からＶＭ状態情報とスケジュール決定アルゴリズム２７を読み出し、読出したＶＭ状態情報とスケジュール決定アルゴリズム２７に基づき、ＶＭの数、ＶＭ移動計画時間、各ＶＭのメモリ使用量、各ＶＭのメモリ変化速度、及びユーザトラフィック量などの情報からＶＭの移動順、トラフィックの帯域制御量や制御スケジュール等を定める決定してそれらを示す情報を出力する。ここでＶＭを順次移動させる時の移動順を決定するやり方のことをＶＭ順序決定方式と呼び、各ＶＭのユーザトラフィックの帯域制御量をどのように決定するかのやり方のことを帯域制御方法決定方式と呼ぶ。以下に説明するように、ＶＭ順序形式方式及び帯域制御方法決定方式には、それぞれ、何通りかのものが考えられる。
【００２７】
図６に示したものでは、物理マシン＃１上に５個のＶＭ（ＶＭ＃１〜ＶＭ＃５）があるとして、ＶＭ＃２を物理マシン＃２に移動（ライブマイグレーション）し、ＶＭ＃３を物理マシン＃３に移動し、ＶＭ＃４を物理マシン＃４に移動し、ＶＭ＃５を物理マシン＃５に移動させる場合を考えている。また、ユーザトラフィックは、物理マシンからユーザ端末への方向のみを考慮するものとする。図では、ＶＭ順序決定方式として、ＶＭ移動計画時間からＶＭ１台当たりの移動時間を算出し、ＶＭごとに、ＶＭのメモリ使用量とメモリ変化速度から、１台当たりの移動時間で移動を完了させるための必要帯域（すなわちＶＭメモリコピートラフィック帯域）を算出し、この必要帯域が小さいものから順にＶＭの移動を行う、というものを用いている。その上で、帯域制御方法決定方式として、ＶＭ移動のための必要帯域（ＶＭメモリコピートラフィック帯域）を物理帯域から除いた分を移動元の物理マシンで動作中のＶＭの数で除算することにより、移動元の物理マシンに対するＶＭごとのユーザトラフィックの帯域制御量を決定する、というものを用いている。複数のＶＭを移動させるときは順番に１つずつさせるので、移動が完了してしまったＶＭに関しては、移動後の物理マシンでのユーザトラフィックの帯域制限は行わない。その結果、図６に示した例では、移動前のユーザトラフィック帯域からの変動量が小さくなるように、帯域制御が実施されることになる。
【００２８】
ここで、図６に示した場合において、物理マシン＃１上のＶＭ＃２〜ＶＭ＃５をそれぞれ物理マシン＃２〜物理マシン＃５に移動させる場合において、各ＶＭごとのメモリ使用量とメモリ変化速度とが表１に示すようなものであったときにおける、本実施形態の方法と図５に示した従来方式との差について、具体的な数値を挙げて説明する。物理帯域としては、物理マシンごとに１０００Ｍｂｉｔ／ｓが用意されるものとし、４台のＶＭを移動するためのＶＭ移動計画時間として１分を想定する。すると、ＶＭ１台当たりの移動時間は１５秒となる。また、ＶＭ＃１は物理マシン＃１に残るものとする。
【００２９】
【表１】
2014153997.tif 000003
【００３０】
図５に示した従来方式において、ＶＭメモリコピートラフィックに９００Ｍｂｉｔ／ｓの帯域を与え、ＶＭ＃２から順番に１つずつさせるとすると、各ＶＭでのユーザトラフィック帯域の時間変化は図７の上半分に示したもののようになる。ここでは、説明を簡単にするため、ＶＭ＃２とＶＭ＃４については、ユーザトラフィック帯域の時間変化は示されていない。ＶＭ＃２〜ＶＭ＃５の移動が完了するために要する時間は、２０秒未満と短いが、ＶＭ＃１は、移動元の物理マシン＃１から動かないので、全体の移動が完了するまで、ユーザトラフィック帯域が大きく制限される。また、ＶＭ＃５は最後に移動し、それまでは移動中の他のＶＭの移動元となる物理マシン＃１に存在するので、ＶＭ＃５についても、全体の移動が完了するまで、ユーザトラフィック帯域が大きく制限される。これに対し、ＶＭ＃３は、それ自体の移動が完了して移動先の物理サーバ＃３でユーザトラフィックを受けるようになれば、それ以降は、ユーザトラフィック帯域の制限を受けなくなる。全体としてみると、従来方式では、移動対象のＶＭのすべてが移動を完了するまでの時間は短いものの、２０秒程度となる移動期間中は、ユーザトラフィック帯域が２０〜５０Ｍｂｉｔ／ｓと極めて低く限定される。
【００３１】
一方、図７の下半分は、図６に示した実施形態における各ＶＭでのユーザトラフィック帯域の時間変化を示している。上述したようにＶＭ１台あたりの移動時間は１５秒であるので、ＶＭ＃２〜ＶＭ＃５の各々について当該ＶＭを１５秒で移動させるために必要となる帯域（ＶＭメモリコピートラフィック帯域）は、表１に示したようになる。この帯域が小さい順に移動順を定めるので、最初にＶＭ＃３を移動させ、以下、ＶＭ＃２、ＶＭ＃５、ＶＭ＃４で移動させることになる。そして、ＶＭ＃２〜ＶＭ＃５の各々を移動している間に、各ＶＭのユーザトラフィックに割り当てられる帯域制御量は、移動中のＶＭごとに、表１に示されるようになる。すなわち、１番目に移動するＶＭ＃３の移動中には、その移動のためのＶＭメモリコピートラフィック帯域として８８．２６６６７Ｍｂｉｔ／ｓが割り当てられるので、物理帯域の１０００Ｍｂｉｔ／ｓからこのＶＭメモリコピートラフィック帯域を差し引いた９１１．７３３３３Ｍｂｉｔ／ｓが、この時点で移動元の物理マシン＃１に存在するＶＭ＃１〜ＶＭ＃５のユーザトラフィックの全体に割り当てられる帯域値となる。これをこのときの物理マシン＃１上のＶＭ数である５で除算することにより、各ＶＭには１８２．３４Ｍｂｉｔ／ｓのユーザトラフィック帯域制御値が与えられることになる。同様に、２番目に移動するＶＭ＃２について考えると、１５秒で移動させるためのＶＭメモリコピートラフィック帯域は１３６．５３３３Ｍｂｉｔ／ｓであり、このときは、ＶＭ＃３が既に移動を完了しているので、移動元の物理マシン＃１でのＶＭの数は４となる。したがって、物理帯域からＶＭメモリコピートラフィックを差し引いて得られる８６３．４６６７Ｍｂｉｔ／ｓを４で除算した２１５．８８Ｍｂｉｔ／ｓが、ＶＭ＃２の移動中にＶＭ＃１、ＶＭ＃２、ＶＭ＃４及びＶＭ＃５に割り当てられるユーザトラフィック帯域制御値となる。ＶＭ＃３は、既に物理マシン＃３に移動完了しているので、そのユーザトラフィック制御値は物理帯域（１０００Ｍｂｉｔ／ｓ）と一致する。
【００３２】
このように、図６に示した実施形態によれば、全ＶＭが移動を完了させるまでの時間（この時間はＶＭ移動計画時間としてユーザが設定できる）は長くなるものの、各ＶＭごとのユーザトラフィック帯域として、概ね２００Ｍｂｉｔ／ｓを保つことができる。もともと物理マシン＃１に５台のＶＭが存在する時点において各ＶＭに割り当てられるユーザトラフィック帯域の平均は２００Ｍｂｉｔ／ｓ（＝（１０００Ｍｂｉｔ／ｓ）／５）であることを考えれば、本実施形態によれば、ＶＭライブマイグレーション時間の大きな増加を伴うことなく、ユーザトラフィック帯域の低下量を最小限とすることができて、ユーザ品質の劣化を最小限にとどめることができる。
【００３３】
次に、スケジュール決定アルゴリズムにおける、ＶＭ移動順序決定方式と帯域制御方法決定方式の各々についてのバリエーションについて説明する。ＶＭ移動順序決定方式についてのバリエーションのいずれかと帯域制御方法決定方式についてのいずれかバリエーションのいずれかとを任意の組み合わせることができる。
【００３４】
ＶＭ移動順序決定方式には、（１）各ＶＭのメモリ情報に基づいてＶＭ移動スケジュールを決定するメモリ情報利用方式と、（２）各ＶＭの入力または出力トラフィック量に基づいてＶＭ移動スケジュールを決定するトラフィック情報利用方式とがある。
【００３５】
帯域制御方法決定方式には、（ａ）各ＶＭの移動時間が均等という条件の下で帯域制御値を決定するＶＭ移動時間均等方式と、（ｂ）ＶＭ移動中にユーザトラフィックを制限するが、制限されたことによるユーザトラフィックの低下量が設定した値以内に収まり、かつ、最も短い時間で全ＶＭの移動が完了するように帯域制御値を決定するユーザトラフィック帯域低下最小化方式とがある。
【００３６】
さらに、ＶＭ移動順序決定方式と帯域制御方法決定方式とを統合したバリエーションの１つとして、（３）メモリ変化速度が０であるＶＭ（すなわち、移動中にＶＭのメモリ内容が変化しないので、差分コピーを必要としないＶＭ）については、他のＶＭの移動と同時に移動させる、という複数ＶＭ同時移動方式がある。
【００３７】
以下、これらのバリエーションの方式について、詳しく説明する。
【００３８】
（１）メモリ情報利用方式：
メモリ情報利用方式は、ＶＭのメモリ使用量やメモリ変化速度がＶＭごとに異なるが、ＶＭのユーザトラフィックが均一な場合に適した方法である。メモリ使用量をｃ［ｂｙｔｅ］、メモリ変化速度をａ［ｂｉｔ／ｓ］、帯域をｂ［ｂｉｔ／ｓ］とすると、ＶＭ移動時間ｔ［ｓ］は、ｔ＝ｃ×８／（ｂ−ａ）で表されるが、メモリ情報利用方式では、このＶＭ移動時間ｔが短い順にＶＭの移動順を定めるものである。帯域ｂは、仮想マシンシステムを構成するネットワークの仕様などに応じて与えられる任意の定数である。ＶＭが１０台（ＶＭ＃１〜ＶＭ＃１０）存在してこれらすべてを移動する場合における移動順の決定例を表２に示す。ここでは、帯域ｂ＝３×１０8［ｂｉｔ／ｓ］としている。表２では、ＶＭごとにメモリ使用量ｃとメモリ変化速度ａとが与えられるとして、ＶＭ移動時間ｔの計算結果とそれに基づく移動順とが示されている。
【００３９】
【表２】
2014153997.tif 000004
【００４０】
メモリ情報利用方式は、移動時間が短いＶＭから素早く他の物理マシンに移動させることにより、移動元の物理マシンのリソースに早い段階から空きができるため、その時点で移動元の物理マシンに存在するＶＭにおけるユーザトラフィック帯域の制限を小さくすることができる、という利点がある。
【００４１】
（２）ユーザトラフィック情報利用方式：
ユーザトラフィック情報利用方式は、ＶＭのメモリ使用量やメモリ変化速度は全て同じであるが、ＶＭのユーザトラフィックがＶＭによって異なる場合に適した方法である。この方法では、ＶＭの入力または出力ユーザトラフィック量が多い順に、ＶＭの移動順を決定する。入力トラフィックに基づくか出力トラフィックに基づくかについては、ＶＭごとに、移動元の物理マシンから出力されるＶＭメモリコピートラフィックと同じ方向のユーザトラフィックを選択する。ＶＭが１０台（ＶＭ＃１〜ＶＭ＃１０）存在してこれらすべてを移動する場合における移動順の決定例を表３に示す。
【００４２】
【表３】
2014153997.tif 000005
【００４３】
表３に示した例では、ＶＭごとの出力ユーザトラフィック量に応じて移動順を定めている。ユーザトラフィック情報利用方式は、出力ユーザトラフィック量が多いＶＭ、すなわちリソースを多く利用しているＶＭから他の物理マシンに移動させることにより、移動元の物理マシンのリソースに早い段階から空きができるため、その時点で移動元の物理マシンに存在するＶＭにおけるユーザトラフィック帯域の制限を小さくすることができる、という利点がある。
【００４４】
（ａ）ＶＭ移動時間均等方式：
ＶＭ移動時間均等方式では、まず、各ＶＭの移動時間ｔを、
移動時間ｔ＝ＶＭ移動計画時間／移動すべきＶＭの数
で算出する。その上で、各移動ＶＭについて、メモリ使用量ｃ［ｂｙｔｅ］及びメモリ変化速度ａ［ｂｉｔ／ｓ］を用いて、移動時間ｔ内で移動を完了させるために必要な帯域Ｂを求める。当該ＶＭが移動中における各ＶＭのユーザトラフィックの帯域制限値は、ＶＭのユーザトラフィック帯域が全てのＶＭで均一な場合には、
（物理帯域−Ｂ）／（移動元の物理マシンに残っているＶＭの数）
によって算出され、一方、ＶＭのユーザトラフィック帯域がＶＭごとに異なる場合には、（物理帯域−Ｂ）によって表される残り帯域を、当該ＶＭの移動開始直前における各ＶＭのユーザトラフィック帯域量の相互間の比率で、各ＶＭに割り当てるものとする。ＶＭが１０台（ＶＭ＃１〜ＶＭ＃１０）存在してこれらすべてを移動する場合における、移動中のＶＭごとに、当該ＶＭが移動しているときの各ＶＭのユーザトラフィック帯域制御値の例を表４に示す。ここでは、ＶＭのユーザトラフィック帯域が全てのＶＭで均一であり、ＶＭ移動計画時間は１２０秒（したがって、各ＶＭの移動時間ｔは１２秒）であるものとする。
【００４５】
【表４】
2014153997.tif 000006
【００４６】
ＶＭ移動時間均等方式では、あるＶＭが移動中における各ＶＭのユーザトラフィック帯域を大きくするためには、ＶＭ移動計画時間を長くすればよい。そして、移動開始前の各ＶＭごとのトラフィック帯域に比例するように、移動中も各ＶＭのユーザトラフィック帯域制御値が設定されるので、移動前のユーザトラフィックからの変動が少なくなるように、帯域制御が実施されることになる。
【００４７】
（ｂ）ユーザトラフィック帯域低下最小化方式：
トラフィック帯域低下最小化方式では、帯域制限を行ったことによるユーザトラフィックの低下量の最大値を予めｘと設定しておく。各ＶＭの移動時のユーザトラフィック制御値ｙは、
ｙ＝（移動前のユーザトラフィック帯域）−ｘ
で求められる。各ＶＭの移動時において当該ＶＭの移動に使える帯域ｂは、
ｂ＝物理帯域−（移動元の物理マシンに残っている各ＶＭのｙの和）
で求められる。特に、ユーザトラフィック帯域が均一である場合には、帯域ｂは、
ｂ＝物理帯域−｛ｙ＊（全ＶＭ数−移動順＋１）｝
と表される。
【００４８】
各ＶＭの移動時間ｔは、
ｔ＝ｃ×８／（ｂ−ａ）
で求められる。
【００４９】
表５は、ユーザトラフィック帯域低下最小化方式において、ＶＭが１０台（ＶＭ＃１〜ＶＭ＃１０）存在してこれらすべてを移動する場合における、移動中のＶＭごとに、当該ＶＭが移動しているときの各ＶＭのユーザトラフィック帯域制御値と帯域制御が行われる時間の例を表５に示す。ここでは、物理帯域が１Ｇｂｉｔ／ｓであって、ＶＭ数が１０であることから最初の移動前の各ＶＭトラフィック帯域が１００Ｍｂｉｔ／ｓであり、ユーザトラフィックの最大低下量を５Ｍｂｉｔ／ｓとしている。また、ＶＭのユーザトラフィックは均一であるとしている。
【００５０】
【表５】
2014153997.tif 000007
【００５１】
ユーザトラフィック帯域低下最小化方式では、最大低下量をどのように設定するかによって、ＶＭの移動中にユーザトラフィックの帯域がどれだけ制限されるかが決まる。移動開始前のそれぞれＶＭのユーザトラフィック帯域から最大低下量を引いた値として、移動中も各ＶＭのユーザトラフィック帯域制御値が設定されるので、移動前のユーザトラフィックからの変動が少なくなるように、帯域制御が実施されることになる。
【００５２】
（３）複数ＶＭ同時移動方式：
次に、メモリ変化速度が０であるＶＭについては、その他のＶＭの移動を実行しているときに、空き帯域を利用して平行して移動を実施するという複数ＶＭ同時移動方式について説明する。
【００５３】
まず、最初のステップ（ステップ１）として、メモリ変化速度ａ［ｂｉｔ／ｓ］が０でないＶＭについて、メモリ使用量をｃ［ｂｙｔｅ］、帯域をｂ［ｂｉｔ／ｓ］として、
ＶＭ移動時間ｔ［ｓ］＝ｃ×８／（ｂ−ａ）
を求める。帯域ｂは、仮想マシンシステムを構成するネットワークの仕様などに応じて与えられる任意の定数である。そして、ａ≠０であるＶＭについて、ＶＭ移動時間ｔが短い順に移動順を定める。
【００５４】
一方、メモリ変化速度ａが０であるＶＭについては、メモリ使用量が小さい順に、別途、移動順を決定する。
【００５５】
ＶＭが１０台（ＶＭ＃１〜ＶＭ＃１０）存在してこれらすべてを移動する場合における移動順の決定例を表６に示す。ここでは帯域ｂが３×１０8［ｂｉｔ／ｓ］であるものとしている。１０台のＶＭの中で、ＶＭ＃３とＶＭ＃４はａ＝０なので、これら以外のＶＭについて、表の「移動順」の欄で１〜８で示されるように、ＶＭ移動時間ｔに応じて移動順が定められる。ａ＝０であるＶＭ＃３及びＶＭ＃４については、メモリ使用量ｃが小さい順に、表６の「移動順」の欄でＡ〜Ｂで示されるように、移動順が定められる。
【００５６】
【表６】
2014153997.tif 000008
【００５７】
次に、２番目のステップとして、メモリ変化速度ａが０でないＶＭについて、当該ＶＭの移動時間ｔを
ＶＭ移動時間ｔ＝ＶＭ移動計画時間／移動すべきＶＭの数
と算出する。そして各移動ＶＭについて、メモリ使用量ｃ［ｂｙｔｅ］及びメモリ変化速度ａ［ｂｉｔ／ｓ］を用いて、移動時間ｔ内で移動を完了させるために必要な帯域Ｂを求める。当該ＶＭが移動中における各ＶＭのユーザトラフィックの帯域制限値を
（物理帯域−Ｂ）／（移動元の物理マシンに残っているＶＭの数）
とする。
【００５８】
表７は、表６に示した場合において、ＶＭ移動計画時間を１２０秒とし、メモリ変化速度ａが０の各ＶＭ（ＶＭ＃３及びＶＭ＃４）の移動時間を１５秒とし、ユーザトラフィックは均一であるとしたときの各ＶＭのユーザトラフィック帯域制御値を示している。
【００５９】
【表７】
2014153997.tif 000009
【００６０】
その後、３番目のステップにおいて、ユーザトラフィック帯域の最大値をｘとしたときのあまり帯域を算出し、その帯域を利用して、メモリ変化速度ａが０であるＶＭ（ＶＭ＃３とＶＭ＃４）の移動を実施するようにスケジュールを決定する。
【００６１】
複数ＶＭ同時移動方式を利用すれば、メモリ変化のないＶＭについては、空き帯域を利用して、他のＶＭと並行して移動を行うので、全ＶＭの移動完了までの時間をさらに短縮することができる。なお、複数ＶＭ同時移動方式においても、上記のＶＭ移動時間均等方式と同様に、移動前のユーザトラフィックからの変動が少なくなるように、帯域制御が実施されることになる。
【００６２】
次に、上記の各バリエーションに適した仮想マシンシステムの例について説明する。
【００６３】
図８に示した仮想マシンシステムは、ＶＭ移動順序決定方式としてメモリ情報利用方式を用いる場合、あるいは複数ＶＭ同時移動方式を用いる場合に適したものである。帯域制御方法決定方式としては、ＶＭ移動時間均等方式及びユーザトラフィック帯域低下最小化方式のいずれも利用することができる。
【００６４】
この仮想マシンシステムは、複数の物理マシン（物理マシン＃１〜物理マシン＃Ｎ）がネットワークに接続された構成を有しており、各物理マシンはネットワーク内のスイッチ３０に接続している。スイッチ３０はパケット転送網にも接続しており、図示していないが、パケット転送網３０には複数のユーザ端末が接続している。各物理マシンはその上で仮想マシン（ＶＭ）を動作させることが可能なものである。図示したものでは、物理マシン＃１上にｎ台のＶＭ（ＶＭ＃１〜ＶＭ＃ｎ）が配置している。各物理マシンには、当該物理マシンの各ＶＭの状態を監視するＶＭ状態監視部３１が設けられている。ＶＭ状態監視部３１は、特に、各ＶＭのメモリ使用量及びメモリ変化速度を監視する。
【００６５】
さらにこの仮想マシンシステムには、各物理マシン、各ＶＭ及びスイッチ３０を管理し、物理マシン間でのＶＭの移動や帯域制御の指示を行う管理装置２０がスイッチ３０に接続している。管理装置２０としては、図６を用いて説明した管理装置２０を使用することができる。特にこの例では、情報収集部２５は、各ＶＭのメモリ使用量及びメモリ変化速度を各物理マシンのＶＭ状態監視部３１から収集する。もっとも、ＶＭのメモリ使用量及びメモリ変化速度については、そのＶＭに搭載されているアプリケーションの種別やその状態から計算あるいは推定によって求めてもよい。
【００６６】
スイッチ３０は、物理マシンと管理装置２０とを接続し、また、物理マシン相互間を接続するための機器である。スイッチ３０には、管理装置２０の帯域制御設定部２８からの指示に応じ、各ＶＭのトラフィック、特に、ユーザトラフィックの帯域制御を行う帯域制御部３２が設けられている。
【００６７】
メモリ情報利用方式あるいは複数ＶＭ同時移動方式を用いる仮想マシンシステムにおけるネットワーク構成は、管理装置２０と各物理マシンとの接続性が保たれ、また、物理マシン相互の接続性が保たれていれば、図８に示したものに限定されない。また、ＶＭ状態監視部３１は、物理マシン内ではなく管理装置２０内に設けることも可能である。管理装置２０内にＶＭ状態監視部３１を設けた場合、そのＶＭ状態監視部３１は、ネットワークを介して各物理マシンに接続し、各ＶＭの状態に関する情報を取得する。また、帯域制御部３２も、スイッチ３０内ではなく各物理マシン内に搭載することができる。物理マシン内に搭載する場合、帯域制御部３２は、物理マシン内でＶＭを接続する仮想スイッチ上で帯域制御動作を実行する。図９は、各物理マシン内に帯域制御部３２を設けた場合の構成を示している。
【００６８】
図１０に示した仮想マシンシステムは、ＶＭ移動順序決定方式としてユーザトラフィック情報利用方式を用いる場合に適したものである。帯域制御方法決定方式としては、ＶＭ移動時間均等方式及びユーザトラフィック帯域低下最小化方式のいずれも利用することができる。この仮想マシンシステムは、図８に示した仮想マシンシステムと同様のものであるが、各物理マシンにおいて、ＶＭ状態監視部３１の代わりにトラフィック監視部３３が設けられている点で、図８に示すものとは異なっている。トラフィック監視部３３は、各ＶＭの入出力ユーザトラフィックを監視する。また、管理装置２０内の情報収集部２５は、各ＶＭの入出力ユーザトラフィックに関する情報を各物理マシンのトラフィック監視部３３から収集し、ユーザトラフィック情報としてデータ保存部２３に格納する。これを受け、スケジュール決定部２６は、データ保存部に格納されたユーザトラフィック情報とスケジュール決定アルゴリズムに基づいて、ＶＭの移動順とユーザトラフィック帯域制御量を決定する。
【００６９】
トラフィック情報利用方式を用いる仮想マシンシステムにおけるネットワーク構成は、管理装置２０と各物理マシンとの接続性が保たれ、また、物理マシン相互の接続性が保たれていれば、図１０に示したものに限定されない。また、トラフィック監視部３３は、物理マシン内ではなくスイッチ３０内に設けることも可能である。また、帯域制御部３２も、スイッチ３０内ではなく各物理マシン内に搭載することができる。物理マシン内に搭載する場合、帯域制御部３２は、物理マシン内でＶＭを接続する仮想スイッチ上で帯域制御動作を実行する。図１１は、図１０に示すものにおいてトラフィック監視部３３をスイッチ３０内に設け、帯域制御部３２を各物理マシン内に設けた構成を示している。
【実施例】
【００７０】
次に、ＶＭ移動順序決定方式と帯域制御方法決定方式のバリエーションの組み合わせのうちのいくつかをさらに詳しく説明する。
【００７１】
［実施例１］
図８に示した構成の仮想マシンシステムを使用し、ＶＭ移動順序決定方式としてメモリ情報利用方式を使用し、帯域制御方法決定方式としてＶＭ移動時間均等方式を用いる場合を説明する。図示されるパケット転送網には、複数のユーザ端末が接続しているものとする。仮想マシンシステム内の物理マシンの数は３台（物理マシン＃１〜物理マシン＃３）であり、同一のスイッチ３０に接続されているものとする。物理マシン＃１には１０台のＶＭ（ＶＭ＃１〜ＶＭ＃１０）があるとして、このうち、ＶＭ＃１〜ＶＭ＃５を物理マシン＃２にライブマイグレーションし、ＶＭ＃６〜ＶＭ＃１０を物理マシン＃３にライブマイグレーションするものとする。ライブマイグレーションのメモリコピーに要することのできる時間（ＶＭ移動計画時間）は１２０秒であるものとする。また、各物理リンクの帯域は１Ｇｂｉｔ／ｓであるものとする。また、各ＶＭからユーザ端末へトラフィックが流れているものとし、そのユーザトラフィック量は各ＶＭで均一であるものとする。
【００７２】
スイッチ３０には、図８に示すように帯域制御部３２が設けられており、トラフィックは、ＶＬＡＮ（仮想ローカルエリアネットワーク：virtual local area network）により、どのＶＭのトラフィックなのか、また、ユーザトラフィックなのかＶＭメモリコピートラフィックなのかを識別できるものとする。帯域制御はＶＬＡＮごとに実施できる。各物理マシン上のＶＭ状態監視部３１は、各ＶＭ上で、例えば、Ｌｉｎｕｘ（登録商標）のｔｏｐコマンドにより、ＶＭのメモリ使用量や使用率を監視し、ページング（スワップファイル）操作数などから、各ＶＭのメモリ使用量やメモリ変化速度を監視する。
【００７３】
この場合の動作の流れが図１２に示されている。
【００７４】
ステップ１０１において管理装置２０内のＶＭ管理部２４がＶＭ＃１〜ＶＭ＃１０のライブマイグレーションの実施を決定すると、その旨がＶＭ管理部２４から情報収集部２５に通知される（ステップ１０２）。情報収集部２５は、移動元の物理マシンとなる物理マシン＃１のＶＭ状態監視部３１からＶＭ状態情報を収集し（ステップ１０３）、収集した情報をデータ保存部２４に格納する（ステップ１０４）。次にスケジュール決定部２６は、データ保存部２３からＶＭ状態情報とスケジューリング決定アルゴリズムを取得し（ステップ１０５）、メモリ情報利用方式とＶＭ移動時間均等方式とによってスケジュールを決定し（ステップ１０６）、決定したスケジュールをデータ保存部２４に格納する（ステップ１０７）。このスケジュールは、ＶＭの移動順を示すスケジュール（マイグレーションスケジュール）とユーザトラフィックの帯域制御量を示すスケジュール（帯域制御スケジュール）とからなる。この例の場合、決定されたスケジュールは表８に示すようなものになり、ＶＭの移動順は、ＶＭ＃４→ＶＭ＃１→ＶＭ＃７→…の順となる。
【００７５】
【表８】
2014153997.tif 000010
【００７６】
スケジュール決定部２６は、マイグレーションスケジュールをＶＭ管理部２４に通知し（ステップ１０８）、帯域制御スケジュールを帯域制御設定部２８に通知する（ステップ１０９）。すると、帯域制御設定部２８は、最初に移動するＶＭであるＶＭ＃４に対応した各ＶＭのユーザトラフィック帯域制御値である９１．４７Ｍｂｉｔ／ｓ（表８参照）を物理マシン＃１から出力される各ＶＭのユーザトラフィック帯域制御値とするように、スイッチ３０内の帯域制御部３２に設定する（ステップ１１０）。
【００７７】
その後、ＶＭ管理部２４は、最初に移動することとなるＶＭ＃４のライブマイグレーションを行うように物理マシン＃１に指示し（ステップ１１１）、これにより、物理マシン＃１から物理マシン＃２へのＶＭ＃４についてのメモリコピーが行われる（ステップ１１２）。ＶＭ＃４についてのメモリコピーが完了すると、物理マシン＃２からＶＭ管理部２４に対してＶＭ＃４のライブマイグレーションの完了通知が送られ（ステップ１１３）、ＶＭ管理部２４は、ＶＭ＃４のライブマイグレーションの完了を帯域制御設定部２８に通知する（ステップ１１４）。すると帯域制御設定部２８は、２番目に移動するＶＭであるＶＭ＃１に対応した各ＶＭのユーザトラフィック帯域制御値である１００．５２Ｍｂｉｔ／ｓ（表８参照）を物理マシン＃１から出力される各ＶＭのユーザトラフィック帯域制御値とするように、スイッチ３０内の帯域制御部３２に設定する（ステップ１１５）。
【００７８】
その結果、ＶＭ管理部２４は、ＶＭ＃４の移動のときと同様に、２番目に移動することとなるＶＭ＃１のライブマイグレーションを行うように物理マシン＃１に指示し（ステップ１１６）、これにより、物理マシン＃１から物理マシン＃２へのＶＭ＃１についてのメモリコピーが行われる（ステップ１１７）。ＶＭ＃１についてのメモリコピーが完了すると、物理マシン＃２からＶＭ管理部２４に対してＶＭ＃１のライブマイグレーションの完了通知が送られ（ステップ１１８）、ＶＭ管理部２４は、ＶＭ＃１のライブマイグレーションの完了を帯域制御設定部２８に通知する（ステップ１１９）。
【００７９】
以下同様にして、ＶＭ＃７、ＶＭ＃２、ＶＭ＃８、ＶＭ＃１０、ＶＭ＃９、ＶＭ＃５、ＶＭ＃６、ＶＭ＃３の順でライブマイグレーションの処理が実行され（ステップ１２０）、最後に移動するＶＭであるＶＭ＃３のライブマイグレーションが終了すると、ＶＭ管理部２４から帯域設定部２８にＶＭ＃３ライブマイグレーション完了通知が送られ（ステップ１２１）、帯域設定部２８は、スイッチ３０内の帯域制御部３２での帯域制御設定を解除する（ステップ１２２）。
【００８０】
以上により、ＶＭ＃１〜ＶＭ＃１０についてのライブマイグレーションの一連の処理がすべて完了したことになる。
【００８１】
［実施例２］
図１０に示した構成の仮想マシンシステムを使用し、ＶＭ移動順序決定方式としてユーザトラフィック情報利用方式を使用し、帯域制御方法決定方式としてＶＭ移動時間均等方式を用いる場合を説明する。図示されるパケット転送網には、複数のユーザ端末が接続しているものとする。仮想マシンシステム内の物理マシンの数は３台（物理マシン＃１〜物理マシン＃３）であり、同一のスイッチ３０に接続されているものとする。物理マシン＃１には１０台のＶＭ（ＶＭ＃１〜ＶＭ＃１０）があるとして、このうち、ＶＭ＃１〜ＶＭ＃５を物理マシン＃２にライブマイグレーションし、ＶＭ＃６〜ＶＭ＃１０を物理マシン＃３にライブマイグレーションするものとする。ライブマイグレーションにメモリコピーに要することのできる時間（ＶＭ移動計画時間）は１２０秒であるものとする。また、各物理リンクの帯域は１Ｇｂｉｔ／ｓであるものとする。また、各ＶＭからユーザ端末へトラフィックが流れているものとし、そのユーザトラフィック量は各ＶＭで異なるものとする。メモリ使用量及びメモリ変化速度は、各ＶＭで均一であり、メモリ使用量については２５６Ｍｂｙｔｅ、メモリ変化速度は１０Ｍｂｉｔ／ｓであるものとする。
【００８２】
スイッチ３０内にはトラフィック監視部３３が設けられており、トラフィックは、ＶＬＡＮにより、どのＶＭのトラフィックなのか、また、ユーザトラフィックなのかＶＭメモリコピートラフィックなのかを識別できるものとする。各物理マシンには帯域制御部３２が設けられており、ＶＭごとのトラフィック及びメモリコピートラフィックの帯域を個別で制御できるものとする。
【００８３】
この場合の動作の流れが図１２に示されている。
【００８４】
ステップ１５１において管理装置２０内のＶＭ管理部２４がＶＭ＃１〜ＶＭ＃１０のライブマイグレーションの実施を決定すると、その旨がＶＭ管理部２４から情報収集部２５に通知される（ステップ１５２）。情報収集部２５は、スイッチ３０内のトラフィック監視部３３からトラフィック情報を収集し（ステップ１５３）、収集した情報をデータ保存部２４に格納する（ステップ１５４）。次にスケジュール決定部２６は、データ保存部２３からトラフィック情報とスケジューリング決定アルゴリズムを取得し（ステップ１５５）、ユーザトラフィック情報利用方式とＶＭ移動時間均等方式とによってスケジュール（マイグレーションスケジュール及び帯域制御スケジュール）を決定し（ステップ１５６）、決定したスケジュールをデータ保存部２４に格納する（ステップ１５７）。この例の場合、決定されたスケジュールは表９に示すようなものになり、ＶＭの移動順は、ＶＭ＃３→ＶＭ＃８→ＶＭ＃１→…→ＶＭ＃１０の順となる。
【００８５】
【表９】
2014153997.tif 000011
【００８６】
スケジュール決定部２６は、マイグレーションスケジュールをＶＭ管理部２４に通知し（ステップ１５８）、帯域制御スケジュールを帯域制御設定部２８に通知する（ステップ１５９）。すると、帯域制御設定部２８は、最初に移動するＶＭがＶＭ＃３であるので、表９の「ＶＭ＃３の移動時の帯域制御値」の欄にＶＭごとに記載された帯域制御値を、それぞれのＶＭのユーザトラフィック帯域制御値とするように、物理マシン＃１内の帯域制御部３２に設定する（ステップ１６０）。
【００８７】
その後、ＶＭ管理部２４は、最初に移動することとなるＶＭ＃３のライブマイグレーションを行うように物理マシン＃１に指示し（ステップ１６１）、物理マシン＃１から物理マシン＃２へのＶＭ＃３についてのメモリコピーが行われ（ステップ１６２）、このメモリコピーが完了すると、物理マシン＃２からＶＭ管理部２４に対してＶＭ＃３のライブマイグレーションの完了通知が送られ（ステップ１６３）、ＶＭ＃４のライブマイグレーションの完了がＶＭ管理部２４から帯域制御設定部２８に通知する（ステップ１６４）。すると帯域制御設定部２８は、２番目に移動するＶＭがＶＭ＃８であるので、表９の「ＶＭ＃８の移動時の帯域制御値」の欄にＶＭごとに記載された帯域制御値を、それぞれのＶＭのユーザトラフィック帯域制御値とするように、物理マシン＃１内の帯域制御部３２に設定する（ステップ１６５）。なお、このときＶＭ＃３は既に物理マシン＃１から移動済みであるので、ＶＭ＃３に関するユーザトラフィックは、帯域制御の対象とはならない。
【００８８】
その後、ＶＭ管理部２４は、ＶＭ＃３の移動のときと同様に、２番目に移動することとなるＶＭ＃８のライブマイグレーションを行うように物理マシン＃１に指示し（ステップ１６６）、これにより、物理マシン＃１から物理マシン＃３へのＶＭ＃８についてのメモリコピーが行われる（ステップ１６７）。ＶＭ＃８についてのメモリコピーが完了すると、物理マシン＃３からＶＭ管理部２４に対してＶＭ＃１のライブマイグレーションの完了通知が送られ（ステップ１６８）、ＶＭ管理部２４は、ＶＭ＃８のライブマイグレーションの完了を帯域制御設定部２８に通知する（ステップ１６９）。
【００８９】
以下同様にして、ＶＭ＃１、ＶＭ＃４、ＶＭ＃２、ＶＭ＃７、ＶＭ＃６、ＶＭ＃５、ＶＭ＃９、ＶＭ＃１０の順でライブマイグレーションの処理が実行され（ステップ１７０）、最後に移動するＶＭであるＶＭ＃１０のライブマイグレーションが終了すると、ＶＭ管理部２４から帯域設定部２８にＶＭ＃１０ライブマイグレーション完了通知が送られ（ステップ１７１）、帯域設定部２８は、物理マシン＃１内の帯域制御部３２での帯域制御設定を解除する（ステップ１７２）。
【００９０】
以上により、ＶＭ＃１〜ＶＭ＃１０についてのライブマイグレーションの一連の処理がすべて完了したことになる。
【符号の説明】
【００９１】
１１，１２    物理マシン
１３    ネットワーク
１４    共有ストレージ
１５    仮想化ソフトウェア
１６    ＶＭ管理サーバ
２０    管理装置
２１    パケット受信部
２２    パケット送信部
２３    データ保存部
２４    ＶＭ管理部
２５    情報収集部
２６    スケジュール決定部
２７    スケジュール決定アルゴリズム
２８    帯域制御設定部
３０    スイッチ
３１    ＶＭ状態監視部
３２    帯域制御部
３３    トラフィック監視部
【図１】
2014153997.tif 000012
【図２】
2014153997.tif 000013
【図３】
2014153997.tif 000014
【図４】
2014153997.tif 000015
【図５】
2014153997.tif 000016
【図６】
2014153997.tif 000017
【図７】
2014153997.tif 000018
【図８】
2014153997.tif 000019
【図９】
2014153997.tif 000020
【図１０】
2014153997.tif 000021
【図１１】
2014153997.tif 000022
【図１２】
2014153997.tif 000023
【図１３】
2014153997.tif 000024