(57)【要約】      （修正有）【課題】ライブマイグレーションの失敗を回避しながら、できるだけ多くの仮想マシンを並列してライブマイグレーションすることで、ライブマイグレーションにかかる時間を短縮する。【解決手段】仮想マシン管理装置は、仮想マシン（VM）を複数の物理サーバ間で移動させるVM制御部と、移動させたVMのうち、時間的に並列に移動させた仮想マシンであって、かつ移動先の物理サーバが同一のVM毎に、移動先の物理サーバのリソース残量と、VMのリソース消費量の和と、VMの移動性能とを含む履歴情報を記憶する履歴記憶部と、移動計画を立てるVMを、移動先の候補となる物理サーバに移動の開始時刻の候補となる開始時刻に移動開始可能か否かを、候補物理サーバのリソース残量と、計画対象VMのリソース消費量と、候補物理サーバへ候補開始時刻に移動開始することが計画済みのVMのリソース消費量の和と、履歴情報とに基づき判断する計画作成部とを備える。【選択図】図３
2015011569.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンを複数の物理サーバ間で移動させる仮想マシン制御部と、
前記仮想マシン制御部が移動させた仮想マシンのうち、時間的に並列に移動させた仮想マシンであって、かつ移動先の物理サーバが同一の仮想マシンである第１仮想マシン毎に、移動先の物理サーバのリソース残量と、前記第1仮想マシンのリソース消費量の和と、単位時間あたりに移動した前記第1仮想マシンの個数又は前記第1仮想マシンが移動にかかった時間に基づき決まる移動性能とを含む履歴情報を記憶する履歴記憶部と、
新たに移動計画を立てる計画対象仮想マシンを、前記計画対象仮想マシンの移動先の候補となるサーバである候補物理サーバに、移動の開始時刻の候補となる時刻である候補開始時刻に移動開始させることが可能か否かを、前記候補物理サーバのリソース残量と、前記計画対象仮想マシンのリソース消費量と、前記候補物理サーバへ前記候補開始時刻に移動開始することが計画済みの仮想マシンである計画済み仮想マシンのリソース消費量の和と、前記履歴情報とに基づき判断する計画作成部と、
を備える仮想マシン管理装置。
【請求項２】
前記計画作成部は、前記候補物理サーバのリソース残量と前記履歴記憶部に記憶された移動先の物理サーバのリソース残量との値が近く、かつ前記計画済み仮想マシンのリソース消費量の和と、前記履歴記憶部に記憶された仮想マシンのリソース消費量の和との値が近い履歴情報の移動性能である第１移動性能と、前記候補物理サーバのリソース残量と前記履歴記憶部に記憶された移動先の物理サーバのリソース残量との値が近く、かつ前記計画済み仮想マシンのリソース消費量の和と前記計画対象仮想マシンのリソース消費量との和と、前記履歴記憶部に記憶された仮想マシンのリソース消費量の和との値が近い履歴情報の移動性能である第２移動性能とを比較することで、前記計画対象仮想マシンを、前記候補物理サーバに前記候補開始時刻に移動させることが可能か否かを判断することを特徴とする請求項１記載の仮想マシン管理装置。
【請求項３】
前記計画作成部は、前記計画対象仮想マシンを、すべての前記候補物理サーバごとに、前記候補物理サーバへ前記候補開始時刻に移動可能か否かを判断し、判断結果に基づき、前記計画対象仮想マシンの、移動先の物理サーバと移動開始時刻とを決定するとともに、前記計画対象仮想マシンを計画済み仮想マシンに更新することを特徴とする請求項２記載の仮想マシン管理装置。
【請求項４】
前記計画作成部が、すべての前記計画対象仮想マシンについて、移動先の物理サーバと移動開始時刻とを決定すると、前記移動制御部は、計画済み仮想マシンを、前記計画作成部が決定した移動開始時刻を起点とした所定の時間帯に時間的に並列に、移動先の物理サーバに移動させるとともに、当該移動させた計画済み仮想マシンにつき、時間的に並列に移動させた仮想マシンであって、かつ移動先の物理サーバが同一の仮想マシンごとに、前記履歴記憶部に、移動先の物理サーバのリソース残量と、移動させた仮想マシンのリソース消費量の和と、移動性能とを含む履歴情報を記憶することを特徴とする請求項３記載の仮想マシン管理装置。
【請求項５】
前記計画作成部は、前記計画対象仮想マシンを使用するユーザと、すでに移動する開始時刻が決まっている仮想マシンを使用するユーザとを比較し、前記計画対象仮想マシンのユーザと同一のユーザの仮想マシンの移動開始時刻は、前記計画対象仮想マシンの移動開始時刻としないことを特徴とする請求項１、又は４記載の仮想マシン管理装置。
【請求項６】
前記計画作成部は、前記計画対象仮想マシンが提供するサービスの種類と、すでに移動する開始時刻が決まっている前記計画対象仮想マシンが提供するサービスの種類とを比較し、前記計画対象仮想マシンが提供するサービスの種類と同一のサービスの種類のサービスを提供する仮想マシンの移動開始時刻は、前記計画対象仮想マシンの移動開始時刻としないことを特徴とする請求項１、又は５記載の仮想マシン管理装置。
【請求項７】
仮想マシンを複数の物理サーバ間で移動させる仮想マシン制御機能と、
前記仮想マシン制御機能が移動させた仮想マシンのうち、時間的に並列に移動させた仮想マシンであって、かつ移動先の物理サーバが同一の仮想マシンである第１仮想マシン毎に、移動先の物理サーバのリソース残量と、前記第1仮想マシンのリソース消費量の和と、単位時間あたりに移動した前記第1仮想マシンの個数又は前記第1仮想マシンが移動にかかった時間に基づき決まる移動性能とを含む履歴情報を記憶する履歴記憶機能と、
新たに移動計画を立てる計画対象仮想マシンを、前記計画対象仮想マシンの移動先の候補となるサーバである候補物理サーバに、移動の開始時刻の候補となる時刻である候補開始時刻に移動開始させることが可能か否かを、前記候補物理サーバのリソース残量と、前記計画対象仮想マシンのリソース消費量と、前記候補物理サーバへ前記候補開始時刻に移動開始することが計画済みの仮想マシンである計画済み仮想マシンのリソース消費量の和と、前記履歴情報とに基づき判断する計画作成機能と、
を備える仮想マシン管理プログラム。
【請求項８】
仮想マシンを複数の物理サーバ間で移動させる仮想マシン制御手順と、
前記仮想マシン制御手順で移動させた仮想マシンのうち、時間的に並列に移動させた仮想マシンであって、かつ移動先の物理サーバが同一の仮想マシンである第１仮想マシン毎に、移動先の物理サーバのリソース残量と、前記第1仮想マシンのリソース消費量の和と、単位時間あたりに移動した前記第1仮想マシンの個数又は前記第1仮想マシンが移動にかかった時間に基づき決まる移動性能とを含む履歴情報を記憶する履歴記憶手順と、
新たに移動計画を立てる計画対象仮想マシンを、前記計画対象仮想マシンの移動先の候補となるサーバである候補物理サーバに、移動の開始時刻の候補となる時刻である候補開始時刻に移動開始させることが可能か否かを、前記候補物理サーバのリソース残量と、前記計画対象仮想マシンのリソース消費量と、前記候補物理サーバへ前記候補開始時刻に移動開始することが計画済みの仮想マシンである計画済み仮想マシンのリソース消費量の和と、前記履歴情報とに基づき判断する計画作成手順と、
を備える仮想マシン管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理プログラムに関する。
【背景技術】
【０００２】
クラウドコンピューティングの一形態として、IaaS (Infrastructure as a Service)が普及している。IaaSとは、サービスの提供者が、サービス利用者(ユーザ)に対して、仮想マシン(VM: Virtual Machine)を提供するサービスのことである。仮想マシンとは、コンピュータを構成するハードウェア(CPU、メモリ、ストレージなど)をソフトウェアで実装したもののことである。仮想マシンは、物理サーバ(PS: Physical Server) 上で動作する。以下の説明では、仮想マシンをVMと表記する場合もあり、物理サーバをPSと表記する場合もある。
【０００３】
IaaSのサービス提供者は、仮想マシンを動作させるための物理サーバ群を運用する。仮想マシンは、作成される際に、リソース(例えば、CPU、メモリ、ディスク、ストレージ、ネットワークなどの資源)を割り当てられる。一般的に、物理サーバのリソースは、個々の仮想マシンに割り当てられるリソースより大きい。したがって、一台の物理サーバ上で、複数の仮想マシンが動作する。
【０００４】
仮想マシンが実際に消費するリソース量は変動する。サーバ運用者は、リソース消費量の変動を考慮し、なるべく多くの仮想マシンを、一台の物理サーバ上で動作させようとする。稼働する物理サーバ数が減れば、電気代などのランニングコスト削減につながるためである。そのため、リソースに余裕のある物理サーバが存在する場合は、別の物理サーバ上で動作する仮想マシンを、リソースに余裕のある物理サーバに対して移動する。その際、ライブマイグレーション(LM: Live Migration)という技術を使用する。ライブマイグレーションとは、仮想マシンを停止することなく、別の物理サーバに移動する技術である。
【０００５】
例えば、デマンドレスポンス(DR: Demand Response)という電力需給制御の一手法により、一時的に電力単価が増加する場合に、ライブマイグレーションが行われる。この場合、IaaSの提供者は、電気代の高騰を避けるために、電力単価が増加する時間帯において、通常よりも稼働する物理サーバ数を減らす。つまり、電力単価が増加する時間帯において、多数の物理サーバを停止する。このため、停止する予定の物理サーバ群から、その他の物理サーバ群に、多くの仮想マシンをライブマイグレーションすることになる。また、上述のように、普段からなるべく多くの仮想マシンを一台の物理サーバ上で動作させる運用を行っているため、ライブマイグレーション先の物理サーバのリソースに余裕は少ない。また、仮想マシンをライブマイグレーションしている間、仮想マシンの性能が落ちるため、ライブマイグレーションを速く行う必要がある。
【０００６】
デマンドレスポンスを行う状況等においては、ライブマイグレーションを行う場合に、多くの仮想マシンを、リソース残量が少ない物理サーバに対して、速くライブマイグレーションすることが望まれる。  
従来、多くの仮想マシンをできるだけ早くライブマイグレーションするためには、仮想マシンを並列にライブマイグレーションする手法が用いられている。ここで、並列にライブマイグレーションする仮想マシンの数が多ければ多いほど、速くライブマイグレーションが完了すると想定される。しかし、特に、ライブマイグレーション先の物理サーバのリソース残量が少ない場合は、LM先物理サーバの性能が低下することもあり、並列してライブマイグレーションする仮想マシンの数が増えると、いくつかの仮想マシンのライブマイグレーションに失敗することがある。したがって、並列してライブマイグレーションする仮想マシンの数を増やした結果、すべての仮想マシンのライブマイグレーションが終わるまでの時間が長くなってしまう場合もある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開2010-237730号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の一側面は、複数の仮想マシンをライブマイグレーションする場合に、ライブマイグレーションするためにかかる時間を短縮することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一側面にかかる仮想マシン管理装置は、仮想マシン制御部と、履歴記憶部と、計画作成部と、を備える。仮想マシン制御部は、仮想マシンを複数の物理サーバ間で移動させる。履歴記憶部は、前記仮想マシン制御部が移動させた仮想マシンのうち、時間的に並列に移動させた仮想マシンであって、かつ移動先の物理サーバが同一の仮想マシンである第１仮想マシン毎に、移動先の物理サーバのリソース残量と、前記第1仮想マシンのリソース消費量の和と、単位時間あたりに移動した前記第1仮想マシンの個数又は前記第1仮想マシンが移動にかかった時間に基づき決まる移動性能とを含む履歴情報を記憶する。計画作成部は、新たに移動計画を立てる計画対象仮想マシンを、前記計画対象仮想マシンの移動先の候補となるサーバである候補物理サーバに、移動の開始時刻の候補となる時刻である候補開始時刻に移動開始させることが可能か否かを、前記候補物理サーバのリソース残量と、前記計画対象仮想マシンのリソース消費量と、前記候補物理サーバへ前記候補開始時刻に移動開始することが計画済みの仮想マシンである計画済み仮想マシンのリソース消費量の和と、前記履歴情報とに基づき判断する。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係るVM管理システムの構成を示すブロック図。
【図２】実施形態に係るVM管理装置の構成を示すブロック図。
【図３】実施例に係るVM管理装置100の構成を示すブロック図。
【図４】PS状態記憶部103が記憶する情報の例を示す図。
【図５】VM状態記憶部106が記憶する情報の例を示す図。
【図６】LM履歴記憶部109が記憶する情報の例を示す図。
【図７】DR情報記憶部111が記憶する情報の例を示す図。
【図８】VM管理装置100の動作概要を示すフローチャート。
【図９】LM計画作成部110の動作概要を示すフローチャート。
【図１０】LM計画を作成する動作を示すフローチャート。
【図１１】時刻tにおいて、PS_jに対して、VM_iをライブマイグレーション可能か判断する処理を説明する図。
【図１２】T_0において、PS_jにライブマイグレーションする予定のVMが存在しない場合の例を示す図。
【図１３】T_0において、PS_jにライブマイグレーションする予定のVMが存在する場合の例を示す図。
【図１４】T_1において、PS_jにライブマイグレーションする予定のVMが存在しない場合の例を示す図。
【図１５】VM制御部107の動作を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図面を参照しながら説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。  
図１は、本発明の実施形態に係るVM管理システムの構成を示すブロック図である。
【００１２】
実施形態に係るVM管理システムは、VM管理装置100と、複数のPS200とを備える。複数のPS200各々は、VM400を備える。VM管理装置100と、複数のPS200とはネットワーク300で接続される。ここで、ネットワーク300は、その規格を問わない。ネットワーク300は、有線でも無線でもよい。
【００１３】
図2は、本発明の実施形態にかかるVM管理装置100の構成を示すブロック図である。
【００１４】
図2に示すように、VM管理装置100は、VM制御部10と、LM履歴記憶部1１と、LM計画作成部1２と、を備える。
【００１５】
VM制御部10は、複数のPS200のいずれかのPS200で動作するVM400をPS200間で移動させる。
【００１６】
ＬＭ履歴記憶部11は、VM制御部10が移動させたVM400のうち、時間的に並列に移動させたVM400であって、かつ移動先のPS200が同一のVM400の毎に、移動先のPS200のリソース残量と、移動させたVM400のリソース消費量の和と、単位時間あたりに移動させたVM400の個数又は移動させたVM400が移動にかかった時間に基づき決まる移動性能と、を含む履歴情報を記憶する。
【００１７】
LM計画作成部12は、新たに移動計画を立てる計画対象VMを、計画対象VMの移動先の候補となる候補PS200に、移動の開始時刻の候補となる候補開始時刻に移動開始させることが可能か否かを、候補PS200のリソース残量と、計画対象VMのリソース消費量と、候補PS200へ候補開始時刻に移動開始することが計画済みの計画済みVM400のリソース消費量の和と、履歴情報とに基づき判断する。
【００１８】
より具体的には、LM計画作成部12は、候補PSのリソース残量とLM履歴記憶部11に記憶された移動先のPS200のリソース残量との値が近く、かつ計画済みVM400のリソース消費量の和と、LM履歴記憶部11に記憶されたVM400のリソース消費量の和との値が近い履歴情報の移動性能である第１移動性能と、候補PS200のリソース残量とLM履歴記憶部11に記憶された移動先のPS200のリソース残量との値が近く、かつ計画済みVM400のリソース消費量の和と計画対象VM400のリソース消費量との和と、LM履歴記憶部11に記憶されたVM400のリソース消費量の和との値が近い履歴情報の移動性能である第２移動性能とを比較することで、計画対象VM400を、候補PS200に候補開始時刻に移動させることが可能か否かを判断する。
【００１９】
そして、LM計画作成部12は、計画対象VM400を、すべての候補PS200ごとに、候補PS200へ候補開始時刻に移動可能か否かを判断し、判断結果に基づき、計画対象VM400の、移動先のPS200と移動開始時刻とを決定するとともに、計画対象VM400を計画済みVMに更新する。
【００２０】
計画作成部12が、すべての計画対象VM400について、移動先のPS200と移動開始時刻とを決定すると、VM制御部10は、計画済みVM400を、計画作成部12が決定した移動開始時刻から所定の時間帯に時間的に並列に移動先のPS200に移動させるとともに、移動させた計画済みVM400につき、移動開始時刻と移動先のPS200ごとに、LM履歴記憶部11に、移動先のPS200のリソース残量と、移動させたVM400のリソース消費量と、移動性能とを含む履歴情報を記憶する。
【００２１】
以下では、DRの例を用いてVM管理装置100の具体的な実施例を説明する。
【００２２】
尚、実施形態におけるVM制御部10は実施例におけるVM制御部107に対応する。LM履歴記憶部11は実施例においてはLM履歴記憶部109に対応する。LM計画作成部12は、実施例においてはLM計画作成部110に対応する。
【００２３】
（実施例）
図３は、実施例に係るVM管理装置100の構成を示すブロック図である。
【００２４】
VM管理装置100は、通信部101と、PS情報記憶部102と、PS状態記憶部103と、PS制御部104と、VM情報記憶部105と、VM状態記憶部106と、VM制御部107と、ユーザ情報記憶部108と、LM履歴記憶部109と、LM計画作成部110と、DR情報記憶部111と、電力消費量記憶部112と、停止PS数計算部113と、停止PS選択部114と、を備える。
【００２５】
通信部101は、ネットワーク300経由でPS200やPS200内のVM400と通信を行う。
【００２６】
PS情報記憶部102は、PS200ごとに、PS-IDとPSの性能情報とを対応付けて記憶する。PS-IDは、各々のPS200を一意に識別するIDである。PSの性能情報は、例えば、CPUの性能情報と、メモリの性能情報と、ストレージの性能情報と、ネットワークの性能情報である。ここで、メモリとは、主記憶装置のことであり、ＣＰＵがプログラムにしたがってデータを加工等する際に必要となるプログラムやデータを補助記憶装置から読み出して記憶しておくものである。ストレージは、補助記憶装置のことであり、プログラムやデータを長期的に記憶する。CPUの性能情報は、例えば、CPUの数、 型、コア数、クロック数(Hz)を含む情報である。メモリの性能情報は、例えば、サイズ(Byte)、帯域幅(Byte/sec)を含む情報である。ストレージ の性能情報は、例えば、種類(HDD, SSD, MRAM)、サイズ(Byte)、速度(Byte/sec)、レイテンシ(msec)を含む情報である。ネットワークの性能情報は、例えば、ネットワーク帯域、規格、通信用アドレスである。
【００２７】
PS状態記憶部103は、PS200ごとに、PS-IDとPSのリソース使用状況の情報とを対応付けて記憶する。PSのリソース使用状況の情報は、通信部101が各PS200から取得したものである。PSのリソース使用状況の情報は、例えば、計測時刻と、PS200の電源状態 (ON/OFF)と、CPU使用量（又はCPU使用率）と、コンテキストスイッチ（CS : Context switch）発生回数と、メモリ使用量と、スワップ発生量と、ストレージ使用量と、ストレージアクセス量と、ネットワーク使用量と、動作中のVM400のID一覧とを含む情報である。ここで、コンテキストスイッチとは、複数のプログラムを1つのCPUで実行できるように、あるプログラムの処理状態（コンテキスト）を保存し、別のプログラムの処理に切り替えたり、当該処理状態を復元させて、再開するように切り替える処理のことである。スワップ発生量とは、メモリ上の、あるプログラムのコンテキストをストレージへ書き出し又はストレージから読み出す際の、読み書きするコンテキスストのデータ量のことである。  図４に、PS状態記憶部103の一例を示す。
【００２８】
PS制御部104は、通信部101経由で、PS200の電源の入／切を行う。PS200は、ネットワーク経由で電源を制御可能な機能を備える。
【００２９】
VM情報記憶部105は、VMごとに、VM-IDと、VMのユーザのユーザIDと、VMを用いて提供するサービスの種類と、割当てCPU （VMに割り当てられたCPU）の性能情報と、割当てメモリ（VMに割り当てられたメモリ）の性能情報と、割当てストレージ（VMに割り当てられたストレージ）の性能情報と、割当てネットワーク（VMに割り当てられたネットワーク）の性能情報と、を記憶する。VM-ID は、 VMを一意に識別するIDである。ユーザID は、 VMのユーザのユーザを一意に識別するIDである。サービスの種類は、 例えば、Webサーバ、アプリケーションサーバ、DBサーバ、ロードバランサ、ストレージサーバなどである。割当てCPUの性能情報は、例えば、CPUの数、型、コア数、クロック数(Hz)である。割当てメモリの性能情報は、例えば、サイズ(Byte)、帯域幅(Byte/sec)である割当てストレージ の性能情報は、例えば、種類、サイズ(Byte)、速度(Byte/sec)、レイテンシ(msec)である。割当てネットワークの性能情報は、 例えば、ネットワーク帯域、規格、通信用アドレスである。
【００３０】
VM状態記憶部106は、VMごとに、VM-IDとVMのリソース使用状況の情報とを対応付けて記憶する。VM状態記憶部106は、VMのリソース使用状況の情報を、通信部101経由で把握し、記録する。VM-IDは、各々のVM400を一意に識別するIDである。VMのリソース使用状況の情報は、例えば、計測時刻と、VM400の電源状態 (ON/OFF)と、CPU使用量（またはCPU使用率）と、コンテキストスイッチ頻度と、メモリ使用量と、スワップ発生量と、ストレージ使用量と、ストレージアクセス量と、ネットワーク使用量である。図５に、VM状態記憶部106の一例を示す。
【００３１】
LM履歴記憶部109は、過去に実施したライブマイグレーションに関する履歴情報を記憶する。ライブマイグレーションに関する情報として、例えば、時間的に並列にライブマイグレーションさせたVM400であって、かつ移動先のPS200が同一のVM400の毎に、LM先PS200（ライブマイグレーションにおける移動先のPS200）のリソース残量 と、ライブマイグレーションしたVM400のリソース消費量(複数のVMを同時にライブマイグレーションした場合は、それらのリソース消費量の合計)と、LM性能と、ライブマイグレーションの成功/失敗とを記憶する。ここで、LM先PS200のリソース残量は、 ライブマイグレーション開始時のリソース残量である。LM性能は、たとえば、ライブマイグレーション速度（ライブマイグレーションの速さ）である。LM速度は、 1秒あたりにライブマイグレーションを完了したVMの数で表すことができる（単位はVM数/秒）。また、LM速度は、１つのVMをライブマイグレーションするのにかかった時間（複数移動させた場合はかかった時間の平均時間。）で表しても良い。尚、LM性能は、ライブマイグレーション速度でなく、ライブマイグレーションを完了したVMの数であっても良い。移動先のPS200が同一で時間的に並列にライブマイグレーションさせたVM400は、移動開始時刻が同一である場合もある。このような場合、LM履歴記憶部109は、ライブマイグレーションの開始時刻が同一でかつ移動先のPS200が同一のVM400ごとに履歴情報を記憶しても良い。図６に、LM履歴記憶部109が記憶する情報の例を示す。
【００３２】
LM履歴記憶部109の情報により、ライブマイグレーション実施時のPS200のリソース残量及びVMのリソース消費量と、LM性能との関係がわかる。図６では、リソースを一次元の値で表している。CPUやメモリなどの複数のリソースを一次元の値に変換する方法は様々である。本実施形態では、以下の式１〜４で、各リソース量を計算することにする。しかしながら、計算方法はこの方法に限られない。リソースの選択の仕方もこの方法に限られない。
【００３３】
PS200のリソース量 ＝ CPU数×Ａ＋メモリサイズ×Ｂ＋ストレージサイズ×Ｃ＋ネットワーク帯域×Ｄ・・・（式１）
尚、式１において、Ａ、Ｂ、Ｃ、Ｄは、あらかじめ設定されている係数である。(Ａ,
Ｂ，Ｃ、Ｄいずれかの値が0であっても良い。）
PS200のリソース消費量 ＝ CPU数×CPU使用率×Ａ＋メモリ消費量×Ｂ＋ストレージ消費量×Ｃ＋ネットワーク消費量×Ｄ・・・（式２）
VMのリソース量 ＝ 割当CPU数×Ａ＋割当メモリサイズ×Ｂ＋割当ストレージサイズ×Ｃ＋割当ネットワーク帯域×Ｄ・・・（式３）
VMのリソース消費量 ＝ 割当CPU数×CPU使用率×Ａ＋メモリ消費量×Ｂ＋ストレージ消費量×Ｃ＋ネットワーク消費量×Ｄ・・・（式４）
そして、ＰＳ200のリソース残量は、以下の式５で計算できる。
【００３４】
PS200のリソース残量 ＝ PS200のリソース量 −PS200上で動作する全VMの割当リソース量の合計…（式５）
尚、PSのリソース残量は、式５以外の方法で求めることができる。たとえば、PSのリソース残量は、PS200のリソース量−PS200のリソース消費量としても良い。すなわち、リソース残量は、リソース量をPSのCPU、ストレージ、及びメモリの性能から計算されるものとした場合、当該リソース量と、当該リソース量の計算に用いたPSのリソースの消費量との差分として求めても良いし、当該リソース量と、PS200上で動作する全VMのリソース量の合計との差分として求めても良い。また、リソース消費量は、リソース量の計算に用いたリソースについて求めた消費量とすることができる。
【００３５】
ユーザ情報記憶部108は、VMを使用するユーザごとに、ユーザIDと、ユーザ名と、ユーザ認証情報と、ユーザ所属と、を記憶する。
【００３６】
DR情報記憶部111は、受信したDR情報を記憶する。具体的には、DR情報IDと、時間帯と、電力単価とを記憶する。DR情報IDとは、 DR情報を一意に識別するIDである。図７は、DR情報記憶部111が記憶する情報の例を示す。
【００３７】
電力消費量記憶部112は、各PS200の電力消費量を記憶する。具体的には、PS-IDと、時間帯と、電力消費量と、を記憶する。
【００３８】
停止PS数計算部113は、電気代の高騰を避けるために停止すべきPS数を決定する。サーバ数を決定する際には、DR情報で提示された電力単価と、各PS200の電力消費量の情報を考慮する。
【００３９】
停止PS選択部114は、停止PS数計算部113が決定した数だけ、停止するPS200を選択する。停止PS選択部114が選択したPS200群を、停止予定PSと呼ぶ。選択の方法は様々である。第１の方法は、稼働中のPS200の中から、ランダムで選択する方法である。第２の方法は、実行中のVM数が少ない(多い)PS200から順番に選択する方法である。第３の方法は、リソースの消費割合が少ない(多い)PS200から順番に選択する方法である。第１から第３の方法、いずれの方法を選択しても良い。別の方法であっても良い。
【００４０】
LM計画作成部110は、ライブマイグレーションする必要が生じたVM群(LM予定VMと称する。)ごとに、LM先PS200と、LM開始時刻を決定する。ここで、LM先PSとは、ライブマイグレーションする際の、移動先の物理サーバ200である。どのLM予定VMから、LM先PS200とライブマイグレーション開始時刻を決定するかは、様々な基準がある。第１の基準は、  リソース消費量が大きい(小さい)LM予定VMから順番に行うという基準である。第２の基準は、リソース割当量が大きい(小さい)LM予定VMから順番に行うという基準である。第３の基準は、リソース消費量が大きい(小さい)PS200上で動作中のVMから順番に行うという基準である。第１から第３の基準、いずれの基準を選択しても良い。別の基準であっても良い。
【００４１】
LM計画作成部110は、総LM時間（複数のVMを全てライブマイグレーションする際に要する時間）が短くなるように、LM先PS200と、ライブマイグレーション開始時刻を決定する。基本的に、リソース消費量に余裕があり、かつ、まだあまり選択されていないPS200を、LM先PS200として選択する。また、LM性能が増すなら、あるLM先PS200に対して、同時に複数のVMをライブマイグレーションするように、LM開始時刻を決定する。同時にライブマイグレーションすることで、LM性能が増すかどうかは、LM履歴記憶部109の情報と、計画作成時のPS200のリソース残量やVMのリソース消費量から判断する。
【００４２】
また、LM計画作成部110は、同一ユーザのVM群を、同じ時間帯にライブマイグレーションしないように、ライブマイグレーション開始時刻を決定してもよい。ライブマイグレーション中、VMの処理性能は低下するため、あるユーザのVM群を、同一時間帯にライブマイグレーションすると、そのユーザのVM群の総処理性能(ユーザシステム性能)が短期的に大幅に低下する。あるユーザのVM群を別時間帯にライブマイグレーションすることで、ユーザシステム性能の低下を時間的に分散できる。例えば、LM計画作成部110は、LM計画作成対象のVM400を使用するユーザと、すでに移動する開始時刻が決まっているVM400を使用するユーザとを、例えば、ユーザ情報記憶部108を参照することで比較し、LM計画作成対象のVM400のユーザと同一のユーザのVM400のLM開始時刻は、LM計画対象VM400の移動開始時刻としない計画を作成する。
【００４３】
さらに、VMが提供するサービスの種類がわかる場合は、同一のサービスの種類のVM群を、同じ時間帯にライブマイグレーションしないように、LM開始時刻を決定してもよい。例えば、あるユーザが、複数のWebサーバ用VMと、複数のアプリケーションサーバ用VMと、複数のDBサーバ用VMを使用したシステムを構築したとする。このとき、Webサーバ用VM群の性能だけがどれだけ高くても、DBサーバ用VM群の性能が低ければ、システムとしての性能は低くなる。同一のサービスの種類のVM群を別時間帯にライブマイグレーションすることで、ユーザシステム性能の低下を時間的に分散できる。LM計画作成部110は、LM計画作成対象のVM400が提供するサービスの種類と、すでに移動する開始時刻が決まっているVM400が提供するサービスの種類とを、例えば、VM情報記憶部105を参照し、LM計画作成対象のVM400が提供するサービスの種類と同一のサービスの種類のサービスを提供するVM400の移動開始時刻は、LM計画作成対象のVM400の移動開始時刻としない計画を作成する。
【００４４】
その他、LM計画作成部110の処理の詳細は、後述する。
【００４５】
VM制御部107は、各PS200と連携することで、VMの作成、削除、起動、停止、リソース割当量の変更などを行う。VM制御部107は、また、LM計画作成部110が作成したLM計画に基づいて、VMのライブマイグレーションを行う。VM制御部107は、ライブマイグレーションを実施した後、ライブマイグレーションに要した時間や、LM先PS200のリソース残量とVMのリソース消費量とLM性能とを、LM履歴記憶部109に記録する。このように、LM履歴記憶部109は、VMのライブマイグレーションを行うたびに更新される。
【００４６】
また、VM制御部107は、LM計画に基づいてVMのライブマイグレーションを行った際に、まだ移動していないVMのリソース割当量を、一時的に増やしてもよい。本実施形態の想定環境では、VM群は、リソースに余裕の無いPS200にライブマイグレーションされる可能性がある。その場合、ライブマイグレーション後のVMの性能は低下する。一方で、停止予定のPS200は、ライブマイグレーションの実施が進むにつれ、リソースに余裕が生じる。ライブマイグレーションの実施により生じたリソースの余裕を、まだライブマイグレーションしていないVMに割り当てることで、LM計画実施中のユーザシステム性能の低下を抑えられる。
【００４７】
以降、VM管理装置100の動作を説明する。
【００４８】
まず、VM管理装置100全体の動作を説明する。
【００４９】
図８は、VM管理装置100の動作を示すフローチャートである。
【００５０】
まず、通信部101がDR情報を受信し、DR情報記憶部111に記録する（S８０１）。次に、停止PS数計算部113が、停止するPS数を決定する（S８０２）。次に、停止PS選択部114が、停止するPSを選択する（S８０３）。次に、LM計画作成部110が、LM計画を作成する（S８０４）。次に、VM制御部107が、VMのLM計画にもとづいてライブマイグレーションを実施する（S８０５）。次に、PS制御部104が、LM元PS200（ライブマイグレーションする際の、移動元の物理サーバ200）群を停止する（S８０６）。次に、DR期間が経過するまで待機する（S８０７）。次に、PS制御部104が、LM元PS200群を起動する（S８０８）。次に、VM制御部107が、VM群の配置を元の状態に戻すためにライブマイグレーションを実施する（S８０９）。
【００５１】
図８の処理のうち、停止PS数計算部113、LM計画作成部110、VM制御部107、PS制御部104の処理の詳細は後述する。
【００５２】
次に、停止PS数計画部113の動作を説明する。
【００５３】
まず、停止PS数計画部113は、新たに記録されたDR情報を参照し、時間帯と電力単価を把握する。そして、DR情報の電力単価と、通常の電力単価を比較し、その倍率を計算する（式６参照）。
【００５４】
電力単価倍率 ＝ DR情報の電力単価÷通常の電力単価・・・（式６）
そして、電力単価倍率の逆数を、停止するPSの割合とする（式７参照）。
【００５５】
停止するPSの割合＝１／単価倍率・・・（式７）
そして、全PS数に、停止するPSの割合をかけることで、停止するPS数を計算する（式８参照）。
【００５６】
停止するPS数＝全PS数×停止するPSの割合・・・（式８）
そして、「停止するPS数」の端数を丸め、整数とする。ただし、丸めた結果、
停止するPS数 ＝ 全PS数・・・（式９）
となった場合は、
停止するPS数 ＝ 全PS数 − １・・・（式１０）
とする。  
そして、「停止するPS数」を、停止PS選択部114に渡す。停止PS選択部114は、上述のように、停止するPSを選択する。
【００５７】
次に、図９を用いて、LM計画作成部110の処理の詳細を説明する。
【００５８】
LM計画作成部110は、停止PS選択部114から、停止予定PS（電源を落とすことが計画されているPS）のPS-ID一覧を受け取る（Ｓ９０１）。そして、停止予定PS以外のPSを、LM先候補PS（LM先PSとして選択可能な物理サーバ200）とする。また、停止予定PS群上のVM群を、LM予定VM（ライブマイグレーションすることが計画されているVM）とする（Ｓ９０２）。そして、LM予定VMごとに、LM計画(LM先PSとLM開始時刻)を作成する（Ｓ９０３）そして、決定したLM計画をVM制御部に渡す（Ｓ９０４）。
【００５９】
図１０は、LM計画を作成する動作を示すフローチャートである。
【００６０】
図１０を用いて、LM予定VMごとにLM計画を作成する動作フローを説明する。LM開始時刻は、起点時刻T_0を基準として、T_0との相対時刻で表す。
【００６１】
まず、LM予定VM群の中から、まだLM計画を作成していないVMを1つ選択する。これをVM_iとする。全てのLM予定VMに対してLM計画を作成したら処理を終了する（Ｓ１００１、Ｓ１００２）。
【００６２】
次に、LM先候補PSの中から、まだVM_iをライブマイグレーションできる時刻T_j (LM開始時刻)を計算していないPSを1つ選択する。これをPS_jとする。全てのLM先候補PSに対してT_jを決定したら、Ｓ８０９へ進む（Ｓ１００３、Ｓ１００４）。
【００６３】
t = T_0として、PS_jに対するLM開始時刻T_jの計算を開始する（Ｓ１００５）。
【００６４】
時刻tにおいて、PS_jに対して、VM_iをライブマイグレーション可能か判断する（Ｓ１００６）。具体的な判断方法は後述する。ライブマイグレーション可能であれば（Ｓ１００６  ＹＥＳ）、時刻tをLM開始時刻T_jとする（Ｓ１００７）。その後、Ｓ１００３に戻る。
【００６５】
一方、ライブマイグレーション不可能であれば（Ｓ１００６  ＮＯ）、すでに時刻tにおいてPS_jに対してライブマイグレーションする予定のVM_fが存在するということである。この場合、VM_fのライブマイグレーション完了時刻を新たな時刻tとし（Ｓ１００８）、Ｓ１００６へ戻る。VM_fのライブマイグレーション完了時刻は、LM履歴記憶部109の情報を参照することで計算できる。例えば、VM_fのリソース量（又は消費量）とLM履歴情報記憶部109に基づき、予測できる。またVM_fのライブマイグレーションの完了時刻は、VMのリソース量（又は消費量）とライブマイグレーションにかかる時間に比例関係などの関係があれば、リソース量（又は消費量）のみに基づいて求めることもできる。
【００６６】
T_0とT_jとの差が最小であるLM先候補PS_jを、VM_iのLM先PSとして確定する。また、PS_jに対するLM開始時刻T_jを、VM_iのLM開始時刻として確定する（Ｓ１００９）。
【００６７】
次に、時刻tにおいて、PS_jに対して、VM_iをライブマイグレーション可能か判断する方法を説明する。
【００６８】
図１１は、時刻tにおいて、PS_jに対して、VM_iをライブマイグレーション可能か判断する処理を説明する図である。
【００６９】
PS_jに対して、時刻tにライブマイグレーションを開始する予定のVMが、まだ存在しない場合（Ｓ１１０１  ＮＯ）は、ライブマイグレーション可能だと判断する（Ｓ１１０５）。図１２は、t = T_0において、PS_jにライブマイグレーションする予定のVMが存在しない場合を表している。この場合、T_j = T_0とする。
【００７０】
一方、時刻tにライブマイグレーションを開始する予定のVM_fが存在する場合（Ｓ１１０１  ＹＥＳ）、VM_fとVM_iのユーザが同じか確認する（Ｓ１１０２）。同じであれば（Ｓ１１０２  ＹＥＳ）、時刻tにライブマイグレーション不可能だと判断する（Ｓ１１０６）。
【００７１】
次に、時刻tにライブマイグレーションを開始する予定のVM_fが存在する場合（Ｓ１１０１  ＹＥＳ）、VM_fとVM_iのサービスの種類(Webサーバ、DBサーバ、など)が同じか確認する（Ｓ１１０３）。同じであれば（Ｓ１１０３  ＹＥＳ）、時刻tにライブマイグレーション不可能だと判断する（Ｓ１１０６）。
【００７２】
次に、VM_iを同時にライブマイグレーションすることで、LM性能が増すかどうかを検討する（Ｓ１１０４）。性能が増す、もしくは変わらないと予想できる場合は（Ｓ１１０４  ＹＥＳ）、時刻tにライブマイグレーション可能だと判断する（Ｓ１１０５）。また、性能が増すかどうかわからない場合も（Ｓ１１０４  ＹＥＳ）、時刻tにライブマイグレーション可能だと判断する（Ｓ１１０５）。性能が低下すると予想できる場合は（Ｓ１１０４  ＮＯ）、時刻tにライブマイグレーション不可能だと判断する（Ｓ１１０６）。
【００７３】
VM_iを同時にライブマイグレーションすることで、LM性能が増すか判断するためには、以下の式１１を用いる。
【００７４】
VM_iを同時ライブマイグレーションする場合のLM性能 ＞＝ VM_iを同時ライブマイグレーションしない場合のLM性能・・・（式１１）
式１１が成り立つなら、同時にライブマイグレーションすることで、LM性能は増す。式１１が成り立たないなら、LM性能は増さない。右辺と左辺の両方の値を計算できなければ、性能が増すかはわからない。
【００７５】
式１１の左辺と右辺の値を計算するためには、3つの情報が必要である。第１の情報は、LM先PS_jのリソース残量である、第２の情報は、PS_jをLM先PSとするVM群のリソース消費量の合計である。第３の情報は、VM_iのリソース消費量である。
【００７６】
この3つの情報は、PS情報記憶部102と、PS状態記憶部103と、VM状態記憶部106の情報からわかる。
【００７７】
LM履歴記憶部109を参照し、「LM先PSのリソース残量」欄の値と、第１の情報の値の差が閾値1以下であるLM履歴を取得する。さらに、見つかったLM履歴の中で、「ライブマイグレーションしたVMのリソース消費量」欄の値と、第２の情報の値の差が閾値2以下であるLM履歴を取得する。取得したLM履歴の中で、差が最小のLM履歴のLM性能を、式１１の右辺の値とする。閾値1および閾値2は、あらかじめ設定されているものとする。  
また、「LM先PSのリソース残量」欄の値と、情報1の値の差が閾値1以下であるLM履歴を取得する。さらに、「ライブマイグレーションしたVMのリソース消費量」欄の値と、「第２の情報と第３の情報の合計値」の差が閾値2以下である履歴を取得する。差が最小のLM履歴のLM性能を、式１１の左辺の値とする。
【００７８】
このように計算することで、LM性能が増すか判断できる。
【００７９】
図１３は、T_0において、PS_jにライブマイグレーションする予定のVMが存在する場合の例を示す図である。
【００８０】
図１３は、時刻t = T_0において、すでにVM_1、VM_2、VM_3がPS_jに対してライブマイグレーションすると計画されている場合の例である。T_1は、VM_1とVM_2のライブマイグレーションが完了する時刻である。この場合、上述のように、さらにVM_iも同時にライブマイグレーションすることで、LM性能が増すかどうかを判断する。
【００８１】
図１３の場合に、LM性能が低下すると判断した場合は、図１４のようにT_1においてライブマイグレーション可能か検討する。
【００８２】
図１４は、 T_1において、PS_jにライブマイグレーションする予定のVMが存在しない場合の例を示す図である。
【００８３】
図１３の場合、T_1においてLMが予定されているVMは存在しないため、VM_iをT_1にライブマイグレーション実施可能だと判断する。
【００８４】
尚、図１１において、LM可能か不可かを判断するに当たり、Ｓ１１０２とＳ１１０３とＳ１１０４との３つのステップの順番は、変更可能である。また、Ｓ１１０２とＳ１１０３とＳ１１０４の３つのステップのうち、いずれか一つのステップ若しくは２つのステップに基づいて、LM可能か不可かを判断しても良い。例えば、Ｓ１１０４のみに基づいて判断しても良い。
【００８５】
次に、VM制御部107の動作を説明する。図１５は、VM制御部107の動作を示すフローチャートである。
【００８６】
まず、LM計画作成部110が作成したLM計画から、総LM時間を計算する（Ｓ１５０１）。総LM時間は、最も遅いLM完了時刻と、T_0の差である。
【００８７】
次に、式１２を用いて、実際のLM開始時刻を計算する（Ｓ１５０２）。
【００８８】
実際のLM開始時刻 ＝ DRの対象時間帯の開始時刻 − 総LM時間・・・（式１２）
次に、実際のLM開始時刻を起点時刻T_0とし、LM計画に従い、ライブマイグレーションを実行する（Ｓ１５０３）。尚、VM制御部107は、LM開始時刻として例えばT_0として定めたすべてのVM400について、正確にT_0を開始時刻として移動させなくてもよく、例えば、T_0を起点とした所定の時間帯（例えば、T_0からT_1の時間帯）に移動を開始させ、移動を完了させればよい。
【００８９】
次に、ライブマイグレーションが完了するごとに、ライブマイグレーションしたVMのリソース消費量や、LM性能（例えば、１秒当たりに移動したVMの数）、ライブマイグレーションのエラーが発生したか否か、LM先PSのリソース残量などを、LM履歴記憶部109に記録する（Ｓ１５０４）。
【００９０】
次に、VMごとに、LM元PSのIDを、PS制御部104に伝える（Ｓ１５０５）。
【００９１】
次に、PS処理部104の処理シーケンスを説明する。
【００９２】
まず、全VMのライブマイグレーションが完了したら、PS制御部104は、全ての停止予定PSの電源を落とす。次に、DR期間が終了するまで待機する。次に、DR期間が終了したら、全ての停止予定PSの電源を入れる。次に、PSが起動したら、VMの配置を元の状態に戻すべく、VM群をライブマイグレーションする。この際、VM制御部107から受け取った「LM元PSのID情報」を利用する。
【００９３】
本実施形態は、DRによる電気代の高騰を回避するという例で説明したが、本提案の用途はこれに限らない。多くのVMを、速くライブマイグレーションしたい状況であれば、本提案の内容を適用可能である。例えば、PSサーバの故障/不良を検出した場合に、早急に別のPSにVM群をライブマイグレーションしたい場合にも、VM管理装置100は適用できる。
【００９４】
ライブマイグレーションの方法は、VMのメモリのみを移動する方法と、メモリとストレージの両方を移動する方法がある。本提案は、そのどちらにも適用できる。ただし、メモリのみを移動する場合は、物理サーバ200間でVMのストレージ情報を共有するための、共有ストレージサーバが別途必要となる。
【００９５】
複数のＶＭをライブマイグレーションする場合に、ライブマイグレーションの失敗をできるだけ回避しながら、できるだけ多くのＶＭを並列してライブマイグレーションすることで、ライブマイグレーションするためにかかる時間を短縮することができる。
【００９６】
また、VM管理装置100は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、通信部101と、PS情報記憶部102と、PS状態記憶部103と、PS制御部104と、VM情報記憶部105と、VM状態記憶部106と、VM制御部107と、ユーザ情報記憶部108と、LM履歴記憶部109と、LM計画作成部110と、DR情報記憶部111と、電力消費量記憶部112と、停止PS数計算部113と、停止PS選択部114とは、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、通信部101と、PS情報記憶部102と、PS状態記憶部103と、PS制御部104と、VM情報記憶部105と、VM状態記憶部106と、VM制御部107と、ユーザ情報記憶部108と、LM履歴記憶部109と、LM計画作成部110と、DR情報記憶部111と、電力消費量記憶部112と、停止PS数計算部113と、停止PS選択部114とは、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CDROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、PS情報記憶部102と、PS状態記憶部103と、VM情報記憶部105と、VM状態記憶部106と、ユーザ情報記憶部108と、LM履歴記憶部109と、DR情報記憶部111と、電力消費量記憶部112とは、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスクもしくはCDR、CDRW、DVDRAM、DVDRなどの記憶媒体などを適宜利用して実現することができる。
【００９７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９８】
100・・・VM管理装置、101・・・通信部、102・・・PS情報記憶部、103・・・PS状態記憶部、104・・・PS制御部、105・・・VM情報記憶部、106・・・VM状態記憶部、10,107・・・VM制御部、108・・・ユーザ情報記憶部、11,109・・・LM履歴記憶部、12,110・・・LM計画作成部、111・・・DR情報記憶部、112・・・電力消費量記憶部、113・・・停止PS数計算部、114・・・停止PS選択部、200・・・PS（物理サーバ）、300・・・ネットワーク、400・・・VM(仮想マシン)
【図１】
2015011569.tif 000003
【図２】
2015011569.tif 000004
【図３】
2015011569.tif 000005
【図８】
2015011569.tif 000006
【図９】
2015011569.tif 000007
【図１０】
2015011569.tif 000008
【図１１】
2015011569.tif 000009
【図１２】
2015011569.tif 000010
【図１３】
2015011569.tif 000011
【図１４】
2015011569.tif 000012
【図１５】
2015011569.tif 000013
【図４】
2015011569.tif 000014
【図５】
2015011569.tif 000015
【図６】
2015011569.tif 000016
【図７】
2015011569.tif 000017