(57)【要約】【課題】複数の仮想マシンを１台の物理サーバに集約する場合に、移動時間の合計が長くなることを防止して移動可能な仮想マシンの移動順序を決定すること。【解決手段】再配置可否判断部６１が、各仮想マシンの移動時のメモリ変化速度の降順に基づいて、少なくとも１通りの順序で全仮想マシンを集約サーバに移動可能か否かを判断し、移動可能と判定された場合に、順序決定部６２が、前記仮想マシンの各回の移動時における、前記集約サーバのＶＭ移動トラヒックに使用可能な帯域と、各仮想マシンのメモリサイズおよびメモリ変化速度とを用いて、各仮想マシンの移動時間を算出し、該移動時間に基づいて、前記仮想マシンの移動順序を決定することにより、複数の物理サーバに分散している複数の仮想マシンを１台の集約サーバに移動する順序を決定する。【選択図】図２
2017033196.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理サーバに分散している複数の仮想マシンを１台の集約サーバに移動する順序を決定する決定装置であって、
各仮想マシンの移動時のメモリ変化速度の降順に基づいて、少なくとも１通りの順序で全仮想マシンを前記集約サーバに移動可能か否かを判定する再配置可否判断部と、
移動可能と判定された場合に、前記仮想マシンの各回の移動時における、前記集約サーバの移動に使用可能な帯域と、各仮想マシンのメモリサイズおよびメモリ変化速度とを用いて、各仮想マシンの移動時間を算出し、該移動時間に基づいて、前記仮想マシンの移動順序を決定する順序決定部と、
を備えることを特徴とする決定装置。
【請求項２】
前記順序決定部は、前記集約サーバの移動に使用可能な帯域を、移動する仮想マシンのユーザ通信の帯域の平均値を用いて算出することを特徴とする請求項１に記載の決定装置。
【請求項３】
前記順序決定部は、前記集約サーバの移動に使用可能な帯域を、各回の移動で移動する仮想マシンのユーザ通信の帯域を用いて算出することを特徴とする請求項１に記載の決定装置。
【請求項４】
前記順序決定部は、各回の移動で移動する仮想マシンを、移動時間の降順に決定することを特徴とする請求項１〜３のいずれか１項に記載の決定装置。
【請求項５】
前記順序決定部は、移動する仮想マシンのユーザ通信の帯域、メモリサイズ、およびメモリ変化速度の平均値を用いて、各回の移動時間を基準移動時間として算出し、
奇数回目の移動時には、移動時間の降順に移動する仮想マシンを決定し、
偶数回目の移動時には、当該回までの移動時間の合計が前記基準移動時間の合計に最も近くなるように、移動する仮想マシンを決定する、
ことを特徴とする請求項１〜３のいずれか１項に記載の決定装置。
【請求項６】
複数の物理サーバに分散している複数の仮想マシンを１台の集約サーバに移動する順序を決定する決定方法であって、
各仮想マシンの移動時のメモリ変化速度の降順に基づいて、少なくとも１通りの順序で全仮想マシンを前記集約サーバに移動可能か否かを判定する再配置可否判断工程と、
移動可能と判定された場合に、前記仮想マシンの各回の移動時における、前記集約サーバの移動に使用可能な帯域と、各仮想マシンのメモリサイズおよびメモリ変化速度とを用いて、各仮想マシンの移動時間を算出し、該移動時間に基づいて、前記仮想マシンの移動順序を決定する順序決定工程と、
を含んだことを特徴とする決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、決定装置および決定方法に関する。
【背景技術】
【０００２】
負荷の最適配置や省電力化などを目的として、仮想マシン技術が注目されている。仮想マシン（ＶＭ：Virtual  Machine）は、コンピュータの動作をエミュレートするソフトウェアによって実現される。仮想マシン技術を用いることによって、１台の物理サーバ（物理的な実体としてのコンピュータ）上で、異なるオペレーティングシステム（ＯＳ：Operating  System）を動作させてそのＯＳ上で各種のアプリケーションソフトウェア（ＡＰＬ：Application software）を実行させたり、あるいは、本来ならば異なるコンピュータアーキテクチャ環境で動作するソフトウェアを実行させたりすることができる。仮想マシン技術は、例えば、データセンタ等で広く用いられている。
【０００３】
また、ネットワークに接続された異なる物理サーバ間で、仮想マシンの動作を止めずにＯＳごとその仮想マシンを移動させる「ライブマイグレーション技術」が知られている。ライブマイグレーションは、ネットワークを介して、仮想マシンのメモリ情報のコピーを移行先の物理サーバに送信することで実現されている。このライブマイグレーション技術により、例えば、ある物理サーバが高負荷になった際に、当該物理サーバ上で動作している仮想マシンを他の物理サーバに移動させることによって、高負荷状態を解消することができる。あるいは、時間帯によって異なるトラヒック量に合わせて、複数の物理サーバに分散配置されている複数の仮想マシンを１台の物理サーバに集約配置することができる。このような集約配置により、使用する物理サーバの利用効率を高くするとともに、使用していない物理サーバの電源をオフにして電力量を低減することができる。
【０００４】
各物理サーバでは、それぞれ、仮想化ソフトウェアが動作しており、仮想化ソフトウェアによって物理サーバ上に仮想マシンが実現されている。仮想マシンでは、オペレーティングシステムとアプリケーションソフトウェアとが実行されている。ライブマイグレーションは、移行元の物理サーバから移行先の物理サーバへのネットワークを介したメモリコピーによって達成される。その際、ライブマイグレーションを行うトラヒック（以下、ＶＭ移動トラヒック）のための専用のリンクを用意するのでは、ネットワークの利用効率が悪い。そのため、ＶＭ移動トラヒックには、ユーザ通信のトラヒック（以下、ユーザトラヒック）の帯域を確保した上で、ユーザトラヒックと同一リンクを使用することが考えられる。
【０００５】
ここで、ライブマイグレーションに要する時間（以下、移動時間）について説明する。ライブマイグレーションのためにメモリコピーを行う場合、メモリコピーを行っている間にも、移行元の物理サーバ上では仮想マシンが動作しているため、メモリ情報が逐次変化する。そこで、移行元の物理サーバでの仮想マシンの全メモリ領域に相当するメモリコピーを実行したのち、そのメモリコピーの間に変化したメモリ情報に関する差分をコピーして移行先の物理サーバに送信する必要がある。この差分コピーの間にもメモリ情報は変化するから、さらにその間の差分をコピーする必要がある。このように、メモリコピーと何回かの差分コピーを実行してメモリ差分情報が所定の量にまで小さくなると（以下、ここまでに要する時間を移動時間と呼ぶ）、移行元で仮想マシンを停止し、最後に残った差分をコピーし、その後、移行先で仮想マシンを立ち上げ、仮想マシンによる処理を再開する。
【０００６】
各仮想マシンの移動時間ｔは、次式（１）で表される。ここで、Ｍは仮想マシンのメモリサイズ、Ｗは仮想マシンのメモリ変化速度、ＢｍはＶＭ移動トラヒックに使うことができる帯域を意味する。
【０００７】
【数１】
2017033196.tif 000003
【０００８】
なお、メモリ変化速度とは、仮想マシンのメモリに格納されている情報が時間当たりどれだけ変化するかを意味する。メモリ変化速度Ｗが大きいほど、差分コピーをより大量に行わなければならない。
【０００９】
仮想マシンごとに、ユーザトラヒック帯域Ｂｕ、メモリサイズＭ、およびメモリ変化速度Ｗは異なる。また、仮想マシンの移動のタイミングによって、ＶＭ移動トラヒックに使用できる帯域Ｂｍが異なる。そのため、複数の仮想マシンを１台の物理サーバに集約配置する場合に、仮想マシンの移動順序によっては、例えば、メモリ変化速度Ｗが移行先の物理サーバでＶＭ移動トラヒックに使用できる帯域Ｂｍより大きくなること等により移動できない場合や、全仮想マシンの移動時間の合計である再配置時間が長時間になる場合がある。
【００１０】
なお、全仮想マシンのメモリサイズＭが一定、また、仮想マシンのメモリ変化速度Ｗがユーザトラヒック帯域Ｂｕに比例するものとして、ユーザ数が多い順すなわちユーザトラヒック帯域Ｂｕが大きい順に仮想マシンを移動して、１台の物理サーバへの集約配置の成功率を高める技術が開示されている（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】K.Mochizuki，H.Yamazaki，A.Misawa，“Bandwidth  Guaranteed  Method  to  Relocate  Virtual  Machines  for  Edge  Cloud  Architecture”,Proc.APNOMS,TS8-3,2013年9月
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、仮想マシンごとにユーザトラヒック帯域Ｂｕ、メモリサイズＭ、およびメモリ変化速度Ｗは異なり、その分布も様々である。そのため、一概にユーザ数が多い順に仮想マシンの集約配置を行おうとしても、依然として移動することができない場合や再配置時間が長時間になる場合がある。
【００１３】
本発明は、上記に鑑みてなされたものであって、複数の仮想マシンを１台の物理サーバに集約する場合に、移動時間の合計が長くなることを防止して移動可能な仮想マシンの移動順序を決定することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するために、本発明に係る決定装置は、複数の物理サーバに分散している複数の仮想マシンを１台の集約サーバに移動する順序を決定する決定装置であって、各仮想マシンの移動時のメモリ変化速度の降順に基づいて、少なくとも１通りの順序で全仮想マシンを前記集約サーバに移動可能か否かを判定する再配置可否判断部と、移動可能と判定された場合に、前記仮想マシンの各回の移動時における、前記集約サーバの移動に使用可能な帯域と、各仮想マシンのメモリサイズおよびメモリ変化速度とを用いて、各仮想マシンの移動時間を算出し、該移動時間に基づいて、前記仮想マシンの移動順序を決定する順序決定部と、を備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、複数の仮想マシンを１台の物理サーバに集約する場合に、移動時間の合計が長くなることを防止して移動可能な仮想マシンの移動順序を決定することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の一実施形態に係る決定処理の対象のシステムの概略構成を示す模式図である。
【図２】図２は、本実施形態に係る決定装置の概略構成を示す模式図である。
【図３】図３は、本実施形態の管理情報を例示する図である。
【図４】図４は、本実施形態の集約サーバのＶＭ移動トラヒックに使用可能な帯域の算出方法を説明するための説明図である。
【図５】図５は、本実施形態の順列方式による順序決定処理を説明するための説明図である。
【図６】図６は、本実施形態の基準方式による順序決定処理を説明するための説明図である。
【図７】図７は、本実施形態の順序決定処理を応用した分散配置を説明するための説明図である。
【図８】図８は、本実施形態の順列方式による順序決定処理を応用した分散配置を説明するための説明図である。
【図９】図９は、本実施形態の基準方式による順序決定処理を応用した分散配置を説明するための説明図である。
【図１０】図１０は、本実施形態の再配置可否判断処理手順を示すフローチャートである。
【図１１】図１１は、本実施形態の順列方式による順序決定処理手順を示すフローチャートである。
【図１２】図１２は、本実施形態の基準方式による順序決定処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１８】
［システム構成］
図１は、本実施形態に係る決定装置が決定処理の対象とするシステムの概略構成を例示する模式図である。本実施形態では、図１に示すように、複数の物理サーバ（サーバ＃１〜サーバ＃１０）にスイッチ（ＳＷ）群を介して分散配置されている仮想マシン（ＶＭ＃１〜ＶＭ＃１０）を、集約サーバ（サーバ＃１）に移動して集約配置を行う。この場合に、仮想マシンＶＭ＃２〜ＶＭ＃１０を、後述する決定処理で決定された移動順序で移動してサーバ＃１に集約する。
【００１９】
ここで、仮想マシンをＶＭ＃２、ＶＭ＃３、ＶＭ＃４の移動順序でサーバ＃１に移動させる場合について説明する。この場合、集約配置の開始時には、集約サーバであるサーバ＃１の帯域Ｂ１のうちＶＭ＃１のユーザトラヒック帯域Ｂｕ１を確保した残りの帯域を、仮想マシンＶＭ＃２のＶＭ移動トラヒックに使用することができる。同様に、仮想マシンＶＭ＃４のＶＭ移動トラヒックに使用することができるサーバ＃１の帯域Ｂｍは、図１に示すように、サーバ＃１の帯域Ｂ１のうち、ＶＭ＃１のユーザトラヒック帯域Ｂｕ１、移動したＶＭ＃２のユーザトラヒック帯域Ｂｕ２、およびＶＭ＃３のユーザトラヒック帯域Ｂｕ３を確保した残りの帯域で表される。
【００２０】
本実施の形態の決定装置は、複数の物理サーバに分散している複数の仮想マシンを１台の集約サーバに移動する順序を決定する。具体的に、決定装置は、仮想マシンごとに異なるユーザトラヒック帯域Ｂｕ、メモリサイズＭ、およびメモリ変化速度Ｗと、移動順序によって変化するＶＭ移動トラヒックに使用することができる集約サーバの帯域Ｂｍとに基づいて、仮想マシンＶＭ＃２〜ＶＭ＃１０の移動順序を決定する決定処理を行う。なお、物理サーバのうち、当該物理サーバ上で動作している仮想マシンが処理するユーザトラヒック帯域が最も大きく、空き帯域が最も小さいものを集約サーバとする。
【００２１】
［決定装置の構成］
図２は、本実施形態に係る決定装置の概略構成を示す模式図である。決定装置１は、ワークステーションやパソコン等の汎用コンピュータで実現され、入力部２と、出力部３と、通信制御部４と、記憶部５と、制御部６とを備える。
【００２２】
入力部２は、キーボードやマウス等の入力デバイスを用いて実現され、データ分析者による入力操作に対応して、制御部６に対して処理開始などの各種指示情報を入力する。出力部３は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置、情報通信装置等によって実現され、後述する決定処理の結果等を出力する。
【００２３】
通信制御部４は、ＮＩＣ（Network  Interface  Card）等で実現され、ＬＡＮ（Local  Area  Network）やインターネットなどの電気通信回線を介した外部の装置と制御部６との通信を制御する。外部の装置には、例えば、物理サーバ（サーバ＃１〜＃１０）や仮想マシン（ＶＭ＃１〜ＶＭ＃１０）の状態を管理する管理装置が例示される。
【００２４】
記憶部５は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。なお、記憶部５は、通信制御部４を介して制御部６と通信する構成としてもよい。本実施形態の記憶部５は、例えば、物理サーバ（サーバ＃１〜＃１０）や仮想マシン（ＶＭ＃１〜ＶＭ＃１０）の状態を示す管理情報を記憶する。この管理情報は、制御部６の制御により、あるいは予め、通信制御部４あるいは入力部２を介して管理装置等から取得される。
【００２５】
図３は、管理情報を例示する図である。図３に示すように、管理情報には、物理サーバ名、ＶＭ名、ユーザトラヒック帯域Ｂｕ［Ｍｂｐｓ］、メモリサイズＭ［ＭＢ］、メモリ変化速度Ｗ［Ｍｂｐｓ］が含まれる。ＶＭ名は、本実施形態における集約配置の対象の仮想マシンを意味し、ＶＭ＃１〜ＶＭ＃１０が例示される。物理サーバ名はＶＭ名に対応する仮想マシン（ＶＭ＃１〜ＶＭ＃１０）が分散配置されている物理サーバを意味し、サーバ＃１〜＃１０が例示される。ユーザトラヒック帯域Ｂｕ［Ｍｂｐｓ］、メモリサイズＭ［ＭＢ］、およびメモリ変化速度Ｗ［Ｍｂｐｓ］は、各仮想マシンのユーザ通信の帯域、メモリサイズおよびメモリ変化速度を意味する。図３には、例えば、ＶＭ＃１のユーザトラヒック帯域が３００Ｍｂｐｓ、メモリサイズが１２８ＭＢ、およびメモリ変化速度が１０Ｍｂｐｓであることが示されている。
【００２６】
制御部６は、ＣＰＵ（Central  Processing  Unit）等の演算処理装置がメモリに記憶された処理プログラムを実行することにより、図２に例示するように、再配置可否判断部６１、順序決定部６２として機能する。
【００２７】
再配置可否判断部６１は、各仮想マシンの移動時のメモリ変化速度の降順に基づいて、少なくとも１通りの順序で全仮想マシンを集約サーバに移動可能か否かを判定する再配置可否判断処理を行う。
【００２８】
具体的に、再配置可否判断部６１は、まず、帯域リソースを確認する。すなわち、再配置可否判断部６１は、集約サーバ（サーバ＃１）の空き帯域Ｂａが、各仮想マシンのユーザトラヒック帯域Ｂｕｎの合計より大きいことを確認する。
【００２９】
次に、再配置可否判断部６１は、メモリリソースを確認する。すなわち、再配置可否判断部６１は、集約サーバ（サーバ＃１）の空きメモリサイズＭａが、各仮想マシンのメモリサイズＭｎの合計より大きいことを確認する。
【００３０】
次に、再配置可否判断部６１は、集約サーバ＃１に移動する仮想マシンＶＭ＃２〜ＶＭ＃１０のうち、メモリ変化速度Ｗｎが最も大きい仮想マシンを、集約サーバ＃１のＶＭ移動トラヒックに利用可能な帯域が最も大きい初回移動時に移動できることを確認する。すなわち、再配置可否判断部６１は、仮想マシンＶＭ＃２〜ＶＭ＃１０のうち、メモリ変化速度Ｗｎが、集約サーバ＃１のＶＭ移動トラヒックに利用可能な帯域の最大値Ｂａより大きい仮想マシンがないことを確認する。
【００３１】
次に、再配置可否判断部６１は、仮想マシンＶＭ＃２〜ＶＭ＃１０のうち、メモリ変化速度Ｗｎの降順にｋ個の仮想マシンを確認対象として選択し、いずれかの移動順序で移動可能であることを確認する。再配置可否判断部６１は、ｋを１ずつ増加させ、全仮想マシンについて、いずれかの順序で移動可能であることを確認する。
【００３２】
すなわち、再配置可否判断部６１は、まずｋ＝２として、メモリ変化速度Ｗｎの降順に２個の仮想マシンを選択する。そして、移動順序を例えば、メモリ変化速度Ｗｎの降順として、各回の移動時における集約サーバ＃１のＶＭ移動トラヒックに利用可能な帯域が、移動する仮想マシンのメモリ変化速度Ｗｎより大きいことを確認する。この場合、メモリ変化速度Ｗｎが最大の仮想マシンについては、上記で移動可能なことが確認されている。そこで、再配置可否判断部６１は、２回目の移動で集約サーバ＃１のＶＭ移動トラヒックに利用可能な帯域、すなわち集約サーバ＃１の空き帯域Ｂａから１回目に移動する仮想マシンのユーザトラヒック帯域Ｂｕｎを減算した帯域が、２番目に大きいメモリ変化速度Ｗｎより大きく、この仮想マシンを移動可能であることを確認する。
【００３３】
仮に、２回目の移動で集約サーバ＃１のＶＭ移動トラヒックに利用可能な帯域が２番目に大きいメモリ変化速度Ｗｎより小さい場合には、移動順序を変えて、同様に、移動可能であることを確認する。例えば、メモリ変化速度Ｗｎが最大の仮想マシンのユーザトラヒック帯域Ｂｕｎが大きく、メモリ変化速度Ｗｎが２番目に大きい仮想マシンのユーザトラヒック帯域Ｂｕｎが小さい場合等には、移動順序を変えることにより移動可能となる場合がある。
【００３４】
続いて、再配置可否判断部６１は、ｋ＝３の場合に、同様に、いずれかの移動順序で移動可能であることを確認する。その際、先に移動可能ではないとされた移動順序は確認対象から除かれる。例えば、先のｋ＝２の場合に、ＶＭ＃１，ＶＭ＃２の順序では移動可能ではなく、ＶＭ＃２、ＶＭ＃１の順序で移動可能であることが確認されていれば、以降の処理ではＶＭ＃１，ＶＭ＃２の順序は考慮しない。
【００３５】
さらに、再配置可否判断部６１は、ｋを１ずつ増加させて、同様に、いずれかの移動順序で移動可能であることを確認する。全ての仮想マシンＶＭ＃２〜ＶＭ＃１０がいずれかの移動順序で集約サーバ＃１に移動可能であることが確認された場合に、再配置可否判断部６１は、少なくとも１通りの順序で全仮想マシンを集約サーバに移動可能、すなわち再配置可能と判定する。
【００３６】
これにより、決定装置１は、集約サーバ＃１に移動する仮想マシンの全順列について確認することなく、いずれかの順序で移動可能か否かを判定することができる。とくに移動不可すなわち再配置不可について、決定装置１は再配置可否判断処理の早い段階で判定できる。
【００３７】
順序決定部６２は、再配置可否判断部６１により移動可能と判定された場合に、仮想マシンの各回の移動時における、集約サーバのＶＭ移動トラヒックに使用可能な帯域と、各仮想マシンのメモリサイズおよびメモリ変化速度とを用いて、各仮想マシンの移動時間を算出し、該移動時間に基づいて、仮想マシンの移動順序を決定する順序決定処理を行う。
【００３８】
具体的に、順序決定部６２は、各回の移動で移動する仮想マシンを、移動時間の降順に決定する（以下、順列方式と称する）。あるいは、順序決定部６２は、まず、移動する仮想マシンのユーザ通信の帯域、メモリサイズ、およびメモリ変化速度の平均値を用いて、各回の移動時間を基準移動時間として算出する。次に、順序決定部６２は、奇数回目の移動時には、移動時間の降順に移動する仮想マシンを決定し、偶数回目の移動時には、当該回までの移動時間の合計が基準移動時間の合計に最も近くなるように、移動する仮想マシンを決定する（以下、基準方式と称する）。
【００３９】
なお、上記した順列方式、基準方式のいずれにおいても、順序決定部６２は、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域を算出する際、次の２方式のいずれかを適用する。すなわち、順序決定部６２は、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域を、移動する仮想マシンのユーザ通信の帯域の平均値を用いて算出する（以下、平均値算出方式と称する）。あるいは、順序決定部６２は、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域を、各回の移動で移動する仮想マシンのユーザ通信の帯域を用いて算出する（以下、逐次算出方式と称する）。
【００４０】
以下、図４および図５を参照して、順列方式について説明する。順序決定部６２は、まず、図３に例示した管理情報を用いて、各回の移動時における、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域を算出する。例えば、図４は、平均値算出方式により算出された集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍを示している。平均値算出方式では、次式（２）により、ｋ回目の移動時において、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍｋを算出する。ここで、Ｂｕａｖｅは、移動する仮想マシンＶＭ＃ｎのユーザトラヒック帯域Ｂｕｎの平均値を意味する。また、Ｂａは、集約サーバ＃１の空き帯域である。
【００４１】
【数２】
2017033196.tif 000004
【００４２】
図３に例示した管理情報によれば、移動する仮想マシンＶＭ＃２〜ＶＭ＃１０のユーザトラヒック帯域Ｂｕの平均値Ｂｕａｖｅは４２．２２Ｍｂｐｓと算出される。集約サーバ＃１の空き帯域Ｂａが７００．００Ｍｂｐｓである場合に、各回の移動のたびに、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍは、Ｂｕａｖｅずつ減少する。例えば、初回の移動時に、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍ１はＢａに等しく、７００．００Ｍｂｐｓである。２回目の移動時には、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍ２は、Ｂｍ１すなわちＢａからＢｕａｖｅを減算して、６５７．７８Ｍｂｐｓと算出される。
【００４３】
次に、順序決定部６２は、上記式（１）を用いて、各回の移動時における各仮想マシンの移動時間ｔを算出する。すなわち、算出されたｋ回目の移動時における集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍｋを用いて、次式（３）により、ｋ回目の移動時における仮想マシンＶＭ＃ｎの移動時間ｔｎｋを算出する。ここで、Ｍｎは、仮想マシンＶＭ＃ｎのメモリサイズ、Ｗｎは仮想マシンＶＭ＃ｎのメモリ変化速度を意味する。
【００４４】
【数３】
2017033196.tif 000005
【００４５】
図５は、算出された各回の移動時における各仮想マシンの移動時間を示す図である。例えば、初回の移動時に、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍ１が７００．００Ｍｂｐｓと算出された。また、図３に例示した管理情報を参照して、仮想マシンＶＭ＃２のメモリサイズＭ２が２５６ＭＢ（＝２５６×８Ｍｂ）、メモリ変化速度Ｗ２が３０Ｍｂｐｓであることがわかる。したがって、初回の移動時に仮想マシンＶＭ＃２を移動した場合の移動時間ｔ２１は、上記式（３）により３．０６ｓと算出される。
【００４６】
そして、順序決定部６２は、各回の移動時に、算出された移動時間が最大の仮想マシンを移動する仮想マシンと決定する。例えば、図５に示す例では、１回目の移動で移動する仮想マシンは、移動時間が仮想マシンＶＭ＃２〜ＶＭ＃１０のうち最大の１４．８６ｓとなるＶＭ＃３に決定される。また、２回目の移動で移動する仮想マシンは、１回目の移動で移動することが決定されたＶＭ＃３を除いて、移動時間が最大の１２．６５ｓになるＶＭ＃６に決定される。このようにして、図５に示す例では、ＶＭ＃３、ＶＭ＃６、ＶＭ＃１０、ＶＭ＃５、ＶＭ＃９、ＶＭ＃２、ＶＭ＃８、ＶＭ＃７、ＶＭ＃４の順序で移動することが決定される。
【００４７】
このように、順列方式によれば、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍが小さい場合に移動時間が短い仮想マシンが選択され、再配置不可とならないように移動順序が決定される。
【００４８】
次に、図６を参照して、基準方式について説明する。順序決定部６２は、まず、移動する仮想マシンのユーザ通信の帯域、メモリサイズ、およびメモリ変化速度の平均値を用いて、各回の移動時間を基準移動時間として算出する。すなわち、まず、順序決定部６２は、移動する仮想マシンＶＭ＃ｎのユーザ通信の帯域Ｂｕｎの平均値Ｂｕａｖｅ、メモリサイズＭｎの平均値Ｍａｖｅ、およびメモリ変化速度Ｗｎの平均値Ｗａｖｅを算出する。次に、順序決定部６２は、Ｂｕａｖｅを用いて、上記式（２）により、ｋ回目の移動時において、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍｋを算出する。そして、順序決定部６２は、基準移動時間として、次式（４）によりｋ回目の移動時間ｔｓｋを算出する。
【００４９】
【数４】
2017033196.tif 000006
【００５０】
次に、順序決定部６２は、奇数回目の移動時には、移動時間の降順に移動する仮想マシンを決定し、偶数回目の移動時には、当該回までの移動時間の合計が基準移動時間の合計に最も近くなるように、移動する仮想マシンを決定する。すなわち、順序決定部６２は、ｊ回目の移動で移動する仮想マシンＶＭ＃ｎを、ｊが奇数の場合には移動時間ｔｎｊが最大のものに決定する。また、順序決定部６２は、ｊが偶数の場合には、１〜ｊ回目までの移動時間ｔｎｊの合計と基準移動時間ｔｓｋの合計との差が小さくなるように、ｊ回目の移動で移動する仮想マシンＶＭ＃ｎを決定する。ここで、移動時間ｔｎｊは、上記式（１）および式（３）と同様に、次式（５）により算出される。
【００５１】
【数５】
2017033196.tif 000007
【００５２】
上記式（５）において、ｊ回目の移動時に集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍｊを算出する際、例えば、逐次算出方式が適用される。すなわち、Ｂｍｊは次式（６）により算出される。ここで、Ｂｕ（ｊ−１）は、（ｊ−１）回目に移動する仮想マシンのユーザトラヒック帯域を意味する。
【００５３】
【数６】
2017033196.tif 000008
【００５４】
図６は、図３に例示した管理情報を元に、上記式（４）により算出された各回の基準移動時間と、各回の移動が決定した仮想マシンについての上記式（５）により算出された移動時間（実際の移動時間）とを示す図である。図６に示す例では、基準移動時間の合計が７６．２ｓであるのに対し、再配置時間すなわち実際の移動時間の合計は６９．３ｓであり、両者が同等であることが確認された。
【００５５】
このように、基準方式によれば、再配置時間が基準移動時間の合計に近くなるように移動する仮想マシンが選択され、再配置不可とならず、極端に再配置時間が長時間にならないように、移動順序が決定される。
【００５６】
なお、順序決定部６２は、集約配置の手順と同様に、集約サーバ＃１に集約された仮想マシンＶＭ＃２〜ＶＭ＃１０を再び複数の物理サーバ＃２〜＃１０に分散配置する場合の移動順序を決定することができる。
【００５７】
まず、図７および図８を参照して、順列方式を適用して分散配置の移動順序を決定する場合について説明する。順序決定部６２は、まず、図３に例示した管理情報を用いて、各回の移動時における、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域を算出する。例えば、図７は、平均値算出方式により算出された集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍを示している。平均値算出方式では、次式（７）により、ｋ回目の移動時において、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍｋを算出する。ここで、Ｂｕａｖｅは、移動する仮想マシンＶＭ＃ｎのユーザトラヒック帯域Ｂｕｎの平均値を意味する。また、Ｂａは、集約サーバ＃１の空き帯域である。
【００５８】
【数７】
2017033196.tif 000009
【００５９】
図３に例示した管理情報によれば、移動する仮想マシンＶＭ＃２〜ＶＭ＃１０のユーザトラヒック帯域Ｂｕの平均値Ｂｕａｖｅは４２．２２Ｍｂｐｓと算出される。集約サーバ＃１の空き帯域Ｂａが３２０．００Ｍｂｐｓである場合に、各回の移動のたびに、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍは、Ｂｕａｖｅずつ増加する。例えば、初回の移動時に、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍ１はＢａに等しく、３２０．００Ｍｂｐｓである。２回目の移動時には、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍ２は、Ｂｍ１すなわちＢａにＢｕａｖｅを加算して、３６２．２２Ｍｂｐｓと算出される。
【００６０】
次に、順序決定部６２は、算出されたｋ回目の移動時における集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍｋを用いて、上記式（３）により、ｋ回目の移動時における仮想マシンＶＭ＃ｎの移動時間ｔｎｋを算出する。
【００６１】
図８は、算出された各回の移動時における各仮想マシンの移動時間を示す図である。例えば、初回の移動時に、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍ１が３２０．００Ｍｂｐｓと算出された。また、図３に例示した管理情報を参照して、仮想マシンＶＭ＃２のメモリサイズＭ２が２５６ＭＢ（＝２５６×８Ｍｂ）、メモリ変化速度Ｗ２が３０Ｍｂｐｓであることがわかる。したがって、初回の移動時に仮想マシンＶＭ＃２を移動した場合の移動時間ｔ２１は、上記式（３）により７．０６ｓと算出される。
【００６２】
そして、順序決定部６２は、各回の移動時に、算出された移動時間が最小の仮想マシンを移動する仮想マシンと決定する。例えば、図８に示す例では、１回目の移動で移動する仮想マシンは、移動時間が仮想マシンＶＭ＃２〜ＶＭ＃１０のうち最小の３．２０ｓとなるＶＭ＃４に決定される。また、２回目の移動で移動する仮想マシンは、１回目の移動で移動することが決定されたＶＭ＃４を除いて、移動時間が最小の２．９１ｓになるＶＭ＃７に決定される。このようにして、図８に示す例では、ＶＭ＃４、ＶＭ＃７、ＶＭ＃２、ＶＭ＃８、ＶＭ＃９、ＶＭ＃５、ＶＭ＃１０、ＶＭ＃６、ＶＭ＃３の順序で移動することが決定される。
【００６３】
次に、図９を参照して、基準方式を適用して分散配置の移動順序を決定する場合について説明する。順序決定部６２は、まず、移動する仮想マシンのユーザ通信の帯域、メモリサイズ、およびメモリ変化速度の平均値を用いて、各回の移動時間を基準移動時間として算出する。すなわち、まず、順序決定部６２は、移動する仮想マシンＶＭ＃ｎのユーザ通信の帯域Ｂｕｎの平均値Ｂｕａｖｅ、メモリサイズＭｎの平均値Ｍａｖｅ、およびメモリ変化速度Ｗｎの平均値Ｗａｖｅを算出する。次に、順序決定部６２は、Ｂｕａｖｅを用いて、上記式（７）により、ｋ回目の移動時において、集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍｋを算出する。そして、順序決定部６２は、基準移動時間として、上記式（４）によりｋ回目の移動時間ｔｓｋを算出する。
【００６４】
次に、順序決定部６２は、奇数回目の移動時には、移動時間の昇順に移動する仮想マシンを決定し、偶数回目の移動時には、当該回までの移動時間の合計が基準移動時間の合計に最も近くなるように、移動する仮想マシンを決定する。すなわち、順序決定部６２は、ｊ回目の移動で移動する仮想マシンＶＭ＃ｎを、ｊが奇数の場合には移動時間ｔｎｊが最小のものに決定する。また、順序決定部６２は、ｊが偶数の場合には、１〜ｊ回目までの移動時間ｔｎｊの合計と基準移動時間ｔｓｋの合計との差が小さくなるように、ｊ回目の移動で移動する仮想マシンＶＭ＃ｎを決定する。
【００６５】
ここで、移動時間ｔｎｊは、上記式（５）により算出される。上記式（５）において、ｊ回目の移動時に集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍｊを算出する際、平均値算出方式が適用される場合には、上記式（７）により算出される。あるいは逐次算出方式が適用される場合には、上記式（６）により算出される。
【００６６】
図９は、図３に例示した管理情報を元に、上記式（４）により算出された各回の基準移動時間と、各回の移動が決定した仮想マシンについての上記式（５）により算出された移動時間（実際の移動時間）とを示す図である。図９に示す例では、基準移動時間の合計が８３．９ｓであるのに対し、再配置時間すなわち実際の移動時間の合計は８５．３ｓであり、両者が同等であることが確認された。
【００６７】
［決定処理］
次に、図１０〜図１２のフローチャートを参照して、集約配置を行う場合の決定装置１における決定処理手順について説明する。決定処理には、再配置可否判断処理と順序決定処理とが含まれる。
【００６８】
［再配置可否判断処理］
図１０のフローチャートは、例えば、操作者により入力部２を介して処理開始の指示入力があったタイミングで開始される。
【００６９】
再配置可否判断部６１は、まず、帯域リソースを確認する。すなわち、再配置可否判断部６１は、集約サーバの空き帯域Ｂａが、Ｎ個の仮想マシンＶＮ＃ｎ（ｎ＝１，２，…，Ｎ）のユーザトラヒック帯域Ｂｕｎの合計より大きいことを確認する（ステップＳ１）。
【００７０】
集約サーバの空き帯域Ｂａが各仮想マシンのユーザトラヒック帯域Ｂｕｎの合計より大きい場合（ステップＳ１，Ｙｅｓ）、再配置可否判断部６１は、メモリリソースを確認する。すなわち、再配置可否判断部６１は、集約サーバ（サーバ＃１）の空きメモリサイズＭａが、各仮想マシンのメモリサイズＭｎの合計より大きいことを確認する（ステップＳ２）。
【００７１】
集約サーバの空メモリサイズＭａが各仮想マシンのメモリサイズＭｎの合計より大きい場合（ステップＳ２，Ｙｅｓ）、再配置可否判断部６１は、集約サーバ＃１に移動する仮想マシンＶＭ＃２〜ＶＭ＃１０のうち、メモリ変化速度Ｗｎが最も大きい仮想マシンを、集約サーバ＃１のＶＭ移動トラヒックに利用可能な帯域が最も大きい初回移動時に移動できることを確認する。すなわち、再配置可否判断部６１は、仮想マシンＶＭ＃２〜ＶＭ＃１０のうち、メモリ変化速度Ｗｎが、集約サーバ＃１のＶＭ移動トラヒックに利用可能な帯域の最大値Ｂａより大きい仮想マシンがないことを確認する（ステップＳ３）。
【００７２】
なお、上記ステップＳ１〜Ｓ３の処理のいずれかにおいて、確認条件に合致しない場合（ステップＳ１，Ｎｏ、またはステップＳ２，Ｎｏ、またはステップＳ３，Ｙｅｓ）、再配置可否判断部６１は、全仮想マシンを集約サーバに移動不可、すなわち再配置不可と判定する（ステップＳ４）。
【００７３】
メモリ変化速度Ｗｎが、集約サーバ＃１のＶＭ移動トラヒックに利用可能な帯域の最大値Ｂａより大きい仮想マシンがない場合（ステップＳ３，Ｎｏ）、再配置可否判断部６１は、まずｋ＝２とする（ステップＳ５）。次に、再配置可否判断部６１は、メモリ変化速度Ｗｎの降順にｋ個の仮想マシンを選択する（ステップＳ６）。そして、移動順序を決定して（ステップＳ７）、各回の移動時における集約サーバ＃１のＶＭ移動トラヒックに利用可能な帯域が、移動する仮想マシンのメモリ変化速度Ｗｎより大きく、この仮想マシンを移動可能であるか否かを確認する（ステップＳ８）。
【００７４】
なお、ステップＳ７の処理において、再配置可否判断部６１は、先に移動可能ではないとされた移動順序を確認対象から除く。
【００７５】
各回の移動時における集約サーバ＃１のＶＭ移動トラヒックに利用可能な帯域が、移動する仮想マシンのメモリ変化速度Ｗｎより大きくない場合（ステップＳ８，Ｎｏ）、再配置可否判断部６は、ｋ個の仮想マシンの移動順序を変更して同様の処理を繰り返す（ステップＳ９，Ｎｏ→ステップＳ７）。ｋ個の仮想マシンの考えられる全ての移動順序について確認した場合（ステップＳ９，Ｙｅｓ）、再配置可否判断部６１は、全仮想マシンを集約サーバに移動不可、すなわち再配置不可と判定する（ステップＳ１０）。これにより、一連の再配置可否判断処理が終了する。
【００７６】
各回の移動時における集約サーバ＃１の移動に利用可能な帯域が、移動する仮想マシンのメモリ変化速度Ｗｎより大きい場合（ステップＳ８，Ｙｅｓ）、再配置可否判断部６１は、ｋがＮより大きくなるまで、ｋを１ずつ増加させる（ステップＳ１１→Ｓ１２，Ｎｏ）。続いて、再配置可否判断部６１は、ステップＳ６の処理に戻して、いずれかの移動順序で移動可能であることを確認する処理を行う。ｋがＮより大きい場合には（ステップＳ１２，Ｙｅｓ）、全仮想マシンについて、いずれかの順序で移動可能であることが確認されたことになるため、再配置可否判断部６１は、再配置可能と判定する（ステップＳ１３）。これにより、一連の再配置可否判断処理が終了する。
【００７７】
［順序決定処理］
図１１は、順列方式による順序決定処理手順を示すフローチャートである。なお、図１１のフローチャートでは、各回の移動時の集約サーバのＶＭ移動トラヒックに使用可能な帯域を平均値算出方式により算出している。図１１のフローチャートは、例えば、上記の再配置可否判断処理において再配置可能と判定されたタイミングで開始される。
【００７８】
順序決定部６２は、まず、ｋ回目の移動時における、集約サーバのＶＭ移動トラヒックに使用可能な帯域Ｂｍｋを算出する。具体的に、まず、順序決定部６２は、移動する仮想マシンＶＭ＃ｎのユーザトラヒック帯域Ｂｕｎの平均値Ｂｕａｖｅを算出する（ステップＳ２１）。次に、順序決定部６２は、算出されたＢｕａｖｅを用いて、上記式（２）により、ｋ回目の移動時における、集約サーバのＶＭ移動トラヒックに使用可能な帯域Ｂｍｋを算出する（ステップＳ２２）。
【００７９】
次に、順序決定部６２は、算出されたｋ回目の移動時における集約サーバのＶＭ移動トラヒックに使用可能な帯域Ｂｍｋを用いて、上記式（３）により、ｋ回目の移動時における仮想マシンＶＭ＃ｎの移動時間ｔｎｋを算出する（ステップＳ２３）。
【００８０】
順序決定部６２は、まず、ｋ＝１として（ステップＳ２４）、ｋ回目の移動時に、算出された移動時間ｔｎｋが最大の仮想マシンを移動する仮想マシンと決定する（ステップＳ２５）。順序決定部６２は、ｋがＮより大きくなるまで、ｋを１ずつ増加させ（ステップＳ２６→Ｓ２７，Ｎｏ）、ステップＳ２５の処理を繰り返し、各回に移動する仮想マシンを決定する。なお、ｋがＮより大きい場合には（ステップＳ２７，Ｙｅｓ）、Ｎ台の移動する全仮想マシンについて、移動順序が決定したため、一連の順序決定処理が終了する。
【００８１】
図１２は、基準方式による順序決定処理手順を示すフローチャートである。なお、図１２のフローチャートでは、各回の移動時の集約サーバのＶＭ移動トラヒックに使用可能な帯域を、逐次算出方式により算出している。図１２のフローチャートは、例えば、上記の再配置可否判断処理において再配置可能と判定されたタイミングで開始される。
【００８２】
順序決定部６２は、まず、移動する仮想マシンＶＭ＃ｎのユーザ通信の帯域Ｂｕｎの平均値Ｂｕａｖｅ、メモリサイズＭｎの平均値Ｍａｖｅ、およびメモリ変化速度Ｗｎの平均値Ｗａｖｅを算出する（ステップＳ３１）。次に、順序決定部６２は、Ｂｕａｖｅを用いて、上記式（２）により、ｋ回目の移動時において、集約サーバのＶＭ移動トラヒックに使用可能な帯域Ｂｍｋを算出する（ステップＳ３２）。そして、順序決定部６２は、上記式（４）によりｋ回目の基準移動時間ｔｓｋを算出する（ステップＳ３３）。
【００８３】
次に、順序決定部６２は、奇数回目の移動時には、移動時間の降順に移動する仮想マシンを決定し、偶数回目の移動時には、当該回までの移動時間の合計が基準移動時間の合計に最も近くなるように、移動する仮想マシンを決定する。
【００８４】
すなわち、順序決定部６２は、まずｊ＝１として（ステップＳ３４）、Ｂｍ１を算出する（ステップＳ３５）。次に、順序決定部６２は、ｊがＮより大きくなるまで、ｊを１ずつ増加させ（ステップＳ３６→Ｓ３７，Ｎｏ）、上記式（６）によりｊ回目の移動時に集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍｊを算出する（ステップＳ３８）。
【００８５】
順序決定部６２は、ｊが奇数の場合には（ステップＳ３９，Ｙｅｓ）、ｊ回目の移動で移動する仮想マシンＶＭ＃ｎを、上記式（５）により算出される移動時間ｔｎｊが最大のものに決定する（ステップＳ４０）。また、順序決定部６２は、ｊが偶数の場合には（ステップＳ３９，Ｎｏ）、１〜ｊ回目までの移動時間ｔｎｊの合計と基準移動時間ｔｓｋの合計とが最も近くなるように、ｊ回目の移動で移動する仮想マシンＶＭ＃ｎを決定する（ステップＳ４１）。
【００８６】
なお、ｊがＮより大きい場合には（ステップＳ３７，Ｙｅｓ）、移動するＮ台の全仮想マシンについて、移動順序が決定したことを意味するため、一連の順序決定処理が終了する。
【００８７】
以上、説明したように、本実施形態の決定装置１では、再配置可否判断部６１が、各仮想マシンの移動時のメモリ変化速度の降順に基づいて、少なくとも１通りの順序で全仮想マシンを集約サーバ＃１に移動可能か否かを判断する。これにより、集約サーバ＃１に移動する仮想マシンの全順列について確認することなく、いずれかの順序で移動可能か否かを判定することができる。とくに移動不可すなわち再配置不可について、決定装置１は再配置可否判断処理の早い段階で判定できる。
【００８８】
また、再配置可否判断処理で移動可能と判定された場合に、順序決定部６２が、仮想マシンの各回の移動時における、集約サーバのＶＭ移動トラヒックに使用可能な帯域と、各仮想マシンのメモリサイズおよびメモリ変化速度とを用いて、各仮想マシンの移動時間を算出し、該移動時間に基づいて、仮想マシンの移動順序を決定する。これにより、複数の仮想マシンを１台の物理サーバに集約配置する場合に、再配置時間が長くなることを防止して移動可能な仮想マシンの移動順序を決定することができる。
【００８９】
また、順序決定部６２は、各回の移動で移動する仮想マシンを、移動時間の降順に決定する。集約サーバ＃１のＶＭ移動トラヒックに使用可能な帯域Ｂｍが小さい場合に移動時間が短い仮想マシンが選択され、再配置不可とならないように移動順序が決定される。
【００９０】
また、順序決定部６２は、移動する仮想マシンのユーザ通信の帯域、メモリサイズ、およびメモリ変化速度の平均値を用いて、各回の移動時間を基準移動時間として算出し、奇数回目の移動時には、移動時間の降順に移動する仮想マシンを決定し、偶数回目の移動時には、当該回までの移動時間の合計が基準移動時間の合計に最も近くなるように、移動する仮想マシンを決定する。これにより、再配置時間が基準移動時間の合計に近くなるように移動する仮想マシンが選択され、再配置不可とならず、極端に再配置時間が長時間にならないように、移動順序が決定される。
【００９１】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００９２】
１  決定装置
２  入力部
３  出力部
４  通信制御部
５  記憶部
６  制御部
６１  再配置可否判断部
６２  順序決定部
【図１】
2017033196.tif 000010
【図２】
2017033196.tif 000011
【図３】
2017033196.tif 000012
【図４】
2017033196.tif 000013
【図５】
2017033196.tif 000014
【図６】
2017033196.tif 000015
【図７】
2017033196.tif 000016
【図８】
2017033196.tif 000017
【図９】
2017033196.tif 000018
【図１０】
2017033196.tif 000019
【図１１】
2017033196.tif 000020
【図１２】
2017033196.tif 000021