(57)【要約】【課題】従来の動的リソース割り当て方法では、仮想マシンで実行されているアプリケーションの優先度に応じて仮想マシンの優先度を決め、その優先度に基づき仮想マシンに対して動的にリソースを割り当てるので、リソース割り当てがタスク実行後となってしまい、突発的にリソースを多く使用するタスクを実行しようとしても、リソース不足となり処理が遅延してしまうという課題があった。【解決手段】ユーザ管理部１２１がユーザ１４による仮想マシン１３への接続を検知すると、リソース制御部１２２が、リソース管理部１２３で管理されるリソース割り当て情報に基づき、タスク実行前にユーザ１４が接続した仮想マシン１３へリソースを割り当てる。【選択図】  図１
2014099036.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンへのリソース割り当てを制御する情報処理装置であって、
ユーザの前記仮想マシンへの接続の有無を検知し、接続した前記ユーザの情報を管理するユーザ情報管理部と、
ハードウエアのリソースのうち、前記複数の仮想マシンに割り当てられたリソース及び前記ハードウエアの余剰リソースをリソース割当情報として管理するリソース管理部と、
前記複数の仮想マシンへリソースを割り当てるリソース制御部と、を備え、
前記ユーザ情報管理部が前記ユーザによる第１の仮想マシンへの接続を検知すると、前記リソース制御部は、接続した前記ユーザの情報に基づいて前記第１の仮想マシンにリソースを割り当てることを特徴とする情報処理装置。
【請求項２】
前記リソース制御部は、前記複数の仮想マシンのうち前記第１の仮想マシン以外のいずれか他の仮想マシンが保持する余剰リソースもしくは前記ハードウエアの余剰リソース、または前記他の仮想マシンが保持する余剰リソースと前記ハードウエアの余剰リソース両方のリソースを前記第１の仮想マシンに割り当てることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記リソース制御部は、前記ハードウエアに余剰リソースが存在すれば前記ハードウエアの余剰リソースの一部またはすべてを前記第１の仮想マシンに割り当てることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記リソース制御部は、前記ハードウエアに余剰リソースが存在しない場合であって、かつ、前記他の仮想マシンに余剰リソースが存在する場合は、前記他の仮想マシンの余剰リソースを前記第１の仮想マシンに割り当てることを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記リソース制御部は、前記ユーザ管理部が前記ユーザによる前記第１の仮想マシンへの接続がなくなったことを検知すると、前記第１の仮想マシンへ割り当てていたリソースを前記他の仮想マシンまたは前記ハードウエアに割り当てることを特徴とする請求項２乃至４のいずれかに記載の情報処理装置。
【請求項６】
前記リソース管理部は、前記リソース管理情報に基づき前記複数の仮想マシンのうちリソース使用率が高い仮想マシンを選択し、
前記リソース制御部は、前記リソース管理部で選択された前記仮想マシンに対して、前記第１の仮想マシンに割り当てていたリソースを割り当てることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記ユーザ情報管理部は、前記ユーザによる前記仮想マシンへのログインまたはログアウトに基づいて、前記仮想マシンへの接続の有無を検知することを特徴とする請求項１乃至６のいずれかに記載の情報処理装置。
【請求項８】
前記仮想マシンで実行するタスクの優先度についての情報を少なくとも含むタスク管理情報を管理するタスク管理部と、
タスクの実行または停止を前記仮想マシンに指示するタスク実行制御部と、を備え、
前記タスク実行制御部は、前記複数の仮想マシンのうち第２の仮想マシンが第１のタスクを実行するために必要なリソースを有していない場合に、前記タスク管理情報に基づき、前記第１のタスクよりも優先度の低い第２のタスクを停止するよう指示することを特徴とする請求項１乃至７のいずれかに記載の情報処理装置。
【請求項９】
前記リソース制御部は、前記第２の仮想マシンが前記第１のタスクを実行するために必要なリソースを有していない場合に、前記他の仮想マシンが保持する余剰リソースもしくは前記ハードウエアの余剰リソース、または前記他の仮想マシンが保持する余剰リソースと前記ハードウエアの余剰リソース両方のリソースを前記第２の仮想マシンに割り当てることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
タスクを実行するために使用されるリソースを制限するタスクリソース制御部を備え、
前記タスク実行制御部は、前記タスクリソース制御部により前記第２のタスクを実行するために使用されるリソースを制限しても、前記第２の仮想マシンが前記第１のタスクを実行するために必要なリソースを有さない場合に、前記第２のタスクを停止するよう指示することを特徴とする請求項８または９に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の仮想マシンへリソースの割り当てを効率的に行う情報処理装置に関するものである。
【背景技術】
【０００２】
１つの物理的なサーバを仮想化することで、複数の仮想的なサーバを構築する仮想化技術が知られている。このような仮想化技術において、仮想的なサーバはハードウエアから仮想化ソフトウエアを介して仮想マシンを構築することで成り立ち、仮想化ソフトウエアとして、例えばVMware ESXi（登録商標）やXen（登録商標）などがある。
【０００３】
構築された複数の仮想マシンは１つの物理サーバのリソースを共有して保持することができ、各仮想マシンのリソースは指定して割り当てられる。このようなリソース割り当てにおいて、物理サーバ上に存在する限られたリソースを有効に活用するために、各仮想マシンに対して動的にリソースを割り当てる方法が知られている(例えば、特許文献１参照)。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１８１５７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の動的リソース割り当て方法では、仮想マシンで実行されているアプリケーションの優先度に応じて仮想マシンの優先度を決め、その優先度に基づき仮想マシンに対して動的にリソースを割り当てるので、リソース割り当てがタスク実行後となってしまい、突発的にリソースを多く使用するタスクを実行しようとしても、リソース不足となり処理が遅延してしまうという課題があった。
【０００６】
本発明は、上述した課題を解決するためになされたものであり、タスク実行前にリソースを割り当ててリソース不足による処理遅延を防止できる情報処理装置及び情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、複数の仮想マシンへのリソース割り当てを制御する情報処理装置であって、ユーザの前記仮想マシンへの接続の有無を検知し、接続した前記ユーザの情報を管理するユーザ情報管理部と、ハードウエアのリソースのうち、前記複数の仮想マシンに割り当てられたリソース及び前記ハードウエアの余剰リソースをリソース割当情報として管理するリソース管理部と、前記複数の仮想マシンへリソースを割り当てるリソース制御部と、を備え、前記ユーザ情報管理部が前記ユーザによる第１の仮想マシンへの接続を検知すると、前記リソース制御部は、接続した前記ユーザの情報に基づいて前記第１の仮想マシンにリソースを割り当てることを特徴とする。
【発明の効果】
【０００８】
本発明の情報処理装置によれば、ユーザの仮想マシンへの接続を検知し、接続された仮想マシンに対してタスク実行前にリソースを割り当てるので、リソース不足による処理遅延を防止することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る情報処理装置１０の構成例を示す図である。
【図２】実施の形態１に係るリソース割当テーブルの例を示す図である。
【図３】実施の形態１に係るユーザ情報テーブルの例を示す図である。
【図４】実施の形態１に係るリソース割り当て処理についての動作例を示すフローチャートである。
【図５】実施の形態２に係る情報処理装置１００の構成例を示す図である。
【図６】実施の形態２に係るタスク管理テーブルの例を示す図である。
【図７】実施の形態２に係るタスク制御処理についての動作例を示すフローチャートである。
【図８】実施の形態３に係る情報処理装置１０００の構成例を示す図である。
【図９】実施の形態３に係るタスク管理テーブルの例を示す図である。
【図１０】実施の形態３に係るタスク制御処理についての動作例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
実施の形態１．
以下図面を用いて本発明の実施の形態１を説明する。
【００１１】
図１は実施の形態１に係る情報処理装置１０の構成例を示す図である。例えば物理サーバ等により実現される情報処理装置１０は、ＣＰＵ（Central Processing Unit）、メモリ、記録容量等を備えたハードウエア（H/W）１１と、複数のＯＳ（Operating System）を１台の装置上で動作させるための仮想化ソフトウエア１２と、仮想化技術によって物理的なハードウエア１１を分割し、その中で独立したＯＳを持つコンピュータである仮想マシン１３とを備え、ユーザ１４はハードウエア１１を介して仮想マシン１３に接続する。情報処理装置１０は、仮想化ソフトウエア１２を利用して複数の仮想マシン１３へのリソース割り当てを制御する。この仮想化ソフトウエア１２は、例えばプログラムとしてハードウエア１１の記録容量に記録される。なお、図１では、仮想マシン１３は仮想マシン１３Ａ〜Ｃとして３つの仮想マシンを構成している例を示すが、この数に限定されない。
【００１２】
仮想化ソフトウエア１２は、ユーザ管理部（ユーザ情報管理部）１２１と、リソース制御部１２２と、リソース管理部１２３とを備える。
【００１３】
ユーザ管理部１２１は、ユーザ１４の仮想マシン１３への接続の有無を検知し、接続したユーザ１４の情報を例えばユーザ情報テーブルとして管理する。ここで言う接続とは、単に仮想マシン１３にアクセスすることを指すのではなく、ユーザ情報をユーザ管理部１２１に送信した上でアクセスすることを指し、例えばログイン、ログアウト等がそれぞれ接続、接続断に該当する。以下の説明では一例としてログイン、ログアウトを用いて説明を行うが、これに限定するものではない。
【００１４】
リソース制御部１２２は、複数の仮想マシン１３へリソースを割り当ててリソースを制御する。ここで、リソースとは、仮想ＣＰＵ、仮想メモリ、記録容量及びネットワークのうち少なくとも１つ又は２つ以上の組み合わせであればよい。
【００１５】
リソース管理部１２３は、ハードウエア１１が保持するリソースのうち、複数の仮想マシン１３に割り当てられているリソースと、仮想マシン１３に割り当てた後ハードウエア１１に残存しているリソース（余剰リソース）についての情報（リソース割り当て情報）を、例えばリソース割当テーブルとして管理する。
【００１６】
図２は実施の形態１に係るリソース割当テーブルの例を示す図である。カラム２１には起動している仮想マシン１３の名称が格納される。カラム２２には仮想マシン１３に割り当てるＣＰＵであって、物理ＣＰＵをコア数などの仮想ＣＰＵで割り当てた値が格納される。カラム２３には仮想マシン１３に割り当てるメモリ量であって、ハードウエア１１が保持するメモリ量を仮想メモリとして各仮想マシンに割り当てた値が格納される。カラム２４には仮想マシン１３に割り当てる記録領域であって、ハードウエア１１が保持している記録領域を各仮想マシン１３に割り当てた値が格納される。カラム２５には仮想マシン１３に割り当てるネットワーク帯域であって、ハードウエア１１が保持しているネットワーク帯域を分割して各仮想マシン１３に割り当てた値が格納される。
【００１７】
図２に示す例では、起動している仮想マシン１３Ａには、仮想ＣＰＵが３Ｃｏｒｅ、仮想メモリが２ＧＢ、記録容量が４ＴＢ、ネットワークが１０００Ｍｂｐｓ割り当てられている。仮想マシン１３Ｂ、Ｃについても同様に考え、ハードウエア１１に残っている余剰リソースは、仮想ＣＰＵは２Ｃｏｒｅ、仮想メモリは１ＧＢ、記録容量は１ＴＢ、ネットワークは４００Ｍｂｐｓである。そのため、例えば仮想ＣＰＵについて言うと、仮想マシン１３に割り当てる前のハードウエア１１全体が保持するＣＰＵは８Ｃｏｒｅとなる。
【００１８】
図３は実施の形態１に係るユーザ情報テーブルの例を示す図である。ユーザ情報テーブルは、仮想マシン１３にログインしたユーザ情報及び追加するリソース情報が格納される。
【００１９】
カラム３１には、仮想マシン１３にログインしたユーザ１４の名称が格納される。カラム３２は、カラム３１のユーザに関するユーザ情報が格納されており、カラム３３、カラム３４、カラム３５から構成されている。カラム３３には、仮想マシン１３にログインしたユーザ１４の種別が格納され、例えば「管理者」や「一般」などが格納される。カラム３４には、仮想マシン１３にログインしたユーザ１４の優先度が格納される。例えば、種別が管理者の場合は「高」とされ、種別が一般の場合はユーザのレベルに応じて「高」、「低」を分けてもよい。カラム３５には、ログインした仮想マシン１３の名称が格納される。
【００２０】
カラム３６は、仮想マシン１３にユーザ１４がログインした事により仮想マシン１３に追加で割り当てるリソース情報が格納されており、カラム３７、カラム３８、カラム３９から構成されている。カラム３７には、仮想マシン１３に追加で割り当てる仮想ＣＰＵの値が格納されている。カラム３８には、仮想マシン１３に追加で割り当てる仮想メモリの値が格納されている。カラム３９には、仮想マシン１３に追加で割り当てるネットワークの帯域が格納されている。
【００２１】
次に、リソース割り当て動作について説明する。図４は実施の形態１に係るリソース割り当て処理についての動作例を示すフローチャートである。
【００２２】
まず、仮想マシン１３を構築するにあたって、ハードウエア１１から、静的に各仮想マシン１３に対してリソースを割り当てる（ステップＳＴ４０１）。この際に割り当てられるリソース量は、仮想マシン１３で実行するアプリケーションや処理負荷に応じて決定される。割り当てられたリソースは図２に示すリソース割り当てテーブルに格納され、リソース管理部１２３により管理される。
【００２３】
次に、ユーザ管理部１２１は、ユーザ１４の仮想マシン１３への接続の有無、つまりログイン又はログアウトを検知する（ステップＳＴ４０２）。ステップＳＴ４０２においてログインが検知された場合、ステップＳＴ４０３以降の処理がなされる。一方、ログアウトが検知された場合、ステップＳＴ４０８以降の処理がなされる。
【００２４】
まずはステップＳＴ４０２においてログインが検知された場合について説明する。ユーザ管理部１２１によりユーザ１４のログインが検知されると、当該ログインされた仮想マシン１３に対して動的にリソース割り当てが実施される。まず、リソース管理部１２３によりハードウエア１１の余剰リソースが存在するか否かの確認が行われる（ステップＳＴ４０３）。
【００２５】
ハードウエア１１の余剰リソースがある場合（ステップＳＴ４０３−Ｙｅｓ）、リソース制御部１２２は、ハードウエア１１の余剰リソースの一部又は全部を、ログインされた仮想マシン１３に追加する（ステップＳＴ４０４）。この際、追加するリソース量については、ユーザ管理部１２１が管理するユーザ情報テーブルに格納されたユーザの優先度に応じて決定される。例えば、ユーザaである「管理者」が仮想マシンＡにログインすると、図３に示すように、仮想ＣＰＵが２Ｃｏｒｅ、仮想メモリが２５６ＭＢ、ネットワークが１００Ｍｂｐｓ追加される。このようにすることで、優先度の高いユーザ１４に対して優先してリソースを割り当てることができ、リソース不足による処理遅延を防止することができる。なお、ここではユーザの優先度に応じて追加リソース量を決定することとしたが、必ずしもこれに限定されず、例えばログインした仮想マシン１３の種類に応じて決定してもよい。例えば仮想マシン１３Ａが仮想マシン１３Ｂよりも優先度が高い場合、仮想マシン１３Ｂにユーザ１４がログインした場合よりも、仮想マシン１３Ａにユーザ１４がログインした場合の方が、追加リソース量は多くなる。
【００２６】
ステップＳＴ４０３においてハードウエア１１の余剰リソースがない場合（ステップＳＴ４０３−Ｎｏ）、リソース管理部１２３は、複数の仮想マシン１３のうち、ログインされた仮想マシン１３以外の他の仮想マシン１３が保持する余剰リソースがあるか否かを確認する（ステップＳＴ４０５）。リソース管理部１２３は、各仮想マシン１３のリソース使用状況を取得し、リソース割り当てテーブルに格納された割り当てリソース量から、使用リソース量を引くことにより余剰リソースを算出する。
【００２７】
他の仮想マシン１３に余剰リソースがある場合（ステップＳＴ４０５−Ｙｅｓ）、つまり、リソース管理部１２３が算出した余剰リソースが、ユーザ情報テーブルにて設定された追加リソース分を上回っている場合、リソース制御部１２２は、その余剰リソースの一部又は全部を、ログインされた仮想マシン１３に追加する（ステップＳＴ４０６）。この際、追加する余剰リソース量については、ユーザ管理部１２１が保持するユーザ情報テーブルに格納されたユーザの優先度に応じて決定される。ただし、ハードウエア１１からの余剰リソース割り当ての時よりも割り当てリソース量を少量にするなど変更しても良い。
【００２８】
一方、他の仮想マシン１３に余剰リソースがない場合（ステップＳＴ４０５−Ｎｏ）、つまり、リソース管理部１２３が算出した余剰リソースが、ユーザ情報テーブルにて設定された追加リソース分を下回っている場合、リソース制御部１２２は、ログインされた仮想マシン１３へのリソース追加を行わない（ステップＳＴ４０７）。
【００２９】
ステップＳＴ４０２においてログアウトが検知された場合、リソース管理部１２３は、各仮想マシン１３のリソース使用率を取得し、リソース使用率の高い仮想マシン１３があるか否かを確認する（ステップＳＴ４０８）。なお、リソース使用率については、リソース管理部１２３が各仮想マシン１３のリソース使用状況を取得し、リソース割り当てテーブルの情報から求めた割り当てリソース量に対する使用リソース量を計算することにより算出することができる。
【００３０】
リソース使用率の高い仮想マシン１３がある場合（ステップＳＴ４０８−Ｙｅｓ）、リソース制御部１２２は、仮想マシン１３をログアウトしたユーザ１４用に追加していたリソースを、リソース使用率の高い仮想マシン１３に割り当てる（ステップＳＴ４０９）。
【００３１】
一方、リソース使用率の高い仮想マシン１３がない場合（ステップＳＴ４０８−Ｎｏ）、リソース制御部１２２は、仮想マシン１３をログアウトしたユーザ用に追加していたリソースを、ハードウエア１１に割り当てる（ステップＳＴ４１０）。
【００３２】
ステップＳＴ４０４、ステップＳＴ４０６、ステップＳＴ４０７、ステップＳＴ４０９、ステップＳＴ４１０のいずれかの処理が実施されると、リソース管理部１２３は、リソース割り当てテーブル及びユーザ情報テーブルの更新を行う（ステップＳＴ４１１）。
【００３３】
ステップＳＴ４０４の処理が実施された後は、リソース管理部１２３は、仮想マシン１３にログインしたユーザ１４の情報をユーザ情報テーブルに追加し、新たにログインした仮想マシン１３のリソースと、ハードウエア１１の余剰リソースについてリソース割り当てテーブルを更新する。例えば、ステップＳＴ４０４前のリソース割り当てテーブルが図２に示す状態であり、その後ユーザaが仮想マシン１３Ａにログインした場合、ステップＳＴ４０４の後、リソース管理部１２３により更新されたリソース割り当てテーブルは、仮想ＣＰＵが５Ｃｏｒｅ、仮想メモリが２．２５６ＧＢ、ネットワークが１１００Ｍｂｐｓとなる。一方、更新後のリソース割り当てテーブルにおけるハードウエア１１の余剰リソースは、仮想ＣＰＵが０Ｃｏｒｅ、仮想メモリが７４４ＭＢ、ネットワークが３００Ｍｂｐｓとなる。
【００３４】
同様に、ステップＳＴ４０６の処理が実施された後は、リソース管理部１２３は、仮想マシン１３にログインしたユーザ１４の情報をユーザ情報テーブルに追加し、ログインした仮想マシン１３のリソースと、ログインした仮想マシン１３に余剰リソースを提供した他の仮想マシン１３のリソースについてリソース割り当てテーブルを更新する。
【００３５】
ステップＳＴ４０７の処理が実施された後は、仮想マシン１３にログインしたユーザ１４の情報をユーザ情報テーブルに追加する。リソース割り当てテーブルについては情報の更新はされない。
【００３６】
ステップＳＴ４０９の処理が実施された後は、仮想マシン１３からログアウトしたユーザ１４の情報をユーザ情報テーブルから削除し、ログアウトした仮想マシン１３のリソースと、ログアウトしたユーザ用に追加していたリソースを新たに割り当てた仮想マシン１３のリソースについてリソース割り当てテーブルを更新する。
【００３７】
ステップＳＴ４１０の処理が実施された後は、仮想マシン１３からログアウトしたユーザ１４の情報をユーザ情報テーブルから削除し、ログアウトした仮想マシン１３のリソース情報と、ログアウトしたユーザ用に追加していたリソースを新たに割り当てたハードウエア１１の余剰リソースについてリソース割り当てテーブルを更新する。
【００３８】
以上のように、本発明の実施の形態１によれば、ユーザ１４の仮想マシン１３へのログインを検知し、ログインしたユーザ１４の情報に基づいて、ログインした仮想マシン１３に対してリソースを追加するようにしたので、タスク実行処理を行う前に十分なリソースを割り当てることができ、リソース不足による処理遅延を防止することが可能となる。
【００３９】
また、ログインしたユーザ１４の優先度に応じて追加するリソース量を決定するので、優先度の高いユーザ１４に対して優先してリソースを割り当てることができ、リソース不足をより確実に防止できる。
【００４０】
また、ログインした仮想マシン１３に追加で割り当てるリソースは、ハードウエア１１の余剰リソースがある場合はハードウエア１１から割り当て、ハードウエア１１の余剰リソースがない場合において他の仮想マシン１３の余剰リソースから割り当てるようにしたので、できるだけ他の仮想マシン１３の余剰リソースを使用しなくてもよく、他の仮想マシン１３に突発的なタスクが発生してもリソース不足が生じないようにできる。
【００４１】
また、ユーザ１４のログアウト後は、ログインしたユーザ１４用に追加していたリソースを他の仮想マシン１３に割り当てるので、物理サーバ全体のリソースを複数の仮想マシン１３に対して効率的に分配することが可能になる。
【００４２】
なお、上述したように、ハードウエア１１の余剰リソースがない場合に、他の仮想マシン１３から追加のリソースを割り当てるようにするのが好ましいが、必ずしもそうでなくてもよい。例えば、他の仮想マシン１３の余剰リソースが存在するか否かをまず確認し、存在しない場合にハードウエア１１の余剰リソースから割り当てる構成としてもよい。また、必ずしもハードウエア１１と他の仮想マシン１３の片方のみからリソースを割り当てなくてもよく、これら両方からリソースを割り当てるようにしてもよい。こうすることにより、例えば優先度の高いユーザ１４がログインした場合であって、ハードウエア１１の余剰リソースのみでは追加分のリソースに足らず、他の仮想マシン１３の余剰リソースのみでは追加分のリソースに足らない場合であっても、これら余剰リソース量を合計することによって追加分のリソースを満足するのであれば、当該ユーザ１４がログインした仮想マシン１３にリソースを追加で割り当てることが可能となり、リソース不足による処理遅延をより確実に防止できることとなる。
【００４３】
なお、図４のステップＳＴ４０５において、他の仮想マシン１３に余剰リソースがある場合に、他の仮想マシン１３の余剰リソースをログインされた仮想マシン１３に追加する構成について説明したが、これに限定されず、例えばリソース使用率が低い仮想マシン１３がある場合に、当該仮想マシン１３のリソースをログインされた仮想マシン１３に追加するようにしてもよい。また、余剰リソースを有する他の仮想マシン１３が複数ある場合などは、余剰リソースを有し、かつ、リソース使用率が低い仮想マシン１３のリソースを、ログインされた仮想マシン１３に追加するようにしてもよい。
【００４４】
実施の形態２．
以下図面を用いて本発明の実施の形態２について説明する。実施の形態２では、仮想マシン１３が実行するタスクのリソースが不足している場合に、仮想マシン１４が実行している複数のタスクのうちの一部を停止することにより必要なリソースを確保して、実行するタスクのリソース不足を防止する。
【００４５】
図５は実施の形態２に係る情報処理装置１００の構成例を示す図である。実施の形態２の情報処理装置１００は、実施の形態１の情報処理装置１０の構成に加えて、仮想化ソフトウエア１２が、新たにタスク実行制御部１２４及びタスク管理部１２５を備えている点において実施の形態１と異なる。また、図５の例では、情報処理装置１００が構築する複数の仮想マシン１３Ａ〜Ｃのうち、仮想マシン１３Ａが複数のタスク１３１Ａ〜１３１Ｃを実行するとしているが、これに限定されない。仮想マシン１３Ｂ、１３Ｃのおいても仮想マシン１３Ａと同様、タスクを実行するが、簡単のため説明を省略している。以下の説明においても同様である。なお、各タスク１３１Ａ〜Ｃは同一アプリケーションであってもよいし、異なるアプリケーションであってもよい。実施の形態２に係る情報処理装置１００の、その他の構成については実施の形態１と同様であるので図１と同一の符号を付してその説明を省略する。
【００４６】
タスク実行制御部１２４は、仮想マシン１３で動作するタスク１３１の実行権限を有し、仮想マシン１３からタスク１３１の実行命令を受信するとともに、タスク１３１の実行又は停止を仮想マシン１３に対して指示する。
【００４７】
タスク管理部１２５は、仮想マシン１３で動作するタスク１３１の種別、優先度、使用リソース量等の情報（タスク管理情報）を、例えばタスク管理テーブルとして管理する。
【００４８】
図６は実施の形態２に係るタスク管理テーブルの例を示す図である。カラム６１には、対象とする仮想マシン１３の名称が格納される。図６の例では、仮想マシン１３Ａで動作するタスクについての情報が格納されている。カラム６２には、仮想マシン１３Ａで動作するタスク１３１の名称が格納される。カラム６３には、仮想マシン１３Ａで動作するタスク１３１の種別が格納される。種別は例として、ユーザ１４による動作命令が行われる「ユーザ」や、メンテナンスなどスケジューリングによって動作命令が行われる「スケジューラ」、システム上、常時動作する必要がある「常時稼動」などがある。
【００４９】
カラム６４には、仮想マシン１３Ａで動作するタスク１３１の優先度が格納される。優先度は主にカラム６３に格納されている種別によって決定される。カラム６５には、仮想マシン１３Ａで動作するタスク１３１の実行状態が格納される。実行状態は例として、現在実行中の状態を「実行」、実行を試みてある理由で実行できなかった場合は「停止」、実行を開始する状態を「開始」とする。ここで、実行状態が「実行」のタスク１３１を実行タスク、実行状態が「停止」のタスク１３１を停止タスク、実行状態が「開始」のタスク１３１を開始タスクと定義する。
【００５０】
カラム６６には、仮想マシン１３Ａで動作するタスク１３１のＣＰＵ使用量の目安が格納される。この値は一度タスク１３１を動作させることでシステムが自動で設定しても良いし、管理者が手動で設定しても良い。カラム６７には、仮想マシン１３Ａで動作するタスク１３１のメモリ使用量の目安が格納される。この値は一度タスク１３１を動作させることでシステムが自動で設定しても良いし、管理者が手動で設定しても良い。カラム６８には、仮想マシン１３Ａで動作するタスク１３１のネットワーク使用量の目安が格納される。この値は一度タスク１３１を動作させることでシステムが自動で設定しても良いし、管理者が手動で設定しても良い。
【００５１】
次に、タスク制御動作について説明する。図７は実施の形態２に係るタスク制御処理についての動作例を示すフローチャートである。
【００５２】
まず、タスク管理部１２５が、仮想マシン１３で動作しているタスク１３１についてのタスク管理情報を取得し、その情報をタスク管理テーブルに格納する（ステップＳＴ７０１）。
【００５３】
次に、タスク実行制御部１２４が、仮想マシン１３で開始タスク１３１の実行命令が発生したか否かの確認を行う（ステップＳＴ７０２）。以下では、一例として、仮想マシン１３Ａで動作するタスク１３１aを開始タスクとして説明を行う。
【００５４】
ステップＳＴ７０２において開始タスク１３１Ａの実行命令が発生した場合はステップＳＴ７０３以降の処理がなされ、開始タスク１３１Ａの実行命令が発生しない場合はステップＳＴ７１０以降の処理がなされる。
【００５５】
まず、ステップＳＴ７０３以降の処理について説明する。開始タスク１３１Ａの実行命令が発生すると（ステップＳＴ７０２−Ｙｅｓ）、タスク管理部１２５はタスク管理テーブルに開始タスク１３１Ａ（開始タスクa）の情報を格納する。また、リソース管理部１２３は仮想マシン１３Ａの余剰リソースについての情報をタスク管理部１２５に通知し、タスク管理部１２５は、仮想マシン１３Ａにおいて、開始タスク１３１Ａを実行するのに必要なリソースが不足しているか否かを決定する（ステップＳＴ７０３）。タスク管理部１２５は、リソース管理部１２３から通知された仮想マシン１３Ａの余剰リソース量と、タスク管理テーブルに格納された開始タスク１３１Ａを実行するのに必要なリソース量とを比較することにより、リソース不足か否かを決定する。図６の例では、タスク１３１の実行に必要なＣＰＵ、メモリ等のリソース量は「中」、「高」のようになっているが、より具体的には、必要なリソース量の情報が定量的に格納されている。
【００５６】
タスク管理部１２５が、開始タスク１３１Ａを実行するリソースが不足していると決定すると（ステップＳＴ７０３−Ｙｅｓ）、リソース管理部１２３がリソース管理テーブルの情報に基づき、ハードウエア１１に余剰リソースがあるか否かを確認する（ステップＳＴ７０４）。
【００５７】
リソース管理部１２３が、ハードウエア１１に余剰リソースがないと判断した場合（ステップＳＴ７０４−Ｎｏ）、タスク管理部１２５は、開始タスク１３１Ａの優先度と、仮想マシン１３Ａで実行されている他の実行タスク１３１の優先度とを、タスク管理テーブルから取得し、開始タスク１３１Ａよりも優先度が低い実行タスク１３１が存在するか否かを確認する（ステップＳＴ７０５）。
【００５８】
タスク管理部１２５が、開始タスク１３１Ａよりも優先度が低い実行タスク１３１が存在すると判断した場合（ステップＳＴ７０５−Ｙｅｓ）、タスク実行制御部１２４は、優先度の低い実行タスク１３１を停止し、タスク管理部１２５が当該実行タスク１３１を停止タスク１３１に移行する（ステップＳＴ７０６）。
【００５９】
一方、タスク管理部１２５が、開始タスク１３１Ａよりも優先度が低い実行タスク１３１が存在しないと判断した場合（ステップＳＴ７０５−Ｎｏ）、開始タスク１３１Ａを実行するために必要なリソースを仮想マシン１３Ａに確保できないため、タスク管理部１２５が開始タスク１３１Ａを停止タスクに移行する（ステップＳＴ７０７）。図６に示す場合を例にとると、仮想マシン１３Ａには、開始タスク１３１Ａよりも優先度が低い実行タスク１３１は存在しない。
【００６０】
ステップＳＴ７０４において、ハードウエア１１に余剰リソースがある場合（ステップＳＴ７０４−Ｙｅｓ）、リソース制御部１２２は、開始タスク１３１Ａを実行する仮想マシン１３Ａに対してハードウエア１１の余剰リソースの一部又は全部を追加リソースとして割り当てる（ステップＳＴ７０８）。この際追加するリソース量は、少なくとも開始タスク１３１Ａを実行できる程度のリソース量であればよい。
【００６１】
ステップＳＴ７０６において優先度の低い実行タスク１３１を停止タスク１３１に移行した場合、ステップＳＴ７０８において開始タスク１３１Ａを実行する仮想マシン１３Ａにリソースを追加した場合、または、開始タスク１３１Ａを実行するためのリソースが仮想マシン１３Ａにて不足していない場合（ステップＳＴ７０３−Ｎｏ）、タスク管理部１２５は、開始タスク１３１Ａを実行タスク１３１に移行し、タスク実行制御部１２４は仮想マシン１３Ａに当該タスク１３１の実行許可を発行、つまり当該タスク１３１を実行するよう指示する（ステップＳＴ７０９）。
【００６２】
次に、開始タスク１３１Ａの実行命令が発生しない場合（ステップＳＴ７０２−Ｎｏ）におけるステップＳＴ７１０以降の処理について説明する。
【００６３】
タスク管理部１２５は、タスク管理テーブルに格納された情報に基づいて停止タスク１３１があるか否かの確認を行い、停止タスク１３１が存在する場合、リソース管理部１２３から通知されたハードウエア１１の余剰リソースを用いて当該停止タスク１３１が実行可能か否かを確認する（ステップＳＴ７１０）。
【００６４】
タスク管理部１２５が、ハードウエア１１の余剰リソースを用いることにより停止タスク１３１を実行できると判断した場合（ステップＳＴ７１０−Ｙｅｓ）、タスク管理部１２５は停止タスク１３１を実行タスク１３１に移行し、タスク実行制御部１２４は、仮想マシン１３Ａに当該タスク１３１を実行するよう指示する（ステップＳＴ７１１）。
【００６５】
以上のように、本発明の実施の形態２によれば、仮想マシン１３Ａにおいて開始タスク１３１Ａを実行する際に、タスク１３１の優先度に応じて他の実行タスク１３１を停止するよう制御するので、十分なリソースを確保した上で優先度の高いタスク１３１を実行でき、リソース不足による処理遅延を防止することが可能となる。
【００６６】
また、ハードウエア１１に余剰リソースが存在する場合は、開始タスク１３１Ａを実行する仮想マシン１３Ａにハードウエア１１の余剰リソースを追加で割り当てるようにしたので、十分なリソースを確保した上で開始タスク１３１Ａを実行することができる。
【００６７】
また、仮想マシン１３Ａでリソース不足により一度停止されたタスク１３１についても、ハードウエア１１からの余剰リソースを追加で割り当てることにより十分なリソースを確保して再度実行することも可能となる。
【００６８】
なお、これまで、例えば図７のステップＳＴ７０４、ＳＴ７０８において、ハードウエア１１に余剰リソースがある場合に、開始タスク１３１Ａを実行する仮想マシン１３Ａに追加のリソースを割り当てる処理について説明したが、これに限定されず、実施の形態１と同様、仮想マシン１３Ａ以外の他の仮想マシン１３の余剰リソースを追加してもよいし、他の仮想マシン１３の余剰リソースとハードウエア１１の余剰リソースの両方から追加するようにしてもよい。
【００６９】
実施の形態３．
以下図面を用いて本発明の実施の形態３について説明する。実施の形態３では、仮想マシン１３が実行するタスクのリソースが不足している場合に、仮想マシン１４が実行している複数のタスクのうちの一部についてのリソースを制限することにより、必要なリソースを確保して、実行するタスクのリソース不足を防止する。
【００７０】
図８は実施の形態３に係る情報処理装置１０００の構成例を示す図である。実施の形態３の情報処理装置１０００は、実施の形態１、２の情報処理装置の構成に加えて、仮想化ソフトウエア１２が、新たにタスクリソース制御部１２６を備えている点において実施の形態１、２と異なる。その他の構成については実施の形態１、２と同様であるので、図１及び図５と同一の符号を付してその説明を省略する。
【００７１】
タスクリソース制御部１２６は、タスク管理部１２５が管理するタスク管理テーブルに格納されたリソース制限に関する情報に基づき、仮想マシン１３で動作するタスクのリソース量を制限する。
【００７２】
図９は、実施の形態３に係るタスク管理テーブルの例を示す図である。図９のタスク管理テーブルは、図６で説明したタスク管理テーブルと比べ、リソース制限に関する情報が新たに追加して格納されている点において異なる。その他の構成については同一であるため、図６と同様の符号を付して説明を省略する。
【００７３】
カラム９はカラム９１、カラム９２から構成されており、タスク１３１のリソース制限量を格納したものである。カラム９１には、仮想マシン１３で動作するタスク１３１で使用するリソースの内、I/O（Input/Output）リソースの制限幅についての値が格納される。I/Oリソースの制限幅は、管理者によって設定することが可能である。カラム９２には、仮想マシン１３で動作するタスク１３１で使用するリソースの内、ネットワークリソースの制限幅についての値が格納される。ネットワークリソースの制限幅についても、管理者によって設定することが可能である。
【００７４】
次に、タスク制御動作について説明する。図１０は実施の形態３に係るタスク制御処理についての動作例を示すフローチャートである。なお、図１０におけるステップＳＴ７０１〜ＳＴ７１１の処理については、図７で説明したステップＳＴ７０１〜ＳＴ７１１の処理と同一であるため、同一の符号を付して説明を省略する。
【００７５】
ステップＳＴ７０５において、仮想マシン１３Ａに開始タスク１３１Ａよりも優先度の低い実行タスク１３１がある場合（ステップＳＴ７０５−Ｙｅｓ）、タスク管理部１２５が、タスク管理テーブルに格納された情報に基づき算出したリソース制限後の実行タスク１３１のリソースの予測値と、リソース管理部１２３から通知された仮想マシン１３Ａの余剰リソース量とに基づき、開始タスク１３１Ａを実行することが可能か否か、つまり開始タスク１３１Ａを実行するためのリソースが確保されるか否かを確認する（ステップＳＴ１００１）。
【００７６】
優先度の低い実行タスク１３１のリソースを制限することにより開始タスク１３１Ａの実行が可能である場合（ステップＳＴ１００１−Ｙｅｓ）、タスクリソース制御部１２６は、タスク管理部１２５が管理するタスク管理テーブルに格納されたリソース制限に関する情報に基づき、優先度の低い実行タスク１３１のリソースを制限する（ステップＳＴ１００２）。ステップＳＴ１００２の処理がなされると、次はステップＳＴ７０９の処理がなされる。
【００７７】
一方、ステップＳＴ１００１において優先度の低い実行タスク１３１のリソースを制限しても開始タスク１３１Ａを実行できない場合（ステップＳＴ１００１−Ｎｏ）、タスクリソース制御部１２６は優先度の低い実行タスク１３１のリソース制限処理を実施せず、ステップＳＴ７０６の処理がなされる。
【００７８】
ステップＳＴ７０５において、仮想マシン１３Ａに開始タスク１３１Ａよりも優先度の低い実行タスク１３１がない場合（ステップＳＴ７０５−Ｎｏ）、タスク管理部１２５が、タスク管理テーブルに格納された情報に基づき算出したリソース制限後の開始タスク１３１Ａのリソースの予測値と、リソース管理部１２３から通知された仮想マシン１３Ａの余剰リソース量とに基づき、開始タスク１３１Ａを実行することが可能か否か、つまり開始タスク１３１Ａを実行するためのリソースが確保されるか否かを確認する（ステップＳＴ１００１）。つまり、タスク管理部１２５は、ステップＳＴ１００１とは異なり、開始タスク１３１Ａ自体のリソースを制限することにより、仮想マシン１３Ａにて開始タスク１３１Ａを実行するためのリソースが確保できるか否かを確認する。
【００７９】
開始タスク１３１Ａのリソースを制限することで開始タスク１３１Ａが実行可能である場合（ステップＳＴ１００３−Ｙｅｓ）、タスクリソース制御部１２６は、タスク管理部１２５が管理するタスク管理テーブルに格納されたリソース制限に関する情報に基づき、開始タスク１３１Ａのリソースを制限する（ステップＳＴ１００４）。ステップＳＴ１００４の処理がなされると、次はステップＳＴ７０９の処理がなされる。
【００８０】
一方、ステップＳＴ１００３において、開始タスク１３１Ａのリソースを制限しても開始タスク１３１Ａが実行できない場合（ステップＳＴ１００３−Ｎｏ）、タスクリソース制御部１２６は、開始タスク１３１Ａのリソースを制限せず、ステップＳＴ７０７の処理がなされる。
【００８１】
以上のように、本発明の実施の形態３によれば、仮想マシン１３Ａにおいて開始タスク１３１Ａを実行する際に、開始タスク１３１Ａよりも優先度が低い他の実行タスク１３１のリソースを制限するようにしたので、他の実行タスク１３１を停止させることなく、開始タスク１３１Ａを実行するのに十分なリソースを確保することができ、リソース不足による処理遅延を防止することが可能となる。
【００８２】
また、開始タスク１３１Ａよりも優先度の低い実行タスク１３１が存在しない場合は、開始タスク１３１Ａ自体のリソースを制限して開始タスク１３１Ａを実行するようにしたので、他の実行タスク１３１を停止させることなく、かつ、開始タスク１３１Ａについても実行不可とすることなく実行することができるので、仮想マシン１３に割り当てられたリソースを効率的に使用することが可能となる。
【００８３】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００８４】
１０、１００、１０００  情報処理装置、１１  ハードウエア、１２  仮想化ソフトウエア、１３Ａ〜Ｃ  仮想マシン、１４  ユーザ、１２１  ユーザ管理部、１２２  リソース制御部、１２３  リソース管理部、１２４  タスク実行制御部、１２５  タスク管理部、１２６  タスクリソース制御部
【図１】
2014099036.tif 000003
【図２】
2014099036.tif 000004
【図３】
2014099036.tif 000005
【図４】
2014099036.tif 000006
【図５】
2014099036.tif 000007
【図６】
2014099036.tif 000008
【図７】
2014099036.tif 000009
【図８】
2014099036.tif 000010
【図９】
2014099036.tif 000011
【図１０】
2014099036.tif 000012