JP5664339B2 - 情報処理装置、仮想マシン管理方法および仮想マシン管理プログラム - Google Patents

情報処理装置、仮想マシン管理方法および仮想マシン管理プログラム Download PDF

Info

Publication number
JP5664339B2
JP5664339B2 JP2011043708A JP2011043708A JP5664339B2 JP 5664339 B2 JP5664339 B2 JP 5664339B2 JP 2011043708 A JP2011043708 A JP 2011043708A JP 2011043708 A JP2011043708 A JP 2011043708A JP 5664339 B2 JP5664339 B2 JP 5664339B2
Authority
JP
Japan
Prior art keywords
load
timing
virtual machine
predicted
prediction
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
JP2011043708A
Other languages
English (en)
Other versions
JP2012181647A (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 JP2011043708A priority Critical patent/JP5664339B2/ja
Publication of JP2012181647A publication Critical patent/JP2012181647A/ja
Application granted granted Critical
Publication of JP5664339B2 publication Critical patent/JP5664339B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は情報処理装置、仮想マシン管理方法および仮想マシン管理プログラムに関する。
現在、情報処理の分野では、物理的なコンピュータ上で、1またはそれ以上の仮想的なコンピュータ(仮想マシンと呼ぶことがある)を実行する仮想化技術が利用されている。それぞれの仮想マシンにおいて、オペレーティングシステム(OS:Operating System)が実行される。仮想マシンを実行する物理的なコンピュータでは、例えば、CPU(Central Processing Unit)やRAM(Random Access Memory)などのリソースを仮想マシンに割り当てるソフトウェア(ハイパーバイザと呼ぶことがある)が実行される。各仮想マシンのOSは、ハイパーバイザから割り当てられたリソースの範囲内で、アプリケーションプログラムのスケジューリングなどの制御を行う。
複数の物理的なコンピュータを含む情報処理システムには、仮想マシンを実行するコンピュータを動的に変更できるものがある。例えば、仮想マシンを終了させずに、ハイパーバイザ間で仮想マシンに関するデータを移動させることができる技術がある。仮想マシンをコンピュータ間で移動させることで、負荷の平準化を図り、特定の物理的なコンピュータに負荷が集中することを抑制することができる。
なお、リソース使用率が低い物理マシンを検出すると、当該物理マシンで稼働している仮想マシンの負荷の低い状態が一定期間継続するか判断し、継続すると判断した場合は、当該仮想マシンを他の物理マシンに移動させる方法が提案されている。また、仮想マシンの負荷のサイクルを示す関数を算出し、算出した関数を用いて物理マシンのリソース不足を事前に検出し、仮想マシンの移動をスケジューリングする方法が提案されている。
特開2010−15192号公報(段落[0046]) 特開2010−117760号公報(段落[0005])
しかし、仮想マシンの負荷の傾向は、様々な要因で変化し、事前に正確に予測することが困難であることも多い。このため、事前に予測した負荷の傾向に基づいて仮想マシンの配置を決定するだけでは、予測時点からの時間の経過に伴って、次第に仮想マシンの配置が適切でなくなり、十分に負荷の平準化が図られない状態になるおそれがある。
本発明はこのような点に鑑みてなされたものであり、負荷の変化に応じて仮想マシンの効率的な配置を行えるようにした情報処理装置、仮想マシン管理方法および仮想マシン管理プログラムを提供することを目的とする。
記憶手段と割り当て手段と予測修正手段とを有する情報処理装置が提供される。記憶手段は、第1のタイミングおよび第2のタイミングのそれぞれにおける仮想マシンの負荷の予測を示す負荷予測を記憶する。割り当て手段は、負荷予測に基づいて、仮想マシンを実行するコンピュータの割り当てを行う。予測修正手段は、第1のタイミングにおける予測負荷と、第1のタイミングで測定された負荷との間の差異が閾値を超える場合、測定された負荷に基づいて、第1のタイミングより後の第2のタイミングにおける予測負荷を修正する。
また、情報処理装置が実行する仮想マシン管理方法が提供される。この仮想マシン管理方法では、第1のタイミングおよび第2のタイミングのそれぞれにおける仮想マシンの負荷の予測を示す予測負荷を記憶する記憶手段を参照して、第1のタイミングにおける予測負荷と第1のタイミングで測定された負荷との間の差異が閾値を超える場合、測定された負荷に基づいて、第1のタイミングより後の第2のタイミングにおける予測負荷を修正する。修正された予測負荷に基づいて、仮想マシンを実行するコンピュータの割り当てを行う。また、コンピュータに実行させる仮想マシン管理プログラムが提供される。
また、記憶手段と割り当て手段と予測修正手段とを有する情報処理装置が提供される。記憶手段は、第1のタイミングおよび第2のタイミングのそれぞれにおける仮想マシンの負荷の予測を示す予測負荷を記憶する。割り当て手段は、予測負荷に基づいて、仮想マシンを実行するコンピュータの割り当てを行う。予測修正手段は、第1のタイミングにおける予測負荷と、第1のタイミングで測定された負荷との間のずれを検出すると、測定された負荷に基づいて、第1のタイミングより後の第2のタイミングにおける予測負荷を修正する。更に、割り当て手段は、予測負荷に基づいて、将来の各タイミングにおける割り当ての変更の発生を予測し、割り当ての変更の回数が最も小さくなるように、現在の割り当てを決定する。
また、仮想マシン管理プログラムが提供される。この仮想マシン管理プログラムは、コンピュータに、第1のタイミングおよび第2のタイミングのそれぞれにおける仮想マシンの負荷の予測を示す予測負荷を記憶する記憶手段を参照し、第1のタイミングにおける予測負荷と第1のタイミングで測定された負荷との間のずれを検出すると、測定された負荷に基づいて、第1のタイミングより後の第2のタイミングにおける予測負荷を修正し、修正された予測負荷に基づいて、将来の各タイミングにおける仮想マシンを実行するコンピュータの割り当ての変更の発生を予測し、割り当ての変更の回数が最も小さくなるように、現在の割り当てを決定する、処理を実行させる。
上記情報処理装置、仮想マシン管理方法および仮想マシン管理プログラムによれば、負荷の変化に応じて仮想マシンの効率的な配置を行える。
第1の実施の形態の情報処理システムを示す図である。 第2の実施の形態の情報処理システムを示す図である。 管理サーバのハードウェア例を示すブロック図である。 実行サーバの仮想マシンの配置例を示すブロック図である。 管理サーバの機能を示すブロック図である。 リソース管理テーブルのデータ構造例を示す図である。 負荷カレンダーのデータ構造例を示す第1の図である。 負荷カレンダーのデータ構造例を示す第2の図である。 負荷カレンダーのデータ構造例を示す第3の図である。 負荷予測処理を示すフローチャートである。 次月の負荷カレンダーの作成処理を示すフローチャートである。 第2の実施の形態の配置替え処理を示すフローチャートである。 第3の実施の形態の配置替え処理を示すフローチャートである。 第4の実施の形態の配置替え処理を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。第1の実施の形態の情報処理システムは、情報処理装置1、および、コンピュータ2を含む複数のコンピュータを有する。情報処理装置1は、複数のコンピュータと通信が可能である。情報処理装置1は、仮想マシン2a,2bの配置を管理する。複数のコンピュータは、例えば、情報処理装置1からの指示に従って仮想マシンを動作させるためのハイパーバイザを実行する。情報処理装置1は、記憶手段1a、割り当て手段1bおよび予測修正手段1cを有する。
記憶手段1aは、複数の異なるタイミングそれぞれにおける仮想マシン2a,2bの予測される負荷を示す負荷情報を記憶する。例えば、負荷情報は、時間帯毎に複数日分(例えば、1ヶ月分)の予測される負荷の値を含む。負荷の値としては、例えば、CPU使用率やメモリ使用率などを用いることが考えられる。
ここで、予測される負荷とは、例えば、ある時点で実測の負荷を取得した際に、他の月内の同一時期(第一週目や最終週など)、他の週の同一曜日、同一時間帯などを当該実測の負荷に基づき予測して得られる負荷である。例えば、実測の負荷を取得した時点と同一時間帯については、未来の同一時間帯も当該実測の負荷になると予測することが考えられる。
割り当て手段1bは、記憶手段1aが記憶する負荷情報が示す予測される負荷に基づいて、仮想マシン2a,2bを実行するコンピュータの割り当てを行う。例えば、各時間帯の始点で、当該時間帯の予測される負荷の値に基づいて、負荷が平準化されるように割り当てを見直す。割り当て手段1bは、例えば、仮想マシン2a,2bを実行するコンピュータとしてコンピュータ2を選択する。その場合、例えば、コンピュータ2のハイパーバイザは、情報処理装置1からの指示に従って仮想マシン2a,2bを動作させる。
予測修正手段1cは、第1のタイミングにおける予測される負荷と仮想マシン2a,2bの測定された負荷との間の差異を検出する。測定された負荷を示す情報は、例えば、コンピュータ2から収集される。予測修正手段1cは、予測される負荷の値と測定された負荷の値との差が閾値を超えるときに、差異が検出されたと判定してもよい。差異が検出されると、予測修正手段1cは、測定された負荷に基づいて、第1のタイミングより後の第2のタイミングの予測される負荷を修正し、負荷情報を更新する。第2のタイミングは、第1のタイミングに応じたものであり、例えば、曜日や時間帯などの属性の少なくとも1つが第1のタイミングと共通するタイミングである。
情報処理装置1では、予測修正手段1cにより、負荷情報を記憶する記憶手段1aが参照され、第1のタイミングにおける予測される負荷と測定された負荷との間の差異が検出される。すると、予測修正手段1cにより、測定された負荷に基づいて、第1のタイミングより後の、第1のタイミングに応じた第2のタイミングにおける予測される負荷が修正される。そして、割り当て手段1bにより、修正された予測される負荷に基づいて、仮想マシン2a,2bを実行するコンピュータの割り当てが行われる。
これにより、負荷の変化に柔軟に対応して仮想マシン2a,2bの効率的な配置を行えるようになる。例えば、仮想マシン2a,2bの負荷の傾向(変動サイクルなど)は、新たなアプリケーションプログラムの運用開始や既存のアプリケーションプログラムの運用終了などの様々な要因で変化し得る。このため、過去に算出した負荷の傾向が、現在の負荷の傾向に合わなくなる可能性がある。この点、情報処理装置1は、予測される負荷と測定された負荷との間の差異が検出されると、検出されたタイミングに対応する将来のタイミング(例えば、曜日や時間帯が同じタイミング)の負荷の予測を動的に修正する。よって、負荷の傾向の変化に迅速に対応し、負荷の平準化が失敗する可能性を低減できる。
以下に説明する第2の実施の形態では、複数のサーバコンピュータ上で複数の仮想マシンを実行して、ユーザが所望するアプリケーションプログラムを当該仮想マシン上で実行する情報処理システムの例を示す。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態に係る情報処理システムは、複数のサーバコンピュータ(以下、単にサーバということもある)上で実行される複数の仮想マシンは端末装置からの要求を受け付け、要求に応じたアプリケーションプログラムの処理を実行して端末装置に応答する。
この情報処理システムは、管理サーバ100および実行サーバ200,200a,200bを含む。管理サーバ100、実行サーバ200,200a,200bは、ネットワーク10に接続されている。更に、端末装置21がネットワーク10に接続されている。
端末装置21は、ユーザが操作する情報処理装置である。端末装置21は、実行サーバ200,200a,200bで実行される仮想マシンに対して処理の実行を要求する。端末装置21は、実行サーバ200,200a,200bから要求に対する処理結果を受信する。
管理サーバ100は、仮想マシンに対する実行サーバ200,200a,200bの割り当てを管理するサーバコンピュータである。すなわち、管理サーバ100は仮想マシンの配置替えや、それに伴う仮想マシンの起動・停止などの制御を行う。
実行サーバ200,200a,200bは、仮想マシンを実行するサーバコンピュータである。ここで、実行サーバ200,200a,200bのサーバ名はそれぞれ“Server1”、“Server2”、“Server3”である。
図3は、管理サーバのハードウェア例を示すブロック図である。管理サーバ100は、CPU101、ROM(Read Only Memory)102、RAM103、HDD(Hard Disk Drive)104、グラフィック処理装置105、入力インタフェース106、記録媒体読取装置107および通信インタフェース108を有する。
CPU101は、OSプログラムやアプリケーションプログラムを実行して、管理サーバ100全体を制御する。
ROM102は、管理サーバ100の起動時に実行されるBIOS(Basic Input / Output System)プログラムなどの所定のプログラムを記憶する。ROM102は、書き換え可能な不揮発性メモリであってもよい。
RAM103は、CPU101が実行するOSプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM103は、CPU101の処理に用いられるデータの少なくとも一部を一時的に記憶する。
HDD104は、OSプログラムやアプリケーションプログラムを記憶する。また、HDD104は、CPU101の処理に用いられるデータを記憶する。なお、HDD104に代えて(または、HDD104と併せて)、SSD(Solid State Drive)など他の種類の不揮発性の記憶装置を用いてもよい。
グラフィック処理装置105は、モニタ11に接続される。グラフィック処理装置105は、CPU101からの命令に従って、画像をモニタ11に表示させる。
入力インタフェース106は、キーボード12やマウス13などの入力デバイスに接続される。入力インタフェース106は、入力デバイスから送られる入力信号をCPU101に出力する。
記録媒体読取装置107は、記録媒体14に格納されたデータを読み取る読取装置である。記録媒体14には、例えば、管理サーバ100に実行させるプログラムが記録されている。管理サーバ100は、例えば、記録媒体14に記録された仮想マシン管理プログラムを実行することで、後述するような仮想マシン管理機能を実現することができる。すなわち、仮想マシン管理プログラムはコンピュータ読み取り可能な記録媒体14に記録して配布することが可能である。
記録媒体14としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(ReWritable)、DVD(Digital Versatile Disc)、DVD−R/RW/RAMなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。半導体メモリには、USB(Universal Serial Bus)メモリなどのフラッシュメモリがある。
通信インタフェース108は、ネットワーク10に接続される。通信インタフェース108は、ネットワーク10を介して実行サーバ200,200a,200bおよび端末装置21とデータ通信を行える。
なお、ネットワーク10に接続された他のサーバコンピュータ(図示せず)に仮想マシン管理プログラムを格納しておいてもよい。その場合、管理サーバ100は、当該サーバコンピュータから仮想マシン管理プログラムをダウンロードして実行することもできる。
実行サーバ200,200a,200bおよび端末装置21も管理サーバ100と同様のハードウェア構成により実現できる。
図4は、実行サーバの仮想マシンの配置例を示すブロック図である。実行サーバ200は、ハードウェア層210、ハイパーバイザ220および仮想マシン層230を有する。
ハードウェア層210は、実行サーバ200が備えるハードウェア資源(以下、リソースということもある)が属する階層である。ハードウェア資源としては、例えばCPU、RAM、HDDおよび通信インタフェースなどがある。
ハイパーバイザ220は、実行サーバ200上で仮想マシンを実現する。ハイパーバイザ220は、管理サーバ100の指示に基づいて各仮想マシンに対するリソースの割り当てを行い、各仮想マシンの起動・停止を実行する。また、ハイパーバイザ220は、各仮想マシンがハードウェア層210上の資源を共同で利用できるよう各仮想マシンのリソースへのアクセスを調停する。更に、ハイパーバイザ220は各仮想マシンに割り当てたリソースの使用状況を監視する。
仮想マシン層230は、ハイパーバイザ220により実行サーバ200上に実現された仮想マシンが属する階層である。仮想マシン層230には、複数の仮想マシン231,232,233が含まれる。仮想マシン231,232,233では、それぞれ独立のOSを実行している。実行するOSはハイパーバイザ220により指定される。仮想マシン231,232,233が実行するOSはそれぞれ同一でもよいし、異なっていてもよい。ユーザは、端末装置21を操作して仮想マシン231,232,233に個別にアプリケーションプログラムをインストールし、当該アプリケーションの機能を利用できる。
なお、実行サーバ200a,200bも実行サーバ200と同様の構成により実現できる。
図5は、管理サーバの機能を示すブロック図である。管理サーバ100は、仮想マシン情報記憶部110、負荷データ処理部120および仮想マシン配置部130を有する。これらのユニットの機能は、CPU101が仮想マシン管理プログラムを実行することにより管理サーバ100上に実現される。ただし、これらのユニットの機能の全部または一部を専用のハードウェアで実装してもよい。
仮想マシン情報記憶部110は、仮想マシンに割り当てたリソースを管理するリソース管理テーブルおよび各仮想マシンの負荷の予測を管理する負荷カレンダーを記憶する。リソース管理テーブルには、仮想マシンを配置した実行サーバ、実行サーバから仮想マシンに割り当てたリソースが設定される。負荷カレンダーには、各日付につき予測された負荷が設定される。
負荷データ処理部120は、実行サーバ200,200a,200bから各仮想マシンで測定された負荷を示す測定データを収集し、収集した測定データに基づいて負荷を予測する。負荷データ処理部120は、負荷データ収集部121および負荷予測部122を有する。
負荷データ収集部121は、実行サーバ200,200a,200b上のハイパーバイザから各仮想マシンに割り当てられたリソースの負荷を収集する。負荷データ収集部121は、収集した負荷を仮想マシン情報記憶部110に格納された負荷カレンダーに記録する。
負荷予測部122は、仮想マシン情報記憶部110に記憶された負荷カレンダーに基づいて、未来のタイミングにおける予測した負荷を、当該負荷カレンダーに記録する。
仮想マシン配置部130は、仮想マシン情報記憶部110に記憶された負荷カレンダーに基づいて、実行サーバ200,200a,200b上の仮想マシンの配置を行う。仮想マシン配置部130は、予測値読込部131および配置管理部132を有する。
予測値読込部131は、仮想マシン情報記憶部110に記憶された負荷カレンダーを読み込む。
配置管理部132は、予測値読込部131が読み込んだ負荷カレンダーに基づいて、仮想マシンの配置を管理する。具体的には、配置管理部132は、実行サーバ200,200a,200bに、実行サーバ200,200a,200b間での仮想マシンの配置替えを指示する。また、配置管理部132は、実行サーバ200,200a,200bの電源制御も行う。例えば、実行サーバ200,200a,200bのうち、仮想マシンを実行していないサーバがあれば、当該サーバの電源を切断して省電力化を図る。また、現在起動している実行サーバで能力不足であれば、電源オフ中の実行サーバの電源を投入して、実行サーバの能力を補う。
図6は、リソース管理テーブルのデータ構造例を示す図である。リソース管理テーブル111は、仮想マシン情報記憶部110に格納される。リソース管理テーブル111には、VM(Virtual Machine)名、用途、サーバ、CPU割当およびメモリ割当を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連づけられて、1つの仮想マシンに割り当てられたリソースの情報を示す。
VM名の項目には、仮想マシンの名称が設定される。用途の項目には、仮想マシンの用途が設定される。サーバの項目には、実行サーバの名称が設定される。CPU割当の項目には、割り当てられたCPUの動作周波数に相当する値が設定される。メモリ割当の項目には、割り当てられたRAMのメモリサイズに相当する値が設定される。
例えば、リソース管理テーブル111には、VM名が“VM1”、用途が“メール”、サーバが“Server1”、CPU割当が“1GHz(Giga Hertz)”、メモリ割当が“1GB(Giga Bites)”という情報が設定される。これは、仮想マシン“VM1”が、“メール”サーバの用途として、実行サーバ200で実行されており、当該仮想マシンに対して、“1GHz”相当のCPU、“1GB”相当のRAMが割り当てられていることを示している。
ここで、リソース管理テーブル111中、用途の項目には、“メール”以外にも“日次”、“週次”、“月次”、“個人向け”および“週末向け”が設定されている。
“日次”は、日次業務用のアプリケーションを実行する日次業務サーバとしての用途を示している。日次業務用のアプリケーションは、例えば出退勤管理のアプリケーションなどである。
“週次”は、週次業務用のアプリケーションを実行する週次業務サーバとしての用途を示している。週次業務用のアプリケーションは、例えば経費精算のアプリケーションなどである。
“月次”は、月次業務用のアプリケーションを実行する月次業務サーバとしての用途を示している。月次業務用のアプリケーションは、例えば月次決算のアプリケーションなどである。
“個人向け”は、個人向けのアプリケーションを実行する個人向け業務サーバとしての用途を示している。個人向けのアプリケーションは、例えばオンラインショップといった個人向けの電子商取引のアプリケーションなどである。
“週末向け”は、週末向けのアプリケーションを実行する週末向け業務サーバとしての用途を示している。週末向けのアプリケーションは、例えば交通手段や宿泊先の検索・予約を行う検索システムのアプリケーションなどである。
各仮想マシンの負荷は、1日の中の時間帯、1週間の中の日にち、月の中の日にちと、その用途に応じて変動するのが一般的である。例えば、企業向けのサーバであれば、日中や月末に負荷が高くなり、早朝や夜間には負荷が低くなる。個人向けのサーバであれば、早朝は負荷が低く、日中は平均的で、夜間は負荷が高くなる。週末向けのサービスの場合、週末などの休日前夜に負荷が高くなる。
なお、リソース管理テーブル111には、仮想マシンに割り当てるリソースとしてCPUおよびRAMを例示したが、その他のリソース(例えば、HDDやネットワーク)を管理してもよい。
図7は、負荷カレンダーのデータ構造例を示す第1の図である。負荷カレンダー112は、仮想マシン情報記憶部110に格納される。図7では、負荷カレンダー112中、今月の負荷に関するデータの一部を例示している。負荷カレンダー112には、時刻、VM名および負荷データを設定するための項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、1つの仮想マシンの負荷の予測を示す。
時刻の項目には、時間帯を示す情報が設定される。VM名の項目には、仮想マシンの名称が設定される。負荷データを設定するための項目には、各日付の予測された負荷(予測データ)または測定された負荷(測定データ)が設定される。
ここで、仮想マシンの負荷という場合、以下では、仮想マシンに割り当てられたCPUリソースの使用率を示すものとする。ただし、仮想マシンに割り当てられたRAMリソースの使用率や、その他のリソースの使用率を示してもよい。更に、1つのリソースの使用率に限らず2以上のリソースの使用率を総合して、仮想マシンの負荷としてもよい。
例えば、負荷カレンダー112には、時刻が“9:00−9:59”、VM名が“VM1”、1日(日曜日)の負荷が“10%”、2日(月曜日)〜6日(金曜日)の負荷が“50%”、7日(土曜日)の負荷が“10%”という情報が設定される。
これは、仮想マシンVM1につき、1日(日曜日)の時刻9時台においてCPU使用率が10%であることを示す。同様に、2日(月曜日)〜6日(金曜日)の同時間帯においてCPU使用率が50%であることを示す。更に、7日(土曜日)の同時間帯においてCPU使用率が10%であることを示す。
ここで、VM1について時刻10時台の情報を参照すると、2日(月曜日)〜6日(金曜日)の負荷が“20%”となっており、朝の早い時間帯(9時台)でVM1の負荷が高まることが分かる。リソース管理テーブル111によれば、VM1の用途はメールサーバであり、出社後の電子メールの一斉受信が要因と考えられる。
図8は、負荷カレンダーのデータ構造例を示す第2の図である。図8では、負荷カレンダー112中、今月の負荷に関するデータの一部を例示している。
例えば、負荷カレンダー112には、時刻が“17:00−17:59”、VM名が“VM2”、1日(日曜日)の負荷が“0%”、2日(月曜日)〜6日(金曜日)の負荷が“60%”、7日(土曜日)の負荷が“0%”という情報が設定される。
これは、仮想マシンVM2につき、1日(日曜日)の17時台においてCPU使用率が0%であることを示す。同様に、2日(月曜日)〜6日(金曜日)の同時間帯においてCPU使用率が60%であることを示す。更に、7日(土曜日)の同時間帯においてCPU使用率が0%であることを示す。リソース管理テーブル111によれば、VM2の用途は日次業務サーバであり、終業時間帯(17時台)で日次業務が行われることが要因と考えられる。
また、例えば、負荷カレンダー112には、時刻が“17:00−17:59”、VM名が“VM3”、1日(日曜日)〜5日(木曜日)の負荷が“0%”、6日(金曜日)の負荷が“40%”、7日(土曜日)の負荷が“0%”という情報が設定される。
これは、仮想マシンVM3につき、1日(日曜日)〜5日(木曜日)の17時台においてCPU使用率が0%であることを示す。同様に、6日(金曜日)の同時間帯においてCPU使用率が40%であることを示す。更に、7日(土曜日)の同時間帯においてCPU使用率が0%であることを示す。すなわち、VM3は金曜日の終業時間帯の負荷が高い。リソース管理テーブル111によれば、VM3の用途は週次業務サーバであり、週末の終業時間帯で週次業務が行われることが要因と考えられる。
また、例えば、負荷カレンダー112には、時刻が“22:00−22:59”、VM名が“VM5”、1日(日曜日)〜7日(土曜日)の負荷が“50%”という情報が設定される。
これは、仮想マシンVM5につき、1日(日曜日)〜7日(土曜日)の22時台においてCPU使用率が50%であることを示す。すなわち、VM5は夜中の時間帯の負荷が高い。リソース管理テーブル111によれば、VM5の用途は個人向け業務サーバであり、日中よりも夜間に利用されることが多いことが要因と考えられる。
また、例えば、負荷カレンダー112には、時刻が“22:00−22:59”、VM名が“VM6”、1日(日曜日)〜5日(木曜日)までの負荷が“10%”、6日(金曜日)および7日(土曜日)の負荷が“40%”という情報が設定される。
これは、仮想マシンVM6につき、1日(日曜日)〜5日(木曜日)までの22時台においてCPU使用率が10%であることを示す。また、6日(金曜日)および7日(土曜日)の同時間帯においてCPU使用率が40%であることを示す。すなわち、VM6は、週末の夜中の時間帯に負荷が高い。リソース管理テーブル111によれば、VM6の用途は週末向け業務サーバであり、週末の、特に夜間に利用されることが多いことが要因と考えられる。
図9は、負荷カレンダーのデータ構造例を示す第3の図である。図9では、負荷カレンダー112中、今月の負荷に関するデータの一部を例示している。また、図9では、来月の負荷カレンダーの一部も例示している。
例えば、負荷カレンダー112中、今月の負荷に関するデータの一部を例示している。例えば、負荷カレンダー112には、時刻が“9:00−9:59”、VM名が“VM4”、29日(日曜日)の負荷が“0%”、30日(月曜日)および31日(火曜日)の負荷が“60%”という情報が設定される。
これは、仮想マシンVM4につき、29日(日曜日)の9時台においてCPU使用率が0%と予測されていることを示す。また、30日(月曜日)および31日(火曜日)の同時間帯においてCPU使用率が60%と予測されていることを示す。
更に、負荷カレンダー112には、来月のカレンダーの一部として、来月の日付の欄が設けられている。来月のカレンダーには、今月のカレンダーの負荷データに基づいて負荷の予測値が設定される。
次に、以上の構成の管理サーバ100の処理手順を説明する。
図10は、負荷予測処理を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
(ステップS11)負荷データ収集部121は、前回の測定データ収集処理から一定時間が経過したか否かを判定する。一定時間が経過した場合、処理をステップS12に進める。一定時間が経過していない場合、待機する(処理をステップS11に進める)。負荷データ収集部121が測定データを収集する周期は運用に応じて決定できる。例えば、1時間とする。負荷カレンダー112は、1時間おきに測定データを取得する場合の例である。それ以外にも、10分、30分、1日などとしてもよい。また、測定データは、ある時点の瞬間値とする他、所定間隔で取得したデータの平均値としてもよい。
(ステップS12)負荷データ収集部121は、実行サーバ200,200a,200bのハイパーバイザに各仮想マシンの負荷を問い合わせる。負荷データ収集部121は、各ハイパーバイザから測定データを取得する。
(ステップS13)負荷データ収集部121は、仮想マシン情報記憶部110に記憶された負荷カレンダー112の当日の現時間帯に取得した測定データを格納する。
(ステップS14)負荷データ収集部121は、ステップS13のデータ格納処理が1回目のデータ格納であったか否かを判定する。1回目である場合、処理をステップS15に進める。1回目でない場合、処理をステップS16に進める。ここで、「データ格納処理が1回目である」とは、負荷カレンダー112に設定された現時間帯のデータが無い状態(当該時間帯において予測データが未格納の状態)で設定することを意味する。
(ステップS15)負荷予測部122は、負荷カレンダー112の本日以降の同一月内、同一時間帯の欄に、取得した各仮想マシンの測定データを格納する。ここで格納されたデータは、本日以外の日の予測データである。そして、処理をステップS11に進める。例えば、負荷予測部122は1日(日曜日)の9時に1回目のVM1の測定データを取得したとする。すると、負荷予測部122は、1日“9:00−9:59”に測定データを格納するとともに、VM1について、1日から31日の“9:00−9:59”にも、取得した測定データを予測データとして格納する。VM2〜VM6についても同様である。
(ステップS16)負荷予測部122は、前に格納されていた予測データと測定データとの差が大きいか否かを判定する。差が大きい場合、処理をステップS17に進める。差が大きくない場合、処理をステップS11に進める。差が大きいか否かは、測定データが予測データの所定パーセント以内にあるか否かによって判定できる。当該パーセンテージを運用に応じて、例えば5%、10%、20%などと設定できる。
(ステップS17)負荷予測部122は、本日が休日であるか否かを判定する。休日である場合、処理をステップS18に進める。休日でない場合、処理をステップS19に進める。休日とは、土曜日、日曜日、祝日および年末年始などである。
(ステップS18)負荷予測部122は、負荷カレンダー112の本日以降の同一月内、同一時間帯の欄に、取得した各仮想マシンの測定データを、予測データとして格納する。そして、処理をステップS11に進める。
(ステップS19)負荷予測部122は、本日が月曜日であるか否かを判定する。月曜日である場合、処理をステップS20に進める。月曜日でない場合、処理をステップS21に進める。
(ステップS20)負荷予測部122は、負荷カレンダー112の本日以降の同一月内の平日の、同一時間帯に、取得した各仮想マシンの測定データを、予測データとして格納する。そして、処理をステップS11に進める。
(ステップS21)負荷予測部122は、負荷カレンダー112の本日以降の同一月内の同一曜日の同一時間帯に、取得した各仮想マシンの測定データを、予測データとして格納する。
(ステップS22)負荷予測部122は、監視を終了するか否かを判定する。監視終了する場合、負荷データ収集処理を終了する。監視を終了しない場合、処理をステップS11に進める。
このようにして、負荷データ収集部121は、実行サーバ200,200a,200bのハイパーバイザから定期的に各仮想マシンの測定データを取得する。負荷予測部122は、負荷データ収集部121が取得した測定データに基づき負荷カレンダー112を更新する。
負荷予測部122は、ステップS15で示したように最初に測定データを格納する際には、同月内の全ての日の同一時間帯に同一データを格納する。これにより、将来の同じ時間の負荷を予測する。このため、1日を経過すると負荷カレンダー112には、1か月分の予測データが格納されることになる。
また、負荷予測部122は、負荷カレンダー112に測定データを格納する際に、予測データが既に格納されていた場合には、予測データと測定データとの差異を検出する。差異が検出された場合、測定データに基づき当日に対応する本日以降の日の予測データを更新する。まとめると次の通りである。
(1)本日が休日であれば、本日以降の同月内で同一曜日、同一時間帯の予測データを、測定データに置き換える。
(2)本日が月曜日であれば、本日以降の同月内の平日で同一時間帯の予測データを、測定データに置き換える。
(3)本日が休日でもなく、月曜日でもなければ、本日以降の同月内で同一曜日、同一時間帯の予測データを、測定データに置き換える。
以上のように、予測データと測定データとで差異がある場合に、予測データを測定データに修正する。これにより、負荷カレンダー112に各仮想マシンの現在の利用状況を適正に反映できる。
なお、図10では、同月内において、負荷カレンダー112に予測データを設定し、また、当該予測データを修正する処理を説明した。このように月単位で負荷カレンダー112の設定を行う他、年単位で負荷カレンダー112の設定を行ってもよい。
次に、次月カレンダーの負荷データの設定処理を説明する。
図11は、次月の負荷カレンダーの作成処理を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
(ステップS31)負荷予測部122は、仮想マシン情報記憶部110に記憶された負荷カレンダー112を本日から逆順に1日遡る。
(ステップS32)負荷予測部122は、負荷データが格納済みであるか否かを判定する。格納済みである場合、処理をステップS34に進める。未格納である場合、処理をステップS33に進める。
(ステップS33)負荷予測部122は、次の週の同一曜日、同一時間帯の負荷データを現在参照中の日付に格納する。
(ステップS34)負荷予測部122は、今月の1日まで処理済か否かを判定する。1日目まで処理済の場合、処理をステップS35に進める。1日まで処理済でない場合、処理をステップS31に進める。
(ステップS35)負荷予測部122は、今月の負荷データを曜日換算して次月のカレンダーに格納する。例えば、今月の1日が日曜日で次月の1日が水曜日の場合、次のようにして曜日が同じ日同士(第1日曜同士、第2日曜同士など)で反映を行う(以下の日付以外の日付についても同様である)。
(1)今月の1日(日曜日)の負荷データを次月の5日(日曜日)に格納する。
(2)今月の2日(月曜日)の負荷データを次月の6日(月曜日)に格納する。
(3)今月の3日(火曜日)の負荷データを次月の7日(火曜日)に格納する。
(4)今月の4日(水曜日)の負荷データを次月の1日(水曜日)に格納する。
(ステップS36)負荷予測部122は、今月よりも来月の方が日数が多いか否かを判定する。来月の方が日数が多い場合、処理をステップS37に進める。今月の方が日数が多い場合、次月カレンダーの負荷データ設定処理を終了する。例えば、今月が30日まで、次月が31日までの場合には、来月の方が日数が多いと判定する。
(ステップS37)負荷予測部122は、次月のカレンダーの月末分のデータを補完する。なぜなら、今月より来月の方が日数が多い場合、ステップS35の処理では負荷データが未設定の日付が生じ得るためである。具体的には、負荷データ未格納の日付につき、前の週の同じ曜日の負荷データを格納する。例えば、31日の負荷データが未格納であれば、前の週の同じ曜日である24日の負荷データを31日に格納する。
このようにして、負荷予測部122は今月のカレンダーに基づき、次月のカレンダーに予め負荷データを設定する。ここで設定された負荷データは次月の予測データである。負荷予測部122は、次月に入って測定データが取得されると、図10と同様の処理により次月のカレンダーを測定データに基づいて更新する。
図12は、第2の実施の形態の配置替え処理を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
(ステップS41)配置管理部132は、前回の配置替え処理から一定時間が経過したか否かを判定する。一定時間が経過した場合、処理をステップS42に進める。一定時間が経過していない場合、待機する(処理をステップS41に進める)。予測値読込部131が配置替えを行う周期は運用に応じて決定できる。例えば、負荷データ収集部121による負荷データ収集処理と合わせて1時間とする。
(ステップS42)予測値読込部131は、仮想マシン情報記憶部110に記憶された負荷カレンダー112を参照して、次の時間帯の予測データを読み込む。配置管理部132は、仮想マシン情報記憶部110に記憶されたリソース管理テーブル111を参照して、負荷予測の合計で電源オフできる実行サーバがあるか否かを判定する。電源オフできるサーバがある場合、処理をステップS43に進める。電源オフできるサーバがない場合、処理をステップS45に進める。当該判定は、実行サーバ全体につき、予測される負荷合計と総リソース量とを比較することで行える。配置替えにより、実行サーバ1台分のリソース量だけ余裕ができれば、電源オフできる実行サーバがあると判定できる。
(ステップS43)配置管理部132は、高負荷が予測される仮想マシンが分散するよう配置替えすると共に、仮想マシンを片寄せする。仮想マシンの分散は、例えば各実行サーバ(電源オフ対象の実行サーバを除く)の負荷を平準化するように行う。そして、片寄せにより、仮想マシンが配置されない実行サーバをつくる。配置管理部132は、仮想マシンの配置替えに伴いリソース管理テーブル111を更新する。
(ステップS44)配置管理部132は、不要になった実行サーバ(仮想マシンが配置されない実行サーバ)の電源をオフにする。そして、処理をステップS41に進める。
(ステップS45)配置管理部132は、負荷予想の合計は、電源オンの実行サーバ全体の性能範囲内であるか否かを判定する。全体の性能範囲内でない場合、処理をステップS46に進める。全体の性能範囲内である場合、処理をステップS47に進める。当該判定は、ステップS42と同様に、電源オンの実行サーバ全体につき、予測される負荷合計と総リソース量とを比較することで行える。予測される負荷合計に対応するためのリソース量が現在の総リソース量を超えていれば、全体の性能範囲内でないと判定できる。
(ステップS46)配置管理部132は、電源オフの実行サーバの電源を投入する。そして、処理をステップS47に進める。
(ステップS47)配置管理部132は、仮想マシンを分散させて、全実行サーバで負荷が均一になるようにする。配置管理部132は、仮想マシンの配置替えに伴いリソース管理テーブル111を更新する。
(ステップS48)配置管理部132は、監視を終了するか否かを判定する。監視終了する場合、仮想マシンの配置替え処理を終了する。監視を終了しない場合、処理をステップS41に進める。
このように、配置管理部132は、次の時間帯の予測データに基づいて、仮想マシンの配置替えを行う。配置管理部132は、配置替えの結果、電源オフできる実行サーバがあれば、当該実行サーバを電源オフして省電力化を図る。
また、配置管理部132は、電源オンの実行サーバ全体では、次の時間帯で能力不足が予測されれば、電源オフされた実行サーバの電源をオンにして実行サーバ全体の能力を補強する。配置管理部132は、補強した上で仮想マシンの配置替えを行う。
なお、ステップS43,S47における仮想マシンの配置替えは、例えば次のような手順で行える。配置管理部132は、次の処理を移動元の実行サーバのハイパーバイザおよび移動先の実行サーバのハイパーバイザに指示する。(1)移動先でリソースを予約する。(2)移動元で仮想マシンに割り当てたメモリ領域のデータを、移動先で仮想マシンに割り当てたメモリ領域にコピーする。(3)移動元で仮想マシンを停止させ、移動元から移動先へ当該仮想マシンのCPU状態をコピーする。(4)移動先で仮想マシンを再開し、移動元でリソースを解放する。(5)移動先の仮想マシンでネットワーク設定(アドレス等)を更新する。そして、処理を終了する。
以上のように配置管理部132は、負荷予測部122による予測結果に基づいて、仮想マシンの配置替えを行う。これにより、仮想マシンの利用状況の変化に柔軟に対応して、仮想マシンの効率的な配置を行える。また、負荷が低い場合には、一部の実行サーバの電源をオフにして省電力を図れる。
更に、次の時間帯の負荷予測に応じて、予め実行サーバの電源をオンにして仮想マシンの配置替えを行う。ここで、例えば高負荷を検知してから実行サーバの電源をオンにすると、当該実行サーバの復電時間中に他の実行サーバで高負荷状態となり処理遅延が生じ得る。そこで、上記のように負荷予測に応じて予め実行サーバの電源をオンにしておけば、処理遅延の発生を抑制できる。
[第3の実施の形態]
以下、第3の実施の形態を図面を参照して詳細に説明する。前述の第2の実施の形態との相違点について主に説明し、同様の事項に関しては説明を省略する。
第2の実施の形態では、配置管理部132は、一定時間間隔(例えば、1時間ごと)に仮想マシンの配置替えを行うものとした。しかしながら、一定時間間隔で配置替えを行うとすると、その間隔ごとに仮想マシンの移動が発生する可能性がある。このため、配置替えの間隔が短いと仮想マシンの移動回数が多くなる可能性がある。
一方、仮想マシンの移動には、移動処理自体を実行するための負荷を伴う。このため、仮想マシンの移動回数は少ない方が好ましい。そこで、第3の実施の形態では、仮想マシンの移動回数が少なくなるように配置替えを行う。
ここで、第3の実施の形態の情報処理システムの構成は、図2で説明した第2の実施の形態の情報処理システムの構成と同様であるため、説明を省略する。また、第3の実施の形態の管理サーバの機能構成は、図5で説明した第2の実施の形態の管理サーバ100の機能構成と同様であるため、説明を省略する。第3の実施の形態の管理サーバについても、管理サーバ100と同一の符号を用いて各構成を示すものとする。
以下、第3の実施の形態の仮想マシンの配置替え処理の手順を説明する。以下に示す処理は、例えば、図12のステップS43,S47に適用できる。
図13は、第3の実施の形態の配置替え処理を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
(ステップS51)配置管理部132は、全実行サーバ(電源オフ対象を除く)に対して、仮想マシンの配置パターンを全て算出する。配置パターンとは、仮想マシン1つに着目して、現在の配置から当該仮想マシンを移動させた場合、および移動させない場合にとり得る仮想マシン配置のパターンである。例えば、実行サーバ200,200a,200b上で仮想マシンVM1〜VM6を移動させる配置パターンの数は、3(実行サーバ数)×6(仮想マシン数)=18通りである。
(ステップS52)配置管理部132は、ステップS51で取得した配置パターンから1つを選択する。
(ステップS53)配置管理部132は、仮想マシン情報記憶部110に記憶された負荷カレンダー112に基づいて、当該配置パターンにより月末までの仮想マシンの移動をシミュレートする。配置管理部132は、シミュレートの結果により当該配置パターンを選択した場合の仮想マシンの移動回数(割り当て変更の回数)を算出する。配置管理部132は、算出した移動回数を配置パターンに対応付けて仮想マシン情報記憶部110に格納する。
(ステップS54)配置管理部132は、ステップS51で取得した全配置パターンでシミュレートによる仮想マシンの移動回数を算出したか判定する。全配置パターンで移動回数を算出した場合、処理をステップS55に進める。移動回数を未算出の配置パターンがある場合、処理をステップS52に進める。
(ステップS55)配置管理部132は、全配置パターンのうち移動回数が最小の配置パターンを特定する。
(ステップS56)配置管理部132は、特定した配置パターンにより仮想マシンの配置替えを行う。
このようにして、配置管理部132は、移動回数が最小となるような配置パターンを特定して仮想マシンの配置替えを行う。これにより、仮想マシンの移動処理に伴う負荷の増大を抑制できる。
なお、上記ステップS51において、例えば、実行サーバや仮想マシンの数が多い場合など全配置パターンで移動回数を算出すると処理負荷に影響を与えるおそれもある。そこで、ランダムに選択した幾つかの配置パターンでシミュレーションを行い、移動回数を見積ることで、移動回数の少ない配置パターンを近似的に求めることも考えられる。このようにすれば、全配置パターンで移動回数を算出するよりも処理負荷を軽減できる。
[第4の実施の形態]
以下、第4の実施の形態を図面を参照して詳細に説明する。前述の第2,第3の実施の形態との相違点について主に説明し、同様の事項に関しては説明を省略する。
第2の実施の形態では、高負荷の実行サーバが発生しないよう仮想マシンの配置替えを行うようにした。しかしながら、仮想マシンの業務によっては、仮想マシンが予想外の高負荷になる場合がある。例えば、仮想マシンで新しいサービスを開始し、そのサービスを多数のユーザが利用開始した場合などである。
その場合、予想外に高負荷になった仮想マシンを移動すると、移動処理に時間を要したり、移動後に高負荷の仮想マシンが一時的に利用不可になったりする、などの弊害が生ずるおそれがある。したがって、このように予想外に高負荷になった仮想マシンが発生した場合には、当該仮想マシン以外の仮想マシンを他の実行サーバに移動させる方が好ましい。そこで、第4の実施の形態では、予想外の高負荷を検出した仮想マシン以外の仮想マシンの配置替えを行う。
ここで、第4の実施の形態の情報処理システムの構成は、図2で説明した第2の実施の形態の情報処理システムの構成と同様であるため、説明を省略する。また、第4の実施の形態の管理サーバの機能構成は、図5で説明した第2の実施の形態の管理サーバ100の機能構成と同様であるため、説明を省略する。第4の実施の形態の管理サーバについても、管理サーバ100と同一の符号を用いて各構成を示すものとする。
以下、第4の実施の形態の仮想マシンの配置替え処理の手順を説明する。本処理は、図10で説明した第2の実施の形態の負荷データ収集処理と並行して実行できる。
図14は、第4の実施の形態の配置替え処理を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
(ステップS61)負荷データ収集部121は、実行サーバ200,200a,200bから測定データを取得した際に、仮想マシンの高負荷を検知する。負荷データ収集部121は、例えば、負荷カレンダー112に設定された同日、同時間帯の予測データを超えた場合に、当該仮想マシンの高負荷を検知する。または、測定データが予め定められた閾値を超えた場合に、当該仮想マシンの高負荷を検知してもよい。この検知処理は、例えば、図10のステップS16と並行して行える。
(ステップS62)負荷データ収集部121は、測定データが予測データに対して所定割合(例えば、30%や40%程度)以上、差があるか否かを判定する。所定割合以上の差がある場合、処理をステップS63に進める。所定割合以上の差がない場合、処理をステップS64に進める。
(ステップS63)負荷予測部122は、当該仮想マシンの次の時間帯の予測データを、取得した測定データに置換する。
(ステップS64)配置管理部132は、高負荷を検知した仮想マシンを実行する実行サーバで負荷の最も低い仮想マシンを1つ選択する。
(ステップS65)配置管理部132は、当該実行サーバ以外の他の実行サーバを1つ選択する。例えば、実行サーバ単体の負荷が最も低い実行サーバを選択する。
(ステップS66)配置管理部132は、他の実行サーバに選択した仮想マシンの負荷を加算する。
(ステップS67)配置管理部132は、他の実行サーバが高負荷にならないか否か判定する。高負荷にならない場合、処理をステップS68に進める。高負荷になる場合、処理をステップS65に進める。高負荷であるか否かは、例えば、他の実行サーバの負荷が閾値以上になるか否かにより判定できる。
(ステップS68)配置管理部132は、他の実行サーバに選択した仮想マシンを配置替えする。
(ステップS69)配置管理部132は、高負荷と検知された仮想マシンを実行する実行サーバ単体の負荷を取得する。
(ステップS70)配置管理部132は、当該実行サーバの能力に余裕があるか否かを判定する。余裕がある場合、仮想マシンの配置替え処理を終了する。余裕がない場合、処理をステップS64に進める。配置管理部132は、例えば、実行サーバ単体としての負荷が一定以下に下がった場合に、当該実行サーバに余裕ができたと判定する。
このようにして、配置管理部132は、予想外に高負荷となった仮想マシンが検出された場合には、当該実行サーバの能力に余裕ができるまで、その仮想マシン以外の仮想マシンの配置替えを行う。これにより、高負荷となった仮想マシンを移動させずに済むので、仮想マシンの移動に伴う処理負荷を一層軽減することができる。
更に、負荷予測部122は、予想外に高負荷となった仮想マシンが検出された場合には、次の時間帯の予測データを、取得した測定データで置き換える。このようにする理由は次の通りである。
図10で示した第2の実施の形態の負荷データ収集処理では、同一曜日の同一時間に将来の予測データとして測定データを格納している。このため、予想外に高負荷が発生した仮想マシンの次の時間帯の予測データは、低いままの可能性がある。すると、現在の高負荷状態が次の時間帯まで継続した場合に、次の時間帯の測定データを収集した際、測定データと予測データとの差異が検出される可能性が高くなる。このため、次の時間帯において、高負荷状態の仮想マシンが現在の実行サーバから別の実行サーバに移動されてしまうおそれがある。
そこで、上記のように、予想外に高負荷となった仮想マシンが検出された場合には、次の時間帯の予測データを、取得した測定データで置き換える。これによって、高負荷状態が次の時間帯まで継続されたとしても、当該仮想マシンが別の実行サーバへ移動されることを抑制できる。
なお、第4の実施の形態の場合、次の時間帯までに、当該仮想マシンの負荷が低下して標準に戻ることが考えられる。その場合、次の時間帯で測定データを取得したタイミングで、測定データと予測データとの間で差異が検出され得る。その際、当該仮想マシンは別の実行サーバへ移動され得る。この場合には、当該仮想マシンは高負荷状態ではないため、当該仮想マシンを移動させることによる処理遅延が生じる可能性は低いと考えられる。
1 情報処理装置
1a 記憶手段
1b 割り当て手段
1c 予測修正手段
2 コンピュータ
2a,2b 仮想マシン

Claims (8)

  1. 第1のタイミングおよび第2のタイミングのそれぞれにおける仮想マシンの負荷の予測を示す予測負荷を記憶する記憶手段と、
    前記予測負荷に基づいて、前記仮想マシンを実行するコンピュータの割り当てを行う割り当て手段と、
    前記第1のタイミングにおける前記予測負荷と、前記第1のタイミングで測定された負荷との間の差異が閾値を超える場合、前記測定された負荷に基づいて、前記第1のタイミングより後の前記第2のタイミングにおける前記予測負荷を修正する予測修正手段と、
    を有することを特徴とする情報処理装置。
  2. 前記第2のタイミングは、前記第1のタイミングと曜日および時間帯の少なくとも一方が共通するタイミングであることを特徴とする請求項1記載の情報処理装置。
  3. 前記予測修正手段は、前記予測負荷と前記測定された負荷との間の差異が前記閾値を超える場合、前記第2のタイミングに加えて、前記第1のタイミングが属する時間帯に続く第3のタイミングにおける前記予測負荷を修正することを特徴とする請求項2記載の情報処理装置。
  4. 前記割り当て手段は、前記予測負荷に基づいて、将来の各タイミングにおける前記割り当ての変更の発生を予測し、前記割り当ての変更の回数が最も小さくなるように、現在の割り当てを決定することを特徴とする請求項1記載の情報処理装置。
  5. 情報処理装置が実行する仮想マシン管理方法であって、
    第1のタイミングおよび第2のタイミングのそれぞれにおける仮想マシンの負荷の予測を示す予測負荷を記憶する記憶手段を参照し、
    前記第1のタイミングにおける前記予測負荷と前記第1のタイミングで測定された負荷との間の差異が閾値を超える場合、前記測定された負荷に基づいて、前記第1のタイミングより後の前記第2のタイミングにおける前記予測負荷を修正し、
    修正された前記予測負荷に基づいて、前記仮想マシンを実行するコンピュータの割り当てを行う、
    ことを特徴とする仮想マシン管理方法。
  6. コンピュータに、
    第1のタイミングおよび第2のタイミングのそれぞれにおける仮想マシンの負荷の予測を示す予測負荷を記憶する記憶手段を参照し、
    前記第1のタイミングにおける前記予測負荷と前記第1のタイミングで測定された負荷との間の差異が閾値を超える場合、前記測定された負荷に基づいて、前記第1のタイミングより後の前記第2のタイミングにおける前記予測負荷を修正し、
    修正された前記予測負荷に基づいて、前記仮想マシンを実行するコンピュータの割り当てを行う、
    処理を実行させることを特徴とする仮想マシン管理プログラム。
  7. 第1のタイミングおよび第2のタイミングのそれぞれにおける仮想マシンの負荷の予測を示す予測負荷を記憶する記憶手段と、
    前記予測負荷に基づいて、前記仮想マシンを実行するコンピュータの割り当てを行う割り当て手段と、
    前記第1のタイミングにおける前記予測負荷と、前記第1のタイミングで測定された負荷との間のずれを検出すると、前記測定された負荷に基づいて、前記第1のタイミングより後の前記第2のタイミングにおける前記予測負荷を修正する予測修正手段と、
    を有し、
    前記割り当て手段は、前記予測負荷に基づいて、将来の各タイミングにおける前記割り当ての変更の発生を予測し、前記割り当ての変更の回数が最も小さくなるように、現在の割り当てを決定する、
    ことを特徴とする情報処理装置。
  8. コンピュータに、
    第1のタイミングおよび第2のタイミングのそれぞれにおける仮想マシンの負荷の予測を示す予測負荷を記憶する記憶手段を参照し、
    前記第1のタイミングにおける前記予測負荷と前記第1のタイミングで測定された負荷との間のずれを検出すると、前記測定された負荷に基づいて、前記第1のタイミングより後の前記第2のタイミングにおける前記予測負荷を修正し、
    修正された前記予測負荷に基づいて、将来の各タイミングにおける前記仮想マシンを実行するコンピュータの割り当ての変更の発生を予測し、前記割り当ての変更の回数が最も小さくなるように、現在の割り当てを決定する、
    処理を実行させることを特徴とする仮想マシン管理プログラム。
JP2011043708A 2011-03-01 2011-03-01 情報処理装置、仮想マシン管理方法および仮想マシン管理プログラム Active JP5664339B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011043708A JP5664339B2 (ja) 2011-03-01 2011-03-01 情報処理装置、仮想マシン管理方法および仮想マシン管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011043708A JP5664339B2 (ja) 2011-03-01 2011-03-01 情報処理装置、仮想マシン管理方法および仮想マシン管理プログラム

Publications (2)

Publication Number Publication Date
JP2012181647A JP2012181647A (ja) 2012-09-20
JP5664339B2 true JP5664339B2 (ja) 2015-02-04

Family

ID=47012800

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011043708A Active JP5664339B2 (ja) 2011-03-01 2011-03-01 情報処理装置、仮想マシン管理方法および仮想マシン管理プログラム

Country Status (1)

Country Link
JP (1) JP5664339B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6455035B2 (ja) 2014-09-10 2019-01-23 富士通株式会社 負荷分散管理装置、制御方法およびプログラム
US9886083B2 (en) 2014-12-19 2018-02-06 International Business Machines Corporation Event-driven reoptimization of logically-partitioned environment for power management
JPWO2016178316A1 (ja) * 2015-05-07 2018-02-22 日本電気株式会社 計算機調達予測装置、計算機調達予測方法、及び、プログラム
WO2017006384A1 (ja) * 2015-07-03 2017-01-12 富士通株式会社 仮想マシン管理プログラム,仮想マシン管理装置および仮想マシン管理方法
JPWO2017099061A1 (ja) 2015-12-08 2018-09-27 日本電気株式会社 仮想マシンの配置を計画するための計画システム、計画方法、及び、計画用プログラムを記録する記録媒体
JP6750368B2 (ja) * 2016-07-25 2020-09-02 富士通株式会社 仮想マシン制御プログラム、仮想マシン制御方法および仮想マシン制御装置
KR102381570B1 (ko) * 2021-10-21 2022-04-01 오케스트로 주식회사 예측 불확실성이 반영된 배치 스케줄을 제공하는 가상 머신 배치 시스템 및 가상 머신 배치 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006228115A (ja) * 2005-02-21 2006-08-31 Ntt Comware Corp 負荷分散予測装置及び負荷分散制御方法並びにそのプログラム、負荷分散制御システムおよび当該システムにおける負荷分散制御方法
JP2010224756A (ja) * 2009-03-23 2010-10-07 Nec Corp 仮想マシン再配置システム、方法、プログラム、及び仮想マシン管理装置

Also Published As

Publication number Publication date
JP2012181647A (ja) 2012-09-20

Similar Documents

Publication Publication Date Title
JP5664339B2 (ja) 情報処理装置、仮想マシン管理方法および仮想マシン管理プログラム
Zhang et al. Faster and cheaper serverless computing on harvested resources
US9106589B2 (en) Predicting long-term computing resource usage
US9391922B2 (en) Computer workload redistribution schedule
US8745218B1 (en) Predictive governing of dynamic modification of program execution capacity
JP5673233B2 (ja) 情報処理装置、仮想マシン管理方法および仮想マシン管理プログラム
KR101351688B1 (ko) 서버 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체, 관리 서버, 가상 서버 배치 방법
JP5363646B2 (ja) 最適化仮想マシンマイグレーション機構
JP6455035B2 (ja) 負荷分散管理装置、制御方法およびプログラム
US8719415B1 (en) Use of temporarily available computing nodes for dynamic scaling of a cluster
US8260840B1 (en) Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
JP5324666B2 (ja) ストレージシステム
US20120144219A1 (en) Method of Making Power Saving Recommendations in a Server Pool
Xu et al. Cost-effective cloud server provisioning for predictable performance of big data analytics
US20120005683A1 (en) Data Processing Workload Control
US8909614B2 (en) Data access location selecting system, method, and program
US20210004000A1 (en) Automated maintenance window predictions for datacenters
CN114218012A (zh) 用于在集群系统中备份和恢复数据的方法和系统
JP2007102452A (ja) システム管理プログラムおよびシステム管理方法
Wolski et al. QPRED: Using quantile predictions to improve power usage for private clouds
Hoyer et al. Proactive dynamic resource management in virtualized data centers
US20200241911A1 (en) Automatically freeing up virtual machine resources based on virtual machine tagging
CN110806918A (zh) 基于深度学习神经网络的虚拟机运行方法和装置
Wei A novel energy optimized and workload adaptive modeling for live migration
Xu et al. Virtual machine migration strategy in federated cloud

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140701

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140826

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141124

R150 Certificate of patent or registration of utility model

Ref document number: 5664339

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150