JP2014006739A - プログラム、管理サーバおよび仮想マシン移動制御方法 - Google Patents

プログラム、管理サーバおよび仮想マシン移動制御方法 Download PDF

Info

Publication number
JP2014006739A
JP2014006739A JP2012142402A JP2012142402A JP2014006739A JP 2014006739 A JP2014006739 A JP 2014006739A JP 2012142402 A JP2012142402 A JP 2012142402A JP 2012142402 A JP2012142402 A JP 2012142402A JP 2014006739 A JP2014006739 A JP 2014006739A
Authority
JP
Japan
Prior art keywords
migration
virtual machine
predicted
resource usage
physical server
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.)
Granted
Application number
JP2012142402A
Other languages
English (en)
Other versions
JP6044131B2 (ja
Inventor
Yoshikazu Oda
善和 小田
Kenichi Shimazaki
健一 島▲崎▼
Yasuhide Tobo
康英 當房
Yukihisa Miyagawa
幸久 宮川
Yuki Nojiri
由紀 野尻
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 JP2012142402A priority Critical patent/JP6044131B2/ja
Priority to US13/868,474 priority patent/US9378056B2/en
Publication of JP2014006739A publication Critical patent/JP2014006739A/ja
Application granted granted Critical
Publication of JP6044131B2 publication Critical patent/JP6044131B2/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/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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】リソース使用量が不足すると予測された物理サーバが今後動作不安定になることを抑制する。
【解決手段】仮想マシン移動制御を行うプログラムは、管理サーバ1に、複数の仮想マシンを搭載する物理サーバについて、所定期間内でのリソース不足を予測し、該予測したリソース不足の時点にリソース不足が予測された物理サーバに搭載されている仮想マシンから他の物理サーバに移動することによりリソース不足を解消可能な仮想マシンを特定し、該特定した仮想マシンの所定期間内でのリソースの使用量およびリソースの使用量に対応する時点に基づいて、特定した仮想マシンを他の物理サーバに移動する処理を実行させる。
【選択図】図2

Description

本発明は、プログラム、管理サーバおよび仮想マシン移動制御方法に関する。
従来、サーバのマシンリソースを、ハイパーバイザが管理し、1台のサーバ上に複数の仮想マシンを並行して稼働させる仮想化技術が知られている。かかる仮想化技術では、サーバのマシンリソースをサーバに効率良く利用させるために、サーバを管理する管理サーバが、実行中の仮想マシンを、構築されているサーバから別のサーバに無停止で移動させる。これを「ライブマイグレーション」と呼ぶ。
ライブマイグレーションでは、管理サーバが移動元のメモリイメージを移動先へコピーする。実行中の仮想マシンのメモリは変更され続けているので、厳密に言えば、管理サーバがコピーしているいずれかのタイミングで、仮想マシンは一時的にダウン(停止)することは避けられない。この一時的にダウンする時間(「ダウンタイム」という)は、通常数秒であるが、移動する仮想マシンのリソースの使用状況に依存し、リソースを大量に使用しているときに移動すると数秒を超える長時間となってしまう。
そこで、ライブマイグレーションによる長時間のダウンの発生を回避する技術が開示されている。かかる技術では、管理サーバが、高次方程式を使用して今後の物理サーバのリソース使用量を予測する。管理サーバは、リソース不足の発生を予測した場合、リソース使用量が負荷に関する移動の上限を定めた移動閾値を超えない時間帯が存在し、かつ、移動がなされる移動仮想マシンの移動時間がこの時間帯に含まれれば、この時間帯において移動仮想マシンを移動する。
特開2010−117760号公報
しかしながら、物理サーバの今後のリソース使用量が不足すると予測されても、物理サーバ上の仮想マシンのリソース使用量が移動閾値を下回る時間帯が存在しない場合、物理サーバ上の仮想マシンの移動が制限される。この結果、リソース使用量が不足すると予測された物理サーバは、今後動作不安定になる可能性があるという問題がある。
1つの側面では、リソース使用量が不足すると予測された物理サーバが、今後動作不安定になることを抑制することを目的とする。
一態様のプログラムは、コンピュータに、複数の仮想マシンを搭載する物理マシンについて、所定期間内でのリソース不足を予測し、該予測したリソース不足の時点にリソース不足が予測された物理マシンに搭載されている仮想マシンから他の物理マシンに移動することによりリソース不足を解消可能な仮想マシンを特定し、該特定した仮想マシンの前記所定期間内でのリソースの使用量および前記リソースの使用量に対応する時点に基づいて、前記特定した仮想マシンを他の物理マシンに移動する処理を実行させる。
本願の開示するプログラムの1つの態様によれば、リソース使用量が不足すると予測された物理サーバが、今後動作不安定になることを抑制できる。
図1は、実施例に係る情報処理システムの全体を示す図である。 図2は、実施例に係る管理サーバの構成を示す機能ブロック図である。 図3は、性能情報DBのデータ構造の一例を示す図である。 図4は、構成情報DBのデータ構造の一例を示す図である。 図5は、仮想マシン予測情報テーブルのデータ構造の一例を示す図である。 図6は、物理サーバ予測情報テーブルのデータ構造の一例を示す図である。 図7は、マイグレーション情報DBのデータ構造の一例を示す図である。 図8Aは、直近のサンプリングの差分絶対和の算出例を示す図である。 図8Bは、曜日のサンプリングの差分絶対和の算出例を示す図である。 図8Cは、日にちのサンプリングの差分絶対和の算出例を示す図である。 図9は、予測リソース使用量の算出例を示す図である。 図10は、予測性能情報作成部における予測性能情報の作成フローを説明する図である。 図11は、マイグレーション元決定部におけるマイグレーション元の決定を説明する図である。 図12は、マイグレーション元決定部におけるマイグレーション情報DBへの追加例を示す図である。 図13は、マイグレーション先決定部におけるマイグレーション情報DBからの検索例を示す図である。 図14は、マイグレーション先決定部における差分和を説明する図である。 図15は、マイグレーション先決定部におけるマイグレーション情報DBへの追加例を示す図である。 図16は、マイグレーション実行依頼部におけるマイグレーション情報DBからの検索例を示す図である。 図17は、マイグレーション実行依頼部によって行われるマイグレーション情報DBの実行状態の遷移を示す図である。 図18は、実施例に係るマイグレーション制御部のメイン処理の手順を示すフローチャートである。 図19は、実施例に係る予測性能情報作成処理の手順を示すフローチャートである。 図20は、実施例に係るリソース不足予測処理の手順を示すフローチャートである。 図21は、実施例に係るマイグレーション元決定処理の手順を示すフローチャートである。 図22は、仮想マシンの移動組合せを特定する処理の手順を示すフローチャートである。 図23は、実施例に係るマイグレーション先決定処理の手順を示すフローチャートである。 図24は、物理サーバの予測リソース使用量を取得する処理の手順を示すフローチャートである。 図25は、実施例に係るマイグレーション実行依頼処理の手順を示すフローチャートである。 図26は、マイグレーション制御プログラムを実行するコンピュータの一例を示す図である。
以下に、本願の開示するプログラム、管理サーバおよび仮想マシン移動制御方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
[実施例に係る情報処理システムの構成]
図1は、実施例に係る情報処理システムの全体を示す図である。図1に示すように、情報処理システム9は、管理サーバ1と、複数の物理サーバ2とを有する。物理サーバ2は、1つのハイパーバイザ21と複数の仮想マシン22とを備える。ハイパーバイザ21は、仮想マシン22を動かすための必要なソフトウェアであり、物理サーバ2に搭載されているCPU(Central Processing Unit)やメモリ等の資源を各仮想マシン22に割り当てる。
管理サーバ1は、複数の仮想マシン22を備える物理サーバ2のリソース不足になる時点を予測し、予測した時点が来る前、且つシステムのダウンタイムを最小化できるタイミングを見つけ出し、見つけ出したタイミングで自動的にライブマイグレーションする。ライブマイグレーションするタイミングは、例えば移動する仮想マシンのリソース使用量が最小になる時点である。また、移動する仮想マシンは、リソース使用量が最小になる時点が最早の時点の仮想マシンであることが望ましい。なお、ライブマイグレーションは、以降、「マイグレーション」と略記するものとする。
[実施例に係る管理サーバの構成]
管理サーバ1の構成について、図2を参照して説明する。図2は、実施例に係る管理サーバの構成を示す機能ブロック図である。図2に示すように、管理サーバ1は、記憶部11と、性能情報収集部12と、構成情報収集部13と、マイグレーション制御部14とを有する。
記憶部11は、例えばフラッシュメモリ(Flash Memory)やFRAM(登録商標)(Ferroelectric Random Access Memory)等の不揮発性の半導体メモリ素子等の記憶装置に対応する。そして、記憶部11は、性能情報DB(DataBase)111と、予測性能情報DB112と、構成情報DB113と、マイグレーション情報DB114とを有する。
性能情報DB111は、ハイパーバイザ21から仮想マシン22毎に収集された実際の性能情報を記憶する。ここでいう性能情報とは、CPU使用量(MHz)であったり、メモリ使用量(byte)であったり、ディスク使用量(byte/sec)であったりするが、これらに限定されない。すなわち、性能情報とは、物理サーバ2のリソースを仮想マシン22毎に共有して使用できる使用量であれば良い。なお、実施例では、CPU使用量を性能情報として、性能情報DB111に収集されるとする。また、CPU使用量は、以降、リソース使用量と同義に扱う。そして、性能情報DB111は、後述する性能情報収集部12によって生成される。
予測性能情報DB112は、仮想マシン予測情報テーブル1121と物理サーバ予測情報テーブル1122とを有する。仮想マシン予測情報テーブル1121は、仮想マシン22毎に、予測開始日時から予測終了日時までの予測期間内で予測されるリソース使用量を記憶する。物理サーバ予測情報テーブル1122は、物理サーバ毎に、今後予測されるリソース使用量を記憶する。なお、予測性能情報DB112は、後述する予測性能情報作成部142によって生成される。
構成情報DB113は、システムの構成情報を記憶する。構成情報には、物理サーバ2と仮想マシン22との対応関係と、物理サーバ2のリソースの上限値とが示される。マイグレーション情報DB114は、マイグレーションに関する情報を記憶する。マイグレーションに関する情報には、例えばマイグレーションする日時、マイグレーション元の物理サーバと仮想マシン、マイグレーション先の物理サーバおよびマイグレーションの実行状態が含まれる。なお、構成情報DB113は、後述する構成情報収集部13によって生成される。また、各DBのデータ構造は、後述するものとする。
性能情報収集部12は、ハイパーバイザ21から定期的に、ハイパーバイザ21が管理する仮想マシンの性能情報を収集し、収集した性能情報を性能情報DB111に記録する。例えば、性能情報収集部12は、ハイパーバイザ21から5分毎に、ハイパーバイザ21が管理しているリソース使用量を収集し、収集したリソース使用量を性能情報DB111に記録する。
ここで、性能情報DB111のデータ構造について、図3を参照して説明する。図3は、性能情報DBのデータ構造の一例を示す図である。図3に示すように、性能情報DB111は、収集日時111aと、物理サーバ名111bと、仮想マシン名111cと、CPU使用量111dとを対応付けて記憶する。収集日時111aは、性能情報としてCPU使用量を収集した日時を示す。物理サーバ名111bは、物理サーバの名称を示す。仮想マシン名111cは、仮想マシンの名称を示す。CPU使用量111dは、性能情報としてのCPUの使用量を示す。一例として、収集日時111aが「2011/10/11 00:00:00」である場合、物理サーバ名111bとして「Server1」、仮想マシン名111cとして「Gest001」、CPU使用量111dとして「500」と記憶している。すなわち、収集日時が「2011/10/11 00:00:00」である場合に、物理サーバ「Server1」の仮想マシン「Gest001」では、CPU使用量が「500」MHzであったことを示している。
図2に戻って、構成情報収集部13は、ハイパーバイザ21から定期的に、ハイパーバイザ21が管理する構成情報を収集し、収集した構成情報を構成情報DB113に記録する。例えば、構成情報収集部13は、ハイパーバイザ21から1時間毎に、ハイパーバイザ21が管理している構成情報を収集し、収集した構成情報を構成情報DB113に記録する。
ここで、構成情報DB113のデータ構造について、図4を参照して説明する。図4は、構成情報DBのデータ構造の一例を示す図である。図4に示すように、構成情報DB113は、物理サーバ名113aと、ハイパーバイザが管理する仮想マシン名113bと、CPU使用量の上限値113cとを対応付けて記憶する。物理サーバ名113aは、物理サーバの名称を示す。ハイパーバイザが管理する仮想マシン名113bは、ハイパーバイザ21が管理する仮想マシンの名称を示す。CPU使用量の上限値113cは、物理サーバのCPU使用量の上限値を示す。一例として、物理サーバ名113aが「Server1」である場合、ハイパーバイザが管理する仮想マシン名113bを「Gest1−1、Gest1−2、Gest1−3」、CPU使用量の上限値113cを「30000」と記憶している。
図2に戻って、マイグレーション制御部14は、マイグレーション制御に関する、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、マイグレーション制御部14は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路に対応する。また、マイグレーション制御部14は、メイン処理部141と、予測性能情報作成部142とを有する。さらに、マイグレーション制御部14は、リソース不足予測部143と、マイグレーション元決定部144と、マイグレーション先決定部145と、マイグレーション実行依頼部146とを有する。
メイン処理部141は、マイグレーション制御に関する各種処理のメインの処理部である。例えば、メイン処理部141は、定期的に、マイグレーションをスケジュールする。一例として、メイン処理部141は、5分毎に、マイグレーションをスケジュールする時刻か否かを判定する。そして、メイン処理部141は、マイグレーションをスケジュールする時刻であると判定した場合、マイグレーションをスケジュールする際に用いられる予測性能情報を作成すべく、後述する予測性能情報作成部142を呼び出す。一方、メイン処理部141は、マイグレーションをスケジュールする時刻でないと判定した場合、スケジュールされたマイグレーションの実行依頼をすべく、後述するマイグレーション実行依頼部146を呼び出す。
予測性能情報作成部142は、性能情報DB111に記憶された過去のリソース使用量を用いて、物理サーバ2上の仮想マシン22毎に、リソース使用量の3種類のサンプリングを行う。例えば、1種類目のサンプリングでは、直近の数日間をサンプリング対象とし、「直近のサンプリング」という。2種類目のサンプリングは、サンプリングを行う日と同じ曜日の数日間をサンプリング対象とし、「曜日のサンプリング」という。3種類目のサンプリングは、サンプリングを行う日と同じ日にちの数日間をサンプリング対象とし、「日にちのサンプリング」という。そして、予測性能情報作成部142は、3種類のサンプリングについて、種類毎に定められたそれぞれのサンプリング対象のリソース使用量をサンプリングする。サンプリングするリソース使用量は、所定期間の複数時点のものである。但し、サンプリングを行う日数とサンプリングする所定期間は、いずれのサンプリングの種類でも同じとする。例えば、サンプリングを行う日が11/10(木)で、サンプリングを行う日数が3である場合、「直近のサンプリング」では、11/9、11/8、11/7がサンプリング対象となる。「曜日のサンプリング」では、11/3(木)、10/27(木)、10/20(木)がサンプリング対象となる。「日にちのサンプリング」では、10/10、9/10、8/10がサンプリング対象となる。
また、予測性能情報作成部142は、サンプリングした3種類のサンプリング毎に、バラツキの大きさを求める。バラツキの大きさを求める方法は、各サンプリング対象の同じ収集時点のリソース使用量を用いて差分絶対和を算出し、算出した収集時点毎の差分絶対和の合計値を算出する。算出した差分絶対和の合計値がサンプリング種類のバラツキの大きさとなる。なお、差分絶対和は、例えば画像の類似度の判定に用いられることが知られている。画像類似度の判定に用いられる場合、差分絶対和は、2つの画像の同じ座標の画素毎に求められる差分の絶対値を加算した値であり、値が小さい程2つの画像が類似しているとみなされる。予測性能情報作成部142では、各サンプリング対象におけるリソース使用量を時系列で配列化したものを差分絶対和の対象とし、差分絶対和を算出した合計値を使用して、3種類のそれぞれのサンプリングのバラツキの大きさを判定する。そして、予測性能情報作成部142は、3種類のサンプリングのうちバラツキの大きさが一番小さいサンプリングの種類を特定する。特定したサンプリングの種類を用いて、予測性能情報作成部142が、仮想サーバ22および物理サーバ2の予測性能情報を作成するのである。
ここで、バラツキの大きさをサンプリングの種類毎に算出する例を、図8A〜図8Cを参照しながら説明する。図8Aは、直近のサンプリングの差分絶対和の算出例を示す図である。図8Bは、曜日のサンプリングの差分絶対和の算出例を示す図である。図8Cは、日にちのサンプリングの差分絶対和の算出例を示す図である。
図8Aに示すように、11/7、11/8、11/9がサンプリング対象であり、サンプリングする所定期間は、午前0時0分(0:00)〜午前0時15分(0:15)とする。予測性能情報作成部142は、各サンプリング対象11/7、11/8、11/9の同じ収集時刻のリソース使用量を用いて差分絶対和を算出する。ここでは、収集時刻0:00について、11/7と11/8とのCPU使用量の差分の絶対値は100、11/8と11/9とのCPU使用量の差分の絶対値は50、11/7と11/9とのCPU使用量の差分の絶対値は150である。したがって、収集時刻0:00の差分絶対和は、各差分の絶対値を加算した300となる。同様に、収集時刻0:05の差分絶対和は600、収集時刻0:10の差分絶対和は500、収集時刻0:15の差分絶対和は400となる。
そして、予測性能情報作成部142は、算出した収集時刻毎の差分絶対和の合計値を算出する。ここでは、予測性能情報作成部142は、各収集時刻の差分絶対和を合計(300+600+500+400)し、差分絶対和の合計1800を算出する。この算出値が、直近のサンプリングのバラツキの大きさとなる。
図8Bに示すように、10/20、10/27、11/3がサンプリング対象であり、サンプリングする所定期間は、直近のサンプリングの場合と同様に午前0時0分(0:00)〜午前0時15分(0:15)とする。予測性能情報作成部142は、各サンプリング対象10/20、10/27、11/3の同じ収集時刻のリソース使用量を用いて差分絶対和を算出する。ここでは、収集時刻0:00について、10/20と10/27とのCPU使用量の差分の絶対値は200、10/27と11/3とのCPU使用量の差分の絶対値は50、10/20と11/3とのCPU使用量の差分の絶対値は150である。したがって、収集時刻0:00の差分絶対和は、各差分の絶対値を加算した400となる。同様に、収集時刻0:05の差分絶対和は200、収集時刻0:10の差分絶対和は400、収集時刻0:15の差分絶対和は200となる。
そして、予測性能情報作成部142は、算出した収集時刻毎の差分絶対和の合計値を算出する。ここでは、予測性能情報作成部142は、各収集時刻の差分絶対和を合計(400+200+400+200)し、差分絶対和の合計1200を算出する。この算出値が、曜日のサンプリングのバラツキの大きさとなる。
図8Cに示すように、8/10、9/10、10/10がサンプリング対象であり、サンプリングする所定期間は、直近および曜日のサンプリングの場合と同様に午前0時0分(0:00)〜午前0時15分(0:15)とする。予測性能情報作成部142は、各サンプリング対象8/10、9/10、10/10の同じ収集時刻のリソース使用量を用いて差分絶対和を算出する。ここでは、収集時刻0:00について、8/10と9/10とのCPU使用量の差分の絶対値は250、9/10と10/10とのCPU使用量の差分の絶対値は150、8/10と10/10とのCPU使用量の差分の絶対値は100である。したがって、収集時刻0:00の差分絶対和は、各差分の絶対値を加算した500となる。同様に、収集時刻0:05の差分絶対和は600、収集時刻0:10の差分絶対和は600、収集時刻0:15の差分絶対和は700となる。
そして、予測性能情報作成部142は、算出した収集時刻毎の差分絶対和の合計値を算出する。ここでは、予測性能情報作成部142は、各収集時刻の差分絶対和を合計(500+600+600+700)し、差分絶対和の合計2400を算出する。この算出値が、日にちのサンプリングのバラツキの大きさとなる。
さらに、予測性能情報作成部142は、差分絶対和の合計値を用いて、3種類のそれぞれのサンプリングのバラツキの大きさを判定する。そして、予測性能情報作成部142は、3種類のサンプリングのうちバラツキの大きさが一番小さいサンプリングの種類を特定する。ここでは、直近のサンプリングの差分絶対和の合計は1800、曜日のサンプリングの差分絶対和の合計は1200、日にちのサンプリングの差分絶対和の合計は2400である。したがって、予測性能情報作成部142は、バラツキの大きさが一番小さいサンプリングの種類として、曜日のサンプリングを特定する。
図2に戻って、予測性能情報作成部142は、特定したサンプリング種類のサンプリング対象のリソース使用量を用いて、仮想マシン22毎に、それぞれの収集時点のリソース使用量の平均を求める。すなわち、予測性能情報作成部142は、求めたリソース使用量の平均を、該当する仮想マシン22の今後のリソース使用量とみなす。かかるリソース使用量の平均を「予測リソース使用量」という。
ここで、「予測リソース使用量」の算出例を、図9を参照しながら説明する。図9は、予測リソース使用量の算出例を示す図である。図9に示すように、特定したサンプリングの種類を曜日のサンプリングとする。予測性能情報作成部142は、特定した曜日のサンプリングの各サンプリング対象10/27、11/8、11/3のCPU使用量を用いて、ある仮想マシン22のそれぞれの収集時刻について各CPU使用量の平均を求める。ここでは、予測性能情報作成部142は、例えば収集時刻0:00について、各CPU使用量800、1000、950を用いて、各CPU使用量の平均値「916」を算出する。この値が、収集時刻0:00の予測リソース使用量となる。
図2に戻って、予測性能情報作成部142は、前述したように仮想マシン22毎に予測リソース使用量を求め、求めた予測リソース使用量を、仮想マシン22毎に、仮想マシン予測情報テーブル1121に記録する。さらに、予測性能情報作成部142は、物理サーバ2上の全ての仮想マシン22の予測リソース使用量の合計値を算出し、物理サーバ2の予測リソース使用量として、物理サーバ予測情報テーブル1122に記録する。
ここで、仮想マシン予測情報テーブル1121のデータ構造について、図5を参照して説明する。図5は、仮想マシン予測情報テーブルのデータ構造の一例を示す図である。図5に示すように、仮想マシン予測情報テーブル1121は、今後の日時1121aと、物理サーバ名1121bと、仮想マシン名1121cと、予測したCPU使用量1121dとを対応付けて記憶する。今後の日時1121aは、予測開始日時から予測終了日時までの予測期間内の日時である。物理サーバ名1121bは、物理サーバの名称を示す。仮想マシン名1121cは、仮想マシンの名称を示す。予測したCPU使用量1121dは、予測したCPUの使用量を示す。一例として、今後の日時1121aが「2011/10/12 00:00:00」である場合、物理サーバ名1121bとして「Server1」、仮想マシン名1121cとして「Gest001」、予測したCPU使用量1121dとして「70」と記憶している。すなわち、今後の日時が「2011/10/12 00:00:00」である場合に、物理サーバ「Server1」の仮想マシン「Gest001」では、予測したCPU使用量が「70」MHzであることを示している。
ここで、物理サーバ予測情報テーブル1122のデータ構造について、図6を参照して説明する。図6は、物理サーバ予測情報テーブルのデータ構造の一例を示す図である。図6に示すように、物理サーバ予測情報テーブル1122は、今後の日時1122aと、物理サーバ名1122bと、予測したCPU使用量1122cとを対応付けて記憶する。今後の日時1122aは、予測開始日時から予測終了日時までの予測期間内の日時である。物理サーバ名1122bは、物理サーバの名称を示す。予測したCPU使用量1122cは、予測したCPUの使用量を示す。一例として、今後の日時1122aが「2011/10/12 00:00:00」である場合、物理サーバ名1122bとして「Server1」、予測したCPU使用量1122cとして「250」と記憶している。すなわち、今後の日時が「2011/10/12 00:00:00」である場合に、物理サーバ「Server1」では、予測したCPU使用量が「250」MHzであることを示している。
図2に戻って、リソース不足予測部143は、物理サーバ2毎に物理サーバ予測情報テーブル1122からリソース使用量を取得し、取得したリソース使用量が閾値を越えているか否かを判定する。リソース不足予測部143は、リソース使用量が閾値を越えていると判定した場合、リソース不足が予測されたと判断し、後述するマイグレーション元決定部144を呼び出す。ここで、閾値は、例えばリソース使用量の上限値の80%であるが、これに限定されず、リソース不足と推定される限界値であれば良い。リソース使用量の上限値は、構成情報DB113の物理サーバ2に対応するCPU使用量の上限値113cに記憶されている。また、リソース使用量は、物理サーバ予測情報テーブル1122の今後の日時1122aに対応する、予測したCPU使用量1122cに記憶されている。つまり、リソース不足予測部143は、今後の日時1122a毎に、対応する予測したCPU使用量1122cが閾値を超えているか否かを判定する。
マイグレーション元決定部144は、リソース不足が予測された物理サーバ2からマイグレーションする仮想マシン22を決定するとともに、物理サーバ2からマイグレーションするタイミングを決定する。例えば、マイグレーション元決定部144は、リソース不足が予測された物理マシン2のリソース不足の時点に当該物理マシン2に搭載されている仮想マシン22から、他の物理マシン2に移動することによりリソース不足を解消可能な仮想マシン22の組合せを特定する。かかる組合せを「移動組合せ」と呼ぶ。なお、マイグレーション元決定部144は、物理サーバ2のリソース不足の時点で、ある仮想マシン22のリソース使用量が物理サーバ2のリソース使用量の一定割合(例えば、3割以上)を占める場合には、当該仮想マシン22を移動組合せの対象から除外する。この仮想マシン22をマイグレーションすると移動先のリソース使用量が不足するおそれがあるからである。
また、マイグレーション元決定部144は、移動組合せのうち、移動組合せに含まれる仮想マシン22の数が最小となる移動組合せを特定する。これにより、マイグレーション元決定部144は、マイグレーションによる業務への影響を最小化することができる。
また、マイグレーション元決定部144は、特定した移動組合せが複数存在する場合、リソース不足が予測された物理サーバ2のリソース不足が発生する前の時点であってリソースの使用量が最小になる時点が最早な仮想マシン22を含む移動組合せを採用する。なお、マイグレーション元決定部144は、特定した移動組合せが複数存在する場合、リソース使用量が最小になる時点の平均が最早な移動組合せを採用しても良い。
また、マイグレーション元決定部144は、移動組合せが1つの場合、この移動組合せに含まれる仮想マシン22を、マイグレーションする仮想マシンとする。そして、マイグレーション元決定部144は、この移動組合せに含まれる仮想マシン22について、リソース使用量が最小になる時点が最早な仮想マシン22からマイグレーション情報DB114に記録する。また、マイグレーション元決定部144は、移動組合せが複数の場合に採用した移動組合せに含まれる仮想マシン22を、マイグレーションする仮想マシンとする。そして、マイグレーション元決定部144は、この移動組合せに含まれる仮想マシン22について、リソース使用量が最小になる時点が最早な仮想マシン22からマイグレーション情報DB114に記録する。つまり、リソース使用量が最小になる時点がマイグレーションするタイミングとなる。そして、マイグレーション元決定部144は、最小になる時点が早い程マイグレーションするタイミングを早くできる。
ここで、マイグレーション情報DB114のデータ構造について、図7を参照して説明する。図7は、マイグレーション情報DBのデータ構造の一例を示す図である。図7に示すように、マイグレーション情報DB114は、マイグレーション日時114aと、マイグレーション元物理サーバ名114bと、マイグレーション元仮想マシン名114cと、マイグレーション元物理サーバ名114dと、実行状態114eとを対応付けて記憶する。マイグレーション日時114aは、マイグレーションする日時を示す。マイグレーション元物理サーバ名114bは、マイグレーション元の物理サーバの名称を示す。マイグレーション元仮想マシン名114cは、マイグレーション元の仮想マシンの名称を示す。マイグレーション先物理サーバ名114dは、マイグレーション先の物理サーバの名称である。実行状態114eは、マイグレーションの実行状態を示す。例えば、実行状態には、マイグレーションが実行前であることを示す「実行前」、実行中であることを示す「実行中」、マイグレーションが正常に完了したことを示す「実行完了」、マイグレーションが異常であったことを示す「未完了」が含まれる。一例として、マイグレーション日時114aが「2011/10/12 5:25:00」である場合、マイグレーション元物理サーバ名114bとして「Server1」と記憶している。さらに、マイグレーション元仮想マシン名114cとして「Gest1−1」、マイグレーション先物理サーバ名114dとして「Server5」、実行状態114eとして「実行完了」と記憶している。
マイグレーション先決定部145は、マイグレーション先の物理サーバ2を決定する。例えば、マイグレーション先決定部145は、マイグレーション情報DB114を参照し、マイグレーション元仮想マシン名114cが設定され、且つマイグレーション先物理サーバ名114dが設定されていないレコードがあるか否かを判定する。そして、マイグレーション先決定部145は、該当するレコードがあると判定した場合、該当するレコードのマイグレーション元の仮想マシン22に対して、マイグレーション先の物理サーバ2を決定する。
マイグレーション先の物理サーバ2の決定は、例えば、以下のように行われる。マイグレーション先決定部145は、マイグレーション元の仮想マシン22を移動することにより、移動先の物理サーバ2のリソース使用量が閾値を超えない物理サーバ2を特定する。なお、閾値として、リソース不足予測部143で用いられたリソース使用量の閾値と同じ値が用いられる。さらに、マイグレーション先決定部145は、特定した物理サーバ2のうち、移動先の物理サーバ2のリソース使用量が閾値に最も近い物理サーバ2をマイグレーション先の物理サーバ2として決定する。
一例として、マイグレーション先決定部145は、仮想マシン予測情報テーブル1121から、マイグレーション元の仮想マシン22の予測リソース使用量を取得する。また、マイグレーション先決定部145は、物理サーバ予測情報テーブル1122から、物理サーバ2毎の予測リソース使用量を取得する。そして、マイグレーション先決定部145は、仮想マシン22の予測リソース使用量を、それぞれの物理サーバ2の予測リソース使用量にマージする。このとき、マージする対象の物理サーバ2の名称が既にマイグレーション情報DB114にマイグレーション先の物理サーバとして設定されている場合は、マイグレーション先決定部145は、移動元の仮想マシン22の予測リソース使用量も同様にマージする。そして、マイグレーション先決定部145は、物理サーバ2毎にマージした予測リソース使用量のうち、閾値を超えている予測リソース使用量があるか否かを判定する。マイグレーション先決定部145は、閾値を超えている予測リソース使用量があると判定した場合、この予測リソース使用量に該当する物理サーバ2をマイグレーション先から除外する。この物理サーバ2をマイグレーション先とすると、マイグレーション後に当該物理サーバ2のリソース使用量が不足するおそれがあるからである。そして、マイグレーション先決定部145は、閾値を超えていない物理サーバ2を対象に、マージ後の予測リソース使用量と閾値との差分を算出する。この差分は、予測期間内の時点(今後の日時)毎に算出されるものである。そして、マイグレーション先決定部145は、予測期間内の時点毎に算出される差分の和(「差分和」という)を算出する。すなわち、「差分和」は、以下の式(1)で表される。
差分和=閾値の和−(マイグレーション元の仮想マシンの予測リソース使用量の和+マイグレーション先の物理サーバの予測リソース使用量の和)・・・式(1)
そして、マイグレーション先決定部145は、差分和が最小となる物理サーバ2をマイグレーション先に決定する。差分和が最小となる物理サーバ2をマイグレーション先とするのは、マイグレーション後もリソースを最大限に有効活用するためである。そして、マイグレーション先決定部145は、マイグレーション先に決定した物理サーバ2について、その名称と実行状態(「実行前」)をマイグレーション情報DB114に記録する。
なお、全ての物理サーバ2の予測リソース使用量が閾値を超えた場合、マイグレーション先決定部145は、閾値を増加して再度処理を行うようにすれば良い。
マイグレーション実行依頼部146は、一定間隔でマイグレーションの実行依頼を行う。例えば、マイグレーション実行依頼部146は、マイグレーション情報DB114を参照し、レコード毎に、マイグレーションが必要であるか否かを判定する。一例として、マイグレーション実行依頼部146は、マイグレーション日時114aが経過し、且つ実行状態114eが「実行前」である場合、マイグレーションが必要であると判定する。そして、マイグレーション実行依頼部146は、マイグレーションが必要であると判定した場合、マイグレーション元の仮想マシン22およびマイグレーション先の物理サーバ2のそれぞれのハイパーバイザ21に対して、マイグレーションの実行を依頼する。そして、マイグレーション実行依頼部146は、マイグレーションの実行状態を、マイグレーション情報DB114の実行状態114eに更新する。
[予測性能情報作成処理の説明]
次に、予測性能情報作成部142における予測性能情報の作成フローを、図10を参照して説明する。図10は、予測性能情報作成部における予測性能情報の作成フローを説明する図である。図10に示すように、予測性能情報作成部142は、物理サーバ2上の仮想マシン22毎に、性能情報DB111に記憶された過去のリソース使用量を用いて、3種類のサンプリングを行う。ここでは、予測性能情報作成部142は、「直近のサンプリング」と「曜日のサンプリング」と「日にちのサンプリング」を行う。すなわち、予測性能情報作成部142は、サンプリングの種類毎に定められたサンプリング対象について、リソース使用量をサンプリングする。
そして、予測性能情報作成部142は、サンプリングしたリソース使用量を用いて、サンプリングの種類毎に差分絶対和の合計値を算出する。そして、予測性能情報作成部142は、差分絶対和の合計値を用いて、3種類のそれぞれのサンプリングのバラツキの大きさを判定し、3種類のサンプリングのうちバラツキの大きさが一番小さいサンプリングの種類を特定する。ここでは、「直近のサンプリング」、「曜日のサンプリング」、「日にちのサンプリング」のそれぞれのバラツキの大きさは、250、350、100であるとする。すると、予測性能情報作成部142は、バラツキの大きさが一番小さいサンプリングの種類として、「日にちのサンプリング」を特定する。
そして、予測性能情報作成部142は、特定した「日にちのサンプリング」のサンプリング対象のリソース使用量を用いて、それぞれの収集時点におけるリソース使用量の平均値を求める。そして、予測性能情報作成部142は、それぞれの収集時点における求めた平均値を、該当する仮想マシン22の予測リソース使用量として、予測性能情報DB112の仮想マシン予測情報テーブル1121に記録する。さらに、予測性能情報作成部142は、物理サーバ2上の全ての仮想マシン22の予測リソース使用量の合計値を算出し、物理サーバ2の予測リソース使用量として、予測性能情報DB112の物理サーバ予測情報テーブル1122に記録する。
[マイグレーション元決定処理の説明]
次に、マイグレーション元決定部144におけるマイグレーション元の決定を、図11を参照して説明する。図11は、マイグレーション元決定部におけるマイグレーション元の決定を説明する図である。なお、図11は、リソース不足予測部143によってリソース不足と予測された物理サーバ2の予測期間内の時点と予測リソース使用量との対応を示している。また、リソース不足と予測された物理サーバ2上の各仮想マシン(Gest1−1、Gest1−2、Gest1−3)の予測リソース使用量が対応付けられている。
図11に示すように、X軸は時間、Y軸は予測リソース使用量を表している。また、tが予測期間内の予測開始時刻であり、tが予測期間内の予測終了時刻である。そして、tの時点で、物理サーバ2の予測リソース使用量が閾値を超えている。つまり、tの時点がリソース不足の時点である。
このような状況の下、マイグレーション元決定部144は、リソース不足が予測された物理マシン2のリソース不足の時点tに、他の物理マシン2に移動することによりリソース不足を解消可能な仮想マシン22の移動組合せを特定する。但し、マイグレーション元決定部144は、物理サーバ2のリソース不足の時点t(ピーク時)に、ある仮想マシン22の予測リソース使用量が物理サーバ2の予測リソース使用量の一定割合を占める場合には、当該仮想マシン22を移動組合せの対象から除外する。ここでは、Gest1−1が、ピーク時の予測リソース使用量r41が物理サーバ2の予測リソース使用量の一定割合を占めているとして除外される。また、ピーク時のGest1−2、Gest1−3のそれぞれの予測リソース使用量r42、r43は、物理サーバ2の不足するリソース使用量r40より大きいので、移動組合せとして特定する。したがって、マイグレーション元決定部144は、移動組合せとして、{Gest1−2}、{Gest1−3}、{Gest1−2、Gest1−3}の3通りを特定する。
そして、マイグレーション元決定部144は、移動組合せのうち、移動組合せに含まれる仮想マシン22の数が最小となる移動組合せを特定する。ここでは、仮想マシン22の数が1つである{Gest1−2}および{Gest1−3}が特定される。
そして、マイグレーション元決定部144は、特定した移動組合せが複数存在するので、物理サーバ2のリソース不足が発生するtより前の時点であって予測リソース使用量が最小になる時点が最早な仮想マシン22を含む移動組合せを採用する。ここでは、Gest1−2の予測リソース使用量が最小(r)になる時点はtであり、Gest1−3の予測リソース使用量が最小(r)になる時点はtである。したがって、マイグレーション元決定部144は、予測リソース使用量が最小になる時点が最早な移動組合せとして{Gest1−3}を採用する。すなわち、マイグレーション元決定部144は、Gest1−3の仮想マシンをマイグレーション元の仮想マシンと決定する。このt1の時点がGest1−3の仮想マシンをマイグレーションするタイミングとなる。
次に、マイグレーション元決定部144におけるマイグレーション情報DB114への追加例を、図12を参照して説明する。図12は、マイグレーション元決定部におけるマイグレーション情報DBへの追加例を示す図である。図12に示すように、マイグレーション元決定部144は、マイグレーション元として採用した移動組合せに含まれる仮想マシン22について、予測リソース使用量が最小になる時点が最早な仮想マシン22からマイグレーション情報DB114に記録する。ここでは、移動組合せに含まれる仮想マシン22がGest1−3のみであるとすると、Gest1−3の予測リソース使用量が最小になる時点である「2011/10/12 5:25:00」をマイグレーション日時として記憶する。さらに、Gest1−3が存在する物理サーバの名称である「Server1」をマイグレーション元物理サーバ名とし、「Gest1−3」をマイグレーション元仮想マシン名として記憶する。
[マイグレーション先決定処理の説明]
次に、マイグレーション先決定部145におけるマイグレーション情報DB114からの検索例を、図13を参照して説明する。図13は、マイグレーション先決定部におけるマイグレーション情報DBからの検索例を示す図である。図13に示すように、マイグレーション先決定部145は、マイグレーション情報DB114を参照し、マイグレーション元仮想マシン名114cが設定され、且つマイグレーション先物理サーバ名114dが設定されていないレコードがあるか否かを判定する。そして、マイグレーション先決定部145は、該当するレコードがあると判定した場合、該当するレコードに対して、マイグレーション元の仮想マシン22のマイグレーション先の物理サーバ2を決定する。ここでは、マイグレーション元仮想マシン名「Gest3−1」、「Gest4−2」に対応するレコードには、マイグレーション先物理サーバ名が設定されていないので、該当するレコードがあると判定される。そして、マイグレーション先決定部145は、該当するレコードに対して、マイグレーション元仮想マシン名「Gest3−1」および「Gest4−2」のそれぞれのマイグレーション先の物理サーバ2を決定する。
次に、マイグレーション先決定部145における差分和について、図14を参照して説明する。図14は、マイグレーション先決定部における差分和を説明する図である。図14に示すように、それぞれのグラフでは、X軸が時間、Y軸が予測リソース使用量を表している。mは、リソース使用量の予測期間内における閾値の和である。mは、リソース使用量の予測期間内におけるマイグレーション元の仮想マシン22の予測リソース使用量の和である。mは、リソース使用量の予測期間内におけるマイグレーション先の物理サーバ2の予測リソース使用量の和である。このような場合に、マイグレーション先決定部145は、差分和を、mから(m+m)を引いた結果として算出する。そして、マイグレーション先決定部145は、マイグレーション先の物理サーバを、差分和が最小となる物理サーバ2に決定する。差分和が最小となる物理サーバ2は、リソースを有効活用することができるからである。
次に、マイグレーション先決定部145におけるマイグレーション情報DB114への追加例を、図15を参照して説明する。図15は、マイグレーション先決定部におけるマイグレーション情報DBへの追加例を示す図である。なお、図15では、マイグレーション先決定部145によってマイグレーション元仮想マシン名「Gest3−1」のマイグレーション先の物理サーバ2が「Server6」に決定された場合を説明する。図15に示すように、マイグレーション先決定部145は、マイグレーション情報DB114の、マイグレーション元の仮想マシン名「Gest3−1」に対応するマイグレーション先物理サーバ名114dに「Server6」を記録する。また、マイグレーション先決定部145は、マイグレーション情報DB114の、マイグレーション元仮想マシン名「Gest3−1」に対応するマイグレーション実行状態114eに「実行前」を記録する。
[マイグレーション実行依頼処理の説明]
次に、マイグレーション実行依頼部146におけるマイグレーション情報DB114からの検索例を、図16を参照して説明する。図16は、マイグレーション実行依頼部におけるマイグレーション情報DBからの検索例を示す図である。図16に示すように、マイグレーション実行依頼部146は、マイグレーション情報DB114を参照し、レコード毎に、マイグレーションが必要であるか否かを判定する。ここでは、マイグレーション先物理サーバ名114dが「Server7」であるレコードn1の実行状態114eが、「実行前」である。そこで、マイグレーション実行依頼部146は、現在の時刻がマイグレーション日時114a「2011/10/12 7:28:00」を経過している場合、マイグレーションが必要であると判定する。
次に、マイグレーション実行依頼部146によって行われるマイグレーション情報DB114の実行状態の遷移を、図17を参照して説明する。図17は、マイグレーション実行依頼部によって行われるマイグレーション情報DBの実行状態の遷移を示す図である。図17上段に示すように、マイグレーション先物理サーバ名114dが「Server7」であるレコードの実行状態114eが、「実行前」と設定されている。
マイグレーション実行依頼部146は、このレコードに関して、マイグレーションが必要であると判定した場合、図17中段に示すように、実行状態114eを「実行中」に更新する。そして、マイグレーション実行依頼部146は、マイグレーション元の仮想マシン22およびマイグレーション先の物理サーバ2のそれぞれのハイパーバイザ21に対して、マイグレーションの実行を依頼する。そして、マイグレーション実行依頼部146は、実行依頼の結果、マイグレーションが成功した場合、図17下段に示すように、実行状態114eを「実行完了」に更新する。なお、実行依頼の結果、マイグレーションが失敗した場合、マイグレーション実行依頼部146は、実行状態114eを「実行未」に更新する。
[マイグレーション制御部のメイン処理の手順]
次に、マイグレーション制御部14によるマイグレーション制御処理の手順について、図18〜図25を参照して説明する。図18は、実施例に係るマイグレーション制御部のメイン処理の手順を示すフローチャートである。
まず、メイン処理部141は、一定間隔(例えば5分)が経過したか否かを判定する(ステップS11)。一定間隔が経過していないと判定した場合(ステップS11;No)、メイン処理部141は、一定間隔が経過するまで判定処理を繰り返す。一方、一定間隔が経過したと判定した場合(ステップS11;Yes)、メイン処理部141は、現時刻がマイグレーションをスケジュールする時刻(例えば0:00)であるか否かを判定する(ステップS12)。
現時刻がマイグレーションをスケジュールする時刻であると判定した場合(ステップS12;Yes)、メイン処理部141は、仮想マシン22および物理サーバ2の予測リソース使用量を作成する(ステップS13)。メイン処理部141は、予測性能情報作成部142の予測性能情報作成処理を呼び出す。
続いて、メイン処理部141は、今後リソース不足となる物理サーバ2を予測し、予測した物理サーバ2について、マイグレーション元の仮想マシン22とマイグレーション時刻を決定する(ステップS14)。メイン処理部141は、リソース不足予測部143のリソース不足予測処理を呼び出す。
続いて、メイン処理部141は、決定したマイグレーション元の仮想マシン22をマイグレーションするマイグレーション先の物理サーバ2を決定する(ステップS15)。メイン処理部141は、マイグレーション先決定部145のマイグレーション先決定処理を呼び出す。そして、メイン処理部141は、ステップS17に移行する。
ステップS12では、現時刻がマイグレーションをスケジュールする時刻でないと判定した場合(ステップS12;No)、メイン処理部141は、マイグレーションを実行する(ステップS16)。メイン処理部141は、マイグレーション実行依頼部146のマイグレーション実行依頼処理を呼び出す。そして、メイン処理部141は、ステップS17に移行する。
そして、メイン処理部141は、マイグレーション制御を終了するか否かを判定する(ステップS17)。マイグレーション制御を終了しないと判定した場合(ステップS17;No)、メイン処理部141は、ステップS11に移行する。一方、マイグレーション制御を終了すると判定した場合(ステップS17;Yes)、メイン処理部141は、メイン処理を終了する。
[マイグレーション制御部の予測性能情報作成処理の手順]
図19は、実施例に係る予測性能情報作成処理の手順を示すフローチャートである。
メイン処理部141から呼び出された予測性能情報作成部142は、全ての物理サーバ2に対し予測性能情報を作成したか否かを判定する(ステップS21)。全ての物理サーバ2に対し予測性能情報を作成していないと判定した場合(ステップS21;No)、予測性能情報作成部142は、未作成の物理サーバ2を処理対象とする(ステップS22)。
そして、予測性能情報作成部142は、処理対象の物理サーバ2上の全ての仮想マシン22に対し予測性能情報を作成したか否かを判定する(ステップS23)。処理対象の物理サーバ2上の全ての仮想マシン22に対し予測性能情報を作成していないと判定した場合(ステップS23;No)、予測性能情報作成部142は、未作成の仮想マシン22を処理対象とする(ステップS24)。
続いて、予測性能情報作成部142は、リソース使用量について、1つの種類のサンプリングを取得する(ステップS25)。例えば、予測性能情報作成部142は、性能情報DB111に記憶されたCPU使用量111dを用いて、処理対象の仮想マシン22のCPU使用量のサンプリングを行う。サンプリングは、「直近のサンプリング」、「曜日のサンプリング」、「日にちのサンプリング」の3つの種類のサンプリングの中から1つずつ取得される。
そして、予測性能情報作成部142は、取得したサンプリングを用いて、差分絶対和を算出する(ステップS26)。例えば、予測性能情報作成部142は、サンプリングの種類毎に定められた各サンプリング対象の同じ収集時点のCPU使用量を用いて、差分絶対和を算出する。
そして、予測性能情報作成部142は、3種類のサンプリングを実施したか否かを判定する(ステップS27)。3種類のサンプリングを実施していないと判定した場合(ステップS27;No)、予測性能情報作成部142は、次の種類のサンプリングを取得すべく、ステップS25に移行する。
一方、3種類のサンプリングを実施したと判定した場合(ステップS27;Yes)、予測性能情報作成部142は、差分絶対和の合計が最小になるサンプリング種類のサンプリングの結果からリソース使用量の平均値を算出する(ステップS28)。例えば、予測性能情報作成部142は、差分絶対和の合計が最小になるサンプリング種類を特定する。そして、予測性能情報作成部142は、特定したサンプリング種類の各サンプリング対象のリソース使用量を用いて、それぞれの収集時点におけるリソース使用量の平均値を求める。リソース使用量は、性能情報DB111のCPU使用量111dに対応する。
そして、予測性能情報作成部142は、算出結果を予測性能情報DB112の仮想マシン予測情報テーブル1121に記録する(ステップS29)。そして、予測性能情報作成部142は、未作成の仮想マシン22を処理対象とすべく、ステップS23に移行する。
ステップS23では、処理対象の物理サーバ2上の全ての仮想マシン22に対し予測性能情報を作成したと判定した場合(ステップS23;Yes)、予測性能情報作成部142は、処理対象の物理サーバ2の予測リソース使用量を取得する(ステップS30)。予測性能情報作成部142は、処理対象の物理サーバ2上の全ての仮想マシン22の予測リソース使用量を合計することで、当該物理サーバ2の予測リソース使用量を取得する。
そして、予測性能情報作成部142は、取得した予測リソース使用量を予測性能情報DB112の物理サーバ予測情報テーブル1122に記録する(ステップS31)。そして、予測性能情報作成部142は、未作成の物理サーバ2を処理対象とすべく、ステップS21に移行する。
ステップS21では、全ての物理サーバ2に対し予測性能情報を作成したと判定した場合(ステップS21;Yes)、予測性能情報作成部142は、予測性能情報作成処理を終了する。
[マイグレーション制御部のリソース不足予測処理の手順]
図20は、実施例に係るリソース不足予測処理の手順を示すフローチャートである。
メイン処理部141から呼び出されたリソース不足予測部143は、全ての物理サーバ2に対しリソース不足の予測をしたか否かを判定する(ステップS41)。全ての物理サーバ2に対しリソース不足の予測をしていないと判定した場合(ステップS41;No)、リソース不足予測部143は、まだ予測をしていない物理サーバ2を選択する。そして、リソース不足予測部143は、選択した物理サーバ2の予測リソース使用量を物理サーバ予測情報テーブル1122から取得する(ステップS42)。予測リソース使用量は、今後の日時1121a毎の予測したCPU使用量1121dに対応する。
続いて、リソース不足予測部143は、取得した予測リソース使用量が閾値を超えたか否かを判定する(ステップS43)。取得した予測リソース使用量が閾値を超えたと判定した場合(ステップS43;Yes)、リソース不足予測部143は、選択した物理サーバ2上のマイグレーション元の仮想マシン22とマイグレーション日時を決定する(ステップS44)。選択した物理サーバ2のリソース不足が予測されたものである。リソース不足予測部143は、マイグレーション元決定部144のマイグレーション元決定処理を呼び出す。そして、リソース不足予測部143は、まだ予測していない物理サーバ2を選択すべく、ステップS41に移行する。
一方、取得した予測リソース使用量が閾値を超えていないと判定した場合(ステップS43;No)、リソース不足予測部143は、まだ予測していない物理サーバ2を選択すべく、ステップS41に移行する。ステップS41では、全ての物理サーバ2に対しリソース不足の予測をしたと判定した場合(ステップS41;Yes)、リソース不足予測部143は、リソース不足予測処理を終了する。
[マイグレーション制御部のマイグレーション元決定処理の手順]
図21は、実施例に係るマイグレーション元決定処理の手順を示すフローチャートである。
リソース不足予測部143から呼び出されたマイグレーション元決定部144は、リソース不足と予測された物理サーバ2のリソース不足を解消する仮想マシン22の移動組合せを特定する(ステップS51)。そして、マイグレーション元決定部144は、特定した移動組合せが1つだけであるか否かを判定する(ステップS52)。特定した移動組合せが1つだけであると判定した場合(ステップS52;Yes)、マイグレーション元決定部144は、ステップS59に移行する。
一方、特定した移動組合せが1つだけでないと判定した場合(ステップS52;No)、マイグレーション元決定部144は、全ての移動組合せを選択したか否かを判定する(ステップS53)。全ての移動組合せを選択していないと判定した場合(ステップS53;No)、マイグレーション元決定部144は、未選択の移動組合せを選択する(ステップS54)。
そして、マイグレーション元決定部144は、選択した移動組合せに関し、仮想マシン22のリソース使用量が最小になる時刻のうち最早の時刻を取得する(ステップS55)。そして、マイグレーション元決定部144は、選択した移動組合せで取得した時刻が他の移動組合せで取得した移動時刻よりも早いか否かを判定する(ステップS56)。選択した移動組合せで取得した時刻が他の移動組合せで取得した移動時刻よりも早くないと判定した場合(ステップS56;No)、マイグレーション元決定部144は、未選択の移動組合せを選択すべく、ステップS53に移行する。
一方、選択した移動組合せで取得した時刻が他の移動組合せで取得した移動時刻よりも早いと判定した場合(ステップS56;Yes)、マイグレーション元決定部144は、選択した移動組合せで取得した時刻を移動時刻として取得する(ステップS57)。そして、マイグレーション元決定部144は、選択した移動組合せを保持し(ステップS58)、未選択の移動組合せを選択すべく、ステップS53に移行する。
ステップS53では、全ての移動組合せを選択したと判定した場合(ステップS53;Yes)、マイグレーション元決定部144は、ステップS59に移行する。ステップS59では、マイグレーション元決定部144は、移動組合せ内の全ての仮想マシン22について、リソース使用量が最小になる時刻が早いものからマイグレーション情報DB114に記録する(ステップS59)。そして、マイグレーション元決定部144は、マイグレーション元決定処理を終了する。
[仮想マシンの移動組合せを特定する処理の手順]
次に、図21のS51による処理について、図22を参照して説明する。図22は、仮想マシンの移動組合せを特定する処理の手順を示すフローチャートである。
マイグレーション元決定部144は、リソース不足と予測された物理サーバ2上の全ての仮想マシン22を選択したか否かを判定する(ステップS61)。リソース不足と予測された物理サーバ2上の全ての仮想マシン22を選択していないと判定した場合(ステップS61;No)、マイグレーション元決定部144は、未選択の仮想マシン22を選択する(ステップS62)。
そして、マイグレーション元決定部144は、選択した仮想マシン22のピーク時におけるリソース使用量が所定値より小さいか否かを判定する(ステップS63)。所定値は、リソース不足と予測された物理サーバ2のリソース使用量の上限値の一定割合(例えば3割)になる値である。選択した仮想マシン22のピーク時におけるリソース使用量が所定値より小さくないと判定した場合(ステップS63;No)、マイグレーション元決定部144は、選択した仮想マシン22を除外する。そして、マイグレーション元決定部144は、未選択の仮想マシン22を選択すべく、ステップS61に移行する。
一方、選択した仮想マシン22のピーク時におけるリソース使用量が所定値より小さいと判定した場合(ステップS63;Yes)、マイグレーション元決定部144は、選択した仮想マシン22を特定する(ステップS64)。そして、マイグレーション元決定部144は、未選択の仮想マシン22を選択すべく、ステップS61に移行する。
ステップS61では、リソース不足と予測された物理サーバ2上の全ての仮想マシン22を選択したと判定した場合(ステップS61;Yes)、マイグレーション元決定部144は、当該物理サーバ2の不足するリソース使用量を算出する(ステップS65)。すなわち、マイグレーション元決定部144は、リソース不足と予測された物理サーバ2のピーク時のリソース使用量と閾値との差分を算出する。そして、マイグレーション元決定部144は、特定した全ての仮想マシン22の組合せ(総組合せ)を取得する(ステップS66)。
続いて、マイグレーション元決定部144は、全ての組合せを選択したか否かを判定する(ステップS67)。全ての組合せを選択していないと判定した場合(ステップS67;No)、マイグレーション元決定部144は、未選択の組合せを選択する(ステップS68)。そして、マイグレーション元決定部144は、選択した組合せ内の全ての仮想マシン22のピーク時のリソース使用量の合計値を算出する(ステップS69)。
そして、マイグレーション元決定部144は、算出した合計値が不足するリソース使用量よりも大きいか否かを判定する(ステップS70)。算出した合計値が不足するリソース使用量よりも大きいと判定した場合(ステップS70;Yes)、マイグレーション元決定部144は、選択した組合せを移動候補組合せとして取得する(ステップS71)。マイグレーション元決定部144は、リソース不足と予測された物理サーバ2のリソース不足を解消できると判断したためである。そして、マイグレーション元決定部144は、未選択の組合せを選択すべく、ステップS67に移行する。
一方、算出した合計値が不足するリソース使用量よりも大きくないと判定した場合(ステップS70;No)、マイグレーション元決定部144は、未選択の組合せを選択すべく、ステップS67に移行する。マイグレーション元決定部144は、リソース不足と予測された物理サーバ2のリソース不足を解消できないと判断したためである。
ステップS67では、全ての組合せを選択したと判定した場合(ステップS67;Yes)、マイグレーション元決定部144は、全ての移動候補組合せを選択したか否かを判定する(ステップS72)。全ての移動候補組合せを選択していないと判定した場合(ステップS72;No)、マイグレーション元決定部144は、未選択の移動候補組合せを選択する(ステップS73)。
そして、マイグレーション元決定部144は、選択した移動候補組合せの要素数(仮想マシン数)が最小であるか否かを判定する(ステップS74)。選択した移動候補組合せの要素数(仮想マシン数)が最小であると判定した場合(ステップS74;Yes)、マイグレーション元決定部144は、移動組合せとして特定する(ステップS75)。そして、マイグレーション元決定部144は、未選択の移動候補組合せを選択すべく、ステップS72に移行する。
一方、選択した移動候補組合せの要素数(仮想マシン数)が最小でないと判定した場合(ステップS74;No)、マイグレーション元決定部144は、未選択の移動候補組合せを選択すべく、ステップS72に移行する。
ステップS72では、全ての移動候補組合せを選択したと判定した場合(ステップS72;Yes)、マイグレーション元決定部144は、仮想マシンの移動組合せを特定する処理を終了する。
[マイグレーション制御部のマイグレーション先決定処理の手順]
図23は、実施例に係るマイグレーション先決定処理の手順を示すフローチャートである。
メイン処理部141から呼び出されたマイグレーション先決定部145は、マイグレーション情報DB114の全ての定義(レコード)を選択したか否かを判定する(ステップS81)。マイグレーション情報DB114の全ての定義を選択していないと判定した場合(ステップS81;No)、マイグレーション先決定部145は、未選択の定義を選択する(ステップS82)。
そして、マイグレーション先決定部145は、選択した定義について、マイグレーション先の物理サーバ2が未設定であるか否かを判定する(ステップS83)。マイグレーション先の物理サーバ2が未設定でない、すなわち設定されていると判定した場合(ステップS83;No)、マイグレーション先決定部145は、未選択の定義を選択すべく、ステップS81に移行する。一方、マイグレーション先の物理サーバ2が未設定であると判定した場合(ステップS83;Yes)、マイグレーション先決定部145は、仮想マシン予測情報テーブル1121から、移動元の仮想マシン22の予測リソース使用量を取得する(ステップS84)。
続いて、マイグレーション先決定部145は、全ての物理サーバを選択したか否かを判定する(ステップS85)。全ての物理サーバを選択していないと判定した場合(ステップS85;No)、マイグレーション先決定部145は、未選択の物理サーバ2を選択する(ステップS86)。そして、マイグレーション先決定部145は、選択した物理サーバ2(マイグレーション先候補)の予測リソース使用量を取得する(ステップS87)。
そして、マイグレーション先決定部145は、移動元の仮想マシン22の予測リソース使用量と、選択した物理サーバ2の予測リソース使用量をマージする(ステップS88)。そして、マイグレーション先決定部145は、マージ後の予測リソース使用量が閾値を超えたか否かを判定する(ステップS89)。マージ後の予測リソース使用量が閾値を超えていないと判定した場合(ステップS89;No)、マイグレーション先決定部145は、マージ後の予測リソース使用量と閾値との差分和を算出する(ステップS90)。
そして、マイグレーション先決定部145は、既に選択した物理サーバ2の差分和と今回選択した物理サーバ2の差分和を比較し、小さい方の物理サーバ2をマイグレーション先とする(ステップS91)。そして、マイグレーション先決定部145は、未選択の物理サーバを選択すべく、ステップS85に移行する。
一方、マージ後の予測リソース使用量が閾値を超えたと判定した場合(ステップS89;Yes)、マイグレーション先決定部145は、選択した物理サーバ2をマイグレーション先から除外する。そして、マイグレーション先決定部145は、未選択の物理サーバを選択すべく、ステップS85に移行する。
ステップS85では、全ての物理サーバを選択したと判定した場合(ステップS85;Yes)、マイグレーション先決定部145は、マイグレーション先の物理サーバ2が決定したか否かを判定する(ステップS92)。マイグレーション先の物理サーバ2が決定していないと判定した場合(ステップS92;No)、マイグレーション先決定部145は、未選択の定義を選択すべく、ステップS81に移行する。
一方、マイグレーション先の物理サーバ2が決定したと判定した場合(ステップS92;Yes)、マイグレーション先決定部145は、マイグレーション先の物理サーバ名をマイグレーション情報DB114に記録する(ステップS93)。そして、マイグレーション先決定部145は、未選択の定義を選択すべく、ステップS81に移行する。
ステップS81では、マイグレーション情報DB114の全ての定義を選択したと判定した場合(ステップS81;Yes)、マイグレーション先決定部145は、マイグレーション先決定処理を終了する。
次に、図23のS87による処理について、図24を参照して説明する。図24は、物理サーバの予測リソース使用量を取得する処理の手順を示すフローチャートである。
マイグレーション先決定部145は、物理サーバ予測情報テーブル1122から、物理サーバ(マイグレーション先候補)の予測リソース使用量を取得する(ステップS101)。
続いて、マイグレーション先決定部145は、マイグレーション情報DB114のマイグレーション先物理サーバ名114dに既に登録された全ての物理サーバ2を選択したか否かを判定する(ステップS102)。マイグレーション情報DB114に既に登録された全ての物理サーバ2を選択していないと判定した場合(ステップS102;No)、マイグレーション先決定部145は、未選択の物理サーバ2を選択する(ステップS103)。
そして、マイグレーション先決定部145は、選択した物理サーバ2がマイグレーション先候補の物理サーバと同一であるか否かを判定する(ステップS104)。選択した物理サーバ2がマイグレーション先候補と同一であると判定した場合(ステップS104;Yes)、マイグレーション先決定部145は、マイグレーション先候補の予測リソース使用量を補正する(ステップS105)。すなわち、マイグレーション先決定部145は、取得したマイグレーション先候補の物理サーバ2の予測リソース使用量に、マイグレーション情報DB114に既に登録された、当該物理サーバ2に移動予定の仮想マシン22の予測リソース使用量をマージする。そして、マイグレーション先決定部145は、未選択の物理サーバ2を選択すべく、ステップS102に移行する。
一方、選択した物理サーバ2がマイグレーション先候補と同一でないと判定した場合(ステップS104;No)、マイグレーション先決定部145は、未選択の物理サーバ2を選択すべく、ステップS102に移行する。
ステップS102では、マイグレーション情報DB114に既に登録された全ての物理サーバ2を選択したと判定した場合(ステップS102;Yes)、マイグレーション先決定部145は、マイグレーション先候補の予測リソース使用量を呼び出し元に戻す。
[マイグレーション制御部のマイグレーション実行依頼処理の手順]
図25は、実施例に係るマイグレーション実行依頼処理の手順を示すフローチャートである。
メイン処理部141から呼び出されたマイグレーション実行依頼部146は、マイグレーション情報DB114の全ての定義(レコード)を選択したか否かを判定する(ステップS111)。マイグレーション情報DB114の全ての定義を選択していないと判定した場合(ステップS111;No)、マイグレーション実行依頼部146は、マイグレーション情報DB114の未選択の定義を選択する(ステップS112)。
続いて、マイグレーション実行依頼部146は、選択した定義について、マイグレーションが必要か否かを判定する(ステップS113)。すなわち、マイグレーション実行依頼部146は、選択した定義について、マイグレーション日時114aが経過し、且つ実行状態114eが「実行前」であるか否かを判定する。マイグレーション日時114aが経過し、且つ実行状態114eが「実行前」である場合、マイグレーションが必要であると判定する。
マイグレーションが必要であると判定した場合(ステップS113;Yes)、マイグレーション実行依頼部146は、選択した定義について、マイグレーション情報DB114の実行状態114eを「実行中」に更新する(ステップS114)。そして、マイグレーション実行依頼部146は、マイグレーション元の仮想マシン22およびマイグレーション先の物理サーバ2のそれぞれのハイパーバイザ21に対して、マイグレーションの実行を依頼する(ステップS115)。
そして、マイグレーション実行依頼部146は、マイグレーションの実行後、正常に完了した場合、選択した定義について、マイグレーション情報DB114の実行状態114eを「実行完了」に更新する(ステップS116)。なお、マイグレーション実行依頼部146は、マイグレーションの実行が異常であった場合、選択した定義について、マイグレーション情報DB114の実行状態114eを「未完了」に更新する。そして、マイグレーション実行依頼部146は、未選択の定義を選択すべく、ステップS111に移行する。
ステップS113では、マイグレーションが必要でないと判定した場合、マイグレーション実行依頼部146は、未選択の定義を選択すべく、ステップS111に移行する。
ステップS111では、マイグレーション情報DB114の全ての定義を選択したと判定した場合(ステップS111;Yes)、マイグレーション実行依頼部146は、マイグレーション実行依頼処理を終了する。
[実施例の効果]
上記実施例によれば、管理サーバ1は、複数の仮想マシン22を搭載する物理サーバ2について、所定期間内でのリソース不足を予測する。そして、管理サーバ1は、該予測したリソース不足の時点にリソース不足が予測された物理サーバ2に搭載されている仮想マシン22から他の物理サーバ2に移動することによりリソース不足を解消可能な仮想マシン22を特定する。そして、管理サーバ1は、該特定した仮想マシン22の所定期間内でのリソースの使用量およびリソースの使用量に対応する時点に基づいて、特定した仮想マシン22を他の物理サーバ2に移動する。かかる構成によれば、管理サーバ1は、物理サーバ2のリソース不足が予測された時点にリソース不足を解消することが可能となり、当該物理サーバ2が動作不安定になることを抑制できる。
また、上記実施例によれば、管理サーバ1は、複数の仮想マシン22の移動によってリソース不足が解消される場合、リソース不足が解消される複数の仮想マシン22の数が最小となる仮想マシン22の移動組合せを特定する。かかる構成によれば、管理サーバ1は、リソース不足が解消される複数の仮想マシン22の数が最小となる仮想マシン22の移動組合せを特定するので、特定した移動組合せの仮想マシン22を他の物理サーバ2に速く移動することが可能となる。このため、管理サーバ1は、移動時の業務に関わる影響を最小化することが可能となる。
また、上記実施例によれば、管理サーバ1は、さらに、移動組合せが複数ある場合、リソース不足が予測された物理サーバ2のリソース不足が発生する前の時点であってリソースの使用量が最小になる時点が最早な仮想マシン2を含む移動組合せを特定する。かかる構成によれば、管理サーバ1は、リソース不足が予測された物理サーバ2のリソース不足が発生する時点になるまでに、特定した移動組合せの仮想マシン2を安全に移動することが可能となる。
また、上記実施例によれば、管理サーバ1は、移動が特定された仮想マシン22のリソースの使用量が最小になる時点で、当該仮想マシン22を他の物理サーバ2に移動する。かかる構成によれば、管理サーバ1は、移動が特定された仮想マシン22を他の物理サーバ2に速く移動できる。このため、管理サーバ1は、移動時の業務に関わる影響を最小化することが可能となる。
また、上記実施例によれば、管理サーバ1は、さらに、移動が特定された仮想マシン22を移動した場合のリソースの使用量がリソース不足と判定される上限値を超えず且つリソースの使用量が当該上限値に最も近い物理サーバ2を移動先として決定する。そして、管理サーバ1は、決定した移動先に、移動が特定された仮想マシン22を移動する。かかる構成によれば、管理サーバ1は、移動が特定された仮想マシン22を移動先として決定された物理サーバ2に移動した場合、移動先の物理サーバ2のリソースを有効に活用できる。
[プログラム等]
なお、管理サーバ1は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記したマイグレーション制御部14と、記憶部11等の各機能を搭載することによって実現することができる。
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、マイグレーション制御部14と性能情報収集部12と構成情報収集部13とを1個の部として統合しても良い。一方、マイグレーション元決定部144を、移動組合せを特定する特定部と、特定した移動組合せの中から最適な移動組合せを採用する採用部とに分散しても良い。また、性能情報DB111等の記憶部11を管理サーバ1の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図2に示した管理サーバ1と同様の機能を実現するマイグレーション制御プログラムを実行するコンピュータの一例を説明する。図26は、マイグレーション制御プログラムを実行するコンピュータの一例を示す図である。
図26に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207を有する。また、コンピュータ200は、記憶媒体からプログラム等を読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、マイグレーション制御プログラム205a、性能情報収集プログラム205b、構成情報収集プログラム205cおよびマイグレーション制御関連情報205dを記憶する。
CPU203は、マイグレーション制御プログラム205aを読み出して、メモリ201に展開する。マイグレーション制御プログラム205aは、マイグレーション制御プロセス201aとして機能する。また、CPU203は、性能情報収集プログラム205bを読み出して、メモリ201に展開する。性能情報収集プログラム205bは、性能情報収集プロセス205bとして機能する。また、CPU203は、構成情報収集プログラム205cを読み出して、メモリ201に展開する。構成情報収集プログラム205cは、構成情報収集プロセス205cとして機能する。
例えば、マイグレーション制御プロセス201aは、マイグレーション制御部14の各機能部に対応する。また、性能情報収集プロセス205bは、性能情報収集部12に対応する。構成情報収集プロセス205cは、構成情報収集部13に対応する。マイグレーション制御関連情報205dは、性能情報DB111、予測性能情報DB112、構成情報DB113およびマイグレーション情報DB114に対応する。
なお、各プログラム205a、205b、205cについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから各プログラム205a、205b、205cを読み出して実行するようにしても良い。
1 管理サーバ
11 記憶部
12 性能情報収集部
13 構成情報収集部
14 マイグレーション制御部
111 性能情報DB
112 予測性能情報DB
1121 仮想マシン予測情報テーブル
1122 物理サーバ予測情報テーブル
113 構成情報DB
114 マイグレーション情報DB
141 メイン処理部
142 予測性能情報作成部
143 リソース不足予測部
144 マイグレーション元決定部
145 マイグレーション先決定部
146 マイグレーション実行依頼部
2 物理サーバ
21 ハイパーバイザ
22 仮想マシン
9 情報処理システム

Claims (7)

  1. コンピュータに、
    複数の仮想マシンを搭載する物理マシンについて、所定期間内でのリソース不足を予測し、
    該予測したリソース不足の時点にリソース不足が予測された物理マシンに搭載されている仮想マシンから他の物理マシンに移動することによりリソース不足を解消可能な仮想マシンを特定し、
    該特定した仮想マシンの前記所定期間内でのリソースの使用量および前記リソースの使用量に対応する時点に基づいて、前記特定した仮想マシンを他の物理マシンに移動する
    処理を実行させることを特徴とするプログラム。
  2. 該特定する処理は、複数の仮想マシンの移動によってリソース不足が解消される場合、リソース不足が解消される複数の仮想マシンの数が最小となる仮想マシンの組合せを特定することを特徴とする請求項1に記載のプログラム。
  3. 該特定する処理は、さらに、前記組合せが複数ある場合、リソース不足が予測された物理マシンのリソース不足が発生する前の時点であってリソースの使用量が最小になる時点が最早な仮想マシンを含む組合せを特定することを特徴とする請求項2に記載のプログラム。
  4. 該移動する処理は、該特定した仮想マシンのリソースの使用量が最小になる時点で、当該仮想マシンを他の物理マシンに移動することを特徴とする請求項3に記載のプログラム。
  5. 該移動する処理は、さらに、該特定した仮想マシンを移動した場合のリソースの使用量がリソース不足と判定される上限値を超えず且つ前記リソースの使用量が当該上限値に最も近い物理マシンを移動先として決定し、決定した移動先に該特定した仮想マシンを移動することを特徴とする請求項4に記載のプログラム。
  6. 複数の仮想マシンを搭載する物理マシンについて、所定期間内でのリソース不足を予測する予測部と、
    前記予測部によって予測されたリソース不足の時点にリソース不足が予測された物理マシンに搭載されている仮想マシンから他の物理マシンに移動することによりリソース不足を解消可能な仮想マシンを特定する特定部と、
    前記特定部によって特定された仮想マシンの前記所定期間内でのリソースの使用量および前記リソースの使用量に対応する時点に基づいて、前記特定した仮想マシンを他の物理マシンに移動する移動部と
    を有することを特徴とする管理サーバ。
  7. コンピュータが、
    複数の仮想マシンを搭載する物理マシンについて、所定期間内でのリソース不足を予測し、
    該予測したリソース不足の時点にリソース不足が予測された物理マシンに搭載されている仮想マシンから他の物理マシンに移動することによりリソース不足を解消可能な仮想マシンを特定し、
    該特定した仮想マシンの前記所定期間内でのリソースの使用量および前記リソースの使用量に対応する時点に基づいて、前記特定した仮想マシンを他の物理マシンに移動する
    各処理を実行することを特徴とする仮想マシン移動制御方法。
JP2012142402A 2012-06-25 2012-06-25 プログラム、管理サーバおよび仮想マシン移動制御方法 Active JP6044131B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012142402A JP6044131B2 (ja) 2012-06-25 2012-06-25 プログラム、管理サーバおよび仮想マシン移動制御方法
US13/868,474 US9378056B2 (en) 2012-06-25 2013-04-23 Management server, and virtual machine move control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012142402A JP6044131B2 (ja) 2012-06-25 2012-06-25 プログラム、管理サーバおよび仮想マシン移動制御方法

Publications (2)

Publication Number Publication Date
JP2014006739A true JP2014006739A (ja) 2014-01-16
JP6044131B2 JP6044131B2 (ja) 2016-12-14

Family

ID=49775569

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012142402A Active JP6044131B2 (ja) 2012-06-25 2012-06-25 プログラム、管理サーバおよび仮想マシン移動制御方法

Country Status (2)

Country Link
US (1) US9378056B2 (ja)
JP (1) JP6044131B2 (ja)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015184965A (ja) * 2014-03-25 2015-10-22 日本電気株式会社 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理システム
JP2016177559A (ja) * 2015-03-20 2016-10-06 日本電気株式会社 情報処理資源管理装置、情報処理資源管理方法、及び、情報処理資源管理プログラム
JP2016218759A (ja) * 2015-05-20 2016-12-22 富士通株式会社 情報処理装置、情報処理プログラム、及びデータセンタシステム
JP2017027496A (ja) * 2015-07-27 2017-02-02 日本電信電話株式会社 コンテナのマイグレーションシステム及び方法
JP2017037491A (ja) * 2015-08-10 2017-02-16 富士通株式会社 システム複製制御装置およびシステムの複製制御方法
JP2018018275A (ja) * 2016-07-27 2018-02-01 富士ゼロックス株式会社 情報処理装置及びプログラム
JP2018028746A (ja) * 2016-08-16 2018-02-22 富士通株式会社 仮想マシン管理プログラム、仮想マシン管理方法、及び、仮想マシン管理装置
KR102062157B1 (ko) * 2019-04-29 2020-01-03 오케스트로 주식회사 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치
KR102126434B1 (ko) * 2019-12-27 2020-06-25 오케스트로 주식회사 딥 러닝을 활용한 워크 로드 예측을 통한 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치
KR102135208B1 (ko) * 2019-07-31 2020-07-17 오케스트로 주식회사 스케줄링을 통한 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치
KR102135209B1 (ko) * 2019-08-19 2020-07-17 오케스트로 주식회사 가상 머신 배치 모의 실험 방법 및 이를 구현하는 가상 머신 배치 모의 실험 장치
KR20210015636A (ko) * 2019-07-31 2021-02-10 오케스트로 주식회사 가상 머신 워크로드 예측 방법, 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치
KR20210021907A (ko) * 2019-08-19 2021-03-02 오케스트로 주식회사 딥러닝을 이용한 가상 머신 배치 시뮬레이션 방법 및 이를 실행하는 가상 머신 배치 모의 실험 장치
JP2021060858A (ja) * 2019-10-08 2021-04-15 横河電機株式会社 リアルタイム通信処理システム、およびリアルタイム通信処理方法
US11010186B2 (en) 2017-09-22 2021-05-18 Fujitsu Limited Non-transitory computer-readable recording medium, adjustment device, and adjustment method
US11074103B2 (en) 2018-11-01 2021-07-27 Fujitsu Limited Scheduling method and scheduling device

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011162744A1 (en) 2010-06-22 2011-12-29 Hewlett-Packard Development Company, L.P. Methods and systems for planning application deployment
CN103443762B (zh) * 2011-04-07 2019-02-05 企业服务发展公司有限责任合伙企业 用于移动软件对象的方法和装置
US10180851B2 (en) * 2013-01-14 2019-01-15 Cisco Technology, Inc. Detection of unauthorized use of virtual resources
WO2014134771A1 (en) * 2013-03-04 2014-09-12 Intel Corporation Energy aware information processing framework for computation and communication devices (ccd) coupled to a cloud
JP2015011569A (ja) * 2013-06-28 2015-01-19 株式会社東芝 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理プログラム
US10581687B2 (en) * 2013-09-26 2020-03-03 Appformix Inc. Real-time cloud-infrastructure policy implementation and management
US10291472B2 (en) 2015-07-29 2019-05-14 AppFormix, Inc. Assessment of operational states of a computing environment
US9851918B2 (en) * 2014-02-21 2017-12-26 Red Hat Israel, Ltd. Copy-on-write by origin host in virtual machine live migration
US9948493B2 (en) * 2014-04-03 2018-04-17 Centurylink Intellectual Property Llc Network functions virtualization interconnection gateway
US10142192B2 (en) * 2014-04-09 2018-11-27 International Business Machines Corporation Management of virtual machine resources in computing environments
US10129105B2 (en) 2014-04-09 2018-11-13 International Business Machines Corporation Management of virtual machine placement in computing environments
US10642635B2 (en) * 2014-06-07 2020-05-05 Vmware, Inc. Decentralized demand-based virtual machine migration management
CN106155782B (zh) * 2015-04-09 2019-06-25 联想(北京)有限公司 虚拟机迁移方法及装置
JP2016224582A (ja) * 2015-05-28 2016-12-28 富士通株式会社 制御方法、制御装置、及び制御プログラム
US9946564B2 (en) * 2015-06-23 2018-04-17 International Business Machines Corporation Adjusting virtual machine migration plans based on alert conditions related to future migrations
US9600331B1 (en) * 2015-08-24 2017-03-21 International Business Machines Corporation Virtual machine placement in a cloud computing environment based on factors including optimized processor-memory affinity
US10346201B2 (en) * 2016-06-15 2019-07-09 International Business Machines Corporation Guided virtual machine migration
JP6571046B2 (ja) * 2016-06-21 2019-09-04 株式会社東芝 サーバ装置、情報処理方法及びプログラム
US10868742B2 (en) 2017-03-29 2020-12-15 Juniper Networks, Inc. Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control
US11068314B2 (en) 2017-03-29 2021-07-20 Juniper Networks, Inc. Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment
US11323327B1 (en) 2017-04-19 2022-05-03 Juniper Networks, Inc. Virtualization infrastructure element monitoring and policy control in a cloud environment using profiles
KR101820269B1 (ko) 2017-07-21 2018-01-18 건국대학교 산학협력단 마이그레이션 방법 및 시스템
CN108255576B (zh) * 2017-12-08 2021-02-26 未鲲(上海)科技服务有限公司 虚拟机热迁移异常处理方法、装置和存储介质
CN108287749A (zh) * 2018-01-11 2018-07-17 郑州云海信息技术有限公司 一种数据中心综合管理系统云资源调度方法
US10642603B2 (en) 2018-01-16 2020-05-05 Nutanix, Inc. Scheduling upgrades in distributed computing systems
US20190327159A1 (en) * 2018-04-20 2019-10-24 Nutanix, Inc. Systems and methods for identifying and displaying logon duration metrics
US10838754B2 (en) 2018-04-27 2020-11-17 Nutanix, Inc. Virtualized systems having hardware interface services for controlling hardware
US10740157B2 (en) * 2018-06-05 2020-08-11 International Business Machines Corporation Cache load balancing in a virtual input/output server
JP7177349B2 (ja) * 2019-02-08 2022-11-24 富士通株式会社 スケジュールプログラム、スケジュール装置およびスケジュール方法
FR3094812A1 (fr) * 2019-04-08 2020-10-09 Orange Procédé et dispositif de migration d’une fonction virtualisée en cas de défaillance de l’environnement technique de serveurs
US11907770B2 (en) * 2019-09-19 2024-02-20 Huawei Cloud Computing Technologies Co., Ltd. Method and apparatus for vectorized resource scheduling in distributed computing systems using tensors
JP6960491B2 (ja) * 2020-03-04 2021-11-05 株式会社日立製作所 管理システム及び基盤システムの管理方法
US11539635B2 (en) 2021-05-10 2022-12-27 Oracle International Corporation Using constraint programming to set resource allocation limitations for allocating resources to consumers
US20230128199A1 (en) * 2021-10-27 2023-04-27 Oracle International Corporation Telemetry data filter

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090228589A1 (en) * 2008-03-04 2009-09-10 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
JP2010117760A (ja) * 2008-11-11 2010-05-27 Hitachi Ltd 仮想マシン移動管理サーバおよび仮想マシン移動方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3861087B2 (ja) 2003-10-08 2006-12-20 株式会社エヌ・ティ・ティ・データ 仮想マシン管理装置及びプログラム
US8156490B2 (en) * 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
US8291411B2 (en) * 2007-05-21 2012-10-16 International Business Machines Corporation Dynamic placement of virtual machines for managing violations of service level agreements (SLAs)
JP5206674B2 (ja) * 2007-05-24 2013-06-12 日本電気株式会社 仮想マシン管理装置、仮想マシン管理方法および仮想マシン管理プログラム
JP4894745B2 (ja) 2007-12-14 2012-03-14 富士通株式会社 仮想マシン移動制御方式
US8903983B2 (en) * 2008-02-29 2014-12-02 Dell Software Inc. Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network
US8935701B2 (en) * 2008-03-07 2015-01-13 Dell Software Inc. Unified management platform in a computer network
US8099615B2 (en) * 2008-06-30 2012-01-17 Oracle America, Inc. Method and system for power management in a virtual machine environment without disrupting network connectivity
US9384062B2 (en) * 2008-12-27 2016-07-05 Vmware, Inc. Artificial neural network for balancing workload by migrating computing tasks across hosts
US8321862B2 (en) * 2009-03-20 2012-11-27 Oracle America, Inc. System for migrating a virtual machine and resource usage data to a chosen target host based on a migration policy
US8924534B2 (en) * 2009-10-27 2014-12-30 Vmware, Inc. Resource optimization and monitoring in virtualized infrastructure
US8612615B2 (en) * 2010-11-23 2013-12-17 Red Hat, Inc. Systems and methods for identifying usage histories for producing optimized cloud utilization
JP5767480B2 (ja) * 2011-01-31 2015-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、情報処理システム、配置構成決定方法、プログラムおよび記録媒体
US8601483B2 (en) * 2011-03-22 2013-12-03 International Business Machines Corporation Forecasting based service for virtual machine reassignment in computing environment
US8694644B2 (en) * 2011-09-29 2014-04-08 Nec Laboratories America, Inc. Network-aware coordination of virtual machine migrations in enterprise data centers and clouds
US20130263117A1 (en) * 2012-03-28 2013-10-03 International Business Machines Corporation Allocating resources to virtual machines via a weighted cost ratio

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090228589A1 (en) * 2008-03-04 2009-09-10 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
JP2010117760A (ja) * 2008-11-11 2010-05-27 Hitachi Ltd 仮想マシン移動管理サーバおよび仮想マシン移動方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
田添 聡士 外1名: ""仮想マシン再配置問題に対する厳密アルゴリズム"", 情報処理学会研究報告, vol. 平成21年度▲5▼ [CD−ROM], JPN6015040192, 15 February 2010 (2010-02-15), pages 1 - 6, ISSN: 0003169561 *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015184965A (ja) * 2014-03-25 2015-10-22 日本電気株式会社 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理システム
JP2016177559A (ja) * 2015-03-20 2016-10-06 日本電気株式会社 情報処理資源管理装置、情報処理資源管理方法、及び、情報処理資源管理プログラム
JP2016218759A (ja) * 2015-05-20 2016-12-22 富士通株式会社 情報処理装置、情報処理プログラム、及びデータセンタシステム
JP2017027496A (ja) * 2015-07-27 2017-02-02 日本電信電話株式会社 コンテナのマイグレーションシステム及び方法
US10346426B2 (en) 2015-08-10 2019-07-09 Fujitsu Limited System-replication control apparatus and system-replication control method
JP2017037491A (ja) * 2015-08-10 2017-02-16 富士通株式会社 システム複製制御装置およびシステムの複製制御方法
JP2018018275A (ja) * 2016-07-27 2018-02-01 富士ゼロックス株式会社 情報処理装置及びプログラム
JP2018028746A (ja) * 2016-08-16 2018-02-22 富士通株式会社 仮想マシン管理プログラム、仮想マシン管理方法、及び、仮想マシン管理装置
US11010186B2 (en) 2017-09-22 2021-05-18 Fujitsu Limited Non-transitory computer-readable recording medium, adjustment device, and adjustment method
US11074103B2 (en) 2018-11-01 2021-07-27 Fujitsu Limited Scheduling method and scheduling device
KR102062157B1 (ko) * 2019-04-29 2020-01-03 오케스트로 주식회사 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치
US11354163B2 (en) 2019-04-29 2022-06-07 Okestro Co., Ltd Virtual machine placement method and virtual machine placement device implementing the same
WO2020222347A1 (ko) * 2019-04-29 2020-11-05 오케스트로 주식회사 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치
KR102135208B1 (ko) * 2019-07-31 2020-07-17 오케스트로 주식회사 스케줄링을 통한 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치
KR20210015636A (ko) * 2019-07-31 2021-02-10 오케스트로 주식회사 가상 머신 워크로드 예측 방법, 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치
KR102316749B1 (ko) 2019-07-31 2021-10-25 오케스트로 주식회사 가상 머신 워크로드 예측 방법, 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치
KR20210021907A (ko) * 2019-08-19 2021-03-02 오케스트로 주식회사 딥러닝을 이용한 가상 머신 배치 시뮬레이션 방법 및 이를 실행하는 가상 머신 배치 모의 실험 장치
KR102135209B1 (ko) * 2019-08-19 2020-07-17 오케스트로 주식회사 가상 머신 배치 모의 실험 방법 및 이를 구현하는 가상 머신 배치 모의 실험 장치
KR102347371B1 (ko) 2019-08-19 2022-01-05 오케스트로 주식회사 딥러닝을 이용한 가상 머신 배치 시뮬레이션 방법 및 이를 실행하는 가상 머신 배치 모의 실험 장치
JP2021060858A (ja) * 2019-10-08 2021-04-15 横河電機株式会社 リアルタイム通信処理システム、およびリアルタイム通信処理方法
JP7010272B2 (ja) 2019-10-08 2022-01-26 横河電機株式会社 リアルタイム通信処理システム、およびリアルタイム通信処理方法
KR102126434B1 (ko) * 2019-12-27 2020-06-25 오케스트로 주식회사 딥 러닝을 활용한 워크 로드 예측을 통한 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치

Also Published As

Publication number Publication date
US9378056B2 (en) 2016-06-28
JP6044131B2 (ja) 2016-12-14
US20130346973A1 (en) 2013-12-26

Similar Documents

Publication Publication Date Title
JP6044131B2 (ja) プログラム、管理サーバおよび仮想マシン移動制御方法
US10719343B2 (en) Optimizing virtual machines placement in cloud computing environments
Hieu et al. Virtual machine consolidation with multiple usage prediction for energy-efficient cloud data centers
US9715408B2 (en) Data-aware workload scheduling and execution in heterogeneous environments
JP5614226B2 (ja) 仮想マシン制御装置、仮想マシン制御プログラムおよび仮想マシン制御方法
RU2605473C2 (ru) Автоматизированное профилирование использования ресурса
CN108733509B (zh) 用于在集群系统中备份和恢复数据的方法和系统
JP6072072B2 (ja) クラウドシステム管理装置、クラウドシステム、再配置方法、及びプログラム
US9477460B2 (en) Non-transitory computer-readable storage medium for selective application of update programs dependent upon a load of a virtual machine and related apparatus and method
KR101351688B1 (ko) 서버 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체, 관리 서버, 가상 서버 배치 방법
US9037880B2 (en) Method and system for automated application layer power management solution for serverside applications
US7979864B2 (en) Apparatus for setting used license of executing job into unused license state and allocating the set unused license to a to be executed job based on priority
JP6075226B2 (ja) プログラム、仮想マシン管理方法および情報処理装置
JP6369170B2 (ja) 実行時間推定装置及び方法
US20110289333A1 (en) Method for dynamically distributing one or more services in a network comprised of a plurality of computers
US20100083272A1 (en) Managing pools of dynamic resources
US20180046489A1 (en) Storage medium, method, and device
JP2017041191A (ja) リソース管理装置、リソース管理プログラム、及びリソース管理方法
Rood et al. Resource availability prediction for improved grid scheduling
CN110659108B (zh) 一种云系统虚拟机任务迁移方法及装置、服务器
JP6620609B2 (ja) 分散処理実行管理プログラム、分散処理実行管理方法および分散処理実行管理装置
EP3798931A1 (en) Machine learning training resource management
JP2009193205A (ja) 自動チューニングシステム、自動チューニング装置、自動チューニング方法
Rood et al. Scheduling on the grid via multi-state resource availability prediction
Joseph et al. Nature‐inspired resource management and dynamic rescheduling of microservices in Cloud datacenters

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160929

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: 20161018

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161031

R150 Certificate of patent or registration of utility model

Ref document number: 6044131

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150