JP6911670B2 - 情報提供プログラム、情報提供装置および情報提供方法 - Google Patents

情報提供プログラム、情報提供装置および情報提供方法 Download PDF

Info

Publication number
JP6911670B2
JP6911670B2 JP2017182672A JP2017182672A JP6911670B2 JP 6911670 B2 JP6911670 B2 JP 6911670B2 JP 2017182672 A JP2017182672 A JP 2017182672A JP 2017182672 A JP2017182672 A JP 2017182672A JP 6911670 B2 JP6911670 B2 JP 6911670B2
Authority
JP
Japan
Prior art keywords
time
live migration
load
information
virtual machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017182672A
Other languages
English (en)
Other versions
JP2019057236A (ja
Inventor
飯倉 二美
二美 飯倉
幸洋 渡辺
幸洋 渡辺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017182672A priority Critical patent/JP6911670B2/ja
Priority to US16/131,091 priority patent/US10884777B2/en
Publication of JP2019057236A publication Critical patent/JP2019057236A/ja
Application granted granted Critical
Publication of JP6911670B2 publication Critical patent/JP6911670B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、情報提供プログラムなどに関する。
近年、クラウドコンピューティングの中の1つで、仮想化技術を利用して仮想マシンをインターネット経由で貸し出すサービスであるパブリッククラウド(IaaS:Infrastructure as a Service)が普及している。パブリッククラウドでは、物理サーバをサービス提供者が管理し、インターネットを経由して物理サーバで実行する仮想マシンを貸し出す。そして、貸し出す仮想マシンをユーザが管理する。
ここで、サービス提供者は、物理マシンをメンテナンスする場合がある。メンテナンスする場合とは、例えば、物理マシンにOS(Operating System)をアップグレードする場合である。メンテナンスの際には、サービス提供者は、物理マシンで稼働している仮想マシンを他の物理マシンに移動させ、仮想マシンを止めないで物理マシンのメンテナンスを行う。仮想マシンを他の物理マシンに移動させることを「ライブマイグレーション」という。かかるライブマイグレーションは、仮想マシンのメモリの内容を他の物理サーバ上の仮想マシンにコピーすることで実現できる。
ライブマイグレーションする際の移動対象となる仮想マシンを決定する技術がある(例えば、特許文献1参照)。かかる技術では、各仮想マシンが持つページの更新頻度および/もしくは参照頻度を計測し、将来のための統計情報を保持する。仮想マシン転送処理時の1ページあたりの転送時間を計測し、将来のための統計情報を保持する。そして、過去の更新頻度情報と転送にかかった転送時間の統計情報とから、転送処理にかかる時間を各仮想マシンごとに算出して見積もり、すべての仮想マシンのうち、転送時間が最短となることが見積もられた仮想マシンを移動対象として決定する。
また、ライブマイグレーションの所要時間を推定する第1の技術がある(例えば、特許文献2参照)。かかる技術では、ユーザからライブマイグレーション実行指示を受けると、転送メモリサイズ格納部および転送速度格納部からそれぞれ転送メモリサイズ情報および転送速度情報を取得し、ライブマイグレーションに要する移行所要時間を計算する。
また、ライブマイグレーションの所要時間を推定する第2の技術がある(例えば、非特許文献1、2参照)。かかる技術では、仮想マシンのPage Dirty Rateという指標を利用して、ライブマイグレーションの所要時間を推定する。Page Dirty Rateとは、メモリの変更の多さを示す指標のことをいい、仮想マシンを決定する技術のページの更新頻度と同義であると考えられる。なお、Page Dirty Rateは、仮想マシンから取り出される情報である。したがって、仮想マシンはユーザによって管理されるので、サービス提供者は、Page Dirty Rateを取り出すことは難しい。
特開2009−146161号公報 特開2016−184252号公報
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
しかしながら、パブリッククラウドにおいて、サービス提供者が、ライブマイグレーションの所要時間を推定することが難しいという第1の問題がある。すなわち、サービス提供者は、仮想マシンからページの更新頻度やPage Dirty Rateを取り出すことが難しいので、メンテナンス対象の仮想マシンのライブマイグレーションの所要時間を推定することが難しい。
また、パブリッククラウドにおいて、未来のライブマイグレーションの所要時間を推定することが難しいという第2の問題がある。すなわち、ライブマイグレーションの所要時間を推定する第1の技術および第2の技術は、現時点でライブマイグレーションした場合のライブマイグレーションの所要時間を推定するが、現時点以降の未来のライブマイグレーションの所要時間を推定する技術ではない。
1つの側面では、パブリッククラウドにおけるライブマイグレーションの所要時間を推定することを目的とする。
本願の開示する情報提供プログラムは、仮想マシンごとにCPU使用率、メモリ使用量を含む負荷情報を所定間隔で記憶した負荷履歴から仮想マシンごとにライブマイグレーションを実行した時刻の負荷情報を抽出し、ライブマイグレーションを実行した時刻ごとの負荷情報とライブマイグレーションにかかった時間から、仮想マシンごとのライブマイグレーション時間を予測するモデルを生成して記憶し、所定の仮想マシンのライブマイグレーションの予測時間の指示を受けると、記憶した前記所定の仮想マシンのライブマイグレーション時間を予測するモデルから、ライブマイグレーション時間を予測し、前記予測したライブマイグレーション時間を提供する、処理をコンピュータに実行させる。
1つの態様によれば、パブリッククラウドにおけるライブマイグレーションの所要時間を推定できる。
図1は、実施例1に係る情報提供システムの構成を示す機能ブロック図である。 図2は、LMログのデータ構造の一例を示す図である。 図3は、VM負荷情報履歴のデータ構造の一例を示す図である。 図4は、負荷パターンのデータ構造の一例を示す図である。 図5は、負荷パターン生成処理の一例を示す図である。 図6は、予測モデル生成処理の一例を示す図である。 図7は、実施例1に係る予測モデル生成処理の全体のフローチャートの一例を示す図である。 図8は、実施例1に係る負荷パターン生成処理のフローチャートの一例を示す図である。 図9は、実施例1に係る予測モデル生成処理のフローチャートの一例を示す図である。 図10は、実施例1に係る予測処理のフローチャートの一例を示す図である。 図11は、実施例2に係る情報提供システムの構成を示す機能ブロック図である。 図12Aは、クラスタ生成処理の一例を示す図(1)である。 図12Bは、クラスタ生成処理の一例を示す図(2)である。 図12Cは、クラスタ生成処理の一例を示す図(3)である。 図12Dは、クラスタ生成処理の一例を示す図(4)である。 図13は、実施例2に係る予測モデル生成処理の全体のフローチャートの一例を示す図である。 図14は、実施例2に係るクラスタ生成処理のフローチャートの一例を示す図である。 図15は、負荷パターンが似ているVMをクラスタリングする処理のフローチャートの一例を示す図である。 図16は、構成情報が似ているVMをクラスタリングする処理のフローチャートの一例を示す図である。 図17は、実施例2に係る予測モデル生成処理のフローチャートの一例を示す図である。 図18は、実施例3に係る情報提供システムの構成を示す機能ブロック図である。 図19は、スケジュール生成処理の一例を示す図である。 図20Aは、メンテナンススケジュールの提示の一例を示す図である。 図20Bは、メンテナンススケジュールの提示の別の例を示す図である。 図21は、実施例3に係るスケジュール生成処理のフローチャートの一例を示す図である。 図22は、実施例4に係るユーザに提示する画面の一例を示す図である。 図23は、情報提供プログラムを実行するコンピュータの一例を示す図である。
以下に、本願の開示する情報提供プログラム、情報提供装置および情報提供方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
[情報提供システムの構成]
図1は、実施例1に係る情報提供システムの構成を示す図である。情報提供システム9は、情報提供装置1およびパブリッククラウド(IaaS)基盤3を有する。IaaSは、仮想化技術を利用して仮想マシン(VM:Virtual Machine)をインターネット経由で貸し出すサービスである。IaaSでは、物理サーバ(PM:physical Machine)をサービス提供者が管理し、インターネットを経由してPMで実行するVMを貸し出す。そして、貸し出すVMをユーザが管理する。
IaaS基盤3は、IaaS管理情報31と、リソース32と、VM管理基盤33と、ライブマイグレーション(LM)ログ34と、VM負荷情報履歴35とを有する。
IaaS管理情報31は、IaaSで用いられる管理情報であり、VM構成情報311と、PM管理表312と、ユーザ管理表313とを含む。VM構成情報311は、VMの構成情報である。VM構成情報311には、VMごとに使用可能な、仮想CPU(Virtual Central Processing Unit)および仮想メモリのそれぞれの数が管理される。PM管理表312は、PMの管理表である。PM管理表312には、PMごとに配置されるVMが管理される。ユーザ管理表313は、ユーザの管理表である。ユーザ管理表313には、ユーザごとに、ユーザが管理するVMが管理される。なお、IaaS管理情報31は、VM構成情報311、PM管理表312およびユーザ管理表313に限らず、他の管理情報を含んでも良い。他の管理情報には、例えば、VMの配置ポリシーを示すVM配置ポリシーであったり、IaaSで用いられる仮想システム(Virtual System)を管理するVSYS管理表であったりする。
リソース32は、IaaS基盤3で稼働するPM321およびVM322のことをいう。VM322は、PM管理表312に基づいてPM321上に配置される。また、VM322は、ライブマイグレーションの際に、PM321から別のPM321に配置を移動する。リソース32は、VM管理基盤33によって管理される。
VM管理基盤33は、PM321に配置されるVM322を管理する基盤である。例えば、VM管理基盤33は、PM管理表312を用いてPM321に配置されるM322を管理するとともに、VM322のライブマイグレーションを管理し、ライブマイグレーションがされたときの情報を後述するLMログ34に格納する。
LMログ34は、ライブマイグレーションの各事象の履歴である。
ここで、LMログ34のデータ構造の一例を、図2を参照して説明する。図2は、LMログのデータ構造の一例を示す図である。図2に示すように、LMログ34は、時刻とイベントとを対応付けた情報である。時刻は、ライブマイグレーションの開始時刻または終了時刻を示す。イベントは、ライブマイグレーションに関するイベントを示す。例えば、イベントは、対象のVMに対するライブマイグレーションに関する開始イベントまたは終了イベントを示す。一例として、時刻が「2017/6/20 1:00」である場合に、イベントとして「VM keiri−db−12をLM開始」を記憶している。時刻が「2017/6/20 1:05」である場合に、イベントとして「VM keiri−db−12をLM終了」を記憶している。
図1に戻って、VM負荷情報履歴35は、VMに対する負荷情報の履歴である。負荷情報には、VMに対する、仮想CPUのCPU使用率および仮想メモリのメモリ使用量が挙げられる。負荷情報は、これに限定されず、ネットワークIO(Input/Output)やディスクIOを含んでも良い。実施例では、負荷情報を、CPU使用率、メモリ使用量、ネットワークIOおよびディスクIOとして説明する。
ここで、VM負荷情報履歴35のデータ構造の一例を、図3を参照して説明する。図3は、VM負荷情報履歴のデータ構造の一例を示す図である。なお、VM負荷情報履歴は、VMごとに生成される。VM負荷情報履歴35は、時刻、CPU使用率、メモリ使用量、NW IOおよびディスクIOを対応付けて記憶する。時刻は、VMの負荷情報を抽出する時刻を示す。時刻は、一定期間ごとの時点であれば良い。一定期間は、例えば、1時間であっても良いし、30分であっても良いし、予め定められるが、変更を可能とする。CPU使用率は、ある時刻のVMの仮想CPUのCPU使用率である。メモリ使用量は、ある時刻のVMの仮想メモリのメモリ使用量である。NW IOは、ある時刻のVMのネットワークIOにかかる時間である。ディスクIOは、ある時刻のVMのディスクIOにかかる時間である。一例として、時刻が「2017/6/20 1:00」である場合に、CPU使用率として「30」%、メモリ使用量として「1」GB、NW IOとして「25」Mbps、ディスクIOとして「35」Mbpsを記憶している。
情報提供装置1は、PVに配置されるVMのライブマイグレーションにかかる時間を予測し、予測した時間を提供する。情報提供装置1は、制御部10および記憶部20を有する。
制御部10は、CPU(Central Processing Unit)などの電子回路に対応する。そして、制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部10は、情報取得部11、負荷パターン生成部12、予測モデル生成部13、予測部14、入出力インタフェース部15を有する。なお、情報取得部11は、第1の抽出部および第2の抽出部の一例である。予測モデル生成部13は、生成部の一例である。予測部14は、予測部の一例である。入出力インタフェース部15は、提供部の一例である。
記憶部20は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部20は、負荷パターン21と、予測モデル22とを有する。
負荷パターン21は、VM負荷情報履歴35から特定されるVMの負荷情報のパターンを示す。負荷パターン21は、VMごとに生成される。なお、負荷パターン21は、負荷パターン生成部12によって生成される。
予測モデル22は、負荷パターン21およびLMログ34から生成される、ライブマイグレーションにかかる時間を予測するモデルである。予測モデル22は、VMごとに生成される。なお、予測モデル22は、予測モデル生成部13によって生成される。
情報取得部11は、IaaS基盤3のVM負荷情報履歴35から、VMごとの過去の負荷情報を取得する。また、情報取得部11は、IaaS基盤3のLMログ34から、VMごとに、ライブマイグレーション(LM)した時刻およびライブマイグレーション(LM)にかかった時間を示す過去のLM情報を取得する。
負荷パターン生成部12は、VMごとの負荷パターン21を生成する。
例えば、負荷パターン生成部12は、予測モデル22の生成要求を受け付けると、情報取得部11によって取得された、VMごとの過去の負荷情報を取得する。負荷情報は、CPU使用率、メモリ使用量、NW IOおよびディスクIOである。負荷パターン生成部12は、VMごとに、それぞれの過去の時刻に対する負荷情報から、それぞれの負荷の周期を特定する。負荷の周期には、例えば、日周期、週周期、月周期または周期なしが挙げられる。なお、負荷の周期は、過去の時刻の負荷情報から統計的に算出され特定されれば良く、いかなる従来技術を用いても良い。
また、負荷パターン生成部12は、VMごとに、特定された周期を分割し、分割された周期の分割要素ごとの平均的な負荷情報を示す負荷パターン21を生成する。一例として、日周期ならば、負荷パターン生成部12は、周期の分割要素を24時間の中の1時間ごととし、1時間ごとの平均的な負荷情報を示す負荷パターン21を生成すれば良い。また、週周期ならば、負荷パターン生成部12は、周期の分割要素を週の中の曜日ごととし、曜日ごとの平均的な負荷情報を示す負荷パターン21を生成すれば良い。また、月周期ならば、負荷パターン生成部12は、周期の分割要素を月の中の1日ごととし、1日ごとの平均的な負荷情報を示す負荷パターン21を生成すれば良い。
ここで、負荷パターン21のデータ構造の一例を、図4を参照して説明する。図4は、負荷パターンのデータ構造の一例を示す図である。図4に示すように、負荷パターン21は、周期分割要素、CPU使用率、メモリ使用量、メモリ使用量、NW IOおよびディスクIOを対応付けて記憶する。周期分割要素は、周期ごとに異なる分割要素である。CPU使用率は、仮想CPUのCPU使用率である。メモリ使用量は、仮想メモリのメモリ使用量である。NW IOは、ネットワークIOにかかる時間である。ディスクIOは、ディスクIOにかかる時間である。一例として、日周期の場合、周期分割要素は、24時間の中の1時間ごとを示す。周期分割要素が0時である場合に、CPU使用率として「x0」、メモリ使用量として「y0」、NW IOとして「z0」、ディスクIOとして「w0」を記憶している。
予測モデル生成部13は、VMごとに、VMのライブマイグレーションにかかる時間を予測する予測モデル22を生成する。なお、予測モデル22は、例えば、定期的に生成されれば良い。例えば、予測モデル生成部13は、VMごとに、以下の処理を行う。予測モデル生成部13は、特定のVMについて、過去のLM情報から、ライブマイグレーションした時刻およびライブマイグレーションにかかった時間を取得する。LM情報は、情報取得部11によって取得された、VMごとの過去のライブマイグレーションした時刻およびライブマイグレーションにかかった時間を示す。予測モデル生成部13は、特定のVMに対する負荷パターン21から、ライブマイグレーションした時刻に対応する負荷情報を取得する。負荷情報は、CPU使用率、メモリ使用量、NW IOおよびディスクIOである。そして、予測モデル生成部13は、負荷情報を説明変数、ライブマイグレーションにかかった時間を目的変数として、重回帰分析を行い、特定のVMに対する予測モデル22を生成する。
ここで、VMに対する予測モデル22は、以下の予想に基づいて生成される。すなわち、VMの負荷が低いときはライブマイグレーション(LM)にかかる時間は小さいと予想される。但し、負荷が高くてもメモリの変更が少なければ、LMにかかる時間は小さいと予想される。したがって、予測モデル生成部13は、VMに対して、過去にLMを行った際のLM時刻およびLM時間を記録しておき、LM時刻におけるCPU使用率およびメモリ使用量を含む負荷情報とLM時間とから、LM時間を予測する予測モデル22を生成する。
予測部14は、VMに対する予測モデル22を用いて、VMのライブマイグレーションにかかる時間を予測する。例えば、予測部14は、ライブマイグレーションを行うVMおよびライブマイグレーションを行う予定日時を受け付けると、VMに対応する負荷パターン21から、予定日時に対応する負荷情報を取得する。予測部14は、VMに対する予測モデル22を用いて、取得した負荷情報から予定日時にライブマイグレーションにかかる時間を予測する。
入出力インタフェース部15は、ネットワークを介して通信を行うインタフェースである。入出力インタフェース部15は、提供者向けインタフェース部151を有する。提供者向けインタフェース部151は、ネットワークを介してサービス提供者に対して、予測部14によって予測されたライブマイグレーションにかかる時間を提供する。
[負荷パターン生成処理の一例]
ここで、負荷パターン生成処理の一例を、図5を参照して説明する。図5は、負荷パターン生成処理の一例を示す図である。図5では、VM名が「keiri-db-12」であるVMに対する負荷パターン21を生成する負荷パターン生成処理について説明する。図5に示すように、負荷パターン生成部21は、情報取得部11によってVM負荷情報履歴35から取得された、VM「keiri-db-12」の過去の負荷情報を取得する。図5上図には、VM「keiri-db-12」の過去の負荷情報が表わされている。
そして、負荷パターン生成部12は、VM「keiri-db-12」の過去の負荷情報について、周期的な変動から負荷の周期を特定する。ここでは、VM「keiri-db-12」の負荷の周期は、日周期であるとする。
そして、負荷パターン生成部12は、VM「keiri-db-12」について、特定された周期を分割し、分割された周期の分割要素ごとの平均的な負荷情報を示す負荷パターン21を生成する。ここでは、周期は、日周期であるので、負荷パターン生成部12は、周期の分割要素を24時間の中の1時間ごととし、1時間ごとの平均的な負荷情報を示す負荷パターン21を生成する。例えば、負荷パターン生成部12は、0時について、過去の負荷情報から0時〜1時のCPU使用率を取得し、取得したCPU使用率の平均値を算出し、算出した平均値を0時のCPU使用率として負荷パターン21に設定する。負荷パターン生成部12は、1時について、過去の負荷情報から1時〜2時のCPU使用率を取得し、取得したCPU使用率の平均値を算出し、算出した平均値を1時のCPU使用率として負荷パターン21に設定する。同様に、負荷パターン生成部12は、2時から23時までのそれぞれのCPU使用率を算出し、負荷パターン21に設定する。同様に、負荷パターン生成部12は、メモリ使用量、NW IO、ディスクIOについても、0時から23時までのそれぞれのメモリ使用量、NW IO、ディスクIOを算出し、負荷パターン21に設定すれば良い。
[予測モデル生成処理の一例]
次に、予測モデル生成処理の一例を、図6を参照して説明する。図6は、予測モデル生成処理の一例を示す図である。図6では、VM名が「keiri-db-12」であるVMに対する予測モデル22の予測モデル生成処理について説明する。図6に示すように、予測モデル生成部13は、情報取得部11によってLMログ34から取得された、VM「keiri-db-12」の過去のライブマイグレーションした時刻およびライブマイグレーション時間を示す過去のLM情報を取得する。図6上図左図には、VM「keiri-db-12」の過去のLM情報が表わされている。また、図6上図右図には、負荷パターン生成部12によって生成された、VM「keiri-db-12」の負荷パターン21が表わされている。
そして、予測モデル生成部13は、VM「keiri-db-12」について、過去のLM情報から、ライブマイグレーションした時刻およびライブマイグレーション時間を取得する。予測モデル生成部13は、VM「keiri-db-12」に対する負荷パターン21から、ライブマイグレーションした時刻に対応する負荷情報を取得する。負荷情報は、CPU使用率、メモリ使用量、NW IOおよびディスクIOである。そして、予測モデル生成部13は、ライブマイグレーションした時刻、負荷情報およびライブマイグレーション時間を対応付けて保持する。図6中図では、ライブマイグレーションした時刻がLMした時刻に対応する。負荷情報がCPU使用率、メモリ使用量、NW IOおよびディスクIOに対応する。ライブマイグレーション時間がLM時間に対応する。
そして、予測モデル生成部13は、負荷情報を説明変数、ライブマイグレーションにかかった時間を目的変数として、保持した情報を用いて重回帰分析を行い、特定のVMに対する予測モデルを生成する。ここでは、負荷情報としてのCPU使用率、メモリ使用量、NW IOおよびディスクIOを説明変数とする。LM時間を目的変数とする。LM時間をt、CPU使用率をx、メモリ使用量をy、NW IOをz、ディスクIOをwとするとき、式(1)となるような重回帰式を求める。
t=β+βx+βy+βz+βw・・・式(1)
すなわち、LMした時刻「2017/6/20 1:00」である場合の、CPU使用率x1、メモリ使用量y1、NW IOz1、ディスクIOw1をそれぞれ説明変数x、y、z、wに代入し、LM時間t1を目的変数tに代入する。LMした時刻「2017/6/20 2:51」である場合の、CPU使用率x2、メモリ使用量y2、NW IOz2、ディスクIOw2をそれぞれ説明変数x、y、z、wに代入し、LM時間t2を目的変数tに代入する。そして、保持した全ての情報を用いて説明変数および目的変数に代入すると、式(1)となるようなβ、β、β、β、βを特定し、重回帰式を生成する。つまり、生成された重回帰式が、VM「keiri-db-12」に対する予測モデル22である。
なお、予測モデル生成部13は、予測モデル22を生成するために、重回帰分析を用いたが、負荷情報とLM時間との関係が求まれば、重回帰分析に限定されるものではない。また、CPU使用率、メモリ使用量、NW IOおよびディスクIOを負荷情報として説明したが、NW IOおおよびディスクIOは、負荷情報として任意であっても良い。
[予測モデル生成処理の全体のフローチャート]
図7は、実施例1に係る予測モデル生成処理の全体のフローチャートの一例を示す図である。
図7に示すように、負荷パターン生成部12は、予測モデルの生成要求を受け付けたか否かを判定する(ステップS11)。なお、予測モデルの生成要求は、例えば、毎月行われても良いし、隔月に行われても良い。予測モデルの生成要求を受け付けていないと判定した場合には(ステップS11;No)、負荷パターン生成部12は、当該要求を受け付けるまで判定処理を繰り返す。
一方、予測モデルの生成要求を受け付けたと判定した場合には(ステップS11;Yes)、負荷パターン生成部12は、負荷パターン生成処理を実行する(ステップS12)。なお、負荷パターン生成処理のフローチャートは、後述する。
そして、負荷パターン生成処理が実行された後、予測モデル生成部13は、生成された負荷パターンを用いて、予測モデル生成処理を実行する(ステップS13)。なお、予測モデル生成処理のフローチャートは、後述する。
[負荷パターン生成処理のフローチャート]
図8は、実施例1に係る負荷パターン生成処理のフローチャートの一例を示す図である。
図8に示すように、情報取得部11は、VM負荷情報履歴35から、VMごとに、過去の時刻および負荷情報を取得する(ステップS21)。負荷情報は、例えば、CPU使用率、メモリ使用量、NW IOおよびディスクIOである。そして、負荷パターン生成部12は、各VMの負荷情報について、周期的な変動から、各VMの周期を特定する(ステップS22)。周期は、例えば、日周期、週周期、月周期、周期なしである。
そして、負荷パターン生成部12は、VMごとに、情報取得部11によって取得された過去の時刻および負荷情報を用いて、特定された周期を分割し、周期の分割要素ごとに平均的な負荷を求め、負荷パターン21を生成する(ステップS23)。そして、負荷パターン生成部12は、負荷パターン生成処理を終了する。
[予測モデル生成処理のフローチャート]
図9は、実施例1に係る予測モデル生成処理のフローチャートの一例を示す図である。
図9に示すように、予測モデル生成部13は、VMを選択する(ステップS31)。
予測モデル生成部13は、選択したVMが過去にライブマイグレーション(LM)した時刻の負荷情報とLMにかかった時間(LM時間)を取得する(ステップS32)。例えば、予測モデル生成部13は、情報取得部11によってLMログ34から取得された、LMした時刻およびLM時間を取得する。予測モデル生成部13は、選択したVMに対する負荷パターン21から、LMした時刻に対応する負荷情報を取得する。
そして、予測モデル生成部13は、負荷情報を説明変数、LM時間を目的変数として、重回帰分析を行い、選択したVMに対する予測モデル22を生成する(ステップS33)。例えば、予測モデル生成部13は、式(1)のβ、β、β、β、βを特定し、予測モデル22として重回帰式を生成する。そして、予測モデル生成部13は、選択したVMに対する予測モデル生成処理を終了する。
[予測処理のフローチャート]
図10は、実施例1に係る予測処理のフローチャートの一例を示す図である。
図10に示すように、予測部14は、VMおよびライブマイグレーション(LM)を行う予定日時を受け付けたか否かを判定する(ステップS41)。例えば、予定日時を○月○日×時×分とする。VMおよびライブマイグレーション(LM)を行う予定日時を受け付けていないと判定した場合には(ステップS41;No)、予測部14は、VMおよびライブマイグレーション(LM)を行う予定日時を受け付けるまで判定処理を繰り返す。
一方、VMおよびライブマイグレーション(LM)を行う予定日時を受け付けたと判定した場合には(ステップS41;Yes)、予測部14は、VMに対する負荷パターン21から、予定日時に予想される負荷情報を取得する(ステップS42)。例えば、○月○日×時×分に予想される負荷情報は、CPU使用率として35%、メモリ使用量として0.7GBであるとする。
そして、予測部14は、VMに対する予測モデル22を用いて、予想される負荷情報から、LM時間を予測する(ステップS43)。例えば、予測部14は、式(1)のxにCPU使用率としての35%、式(1)のyにメモリ使用量としての0.7GBを代入して、LM時間を25秒と予測する。そして、予測部14は、予測処理を終了する。
[実施例1の効果]
上記実施例によれば、情報提供装置1は、VMごとにCPU使用率、メモリ使用量を含む負荷情報を所定間隔で記憶した負荷履歴からVMごとにライブマイグレーションを実行した時刻の負荷情報を抽出する。情報提供装置1は、ライブマイグレーションを実行した時刻ごとの負荷情報とライブマイグレーションにかかった時間から、VMごとのライブマイグレーション時間を予測する予測モデル22を生成して記憶する。情報提供装置1は、所定のVMのライブマイグレーションの予測時間の指示を受けると、記憶した所定のVMのライブマイグレーション時間を予測する予測モデル22から、ライブマイグレーション時間を予測する。情報提供装置1は、予測したライブマイグレーション時間をサービス提供者に提供する。かかる構成によれば、情報提供装置1は、パブリッククラウドにおけるライブマイグレーションにかかる時間を予測できる。
また、上記実施例によれば、情報提供装置1は、負荷履歴からVMごとに負荷情報の周期を求める。情報提供装置1は、VMごとに求められた負荷情報の周期に応じて所定期間ごとの負荷情報を求め、VMごとに負荷パターンを生成する。情報提供装置1は、負荷パターンからVMごとにライブマイグレーションを実行した時刻に対応する負荷情報を抽出する。かかる構成によれば、情報提供装置1は、VMの負荷情報の周期に応じて生成される負荷パターンを用いてライブマイグレーションを実行した時刻に対応する負荷情報を抽出する。この結果、情報提供装置1は、VMのライブマイグレーションにかかる時間を予測する予測モデルを生成することが可能となる。
ところで、実施例1では、情報提供装置1は、VMについて、過去の負荷情報から生成された負荷パターン21およびVMが過去にライブマイグレーション(LM)した時のLM時間に基づいて、LM時間を予測する予測モデル22を生成すると説明した。しかしながら、情報提供装置1は、これに限定されず、VM構成情報311および負荷パターン21が似ているVM同士を1つのクラスタとし、以下の処理を行う。情報提供装置1は、クラスタごとに生成された負荷パターン21およびクラスタに属するVMが過去にLMした時のLM時間に基づいて、LM時間を予測する予測モデル22を生成する。VMをクラスタリングするのは、VMがLMする頻度は少ないことが多いので、データを増やして予測の精度を上げるためである。
そこで、実施例2に係る情報提供装置1は、VM構成情報311および負荷パターン21が似ているVM同士を1つのクラスタとし、クラスタごとに、LM時間を予測する予測モデル22を生成する場合を説明する。
[実施例2に係る情報提供システムの構成]
図11は、実施例2に係る情報提供システムの構成を示す機能ブロック図である。なお、実施例1の図1に示す情報提供装置1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例1と実施例2とが異なるところは、クラスタ生成部41およびクラスタリング結果42を追加した点である。また、実施例1と実施例2とが異なるところは、負荷パターン生成部12を負荷パターン生成部12Aに、予測モデル生成部13を予測モデル生成部13Aに変更した点である。
クラスタ生成部41は、同じユーザが管理する複数のVMをクラスタリングする。
例えば、まず、クラスタ生成部41は、ユーザ管理表313を用いて所定のユーザが管理するVMの情報を取得する。クラスタ生成部41は、取得したVMの情報が複数ある場合には、それぞれのVMについて負荷パターン21を生成する。なお、負荷パターン21は、負荷パターン生成部12Aによって生成される。そして、クラスタ生成部41は、VMごとに、負荷パターン21を生成する際に特定される負荷の周期ごとに、VMを分類する。負荷の周期には、例えば、日周期、週周期、月周期または周期なしが挙げられる。そして、クラスタ生成部41は、負荷の周期ごとに、負荷の周期が同じVM同士の負荷パターン21の距離を計算して、負荷パターン21から得られるクラスタを生成する。負荷パターン21から得られるクラスタは、例えば、日周期の場合には、昼に所定の閾値より負荷が高い昼型、夜に所定の閾値より負荷が高い夜型、周期なし型としても良い。以降では、日周期の場合には、昼に所定の閾値より負荷が高い昼型、夜に所定の閾値より負荷が高い夜型、周期なし型として説明する。
負荷パターン21の距離の計算は、一例として、ユークリッド距離を用いれば良い。例えば、2つのVMを示すVMaおよびVMbの負荷パターン21の距離の計算の一例を説明する。負荷情報は、CPU使用率、メモリ使用量、NW IOおよびディスクIOであるとする。そして、xがCPU使用率、yがメモリ使用量、zがNW IO、wがディスクIOであるとする。すると、クラスタ生成部41は、ユークリッド距離を用いて、VMaをVMbの負荷パターン21の距離d(a,b)を計算する。なお、例えば、ax0は、VMaの0時におけるCPU使用率であるとする。ay0は、VMaの0時におけるメモリ使用量であるとする。
Figure 0006911670
次に、クラスタ生成部41は、VM構成情報311を用いて所定のユーザが管理する複数のVMを、同じサイズのVM同士で纏めてグループ分けする。サイズとは、例えば、VCPUのコア数やメモリサイズのことをいう。加えて、クラスタ生成部41は、同じサイズのグループに属するVMをさらにVMの名前でグループ分けする。すなわち、クラスタ生成部41は、VM構成情報311から得られるクラスタを生成する。これは、負荷パターン21が似ているVM同士はそれぞれのVMの名前も似ていると予想されるからである。
VMの名前でのグループ分けは、一例として、レーベンシュタイン距離を用いれば良い。例えば、クラスタ生成部41は、同じサイズのグループに属するそれぞれのVMの名前を形態素に分割する。そして、クラスタ生成部41は、2つのVM同士で、分割された単語が何個違うかを距離としたレーベンシュタイン距離を計算して、VM構成情報311のクラスタを生成する。すなわち、クラスタ生成部41は、サイズは同じであるが、名前が似ていないVMを異なるクラスタに属するようにする。そして、クラスタ生成部41は、同じクラスタに属するVM名から、名前パターンを生成する。
次に、クラスタ生成部41は、負荷パターン21から得られるクラスタおよびVM構成情報311から得られるクラスタを用いて、負荷パターンと構成情報とを関連付ける。負荷パターンと構成情報との関連付けは、一例として、ベイズの推定を用いれば良い。すなわち、クラスタ生成部41は、負荷パターン21から得られるクラスタが昼型である場合に、VM構成情報311から得られるクラスタの中のどの構成情報(名前パターン、サイズタイプ)と関連が深いかを求める。そして、クラスタ生成部41は、負荷パターンと構成情報との関連付けをクラスタリング結果42に設定する。
負荷パターン生成部12Aは、VMごとの負荷パターン21を生成する。加えて、負荷パターン生成部12Aは、クラスタ生成部41によって生成されたクラスタごとの負荷パターン21を生成する。すなわち、負荷パターン生成部12Aは、クラスタリング結果42に設定された、負荷パターンと構成情報との関連付けごとの負荷パターン21を生成する。つまり、負荷パターン生成部12Aは、1つのクラスタについて、クラスタに属するVM群の負荷パターン21を生成する。
予測モデル生成部13Aは、クラスタ生成部41によって生成されたクラスタごとに、クラスタに属するVMのライブマイグレーションにかかる時間を予測する予測モデル22を生成する。
[クラスタ生成処理の一例]
ここで、クラスタ生成処理の一例を、図12A〜図12Dを参照して説明する。図12A〜図12Dは、クラスタ生成処理の一例を示す図である。なお、クラスタ生成部41は、ユーザ管理表313を用いて特定のユーザが管理するVMの情報を複数取得したものとする。
図12Aに示すように、クラスタ生成部41は、取得された複数のVMの情報に関するそれぞれのVMに対する負荷パターン21を生成する。VMに対する負荷パターン21は、負荷パターン生成部12Aによって生成される。そして、負荷パターン21の負荷の周期が、負荷パターン生成部12Aによって特定される。ここでは、VM「keiri-db-12」、VM「keiri-db-53」・・・のそれぞれの負荷パターン21が生成され、負荷の周期が特定されたものとする。
そして、クラスタ生成部41は、VMごとに、負荷パターン21を生成する際に特定される負荷の周期ごとに、VMを分類する。ここでは、「jinji-db-53」、「keiri-db-12」、「keiri-ana-44」、「keiri-jimu-24」、「keiri-db-23」のVMが日周期に分類される。
そして、クラスタ生成部41は、負荷の周期ごとに、負荷の周期が同じVM同士の負荷パターン21の距離を計算して、負荷パターン21から得られるクラスタを生成する。負荷パターン21の距離の計算は、一例として、ユークリッド距離を用いれば良い。ここでは、負荷の周期が日周期である場合には、負荷パターン21から得られるクラスタとして昼型には、「jinji-db-53」、「keiri-jimu-24」のVMが属する。負荷パターン21から得られるクラスタとして夜型には、「keiri-ana-44」のVMが属する。負荷パターン21から得られるクラスタとして周期なし型には、「keiri-db-12」、「keiri-db-23」のVMが属する。この負荷パターン21から得られるクラスタをA1とする。
図12Bに示すように、クラスタ生成部41は、VM構成情報311を用いて所定のユーザが管理する複数のVMを、同じサイズのVM同士で纏めてグループ分けする。サイズとは、例えば、VCPUのコア数やメモリサイズのことをいう。ここでは、VCPU4個且つメモリ4GBを示すサイズタイプC4M4のVM「keiri_db-12」、「keiri-db-23」、「jinji-db-53」が1つのグループとなる(○記号参照)。VCPU4個且つメモリ2GBを示すサイズタイプC4M2のVM「keiri_jimu-24」が1つのグループとなる(△記号参照)。VCPU8個且つメモリ4GBを示すサイズタイプC8M4のVM「keiri_ana-44」が1つのグループとなる(□記号参照)。
図12Cに示すように、クラスタ生成部41は、同じサイズのグループに属するVMをさらにVMの名前でグループ分けする。ここでは、サイズタイプC4M4のVMのグループについて説明する。サイズタイプC4M4のVMのグループには、「keiri_db-12」、「keiri-db-23」、「jinji-db-53」のVMが含まれる。クラスタ生成部41は、このグループに属するVMの名前をハイフンで形態素に分割する。VMの名前「keiri_db-12」は、「keiri」、「db」、「12」の形態素に分割される。VMの名前「keiri_db-23」は、「keiri」、「db」、「23」の形態素に分割される。VMの名前「jinji_db-53」は、「jinji」、「db」、「53」の形態素に分割される。
そして、クラスタ生成部41は、2つのVM同士で、分割された単語が何個違うかを距離としたレーベンシュタイン距離を計算する。ここでは、「keiri_db-12」と「keiri-db-23」とは、1と計算される。「keiri_db-12」と「jinji-db-53」とは、2と計算される。「keiri_db-23」と「jinji-db-53」とは、2と計算される。
そして、クラスタ生成部41は、計算されたレーベンシュタイン距離を用いて、VM構成情報311から得られるクラスタを生成する。ここでは、距離が1を示す「keiri_db-12」と「keiri-db-23」とが、1つのVM構成情報311から得られるクラスタとして生成される。距離が2を示す「jinji_db-53」が、1つのVM構成情報311から得られるクラスタとして生成される。
そして、クラスタ生成部41は、同じクラスタに属するVM名から名前パターンを生成する。ここでは、1つのVM構成情報311から得られるクラスタに属する「keiri_db-12」、「keiri-db-23」の名前パターンは、「keiri-db-??」と生成される。1つのVM構成情報311から得られるクラスタに属する「jinji-db-53」の名前パターンは、「jinji-db-??」と生成される。名前パターン内の「??」は、任意の英数字を示す。この結果、VMのサイズタイプとしてC4M4、名前パターンとして「keiri-db-??」のVM構成情報311から得られるクラスタには、「keiri_db-12」、「keiri-db-23」のVMが属することになる。VMのサイズタイプとしてC4M4、名前パターンとして「jinji-db-??」のVM構成情報311から得られるクラスタには、「jinji_db-53」のVMが属することになる。すなわち、クラスタ生成部41は、サイズは同じであるが、名前が似ていないVMを異なるクラスタに設定する。その他、VMのサイズタイプとしてC4M2、名前パターンとして「keiri-jimu-??」のVM構成情報311から得られるクラスタが生成される。VMのサイズタイプとしてC8M4、名前パターンとして「keiri-ana-??」のVM構成情報311から得られるクラスタが生成される。このVM構成情報311から得られるクラスタをA2とする。
そして、クラスタ生成部41は、負荷パターン21から得られるクラスタA1およびVM構成情報311から得られるクラスタA2を用いて、VM名に対応付けて負荷パターンおよび構成情報(名前パターン、サイズタイプ)を保持する。
図12Dに示すように、クラスタ生成部41は、保持した情報を用いて、負荷パターンと構成情報とを関連付ける。すなわち、負荷パターンが例えば「周期なし」のときに関連付けられる構成情報を推定する。負荷パターンが例えば「昼型」のときに関連付けられる構成情報を推定する。負荷パターンが例えば「夜型」のときに関連付けられる構成情報を推定する。例えば、ベイズ推定を用いれば良い。一例として、負荷パターンが「周期なし」のときを事象Aとし、構成情報が「keiri-db」のときを事象Bとする。すると、事象Aが起きる確率をP(A)、事象Bが起きる確率をP(B)、事象Aが起きた後の事象Bの確率をP(B|A)とする。すると、P(B|A)は、以下の式により求められる。なお、P(B)は、構成情報「keiri-db」が起きる確率であり、2/5である。P(A)は、構成情報「周期なし」が起きる確率であり、2/5である。P(A|B)は、事象B(構成情報が「keiri-db」)が起きた後の事象A(負荷パターンが「周期なし」)の確率であり、1である。
P(B|A)=P(A|B)P(B)/P(A)=1×(2/5)/(2/5)=1
これにより、事象Aが起きたとき1(100%)の確率で事象Bが起きるので、事象Aと事象Bとは関連付けられる。なお、P(B|A)が1でなくても、所定の閾値以上での場合に、事象Aと事象Bとが関連付けられるとしても良い。例えば、所定の閾値は、0.9以であっても良いし、0.8であっても良いし、経験的に定められれば良い。
この結果、クラスタ生成部41は、負荷パターンが「周期なし」のときに関連付けられる構成情報を(keiri_db、C4M4)として推定する。クラスタ生成部41は、負荷パターンが「昼型」のときに関連付けられる構成情報を(keiri_jimu、C4M2)として推定する。クラスタ生成部41は、負荷パターンが「夜型」のときに関連付けられる構成情報を(keiri_ana、C8M4)として推定する。クラスタ生成部41は、負荷パターンが「昼型」のときに関連付けられる構成情報を(jinji_db、C4M4)として推定する。負荷パターンと構成情報との関連付けが1つのクラスタとなる。そして、クラスタ生成部41は、負荷パターンおよび構成情報の関連付けをクラスタリング結果42として格納する。
[予測モデル生成処理の全体のフローチャート]
図13は、実施例2に係る予測モデル生成処理の全体のフローチャートの一例を示す図である。
図13に示すように、負荷パターン生成部12Aは、予測モデルの生成要求を受け付けたか否かを判定する(ステップS51)。なお、予測モデルの生成要求は、例えば、毎月行われても良いし、隔月に行われても良い。予測モデルの生成要求を受け付けていないと判定した場合には(ステップS51;No)、負荷パターン生成部12Aは、当該要求を受け付けるまで判定処理を繰り返す。
一方、予測モデルの生成要求を受け付けたと判定した場合には(ステップS51;Yes)、クラスタ生成部41は、クラスタ生成処理を実行する(ステップS52)。なお、クラスタ生成処理のフローチャートは、後述する。
そして、負荷パターン生成部12Aは、クラスタごとに負荷パターン生成処理を実行する(ステップS53)。
そして、クラスタごとの負荷パターン生成処理が実行された後、予測モデル生成部13Aは、クラスタごとに予測モデル生成処理を実行する(ステップS54)。なお、予測モデル生成処理のフローチャートは、後述する。
[クラスタ生成処理のフローチャート]
図14は、実施例2に係るクラスタ生成処理のフローチャートの一例を示す図である。
図14に示すように、クラスタ生成部41は、同じユーザが管理するVMの中で、負荷パターンが似ているVMをクラスタリングする(ステップS61)。なお、負荷パターンが似ているVMをクラスタリングする処理は、後述する。
クラスタ生成部41は、同じユーザが管理するVMの中で、構成情報が似ているVMをクラスタリングする(ステップS62)。なお、構成情報が似ているVMをクラスタリングする処理は、後述する。
そして、クラスタリング生成部41は、負荷パターン21から得られるクラスタとVMの構成情報のクラスタとを関連付け、負荷パターンと構成情報とがともに似た同士のクラスタを生成する(ステップS63)。例えば、クラスタリング生成部41は、負荷パターン21から得られるクラスタとVMの構成情報のクラスタとの関連付けを、ベイズ推定を用いて行う。そして、クラスタ生成部41は、クラスタ生成処理を終了する。
[負荷パターンが似ているVMをクラスタリングする処理のフローチャート]
図15は、負荷パターンが似ているVMをクラスタリングする処理のフローチャートの一例を示す図である。
負荷パターン生成部12Aは、選択されたクラスタに属する全VMについて、負荷パターン21を生成する(ステップS71)。
そして、クラスタ生成部41は、負荷パターン21の周期ごとにVMを分類する(ステップS72)。そして、クラスタ生成部41は、周期が同じVM同士の負荷パターン21の距離を計算し、負荷パターン21のクラスタを生成する(ステップS73)。例えば、クラスタ生成部41は、負荷パターン21の距離を、例えば、ユークリッド距離を用いて計算する。なお、負荷パターン21のクラスタは、例えば、日周期の場合には、昼型、夜型、周期なし型に分類される。そして、クラスタ生成部41は、負荷パターンが似ているVMをクラスタリングする処理を終了する。
[構成情報が似ているVMをクラスタリングする処理のフローチャート]
図16は、負荷パターンが似ているVMをクラスタリングする処理のフローチャートの一例を示す図である。
図16に示すように、クラスタ生成部41は、選択されたクラスタに属する全VMを、同じサイズのVM同士で纏めてグループ分けする(ステップS81)。サイズとは、例えば、VCPUのコア数やメモリサイズのことをいう。
そして、クラスタ生成部41は、同じサイズのグループに属するVMをさらにVMの名前でグループ分けする(ステップS82)。例えば、クラスタ生成部41は、VMの名前でのグループ分けを、レーベンシュタイン距離を用いて行う。そして、クラスタ生成部41は、構成情報が似ているVMをクラスタリングする処理を終了する。
[予測モデル生成処理のフローチャート]
図17は、実施例2に係る予測モデル生成処理のフローチャートの一例を示す図である。
図17に示すように、予測モデル生成部13Aは、クラスタを選択する(ステップS91)。
予測モデル生成部13Aは、選択したクラスタに属するVMごとにVMが過去にライブマイグレーション(LM)した時刻の負荷情報とLMにかかった時間(LM時間)を取得する(ステップS92)。例えば、予測モデル生成部13Aは、情報取得部11によってLMログ34から取得された、LMした時刻およびLM時間を取得する。予測モデル生成部13は、選択したクラスタに属するVMに対する負荷パターン21から、LMした時刻に対応する負荷情報を取得する。
そして、予測モデル生成部13Aは、負荷情報を説明変数、LM時間を目的変数として、重回帰分析を行い、選択したVMに対する予測モデル22を生成する(ステップS93)。例えば、予測モデル生成部13Aは、式(1)のβ、β、β、β、βを特定し、予測モデル22として重回帰式を生成する。そして、予測モデル生成部13Aは、選択したクラスタの予測モデル生成処理を終了する。
[実施例2の効果]
上記実施例によれば、情報提供装置1は、負荷パターンおよび構成が類似したVMをグループ化し、グループごとにライブマイグレーションを実行した時刻の負荷情報を抽出する。そして、情報提供装置1は、抽出した時刻ごとの負荷情報とライブマイグレーションにかかった時間から、グループごとの予測モデルを生成する。かかる構成によれば、情報提供装置1は、負荷パターンおよび構成が類似した複数のVMを含むグループを用いて予測モデルを生成することで、LMの実行データを増やすことができ、パブリッククラウドにおけるライブマイグレーションにかかる時間を精度良く予測できる。
ところで、実施例1では、情報提供装置1は、VMについて、過去の負荷情報から生成された負荷パターン21およびVMが過去にライブマイグレーション(LM)した時のLM時間に基づいて、LM時間を予測する予測モデルを生成すると説明した。実施例2では、情報提供装置1は、VM構成情報311および負荷パターン21が似ているVM同士を1つのクラスタとし、クラスタごとに、LM時間を予測する予測モデル生成すると説明した。しかしながら、情報提供装置1は、これに限定されず、PMを所定の期間にメンテナンスする場合に、生成した予測モデルを用いて、PMが管理するVMのLMをスケジューリングしても良い。
そこで、実施例3に係る情報提供装置1は、PMを所定の期間にメンテナンスする場合に、生成した予測モデルを用いて、PMが管理するVMのLMをスケジューリングする場合を説明する。
[実施例3に係る情報提供装置の構成]
図18は、実施例3に係る情報提供装置の構成を示す機能ブロック図である。なお、実施例1の図1に示す情報提供装置1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例1と実施例3とが異なるところは、スケジュール生成部51、メンテナンススケジュール52およびユーザ向けインタフェース部152を追加した点である。
メンテナンススケジュール52は、PMをメンテンナンスする場合のPMが管理するVMのライブマイグレーションスケジュールである。PMのメンテンナンスとは、例えば、PMのOSをアップグレードすることを意味する。
ユーザ向けインタフェース部152は、ネットワークを介してユーザ提供者に対して、後述するスケジュール生成部51によって生成されたメンテンナススケジュール52を提供する。
スケジュール生成部51は、PMを所定の期間にメンテナンスする場合に、予測モデル生成部13によって生成された予測モデル22を用いて、PMが管理するVMのLMをスケジューリングする。
例えば、スケジュール生成部51は、メンテナンス対象のPMおよびメンテナンス期間を受け付けると、PM管理表312から当該PMが管理するVMのVM名を取得する。そして、スケジュール生成部51は、VM名ごとに、VM名が示すVMに対する負荷パターン21を用いて、メンテナンス期間中の各時点(周期分割要素)における負荷情報を取得する。そして、スケジュール生成部51は、VM名が示すVMに対する予測モデル22および負荷情報を用いて、各時点(周期予測要素)について、VMのLMにかかる時間を予測する。
そして、スケジュール生成部51は、各時点(周期予測要素)における各VMのLMにかかる時間を用いて、LM時間が最短になるように、メンテナンス期間のメンテナンススケジュール52を生成する。例えば、スケジュール生成部51は、メンテナンス期間のメンテナンススケジュール52を、線形計画法を用いて生成すれば良い。
そして、スケジュール生成部51は、生成したメンテンナス期間のメンテナンススケジュール52を、ユーザ向けインタフェース部152を介してユーザに提示する。
[スケジュール生成処理の一例]
ここで、スケジュール生成処理の一例を、図19を参照して説明する。図19は、スケジュール生成処理の一例を示す図である。なお、スケジュール生成部51は、メンテナンス対象のPMおよびメンテナンス期間を受け付けたものとする。
図19に示すように、スケジュール生成部51は、PM管理表312からメンテナンス対象のPMについて、PMが管理するVMのVM名を取得する。ここでは、メンテナンス対象のPMのPM名が「PM1」であるとすると、PM管理表312から、「PM1」が管理するVM名として「keiri-db-23」、「keiri-ana-44」および「keiri-jimu-24」が取得される。
そして、スケジュール生成部51は、VM名ごとに、VM名が示すVMに対する負荷パターン21を用いて、メンテナンス期間中の各時点(周期分割要素)における負荷情報を取得する。ここでは、スケジュール生成部51は、「keiri-db-23」に対する負荷パターン21を用いて、メンテナンス期間中の各時刻(周期分割要素)における負荷情報を取得する。スケジュール生成部51は、「keiri-ana-44」に対する負荷パターン21を用いて、メンテナンス期間中の各時刻(周期分割要素)における負荷情報を取得する。スケジュール生成部51は、「keiri-jimu-24」に対する負荷パターン21を用いて、メンテナンス期間中の各時刻(周期分割要素)における負荷情報を取得する。
そして、スケジュール生成部51は、VM名が示すVMに対する予測モデル22および当該VMに対するメンテナンス期間中の各時刻(周期分割要素)における負荷情報を用いて、各時刻(周期予測要素)について、当該VMのLMにかかる時間を予測する。ここでは、スケジュール生成部51は、「keiri-jimu-24」に対する予測モデル22および「keiri-jimu-24」に対するメンテナンス期間中の各時刻(周期分割要素)における負荷情報を用いて、各時刻(周期予測要素)について、「keiri-jimu-24」のLMにかかる時間を予測する。一例として、時刻(周期分割要素)が「○月○日9:00」である場合には、LM時間予測が「25秒」である。スケジュール生成部51は、「keiri-ana-44」に対する予測モデル22および「keiri-ana-44」に対するメンテナンス期間中の各時刻(周期分割要素)における負荷情報を用いて、各時刻(周期予測要素)について、「keiri-ana-44」のLMにかかる時間を予測する。一例として、時刻(周期分割要素)が「○月○日9:00」である場合には、LM時間予測が「50秒」である。スケジュール生成部51は、「keiri-db-23」に対する予測モデル22および「keiri-db-23」に対するメンテナンス期間中の各時刻(周期分割要素)における負荷情報を用いて、各時刻(周期予測要素)について、「keiri-db-23」のLMにかかる時間を予測する。一例として、時刻(周期分割要素)が「○月○日9:00」である場合には、LM時間予測が「40秒」である。
そして、スケジュール生成部51は、各時刻(周期予測要素)における各VMのLMにかかる時間を用いて、LM時間が最短になるように、メンテナンス期間のメンテナンススケジュール52を生成する。例えば、スケジュール生成部51は、メンテナンス期間のメンテナンススケジュール52を、線形計画法を用いて生成すれば良い。
なお、実施例3では、スケジュール生成部51は、メンテナンス対象のPMおよびメンテナンス期間を受け付けると、PMが管理するVMに対する予測モデル22を用いて、PMが管理するVMのLMをスケジューリングすると説明した。しかしながら、スケジュール生成部51は、メンテナンス対象のPMおよびメンテナンス期間を受け付けると、PMが管理するVMが属するクラスタに対する予測モデル22を用いて、PMが管理するVMのLMをスケジュールしても良い。
[メンテナンススケジュールの提示の例]
図20Aおよび図20Bは,メンテナンススケジュールの提示の一例を示す図である。なお、図20Aおよび図20Bでは、メンテナンス期間が「7/1 0:00〜」である場合とする。メンテナンス対象が「PM1、PM2、PM3、PM4」である場合とする。
図20Aは、メンテナンススケジュール52Aをガントチャート形式で提示したものである。ここでは、PM1が管理する「keiri-db-23」、「keiri-jimu-24」および「keiri-ana-44」は、「keiri-db-23」、「keiri-jimu-24」および「keiri-ana-44」の順序でLMさせることがわかる。すなわち、「keiri-db-23」をLMさせ、「keiri-db-23」をLMさせた後「keiri-jimu-24」をLMさせ、「keiri-jimu-24」をLMさせた後「keiri-ana-44」をLMさせる。そして、PM1が空になると、PM1のメンテナンス作業がされる。そして、PM1のメンテナンス作業が終了すると、PM2の作業に遷移すべく、PM2が管理する「keiri-db-12」をLMさせる。このように、スケジュール生成部51は、全てのPMについて、VMを空にするために順次VMをLMさせるべく、メンテナンススケジュール52Aを生成する。
図20Bは、メンテナンススケジュール52Bを表形式で提示したものである。ここでは、予定時刻が「7/1 0:10」にメンテナンスが開始する。予定時刻が「7/1 0:10〜0:20」に、「keiri-db-23」がPM1からPM2にLMする。予定時刻が「7/1 0:20〜0:22」に、「keiri-jimu-24」がPM1からPM3にLMする。予定時刻が「7/1 0:22〜0:28」に、「keiri-ana-44」がPM1からPM4にLMする。かかる予定時刻は、「keiri-ana-44」にとってLM時間が一番短いときではなく、負荷がかかる時刻である。しかし、全体のLM時間を一番短くするために、「keiri-ana-44」のLM時間を、この予定時刻としている。したがって、影響として「レスポンス低下可能性あり」が表わされる。そして、PM1が空になる予定時刻が「7/1 0:28〜0:33」に、PM1のメンテナンス作業がされる。そして、PM1のメンテナンス作業が終了すると、予定時刻が「7/1 0:33〜0:43」に、「keiri-db-12」がPM2からPM1にLMする。そして、予定時刻が「7/1 6:58」にメンテナンスが終了する。
このようにして、スケジュール生成部51は、メンテナンススケジュール52をユーザに提示することで、メンテナンススケジュール52の全体の予定状況を把握させることができる。
[スケジュール生成処理のフローチャート]
図21は、実施例3に係るスケジュール生成処理のフローチャートの一例を示す図である。
図21に示すように、スケジュール生成部51は、メンテナンス対象およびメンテナンス期間を含むメンテナンススケジュール生成指示を受け付けたか否かを判定する(ステップS101)。メンテナンススケジュール生成指示を受けて付けていないと判定した場合には(ステップS101;No)、スケジュール生成部51は、メンテナンススケジュール生成指示を受け付けるまで、判定処理繰り返す。
一方、メンテナンススケジュール生成指示を受け付けたと判定した場合には(ステップS101;Yes)、スケジュール生成部51は、PM管理表312から、メンテナンス対象のPMがホストしているVMのVM名を取得する(ステップS102)。そして、スケジュール生成部51は、VMごとに、VMに対する負荷パターン21を用いて、メンテナンス期間中の各時点(周期予測要素)における負荷情報を取得する(ステップS103)。
そして、スケジュール生成部51は、VMごとに、各時点(周期予測要素)について、VMのライブマイグレーション(LM)にかかる時間を、負荷情報と予測モデル22から予測する(ステップS104)。そして、スケジュール生成部51は、LM時間が最短になるように、メンテナンススケジュール52を生成する(ステップS105)。そして、スケジュール生成部51は、スケジュール生成処理を終了する。
[実施例3の効果]
上記実施例によれば、情報提供装置1は、PMを所定の期間にメンテナンスする場合に、所定の期間の時点ごとに、PMに搭載されるVMのライブマイグレーションにかかる時間を、VMに対応する予測モデル21を用いて予測する。情報提供装置1は、ライブマイグレーションにかかる時間の合計が最小になるように、所定の期間中のVMのライブマイグレーションの順序をスケジューリングする。かかる構成によれば、情報提供装置1は、VMに対応する予測モデル21を用いることで、メンテナンス対象のPMに搭載されるVMのメンテナンス期間のライブマイグレーションにかかる時間を予測できる。この結果、情報提供装置1は、予測されるライブマイグレーションにかかる時間を基に、メンテナンス対象のPMのメンテナンススケジュール52を生成できる。そして、情報提供装置1は、メンテナンススケジュール52を生成することで、メンテンナンスの期間を短縮できる。
ところで、実施例3では、スケジュール生成部51は、メンテナンススケジュール52を、例えばガントチャート形式や表形式でユーザに提示すると説明した。しかしながら、スケジュール生成部51は、これに限定されず、メンテナンススケジュール52を画面形式でユーザに提示しても良い。
[ユーザに提示する画面の一例]
図22は、実施例4に係るユーザに提示する画面の一例を示す図である。なお、図22の画面は、図20Aおよび図20Bで示した情報を利用したものである。
図22に示すように、ユーザに対する定期メンテナンスのお知らせが、ガントチャート形式で表示されている。そして、「keiri-ana-44」のLM時間に注意マークが表わされている。そして、ユーザがそのマークにマウスオーバすると、注意マークの説明が表わされる。ここでは、「レスポンス低下可能性あり」が表わされる。
[実施例4の効果]
上記実施例によれば、情報提供装置1は、スケジューリングの結果、ライブマイグレーションによりユーザの業務に影響がでると予想されるVMがある場合には、VMのユーザ向けの画面に注意を喚起する情報を提示する。かかる構成によれば、情報提供装置1は、VMを管理するユーザに対して注意を喚起することができる。
[その他]
なお、上記実施例1−4では、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、負荷パターン生成部12を、VMごとに、過去の負荷情報から負荷の周期を特定する特定部と、負荷の周期ごとに異なる分割要素ごとの負荷情報を算出する算出部と、分割要素ごとの負荷情報を示す負荷パターン21を生成する生成部と、に分散しても良い。また、情報取得部11と負荷パターン生成部12とを統合しても良い。記憶部20を情報提供装置1の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図1に示した情報提供装置1と同様の機能を実現する情報提供プログラムを実行するコンピュータの一例を説明する。図23は、情報提供プログラムを実行するコンピュータの一例を示す図である。
図23に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、情報提供プログラム205aおよび情報提供関連情報205bを記憶する。
CPU203は、情報提供プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、情報提供装置1の各機能部に対応する。情報提供関連情報205bは、負荷パターン21および予測モデル22に対応する。そして、例えばリムーバブルディスク211が、情報提供プログラム205aなどの各情報を記憶する。
なお、情報提供プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから情報提供プログラム205aを読み出して実行するようにしても良い。
1 情報提供装置
10 制御部
11 情報取得部
12 負荷パターン生成部
13 予測モデル生成部
14 予測部
15 入出力インタフェース部
151 提供者向けインタフェース部
20 記憶部
21 負荷パターン
22 予測モデル
3 IaaS基盤
31 IaaS管理情報
311 VM構成情報
312 PM管理表
313 ユーザ管理表
32 リソース
321 PM
322 VM
33 VM管理基盤
34 LMログ
35 VM負荷情報履歴
9 情報提供システム

Claims (7)

  1. ライブマイグレーションの各事象を記憶したログ情報から仮想マシンごとにライブマイグレーションを実行した時刻およびライブマイグレーションにかかった時間を抽出し、
    仮想マシンごとにCPU使用率、メモリ使用量を含む負荷情報を所定間隔で記憶した負荷履歴から仮想マシンごとにライブマイグレーションを実行した時刻の負荷情報を抽出し、
    ライブマイグレーションを実行した時刻ごとの負荷情報とライブマイグレーションにかかった時間から、仮想マシンごとのライブマイグレーション時間を予測するモデルを生成し、
    ライブマイグレーションの予測時間の指示を受けると、ライブマイグレーションする仮想マシンのライブマイグレーション時間を予測する前記モデルから、ライブマイグレーション時間を予測し、
    前記予測したライブマイグレーション時間を提供する
    処理をコンピュータに実行させることを特徴とする情報提供プログラム。
  2. 前記負荷情報を抽出する処理は、前記負荷履歴から仮想マシンごとに負荷情報の周期を求め、仮想マシンごとに求められた負荷情報の周期に応じて所定期間ごとの負荷情報を求め、仮想マシンごとの負荷パターンを生成し、前記負荷パターンから仮想マシンごとにライブマイグレーションを実行した時刻に対応する負荷情報を抽出する
    ことを特徴とする請求項1に記載の情報提供プログラム。
  3. 前記負荷情報を抽出する処理は、前記負荷パターンおよび構成が類似した仮想マシンをグループ化し、グループごとにライブマイグレーションを実行した時刻の負荷情報を抽出し、
    前記モデルを生成する処理は、抽出した時刻ごとの負荷情報とライブマイグレーションにかかった時間から、前記グループごとの前記モデルを生成する
    ことを特徴とする請求項2に記載の情報提供プログラム。
  4. 物理マシンを所定の期間にメンテナンスする場合に、前記所定の期間の時点ごとに、前記物理マシンに搭載される仮想マシンのライブマイグレーションにかかる時間を、前記仮想マシンに対応する前記モデルを用いて予測し、
    ライブマイグレーションにかかる時間の合計が最小になるように、前記所定の期間中の前記仮想マシンのライブマイグレーションの順序をスケジューリングする
    ことを特徴とする請求項1または請求項3に記載の情報提供プログラム。
  5. 前記スケジューリングの結果、ライブマイグレーションによりユーザの業務に影響がでると予想される仮想マシンがある場合には、前記仮想マシンのユーザ向けの画面に注意を喚起する情報を提示する
    ことを特徴とする請求項4に記載の情報提供プログラム。
  6. ライブマイグレーションの各事象を記憶したログ情報から仮想マシンごとにライブマイグレーションを実行した時刻およびライブマイグレーションにかかった時間を抽出する第1の抽出部と、
    仮想マシンごとにCPU使用率、メモリ使用量を含む負荷情報を所定間隔で記憶した負荷履歴から仮想マシンごとにライブマイグレーションを実行した時刻の負荷情報を抽出する第2の抽出部と、
    ライブマイグレーションを実行した時刻ごとの負荷情報とライブマイグレーションにかかった時間から、仮想マシンごとのライブマイグレーション時間を予測するモデルを生成する生成部と、
    ライブマイグレーションの予測時間の指示を受けると、ライブマイグレーションする仮想マシンのライブマイグレーション時間を予測する前記モデルから、ライブマイグレーション時間を予測する予測部と、
    前記予測したライブマイグレーション時間を提供する提供部と、
    を有することを特徴とする情報提供装置。
  7. ライブマイグレーションの各事象を記憶したログ情報から仮想マシンごとにライブマイグレーションを実行した時刻およびライブマイグレーションにかかった時間を抽出し、
    仮想マシンごとにCPU使用率、メモリ使用量を含む負荷情報を所定間隔で記憶した負荷履歴から仮想マシンごとにライブマイグレーションを実行した時刻の負荷情報を抽出し、
    ライブマイグレーションを実行した時刻ごとの負荷情報とライブマイグレーションにかかった時間から、仮想マシンごとのライブマイグレーション時間を予測するモデルを生成し、
    ライブマイグレーションの予測時間の指示を受けると、ライブマイグレーションする仮想マシンのライブマイグレーション時間を予測する前記モデルから、ライブマイグレーション時間を予測し、
    前記予測したライブマイグレーション時間を提供する
    処理をコンピュータが実行することを特徴とする情報提供方法。
JP2017182672A 2017-09-22 2017-09-22 情報提供プログラム、情報提供装置および情報提供方法 Active JP6911670B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017182672A JP6911670B2 (ja) 2017-09-22 2017-09-22 情報提供プログラム、情報提供装置および情報提供方法
US16/131,091 US10884777B2 (en) 2017-09-22 2018-09-14 Apparatus and method to predict a time interval taken for a live migration of a virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017182672A JP6911670B2 (ja) 2017-09-22 2017-09-22 情報提供プログラム、情報提供装置および情報提供方法

Publications (2)

Publication Number Publication Date
JP2019057236A JP2019057236A (ja) 2019-04-11
JP6911670B2 true JP6911670B2 (ja) 2021-07-28

Family

ID=65809050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017182672A Active JP6911670B2 (ja) 2017-09-22 2017-09-22 情報提供プログラム、情報提供装置および情報提供方法

Country Status (2)

Country Link
US (1) US10884777B2 (ja)
JP (1) JP6911670B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042458B2 (en) * 2018-04-30 2021-06-22 Accenture Global Solutions Limited Robotic optimization for robotic process automation platforms
US10761934B2 (en) * 2018-05-16 2020-09-01 Hewlett Packard Enterprise Development Lp Reconstruction of data of virtual machines
US10853116B2 (en) * 2018-07-19 2020-12-01 Vmware, Inc. Machine learning prediction of virtual computing instance transfer performance
JP7125601B2 (ja) * 2018-07-23 2022-08-25 富士通株式会社 ライブマイグレーション制御プログラム及びライブマイグレーション制御方法
CN110262949A (zh) * 2019-04-29 2019-09-20 北京邮电大学 智能设备日志处理系统及方法
CN110737509B (zh) * 2019-10-18 2022-04-19 杭州朗和科技有限公司 热迁移处理方法及装置、存储介质和电子设备
US11461123B1 (en) 2019-11-21 2022-10-04 Amazon Technologies, Inc. Dynamic pre-copy and post-copy determination for live migration between cloud regions and edge locations
US11573839B1 (en) * 2019-11-21 2023-02-07 Amazon Technologies, Inc. Dynamic scheduling for live migration between cloud regions and edge locations
US11734038B1 (en) 2019-11-21 2023-08-22 Amazon Technologies, Inc Multiple simultaneous volume attachments for live migration between cloud regions and edge locations
US11915106B2 (en) * 2020-07-09 2024-02-27 Kyndryl, Inc. Machine learning for determining suitability of application migration from local to remote providers
KR102262645B1 (ko) * 2020-12-31 2021-06-09 박용정 클라우드 컴퓨팅 환경에서의 리소스관리를 위한 모니터링 시스템 및 방법
CN112988332B (zh) * 2021-04-26 2021-09-21 杭州优云科技有限公司 一种虚拟机热迁移预测方法、系统和计算机可读存储介质
US20240086259A1 (en) * 2022-09-12 2024-03-14 Sap Se Dynamically migrating services based on similarity

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7296256B2 (en) * 2003-10-20 2007-11-13 International Business Machines Corporation Method and apparatus for automatic modeling building using inference for IT systems
JP4894745B2 (ja) 2007-12-14 2012-03-14 富士通株式会社 仮想マシン移動制御方式
US9250863B1 (en) * 2010-12-28 2016-02-02 Amazon Technologies, Inc. Managing virtual machine migration
US10108517B1 (en) * 2011-06-27 2018-10-23 EMC IP Holding Company LLC Techniques for data storage systems using virtualized environments
JP2015011569A (ja) * 2013-06-28 2015-01-19 株式会社東芝 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理プログラム
JP2016184252A (ja) 2015-03-26 2016-10-20 日本電気株式会社 ライブマイグレーション管理方法および装置

Also Published As

Publication number Publication date
US10884777B2 (en) 2021-01-05
JP2019057236A (ja) 2019-04-11
US20190095233A1 (en) 2019-03-28

Similar Documents

Publication Publication Date Title
JP6911670B2 (ja) 情報提供プログラム、情報提供装置および情報提供方法
Peng et al. Optimus: an efficient dynamic resource scheduler for deep learning clusters
US11392843B2 (en) Utilizing a machine learning model to predict a quantity of cloud resources to allocate to a customer
US10002024B2 (en) Method and system for dynamic pool reallocation
EP3550426B1 (en) Improving an efficiency of computing resource consumption via improved application portfolio deployment
Joseph et al. IntMA: Dynamic interaction-aware resource allocation for containerized microservices in cloud environments
Singh et al. Dynamic price prediction for amazon spot instances
Zhu et al. Scheduling stochastic multi-stage jobs to elastic hybrid cloud resources
Tuli et al. MCDS: AI augmented workflow scheduling in mobile edge cloud computing systems
Pongsakorn et al. Container rebalancing: Towards proactive linux containers placement optimization in a data center
Wang et al. Design and implementation of an analytical framework for interference aware job scheduling on apache spark platform
Ujjwal et al. An efficient framework for ensemble of natural disaster simulations as a service
KR20160050003A (ko) 열 매커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법
Mekala et al. DAWM: Cost‐Aware Asset Claim Analysis Approach on Big Data Analytic Computation Model for Cloud Data Centre
TW201732642A (zh) 用戶行為資料的處理方法和裝置
US11562299B2 (en) Workload tenure prediction for capacity planning
Naghshnejad et al. A hybrid scheduling platform: a runtime prediction reliability aware scheduling platform to improve hpc scheduling performance
JP5870927B2 (ja) サーバシステム、管理装置、サーバ管理方法、およびプログラム
US20210263718A1 (en) Generating predictive metrics for virtualized deployments
CN109684381A (zh) 数据热度统计方法及装置
Joseph et al. Nature‐inspired resource management and dynamic rescheduling of microservices in Cloud datacenters
CN114090201A (zh) 资源调度方法、装置、设备及存储介质
JP2015108877A (ja) 予測時間分布生成装置、制御方法、及びプログラム
EP3719719A1 (en) Utilizing a machine learning model to predict a quantity of cloud resources to allocate to a customer
Narasimhan et al. AI-Based Enhanced Time Cost-Effective Cloud Workflow Scheduling

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210519

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210608

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210621

R150 Certificate of patent or registration of utility model

Ref document number: 6911670

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150