(57)【要約】      （修正有）【課題】仮想マシンの適切な配備を実現する仮想マシン管理プログラム、仮想マシン管理方法、仮想マシン管理装置を提供する【解決手段】複数の物理マシンに１以上の仮想マシンが配備されたシステムで、第１の期間を複数に分割した所定期間ごとに、仮想マシンそれぞれのリソース使用量を記憶し、第１の仮想マシンのリソースに関する変更情報を取得したときに、第１の仮想マシンを配備する第１の物理マシンに配備される、第１の仮想マシン以外の第２の仮想マシンの前記所定期間ごとのリソース使用量と、変更情報に基づく第１の仮想マシンの前記所定期間ごとのリソース使用量の予測値とに基づいて、第１、第２の仮想マシンのリソース使用量の所定期間ごとの合計値が所定の閾値を超えるか否かを判定し、いずれかの所定期間のリソース使用量の合計値が所定の閾値を超える場合に、マイグレーションの実行を決定する、処理を実行させる。【選択図】図６
2018028746.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理マシンに１以上の仮想マシンが配備されたシステムで、第１の期間を複数に分割した所定期間ごとに、前記１以上の仮想マシンそれぞれのリソース使用量を記憶し、
第１の仮想マシンのリソースに関する変更情報を取得したときに、前記第１の仮想マシンを配備する第１の物理マシンに配備される、前記第１の仮想マシン以外の第２の仮想マシンの前記所定期間ごとのリソース使用量と、前記変更情報に基づく前記第１の仮想マシンの前記所定期間ごとのリソース使用量の予測値とに基づいて、前記第１、第２の仮想マシンのリソース使用量の前記所定期間ごとの合計値が所定の閾値を超えるか否かを判定し、
いずれかの前記所定期間のリソース使用量の合計値が前記所定の閾値を超える場合に、マイグレーションの実行を決定する、
処理を実行させる仮想マシン管理プログラム。 
【請求項２】
請求項１において、
前記判定は、前記リソース使用量が所定値以下の所定期間の前記リソース使用量の予測値を、前記記憶した前記リソース使用量と同一の値として算出する、
仮想マシン管理プログラム。
【請求項３】
請求項１において、
前記所定の閾値は、各物理マシンに配備される仮想マシン群に割り当てるリソース使用量の最大値である、
仮想マシン管理プログラム。
【請求項４】
請求項１において、さらに、
前記第１、第２の仮想マシンのいずれかを各別の物理マシンにマイグレーションした場合の、前記各別の物理マシンに配備される仮想マシン群のリソース使用量の前記所定期間ごとの合計値の最大値が最小となる、前記第１、第２の仮想マシンのいずれかと別の物理マシンの組み合わせを、第１の移行仮想マシン及び第１の移行先物理マシンとして特定する、
仮想マシン管理プログラム。
【請求項５】
請求項４において、さらに、
前記第１の移行仮想マシンに加えて第２の移行仮想マシンを特定する場合、前記所定期間と同じまたは長い第２の期間ごとのリソース使用量に基づいて分類される種別が前記第１の移行仮想マシンと同一の候補仮想マシンを選択する、
仮想マシン管理プログラム。
【請求項６】
請求項５において、さらに、
前記第１、第２の移行仮想マシンの前記リソース使用量が所定値以下の所定期間に、前記第１、第２の移行仮想マシンのマイグレーションをスケジュールする、
仮想マシン管理プログラム。
【請求項７】
請求項５において、
前記第２の移行仮想マシンの前記特定は、
前記第１の移行仮想マシンをマイグレーションした場合の、各物理マシンに配備される仮想マシン群のリソース使用量の前記所定期間ごとの合計値の前記所定の閾値からの超過が、前記複数の物理マシン間で最大となる移行元物理マシンを特定し、
前記移行元物理マシンに配備された仮想マシンのうち、前記選択した前記候補仮想マシンのいずれかを各別の物理マシンにマイグレーションした場合の、前記各別の物理マシンに配備される仮想マシン群のリソース使用量の前記所定期間ごとの合計値の最大値が最小となる、候補仮想マシンと別の物理マシンの組み合わせを、前記第２の移行仮想マシン及び第２の移行先物理マシンとして特定する、
仮想マシン管理プログラム。
【請求項８】
請求項７において、
前記第１、第２の移行仮想マシンをマイグレーションした場合の各物理マシンに配備される仮想マシン群のリソース使用量の所定期間ごとの合計値が前記所定の閾値に収まるまで、前記第２の移行仮想マシンの前記特定を繰り返し複数の第２の移行仮想マシンを特定する、
仮想マシン管理プログラム。
【請求項９】
複数の物理マシンに１以上の仮想マシンが配備されたシステムで、第１の期間を複数に分割した所定期間ごとに、前記１以上の仮想マシンそれぞれのリソース使用量を記憶し、
第１の仮想マシンのリソースに関する変更情報を取得したときに、前記第１の仮想マシンを配備する第１の物理マシンに配備される、前記第１の仮想マシン以外の第２の仮想マシンの前記所定期間ごとのリソース使用量と、前記変更情報に基づく前記第１の仮想マシンの前記所定期間ごとのリソース使用量の予測値とに基づいて、前記第１、第２の仮想マシンのリソース使用量の前記所定期間ごとの合計値が所定の閾値を超えるか否かを判定し、
いずれかの前記所定期間のリソース使用量の合計値が前記所定の閾値を超える場合に、マイグレーションの実行を決定する、
仮想マシン管理方法。
【請求項１０】
複数の物理マシンに１以上の仮想マシンが配備されたシステムで、第１の期間を複数に分割した所定期間ごとに、前記１以上の仮想マシンそれぞれのリソース使用量を記憶する記憶部と、
第１の仮想マシンのリソースに関する変更情報を取得したときに、前記第１の仮想マシンを配備する第１の物理マシンに配備される、前記第１の仮想マシン以外の第２の仮想マシンの前記所定期間ごとのリソース使用量と、前記変更情報に基づく前記第１の仮想マシンの前記所定期間ごとのリソース使用量の予測値とに基づいて、前記第１、第２の仮想マシンのリソース使用量の前記所定期間ごとの合計値が所定の閾値を超えるか否かを判定し、いずれかの前記所定期間のリソース使用量の合計値が前記所定の閾値を超える場合に、マイグレーションの実行を決定する処理部と、を有する
仮想マシン管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン管理プログラム、仮想マシン管理方法、及び、仮想マシン管理装置に関する。
【背景技術】
【０００２】
複数の物理マシンにそれぞれに１台以上の仮想マシンが配備されたシステムがある。このようなシステムでは、仮想マシンを利用するユーザから、仮想マシンのリソースに関する設定の変更要求を受けることがある。
【０００３】
変更要求を受信すると、仮想マシン管理装置は、物理マシンに配備された１以上の仮想マシンのリソース使用量を参照し、変更要求に基づくリソースの変更の可否を判定する。リソースの変更が可能である場合、仮想マシン管理装置は、変更要求に基づいて、各仮想マシンのリソースの設定値を変更する。一方、リソースの変更が不可能である場合、仮想マシン管理装置は、例えば、変更要求に応じたリソースを確保するために、マイグレーションを実行する。
【０００４】
仮想マシンのリソースに関する技術については、例えば、特許文献１〜４に記載される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第０８／１０２７３９号
【特許文献２】特開２０１３−２０６３２１号公報
【特許文献３】国際公開第１４／１２２７４３号
【特許文献４】特開２０１４−６７３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、例えば、変更要求の受信時の各仮想マシンのリソース使用量に基づいてリソースの変更の可否を判定する場合、変更可能であると判定された場合であっても、変更要求の適用後にリソース不足が生じる可能性がある。一方、各仮想マシンのリソース使用量の最大値に基づいてリソースの変更の可否を判定する場合、リソースに余剰があるにも関わらず、変更が不可能であると判定される場合がある。リソースの変更の可否が適切に判定されない場合、マイグレーションの実行を適切に判定できない。
【０００７】
開示の１つの側面は、仮想マシンの適切な配備を実現する仮想マシン管理プログラム、仮想マシン管理方法、及び、仮想マシン管理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の態様によれば、複数の物理マシンに１以上の仮想マシンが配備されたシステムで、第１の期間を複数に分割した所定期間ごとに、前記１以上の仮想マシンそれぞれのリソース使用量を記憶し、第１の仮想マシンのリソースに関する変更情報を取得したときに、前記第１の仮想マシンを配備する第１の物理マシンに配備される、前記第１の仮想マシン以外の第２の仮想マシンの前記所定期間ごとのリソース使用量と、前記変更情報に基づく前記第１の仮想マシンの前記所定期間ごとのリソース使用量の予測値とに基づいて、前記第１、第２の仮想マシンのリソース使用量の前記所定期間ごとの合計値が所定の閾値を超えるか否かを判定し、いずれかの前記所定期間のリソース使用量の合計値が前記所定の閾値を超える場合に、マイグレーションの実行を決定する、処理を実行させる。
【発明の効果】
【０００９】
１つの側面では、仮想マシンの適切な配備を実現できる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態における情報処理システムの構成の一例を示す図である。
【図２】物理マシン３００の仮想環境を模式的に説明する図である。
【図３】スケールアップの一例を示す図である。
【図４】ＶＭゲストａ１〜ａ４の時間帯に応じたリソース使用量の変移例を示す図である。
【図５】ＶＭゲスト群のメモリの設定値の合計が許容リソース量を超えるにも関わらずスケールアップを実行した場合の、メモリの割り当て量を例示する図である。
【図６】本実施の形態における管理装置１００の処理を説明するフローチャート図である。
【図７】仮想マシン群のリソース使用量の所定期間ごとの合計を模式的に説明する図である。
【図８】第２の実施の形態における管理装置（仮想マシン管理装置）１００のハードウェア構成図である。
【図９】図８に示した管理装置１００のソフトウェアの機能を示す図である。
【図１０】本実施の形態における仮想マシン管理プログラムの処理の流れを説明するフローチャート図である。
【図１１】図１０の工程Ｓ１２の処理の詳細を説明するフローチャート図である。
【図１２】稼働履歴情報テーブル１２１の一例を示す図である。
【図１３】ＶＭホストｈＡが実行する各ＶＭゲストａ１〜ａ４の各時間帯のメモリ使用量の一例を示す図である。
【図１４】スケールアップ後のＶＭゲストａ１のメモリ使用量の予測値の一例を示す図である。
【図１５】図１０のフローチャート図の工程Ｓ１４の処理の詳細を説明するフローチャート図である。
【図１６】各ＶＭホストｈＡ〜ｈＤのＶＭゲスト群のメモリ使用量の時間帯ごとの合計値を示す図である。
【図１７】ＶＭゲストａ４をＶＭホストｈＢ〜ｈＤに移行した場合の、各ＶＭホスト単位のメモリ使用量の時間帯ごとの合計値を示す図である。
【図１８】１つの目のマイグレーションを実行した場合の、各ＶＭホストｈＡ〜ｈＤのＶＭゲスト群のメモリ使用量の時間帯ごとの合計値を示す図である。
【図１９】ラベルテーブル１２２の一例を説明する図である。
【図２０】１つ目、２つ目のマグレーションプランを実行した場合の、各ＶＭホストｈＡ〜ｈＤのメモリ使用量の時間帯ごとの合計値の一例を示す図である。
【図２１】マイグレーション対象リスト１２３の一例を示す図である。
【図２２】移行ＶＭゲストａ４、ｄ１の時間帯ごとのメモリ使用量の一例を示す図である。
【図２３】マイグレーション前後の１つのＶＭホストのリソース使用量を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１２】
［情報処理システムの構成］
図１は、本実施の形態における情報処理システムの構成の一例を示す図である。図１に示すように、情報処理システムは、仮想マシン管理装置１００（以下、管理装置１００と称する）と、クライアント装置２００と、当該管理装置１００が管理対象とする管理対象サーバ群を有する。管理対象サーバ群は、複数の物理マシン３００ａ〜３００ｄ（物理マシン３００ともいう）を有する。
【００１３】
管理装置１００とクライアント装置２００との間、及び、管理装置１００と各物理マシン３００との間は、ネットワークを介して接続する。ネットワークは、例えば、ＬＡＮ（Local Area Network）やＶＰＮ（Virtual Private Network）等の通信網である。
【００１４】
物理マシン３００では、コンピュータシステムの動作環境を仮想的に実現する仮想化ソフトウェアが動作する。仮想化ソフトウェアは、１または複数の仮想マシンを実行する。管理装置１００は、各物理マシン３００の仮想環境を管理する。また、管理装置１００は、例えば、仮想マシンの配備や削除、仮想マシンの他の物理マシン３００へのマイグレーション等を、仮想化ソフトウェアに指示する。クライアント装置２００は、仮想環境に対する指示の入力や、仮想環境の情報の表示等を行う。
【００１５】
図２は、物理マシン３００ａの仮想環境を模式的に説明する図である。なお、他の物理マシン３００ｂ〜３００ｄの構成も物理マシン３００ａと同様である。図２は、ハイパーバイザー型の仮想化環境を示す。ただし、この例に限定されるものではなく、本実施の形態はホスト型の仮想化環境にも有効である。
【００１６】
ハイパーバイザー型の仮想化環境では、ハードウェア上で、仮想化ソフトウェアを示すハイパーバイザー３０２が動作する。ハイパーバイザー３０２は、例えば、VMware ESXi（登録商標）等のソフトウェアである。以下、ハードウェア３０１とハイパーバイザー３０２との組み合わせを、ＶＭホストと称する。また、以下、仮想マシンをＶＭゲストと称する。
【００１７】
図２に示すＶＭホストｈＡは、４つのＶＭゲストａ１〜ａ４を実行する。各ＶＭゲストａ１〜ａ４は、ＶＭホストｈＡがハードウェア３０１に含まれるＣＰＵ（Central Processing Unit：ＣＰＵ）やメモリ等のリソースを割り当てることにより動作する。
【００１８】
また、ＶＭゲストａ１〜ａ４には、当該ＶＭゲストに割り当てられるリソースの上限を示す設定値が設定される。各ＶＭゲストａ１〜ａ４には、設定値が示すリソースが常に割り当てられるのではなく、設定値を上限として、処理に応じたリソースが動的に割り当てられる。また、未割り当てのリソースは、いずれかのＶＭゲストに割り当て可能である。割り当て可能なリソースが不足すると処理のパフォーマンスが低下するため、設定値には、例えば、ＶＭゲストａ１〜ａ４の処理に要するリソースの最大値が設定される。
【００１９】
（スケールアップ、スケールダウン）
管理装置１００は、クライアント装置２００を介して、ユーザから各ＶＭゲストの設定値の変更要求を受け付ける。変更要求は、設定値の増減（スケールアップ・スケールダウン）である。スケールアップは設定値の増加（拡張）を示し、スケールダウンは設定値の低減（減縮）を示す。このとき、管理装置１００は変更要求の可否を判定する。本実施の形態では、スケールアップする場合を例示する。
【００２０】
管理装置１００は、例えば、スケールアップ対象のＶＭゲストを含む、同一のＶＭホストが実行するＶＭゲスト群のリソースの使用状態に基づいて、スケールアップの可否を判定する。スケールアップ不可と判定した場合、例えば、管理装置１００は、空きリソースを増加させるために、ＶＭゲストのいずれかを他のＶＭホストにマイグレーションする。
【００２１】
具体的に、管理装置１００は、スケールアップ受付時、ＶＭゲスト群に割り当てられているリソース量（以下、リソース使用量と称する）の合計値がＶＭホストの許容リソース量を超えない場合に、スケールアップ可能であると判定する。許容リソース量は、ＶＭホストがＶＭゲスト群に割り当て可能なリソース量の最大値である。
【００２２】
ただし、この場合、スケールアップに伴い、スケールアップ対象のＶＭゲストに割り当て可能なリソースの上限が増加することにより、他のＶＭゲストに十分なリソースを割り当てられない場合がある。または、他のＶＭゲストの負荷が増加した場合、スケールアップしたＶＭゲストに十分なリソースを割り当てられない場合がある。
【００２３】
または、管理装置１００は、例えば、各ＶＭゲストのリソース使用量の平均値に基づいて、スケールアップの可否を判定する。具体的に、管理装置１００は、ＶＭゲスト群のリソース使用量の平均値の合計が許容リソース量を超えない場合に、スケールアップ可能であると判定する。ただし、平均値に基づいてスケールアップ可能である旨判定された場合であっても、ＶＭゲスト群の負荷が同一の時間帯に高くなると、各ＶＭゲストに割り当てるリソースが不足する可能性がある。
【００２４】
（設定値に基づくスケールアップの可否判定）
このように、スケールアップ受付時のリソース使用量やリソース使用量の平均値に基づいてスケールアップの可否を判定する場合、スケールアップ後にリソース不足が発生する可能性がある。したがって、管理装置１００は、例えば、各ＶＭゲストのリソースの設定値に基づいて、スケールアップの可否を判定する。
【００２５】
つまり、管理装置１００は、スケールアップ後のＶＭゲスト群の設定値の合計が許容リソース量を超えない場合に、スケールアップ可能であると判定する。前述したとおり、各ＶＭゲストには、設定値を上限としてリソースが割り当てられる。したがって、設定値に基づいてスケールアップの可否を判定することにより、スケールアップ後にリソース不足が発生することを抑制可能になる。
【００２６】
図３は、スケールアップの一例を示す図である。図３の左図は、ＶＭホストｈＡが実行する各ＶＭゲストａ１〜ａ４の、スケールアップ前のリソースの設定値を示す。リソースは、ＣＰＵ及びメモリである。図３の例によると、ＶＭゲストａ１、ａ２のメモリの設定値は値「30GB」、ＣＰＵの設定値は値「3.3GHz×2コア」である。他のＶＭゲストａ３、ａ４についても、設定値が表される。
【００２７】
スケールアップ前の各ＶＭゲストａ１〜ａ４のメモリの設定値の合計値は、値「100GB（＝30＋30＋20＋20）」である。この場合、ＶＭゲストａ１〜ａ４のメモリの設定値の合計は、ＶＭホストｈＡの許容リソース量「100GB」に収まっている。
【００２８】
図３の右図は、スケールアップ後の各ＶＭゲストａ１〜ａ４のリソースの設定値を示す。図３は、実行する処理の増加により、ＶＭゲストａ１のメモリの設定値を「30GB」から「60GB」にスケールアップする場合を例示する。スケールアップに伴い、各ＶＭゲストａ１〜ａ４のメモリの設定値の合計値「130GB（＝60＋30＋20＋20）」は許容リソース量「100GB」を超える。したがって、管理装置１００は、スケールアップが不可能である旨の判定を行う。
【００２９】
このように、設定値に基づいてスケールアップの可否を判定する場合、割り当て可能なリソースの上限に基づくことにより、リソースの不足を抑制可能になる。ただし、設定値に基づく場合、リソース使用量が低い時間帯についても設定値と同等のリソースを使用するとみなされ、スケールアップの可否が判定される。このため、余剰リソースがあるにも関わらず、スケールアップ不可であると判定される場合がある。ここで、図４にしたがって、余剰リソースについて説明する。
【００３０】
図４は、ＶＭゲストａ１〜ａ４の時間帯に応じたリソース使用量の変移例を示す図である。図４に示すグラフの横軸は時間を、縦軸はリソース使用量を示す。図４に示す点線ａ１ｘ〜ａ４ｘは各ＶＭゲストａ１〜ａ４のリソース使用量の変移を示し、線ｈＡｙはＶＭホストｈＡの許容リソース量を示す。
【００３１】
図４の例によると、ＶＭゲストａ１は、昼間の時間帯「6時〜18時」にアクセスが集中するオンライン処理を行うため、リソース使用量ａ１ｘが昼間の時間帯に高くなる。また、ＶＭゲストａ２は夜間の時間帯「18時〜6時」にバッチ処理を行うため、リソース使用量ａ２ｘが夜間の時間帯に高くなる。ＶＭゲストａ４のリソース使用量ａ４ｘについても、ＶＭゲストａ２と同様である。また、ＶＭゲストａ３のリソース使用量ａ３ｘは、１日を通して変化しない。
【００３２】
このように、各ＶＭゲストａ１〜ａ４のリソース使用量ａ１ｘ〜ａ４ｘは所定に応じて、時間帯に応じた変化パターンを有する。また、リソース使用量ａ１ｘ、ａ２ｘ、ａ４ｘによっては、変更の周期を有する。したがって、リソース使用量ａ１ｘ〜ａ４ｘが高くなる時間帯が重なる場合、リソース使用量の合計は許容リソース量ｈＡｙに近づく。
【００３３】
これに対し、リソース使用量ａ１ｘ〜ａ４ｘが高くなる時間帯が異なる場合、リソース使用量の合計は許容リソース量ｈＡｙに達しない。つまり、リソース使用量ａ１ｘ〜ａ４ｘが高くなる時間帯が重複しない場合、余剰リソースが生じる。
【００３４】
なお、設定値に基づいてスケールアップが不可能であると判定したにも関わらず、スケールアップを実行すると、各ＶＭゲストでリソース不足が発生する可能性がある。ここで、図５にしたがって、リソース不足の一例を説明する。
【００３５】
図５は、ＶＭゲスト群のメモリの設定値の合計が許容リソース量を超えるにも関わらずスケールアップを実行した場合の、メモリの割り当て量を例示する図である。図５は、図３で前述したとおり、スケールアップにより、各ＶＭゲストａ１〜ａ４のメモリの設定値の合計値「130GB」が許容リソース量「100GB」を超える場合を示す。
【００３６】
図５の左図は、スケールアップ前の各ＶＭゲストａ１〜ａ４に対するメモリの割り当て量（メモリ使用量）を示す。前述したとおり、各ＶＭゲストａ１〜ａ４には、図３に示した設定値を上限として、メモリが割り当てられる。図５の例によると、ＶＭゲストａ１、ａ２には値「30GB」が、ＶＭゲストａ３、ａ４には「20GB」が割り当てられている。
【００３７】
図５の右図は、スケールアップ後の各ＶＭゲストａ１〜ａ４へのメモリの割り当て量を示す。スケールアップに伴い、ＶＭゲストａ１に、スケールアップ前より多くのメモリを割り当て可能になる。したがって、図５に示すように、ＶＭゲストａ１に割り当てられたメモリ量が値「30GB」から値「50GB」に増加する。
【００３８】
一方、ＶＭゲストａ１に割り当てたメモリ量の増加により、他のＶＭゲストａ２〜ａ４に割り当て可能なメモリ量が低減する。これにより、ＶＭゲストａ２に割り当てられたメモリ量が、値「30GB」から値「20GB」に低減する。ＶＭゲストａ３、ａ４についても同様に、スケールアップ後に、割り当てられたメモリ量が低減する。
【００３９】
このように、設定値に基づいてスケールアップ不可と判定されたにも関わらずスケールアップを断行する場合、他のＶＭゲストａ２〜ａ４に割り当て可能なリソース量が低減する。この場合、他のＶＭゲストａ２〜ａ４にスケールアップ前と同等のメモリ量を割り当てることができず、パフォーマンスが低下する。または、他のＶＭゲストａ２〜ａ４の負荷が高いとき、スケールアップしたにも関わらずＶＭゲストａ１に十分なリソースを割り当てることができない場合がある。
【００４０】
このように、設定値に基づいてスケールアップの可否を判定する場合、リソースの余剰があるにも関わらず、スケールアップ不可だと判定される場合がある。一方、この場合にスケールアップを断行すると、各ＶＭゲストでリソース不足が発生する可能性がある。このように、スケールアップの可否を適切に判定することは容易ではない。
【００４１】
［第１の実施の形態］
したがって、本実施の形態における管理装置１００は、複数の物理マシンに１以上の仮想マシン（ＶＭゲスト）が配備されたシステムで、第１の期間を複数に分割した所定期間ごとに、１以上の仮想マシンそれぞれのリソース使用量を記憶する。
【００４２】
また、管理装置１００は、第１の仮想マシンのリソースに関する変更情報を取得したときに、第１の仮想マシンを配備する第１の物理マシンに配備される第１の仮想マシン以外の第２の仮想マシンの所定期間ごとのリソース使用量を取得する。また、管理装置１００は、変更情報に基づく第１の仮想マシンの所定期間ごとのリソース使用量の予測値を取得する。
【００４３】
そして、管理装置１００は、第１、第２の仮想マシンのリソース使用量の所定期間ごとの合計値が所定の閾値を超えるか否かを判定する。いずれかの所定期間のリソース使用量の合計値が所定の閾値を超える場合、管理装置１００は、マイグレーションの実行を決定する。
【００４４】
図４で前述したとおり、各仮想マシンのリソース使用量は、時間帯に応じて変化パターンや周期等の偏りを有する。したがって、管理装置１００は、１日や１週間等の期間を、リソース使用量の変化パターンが表れる所定期間に分割し、当該所定期間ごとのリソース使用量を定数化する。そして、管理装置１００は、スケールアップ後の物理マシンのリソース使用量の合計と許容リソース量とを所定期間ごとに比較することで、スケールアップの可否の判定を行う。
【００４５】
所定期間ごとのリソース使用量は、時間帯に応じた変化パターンを有する。したがって、管理装置１００は、リソース使用量の所定期間ごとの合計値に基づくことにより、時間帯に応じたリソース使用量の変化パターンを考慮したスケールアップの可否の判定を行える。例えば、仮想マシン間でリソース使用量が高くなる時間帯が重複する場合、重複した時間帯のリソース使用量の合計に基づいて、スケールアップの可否を判定可能になる。これにより、管理装置１００は、リソース不足の発生を適切に抑制できる。
【００４６】
一方、仮想マシン間でリソース使用量が高くなる時間帯が重複しない場合、当該重複しない時間帯のリソース使用量の合計に基づいて、スケールアップの可否を判定可能になる。これにより、管理装置１００は、リソースの余剰を抑制し、コストアップを抑制できる。また、スケールアップ可能なケースが増加するため、不要なマイグレーションが減少し、マイグレーションに伴う業務のパフォーマンスへの影響が減少する。
【００４７】
このように、本実施の形態の管理装置１００は、分割した所定期間ごとのリソース使用量を利用することで、時間帯に応じたリソース使用量の変化パターンに基づいてリソースの変更要求の可否を適切に判定できる。これにより、各物理マシンのリソースを効率的に使用した仮想マシンの適切な配備を実現可能になる。
【００４８】
［管理装置１００の処理の流れ］
図６は、本実施の形態における管理装置１００の処理を説明するフローチャート図である。
【００４９】
Ｓ１：管理装置１００は、第１の期間を複数に分割した所定期間ごとに、１以上の仮想マシン（ＶＭゲスト）それぞれのリソース使用量を記憶する。
【００５０】
第１の期間は、例えば１日であって、所定期間は、例えば１日を３時間ごとに分割した期間を示す。具体的に、所定期間は、期間「0時〜3時」、「3時〜6時」、「6時〜9時」等の期間である。なお、この例に限定されるものではなく、所定期間は、例えば、１日を６時間ごとに分割した期間等であってもよい。また、第１の期間は１週間や１か月等の期間であって、所定期間は１日や１０日等であってもよい。
【００５１】
Ｓ２：管理装置１００は、第１の仮想マシンのリソースに関する変更情報を取得したか否かを判定する。リソースは、物理マシン３００が有するＣＰＵやメモリ等である。変更情報は、例えば、リソースの設定値のスケールアップの要求である。図３の例によると、第１の仮想マシンはＶＭゲストａ１である。
【００５２】
Ｓ３：変更情報を取得すると（Ｓ２のＹｅｓ）、管理装置１００は、変更情報に基づいて、第１の仮想マシン（ＶＭゲストａ１）の所定期間ごとのリソース使用量の予測値を算出する。
【００５３】
Ｓ４：管理装置１００は、第１の仮想マシンを配備する第１の物理マシン３００に配備される第１の仮想マシン以外の第２の仮想マシン（ＶＭゲストａ２〜ａ４）の所定期間ごとのリソース使用量を取得する。そして、取得したリソース使用量と予測値とに基づいて、第１、第２の仮想マシンのリソース使用量の所定期間ごとの合計値を取得する。
【００５４】
Ｓ５：管理装置１００は、いずれかの所定期間のリソース使用量の合計値が所定の閾値を超えるか否かを判定する。所定の閾値は、第１の物理マシン３００ａに配備される仮想マシン群（ＶＭゲストａ１〜ａ４）に割り当てられるリソース使用量の最大値（許容リソース量）である。
【００５５】
Ｓ６：いずれかの所定期間のリソース使用量が所定の閾値を超える場合（Ｓ５のＹｅｓ）、管理装置１００は、ＶＭゲストａ１〜ａ４のいずれかのマイグレーションの実行を決定する。一方、いずれの所定期間のリソース使用量も所定の閾値を超えない場合（Ｓ５のＮｏ）、管理装置１００は、変更情報の適用が可能である旨、判定する。
【００５６】
図７は、仮想マシン群のリソース使用量の所定期間ごとの合計を模式的に説明する図である。図７に示すグラフの横軸は時間を、縦軸はリソース使用量を示す。図７に示す矢印は、各ＶＭゲストａ１〜ａ４のリソース使用量ａ１ｘ〜ａ４ｘを示し、実線はリソース使用量ａ１ｘ〜ａ４ｘの合計を示す。なお、リソース使用量ａ１ｘは、スケールアップ後のリソース使用量の予測値である。
【００５７】
所定期間ごとのリソース使用量ａ１ｘ〜ａ４ｘは、時間帯に応じた変化パターンを有する。このため、図７に示すように、リソース使用量ａ１ｘ〜ａ４ｘの合計値と許容リソース量とを所定期間ごとに比較することで、スケールアップの可否を適切に判定可能になる。図７の例によると、リソース使用量が高くなる時間帯が分散している。したがって、いずれの時間帯（所定期間）のリソース使用量の合計も許容リソース量を超えない。したがって、管理装置１００は、スケールアップ可能である旨判定する。
【００５８】
［第２の実施の形態］
図８は、第２の実施の形態における管理装置（仮想マシン管理装置）１００のハードウェア構成図である。管理装置１００は、例えば、ＣＰＵ１０１、メインメモリ１１０や補助記憶装置１１１等を備えるメモリ１０２、通信インタフェース部１０３を有する。各部は、バス１０６を介して相互に接続する。
【００５９】
ＣＰＵ１０１は、バス１０６を介してメモリ１０２等と接続するとともに、管理装置１００全体の制御を行う。通信インタフェース部１０３は、有線通信を介して、クライアント装置２００や物理マシン３００等と接続し、データの送受信を行う。通信インタフェース部１０３は、例えば、ＮＩＣ（Network Interface Card：ＮＩＣ）である。
【００６０】
ＲＡＭ（Random Access Memory：ＲＡＭ）等を示すメインメモリ１１０は、ＣＰＵ１０１が処理を行うデータ等を記憶する。補助記憶装置１１１は、ＣＰＵ１０１が実行するオペレーションシステムのプログラムを格納する領域（図示せず）や、仮想マシン管理プログラム格納領域１２０を有する。また、補助記憶装置１１１は、稼働履歴情報テーブル格納領域１２１、ラベルテーブル格納領域１２２、マイグレーション対象リスト格納領域１２３を有する。補助記憶装置１１１は、ＨＤＤ（Hard disk drive）、不揮発性半導体メモリ等を示す。
【００６１】
仮想マシン管理プログラム格納領域１２０の仮想マシン管理プログラム（以下、仮想マシン管理プログラム１２０と称する）はメインメモリ１１０にロードされる。そして、ＣＰＵ１０１がメインメモリ１１０内にロードされた仮想マシン管理プログラム１２０を実行することによって、本実施の形態における仮想マシンの管理処理を実現する。
【００６２】
稼働履歴情報テーブル格納領域１２１の稼働履歴情報テーブル（以下、稼働履歴情報テーブル１２１と称する）は、各ＶＭゲストのリソース使用量の履歴を有する。稼働履歴情報テーブル１２１の一例を、図１２にしたがって後述する。
【００６３】
ラベルテーブル格納領域１２２のラベルテーブル（以下、ラベルテーブル１２２と称する）は、各ＶＭゲストのラベル情報を有する。ラベルテーブル１２２の一例を、図１９にしたがって後述する。
【００６４】
マイグレーション対象リスト格納領域１２３のマイグレーション対象リスト（以下、マイグレーション対象リスト１２３と称する）は、マイグレーション対象のＶＭゲスト、及び、移行先のＶＭホストの情報を有する。マイグレーション対象リスト１２３の一例を、図２１にしたがって後述する。
【００６５】
［管理装置１００のソフトウェアの機能］
図９は、図８に示した管理装置１００のソフトウェアの機能を示す図である。図９において、図８で示したものと同一のものは、同一の符号で示す。図９に示すように、仮想マシン管理プログラム１２０は、例えば、スケールアップ判定モジュール１３１、マイグレーション計画作成モジュール１３２を有する。
【００６６】
スケールアップ判定モジュール１３１（以下、判定モジュール１３１と称する）は、稼働履歴情報テーブル１２１を参照し、所定期間ごとの各ＶＭゲストのリソース使用量を記憶する。リソース使用量は、各物理マシンが有するメモリまたはプロセッサの使用量を含む。以下、所定期間を時間帯と称する。
【００６７】
また、判定モジュール１３１は、第１のＶＭゲストのリソースに関する変更情報を取得したときに、変更情報に基づく第１のＶＭゲストの時間帯ごとのリソース使用量の予測値、第１のＶＭゲスト以外の第２のＶＭゲストの時間帯ごとのリソース使用量を取得する。そして、判定モジュール１３１は、第１、第２のＶＭゲストの時間帯ごとのリソース使用量の合計と所定の閾値を比較する。いずれかの時間帯のリソース使用量の合計値が所定の閾値を超える場合、判定モジュール１３１は、マイグレーションの実行を決定し、マイグレーション計画作成モジュール１３２にマイグレーションプランの作成を指示する。
【００６８】
マイグレーション計画作成モジュール１３２（以下、計画作成モジュール１３２と称する）は、マイグレーションプランを有するマイグレーション対象リスト１２３を作成する。計画作成モジュール１３２は、スケールアップ後の各ＶＭホストのリソース使用量の時間帯ごとの合計が所定の閾値に収まるような、マイグレーションプランを作成する。
【００６９】
図１０は、本実施の形態における仮想マシン管理プログラムの処理の流れを説明するフローチャート図である。
【００７０】
Ｓ１１：判定モジュール１３１は、ＶＭゲストのスケールアップの申請を受け付ける。スケールアップの申請は、例えば、ユーザによって、クライアント装置２００を介して入力される。本実施の形態では、図３と同様に、ＶＭゲストａ１のメモリの設定値を値「30GB」から「60GB」にスケールアップする申請が入力された場合を例示する。なお、本実施の形態では、メモリの設定値をスケールアップする場合を例示するが、ＣＰＵの設定値をスケールアップする場合の処理についても同様である。
【００７１】
Ｓ１２：判定モジュール１３１は、スケールアップのシミュレーションを行う。工程Ｓ１２の処理の詳細は、図１１のフローチャート図にしたがって後述する。
【００７２】
Ｓ１３：判定モジュール１３１は、シミュレーション（工程Ｓ１１）の結果、スケールアップのために、マイグレーションが必要か否かを判定する。
【００７３】
Ｓ１４：マイグレーションが必要であると判定された場合（Ｓ１３のＹｅｓ）、計画作成モジュール１３２は、マイグレーションプランを生成し、マイグレーション対象リスト１２３に記憶する。工程Ｓ１４の処理の詳細は、図１５のフローチャート図にしたがって後述する。
【００７４】
Ｓ１５：判定モジュール１３１は、工程Ｓ１４の結果、マイグレーションすることでリソース不足を解消可能であるか否かを判定する。
【００７５】
Ｓ１６：リソース不足を解消できない場合（Ｓ１５のＮｏ）、判定モジュール１３１は、リソースが不足していることを示すリソース不足の警告を表示し、処理を終了する。
【００７６】
Ｓ１７：一方、リソース不足を解消可能である場合（Ｓ１５のＹｅｓ）、判定モジュール１３１は、マイグレーションプランを表示する。
【００７７】
Ｓ１８：工程Ｓ１７の後、判定モジュール１３１は、ユーザによる、マイグレーションプランの承諾の是非を受け付ける。例えば、ユーザは、クライアント装置２００を介して、表示されたマイグレーションプランの承諾を指示する。マイグレーションプランが承諾されない場合（Ｓ１８のＮｏ）、判定モジュール１３１は処理を終了する。
【００７８】
Ｓ１９：マイグレーションプランが承諾される場合（Ｓ１８のＹｅｓ）、判定モジュール１３１は、マイグレーションプランの実行の開始時間まで待機する。
【００７９】
Ｓ２０：判定モジュール１３１は、マイグレーション対象リスト１２３を参照し、マイグレーションを実行する。判定モジュール１３１は、スケールアップに要するリソースが不足すると判定した場合にマイグレーションを実行することで、スケールアップのためのリソースを確保する。
【００８０】
Ｓ２１：判定モジュール１３１は、ＶＭゲストをスケールアップする。前述したとおり、ＶＭゲストａ１のメモリの設定値を値「30GB」から「60GB」にスケールアップする。
【００８１】
次に、図１１〜図１４にしたがって、図１０の工程Ｓ１２の処理を説明する。前述したとおり、工程Ｓ１２では、スケールアップのシミュレーションを行う。
【００８２】
［図１０の工程Ｓ１２］
図１１は、図１０の工程Ｓ１２の処理の詳細を説明するフローチャート図である。工程Ｓ１２では、スケールアップのシミュレーションを行う。
【００８３】
Ｓ３１：判定モジュール１３１は、定期的に、各物理マシン３００から稼働履歴情報テーブル１２１（図１２に後述）を受信し記憶する。そして、判定モジュール１３１は、稼働履歴情報テーブル１２１を参照し、スケールアップ対象のＶＭゲストを含む、各ＶＭゲストの時間帯ごとのリソース使用量を取得し記憶する。リソースの使用量は、例えば、ＣＰＵ使用量やメモリ使用量である。工程Ｓ３１の処理を図１３にしたがって後述する。
【００８４】
Ｓ３２：判定モジュール１３１は、スケールアップの情報に基づいて、スケールアップ適用後の、スケールアップ対象のＶＭゲストの時間帯ごとのリソース使用量を予測値を算出する。工程Ｓ３２の処理を、図１４にしたがって後述する。
【００８５】
Ｓ３３：判定モジュール１３１は、スケールアップ対象のＶＭゲストのリソース使用量の予測値（Ｓ３２）と、他のＶＭゲストのリソース使用量との、時間帯ごとの合計値を算出する。
【００８６】
Ｓ３４：判定モジュール１３１は、工程Ｓ３３で算出した時間帯ごとの合計値のうち、所定の閾値を超える時間帯があるか否かを判定する。所定の閾値は、スケールアップ対象のＶＭゲストを実行するＶＭホストの許容リソース量である。
【００８７】
Ｓ３５：いずれの時間帯の合計値も所定の閾値を超えない場合（Ｓ３４のＮｏ）、スケールアップした場合のリソース使用量の合計値が許容リソース量を超えないことを示す。したがって、判定モジュール１３１は、判定結果として、マイグレーションを実行することなくスケールアップ可能である旨のメッセージを出力する。
【００８８】
Ｓ３６：一方、いずれかの時間帯のリソース使用量が所定の閾値を超える場合（Ｓ３４のＹｅｓ）、リソースが不足する場合を示す。したがって、判定モジュール１３１は、判定結果として、マイグレーションが必要である旨のメッセージを出力する。
【００８９】
（稼働履歴情報テーブル１２１）
図１２は、稼働履歴情報テーブル１２１の一例を示す図である。図１２に示すように、稼働履歴情報テーブル１２１は、ＶＭゲストＩＤ（identification：ＩＤ）、タイムスタンプ、ＣＰＵ使用量（GigaHertz：GHz）、メモリ使用量（GigaByte：GB）の情報を有する。
【００９０】
ＶＭゲストＩＤは、ＶＭゲストを識別する情報である。タイムスタンプは、リソース使用量を取得した日付及び時間を示す。ＣＰＵ使用量は、ＶＭゲストが単位時間当たりに送信した信号量を示す。メモリ使用量は、ＶＭゲストが単位時間当たりに使用したメモリのサイズを示す。
【００９１】
図１２の稼働履歴情報テーブル１２１の例によると、ＶＭゲストａ１の、時間「2016/02/04 00:00:00」のＣＰＵ使用量は値「3.000GHz」であって、メモリ使用量は値「11.972GB」である。同様にして、ＶＭゲストａ１の、時間「2016/02/04 00:00:06」のＣＰＵ使用量は値「2.980GHz」であって、メモリ使用量は値「11.628GB」である。
【００９２】
図１２は、稼働履歴情報テーブル１２１は、ＶＭゲストａ１の他の時間についても同様に、ＣＰＵ使用量及びメモリ使用量の情報を有する。また、稼働履歴情報テーブル１２１は、ＶＭゲストａ２等の他のＶＭゲストについても同様に、リソース使用量の情報を有する。
【００９３】
（図１１の工程Ｓ３１）
図１３は、ＶＭホストｈＡが実行する各ＶＭゲストａ１〜ａ４の各時間帯のメモリ使用量の一例を示す図である。判定モジュール１３１は、図１２に示した稼働履歴情報テーブル１２１を参照し、各時間帯のメモリ使用量の最大値を取得し、当該時間帯のメモリ使用量として記憶する。図示していないが、判定モジュール１３１は、各時間帯のＣＰＵ使用量の最大値を取得し、当該時間帯のＣＰＵ使用量として記憶する。
【００９４】
このように、判定モジュール１３１は、リソース使用量の履歴をサンプリングすることにより、時間帯ごとのＣＰＵ量及びメモリ量を定数化する。なお、時間帯ごとのリソース使用量は、例えば、時間帯におけるリソース使用量の平均値や、時間帯における一時点のリソース使用量であってもよい。
【００９５】
図１３の例によると、ＶＭゲストａ１の時間帯「0時〜3時」のメモリ使用量は値「5GB」、時間帯「3時〜6時」のメモリ使用量は値「5GB」である。また、ＶＭゲストａ１の時間帯「6時〜9時」のメモリ使用量は値「20GB」である。他の時間帯についても、メモリ使用量が記憶される。また、他のＶＭゲストａ２〜ａ４についても、時間帯ごとのメモリ使用量が記憶される。
【００９６】
（図１１の工程Ｓ３２）
図１４は、スケールアップ後のＶＭゲストａ１のメモリ使用量の予測値の一例を示す図である。工程Ｓ３２では、スケールアップ対象のＶＭゲストａ１の、時間帯ごとのスケールアップ後のリソース使用量の予測値を算出する。括弧内の値は、スケールアップ前のメモリ使用量である。
【００９７】
本実施の形態では、メモリの設定値を値「30GB」から「60GB」にスケールアップする場合を例示する。この場合、メモリの設定値が２倍に変化する。このため、判定モジュール１３１は、図１３に示したＶＭゲストａ１のメモリ使用量を２倍に変更する。図１４の例によると、時間帯「6時〜9時」のメモリ使用量は、図１３に示した値「20GB」の２倍の値「40GB」である。他の時間帯についても、同様に予測値が算出される。
【００９８】
このように、判定モジュール１３１は、記憶した第１の仮想マシンの所定期間ごとのリソースの使用量と、変更情報が含む変更量に基づいて、変更情報を適用した場合の、第１の仮想マシンの所定期間ごとのリソース使用量の予測値を算出する。これにより、判定モジュール１３１は、リソースの変更量の度合いに基づいて、スケールアップ後の第１の仮想マシンの予測値を取得できる。
【００９９】
なお、リソース使用量が所定値（例えば、5GB）以下の時間帯は、ＶＭゲストがアイドル状態である旨推測可能である。アイドル状態である時間帯のリソース使用量は、スケールアップ後も変化しない可能性が高い。したがって、判定モジュール１３１は、リソース使用量が所定値以下の所定期間のリソース使用量の予測値を、記憶したリソース使用量と同一の値として算出する。
【０１００】
図１４の例によると、ＶＭゲストａ１の時間帯「0時〜3時」「3時〜6時」のメモリ使用量は、所定値「5GB」以下である。したがって、判定モジュール１３１は、時間帯「0時〜3時」「3時〜6時」の予測値を、変更前と同一の値「5GB」として予測する。これにより、アイドル状態の時間帯の、リソース使用量についても適切に予測値を算出可能になる。
【０１０１】
（図１１のＳ３３、Ｓ３４）
工程Ｓ３３、Ｓ３４では、ＶＭゲストａ１のリソース使用量の予測値と他のＶＭゲストａ２〜ａ４のリソース使用量との、時間帯ごとの合計値のうち、所定の閾値（許容リソース量）を超える時間帯があるか否かを判定する。本実施の形態における許容リソース量は、値「100GB」である。
【０１０２】
図１４の例によると、例えば、時間帯「9時〜12時」のメモリ使用量の合計値は値「90GB（＝50＋15＋20＋5）」であって、時間帯「12時〜15時」のメモリ使用量の合計値は値「110 GB（＝60＋15＋20＋15）」である。判定モジュール１３１は、他の時間帯についても、時間帯ごとにメモリ使用量の合計値を算出する。
【０１０３】
図１４の例によると、時間帯「12時〜15時」、「15時〜18時」Ｍａのメモリ使用量の合計値が、値「100GB」許容リソース量を超える（Ｓ３４のＹｅｓ）。したがって、判定モジュール１３１は、マイグレーションが必要である旨のメッセージを出力する。なお、図示していないが、いずれの時間帯のメモリ使用量の合計も値「100GB」を超えない場合（Ｓ３４のＮｏ）、判定モジュール１３１は、スケールアップ可能である旨のメッセージを出力する。
【０１０４】
このように、１日や１週間等の期間を分割した時間帯（所定期間）ごとのリソース使用量に基づくことにより、時間帯に応じたリソース使用量の変化パターンを考慮したスケールアップの可否の判定が可能になる。このため、スケールアップの可否判定に伴う、リソース不足やリソースの余剰の発生を抑制可能になる。したがって、不要なマイグレーションの発生を抑制可能になり、業務への影響を抑制可能になるとともに、リソースを効率的に使用したＶＭゲストの配備を実現可能になる。
【０１０５】
［図１０の工程Ｓ１４］
図１５は、図１０のフローチャート図の工程Ｓ１４の処理の詳細を説明するフローチャート図である。工程Ｓ１４では、マイグレーションプランを生成する。本実施の形態では、物理マシン３００でＶＭホストｈＡ〜ｈＤが動作し、各ＶＭホストｈＡ〜ｈＤが４つのＶＭゲスト（ａ１〜ａ４、ｂ１〜ｂ４、ｃ１〜ｃ４、ｄ１〜ｄ４）を実行する場合を例示する。
【０１０６】
Ｓ４１：計画作成モジュール１３２は、ＶＭホストｈＡ〜ｈＤのうち、リソース使用量の時間帯ごとの超過量が最大となるＶＭホストを特定する。このとき、ＶＭホストｈＡのリソース使用量は、図１１の工程Ｓ３３で算出した、スケールアップした場合のリソース使用量である。また、計画作成モジュール１３２は、特定したＶＭホストのリソース使用量の合計値に基づいて、超過量の最大値「Ｘ値」を取得する。超過量は、合計値の許容リソース量からの超過である。
【０１０７】
具体的に、計画作成モジュール１３２は、ＶＭホスト単位に、当該ＶＭホストが実行するＶＭゲスト群のリソース使用量の時間帯ごとの合計値を算出する。また、計画作成モジュール１３２は、ＶＭホストごとに、複数の時間帯の間で最も大きい合計値（以下、最大合計値ともいう）を特定し、最大合計値の許容リソース量からの超過量を算出する。そして、計画作成モジュール１３２は、複数のＶＭホストの間で、超過量が最大となるＶＭホストを特定する。
【０１０８】
図１６は、各ＶＭホストｈＡ〜ｈＤのＶＭゲスト群のメモリ使用量の時間帯ごとの合計値を示す図である。図１６に示すＶＭホストｈＡのメモリ使用量は、図１４に示したＶＭゲストａ１〜ａ４の合計値（図１４のｃｔ）と同様である。ＶＭホストｈＢのメモリ使用量は、ＶＭゲストｂ１〜ｂ４のメモリ使用量の時間帯ごとの合計値である。ＶＭホストｈＣ、ｈＤのメモリ使用量についても同様である。
【０１０９】
図１６の例によると、ＶＭホストｈＡの最大合計値は値「110GB」Ｍａ-１、ＶＭホストｈＢの最大合計値は値「95GB」Ｍｂ-１である。また、ＶＭホストｈＣの最大合計値は値「90GB」Ｍｃ-１、ＶＭホストｈＤの最大合計値は値「95GB」Ｍｄ-１である。本実施の形態では、各ＶＭホストｈＡ〜ｈＤの許容リソース量は値「100GB」である。したがって、超過量の最大値「Ｘ値」は、値「10GB（＝110-100）」となる。
【０１１０】
Ｓ４２：計画作成モジュール１３２は、マイグレーション対象リスト１２３に情報が存在するか否かを判定する。
【０１１１】
Ｓ４３：マイグレーション対象リスト１２３に情報が存在しない場合（Ｓ４２のＮｏ）、マイグレーションプランを未だ作成していない場合を示す。したがって、計画作成モジュール１３２は、１つ目のマイグレーションプランを生成する。以下、マイグレーションを移行ともいう。具体的に、計画作成モジュール１３２は、マイグレーションプランとして、移行対象のＶＭゲスト（以下、移行ＶＭゲストと称する）と、当該ＶＭゲストを移行する先のＶＭホスト（以下、移行先ＶＭホストと称する）を特定する。
【０１１２】
具体的に、計画作成モジュール１３２は、工程Ｓ４１で特定したＶＭホストが実行する各ＶＭゲストを、移行ＶＭゲスト候補とする。そして、計画作成モジュール１３２は、移行ＶＭゲスト候補のいずれかを別のＶＭホストに移行した場合に、ＶＭホストのリソース使用量の時間帯ごとの最大合計値が最小となる、移行ＶＭゲスト候補と別のＶＭホストとの組み合わせを特定する。
【０１１３】
つまり、計画作成モジュール１３２は、組み合わせパターン（＝移行ＶＭゲスト候補数×他のＶＭホスト数）のうち、最大合計値が最小となる移行ＶＭゲスト候補と移行先ＶＭホストの組み合わせを特定する。このとき、計画作成モジュール１３２は、特定した移行ＶＭゲストを移行先ＶＭホストに移行すると仮定した場合の、全てのＶＭホストの時間帯ごとのリソース使用量の合計値に基づいて、超過量の最大値「Ｙ値」を取得する。
【０１１４】
図１６の例では、計画作成モジュール１３２は、移行ＶＭゲスト候補ａ１〜ａ４それぞれを各ＶＭホストｈＢ〜ｈＤに移行した場合の、ＶＭホスト単位のメモリ使用量の時間帯ごとの合計値を算出する。つまり、計画作成モジュール１３２は、「１２（＝４×３）」パターンの、時間帯ごとのメモリ使用量を算出する。
【０１１５】
図１７は、ＶＭゲストａ４をＶＭホストｈＢ〜ｈＤに移行した場合の、各ＶＭホスト単位のメモリ使用量の時間帯ごとの合計値を示す図である。即ち、図１７は、１２パターンのうち３パターンのメモリ使用量を示す。図１７に示すＶＭホストｈＡのメモリ使用量は、図１６に示すＶＭホストｈＡのメモリ使用量と同じである。
【０１１６】
ＶＭホストｈＢのメモリ使用量は、ＶＭゲストｂ１〜ｂ４のメモリ使用量の合計値と、ＶＭゲストａ４のメモリ使用量とを、時間帯ごとに加算した値である。ＶＭホストｈＣ、ｈＤのメモリ使用量についても同様である。図示していないが、他の移行ＶＭゲスト候補ａ１〜ａ３をＶＭホストｈＢ〜ｈＤに移行した場合（９パターン）の、ＶＭホスト単位のメモリ使用量についても算出する。
【０１１７】
そして、計画作成モジュール１３２は、１２パターンのうち、最大合計値が最小となる移行ＶＭゲスト候補と移行先ＶＭホストとの組み合わせを特定する。図１７の例によると、ＶＭホストｈＡの最大合計値は値「110GB」Ｍａ-２、ＶＭホストｈＢの最大合計値は値「110GB」Ｍｂ-２である。また、ＶＭホストｈＣの最大合計値は値「120GB」Ｍｃ-２、ＶＭホストｈＤの最大合計値は値「105GB」Ｍｄ-２である。
【０１１８】
本実施の形態によると、１２パターンの最大合計値（図１７のＭａ-２〜Ｍｄ-２を含む）のうち、最大合計値「105GB」Ｍｄ-２が最も小さい。したがって、計画作成モジュール１３２は、移行ＶＭゲストａ４とＶＭホストｈＤとの組み合わせを特定する（Ｓ４３）。また、図示していないが、ＶＭゲストａ４をＶＭホストｈＤに移行したと仮定した場合の、最大の超過量「Ｙ値」は「5GB（＝105-100）」である。
【０１１９】
このように、計画作成モジュール１３２は、第１、第２の仮想マシンのいずれかを各別の物理マシンに移行した場合の、別の物理マシンに配備される仮想マシン群のリソース使用量の所定期間ごとの合計の最大値を取得する。そして、計画作成モジュール１３２は、最大値が最小となる、第１、第２の仮想マシンのいずれかと別の物理マシンの組み合わせを、第１の移行仮想マシン及び第１の移行先物理マシンとして特定する。
【０１２０】
つまり、計画作成モジュール１３２は、スケールアップ対象のＶＭホストが実行するＶＭゲストのいずれかを他のＶＭゲストに移行した場合に、リソース使用量の時間帯ごとの最大合計値が低減するＶＭゲストとＶＭホストを特定する。これにより、計画作成モジュール１３２は、移行元、移行先ＶＭホストのリソース使用量の時間帯ごとの最大合計値がより小さくなるマイグレーションプランを生成できる。
【０１２１】
これにより、移行元、移行先ＶＭホストそれぞれで、複数の時間帯のリソース使用量の偏りが平滑化される。平滑化されることにより、リソースを効率的に使用可能になる。したがって、マイグレーション回数の低減や、ＶＭゲストの追加配備等が可能になる。
【０１２２】
Ｓ４４：計画作成モジュール１３２は、超過量「Ｘ」が超過量「Ｙ」より大きいか否かを判定する。つまり、計画作成モジュール１３２は、マイグレーションプランを適用したことで、超過量が改善されているか否かを判定する。
【０１２３】
Ｓ４５：超過量「Ｘ」が超過量「Ｙ」以下である場合（Ｓ４４のＮｏ）、マイグレーションプランを実行しても超過量が減少（改善）しないことを示す。これは、物理マシン３００のリソースが不足している場合を示す。したがって、計画作成モジュール１３２は、結果情報「リソース不足」を出力し、処理を終了する。
【０１２４】
Ｓ４６：一方、超過量「Ｘ」が超過量「Ｙ」を超える場合（Ｓ４４のＹｅｓ）、マイグレーションプランを実行することで超過量が減少（改善）することを示す。したがって、計画作成モジュール１３２は、工程Ｓ４３で特定したマイグレーションプランを、マイグレーション対象リスト１２３に格納する。
【０１２５】
図１７の例によると、ＶＭゲストａ４をＶＭホストｈＤにマイグレーションした場合のＹ値「5GB」はＸ値「10GB」より小さい（Ｓ４４のＹｅｓ）。したがって、計画作成モジュール１３２は、ＶＭゲストａ４とＶＭホストｈＤの組み合わせを、マイグレーション対象リスト１２３に記憶する。
【０１２６】
Ｓ４７：計画作成モジュール１３２は、超過量「Ｙ」が値「０」であるか否かを判定する。
【０１２７】
Ｓ４８：超過量「Ｙ」が値「０」である場合（Ｓ４７のＹｅｓ）、マイグレーションプランの実行により、各ＶＭホストのリソース不足が解消される場合を示す。したがって、計画作成モジュール１３２は、マイグレーション対象リスト１２３、及び、マイグレーション開始時間を出力し、処理を終了する。マイグレーション開始時間については後述する。
【０１２８】
（２つ目以降のマイグレーションプラン）
一方、超過量「Ｙ」が値「０」より大きい場合（Ｓ４７のＮｏ）、計画作成モジュール１３２は、工程Ｓ４１に遷移し、２つ目のマイグレーションプランの生成を開始する。即ち、計画作成モジュール１３２は、１つ目のマイグレーションプランを実行した場合の、リソース使用量の時間帯ごとの超過量が最大となるＶＭホストを特定する（Ｓ４１）。
【０１２９】
図１８は、１つの目のマイグレーションを実行した場合の、各ＶＭホストｈＡ〜ｈＤのＶＭゲスト群のメモリ使用量の時間帯ごとの合計値を示す図である。
【０１３０】
図１８の例によると、ＶＭホストｈＡの最大合計値は値「95GB」Ｍａ-３、ＶＭホストｈＢの最大合計値は値「95GB」Ｍｂ-３である。また、ＶＭホストｈＣの最大合計値は値「90GB」Ｍｃ-３、ＶＭホストｈＤの最大合計値は値「105GB」Ｍｄ-３である。したがって、計画作成モジュール１３２は、ＶＭホストｈＤを特定するとともに、超過量の最大値「Ｙ値」として値「5GB（＝105-100）」を取得する。
【０１３１】
２つ目のマイグレーションプランの生成時、１つ目のマイグレーションプランをマイグレーション対象リスト１２３に格納済みである（Ｓ４２のＹｅｓ）。したがって、計画作成モジュール１３２は、工程Ｓ４９に遷移する。
【０１３２】
Ｓ４９：マイグレーション対象リスト１２３に情報が存在する場合（Ｓ４２のＹｅｓ）、計画作成モジュール１３２は、１つ目の移行ＶＭゲストとラベルグループが同一のＶＭゲストを、移行ＶＭゲスト候補とする。具体的に、計画作成モジュール１３２は、ラベルテーブル１２２を参照し、１つ目の移行ＶＭゲストａ４のグループを取得する。そして、計画作成モジュール１３２は、工程Ｓ４１で特定したＶＭホストｈＤが実行するＶＭゲストｄ１〜ｄ４のうち、移行ＶＭゲストａ１とラベルが同一のＶＭゲストを抽出する。
【０１３３】
（ラベルテーブル１２２）
図１９は、ラベルテーブル１２２の一例を説明する図である。図１９に示すラベルテーブル１２２によると、ＶＭゲストａ１は「グループＡ」に、ＶＭゲストａ２、ａ４は「グループＢ」に分類される。また、ＶＭゲストａ３は、「グループＣ」に分類される。他のＶＭゲストも同様に、予め、グループに分類される。
【０１３４】
本実施の形態では、「グループＡ」は、日中の時間帯にリソース使用量が高くなるＶＭゲストを示す。また、「グループＢ」は、夜間の時間帯にリソース使用量が高くなるＶＭゲストを、「グループＣ」は、１日を通してリソース使用量の変動が小さいＶＭゲストを示す。
【０１３５】
計画作成モジュール１３２は、予め、リソース使用量に基づいて各ＶＭゲストをグループに分類する。つまり、計画作成モジュール１３２は、リソース使用量の変化パターンが同一のＶＭゲストを同一のグループに分類する。
【０１３６】
具体的に、計画作成モジュール１３２は、ＶＭゲストごとに、昼間の時間帯（例えば、AM6:00〜PM6:00）のリソース使用量の平均値「ｘ」、及び、夜間の時間帯（例えば、PM6:00〜AM6:00）のリソース使用量の平均値「ｙ」を算出する。また、計画作成モジュール１３２は、１日のリソース使用量の平均値「ｚ」を算出する。
【０１３７】
ｘ−ｙ＞ｚ  …式１
ｙ−ｘ＞ｚ  …式２
そして、計画作成モジュール１３２は、各ＶＭゲストの値「ｘ」〜「ｚ」にしたがって、当該ＶＭゲストが式１、式２のいずれに該当するかを判定する。計画作成モジュール１３２は、式１に該当するＶＭゲストを「グループＡ」に、式２に該当するＶＭゲストを「グループＢ」に分類する。そして、計画作成モジュール１３２は、式１、式２のいずれにも該当しないＶＭゲストを、「グループＣ」に分類する。
【０１３８】
図１９の例によると、移行ＶＭゲストａ４は「グループＢ」である。したがって、計画作成モジュール１３２は、ＶＭゲストｄ１〜ｄ４のうち、「グループＢ」のＶＭゲストｄ１、ｄ２を抽出する。このように、計画作成モジュール１３２は、第１の移行仮想マシンに加えて第２の移行仮想マシンを特定する場合、所定期間と同じまたは長い第２の期間ごとのリソース使用量に基づいて分類される種別が第１の移行仮想マシンと同一の候補仮想マシンを選択する。
【０１３９】
マイグレーションを実行する間、ＶＭゲストの処理が中断されることにより、パフォーマンスが低下する。したがって、リソース使用量の変化パターンが同一の複数のＶＭゲストを移行対象として特定し、両ＶＭゲストのリソース使用量が低くなる期間にマイグレーションを計画することで、マイグレーションに伴うパフォーマンスの低下を抑制可能になる。
【０１４０】
また、計画作成モジュール１３２は、リソース使用量の変化パターンが類似するＶＭゲストを移行候補とすることができる。これにより、リソース使用量の超過を解消可能な移行ＶＭゲストを効率的に特定することが可能になる。
【０１４１】
Ｓ５０：計画作成モジュール１３２は、２つ目の移行ＶＭゲストと、当該移行ＶＭゲストのマイグレーション先の第２の移行ＶＭホストを特定する。計画作成モジュール１３２は、ＶＭゲストｄ１、ｄ２のいずれかをＶＭホストｈＡ〜ｈＣに移行した場合の、各ＶＭホストｈＡ〜ｈＣのＶＭゲスト群のメモリ使用量の時間帯ごとの合計値を算出する。
【０１４２】
つまり、計画作成モジュール１３２は、「６（＝２×３）」パターンのメモリ使用量を算出する。本実施の形態では、６パターンのうち、移行ＶＭゲストｄ１と移行先ＶＭホストｈＣとの組み合わせが特定される。また、計画作成モジュール１３２は、ＶＭゲストｄ１をＶＭホストｈＣにマイグレーションしたと仮定した場合の、各ＶＭホストの最大合計値のうち最大値「95GB」を取得する。値「95GB」は許容リソース量「100GB」より小さいため、「Ｙ値」は値「0GB」となる。
【０１４３】
このように、計画作成モジュール１３２は、第１の移行仮想マシンを移行した場合の、各物理マシンに配備される仮想マシン群のリソース使用量の所定期間ごとの合計値の所定の閾値からの超過が、複数の物理マシン間で最大となる移行元物理マシンを特定する。
【０１４４】
また、計画作成モジュール１３２は、移行元物理マシンに配備された仮想マシンのうち、選択した候補仮想マシンのいずれかを各別の物理マシンに移行した場合の、各別の物理マシンに配備される仮想マシン群のリソース使用量の所定期間ごとの合計を算出する。そして、計画作成モジュール１３２は、合計の最大値が最小となる、仮想マシンと別の物理マシンの組み合わせを、第２の移行仮想マシン及び第２の移行先物理マシンとして特定する。
【０１４５】
このように、リソース使用量の超過量が最大となるＶＭゲストを選択し、ＶＭホストが実行するＶＭゲストのいずれかを移行する。このとき、計画作成モジュール１３２は、各ＶＭホストのリソース使用量の最大値が抑制される移行ＶＭゲスト及び移行先ＶＭホストを特定する。
【０１４６】
これにより、複数のＶＭホストの間で、リソース使用量の高い時間帯が分散される。つまり、同一の時間帯にリソース使用量が高くなるＶＭゲストを、複数のＶＭゲストの間に分散して配備することが可能になる。言い換えると、同一のＶＭホストのＶＭゲスト間で、時間帯に応じたリソース使用量の偏りが補完されるようなマイグレーションが行われる。
【０１４７】
これにより、各ＶＭホストにおけるリソース使用量の時間帯に応じた偏りが平滑化され、リソースをより効率的に使用可能になる。したがって、各ＶＭホストでスケールアップ可能なケースが増加するとともに、各ＶＭホストに配備可能なＶＭゲスト数が増加する。このように、計画作成モジュール１３２は、各物理マシン３００のリソースを効率的に使用した、ＶＭゲストの適切な配備を実現できる。
【０１４８】
Ｓ５１：計画作成モジュール１３２は、２回目の工程Ｓ４１で算出した超過量「Ｘ」が、工程Ｓ５０で算出した超過量「Ｙ」より大きいか否かを判定する。Ｘ値「5GB」はＹ値「0GB」を超えるため（Ｓ５１のＹｅｓ）、計画作成モジュール１３２は、移行ＶＭゲストｄ１とＶＭホストｈＣの組み合わせを、マイグレーション対象リスト１２３に格納する（Ｓ４６）。また、Ｙ値「0GB」が値「０」である（Ｓ４７のＹｅｓ）ため、マイグレーション対象リスト１２３が出力される（Ｓ４８）。
【０１４９】
図２０は、１つ目、２つ目のマグレーションプランを実行した場合の、各ＶＭホストｈＡ〜ｈＤのメモリ使用量の時間帯ごとの合計値の一例を示す図である。図２０に示すように、各ＶＭホストｈＡ〜ｈＤの時間帯ごとのメモリ使用量は、全て許容リソース量「100GB」以下の値である。これは、マイグレーションプランの実行により、リソース不足が解消されることを示す。
【０１５０】
（マイグレーション対象リスト１２３）
図２１は、マイグレーション対象リスト１２３の一例を示す図である。図２１に示すマイグレーション対象リスト１２３は、２つのマイグレーションプラン「移行ＶＭゲストａ１と移行先ＶＭホストｈＤ」、「移行ＶＭゲストｄ１と移行先ＶＭホストｈＣ」を有する。
【０１５１】
なお、図２１の例では、１つ目の移行先ＶＭホストと２つ目の移行元ＶＭホストが同一である場合を例示するが、この例に限定されるものではない。両者は異なっていてもよい。また、マイグレーション対象リスト１２３は、単数のマイグレーションプランを有してもよいし、３つ以上のマイグレーションプランを有していてもよい。
【０１５２】
図２２は、移行ＶＭゲストａ４、ｄ１の時間帯ごとのメモリ使用量の一例を示す図である。前述したとおり、移行ＶＭゲストａ４、ｄ１は同一グループに属するため、リソース使用量の変動特性が類似する。計画作成モジュール１３２は、移行ＶＭゲストａ４、ｄ１のリソース使用量が小さくなる時間帯「9時〜12時」ｔｍに、マイグレーション開始時間をスケジュールする。
【０１５３】
なお、複数の移行ＶＭゲストの間でリソース使用量が低下する時間帯が一致しない場合、計画作成モジュール１３２は、各移行ＶＭゲストのリソース使用量の合計が最小となる時間帯にマイグレーション開始時間をスケジュールしてもよい。
【０１５４】
このように、計画作成モジュール１３２は、第１、第２の移行仮想マシンのリソース使用量が所定値以下の初知恵期間に、第１、第２の移行仮想マシンのマイグレーションをスケジュールする。これにより、リソース使用量が低い時間帯にマイグレーションの実行をスケジュールすることが可能になり、マイグレーションによる業務への影響を抑制することが可能になる。
【０１５５】
（移行ＶＭゲスト候補の拡張）
なお、超過量「Ｘ」が超過量「Ｙ」以下である場合（Ｓ５１のＮｏ）、２つ目のマイグレーションプランを実行したとしても超過量が減少しないことを示す。そこで、計画作成モジュール１３２は、移行ＶＭゲスト候補を、グループが同一のＶＭゲストｄ１、ｄ２から、ＶＭゲストｄ１〜ｄ４に拡張する（Ｓ４３）。
【０１５６】
そして、計画作成モジュール１３２は、工程Ｓ４３と同様に、ＶＭゲストｄ１〜ｄ４のいずれかをＶＭホストｈＡ〜ｈＣに移行した場合に、ＶＭホストのリソース使用量の時間帯ごとの最大合計値が最小となる移行ＶＭゲストと移行先ＶＭホストを特定する。また、計画作成モジュール１３２は、最大の超過量「Ｙ」を取得する。
【０１５７】
そして、超過量「Ｘ」が超過量「Ｙ」を超える場合（Ｓ４４のＹｅｓ）、計画作成モジュール１３２は、２つ目のマイグレーションプランをマイグレーション対象リスト１２３に格納する。超過量「Ｙ」が値「０」の場合（Ｓ４７のＹｅｓ）の処理は前述したとおりである。一方、超過量「Ｙ」が値「０」より大きい場合（Ｓ４７のＮｏ）、計画作成モジュール１３２は、工程Ｓ４１に遷移して、３つ目のマイグレーションプランを生成する。
【０１５８】
このように、計画作成モジュール１３２は、第１の移行仮想マシンを移行した場合の、第１の物理マシン、及び、第１の移行先物理マシンに配備される仮想マシン群それぞれのリソース使用量の所定期間ごとの合計値を取得する。そして、計画作成モジュール１３２は、いずれかの所定期間の合計値が所定の閾値を超える場合に、第２の移行仮想マシンを特定する。これにより、計画作成モジュール１３２は、スケールアップ後の各ＶＭホストのリソース使用量が許容リソース量に収まるようなマイグレーションプランを作成できる。
【０１５９】
このように、計画作成モジュール１３２は、第１、第２の移行仮想マシンを移行した場合の各物理マシンに配備される仮想マシン群のリソース使用量の所定期間ごとの合計値が所定の閾値に収まるまで、第２の移行仮想マシンの特定を繰り返す。これにより、複数の移行仮想マシンが特定される。
【０１６０】
このように、計画作成モジュール１３２は、ＶＭホストとＶＭゲスト間の構成を総当たりで配備して最適化するのではなく、同一時間帯にリソース使用量が高くなるＶＭゲストを、複数のＶＭホストの間で分散するように配備する。そして、計画作成モジュール１３２は、各ＶＭホストのリソース使用量の時間帯ごとの合計が許容リソース量に収まるまで、特定処理を繰り返す。
【０１６１】
これにより、効率的に、各ＶＭホストのリソース使用量の時間帯ごとの合計値を平滑化することが可能になる。つまり、少ないマイグレーション回数で、各ＶＭホストのリソース使用量の合計値を許容リソース量に収めることが可能になる。これにより、業務への影響を低減、及び、ＶＭゲストの最適な配備を実現可能になる。
【０１６２】
図２３は、マイグレーション前後の１つのＶＭホストのリソース使用量を示す図である。図２３のグラフｇａは、あるＶＭホストのマイグレーション前のリソース使用量の遷移を示す。一方、図２３のグラフｇｂは、同ＶＭホストのマイグレーション後のリソース使用量の遷移を示す。
【０１６３】
図２３のグラフｇａ、ｇｂに示す点線は、ＶＭホストが実行する各ＶＭゲストのリソース使用量をそれぞれ示し、実線はＶＭゲスト群のリソース使用量の総量である。本実施の形態によると、時間帯に応じたリソース使用量の偏りをＶＭゲスト間で補完するようなマイグレーションが行われる。したがって、グラフｇｂに示すように、グラフｇａに対して、ＶＭゲスト群のリソース使用量の時間帯に応じた合計値の変移が緩やかになる。
【０１６４】
以上の実施の形態をまとめると、次の付記のとおりである。
【０１６５】
（付記１）
複数の物理マシンに１以上の仮想マシンが配備されたシステムで、第１の期間を複数に分割した所定期間ごとに、前記１以上の仮想マシンそれぞれのリソース使用量を記憶し、
第１の仮想マシンのリソースに関する変更情報を取得したときに、前記第１の仮想マシンを配備する第１の物理マシンに配備される、前記第１の仮想マシン以外の第２の仮想マシンの前記所定期間ごとのリソース使用量と、前記変更情報に基づく前記第１の仮想マシンの前記所定期間ごとのリソース使用量の予測値とに基づいて、前記第１、第２の仮想マシンのリソース使用量の前記所定期間ごとの合計値が所定の閾値を超えるか否かを判定し、
いずれかの前記所定期間のリソース使用量の合計値が前記所定の閾値を超える場合に、マイグレーションの実行を決定する、
処理を実行させる仮想マシン管理プログラム。
【０１６６】
（付記２）
付記１において、
前記判定は、前記記憶した前記第１の仮想マシンの前記所定期間ごとのリソース使用量と、前記変更情報が含む前記リソースの変更量に基づいて、前記変更情報を適用した場合の、前記第１の仮想マシンの前記所定期間ごとの前記リソース使用量の予測値を算出する、
仮想マシン管理プログラム。
【０１６７】
（付記３）
付記１において、
前記判定は、前記リソース使用量が所定値以下の所定期間の前記リソース使用量の予測値を、前記記憶した前記リソース使用量と同一の値として算出する、
仮想マシン管理プログラム。
【０１６８】
（付記４）
付記１において、
前記リソース使用量は、各物理マシンが有するメモリまたはプロセッサの使用量を含む、
仮想マシン管理プログラム。
【０１６９】
（付記５）
付記１において、
前記所定の閾値は、各物理マシンに配備される仮想マシン群に割り当てるリソース使用量の最大値である、
仮想マシン管理プログラム。
【０１７０】
（付記６）
付記１において、さらに、
前記第１、第２の仮想マシンのいずれかを各別の物理マシンにマイグレーションした場合の、前記各別の物理マシンに配備される仮想マシン群のリソース使用量の前記所定期間ごとの合計値の最大値が最小となる、前記第１、第２の仮想マシンのいずれかと別の物理マシンの組み合わせを、第１の移行仮想マシン及び第１の移行先物理マシンとして特定する、
仮想マシン管理プログラム。
【０１７１】
（付記７）
付記６において、
前記第１の移行仮想マシンに加えて第２の移行仮想マシンを特定する場合、前記所定期間と同じまたは長い第２の期間ごとのリソース使用量に基づいて分類される種別が前記第１の移行仮想マシンと同一の候補仮想マシンを選択する、
仮想マシン管理プログラム。
【０１７２】
（付記８）
付記７において、さらに、
前記第１、第２の移行仮想マシンの前記リソース使用量が所定値以下の所定期間に、前記第１、第２の移行仮想マシンのマイグレーションをスケジュールする、
仮想マシン管理プログラム。
【０１７３】
（付記９）
付記７において、
前記第２の移行仮想マシンの前記特定は、
前記第１の移行仮想マシンをマイグレーションした場合の、各物理マシンに配備される仮想マシン群のリソース使用量の前記所定期間ごとの合計値の前記所定の閾値からの超過が、前記複数の物理マシン間で最大となる移行元物理マシンを特定し、
前記移行元物理マシンに配備された仮想マシンのうち、前記選択した前記候補仮想マシンのいずれかを各別の物理マシンにマイグレーションした場合の、前記各別の物理マシンに配備される仮想マシン群のリソース使用量の前記所定期間ごとの合計値の最大値が最小となる、候補仮想マシンと別の物理マシンの組み合わせを、前記第２の移行仮想マシン及び第２の移行先物理マシンとして特定する、
仮想マシン管理プログラム。
【０１７４】
（付記１０）
付記９において、
前記第１、第２の移行仮想マシンをマイグレーションした場合の各物理マシンに配備される仮想マシン群のリソース使用量の所定期間ごとの合計値が前記所定の閾値に収まるまで、前記第２の移行仮想マシンの前記特定を繰り返し複数の第２の移行仮想マシンを特定する、
仮想マシン管理プログラム。
【０１７５】
（付記１１）
付記７において、
前記第１の移行仮想マシンを移行した場合の、前記第１の物理マシン、及び、前記第１の移行先物理マシンに配備される仮想マシン群それぞれのリソース使用量の所定期間ごとの合計値が前記所定の閾値を超える場合に、前記第２の移行仮想マシンを前記特定する、
仮想マシン管理プログラム。
【０１７６】
（付記１２）
複数の物理マシンに１以上の仮想マシンが配備されたシステムで、第１の期間を複数に分割した所定期間ごとに、前記１以上の仮想マシンそれぞれのリソース使用量を記憶し、
第１の仮想マシンのリソースに関する変更情報を取得したときに、前記第１の仮想マシンを配備する第１の物理マシンに配備される、前記第１の仮想マシン以外の第２の仮想マシンの前記所定期間ごとのリソース使用量と、前記変更情報に基づく前記第１の仮想マシンの前記所定期間ごとのリソース使用量の予測値とに基づいて、前記第１、第２の仮想マシンのリソース使用量の前記所定期間ごとの合計値が所定の閾値を超えるか否かを判定し、
いずれかの前記所定期間のリソース使用量の合計値が前記所定の閾値を超える場合に、マイグレーションの実行を決定する、
仮想マシン管理方法。
【０１７７】
（付記１３）
複数の物理マシンに１以上の仮想マシンが配備されたシステムで、第１の期間を複数に分割した所定期間ごとに、前記１以上の仮想マシンそれぞれのリソース使用量を記憶する記憶部と、
第１の仮想マシンのリソースに関する変更情報を取得したときに、前記第１の仮想マシンを配備する第１の物理マシンに配備される、前記第１の仮想マシン以外の第２の仮想マシンの前記所定期間ごとのリソース使用量と、前記変更情報に基づく前記第１の仮想マシンの前記所定期間ごとのリソース使用量の予測値とに基づいて、前記第１、第２の仮想マシンのリソース使用量の前記所定期間ごとの合計値が所定の閾値を超えるか否かを判定し、いずれかの前記所定期間のリソース使用量の合計値が前記所定の閾値を超える場合に、マイグレーションの実行を決定する処理部と、を有する
仮想マシン管理装置。
【符号の説明】
【０１７８】
１００：仮想マシン管理装置（管理装置）、１０１：ＣＰＵ、１０２：メモリ、１０３：通信インタフェース部、１０６：バス、１１０：メインメモリ、１１１：補助記憶装置、１２０：仮想マシン管理プログラム、１２１：稼働履歴情報テーブル、１２２：ラベルテーブル、１２３：マイグレーション対象リスト、２００：クライアント装置、３００：物理マシン
【図１】
2018028746.tif 000003
【図２】
2018028746.tif 000004
【図３】
2018028746.tif 000005
【図４】
2018028746.tif 000006
【図５】
2018028746.tif 000007
【図６】
2018028746.tif 000008
【図７】
2018028746.tif 000009
【図８】
2018028746.tif 000010
【図９】
2018028746.tif 000011
【図１０】
2018028746.tif 000012
【図１１】
2018028746.tif 000013
【図１２】
2018028746.tif 000014
【図１３】
2018028746.tif 000015
【図１４】
2018028746.tif 000016
【図１５】
2018028746.tif 000017
【図１６】
2018028746.tif 000018
【図１７】
2018028746.tif 000019
【図１８】
2018028746.tif 000020
【図１９】
2018028746.tif 000021
【図２０】
2018028746.tif 000022
【図２１】
2018028746.tif 000023
【図２２】
2018028746.tif 000024
【図２３】
2018028746.tif 000025