(57)【要約】【課題】仮想化環境において適切なＣＰＵ使用率を把握することにより、無駄な異常通知を削減する。【解決手段】ハイパーバイザー上に構築された複数の仮想マシンの状況を監視する監視サーバは、各仮想マシンがリソース情報として有するＣＰＵ使用率に関する情報を取得する仮想マシンＣＰＵ使用率取得部１２と、ハイパーバイザーがリソース情報として有する各仮想マシンに割当てたＣＰＵ量に関する情報を取得するリソースプールＣＰＵ使用率取得部１２と、これらの取得部によって取得された、ＣＰＵ使用率及びＣＰＵ量の情報を用いて、所定の式で適切なＣＰＵ使用率を計算する計算部１３を有し、計算手段によって算出された適切なＣＰＵ使用率に関する情報を端末３に出力する。【選択図】図１
2011141716.tif 000002
【特許請求の範囲】
【請求項１】
ハイパーバイザーと、該ハイパーバイザーによって制御され、それぞれ異なるＯＳによって動作することができる複数の仮想マシンを有する仮想化環境における該仮想マシンの状況を監視サーバによって監視するシステムであって、
該監視サーバは：
各仮想マシンがリソース情報として有するＣＰＵ使用率に関する情報を取得する第１の取得手段と、
該ハイパーバイザーがリソース情報として有する各仮想マシンに割当てたＣＰＵ量に関する情報を取得する第２の取得手段と、
該第１の取得手段及び該第２の取得手段によって取得された、該ＣＰＵ使用率及び該ＣＰＵ量の情報について、所定の式を用いて適切なＣＰＵ使用率を計算する計算手段を有し、
該計算手段によって算出された適切なＣＰＵ使用率に関する情報を端末に出力することを特徴とする仮想マシン監視システム。
【請求項２】
前記計算手段は、下記の式により適切なＣＰＵ使用率を計算することを特徴とする請求項１の仮想マシン監視システム。
ＣＰＵ使用率（％）=（Ｖ／（min(Ｗ、Ｘ−Ｙ)）×Ｚ
Ｖ=対象の仮想マシンに割当てられたＣＰＵ量[Hz]
Ｗ=対象の仮想マシンに割当て可能な最大ＣＰＵ量[Hz]
Ｘ=リソースプール全体のＣＰＵ量[Hz]
Ｙ=対象の仮想マシン以外に割当てられたＣＰＵ使用量の合計[Hz]
Ｚ=対象の仮想マシンのＯＳ上から見たＣＰＵ使用率[％]
【請求項３】
ハイパーバイザーと、該ハイパーバイザーによって制御され、それぞれ異なるＯＳによって動作することができる複数の仮想マシンを有する仮想化環境における該仮想マシンの状況を監視サーバによって監視する仮想マシン監視方法であって、
該監視サーバにおいて、各仮想マシンがリソース情報として有するＣＰＵ使用率に関する情報を取得する第１のステップと、
該監視サーバにおいて、該ハイパーバイザーがリソース情報として有する各仮想マシンに割当てたＣＰＵ量に関する情報を取得する第２のステップと、
該監視サーバにおいて、該第１及び該第２のステップによって取得された、該ＣＰＵ使用率及び該ＣＰＵ量の情報について、所定の式を用いて適切なＣＰＵ使用率を計算する第３のステップと、
該監視サーバにおいて、該計算ステップによって算出された適切なＣＰＵ使用率に関する情報を端末に出力するステップを有することを特徴とする仮想マシン監視方法。
【請求項４】
ハイパーバイザーと、該ハイパーバイザーによって制御され、それぞれ異なるＯＳによって動作することができる複数の仮想マシンを有する仮想化環境における該仮想マシンの状況を監視する監視サーバにおいて実行される仮想マシン監視用プログラムであって、
各仮想マシンがリソース情報として有するＣＰＵ使用率に関する情報を取得する第１のステップと、
該ハイパーバイザーがリソース情報として有する各仮想マシンに割当てたＣＰＵ量に関する情報を取得する第２のステップと、
該第１及び該第２のステップによって取得された、該ＣＰＵ使用率及び該ＣＰＵ量の情報について、所定の式を用いて適切なＣＰＵ使用率を計算する第３のステップと、
該計算ステップによって算出された適切なＣＰＵ使用率に関する情報を端末に出力するステップを実行することを特徴とする仮想マシン監視用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン監視システム及び方法、そのプログラムに係り、特に、仮想マシンのＣＰＵ使用率を適切に計算して仮想マシンの監視を行う仮想マシン監視システム及び方法、そのプログラムに関するものである。
【背景技術】
【０００２】
仮想化環境のコンピュータは、ハイパーバイザー上に複数の仮想マシンを構築し、各仮想マシンでそれぞれ異なるＯＳ（オペレーティングシステム）を実行することができる。ハイパーバイザーは、各仮想マシンの制御を行ない、仮想マシンに割当てたＣＰＵリソース量を管理している。
仮想化環境において、複数の仮想マシンからシステムの負荷を算出し、仮想化によるオーバーヘッドを監視することが重要である。例えば特許文献１には、仮想化環境におけるＩ／Ｏエミュレーションに必要なＣＰＵ負荷をディスク負荷及び又はネットワーク負荷から換算し、ＣＰＵ負荷の見積もり精度を向上させる技術が開示されている。
【０００３】
通常、仮想マシンには割当て可能なＣＰＵリソース量の上限と下限が設定されており、ハイパーバイザーはその範囲内にてその時点で仮想マシンが必要とするＣＰＵリソース量を動的に割当てる。必要な分だけ割当てるため、割当て可能なリソースには余剰分が発生することがある。ＣＰＵリソースを動的に割当て仮想化環境において、仮想マシンのＣＰＵ使用率を監視する場合、ハイパーバイザーから仮想マシンには必要な分のＣＰＵだけが提供されるため、仮想マシンのＯＳからＣＰＵ使用率を見ると１００％になることが多い。そのため、ＣＰＵリソースを監視する側では異常と通知することがある。
しかし、ハイパーバイザーから割当て可能なＣＰＵには余剰分があるため、実際に利用可能なＣＰＵ量の１００％を使用していることは稀であり、異常通知の必要が無い場合でもその旨が通知されることがある。これでは、仮想マシンシステムの運用管理上、無駄な作業が生じる。
【０００４】
また、仮想化環境においては仮想マシンに提供される全ＣＰＵ時間が予測（設定値）より少ない場合がある。この場合、実処理側の負荷が変化しなければ、設定値上の状態よりＣＰＵ使用率が上昇することになる。
仮想化環境におけるハイパーバイザーでは仮想マシンの処理負荷が高くなるとその仮想マシンに対し割当てリソース量を増やし、ＣＰＵ時間を増やそうとする。仮想マシンに対する負荷状況が一定な場合、ＣＰＵ時間が増えた仮想マシン上のＯＳではＣＰＵ使用率は低下したように見える。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１２３１７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のようなことから、仮想化環境における仮想マシン上のＯＳから見た瞬間的なＣＰＵ使用率は正しくない可能性がある。そのため、瞬間的なＣＰＵ使用率だけではなく、近い未来に期待されるＣＰＵ使用率を監視指標の１つに加えることで、仮想化環境におけるリソース流動性を加味したような監視が望まれる。
【０００７】
本発明の目的は、仮想マシンの適切なＣＰＵ使用率を把握することにより、無駄な異常通知を削減することにある。
【課題を解決するための手段】
【０００８】
本発明に係る仮想マシン監視システムは、ハイパーバイザーと、該ハイパーバイザーによって制御され、それぞれ異なるＯＳによって動作することができる複数の仮想マシンを有する仮想化環境における該仮想マシンの状況を監視サーバによって監視するシステムであって、該監視サーバは：各仮想マシンがリソース情報として有するＣＰＵ使用率に関する情報を取得する第１の取得手段と、該ハイパーバイザーがリソース情報として有する各仮想マシンに割当てたＣＰＵ量に関する情報を取得する第２の取得手段と、該第１の取得手段及び該第２の取得手段によって取得された、該ＣＰＵ使用率及び該ＣＰＵ量の情報について、所定の式を用いて適切なＣＰＵ使用率を計算する計算手段を有し、該計算手段によって算出された適切なＣＰＵ使用率に関する情報を端末に出力することを特徴とする仮想マシン監視システムとして構成される。
【０００９】
好ましい例においては、前記計算手段は、下記の式により適切なＣＰＵ使用率を計算する。
ＣＰＵ使用率（％）=（Ｖ／（min(Ｗ、Ｘ−Ｙ)）×Ｚ
Ｖ=対象の仮想マシンに割当てられたＣＰＵ量[Hz]
Ｗ=対象の仮想マシンに割当て可能な最大ＣＰＵ量[Hz]
Ｘ=リソースプール全体のＣＰＵ量[Hz]
Ｙ=対象の仮想マシン以外に割当てられたＣＰＵ使用量の合計[Hz]
Ｚ=対象の仮想マシンのＯＳ上から見たＣＰＵ使用率[％]
本発明に係る仮想マシン監視方法は、ハイパーバイザーと、該ハイパーバイザーによって制御され、それぞれ異なるＯＳによって動作することができる複数の仮想マシンを有する仮想化環境における該仮想マシンの状況を監視サーバによって監視する仮想マシン監視方法であって、
該監視サーバにおいて、各仮想マシンがリソース情報として有するＣＰＵ使用率に関する情報を取得する第１のステップと、該監視サーバにおいて、該ハイパーバイザーがリソース情報として有する各仮想マシンに割当てたＣＰＵ量に関する情報を取得する第２のステップと、該監視サーバにおいて、該第１及び該第２のステップによって取得された、該ＣＰＵ使用率及び該ＣＰＵ量の情報について、所定の式を用いて適切なＣＰＵ使用率を計算する第３のステップと、該監視サーバにおいて、該計算ステップによって算出された適切なＣＰＵ使用率に関する情報を端末に出力するステップを有することを特徴とする仮想マシン監視方法として構成される。
【００１０】
本発明に係る仮想マシン監視用プログラムは、ハイパーバイザーと、該ハイパーバイザーによって制御され、それぞれ異なるＯＳによって動作することができる複数の仮想マシンを有する仮想化環境における該仮想マシンの状況を監視する監視サーバにおいて実行される仮想マシン監視用プログラムであって、
各仮想マシンがリソース情報として有するＣＰＵ使用率に関する情報を取得する第１のステップと、該ハイパーバイザーがリソース情報として有する各仮想マシンに割当てたＣＰＵ量に関する情報を取得する第２のステップと、該第１及び該第２のステップによって取得された、該ＣＰＵ使用率及び該ＣＰＵ量の情報について、所定の式を用いて適切なＣＰＵ使用率を計算する第３のステップと、該計算ステップによって算出された適切なＣＰＵ使用率に関する情報を端末に出力するステップを実行することを特徴とする仮想マシン監視用プログラムとして構成される。
【発明の効果】
【００１１】
本発明によれば、仮想マシンの適切なＣＰＵ使用率を把握できるため、仮想マシンの障害監視を適切に行うことができ、不適切な異常通知を削減することができる。
【図面の簡単な説明】
【００１２】
【図１】一実施例による仮想マシン監視システムの全体を示す図である。
【図２】一実施例による仮想マシンＣＰＵ使用率取得部の記憶部で保持されるＣＰＵ使用率の例を示す図である。
【図３】一実施例によるリソースプールＣＰＵ使用率取得部の記憶部で保持される割当てＣＰＵ量の例を示す図である。
【図４】一実施例による仮想マシン監視システムの処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の一実施形態について図面を用いて詳細に説明する。
図1は、一実施例による仮想マシン監視システムの構成例を示す。
この仮想マシン監視システムは、監視サーバ１０によって、仮想化環境を形成する仮想マシン２１〜２３、及びハイパーバイザー２０からリソース情報を取得して、ＣＰＵ使用率を適正に計算し、その結果に基づいて仮想マシンの稼働状況を適正に監視するシステムである。
【００１４】
ハイパーバイザー２０上で稼動する複数の仮想マシン２１〜２３は、それぞれ固有のＯＳ２１２〜２１３によって動作する。ハイパーバイザー２０は、各仮想マシンの制御を行ない、仮想マシンに割当てたＣＰＵリソース量を管理する。ハイパーバイザー２０は、リソース情報２０４として各仮想マシン２１２〜２３２に割当てたＣＰＵ量及び全リソース情報（ＭＨｚ）を保持しており、また各仮想マシン２１２〜２３２は、リソース情報２１４〜２３４としてＣＰＵ使用率（％）を保持している。これらのリソース情報２０４及び２１４〜２３４は、監視サーバ１０によって取得される。
【００１５】
監視サーバ１０は、仮想マシンＣＰＵ使用率取得部１１、リソースプールＣＰＵ使用率取得部１２、及びＣＰＵ使用率計算部１３を有する。これら各部１１〜１３の機能は、監視サーバ１０が有するプロセッサ（図示せず）において、所定のプログラムが実行されることで、それらの機能が実現される。管理者端末３は、そこからの要求によって監視サーバ１０に種々の監視制御を行わせると共に、監視状況を端末３に表示する。
【００１６】
仮想マシンＣＰＵ使用率取得部１１は、監視対象となる仮想マシンのＯＳ２１２〜２３４からみたリソース情報２１４〜２３４を取得して、ＣＰＵ使用率の情報を記憶部１１３に保持する。
リソースプールＣＰＵ使用率取得部１２は、ハイパーバイザー２０で管理している各仮想マシンへ割当てたＣＰＵ量及びリソースプール全体のＣＰＵ量を取得して、記憶部１２２に保持する。ＣＰＵ使用率計算部１３は、仮想マシンＣＰＵ使用率取得部１０２、及びリソースプールＣＰＵ使用率取得部１０３で取得したリソース情報を元に各仮想マシンの適切なＣＰＵ使用率を計算する。
【００１７】
図２はＣＰＵ使用率取得部１１の記憶部に保持される、各仮想マシンのＣＰＵ使用率を示す。また、図３は、リソースプールＣＰＵ使用率取得部１２の記憶部に保持される、ハイパーバイザー２０が各仮想マシンへ割当てたＣＰＵ量及び全リソース量を示す。
【００１８】
次に、図４を参照して、ＣＰＵ使用率計算部１３におけるＣＰＵ使用率の計算処理について説明する。
監視サーバ１０において、ＣＰＵ使用率計算部１３から仮想マシンＣＰＵ使用率取得部１１に対してＣＰＵ使用率を取得するための命令を出すと(Ｓ４０１)、仮想マシンＣＰＵ使用率取得部１１は、仮想マシンへアクセスして(Ｓ４０２)、仮想マシンのＯＳ上から見たＣＰＵ使用率をリソース情報として取得する(Ｓ４０３)。取得したＣＰＵ使用率は仮想マシンＣＰＵ取得部１１内の記憶部１１２に保持される(Ｓ４０４)。
【００１９】
同様にして、リソースプールＣＰＵ使用率取得部１２に対する命令によって、リソースプールＣＰＵ使用率取得部１２はハイパーバイザー２０へアクセスして(Ｓ４０５)、ハイパーバイザー２０で管理されるリソース情報、即ち各仮想マシンへ割当てたＣＰＵ量と、リソースプール全体のＣＰＵ量の情報を取得する(Ｓ４０６)。リソースプール全体のＣＰＵ量は、各仮想マシンへ割当てたＣＰＵ量の合計である。取得したこれらのＣＰＵ量の情報は、リソースプールＣＰＵ使用率取得部１２内の記憶部１２２に保持される(Ｓ４０７)。
【００２０】
ＣＰＵ使用率計算部１３は、仮想マシンＣＰＵ使用率取得部１１の記憶部、及びリソースプールＣＰＵ利用率取得部１２の記憶部からＣＰＵ量及び使用率の情報を取得し(Ｓ４０８)、以下の式（１）を用いて適切なＣＰＵ使用率を計算する(Ｓ４０９)。
【００２１】
下記のＶ〜Ｙはハイパーバイザー２０から取得し、Ｚは各仮想マシンから取得する。
Ｖ=対象の仮想マシンに割当てられたＣＰＵ量[Hz]
Ｗ=対象の仮想マシンに割当て可能な最大ＣＰＵ量[Hz]
Ｘ=リソースプール全体のＣＰＵ量[Hz]
Ｙ=対象の仮想マシン以外に割当てられたＣＰＵ使用量の合計[Hz]
Ｚ=対象の仮想マシンのＯＳ上から見たＣＰＵ使用率[％]
【００２２】
【数１】
2011141716.tif 000003
ＣＰＵ使用率計算部１３で計算されたＣＰＵ使用率は、管理者端末３に出力して表示される(Ｓ４１０)。これで一連の処理を終わる。
【００２３】
次に、ＣＰＵ使用率の計算の具体例について説明する。
仮想マシンＡ〜Ｃに対して、下記の通り、ＣＰＵが割当てられて使用されているとする。また、仮想マシンＡには割当てるＣＰＵ量の制限として、４[GHz]までという設定がされていないものとする。
仮想マシンＡ:１[GHz]割当てられ、０．８[GHz]使用
仮想マシンＢ:２[GHz]割当てられ、1[GHz]使用
仮想マシンＣ:３[GHz]割当てられ、３[GHz]使用
なお、リソースプール全体は８[GHz]のＣＰＵリソースを所持しているとする。
【００２４】
この時、各仮想マシンのＯＳ上でのＣＰＵ使用率は下記のようになる。
仮想マシンＡ:８０％
仮想マシンＢ:５０％
仮想マシンＣ:１００％
仮想マシンＡに着目した場合、割当て可能なＣＰＵ量は、下記式（式（２））のようになる。
８[GHz](リソースプール全体)−５[GHz](仮想マシンＢ、Ｃに割当てたＣＰＵの合計) = ３[GHz]       （２）
つまり、仮想マシンＡに着目した場合、３[GHz]使える内の０．８[GHz] しか使用していないことになるため、ＣＰＵ使用率は、式（３）のようになる。
０．８[GHz]×１００（％）/３[GHz](利用可能なＣＰＵ量) ≒ ２７（％）       （３）
上記式（３）の左辺に仮想マシンＡに割当てられたＣＰＵ量を考慮すると、式（４）のようになる。
【００２５】
【数２】
2011141716.tif 000004
上記式（４）を整理すると、式（５）のようになる。
【００２６】
【数３】
2011141716.tif 000005
ここまでの計算では、仮想マシンＡに割当て可能なＣＰＵ量の限界値として、４[GHz]と設定されているが、これが２[GHz]であった場合、リソースプールとしては３[GHz]の割当てが可能でも、仮想マシンＡに割当て可能なＣＰＵ量は２[GHz]となる。そのため、上記式（５）は式（６）のように変化する。
【００２７】
【数４】
2011141716.tif 000006
上記式（５）（６）をまとめると、本発明で提唱する式（１）となる。
なお、「適切」の根拠であるが、上記計算例において、仮想マシンのＯＳ上でのＣＰＵ使用率８０％に関して、ＯＳ上では間違っているわけではないが、リソースプール全体の視点から見た場合には適切ではないと考えられる。従って、本発明の式（１）によれば、ある仮想マシンが利用可能な最大ＣＰＵ量のうち、現に使用しているＣＰＵ量の割合をＣＰＵ使用率と定義できるため、計算例での２７（％）や、４０（％）が適切なＣＰＵ使用率であると判断できる。
【００２８】
以上のように、本実施例は、リソースプール全体の視点から見た場合のＣＰＵ使用率を算出しているため、リソース流動性を加味したものと言える。即ち、ある時点から、割当てられるＣＰＵ量が変化する場合でも、それに順応したＣＰＵ使用率を算出することができる。このように、リソース流動性を加味したＣＰＵ使用率の把握が可能となり、障害発生通知の信憑性を向上させることが可能となる。
【符号の説明】
【００２９】
１０：監視サーバ  １１：仮想マシンＣＰＵ使用率取得部  １２：リソースプールＣＰＵ使用率取得部１２  １３：ＣＰＵ使用率計算部  １１２、１２２：記憶部
２０：ハイパーバイザー  ２１〜２３：仮想マシン  ２１２〜２３２：ＯＳ  ２０４〜２３４：リソース情報。
【図１】
2011141716.tif 000007
【図２】
2011141716.tif 000008
【図３】
2011141716.tif 000009
【図４】
2011141716.tif 000010