(57)【要約】物理的なリソースを備えた物理マシン上に構築される複数の仮想マシンを提供するサーバ装置であって、前記仮想マシンは、前記仮想マシンに割り当てられた前記物理的なリソースを前記仮想マシン内のリソースとして認識するＯＳと、前記ＯＳにより認識された前記リソースを確保して、前記仮想マシンに登録される複数の業務アプリケーションソフトウェアに前記リソースを割り当てるソフトウェア管理部と、を備え、前記ソフトウェア管理部は、前記複数の業務アプリケーションソフトウェアを識別して、予め設定された前記リソースの割り当てポリシに基づいて、前記複数の業務アプリケーションソフトウェアに前記リソースを割り当て、前記仮想マシンに割り当てられた前記リソースの増減を検知した場合に、前記検知したリソースの増減量に応じて、前記複数の業務アプリケーションソフトウェアへのリソースの割り当てを変更する。
2012063296.tif 000002
【特許請求の範囲】
【請求項１】
物理的なリソースを備えた物理マシン上に構築される複数の仮想マシンを提供するサーバ装置であって、
前記仮想マシンは、
前記仮想マシンに割り当てられた前記物理的なリソースを前記仮想マシン内のリソースとして認識するＯＳと、
前記ＯＳにより認識された前記リソースを確保して、前記仮想マシンに登録される複数の業務アプリケーションソフトウェアに前記リソースを割り当てるソフトウェア管理部と、
を備え、
前記ソフトウェア管理部は、
前記複数の業務アプリケーションソフトウェアを識別して、予め設定された前記リソースの割り当てポリシに基づいて、前記複数の業務アプリケーションソフトウェアに前記リソースを割り当て、
前記仮想マシンに割り当てられた前記リソースの増減を検知した場合に、前記検知したリソースの増減量に応じて、前記複数の業務アプリケーションソフトウェアへのリソースの割り当てを変更する
ことを特徴とする、サーバ装置。
【請求項２】
前記ソフトウェア管理部は、
前記複数の業務アプリケーションソフトウェアを識別する識別部と、
予め設定された前記リソースの割り当てポリシに基づいて、前記識別部により識別された前記複数の業務アプリケーションソフトウェアに、前記リソースを割り当てるリソース割り当て部と、
前記リソース割り当て部により割り当てられる前記リソースを前記ＯＳから確保するリソース管理部と、
前記仮想マシンに割り当てられた前記リソースの増減を検知する検知部と、
を備え、
前記検知部により前記仮想マシンに割り当てられた前記リソースの増減が検知された場合に、
前記リソース割り当て部は、前記リソースの増減量に応じて、前記複数の業務アプリケーションソフトウェアへのリソースの割り当てを変更し、
前記リソース管理部は、前記リソース割り当て部により割り当てられた前記リソースを前記ＯＳから確保する
ことを特徴とする、請求項１に記載のサーバ装置。
【請求項３】
前記識別部は、前記複数の業務アプリケーションソフトウェアを識別して、前記業務アプリケーションソフトウェアの一覧を業務アプリケーションソフトウェア一覧管理テーブルに保持することを特徴とする、請求項２に記載のサーバ装置。
【請求項４】
前記識別部は、
前記複数の業務アプリケーションソフトウェアを、前記業務アプリケーションソフトウェアに含まれる複数のプログラムの構成単位や実行単位となるプログラム境界に基づいて識別することを特徴とする、請求項２に記載のサーバ装置。
【請求項５】
前記識別部は、
前記複数の業務アプリケーションソフトウェアを、前記業務アプリケーションソフトウェアに含まれる複数のプログラムの位置情報に基づいて識別することを特徴とする、請求項２に記載のサーバ装置。
【請求項６】
前記ソフトウェア管理部は、
前記複数の業務アプリケーションソフトウェア毎に、前記リソースの割り当てポリシを設定したリソース割り当てポリシ管理テーブルを備え、
前記リソース割り当て部は、前記リソース割り当てポリシ管理テーブルに設定されている前記リソースの割り当てポリシに基づいて、前記複数の業務アプリケーションソフトウェアに前記リソースを割り当て、前記業務アプリケーションソフトウェアと割り当てた前記リソースの量とを関連付けてリソース管理テーブルに保持することを特徴とする、請求項２に記載のサーバ装置。
【請求項７】
前記リソース割り当てポリシ管理テーブルに設定されている前記リソースの割り当てポリシは、前記複数の業務アプリケーションソフトウェアに利用可能なリソースの比率を設定する比率維持方式であることを特徴とする、請求項２に記載のサーバ装置。
【請求項８】
前記リソース割り当てポリシ管理テーブルに設定されている前記リソースの割り当てポリシは、前記複数の業務アプリケーションソフトウェアにそれぞれリソース量の上限値または下限値を設定し、前記設定された上限値または下限値を超過する場合にいずれの業務アプリケーションでも利用可能な共有のリソース量を設定する共有調整方式であることを特徴とする、請求項２に記載のサーバ装置。
【請求項９】
前記リソース管理部は、前記ＯＳから確保した前記リソースの量と、実際に前記複数の業務アプリケーションソフトウェアに利用されているリソースの量とを関連付けてリソース使用状況管理テーブルに保持することを特徴とする、請求項２に記載のサーバ装置。
【請求項１０】
前記リソース管理部は、前記ＯＳから確保した前記リソースを解放する場合に、前記リソースを前記業務アプリケーションソフトウェアが使用中であるか否かを判定し、
前記リソースを前記業務アプリケーションソフトウェアが使用中と判定された場合に、前記リソースの種別に応じて前記リソースを解放することを特徴とする、請求項２に記載のサーバ装置。
【請求項１１】
前記リソース管理部は、前記リソースが所定の時間使用されていない状態を検知して、前記リソースを解放することを特徴とする、請求項１０に記載のサーバ装置。
【請求項１２】
前記リソース管理部は、前記リソースの使用領域の整理や移動により空き領域を確保して、前記リソースを解放することを特徴とする、請求項１０に記載のサーバ装置。
【請求項１３】
前記物理的なリソースを備えた物理マシン上に前記仮想マシンを提供するハイパーバイザを備え、
前記検知部は、前記ハイパーバイザにより前記仮想マシンのリソース量が変更された場合に、前記ハイパーバイザから発せられる前記リソース量の変更情報に基づいて前記リソース量の変更を検知することを特徴とする、請求項２に記載のサーバ装置。
【請求項１４】
前記サーバ装置とは別体の装置に前記仮想マシンのリソース量を管理するハイパーバイザ管理ソフトが搭載されている場合に、
前記検知部は、前記ハイパーバイザ管理ソフトにより前記仮想マシンのリソース量が変更された場合に、前記ハイパーバイザ管理ソフトから発せられる前記リソース量の変更情報に基づいて、前記リソース量の変更を検知することを特徴とする、請求項１３に記載のサーバ装置。
【請求項１５】
前記ソフトウェア管理部は、前記ＯＳのリソース量情報を定期的に取得し、
前記検知部は、前記ＯＳのリソース量の差異を算出して、前記リソース量の変更を検知することを特徴とする、請求項１３に記載のサーバ装置。
【請求項１６】
物理的なリソースを備えた物理マシン上に構築される複数の仮想マシンを提供するサーバ装置を用いたリソース管理方法であって、
前記仮想マシンは、
前記仮想マシンに割り当てられた前記物理的なリソースを前記仮想マシン内のリソースとして認識するＯＳと、
前記ＯＳにより認識された前記リソースを確保して、前記仮想マシンに登録される複数の業務アプリケーションソフトウェアに前記リソースを割り当てるソフトウェア管理部と、
を備え、
前記ソフトウェア管理部は、
前記複数の業務アプリケーションソフトウェアを識別するステップと、
予め設定された前記リソースの割り当てポリシに基づいて、前記複数の業務アプリケーションソフトウェアに前記リソースを割り当てるステップと、
前記仮想マシンに割り当てられた前記リソースの増減を検知した場合に、前記検知したリソースの増減量に応じて、前記複数の業務アプリケーションソフトウェアへのリソースの割り当てを変更するステップと、
を備えることを特徴とする、リソース管理方法。
【請求項１７】
コンピュータを、
物理的なリソースを備えた物理マシン上に構築される仮想マシンに登録される複数の業務アプリケーションソフトウェアを識別する識別部と、
予め設定された前記リソースの割り当てポリシに基づいて、前記識別部により識別された前記複数の業務アプリケーションソフトウェアに、前記リソースを割り当てるリソース割り当て部と、
前記リソース割り当て部により割り当てられる前記リソースを、前記仮想マシン内のＯＳから確保するリソース管理部と、
前記仮想マシンに割り当てられた前記リソースの増減を検知する検知部と、
を備え、
前記検知部により前記仮想マシンに割り当てられた前記リソースの増減が検知された場合に、
前記リソース割り当て部は、前記リソースの増減量に応じて、前記複数の業務アプリケーションソフトウェアへのリソースの割り当てを変更し、
前記リソース管理部は、前記リソース割り当て部により割り当てられた前記リソースを前記ＯＳから確保することを特徴とする、サーバ装置として機能させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置、リソース管理方法およびプログラムに関し、仮想マシンのリソースを管理するサーバ装置、リソース管理方法およびプログラムに適用して好適なるものである。
【背景技術】
【０００２】
従来のコンピュータシステムでは、物理的なサーバマシンに搭載されたコンピュータ資源（以下、リソースと称して説明する。）は、まずＯＳ（Operating System）によって占有される。そして、ＯＳの上で動作するソフトウェア管理プログラムは、ＯＳによって認識されたリソースのうち、予め定められた定義にしたがって、所定量のリソースを確保する。上記したソフトウェア管理プログラムは、アプリケーションソフトウェアに対してＯＳよりも高度で具体的な機能を提供するソフトウェアであって、例えばミドルウェアなどを例示できる。さらに、ソフトウェア管理プログラムは、予め定められた定義にしたがって、ソフトウェア管理プログラム上で動作するアプリケーションソフトウェアに対して、リソースの割り当を行う。【０００３】
しかし、上記したコンピュータシステムにおいて、ＯＳは起動時に新たなリソースを検知して当該リソースを占有するが、ソフトウェア管理プログラムによって確保されるリソース量の定義は、手動で変更しなければならなかった。また、業務アプリケーションソフトウェアへのリソース割り当ての定義も手動で変更しなければならなかった。そのため、システム全体として必要とするリソース量が変動した場合に、システムを一旦停止したうえで、物理的なリソースを増減させる必要があった。【０００４】
ところで、近年のコンピュータシステムでは、サーバ装置の物理的なリソースを、ソフトウェアを使って仮想的に分割し、サーバ上に複数の「仮想マシン」を構成する仮想マシン技術が実現している。この仮想マシン技術では、１台の物理サーバ上に複数の仮想マシンを配備し、各仮想マシンで独立にＯＳを稼働させることができる。このとき、各仮想マシンに割り当てられるリソース量は、物理的なリソースの構成に縛られることなく柔軟に分割され、なおかつ、システムを停止することなく動的にリソース量を変更することが可能となる。したがって、システム全体として必要とするリソース量が変動した場合でも、システムを一旦停止することなく、各仮想マシンのＯＳが利用可能なリソース量を柔軟に増減させることができる。【０００５】
しかし、上記したように、各仮想マシンのＯＳは、利用可能なリソース量を柔軟に増減させることができるが、ＯＳ上で動作するソフトウェア管理プログラムは、リソース量の変更を検知したり、業務アプリケーションソフトウェアを自動的に識別したりする機能を持たないため、自身で確保するリソースや業務アプリケーションソフトウェアに割り当てるリソースを動的に管理することができなかった。【０００６】
そこで、システム全体として必要とするリソース量が変動した場合に、仮想マシン自体を別途用意する、いわゆるスケールイン／スケールアウトの手法により迅速にコンピュータ性能を上げる技術が開示されている（例えば、特許文献１）。特許文献１によれば、システム全体のリソース量が変動した場合に、仮想マシンを別途用意してリソース量を増減させることにより、ソフトウェア管理プログラムの設定変更の影響を低減させることが可能となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特願２００８−５５３１１０号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、サーバ仮想化によって各仮想マシンのリソース量が変更された場合に、ＯＳによって利用可能なリソース量を柔軟に増減させるとともに、ソフトウェア管理プログラムによって確保されるリソース量を動的に変更させたり、アプリケーションソフトウェアごとに割り当てるリソース量を動的に変更させたりして、システムの設定変更を自動化し、リソースの利用効率を向上させることが望まれている。【０００９】
本発明は以上の点を考慮してなされたもので、仮想マシンのソフトウェア管理プログラムによるリソース量の設定を動的に変更することが可能なサーバ装置、リソース管理方法およびプログラムを提案しようとするものである。
【課題を解決するための手段】
【００１０】
かかる課題を解決するために本発明においては、物理的なリソースを備えた物理マシン上に構築される複数の仮想マシンを提供するサーバ装置であって、前記仮想マシンは、前記仮想マシンに割り当てられた前記物理的なリソースを前記仮想マシン内のリソースとして認識するＯＳと、前記ＯＳにより認識された前記リソースを確保して、前記仮想マシンに登録される複数の業務アプリケーションソフトウェアに前記リソースを割り当てるソフトウェア管理部と、を備え、前記ソフトウェア管理部は、前記複数の業務アプリケーションソフトウェアを識別して、予め設定された前記リソースの割り当てポリシに基づいて、前記複数の業務アプリケーションソフトウェアに前記リソースを割り当て、前記仮想マシンに割り当てられた前記リソースの増減を検知した場合に、前記検知したリソースの増減量に応じて、前記複数の業務アプリケーションソフトウェアへのリソースの割り当てを変更することを特徴とする、サーバ装置が提供される。【００１１】
かかる構成によれば、物理マシン上に構築される複数の仮想マシンに割り当てられた物理的なリソースを、複数の業務アプリケーションソフトウェア毎のリソースの割り当てポリシに基づいてリソースを割り当てて、仮想マシンに割り当てられたリソースが増減した場合に、リソースの増減量に応じて業務アプリケーションソフトウェアへのリソースの割り当てを変更する。これにより、サーバ仮想化により、各仮想マシンのリソース量が柔軟に変更された場合に、ソフトウェア管理部が仮想マシンのリソース量の変更を動的に検知して、各業務アプリケーションソフトウェアにリソース量の変更を適切に反映することができる。したがって、手動でリソース量の割り当てを行うことがなくなり、システム全体の運用コストを低減させて、リソースの利用効率を向上させて、システムの安定稼働を実現させることが可能となる。
【発明の効果】
【００１２】
本発明によれば、仮想マシンのソフトウェア管理プログラムによるリソース量の設定を動的に変更させることにより、システムの設定変更を自動化して、リソースの利用効率を向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施の形態に係る計算機システムの全体構成を示すブロック図である。
【図２】同実施形態にかかるリソースの構成を示す模式図である。
【図３】同実施形態にかかるソフトウェア管理部の構成を示すブロック図である。
【図４】同実施形態にかかるサーバ装置の動作の概要を示す概念図である。
【図５】同実施形態にかかる業務アプリケーションソフトウェア一覧管理テーブルの一例を示す図表である。
【図６】同実施形態にかかるリソース割り当てポリシ管理テーブルの一例を示す図表である。
【図７】同実施形態にかかるリソース管理テーブルの一例を示す図表である。
【図８Ａ】同実施形態にかかる業務アプリケーションソフトウェア識別処理を示すフローチャートである。
【図８Ｂ】同実施形態にかかる業務アプリケーションソフトウェア識別処理を示すフローチャートである。
【図９Ａ】同実施形態にかかるリソースの割り当て処理の詳細を示すフローチャートである。
【図９Ｂ】同実施形態にかかるリソースの割り当て処理の詳細を示すフローチャートである。
【図１０】同実施形態にかかるリソースの割り当て処理の詳細を示すフローチャートである。
【図１１Ａ】同実施形態にかかるリソース管理処理の詳細を示すフローチャートである。
【図１１Ｂ】同実施形態にかかるリソース管理処理の詳細を示すフローチャートである。
【図１２】同実施形態にかかるリソース割り当てまたはリソース割り当て解除処理の詳細を示すフローチャートである。
【図１３】同実施形態にかかるリソースの解放処理の詳細を示すフローチャートである。
【図１４】同実施形態にかかるリソース量変更の検知処理を示すフローチャートである。
【図１５】同実施形態にかかるリソース量変更の検知処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下図面について、本発明の一実施の形態を詳述する。
【００１５】
（１）計算機システムの構成
まず、本実施の形態にかかる計算機システム１の構成について説明する。図１に示すように、本実施の形態にかかる計算機システム１は、サーバ装置１００とサーバ装置２００とから構成される。サーバ装置１００とサーバ装置２００とは、ＳＡＮ（Storage Area Network）またＬＡＮ（Local Area Network）などのネットワークを介して接続されている。
【００１６】
サーバ装置１００およびサーバ装置２００は、物理的なコンピュータ資源が搭載された情報処理装置である。サーバ装置１００では、サーバ装置１００の物理的なコンピュータ資源（以降、リソースとも称して説明する。）が仮想的に分割され、サーバ装置１００上に構成された複数の仮想マシンに仮想的に分割されたリソースが割り当てられる。以降、サーバ装置１００を仮想化サーバ１００と称して説明する。また、サーバ装置２００は、仮想化サーバ１００上の仮想マシンの構成を管理する装置である。以降、サーバ装置２００を管理サーバ２００と称して説明する。なお、本実施形態では、仮想化サーバ１００と管理サーバ２００とを別体の装置として構成したが、かかる例に限定されず、仮想化サーバ１００と管理サーバ２００とを一体の装置として構成してもよい。
【００１７】
まず、仮想化サーバ１００のハードウェア構成について説明する。図１に示すように、仮想化サーバ１００は、主記憶１１０と、ＣＰＵ（Central Processing Unit）１２０と、補助記憶１３０と、を備えている。
【００１８】
主記憶１１０は、ＣＰＵ１２０が使用するプログラムや演算パラメータ等を記憶し、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などから構成される。また、主記憶１１０に格納されたプログラムの一つであるハイパーバイザ１１１によって、仮想化サーバ１００に搭載された物理的なリソースが仮想的に分割され、複数の仮想マシン１１２ａ、１１２ｂ、１１２ｃ（以降、仮想マシン１１２と称する）が構成される。
【００１９】
ハイパーバイザ１１１によって構成された複数の仮想マシン１１２には、それぞれ、ＯＳ１１３やソフトウェア管理部１１４などのソフトウェアが搭載される。仮想マシン１１２内のソフトウェアは、仮想マシン１１２があたかも物理マシンと同様であるかのように動作する。
【００２０】
ＯＳ１１３は、仮想化サーバ１００の物理的なリソースを制御する。具体的に、仮想マシン１１２内のＯＳ１１３は、１つの仮想マシン１１２があたかも１台の物理マシンであるかのうように、仮想マシン１１２のリソースを占有して動作する。
【００２１】
ソフトウェア管理部１１４は、ＯＳ１１３上で動作するプログラムであって、各業務アプリケーションソフトウェア１１５に対してＯＳ１１３よりも高度で具体的な機能を提供するソフトウェアであって、例えば、ミドルウェアなどを例示できる。ソフトウェア管理部１１４は、具体的に、各業務アプリケーションソフトウェア１１５に共通するデータの入出力処理や、通信処理、エラー処理などを行う。また、ソフトウェア管理部１１４は、ＯＳ１１３に提供されるリソースを一旦確保して、当該リソースを各業務アプリケーションソフトウェア１１５に割り当てる機能を有する。
【００２２】
また、業務アプリケーションソフトウェア１１５は、各システムで必要とされる固有の業務を実現するためのソフトウェアであって、ソフトウェア管理部１１４により割り当てられるリソースの範囲内で動作する。業務アプリケーションソフトウェア１１５は、複数の仮想マシン１１２に異なる業務アプリケーションソフトウェア１１５が搭載されていてもよいし、各仮想マシン１１２に同種の業務アプリケーションソフトウェア１１５が搭載されていてもよい。
【００２３】
ＣＰＵ１２０は、演算処理装置および制御装置として機能し、主記憶１１０に格納された各種プログラムに従って、仮想化サーバ１００内の動作全般を制御する。また、ＣＰＵ１２０は、マイクロプロセッサであってもよい。
【００２４】
補助記憶１３０は、仮想化サーバ１００の記憶部の一例として構成されたデータ格納用の装置であって、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含むことができる。補助記憶１３０は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）で構成される。この補助記憶１３０は、ハードディスクを駆動し、ＣＰＵ１２０が実行するプログラムや各種データを格納する。
【００２５】
次に、管理サーバ２００のハードウェア構成について説明する。図１に示すように、管理サーバ２００は、ＣＰＵ２０２と、補助記憶２０４と、主記憶２０６と、ＯＳ２０８と、ハイパーバイザ管理ソフト２１０とから構成される。
【００２６】
ＣＰＵ２０２は、演算処理装置および制御装置として機能し、各種プログラムに従って管理サーバ２００内の動作全般を制御する。また、補助記憶２０４は、管理サーバ２００の記憶部の一例として構成されたデータ格納用の装置であって、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含むことができる。補助記憶２０４は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）で構成される。この補助記憶２０４は、ハードディスクを駆動し、ＣＰＵ２０２が実行するプログラムや各種データを格納する。
【００２７】
主記憶２０６は、ＣＰＵ２０２が使用するプログラムや演算パラメータ等を記憶し、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などから構成される。ＯＳ２０８は、仮想化サーバ１００の物理的なリソースを制御する。
【００２８】
ハイパーバイザ管理ソフト２１０は、仮想化サーバ１００のハイパーバイザ１１１を管理するソフトウェアであって、管理者の入力に応じて、ハイパーバイザ１１１を制御して仮想マシン１１２を追加したり、仮想マシン１１２の構成等を変更したりする。
【００２９】
次に、仮想化サーバ１００におけるリソースの構成について説明する。図２では、各装置や、各プログラムにより認識されるリソースを模式的に表している。また、リソースの構成を説明するに際して、各装置や、各プログラムによるリソースの認識方法も併せて説明する。なお、本実施形態では、仮想化サーバ１００のリソースとして、ＣＰＵ、メモリおよびＨＤＤなどを例示して説明するがかかる例に限定されない。例えば、仮想化サーバ１００のリソースとして、各種ネットワークを例示することができる。
【００３０】
図２に示すように、仮想化サーバ１００に、ＣＰＵ、メモリおよびＨＤＤなどの物理的なリソースが搭載されている。仮想化サーバ１００に搭載されたリソースは、ハイパーバイザ１１１によって各仮想マシン１１２に割り当てられる（ＳＴＥＰ０１）。具体的に、管理者等の入力に応じて、管理サーバ２００のハイパーバイザ管理ソフト２１０の制御のもと、各仮想マシン１１２にリソースが割り当てられたり、各仮想マシン１１２へのリソースの割り当てが変更されたりする。
【００３１】
そして、各仮想マシン１１２のＯＳ１１３が、ＳＴＥＰ０１で割り当てられた仮想マシン内のリソースを認識する（ＳＴＥＰ０２）。ＯＳ１１３によって認識されたリソースは、ソフトウェア管理部１１４に利用される。
【００３２】
そして、各仮想マシン１１２のソフトウェア管理部１１４は、ＯＳ１１３によって認識されたリソースを確保する（ＳＴＥＰ０３）。本実施形態では、ソフトウェア管理部１１４が、仮想マシン１１２にリソースが割り当てられ、ＯＳ１１３によってリソースの割り当てが認識されたことを検知する。そして、ソフトウェア管理部１１４は、検知したリソースのうち、ソフトウェア管理部１１４が必要とするリソースを確保する。
【００３３】
そして、ソフトウェア管理部１１４は、各業務アプリケーションソフトウェア１１５にステップ０３で確保したリソースを割り当てる。本実施形態では、ソフトウェア管理部１１４は、各業務アプリケーションソフトウェア１１５の構成を解析して、業務アプリケーションソフトウェア１１５毎にリソース管理を行う。
【００３４】
従来は、各仮想マシン１１２のＯＳ１１３は、利用可能なリソース量を柔軟に増減させることができるが、ＯＳ１１３上で動作するソフトウェア管理部１１４は、リソース量の変更を検知したり、業務アプリケーションソフトウェア１１２を自動的に識別したりする機能を持っていなかった。このため、自身で確保するリソースや業務アプリケーションソフトウェアに割り当てるリソースを動的に管理することができなかった。
【００３５】
しかし、上記したように、本実施の形態では、ソフトウェア管理部１１４が、仮想マシン１１２へのリソースの割り当てを自動的に検知して、各業務アプリケーションソフトウェア１１５に割り当てることにより、サーバ仮想化によって、各仮想マシン１１２のリソースが柔軟に変更された場合でも、ソフトウェア管理部１１４が利用するリソース量を動的に変更することが可能となる。
【００３６】
なお、本実施の形態では、ソフトウェア管理部１１４が業務アプリケーションソフトウェア１１５に割り当てるリソース量を変更することとしているが、かかる例に限定されない。例えば、ファイル単位でデータの読み書きが行われる場合には、ファイル毎に割り当てるリソース量を変更するようにしてもよい。
【００３７】
（２）仮想化サーバのソフトウェア構成
次に、仮想化サーバ１００のソフトウェア構成について説明する。以下では、特に、仮想化サーバ１００のソフトウェア管理部１１４の構成について詳細に説明する。図３に示すように、ソフトウェア管理部１１４は業務アプリケーションソフトウェア識別部１１６と、リソース割り当て部１１７と、リソース管理部１１８と、リソース増減検知部１１９と、から構成される。
【００３８】
業務アプリケーションソフトウェア識別部１１６は、ソフトウェア管理部１１４に登録された業務アプリケーションソフトウェア１１５を検知して、各業務アプリケーションソフトウェア１１５の構成を識別する機能を有する。また、業務アプリケーションソフトウェア識別部１１６は、業務アプリケーションソフトウェア１１５を識別した結果をリソース割り当て部１１７に提供する。
【００３９】
リソース割り当て部１１７は、予め設定されたリソース割り当てポリシにしたがって、各業務アプリケーションソフトウェア１１５にリソースを割り当てる機能を有する。リソース割り当て部１１７は、各業務アプリケーションソフトウェア１１５に割り当てるリソース量の情報をリソース管理部１１８に提供する。
【００４０】
リソース管理部１１８は、リソース割り当て部１１７により提供された各業務アプリケーションソフトウェア１１５に割り当てるリソース量の情報をもとに、実際にＯＳ１１３からリソースを確保したり、ＯＳ１１３にリソースを返却したりする機能を有する。また、リソース管理部１１８は、各業務アプリケーションソフトウェア１１５におけるリソースの使用状況を集計する機能も有する。
【００４１】
リソース増減検知部１１９は、仮想マシン１１２のリソース量が増減したことを検知する機能を有する。リソース増減検知部１１９は、当該検知結果をリソース割り当て部１１７またはリソース管理部１１８に通知する。
【００４２】
（３）サーバ装置の動作の詳細
（３−１）サーバ装置の動作の概要
次に、仮想化サーバ１００の動作の概要について説明する。図４に示すように、まず、仮者等の入力操作に応じて、仮想化サーバ１００のソフトウェア管理部１１４に、業務アプリケーションソフトウェア１１５が登録される（ＳＴＥＰ１１）。
【００４３】
ＳＴＥＰ１１において、ソフトウェア管理部１１４に業務アプリケーションソフトウェア１１５が登録されると、業務アプリケーションソフトウェア識別部１１６は、登録された業務アプリケーションソフトウェアの構成を識別して、業務アプリケーションソフトウェアの構成を業務アプリケーションソフトウェア一覧管理テーブル３１０に登録する（ＳＴＥＰ１２）。
【００４４】
具体的に、ソフトウェア管理部１１４は、業務アプリケーションソフトウェア１１５に含まれる複数のプログラムの構成単位や実行単位となるプログラム境界に基づいて、各業務アプリケーションソフトウェア１１５を識別する。また、ソフトウェア管理部１１４は、業務アプリケーションソフトウェア１１５の外部システムとの通信先情報となる位置情報に基づいて、各業務アプリケーションソフトウェア１１５を識別する。そして、ソフトウェア管理部１１４は、業務アプリケーションソフトウェア１１５の識別情報を業務アプリケーションソフトウェア一覧管理テーブル３１０に登録する。
【００４５】
業務アプリケーションソフトウェア一覧管理テーブル３１０は、各業務アプリケーションソフトウェアの構成を管理するテーブルであって、図５に示すように、業務アプリケーションソフトウェア一覧管理テーブル３１０Ａまたは３１０Ｂなどを例示できる。業務アプリケーションソフトウェア一覧管理テーブル３１０Ａは、業務アプリケーションソフトウェアを上記したプログラム境界に基づいて識別した場合に登録される情報であり、業務アプリケーションソフトウェア一覧管理テーブル３１０Ｂは、業務アプリケーションソフトウェアを上記した位置情報に基づいて識別した場合に登録される情報である。
【００４６】
業務アプリケーションソフトウェア一覧管理テーブル３１０Ａは、Ｎｏ欄３１０１、境界種別欄３１０２、識別欄３１０３、階層欄３１０４およびアプリケーション欄３１０５から構成される。
【００４７】
Ｎｏ欄３１０１には、アプリケーションに付された項番が格納される。境界種別欄３１０２には、プログラムを識別するための境界情報の種別が格納される。ここで、プログラムの境界種別とは、業務アプリケーションソフトウェア１１５に含まれる複数のプログラム群の構成単位や実行単位である。例えば、Ｊａｖａプログラムの場合には、境界種別欄３１０２に、「Ｊａｖａ  Ａｒｃｈｉｖｅ」が格納され、ソフトウェア管理部１１４が、Ｊａｖａのアーカイブ単位でプログラムを識別することを意味する。Ｊａｖａのアーカイブ単位とは、例えば、「ＪＡＲ（Java Archive）」、「ＷＡＲ（Web Archive）」、「ＥＡＲ（Enterprise Archive）」などの多階層のアーカイブごとに設定されたクラスローダの単位である。また、ＪＡＶＡ以外の他の言語によるプログラムの場合には、例えば、ライブラリファイルや実行モジュールファイルなどの単位で業務アプリケーションソフトウェア１１５を識別することができる。識別欄３１０３には、識別されたプログラムの境界情報が格納される。階層欄３１０４には、Ｊａｖａプログラムの場合には、識別されたクラスローダが、Ｊａｖａアーカイブの階層の情報が格納される。そして、アプリケーション欄３１０５には、業務アプリケーションソフトウェア１１５を識別する名称が格納される。
【００４８】
また、業務アプリケーションソフトウェア一覧管理テーブル３１０Ｂは、Ｎｏ欄３１１１、位置種別欄３１１２、識別欄３１１３、属性欄３１１４およびアプリケーション欄３１１５から構成される。
【００４９】
Ｎｏ欄３１１１には、アプリケーションに付された項番が格納される。位置種別欄３１１２には、プログラムを識別するための位置情報の種別が格納される。プログラムを識別するための位置情報とは、業務アプリケーションソフトウェア１１５が外部システムと通信する場合に用いる識別情報であって、例えば、Ｗｅｂアプリケーションソフトウェアであればインターネット上の所在を示すＵＲＬ（Uniform Resource Locator）である。また、その他のネットワーク通信であれば、ＩＰアドレスとポート番号等によって識別される通信先情報などである。また、同一システム内のプロセス間通信の場合には、プロセス識別子の情報などである。識別欄３１１３には、識別された位置情報が格納され、例えば、ＵＲＬやＩＰアドレスなどが格納される。
【００５０】
属性欄３１１４には、位置情報の属性情報が格納される。属性情報としては、例えば、パラメータ情報やログイン情報などを例示できる。属性情報により、例えば、識別欄３１１３に格納されたＵＲＬが同じであっても、パラメータ情報やログイン情報が異なる場合には、別の業務アプリケーションプログラム１１５として区別することができる。そして、アプリケーション欄３１１５には、業務アプリケーションソフトウェア１１５を識別する名称が格納される。
【００５１】
図４に戻り、仮想化サーバ１００の動作の概要の説明を続ける。ＳＴＥＰ１１において業務アプリケーションソフトウェア１１５が登録された後、管理者等の入力操作に応じて、業務アプリケーションソフトウェア１１５が実行される（ＳＴＥＰ１４）。ＳＴＥＰ１４において、業務アプリケーションソフトウェア１１５が実行されると、リソース割り当て部１１７は、各業務アプリケーションソフトウェア１１５にリソースを割り当てる（ＳＴＥＰ１５）。具体的に、リソース割り当て部１１７は、リソース割り当てポリシ管理テーブル３２０を参照して、各業務アプリケーションソフトウェア１１５にリソースを割り当てる。
【００５２】
リソース割り当てポリシ管理テーブル３２０は各業務アプリケーションソフトウェア１１５にリソースを割り当てるためのポリシを管理するテーブルであって、図６に示すように、リソース割り当てポリシ管理テーブル３２０Ａ、３２０Ｂ、３２０Ｃなどを例示できる。リソース割り当てポリシ管理テーブル３２０Ａは、比率維持方式によりリソースの割当量を変更する場合に参照されるテーブルであり、業務アプリケーションソフトウェア１１５に利用可能なリソース量の比率が設定されている。また、リソース割り当てポリシ管理テーブル３２０Ｂおよび３２０Ｃは、共有調整方式によりリソースの割当量を変更する場合に参照されるテーブルであって、業務アプリケーションソフトウェア１１５に利用可能なリソース量の上限または下限と、共有可能なリソース量が設定されている。
【００５３】
リソース割り当てポリシ管理テーブル３２０Ａは、業務アプリケーションソフトウェア１１５に利用可能なＣＰＵの容量の比率を管理するテーブルであって、Ｎｏ欄３２０１、アプリケーション欄３２０２、ポリシタイプ欄３２０３、上限欄３２０４および下限欄３２０５から構成される。Ｎｏ欄３２０１には、アプリケーションに付された項番が格納される。アプリケーション欄３２０２には、業務アプリケーションソフトウェア識別部１１６により識別されたアプリケーションの名称が格納される。ポリシタイプ３２０３には、リソースの割り当てポリシが格納され、比率維持方式を示す「比率維持」が格納される。上限欄３２０４には、比率維持方式によりリソースを割り当てる際の上限値が格納される。下限値３２０５には、比率維持方式によりリソースを割り当てる際の下限値が格納される。なお、上限値および下限値は、いずれか両方を設定してもよいし、いずれか一方のみ設定してもよい。
【００５４】
リソース割り当てポリシ管理テーブル３２０Ｂは、業務アプリケーションソフトウェア１１５に利用可能なメモリの容量の割当量を管理するテーブルであって、Ｎｏ欄３２１１、アプリケーション欄３２１２、ポリシタイプ欄３２１３、上限欄３２１４および下限欄３２１５および共有欄３２１６から構成されている。Ｎｏ欄３２１１には、アプリケーションに付された項番が格納される。アプリケーション欄３２１２には、業務アプリケーションソフトウェア識別部１１６により識別されたアプリケーションの名称が格納される。ポリシタイプ３２１３には、リソースの割り当てポリシが格納され、共有調整方式を示す「共有調整」が格納される。上限欄３２１４には、共有調整方式によりリソースを割り当てる際の上限値が格納される。下限値３２１５には、共有調整方式によりリソースを割り当てる際の下限値が格納される。共有欄３２１６には、上限値または下限値を超えてメモリを使用する必要がある場合に利用可能な共有リソースの容量が格納される。仮想マシン１１２のリソース量が増減した場合には、共有欄３２６１に格納されている共有リソースの量が変更される。
【００５５】
また、リソース割り当てポリシ管理テーブル３２０Ｃは、業務アプリケーションソフトウェア１１５に利用可能なコネクションの容量の割当量を管理するテーブルであって、Ｎｏ欄３２２１、アプリケーション欄３２２２、ポリシタイプ欄３２２３、上限欄３２２４、下限欄３２２５および共有欄３２２６から構成されている。各欄に格納される内容は、リソース割り当てポリシ管理テーブル３２０Ｂと同様であるため、詳細な説明は省略する。
【００５６】
図４に戻り、仮想化サーバ１００の動作の概要の説明を続ける。ＳＴＥＰ１５においてリソース割り当て部１１７により、各業務アプリケーションソフトウェア１１５にリソースが割り当てられると、リソース管理部１１８は、ＯＳ１１３からリソースを確保したり、ＯＳ１１３にリソースを返却したりする（ＳＴＥＰ１６）。そして、リソース管理部１１８は、リソース管理テーブル３３０に、各業務アプリケーションソフトウェア１１５に実際に割り当てたリソースの情報を格納する。さらに、リソース管理部１１８は、業務アプリケーションソフトウェア１１５に利用されているリソース量を集計して、リソース使用状況管理テーブル３４０をリソース増減検知部１１９に提供する。
【００５７】
リソース管理テーブル３３０は、各業務アプリケーションソフトウェア１１５に実際に割り当てたリソースの情報を管理するテーブルであって、図７に示すように、リソース管理テーブル３３０Ａまたは３３０Ｂなどを例示できる。
【００５８】
リソース管理テーブル３３０Ａは、各業務アプリケーションソフトウェア１１５に割り当てられたメモリの情報を管理するテーブルであって、Ｎｏ欄３３０１、アプリケーション欄３３０２、サイズ欄３３０３、ステータス欄３３０４およびポジション欄３３０５などから構成される。
【００５９】
Ｎｏ欄３３０１には、アプリケーションに付された項番が格納される。アプリケーション欄３３０２には、業務アプリケーションソフトウェア識別部１１６により識別されたアプリケーションの名称が格納される。サイズ欄３３０３には、業務アプリケーションソフトウェア１１５に実際に割り当てられたメモリのサイズが格納される。ステータス欄３３０４には、メモリ等リソースが確保されたか否かなど、リソースの状態の情報が格納される。ポジション３３０５には、確保されたメモリの位置情報が格納される。
【００６０】
リソース管理テーブル３３０Ｂは、各業務アプリケーションソフトウェア１１５に割り当てられたコネクションの情報を管理するテーブルであって、Ｎｏ欄３３１１、アプリケーション欄３３１２、サイズ欄３３１３、ステータス欄３３１４およびポジション欄３３１５などから構成される。
【００６１】
Ｎｏ欄３３１１には、アプリケーションに付された項番が格納される。アプリケーション欄３３１２には、業務アプリケーションソフトウェア識別部１１６により識別されたアプリケーションの名称が格納される。サイズ欄３３１３には、業務アプリケーションソフトウェア１１５に実際に割り当てられたコネクション（通信回線）のサイズが格納される。ステータス欄３３１４には、コネクション（通信回線）が確保されたか否かなど、コネクションの状態の情報が格納される。ポジション３３１５には、確保されたコネクションが外部装置と接続するためのコネクションか、内部装置と接続するためのコネクションかなどの情報が格納される。
【００６２】
図４に戻り、管理者等の入力操作に応じて、仮想マシン１１２のリソース量が変更される（ＳＴＥＰ１７）。ＳＴＥＰ１７において、仮想マシン１１２のリソース量が変更されると、リソース増減検知部１１９は、仮想マシン１１２のリソース量の増減を検知する（ＳＴＥＰ１８）。具体的に、リソース増減検知部１１９は、ハイパーバイザ１１１または管理サーバ２００のハイパーバイザ管理ソフト２１０から発せられるリソース量の変更情報を検知して、リソース管理部１１８に通知する。
【００６３】
また、リソース増減検知部１１９は、ＯＳ１１３のリソース量情報を定期的に取得（ポーリング）することにより、リソース量が変更されたことを検知してもよい。この場合、リソース管理部１１８は、リソース使用状況管理テーブル３４０を参照して、現在使用されているリソース量と、ＯＳ１１３のリソース量とを比較して、リソース量が変更されたか否かを検出する。リソース管理部１１８は、リソース増減検知部１１９から通知されたリソース量の変更情報に応じて、ＯＳ１１３から追加的にリソースを確保したり、リソースを解放したりする。
【００６４】
リソース使用状況管理テーブル３４０は、各業務アプリケーションソフトウェア１１５によるリソースの使用状況を管理するテーブルであって、図７に示すように、リソース使用状況管理テーブル３４０Ａまたは３４０Ｂなどを例示できる。
【００６５】
リソース使用状況管理テーブル３４０Ａは、業務アプリケーションソフトウェア１１５が使用するメモリに関する情報を管理するテーブルであって、Ｎｏ欄３４０１、アプリケーション欄３４０２、使用中欄３４０３および未使用欄３４０４から構成される。
【００６６】
Ｎｏ欄３４０１には、アプリケーションに付された項番が格納される。アプリケーション欄３４０２には、業務アプリケーションソフトウェア識別部１１６により識別されたアプリケーションの名称が格納される。使用中欄３４０３には、各業務アプリケーションソフトウェア１１５により使用されているメモリの容量が格納される。また、未使用欄３４０４には、各業務アプリケーションソフトウェア１１５に割り当てられたメモリ容量のうち、未使用のメモリの容量が格納される。
【００６７】
リソース使用状況管理テーブル３４０Ｂは、業務アプリケーションソフトウェア１１５が使用するコネクションに関する情報を管理するテーブルであって、Ｎｏ欄３４１１、アプリケーション欄３４１２、使用中欄３４１３および未使用欄３４１４から構成される。
【００６８】
Ｎｏ欄３４１１には、アプリケーションに付された項番が格納される。アプリケーション欄３４１２には、業務アプリケーションソフトウェア識別部１１６により識別されたアプリケーションの名称が格納される。使用中欄３４１３には、各業務アプリケーションソフトウェア１１５により使用されているコネクションの容量が格納される。また、未使用欄３４１４には、各業務アプリケーションソフトウェア１１５に割り当てられたコネクション容量のうち、未使用のコネクションの容量が格納される。
【００６９】
（３−２）業務アプリケーションソフトウェア識別処理の詳細
次に、業務アプリケーションソフトウェア識別処理の詳細を説明する。業務アプリケーションソフトウェアの識別方法は、上記したように、プログラム境界に基づく方法と、位置情報に基づく方法が挙げられる。
【００７０】
まず、プログラム境界に基づいて業務アプリケーションソフトウェアを識別する方法について説明する。図８Ａに示すように、まず、ソフトウェア管理部１１４は、業務アプリケーションソフトウェアを登録する（Ｓ１０１）。
【００７１】
そして、業務アプリケーション識別部１２０は、ステップＳ１０１において登録された業務アプリケーションソフトウェアのプログラム群の構成単位や実行単位を解析する（Ｓ１０２）。そして、業務アプリケーション識別部１２０は、ステップＳ１０２において解析されたプログラムの境界を認識する（Ｓ１０３）。具体的に、業務アプリケーション識別部１２０は、Ｊａｖａのアーカイブ単位でプログラム境界を識別したり、ライブラリファイルや実行モジュールファイルなどの単位でプログラム境界を識別したりする。
【００７２】
そして、業務アプリケーション識別部１２０は、ステップＳ１０３において認識されたプログラム境界とアプリケーションの名称とを関連付けて業務アプリケーションソフトウェア一覧管理テーブル３１０に登録する（Ｓ１０４）。
【００７３】
続いて、位置情報に基づいて業務アプリケーションソフトウェアを識別する方法について説明する。図８Ｂに示すように、まず、ソフトウェア管理部１１４は、業務アプリケーションソフトウェアを登録する（Ｓ１１１）。
【００７４】
そして、業務アプリケーション識別部１２０は、ステップＳ１１１において登録された業務アプリケーションソフトウェアの配備情報を解析する（Ｓ１１２）。具体的に、業務アプリケーション識別部１２０は、Ｗｅｂ業務用なのか、ネットワーク通信なのかなど、業務アプリケーションソフトウェアがどのように配備されているかを解析する。
【００７５】
そして、業務アプリケーション識別部１２０は、ステップＳ１１３において解析された配備情報における業務アプリケーションソフトウェアの位置情報を認識する（Ｓ１１３）。具体的に、業務アプリケーション識別部１２０は、インターネット上の所在を示すＵＲＬや、ＩＰアドレスやポート番号などを認識する。
【００７６】
そして、業務アプリケーション識別部１２０は、ステップＳ１１３において認識したアプリケーションの位置情報とアプリケーションの名称とを関連付けて業務アプリケーションソフトウェア一覧管理テーブル３１０に登録する（Ｓ１１４）。
【００７７】
（３−３）リソース割り当て処理の詳細
次に、リソース割り当て処理の詳細を説明する。業務アプリケーションソフトウェア１１５の初期化時や、業務アプリケーションソフトウェア１１５が動作中にリソースが必要となった場合にリソース割り当て処理が実行される。また、業務アプリケーションソフトウェア１１５の処理終了時や、業務アプリケーションソフトウェア１１５の動作中にリソースが不要となった場合、業務アプリケーションソフトウェアからリソースが回収される。
【００７８】
業務アプリケーションソフトウェア１１５へのリソースの割り当てや回収は、上記した業務アプリケーションソフトウェア識別処理によって識別されたプログラム単位で行われる。リソース割り当てポリシテーブル３２０に予め設定された割当量の上限や下限、１回に割り当てる量などを元に、業務アプリケーションソフトウェア１１５へのリソースの割り当てと回収が行われる。また、上記したように、リソースの割り当て方法としては、比率維持方式による割り当て方法と、共有調整方式による割り当て方法が挙げられる。
【００７９】
図９Ａに示すように、ソフトウェア管理部１１４は、業務アプリケーションソフトウェア１１５から、リソースの確保要求を受け付ける（Ｓ２０１）。そして、リソース割り当て部１１７は、業務アプリケーションソフトウェア１１５のリソースの使用状況を確認する（Ｓ２０２）。具体的に、リソース割り当て部１１７は、リソース使用状況管理テーブル３４０を参照して、リソースの現在の使用状況を確認する。
【００８０】
そして、リソース割り当て部１１７は、業務アプリケーションソフトウェア１１５に使用中のリソース量が所定の上限値未満か否かを判定する（Ｓ２０３）。そして、ステップＳ２０３において、業務アプリケーションソフトウェア１１５によって使用されているリソース量が所定の上限値未満であると判定された場合に、リソース割り当て部１１７は、業務アプリケーションソフトウェア１１５にリソースを割り当てる（Ｓ２０４）。具体的に、リソース割り当て部１１７は、業務アプリケーションソフトウェア１１５の名称と、割り当てたリソースのサイズとを関連付けてリソース管理テーブル３３０に登録する。
【００８１】
一方、ステップＳ２０３において、業務アプリケーションソフトウェア１１５によって使用されているリソース量が所定の上限値を超えている場合に、リソース割り当て部１１７は、リソースの確保が失敗したことを業務アプリケーションソフトウェア１１５に通知する（Ｓ２０５）。
【００８２】
次に、リソース割り当て部１１７によるリソースの回収処理について説明する。図９Ｂに示すように、ソフトウェア管理部１１４は、業務アプリケーションソフトウェア１１５から、リソースの解放要求を受け付ける（Ｓ２１１）。そして、リソース割り当て部１１７は、業務アプリケーションソフトウェア１１５のリソースの使用状況を確認する（Ｓ２１２）。具体的に、リソース割り当て部１１７は、リソース使用状況管理テーブル３４０を参照して、リソースの現在の使用状況を確認する。
【００８３】
そして、リソース割り当て部１１７は、業務アプリケーションソフトウェア１１５に使用中のリソース量が所定の下限値以上か否かを判定する（Ｓ２１３）。そして、ステップＳ２１３において、業務アプリケーションソフトウェア１１５によって使用されているリソース量が所定の下限値以上であると判定された場合に、リソース割り当て部１１７は、業務アプリケーションソフトウェア１１５へのリソースの割り当てを解除する（Ｓ２１４）。具体的に、リソース割り当て部１１７は、リソースの割り当てを解除した業務アプリケーションソフトウェア１１５を、リソース管理テーブル３３０から削除する。
【００８４】
一方、ステップＳ２１３において、業務アプリケーションソフトウェア１１５によって使用されているリソース量が所定の下限値未満であると判定された場合に、リソース割り当て部１１７は、リソースの解放が失敗したことを業務アプリケーションソフトウェア１１５に通知する（Ｓ２１５）。
【００８５】
次に、リソース割り当て部１１７によるリソース量の変更処理について説明する。図１０に示すように、まず、リソース割り当て部１１７は、仮想マシン１１２のリソース量の変更を検知する（Ｓ２２１）。具体的に、リソース割り当て部１１７は、リソース増減検知部１１９から仮想マシン１１２のリソース量が増減したことを通知される。
【００８６】
そして、リソース割り当て部１１７は、リソース割り当てポリシを確認する（Ｓ２２２）具体的に、リソース割り当て部１１７は、リソース割り当てポリシ管理テーブル３２０を参照して、リソース割り当てのポリシが比率維持方式か、共有調整方式かを確認する。
【００８７】
そして、リソース割り当て部１１７は、リソース割り当てポリシが比率維持方式か否かを判定する（Ｓ２２３）。ステップＳ２２３において、リソース割り当てポリシが比率維持方式であると判定された場合には、リソース割り当て部１１７は、各業務アプリケーションソフトウェア１１５の上限および下限のリソース量を変更する（Ｓ２２４）。具体的に、リソース割り当て部１１７は、リソース割り当てポリシ管理テーブル３２０の上限および下限の比率を参照して、リソース量の全体からリソース量の上限値および下限値を算出する。
【００８８】
また、ステップＳ２２３において、リソース割り当てポリシが比率維持方式ではないと判定された場合に、リソース割り当て部１１７は、リソース割り当てポリシが共有調整方式か否かを判定する（Ｓ２２５）。ステップＳ２２５において、リソース割り当てポリシが共有調整方式であると判定された場合には、リソース割り当て部１１７は、各業務アプリケーションソフトウェア１１５の共有リソース量を変更する（Ｓ２２６）。具体的に、リソース割り当て部１１７は、リソース割り当てポリシ管理テーブル３２０の共有リソース量を増加させたり減少させたりする。また、ステップＳ２２５において、リソース割り当てポリシが共有調整方式ではないと判定された場合には、リソース割り当て部１１７は、その他の方式で各業務アプリケーションソフトウェアの設定リソース量を変更する（Ｓ２２７）。ここで、ステップＳ２２７におけるその他の方式とは、例えば、優先度順位方式が挙げられる。具体的に、優先度順位方式では、ポリシ管理テーブル３２０において、各アプリケーションに対してリソース割り当ての優先順位を付与しておく。そして、リソースが増加した際に、ポリシ管理テーブル３２０の優先順位の高い順に上限値を増加させる。また、リソースが減少した際には、優先順位の低い順に上限値を減少させる。
【００８９】
（３−４）リソース管理処理の詳細
次に、リソース管理処理の詳細について説明する。リソース管理部１１８は、仮想マシン１１２のリソース量が増加した場合に、ＯＳ１１３からリソースを確保したり、リソース量が減少した場合に、ＯＳ１１３にリソースを返却したりする。仮想マシンのリソース量が変更されたか否かは、上記したように、リソース増減検知部１１９から通知される。
【００９０】
図１１Ａに示すように、まず、ソフトウェア管理部１１４が、業務アプリケーションソフトウェア１１５の初期化を実行したり、リソースを確保したりする（Ｓ３０１）。その後、リソース割り当て部１１７は、上記したリソース割り当て処理を実行して、業務アプリケーションソフトウェア１１５にリソースの割り当てを行う（Ｓ３０２）。
【００９１】
そして、リソース管理部１１８は、ステップＳ３０２により割り当てられたリソースを、ＯＳ１１３から確保する（Ｓ３０３）。そして、リソース管理部１１８は、使用状況を更新する（Ｓ３０４）。具体的に、リソース管理部１１８は、リソース使用状況管理テーブル３４０の使用中のリソース量を増加させて、未使用のリソース量を減少させる（Ｓ３０４）。
【００９２】
また、図１１Ｂに示すように、ソフトウェア管理部１１４が、業務アプリケーションソフトウェア１１５を終了したり、リソースを解放したりする（Ｓ３１１）。その後、リソース割り当て部１１７は、上記したリソース割り当て解除処理を実行して、業務アプリケーションソフトウェア１１５にリソースの割り当てを解除する（Ｓ３１２）。
【００９３】
そして、リソース管理部１１８は、ステップＳ３１２により解除されたリソースを、ＯＳ１１３に返却する（Ｓ３１３）。そして、リソース管理部１１８は、使用状況を更新する（Ｓ３１４）。具体的に、リソース管理部１１８は、リソース使用状況管理テーブル３４０の使用中のリソース量を減少させて、未使用のリソース量を増加させる（Ｓ３１４）。
【００９４】
次に、仮想マシン１１２のリソース量が変更した場合のリソース割り当てまたはリソース割り当て解除処理について説明する。図１２に示すように、まず、リソース管理部１１８は、リソース増減検知部１１９からの通知をもとに、仮想マシン１１２のリソース量が増加したか減少したかを判定する（Ｓ３２１）。
【００９５】
ステップＳ３２１において、仮想マシン１１２のリソース量が増加したと判定された場合には、リソース割り当て部１１７は、リソースの割り当て処理を実行して、業務アプリケーションソフトウェア１１５にリソースの割り当てを行う（Ｓ３２２）。そして、リソース管理部１１８は、ステップＳ３２２において割り当てられたリソースを、ＯＳ１１３から追加して確保する（Ｓ３２３）。
【００９６】
一方、ステップＳ３２１において、仮想マシン１１２のリソース量が減少したと判定された場合には、リソース割り当て部１１７は、リソースの割り当て解除処理を実行して、業務アプリケーションソフトウェア１１５のリソースの割り当てを解除する（Ｓ３２５）。そして、リソース管理部１１８は、リソースを業務アプリケーションソフトウェア１１５が使用中か否かを判定する（Ｓ３２６）。
【００９７】
ステップＳ３２６において、リソースを業務アプリケーションソフトウェア１１５が使用中ではないと判定された場合には、リソース管理部１１８は、確保済みのリソースを解放する（Ｓ３２７）。一方、ステップＳ３２６において、リソースを業務アプリケーションソフトウェア１１５が使用中であると判定された場合には、リソース管理部１１８は、リソース種別に応じてリソースを解放する（Ｓ３２８）。ステップＳ３２８におけるリソース種別に応じたリソースの解放処理については、後で詳細に説明する。
【００９８】
そして、リソース管理部１１８は、ＯＳ１１３にリソースを返却する（Ｓ３２９）。リソース管理部１１８は、ステップＳ３２４においてリソースを確保したり、ステップＳ３２９においてリソースを返却したりした後、リソース使用状況管理テーブルのリソース量を更新する（Ｓ３３０）。
【００９９】
次に、ステップＳ３２８において実行されるリソース種別に応じたリソースの解放処理の詳細について説明する。図１３に示すように、まず、リソース管理部１１８は、リソース種別を判定する（Ｓ３３１）。ステップＳ３３１において、リソース種別が無使用状態監視型であると判定された場合には、リソース管理部１１８は、無使用状態監視型のリソース解放処理を実行する（Ｓ３３２）。無使用状態監視型によりリソースを解放するリソースの種別とは、例えば、リアルタイムなセッションやコネクションなどを例示できる。
【０１００】
そして、リソース管理部１１８は、リソースが一定時間使用されない状態を監視する（Ｓ３３３）。具体的に、リソース管理部１１８は、例えば、セッションの場合には、セッションタイムアウトを監視したり、コネクションの場合には、コネクション無通信タイムアウトを監視したりする。
【０１０１】
一方、ステップＳ３３１において、リソース種別が空き領域確保型であると判定された場合には、リソース管理部１１８は、空き領域確保型のリソース解放処理を実行する（Ｓ３３４）。空き領域確保型によりリソースを解放するリソースの種別とは、例えば、ヒープメモリ、キャッシュメモリ、共有メモリおよびディスク領域などを例示できる。
【０１０２】
そして、リソース管理部１１８は、使用領域の整理や移動により空き領域を確保する（Ｓ３３５）。そして、ステップＳ３３３による無使用状態の監視および空き領域の確保により確保されたリソースを解放する（Ｓ３３６）。
【０１０３】
（３−５）リソース増減検知処理の詳細
次に、リソース増減検知処理の詳細について説明する。リソース増減検知部１１９は、仮想マシン１１２のリソース量が変更されたことを検知して、リソース管理部１１８に対して、ＯＳ１１３からリソースを追加確保したり、解放したりする契機を与える。リソース増減検知部１１９が、仮想マシン１１２のリソース量が変更されたこを検知する方法には以下の３通りが挙げられる。
【０１０４】
１つ目は、ハイパーバイザ１１１が仮想マシン１１２のリソース量を変更した場合に、ハイパーバイザ１１１から発せられるイベントを、仮想マシン１１２内のソフトウェア管理部１１４が受け取る方法である。この方法は、ハイパーバイザ１１１の機能に対応した仮想化用ドライバ等のソフトウェアをＯＳ１１３内に組み込むことにより実現可能である。
【０１０５】
２つ目は、管理サーバ２００のハイパーバイザ管理ソフト２１０によって、仮想マシン１１２のリソース量が変更された場合に、ハイパーバイザ管理ソフト２１０から発せられるイベントを、仮想マシン１１２内のソフトウェア管理部１１４が受け取る方法である。この方法は、ハイパーバイザ管理ソフト２１０と仮想マシン１１２との通信処理により実現可能である。
【０１０６】
３つ目は、ソフトウェア管理部１１４は、ＯＳ１１３のリソース量情報を定期的に取得（ポーリング）することによりリソースが変更されたことを認識する方法である。
【０１０７】
以下では、上記した１つ目および２つ目のイベントを受け取る方法と、３つ目のポーリングによる方法によってリソース量が変更されたことを検知する処理について説明する。
【０１０８】
図１４に示すように、リソース増減検知部１１９は、ハイパーバイザ１１１または管理サーバ２００のハイパーバイザ管理ソフト２１０からイベントが発生するのを待つ（Ｓ３４１）。そして、リソース増減検知部１１９は、リソース量変更のイベントが発生したか否かを判定する（Ｓ３４１）。具体的に、仮想マシン１１２のリソース量が変更すると、ハイパーバイザ１１１または管理サーバ２００のハイパーバイザ管理ソフト２１０からリソース量が変更したことを通知するイベントが発生される。リソース増減検知部１１９は、当該イベントが発生されたか否かを検知する。
【０１０９】
ステップＳ３４２において、イベントが発生されたと判定された場合には、リソース増減検知部１１９は、当該イベントを受信する（Ｓ３４３）。一方、ステップＳ３４２において、イベントが発生されていないと判定された場合には、リソース増減検知部１１９は、処理を終了する。
【０１１０】
そして、リソース増減検知部１１９は、ステップＳ３４３においてイベントを受信したことをリソース割り当て部１１７に通知して、リソース割り当て部１１７は、通知されたリソース変更量の情報をもとに各業務アプリケーションソフトウェア１１５にリソースを割り当てたり、リソース割り当てを解除したりする（Ｓ３４４）。
【０１１１】
次に、ポーリングによってリソース量が変更されたことを検知する処理について説明する。図１５に示すように、まずリソース増減検知部１１９は、ＯＳ１１３のリソース量情報を取得する（Ｓ３５１）。そして、リソース増減検知部１１９は、ステップＳ３５１において取得したＯＳ１１３のリソース量情報と、前回取得したＯＳ１１３のリソース量情報とに差異があるか否かを判定する（Ｓ３５２）。
【０１１２】
ステップＳ３５２において、リソース量情報に差異がないと判定された場合には、リソース増減検知部１１９は、一定時間スリープした後（Ｓ３５３）、ステップＳ３５１以降の処理を繰り返す。一方、ステップＳ３５２において、リソース量情報に差異があると判定された場合には、リソース増減検知部１１９は、リソース量の変更量を算出する（Ｓ３５４）。
【０１１３】
そして、リソース増減検知部１１９は、ステップＳ３５４において算出したリソース変更量をリソース割り当て部１１７に通知して、リソース割り当て部１１７は、通知されたリソース変更量の情報をもとに各業務アプリケーションソフトウェア１１５にリソースを割り当てたり、リソース割り当てを解除したりする（Ｓ３５５）。
【０１１４】
（４）本実施の形態の効果
以上のように、本実施の形態による計算機システム１では、サーバ仮想化により、各仮想マシン１１２のリソース量が柔軟に変更された場合に、ソフトウェア管理部１１４が仮想マシンのリソース量の変更を動的に検知して、各業務アプリケーションソフトウェア１１５にリソース量の変更を適切に反映することができる。これにより、手動でリソース量の割り当てを行うことがなくなり、システム全体の運用コストを低減させて、リソースの利用効率を向上させて、システムの安定稼働を実現させることが可能となる。
【０１１５】
（５）他の実施の形態
なお、上述の実施の形態においては仮想化サーバ１００のメモリに格納されている各種プログラムに基づいて、仮想化サーバ１００のＣＰＵ１２０が本発明のソフトウェア管理部（ソフトウェア管理部１１４）、識別部（アプリケーションソフトウェア識別部１１６）、リソース割り当て部（リソース割り当て部１１７）、リソース管理部（リソース管理部１１８）、検知部（リソース増減検知部１１９）などの各種機能を実現しているが、かかる例に限定されない。例えば、ＣＰＵ１２０を仮想化サーバ１００とは別体の他の装置に設けて、当該ＣＰＵ１２０と協同して各種機能を実現するようにしてもよい。また、仮想化サーバ１００に格納されている各種プログラムを仮想化サーバ１００とは別体の他の装置に設けて、当該プログラムがＣＰＵ１２０に呼び出されることにより各種機能を実現するようにしてもよい。
【産業上の利用可能性】
【０１１６】
本発明は、仮想マシンのリソースを管理する計算機システムに適用することができる。
【符号の説明】
【０１１７】
１        計算機システム
１００    仮想化サーバ
１１０    主記憶
１１１    ハイパーバイザ
１１２    仮想マシン
１１３    ＯＳ
１１４    ソフトウェア管理部
１１５    業務アプリケーションソフトウェア
１１６    業務アプリケーションソフトウェア識別部
１１７    リソース割り当て部
１１８    リソース管理部
１１９    リソース増減検知部
１２０    ＣＰＵ
１３０    補助記憶
２００    管理サーバ
２０２    ＣＰＵ
２０４    補助記憶
２０６    主記憶
２０８    ＯＳ
２１０    ハイパーバイザ管理ソフト
【図１】
2012063296.tif 000003
【図２】
2012063296.tif 000004
【図３】
2012063296.tif 000005
【図４】
2012063296.tif 000006
【図５】
2012063296.tif 000007
【図６】
2012063296.tif 000008
【図７】
2012063296.tif 000009
【図８Ａ】
2012063296.tif 000010
【図８Ｂ】
2012063296.tif 000011
【図９Ａ】
2012063296.tif 000012
【図９Ｂ】
2012063296.tif 000013
【図１０】
2012063296.tif 000014
【図１１Ａ】
2012063296.tif 000015
【図１１Ｂ】
2012063296.tif 000016
【図１２】
2012063296.tif 000017
【図１３】
2012063296.tif 000018
【図１４】
2012063296.tif 000019
【図１５】
2012063296.tif 000020
【手続補正書】
【提出日】平成25年8月27日(2013.8.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
物理的なリソースを備えた物理マシン上に構築される複数の仮想マシンを提供するサーバ装置であって、
前記仮想マシンは、
前記仮想マシンに割り当てられた前記物理的なリソースを前記仮想マシン内のリソースとして認識するＯＳと、
前記ＯＳにより認識された前記リソースを確保して、前記仮想マシンに登録される複数のＪａｖａ（登録商標）で記載された業務アプリケーションソフトウェアに前記リソースを割り当てるソフトウェア管理部と、
を備え、
前記ソフトウェア管理部は、
前記業務アプリケーションソフトウェアに含まれる複数のプログラムの構成単位や実行単位となるプログラム境界に基づいて、前記複数の業務アプリケーションソフトウェアを識別し、前記業務アプリケーションソフトウェアに含まれる複数のプログラムがＪａｖａ（登録商標）である場合に、前記Ｊａｖａ（登録商標）のアーカイブ単位で前記業務アプリケーションソフトウェアを識別して、予め設定された前記リソースの割り当てポリシに基づいて、前記複数の業務アプリケーションソフトウェアに前記リソースを割り当て、
前記仮想マシンに割り当てられた前記リソースの増減を検知した場合に、前記検知したリソースの増減量に応じて、前記複数の業務アプリケーションソフトウェアへのリソースの割り当てを変更する
ことを特徴とする、サーバ装置。
【請求項２】
前記ソフトウェア管理部は、
前記複数の業務アプリケーションソフトウェアを識別する識別部と、
予め設定された前記リソースの割り当てポリシに基づいて、前記識別部により識別された前記複数の業務アプリケーションソフトウェアに、前記リソースを割り当てるリソース割り当て部と、
前記リソース割り当て部により割り当てられる前記リソースを前記ＯＳから確保するリソース管理部と、
前記仮想マシンに割り当てられた前記リソースの増減を検知する検知部と、
を備え、
前記検知部により前記仮想マシンに割り当てられた前記リソースの増減が検知された場合に、
前記リソース割り当て部は、前記リソースの増減量に応じて、前記複数の業務アプリケーションソフトウェアへのリソースの割り当てを変更し、
前記リソース管理部は、前記リソース割り当て部により割り当てられた前記リソースを前記ＯＳから確保する
ことを特徴とする、請求項１に記載のサーバ装置。
【請求項３】
前記識別部は、前記複数の業務アプリケーションソフトウェアを識別して、前記業務アプリケーションソフトウェアの一覧を業務アプリケーションソフトウェア一覧管理テーブルに保持することを特徴とする、請求項２に記載のサーバ装置。
【請求項４】
前記ソフトウェア管理部は、
前記複数の業務アプリケーションソフトウェア毎に、前記リソースの割り当てポリシを設定したリソース割り当てポリシ管理テーブルを備え、
前記リソース割り当て部は、前記リソース割り当てポリシ管理テーブルに設定されている前記リソースの割り当てポリシに基づいて、前記複数の業務アプリケーションソフトウェアに前記リソースを割り当て、前記業務アプリケーションソフトウェアと割り当てた前記リソースの量とを関連付けてリソース管理テーブルに保持することを特徴とする、請求項２に記載のサーバ装置。
【請求項５】
前記リソース割り当てポリシ管理テーブルに設定されている前記リソースの割り当てポリシは、前記複数の業務アプリケーションソフトウェアに利用可能なリソースの比率を設定する比率維持方式であることを特徴とする、請求項４に記載のサーバ装置。
【請求項６】
前記リソース割り当てポリシ管理テーブルに設定されている前記リソースの割り当てポリシは、前記複数の業務アプリケーションソフトウェアにそれぞれリソース量の上限値または下限値を設定し、前記設定された上限値または下限値を超過する場合にいずれの業務アプリケーションでも利用可能な共有のリソース量を設定する共有調整方式であることを特徴とする、請求項４に記載のサーバ装置。
【請求項７】
前記リソース管理部は、前記ＯＳから確保した前記リソースの量と、実際に前記複数の業務アプリケーションソフトウェアに利用されているリソースの量とを関連付けてリソース使用状況管理テーブルに保持することを特徴とする、請求項２に記載のサーバ装置。
【請求項８】
前記リソース管理部は、前記ＯＳから確保した前記リソースを解放する場合に、前記リソースを前記業務アプリケーションソフトウェアが使用中であるか否かを判定し、
前記リソースを前記業務アプリケーションソフトウェアが使用中と判定された場合に、前記リソースの種別に応じて前記リソースを解放することを特徴とする、請求項２に記載のサーバ装置。
【請求項９】
前記リソース管理部は、前記業務アプリケーションソフトウェアが使用中と判定された後、タイムアウトにより前記リソースが所定の時間使用されなくなっている状態を検知して、前記リソースを解放することを特徴とする、請求項８に記載のサーバ装置。
【請求項１０】
前記リソース管理部は、前記リソースの使用領域の整理や移動により空き領域を確保して、前記リソースを解放することを特徴とする、請求項８に記載のサーバ装置。
【請求項１１】
前記物理的なリソースを備えた物理マシン上に前記仮想マシンを提供するハイパーバイザを備え、
前記検知部は、前記ハイパーバイザにより前記仮想マシンのリソース量が変更された場合に、前記ハイパーバイザから発せられる前記リソース量の変更情報に基づいて前記リソース量の変更を検知することを特徴とする、請求項２に記載のサーバ装置。
【請求項１２】
前記サーバ装置とは別体の装置に前記仮想マシンのリソース量を管理するハイパーバイザ管理ソフトが搭載されている場合に、
前記検知部は、前記ハイパーバイザ管理ソフトにより前記仮想マシンのリソース量が変更された場合に、前記ハイパーバイザ管理ソフトから発せられる前記リソース量の変更情報に基づいて、前記リソース量の変更を検知することを特徴とする、請求項１１に記載のサーバ装置。
【請求項１３】
前記ソフトウェア管理部は、前記ＯＳのリソース量情報を定期的に取得し、
前記検知部は、前記ＯＳのリソース量の差異を算出して、前記リソース量の変更を検知することを特徴とする、請求項１１に記載のサーバ装置。
【請求項１４】
物理的なリソースを備えた物理マシン上に構築される複数の仮想マシンを提供するサーバ装置を用いたリソース管理方法であって、
前記仮想マシンは、
前記仮想マシンに割り当てられた前記物理的なリソースを前記仮想マシン内のリソースとして認識するＯＳと、
前記ＯＳにより認識された前記リソースを確保して、前記仮想マシンに登録されるＪａｖａ（登録商標）で記載された複数の業務アプリケーションソフトウェアに前記リソースを割り当てるソフトウェア管理部と、
を備え、
前記ソフトウェア管理部は、
前記業務アプリケーションソフトウェアに含まれる複数のプログラムの構成単位や実行単位となるプログラム境界に基づいて、前記複数の業務アプリケーションソフトウェアを識別し、前記業務アプリケーションソフトウェアに含まれる複数のプログラムがＪａｖａ（登録商標）である場合に、前記Ｊａｖａ（登録商標）のアーカイブ単位で前記業務アプリケーションソフトウェアを識別するステップと、
予め設定された前記リソースの割り当てポリシに基づいて、前記複数の業務アプリケーションソフトウェアに前記リソースを割り当てるステップと、
前記仮想マシンに割り当てられた前記リソースの増減を検知した場合に、前記検知したリソースの増減量に応じて、前記複数の業務アプリケーションソフトウェアへのリソースの割り当てを変更するステップと、
を含むことを特徴とする、リソース管理方法。
【請求項１５】
コンピュータを、
物理的なリソースを備えた物理マシン上に構築される仮想マシンに登録されるＪａｖａ（登録商標）で記載された複数の業務アプリケーションソフトウェアを、前記業務アプリケーションソフトウェアに含まれる複数のプログラムの構成単位や実行単位となるプログラム境界に基づいて、前記複数の業務アプリケーションソフトウェアを識別し、前記業務アプリケーションソフトウェアに含まれる複数のプログラムがＪａｖａ（登録商標）である場合に、前記Ｊａｖａ（登録商標）のアーカイブ単位で前記業務アプリケーションソフトウェアを識別する識別部と、
予め設定された前記リソースの割り当てポリシに基づいて、前記識別部により識別された前記複数の業務アプリケーションソフトウェアに、前記リソースを割り当てるリソース割り当て部と、
前記リソース割り当て部により割り当てられる前記リソースを、前記仮想マシン内のＯＳから確保するリソース管理部と、
前記仮想マシンに割り当てられた前記リソースの増減を検知する検知部と、
を備え、
前記検知部により前記仮想マシンに割り当てられた前記リソースの増減が検知された場合に、
前記リソース割り当て部は、前記リソースの増減量に応じて、前記複数の業務アプリケーションソフトウェアへのリソースの割り当てを変更し、
前記リソース管理部は、前記リソース割り当て部により割り当てられた前記リソースを前記ＯＳから確保することを特徴とする、サーバ装置として機能させるための、プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
（３）サーバ装置の動作の詳細
（３−１）サーバ装置の動作の概要
次に、仮想化サーバ１００の動作の概要について説明する。図４に示すように、まず、管理者等の入力操作に応じて、仮想化サーバ１００のソフトウェア管理部１１４に、業務アプリケーションソフトウェア１１５が登録される（ＳＴＥＰ１１）。
【国際調査報告】
2012063296.tif 000021
2012063296.tif 000022
2012063296.tif 000023
2012063296.tif 000024