(57)【特許請求の範囲】
【請求項１】
資源を備えた物理マシン上で実行される複数の仮想マシンを管理する管理装置であって、
前記複数の仮想マシンのそれぞれについて、当該仮想マシンによる資源の使用状態を示す資源使用状態情報と、当該仮想マシンのパフォーマンス情報とを一対の情報として時系列的に採取する情報採取部と、
各仮想マシンについて、前記情報採取部が採取した前記パフォーマンス情報のうち、現在のパフォーマンス情報を含む複数のパフォーマンス情報によって構成される現パフォーマンス情報時系列変化と、過去の複数のパフォーマンス情報によって構成される複数の過去パフォーマンス情報時系列変化との類似性についての複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化と最も類似性の高い過去パフォーマンス情報時系列変化に対応する過去の資源使用状態情報の推移から、当該仮想マシンによる資源の予測使用量を求める第一予測処理、及び、前記各仮想マシンについて、前記情報採取部が採取した前記パフォーマンス情報のうち、前記現パフォーマンス情報時系列変化と、前記複数の過去パフォーマンス情報時系列変化との類似性についての前記複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化との類似性の高い方から順に複数の過去パフォーマンス情報時系列変化を抽出し、該抽出した複数の過去パフォーマンス情報時系列変化に対応する各過去の資源使用状態情報に重み付け処理を施して、得られた重み付け平均資源使用状態情報の推移から当該仮想マシンによる前記資源の予測使用量を求める第二予測処理のうちのいずれかの予測処理を行なう予測部と、
前記複数の仮想マシンのそれぞれの予測使用量の合計が、前記資源の量を超える場合、前記複数の仮想マシンのうちの一部の仮想マシンを他の物理マシンに移動させる資源管理部と、
を備えることを特徴とする管理装置。
【請求項２】
前記仮想マシン毎の前記資源使用状態情報と前記パフォーマンス情報とを一対の情報として時系列的に記憶する記憶域を更に備えることを特徴とする請求項１記載の管理装置。
【請求項３】
前記予測部は、相関及び階層的クラスター分析のいずれかに基づいて、前記現パフォーマンス情報時系列変化と、前記過去の複数のパフォーマンス情報によって構成される複数の過去パフォーマンス情報時系列変化との類似性を決定することを特徴とする請求項１又は２記載の管理装置。
【請求項４】
前記パフォーマンス情報は、命令の実行状況及びキャッシュの利用状況の少なくともいずれかに関連する情報であることを特徴とする請求項１〜３のいずれか１項に記載の管理装置。
【請求項５】
資源を備えた物理マシン上で実行される複数の仮想マシンを、コンピュータによって管理する資源管理方法であって、
前記コンピュータにより、前記複数の仮想マシンのそれぞれについて、当該仮想マシンによる資源の使用状態を示す資源使用状態情報と、当該仮想マシンのパフォーマンス情報とを一対の情報として時系列的に採取し、
前記コンピュータにより、各仮想マシンについて、採取された前記パフォーマンス情報のうち、現在のパフォーマンス情報を含む複数のパフォーマンス情報によって構成される現パフォーマンス情報時系列変化と、過去の複数のパフォーマンス情報によって構成される複数の過去パフォーマンス情報時系列変化との類似性についての複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化と最も類似性の高い過去パフォーマンス情報時系列変化に対応する過去の資源使用状態情報の推移から、当該仮想マシンによる資源の予測使用量を求める第一予測処理、及び、前記各仮想マシンについて、前記採取された前記パフォーマンス情報のうち、前記現パフォーマンス情報時系列変化と、前記複数の過去パフォーマンス情報時系列変化との類似性についての前記複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化との類似性の高い方から順に複数の過去パフォーマンス情報時系列変化を抽出し、該抽出した複数の過去パフォーマンス情報時系列変化に対応する各過去の資源使用状態情報に重み付け処理を施して、得られた重み付け平均資源使用状態情報の推移から当該仮想マシンによる前記資源の予測使用量を求める第二予測処理のうちのいずれかの予測処理を行ない、
前記コンピュータにより、前記複数の仮想マシンのそれぞれの予測使用量の合計が、前記資源の量を超える場合、前記複数の仮想マシンのうちの一部の仮想マシンを他の物理マシンに移動させる、
ことを特徴とする資源管理方法。
【請求項６】
資源を備えた物理マシン上で実行される複数の仮想マシンを管理する資源管理プログラムであって、
コンピュータによって実行されたときに、前記コンピュータに、
前記複数の仮想マシンのそれぞれについて、当該仮想マシンによる資源の使用状態を示す資源使用状態情報と、当該仮想マシンのパフォーマンス情報とを一対の情報として時系列的に採取させ、
各仮想マシンについて、採取された前記パフォーマンス情報のうち、現在のパフォーマンス情報を含む複数のパフォーマンス情報によって構成される現パフォーマンス情報時系列変化と、過去の複数のパフォーマンス情報によって構成される複数の過去パフォーマンス情報時系列変化との類似性についての複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化と最も類似性の高い過去パフォーマンス情報時系列変化に対応する過去の資源使用状態情報の推移から、当該仮想マシンによる資源の予測使用量を求める第一予測処理、及び、前記各仮想マシンについて、前記採取された前記パフォーマンス情報のうち、前記現パフォーマンス情報時系列変化と、前記複数の過去パフォーマンス情報時系列変化との類似性についての前記複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化との類似性の高い方から順に複数の過去パフォーマンス情報時系列変化を抽出し、該抽出した複数の過去パフォーマンス情報時系列変化に対応する各過去の資源使用状態情報に重み付け処理を施して、得られた重み付け平均資源使用状態情報の推移から当該仮想マシンによる前記資源の予測使用量を求める第二予測処理のうちのいずれかの予測処理を実行させ、
前記複数の仮想マシンのそれぞれの予測使用量の合計が、前記資源の量を超える場合、前記複数の仮想マシンのうちの一部の仮想マシンを他の物理マシンに移動させる、
ことを特徴とする資源管理プログラム。
【請求項７】
第１の資源を備え、複数の第１の仮想マシンを実行する第１の物理マシンと、
第２の資源を備え、少なくとも１つの第２の仮想マシンを実行する第２の物理マシンと、
前記第１及び第２の物理マシンを管理する管理装置と、を備え、前記管理装置は、
前記複数の第１の仮想マシンのそれぞれについて、当該仮想マシンによる資源の使用状態を示す資源使用状態情報と、当該仮想マシンのパフォーマンス情報とを一対の情報として時系列的に採取する情報採取部と、
各第１の仮想マシンについて、前記情報採取部が採取した前記パフォーマンス情報のうち、現在のパフォーマンス情報を含む複数のパフォーマンス情報によって構成される現パフォーマンス情報時系列変化と、過去の複数のパフォーマンス情報によって構成される複数の過去パフォーマンス情報時系列変化との類似性についての複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化と最も類似性の高い過去パフォーマンス情報時系列変化に対応する過去の資源使用状態情報の推移から、当該第１の仮想マシンによる資源の予測使用量を求める第一予測処理、及び、前記各第１の仮想マシンについて、前記情報採取部が採取した前記パフォーマンス情報のうち、前記現パフォーマンス情報時系列変化と、前記複数の過去パフォーマンス情報時系列変化との類似性についての前記複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化との類似性の高い方から順に複数の過去パフォーマンス情報時系列変化を抽出し、該抽出した複数の過去パフォーマンス情報時系列変化に対応する各過去の資源使用状態情報に重み付け処理を施して、得られた重み付け平均資源使用状態情報の推移から当該第１の仮想マシンによる前記資源の予測使用量を求める第二予測処理のうちのいずれかの予測処理を行なう予測部と、
前記複数の第１の仮想マシンのそれぞれの予測使用量の合計が、前記第１の資源の量を超える場合、前記複数の第１の仮想マシンのうちの一部の仮想マシンを前記第２の物理マシンに移動させる資源管理部と、
を備えることを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理装置、資源管理方法、資源管理プログラム及び情報処理システムに関する。
【背景技術】
【０００２】
近年、仮想環境を実装している情報処理システムが広く用いられている。
仮想環境とは、１台の物理マシンを、複数の仮想マシン（Virtual Machine：ＶＭ）として仮想的に使用し、物理マシンの資源（ＣＰＵ、メモリなど）をこれらの仮想マシン間で共有するための環境である。
このような仮想環境を実現するために、仮想マシンに対して物理マシンの資源を割り当てて、仮想マシンを管理するための管理ツールが使用される。
【０００３】
このような管理ツールは、各物理マシンで実行されている全ての仮想マシンの資源使用量を監視する。そして、全仮想マシンの資源使用量の総和（以降、総資源使用量と呼ぶ）が、物理マシンに搭載されている実際の資源の量（以降、物理資源量と呼ぶ）を超えることが予測される場合、一部の仮想マシンを、物理資源量に余裕のある別の物理マシンに移動させる。
【０００４】
このような管理ツールは、各仮想マシンに対し、その仮想マシンが資源を最大限に使用する場合の資源使用量である、上限資源使用量を割り当てる。
ここで、１台の物理マシンに２つの仮想マシンを実行している物理マシンが複数台存在する例を考える。
図１８は、従来の仮想マシンの資源管理の手法を示す図であり、（ａ）は複数の仮想マシンの上限資源使用量を示し、（ｂ）は実際の総資源使用量の変化を示す。
【０００５】
仮想環境においては、図１８に示すように、仮想マシン１，２に、それぞれの上限資源使用量が割り当てられる。
全仮想マシンが資源を資源上限資源使用量まで使用することはないため、仮想マシン１，２の上限資源使用量の総和は、仮想マシン１，２が実行されている物理マシンの実際の資源量（物理資源量）を超える。例えば、図１８の（ａ）の例では、仮想マシン２に割り当てる上限資源使用量単独で、物理マシンの物理資源量と等しくなっている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−９８７９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
図１８（ａ）に示したように、上限資源使用量を設定してシステムを運用した場合において、２つの仮想マシンの総資源使用量が、物理マシンの物理資源量を超えそうになった場合、仮想マシンを他の物理マシンへ移動させることが必要となる。
図１８の（ｂ）に示す例では、時点ｔ１において、仮想マシン１，２の総資源使用量が、物理マシンの物理資源量を超えたため、管理ツールは、仮想マシン１又は２を、他の物理マシンに移動させる必要がある。
【０００８】
しかし、従来の管理ツールは、各仮想マシンの資源の使用状態（資源使用率や資源使用量）を監視して資源の割り当てを行なっているので、仮想マシンの資源使用率が高くなってから、その仮想マシンを移動させる。
このため、仮想マシンに高負荷がかかっている状態で、仮想マシンを移動させることになり、仮想マシンを採用している情報処理システム全体のパフォーマンスの低下を招く。
【０００９】
そこで、各仮想マシンの資源利用を監視し、各仮想マシンの資源使用状態から将来の資源使用量を予測する手法が提案されている。
この手法では、仮想マシンの資源利用を監視して将来の資源使用量を予測し、今後資源が不足すると予測される場合、事前に仮想マシンを動的に他の物理マシンに移動させている。
【００１０】
しかしながら、資源使用状態は、各仮想マシンが実際に使用した資源の量を示す表面的な情報に過ぎない。このため、資源使用状態からは、資源が使用された状況や、資源がどのように使用されたのかを知ることができない。例えば、命令特性（命令の実行数や命令の種類など）や、キャッシュの利用状況（キャッシュヒット／ミス率など）は、資源の使用状態からは知ることができない。
【００１１】
このため、資源使用状態単独では、仮想マシンの将来の資源使用量を正確に予測することが不可能であり、資源使用量をより正確に予測し、仮想マシンを採用している情報処理システム全体の性能を向上させることが可能な方法が求められている。
１つの側面では、本発明は、仮想マシンを採用している情報処理システム全体の性能を向上させることを目的とする。
【００１２】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
【課題を解決するための手段】
【００１３】
この管理装置は、資源を備えた物理マシン上で実行される複数の仮想マシンを管理する管理装置であって、前記複数の仮想マシンのそれぞれについて、当該仮想マシンによる資源の使用状態を示す資源使用状態情報と、当該仮想マシンのパフォーマンス情報とを一対の情報として時系列的に採取する情報採取部と、各仮想マシンについて、前記情報採取部が採取した前記パフォーマンス情報のうち、現在のパフォーマンス情報を含む複数のパフォーマンス情報によって構成される現パフォーマンス情報時系列変化と、過去の複数のパフォーマンス情報によって構成される複数の過去パフォーマンス情報時系列変化との類似性についての複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化と最も類似性の高い過去パフォーマンス情報時系列変化に対応する過去の資源使用状態情報の推移から、当該仮想マシンによる資源の予測使用量を求める第一予測処理、及び、前記各仮想マシンについて、前記情報採取部が採取した前記パフォーマンス情報のうち、前記現パフォーマンス情報時系列変化と、前記複数の過去パフォーマンス情報時系列変化との類似性についての前記複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化との類似性の高い方から順に複数の過去パフォーマンス情報時系列変化を抽出し、該抽出した複数の過去パフォーマンス情報時系列変化に対応する各過去の資源使用状態情報に重み付け処理を施して、得られた重み付け平均資源使用状態情報の推移から当該仮想マシンによる前記資源の予測使用量を求める第二予測処理のうちのいずれかの予測処理を行なう予測部と、前記複数の仮想マシンのそれぞれの予測使用量の合計が、前記資源の量を超える場合、前記複数の仮想マシンのうちの一部の仮想マシンを他の物理マシンに移動させる資源管理部と、を備える。
【００１４】
また、この資源管理方法は、資源を備えた物理マシン上で実行される複数の仮想マシンを、コンピュータによって管理する資源管理方法であって、前記コンピュータにより、前記複数の仮想マシンのそれぞれについて、当該仮想マシンによる資源の使用状態を示す資源使用状態情報と、当該仮想マシンのパフォーマンス情報とを一対の情報として時系列的に採取し、前記コンピュータにより、各仮想マシンについて、採取された前記パフォーマンス情報のうち、現在のパフォーマンス情報を含む複数のパフォーマンス情報によって構成される現パフォーマンス情報時系列変化と、過去の複数のパフォーマンス情報によって構成される複数の過去パフォーマンス情報時系列変化との類似性についての複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化と最も類似性の高い過去パフォーマンス情報時系列変化に対応する過去の資源使用状態情報の推移から、当該仮想マシンによる資源の予測使用量を求める第一予測処理、及び、前記各仮想マシンについて、前記採取された前記パフォーマンス情報のうち、前記現パフォーマンス情報時系列変化と、前記複数の過去パフォーマンス情報時系列変化との類似性についての前記複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化との類似性の高い方から順に複数の過去パフォーマンス情報時系列変化を抽出し、該抽出した複数の過去パフォーマンス情報時系列変化に対応する各過去の資源使用状態情報に重み付け処理を施して、得られた重み付け平均資源使用状態情報の推移から当該仮想マシンによる前記資源の予測使用量を求める第二予測処理のうちのいずれかの予測処理を行ない、前記コンピュータにより、前記複数の仮想マシンのそれぞれの予測使用量の合計が、前記資源の量を超える場合、前記複数の仮想マシンのうちの一部の仮想マシンを他の物理マシンに移動させる。
【００１５】
また、この資源管理プログラムは、資源を備えた物理マシン上で実行される複数の仮想マシンを管理する資源管理プログラムであって、コンピュータによって実行されたときに、前記コンピュータに、前記複数の仮想マシンのそれぞれについて、当該仮想マシンによる資源の使用状態を示す資源使用状態情報と、当該仮想マシンのパフォーマンス情報とを一対の情報として時系列的に採取させ、各仮想マシンについて、採取された前記パフォーマンス情報のうち、現在のパフォーマンス情報を含む複数のパフォーマンス情報によって構成される現パフォーマンス情報時系列変化と、過去の複数のパフォーマンス情報によって構成される複数の過去パフォーマンス情報時系列変化との類似性についての複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化と最も類似性の高い過去パフォーマンス情報時系列変化に対応する過去の資源使用状態情報の推移から、当該仮想マシンによる資源の予測使用量を求める第一予測処理、及び、前記各仮想マシンについて、前記採取された前記パフォーマンス情報のうち、前記現パフォーマンス情報時系列変化と、前記複数の過去パフォーマンス情報時系列変化との類似性についての前記複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化との類似性の高い方から順に複数の過去パフォーマンス情報時系列変化を抽出し、該抽出した複数の過去パフォーマンス情報時系列変化に対応する各過去の資源使用状態情報に重み付け処理を施して、得られた重み付け平均資源使用状態情報の推移から当該仮想マシンによる前記資源の予測使用量を求める第二予測処理のうちのいずれかの予測処理を実行させ、前記複数の仮想マシンのそれぞれの予測使用量の合計が、前記資源の量を超える場合、前記複数の仮想マシンのうちの一部の仮想マシンを他の物理マシンに移動させる。
【００１６】
また、この情報処理システムは、第１の資源を備え、複数の第１の仮想マシンを実行する第１の物理マシンと、第２の資源を備え、少なくとも１つの第２の仮想マシンを実行する第２の物理マシンと、前記第１及び第２の物理マシンを管理する管理装置と、を備え、前記管理装置は、前記複数の第１の仮想マシンのそれぞれについて、当該仮想マシンによる資源の使用状態を示す資源使用状態情報と、当該仮想マシンのパフォーマンス情報とを一対の情報として時系列的に採取する情報採取部と、各第１の仮想マシンについて、前記情報採取部が採取した前記パフォーマンス情報のうち、現在のパフォーマンス情報を含む複数のパフォーマンス情報によって構成される現パフォーマンス情報時系列変化と、過去の複数のパフォーマンス情報によって構成される複数の過去パフォーマンス情報時系列変化との類似性についての複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化と最も類似性の高い過去パフォーマンス情報時系列変化に対応する過去の資源使用状態情報の推移から、当該第１の仮想マシンによる資源の予測使用量を求める第一予測処理、及び、前記各第１の仮想マシンについて、前記情報採取部が採取した前記パフォーマンス情報のうち、前記現パフォーマンス情報時系列変化と、前記複数の過去パフォーマンス情報時系列変化との類似性についての前記複数の比較結果に基づいて、前記複数の過去パフォーマンス情報時系列変化のうち、前記現パフォーマンス情報時系列変化との類似性の高い方から順に複数の過去パフォーマンス情報時系列変化を抽出し、該抽出した複数の過去パフォーマンス情報時系列変化に対応する各過去の資源使用状態情報に重み付け処理を施して、得られた重み付け平均資源使用状態情報の推移から当該第１の仮想マシンによる前記資源の予測使用量を求める第二予測処理のうちのいずれかの予測処理を行なう予測部と、前記複数の第１の仮想マシンのそれぞれの予測使用量の合計が、前記第１の資源の量を超える場合、前記複数の第１の仮想マシンのうちの一部の仮想マシンを前記第２の物理マシンに移動させる資源管理部と、を備える。
【発明の効果】
【００１７】
本発明によれば、仮想マシンを採用している情報処理システム全体の性能を向上させることができる。
【図面の簡単な説明】
【００１８】
【図１】実施形態の一例としての仮想環境を提供する情報処理システムのシステム構成を模式的に示すブロック図である。
【図２】実施形態の一例としての情報処理システムの機能構成を模式的に示すブロック図である。
【図３】実施形態の一例としての管理装置の資源使用量予測部の予測手法の概略を示す図であり、（ａ）は性能データＤＢに蓄積されている性能データ、（ｂ）は現在の性能データをそれぞれ示す。
【図４】実施形態の一例としての管理マシンの採取部の性能データ採取部による性能データの採取・蓄積処理を示すフローチャートである。
【図５】実施形態の一例としての管理マシンの管理部の資源使用量予測部による資源使用量予測処理を示すフローチャートである。
【図６】実施形態の一例としての管理マシンの管理部の資源管理部による資源管理処理を示すフローチャートである。
【図７】実施形態の一例としての管理マシンの管理部の資源使用量予測部による相関を用いた予測を示すフローチャートである。
【図８】実施形態の一例としての管理マシンの管理部の資源使用量予測部による階層的クラスター分析を用いた予測を示すフローチャートである。
【図９】実施形態の一例における性能データの例を示す図であり、（ａ）はＣＰＵ使用率及び実行命令数の推移を表形式で示し、（ｂ）は（ａ）の表のデータを表わすグラフである。
【図１０】実施形態の一例における性能データＤＢ内の過去の性能データの例を示す図であり、（ａ）はＣＰＵ使用率及び実行命令数の推移を表形式で示し、（ｂ）は（ａ）の表のデータを表わすグラフである。
【図１１】実施形態の一例における性能データＤＢ内の過去の性能データの例を示す図であり、（ａ）はＣＰＵ使用率及び実行命令数の推移を表形式で示し、（ｂ）は（ａ）の表のデータを表わすグラフである。
【図１２】実施形態の一例における性能データＤＢ内の過去の性能データの例を示す図であり、（ａ）はＣＰＵ使用率及び実行命令数の推移を表形式で示し、（ｂ）は（ａ）の表のデータを表わすグラフである。
【図１３】実施形態の一例における現性能データと過去の性能データとの相関係数の例を示す表である。
【図１４】図９の性能データを正規化した値を示す表である。
【図１５】図１０〜図１２の性能データを正規化した値を示す表である。
【図１６】図１５の正規化性能データ間の距離をユークリッド法で算出した結果を示す表である。
【図１７】図１６の性能データ間の距離を表わす樹形図（デンドログラム）である。
【図１８】従来の仮想マシンの資源管理の手法を示す図であり、（ａ）は複数の仮想マシンの上限資源使用量を示し、（ｂ）は実際の総資源使用量の変化を示す。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施の形態を説明する。
（Ａ）構成及び機能
以下、図１〜図３，図９を参照して、実施形態の一例としての情報処理システム１の構成について説明する。
図１は、仮想環境を提供する情報処理システム１のシステム構成を模式的に示すブロック図である。
【００２０】
この情報処理システム１は、例えば、仮想環境を提供しており、管理マシン３と、ネットワーク１９を介して管理マシン３に接続されている複数台の物理マシン（情報処理装置）５−１，５−２，…とを備える。
なお、情報処理システム１には、多数の物理マシン５−１，５−２，…が備えられるが、説明の便宜上、図１には２台の物理マシン５−１，５−２のみを示す。
【００２１】
物理マシン５−１は、ＣＰＵ（資源）９−１やメモリ（資源）１１−１、不図示のストレージ等を備え、物理マシン５−２は、ＣＰＵ（資源）９−２やメモリ（資源）１１−２、不図示のストレージ等を備える。
ＣＰＵ９−１，９−２は、それぞれメモリ１１−１，１１−２や不図示のストレージ等から不図示のプログラムやＯＳ（Operating System）等を読み出し、各種処理を実行するプロセッサである。
【００２２】
メモリ１１−１，１１−２は、ＣＰＵ９−１，９−２がそれぞれ演算や制御を行なうに際して、種々のデータやプログラムを格納する記憶領域である。
また、物理マシン５−１，５−２は、それぞれ、ハイパーバイザ７−１，７−２を備える。
ハイパーバイザ７−１，７−２は、物理マシン５−１，５−２上に仮想環境を実現するための制御プログラムである。
【００２３】
ハイパーバイザ７−１，７−２は、それぞれ、物理マシン５−１，５−２上に１以上の仮想マシンを作成し、作成した仮想マシン上で、それぞれ独自にＯＳ（Operating System）を実行させる。
例えば、図１に示すように、ハイパーバイザ７−１は、物理マシン５−１上に２つの仮想マシン１３−１，１３−２を作成している。
【００２４】
また、ハイパーバイザ７−２も同様に、物理マシン５−２上に１の仮想マシン１３−３を作成している。
物理マシン５の一部アーキテクチャでは、ハイパーバイザ７−１，７−２は、物理マシン５−１，５−２上で直接動作してもよい。或いは、ハイパーバイザ７−１，７−２が、物理マシン５−１，５−２のホストＯＳ１４−１，１４−２上で動作してもよい。
【００２５】
なお、以下、物理マシンを示す符号としては、複数の物理マシンのうち１つを特定する必要があるときには符号５−１，５−２，…を用いるが、任意の物理マシンを指すときには符号５を用いる。
また、以下、ハイパーバイザを示す符号としては、複数のハイパーバイザのうち１つを特定する必要があるときには符号７−１，７−２，…を用いるが、任意のハイパーバイザを指すときには符号７を用いる。
【００２６】
また、以下、物理マシン５のＣＰＵを示す符号としては、複数のＣＰＵのうち１つを特定する必要があるときには符号９−１，９−２，…を用いるが、任意のＣＰＵを指すときには符号９を用いる。
また、以下、物理マシン５のメモリを示す符号としては、複数のメモリのうち１つを特定する必要があるときには符号１１−１，１１−２，…を用いるが、任意のメモリを指すときには符号１１を用いる。
【００２７】
そして、各仮想マシン１３−１〜１３−３は、それぞれ、ゲストＯＳ１５−１〜１５−３と、アプリケーションプログラム１６−１〜１６−３とを実行している。これらのゲストＯＳ１５−１〜１５−３は、それぞれ仮想マシン１３−１〜１３−３上で実行されるので、ゲストＯＳと呼ばれる。
これらのゲストＯＳ１５−１〜１５−３は、同じＯＳであっても、異なるＯＳであってもよい。例えば、ゲストＯＳ１５−１がＷｉｎｄｏｗｓ（登録商標）ＯＳであり、ゲストＯＳ１５−２がＬｉｎｕｘ（登録商標）等のＵｎｉｘ（登録商標）ＯＳであってもよい。
【００２８】
アプリケーションプログラム１６−１〜１６−３は、例えばウェブブラウザや、メールソフト、業務ソフトウェアなどのアプリケーションプログラムである。これらのアプリケーションプログラムを総称してアプリケーションプログラム１６−１〜１６−３と呼ぶ。
なお、以下、仮想マシンを示す符号としては、複数の仮想マシンのうち１つを特定する必要があるときには符号１３−１〜１３−３を用いるが、任意の仮想マシンを指すときには符号１３を用いる。
【００２９】
また、以下、ゲストＯＳを示す符号としては、複数のゲストＯＳのうち１つを特定する必要があるときには符号１５−１〜１５−３を用いるが、任意のゲストＯＳを指すときには符号１５を用いる。
また、以下、アプリケーションプログラムを示す符号としては、複数のアプリケーションプログラムのうち１つを特定する必要があるときには符号１６−１〜１６−３を用いるが、任意のアプリケーションプログラムを指すときには符号１６を用いる。
【００３０】
管理マシン３は、仮想マシン１３を管理する情報処理装置であり、不図示のＣＰＵやメモリ、内部記憶装置等を備える。
管理マシン３は、前述のようにネットワーク１９を介して各物理マシン５に接続されており、各物理マシン５上のハイパーバイザ７を介して、仮想マシン１３をそれぞれ管理している。
【００３１】
管理マシン３は、ＣＰＵ８と、メモリ１０と、ストレージ１２を備える。
ＣＰＵ８は、メモリ１０やストレージ１２等から不図示のプログラムやＯＳ（Operating System）等を読み出し、各種処理を実行するプロセッサである。
メモリ１０は、ＣＰＵ８が演算や制御を行なうに際して、種々のデータやプログラムを格納する記憶領域である。
【００３２】
ストレージ１２は、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などのストレージであり、管理マシン３のＯＳやプログラムを記憶している。また、ストレージ１２は、後述する性能データＤＢ（Database）３３として機能する。
なお、図１中、物理マシン５には、ＣＰＵ９、メモリ１１がそれぞれ１つしか図示されていないが、ＣＰＵ９やメモリ１１が複数搭載されていてもよい。
【００３３】
また、管理マシン３も複数のＣＰＵ８やメモリ１０、ストレージ１２を備えていてもよい。
図２は、実施形態の一例としての情報処理システム１の機能構成を模式的に示すブロック図である。
物理マシン５−１，５−２は、それぞれ、前述のＣＰＵ９−１，９−２及びメモリ１１−１，１１−２（図１参照）のほか、ＰＭＣ（Performance Monitor Counter）１７−１，１７−２も備える。
【００３４】
ＰＭＣ１７−１，１７−２は、物理マシン５−１，５−２に関するアーキテクチャ情報を採取するために、ＣＰＵ９−１，９−２にそれぞれ組み込まれている機能である。ＰＭＣ１７−１，１７−２は、例えば、後述するＰＭＣ制御部４３−１，４３−２の指示を受けて、その物理マシン５上で実行されている各仮想マシン１３の資源利用に関連する複数のＰＭＣデータ（仮想マシンのパフォーマンス情報；ＰＭＣ情報）を採取する。仮想マシン１３の資源利用に関連するＰＭＣデータとしては、ＣＰＵ９の命令実行数や命令の種類（命令特性）、キャッシュミス率（キャッシュ利用状況）等がある。このようなＰＭＣデータは、各仮想マシン１３が、仮想マシン１３が実行されている物理マシン５の資源をどのように使用しているかを示す。
【００３５】
なお、以下、ＰＭＣを示す符号としては、複数のＰＭＣのうち１つを特定する必要があるときには符号１７−１，１７−２を用いるが、任意のＰＭＣを指すときには符号１７を用いる。
例えば、ＰＭＣ１７が採取するＰＭＣ情報としては、以下のようなものが挙げられる。また、ＰＭＣ情報が、複数の他のＰＭＣ項目から算出されることもある。
【００３６】
例えば、ＰＭＣ情報の一種のＩＰＣ（Instruction Per Clock）は、１クロックサイクルあたりに実行された命令数を示す。この値は、リタイヤされた命令をカウントするＰＭＣ情報（INST_RETIRED）と、経過したクロックサイクル数をカウントするＰＭＣ情報（CPU_OP_CYCLES）とから、以下の式に従って計算される。
ＩＰＣ＝（INST_RETIREDt1−INST_RETIREDt0）÷（CPU_OP_CYCLESt1−CPU_OP_CYCLESt0）
なお、ｔ０，ｔ１はそれぞれカウントの始点、終点であり、INST_RETIREDt0、INST_RETIREDt1はそれぞれ時点ｔ０，ｔ１でのリタイヤされた命令数であり、CPU_OP_CYCLESt0、CPU_OP_CYCLESt1はそれぞれ時点ｔ０，ｔ１でのクロックサイクル数である。
【００３７】
また、命令に関する他のＰＭＣ情報としては、命令実行数、ＣＰＩ（Clocks Per Instruction）、分岐命令比、予測ミス分岐命令比がある。
命令実行数は、単位時間あたりに実行された命令数を示し、単位時間が１秒のものとして、ＭＩＰＳ（Million Instructions Per Second）がある。
ＣＰＩは、１命令実行に要するＣＰＵクロック数を示す。一般に、この値が低いほどシステムの負荷が低く好ましい。ＣＰＩは、前述のＩＰＣの逆数である。
【００３８】
分岐命令比は、命令数に対する分岐命令数の割合を示す。一般に、この値が低いほど好ましい。
予測ミス分岐命令比は、分岐命令数に対する予測ミス分岐命令数の割合を示す。一般に、この値が低いほど好ましい。
ＣＰＵ使用率を示すＰＭＣ情報としては、ＵＳＥＲレベル、ＯＳレベル、アイドル状態のそれぞれのＣＰＵ使用率が、ＰＭＣ情報として得られる。
【００３９】
コンピュータ内部で各回路がデータをやり取りするための伝送路であるバス利用状況を示すＰＭＣ情報としては、制御バス利用率、データバス利用率がある。一般に、これらの値が大きくなるほど平均メモリアクセス時間は長くなる。メモリアクセス時間が長くなると、キャッシュミス時のペナルティが大きくなるので、システム性能に多大な悪影響を及ぼす。
【００４０】
キャッシュ利用状況を示すＰＭＣ情報としては、キャッシュミス率、Ｌ１キャッシュリードミスヒット率、Ｌ２キャッシュデータリードミスヒット率がある。
キャッシュミス率は、以下の式により求められる。一般に、キャッシュミス率が低いほど好ましい。
キャッシュミス率＝キャッシュミス発生回数／実行命令数
また、Ｌ１キャッシュリードミスヒット率は、命令数に対するデータＬ１キャッシュリードミスヒット発生回数の割合を示す。一般に、この値が低いほど好ましい。
【００４１】
Ｌ２キャッシュデータリードミスヒット率は、命令数に対するＬ２キャッシュデータリードミスヒット発生回数の割合を示す。一般に、この値が低いほど好ましい。
また、図２のハイパーバイザ７−１，７−２は、それぞれ、資源使用量採取部４１−１，４１−２と、ＰＭＣ制御部４３−１，４３−２とを備える。
なお、以下、資源使用量採取部を示す符号としては、複数の資源使用量採取部のうち１つを特定する必要があるときには符号４１−１，４１−２を用いるが、任意の資源使用量採取部を指すときには符号４１を用いる。
【００４２】
また、以下、ＰＭＣ制御部を示す符号としては、複数のＰＭＣ制御部のうち１つを特定する必要があるときには符号４３−１，４３−２を用いるが、任意のＰＭＣ制御部を指すときには符号４３を用いる。
資源使用量採取部４１は、資源使用量採取部４１が含まれるハイパーバイザ７が管理する各仮想マシン１３に関して、仮想マシン１３毎のＣＰＵ９やメモリ１１等の資源の利用に関する情報を採取する。なお、資源の利用情報には、資源の使用サイズや、資源の使用率などの各種単位の情報が含まれるが、以降の説明では、これらを総称して資源使用量と呼ぶ。このため、資源使用量という場合、使用資源のサイズだけではなく、資源の使用率も含んでもよい。
【００４３】
ＰＭＣ制御部４３は、ＰＭＣ制御部４３が含まれるハイパーバイザ７が実行されている物理マシン５のＰＭＣ１７に対し、仮想マシン１３毎のＰＭＣデータを採取するように指示を行なう。
なお、以降、資源使用量に関する情報とＰＭＣデータとをまとめて性能データと呼ぶ。
図９は、実施形態の一例における性能データＶＭ１の例を示す図であり、（ａ）はＣＰＵ使用率及び実行命令数の推移を表形式で示し、（ｂ）は（ａ）の表のデータを表わすグラフである。
【００４４】
図９の例では、「ＶＭ１」という仮想マシン１３のＣＰＵ使用率（％）と命令実行数とを、１０秒毎に採取している。
図９の（ｂ）に示すように、この例では、ＣＰＵ使用率（％）と命令実行数との変化はほぼ同じである。
また、管理マシン３は、管理部２１と採取部３１とを有する。
【００４５】
採取部３１は、各仮想マシン１３の資源使用量に関する情報の採取、並びに各仮想マシン１３のＰＭＣデータの採取と、その蓄積とを行なう。図２に示すように、採取部３１は、性能データＤＢ（記憶域）３３と、性能データ採取部（情報採取部）３５とを備える。
性能データ採取部３５は、ハイパーバイザ７の後述する資源使用量採取部４１に対して、当該ハイパーバイザ７が管理する各仮想マシン１３の資源使用量を採取して、性能データ採取部３５に報告するように指示する。また、性能データ採取部３５は、ハイパーバイザ７の後述するＰＭＣ制御部４３に対して、各仮想マシンの資源使用量に関連する複数のＰＭＣデータを採取して、性能データ採取部３５に報告するように指示する。そして、性能データ採取部３５は、採取した仮想マシン１３毎の資源使用量及びＰＭＣデータを、性能データＤＢ３３に時系列的に蓄積する。
【００４６】
性能データＤＢ３３は、性能データ採取部３５が採取した仮想マシン１３毎の資源使用量（資源使用状態情報）とＰＭＣデータ（パフォーマンス情報）とを時系列的に蓄積するデータベースである。
また、管理マシン３の管理部２１は、資源使用量予測部（予測部）２３と、資源管理部（管理部）２５とを備える。
【００４７】
資源使用量予測部２３は、性能データＤＢ３３に蓄積されている過去の資源使用量及びＰＭＣデータ（性能データ）と、性能データ採取部３５が採取する現在の性能データに基づいて、各仮想マシン１３の将来の資源使用量を予測する。
図３に示すように、資源使用量予測部２３は、性能データＤＢ３３内の仮想マシン１３の過去の性能データから、当該仮想マシン１３の現在の性能データ値の推移に類似するデータを特定し、その推移から仮想マシン１３の将来の資源使用量を予測する。
【００４８】
図３は、実施形態の一例としての管理装置３の資源使用量予測部２３の予測手法の概略を示す図であり、（ａ）は性能データＤＢ３３に蓄積されている性能データ、（ｂ）は現在の性能データをそれぞれ示す。
資源使用量予測部２３は、性能データＤＢ３３内の仮想マシン１３の性能データ値の時系列変化と、仮想マシン１３の現在の性能データ（以下、現性能データと呼ぶ）の値の時系列変化とを比較し、類似する過去データを特定する。以降の説明では、データの比較を行ない、類似するデータを特定する処理を類似検索と呼ぶ。
【００４９】
図３の例では、資源使用量予測部２３は、図３（ａ）の過去データ１〜ｎ（ｎは２以上の整数）のうち、過去データ１が（ｂ）の現在の値の変化と似ていると特定する。そして、過去データ１の値の推移から、仮想マシン１３の将来の資源使用量を予測する。
例えば、資源使用量予測部２３は、相関を用いて類似検索を行ない、予測対象の性能の現性能データと、過去の各性能データとの相関を求める。そして、予測対象の性能の現性能データと相関が高い過去の性能データを抽出する。
【００５０】
或いは、資源使用量予測部２３は、階層的クラスター分析を用いて類似検索を行なってもよい。資源使用量予測部２３は、クラスター分析手法を用いて、性能データを適当な数のグループに分類する。そして、資源使用量予測部２３は、現性能データを分類してグループ化した性能データ群と、現性能データとの類似度を、相関係数などにより求める。
相関や階層的クラスター分析を用いた類似検索の詳細については、図９〜図１７を参照して後述する。
【００５１】
資源管理部２５は、資源使用量予測部２３が行なった予測に基づいて、将来、資源使用量が増えると予測される仮想マシン１３を、資源に余裕があると予測される他の物理マシン５に移動させる。
（Ｂ）動作
次に、図４〜図１７を参照して、実施形態の一例としての管理マシン５の各構成要素の処理を説明する。
【００５２】
まず、図４を参照して、実施形態の一例としての管理マシン５の採取部３１の性能データ採取部３５による性能データの採取・蓄積処理について説明する。
図４は、性能データ採取部３５による性能データの採取・蓄積処理を示すフローチャートである。
ステップＳ１において、性能データ採取部３５は、性能データを収集する物理マシン５で実行されているハイパーバイザ７のＰＭＣ制御部４３に対して、当該物理マシン５のＰＭＣ１７から、仮想マシン１３毎のＰＭＣデータを採取するように指示する。
【００５３】
ステップＳ３において、物理マシン５のＰＭＣ１７がデータの採取を開始する。
ステップＳ５において、性能データ採取部３５は、所定時間Ｔ１が経過したかどうかを判定する。この所定時間Ｔ１は、例えば、５００〜１０００ミリ秒などであり、ＰＭＣ１７によるモニタ間隔である。所定時間Ｔ１は、例えば運用管理者等によって事前に設定されている。
【００５４】
所定時間Ｔ１が経過していない場合（ステップＳ５のＮＯルート参照）、処理がステップＳ１３に移り、所定時間Ｔ１が経過するまで待機する。
一方、所定時間Ｔ１が経過している場合（ステップＳ５のＹＥＳルート参照）、ステップＳ７において、性能データ採取部３５は、性能データを収集する物理マシン５のハイパーバイザ７のＰＭＣ制御部４３に、当該物理マシン５のＰＭＣ１７からＰＭＣデータ値を読み出すように指示する。
【００５５】
また、ステップＳ９において、性能データ採取部３５は、性能データを収集する物理マシン５のハイパーバイザ７の資源使用量採取部４１に対し、仮想マシン１３毎の資源使用量を読み出すように指示する。
次にステップＳ１１において、性能データ採取部３５は、ステップＳ７で採取した仮想マシン１３毎のＰＭＣデータ値と、ステップＳ９で採取した仮想マシン１３毎の資源使用量とを、性能データＤＢ３３に保存する。
【００５６】
次に、ステップＳ１３において、性能データ採取部３５は、性能データの採取が終了しているかどうかを判定する。
性能データの採取が終了していない場合（ステップＳ１３のＮＯルート参照）、処理が前述のステップＳ５に戻る。
一方、性能データの採取が終了している場合（ステップＳ１３のＹＥＳルート参照）、性能データ採取部３５は、性能データの採取・蓄積処理を終了する。
【００５７】
性能データ採取部３５は、例えば、上記性能データの採取・蓄積処理を、情報処理システム1内の全ての物理マシン５について行ない、全物理マシン５の性能データを採取する。或いは、場合によっては、上記性能データの採取・蓄積処理を特定の物理マシン５に対して行なってもよい。
次に、図５を参照して、実施形態の一例としての管理マシン３の管理部２１の資源使用量予測部２３による資源使用量予測処理について説明する。
【００５８】
図５は、資源使用量予測部２３による資源使用量予測処理を示すフローチャートである。
ステップＳ２１において、資源使用量予測部２３は、予測を行なう対象の仮想マシン１３について、現在から所定期間Ｔ２遡った時点から現在までの性能データ（現性能データ）を採取する。この所定期間Ｔ２は、運用管理者等によって事前に設定されている。その際、資源使用量予測部２３は、その仮想マシン１３を管理するハイパーバイザ７の資源使用量採取部４１及びＰＭＣ制御部４３に、現性能データを採取するように指示する。
【００５９】
次に、ステップＳ２３において、資源使用量予測部２３は、ステップＳ２１で採取した現性能データと似た値の変化をするｎ個（ｎ＝２以上の整数）の過去の性能データ（性能データ群）を、性能データＤＢ３３から検索して抽出（類似検索）する。例えば、資源使用量予測部２３は、相関や階層的クラスター分析を用いて類似検索を行なう。これらの類似検索の具体的な手法については、図９〜図１７を参照して後述する。
【００６０】
ステップＳ２５において、資源使用量予測部２３は、ステップＳ２３の類似検索で得た過去のｎ個の性能データ（性能データ群）に対して、類似度に応じた重み付けを行なうかどうかを判定する。
類似度に応じた重み付けを行なわない場合（ステップＳ２５のＮＯルート参照）、ステップＳ２７において、資源使用量予測部２３は、ステップＳ２３で抽出した性能データ群のうち、現資源使用量と最も似た過去の資源使用量を、予測資源使用量とする。そして、処理を終了する。
【００６１】
一方、類似度に応じた重み付けを行なう場合（ステップＳ２５のＹＥＳルート参照）、ステップＳ２９において、資源使用量予測部２３は、ステップＳ２３で抽出した、類似する複数の過去の性能データのその後の資源使用量を、類似度に応じて重み付けする。
例えば、資源使用量予測部２３は、類似する複数の過去の性能データを、類似度に応じたランキングにより重み付けする。
【００６２】
例えば、資源使用量予測部２３は、上位５個（つまり、ｎ＝５）の過去の性能データについて、類似度の高いものから順に、１位のデータに５、２位のデータに４、３位のデータに３、４位のデータに２、５位のデータに１の重みをそれぞれ与える。
或いは、資源使用量予測部２３は、現性能データに対する類似度に応じて、過去の性能データに重み付けをし、その後の資源使用量にその重みを乗算する。
【００６３】
次に、ステップＳ３１において、資源使用量予測部２３は、ステップＳ２９で重み付けした複数の資源使用量の平均値を求める。
例えば、上記の例において、各性能データのその後の資源使用量が、ランキングの高い順から９０、７０、８０、６０、１００であった場合、資源使用量予測部２３は、以下の式を用いて、重み付けした資源使用量を８２として求める。
（９０×５＋７０×４＋８０×３＋６０×２＋１００×１）／１５＝８２
或いは、ステップＳ２９で、現性能データに対する類似度に応じて過去の性能データに重み付けをし、その後の資源使用量に重みを乗算する場合、各性能データｘｉ（ｉ＝１，．．．，ｎ）に、重みｗｉを乗算したときの加重平均（重み付き平均）を以下の式を用いて算出する。
【００６４】
加重平均＝（ｗ１ｘ１＋．．．＋ｗｎｘｎ）÷（ｗ１＋．．．＋ｗｎ）
これにより、資源使用量予測処理を終了する。
以下、ステップＳ２３において、資源使用量予測部２３が、類似検索を行なう際の具体的な手法について、図９〜図１７を参照して説明する。
まず、図７を参照して、相関を用いた類似検索について説明する。
【００６５】
図７は、実施形態の一例としての管理マシン３の管理部２１の資源使用量予測部２３による相関を用いた予測を示すフローチャートである。
ステップＳａ１において、資源使用量予測部２３は、予測を行なう対象の資源の使用量に関して、現資源使用量と、過去の性能データ中の当該資源の資源使用量との相関を求める。
【００６６】
ステップＳａ２において、資源使用量予測部２３は、予測対象の資源の使用量に関して相関が高い過去の性能データを抽出する。
ステップＳａ３において、予測対象の資源の使用量に関して相関が高い過去の性能データについて、他の性能項目のそれぞれの相関を計算する。
ステップＳａ４において、資源使用量予測部２３は、ステップＳａ３の計算の結果、他の性能項目にも相関が見られる場合、その過去の性能データを、類似性の高い過去の性能データであると判定する。
【００６７】
ステップＳａ４での類似性の求め方としては、予測対象の資源の使用量との相関の度合いにより性能項目に重み付けして、性能データの相関係数を計算し、これを類似度としてもよい。また、予測対象の資源の使用量との相関が最も高い性能項目の相関係数を類似度としてもよい。
なお、相関係数とは、−１〜＋１の範囲をとる実数値であり、例えば、２組の数値データ列（ｘ，ｙ）＝｛（ｘｉ，ｙｉ）｝（ｉ＝１，２，…ｎ）の相関係数は、下記の式から求めることができる。
【００６８】
【数１】
0005853821.tif 000002
【００６９】
上記式において、
【００７０】
【数２】
0005853821.tif 000003
および
【数３】
0005853821.tif 000004
【００７１】
は、それぞれデータ（ｘ）＝｛ｘｉ｝、（ｙ）＝｛ｙｉ｝の相加平均である。
なお、相関係数が＋１に近いほどデータ間の類似性が高い。
或いは、相関係数を他の各種の公知手法により求めてもよい。
例えば、資源使用量予測部２３が、前述の図９の性能データの仮想マシンＶＭ１のＣＰＵ使用率と実行命令数について、相関係数を求めるとする。図９の例では、相関係数が０．９７６となり、ＣＰＵ使用率と実行命令数とはかなり相関が高いことがわかる。
【００７２】
そこで、資源使用量予測部２３は、ＣＰＵ使用率と実行命令数とについて、過去の性能データとＶＭ１の現性能データとの相関を算出し、相関の高い過去の性能データを抽出する。
例えば、仮想マシンＶＭ１の過去の性能データとして、性能データＤＢ３３に、図１０〜図１２に示す性能データＶＭ１−０１〜ＶＭ１−０３が蓄積されているとする。
【００７３】
なお、図１０〜図１２は、実施形態の一例における性能データＤＢ３３内の性能データの例を示し、（ａ）はＣＰＵ使用率及び実行命令数の推移を表形式で示し、（ｂ）は（ａ）の表のデータを表わすグラフである。
例えば、資源使用量予測部２３は、図１０〜図１２の性能データＶＭ１−０１〜ＶＭ１−０３について、図９に示した現性能データＶＭ１との相関を求める。この結果を図１３に示す。
【００７４】
図１３は、実施形態の一例における現性能データＶＭ１と過去の性能データＶＭ１−０１〜ＶＭ１−０３との相関係数の例を示す表である。
図１３に示すように、ＣＰＵ使用率、実行命令数共に、過去データＶＭ１−０１が最も相関があることがわかる。そこで、資源使用量予測部２３は、過去データＶＭ１−０１のその後のＣＰＵ使用率を、予測ＣＰＵ使用率として使用する。
【００７５】
次に、図８を参照して、階層的クラスター分析を用いた類似検索について説明する。
図８は、実施形態の一例としての管理マシン３の管理部２１の資源使用量予測部２３による階層的クラスター分析を用いた予測を示すフローチャートである。
資源使用量予測部２３は、性能データＤＢ３３に蓄積した時系列性能データを、クラスター分析により、適当な数のグループに分類し、最も類似性の高いグループ（群）を抽出する。
【００７６】
このため、ステップＳｂ１において、資源使用量予測部２３は、単位の異なる性能データ値同士を比較するためにデータを正規化する。例えば、資源使用量予測部２３は、最大値を１、最小値を０としてデータを正規化したり、平均を０、標準偏差を１としてデータを正規化する。
例えば、図９に示した性能データＶＭ１を最大値・最小値で正規化した結果を図１４に、図１０〜図１２に示した性能データＶＭ１−０１〜ＶＭ１−０３を最大値・最小値で正規化した結果を図１５にそれぞれ示す。図１５中、ＣＰＵ−ｔｍ（ｍ＝１〜５）は、時点ｔｍにおけるＣＰＵ使用率の値を正規化した値、ＩＮＳＴ−ｔｍは、時点ｔｍにおける実行命令数の値を正規化した値である。
【００７７】
なお、正規化手法としては、任意の正規化手法を使用することができる。
次に、ステップＳｂ２において、資源使用量予測部２３は、正規化した時系列性能データ間の距離を求める。
データ間の距離の算出方法としては、例えば、ユークリッド法、マンハッタン法などがある。
【００７８】
点ｘと点ｙ間のユークリッド距離は、ｓｑｒｔ（ｓｕｍ（（ｘ−ｙ）２））により求められる。また、点ｘと点ｙ間のマンハッタン距離は、ｓｕｍ（ａｂｓ（ｘ−ｙ））により求められる。ここで、ｓｑｒｔは平方根、ｓｕｍは総計、ａｂｓは絶対値である。
なお、データ間の距離の算出手法としては、任意の算出手法を使用することができる。
図１５の正規化性能データ間の距離をユークリッド法で算出した結果を図１６に示す。
【００７９】
ステップＳｂ３において、資源使用量予測部２３は、時系列性能データ間の距離から、当該データを適当な数のグループに分類する。
このときの分類方法としては、例えば、類似したクラスターを見つける完全連結法、コンパクトで球状のクラスターを見つけ出すウォード法などがある。
例えば、完全連結法により、ＶＭ１，ＶＭ１−０１〜ＶＭ１−０３の４データを２つのグループに分類すると、ＶＭ１及びＶＭ１−０１と、ＶＭ１−０２及びＶＭ１−０３の２つに分けられる。
【００８０】
なお、階層的クラスター分析手法では、性能データ間の距離を基に樹形図（デンドログラム）を作成することにより、分類するグループ数を容易に決定できる。図１６の性能データ間の距離を表わす樹形図（デンドログラム）を図１７に示す。
なお、分類手法としては、任意の分類手法を使用することができる。
また、資源使用量予測部２３は、分類したグループ毎に、平均的な時系列性能データを作成して保存する。また、任意選択で、資源使用量予測部２３は、代表的な時系列性能データを選択してもよい。
【００８１】
ステップＳｂ４において、資源使用量予測部２３は、予測対象の性能の時系列データと、上記ステップＳｂ３で作成した各グループの時系列データとの相関係数を計算し、最も似ているデータ群（グループ）を抽出する。
その際、似たグループ内のデータ群を用いて、データの分類或いは相関計算を更に行なってもよい。
【００８２】
なお、時系列データがある程度蓄積されたら、データのグループ分けを更新する。
その際、資源使用量予測部２３は、以下の式を用いて、ステップＳｂ４で分類したグループの平均時系列データを再計算する。
（旧平均×データ数＋新データ）／総データ数
或いは、上記再計算の結果を基に、全てのデータを再分類する。
【００８３】
次に、図６を参照して、実施形態の一例としての管理マシン３の管理部２１の資源管理部２５による資源使用量予測処理について説明する。
図６は、資源管理部２５による資源管理処理を示すフローチャートである。なお、この資源管理処理は、情報処理システム１に存在する全物理マシン５について行なう。
最初に、ステップＳ４１において、資源管理部２５は、情報処理システム１に存在する物理マシン５のうち、資源管理が未処理の１台を選択する。
【００８４】
次に、ステップＳ４３において、資源管理部２５は、前述の資源使用量予測部２３に対して、ステップＳ４１で選択した物理マシン５上で動作している全ての仮想マシン１３の資源使用量について予測するように依頼を行なう。
次に、ステップＳ４５において、資源使用量予測部２３が、ステップＳ４１で選択した物理マシン５上で動作している全仮想マシン１３の予測資源量を算出し、これらの予測資源量を資源管理部２５に報告する。資源管理部２５は、資源使用量予測部２３から報告された全仮想マシン１３の予測資源使用量の総和（総予測資源使用量）を求める。
【００８５】
ステップＳ４７において、資源管理部２５は、ステップＳ４５で求めた総予測資源使用量が、ステップＳ４１で選択した物理マシン５の総資源量（物理資源量）を超えるかどうかを判定する。
総予測資源使用量が物理マシン５の物理資源量を超えない場合（ステップＳ４７のＮＯルート参照）、その物理マシン５の資源が今後枯渇しないと予測される。このため、資源管理部２５は、この物理マシン５を、資源に余裕のある物理マシン５として判定し、ステップＳ５５に移動する。
【００８６】
一方、総予測資源使用量が物理マシン５の物理資源量を超える場合（ステップＳ４７のＹＥＳルート参照）、その物理マシン５の資源が将来枯渇すると予測されるため、資源管理部２５は、その物理マシン５上の一部の仮想マシン１３の移動を開始する。
このため、ステップＳ４９において、資源管理部２５は、現在選択されている物理マシン５の現時点の資源使用量を採取する。そして、資源管理部２５は、採取した現時点の資源使用量（現資源使用量）と、ステップＳ４３で取得した予測資源使用量とにより、仮想マシン１３をソートする。
【００８７】
次に、ステップＳ５１において、資源管理部２５は、現資源使用量が少なく、予測資源使用量が多い仮想マシン１３を、移動させる仮想マシン１３として抽出する。そして、抽出した仮想マシン１３の予測資源使用量を、総予測資源使用量から減算し、求めた値を、新たな総予測資源使用量に設定する。
次に、ステップＳ５３において、資源管理部２５は、ステップＳ５１で更新した総予測資源使用量が物理マシン５の物理資源量を下回るかどうかを判定する。
【００８８】
総予測資源使用量が物理マシン５の物理資源量を下回る場合（ステップＳ５３のＹＥＳルート参照）、処理はステップＳ５５に移動する。
一方、総予測資源使用量が物理マシン５の物理資源量を下回らない場合（ステップＳ５３のＮＯルート参照）、資源管理部２５はステップＳ５１に戻り、次に現資源使用量が少なく、予測資源使用量が多い仮想マシン１３を、移動させる仮想マシン１３として抽出する。そして、抽出した仮想マシン１３の予測資源使用量を、総予測資源使用量から減算し、求めた値を、新たな総予測資源使用量に設定する。資源管理部２５は、ステップＳ５１，Ｓ５３の処理を、総予測資源使用量が物理マシン５の物理資源量を下回るまで繰り返す。
【００８９】
次に、ステップＳ５５について、資源管理部２５は、情報処理システム１に存在する全物理マシン５について、ステップＳ４３〜Ｓ５３の処理（移動対象の仮想マシン１３を抽出する処理）を終了したかどうかを判定する。
処理が終わっていない物理マシン５が存在する場合（ステップＳ５５のＮＯルート参照）、資源管理部２５は、ステップＳ４１に戻り、未処理の物理マシン５のうちの１台を選択し、選択した物理マシン５に対してステップＳ４３〜Ｓ５３の処理を実行する。資源管理部２５は、ステップＳ４３〜Ｓ５３の処理を情報処理システム１内の全物理マシン５に対して繰り返す。
【００９０】
一方、全物理マシン５の処理を終了している場合（ステップＳ５５のＹＥＳルート参照）、ステップＳ５７において、資源管理部２５は、ステップＳ５１で抽出した仮想マシン１３を、ステップＳ４７で判定した資源に余裕のある物理マシン５に移動させる。その際、例えば、予測資源使用量の最も多い仮想マシン１３を、最も資源に余裕のある物理マシン５に移動させ、予測資源使用量の次に多い仮想マシン１３を、次に資源に余裕のある物理マシン５に…という具合に仮想マシン１３を順次移動させる。ステップＳ５１で抽出した全ての仮想マシン１３の移動が完了すると、資源管理部２５は、資源管理処理を終了する。
【００９１】
（Ｃ）作用・効果
本開示の技術によれば、仮想マシン１３の資源の利用情報だけではなく、仮想マシン１３の資源利用に関連するＰＭＣデータ情報も用いて資源使用量を予測するので、仮想マシン１３毎の資源使用量を従来よりも正確に予測することができる。
このため、仮想マシン１３を備えた情報処理システム１全体の性能を向上させることができる。
【００９２】
（Ｄ）その他
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
また、上記の実施形態の一例において、図４にはステップＳ７とステップＳ９とが並行して行なわれるように図示されているが、性能データ採取部３５がステップＳ７とＳ９とを逐次的に実行してもよい。その場合、ステップＳ７とＳ９のいずれを先に実行してもよい。
【００９３】
また、上記の実施形態の一例において、図５のステップＳ２３における類似検索を、相関又は階層的クラスター分析を用いて行なっているが、類似検索を他の任意の手法によって行なってもよい。
また、図９〜図１６の例においては、ＰＭＣデータとしてＣＰＵ使用率と実行命令数とを採取しているが、他のＰＭＣデータを採取してもよい。また、物理マシン５のハードウェアアーキテクチャによっては、上記の実施形態の一例において説明した以外のＰＭＣデータを取得することもできる。
【００９４】
なお、上記の管理部２１、資源使用量予測部２３、資源管理部２５、採取部３１、及び性能データ採取部３５としての機能を実現するためのプログラム（資源管理プログラム）は、例えばフレキシブルディスク、ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００９５】
また、管理部２１、資源使用量予測部２３、資源管理部２５、採取部３１、及び性能データ採取部３５としての機能を実現する際には、内部記憶装置（本実施形態では管理マシン１３のストレージ１２）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態では管理マシン１３のＣＰＵ１０）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００９６】
また、本実施形態では管理マシン１３のストレージ１２が、性能データＤＢ３３として機能する。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、管理マシン１３がコンピュータとしての機能を有しているのである。
【００９７】
（Ｅ）付記
上記の実施形態に関し、更に以下の付記を開示する。
（付記１）
資源を備えた物理マシン上で実行される複数の仮想マシンを管理する管理装置であって、
前記複数の仮想マシンのそれぞれについて、仮想マシンによる資源の使用状態を示す資源使用状態情報と、仮想マシンのパフォーマンス情報とを時系列的に採取する情報採取部と、
前記情報採取部が採取した前記時系列の前記資源使用状態情報及び前記パフォーマンス情報に基づいて、前記複数の仮想マシンによる前記資源の予測使用量を算出する予測部と、
前記複数の仮想マシンのそれぞれの予測使用量の合計が、前記資源の量を超える場合、前記複数の仮想マシンのうちの一部の仮想マシンを他の物理マシンに移動させる資源管理部と、
を備えることを特徴とする管理装置。
【００９８】
（付記２）
前記仮想マシン毎の前記資源の前記使用状態情報と前記パフォーマンス情報とを時系列的に記憶する記憶域を更に備えることを特徴とする付記１記載の管理装置。
（付記３）
前記予測部は、前記記憶域に記憶されている過去の前記資源使用状態情報及び前記パフォーマンス情報と、前記現在の前記資源使用状態情報及び前記パフォーマンス情報との類似性を決定し、前記現在の前記資源使用状態情報及び前記パフォーマンス情報との類似性が高い前記過去の前記資源使用状態情報及び前記パフォーマンス情報に基づいて、前記将来の資源予測量を予測することを特徴とする付記２記載の管理装置。
【００９９】
（付記４）
前記予測部は、相関及び階層的クラスター分析のいずれかに基づいて、前記記憶域に記憶されている前記過去の前記資源使用状態情報及び前記パフォーマンス情報と、前記現在の前記資源使用状態情報及び前記パフォーマンス情報との類似性を決定することを特徴とする付記３記載の管理装置。
【０１００】
（付記５）
前記パフォーマンス情報は、命令の実行状況及びキャッシュの利用状況の少なくともいずれかに関連する情報であることを特徴とする付記１〜４のいずれか１項に記載の管理装置。
（付記６）
資源を備えた物理マシン上で実行される複数の仮想マシンを管理する資源管理方法であって、
前記複数の仮想マシンのそれぞれについて、仮想マシンによる資源の使用状態を示す資源使用状態情報と、仮想マシンのパフォーマンス情報とを時系列的に採取し、
前記情報採取部が採取した前記時系列の前記資源使用状態情報及び前記パフォーマンス情報に基づいて、前記複数の仮想マシンによる前記資源の予測使用量を算出し、
前記複数の仮想マシンのそれぞれの予測使用量の合計が、前記資源の量を超える場合、前記複数の仮想マシンのうちの一部の仮想マシンを他の物理マシンに移動させる、
ことを特徴とする資源管理方法。
【０１０１】
（付記７）
前記仮想マシン毎の前記資源の前記使用状態情報と前記パフォーマンス情報とを時系列的に記憶することを特徴とする付記６記載の資源管理方法。
（付記８）
前記予測において、前記記憶域に記憶されている過去の前記資源使用状態情報及び前記パフォーマンス情報と、前記現在の前記資源使用状態情報及び前記パフォーマンス情報との類似性を決定し、前記現在の前記資源使用状態情報及び前記パフォーマンス情報との類似性が高い前記過去の前記資源使用状態情報及び前記パフォーマンス情報に基づいて、前記将来の資源予測量を予測することを特徴とする付記７記載の資源管理方法。
【０１０２】
（付記９）
前記予測において、相関及び階層的クラスター分析のいずれかに基づいて、前記記憶域に記憶されている前記過去の前記資源使用状態情報及び前記パフォーマンス情報と、前記現在の前記資源使用状態情報及び前記パフォーマンス情報との類似性を決定することを特徴とする付記８記載の資源管理方法。
【０１０３】
（付記１０）
前記パフォーマンス情報は、命令の実行状況及びキャッシュの利用状況の少なくともいずれかに関連する情報であることを特徴とする付記６〜９のいずれか１項に記載の資源管理方法。
（付記１１）
資源を備えた物理マシン上で実行される複数の仮想マシンを管理する資源管理プログラムであって、
コンピュータによって実行されたときに、前記コンピュータに、
前記複数の仮想マシンのそれぞれについて、仮想マシンによる資源の使用状態を示す資源使用状態情報と、仮想マシンのパフォーマンス情報とを時系列的に採取させ、
前記情報採取部が採取した前記時系列の前記資源使用状態情報及び前記パフォーマンス情報に基づいて、前記複数の仮想マシンによる前記資源の予測使用量を算出させ、
前記複数の仮想マシンのそれぞれの予測使用量の合計が、前記資源の量を超える場合、前記複数の仮想マシンのうちの一部の仮想マシンを他の物理マシンに移動させる、
ことを特徴とする資源管理プログラム。
【０１０４】
（付記１２）
第１の資源を備え、第１の複数の仮想マシンを実行している第１の物理マシンと、
第２の資源を備え、少なくとも１つの第２の仮想マシンを実行している第２の物理マシンと、
前記第１及び第２の物理マシンを管理する管理装置と、を備え、前記管理装置は、
前記複数の仮想マシンのそれぞれについて、仮想マシンによる資源の使用状態を示す資源使用状態情報と、仮想マシンのパフォーマンス情報とを時系列的に採取する情報採取部と、
前記情報採取部が採取した前記時系列の前記資源使用状態情報及び前記パフォーマンス情報に基づいて、前記複数の仮想マシンによる前記資源の予測使用量を算出する予測部と、
前記第１の複数の仮想マシンのそれぞれの予測使用量の合計が、前記第１の資源の量を超える場合、前記複数の仮想マシンのうちの一部の仮想マシンを前記第２の物理マシンに移動させる資源管理部と、
を備えることを特徴とする情報処理システム。
【符号の説明】
【０１０５】
１                        情報処理システム
１１，１１−１，１１−２  メモリ（資源）
１７，１７−１，１７−２  ＰＭＣ
２１                      管理部
２３                      資源使用量予測部（予測部）
２５                      資源管理部
３                        管理マシン（管理装置）
３１                      採取部
３３                      性能データＤＢ（記憶域）
３５                      性能データ採取部（情報採取部）
４１，４１−１，４１−２  資源使用量採取部
４３                      ＰＭＣ制御部
５，５−１，５−２        物理マシン（情報処理装置）
９，９−１，９−２        ＣＰＵ（資源）
【図１】
0005853821.tif 000005
【図２】
0005853821.tif 000006
【図３】
0005853821.tif 000007
【図４】
0005853821.tif 000008
【図５】
0005853821.tif 000009
【図６】
0005853821.tif 000010
【図７】
0005853821.tif 000011
【図８】
0005853821.tif 000012
【図９】
0005853821.tif 000013
【図１０】
0005853821.tif 000014
【図１１】
0005853821.tif 000015
【図１２】
0005853821.tif 000016
【図１３】
0005853821.tif 000017
【図１４】
0005853821.tif 000018
【図１５】
0005853821.tif 000019
【図１６】
0005853821.tif 000020
【図１７】
0005853821.tif 000021
【図１８】
0005853821.tif 000022