以下に、図面を参照して、本発明にかかる管理装置、情報処理システムの制御方法、および管理装置の管理プログラムの実施の形態を詳細に説明する。
(実施の形態にかかる情報処理システムの制御方法の一実施例)
図1は、実施の形態にかかる情報処理システムの制御方法の一実施例を示す説明図である。管理装置100は、複数の情報処理装置を備える情報処理システムを管理するコンピュータである。情報処理装置は、計算資源を有するコンピュータである。情報処理装置は、例えば、データセンターにある物理マシンであり、例えば、サーバである。計算資源は、例えば、サーバのCPU(Central Processing Unit)リソースなどである。
ここで、IaaS(Infrastructure as a Service)等のデータセンター内の計算資源を利用させるサービスでは、1以上のVMをサーバ上で動作させる仮想化技術が適用されることがあり、情報処理装置のCPUリソースが1以上のVMそれぞれに割り当てられ、サービスの利用者によってVMが利用される。
この際、サービスの提供者とサービスの利用者との間でSLAが取り決められ、SLAを満たすようにサービスの利用者が望んでいるユーザビリティを確保することが求められる傾向がある。例えば、データセンターにあるサーバによって実行され、利用者によって利用されるVMに、利用者が望んでいるVMの性能を確保することができるCPUリソースを割り当てることにより、SLAを満たすようにすることが考えられる。
また、この際、サーバのCPUリソースの量には上限があるため、VMに割り当てるCPUリソースの量を抑制することが求められる傾向がある。また、データセンターの消費電力を低減することも求められる傾向がある。例えば、VMに割り当てるCPUリソースの量を抑制し、データセンターにあるサーバのうち、起動中のサーバの数を少なくすることにより、消費電力を低減することが考えられる。
このように、データセンターを利用させるサービスでは、SLAを満たしつつ、VMに割り当てられるCPUリソースの量を抑制し、データセンターの消費電力を低減することが好ましい。このため、SLAを満たしつつ、データセンターの消費電力を低減するように、VMに割り当てるCPUリソースの量を制御することが求められる。
しかしながら、利用者のVMの利用状況によってVMの処理負荷は変動するため、SLAを満たしつつデータセンターの消費電力を低減するために、VMに割り当てることが求められるCPUリソースの量も変動してしまう。このため、SLAを満たしつつデータセンターの消費電力を低減するように、VMに割り当てるCPUリソースの量を制御することは難しい。
例えば、現在のCPUリソースの動作状況を示すVMのCPU使用率などに応じて、SLAを満たしつつデータセンターの消費電力を低減するように、VMに割り当てるCPUリソースの量を制御する場合が考えられる。しかしながら、この場合、VMのCPU使用率が急激に変動すると、VMに割り当てたCPUリソースが不足し、SLAを満たさなくなる期間が発生してしまう可能性が大きくなる。
また、例えば、VMにサーバの実際のCPUリソースの量を超える仮想的なCPUリソースを割り当てるオーバコミットと呼ばれる技術を用いる場合が考えられる。しかしながら、この場合、VMが用いるCPUリソースの量が、サーバの実際のCPUリソースの量を超えると、VMの性能劣化を招くことがあり、データセンターを利用させるサービスではSLAを満たさなくなる可能性があるため、好ましくない場合がある。
さらに、例えば、将来のVMのCPU使用率を予測し、予測した結果に応じてVMに割り当てるCPUリソースの量を制御することにより、SLAを満たさない期間が発生することを抑制しつつ、データセンターの消費電力を低減する場合も考えられる。しかしながら、この場合、VMのCPU使用率の変動を精度よく予測することは難しく、VMに割り当てるCPUリソースの量を効率よく制御することは難しく、SLAを満たしつつデータセンターの消費電力を低減することは難しい。
また、例えば、回帰モデルを用いて将来のVMのCPU使用率を予測することにより、将来のVMのCPU使用率を予測する精度の向上を図る場合が考えられる。しかしながら、この場合、ユーザのVMの利用状況によっては、VMのCPU使用率が変動する兆候がなく、VMのCPU使用率が急激に変動することがあり、VMのCPU使用率の変動を精度よく予測することは難しくなってしまう。
そこで、本実施の形態では、計算資源の過去の動作状況についての周期的な変動傾向を考慮することにより、計算資源の将来の動作状況を精度よく予測することができる、情報処理システムの制御方法について説明する。
図1の例では、管理装置100は、情報処理装置の計算資源の動作状況についての動作状況情報を収集する。動作状況情報は、情報処理装置の記憶部が記憶している。動作状況情報は、複数の時点それぞれにおける計算資源の動作状況についての指標値を含む。動作状況情報は、例えば、計算資源の動作状況を評価する尺度である何らかのメトリックに関する指標値の時系列データである。メトリックは、例えば、計算資源がCPUリソースであれば、いずれかのVMのCPU使用率である。管理装置100は、例えば、情報処理装置から動作状況情報を受信する。
図1のグラフ101は、動作状況情報に対応し、計算資源の動作状況の時間変化を示す。図1のグラフ101は、例えば、動作状況情報として、計算資源の動作状況を評価する尺度である何らかのメトリックに関する指標値の時系列データを示す。横軸は時間を示し、縦軸はメトリックに関する指標値を示す。
管理装置100は、収集した動作状況情報と、所定閾値とに基づき、動作状況情報の周期性の有無を判断する。管理装置100は、図1に示すように、動作状況情報において、周期的な複数の時点における指標値の誤差が所定閾値以下であれば、動作状況情報について周期性を有すると判断する。管理装置100は、具体的には、曜日と時刻とが共通する複数の時点における指標値の誤差が所定値以下であれば、動作状況情報について周期性を有すると判断する。
管理装置100は、収集した動作状況情報について周期性を有すると判断した場合、周期性を有する過去の所定期間についての動作状況についての過去稼動情報を作成する。過去稼動情報は、過去の所定期間についての動作状況を代表する、1周期分と設定された単位期間における計算資源の動作状況についてのメトリックに関する指標値の変動傾向を示す。過去稼動情報は、1周期分と設定された単位期間における複数の時点それぞれにおける計算資源の動作状況についての何らかのメトリックに関する指標値の時系列データである。管理装置100は、例えば、動作状況情報に含まれる曜日と時刻とが共通する複数の時点における指標値の統計値を、単位期間内での同じ曜日と同じ時刻とにおける指標値に設定した過去稼動情報を作成する。
管理装置100は、収集した動作状況情報について周期性を有すると判断した場合、収集した動作状況情報と、作成した過去稼動情報とに基づいて、動作状況情報についての予測値を生成する。動作状況情報についての予測値は、例えば、何らかのメトリックに関する将来の指標値を予測した予測値である。管理装置100は、例えば、収集した動作状況情報と、作成した過去稼動情報とに基づいてJIT(Just−In−Time)モデリングを行い、動作状況情報についての予測値を生成する。
JITモデリングは、現在の時点の1以上のメトリックに関する指標値との間で所定条件を満たす過去の時点の1以上のメトリックに関する指標値に基づいて局所的な予測モデルを作成し、何らかのメトリックに関する指標値の予測値を生成する技術である。所定条件は、例えば、1以上のメトリックそれぞれに関する指標値についてのL2ノルムが所定値以下になるという条件である。
これにより、管理装置100は、計算資源の動作状況についての変動傾向を考慮して、計算資源の動作状況についての指標値の予測値を生成することができる。このため、管理装置100は、現在の時点で計算資源の動作状況が変動する兆候がなくても、将来の時点で計算資源の動作状況が急激に変動する前に、将来の時点での計算資源の動作状況についての指標値の予測値を精度よく予測することができる。
このため、管理装置100は、予測値に基づいて、SLAを満たしつつデータセンターの消費電力を効率よく低減することができるように、情報処理装置の計算資源を制御することができる。管理装置100は、例えば、予測値に基づいて、VMに割り当てる、情報処理装置のCPUリソースを制御することができる。また、管理装置100は、予測値に基づいて、消費電力を効率よく低減しづらくてもSLAを満たす確率が大きくなるように、情報処理装置の計算資源を制御してもよい。
また、管理装置100は、JITモデリングによって、データセンターのように物理現象が複雑な場所についても、将来の時点での計算資源の動作状況についての指標値の予測値を精度よく生成することができる。また、管理装置100は、JITモデリングによって、動作状況情報が非線形な特徴を有していても、将来の時点での計算資源の動作状況についての指標値の予測値を精度よく生成することができる。
(情報処理システム200の一例)
次に、図2を用いて、図1に示した管理装置100を適用した、情報処理システム200の一例について説明する。
図2は、情報処理システム200の一例を示す説明図である。図2において、情報処理システム200は、管理装置100と、情報処理装置201とを含む。情報処理システム200において、管理装置100と情報処理装置201とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
管理装置100は、情報処理装置201を管理するコンピュータである。管理装置100は、具体的には、サーバである。管理装置100は、データセンターにあるサーバである。管理装置100は、データセンターの外にあるサーバであってもよい。情報処理装置201は、計算資源を有するコンピュータである。情報処理装置201は、VMを実行することができる。情報処理装置201は、例えば、ホストOS(Operating System)によってVMを実行する。情報処理装置201は、例えば、ハイパーバイザによってVMを実行してもよい。情報処理装置201は、具体的には、サーバである。管理装置100は、いずれかの情報処理装置201と一体であってもよい。
(情報処理システム200の使用例)
次に、図3を用いて、情報処理システム200の使用例について説明する。
図3は、情報処理システム200の使用例を示す説明図である。図3において、管理装置100は、OS上で、JIT予測ソフトウェア300やインフラ管理ソフトウェア310を動作させる。管理装置100は、図5〜図10に後述する各種DB(DataBase)500〜1000を有する。情報処理装置201は、ハイパーバイザまたはホストOS上で、OSに対応するVMを動作させる。
管理装置100は、例えば、JIT予測ソフトウェア300によって、一定時間ごとに、情報処理装置201から動作状況情報を収集する。管理装置100は、例えば、VMのOS上のパフォーマンスモニタから性能情報を取得し、図5に後述する稼動状況DB500を更新する。
また、管理装置100は、例えば、ホストOS上のハードウェアイベント管理ソフトウェアからハードウェアイベント情報を取得し、図5に後述する稼動状況DB500を更新してもよい。また、管理装置100は、例えば、情報処理装置201のハイパーバイザAPIからハードウェアイベント情報を取得し、図5に後述する稼動状況DB500を更新してもよい。
これにより、管理装置100は、図5に後述する稼動状況DB500に記憶された、複数のメトリックのそれぞれのメトリックに関する指標値を含む動作状況情報を更新することができ、図5に後述する稼動状況DB500を最新の状態に更新することができる。また、管理装置100は、JIT予測ソフトウェア300によって、図5に後述する稼動状況DB500を参照して、動作状況情報についての予測値を生成することができる。
また、管理装置100は、インフラ管理ソフトウェア310によって、JIT予測ソフトウェア300が生成した計算資源の動作状況についての予測値に基づいて、情報処理装置201の計算資源を制御する。制御は、情報処理装置201によって実行されるVMへの計算資源の割り当ての変更である。制御は、情報処理装置201の計算資源への電源供給の変更であってもよい。これにより、管理装置100は、SLAを満たし、かつ、消費電力が低減されるようにすることができる。
(管理装置100のハードウェア構成例)
次に、図4を用いて、図2に示した情報処理システム200に含まれる管理装置100のハードウェア構成例について説明する。
図4は、管理装置100のハードウェア構成例を示すブロック図である。図4において、管理装置100は、CPU401と、メモリ402と、ネットワークI/F(Interface)403と、記録媒体I/F404と、記録媒体405とを有する。また、各構成部は、バス400によってそれぞれ接続される。
ここで、CPU401は、管理装置100の全体の制御を司る。メモリ402は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU401のワークエリアとして使用される。メモリ402に記憶されるプログラムは、CPU401にロードされることで、コーディングされている処理をCPU401に実行させる。
ネットワークI/F403は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F403は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F403には、例えば、モデムやLANアダプタなどを採用することができる。
記録媒体I/F404は、CPU401の制御にしたがって記録媒体405に対するデータのリード/ライトを制御する。記録媒体I/F404は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体405は、記録媒体I/F404の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体405は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体405は、管理装置100から着脱可能であってもよい。
管理装置100は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、タッチパネル、マイク、スピーカーなどを有してもよい。また、管理装置100は、記録媒体I/F404や記録媒体405を有していなくてもよい。
(情報処理装置201のハードウェア構成例)
情報処理装置201のハードウェア構成例は、管理装置100のハードウェア構成例と同様である。このため、情報処理装置201のハードウェア構成例については説明を省略する。
(稼動状況DB500の記憶内容)
次に、図5を用いて、稼動状況DB500の記憶内容について説明する。稼動状況DB500は、例えば、図4に示した管理装置100のメモリ402や記録媒体405などの記憶領域により実現される。稼動状況DB500は、VMごとに生成される。
図5は、稼動状況DB500の記憶内容の一例を示す説明図である。図5に示すように、稼動状況DB500は、時点と、計算資源の動作状況を評価するメトリクスとのフィールドを有する。メトリクスは、メトリックの集合である。稼動状況DB500は、メトリクスのフィールドとして、CPU使用率と、メモリ使用率と、ディスクコマンド数と、ネットワーク送受信量となどのフィールドを有する。稼動状況DB500は、時点ごとに各フィールドに情報を設定することにより、データセットがレコードとして記憶される。
時点のフィールドは、時点を示す情報、例えば、日付と曜日と時刻とが設定される。CPU使用率のフィールドは、ある時点のメトリックに関する指標値としてVMのCPU使用率が設定される。CPU使用率の単位は%である。メモリ使用率のフィールドは、ある時点のメトリックに関する指標値としてVMのメモリ使用率が設定される。メモリ使用率の単位は%である。
ディスクコマンド数のフィールドは、ある時点のメトリックに関する指標値としてディスクコマンド数が設定される。ディスクコマンド数の単位はNumである。ネットワーク送受信量のフィールドは、ある時点のメトリックに関する指標値としてネットワーク送受信量が設定される。ネットワーク送受信量の単位はByteである。
(周期性判断DB600の記憶内容)
次に、図6を用いて、周期性判断DB600の記憶内容について説明する。周期性判断DB600は、例えば、図4に示した管理装置100のメモリ402や記録媒体405などの記憶領域により実現される。周期性判断DB600は、VMごとに生成される。
図6は、周期性判断DB600の記憶内容の一例を示す説明図である。図6に示すように、周期性判断DB600は、1周期分と設定された単位期間内での時点と、計算資源の動作状況を評価するメトリクスとのフィールドを有する。周期性判断DB600は、メトリクスのフィールドとして、CPU使用率と、メモリ使用率と、ディスクコマンド数と、ネットワーク送受信量となどのフィールドを有する。周期性判断DB600は、時点ごとに各フィールドに情報を設定することにより、周期性判断情報がレコードとして記憶される。
時点のフィールドは、1周期分と設定された単位期間内での時点を示す情報、例えば、1周期分と設定された単位期間が1週間であれば、曜日と時刻とが設定される。CPU使用率のフィールドは、1周期分と設定された単位期間内でのある時点に対応する稼動状況DB500の1以上のレコードについて、CPU使用率に周期性があるか否かを示すフラグ情報が設定される。
フラグ情報は、単位期間内でのある時点に対応する稼動状況DB500の1以上のレコードのCPU使用率の最大値から最小値を減算した差分が、CPU使用率に対する閾値以下である場合、周期性があることを示す「所定範囲内」になる。一方で、フラグ情報は、単位期間内でのある時点に対応する稼動状況DB500の1以上のレコードのCPU使用率の最大値から最小値を減算した差分が、CPU使用率に対する閾値より大きい場合、周期性がないことを示す「所定範囲外」になる。
メモリ使用率のフィールドは、1周期分と設定された単位期間内でのある時点に対応する稼動状況DB500の1以上のレコードについて、メモリ使用率に周期性があるか否かを示すフラグ情報が設定される。
フラグ情報は、単位期間内でのある時点に対応する稼動状況DB500の1以上のレコードのメモリ使用率の最大値から最小値を減算した差分が、メモリ使用率に対する閾値以下である場合、周期性があることを示す「所定範囲内」になる。一方で、フラグ情報は、単位期間内でのある時点に対応する稼動状況DB500の1以上のレコードのメモリ使用率の最大値から最小値を減算した差分が、メモリ使用率に対する閾値より大きい場合、周期性がないことを示す「所定範囲外」になる。
ディスクコマンド数のフィールドは、1周期分と設定された単位期間内でのある時点に対応する稼動状況DB500の1以上のレコードについて、ディスクコマンド数に周期性があるか否かを示すフラグ情報が設定される。
フラグ情報は、単位期間内でのある時点に対応する稼動状況DB500の1以上のレコードのディスクコマンド数の最大値から最小値を減算した差分が、ディスクコマンド数に対する閾値以下である場合、周期性があることを示す「所定範囲内」になる。一方で、フラグ情報は、単位期間内でのある時点に対応する稼動状況DB500の1以上のレコードのディスクコマンド数の最大値から最小値を減算した差分が、ディスクコマンド数に対する閾値より大きい場合、周期性がないことを示す「所定範囲外」になる。
ネットワーク送受信量のフィールドは、1周期分と設定された単位期間内でのある時点に対応する稼動状況DB500の1以上のレコードについて、ネットワーク送受信量に周期性があるか否かを示すフラグ情報が設定される。
フラグ情報は、単位期間内でのある時点に対応する稼動状況DB500の1以上のレコードのネットワーク送受信量の最大値から最小値を減算した差分が、ネットワーク送受信量に対する閾値以下である場合、周期性があることを示す「所定範囲内」になる。一方で、フラグ情報は、単位期間内でのある時点に対応する稼動状況DB500の1以上のレコードのネットワーク送受信量の最大値から最小値を減算した差分が、ネットワーク送受信量に対する閾値より大きい場合、周期性がないことを示す「所定範囲外」になる。
(過去稼動状況DB700の記憶内容)
次に、図7を用いて、過去稼動状況DB700の記憶内容について説明する。過去稼動状況DB700は、例えば、図4に示した管理装置100のメモリ402や記録媒体405などの記憶領域により実現される。過去稼動状況DB700は、VMごとに生成される。
図7は、過去稼動状況DB700の記憶内容の一例を示す説明図である。図7に示すように、過去稼動状況DB700は、1周期分と設定された単位期間内での時点と、計算資源の動作状況を評価するメトリクスとのフィールドを有する。過去稼動状況DB700は、メトリクスのフィールドとして、CPU使用率と、メモリ使用率と、ディスクコマンド数と、ネットワーク送受信量となどのフィールドを有する。過去稼動状況DB700は、時点ごとに各フィールドに情報を設定することにより、周期データセットがレコードとして記憶される。
時点のフィールドは、1周期分と設定された単位期間内での時点を示す情報、例えば、1周期分と設定された単位期間が1週間であれば、曜日と時刻とが設定される。時点のフィールドは、日付が設定されなくてよい。CPU使用率のフィールドは、ある時点のメトリックに関する指標値としてVMのCPU使用率が設定される。CPU使用率の単位は%である。メモリ使用率のフィールドは、ある時点のメトリックに関する指標値としてVMのメモリ使用率が設定される。メモリ使用率の単位は%である。
ディスクコマンド数のフィールドは、ある時点のメトリックに関する指標値としてディスクコマンド数が設定される。ディスクコマンド数の単位はNumである。ネットワーク送受信量のフィールドは、ある時点のメトリックに関する指標値としてネットワーク送受信量が設定される。ネットワーク送受信量の単位はByteである。
(周期性判断閾値DB800の記憶内容)
次に、図8を用いて、周期性判断閾値DB800の記憶内容について説明する。周期性判断閾値DB800は、例えば、図4に示した管理装置100のメモリ402や記録媒体405などの記憶領域により実現される。周期性判断閾値DB800は、VMごとに生成される。
図8は、周期性判断閾値DB800の記憶内容の一例を示す説明図である。図8に示すように、周期性判断閾値DB800は、CPU使用率と、メモリ使用率と、ディスクコマンド数と、ネットワーク送受信量となどのフィールドを有する。周期性判断閾値DB800は、各フィールドに情報を設定することにより、周期性判断閾値情報がレコードとして記憶される。
CPU使用率のフィールドは、VMのCPU使用率に対する閾値が設定される。CPU使用率に対する閾値の単位は%である。メモリ使用率のフィールドは、VMのメモリ使用率に対する閾値が設定される。メモリ使用率に対する閾値の単位は%である。
ディスクコマンド数のフィールドは、ディスクコマンド数に対する閾値が設定される。ディスクコマンド数に対する閾値の単位はNumである。ネットワーク送受信量のフィールドは、ネットワーク送受信量に対する閾値が設定される。ネットワーク送受信量に対する閾値の単位はByteである。
(計算資源管理DB900の記憶内容)
次に、図9を用いて、計算資源管理DB900の記憶内容について説明する。計算資源管理DB900は、例えば、図4に示した管理装置100のメモリ402や記録媒体405などの記憶領域により実現される。
図9は、計算資源管理DB900の記憶内容の一例を示す説明図である。図9に示すように、計算資源管理DB900は、物理マシンと、CPUと、MEMORYとのフィールドを有する。計算資源管理DB900は、物理マシンごとに各フィールドに情報を設定することにより、計算資源管理情報がレコードとして記憶される。
物理マシンのフィールドは、VMを実行可能な情報処理装置201のアドレスが設定される。CPUのフィールドは、その情報処理装置201が有するCPUの数が設定される。MEMORYのフィールドは、その情報処理装置201が有するメモリの記憶領域の大きさが設定される。これにより、計算資源管理DB900は、情報処理装置201の計算資源をVMに割り当てることができるか否かを判定可能にすることができる。
(対応関係管理DB1000の記憶内容)
次に、図10を用いて、対応関係管理DB1000の記憶内容について説明する。対応関係管理DB1000は、例えば、図4に示した管理装置100のメモリ402や記録媒体405などの記憶領域により実現される。
図10は、対応関係管理DB1000の記憶内容の一例を示す説明図である。図10に示すように、対応関係管理DB1000は、物理マシンと、仮想マシンとのフィールドを有する。対応関係管理DB1000は、物理マシンごとに各フィールドに情報を設定することにより、対応関係管理情報がレコードとして記憶される。
物理マシンのフィールドは、VMを実行可能な情報処理装置201のアドレスが設定される。仮想マシンのフィールドは、情報処理装置201に割り当てられたVMのアドレスが設定される。これにより、対応関係管理DB1000は、情報処理装置201に割り当てられたVMを特定可能にすることができる。
(管理装置100の機能的構成例)
次に、図11を用いて、管理装置100の機能的構成例について説明する。
図11は、管理装置100の機能的構成例を示すブロック図である。管理装置100は、記憶部1100と、収集部1101と、決定部1102と、判断部1103と、作成部1104と、予測部1105と、管理部1106とを含む。
記憶部1100は、例えば、図4に示したメモリ402や記録媒体405などの記憶領域によって実現される。収集部1101〜管理部1106は、制御部となる機能である。収集部1101〜管理部1106は、具体的には、例えば、図4に示したメモリ402や記録媒体405などの記憶領域に記憶されたプログラムをCPU401に実行させることにより、または、ネットワークI/F403により、その機能を実現する。各機能部の処理結果は、例えば、図4に示したメモリ402や記録媒体405などの記憶領域に記憶される。
記憶部1100は、動作状況情報、過去稼動情報、動作状況情報の周期性の有無を判断する際に用いられる閾値、VMに割り当てられた計算資源の情報などを記憶する。計算資源は、物理マシンにおける処理に用いられる資源であり、例えば、VMによって用いられる。計算資源は、例えば、サーバのCPUリソース、メモリリソース、通信リソースなどである。
動作状況情報は、複数の時点それぞれにおける計算資源の動作状況についての指標値を含む情報である。動作状況情報は、例えば、過去の対象期間内での所定間隔の複数の時点それぞれにおける情報処理装置201の計算資源の動作状況についての指標値を含む。動作状況情報は、具体的には、計算資源の動作状況を評価する尺度である何らかのメトリックに関する指標値の時系列データである。動作状況情報は、例えば、図5に示した稼動状況DB500によって実現される。
過去稼動情報は、1周期分と設定された単位期間内での所定間隔の複数の時点それぞれに対応する、動作状況情報に含まれる動作状況についての指標値に関する統計値を含む情報である。過去稼動情報は、例えば、過去の所定期間についての動作状況を代表する、1周期分と設定された単位期間における計算資源の動作状況についてのメトリックに関する指標値の変動傾向を示す。過去稼動情報は、例えば、1周期分と設定された単位期間における複数の時点それぞれにおける計算資源の動作状況についての何らかのメトリックに関する指標値の時系列データである。
過去稼動情報は、具体的には、1周期分と設定された1週間における複数の時点それぞれとの間で曜日と時刻とが共通する、動作状況情報に含まれる計算資源の動作状況についての指標値の統計値を含む。過去稼動情報は、例えば、図7に示した過去稼動状況DB700によって実現される。
記憶部1100は、例えば、図5〜図10に示した各種DBなどを記憶する。これにより、記憶部1100は、収集部1101〜管理部1106が処理に用いる情報を参照可能にしておくことができる。
収集部1101は、複数の情報処理装置201の記憶部がそれぞれ記憶する自装置の計算資源の動作状況についての動作状況情報を収集する。情報処理装置201の記憶部は、例えば、情報処理装置201のメモリである。
複数の情報処理装置201は、それぞれ、計算資源を有する。情報処理装置201の計算資源は、例えば、VMに割り当て可能な計算資源である。収集部1101は、例えば、情報処理装置201から動作状況情報を受信する。収集部1101は、情報処理装置201から動作状況情報を生成するための情報を受信し、動作状況情報を生成してもよい。これにより、収集部1101は、動作状況情報についての予測値を生成するために用いられる動作状況情報を収集し、記憶部1100に記憶しておくことができる。
決定部1102は、動作状況情報に基づいて閾値を決定する。閾値は、判断部1103が周期性の有無を判断する際に用いる値である。決定部1102は、例えば、動作状況情報の最大値と最小値の差分に基づいて閾値を決定する。決定部1102は、具体的には、対象期間の全部または一部における指標値の最大値と最小値との差分を所定値で除算した値を、閾値に決定する。これにより、決定部1102は、利用者の能力に依存せず閾値を決定することができ、管理装置100の利便性の向上を図ることができる。決定部1102は、指標値の最大値と最小値の差分により、指標値の変動が比較的大きい場合には閾値が比較的大きくなり、指標値の変動が比較的小さい場合には閾値が比較的小さくなるようにすることができる。このため、決定部1102は、周期性の有無を判定する精度の向上を図ることができる。
決定部1102は、具体的には、1周期分と設定された単位期間で対象期間を分割した複数の部分期間それぞれにおける指標値の最大値と最小値との差分に関する統計値を所定値で除算した値を、閾値に決定してもよい。統計値は、平均値や中央値や最頻値などである。これにより、決定部1102は、利用者の能力に依存せず閾値を決定することができ、管理装置100の利便性の向上を図ることができる。決定部1102は、指標値の最大値と最小値の差分に関する統計値を用いるため、指標値の最大値と最小値とにノイズが含まれても、周期性の有無を判定する精度の向上を図ることができる。
決定部1102は、動作状況情報に基づいて単位期間を設定してもよい。
判断部1103は、動作状況情報と、閾値とに基づき、動作状況情報の周期性の有無を判断する。閾値は、共通の要素を有する複数の時点における指標値の変動幅が、誤差の範囲であるか否かを判定する境界を示す値である。閾値は、例えば、同じ曜日の同じ時刻である複数の時点における指標値の変動幅が、誤差の範囲であるか否かを判定する境界を示す値である。
判断部1103は、例えば、1周期分と設定された単位期間内での所定間隔の複数の時点それぞれに対応する、動作状況情報に含まれる指標値についての最大値と最小値との差分が、閾値以下であるか否かを判断する。そして、判断部1103は、1周期分と設定された単位期間内での所定間隔の複数の時点それぞれについて判断した結果に基づいて、動作状況情報の周期性の有無を判断する。判断部1103は、具体的には、1周期分と設定された単位期間内での所定間隔の複数の時点のうち、差分が閾値以下であると判断された数が一定以上であれば、動作状況情報の周期性があると判断する。
作成部1104は、動作状況情報について周期性を有すると判断した場合、周期性を有する過去の所定期間についての動作状況についての過去稼動情報を作成する。作成部1104は、例えば、1周期分と設定された単位期間内での所定間隔の複数の時点それぞれに対応する、動作状況情報に含まれる動作状況についての指標値に関する統計値を算出し、算出した統計値を含む過去稼動情報を作成する。作成部1104は、具体的には、動作状況情報に含まれる曜日と時刻とが共通する複数の時点における指標値の統計値を、単位期間内での同じ曜日と同じ時刻とにおける指標値に設定した過去稼動情報を作成する。
予測部1105は、動作状況情報について周期性を有すると判断した場合、動作状況情報と、過去稼動情報とに基づいて、動作状況情報についての予測値を生成する。予測値は、計算資源の将来の動作状況を示す指標値であり、何らかのメトリックに関する指標値である。
予測部1105は、例えば、対象期間内での複数の時点それぞれについて、当該時点における指標値および当該時点の所定時間後の時点に対応する単位期間内での時点に対応する統計値を対応付ける。次に、予測部1105は、所定時点について対応付けられた指標値および統計値の組み合わせとの間で所定条件を満たす、所定時点より前の時点について対応付けられた指標値および統計値の組み合わせを特定する。
所定条件は、所定時点について対応付けられた指標値および統計値のそれぞれと、所定時点より前の時点について対応付けられた指標値および統計値のそれぞれとの差分についてのL2ノルムが所定値以下であるという条件である。そして、予測部1105は、特定した組み合わせに基づいて動作状況情報についての予測値を生成する。予測部1105は、具体的には、JITモデリングを用いて予測値を生成する。これにより、予測部1105は、将来の計算資源の動作状況についての指標値の予測値を生成することができる。
予測部1105は、動作状況情報について周期性を有さないと判断した場合、動作状況情報のみに基づいて、動作状況情報についての予測値を生成する。予測部1105は、例えば、JITモデリングを用いて、予測値を生成する。これにより、予測部1105は、将来の計算資源の動作状況についての指標値の予測値を生成することができる。
管理部1106は、予測部1105が生成した動作状況情報についての予測値と、予め定められた基準値とに基づき、情報処理装置201の計算資源を管理する。基準値は予め定められた、VMに関する情報処理装置201の計算資源の動作状況についての指標値である。
管理部1106は、予測値が基準値よりも使用度合いが大きいことを示す指標値である場合、VMに割り当てる情報処理装置201の計算資源を増加させる。管理部1106は、VMに割り当てる情報処理装置201の計算資源を増加させるための制御信号を情報処理装置201に出力する。これにより、管理部1106は、情報処理装置201の計算資源を制御することができ、SLAを満たしつつ、データセンターの消費電力の低減化を図ることができる。
管理部1106は、予測値が基準値よりも使用度合いが小さいことを示す指標値である場合、VMに割り当てる情報処理装置201の計算資源を減少させる。管理部1106は、例えば、VMに割り当てる情報処理装置201の計算資源を減少させるための制御信号を情報処理装置201に出力する。これにより、管理部1106は、情報処理装置201の計算資源を制御することができ、SLAを満たしつつ、データセンターの消費電力の低減化を図ることができる。
管理部1106は、情報処理装置201の計算資源が割り当てられたVMがなければ、情報処理装置201への電源供給の停止を行う。管理部1106は、例えば、情報処理装置201への電源供給の停止を行うための制御信号を情報処理装置201に出力する。これにより、管理部1106は、情報処理装置201の計算資源を制御することができ、SLAを満たしつつ、データセンターの消費電力の低減化を図ることができる。
管理部1106は、生成した予測値、VMに割り当てた計算資源の情報などを出力してもよい。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F403による外部装置への送信、または、メモリ402や記録媒体405などの記憶領域への記憶である。これにより、管理部1106は、利用者にデータセンター内の計算資源の動作状況を把握させることができる。
(管理装置100の機能的構成の具体例)
次に、図12を用いて、管理装置100の機能的構成の具体例について説明する。
図12は、管理装置100の機能的構成の具体例を示すブロック図である。図12に示すように、管理装置100は、JIT予測ソフトウェア300によって、DB1201と、メトリクス収集部1202と、閾値決定部1203と、周期性判断部1204と、データセット作成部1205とを管理する。
また、管理装置100は、JIT予測ソフトウェア300によって、作成要求受付部1206と、タイマー部1207と、近傍データセット検索部1208と、変数選択部1209と、予測値計算部1210とを管理する。また、管理装置100は、JIT予測ソフトウェア300によって、制御対象選択部1211と、制御方針決定部1212とを管理する。また、管理装置100は、インフラ管理ソフトウェア310によって、制御受取部1221と、制御指示部1222とを管理する。
DB1201は、図5〜図10に示した各種DBを記憶する。メトリクス収集部1202は、情報処理装置201から計算資源の動作状況に関する運用データを受信する。メトリクス収集部1202は、受信した運用データに基づいて、複数のメトリックのそれぞれのメトリックに関する指標値の時系列データを生成して、動作状況情報としてDB1201に記憶する。
閾値決定部1203は、動作状況情報に基づいて、動作状況情報の周期性の有無を判断する際に用いられる閾値を決定し、DB1201に記憶する。周期性判断部1204は、DB1201の動作状況情報の周期性の有無を、DB1201の閾値を用いて判断する。
データセット作成部1205は、周期性の判断結果に応じて、曜日と時刻が共通する時点におけるメトリックの指標値の移動平均値を算出し、過去稼動情報としてDB1201に記憶する。データセット作成部1205は、動作状況情報と、過去稼動情報とを結合し、予測モデルを作成する際に用いられるデータセットを生成し、DB1201に記憶する。
作成要求受付部1206は、予測モデル作成要求を受け付ける。予測モデル作成要求は、例えば、予測対象のメトリックを指定する作成要求であって、所定の間隔で入力される。予測モデル作成要求は、具体的には、データセンターの情報処理装置201の数の増減のタイミングにおいて、予測対象のメトリックに関する予測モデルを更新させるために自動で入力される。予測モデル作成要求は、具体的には、人手で入力されてもよい。予測モデル作成要求は、具体的には、毎日定時に、予測対象のメトリックに関する予測モデルを更新させるために入力されてもよい。
タイマー部1207は、一定時間ごとに近傍データセット検索部1208に予測要求を出力し、近傍データセット検索部1208を動作させる。近傍データセット検索部1208は、過去データセットのうち、最新データセットとの間でのL2ノルムが所定の閾値以下になる近傍データセットを検索する。近傍データセット検索部1208は、例えば、最新データセットと、それぞれの過去データセットとのL2ノルムを計算し、L2ノルムが相対的に小さい過去データセットを近傍データセットとして特定する。
変数選択部1209は、ステップワイズ法を用いて、JITモデリングによって作成される予測モデルに用いる係数を計算する。これにより、変数選択部1209は、予測モデルを定期的に更新して、予測値を計算する精度の向上を図ることができる。
予測値計算部1210は、作成された予測モデルに、特定された近傍データセットを入力することにより、予測対象のメトリックに関する指標値の予測値を計算する。予測値計算部1210は、予測値を計算すると、DB1201に予測値を記憶する。これにより、予測値計算部1210は、定期的に予測値を計算し、制御対象選択部1211や制御方針決定部1212によってVMに割り当てる計算資源が制御されるようにして、データセンターの消費電力の低減化が図られるようにすることができる。
制御対象選択部1211は、DB1201に記憶された予測値に基づいて、制御対象のVMを選択する。制御方針決定部1212は、選択されたVMに割り当てる計算資源についての制御方針を決定する。制御方針決定部1212は、例えば、選択されたVMに割り当てるCPUリソースの量を決定し、または、選択されたVMを移動させる情報処理装置201を決定する。制御方針決定部1212は、選択したVMと、決定した制御方針とを、制御受取部1221に出力する。これにより、制御対象選択部1211や制御方針決定部1212は、SLAを満たしつつ、データセンターの消費電力の低減化を図ることができる。
制御受取部1221は、制御方針決定部1212から制御対象のVMと制御方針とを受け付け、制御指示部1222に出力する。制御指示部1222は、制御対象のVMを実行中の情報処理装置201に対して、制御方針にしたがって制御信号を出力する。情報処理装置201上で動作する仮想化ソフトウェア1231,1232などは、制御信号を受信し、その制御信号にしたがって情報処理装置201の仮想化環境を制御し、VMへの計算資源の割り当てなどを制御する。これにより、制御指示部1222は、情報処理装置201を制御し、VMに割り当てる計算資源を制御することができる。
(管理装置100が予測値を生成する動作例)
次に、図13〜図20を用いて、管理装置100が予測値を生成する動作例について説明する。
図13〜図20は、管理装置100が予測値を生成する動作例を示す説明図である。図13〜図20の例では、現在時点が「2016/9/29(木)15:00」であるとする。図13〜図20の例では、メトリクスの指標値は、10分間隔の時点における指標値である。メトリクスの指標値は、メトリックごとに異なる時間間隔の時点における指標値であってもよい。
図13において、管理装置100は、メトリクス収集部1202によって処理を行う。管理装置100は、複数のVMそれぞれの稼動状況DB500に、過去1か月分のメトリクスの指標値が記憶されているか否かを確認する。管理装置100は、例えば、VM名「xxxxxxx」のVMの稼動状況DB500に、過去1ヶ月分のメトリクスの指標値が記憶されているか否かを確認する。以下では、VM名「xxxxxxx」のVMについての処理を説明する。
ここで、管理装置100は、過去1か月分のメトリクスの指標値が記憶されていなければ、図20に後述するように、稼動状況DB500に基づいて、予測モデルを作成し、稼動状況DB500についての予測値を生成する。一方で、管理装置100は、過去1か月分のメトリクスの指標値が記憶されていれば、図14に後述するように、稼動状況DB500の周期性の有無を判断する。図13の例では、過去1ヶ月分のメトリクスの指標値が記憶されているとする。次に、図14の説明に移行する。
図14において、管理装置100は、閾値決定部1203によって処理を行う。管理装置100は、VMの稼動状況DB500から、1周期分と設定された過去の単位期間、例えば、1週間内での指標値の最大値と最小値とを抽出する。管理装置100は、例えば、過去の1週間「2016/9/15(木)15:00〜2016/9/22(木)15:00」でのCPU使用率の最大値と最小値とを抽出する。
次に、管理装置100は、最大値から最小値を減算した差分を算出する。情報処理装置201は、例えば、過去の1週間のCPU使用率の変動幅を示す差分DIFF=過去の1週間のCPU使用率の最大値MAX−過去の1週間のCPU使用率の最小値MINを算出する。管理装置100は、具体的には、過去の1週間のCPU使用率の変動幅を示す差分DIFFとして30%を算出する。
そして、管理装置100は、最大値と最小値との差分の10%を閾値として算出し、周期性判断閾値DB800に記憶する。管理装置100は、例えば、CPU使用率に対する閾値Threshold=過去の1週間のCPU使用率の変動幅を示す差分DIFF/10を算出する。管理装置100は、具体的には、過去の1週間のCPU使用率の変動幅を示す差分DIFF30%のうちの10%である3%を閾値として算出し、周期性判断閾値DB800に記憶する。次に、図15の説明に移行する。
図15において、管理装置100は、周期性判断部1204によって処理を行う。管理装置100は、VMの稼動状況DB500から、過去の所定期間について、曜日と時刻とメトリックとの組み合わせごとに最大値と最小値とを抽出する。管理装置100は、例えば、曜日「(木)」と時刻「15:00」とメトリック「CPU使用率」との組み合わせについて、最大値「22%」と最小値「19%」とを抽出する。
次に、管理装置100は、曜日と時刻とメトリックとの組み合わせごとに最大値から最小値を減算した差分を算出する。管理装置100は、例えば、曜日「(木)」と時刻「15:00」とメトリック「CPU使用率」との組み合わせについて、最大値「22%」から最小値「19%」を減算した差分「3%」を算出する。
そして、管理装置100は、曜日と時刻とメトリックとの組み合わせごとに算出した差分が、周期性判断閾値DB800の閾値以下であるか否かを判断する。管理装置100は、例えば、曜日「(木)」と時刻「15:00」とメトリック「CPU使用率」との組み合わせについて、差分「3%」が閾値「3%」以下であると判断する。
ここで、曜日と時刻とメトリックとの組み合わせについて、算出した差分が閾値以下であれば、その曜日のその時刻におけるそのメトリックに関する指標値は、周期的に同様の値になることを示している。このため、管理装置100は、差分が閾値以下であれば、稼動状況DB500に周期性がありうると判断する。
管理装置100は、曜日と時刻とメトリックとの組み合わせについて、差分が閾値以下であれば、その組み合わせに対応付けて、動作状況上に周期性がありうることを示す「所定範囲内」を周期性判断DB600に記憶する。次に、図16の説明に移行する。
図16において、管理装置100は、周期性判断部1204によって処理を行う。管理装置100は、周期性判断DB600の曜日と時刻とメトリックとの組み合わせのうち、「所定範囲内」が設定された曜日と時刻とメトリックとの組み合わせの割合を算出する。
ここで、管理装置100は、算出した割合が90%未満であれば、VMの稼動状況DB500に周期性がないと判断し、図20に後述するように、稼動状況DB500に基づいて、予測モデルを作成し、稼動状況DB500についての予測値を生成する。
一方で、管理装置100は、算出した割合が90%以上であれば、VMの稼動状況DB500に周期性があると判断し、図17に示すように、過去稼動状況DB700を生成する。図16の例では、管理装置100は、割合が90%以上であり、VMの稼動状況DB500に周期性があると判断する。次に、図17の説明に移行する。
図17において、管理装置100は、データセット作成部1205によって処理を行う。管理装置100は、曜日と時刻との組み合わせごとに、それぞれのメトリクスの指標値の移動平均値を算出し、過去稼動状況DB700に記憶する。管理装置100は、例えば、曜日「(木)」と時刻「15:00」との組み合わせについて、過去の4つの時点のCPU使用率「20%、21%、22%、19%」を抽出し、移動平均値「20.5%」を算出する。これにより、管理装置100は、単位期間における計算資源の動作状況に対応するメトリクスの指標値の変動傾向を示す、過去稼動状況DB700を生成することができる。次に、図18の説明に移行する。
図18において、管理装置100は、データセット作成部1205によって処理を行う。管理装置100は、過去稼動状況DB700のレコードを、現在時点の所定時間後の時点に対応するレコードが末尾になるようにソートする。管理装置100は、例えば、過去稼動状況DB700のレコードを、現在時点「2016/9/29(木)15:00」の10分後の時点「2016/9/29(木)15:10」に対応するレコードが末尾になるようにソートする。次に、図19の説明に移行する。
図19において、管理装置100は、データセット作成部1205によって処理を行う。管理装置100は、VMの稼動状況DB500のそれぞれの時点に対応するレコードに、当該時点の所定時間後の時点に対応する過去稼動状況DB700のレコードを結合する。管理装置100は、過去稼動状況DB700のレコードを結合した、VMの稼動状況DB500のレコードを、予測モデルを作成する際に用いられるデータセットに設定する。これにより、管理装置100は、VMの稼動状況DB500のそれぞれの時点に対応するレコードに計算資源の動作状況の変動の兆候が現れていなくても、急激な変動がありうる時点を示す情報を、データセットに含めることができる。
管理装置100は、結合後のVMの稼動状況DB500のデータセットのうち、最新の時点の指標値の集合である最新データセットとの間でのL2ノルムが所定の閾値以下になる過去の時点の指標値の集合である近傍データセットを検索する。管理装置100は、例えば、下記式(1)を用いて、最新データセットと、過去のそれぞれの時点の指標値の集合である過去データセットとのL2ノルムを計算する。
ここで、tは過去の時点である。ktは過去の時点tに対応する過去データセットである。kqは最新データセットである。Dt(kt,kq)は最新データセットと過去の時点tに対応する過去データセットとのL2ノルムである。xktは過去データセットのメトリクスの指標値を要素とするベクトルである。xkqは最新データセットのメトリクスの指標値を要素とするベクトルである。
そして、管理装置100は、過去データセットのうち、計算したL2ノルムが小さい方から10個の過去データセットを、近傍データセットとして特定する。管理装置100は、過去データセットのうち、計算したL2ノルムが所定の閾値以下である過去データセットすべてを、近傍データセットとして特定してもよい。
次に、管理装置100は、下記式(2)を用いて、特定した近傍データセットごとに、予測対象となるメトリック、例えば、CPU使用率について予測値を計算する。管理装置100は、例えば、n個の近傍データセットのうち、j番目の近傍データセットを用いてCPU使用率の予測値を計算する。
ここで、yj kqはj番目の近傍データセットに基づくCPU使用率の予測値である。ハット記号は推定値であることを示す。β0は係数である。βiは係数である。β0やβiは例えば、稼動状況DB500に基づいてステップワイズ法を用いて求められる。xi ktはj番目の近傍データセットのi番目のメトリックの指標値である。mはメトリックの数である。
次に、管理装置100は、下記式(3)を用いて、計算したCPU使用率の予測値の統計値を計算する。管理装置100は、例えば、統計値として平均値を計算する。管理装置100は、統計値として、中央値やパーセンタイルを計算してもよい。
ここで、ykqはCPU使用率の予測値の統計値である。ハット記号は推定値であることを示す。これにより、管理装置100は、JITモデリングによって、計算資源の将来の動作状況を示す何らかのメトリック、例えば、VMのCPU使用率の予測値を計算することができる。また、管理装置100は、JITモデリングの予測モデルに、計算資源の動作状況の急激な変動がありうる時点を反映させることができ、計算資源の動作状況の急激な変動の前に、変動した後の予測値を精度よく計算することができる。
管理装置100は、計算したCPU使用率の予測値に基づいて、情報処理装置201の計算資源の制御を行ってもよい。計算資源は、例えば、CPUリソースである。制御は、情報処理装置201によって実行されるVMへの計算資源の割り当ての変更である。制御は、情報処理装置201の計算資源への電源供給の変更であってもよい。
管理装置100は、例えば、情報処理装置201によって実行されるVMに対する、情報処理装置201のCPUリソースの割り当てを増加、または減少させる。管理装置100は、具体的には、VMのCPU使用率の予測値が、VMに割り当てたCPUリソースの90%を超えている場合、VMに割り当てるCPUリソースを増加させる。
換言すれば、管理装置100は、VMのCPU使用率が、VMに割り当てたCPUリソースの100%を超えてしまい、VMの性能が低下してしまう可能性が比較的大きい場合に、VMに割り当てるCPUリソースを増加させることができる。これにより、管理装置100は、SLAを満たさない期間が発生してしまう可能性を低減することができる。
また、管理装置100は、具体的には、VMのCPU使用率の予測値が、VMに割り当てたCPUリソースの50%を下回っている場合、VMに割り当てるCPUリソースを、SLAを満たすようにしつつも、減少させる。
換言すれば、管理装置100は、VMのCPU使用率が、VMに割り当てたCPUリソースの50%を下回り、VMが使用しないCPUリソースについての消費電力が比較的大きい場合に、VMに割り当てるCPUリソースを減少させることができる。これにより、管理装置100は、SLAを満たしつつデータセンターの消費電力を効率よく低減することができる。
管理装置100は、例えば、情報処理装置201によって実行されるVMを、他の情報処理装置201によって実行させるために、他の情報処理装置201に移動させる。具体的には、他の情報処理装置201のCPUリソースが、他の情報処理装置201によって実行されるVMのCPU使用率の予測値の合計値に比べて大きく、他の情報処理装置201がさらにVMを実行可能な状態である場合がある。
この場合、管理装置100は、さらにVMを実行可能な状態である他の情報処理装置201に、情報処理装置201によって実行されているVMを移動させる。これにより、管理装置100は、データセンターにおいて、VMを実行している情報処理装置201の数を減らすことができる。
管理装置100は、例えば、情報処理装置201によって実行されるVMを、他の情報処理装置201に移動させた結果、情報処理装置201が実行するVMがなくなった場合、情報処理装置201への電源供給を停止する。これにより、管理装置100は、データセンターの消費電力を効率よく低減することができる。次に、図20の説明に移行する。
図20において、管理装置100は、データセット作成部1205によって処理を行う。管理装置100は、VMの稼動状況DB500に周期性がなければ、過去稼動状況DB700を生成せず、過去稼動状況DB700のレコードを、予測モデルを作成する際に用いられるデータセットの一部として使用しない。管理装置100は、過去稼動状況DB700を結合せずに、VMの稼動状況DB500のそれぞれの時点に対応するレコードを、予測モデルを作成する際に用いられるデータセットに設定する。そして、管理装置100は、図19と同様に、稼動状況DB500についての予測値を算出する。
これにより、管理装置100は、VMの稼動状況DB500に周期性がないため、過去稼動状況DB700を作成しても計算資源の動作状況についての変動傾向を表現することが難しい場合には、過去稼動状況DB700を生成しないようにする。結果として、管理装置100は、稼動状況DB500についての予測値を生成する精度の低下を防止することができる。
(予測結果の具体例)
次に、図21〜図24を用いて、予測結果の具体例について説明する。
図21〜図24は、予測結果の具体例を示す説明図である。図21の表2100は、メトリックとして用いることができる尺度の具体例である。以降、管理装置100が、表2100に示すメトリックを用いて、処理負荷の時間変化に周期性があるVMの稼動状況DB500についての予測値を生成した場合について説明する。VMは、例えば、PaaS(Platform as a Service)に用いられるVMである。次に、図22の説明に移行する。
図22において、まず、稼動状況DB500のみに基づいて、CPU使用率などのメトリックの指標値について予測値を生成する場合が考えられる。この場合、図22のグラフ2200のように、CPU使用率の実測値と、CPU使用率の予測値とが時間変化する。横軸は時間を示し、縦軸はCPU使用率を示す。この場合、図22のグラフ2200の部分2201のように、CPU使用率の実測値と、CPU使用率の予測値との誤差が大きくなってしまう部分が生じる可能性がある。
これに対し、管理装置100は、過去稼動状況DB700を結合した稼動状況DB500に基づいて、CPU使用率などのメトリックの指標値について予測値を生成することができる。図22のグラフ2210のように、CPU使用率の実測値と、CPU使用率の予測値とが時間変化する。横軸は時間を示し、縦軸はCPU使用率を示す。管理装置100は、図22のグラフ2210のように、CPU使用率の実測値とCPU使用率の予測値との誤差を比較的小さくすることができる。次に、図23の説明に移行する。
図23において、まず、稼動状況DB500のみに基づいて、CPU使用率などのメトリックの指標値について予測値を生成する場合が考えられる。この場合、図23のグラフ2300のように、過去の所定期間内での誤差のうち、それぞれの数値以下であった誤差の割合が分布する。横軸は誤差の数値を示し、縦軸はそれぞれの数値以下であった誤差の割合を示す。この場合、図23の数直線2302のように、過去の所定期間内での誤差のうち95%が、誤差が3%以下になる。
また、この場合、図23のグラフ2310のように、CPU使用率の実測値に対する、CPU使用率の実測値とCPU使用率の予測値との差分の割合が分布する。横軸は実測値を示し、縦軸は割合を示す。このように、実測値と予測値との差分は、実測値の−80%〜60%になってしまうことがあり、予測値を精度よく生成することができない。
これに対し、管理装置100は、過去稼動状況DB700を結合した稼動状況DB500に基づいて、CPU使用率などのメトリックの指標値について予測値を生成することができる。管理装置100は、図23の数直線2301のように、過去の所定期間内での誤差のうち99%が、誤差が3%以下になるようにすることができる。
また、この際、図23のグラフ2320のように、CPU使用率の実測値に対する、CPU使用率の実測値とCPU使用率の予測値との差分の割合が分布する。横軸は実測値を示し、縦軸は割合を示す。このように、管理装置100は、実測値と予測値との差分を、実測値の−20%〜20%までに抑制することができる。
次に、図24の説明に移行し、管理装置100が、表2100に示すメトリックを用いて、処理負荷の時間変化に周期性があるが、処理負荷がランダム変化することもあるVMの稼動状況DB500についての予測値を生成した場合について説明する。
図24において、まず、稼動状況DB500のみに基づいて、CPU使用率などのメトリックの指標値について予測値を生成する場合が考えられる。この場合、図24のグラフ2400のように、過去の所定期間内での誤差のうち、それぞれの数値以下であった誤差の割合が分布する。横軸は誤差の数値を示し、縦軸はそれぞれの数値以下であった誤差の割合を示す。この場合、図24の数直線2402のように、過去の所定期間内での誤差のうち86%が、誤差が3%以下になる。
また、この場合、図24のグラフ2410のように、CPU使用率の実測値に対する、CPU使用率の実測値とCPU使用率の予測値との差分の割合が分布する。横軸は実測値を示し、縦軸は割合を示す。このように、実測値と予測値との差分は、実測値の−42%〜32%になってしまうことがある。
これに対し、管理装置100は、過去稼動状況DB700を結合した稼動状況DB500に基づいて、CPU使用率などのメトリックの指標値について予測値を生成することができる。管理装置100は、図24の数直線2401のように、過去の所定期間内での誤差のうち88%が、誤差が3%以下になるようにすることができる。
また、この際、図24のグラフ2420のように、CPU使用率の実測値に対する、CPU使用率の実測値とCPU使用率の予測値との差分の割合が分布する。横軸は実測値を示し、縦軸は割合を示す。このように、管理装置100は、実測値と予測値との差分を、実測値の−40%〜20%までに抑制することができる。
(予測処理手順の一例)
次に、図25〜図28を用いて、情報処理装置201が実行する予測処理手順の一例について説明する。
図25〜図28は、予測処理手順の一例を示すフローチャートである。図25において、メトリクス収集部1202は、複数のVMのそれぞれのVMに対し、複数のメトリックのそれぞれのメトリックの指標値を取得する(ステップS2501)。次に、メトリクス収集部1202は、それぞれのVMの稼動状況DB500に1ヶ月以上の動作状況についてのレコードが記憶されているか否かを判定する(ステップS2502)。
ここで、記憶されていない場合(ステップS2502:No)、管理装置100は、図27のステップS2701の処理に移行する。一方で、記憶されている場合(ステップS2502:Yes)、管理装置100は、ステップS2503の処理に移行する。
ステップS2503で、閾値決定部1203は、それぞれのVMの稼動状況DB500を参照し、それぞれのVMの周期性判断閾値DB800を作成する(ステップS2503)。次に、周期性判断部1204は、それぞれのVMの稼動状況DB500と周期性判断閾値DB800とを参照し、それぞれのVMの周期性判断DB600を作成する(ステップS2504)。そして、管理装置100は、図26のステップS2601の処理に移行する。
図26において、周期性判断部1204は、それぞれのVMの周期性判断DB600を参照し、少なくともいずれかのVMの稼動状況DB500について周期性を有するか否かを判定する(ステップS2601)。
ここで、周期性を有さない場合(ステップS2601:No)、管理装置100は、図27のステップS2701の処理に移行する。一方で、周期性を有する場合(ステップS2601:Yes)、管理装置100は、ステップS2602の処理に移行する。
ステップS2602で、データセット作成部1205は、周期性を有する1以上のVMのそれぞれのVMについて曜日と時刻が共通する時点におけるメトリックの指標値の移動平均値を算出し、そのVMの過去稼動状況DB700に記憶する(ステップS2602)。次に、データセット作成部1205は、周期性を有する1以上のVMのそれぞれのVMの過去稼動状況DB700を、現在時点から10分後の時点に対応するレコードが末尾になるようにソートする(ステップS2603)。
そして、データセット作成部1205は、周期性を有する1以上のVMのそれぞれのVMの稼動状況DB500のそれぞれの時点のレコードに、その時点から10分後の時点に対応する、VMの過去稼動状況DB700のレコードを結合する(ステップS2604)。次に、管理装置100は、図27のステップS2701の処理に移行する。
図27において、近傍データセット検索部1208は、予測値の計算要求を受け付ける。近傍データセット検索部1208は、計算要求を受け付けると、それぞれのVMの稼動状況DB500のデータセットのうち、最新データセットとの間でのL2ノルムが所定の閾値以下になる近傍データセットを検索する(ステップS2701)。
次に、変数選択部1209は、それぞれのVMについて、予測モデルの作成に用いられる変数を選択する(ステップS2702)。そして、予測値計算部1210は、それぞれのVMについて、検索した近傍データセットと、選択された予測モデルの作成に用いられる変数とに基づいて、予測モデルを作成する(ステップS2703)。
予測値計算部1210は、それぞれのVMについて、作成した予測モデルに基づいて予測値を計算する(ステップS2704)。次に、管理装置100は、図28のステップS2801の処理に移行する。
図28において、制御方針決定部1212は、計算資源管理DB900や対応関係管理DB1000を参照し、それぞれの物理マシンのCPU使用率の予測値の合計値を算出する。制御方針決定部1212は、算出した合計値よりVMに割り当て可能なCPUリソースを大きくするために起動の状態にされる物理マシンの最小の数を算出する(ステップS2801)。
制御対象選択部1211は、計算資源管理DB900や対応関係管理DB1000を参照し、算出した最小の数から、現在起動中の物理マシンの数を減算し、現在の状態から起動または停止の状態に変更させる物理マシンの数を算出する。制御対象選択部1211は、算出した物理マシンの数が0であるか否かを判定する(ステップS2802)。
減算した結果が正の値であれば、減算した結果の絶対値は、現在停止の状態であって停止の状態から起動の状態に変更させる物理マシンの数を示す値になる。減算した結果が負の値であれば、減算した結果の絶対値は、現在起動の状態であって起動の状態から停止の状態に変更させる物理マシンの数を示す値になる。
ここで、0である場合(ステップS2802:Yes)、管理装置100は、ステップS2809の処理に移行する。一方で、0ではない場合(ステップS2802:No)、管理装置100は、ステップS2803の処理に移行する。
ステップS2803で、制御対象選択部1211は、算出した最小の数から、現在起動中の物理マシンの数を減算した結果が、正の値であるか否かを判定する(ステップS2803)。
ここで、負の値であって、起動中の物理マシンのうち、起動の状態から停止の状態に変更させる物理マシンがある場合(ステップS2803:No)、管理装置100は、ステップS2804の処理に移行する。
ステップS2804で、制御方針決定部1212は、起動中の物理マシンのうち、起動の状態から停止の状態に変更させる物理マシンを選択する(ステップS2804)。制御方針決定部1212は、例えば、対応関係管理DB1000を参照し、算出した物理マシンの数に応じて、実行中のVMが少ない物理マシンから順に選択する。
次に、制御指示部1222は、選択した物理マシンが実行中のVMを、選択されずに起動中の物理マシンに移動させ、移動が終了した後に、選択した物理マシンを起動の状態から停止の状態に変更させる(ステップS2805)。
次に、制御指示部1222は、起動中の物理マシンの負荷を平準化する(ステップS2806)。制御指示部1222は、例えば、起動中の物理マシンが実行中のVMのうち、現在のCPU使用率から予測値までの変化量が少ないVMから順に、物理マシン間を移動させて、起動中の物理マシンの負荷を平準化する。そして、管理装置100は、予測処理を終了する。
一方で、正の値であって、起動中の物理マシンのうち、停止の状態から起動の状態に変更させる物理マシンがある場合(ステップS2803:Yes)、管理装置100は、ステップS2807の処理に移行する。
ステップS2807で、制御方針決定部1212は、停止中の物理マシンのうち、停止の状態から起動の状態に変更させる物理マシンを選択する(ステップS2807)。次に、制御指示部1222は、選択した物理マシンを停止の状態から起動の状態に変更させる(ステップS2808)。そして、制御対象選択部1211は、対応関係管理DB1000を参照し、それぞれの物理サーバのCPU使用率の合計値を比較し、物理サーバ間の合計値の差分が10%以上であるか否かを判定する(ステップS2809)。
ここで、10%以上である場合(ステップS2809:Yes)、管理装置100は、ステップS2810の処理に移行する。
ステップS2810で、制御方針決定部1212は、起動中の物理マシンの負荷を平準化する(ステップS2810)。制御方針決定部1212は、例えば、起動中の物理マシンが実行中のVMのうち、現在のCPU使用率から予測値までの変化量が少ないVMから順に、物理マシン間を移動させて、起動中の物理マシンの負荷を平準化する。
一方で、10%以上ではない場合(ステップS2809:No)、管理装置100は、予測処理を終了する。これにより、管理装置100は、計算資源の将来の動作状況を示すVMのCPU使用率の予測値などを精度よく生成することができ、SLAを満たしつつデータセンターの消費電力を効率よく低減することができる。
以上説明したように、管理装置100によれば、複数の情報処理装置201の記憶部1100がそれぞれ記憶する自装置の計算資源の動作状況についての動作状況情報を収集することができる。管理装置100によれば、動作状況情報と、閾値とに基づき、動作状況情報の周期性の有無を判断することができる。管理装置100によれば、動作状況情報について周期性を有すると判断した場合、周期性を有する過去の所定期間についての動作状況についての過去稼動情報を作成することができる。管理装置100によれば、動作状況情報について周期性を有すると判断した場合、動作状況情報と、過去稼動情報とに基づいて、動作状況情報についての予測値を生成することができる。これにより、管理装置100は、予測値を生成する精度の向上を図ることができる。
管理装置100によれば、動作状況情報に基づいて閾値を決定することができる。これにより、管理装置100は、利用者の能力に依存せず閾値を決定することができ、管理装置100の利便性の向上を図ることができる。
管理装置100によれば、動作状況情報の最大値と最小値の差分に基づいて閾値を決定することができる。これにより、管理装置100は、指標値の最大値と最小値の差分により、動作制御情報の指標値と、閾値とのオーダを統一することができ、周期性の有無を判定する精度の向上を図ることができる。
管理装置100によれば、対象期間の全部または一部における指標値の最大値と最小値との差分を所定値で除算した値を閾値に決定することができる。これにより、管理装置100は、指標値の最大値と最小値の差分により、指標値の変動が比較的大きい場合には閾値が比較的大きくなり、指標値の変動が比較的小さい場合には閾値が比較的小さくなるようにすることができる。このため、管理装置100は、指標値の最大値と最小値の差分により、動作制御情報の指標値と、閾値とのオーダを統一することができ、周期性の有無を判定する精度の向上を図ることができる。
管理装置100によれば、1周期分と設定された単位期間で対象期間を分割した複数の部分期間それぞれにおける指標値の最大値と最小値との差分に関する統計値を所定値で除算した値を閾値に決定することができる。これにより、管理装置100は、利用者の能力に依存せず閾値を決定することができ、管理装置100の利便性の向上を図ることができる。管理装置100は、統計値を用いるため、指標値の最大値と最小値とにノイズが含まれても、周期性の有無を判定する精度の向上を図ることができる。
管理装置100によれば、1周期分と設定された単位期間内での所定間隔の複数の時点それぞれに対応する、動作状況情報に含まれる指標値についての最大値と最小値との差分が、閾値以下であるか否かを判断する。管理装置100によれば、差分が閾値以下であるか否かを判断した結果に基づいて、動作状況情報の周期性の有無を判断することができる。これにより、管理装置100は、1周期分と設定された単位期間を周期と仮定して、動作状況情報に周期性があるか否かを判定することができる。
管理装置100によれば、動作状況情報について周期性を有さないと判断した場合、動作状況情報のみに基づいて、動作状況情報についての予測値を生成することができる。これにより、管理装置100は、動作状況情報が周期性を有さないため、過去稼動情報を作成しても計算資源の動作状況についての変動傾向を表現することが難しい場合には、過去稼動情報を生成せず、処理負担の低減化を図ることができる。結果として、管理装置100は、過去稼動情報を使用せず、予測値を生成する精度の低下を防止することができる。
管理装置100によれば、対象期間内での複数の時点それぞれについて、当該時点における指標値および当該時点の所定時間後の時点に対応する単位期間内での時点に対応する統計値を対応付けることができる。管理装置100によれば、所定時点について対応付けられた指標値および統計値の組み合わせとの間で所定条件を満たす、所定時点より前の時点について対応付けられた指標値および統計値の組み合わせを特定することができる。管理装置100によれば、特定した組み合わせに基づいて動作状況情報についての予測値を生成することができる。これにより、管理装置100は、JITモデリングを実現し、予測値を生成する精度の向上を図ることができる。
管理装置100によれば、所定時点について対応付けられた指標値および統計値のそれぞれと、所定時点より前の時点について対応付けられた指標値および統計値のそれぞれとの差分についてのL2ノルムを算出することができる。管理装置100によれば、所定条件として、算出したL2ノルムが所定値以下であるという条件を用いることができる。これにより、管理装置100は、JITモデリングによって予測モデルを作成する精度の向上を図ることができる。
管理装置100によれば、生成した動作状況情報についての予測値と、予め定められた基準値とに基づき、情報処理装置201の計算資源を管理することができる。これにより、管理装置100は、情報処理装置201の計算資源を制御することができ、SLAを満たしつつ、データセンターの消費電力の低減化を図ることができる。
管理装置100によれば、予測値が基準値よりも使用度合いが大きいことを示す指標値である場合、仮想マシンに割り当てる情報処理装置201の計算資源を増加させることができる。これにより、管理装置100は、情報処理装置201の計算資源を制御することができ、SLAを満たしつつ、データセンターの消費電力の低減化を図ることができる。
管理装置100によれば、予測値が基準値よりも使用度合いが小さいことを示す指標値である場合、仮想マシンに割り当てる情報処理装置201の計算資源を減少させることができる。これにより、管理装置100は、情報処理装置201の計算資源を制御することができ、SLAを満たしつつ、データセンターの消費電力の低減化を図ることができる。
管理装置100によれば、情報処理装置201の計算資源が割り当てられた仮想マシンがなければ、情報処理装置201への電源供給の停止を行うことができる。これにより、管理装置100は、情報処理装置201の計算資源を制御することができ、SLAを満たしつつ、データセンターの消費電力の低減化を図ることができる。
なお、本実施の形態で説明した情報処理システムの制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。本実施の形態で説明した管理装置の管理プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した管理装置の管理プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)計算資源をそれぞれ有する複数の情報処理装置を備える情報処理システムを管理する管理装置において、
前記複数の情報処理装置の記憶部がそれぞれ記憶する自装置の計算資源の動作状況についての動作状況情報を収集する収集部と、
前記動作状況情報と、閾値とに基づき、前記動作状況情報の周期性の有無を判断する判断部と、
前記動作状況情報について周期性を有すると判断した場合、周期性を有する過去の所定期間についての動作状況についての過去稼動情報を作成する作成部と、
前記動作状況情報について周期性を有すると判断した場合、前記動作状況情報と、前記過去稼動情報とに基づいて、前記動作状況情報についての予測値を生成する予測部と、
を有することを特徴とする管理装置。
(付記2)さらに、前記動作状況情報に基づいて前記閾値を決定する決定部を有することを特徴とする付記1に記載の管理装置。
(付記3)前記決定部は、
前記動作状況情報の最大値と最小値の差分に基づいて、前記閾値を決定する、ことを特徴とする付記2に記載の管理装置。
(付記4)前記情報処理装置の計算資源の動作状況についての動作状況情報は、過去の対象期間内での所定間隔の複数の時点それぞれにおける前記情報処理装置の計算資源の動作状況についての指標値を含み、
前記決定部は、
前記対象期間の全部または一部における指標値の最大値と最小値との差分を所定値で除算した値を、前記閾値に決定する、ことを特徴とする付記3に記載の管理装置。
(付記5)前記決定部は、
1周期分と設定された単位期間で前記対象期間を分割した複数の部分期間それぞれにおける指標値の最大値と最小値との差分に関する統計値を所定値で除算した値を、前記閾値に決定する、ことを特徴とする付記4に記載の管理装置。
(付記6)前記情報処理装置の計算資源の動作状況についての動作状況情報は、過去の対象期間内での所定間隔の複数の時点それぞれにおける前記情報処理装置の計算資源の動作状況についての指標値を含み、
前記判断部は、
1周期分と設定された単位期間内での前記所定間隔の複数の時点それぞれに対応する、前記動作状況情報に含まれる指標値についての最大値と最小値との差分が、前記閾値以下であるか否かを判断した結果に基づいて、前記動作状況情報の周期性の有無を判断する、ことを特徴とする付記1〜5のいずれか一つに記載の管理装置。
(付記7)前記予測部は、
前記動作状況情報について周期性を有さないと判断した場合、前記動作状況情報のみに基づいて、前記動作状況情報についての予測値を生成する、ことを特徴とする付記1〜6のいずれか一つに記載の管理装置。
(付記8)前記情報処理装置の計算資源の動作状況についての動作状況情報は、過去の対象期間内での所定間隔の複数の時点それぞれにおける前記情報処理装置の計算資源の動作状況についての指標値を含み、
前記所定期間についての動作状況についての過去稼動情報は、1周期分と設定された単位期間内での前記所定間隔の複数の時点それぞれに対応する、前記動作状況情報に含まれる動作状況についての指標値に関する統計値を含み、
前記予測部は、
前記対象期間内での複数の時点それぞれについて、当該時点における指標値および当該時点の所定時間後の時点に対応する前記単位期間内での時点に対応する統計値を対応付け、
所定時点について対応付けられた指標値および統計値の組み合わせとの間で所定条件を満たす、前記所定時点より前の時点について対応付けられた指標値および統計値の組み合わせを特定し、
特定した前記組み合わせに基づいて前記動作状況情報についての予測値を生成する、ことを特徴とする付記1〜7のいずれか一つに記載の管理装置。
(付記9)前記所定条件は、前記所定時点について対応付けられた指標値および統計値のそれぞれと、前記所定時点より前の時点について対応付けられた指標値および統計値のそれぞれとの差分についてのL2ノルムが所定値以下であるという条件である、ことを特徴とする付記8に記載の管理装置。
(付記10)さらに、前記予測部が生成した前記動作状況情報についての予測値と、予め定められた基準値とに基づき、前記情報処理装置の計算資源を管理する管理部を有することを特徴とする付記1〜9のいずれか一つに記載の管理装置。
(付記11)前記情報処理装置の計算資源は仮想マシンに割り当て可能な計算資源であり、
前記基準値は予め定められた、前記仮想マシンに関する前記情報処理装置の計算資源の動作状況についての指標値であり、
前記管理部は、
前記予測値が前記基準値よりも使用度合いが大きいことを示す指標値である場合、前記仮想マシンに割り当てる前記情報処理装置の計算資源を増加させる、ことを特徴とする付記10に記載の管理装置。
(付記12)前記情報処理装置の計算資源は仮想マシンに割り当て可能な計算資源であり、
前記基準値は予め定められた、前記仮想マシンに関する前記情報処理装置の計算資源の動作状況についての指標値であり、
前記管理部は、
前記予測値が前記基準値よりも使用度合いが小さいことを示す指標値である場合、前記仮想マシンに割り当てる前記情報処理装置の計算資源を減少させる、ことを特徴とする付記10または11に記載の管理装置。
(付記13)前記管理部は、
前記情報処理装置の計算資源が割り当てられた仮想マシンがなければ、前記情報処理装置への電源供給の停止を行う、ことを特徴とする付記10〜12のいずれか一つに記載の管理装置。
(付記14)計算資源をそれぞれ有する複数の情報処理装置を備える情報処理システムの制御方法において、
前記複数の情報処理装置の記憶部がそれぞれ記憶する自装置の計算資源の動作状況についての動作状況情報を収集し、
前記動作状況情報と、閾値とに基づき、前記動作状況情報の周期性の有無を判断し、
前記動作状況情報について周期性を有すると判断した場合、周期性を有する過去の所定期間についての動作状況についての過去稼動情報を作成し、
前記動作状況情報について周期性を有すると判断した場合、前記動作状況情報と、前記過去稼動情報とに基づいて、前記動作状況情報についての予測値を生成する、
処理をコンピュータが実行することを特徴とする情報処理システムの制御方法。
(付記15)計算資源をそれぞれ有する複数の情報処理装置を備える情報処理システムを管理する管理装置の管理プログラムにおいて、
前記複数の情報処理装置の記憶部がそれぞれ記憶する自装置の計算資源の動作状況についての動作状況情報を収集し、
前記動作状況情報と、閾値とに基づき、前記動作状況情報の周期性の有無を判断し、
前記動作状況情報について周期性を有すると判断した場合、周期性を有する過去の所定期間についての動作状況についての過去稼動情報を作成し、
前記動作状況情報について周期性を有すると判断した場合、前記動作状況情報と、前記過去稼動情報とに基づいて、前記動作状況情報についての予測値を生成する、
処理を前記管理装置に実行させることを特徴とする管理装置の管理プログラム。