(57)【要約】【課題】パブリッククラウドにおけるライブマイグレーション（ＬＭ）の所要時間を推定する。【解決手段】情報提供装置１は、ＬＭの各事象を記憶したＬＭログ３４から仮想マシンごとにＬＭを実行した時刻およびＬＭにかかった時間を抽出し、仮想マシンごとにＣＰＵ使用率、メモリ使用量を含む負荷情報を所定間隔で記憶したＶＭ負荷情報履歴３５から仮想マシンごとにＬＭを実行した時刻の負荷情報を抽出し、ＬＭを実行した時刻ごとの負荷情報とＬＭにかかった時間から、仮想マシンごとのＬＭ時間を予測する予測モデル２２を生成する。情報提供装置１は、ＬＭの予測時間の指示を受けると、ＬＭする仮想マシンのＬＭ時間を予測する予測モデル２２から、ＬＭ時間を予測し、予測したＬＭ時間を提供する。【選択図】図１
2019057236.tif 000002
【特許請求の範囲】
【請求項１】
ライブマイグレーションの各事象を記憶したログ情報から仮想マシンごとにライブマイグレーションを実行した時刻およびライブマイグレーションにかかった時間を抽出し、
仮想マシンごとにＣＰＵ使用率、メモリ使用量を含む負荷情報を所定間隔で記憶した負荷履歴から仮想マシンごとにライブマイグレーションを実行した時刻の負荷情報を抽出し、
ライブマイグレーションを実行した時刻ごとの負荷情報とライブマイグレーションにかかった時間から、仮想マシンごとのライブマイグレーション時間を予測するモデルを生成し、
ライブマイグレーションの予測時間の指示を受けると、ライブマイグレーションする仮想マシンのライブマイグレーション時間を予測する前記モデルから、ライブマイグレーション時間を予測し、
前記予測したライブマイグレーション時間を提供する
処理をコンピュータに実行させることを特徴とする情報提供プログラム。
【請求項２】
前記負荷情報を抽出する処理は、前記負荷履歴から仮想マシンごとに負荷情報の周期を求め、仮想マシンごとに求められた負荷情報の周期に応じて所定期間ごとの負荷情報を求め、仮想マシンごとの負荷パターンを生成し、前記負荷パターンから仮想マシンごとにライブマイグレーションを実行した時刻に対応する負荷情報を抽出する
ことを特徴とする請求項１に記載の情報提供プログラム。
【請求項３】
前記負荷情報を抽出する処理は、前記負荷パターンおよび構成が類似した仮想マシンをグループ化し、グループごとにライブマイグレーションを実行した時刻の負荷情報を抽出し、
前記モデルを生成する処理は、抽出した時刻ごとの負荷情報とライブマイグレーションにかかった時間から、前記グループごとの前記モデルを生成する
ことを特徴とする請求項２に記載の情報提供プログラム。
【請求項４】
物理マシンを所定の期間にメンテナンスする場合に、前記所定の期間の時点ごとに、前記物理マシンに搭載される仮想マシンのライブマイグレーションにかかる時間を、前記仮想マシンに対応する前記モデルを用いて予測し、
ライブマイグレーションにかかる時間の合計が最小になるように、前記所定の期間中の前記仮想マシンのライブマイグレーションの順序をスケジューリングする
ことを特徴とする請求項１または請求項３に記載の情報提供プログラム。
【請求項５】
前記スケジューリングの結果、ライブマイグレーションによりユーザの業務に影響がでると予想される仮想マシンがある場合には、前記仮想マシンのユーザ向けの画面に注意を喚起する情報を提示する
ことを特徴とする請求項４に記載の情報提供プログラム。
【請求項６】
ライブマイグレーションの各事象を記憶したログ情報から仮想マシンごとにライブマイグレーションを実行した時刻およびライブマイグレーションにかかった時間を抽出する第１の抽出部と、
仮想マシンごとにＣＰＵ使用率、メモリ使用量を含む負荷情報を所定間隔で記憶した負荷履歴から仮想マシンごとにライブマイグレーションを実行した時刻の負荷情報を抽出する第２の抽出部と、
ライブマイグレーションを実行した時刻ごとの負荷情報とライブマイグレーションにかかった時間から、仮想マシンごとのライブマイグレーション時間を予測するモデルを生成する生成部と、
ライブマイグレーションの予測時間の指示を受けると、ライブマイグレーションする仮想マシンのライブマイグレーション時間を予測する前記モデルから、ライブマイグレーション時間を予測する予測部と、
前記予測したライブマイグレーション時間を提供する提供部と、
を有することを特徴とする情報提供装置。
【請求項７】
ライブマイグレーションの各事象を記憶したログ情報から仮想マシンごとにライブマイグレーションを実行した時刻およびライブマイグレーションにかかった時間を抽出し、
仮想マシンごとにＣＰＵ使用率、メモリ使用量を含む負荷情報を所定間隔で記憶した負荷履歴から仮想マシンごとにライブマイグレーションを実行した時刻の負荷情報を抽出し、
ライブマイグレーションを実行した時刻ごとの負荷情報とライブマイグレーションにかかった時間から、仮想マシンごとのライブマイグレーション時間を予測するモデルを生成し、
ライブマイグレーションの予測時間の指示を受けると、ライブマイグレーションする仮想マシンのライブマイグレーション時間を予測する前記モデルから、ライブマイグレーション時間を予測し、
前記予測したライブマイグレーション時間を提供する
処理をコンピュータが実行することを特徴とする情報提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報提供プログラムなどに関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングの中の１つで、仮想化技術を利用して仮想マシンをインターネット経由で貸し出すサービスであるパブリッククラウド（ＩａａＳ：Infrastructure  as  a  Service）が普及している。パブリッククラウドでは、物理サーバをサービス提供者が管理し、インターネットを経由して物理サーバで実行する仮想マシンを貸し出す。そして、貸し出す仮想マシンをユーザが管理する。
【０００３】
ここで、サービス提供者は、物理マシンをメンテナンスする場合がある。メンテナンスする場合とは、例えば、物理マシンにＯＳ（Operating  System）をアップグレードする場合である。メンテナンスの際には、サービス提供者は、物理マシンで稼働している仮想マシンを他の物理マシンに移動させ、仮想マシンを止めないで物理マシンのメンテナンスを行う。仮想マシンを他の物理マシンに移動させることを「ライブマイグレーション」という。かかるライブマイグレーションは、仮想マシンのメモリの内容を他の物理サーバ上の仮想マシンにコピーすることで実現できる。
【０００４】
ライブマイグレーションする際の移動対象となる仮想マシンを決定する技術がある（例えば、特許文献１参照）。かかる技術では、各仮想マシンが持つページの更新頻度および／もしくは参照頻度を計測し、将来のための統計情報を保持する。仮想マシン転送処理時の１ページあたりの転送時間を計測し、将来のための統計情報を保持する。そして、過去の更新頻度情報と転送にかかった転送時間の統計情報とから、転送処理にかかる時間を各仮想マシンごとに算出して見積もり、すべての仮想マシンのうち、転送時間が最短となることが見積もられた仮想マシンを移動対象として決定する。
【０００５】
また、ライブマイグレーションの所要時間を推定する第１の技術がある（例えば、特許文献２参照）。かかる技術では、ユーザからライブマイグレーション実行指示を受けると、転送メモリサイズ格納部および転送速度格納部からそれぞれ転送メモリサイズ情報および転送速度情報を取得し、ライブマイグレーションに要する移行所要時間を計算する。
【０００６】
また、ライブマイグレーションの所要時間を推定する第２の技術がある（例えば、非特許文献１、２参照）。かかる技術では、仮想マシンのＰａｇｅ  Ｄｉｒｔｙ  Ｒａｔｅという指標を利用して、ライブマイグレーションの所要時間を推定する。Ｐａｇｅ  Ｄｉｒｔｙ  Ｒａｔｅとは、メモリの変更の多さを示す指標のことをいい、仮想マシンを決定する技術のページの更新頻度と同義であると考えられる。なお、Ｐａｇｅ  Ｄｉｒｔｙ  Ｒａｔｅは、仮想マシンから取り出される情報である。したがって、仮想マシンはユーザによって管理されるので、サービス提供者は、Ｐａｇｅ  Ｄｉｒｔｙ  Ｒａｔｅを取り出すことは難しい。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１４６１６１号公報
【特許文献２】特開２０１６−１８４２５２号公報
【非特許文献】
【０００８】
【非特許文献１】Predicting  the  Performance  of  Virtual  Machine  Migration,  Akoush他,  2010  IEEE  International  Symposium  on  Modeling,  Analysis  and  Simulation  of  Computer  and  Telecommunication  Systems  (MASCOT)
【非特許文献２】MigVisor:Accurate  Prediction  of  VM  Live  Migration  Behavior  using  a  Working-Set  Pattern  Model,  Zhang他,  2017  ACM  VEE
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、パブリッククラウドにおいて、サービス提供者が、ライブマイグレーションの所要時間を推定することが難しいという第１の問題がある。すなわち、サービス提供者は、仮想マシンからページの更新頻度やＰａｇｅ  Ｄｉｒｔｙ  Ｒａｔｅを取り出すことが難しいので、メンテナンス対象の仮想マシンのライブマイグレーションの所要時間を推定することが難しい。
【００１０】
また、パブリッククラウドにおいて、未来のライブマイグレーションの所要時間を推定することが難しいという第２の問題がある。すなわち、ライブマイグレーションの所要時間を推定する第１の技術および第２の技術は、現時点でライブマイグレーションした場合のライブマイグレーションの所要時間を推定するが、現時点以降の未来のライブマイグレーションの所要時間を推定する技術ではない。
【００１１】
１つの側面では、パブリッククラウドにおけるライブマイグレーションの所要時間を推定することを目的とする。
【課題を解決するための手段】
【００１２】
本願の開示する情報提供プログラムは、仮想マシンごとにＣＰＵ使用率、メモリ使用量を含む負荷情報を所定間隔で記憶した負荷履歴から仮想マシンごとにライブマイグレーションを実行した時刻の負荷情報を抽出し、ライブマイグレーションを実行した時刻ごとの負荷情報とライブマイグレーションにかかった時間から、仮想マシンごとのライブマイグレーション時間を予測するモデルを生成して記憶し、所定の仮想マシンのライブマイグレーションの予測時間の指示を受けると、記憶した前記所定の仮想マシンのライブマイグレーション時間を予測するモデルから、ライブマイグレーション時間を予測し、前記予測したライブマイグレーション時間を提供する、処理をコンピュータに実行させる。
【発明の効果】
【００１３】
１つの態様によれば、パブリッククラウドにおけるライブマイグレーションの所要時間を推定できる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例１に係る情報提供システムの構成を示す機能ブロック図である。
【図２】図２は、ＬＭログのデータ構造の一例を示す図である。
【図３】図３は、ＶＭ負荷情報履歴のデータ構造の一例を示す図である。
【図４】図４は、負荷パターンのデータ構造の一例を示す図である。
【図５】図５は、負荷パターン生成処理の一例を示す図である。
【図６】図６は、予測モデル生成処理の一例を示す図である。
【図７】図７は、実施例１に係る予測モデル生成処理の全体のフローチャートの一例を示す図である。
【図８】図８は、実施例１に係る負荷パターン生成処理のフローチャートの一例を示す図である。
【図９】図９は、実施例１に係る予測モデル生成処理のフローチャートの一例を示す図である。
【図１０】図１０は、実施例１に係る予測処理のフローチャートの一例を示す図である。
【図１１】図１１は、実施例２に係る情報提供システムの構成を示す機能ブロック図である。
【図１２Ａ】図１２Ａは、クラスタ生成処理の一例を示す図（１）である。
【図１２Ｂ】図１２Ｂは、クラスタ生成処理の一例を示す図（２）である。
【図１２Ｃ】図１２Ｃは、クラスタ生成処理の一例を示す図（３）である。
【図１２Ｄ】図１２Ｄは、クラスタ生成処理の一例を示す図（４）である。
【図１３】図１３は、実施例２に係る予測モデル生成処理の全体のフローチャートの一例を示す図である。
【図１４】図１４は、実施例２に係るクラスタ生成処理のフローチャートの一例を示す図である。
【図１５】図１５は、負荷パターンが似ているＶＭをクラスタリングする処理のフローチャートの一例を示す図である。
【図１６】図１６は、構成情報が似ているＶＭをクラスタリングする処理のフローチャートの一例を示す図である。
【図１７】図１７は、実施例２に係る予測モデル生成処理のフローチャートの一例を示す図である。
【図１８】図１８は、実施例３に係る情報提供システムの構成を示す機能ブロック図である。
【図１９】図１９は、スケジュール生成処理の一例を示す図である。
【図２０Ａ】図２０Ａは、メンテナンススケジュールの提示の一例を示す図である。
【図２０Ｂ】図２０Ｂは、メンテナンススケジュールの提示の別の例を示す図である。
【図２１】図２１は、実施例３に係るスケジュール生成処理のフローチャートの一例を示す図である。
【図２２】図２２は、実施例４に係るユーザに提示する画面の一例を示す図である。
【図２３】図２３は、情報提供プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１５】
以下に、本願の開示する情報提供プログラム、情報提供装置および情報提供方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例１】
【００１６】
［情報提供システムの構成］
図１は、実施例１に係る情報提供システムの構成を示す図である。情報提供システム９は、情報提供装置１およびパブリッククラウド（ＩａａＳ）基盤３を有する。ＩａａＳは、仮想化技術を利用して仮想マシン（ＶＭ：Virtual  Machine）をインターネット経由で貸し出すサービスである。ＩａａＳでは、物理サーバ（ＰＭ：physical  Machine）をサービス提供者が管理し、インターネットを経由してＰＭで実行するＶＭを貸し出す。そして、貸し出すＶＭをユーザが管理する。
【００１７】
ＩａａＳ基盤３は、ＩａａＳ管理情報３１と、リソース３２と、ＶＭ管理基盤３３と、ライブマイグレーション（ＬＭ）ログ３４と、ＶＭ負荷情報履歴３５とを有する。
【００１８】
ＩａａＳ管理情報３１は、ＩａａＳで用いられる管理情報であり、ＶＭ構成情報３１１と、ＰＭ管理表３１２と、ユーザ管理表３１３とを含む。ＶＭ構成情報３１１は、ＶＭの構成情報である。ＶＭ構成情報３１１には、ＶＭごとに使用可能な、仮想ＣＰＵ（Virtual  Central  Processing  Unit）および仮想メモリのそれぞれの数が管理される。ＰＭ管理表３１２は、ＰＭの管理表である。ＰＭ管理表３１２には、ＰＭごとに配置されるＶＭが管理される。ユーザ管理表３１３は、ユーザの管理表である。ユーザ管理表３１３には、ユーザごとに、ユーザが管理するＶＭが管理される。なお、ＩａａＳ管理情報３１は、ＶＭ構成情報３１１、ＰＭ管理表３１２およびユーザ管理表３１３に限らず、他の管理情報を含んでも良い。他の管理情報には、例えば、ＶＭの配置ポリシーを示すＶＭ配置ポリシーであったり、ＩａａＳで用いられる仮想システム（Virtual  System）を管理するＶＳＹＳ管理表であったりする。
【００１９】
リソース３２は、ＩａａＳ基盤３で稼働するＰＭ３２１およびＶＭ３２２のことをいう。ＶＭ３２２は、ＰＭ管理表３１２に基づいてＰＭ３２１上に配置される。また、ＶＭ３２２は、ライブマイグレーションの際に、ＰＭ３２１から別のＰＭ３２１に配置を移動する。リソース３２は、ＶＭ管理基盤３３によって管理される。
【００２０】
ＶＭ管理基盤３３は、ＰＭ３２１に配置されるＶＭ３２２を管理する基盤である。例えば、ＶＭ管理基盤３３は、ＰＭ管理表３１２を用いてＰＭ３２１に配置されるＭ３２２を管理するとともに、ＶＭ３２２のライブマイグレーションを管理し、ライブマイグレーションがされたときの情報を後述するＬＭログ３４に格納する。
【００２１】
ＬＭログ３４は、ライブマイグレーションの各事象の履歴である。
【００２２】
ここで、ＬＭログ３４のデータ構造の一例を、図２を参照して説明する。図２は、ＬＭログのデータ構造の一例を示す図である。図２に示すように、ＬＭログ３４は、時刻とイベントとを対応付けた情報である。時刻は、ライブマイグレーションの開始時刻または終了時刻を示す。イベントは、ライブマイグレーションに関するイベントを示す。例えば、イベントは、対象のＶＭに対するライブマイグレーションに関する開始イベントまたは終了イベントを示す。一例として、時刻が「２０１７／６／２０  １：００」である場合に、イベントとして「ＶＭ  ｋｅｉｒｉ−ｄｂ−１２をＬＭ開始」を記憶している。時刻が「２０１７／６／２０  １：０５」である場合に、イベントとして「ＶＭ  ｋｅｉｒｉ−ｄｂ−１２をＬＭ終了」を記憶している。
【００２３】
図１に戻って、ＶＭ負荷情報履歴３５は、ＶＭに対する負荷情報の履歴である。負荷情報には、ＶＭに対する、仮想ＣＰＵのＣＰＵ使用率および仮想メモリのメモリ使用量が挙げられる。負荷情報は、これに限定されず、ネットワークＩＯ（Input/Output）やディスクＩＯを含んでも良い。実施例では、負荷情報を、ＣＰＵ使用率、メモリ使用量、ネットワークＩＯおよびディスクＩＯとして説明する。
【００２４】
ここで、ＶＭ負荷情報履歴３５のデータ構造の一例を、図３を参照して説明する。図３は、ＶＭ負荷情報履歴のデータ構造の一例を示す図である。なお、ＶＭ負荷情報履歴は、ＶＭごとに生成される。ＶＭ負荷情報履歴３５は、時刻、ＣＰＵ使用率、メモリ使用量、ＮＷ  ＩＯおよびディスクＩＯを対応付けて記憶する。時刻は、ＶＭの負荷情報を抽出する時刻を示す。時刻は、一定期間ごとの時点であれば良い。一定期間は、例えば、１時間であっても良いし、３０分であっても良いし、予め定められるが、変更を可能とする。ＣＰＵ使用率は、ある時刻のＶＭの仮想ＣＰＵのＣＰＵ使用率である。メモリ使用量は、ある時刻のＶＭの仮想メモリのメモリ使用量である。ＮＷ  ＩＯは、ある時刻のＶＭのネットワークＩＯにかかる時間である。ディスクＩＯは、ある時刻のＶＭのディスクＩＯにかかる時間である。一例として、時刻が「２０１７／６／２０  １：００」である場合に、ＣＰＵ使用率として「３０」％、メモリ使用量として「１」ＧＢ、ＮＷ  ＩＯとして「２５」Ｍｂｐｓ、ディスクＩＯとして「３５」Ｍｂｐｓを記憶している。
【００２５】
情報提供装置１は、ＰＶに配置されるＶＭのライブマイグレーションにかかる時間を予測し、予測した時間を提供する。情報提供装置１は、制御部１０および記憶部２０を有する。
【００２６】
制御部１０は、ＣＰＵ（Central  Processing  Unit）などの電子回路に対応する。そして、制御部１０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部１０は、情報取得部１１、負荷パターン生成部１２、予測モデル生成部１３、予測部１４、入出力インタフェース部１５を有する。なお、情報取得部１１は、第１の抽出部および第２の抽出部の一例である。予測モデル生成部１３は、生成部の一例である。予測部１４は、予測部の一例である。入出力インタフェース部１５は、提供部の一例である。
【００２７】
記憶部２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部２０は、負荷パターン２１と、予測モデル２２とを有する。
【００２８】
負荷パターン２１は、ＶＭ負荷情報履歴３５から特定されるＶＭの負荷情報のパターンを示す。負荷パターン２１は、ＶＭごとに生成される。なお、負荷パターン２１は、負荷パターン生成部１２によって生成される。
【００２９】
予測モデル２２は、負荷パターン２１およびＬＭログ３４から生成される、ライブマイグレーションにかかる時間を予測するモデルである。予測モデル２２は、ＶＭごとに生成される。なお、予測モデル２２は、予測モデル生成部１３によって生成される。
【００３０】
情報取得部１１は、ＩａａＳ基盤３のＶＭ負荷情報履歴３５から、ＶＭごとの過去の負荷情報を取得する。また、情報取得部１１は、ＩａａＳ基盤３のＬＭログ３４から、ＶＭごとに、ライブマイグレーション（ＬＭ）した時刻およびライブマイグレーション（ＬＭ）にかかった時間を示す過去のＬＭ情報を取得する。
【００３１】
負荷パターン生成部１２は、ＶＭごとの負荷パターン２１を生成する。
【００３２】
例えば、負荷パターン生成部１２は、予測モデル２２の生成要求を受け付けると、情報取得部１１によって取得された、ＶＭごとの過去の負荷情報を取得する。負荷情報は、ＣＰＵ使用率、メモリ使用量、ＮＷ  ＩＯおよびディスクＩＯである。負荷パターン生成部１２は、ＶＭごとに、それぞれの過去の時刻に対する負荷情報から、それぞれの負荷の周期を特定する。負荷の周期には、例えば、日周期、週周期、月周期または周期なしが挙げられる。なお、負荷の周期は、過去の時刻の負荷情報から統計的に算出され特定されれば良く、いかなる従来技術を用いても良い。
【００３３】
また、負荷パターン生成部１２は、ＶＭごとに、特定された周期を分割し、分割された周期の分割要素ごとの平均的な負荷情報を示す負荷パターン２１を生成する。一例として、日周期ならば、負荷パターン生成部１２は、周期の分割要素を２４時間の中の１時間ごととし、１時間ごとの平均的な負荷情報を示す負荷パターン２１を生成すれば良い。また、週周期ならば、負荷パターン生成部１２は、周期の分割要素を週の中の曜日ごととし、曜日ごとの平均的な負荷情報を示す負荷パターン２１を生成すれば良い。また、月周期ならば、負荷パターン生成部１２は、周期の分割要素を月の中の１日ごととし、１日ごとの平均的な負荷情報を示す負荷パターン２１を生成すれば良い。
【００３４】
ここで、負荷パターン２１のデータ構造の一例を、図４を参照して説明する。図４は、負荷パターンのデータ構造の一例を示す図である。図４に示すように、負荷パターン２１は、周期分割要素、ＣＰＵ使用率、メモリ使用量、メモリ使用量、ＮＷ  ＩＯおよびディスクＩＯを対応付けて記憶する。周期分割要素は、周期ごとに異なる分割要素である。ＣＰＵ使用率は、仮想ＣＰＵのＣＰＵ使用率である。メモリ使用量は、仮想メモリのメモリ使用量である。ＮＷ  ＩＯは、ネットワークＩＯにかかる時間である。ディスクＩＯは、ディスクＩＯにかかる時間である。一例として、日周期の場合、周期分割要素は、２４時間の中の１時間ごとを示す。周期分割要素が０時である場合に、ＣＰＵ使用率として「ｘ０」、メモリ使用量として「ｙ０」、ＮＷ  ＩＯとして「ｚ０」、ディスクＩＯとして「ｗ０」を記憶している。
【００３５】
予測モデル生成部１３は、ＶＭごとに、ＶＭのライブマイグレーションにかかる時間を予測する予測モデル２２を生成する。なお、予測モデル２２は、例えば、定期的に生成されれば良い。例えば、予測モデル生成部１３は、ＶＭごとに、以下の処理を行う。予測モデル生成部１３は、特定のＶＭについて、過去のＬＭ情報から、ライブマイグレーションした時刻およびライブマイグレーションにかかった時間を取得する。ＬＭ情報は、情報取得部１１によって取得された、ＶＭごとの過去のライブマイグレーションした時刻およびライブマイグレーションにかかった時間を示す。予測モデル生成部１３は、特定のＶＭに対する負荷パターン２１から、ライブマイグレーションした時刻に対応する負荷情報を取得する。負荷情報は、ＣＰＵ使用率、メモリ使用量、ＮＷ  ＩＯおよびディスクＩＯである。そして、予測モデル生成部１３は、負荷情報を説明変数、ライブマイグレーションにかかった時間を目的変数として、重回帰分析を行い、特定のＶＭに対する予測モデル２２を生成する。
【００３６】
ここで、ＶＭに対する予測モデル２２は、以下の予想に基づいて生成される。すなわち、ＶＭの負荷が低いときはライブマイグレーション（ＬＭ）にかかる時間は小さいと予想される。但し、負荷が高くてもメモリの変更が少なければ、ＬＭにかかる時間は小さいと予想される。したがって、予測モデル生成部１３は、ＶＭに対して、過去にＬＭを行った際のＬＭ時刻およびＬＭ時間を記録しておき、ＬＭ時刻におけるＣＰＵ使用率およびメモリ使用量を含む負荷情報とＬＭ時間とから、ＬＭ時間を予測する予測モデル２２を生成する。
【００３７】
予測部１４は、ＶＭに対する予測モデル２２を用いて、ＶＭのライブマイグレーションにかかる時間を予測する。例えば、予測部１４は、ライブマイグレーションを行うＶＭおよびライブマイグレーションを行う予定日時を受け付けると、ＶＭに対応する負荷パターン２１から、予定日時に対応する負荷情報を取得する。予測部１４は、ＶＭに対する予測モデル２２を用いて、取得した負荷情報から予定日時にライブマイグレーションにかかる時間を予測する。
【００３８】
入出力インタフェース部１５は、ネットワークを介して通信を行うインタフェースである。入出力インタフェース部１５は、提供者向けインタフェース部１５１を有する。提供者向けインタフェース部１５１は、ネットワークを介してサービス提供者に対して、予測部１４によって予測されたライブマイグレーションにかかる時間を提供する。
【００３９】
［負荷パターン生成処理の一例］
ここで、負荷パターン生成処理の一例を、図５を参照して説明する。図５は、負荷パターン生成処理の一例を示す図である。図５では、ＶＭ名が「keiri-db-12」であるＶＭに対する負荷パターン２１を生成する負荷パターン生成処理について説明する。図５に示すように、負荷パターン生成部２１は、情報取得部１１によってＶＭ負荷情報履歴３５から取得された、ＶＭ「keiri-db-12」の過去の負荷情報を取得する。図５上図には、ＶＭ「keiri-db-12」の過去の負荷情報が表わされている。
【００４０】
そして、負荷パターン生成部１２は、ＶＭ「keiri-db-12」の過去の負荷情報について、周期的な変動から負荷の周期を特定する。ここでは、ＶＭ「keiri-db-12」の負荷の周期は、日周期であるとする。
【００４１】
そして、負荷パターン生成部１２は、ＶＭ「keiri-db-12」について、特定された周期を分割し、分割された周期の分割要素ごとの平均的な負荷情報を示す負荷パターン２１を生成する。ここでは、周期は、日周期であるので、負荷パターン生成部１２は、周期の分割要素を２４時間の中の１時間ごととし、１時間ごとの平均的な負荷情報を示す負荷パターン２１を生成する。例えば、負荷パターン生成部１２は、０時について、過去の負荷情報から０時〜１時のＣＰＵ使用率を取得し、取得したＣＰＵ使用率の平均値を算出し、算出した平均値を０時のＣＰＵ使用率として負荷パターン２１に設定する。負荷パターン生成部１２は、１時について、過去の負荷情報から１時〜２時のＣＰＵ使用率を取得し、取得したＣＰＵ使用率の平均値を算出し、算出した平均値を１時のＣＰＵ使用率として負荷パターン２１に設定する。同様に、負荷パターン生成部１２は、２時から２３時までのそれぞれのＣＰＵ使用率を算出し、負荷パターン２１に設定する。同様に、負荷パターン生成部１２は、メモリ使用量、ＮＷ  ＩＯ、ディスクＩＯについても、０時から２３時までのそれぞれのメモリ使用量、ＮＷ  ＩＯ、ディスクＩＯを算出し、負荷パターン２１に設定すれば良い。
【００４２】
［予測モデル生成処理の一例］
次に、予測モデル生成処理の一例を、図６を参照して説明する。図６は、予測モデル生成処理の一例を示す図である。図６では、ＶＭ名が「keiri-db-12」であるＶＭに対する予測モデル２２の予測モデル生成処理について説明する。図６に示すように、予測モデル生成部１３は、情報取得部１１によってＬＭログ３４から取得された、ＶＭ「keiri-db-12」の過去のライブマイグレーションした時刻およびライブマイグレーション時間を示す過去のＬＭ情報を取得する。図６上図左図には、ＶＭ「keiri-db-12」の過去のＬＭ情報が表わされている。また、図６上図右図には、負荷パターン生成部１２によって生成された、ＶＭ「keiri-db-12」の負荷パターン２１が表わされている。
【００４３】
そして、予測モデル生成部１３は、ＶＭ「keiri-db-12」について、過去のＬＭ情報から、ライブマイグレーションした時刻およびライブマイグレーション時間を取得する。予測モデル生成部１３は、ＶＭ「keiri-db-12」に対する負荷パターン２１から、ライブマイグレーションした時刻に対応する負荷情報を取得する。負荷情報は、ＣＰＵ使用率、メモリ使用量、ＮＷ  ＩＯおよびディスクＩＯである。そして、予測モデル生成部１３は、ライブマイグレーションした時刻、負荷情報およびライブマイグレーション時間を対応付けて保持する。図６中図では、ライブマイグレーションした時刻がＬＭした時刻に対応する。負荷情報がＣＰＵ使用率、メモリ使用量、ＮＷ  ＩＯおよびディスクＩＯに対応する。ライブマイグレーション時間がＬＭ時間に対応する。
【００４４】
そして、予測モデル生成部１３は、負荷情報を説明変数、ライブマイグレーションにかかった時間を目的変数として、保持した情報を用いて重回帰分析を行い、特定のＶＭに対する予測モデルを生成する。ここでは、負荷情報としてのＣＰＵ使用率、メモリ使用量、ＮＷ  ＩＯおよびディスクＩＯを説明変数とする。ＬＭ時間を目的変数とする。ＬＭ時間をｔ、ＣＰＵ使用率をｘ、メモリ使用量をｙ、ＮＷ  ＩＯをｚ、ディスクＩＯをｗとするとき、式（１）となるような重回帰式を求める。
ｔ＝β０＋β１ｘ＋β２ｙ＋β３ｚ＋β４ｗ・・・式（１）
【００４５】
すなわち、ＬＭした時刻「２０１７／６／２０  １：００」である場合の、ＣＰＵ使用率ｘ１、メモリ使用量ｙ１、ＮＷ  ＩＯｚ１、ディスクＩＯｗ１をそれぞれ説明変数ｘ、ｙ、ｚ、ｗに代入し、ＬＭ時間ｔ１を目的変数ｔに代入する。ＬＭした時刻「２０１７／６／２０  ２：５１」である場合の、ＣＰＵ使用率ｘ２、メモリ使用量ｙ２、ＮＷ  ＩＯｚ２、ディスクＩＯｗ２をそれぞれ説明変数ｘ、ｙ、ｚ、ｗに代入し、ＬＭ時間ｔ２を目的変数ｔに代入する。そして、保持した全ての情報を用いて説明変数および目的変数に代入すると、式（１）となるようなβ０、β１、β２、β３、β４を特定し、重回帰式を生成する。つまり、生成された重回帰式が、ＶＭ「keiri-db-12」に対する予測モデル２２である。
【００４６】
なお、予測モデル生成部１３は、予測モデル２２を生成するために、重回帰分析を用いたが、負荷情報とＬＭ時間との関係が求まれば、重回帰分析に限定されるものではない。また、ＣＰＵ使用率、メモリ使用量、ＮＷ  ＩＯおよびディスクＩＯを負荷情報として説明したが、ＮＷ  ＩＯおおよびディスクＩＯは、負荷情報として任意であっても良い。
【００４７】
［予測モデル生成処理の全体のフローチャート］
図７は、実施例１に係る予測モデル生成処理の全体のフローチャートの一例を示す図である。
【００４８】
図７に示すように、負荷パターン生成部１２は、予測モデルの生成要求を受け付けたか否かを判定する（ステップＳ１１）。なお、予測モデルの生成要求は、例えば、毎月行われても良いし、隔月に行われても良い。予測モデルの生成要求を受け付けていないと判定した場合には（ステップＳ１１；Ｎｏ）、負荷パターン生成部１２は、当該要求を受け付けるまで判定処理を繰り返す。
【００４９】
一方、予測モデルの生成要求を受け付けたと判定した場合には（ステップＳ１１；Ｙｅｓ）、負荷パターン生成部１２は、負荷パターン生成処理を実行する（ステップＳ１２）。なお、負荷パターン生成処理のフローチャートは、後述する。
【００５０】
そして、負荷パターン生成処理が実行された後、予測モデル生成部１３は、生成された負荷パターンを用いて、予測モデル生成処理を実行する（ステップＳ１３）。なお、予測モデル生成処理のフローチャートは、後述する。
【００５１】
［負荷パターン生成処理のフローチャート］
図８は、実施例１に係る負荷パターン生成処理のフローチャートの一例を示す図である。
【００５２】
図８に示すように、情報取得部１１は、ＶＭ負荷情報履歴３５から、ＶＭごとに、過去の時刻および負荷情報を取得する（ステップＳ２１）。負荷情報は、例えば、ＣＰＵ使用率、メモリ使用量、ＮＷ  ＩＯおよびディスクＩＯである。そして、負荷パターン生成部１２は、各ＶＭの負荷情報について、周期的な変動から、各ＶＭの周期を特定する（ステップＳ２２）。周期は、例えば、日周期、週周期、月周期、周期なしである。
【００５３】
そして、負荷パターン生成部１２は、ＶＭごとに、情報取得部１１によって取得された過去の時刻および負荷情報を用いて、特定された周期を分割し、周期の分割要素ごとに平均的な負荷を求め、負荷パターン２１を生成する（ステップＳ２３）。そして、負荷パターン生成部１２は、負荷パターン生成処理を終了する。
【００５４】
［予測モデル生成処理のフローチャート］
図９は、実施例１に係る予測モデル生成処理のフローチャートの一例を示す図である。
【００５５】
図９に示すように、予測モデル生成部１３は、ＶＭを選択する（ステップＳ３１）。
【００５６】
予測モデル生成部１３は、選択したＶＭが過去にライブマイグレーション（ＬＭ）した時刻の負荷情報とＬＭにかかった時間（ＬＭ時間）を取得する（ステップＳ３２）。例えば、予測モデル生成部１３は、情報取得部１１によってＬＭログ３４から取得された、ＬＭした時刻およびＬＭ時間を取得する。予測モデル生成部１３は、選択したＶＭに対する負荷パターン２１から、ＬＭした時刻に対応する負荷情報を取得する。
【００５７】
そして、予測モデル生成部１３は、負荷情報を説明変数、ＬＭ時間を目的変数として、重回帰分析を行い、選択したＶＭに対する予測モデル２２を生成する（ステップＳ３３）。例えば、予測モデル生成部１３は、式（１）のβ０、β１、β２、β３、β４を特定し、予測モデル２２として重回帰式を生成する。そして、予測モデル生成部１３は、選択したＶＭに対する予測モデル生成処理を終了する。
【００５８】
［予測処理のフローチャート］
図１０は、実施例１に係る予測処理のフローチャートの一例を示す図である。
【００５９】
図１０に示すように、予測部１４は、ＶＭおよびライブマイグレーション（ＬＭ）を行う予定日時を受け付けたか否かを判定する（ステップＳ４１）。例えば、予定日時を○月○日×時×分とする。ＶＭおよびライブマイグレーション（ＬＭ）を行う予定日時を受け付けていないと判定した場合には（ステップＳ４１；Ｎｏ）、予測部１４は、ＶＭおよびライブマイグレーション（ＬＭ）を行う予定日時を受け付けるまで判定処理を繰り返す。
【００６０】
一方、ＶＭおよびライブマイグレーション（ＬＭ）を行う予定日時を受け付けたと判定した場合には（ステップＳ４１；Ｙｅｓ）、予測部１４は、ＶＭに対する負荷パターン２１から、予定日時に予想される負荷情報を取得する（ステップＳ４２）。例えば、○月○日×時×分に予想される負荷情報は、ＣＰＵ使用率として３５％、メモリ使用量として０．７ＧＢであるとする。
【００６１】
そして、予測部１４は、ＶＭに対する予測モデル２２を用いて、予想される負荷情報から、ＬＭ時間を予測する（ステップＳ４３）。例えば、予測部１４は、式（１）のｘにＣＰＵ使用率としての３５％、式（１）のｙにメモリ使用量としての０．７ＧＢを代入して、ＬＭ時間を２５秒と予測する。そして、予測部１４は、予測処理を終了する。
【００６２】
［実施例１の効果］
上記実施例によれば、情報提供装置１は、ＶＭごとにＣＰＵ使用率、メモリ使用量を含む負荷情報を所定間隔で記憶した負荷履歴からＶＭごとにライブマイグレーションを実行した時刻の負荷情報を抽出する。情報提供装置１は、ライブマイグレーションを実行した時刻ごとの負荷情報とライブマイグレーションにかかった時間から、ＶＭごとのライブマイグレーション時間を予測する予測モデル２２を生成して記憶する。情報提供装置１は、所定のＶＭのライブマイグレーションの予測時間の指示を受けると、記憶した所定のＶＭのライブマイグレーション時間を予測する予測モデル２２から、ライブマイグレーション時間を予測する。情報提供装置１は、予測したライブマイグレーション時間をサービス提供者に提供する。かかる構成によれば、情報提供装置１は、パブリッククラウドにおけるライブマイグレーションにかかる時間を予測できる。
【００６３】
また、上記実施例によれば、情報提供装置１は、負荷履歴からＶＭごとに負荷情報の周期を求める。情報提供装置１は、ＶＭごとに求められた負荷情報の周期に応じて所定期間ごとの負荷情報を求め、ＶＭごとに負荷パターンを生成する。情報提供装置１は、負荷パターンからＶＭごとにライブマイグレーションを実行した時刻に対応する負荷情報を抽出する。かかる構成によれば、情報提供装置１は、ＶＭの負荷情報の周期に応じて生成される負荷パターンを用いてライブマイグレーションを実行した時刻に対応する負荷情報を抽出する。この結果、情報提供装置１は、ＶＭのライブマイグレーションにかかる時間を予測する予測モデルを生成することが可能となる。
【実施例２】
【００６４】
ところで、実施例１では、情報提供装置１は、ＶＭについて、過去の負荷情報から生成された負荷パターン２１およびＶＭが過去にライブマイグレーション（ＬＭ）した時のＬＭ時間に基づいて、ＬＭ時間を予測する予測モデル２２を生成すると説明した。しかしながら、情報提供装置１は、これに限定されず、ＶＭ構成情報３１１および負荷パターン２１が似ているＶＭ同士を１つのクラスタとし、以下の処理を行う。情報提供装置１は、クラスタごとに生成された負荷パターン２１およびクラスタに属するＶＭが過去にＬＭした時のＬＭ時間に基づいて、ＬＭ時間を予測する予測モデル２２を生成する。ＶＭをクラスタリングするのは、ＶＭがＬＭする頻度は少ないことが多いので、データを増やして予測の精度を上げるためである。
【００６５】
そこで、実施例２に係る情報提供装置１は、ＶＭ構成情報３１１および負荷パターン２１が似ているＶＭ同士を１つのクラスタとし、クラスタごとに、ＬＭ時間を予測する予測モデル２２を生成する場合を説明する。
【００６６】
［実施例２に係る情報提供システムの構成］
図１１は、実施例２に係る情報提供システムの構成を示す機能ブロック図である。なお、実施例１の図１に示す情報提供装置１と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例１と実施例２とが異なるところは、クラスタ生成部４１およびクラスタリング結果４２を追加した点である。また、実施例１と実施例２とが異なるところは、負荷パターン生成部１２を負荷パターン生成部１２Ａに、予測モデル生成部１３を予測モデル生成部１３Ａに変更した点である。
【００６７】
クラスタ生成部４１は、同じユーザが管理する複数のＶＭをクラスタリングする。
【００６８】
例えば、まず、クラスタ生成部４１は、ユーザ管理表３１３を用いて所定のユーザが管理するＶＭの情報を取得する。クラスタ生成部４１は、取得したＶＭの情報が複数ある場合には、それぞれのＶＭについて負荷パターン２１を生成する。なお、負荷パターン２１は、負荷パターン生成部１２Ａによって生成される。そして、クラスタ生成部４１は、ＶＭごとに、負荷パターン２１を生成する際に特定される負荷の周期ごとに、ＶＭを分類する。負荷の周期には、例えば、日周期、週周期、月周期または周期なしが挙げられる。そして、クラスタ生成部４１は、負荷の周期ごとに、負荷の周期が同じＶＭ同士の負荷パターン２１の距離を計算して、負荷パターン２１から得られるクラスタを生成する。負荷パターン２１から得られるクラスタは、例えば、日周期の場合には、昼に所定の閾値より負荷が高い昼型、夜に所定の閾値より負荷が高い夜型、周期なし型としても良い。以降では、日周期の場合には、昼に所定の閾値より負荷が高い昼型、夜に所定の閾値より負荷が高い夜型、周期なし型として説明する。
【００６９】
負荷パターン２１の距離の計算は、一例として、ユークリッド距離を用いれば良い。例えば、２つのＶＭを示すＶＭａおよびＶＭｂの負荷パターン２１の距離の計算の一例を説明する。負荷情報は、ＣＰＵ使用率、メモリ使用量、ＮＷ  ＩＯおよびディスクＩＯであるとする。そして、ｘがＣＰＵ使用率、ｙがメモリ使用量、ｚがＮＷ  ＩＯ、ｗがディスクＩＯであるとする。すると、クラスタ生成部４１は、ユークリッド距離を用いて、ＶＭａをＶＭｂの負荷パターン２１の距離ｄ（ａ，ｂ）を計算する。なお、例えば、ａｘ０は、ＶＭａの０時におけるＣＰＵ使用率であるとする。ａｙ０は、ＶＭａの０時におけるメモリ使用量であるとする。
【数１】
2019057236.tif 000003
【００７０】
次に、クラスタ生成部４１は、ＶＭ構成情報３１１を用いて所定のユーザが管理する複数のＶＭを、同じサイズのＶＭ同士で纏めてグループ分けする。サイズとは、例えば、ＶＣＰＵのコア数やメモリサイズのことをいう。加えて、クラスタ生成部４１は、同じサイズのグループに属するＶＭをさらにＶＭの名前でグループ分けする。すなわち、クラスタ生成部４１は、ＶＭ構成情報３１１から得られるクラスタを生成する。これは、負荷パターン２１が似ているＶＭ同士はそれぞれのＶＭの名前も似ていると予想されるからである。
【００７１】
ＶＭの名前でのグループ分けは、一例として、レーベンシュタイン距離を用いれば良い。例えば、クラスタ生成部４１は、同じサイズのグループに属するそれぞれのＶＭの名前を形態素に分割する。そして、クラスタ生成部４１は、２つのＶＭ同士で、分割された単語が何個違うかを距離としたレーベンシュタイン距離を計算して、ＶＭ構成情報３１１のクラスタを生成する。すなわち、クラスタ生成部４１は、サイズは同じであるが、名前が似ていないＶＭを異なるクラスタに属するようにする。そして、クラスタ生成部４１は、同じクラスタに属するＶＭ名から、名前パターンを生成する。
【００７２】
次に、クラスタ生成部４１は、負荷パターン２１から得られるクラスタおよびＶＭ構成情報３１１から得られるクラスタを用いて、負荷パターンと構成情報とを関連付ける。負荷パターンと構成情報との関連付けは、一例として、ベイズの推定を用いれば良い。すなわち、クラスタ生成部４１は、負荷パターン２１から得られるクラスタが昼型である場合に、ＶＭ構成情報３１１から得られるクラスタの中のどの構成情報（名前パターン、サイズタイプ）と関連が深いかを求める。そして、クラスタ生成部４１は、負荷パターンと構成情報との関連付けをクラスタリング結果４２に設定する。
【００７３】
負荷パターン生成部１２Ａは、ＶＭごとの負荷パターン２１を生成する。加えて、負荷パターン生成部１２Ａは、クラスタ生成部４１によって生成されたクラスタごとの負荷パターン２１を生成する。すなわち、負荷パターン生成部１２Ａは、クラスタリング結果４２に設定された、負荷パターンと構成情報との関連付けごとの負荷パターン２１を生成する。つまり、負荷パターン生成部１２Ａは、１つのクラスタについて、クラスタに属するＶＭ群の負荷パターン２１を生成する。
【００７４】
予測モデル生成部１３Ａは、クラスタ生成部４１によって生成されたクラスタごとに、クラスタに属するＶＭのライブマイグレーションにかかる時間を予測する予測モデル２２を生成する。
【００７５】
［クラスタ生成処理の一例］
ここで、クラスタ生成処理の一例を、図１２Ａ〜図１２Ｄを参照して説明する。図１２Ａ〜図１２Ｄは、クラスタ生成処理の一例を示す図である。なお、クラスタ生成部４１は、ユーザ管理表３１３を用いて特定のユーザが管理するＶＭの情報を複数取得したものとする。
【００７６】
図１２Ａに示すように、クラスタ生成部４１は、取得された複数のＶＭの情報に関するそれぞれのＶＭに対する負荷パターン２１を生成する。ＶＭに対する負荷パターン２１は、負荷パターン生成部１２Ａによって生成される。そして、負荷パターン２１の負荷の周期が、負荷パターン生成部１２Ａによって特定される。ここでは、ＶＭ「keiri-db-12」、ＶＭ「keiri-db-53」・・・のそれぞれの負荷パターン２１が生成され、負荷の周期が特定されたものとする。
【００７７】
そして、クラスタ生成部４１は、ＶＭごとに、負荷パターン２１を生成する際に特定される負荷の周期ごとに、ＶＭを分類する。ここでは、「jinji-db-53」、「keiri-db-12」、「keiri-ana-44」、「keiri-jimu-24」、「keiri-db-23」のＶＭが日周期に分類される。
【００７８】
そして、クラスタ生成部４１は、負荷の周期ごとに、負荷の周期が同じＶＭ同士の負荷パターン２１の距離を計算して、負荷パターン２１から得られるクラスタを生成する。負荷パターン２１の距離の計算は、一例として、ユークリッド距離を用いれば良い。ここでは、負荷の周期が日周期である場合には、負荷パターン２１から得られるクラスタとして昼型には、「jinji-db-53」、「keiri-jimu-24」のＶＭが属する。負荷パターン２１から得られるクラスタとして夜型には、「keiri-ana-44」のＶＭが属する。負荷パターン２１から得られるクラスタとして周期なし型には、「keiri-db-12」、「keiri-db-23」のＶＭが属する。この負荷パターン２１から得られるクラスタをＡ１とする。
【００７９】
図１２Ｂに示すように、クラスタ生成部４１は、ＶＭ構成情報３１１を用いて所定のユーザが管理する複数のＶＭを、同じサイズのＶＭ同士で纏めてグループ分けする。サイズとは、例えば、ＶＣＰＵのコア数やメモリサイズのことをいう。ここでは、ＶＣＰＵ４個且つメモリ４ＧＢを示すサイズタイプＣ４Ｍ４のＶＭ「keiri_db-12」、「keiri-db-23」、「jinji-db-53」が１つのグループとなる（○記号参照）。ＶＣＰＵ４個且つメモリ２ＧＢを示すサイズタイプＣ４Ｍ２のＶＭ「keiri_jimu-24」が１つのグループとなる（△記号参照）。ＶＣＰＵ８個且つメモリ４ＧＢを示すサイズタイプＣ８Ｍ４のＶＭ「keiri_ana-44」が１つのグループとなる（□記号参照）。
【００８０】
図１２Ｃに示すように、クラスタ生成部４１は、同じサイズのグループに属するＶＭをさらにＶＭの名前でグループ分けする。ここでは、サイズタイプＣ４Ｍ４のＶＭのグループについて説明する。サイズタイプＣ４Ｍ４のＶＭのグループには、「keiri_db-12」、「keiri-db-23」、「jinji-db-53」のＶＭが含まれる。クラスタ生成部４１は、このグループに属するＶＭの名前をハイフンで形態素に分割する。ＶＭの名前「keiri_db-12」は、「keiri」、「db」、「12」の形態素に分割される。ＶＭの名前「keiri_db-23」は、「keiri」、「db」、「23」の形態素に分割される。ＶＭの名前「jinji_db-53」は、「jinji」、「db」、「53」の形態素に分割される。
【００８１】
そして、クラスタ生成部４１は、２つのＶＭ同士で、分割された単語が何個違うかを距離としたレーベンシュタイン距離を計算する。ここでは、「keiri_db-12」と「keiri-db-23」とは、１と計算される。「keiri_db-12」と「jinji-db-53」とは、２と計算される。「keiri_db-23」と「jinji-db-53」とは、２と計算される。
【００８２】
そして、クラスタ生成部４１は、計算されたレーベンシュタイン距離を用いて、ＶＭ構成情報３１１から得られるクラスタを生成する。ここでは、距離が１を示す「keiri_db-12」と「keiri-db-23」とが、１つのＶＭ構成情報３１１から得られるクラスタとして生成される。距離が２を示す「jinji_db-53」が、１つのＶＭ構成情報３１１から得られるクラスタとして生成される。
【００８３】
そして、クラスタ生成部４１は、同じクラスタに属するＶＭ名から名前パターンを生成する。ここでは、１つのＶＭ構成情報３１１から得られるクラスタに属する「keiri_db-12」、「keiri-db-23」の名前パターンは、「keiri-db-??」と生成される。１つのＶＭ構成情報３１１から得られるクラスタに属する「jinji-db-53」の名前パターンは、「jinji-db-??」と生成される。名前パターン内の「??」は、任意の英数字を示す。この結果、ＶＭのサイズタイプとしてＣ４Ｍ４、名前パターンとして「keiri-db-??」のＶＭ構成情報３１１から得られるクラスタには、「keiri_db-12」、「keiri-db-23」のＶＭが属することになる。ＶＭのサイズタイプとしてＣ４Ｍ４、名前パターンとして「jinji-db-??」のＶＭ構成情報３１１から得られるクラスタには、「jinji_db-53」のＶＭが属することになる。すなわち、クラスタ生成部４１は、サイズは同じであるが、名前が似ていないＶＭを異なるクラスタに設定する。その他、ＶＭのサイズタイプとしてＣ４Ｍ２、名前パターンとして「keiri-jimu-??」のＶＭ構成情報３１１から得られるクラスタが生成される。ＶＭのサイズタイプとしてＣ８Ｍ４、名前パターンとして「keiri-ana-??」のＶＭ構成情報３１１から得られるクラスタが生成される。このＶＭ構成情報３１１から得られるクラスタをＡ２とする。
【００８４】
そして、クラスタ生成部４１は、負荷パターン２１から得られるクラスタＡ１およびＶＭ構成情報３１１から得られるクラスタＡ２を用いて、ＶＭ名に対応付けて負荷パターンおよび構成情報（名前パターン、サイズタイプ）を保持する。
【００８５】
図１２Ｄに示すように、クラスタ生成部４１は、保持した情報を用いて、負荷パターンと構成情報とを関連付ける。すなわち、負荷パターンが例えば「周期なし」のときに関連付けられる構成情報を推定する。負荷パターンが例えば「昼型」のときに関連付けられる構成情報を推定する。負荷パターンが例えば「夜型」のときに関連付けられる構成情報を推定する。例えば、ベイズ推定を用いれば良い。一例として、負荷パターンが「周期なし」のときを事象Ａとし、構成情報が「keiri-db」のときを事象Ｂとする。すると、事象Ａが起きる確率をＰ（Ａ）、事象Ｂが起きる確率をＰ（Ｂ）、事象Ａが起きた後の事象Ｂの確率をＰ（Ｂ｜Ａ）とする。すると、Ｐ（Ｂ｜Ａ）は、以下の式により求められる。なお、Ｐ（Ｂ）は、構成情報「keiri-db」が起きる確率であり、２／５である。Ｐ（Ａ）は、構成情報「周期なし」が起きる確率であり、２／５である。Ｐ（Ａ｜Ｂ）は、事象Ｂ（構成情報が「keiri-db」）が起きた後の事象Ａ（負荷パターンが「周期なし」）の確率であり、１である。
Ｐ（Ｂ｜Ａ）＝Ｐ（Ａ｜Ｂ）Ｐ（Ｂ）／Ｐ（Ａ）＝１×（２／５）／（２／５）＝１
これにより、事象Ａが起きたとき１（１００％）の確率で事象Ｂが起きるので、事象Ａと事象Ｂとは関連付けられる。なお、Ｐ（Ｂ｜Ａ）が１でなくても、所定の閾値以上での場合に、事象Ａと事象Ｂとが関連付けられるとしても良い。例えば、所定の閾値は、０．９以であっても良いし、０．８であっても良いし、経験的に定められれば良い。
【００８６】
この結果、クラスタ生成部４１は、負荷パターンが「周期なし」のときに関連付けられる構成情報を（keiri_db、C4M4）として推定する。クラスタ生成部４１は、負荷パターンが「昼型」のときに関連付けられる構成情報を（keiri_jimu、C4M2）として推定する。クラスタ生成部４１は、負荷パターンが「夜型」のときに関連付けられる構成情報を（keiri_ana、C8M4）として推定する。クラスタ生成部４１は、負荷パターンが「昼型」のときに関連付けられる構成情報を（jinji_db、C4M4）として推定する。負荷パターンと構成情報との関連付けが１つのクラスタとなる。そして、クラスタ生成部４１は、負荷パターンおよび構成情報の関連付けをクラスタリング結果４２として格納する。
【００８７】
［予測モデル生成処理の全体のフローチャート］
図１３は、実施例２に係る予測モデル生成処理の全体のフローチャートの一例を示す図である。
【００８８】
図１３に示すように、負荷パターン生成部１２Ａは、予測モデルの生成要求を受け付けたか否かを判定する（ステップＳ５１）。なお、予測モデルの生成要求は、例えば、毎月行われても良いし、隔月に行われても良い。予測モデルの生成要求を受け付けていないと判定した場合には（ステップＳ５１；Ｎｏ）、負荷パターン生成部１２Ａは、当該要求を受け付けるまで判定処理を繰り返す。
【００８９】
一方、予測モデルの生成要求を受け付けたと判定した場合には（ステップＳ５１；Ｙｅｓ）、クラスタ生成部４１は、クラスタ生成処理を実行する（ステップＳ５２）。なお、クラスタ生成処理のフローチャートは、後述する。
【００９０】
そして、負荷パターン生成部１２Ａは、クラスタごとに負荷パターン生成処理を実行する（ステップＳ５３）。
【００９１】
そして、クラスタごとの負荷パターン生成処理が実行された後、予測モデル生成部１３Ａは、クラスタごとに予測モデル生成処理を実行する（ステップＳ５４）。なお、予測モデル生成処理のフローチャートは、後述する。
【００９２】
［クラスタ生成処理のフローチャート］
図１４は、実施例２に係るクラスタ生成処理のフローチャートの一例を示す図である。
【００９３】
図１４に示すように、クラスタ生成部４１は、同じユーザが管理するＶＭの中で、負荷パターンが似ているＶＭをクラスタリングする（ステップＳ６１）。なお、負荷パターンが似ているＶＭをクラスタリングする処理は、後述する。
【００９４】
クラスタ生成部４１は、同じユーザが管理するＶＭの中で、構成情報が似ているＶＭをクラスタリングする（ステップＳ６２）。なお、構成情報が似ているＶＭをクラスタリングする処理は、後述する。
【００９５】
そして、クラスタリング生成部４１は、負荷パターン２１から得られるクラスタとＶＭの構成情報のクラスタとを関連付け、負荷パターンと構成情報とがともに似た同士のクラスタを生成する（ステップＳ６３）。例えば、クラスタリング生成部４１は、負荷パターン２１から得られるクラスタとＶＭの構成情報のクラスタとの関連付けを、ベイズ推定を用いて行う。そして、クラスタ生成部４１は、クラスタ生成処理を終了する。
【００９６】
［負荷パターンが似ているＶＭをクラスタリングする処理のフローチャート］
図１５は、負荷パターンが似ているＶＭをクラスタリングする処理のフローチャートの一例を示す図である。
【００９７】
負荷パターン生成部１２Ａは、選択されたクラスタに属する全ＶＭについて、負荷パターン２１を生成する（ステップＳ７１）。
【００９８】
そして、クラスタ生成部４１は、負荷パターン２１の周期ごとにＶＭを分類する（ステップＳ７２）。そして、クラスタ生成部４１は、周期が同じＶＭ同士の負荷パターン２１の距離を計算し、負荷パターン２１のクラスタを生成する（ステップＳ７３）。例えば、クラスタ生成部４１は、負荷パターン２１の距離を、例えば、ユークリッド距離を用いて計算する。なお、負荷パターン２１のクラスタは、例えば、日周期の場合には、昼型、夜型、周期なし型に分類される。そして、クラスタ生成部４１は、負荷パターンが似ているＶＭをクラスタリングする処理を終了する。
【００９９】
［構成情報が似ているＶＭをクラスタリングする処理のフローチャート］
図１６は、負荷パターンが似ているＶＭをクラスタリングする処理のフローチャートの一例を示す図である。
【０１００】
図１６に示すように、クラスタ生成部４１は、選択されたクラスタに属する全ＶＭを、同じサイズのＶＭ同士で纏めてグループ分けする（ステップＳ８１）。サイズとは、例えば、ＶＣＰＵのコア数やメモリサイズのことをいう。
【０１０１】
そして、クラスタ生成部４１は、同じサイズのグループに属するＶＭをさらにＶＭの名前でグループ分けする（ステップＳ８２）。例えば、クラスタ生成部４１は、ＶＭの名前でのグループ分けを、レーベンシュタイン距離を用いて行う。そして、クラスタ生成部４１は、構成情報が似ているＶＭをクラスタリングする処理を終了する。
【０１０２】
［予測モデル生成処理のフローチャート］
図１７は、実施例２に係る予測モデル生成処理のフローチャートの一例を示す図である。
【０１０３】
図１７に示すように、予測モデル生成部１３Ａは、クラスタを選択する（ステップＳ９１）。
【０１０４】
予測モデル生成部１３Ａは、選択したクラスタに属するＶＭごとにＶＭが過去にライブマイグレーション（ＬＭ）した時刻の負荷情報とＬＭにかかった時間（ＬＭ時間）を取得する（ステップＳ９２）。例えば、予測モデル生成部１３Ａは、情報取得部１１によってＬＭログ３４から取得された、ＬＭした時刻およびＬＭ時間を取得する。予測モデル生成部１３は、選択したクラスタに属するＶＭに対する負荷パターン２１から、ＬＭした時刻に対応する負荷情報を取得する。
【０１０５】
そして、予測モデル生成部１３Ａは、負荷情報を説明変数、ＬＭ時間を目的変数として、重回帰分析を行い、選択したＶＭに対する予測モデル２２を生成する（ステップＳ９３）。例えば、予測モデル生成部１３Ａは、式（１）のβ０、β１、β２、β３、β４を特定し、予測モデル２２として重回帰式を生成する。そして、予測モデル生成部１３Ａは、選択したクラスタの予測モデル生成処理を終了する。
【０１０６】
［実施例２の効果］
上記実施例によれば、情報提供装置１は、負荷パターンおよび構成が類似したＶＭをグループ化し、グループごとにライブマイグレーションを実行した時刻の負荷情報を抽出する。そして、情報提供装置１は、抽出した時刻ごとの負荷情報とライブマイグレーションにかかった時間から、グループごとの予測モデルを生成する。かかる構成によれば、情報提供装置１は、負荷パターンおよび構成が類似した複数のＶＭを含むグループを用いて予測モデルを生成することで、ＬＭの実行データを増やすことができ、パブリッククラウドにおけるライブマイグレーションにかかる時間を精度良く予測できる。
【実施例３】
【０１０７】
ところで、実施例１では、情報提供装置１は、ＶＭについて、過去の負荷情報から生成された負荷パターン２１およびＶＭが過去にライブマイグレーション（ＬＭ）した時のＬＭ時間に基づいて、ＬＭ時間を予測する予測モデルを生成すると説明した。実施例２では、情報提供装置１は、ＶＭ構成情報３１１および負荷パターン２１が似ているＶＭ同士を１つのクラスタとし、クラスタごとに、ＬＭ時間を予測する予測モデル生成すると説明した。しかしながら、情報提供装置１は、これに限定されず、ＰＭを所定の期間にメンテナンスする場合に、生成した予測モデルを用いて、ＰＭが管理するＶＭのＬＭをスケジューリングしても良い。
【０１０８】
そこで、実施例３に係る情報提供装置１は、ＰＭを所定の期間にメンテナンスする場合に、生成した予測モデルを用いて、ＰＭが管理するＶＭのＬＭをスケジューリングする場合を説明する。
【０１０９】
［実施例３に係る情報提供装置の構成］
図１８は、実施例３に係る情報提供装置の構成を示す機能ブロック図である。なお、実施例１の図１に示す情報提供装置１と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例１と実施例３とが異なるところは、スケジュール生成部５１、メンテナンススケジュール５２およびユーザ向けインタフェース部１５２を追加した点である。
【０１１０】
メンテナンススケジュール５２は、ＰＭをメンテンナンスする場合のＰＭが管理するＶＭのライブマイグレーションスケジュールである。ＰＭのメンテンナンスとは、例えば、ＰＭのＯＳをアップグレードすることを意味する。
【０１１１】
ユーザ向けインタフェース部１５２は、ネットワークを介してユーザ提供者に対して、後述するスケジュール生成部５１によって生成されたメンテンナススケジュール５２を提供する。
【０１１２】
スケジュール生成部５１は、ＰＭを所定の期間にメンテナンスする場合に、予測モデル生成部１３によって生成された予測モデル２２を用いて、ＰＭが管理するＶＭのＬＭをスケジューリングする。
【０１１３】
例えば、スケジュール生成部５１は、メンテナンス対象のＰＭおよびメンテナンス期間を受け付けると、ＰＭ管理表３１２から当該ＰＭが管理するＶＭのＶＭ名を取得する。そして、スケジュール生成部５１は、ＶＭ名ごとに、ＶＭ名が示すＶＭに対する負荷パターン２１を用いて、メンテナンス期間中の各時点（周期分割要素）における負荷情報を取得する。そして、スケジュール生成部５１は、ＶＭ名が示すＶＭに対する予測モデル２２および負荷情報を用いて、各時点（周期予測要素）について、ＶＭのＬＭにかかる時間を予測する。
【０１１４】
そして、スケジュール生成部５１は、各時点（周期予測要素）における各ＶＭのＬＭにかかる時間を用いて、ＬＭ時間が最短になるように、メンテナンス期間のメンテナンススケジュール５２を生成する。例えば、スケジュール生成部５１は、メンテナンス期間のメンテナンススケジュール５２を、線形計画法を用いて生成すれば良い。
【０１１５】
そして、スケジュール生成部５１は、生成したメンテンナス期間のメンテナンススケジュール５２を、ユーザ向けインタフェース部１５２を介してユーザに提示する。
【０１１６】
［スケジュール生成処理の一例］
ここで、スケジュール生成処理の一例を、図１９を参照して説明する。図１９は、スケジュール生成処理の一例を示す図である。なお、スケジュール生成部５１は、メンテナンス対象のＰＭおよびメンテナンス期間を受け付けたものとする。
【０１１７】
図１９に示すように、スケジュール生成部５１は、ＰＭ管理表３１２からメンテナンス対象のＰＭについて、ＰＭが管理するＶＭのＶＭ名を取得する。ここでは、メンテナンス対象のＰＭのＰＭ名が「ＰＭ１」であるとすると、ＰＭ管理表３１２から、「ＰＭ１」が管理するＶＭ名として「keiri-db-23」、「keiri-ana-44」および「keiri-jimu-24」が取得される。
【０１１８】
そして、スケジュール生成部５１は、ＶＭ名ごとに、ＶＭ名が示すＶＭに対する負荷パターン２１を用いて、メンテナンス期間中の各時点（周期分割要素）における負荷情報を取得する。ここでは、スケジュール生成部５１は、「keiri-db-23」に対する負荷パターン２１を用いて、メンテナンス期間中の各時刻（周期分割要素）における負荷情報を取得する。スケジュール生成部５１は、「keiri-ana-44」に対する負荷パターン２１を用いて、メンテナンス期間中の各時刻（周期分割要素）における負荷情報を取得する。スケジュール生成部５１は、「keiri-jimu-24」に対する負荷パターン２１を用いて、メンテナンス期間中の各時刻（周期分割要素）における負荷情報を取得する。
【０１１９】
そして、スケジュール生成部５１は、ＶＭ名が示すＶＭに対する予測モデル２２および当該ＶＭに対するメンテナンス期間中の各時刻（周期分割要素）における負荷情報を用いて、各時刻（周期予測要素）について、当該ＶＭのＬＭにかかる時間を予測する。ここでは、スケジュール生成部５１は、「keiri-jimu-24」に対する予測モデル２２および「keiri-jimu-24」に対するメンテナンス期間中の各時刻（周期分割要素）における負荷情報を用いて、各時刻（周期予測要素）について、「keiri-jimu-24」のＬＭにかかる時間を予測する。一例として、時刻（周期分割要素）が「○月○日９：００」である場合には、ＬＭ時間予測が「２５秒」である。スケジュール生成部５１は、「keiri-ana-44」に対する予測モデル２２および「keiri-ana-44」に対するメンテナンス期間中の各時刻（周期分割要素）における負荷情報を用いて、各時刻（周期予測要素）について、「keiri-ana-44」のＬＭにかかる時間を予測する。一例として、時刻（周期分割要素）が「○月○日９：００」である場合には、ＬＭ時間予測が「５０秒」である。スケジュール生成部５１は、「keiri-db-23」に対する予測モデル２２および「keiri-db-23」に対するメンテナンス期間中の各時刻（周期分割要素）における負荷情報を用いて、各時刻（周期予測要素）について、「keiri-db-23」のＬＭにかかる時間を予測する。一例として、時刻（周期分割要素）が「○月○日９：００」である場合には、ＬＭ時間予測が「４０秒」である。
【０１２０】
そして、スケジュール生成部５１は、各時刻（周期予測要素）における各ＶＭのＬＭにかかる時間を用いて、ＬＭ時間が最短になるように、メンテナンス期間のメンテナンススケジュール５２を生成する。例えば、スケジュール生成部５１は、メンテナンス期間のメンテナンススケジュール５２を、線形計画法を用いて生成すれば良い。
【０１２１】
なお、実施例３では、スケジュール生成部５１は、メンテナンス対象のＰＭおよびメンテナンス期間を受け付けると、ＰＭが管理するＶＭに対する予測モデル２２を用いて、ＰＭが管理するＶＭのＬＭをスケジューリングすると説明した。しかしながら、スケジュール生成部５１は、メンテナンス対象のＰＭおよびメンテナンス期間を受け付けると、ＰＭが管理するＶＭが属するクラスタに対する予測モデル２２を用いて、ＰＭが管理するＶＭのＬＭをスケジュールしても良い。
【０１２２】
［メンテナンススケジュールの提示の例］
図２０Ａおよび図２０Ｂは，メンテナンススケジュールの提示の一例を示す図である。なお、図２０Ａおよび図２０Ｂでは、メンテナンス期間が「７／１  ０：００〜」である場合とする。メンテナンス対象が「ＰＭ１、ＰＭ２、ＰＭ３、ＰＭ４」である場合とする。
【０１２３】
図２０Ａは、メンテナンススケジュール５２Ａをガントチャート形式で提示したものである。ここでは、ＰＭ１が管理する「keiri-db-23」、「keiri-jimu-24」および「keiri-ana-44」は、「keiri-db-23」、「keiri-jimu-24」および「keiri-ana-44」の順序でＬＭさせることがわかる。すなわち、「keiri-db-23」をＬＭさせ、「keiri-db-23」をＬＭさせた後「keiri-jimu-24」をＬＭさせ、「keiri-jimu-24」をＬＭさせた後「keiri-ana-44」をＬＭさせる。そして、ＰＭ１が空になると、ＰＭ１のメンテナンス作業がされる。そして、ＰＭ１のメンテナンス作業が終了すると、ＰＭ２の作業に遷移すべく、ＰＭ２が管理する「keiri-db-12」をＬＭさせる。このように、スケジュール生成部５１は、全てのＰＭについて、ＶＭを空にするために順次ＶＭをＬＭさせるべく、メンテナンススケジュール５２Ａを生成する。
【０１２４】
図２０Ｂは、メンテナンススケジュール５２Ｂを表形式で提示したものである。ここでは、予定時刻が「７／１  ０：１０」にメンテナンスが開始する。予定時刻が「７／１  ０：１０〜０：２０」に、「keiri-db-23」がＰＭ１からＰＭ２にＬＭする。予定時刻が「７／１  ０：２０〜０：２２」に、「keiri-jimu-24」がＰＭ１からＰＭ３にＬＭする。予定時刻が「７／１  ０：２２〜０：２８」に、「keiri-ana-44」がＰＭ１からＰＭ４にＬＭする。かかる予定時刻は、「keiri-ana-44」にとってＬＭ時間が一番短いときではなく、負荷がかかる時刻である。しかし、全体のＬＭ時間を一番短くするために、「keiri-ana-44」のＬＭ時間を、この予定時刻としている。したがって、影響として「レスポンス低下可能性あり」が表わされる。そして、ＰＭ１が空になる予定時刻が「７／１  ０：２８〜０：３３」に、ＰＭ１のメンテナンス作業がされる。そして、ＰＭ１のメンテナンス作業が終了すると、予定時刻が「７／１  ０：３３〜０：４３」に、「keiri-db-12」がＰＭ２からＰＭ１にＬＭする。そして、予定時刻が「７／１  ６：５８」にメンテナンスが終了する。
【０１２５】
このようにして、スケジュール生成部５１は、メンテナンススケジュール５２をユーザに提示することで、メンテナンススケジュール５２の全体の予定状況を把握させることができる。
【０１２６】
［スケジュール生成処理のフローチャート］
図２１は、実施例３に係るスケジュール生成処理のフローチャートの一例を示す図である。
【０１２７】
図２１に示すように、スケジュール生成部５１は、メンテナンス対象およびメンテナンス期間を含むメンテナンススケジュール生成指示を受け付けたか否かを判定する（ステップＳ１０１）。メンテナンススケジュール生成指示を受けて付けていないと判定した場合には（ステップＳ１０１；Ｎｏ）、スケジュール生成部５１は、メンテナンススケジュール生成指示を受け付けるまで、判定処理繰り返す。
【０１２８】
一方、メンテナンススケジュール生成指示を受け付けたと判定した場合には（ステップＳ１０１；Ｙｅｓ）、スケジュール生成部５１は、ＰＭ管理表３１２から、メンテナンス対象のＰＭがホストしているＶＭのＶＭ名を取得する（ステップＳ１０２）。そして、スケジュール生成部５１は、ＶＭごとに、ＶＭに対する負荷パターン２１を用いて、メンテナンス期間中の各時点（周期予測要素）における負荷情報を取得する（ステップＳ１０３）。
【０１２９】
そして、スケジュール生成部５１は、ＶＭごとに、各時点（周期予測要素）について、ＶＭのライブマイグレーション（ＬＭ）にかかる時間を、負荷情報と予測モデル２２から予測する（ステップＳ１０４）。そして、スケジュール生成部５１は、ＬＭ時間が最短になるように、メンテナンススケジュール５２を生成する（ステップＳ１０５）。そして、スケジュール生成部５１は、スケジュール生成処理を終了する。
【０１３０】
［実施例３の効果］
上記実施例によれば、情報提供装置１は、ＰＭを所定の期間にメンテナンスする場合に、所定の期間の時点ごとに、ＰＭに搭載されるＶＭのライブマイグレーションにかかる時間を、ＶＭに対応する予測モデル２１を用いて予測する。情報提供装置１は、ライブマイグレーションにかかる時間の合計が最小になるように、所定の期間中のＶＭのライブマイグレーションの順序をスケジューリングする。かかる構成によれば、情報提供装置１は、ＶＭに対応する予測モデル２１を用いることで、メンテナンス対象のＰＭに搭載されるＶＭのメンテナンス期間のライブマイグレーションにかかる時間を予測できる。この結果、情報提供装置１は、予測されるライブマイグレーションにかかる時間を基に、メンテナンス対象のＰＭのメンテナンススケジュール５２を生成できる。そして、情報提供装置１は、メンテナンススケジュール５２を生成することで、メンテンナンスの期間を短縮できる。
【実施例４】
【０１３１】
ところで、実施例３では、スケジュール生成部５１は、メンテナンススケジュール５２を、例えばガントチャート形式や表形式でユーザに提示すると説明した。しかしながら、スケジュール生成部５１は、これに限定されず、メンテナンススケジュール５２を画面形式でユーザに提示しても良い。
【０１３２】
［ユーザに提示する画面の一例］
図２２は、実施例４に係るユーザに提示する画面の一例を示す図である。なお、図２２の画面は、図２０Ａおよび図２０Ｂで示した情報を利用したものである。
【０１３３】
図２２に示すように、ユーザに対する定期メンテナンスのお知らせが、ガントチャート形式で表示されている。そして、「keiri-ana-44」のＬＭ時間に注意マークが表わされている。そして、ユーザがそのマークにマウスオーバすると、注意マークの説明が表わされる。ここでは、「レスポンス低下可能性あり」が表わされる。
【０１３４】
［実施例４の効果］
上記実施例によれば、情報提供装置１は、スケジューリングの結果、ライブマイグレーションによりユーザの業務に影響がでると予想されるＶＭがある場合には、ＶＭのユーザ向けの画面に注意を喚起する情報を提示する。かかる構成によれば、情報提供装置１は、ＶＭを管理するユーザに対して注意を喚起することができる。
【０１３５】
［その他］
なお、上記実施例１−４では、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、負荷パターン生成部１２を、ＶＭごとに、過去の負荷情報から負荷の周期を特定する特定部と、負荷の周期ごとに異なる分割要素ごとの負荷情報を算出する算出部と、分割要素ごとの負荷情報を示す負荷パターン２１を生成する生成部と、に分散しても良い。また、情報取得部１１と負荷パターン生成部１２とを統合しても良い。記憶部２０を情報提供装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【０１３６】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１に示した情報提供装置１と同様の機能を実現する情報提供プログラムを実行するコンピュータの一例を説明する。図２３は、情報提供プログラムを実行するコンピュータの一例を示す図である。
【０１３７】
図２３に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラムなどを読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【０１３８】
ドライブ装置２１３は、例えばリムーバブルディスク２１１用の装置である。ＨＤＤ２０５は、情報提供プログラム２０５ａおよび情報提供関連情報２０５ｂを記憶する。
【０１３９】
ＣＰＵ２０３は、情報提供プログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。かかるプロセスは、情報提供装置１の各機能部に対応する。情報提供関連情報２０５ｂは、負荷パターン２１および予測モデル２２に対応する。そして、例えばリムーバブルディスク２１１が、情報提供プログラム２０５ａなどの各情報を記憶する。
【０１４０】
なお、情報提供プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらから情報提供プログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【０１４１】
１  情報提供装置
１０  制御部
１１  情報取得部
１２  負荷パターン生成部
１３  予測モデル生成部
１４  予測部
１５  入出力インタフェース部
１５１  提供者向けインタフェース部
２０  記憶部
２１  負荷パターン
２２  予測モデル
３  ＩａａＳ基盤
３１  ＩａａＳ管理情報
３１１  ＶＭ構成情報
３１２  ＰＭ管理表
３１３  ユーザ管理表
３２  リソース
３２１  ＰＭ
３２２  ＶＭ
３３  ＶＭ管理基盤
３４  ＬＭログ
３５  ＶＭ負荷情報履歴
９  情報提供システム
【図１】
2019057236.tif 000004
【図２】
2019057236.tif 000005
【図３】
2019057236.tif 000006
【図４】
2019057236.tif 000007
【図５】
2019057236.tif 000008
【図６】
2019057236.tif 000009
【図７】
2019057236.tif 000010
【図８】
2019057236.tif 000011
【図９】
2019057236.tif 000012
【図１０】
2019057236.tif 000013
【図１１】
2019057236.tif 000014
【図１２Ａ】
2019057236.tif 000015
【図１２Ｂ】
2019057236.tif 000016
【図１２Ｃ】
2019057236.tif 000017
【図１２Ｄ】
2019057236.tif 000018
【図１３】
2019057236.tif 000019
【図１４】
2019057236.tif 000020
【図１５】
2019057236.tif 000021
【図１６】
2019057236.tif 000022
【図１７】
2019057236.tif 000023
【図１８】
2019057236.tif 000024
【図１９】
2019057236.tif 000025
【図２０Ａ】
2019057236.tif 000026
【図２０Ｂ】
2019057236.tif 000027
【図２１】
2019057236.tif 000028
【図２２】
2019057236.tif 000029
【図２３】
2019057236.tif 000030