(57)【要約】【課題】物理サーバが計算機リソース要求に応えられない過負荷状態に陥ることを防止する。【解決手段】物理サーバ上で稼働する仮想インスタンスの所定時刻から所定時間前までのリソース使用量を基に、仮想インスタンスの所定時刻から所定時間後までの各時刻における第１のリソース使用量を予測し、仮想インスタンスの所定時刻におけるリソース使用量およびマイグレーションの状況を基に、所定時刻から所定時間後までの各時刻における、仮想インスタンスのマイグレーションによって生じる第２のリソース使用量と、該マイグレーションが行われる残り時間と、該マイグレーションによって仮想インスタンスが停止する残り停止時間と、を予測し、第１のリソース使用量と、第２のリソース使用量、残り時間、および残り停止時間とを基に、所定時刻における仮想インスタンスのマイグレーション先としての適性を評価する指標を物理サーバごとに算出する。【選択図】図３
2017091001.tif 000002
【特許請求の範囲】
【請求項１】
物理サーバ上で稼働する仮想インスタンスの所定時刻から所定時間前までのリソース使用量を基に、前記仮想インスタンスの前記所定時刻から所定時間後までの各時刻における第１のリソース使用量を予測する使用量予測部と、
前記仮想インスタンスの前記所定時刻におけるリソース使用量およびマイグレーションの状況を基に、前記所定時刻から前記所定時間後までの各時刻における、前記仮想インスタンスのマイグレーションによって生じる第２のリソース使用量と、該マイグレーションが行われる残り時間と、該マイグレーションによって前記仮想インスタンスが停止する残り停止時間と、を予測する影響予測部と、
前記使用量予測部によって予測された前記第１のリソース使用量と、前記影響予測部によって予測された前記第２のリソース使用量、前記残り時間、および前記残り停止時間とを基に、前記所定時刻における仮想インスタンスのマイグレーション先としての適性を評価する指標を前記物理サーバごとに算出する算出部と、
を有することを特徴とする仮想インスタンス配置位置決定装置。
【請求項２】
前記算出部によって算出された前記指標が最大となる物理サーバを、仮想インスタンスのマイグレーション先として決定する決定部をさらに有することを特徴とする請求項１に記載の仮想インスタンス配置位置決定装置。
【請求項３】
前記算出部は、前記第１のリソース使用量および前記第２のリソース使用量が小さくなるにつれて大きくなる第１の値と、前記残り停止時間に基づく仮想インスタンスの停止により要求に答えられなかったリソース使用量が小さくなるにつれて大きくなる第２の値とを算出し、前記第１の値および前記第２の値の和に基づいて前記指標を算出することを特徴とする請求項１または２に記載の仮想インスタンス配置位置決定装置。
【請求項４】
前記算出部は、前記仮想インスタンスが配置された前記物理サーバの数が小さくなるにつれて大きくなる第３の値をさらに算出し、
前記第１の値および前記第２の値の和に第１の係数を乗じた値と、前記第３の値に第２の係数を乗じた値と、の和に基づいて前記指標を算出し、
前記第１の係数と前記第２の係数との和は、一定の定数であることを特徴とする請求項３に記載の仮想インスタンス配置位置決定装置。
【請求項５】
物理サーバ上で稼働する仮想インスタンスの所定時刻から所定時間前までのリソース使用量を基に、前記仮想インスタンスの前記所定時刻から所定時間後までの各時刻における第１のリソース使用量を予測する使用量予測工程と、
前記仮想インスタンスの前記所定時刻におけるリソース使用量およびマイグレーションの状況を基に、前記所定時刻から前記所定時間後までの各時刻における、前記仮想インスタンスのマイグレーションによって生じる第２のリソース使用量と、該マイグレーションが行われる残り時間と、該マイグレーションによって前記仮想インスタンスが停止する残り停止時間と、を予測する影響予測工程と、
前記使用量予測工程によって予測された前記第１のリソース使用量と、前記影響予測工程によって予測された前記第２のリソース使用量、前記残り時間、および前記残り停止時間とを基に、前記所定時刻における仮想インスタンスのマイグレーション先としての適性を評価する指標を前記物理サーバごとに算出する算出工程と、
を含んだことを特徴とする仮想インスタンス配置位置決定方法。
【請求項６】
コンピュータを請求項１から４のいずれか１項に記載の仮想インスタンス配置位置決定装置として機能させるための仮想インスタンス配置位置決定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想インスタンス配置位置決定装置、仮想インスタンス配置位置決定方法および仮想インスタンス配置位置決定プログラムに関する。
【背景技術】
【０００２】
従来、仮想マシンやＬｉｎｕｘ（登録商標）コンテナ等の仮想インスタンスを提供する場合には、仮想インスタンスからの計算機リソース要求を満たしつつ、より少ない物理サーバにより多くの仮想インスタンスを配置し機器集約率を向上させることが求められている。機器集約率向上のための技術として、物理サーバの計算機リソース使用状況に応じて仮想インスタンスを再配置する技術が知られている。
【０００３】
仮想インスタンスを再配置する技術の一例として、ＶＭｗａｒｅ  ＤＲＳ／ＤＰＭが知られている（例えば非特許文献１）。ＶＭｗａｒｅ  ＤＲＳ／ＤＰＭは、ライブマイグレーションによる影響を考慮しつつ、ある時刻における物理サーバの計算機リソース使用量に基づいて、物理サーバの負荷を平準化させるように仮想インスタンスの配置を決定する技術である。
【０００４】
その他にも、将来時刻における物理サーバの計算機リソース使用量を予測し、予測した使用量を考慮して物理サーバ間の負荷の偏りを抑えるように仮想インスタンスの配置を決定する技術が知られている（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−１５２９８４号公報
【非特許文献】
【０００６】
【非特許文献１】Gulati,  A  et  al,  “VMware  distributed  resource  management  design,  implementation,  and  lessons  learned.”  VMware  Tech.  J.  1(1),  45-64  (2012)
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の仮想インスタンスを再配置する技術には、物理サーバが計算機リソース要求に応えられない過負荷状態に陥る可能性があるという問題があった。
【０００８】
例えばＶＭｗａｒｅ  ＤＲＳ／ＤＰＭは、仮想インスタンスの計算機リソース使用量の将来の変動を考慮していない。そのため、再配置後に仮想インスタンスの計算機リソース使用量が大きくなる場合には、物理サーバが計算機リソース要求に応えられない過負荷状態に陥る可能性がある。
【０００９】
また、例えば特許文献１に記載された方法は、ライブマイグレーション処理が消費する物理サーバの計算機リソースの消費量や、ライブマイグレーション処理に伴う仮想インスタンスの停止時間といった影響を考慮していない。そのため、ライブマイグレーションの影響で、物理サーバが計算機リソース要求に応えられない過負荷状態に陥る可能性がある。
【課題を解決するための手段】
【００１０】
本発明の仮想インスタンス配置位置決定装置は、物理サーバ上で稼働する仮想インスタンスの所定時刻から所定時間前までのリソース使用量を基に、前記仮想インスタンスの前記所定時刻から所定時間後までの各時刻における第１のリソース使用量を予測する使用量予測部と、前記仮想インスタンスの前記所定時刻におけるリソース使用量およびマイグレーションの状況を基に、前記所定時刻から前記所定時間後までの各時刻における、前記仮想インスタンスのマイグレーションによって生じる第２のリソース使用量と、該マイグレーションが行われる残り時間と、該マイグレーションによって前記仮想インスタンスが停止する残り停止時間と、を予測する影響予測部と、前記使用量予測部によって予測された前記第１のリソース使用量と、前記影響予測部によって予測された前記第２のリソース使用量、前記残り時間、および前記残り停止時間とを基に、前記所定時刻における仮想インスタンスのマイグレーション先としての適性を評価する指標を前記物理サーバごとに算出する算出部と、を有することを特徴とする。
【００１１】
物理サーバ上で稼働する仮想インスタンスの所定時刻から所定時間前までのリソース使用量を基に、前記仮想インスタンスの前記所定時刻から所定時間後までの各時刻における第１のリソース使用量を予測する使用量予測工程と、前記仮想インスタンスの前記所定時刻におけるリソース使用量およびマイグレーションの状況を基に、前記所定時刻から前記所定時間後までの各時刻における、前記仮想インスタンスのマイグレーションによって生じる第２のリソース使用量と、該マイグレーションが行われる残り時間と、該マイグレーションによって前記仮想インスタンスが停止する残り停止時間と、を予測する影響予測工程と、前記使用量予測工程によって予測された前記第１のリソース使用量と、前記影響予測工程によって予測された前記第２のリソース使用量、前記残り時間、および前記残り停止時間とを基に、前記所定時刻における仮想インスタンスのマイグレーション先としての適性を評価する指標を前記物理サーバごとに算出する算出工程と、を含んだことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、物理サーバが計算機リソース要求に応えられない過負荷状態に陥ることを防止することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、第１の実施形態に係る仮想インスタンス配置システムの構成の一例を示す図である。
【図２】図２は、第１の実施形態に係る物理サーバ制御装置の構成を示すブロック図である。
【図３】図３は、第１の実施形態に係る仮想インスタンス配置位置決定装置の構成を示すブロック図である。
【図４】図４は、物理サーバ基本情報ＤＢのデータの一例を示す図である。
【図５】図５は、仮想インスタンスリソース使用量ＤＢのデータの一例を示す図である。
【図６】図６は、仮想インスタンスリソース使用量ＤＢのデータの一例を示す図である。
【図７】図７は、仮想インスタンス配置位置ＤＢのデータの一例を示す図である。
【図８】図８は、ライブマイグレーション状態ＤＢのデータの一例を示す図である。
【図９】図９は、使用量予測ＤＢのデータの一例を示す図である。
【図１０】図１０は、使用量予測ＤＢのデータの一例を示す図である。
【図１１】図１１は、影響予測ＤＢのデータの一例を示す図である。
【図１２】図１２は、指標ＤＢのデータの一例を示す図である。
【図１３】図１３は、第１の実施形態に係る仮想インスタンス配置位置決定装置の処理の一例を示すフローチャートである。
【図１４】図１４は、第１の実施形態に係る仮想インスタンス配置位置決定装置の処理の一例を示すフローチャートである。
【図１５】図１５は、プログラムが実行されることにより仮想インスタンス配置位置決定装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本願に係る仮想インスタンス配置位置決定装置、仮想インスタンス配置位置決定方法および仮想インスタンス配置位置決定プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る仮想インスタンス配置位置決定装置、仮想インスタンス配置位置決定方法および仮想インスタンス配置位置決定プログラムが限定されるものではない。
【００１５】
［第１の実施形態］
まず、第１の実施形態に係る仮想インスタンス配置システムの構成、処理の流れおよび効果を説明する。
【００１６】
［第１の実施形態の構成］
（仮想インスタンス配置システムの構成）
まず、図１を用いて、仮想インスタンス配置システムの構成について説明する。図１は、第１の実施形態に係る仮想インスタンス配置システムの構成の一例を示す図である。図１に示すように、物理サーバ上には仮想インスタンスが配置されている。このとき、仮想インスタンスは、物理サーバの計算機リソースを使用して稼働する。
【００１７】
また、１つの物理サーバ上に配置される仮想インスタンスの数は０であってもよいし、１以上であってもよい。さらに、物理サーバ間では、仮想サーバのライブマイグレーションが行われる場合がある。また、ライブマイグレーションにおいては、仮想インスタンスの稼働が所定時間停止することがある。
【００１８】
また、図１に示すように、仮想インスタンス配置システム１は、各物理サーバと接続されている。仮想インスタンス配置システム１は、物理サーバ制御装置１０、仮想インスタンス配置位置決定装置２０および時刻クロック３０を有する。
【００１９】
物理サーバ制御装置１０は、物理サーバおよび仮想インスタンスに関する情報を収集し、仮想インスタンス配置位置決定装置２０に提供する。仮想インスタンス配置位置決定装置２０は、仮想インスタンスの配置位置を決定する。また、物理サーバ制御装置１０は、物理サーバ上の仮想インスタンスを仮想インスタンス配置位置決定装置２０が決定した位置に配置する。時刻クロック３０は、所定のタイミングで物理サーバ制御装置１０および仮想インスタンス配置位置決定装置２０に処理依頼を行う。
【００２０】
（物理サーバ制御装置の構成）
次に、図２を用いて物理サーバ制御装置１０の構成について説明する。図２は、第１の実施形態に係る物理サーバ制御装置の構成を示すブロック図である。図２に示すように、物理サーバ制御装置１０は、制御部１１および記憶部１２を有する。
【００２１】
制御部１１は、仮想インスタンスリソース使用量収集部１１１、仮想インスタンス配置位置収集部１１２および仮想インスタンス配置変更部１１３を有する。また、記憶部１２は、物理サーバ基本情報ＤＢ１２１、仮想インスタンスリソース使用量ＤＢ１２２、仮想インスタンス配置位置ＤＢ１２３およびライブマイグレーション状態ＤＢ１２４を有する。
【００２２】
仮想インスタンスリソース使用量収集部１１１は、時刻クロック３０から処理依頼を受けるたびに、各仮想インスタンスのリソース使用量を収集し、収集したリソース使用量を仮想インスタンス使用量ＤＢ１２２に記憶させる。例えば、時刻クロック３０が１秒ごとに処理依頼を行う場合、仮想インスタンスリソース使用量収集部１１１は、１秒ごとに仮想インスタンス使用量ＤＢ１２２を更新することになる。
【００２３】
仮想インスタンス配置位置収集部１１２は、時刻クロック３０から処理依頼を受けるたびに、各仮想インスタンスの配置位置を収集し、収集した配置位置を仮想インスタンス配置位置ＤＢ１２３に記憶させる。例えば、時刻クロック３０が１秒ごとに処理依頼を行う場合、仮想インスタンス配置位置収集部１１２は、１秒ごとに仮想インスタンス配置位置ＤＢ１２３を更新することになる。
【００２４】
仮想インスタンス配置変更部１１３は、仮想インスタンスのマイグレーション先が決定された場合に、仮想インスタンスを当該配置先の物理サーバへ配置する。仮想インスタンス配置変更部１１３は、例えばライブマイグレーション状態ＤＢ１２４に記憶されている情報を一定時間ごとに参照して配置先の物理サーバを取得する。
【００２５】
物理サーバ基本情報ＤＢ１２１は、各物理サーバのＣＰＵスペックおよびメモリ容量を記憶する。ここで、図４を用いて物理サーバ基本情報ＤＢ１２１のデータについて説明する。図４は、物理サーバ基本情報ＤＢのデータの一例を示す図である。図４に示すように、物理サーバ基本情報ＤＢ１２１は、物理サーバのサーバＩＤごとにＣＰＵスペック（単位：ＧＨｚ）およびメモリ容量（単位ＭＢ）を記憶する。
【００２６】
物理サーバＩＤは、物理サーバを識別するためのＩＤである。以降、物理サーバＩＤがｉである物理サーバを物理サーバｋと表す。また、ＣＰＵスペックは、使用可能なＣＰＵスペックの最大値を示す。また、メモリ容量は、使用可能なメモリ容量の最大値を示す。例えば、物理サーバ１は、最大３．０ＧＨｚのＣＰＵスペックおよび最大２０００ＭＢのメモリ容量が使用可能であることを示している。なお、物理サーバ基本情報ＤＢ１２１のデータは、あらかじめ手動または自動で入力されているものとする。
【００２７】
仮想インスタンスリソース使用量ＤＢ１２２は、各仮想インスタンスの各時刻におけるリソース使用量を記憶する。ここで、図５および図６を用いて仮想インスタンスリソース使用量ＤＢ１２２のデータについて説明する。図５および図６は、仮想インスタンスリソース使用量ＤＢのデータの一例を示す図である。
【００２８】
図５に示すように、仮想インスタンスリソース使用量ＤＢ１２２は、各仮想インスタンスの各時刻におけるＣＰＵスペックの使用量を記憶する。仮想インスタンスＩＤは、仮想インスタンスを識別するＩＤである。以降、仮想インスタンスがｉである仮想インスタンスを仮想インスタンスｉと表す。例えば、仮想インスタンス１の時刻ｔにおけるＣＰＵスペックの使用量は、０．３３ＧＨｚである。
【００２９】
また、図６に示すように、仮想インスタンスリソース使用量ＤＢ１２２は、各仮想インスタンスの各時刻におけるメモリ容量を記憶する。例えば、仮想インスタンス１の時刻ｔにおけるメモリ容量の使用量は、３０ＭＢである。
【００３０】
仮想インスタンス配置位置ＤＢ１２３は、各仮想インスタンスの配置されている物理サーバを記憶する。ここで、図７を用いて仮想インスタンス配置位置ＤＢ１２３のデータについて説明する。図７は、仮想インスタンス配置位置ＤＢのデータの一例を示す図である。例えば、仮想インスタンス１は物理サーバ３に配置されている。
【００３１】
ライブマイグレーション状態ＤＢ１２４は、各仮想インスタンスのライブマイグレーションの状態を記憶する。ここで、図８を用いてライブマイグレーション状態ＤＢ１２４のデータについて説明する。図８は、ライブマイグレーション状態ＤＢのデータの一例を示す図である。マイグレーション状態は、マイグレーション中であるか否かを示している。また、マイグレーション送信元物理サーバＩＤは、現在配置されている物理サーバのＩＤを示している。また、マイグレーション宛先物理サーバＩＤは、配置先の物理サーバのＩＤを示している。
【００３２】
例えば、仮想インスタンス１は、マイグレーション状態が０であるため、ライブマイグレーション中ではない。また、仮想インスタンス２は、マイグレーション状態が１であるため、ライブマイグレーション中であり、物理サーバ２から物理サーバ１へ配置が変更されている。
【００３３】
（仮想インスタンス配置位置決定装置の構成）
次に、図３を用いて仮想インスタンス配置位置決定装置２０の構成について説明する。図３は、第１の実施形態に係る仮想インスタンス配置位置決定装置の構成を示すブロック図である。図３に示すように、仮想インスタンス配置位置決定装置２０は、制御部２１および記憶部２２を有する。
【００３４】
制御部２１は、決定部２１１、使用量予測部２１２、影響予測部２１３および算出部２１４を有する。また、記憶部２２は、使用量予測ＤＢ２２１、影響予測ＤＢ２２２および指標ＤＢ２２３を有する。
【００３５】
決定部２１１は、時刻クロック３０から処理依頼を受けるたびに、制御部２１の各部に処理を実行させ、算出部２１４によって算出された指標が最大となる物理サーバを、仮想インスタンスのマイグレーション先として決定する。また、決定部２１１は、配置先を決定した仮想インスタンスのライブマイグレーション状態ＤＢ１２４のマイグレーション状態を１に更新し、マイグレーション送信元物理サーバＩＤを当該仮想インスタンスが配置されている物理サーバの物理サーバＩＤに更新し、マイグレーション宛先物理サーバＩＤを決定した配置先の物理サーバの物理サーバＩＤに更新する。
【００３６】
使用量予測部２１２は、物理サーバ上で稼働する仮想インスタンスの所定時刻（例えば時刻ｔ）から所定時間前（例えば時刻ｔ−Ａ）までのリソース使用量を基に、仮想インスタンスの所定時刻から所定時間後（例えば時刻ｔ＋Ｂ）までの各時刻における第１のリソース使用量を予測する。また、使用量予測部２１２は、予測したリソース使用量を使用量予測ＤＢ２２１に記憶させる。
【００３７】
使用量予測ＤＢ２２１は、各仮想インスタンスの各時刻におけるリソース使用量の予測値を記憶する。ここで、図９および図１０を用いて使用量予測ＤＢ２２１のデータについて説明する。図９および図１０は、使用量予測ＤＢのデータの一例を示す図である。
【００３８】
図９に示すように、使用量予測ＤＢ２２１は、各仮想インスタンスの各時刻におけるＣＰＵスペックの使用量の予測値を記憶する。例えば、仮想インスタンスＩＤが１である仮想インスタンスの時刻ｔ＋ＢにおけるＣＰＵスペックの使用量の予測値は、０．３３ＧＨｚである。
【００３９】
また、図１０に示すように、使用量予測ＤＢ２２１は、各仮想インスタンスの各時刻におけるメモリ容量を記憶する。例えば、仮想インスタンス１の時刻ｔ＋Ｂにおけるメモリ容量の使用量の予測値は、３０ＭＢである。
【００４０】
使用量予測部２１２がリソース使用量を予測する手順について説明する。まず、予測において使用される各データの表し方について説明する。
【００４１】
仮想インスタンスの集合は式（１）のように表される。例えば、第ｉ番目の仮想インスタンスは、ＣＯｉ等と表される。
【００４２】
【数１】
2017091001.tif 000003
【００４３】
物理サーバの集合は、式（２）のように表される。例えば、第ｋ番目の物理サーバは、Ｓｋ等と表される。
【００４４】
【数２】
2017091001.tif 000004
【００４５】
各物理サーバのＣＰＵスペックの最大値は、式（３）に示す１×ｎｓベクトルによって表される。式（３）は、図４の物理サーバ基本情報ＤＢ１２１のＣＰＵスペックをベクトルで表したものである。
【００４６】
【数３】
2017091001.tif 000005
【００４７】
なお、ＭＸｃ（Ｓｋ）は、物理サーバＳｋのＣＰＵスペックの最大値を表している。また、全ての物理サーバが同一のＣＰＵスペックの最大値を持つ場合は、物理サーバＳｋのＣＰＵスペックの最大値は単にＭＸｃと表してもよい。
【００４８】
各物理サーバのメモリ容量の最大値は、式（４）に示す１×ｎｓベクトルによって表される。式（４）は、図４の物理サーバ基本情報ＤＢ１２１のメモリ容量をベクトルで表したものである。
【００４９】
【数４】
2017091001.tif 000006
【００５０】
なお、ＭＸｍ（Ｓｋ）は、物理サーバＳｋのメモリ容量の最大値を表している。また、全ての物理サーバが同一のメモリ容量の最大値を持つ場合は、物理サーバＳｋのメモリ容量の最大値は単にＭＸｍと表してもよい。
【００５１】
時刻ｔにおける各仮想インスタンスのＣＰＵスペックの消費量は、式（５）に示す１×ｎｃｏベクトルによって表される。式（５）は、図５の仮想インスタンスリソース使用量ＤＢ１２２の時刻ｔにおけるＣＰＵスペックの使用量をベクトルで表したものである。
【００５２】
【数５】
2017091001.tif 000007
【００５３】
なお、ｃｉ（ｔ）は、時刻ｔにおける仮想インスタンスｃｏｉのＣＰＵスペックの消費量を表している。
【００５４】
時刻ｔにおける各仮想インスタンスのメモリ容量の消費量は、式（６）に示す１×ｎｃｏベクトルによって表される。式（６）は、図６の仮想インスタンスリソース使用量ＤＢ１２２の時刻ｔにおけるメモリ容量の使用量をベクトルで表したものである。
【００５５】
【数６】
2017091001.tif 000008
【００５６】
なお、ｍｉ（ｔ）は、時刻ｔにおける仮想インスタンスｃｏｉのメモリ容量の消費量を表している。
【００５７】
時刻ｔにおける各仮想インスタンスが配置されている物理サーバは、式（７）に示す１×ｎｃｏベクトルによって表される。式（７）は、図７の仮想インスタンス配置位置ＤＢ１２３の時刻ｔにおける配置されている物理サーバのＩＤをベクトルで表したものである。
【００５８】
【数７】
2017091001.tif 000009
【００５９】
ただし、ｐｉ（ｔ）は、式（８）に示すように、時刻ｔにおける仮想インスタンスＩＤがｉである仮想インスタンスが配置されている物理サーバの物理サーバＩＤを返す関数である。
【００６０】
【数８】
2017091001.tif 000010
【００６１】
また、予測においては、式（９）に示すような、時刻ｔにおいて物理サーバｋに配置されている仮想インスタンスの仮想インスタンスＩＤの成分だけ１を取る１×ｎｃｏベクトルも使用される。
【００６２】
【数９】
2017091001.tif 000011
【００６３】
また、予測においては、式（１０）に示すような、全ての成分が１である１×ｎｃｏベクトルも使用される。
【００６４】
【数１０】
2017091001.tif 000012
【００６５】
次に、使用量予測部２１２がリソース使用量を予測する際の具体的な計算方法について説明する。使用量予測部２１２は、リソース使用量に対して確率過程モデルを想定し、現在の時刻ｔよりＡだけ前の時刻までのリソース使用量のデータを使ってモデルパラメータを推定し、現在の時刻ｔからＢだけ後の時刻までのリソース使用量を予測する。
【００６６】
使用量予測部２１２は、確率過程モデルとして例えばランダム・ウォーク、ポアソン過程、ＡＲ（AutoRegressive）モデル、ＭＡ（Moving  Average）モデル、ＡＲＭＡモデル、ＡＲＩＭＡモデル等を用いることができる。また、使用量予測部２１２は、パラメータ推定方法として、例えばＡＲモデルであればYule  Walker法、ポアソン過程であれば最尤法等を用いることができる。
【００６７】
本実施形態においては、使用量予測部２１２は、確率過程モデルとしてＡＲモデルを用い、パラメータ推定方法としてYule  Walker法を用いることとする。なお、使用量予測部２１２は、時刻ｔ＋Ｂ以降は、これまでのリソース使用量の平均値が無限に続くものとして定式化する。
【００６８】
まず、使用量予測部２１２は、時刻ｔまでのＣＰＵスペックの使用量のデータを仮想インスタンスリソース使用量ＤＢ１２２から取得し、取得したＣＰＵスペックの使用量を基に、式（１１）によって仮想インスタンスｉの時刻ｔ＋１におけるＣＰＵスペックの使用量を予測する。
【００６９】
【数１１】
2017091001.tif 000013
【００７０】
そして、使用量予測部２１２は、標本平均を式（１２）のようにおき、標本自己相関関数を式（１３）のようにおく。
【００７１】
【数１２】
2017091001.tif 000014
【００７２】
【数１３】
2017091001.tif 000015
【００７３】
さらに、使用量予測部２１２は、式（１４）に示すYule  Walker方程式を解くことで、パラメータａ１，ａ２，…，ａＭの最尤推定値を求める。
【００７４】
【数１４】
2017091001.tif 000016
【００７５】
また、使用量予測部２１２は、式（１５）によりσｉ２の推定値を求める。
【００７６】
【数１５】
2017091001.tif 000017
【００７７】
ここで、求めたσｉ２の推定値を次数Ｍの時の分散の推定値として表すと、次数ＭのＡＩＣは式（１６）のように表される。
【００７８】
【数１６】
2017091001.tif 000018
【００７９】
使用量予測部２１２は、式（１６）のＡＩＣＭが最小となる次数Ｍ＊を選択することで、予測モデルを決定する。そして、使用量予測部２１２は、決定した予測モデルを用いて、式（１７）によって時刻ｔ＋τにおける仮想インスタンスｉのＣＰＵスペックの使用量を予測する。
【００８０】
【数１７】
2017091001.tif 000019
【００８１】
なお、上記の説明においては、リソース使用量の例としてＣＰＵスペックの使用量を用いたが、使用量予測部２１２は、例えばメモリ容量の使用量についても同様の方法で予測することができる。
【００８２】
影響予測部２１３は、仮想インスタンスの所定時刻におけるリソース使用量およびマイグレーションの状況を基に、所定時刻から所定時間後までの各時刻における、仮想インスタンスのマイグレーションによって生じるリソース使用量と、該マイグレーションが行われる残り時間と、該マイグレーションによって仮想インスタンスが停止する残り停止時間と、を予測する。また、影響予測部２１３は、予測したマイグレーションによる影響を影響予測ＤＢ２２２に記憶させる。
【００８３】
影響予測ＤＢ２２２は、各仮想インスタンスの各時刻におけるマイグレーションの影響の観測値および予測値を記憶する。ここで、図１１を用いて影響予測ＤＢ２２２のデータについて説明する。図１１は、影響予測ＤＢのデータの一例を示す図である。
【００８４】
図１１に示すように、影響予測ＤＢ２２２は、各仮想インスタンスの各時刻におけるマイグレーション残り時間、マイグレーションによる停止時間、送信元サーバの平均ＣＰＵスペック使用量、宛先サーバの平均ＣＰＵスペック使用量、送信元サーバの平均メモリ容量使用量、宛先サーバの平均メモリ容量使用量、および停止フラグの観測値および予測値を記憶する。
【００８５】
例えば、仮想インスタンス１は、マイグレーションが開始される直前の状態であり、マイグレーション残り時間が５０であり、マイグレーションによる停止時間、送信元サーバの平均ＣＰＵスペック使用量、宛先サーバの平均ＣＰＵスペック使用量、宛先サーバの平均メモリ容量使用量、宛先サーバの平均メモリ容量使用量、および停止フラグは０である。
【００８６】
また、例えば、仮想インスタンス２は、マイグレーション中かつ仮想インスタンスが未停止の状態であり、マイグレーション残り時間が１００、マイグレーションによる停止時間が５０、送信元サーバの平均ＣＰＵスペック使用量が０．０１、宛先サーバの平均ＣＰＵスペック使用量が０．０２、送信元サーバの平均メモリ容量使用量が３０、宛先サーバの平均メモリ容量使用量が５０、停止フラグが０である。
【００８７】
また、例えば、仮想インスタンス３は、マイグレーション中かつ仮想インスタンスが停止している状態であり、マイグレーション残り時間が４０、マイグレーションによる停止時間が４０、送信元サーバの平均ＣＰＵスペック使用量が０．０２、宛先サーバの平均ＣＰＵスペック使用量が０．０１、送信元サーバの平均メモリ容量使用量が２０、宛先サーバの平均メモリ容量使用量が２０、停止フラグが１である。
【００８８】
なお、時刻ｔを現在時刻とすると、影響予測ＤＢ２２２は、時刻ｔについては観測値を記憶し、時刻ｔ＋１以降については、後述の予測方法によって予測された予測値を記憶する。また、時刻ｔ＋Ｂまでの予測が行われた場合、影響予測ＤＢ２２２は、各時刻について図１１に示すようなテーブルを記憶するため、Ｂ＋１個のテーブルを記憶することになる。また、マイグレーションが行われていない場合、影響予測ＤＢ２２２の各値はいずれも０になる。また、マイグレーションが行われていて、かつ仮想インスタンスが稼働を停止している場合は停止フラグが１になる。
【００８９】
影響予測部２１３がマイグレーションによる影響を予測する手順について説明する。まず、予測において使用される各データの表し方について説明する。
【００９０】
時刻ｔにおける各仮想インスタンスのマイグレーション状態は、式（１８）に示す１×ｎｃｏベクトルによって表される。式（１８）は、図８のライブマイグレーション状態ＤＢ１２４のマイグレーション状態をベクトルで表したものである。
【００９１】
【数１８】
2017091001.tif 000020
【００９２】
時刻ｔにおける各仮想インスタンスのマイグレーションの残り時間は、式（１９）に示す１×ｎｃｏベクトルによって表される。式（１９）は、図１１の影響予測ＤＢ２２２のマイグレーション残り時間をベクトルで表したものである。
【００９３】
【数１９】
2017091001.tif 000021
【００９４】
ここで、例えば時刻がｔからｔ＋１に変化した場合、マイグレーション残り時間は１だけ減算されるため、ｍｇｔｉ（ｔ）＞０である場合、ｍｇｔｉ（ｔ＋１）＝ｍｇｔｉ（ｔ）−１と表される。
【００９５】
時刻ｔにおける各仮想インスタンスのマイグレーション送信元物理サーバは、式（２０）に示す１×ｎｃｏベクトルによって表される。式（２０）は、図８のライブマイグレーション状態ＤＢ１２４のマイグレーション送信元物理サーバＩＤをベクトルで表したものである。
【００９６】
【数２０】
2017091001.tif 000022
【００９７】
時刻ｔにおける各仮想インスタンスのマイグレーション宛先物理サーバは、式（２１）に示す１×ｎｃｏベクトルによって表される。式（２１）は、図８のライブマイグレーション状態ＤＢ１２４のマイグレーション宛先物理サーバＩＤをベクトルで表したものである。
【００９８】
【数２１】
2017091001.tif 000023
【００９９】
時刻ｔにおける各仮想インスタンスのマイグレーションによる停止時間は、式（２２）に示す１×ｎｃｏベクトルによって表される。式（２２）は、図１１の影響予測ＤＢ２２２のマイグレーションによる停止時間をベクトルで表したものである。
【０１００】
ここで、例えば時刻がｔからｔ＋１に変化した場合に、ｆｔｉ（ｔ）≦ｍｇｔｉ（ｔ）であれば、マイグレーションによる停止時間は１だけ減算されるため、ｆｔｉ（ｔ＋１）＝ｆｔｉ（ｔ）−１と表される。
【０１０１】
【数２２】
2017091001.tif 000024
【０１０２】
時刻ｔにおける各仮想インスタンスの送信元サーバの平均ＣＰＵスペック使用量は、式（２３）に示す１×ｎｃｏベクトルによって表される。式（２３）は、図１１の影響予測ＤＢ２２２の送信元サーバの平均ＣＰＵスペック使用量をベクトルで表したものである。
【０１０３】
【数２３】
2017091001.tif 000025
【０１０４】
時刻ｔにおける各仮想インスタンスの宛先サーバの平均ＣＰＵスペック使用量は、式（２４）に示す１×ｎｃｏベクトルによって表される。式（２４）は、図１１の影響予測ＤＢ２２２の宛先サーバの平均ＣＰＵスペック使用量をベクトルで表したものである。
【０１０５】
【数２４】
2017091001.tif 000026
【０１０６】
時刻ｔにおける各仮想インスタンスの送信元サーバの平均メモリ容量使用量は、式（２５）に示す１×ｎｃｏベクトルによって表される。式（２５）は、図１１の影響予測ＤＢ２２２の送信元サーバの平均メモリ容量使用量をベクトルで表したものである。
【０１０７】
【数２５】
2017091001.tif 000027
【０１０８】
時刻ｔにおける各仮想インスタンスの宛先サーバの平均メモリ容量使用量は、式（２６）に示す１×ｎｃｏベクトルによって表される。式（２６）は、図１１の影響予測ＤＢ２２２の宛先サーバの平均メモリ容量使用量をベクトルで表したものである。
【０１０９】
【数２６】
2017091001.tif 000028
【０１１０】
時刻ｔにおける各仮想インスタンスの停止フラグは、式（２７）に示す１×ｎｃｏベクトルによって表される。式（２７）は、図１１の影響予測ＤＢ２２２の停止フラグをベクトルで表したものである。
【０１１１】
【数２７】
2017091001.tif 000029
【０１１２】
次に、これまで説明した各ベクトルＭｇＴ（ｔ）、ＦＴ（ｔ）、ＭｇＣｓ（ｔ）、ＭｇＣｄ（ｔ）、ＭｇＭｓ（ｔ）、ＭｇＭｄ（ｔ）、ＦＦ（ｔ）の影響予測部２１３による算出方法について説明する。なお、各予測係数αｍｇｔ、αｆｔ、αｓｍｇｃ、αｄｍｇｃ、αｓｍｇｍ、αｄｍｇｍは、いずれも正の実数であり、事前に計測実験により求められた定数である。
【０１１３】
仮想インスタンスのマイグレーションの残り時間はメモリ容量の使用量ｍｉ（ｔ）に比例するため、影響予測部２１３は、式（１９）のベクトルＭｇＴ（ｔ）の各要素を式（２８）によって求める。
【０１１４】
【数２８】
2017091001.tif 000030
【０１１５】
仮想インスタンスのマイグレーションによる停止時間はメモリ容量の使用量ｍｉ（ｔ）に比例するため、影響予測部２１３は、式（２２）のベクトルＦＴ（ｔ）の各要素を式（２９）によって求める。
【０１１６】
【数２９】
2017091001.tif 000031
【０１１７】
仮想インスタンスのマイグレーションによる送信元物理サーバのＣＰＵスペックの使用量は、メモリ容量の使用量ｍｉ（ｔ）の影響をほとんど受けないため、影響予測部２１３は、式（２３）のベクトルＭｇＣｓ（ｔ）の各要素を式（３０）によって求める。
【０１１８】
【数３０】
2017091001.tif 000032
【０１１９】
仮想インスタンスのマイグレーションによる宛先物理サーバのＣＰＵスペックの使用量は、メモリ容量の使用量ｍｉ（ｔ）にゆるやかに比例するため、影響予測部２１３は、式（２４）のベクトルＭｇＣｄ（ｔ）の各要素を式（３１）によって求める。
【０１２０】
【数３１】
2017091001.tif 000033
【０１２１】
また、仮想インスタンスのマイグレーションによる宛先物理サーバのＣＰＵスペックの使用量は、メモリ容量の使用量ｍｉ（ｔ）に比例するとみなして、影響予測部２１３は、式（２４）のベクトルＭｇＣｄ（ｔ）の各要素を式（３２）によって求めてもよい。
【０１２２】
【数３２】
2017091001.tif 000034
【０１２３】
仮想インスタンスのマイグレーションによる送信元物理サーバのメモリ容量の使用量は、メモリ容量の使用量ｍｉ（ｔ）の影響をほとんど受けないため、影響予測部２１３は、式（２５）のベクトルＭｇＭｓ（ｔ）の各要素を式（３３）によって求める。
【０１２４】
【数３３】
2017091001.tif 000035
【０１２５】
仮想インスタンスのマイグレーションによる宛先物理サーバのメモリ容量の使用量は、メモリ容量の使用量ｍｉ（ｔ）に比例するため、影響予測部２１３は、式（２６）のベクトルＭｇＭｄ（ｔ）の各要素を式（３４）によって求める。
【０１２６】
【数３４】
2017091001.tif 000036
【０１２７】
算出部２１４は、使用量予測部２１２によって予測されたリソース使用量と、影響予測部２１３によって予測されたリソース使用量、残り時間、および残り停止時間とを基に、所定時刻における仮想インスタンスのマイグレーション先としての適性を評価する指標を物理サーバごとに算出する。
【０１２８】
算出部２１４は、使用量予測部２１２によって予測されたリソース使用量および影響予測部２１３によって予測されたリソース使用量が小さくなるにつれて大きくなる超過ペナルティと、残り停止時間に基づく仮想インスタンスの停止により要求に答えられなかったリソース使用量が小さくなるにつれて大きくなる使用要求不可ペナルティとを算出し、超過ペナルティおよび使用要求不可ペナルティの和に基づいて指標を算出する。
【０１２９】
さらに、算出部２１４は、仮想インスタンスが配置された物理サーバの数が小さくなるにつれて大きくなる使用物理サーバ台数ペナルティを算出し、超過ペナルティおよび使用要求不可ペナルティの和に第１の係数を乗じた値と、第３の値に第２の係数を乗じた値と、の和に基づいて指標を算出するようにしてもよい。なお、第１の係数と第２の係数との和は、一定の定数（例えば１）である。
【０１３０】
ここで、算出部２１４は、まずＣＰＵスペックの使用量を正規化するための定数Ｎｃ、およびメモリ容量の使用量を正規化するための定数Ｎｍを定義する。算出部２１４は、例えばＮｃを物理サーバのＣＰＵスペックの平均値Ｅ［ＭＸｃ］とすることができる。また、算出部２１４は、Ｎｍを例えば物理サーバのメモリ容量の平均値Ｅ［ＭＸｍ］とすることができる。
【０１３１】
算出部２１４は、式（３５）によって、マイグレーションの影響による全物理サーバのＣＰＵスペックの使用量を算出する。なお、マイグレーションの影響による物理サーバｋのＣＰＵスペックの使用量は、ＭｇＣＡｋ（ｔ）と表される。
【０１３２】
【数３５】
2017091001.tif 000037
【０１３３】
算出部２１４は、式（３６）によって、マイグレーションの影響による全物理サーバのメモリ容量の使用量を算出する。なお、マイグレーションの影響による物理サーバｋのメモリ容量の使用量は、ＭｇＭＡｋ（ｔ）と表される。
【０１３４】
【数３６】
2017091001.tif 000038
【０１３５】
算出部２１４は、式（３７）によって、マイグレーションによる仮想インスタンスの停止のため要求に応えることができないＣＰＵスペックの全物理サーバの合計を算出する。
【０１３６】
【数３７】
2017091001.tif 000039
【０１３７】
算出部２１４は、式（３８）によって、マイグレーションによる仮想インスタンスの停止のため要求に応えることができないメモリ容量の全物理サーバの合計を算出する。
【０１３８】
【数３８】
2017091001.tif 000040
【０１３９】
算出部２１４は、式（３９）によって時刻ｔにおける各物理サーバのＣＰＵスペックの使用量を表す。
【０１４０】
【数３９】
2017091001.tif 000041
【０１４１】
また、算出部２１４は、式（４０）によって時刻ｔにおける物理サーバｋのＣＰＵスペックの使用量を表す。
【０１４２】
【数４０】
2017091001.tif 000042
【０１４３】
算出部２１４は、式（４１）によって時刻ｔにおける各物理サーバのメモリ容量の使用量を表す。
【０１４４】
【数４１】
2017091001.tif 000043
【０１４５】
また、算出部２１４は、式（４２）によって時刻ｔにおける物理サーバｋのメモリ容量の使用量を表す。
【０１４６】
【数４２】
2017091001.tif 000044
【０１４７】
算出部２１４は、式（４３）によって時刻ｔにおける全物理サーバのＣＰＵスペックの超過ペナルティの総和を算出する。なお、超過ペナルティは、物理サーバのリソース量の空きが多いほど大きい値になる。
【０１４８】
【数４３】
2017091001.tif 000045
【０１４９】
算出部２１４は、式（４４）によって時刻ｔにおける全物理サーバのメモリ容量の超過ペナルティの総和を算出する。
【０１５０】
【数４４】
2017091001.tif 000046
【０１５１】
算出部２１４は、式（４５）によって時刻ｔにおける全物理サーバのＣＰＵスペックの使用要求不可ペナルティの総和を算出する。使用要求不可ペナルティは、停止している仮想インスタンスによって使用されているリソース量が少ないほど大きい値になる。
【０１５２】
【数４５】
2017091001.tif 000047
【０１５３】
算出部２１４は、式（４６）によって時刻ｔにおける全物理サーバのＣＰＵスペックの使用要求不可ペナルティの総和を算出する。
【０１５４】
【数４６】
2017091001.tif 000048
【０１５５】
算出部２１４は、式（４７）によって時刻ｔにおける仮想インスタンスが配置されている物理サーバの台数を算出する。
【０１５６】
【数４７】
2017091001.tif 000049
【０１５７】
そして、算出部２１４は、式（４８−１）、または式（４８−２）によって時刻ｔにおける使用物理サーバ台数ペナルティを算出する。使用物理サーバ台数ペナルティは、仮想インスタンスが配置されている物理サーバの台数が少ないほど大きい値になる。
【０１５８】
【数４８】
2017091001.tif 000050
【０１５９】
そして、算出部２１４は、式（４９）によって時刻ｔにおける総ペナルティを算出する。
【０１６０】
【数４９】
2017091001.tif 000051
【０１６１】
ここで、超過ペナルティ、使用不可ペナルティおよび使用物理サーバ台数ペナルティは、マイグレーションが適切であるほど値が大きくなる。例えば、マイグレーションの宛先を、仮想インスタンスが全く配置されていない物理サーバとすることで、超過ペナルティおよび使用不可ペナルティが大きくなる場合が多い。一方、この場合、使用物理サーバ台数ペナルティは小さくなる。
【０１６２】
このように、超過ペナルティおよび使用不可ペナルティと、使用物理サーバ台数ペナルティとの間には、トレードオフの関係が成り立つため、算出部２１４は、ｗｓ＋ｗｈ＝１という条件を設定している。これにより、できるだけ少ない物理サーバに仮想インスタンスを配置することができるようになる。
【０１６３】
算出部２１４は、式（５０）を用いて、仮想インスタンスｉを物理サーバｋに配置変更した場合の配置位置指標Ｑｉ（Ｐ（ｔ），ｍｇｄｉ（ｔ）＝ｋ）を算出する。
【０１６４】
【数５０】
2017091001.tif 000052
【０１６５】
ここで、指標の算出方法として、例えば時刻に伴い０＜γ≦１で指数割引された、現在時刻から無限の将来時刻までのペナルティの総和を指標として算出する方法が考えられる。ここで、算出部２１４は、計算時間短縮のため有限の将来時刻までのペナルティの総和を指標として算出することとする。
【０１６６】
算出部２１４は、例えば式（５０）のτｐに示すように、最もメモリ容量の大きい物理サーバのメモリ容量を使用する仮想インスタンスがマイグレーションを行ったと仮定した時に要するマイグレーションの残り時間だけ将来の時刻を有限の将来時刻とする。そして、算出部２１４は、算出した指標を、指標ＤＢ２２３に記憶させる。図１２に示すように、指標ＤＢ２２３は各物理サーバをマイグレーションの宛先とした場合の指標を記憶する。図１２は、指標ＤＢのデータの一例を示す図である。
【０１６７】
決定部２１１は、指標ＤＢ２２３を参照し、配置指標が最も大きい物理サーバｋ´を配置位置として決定する。このとき、ｋ´≠ｍｇｄｉ（ｔ）の場合、マイグレーションが決定されたことになるため、決定部２１１は、式（５１−１）、式（５１−２）および式（５１−３）によってそれぞれライブマイグレーション状態ＤＢ１２４のマイグレーション状態、マイグレーション送信元物理サーバＩＤおよびマイグレーション宛先物理サーバＩＤを更新する。
【０１６８】
【数５１】
2017091001.tif 000053
【０１６９】
［第１の実施形態の処理］
図１３および図１４を用いて、仮想インスタンス配置位置決定装置２０の処理について説明する。図１３および図１４は、第１の実施形態に係る仮想インスタンス配置位置決定装置の処理の一例を示すフローチャートである。
【０１７０】
まず、図１３に示すように、決定部２１１は、時刻クロック３０から現在時刻ｔを取得する（ステップＳ２１）。そして、決定部２１１は、仮想インスタンスリソース使用量ＤＢ１２２から全仮想インスタンスの時刻ｔ−Ａから時刻ｔまでのリソース使用量を抽出する（ステップＳ２２）。次に、決定部２１１は、仮想インスタンス配置位置ＤＢ１２３から全仮想インスタンスの時刻ｔの配置位置を抽出する（ステップＳ２３）。
【０１７１】
そして、決定部２１１は、現在時刻ｔ、各ＤＢから抽出したデータ、および予測時刻ｔ＋Ｂを使用量予測部２１２に送信し、処理を依頼する（ステップＳ２４）。使用量予測部２１２は、処理の依頼を受けると、全仮想インスタンスについて時刻ｔから時刻ｔ＋Ｂまでのリソース使用量を予測する（ステップＳ２５）。ここで、算出部２１４は、ｉを１に設定する（ステップＳ２６）。
【０１７２】
算出部２１４は、ライブマイグレーション状態ＤＢ１２４を参照し、仮想インスタンスｉがマイグレーション状態であるか否かを判定する（ステップＳ２７）。仮想インスタンスｉがマイグレーション状態である場合（ステップＳ２７、Ｙｅｓ）、算出部２１４はステップＳ３０へ進む。仮想インスタンスｉがマイグレーション状態でない場合（ステップＳ２７、Ｎｏ）、算出部２１４は仮想インスタンスｉについて指標を算出する（ステップＳ２８）。
【０１７３】
算出部２１４が指標を算出する処理について、図１４を用いて説明する。まず、図１４に示すように、算出部２１４は、ｋを１に設定する（ステップＳ２８１）。ここで、ｋは仮想インスタンスｉのマイグレーション先の候補となる物理サーバのＩＤを示している。仮想インスタンスｉの配置位置がｋである場合（ステップＳ２８２、Ｙｅｓ）、マイグレーションは行われないため、算出部２１４は、指標の算出を行わずにステップＳ２８６へ進む。
【０１７４】
仮想インスタンスｉの配置位置がｋでない場合（ステップＳ２８２、Ｎｏ）、算出部２１４は、仮想インスタンスｉの現在時刻ｔのリソース使用量、および配置位置を影響予測部２１３に送信し、処理を依頼する（ステップＳ２８３）。影響予測部２１３は、処理の依頼を受けると、仮想インスタンスｉの物理サーバｋへのマイグレーションが行われると仮定して、物理サーバｋについて時刻ｔから時刻ｔ＋Ｂまでのマイグレーションの影響を予測する（ステップＳ２８４）。そして、算出部２１４は、使用量予測部２１２が予測したリソースの使用量、および影響予測部２１３が予測したマイグレーションの影響を基に、指標を算出する（ステップＳ２８５）。
【０１７５】
ここで、ｋが全物理サーバの数と一致している場合（ステップＳ２８６、Ｙｅｓ）、全物理サーバについて指標が算出されたことになるため、算出部２１４は、処理を終了する。また、ｋが物理サーバの数と一致していない場合（ステップＳ２８６、Ｎｏ）、算出部２１４は、ｋをｋ＋１に設定し、ステップＳ２８２に戻り処理を繰り返す。
【０１７６】
決定部２１１は、指標の算出が終わると、指標に基づいて仮想インスタンスのｉの配置位置を決定する（ステップＳ２９）。このとき、決定部２１１は決定した配置位置に基づいてライブマイグレーション状態ＤＢ１２４を更新する。
【０１７７】
ここで、ｉが全仮想インスタンスの数と一致している場合（ステップＳ３０、Ｙｅｓ）、全仮想インスタンスについて配置位置の検討が行われたことになるため、決定部２１１は、処理を終了する。また、ｉが全仮想インスタンスの数と一致していない場合（ステップＳ３０、Ｎｏ）、決定部２１１は、ｉをｉ＋１に設定し（ステップＳ３１）、ステップＳ２７に戻り処理を繰り返す。
【０１７８】
［第１の実施形態の効果］
使用量予測部２１２は、物理サーバ上で稼働する仮想インスタンスの所定時刻から所定時間前までのリソース使用量を基に、仮想インスタンスの所定時刻から所定時間後までの各時刻における第１のリソース使用量を予測する。また、影響予測部２１３は、仮想インスタンスの所定時刻におけるリソース使用量およびマイグレーションの状況を基に、所定時刻から所定時間後までの各時刻における、仮想インスタンスのマイグレーションによって生じる第２のリソース使用量と、該マイグレーションが行われる残り時間と、該マイグレーションによって仮想インスタンスが停止する残り停止時間と、を予測する。そして、算出部２１４は、使用量予測部２１２によって予測された第１のリソース使用量と、影響予測部２１３によって予測された第２のリソース使用量、残り時間、および残り停止時間とを基に、所定時刻における仮想インスタンスのマイグレーション先としての適性を評価する指標を物理サーバごとに算出する。
【０１７９】
これにより、仮想インスタンスの再配置後のリソース使用量の増加、およびライブマイグレーションの影響による負荷の増加の両方を考慮して仮想インスタンスの再配置を行うことができ、物理サーバが計算機リソース要求に応えられない過負荷状態に陥ることを防止することができる。
【０１８０】
また、決定部２１１は、算出部２１４によって算出された指標が最大となる物理サーバを、仮想インスタンスのマイグレーション先として決定する。
【０１８１】
このように、所定のルールに従って仮想インスタンスの再配置先を決定することで、安定した仮想インスタンスの再配置を行うことができる。
【０１８２】
また、算出部２１４は、第１のリソース使用量および第２のリソース使用量が小さくなるにつれて大きくなる第１の値と、残り停止時間に基づく仮想インスタンスの停止により要求に答えられなかったリソース使用量が小さくなるにつれて大きくなる第２の値とを算出し、第１の値および第２の値の和に基づいて指標を算出してもよい。
【０１８３】
このように、複数のリソース使用量およびマイグレーションに関する所要時間の両方に基づいて指標を算出することで、より正確な配置先の評価を行うことができる。
【０１８４】
さらに、算出部２１４は、仮想インスタンスが配置された物理サーバの数が小さくなるにつれて大きくなる第３の値を算出し、第１の値および第２の値の和に第１の係数を乗じた値と、第３の値に第２の係数を乗じた値と、の和に基づいて指標を算出するようにしてもよい。なお、第１の係数と第２の係数との和は、一定の定数である。
【０１８５】
これにより、できるだけ少ない物理サーバに仮想インスタンスを配置することができるようになる。
【０１８６】
［その他の実施形態］
第１の実施形態においては、仮想インスタンスが使用する物理サーバのリソースの例として、ＣＰＵスペックおよびメモリ容量を挙げた。しかし、物理サーバのリソースはこれらに限られず、例えば仮想インスタンスが使用するネットワークの帯域を予測し、指標に反映させることが考えられる。
【０１８７】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）および当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１８８】
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１８９】
［プログラム］
一実施形態として、仮想インスタンス配置位置決定装置は、パッケージソフトウェアやオンラインソフトウェアとして上記の仮想インスタンス配置位置決定を実行する仮想インスタンス配置位置決定プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の仮想インスタンス配置位置決定プログラムを情報処理装置に実行させることにより、情報処理装置を仮想インスタンス配置位置決定装置として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistants）等のスレート端末等がその範疇に含まれる。
【０１９０】
また、仮想インスタンス配置位置決定装置は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の仮想インスタンス配置位置決定に関するサービスを提供するサーバ装置として実装することもできる。例えば、仮想インスタンス配置位置決定装置は、仮想インスタンスのリソース使用状況を入力とし、仮想インスタンスの配置位置を出力とする仮想インスタンス配置位置決定サービスを提供するサーバ装置として実装される。この場合、仮想インスタンス配置位置決定装置は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の仮想インスタンス配置位置決定に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【０１９１】
図１５は、プログラムが実行されることにより仮想インスタンス配置位置決定装置が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【０１９２】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【０１９３】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、仮想インスタンス配置位置決定装置の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、仮想インスタンス配置位置決定装置における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【０１９４】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【０１９５】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３およびプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３およびプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【０１９６】
１  仮想インスタンス配置システム
１０  物理サーバ制御装置
２０  仮想インスタンス配置位置決定装置
３０  時刻クロック
１１、２１  制御部
１２、２２  記憶部
１１１  仮想インスタンスリソース使用量収集部
１１２  仮想インスタンス配置位置収集部
１１３  仮想インスタンス配置変更部
１２１  物理サーバ基本情報ＤＢ
１２２  仮想インスタンスリソース使用量ＤＢ
１２３  仮想インスタンス配置位置ＤＢ
１２４  ライブマイグレーション状態ＤＢ
２１１  決定部
２１２  使用量予測部
２１３  影響予測部
２１４  算出部
２２１  使用量予測ＤＢ
２２２  影響予測ＤＢ
２２３  指標ＤＢ
【図１】
2017091001.tif 000054
【図２】
2017091001.tif 000055
【図３】
2017091001.tif 000056
【図４】
2017091001.tif 000057
【図５】
2017091001.tif 000058
【図６】
2017091001.tif 000059
【図７】
2017091001.tif 000060
【図８】
2017091001.tif 000061
【図９】
2017091001.tif 000062
【図１０】
2017091001.tif 000063
【図１１】
2017091001.tif 000064
【図１２】
2017091001.tif 000065
【図１３】
2017091001.tif 000066
【図１４】
2017091001.tif 000067
【図１５】
2017091001.tif 000068