(57)【要約】      （修正有）【課題】物理マシンのリソース使用量の極端な上昇がないよう仮想マシンを再配置する。【解決手段】仮想マシン管理プログラムは、物理マシン群内の複数の物理マシンに配備された複数の仮想マシン及び複数の物理マシンの、単位時間毎のリソース使用量を記憶し、所定期間内での単位時間毎のリソース空き容量の最小値が最も小さい第１物理マシンを選択し、第１物理マシンで動作中の仮想マシンのうち、第１物理マシンの前記リソース使用量を正規化した正規化リソース使用量の第１波形と類似度が相対的に高い第２波形を持つ第１仮想マシンを選択し、第１物理マシンを除く物理マシンのうち、第１仮想マシンの前記正規化リソース使用量の第２波形と類似度が相対的に低い第３波形を持つ第２物理マシンを選択し、第１仮想マシンを第１物理マシンから第２物理マシンに再配置する、処理をコンピュータに実行させる。【選択図】図８
2019040330.tif 000002
【特許請求の範囲】
【請求項１】
管理対象の物理マシン群内の複数の物理マシンそれぞれに配備された複数の仮想マシン及び前記複数の物理マシンの、単位時間毎のリソース使用量を記憶し、
前記複数の物理マシンのうち、所定期間内での前記単位時間毎のリソース空き容量の最小値が最も小さい第１物理マシンを選択し、
前記第１物理マシンで動作中の複数の仮想マシンのうち、前記第１物理マシンの前記所定期間内での単位時間毎のリソース使用量を正規化した正規化リソース使用量の第１波形と類似度が相対的に高い前記正規化リソース使用量の第２波形を持つ第１仮想マシンを選択し、
前記第１物理マシンを除く前記複数の物理マシンのうち、前記第１仮想マシンの前記正規化リソース使用量の第２波形と類似度が相対的に低い前記正規化リソース使用量の第３波形を持つ第２物理マシンを選択し、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置する、
処理をコンピュータに実行させる仮想マシン管理プログラム。
【請求項２】
前記正規化リソース使用量を、前記所定期間内での単位時間毎のリソース使用量と前記単位時間毎のリソース使用量の平均値との差分を、前記所定期間内の単位時間毎のリソース使用量の標準偏差で除して算出する、請求項１に記載の仮想マシン管理プログラム。
【請求項３】
前記類似度を、前記第１波形と第２波形同士、または前記第２波形と第３波形同士の前記単位時間毎の差分の二乗の累積値の平方根であるユークリッド距離が近い程類似する、遠い程類似しないと判定する、請求項１に記載の仮想マシン管理プログラム。
【請求項４】
管理対象の物理マシン群内の複数の物理マシンそれぞれに配備された複数の仮想マシン及び前記複数の物理マシンの、単位時間ごとのリソース使用量を記憶し、
前記複数の物理マシンのうち、所定期間内での前記単位時間毎のリソース空き容量の最小値が最も小さい第１物理マシンを選択し、
前記第１物理マシンで動作中の複数の仮想マシンのうち、前記第１物理マシンの前記所定期間内での単位時間毎のリソース使用量を正規化した正規化リソース使用量から、前記複数の物理マシンの前記所定期間内での単位時間毎の合計リソース使用量を正規化した正規化合計リソース使用量を減じた第１差分波形と、類似度が相対的に高い前記正規化リソース使用量の第２波形を持つ第１仮想マシンを選択し、
前記第１物理マシンを除く前記複数の物理マシンのうち、前記第１仮想マシンの前記正規化リソース使用量の第２波形と類似度が相対的に高い第２差分波形を持つ第２物理マシンを選択し、前記第２差分波形は前記正規化合計リソース使用量から第２物理マシンの前記正規化リソース使用量を減じて求められ、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置する、
処理をコンピュータに実行させる仮想マシン管理プログラム。
【請求項５】
前記正規化リソース使用量を、前記所定期間内での単位時間毎のリソース使用量と前記単位時間毎のリソース使用量の平均値との差分を、前記所定期間内の単位時間毎のリソース使用量の標準偏差で除して算出し、
前記正規化合計リソース使用量を、前記所定期間内での単位時間毎の合計リソース使用量と前記単位時間毎の合計リソース使用量の平均値との差分を、前記所定期間内の単位時間毎の合計リソース使用量の標準偏差で除して算出する、請求項４に記載の仮想マシン管理プログラム。
【請求項６】
前記類似度を、前記第１差分波形と第２波形同士、または前記第２波形と第２差分波形同士の前記単位時間毎の差分の二乗の累積値の平方根であるユークリッド距離が近い程類似する、遠い程類似しないと判定する、請求項４に記載の仮想マシン管理プログラム。
【請求項７】
前記処理は、更に、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置した場合の前記複数の仮想マシン及び複数の物理マシンの単位時間毎のリソース使用量を算出し、
前記算出リソース使用量に基づいて計算した、前記複数の物理マシンそれぞれの前記所定期間内の単位時間毎のリソース使用量と前記リソース使用量の平均値とのユークリッド距離である第１波形サイズの合計値の、前記複数の物理マシンの前記所定期間内の単位時間毎の合計リソース使用量と前記合計リソース使用量の平均値とのユークリッド距離である第２波形サイズに対する、割合が、所定の状態に低下するか否かの第１判定を行い、
前記第１判定が真になるまで、前記第１物理マシンの選択と、前記第１仮想マシンの選択と、前記第２物理マシンの選択と、前記リソース使用量の算出とを繰り返すこと、を有する請求項１または４に記載の仮想マシン管理プログラム。
【請求項８】
前記処理は、更に、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置した場合の前記複数の仮想マシン及び複数の物理マシンの単位時間毎のリソース使用量を算出し、
前記算出リソース使用量に基づいて計算した、前記単位時間毎の物理マシンの空きリソース量の第１最小値が、前記複数の物理マシン中で最も小さい物理マシンの、前記第１最小値である第２最小値が、上昇から下降に転じるか否か第２判定を行い、
前記第２判定が真になるまで、前記第１物理マシンの選択と、前記第１仮想マシンの選択と、前記第２物理マシンの選択と、前記リソース使用量の算出とを繰り返すこと、を有する請求項１または４に記載の仮想マシン管理プログラム。
【請求項９】
管理対象の物理マシン群内の複数の物理マシンそれぞれに配備された複数の仮想マシン及び前記複数の物理マシンの、単位時間毎のリソース使用量を記憶し、
前記複数の物理マシンのうち、所定期間内での前記単位時間毎のリソース空き容量の最小値が最も小さい第１物理マシンを選択し、
前記第１物理マシンで動作中の複数の仮想マシンのうち、前記第１物理マシンの前記所定期間内での単位時間毎のリソース使用量を正規化した正規化リソース使用量の第１波形と類似度が相対的に高い前記正規化リソース使用量の第２波形を持つ第１仮想マシンを選択し、
前記第１物理マシンを除く前記複数の物理マシンのうち、前記第１仮想マシンの前記正規化リソース使用量の第２波形と類似度が相対的に低い前記正規化リソース使用量の第３波形を持つ第２物理マシンを選択し、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置する、
処理を有する仮想マシン管理方法。
【請求項１０】
管理対象の物理マシン群内の複数の物理マシンそれぞれに配備された複数の仮想マシン及び前記複数の物理マシンの、単位時間毎のリソース使用量を記憶するリソース使用量記憶手段と、
前記複数の物理マシンのうち、所定期間内での前記単位時間毎のリソース空き容量の最小値が最も小さい第１物理マシンを選択する第1物理マシン選択手段と、
前記第１物理マシンで動作中の複数の仮想マシンのうち、前記第１物理マシンの前記所定期間内での単位時間毎のリソース使用量を正規化した正規化リソース使用量の第１波形と類似度が相対的に高い前記正規化リソース使用量の第２波形を持つ第１仮想マシンを選択する第１仮想マシン選択手段と、
前記第１物理マシンを除く前記複数の物理マシンのうち、前記第１仮想マシンの前記正規化リソース使用量の第２波形と類似度が相対的に低い前記正規化リソース使用量の第３波形を持つ第２物理マシンを選択する第２物理マシン選択手段と、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置する再配置手段と、を有する仮想マシン管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン管理プログラム、仮想マシン管理方法及び仮想マシン管理装置に関する。
【背景技術】
【０００２】
近年、複数の物理マシン（またはコンピュータ、情報処理装置等）それぞれに複数の仮想マシンを配備し、仮想マシンが様々な業務アプリケーションプログラム（以下単に業務アプリケーションと称する）を実行して業務システムを提供することが行われている。物理マシン上で実行される仮想化ソフトウエア（以下ハイパーバイザと称する）は、物理マシンに配備される複数の仮想マシンに、物理マシンのＣＰＵやメモリなどのハードウエアリソース（ハードウエア資源、または単にリソースと称する）のうち予め定めたリソース量を割り当てる。
【０００３】
そして、業務アプリケーションを実行する仮想化マシンでは、例えば一日単位の周期で変化する業務量に応じて、そのリソース使用量も変化する。例えば、昼間にアクセスが多いオンライン処理を実行する仮想マシンや夜間にバッチ処理を実行する仮想マシンなどは、１日周期で同程度のリソース使用量の変化が繰り返される。但し、業務量の変化や制度改正等に起因して仮想マシンのリソース使用量が増加すると、物理マシンのリソースが不足する場合がある。
【０００４】
このようなリソース不足が発生すると、仮想マシンを管理する管理装置は、特定の仮想マシンをリソース不足に陥った現在の物理マシンから空きリソース量が大きい他の物理マシンに再配置（またはマイグレーション、移行）して、物理マシンのリソース不足を解消する。仮想マシンの再配置については、以下の特許文献に記載がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−１８４９６５号公報
【特許文献２】特開２０１５−１５２９８４号公報
【特許文献３】国際公開第２０１３／０９９０１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、単純にリソース不足の物理マシンから空きリソース量の大きい他の物理マシンへ仮想マシンをマイグレーションするだけでは、以下の様な問題が発生する。第１に、仮想マシンが他の物理マシンにマイグレーションした元の物理マシンでは、時間帯によってリソース使用量が少なくなりリソースが有効活用されない場合がある。第２に、逆に仮想マシンが他の物理マシンからマイグレーションしてきた先の物理マシンでは、時間帯によってリソース使用量が多くなり、業務システムの性能が低下する場合がある。第３に、上記第２の場合にリソースの需要増加が突発的に発生するとリソース不足が発生する場合がある。
【０００７】
そこで，本開示の第1の側面の目的は，各物理マシンにおいてリソース使用量の極端な上昇が起こりにくい仮想マシンの再配置を行う仮想マシン管理プログラム、仮想マシン管理方法及び仮想マシン管理装置を提供することにある。
【課題を解決するための手段】
【０００８】
本実施の形態の第１の側面は，管理対象の物理マシン群内の複数の物理マシンそれぞれに配備された複数の仮想マシン及び前記複数の物理マシンの、単位時間毎のリソース使用量を記憶し、
前記複数の物理マシンのうち、所定期間内での前記単位時間毎のリソース空き容量の最小値が最も小さい第１物理マシンを選択し、
前記第１物理マシンで動作中の複数の仮想マシンのうち、前記第１物理マシンの前記所定期間内での単位時間毎のリソース使用量を正規化した正規化リソース使用量の第１波形と類似度が相対的に高い前記正規化リソース使用量の第２波形を持つ第１仮想マシンを選択し、
前記第１物理マシンを除く前記複数の物理マシンのうち、前記第１仮想マシンの前記正規化リソース使用量の第２波形と類似度が相対的に低い前記正規化リソース使用量の第３波形を持つ第２物理マシンを選択し、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置する、
処理をコンピュータに実行させる仮想マシン管理プログラムである。
【発明の効果】
【０００９】
第１の側面によれば，リソース使用量の極端な上昇が起こりにくい仮想マシンの再配置を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態における管理装置と複数の物理マシン及び仮想マシンの関係を示す図である。
【図２】本実施の形態における管理装置１の構成例を示す図である。
【図３】物理マシンのリソース使用量の変化について説明する図である。
【図４】仮想マシンの再配置を説明する図である。
【図５】再配置後の物理マシンにおける問題点を示す図である。
【図６】第１の実施の形態における目標とする物理マシンのリソース使用量を説明する図である。
【図７】仮想マシンのリソース使用量の履歴の一例を示す図である。
【図８】第１の実施の形態における仮想マシンの最適配置処理のフローチャート図である。
【図９】物理マシンで動作中の複数の仮想マシンから再配置対象の仮想マシンを選択する処理を説明する図である。
【図１０】物理マシンAを除く管理対象の複数の物理マシンの中から、仮想マシンaを再配置する物理マシンBを選択する処理を説明する図である。
【図１１】ユークリッド距離を説明する図である。
【図１２】波形の大きさWを説明する図である。
【図１３】全物理マシンの平準化の評価値ρを説明する図である。
【図１４】仮想環境全体のリソース使用量に大きな偏りがある場合の例を示す図である。
【図１５】第２の実施の形態により仮想マシンの最適配置を行った場合の例を示す図である。
【図１６】第２の実施の形態における仮想マシンの最適配置処理のフローチャート図である。
【図１７】物理マシンで動作中の複数の仮想マシンから再配置対象の仮想マシンを選択する処理S12を説明する図である。
【図１８】再配置対象の仮想マシンの再配置先の物理マシンを選択する処理S13を説明する図である。
【図１９】第1及び第２の実施の形態の具体的処理の全体フローチャート例を示す図である。
【図２０】仮想マシンの再配置プランを実行する場合のユーザに対する確認画面例を示す図である。
【図２１】仮想マシンの再配置の実行履歴の一例を示す図である。
【図２２】管理装置のデータベース内の仮想マシンと物理マシンの対応テーブル３０と、仮想マシンの動作履歴テーブル３２の一例を示す図である。
【図２３】物理マシンPM1〜PM4の仮想マシンVMのリソース使用量の具体例を示す図である。
【図２４】管理装置による仮想マシンの最適配置処理（再配置処理）における各処理で求められる値や状態を示す図である。
【図２５】管理装置による仮想マシンの最適配置処理（再配置処理）における各処理で求められる値や状態を示す図である。
【発明を実施するための形態】
【００１１】
図１は、本実施の形態における管理装置と複数の物理マシン及び仮想マシンの関係を示す図である。管理装置１は、管理対象の物理マシン群２のそれぞれの物理マシンPM上で動作する複数の仮想マシンVMを管理する仮想マシン管理装置である。管理対象の物理マシン群２は、複数の物理マシンPM_0,PM_1等を有し、複数の物理マシンPM_0,PM_1等は、管理装置１とネットワークNW1を介して通信可能に接続される。また、管理装置１は、ネットワークNW2を介して、仮想マシンで構成される仮想サービスシステムを運営するユーザのユーザ端末装置２０，２２と通信可能に接続される。そして、仮想サービスシステムにアクセスしてそのサービスを利用するサービス利用者端末装置（図示せず）も、図示しないネットワーク（インターネットやイントラネット、図示せず）を介して、仮想マシンVMと通信可能に接続される。
【００１２】
管理対象の物理マシン群２は、例えば、データセンタやサーバファシリティ、或いはそれらに配備されている管理単位の物理マシン群である。物理マシン上で動作する仮想マシンは、例えば、管理対象の物理マシン群２内の複数の物理マシン間で再配置（マイグレーション）可能である。
【００１３】
物理マシンPM_0,PM_1それぞれは、ハイパーバイザHVを実行し、複数の仮想マシンVM_0-VM_7を動作させる。ハイパーバイザHVは、各仮想マシンに、物理マシンのリソースの一部を割り当てる。物理マシンのリソースは、例えば、CPUやメモリなどである。物理マシンのリソースは、ネットワークの帯域を含んでも良い。
【００１４】
図２は、本実施の形態における管理装置１の構成例を示す図である。管理装置１は、物理マシンまたは物理マシン上で動作する仮想マシンのいずれでもよい。管理装置は、バス１６を介して接続されたCPU１０と、メインメモリ１１と、ネットワークインタフェース１２とを有する。バス１６には、更に、HDDやSSDなどの補助メモリであるストレージ１３，１４，１５が接続され、ストレージ１３には仮想マシン管理プログラムが格納され、ストレージ１４には、ユーザ端末装置がアクセスするユーザポータルサイトを制御するプログラムが格納されている。
【００１５】
また、ストレージ１５には、仮想マシンのコンフィグレーションファイルや、仮想マシンVMと物理マシンPMの動作履歴データベースなどが格納される。動作履歴には、例えば単位時間毎のCPU使用量、メモリ使用量、帯域使用量などのハードウエア使用量が含まれる。
【００１６】
仮想マシン管理プログラムは、次のような機能を有する。まず、新たに配備する仮想マシンのコンフィグレーションファイルを登録する機能（VM登録）、仮想マシンを物理マシン上で起動し遮断する機能、物理マシン上で起動中（動作中）の仮想マシンをサスペンド（一時停止）し、さらにリジューム（動作再開）する機能、仮想マシンをある物理マシンから別の物理マシンにマイグレーション（再配置または移行）する機能（VMマイグレーションプログラム）、そして、仮想マシンを最適な物理マシンに配置及び再配置する機能（VM最適配置プログラム）である。
【００１７】
次に、管理装置が仮想マシン管理プログラムを実行して、仮想マシンを物理マシン間で再配置する処理について概略を説明する。
【００１８】
図３は、物理マシンのリソース使用量の変化について説明する図である。図中、２つのグラフが示され、横軸が時間、縦軸が仮想マシンによる物理マシンのリソース使用量である。業務アプリケーションを実行する仮想化マシンは、業務量が日々刻々と変化することに対応して、そのリソース使用量も変化する。そして、物理マシン上で複数の仮想マシンが動作すると、複数の仮想マシンの合計リソース使用量も同様に変化する。
【００１９】
図３に左側のグラフでは、破線が物理マシンPMのリソース容量（またはリソース量）R_MAXであり、その物理マシン上で動作する複数の仮想マシンの合計リソース使用量R_USEは、図示されるとおり時間の経過に伴い日々刻々変化する。合計リソース使用量R_USEが物理マシンのリソース容量R_MAXを超えることがなければ、各仮想マシンの動作に支障はない。
【００２０】
しかし、ある仮想マシンが実行する業務アプリケーションの業務量が増加すると、図３の右側のグラフに示すとおり、必要な合計リソース使用量R_USEが物理マシンで割り当て可能なリソース容量R_MAXを一時的に超え、物理マシンがリソース不足に陥る。この場合、物理マシンは割り当て可能なリソース容量R_MAXを超えて仮想マシンにリソースを割り当てることはできないので、仮想マシンに割り当てられるリソース容量は必要な容量を下回ることになり、仮想マシンによる業務アプリケーションの動作は低下する。
【００２１】
図４は、仮想マシンの再配置を説明する図である。図４の上側には、物理マシンPM上で複数の仮想マシンVM1−VM4が動作中に物理マシンのリソース不足が発生した状態が示されている。図３と同様に、物理マシンPM上で動作する仮想マシンVM1-VM4が必要とする合計リソース使用量R_USEが物理マシンのリソース容量R_MAXを超えて、リソース不足が発生する。
【００２２】
この場合、図４の下側に示すとおり、リソース不足に陥っている物理マシンPM上で動作するある仮想マシンVM4を、空きリソース容量に余裕のある別の物理マシンに再配置することで、物理マシンPMの合計リソース使用量R_USEが再配置した仮想マシンVM4のリソース使用量の分低下し、リソース不足が解消される場合がある。
【００２３】
図５は、再配置後の物理マシンにおける問題点を示す図である。単にリソース不足に陥っている物理マシンの任意の仮想マシンを、単に空きリソースに余裕のある（空きリソース容量が大きい）別の任意の物理マインに再配置すると、図５に示すように再配置後の物理マシン（再配置元、再配置先の物理マシン）において以下の様な問題が生じる場合がある。
【００２４】
第１に、図中R1で示すとおり、仮想マシンが別の物理マシンに再配置された後の再配置元の物理マシンでは、時間帯によってはリソース使用量が極端に小さくなり、物理マシンのリソースが有効に活用されなくなる。第２に、図中R2で示すとおり、仮想マシンの再配置先の物理マシンでは、時間帯によってはリソース使用量が増大し、仮想マシンによる業務システムの性能が低下する場合がある。第３に、図中R2で示すとおり、突発的に仮想マシンによるリソース需要が急増するとリソース需要が最大リソース容量R_MAXを超えて、リソース使用量R_USEが最大リソース容量R_MAXに達する場合がある。
【００２５】
［第１の実施の形態］
図６は、第１の実施の形態における目標とする物理マシンのリソース使用量を説明する図である。図５で説明した問題点を解決するために、第１の実施の形態では、図６に示すとおり、目標とする物理マシンのリソース使用量R_USEが、最大リソース容量R_MAXより十分小さく、時間の変化に対して大きく変化せずできる限り一定値に平準化（または平坦化）されるように、仮想マシンの再配置を行う。ここで、一定値に平準化（または平坦化）するとは、物理マシンの仮想マシンにより使用される合計リソース使用量が、時間経過に伴って大きく変化せず可能な限り一定値で推移することを意味する。そして、管理対象の複数の物理マシンが全て、図６のような平坦なリソース使用量R_USEの波形になるようにする。
【００２６】
第１の実施の形態では、前提として、図１に示した通り管理装置が、管理対象の複数の物理マシンと物理マシン上で動作する仮想マシンの動作履歴（リソース使用量の履歴など）をストレージに保存している。なお、管理対象の複数の物理マシンで動作する複数の仮想マシンは管理対象の仮想環境を構成する。
【００２７】
図７は、仮想マシンのリソース使用量の履歴の一例を示す図である。リソース使用量の履歴は、任意の単位時間（例えば１時間など）毎に仮想マシンが使用するリソース使用量を含む。図７のリソース例は、CPUの使用量（毎秒当たりで使用したクロック数など）と、メインメモリの使用量（バイト数）とである。
【００２８】
本実施の形態では、リソース使用量は、例えば各単位時間でのリソース使用量の平均値または最大値である。一例として最大値を採用すると、単位時間が１時間、AM0時からAM1時の間のリソース使用量の履歴がCPUで2.5GHz〜3.0Hz(4コア)、メモリで12GB〜16GBとの場合、その単位時間でのリソース使用量は、CPUが3.0Hz(4コア)、メモリが16GBとなる。
【００２９】
リソース使用量の履歴データは、逐次的に保存される。リソース使用量の波形の周期（所定期間）を２４時間とすると、履歴データは、毎日逐次的に保存され、履歴収集時間が複数日（例えば５日間）とすると、各単位時間でのリソース使用量の平均値または最大値が採用される。５日間のAM0時〜AM1時のメモリリソース使用量が13,14,15,11,12GBである場合、この時間帯でのメモリ使用量は平均値の13GBまたは最大値の15GBのいずれかが採用される。
【００３０】
ある物理マシン上で動作する複数の仮想マシンのリソース使用量を合計することで、物理マシンのリソース使用量の履歴データを取得できる。同様に、仮想環境の全ての仮想マシンのリソース使用量または全ての物理マシンのリソース使用量を合計することで、仮想環境全体のリソース使用量を取得できる。
【００３１】
図８は、第１の実施の形態における仮想マシンの最適配置処理のフローチャート図である。管理装置は、仮想マシンの最適配置プログラムを実行して、管理対象の全物理マシンの中から最小空容量を有する物理マシンAを選択する（S1）。ここで、最小空容量を持つ物理マシンとは、単位時間毎のリソース空き容量の所定期間（リソース使用量の波形の周期）内での最小値が最も小さい物理マシンのことである。例えば、図５が物理マシンのリソース使用量を示す場合、横軸の所定期間内での単位時間毎のリソース空き容量の最小値はR2である。よって、最小空容量を持つ物理マシンは、その最小値R2が全物理マシンの中で最小値である。
【００３２】
物理マシンのリソース空き容量は、物理マシンが有するリソースの最大値R_MAXから全仮想マシンの合計リソース使用量R_USEを減じたリソース量である。このリソース空き容量が最も小さい物理マシンは、その物理マシン上で動作しているいずれかの仮想マシンを他の物理マシンに再配置（マイグレーション）することで、物理マシンがリソース不足に陥るリスクを軽減することができる。したがって、上記の物理マシンAを仮想マシンを再配置する対象に選択する。
【００３３】
次に、管理装置は、仮想マシン最適配置プログラムを実行して、物理マシンAで動作中の複数の仮想マシンのうち、物理マシンAの所定期間内でのリソース使用量の波形と類似度が相対的に高い、好ましくは最も高い所定期間内でのリソース使用量の波形を持つ仮想マシンaを選択する（S2）。このような仮想マシンaを物理マシンAから別の物理マシンに再配置（マイグレーション）すると、物理マシンAのリソース使用量の波形がより平坦になるよう平準化される。ここで、平準化とは所定期間内での各単位時間でのリソース使用量の増減が小さくなり、リソース使用量が時間軸に対して均一化することを意味する。
【００３４】
図９は、物理マシンで動作中の複数の仮想マシンから再配置対象の仮想マシンを選択する処理を説明する図である。図９に示された物理マシンPM_Aは上記の物理マシンAである。物理マシンPM_Aで仮想マシンVM11,VM12,VM13が動作中である。一方、図９中のグラフには所定期間Twにおける物理マシンPM_Aのリソース使用量R_USE1が示されている。上記の処理S2では、管理装置は、物理マシンPM_Aのリソース使用量R_USE1の所定期間Twでの波形と最も類似度が高い波形R_USE3を持つ仮想マシンVM13を仮想マシンaとして選択する。
【００３５】
図９に示されるとおり、物理マシンPM_Aから仮想マシンVM13が他の物理マシンに再配置されると、物理マシンPM_Aの波形の高いところは仮想マシンVM13の高いリソース使用量R_USE3が減じられてより大きく低下する。一方、物理マシンPM_Aの波形の低いところは仮想マシンVM13の低いリソース使用量R_USE3が減じられるだけで小さく低下する。その結果、仮想マシンVM3が再配置された後の物理マシンPM_Aのリソース使用量R_USE2の波形は、再配置前の波形R_USE1よりリソース使用量の増減が抑制され、より一定値になるよう平準化される。
【００３６】
次に、管理装置は、物理マシンAを除く全（複数）の物理マシンのうち、仮想マシンaの前記正規リソース使用量の波形と相対的に類似度が低い、好ましくは最も類似度が低いソース使用量の波形を持つ物理マシンBを選択する（S3）。このような物理マシンBに仮想マシンaを再配置（マイグレーション）すると、物理マシンBのリソース使用量の波形をより一定値になるよう平準化できる。なお、この場合、物理マシンBのリソース使用量が仮想マシンaを再配置した後にリソース不足にならないように、物理マシンBを選択する。
【００３７】
図１０は、物理マシンAを除く管理対象の複数の物理マシンの中から、仮想マシンaを再配置する物理マシンBを選択する処理を説明する図である。図１０に示された物理マシンPM_Bは上記の物理マシンBである。物理マシンPM_Bで仮想マシンVM21,VM22が動作中である。一方、図１０のグラフには所定期間Twにおける物理マシンPM_Bのリソース使用量R_USE11が示されている。上記の処理S3では、管理装置は、再配置対象の仮想マシンaである仮想マシンVM13のリソース使用量R_USE3の所定期間Twでの波形と最も類似度が低い波形R_USE11を持つ物理マシンVMPM_Bを物理マシンBに選択する。
【００３８】
図１０に示されるとおり、物理マシンPM_Bに仮想マシンVM3が再配置されると、物理マシンPM_Bの波形の高いところは仮想マシンVM3の低いリソース使用量R_USE3が加算されて小さく増加する。一方、物理マシンPM_Bの波形の低いところは仮想マシンVM3の高いリソース使用量R_USE3が加算されて大きく増加する。その結果、仮想マシンVM3が再配置された後の物理マシンPM_Bのリソース使用量R_USE12の波形は、再配置前の波形R_USE11よりリソース使用量の増減が抑制され、より一定値になるよう平準化される。
【００３９】
なお、管理装置は、再配置する仮想マシンVM3のリソース使用量の波形R_USE3と類似度が最も高い空きリソース容量の波形（波形R_USE11を上下逆の波形）を持つ物理マシンBを選択するようにしても良い。空きリソース容量の波形と類似度が高いことは、リソース使用量の波形と類似度が低いこととほとんど等価である。
【００４０】
［波形の類似度］
次に、上記の波形の類似度について説明する。物理マシンでは複数の仮想マシンが動作中であるので、一つの仮想マシンのリソース使用量と複数の仮想マシンが動作中の物理マシンのリソース使用量とでは、スケールが異なる。そこで、本実施の形態では、仮想マシンと物理マシンのリソース使用量を事前に正規化し、正規化リソース使用量の波形の間のユークリッド距離を測って類似度を判定する。ユークリッド距離が近いほど類似度が高いと判定される。
【００４１】
リソース使用量の正規化は、次のようにして計算できる。
第１に、比較対象の物理マシンまたは仮想マシンx,yそれぞれの波形周期内の各単位時間でのリソース使用量（xt,yt）の平均値(xav,yav)を以下の数式で計算する。以下の数式においてｔは時間、Tは波形の周期（所定期間）である。時間ｔ＝０〜ｔ＝Tは、波形の周期の初めから最後までを意味する。
【００４２】
【数１】
2019040330.tif 000003
【００４３】
第２に、リソース使用量（xt,yt）の標準偏差（σx,σy）を以下の数式で計算する。
【００４４】
【数２】
2019040330.tif 000004
【００４５】
標準偏差σは、リソース使用量と平均値との差分の二乗の累積値の平方根であり、リソース使用量の分布の平均値の左右の分布の太さを示す。つまり、平均値を中心とするリソース使用量の波形の上下方向の大きさを示す。
【００４６】
第３に、比較対象の物理マシンまたは仮想マシンそれぞれの波形周期内の各単位時間でのリソース使用量（xt,yt）を、次の数式により正規化リソース使用量データ（xnt,ynt）に変換する。
【００４７】
【数３】
2019040330.tif 000005
【００４８】
すなわち、各単位時間でのリソース使用量と平均値との差分を標準偏差で除算して正規化リソース使用量を求める。この正規化リソース使用量は、リソース使用量と平均値との差分の波形を、分布の太さである標準偏差で除算するので、正規化リソース使用量の波形の大きさは、概ね-1から+1の間になる。その結果、物理マシンと仮想マシンのそれぞれ正規化リソース使用量の波形の大きさ（スケール）は、ほとんど同じになる。
【００４９】
第４に、比較対象の正規化リソース使用量の波形の間のユークリッド距離ｄを次の数式により計算する。ユークリッド距離ｄは、両正規化リソース使用量の各単位時間でのデータ間の差分の二乗の累積値の平方根である。
【００５０】
【数４】
2019040330.tif 000006
【００５１】
図１１は、ユークリッド距離を説明する図である。図１１の左側には、比較対象の正規化リソース使用量の波形が示されている。時間ｔ＝０からｔ＝Tまでの各単位時間での正規化リソース使用量の差分の二乗を合計し平方根を求めると、２つの波形のユークリッド距離ｄを求めることができる。
【００５２】
ユークリッド距離ｄは、図１１の右側に示されるとおり、単位時間ｔ１、ｔ２の二次元座標に波形ｘと波形ｙの単位時間ｔ１、ｔ２での値をプロットすると、波形Xの座標点（xt1,xt2）と波形Yの座標点（yt1,yt2）との距離ｄをピタゴラスの定理により算出した次の数式と同じになる。
【００５３】
【数５】
2019040330.tif 000007
【００５４】
図８に戻り、管理装置は、仮想マシンの最適配置プログラムを実行して、仮想マシンaを物理マシンAから物理マシンBへ再配置するプランをシミュレーションし、再配置後の物理マシンAとBのリソース使用量を予測する（S4）。そして、管理装置は、再配置の終了判定を行い、終了判定の条件が真であれば仮想マシンの再配置を実行し、終了判定条件が偽であれば処理S2-S4を繰り返す（S5）。処理S5での仮想マシンの再配置は、複数回繰り返された処理S2-S4で選択したすべての仮想マシンの再配置プランを順番に実行する。
【００５５】
［最適配置の要否判定と最適配置の終了判定］
次に、本実施の形態における物理マシンのリソース使用量の波形の平準化の評価方法について説明する。以下に説明する平準化の評価値ρを利用して、仮想マシンの最適配置処理の開始判定と終了判定を行う。
【００５６】
波形が平準化されているということは、単純に言えば波形の大きさが小さいことである。そこで、波形の大きさ（波形の平準化の評価値）Wを次の数式により算出する。
【００５７】
【数６】
2019040330.tif 000008
【００５８】
図１２は、上記の波形の大きさWを説明する図である。上記の数式による波形の大きさWは、リソース使用量の波形と平均値の波形との間のユークリッド距離の長さと同じである。すなわち、図１２に示したリソース使用量xtの波形と平均値xavの波形との間のユークリッド距離は、各単位時間でのリソース使用量xtと平均値xavとの差分の二乗の累積値の平方根である。
【００５９】
そして、仮想環境全体で単位時間毎のリソース使用量にある程度の偏り（波形の大きさ）があることを考慮すると、全物理マシンの平準化の評価値ρは、以下の数式に示されるとおりである。
【００６０】
【数７】
2019040330.tif 000009
【００６１】
図１３は、全物理マシンの平準化の評価値ρを説明する図である。図１３の左側には仮想環境全体のリソース使用量Wallの例が示される。これは、仮想環境内の全物理マシンのリソース使用量の和である。一方、図１３の右側には、仮想環境内の４つの物理マシンそれぞれのリソース使用量Wp1〜Wp4の例が示されている。各物理マシンのリソース使用量の波形は、大きさと極性がそれぞれ異なっている。したがって、全物理マシンの波形の大きさWp1〜WpAの合計は、仮想環境内の全物理マシンのリソース使用量の和Wallよりも大きくなる。
【００６２】
そして、上記の数式による全物理マシンの平準化の評価値ρは、仮想環境全体の全物理マシンそれぞれのリソース使用量の波形の大きさの和（Wall = Wp1 + Wp2 +・・ + WpA）を仮想環境全体のリソース使用量の和（全物理マシンのリソース使用量の合計）Wallで除した割合である。この理由は、次の通りである。仮想マシンをどの物理マシンに再配置しても仮想環境全体のリソース使用量の波形Wallは変化しない。しかし、仮想マシンの物理マシンへの配置を最適にすると、各物理マシンの波形の大きさをより一定に、つまり平準化することができ、その場合の平準化の評価値ρはより小さくなる。一方、仮想マシンの物理マシンへの配置が不適切であると、各物理マシンの波形の大きさが平準化されず、一部の物理マシンの波形は大きくなる。その場合、平準化の評価値ρは大きくなる。これが、全物理マシンの平準化の評価値ρである。
【００６３】
本実施の形態では、上記の平準化の評価値ρに基づいて、仮想環境で仮想マシンを再配置すべきか否かの仮想マシン最適配置処理の開始条件と、終了条件を定める。例えば、開始条件は、平準化評価値ρが開始の基準値ρｘより大きいこと、または前回の最適配置処理での平準化評価値ρよりも現在の指標が悪化（増大）していること等にする。また、第１の終了条件は、平準化評価値ρが終了の基準値より小さくなったこと、または、平準化評価値ρの減少が止まったこと等にする。
【００６４】
第２の終了条件として、仮想マシンの再配置処理を繰り返し行う過程で物理マシンの最小空容量の増大が止まったことにする。仮想マシンの再配置処理を行うと、図９に示したとおり、物理マシンAの最小空き容量が増大する。物理マシンの最小空容量とは、前述したとおり、各物理マシンの単位時間毎のリソース空き容量の最小値が全物理マシン中最も小さい物理マシンのリソース空き容量の最小値である。
【００６５】
この最小空容量が増大することで、業務アプリケーションの業務量が急増しても物理マシンAの使用可能なリソース容量（最大リソース容量）を超える可能性を抑制することができる。したがって、第２の終了条件として、仮想マシンの再配置処理を繰り返し行う過程で物理マシンの最小空容量の増大が止まったことにする。それ以上再配置処理を行っても最小空容量が増大する可能性が低いからである。
【００６６】
第１の終了条件と第２の終了条件は、例えば、いずれかの終了条件が真になったか否かで判定する、両方の終了条件が真になったか否かで判定する、第１の終了条件を優先し、第２の終了条件はオプションとして利用するなど、様々な組み合わせが適用できる。
【００６７】
［仮想マシンの再配置の実行タイミング］
図８に示したとおり、仮想マシンの最適配置処理では、仮想マシンの再配置案を検出し、そのシミュレーションを行い、更に、仮想マシンの再配置が必要か否かの終了判定を行う。そして終了判定で終了条件を満たす場合に、仮想マシンの再配置案を一括で実行する。この理由は、仮想マシンの最適配置処理の終了条件として第１の終了条件（ρの低下が停止）と、第２の終了条件（最小空容量の増加が停止）とを組み合わせた場合、ρの低下が停止し且つ最小空容量の増加が停止したことを検出した場合、直近の再配置案を実行するとρが増加に転じたり、最小空容量が低下に転じたりすることになる。そこで、直近の再配置案より前の再配置案まで実行するほうが好ましい場合がある。
【００６８】
例えば、第１の終了条件をρが１回でも増加すると終了する、第２の終了条件を最小空容量が２回連続して低下すると終了すると設定し、第１、第２の終了条件のいずれかが真になることを最適配置処理の終了条件とした場合を想定する。この場合、第１の終了条件（ρが一回でも増加すると終了）と第２の終了条件（最小空容量が２回連続して低下すると終了）とが同時に真になると、直前の再配置案より２回前の再配置案まで実行することで、物理マシンの最小空容量が最大になる状態にすることができる。または、直前の再配置案より１回前の再配置案まで実行することで、物理マシンのリソース使用量の平準化が最も進んだ状態にすることができる。いずれを選択するかは、仮想マシンの最適配置処理の評価基準に依存する。終了条件については、後で再度説明する。
【００６９】
［仮想マシンの最適配置処理の実行タイミング］
仮想マシンの最適配置処理を行って全物理マシンのリソース使用量を平準化する実行タイミングは、例えば、以下の３つが考えられる。第１に、一定時間間隔で定期的に実行する。この一定時間間隔は、例えば１週間毎に、１か月毎になどである。
【００７０】
第２に、オートスケールアウト等により仮想マシンの再配置が行われて、各物理マシンで動作する仮想マシンの構成に変化が発生したときに実行する。オートスケールアウトは、物理マシンのリソース使用量が最大値に近づいたことを検出して、自動的にその物理マシン上で動作する一部の仮想マシンを別の物理マシンに再配置（マイグレーション）するハイパーバイザが有する機能である。
【００７１】
第３に、管理装置が、物理マシンの空きリソースが枯渇するなどリソース不足を検出した場合である。
【００７２】
本実施の形態では、上記の実行タイミングで仮想マシンの最適配置処理を開始し、上記の最適配置処理の開始条件を満たしていれば、最適配置処理を実行する。そして、最適配置処理の過程で終了条件を満たせば最適配置処理を終了する。
【００７３】
［第２の実施の形態］
仮想環境全体のリソース使用量が、ある時間帯では非常に大きくなり別の時間帯では非常に小さくなるなど、大きな偏りがある場合、物理マシンのリソース使用量の波形を平坦に、つまり平準化しようとすると、他の物理マシンにその偏りが集中する。そこで、第２の実施の形態では、各物理マシンのリソース使用量の波形を、仮想環境全体のリソース使用量の波形（目標波形）に近づけるように仮想マシンの再配置を行う。このような再配置を行えば、全物理マシンのリソース使用量の波形が目標波形に近い波形で均衡が取れることになる。
【００７４】
図１４は、仮想環境全体のリソース使用量に大きな偏りがある場合の例を示す図である。図１４の左側に仮想環境全体のリソース使用量を示す。これによれば、仮想環境全体のリソース使用量の増減が時間帯によって極端に偏っている。この場合、第１の実施の形態の処理S2,S3を実行すると、図１４の右側に示す各物理マシンのリソース使用量の波形のように、物理マシンPM1,PM2,PM3のリソース使用量の波形は平坦化されたが、その分物理マシンPM4のリソース使用量の波形が大きく変化する形状になっている。
【００７５】
このように、第１の実施の形態の処理S2,S3による物理マシン毎にリソース使用量を平坦化、つまり平準化するという考えは、常に最適な方法であるとはいえず、仮想化環境全体のリソース使用量の偏りをある程度許容する方法を採用することが必要となる。
【００７６】
図１５は、第２の実施の形態により仮想マシンの最適配置を行った場合の例を示す図である。第２の実施の形態では、各物理マシンPM1〜PM4のリソース使用量の波形を、仮想環境全体のリソース使用量の波形（目標波形）に近づけるように仮想マシンの再配置を行う。その結果、仮想環境全体のリソース使用量の波形の偏りを、その程度を縮小して全物理マシンのリソース使用量の波形に分配し、全物理マシンの波形を現実的なレベルに平坦化、つまり平準化することができる。図示されるとおり、全物理マシンの波形は、仮想環境全体の波形の偏りの程度を縮小した偏りを有しながらそれぞれ平準化される。
【００７７】
図１６は、第２の実施の形態における仮想マシンの最適配置処理のフローチャート図である。管理装置は、仮想マシンの最適配置プログラムを実行して、管理対象の全物理マシンの中から単位時間毎のリソース空き容量の所定期間（リソース使用量の波形の周期）内での最小値が最も小さい物理マシンAを選択する（S11）。この処理S11は図８の処理S1と同じである。
【００７８】
次に、管理装置は、物理マシンAの正規化リソース使用量の波形xntから仮想環境全体の正規化リソース使用量の波形xall_ntを減じた差分波形（xnt - xall_nt）と相対的に類似度が高い、好ましくは最も類似度の高い、正規化リソース使用量の波形を持つ仮想マシンａを選択する(S12)。このような仮想マシンaを物理マシンAから別の物理マシンに再配置（マイグレーション）すると、物理マシンAのリソース使用量の波形xntをより目標波形xall_ntの波形に近づけることができる。
【００７９】
図１７は、物理マシンで動作中の複数の仮想マシンから再配置対象の仮想マシンを選択する処理S12を説明する図である。管理装置は、仮想環境全体の正規化リソース使用量の波形xall_ntと物理マシンで動作中の全ての仮想マシンの正規化リソース使用量の波形xntを求め、差分波形（xnt-xall_nt）と最も類似度の高い正規化リソース使用量の波形を持つ仮想マシンａを選択する。仮想環境全体のリソース使用量の波形と仮想マシンのリソース使用量の波形とは、スケールの違いが大きいので、第1の実施の形態での波形の類似度と同様に、正規化リソース使用量の波形で、２つの波形のユークリッド距離が小さい程類似度が高いと判定する。
【００８０】
次に、管理装置は、仮想環境全体の正規化リソース使用量の波形xall_ntから物理マシンA以外の物理マシンの正規化リソース使用量xntを減じた差分波形（xall_nt - xnt）を計算する。そして、管理装置は、仮想マシンaの正規化リソース使用量の波形xnt波形と、相対的に類似度が高い、好ましくは最も類似度の高い、差分波形を持つ物理マシンBを選択する (S13)。このような物理マシンBに仮想マシンａを再配置（マイグレーション）すると、物理マシンBの波形を目標波形xall_ntに近づけることができる。
【００８１】
図１８は、再配置対象の仮想マシンの再配置先の物理マシンを選択する処理S13を説明する図である。管理装置は、差分波形（xall_nt - xnt）を計算し、再配置される仮想マシンａの波形xntと最も類似度の高い差分波形を持つ物理マシンBを、仮想マシンaの再配置先の物理マシンに選択する。ここで、差分波形の差分計算の方向が図１７の場合と逆の関係にあることに留意すべきである。図１７の場合は、物理マシンAの波形xntから差分波形（xnt - xall_nt）と最も類似する仮想マシンａの波形を除去すると（xnt-（xnt - xall_nt）= xall_nt）、目標波形xall_ntに近づく。それに対して、図１８の場合は、物理マシンBの波形xntに差分波形（xall_nt- xnt）と最も類似する仮想マシンaの波形を加えると（xnt + (xall_nt - xnt) = xall_nt）、この場合も目標波形xall_ntに近づく。
【００８２】
図１６に戻り、管理装置は、仮想マシンaを物理マシンAから物理マシンBへ再配置する案をシミュレーションし、再配置後の物理マシンAとBのリソース使用量を予測する（S14）。そして、管理装置は、再配置の終了判定を行い、終了判定の条件が真であれば仮想マシンの再配置を実行し、終了判定条件が偽であれば処理S2-S4を繰り返す（S15）。これらの処理S14,S15は、図８の処理S4,S5と同じである。
【００８３】
［全体のフローチャート例］
図１９は、第1及び第２の実施の形態の具体的処理の全体フローチャート例を示す図である。最初に、全物理マシンの平準化の評価値ρの基準値ρｘに初期値、例えばρｘ＝０を設定する。開始条件は、現在の標準化の評価値が基準値ρｘを超えることとし、また終了条件として、第1の終了条件の平準化の評価値ρが上昇したことと、第２の終了条件の最小空容量Xが２回連続で下降したことのいずれかが真になった場合とした。
【００８４】
管理装置は、仮想マシンの最適配置プログラムを実行して、第１の実施の形態の物理マシンのリソース使用量の平準化処理を実行するタイミングにマッチするか否か判定し（S21）、マッチすれば、平準化処理の要否判定（前述の開始判定）を行う（S22）。実行タイミングの例は前述の３つの例である。また、平準化処理の要否判定は、前述の現在の平準化の評価値ρが基準値ρｘより大きいか否かである。
【００８５】
この開始条件である平準化処理の要否判定は、主として、前回の平準化処理により得られた平準化の評価値が基準値ρｘに代入され、その後評価値が悪化し、現在の平準化の評価値ρがρ＞ρｘとなったか否かの判定である。悪化していれば（S22の真（True））、仮想マシンの最適配置処理S23-S34を実行して全物理マシンのリソース使用量の平準化を行う。悪化していなければ（S22の偽（False））、平準化処理を行わずに終了する。また、初回は、現在の平準化の評価値ρが基準値の初期値ρｘ＝０より大きいか否かの判定であり、判定結果は常に真（True）になる。
【００８６】
平準化処理の要否判定（開始条件の判定）は、現在の最小空容量が所定の基準値より大きいか否かまたは現在の最小空容量が前回再配置時より悪化したか否かにより行っても良い。さらに、平準化の評価値ρまたは最小空容量のいずれかが上記の条件にマッチするか否かにより行っても良い。または、平準化の評価値ρ及び最小空容量の両方が上記の条件にマッチするか否かにより行っても良い。
【００８７】
そして、管理装置は、再配置回数iを初期値０に設定する（S23）。また、再配置回数iでの平準化評価値ρiに現在の値を代入し、最小空容量Xiに現在の最小空容量を代入する（S24）。ここまでは、一連の初期化処理である。
【００８８】
次に、管理装置は、再配置回数i+1(初回はi+1=1)番目の再配置プランを生成する（S25）。この処理S25は、第１の実施の形態の図８の処理S1,S2,S3、または、第２の実施の形態の図１６の処理S11,S12,S13のいずれかである。いずれの処理を選択した場合でも、管理装置は、「物理マシンAの仮想マシンａを物理マシンBに再配置（マイグレーション）する」という再配置プランを生成し、再配置データに追加する。
【００８９】
処理S25として、第１の実施の形態の物理マシンのリソース使用量の波形を平準化（平坦化）する再配置か、第２の実施の形態の物理マシンのリソース使用量の波形を仮想環境全体の波形に近づける再配置かのいずれを選択するかは、例えば、仮想環境全体の波形の性質に基づいて行う。すなわち、図１４に示したように仮想環境全体の波形の偏りが基準値より小さい場合は第１の実施の形態を選択し、基準値より大きい場合は第２の実施の形態を選択する。
【００９０】
そして、管理装置は、S25で生成した再配置プランをシミュレーションし、再配置回数i+1番目までの再配置プランを実行した場合の平準化の評価値ρを算出し、再配置回数i+1番目での評価値ρi+1に代入する。さらに、管理装置は、再配置回数i+1番目まで実行した場合の最小空容量を算出し、再配置回数i+1番目での最小空容量Xi+1に代入する（S26）。
【００９１】
次に、管理装置は、再配置回数i+１で平準化処理を終了するか否かの判定（終了条件の判定）を行う（S27,S28）。終了条件の判定では、管理装置は、再配置回数i+1まで実行した場合の平準化の評価値ρi+1が、再配置回数iまで実行した場合の平準化の評価値ρiより大きいか、ρi+1＞ρi、を判定する（S27）。つまり、平準化処理を開始すると波形が平準化(平坦化)されて、平準化の評価値ρは徐々に低下するが、ある程度平準化が進むと評価値ρは上昇する性質を有する。そこで、管理装置は、平準化の評価値ρが低下していれば平準化処理の継続を決定し（S27の偽（False））、次の再配置回数i+2の再配置プランを生成するが、上昇すると平準化処理の継続を停止する決定をする（S27の真（True））。
【００９２】
さらに、管理装置は、S27で偽（False）の場合、更に、i≧１且つ最小空容量についてXi-1>Xi且つXi+1>Xiが真か否か判定する（S28）。すなわち、平準化処理を開始すると図９に示した通り最小空容量を有していた物理マシンの最小空容量は増加するが、ある程度平準化が進むと最小空容量は減少する性質を有する。そこで、管理装置は、最小空容量Xiが２回連続減少した場合、平準化処理の継続を停止する決定をし（S28の真（True））、最小空容量が２回連続減少していなければ平準化処理の継続を決定する（S28の偽（False））。２回連続減少したか否かの判定は、平準化処理を開始すると最小空容量は増加するので、２回連続して減少すればそれ以上の平準化処理を行っても最小空容量の増加は見込めないからである。２回連続は３回連続またはそれ以上連続でも良いし、1回だけ減少でもよい。
【００９３】
S27,S28が共に偽であれば、管理装置は、再配置回数をi=i+1とインクリメントし（S29）、処理S25-S28を繰り返す。S27,S28のいずれかが真であれば、管理装置は、最小最適化容量が最大となった再配置回数までの再配置プランを実行する（S30）。
【００９４】
すなわち、管理装置は、再配置回数０〜iで最小空容量Xiが最大となる再配置回数iを検出し、変数αに代入する（S30）。そして、管理装置は、変数αが０の場合でなければ（S31の偽（False））、再配置回数α番目までの再配置プランを実行する（S32）。
【００９５】
図２０は、仮想マシンの再配置プランを実行する場合のユーザに対する確認画面例を示す図である。管理装置が、仮想マシンの最適配置処理中、再配置回数がα番目までの再配置プランを実行する前に、図２０に示すようなユーザ確認画面をユーザ端末に送信し、ユーザの承諾を得るようにするのが好ましい。この確認画面では、再配置プランで再配置されるVMゲスト名（仮想マシンａの名）、現在のVMホスト名（物理マシンAの名）、移動後のVMホスト名（物理マシンBの名）が示される。ユーザは、この確認画面で仮想マシンの再配置の要否を確認し、承諾または拒否のいずれかを管理装置に返信する。
【００９６】
そして、管理装置は、平準化評価値の基準値ρｘに再配置回数α-1での平準化評価値ρα-1を代入して（ρｘ＝ρα-1）、今回の仮想マシン最適配置処理（平準化処理）を終了する。なお、変数αがα＝０の場合は、再配置回数0回目から一度も最小空容量が増加しなかったことを意味するので、管理装置は、最適化不可の警告を表示する（S34）。
【００９７】
その後、平準化実行タイミングになると（S21の真(True)）、管理装置は、処理S22-S33を実行する。このように、平準化実行タイミングになると、その都度、平準化要否判定が真であれば、仮想マシンの再配置処理による最適配置処理（平準化処理）を実行する。
【００９８】
図２１は、仮想マシンの再配置の実行履歴の一例を示す図である。管理装置は、仮想マシンの再配置(S32)を実行すると、図２１に示すとおり、その実行履歴を実行日時、仮想マシン名、移動元物理マシン名、移動先物理マシン例、平準化評価値ρの変化、最小空容量の変化などを記録する。
【００９９】
図１９において、終了判定として、S27とS28のいずれかが真になると処理S25,S26の繰り返しを終了したが、S27及びS28が共に真になると処理S25,S26の繰り返しを終了するようにしてもよい。その場合、S27とS28が同時に真になることが少ない場合があるので、S27とS28がいずれかの再配置回数で真になると処理S25,S26の繰り返しを終了するようにしてもよい。
【０１００】
［仮想マシンの最適配置の具体例］
次に、第1の実施の形態の場合の仮想マシンの最適配置の具体例を示す。まず、管理装置は、そのデータベースに、仮想マシンと物理マシンの対応テーブルと仮想マシンの動作履歴テーブルとを保持する。
【０１０１】
図２２は、管理装置のデータベース内の仮想マシンと物理マシンの対応テーブル３０と、仮想マシンの動作履歴テーブル３２の一例を示す図である。仮想マシンと物理マシンの対応テーブル３０には、仮想環境内の全仮想マシンと物理マシンとの対応関係が保存される。また、仮想マシンの動作履歴テーブル３２には、全仮想マシンについてCPU使用量とメモリ使用量などのリソース使用量のログがタイムスタンプと共に保存される。
【０１０２】
図２３は、物理マシンPM1〜PM4の仮想マシンVMのリソース使用量の具体例を示す図である。リソース使用量は、時間０〜２３それぞれの単位時間における平均値または最大値である。また、各物理マシンPMの最大使用可能なリソース量は１００とする。図２３の図表において、物理マシンPM2の単位時間１５での合計リソース使用量「７７」が最大であり、その場合の空リソース容量は１００−７７＝３３と４つの物理マシン内で最小値である。
【０１０３】
図２４及び図２５は、管理装置による仮想マシンの最適配置処理（再配置処理）における各処理で求められる値や状態を示す図である。
【０１０４】
管理装置は、まず、図２３のリソース使用量の履歴に基づいて、各物理マシンのリソース使用量の波形の大きさの、仮想環境全体のリソース使用量の波形の大きさに対する割合である平準化の評価値ρ0（０は再配置回数i=0を意味する）を求めて、平準化処理の要否判定を行う（S22）。図２４の図表４０には、物理マシンPM1-PM4のリソース使用量の波形の大きさが示される。これに基づいて、管理装置は、評価値ρ0＝1.75を算出する。初回では、評価値ρは初期値ρｘ＝０よりも大きい（ρ0＞ρｘ）ので、管理装置は平準化処理の実行を決定する（S22のTrue）。
【０１０５】
次に、管理装置は、図２３のリソース使用量の履歴に基づいて、全物理マシンの中で単位時間毎のリソース空き容量の最小値が最も小さい物理マシン（最小空容量の物理マシン）を選択する（S25のS1）。その結果、物理マシンPM2であることを検出する。前述したとおり、物理マシンPM2は、単位時間１５におけるリソース使用量が７７．０であり、リソース空き容量が２３．０と最も小さい。
【０１０６】
そこで、管理装置は、物理マシンPM2で動作する複数の仮想マシンVM_b1〜VM_d6のうち、物理マシンPMの正規化リソース使用量の波形と最も類似度が高い波形を有する仮想マシンを探す（S25のS2）。図２４の図表４２には、仮想マシンVM_b1〜VM_b6それぞれの物理マシンPM2の波形との類似度（実際はユークリッド距離）が示される。これによれば、仮想マシンVM_b2が物理マシンPM2の波形とユークリッド距離が最も短く、波形の類似度が最も高いので、管理装置は、仮想マシンVM_b2を再配置対象の仮想マシンａに選ぶ。
【０１０７】
さらに、管理装置は、物理マシンPM2以外の別の物理マシンPM1,PM3,PM4の中から、再配置対象の仮想マシンａの正規化リソース使用量の波形と最も非類似（ユークリッド距離が最も長い）の物理マシンを選択する（S25のS3）。図２４の図表４４には、再配置対象の仮想マシンVM_b2の物理マシンPM1,PM3,PM4それぞれとの類似度（実際にはユークリッド距離）が示される。これによれば、物理マシンPM3が最もユークリッド距離が長く、最も非類似であるので、管理装置は、仮想マシンVM_b2の再配置先として物理マシンPM3を選択する。
【０１０８】
次に、管理装置は、仮想マシンVM_b2を物理マシンPM2からPM3への再配置（マイグレーション）プランをシミュレーションする（S26）。
【０１０９】
図２５は、仮想マシンVM_b2が物理マシンPM2から物理マシンPM3に再配置された後の仮想マシンと物理マシンのリソース使用量のデータ等を示す図である。図２５の図表４６に示されるとおり、この仮想マシンVM_b2の再配置により、物理マシンPM2とPM3のリソース使用量が変化する。すなわち、図表４６は再配置プランをシミュレーションした結果である。
【０１１０】
そこで、管理装置は、終了判定S27,S28を実行する。まず、第1の終了判定S27を実行すると、図２５の図表４８に示されるとおり、物理マシンPM2はリソース使用量の波形の大きさが246.99から158.86に減少、物理マシンPM3はリソース使用量の波形の大きさが364.59から332.46に減少する。その結果、再配置回数i=1での平準化評価値ρ1はρ1＝1.53に減少する（ρ0=1.75）。したがって、管理装置は、終了判定S27は偽（False）となり再配置処理の継続と判定する。
【０１１１】
一方、第２の終了判定S28は２回分の再配置による最小空容量Xiのデータに対して判定するので、1回目の再配置処理では、管理装置は、判定を行わず、終了判定S28でも再配置処理の継続と判定する。
【０１１２】
図２５の図表５０は、再配置回数i=0,1での再配置シミュレーション結果と共に、再配置回数i=2以降の再配置シミュレーション結果が示される。これによれば、管理装置は、再配置回数i=4回目で平準化評価値ρが1.16から1.17と増加した為、第1の終了判定S27で再配置処理の終了と判定し、再配置候補は、再配置回数i=1〜3のいずれかまでとなる。そして、再配置回数i=1〜3の中で最小空容量が最も大きくなるのは、i=2回目の物理マシンPM1の34.6である。したがって、管理装置は、再配置回数i=2までの再配置プラン（i=1,2の再配置プラン）を実行し（S32）、平準化処理を終了する。
【０１１３】
以上のとおり、本実施の形態によれば、仮想環境下の全物理マシンのリソース使用量の波形を可能な限り平準化（平坦化）することができる。したがって、仮想マシンのリソース使用量の急増が発生してもリソース不足に陥る可能性を抑制でき、物理マシンのリソース使用量が過剰に低下することがなく物理マシンのリソースを仮想マシンに効率的に使用させることができる。
【０１１４】
以上の実施の形態をまとめると，次の付記のとおりである。
【０１１５】
（付記１）
管理対象の物理マシン群内の複数の物理マシンそれぞれに配備された複数の仮想マシン及び前記複数の物理マシンの、単位時間毎のリソース使用量を記憶し、
前記複数の物理マシンのうち、所定期間内での前記単位時間毎のリソース空き容量の最小値が最も小さい第１物理マシンを選択し、
前記第１物理マシンで動作中の複数の仮想マシンのうち、前記第１物理マシンの前記所定期間内での単位時間毎のリソース使用量を正規化した正規化リソース使用量の第１波形と類似度が相対的に高い前記正規化リソース使用量の第２波形を持つ第１仮想マシンを選択し、
前記第１物理マシンを除く前記複数の物理マシンのうち、前記第１仮想マシンの前記正規化リソース使用量の第２波形と類似度が相対的に低い前記正規化リソース使用量の第３波形を持つ第２物理マシンを選択し、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置する、
処理をコンピュータに実行させる仮想マシン管理プログラム。
【０１１６】
（付記２）
前記正規化リソース使用量を、前記所定期間内での単位時間毎のリソース使用量と前記単位時間毎のリソース使用量の平均値との差分を、前記所定期間内の単位時間毎のリソース使用量の標準偏差で除して算出する、付記１に記載の仮想マシン管理プログラム。
【０１１７】
（付記３）
前記類似度を、前記第１波形と第２波形同士、または前記第２波形と第３波形同士の前記単位時間毎の差分の二乗の累積値の平方根であるユークリッド距離が近い程類似する、遠い程類似しないと判定する、付記１に記載の仮想マシン管理プログラム。
【０１１８】
（付記４）
管理対象の物理マシン群内の複数の物理マシンそれぞれに配備された複数の仮想マシン及び前記複数の物理マシンの、単位時間ごとのリソース使用量を記憶し、
前記複数の物理マシンのうち、所定期間内での前記単位時間毎のリソース空き容量の最小値が最も小さい第１物理マシンを選択し、
前記第１物理マシンで動作中の複数の仮想マシンのうち、前記第１物理マシンの前記所定期間内での単位時間毎のリソース使用量を正規化した正規化リソース使用量から、前記複数の物理マシンの前記所定期間内での単位時間毎の合計リソース使用量を正規化した正規化合計リソース使用量を減じた第１差分波形と、類似度が相対的に高い前記正規化リソース使用量の第２波形を持つ第１仮想マシンを選択し、
前記第１物理マシンを除く前記複数の物理マシンのうち、前記第１仮想マシンの前記正規化リソース使用量の第２波形と類似度が相対的に高い第２差分波形を持つ第２物理マシンを選択し、前記第２差分波形は前記正規化合計リソース使用量から第２物理マシンの前記正規化リソース使用量を減じて求められ、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置する、
処理をコンピュータに実行させる仮想マシン管理プログラム。
【０１１９】
（付記５）
前記正規化リソース使用量を、前記所定期間内での単位時間毎のリソース使用量と前記単位時間毎のリソース使用量の平均値との差分を、前記所定期間内の単位時間毎のリソース使用量の標準偏差で除して算出し、
前記正規化合計リソース使用量を、前記所定期間内での単位時間毎の合計リソース使用量と前記単位時間毎の合計リソース使用量の平均値との差分を、前記所定期間内の単位時間毎の合計リソース使用量の標準偏差で除して算出する、付記４に記載の仮想マシン管理プログラム。
【０１２０】
（付記６）
前記類似度を、前記第１差分波形と第２波形同士、または前記第２波形と第２差分波形同士の前記単位時間毎の差分の二乗の累積値の平方根であるユークリッド距離が近い程類似する、遠い程類似しないと判定する、付記４に記載の仮想マシン管理プログラム。
【０１２１】
（付記７）
前記処理は、更に、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置した場合の前記複数の仮想マシン及び複数の物理マシンの単位時間毎のリソース使用量を算出し、
前記算出リソース使用量に基づいて計算した、前記複数の物理マシンそれぞれの前記所定期間内の単位時間毎のリソース使用量と前記リソース使用量の平均値とのユークリッド距離である第１波形サイズの合計値の、前記複数の物理マシンの前記所定期間内の単位時間毎の合計リソース使用量と前記合計リソース使用量の平均値とのユークリッド距離である第２波形サイズに対する、割合が、所定の状態に低下するか否かの第１判定を行い、
前記第１判定が真になるまで、前記第１物理マシンの選択と、前記第１仮想マシンの選択と、前記第２物理マシンの選択と、前記リソース使用量の算出とを繰り返すこと、を有する付記１または４に記載の仮想マシン管理プログラム。
【０１２２】
（付記８）
前記処理は、更に、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置した場合の前記複数の仮想マシン及び複数の物理マシンの単位時間毎のリソース使用量を算出し、
前記算出リソース使用量に基づいて計算した、前記単位時間毎の物理マシンの空きリソース量の第１最小値が、前記複数の物理マシン中で最も小さい物理マシンの、前記第１最小値である第２最小値が、上昇から下降に転じるか否か第２判定を行い、
前記第２判定が真になるまで、前記第１物理マシンの選択と、前記第１仮想マシンの選択と、前記第２物理マシンの選択と、前記リソース使用量の算出とを繰り返すこと、を有する付記１または４に記載の仮想マシン管理プログラム。
【０１２３】
（付記９）
前記処理は、更に、
前記算出リソース使用量に基づいて計算した、前記単位時間毎の物理マシンの空きリソース量の第１最小値が、前記複数の物理マシン中で最も小さい物理マシンの、前記第１最小値である第２最小値が、上昇から下降に転じるか否か第２判定を行い、
前記第１判定に加えて前記第２判定も真になるまで、前記第１物理マシンの選択と、前記第１仮想マシンの選択と、前記第２物理マシンの選択と、前記リソース使用量の算出とを繰り返すこと、を有する付記７に記載の仮想マシン管理プログラム。
【０１２４】
（付記１０）
前記繰り返された複数の繰り返し回数それぞれでの前記第２最小値のうち最大値になる繰り返し回数まで、前記再配置する処理を、繰り返し実行する、付記１または４に記載の仮想マシン管理プログラム。
【０１２５】
（付記１１）
管理対象の物理マシン群内の複数の物理マシンそれぞれに配備された複数の仮想マシン及び前記複数の物理マシンの、単位時間毎のリソース使用量を記憶し、
前記複数の物理マシンのうち、所定期間内での前記単位時間毎のリソース空き容量の最小値が最も小さい第１物理マシンを選択し、
前記第１物理マシンで動作中の複数の仮想マシンのうち、前記第１物理マシンの前記所定期間内での単位時間毎のリソース使用量を正規化した正規化リソース使用量の第１波形と類似度が相対的に高い前記正規化リソース使用量の第２波形を持つ第１仮想マシンを選択し、
前記第１物理マシンを除く前記複数の物理マシンのうち、前記第１仮想マシンの前記正規化リソース使用量の第２波形と類似度が相対的に低い前記正規化リソース使用量の第３波形を持つ第２物理マシンを選択し、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置する、
処理を有する仮想マシン管理方法。
【０１２６】
（付記１２）
管理対象の物理マシン群内の複数の物理マシンそれぞれに配備された複数の仮想マシン及び前記複数の物理マシンの、単位時間ごとのリソース使用量を記憶し、
前記複数の物理マシンのうち、所定期間内での前記単位時間毎のリソース空き容量の最小値が最も小さい第１物理マシンを選択し、
前記第１物理マシンで動作中の複数の仮想マシンのうち、前記第１物理マシンの前記所定期間内での単位時間毎のリソース使用量を正規化した正規化リソース使用量から、前記複数の物理マシンの前記所定期間内での単位時間毎の合計リソース使用量を正規化した正規化合計リソース使用量を減じた第１差分波形と、類似度が相対的に高い前記正規化リソース使用量の第２波形を持つ第１仮想マシンを選択し、
前記第１物理マシンを除く前記複数の物理マシンのうち、前記第１仮想マシンの前記正規化リソース使用量の第２波形と類似度が相対的に高い第２差分波形（前記正規化合計リソース使用量から第２物理マシンの前記正規化リソース使用量を減じた第２差分波形）を持つ第２物理マシンを選択し、前記第２差分波形は前記正規化合計リソース使用量から第２物理マシンの前記正規化リソース使用量を減じて求められ、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置する、
処理を有する仮想マシン管理方法。
【０１２７】
（付記１３）
管理対象の物理マシン群内の複数の物理マシンそれぞれに配備された複数の仮想マシン及び前記複数の物理マシンの、単位時間毎のリソース使用量を記憶するリソース使用量記憶手段と、
前記複数の物理マシンのうち、所定期間内での前記単位時間毎のリソース空き容量の最小値が最も小さい第１物理マシンを選択する第1物理マシン選択手段と、
前記第１物理マシンで動作中の複数の仮想マシンのうち、前記第１物理マシンの前記所定期間内での単位時間毎のリソース使用量を正規化した正規化リソース使用量の第１波形と類似度が相対的に高い前記正規化リソース使用量の第２波形を持つ第１仮想マシンを選択する第１仮想マシン選択手段と、
前記第１物理マシンを除く前記複数の物理マシンのうち、前記第１仮想マシンの前記正規化リソース使用量の第２波形と類似度が相対的に低い前記正規化リソース使用量の第３波形を持つ第２物理マシンを選択する第２物理マシン選択手段と、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置する再配置手段と、を有する仮想マシン管理装置。
【０１２８】
（付記１４）
管理対象の物理マシン群内の複数の物理マシンそれぞれに配備された複数の仮想マシン及び前記複数の物理マシンの、単位時間ごとのリソース使用量を記憶するリソース使用量記憶手段と、
前記複数の物理マシンのうち、所定期間内での前記単位時間毎のリソース空き容量の最小値が最も小さい第１物理マシンを選択する第1物理マシン選択手段と、
前記第１物理マシンで動作中の複数の仮想マシンのうち、前記第１物理マシンの前記所定期間内での単位時間毎のリソース使用量を正規化した正規化リソース使用量から、前記複数の物理マシンの前記所定期間内での単位時間毎の合計リソース使用量を正規化した正規化合計リソース使用量を減じた第１差分波形と、類似度が相対的に高い前記正規化リソース使用量の第２波形を持つ第１仮想マシンを選択する第1仮想マシン選択手段と、
前記第１物理マシンを除く前記複数の物理マシンのうち、前記第１仮想マシンの前記正規化リソース使用量の第２波形と類似度が相対的に高い第２差分波形（前記正規化合計リソース使用量から第２物理マシンの前記正規化リソース使用量を減じた第２差分波形）を持つ第２物理マシンを選択する第２物理マシン選択手段と、前記第２差分波形は前記正規化合計リソース使用量から第２物理マシンの前記正規化リソース使用量を減じて求められ、
前記第１仮想マシンを前記第１物理マシンから前記第２物理マシンに再配置する再配置手段と、を有する仮想マシン管理装置。
【符号の説明】
【０１２９】
PM：物理マシン、コンピュータ、情報処理装置
VM：仮想マシン
HV：ハイパーバイザ、仮想化プログラム
CPU：プロセッサ
MEM：メインメモリ、メモリ
NW：ネットワーク
１：管理装置
２：管理対象の物理マシン群
１３：仮想マシン管理プログラム
１４：ユーザポータルサイト
１５：VMコンフィグレーションファイル、VM動作履歴データベース
R_MAX：物理マシンのリソース量（最大使用量）
R_USED：物理マシンのリソース使用量
xav：波形の平均値
xnt：正規化リソース使用量の波形
W：波形の大きさ
ρ：平準化の評価値
【図１】
2019040330.tif 000010
【図２】
2019040330.tif 000011
【図３】
2019040330.tif 000012
【図４】
2019040330.tif 000013
【図５】
2019040330.tif 000014
【図６】
2019040330.tif 000015
【図７】
2019040330.tif 000016
【図８】
2019040330.tif 000017
【図９】
2019040330.tif 000018
【図１０】
2019040330.tif 000019
【図１１】
2019040330.tif 000020
【図１２】
2019040330.tif 000021
【図１３】
2019040330.tif 000022
【図１４】
2019040330.tif 000023
【図１５】
2019040330.tif 000024
【図１６】
2019040330.tif 000025
【図１７】
2019040330.tif 000026
【図１８】
2019040330.tif 000027
【図１９】
2019040330.tif 000028
【図２０】
2019040330.tif 000029
【図２１】
2019040330.tif 000030
【図２２】
2019040330.tif 000031
【図２３】
2019040330.tif 000032
【図２４】
2019040330.tif 000033
【図２５】
2019040330.tif 000034