(57)【要約】      （修正有）【課題】グリッドコンピューティングの機能を追加することで、各仮想マシンモニタのあまったリソースを使用し、仮想マシンが安定して動作することを可能にする。【解決手段】仮想マシン６０１Ａ〜６０１Ｃ、６０２Ａ〜６０２Ｃを制御する仮想マシンモニタ１０１Ａ〜１０１Ｃ、１０２Ａ〜１０２Ｃと管理サーバにおいて、仮想マシンモニタ１０１Ａ〜１０１Ｃ、１０２Ａ〜１０２Ｃがリソース監視手段等を備え、管理サーバが、リソース借用要求があった場合、どの仮想マシンモニタからどの程度のリソースを借用するかを決定し、リソース借用要求を通知した仮想マシンモニタに、当該仮想マシンモニタの仮想マシンのタスクを他の仮想マシンモニタに実行させる分散処理開始命令を送信する分散先決定手段を備え、仮想マシンモニタが、管理サーバから送信された分散処理開始命令に従い、自身の仮想マシンのタスクの分散処理を行う分散処理手段を、含む。【選択図】図１
2010231601.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンを制御する仮想マシンモニタを備える複数のコンピュータをネットワークを介して接続したグリッドコンピューティングシステムであって、
各仮想マシンモニタと仮想マシンのリソースを一元管理する管理サーバを備え、
前記仮想マシンモニタが、
前記仮想マシンのリソース使用状況を監視するリソース監視手段と、
前記仮想マシンのリソース割り当て状況をチェックし、前記仮想マシンのリソース使用状況情報及び前記仮想マシンモニタのリソース空き状況情報を前記管理サーバに通知するパフォーマンスチェック手段と、
前記仮想マシンのリソースの割り当てが不十分である場合に、前記仮想マシンのリソースの最適化が可能かどうかを判断し、リソースの最適化ができないと判断したときに、前記管理サーバへリソース借用要求を通知するリソース最適化チェック手段を備え、
前記管理サーバが、
リソース借用要求があった場合、どの仮想マシンモニタからどの程度のリソースを借用するかを決定し、前記リソース借用要求を通知した前記仮想マシンモニタに、当該仮想マシンモニタの仮想マシンのタスクを他の仮想マシンモニタに実行させる分散処理開始命令を送信する分散先決定手段を備え、
前記仮想マシンモニタが、
前記管理サーバから送信された分散処理開始命令に従い、自身の仮想マシンのタスクの分散処理を行う分散処理手段を備えることを特徴とするグリッドコンピューティングシステム。
【請求項２】
前記タスクの分散処理を行う実行命令を前記前記仮想マシンモニタ間で送受信するインターナルＬＡＮ通信手段を備えることを特徴とする請求項１に記載のグリッドコンピューティングシステム。
【請求項３】
前記仮想マシンモニタが、
前記リソース最適化チェック手段で仮想マシンのリソースの最適化ができると判断した場合に、仮想マシンのリソースの最適化を行うリソース最適化手段を備えることを特徴とする請求項１又は請求項２に記載のグリッドコンピューティングシステム。
【請求項４】
前記リソース監視手段は、ＣＰＵ使用率およびメモリの使用状況を含む仮想マシンのリソース使用状況を一定時間取得し、その一定期間における仮想マシンのリソース使用状況の性能平均値を算出することを特徴とする請求項１から請求項３の何れかに記載のグリッドコンピューティングシステム。
【請求項５】
前記分散処理手段は、管理サーバより送信された分散処理開始命令に従い、前記仮想マシンが実行するタスク毎に分散処理を行う前記仮想マシンモニタを決定することを特徴とする請求項１から請求項４に記載のグリッドコンピューティングシステム。
【請求項６】
前記分散処理手段は、前記仮想マシンが実行するタスクの分散処理先が他の仮想マシンモニタである場合、当該他の仮想マシンモニタに対して前記インターナルＬＡＮ通信手段を介して前記他の仮想マシンモニタに実行させる実行命令を送信することを特徴とする請求項５に記載のグリッドコンピューティングシステム。
【請求項７】
前記分散処理手段は、前記分散処理開始命令に基づく分散処理が終了した場合、リソースを開放し、処理終了した旨を前記管理サーバへ情報送信することを特徴とする請求項１から請求項６の何れかに記載のグリッドコンピューティングシステム。
【請求項８】
前記インターナルＬＡＮ通信手段は、Ｌ２スイッチを介してデータリンク層のネットワーク（インターネットＬＡＮ）を構築し、仮想化レイヤで実行命令の送受信を行うことを特徴とする請求項２に記載のグリッドコンピューティングシステム。
【請求項９】
仮想マシンを制御する仮想マシンモニタを備える複数のコンピュータをネットワークを介して接続したグリッドコンピューティングシステムのリソース制御方法であって、
前記仮想マシンモニタが、
前記仮想マシンのリソース使用状況を監視するリソース監視ステップと、
前記仮想マシンのリソース割り当て状況をチェックし、前記仮想マシンのリソース使用状況情報及び前記仮想マシンモニタのリソース空き状況情報を前記管理サーバに通知するパフォーマンスチェックステップと、
前記仮想マシンのリソースの割り当てが不十分である場合に、前記仮想マシンのリソースの最適化が可能かどうかを判断し、リソースの最適化ができないと判断したときに、前記管理サーバへリソース借用要求を通知するリソース最適化チェックステップを実行し、
各仮想マシンモニタと仮想マシンのリソースを一元管理する管理サーバが、
リソース借用要求があった場合、どの仮想マシンモニタからどの程度のリソースを借用するかを決定し、前記リソース借用要求を通知した前記仮想マシンモニタに、当該仮想マシンモニタの仮想マシンのタスクを他の仮想マシンモニタに実行させる分散処理開始命令を送信する分散先決定ステップを実行し、
前記仮想マシンモニタが、
前記管理サーバから送信された分散処理開始命令に従い、自身の仮想マシンのタスクの分散処理を行う分散処理ステップを実行することを特徴とするグリッドコンピューティングシステムのリソース制御方法。
【請求項１０】
前記仮想マシンモニタが、前記タスクの分散処理を行う実行命令をインターナルＬＡＮを介して他の前記仮想マシンモニタ間で送受信することを特徴とする請求項９に記載のグリッドコンピューティングシステムのリソース制御方法。
【請求項１１】
前記仮想マシンモニタが、
前記リソース最適化チェックステップで仮想マシンのリソースの最適化ができると判断した場合に、仮想マシンのリソースの最適化を行うリソース最適化ステップを有することを特徴とする請求項９又は請求項１０に記載のグリッドコンピューティングシステムのリソース制御方法。
【請求項１２】
前記リソース監視ステップで、ＣＰＵ使用率およびメモリの使用状況を含む仮想マシンのリソース使用状況を一定時間取得し、その一定期間における仮想マシンのリソース使用状況の性能平均値を算出することを特徴とする請求項９から請求項１１の何れかに記載のグリッドコンピューティングシステムのリソース制御方法。
【請求項１３】
前記分散処理ステップで、管理サーバより送信された分散処理開始命令に従い、前記仮想マシンが実行するタスク毎に分散処理を行う前記仮想マシンモニタを決定することを特徴とする請求項９から請求項１２の何れかに記載のグリッドコンピューティングシステムのリソース制御方法。
【請求項１４】
前記分散処理ステップで、前記仮想マシンが実行するタスクの分散処理先が他の仮想マシンモニタである場合、当該他の仮想マシンモニタに対して前記インターナルＬＡＮ通信ステップを介して前記他の仮想マシンモニタに実行させる実行命令を送信することを特徴とする請求項１３に記載のグリッドコンピューティングシステムのリソース制御方法。
【請求項１５】
前記分散処理ステップで、前記分散処理開始命令に基づく分散処理が終了した場合、リソースを開放し、処理終了した旨を前記管理サーバへ情報送信することを特徴とする請求項９から請求項１４の何れかに記載のグリッドコンピューティングシステムのリソース制御方法。
【請求項１６】
仮想マシンを制御する仮想マシンモニタを備える複数のコンピュータをネットワークを介して接続したグリッドコンピューティングシステムのリソース制御プログラムであって、
前記仮想マシンモニタに、
前記仮想マシンのリソース使用状況を監視するリソース監視機能と、
前記仮想マシンのリソース割り当て状況をチェックし、前記仮想マシンのリソース使用状況情報及び前記仮想マシンモニタのリソース空き状況情報を前記管理サーバに通知するパフォーマンスチェック機能と、
前記仮想マシンのリソースの割り当てが不十分である場合に、前記仮想マシンのリソースの最適化が可能かどうかを判断し、リソースの最適化ができないと判断したときに、前記管理サーバへリソース借用要求を通知するリソース最適化チェック機能を実行させ、
各仮想マシンモニタと仮想マシンのリソースを一元管理する管理サーバに、
リソース借用要求があった場合、どの仮想マシンモニタからどの程度のリソースを借用するかを決定し、前記リソース借用要求を通知した前記仮想マシンモニタに、当該仮想マシンモニタの仮想マシンのタスクを他の仮想マシンモニタに実行させる分散処理開始命令を送信する分散先決定機能を実行させ、
前記仮想マシンモニタに、
前記管理サーバから送信された分散処理開始命令に従い、自身の仮想マシンのタスクの分散処理を行う分散処理機能を実行させることを特徴とするグリッドコンピューティングシステムのリソース制御プログラム。
【請求項１７】
前記仮想マシンモニタに、前記タスクの分散処理を行う実行命令をインターナルＬＡＮを介して他の前記仮想マシンモニタ間で送受信させることを特徴とする請求項１６に記載のグリッドコンピューティングシステムのリソース制御プログラム。
【請求項１８】
前記仮想マシンモニタに、
前記リソース最適化チェック機能で仮想マシンのリソースの最適化ができると判断した場合に、仮想マシンのリソースの最適化を行うリソース最適化機能を実行させることを特徴とする請求項１６又は請求項１７に記載のグリッドコンピューティングシステムのリソース制御プログラム。
【請求項１９】
前記リソース監視機能で、ＣＰＵ使用率およびメモリの使用状況を含む仮想マシンのリソース使用状況を一定時間取得し、その一定期間における仮想マシンのリソース使用状況の性能平均値を算出することを特徴とする請求項９から請求項１８の何れかに記載のグリッドコンピューティングシステムのリソース制御プログラム。
【請求項２０】
前記分散処理機能で、管理サーバより送信された分散処理開始命令に従い、前記仮想マシンが実行するタスク毎に分散処理を行う前記仮想マシンモニタを決定することを特徴とする請求項１６から請求項１９の何れかに記載のグリッドコンピューティングシステムのリソース制御プログラム。
【請求項２１】
前記分散処理機能で、前記仮想マシンが実行するタスクの分散処理先が他の仮想マシンモニタである場合、当該他の仮想マシンモニタに対して前記インターナルＬＡＮ通信機能を介して前記他の仮想マシンモニタに実行させる実行命令を送信することを特徴とする請求項１３に記載のグリッドコンピューティングシステムのリソース制御プログラム。
【請求項２２】
前記分散処理機能で、前記分散処理開始命令に基づく分散処理が終了した場合、リソースを開放し、処理終了した旨を前記管理サーバへ情報送信することを特徴とする請求項１６から請求項２１の何れかに記載のグリッドコンピューティングシステムのリソース制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想マシンモニタのリソースの制御システムに関し、特にグリッドコンピューティングを用いたリソースの制御方式に関する。
【背景技術】
【０００２】
１台のコンピュータ上で複数のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を制御するプログラムとして、仮想マシンモニタが知られている。特に、英国ケンブリッジ大学で開発が進められたＸｅｎ（商標）やＶＭｗａｒｅ社のＶＭｗａｒｅ（登録商標）等は広く知られた仮想マシンモニタである。
【０００３】
この仮想マシンモニタを用いると、１台のコンピュータが複数の異なるＯＳを制御し、各ＯＳ上で異なるジョブを並列に処理することができる。仮想マシンモニタは、複数の仮想マシンを実行し、各仮想マシンは、互いに異なるＯＳを動作させることができる。
【０００４】
しかし、複数の物理サーバで仮想マシンモニタを使用している場合に、従来は他サーバの仮想マシンモニタのリソースを使用することはできなかった。そのため各仮想マシンモニタのほとんどにおいて余剰のリソースが存在していた。
【０００５】
例えば図１において、仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃは、それぞれリソースとして７で表される能力を有し、仮想マシン６０１Ａ〜６０２Ｃはそれぞれ３のリソースを消費するものとする。
【０００６】
各仮想マシンモニタでは仮想マシンが２台ずつ稼動しており、合計６のリソースを要求している。一方仮想マシンモニタのリソースは７であるため、各仮想マシンモニタにおいて７−６＝１の余剰リソースがある。
【０００７】
次に、図２においては、仮想マシンモニタ１０１Ａで仮想マシンが３台稼動している。
【０００８】
図１同様、仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃは、それぞれリソースとして７で表される能力を有し、仮想マシン６０１Ａ〜６０２Ｃはそれぞれ３のリソースを消費するものとすると、仮想マシンモニタ１０１Ａのリソースは７であり、仮想マシンモニタ１０１Ａ上の仮想マシン６０１Ａ、６０２Ａ、６０３Ａは合計９のリソースを要求しているため、リソースとして２不足している。そのため仮想マシン６０１Ａ、６０２Ａ、６０３Ａは安定したパフォーマンスを提供することはできない。
【０００９】
また仮想マシンモニタ１０１Ｂ、１０１Ｃではリソースがそれぞれ１余っているが、他サーバのリソースは使用することはできないため、いずれにせよこの環境において全ての仮想マシンに安定したパフォーマンスを提供する手段は持たない。
【００１０】
このように、仮想マシンモニタは１台の物理サーバにおいてリソースを分割することはできるが、複数物理サーバとリソースを共有し柔軟に分割することはできない。従ってそれぞれの物理サーバにおいて仮想マシンが使用していない部分のリソースが無駄になってしまう。
【００１１】
この問題を解決するため、各仮想マシンモニタの余剰リソースを使用するために仮想マシンモニタにグリッドコンピューティングの機能を用いる技術が開示されている。例えば特許文献１に記載の技術は、グリッドコンピューティング専用の仮想マシンを設けることで余剰リソースを有効活用する技術が提案されている。
【００１２】
なお、グリッドコンピューティングとは、ネットワークを介して複数のコンピュータを結ぶことで仮想的に高性能コンピュータをつくり、利用者はそこから必要なだけ処理能力や記憶容量を取り出して使うシステムのことである。グリッドコンピューティングでは複数のコンピュータに並列処理を行わせることで、一台一台の性能は低くとも高速に大量の処理を実行できるようになる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００８−１７１０７６
【発明の概要】
【発明が解決しようとする課題】
【００１４】
特許文献１に記載の技術は、グリッドコンピューティング専用の仮想マシンを設ける必要があり、ＯＳ費やアプリケーションコスト費が余分に必要となるという問題がある。
【００１５】
また、特許文献１に記載の技術は、インターネットなどを使用して広範囲のマシンを分散処理の対象としているため、第３者の不正介入の危険性があるという問題がある。
【００１６】
また、特許文献１に記載の技術は、分散処理を行うプログラムを管理サーバに送信し、管理サーバから個々の仮想マシンモニタへプログラムを送信しているため、転送するデータ量が大きいという問題と、分散処理先でゲストＯＳ（仮想マシン上で動作しているＯＳ）が必要となるため、ゲストＯＳが分散処理を意識する必要があるという問題がある。
【００１７】
また、特許文献１に記載の技術は、仮想マシン毎のリソース監視は行っておらず、サーバ単位でのＣＰＵ、メモリのリソース監視のみしか行っていないため、負荷分散決定に改善の余地がある。
【００１８】
（発明の目的）
本発明の目的は、仮想マシンモニタを導入している環境において、グリッドコンピューティングの機能を追加することで、各仮想マシンモニタのあまったリソースを使用し、仮想マシンが安定して動作することを可能としたグリッドコンピューティングシステムを提供することである。
【００１９】
本発明の他の目的は、分散先にＯＳ（つまりゲストＯＳ）配置せずに、仮想化レイヤで実行命令を送受信することで分散処理を実現することである。
【課題を解決するための手段】
【００２０】
本発明の第１のグリッドコンピューティングシステムは、仮想マシンを制御する仮想マシンモニタを備える複数のコンピュータをネットワークを介して接続したグリッドコンピューティングシステムであって、各仮想マシンモニタと仮想マシンのリソースを一元管理する管理サーバを備え、仮想マシンモニタが、仮想マシンのリソース使用状況を監視するリソース監視手段と、仮想マシンのリソース割り当て状況をチェックし、仮想マシンのリソース使用状況情報及び仮想マシンモニタのリソース空き状況情報を管理サーバに通知するパフォーマンスチェック手段と、記仮想マシンのリソースの割り当てが不十分である場合に、仮想マシンのリソースの最適化が可能かどうかを判断し、リソースの最適化ができないと判断したときに、管理サーバへリソース借用要求を通知するリソース最適化チェック手段を備え、管理サーバが、リソース借用要求があった場合、どの仮想マシンモニタからどの程度のリソースを借用するかを決定し、リソース借用要求を通知した仮想マシンモニタに、当該仮想マシンモニタの仮想マシンのタスクを他の仮想マシンモニタに実行させる分散処理開始命令を送信する分散先決定手段を備え、仮想マシンモニタが、管理サーバから送信された分散処理開始命令に従い、自身の仮想マシンのタスクの分散処理を行う分散処理手段を、含む。
【００２１】
本発明の第１のリソース制御方法は、仮想マシンを制御する仮想マシンモニタを備える複数のコンピュータをネットワークを介して接続したグリッドコンピューティングシステムのリソース制御方法であって、仮想マシンモニタが、仮想マシンのリソース使用状況を監視するリソース監視ステップと、仮想マシンのリソース割り当て状況をチェックし、仮想マシンのリソース使用状況情報及び仮想マシンモニタのリソース空き状況情報を管理サーバに通知するパフォーマンスチェックステップと、仮想マシンのリソースの割り当てが不十分である場合に、仮想マシンのリソースの最適化が可能かどうかを判断し、リソースの最適化ができないと判断したときに、管理サーバへリソース借用要求を通知するリソース最適化チェックステップを実行し、各仮想マシンモニタと仮想マシンのリソースを一元管理する管理サーバが、リソース借用要求があった場合、どの仮想マシンモニタからどの程度のリソースを借用するかを決定し、リソース借用要求を通知した仮想マシンモニタに、当該仮想マシンモニタの仮想マシンのタスクを他の仮想マシンモニタに実行させる分散処理開始命令を送信する分散先決定ステップを実行し、仮想マシンモニタが、管理サーバから送信された分散処理開始命令に従い、自身の仮想マシンのタスクの分散処理を行う分散処理ステップを実行する。
【００２２】
本発明の第１のリソース制御プログラムは、仮想マシンを制御する仮想マシンモニタを備える複数のコンピュータをネットワークを介して接続したグリッドコンピューティングシステムのリソース制御プログラムであって、仮想マシンモニタに、仮想マシンのリソース使用状況を監視するリソース監視機能と、仮想マシンのリソース割り当て状況をチェックし、仮想マシンのリソース使用状況情報及び仮想マシンモニタのリソース空き状況情報を管理サーバに通知するパフォーマンスチェック機能と、仮想マシンのリソースの割り当てが不十分である場合に、仮想マシンのリソースの最適化が可能かどうかを判断し、リソースの最適化ができないと判断したときに、管理サーバへリソース借用要求を通知するリソース最適化チェック機能を実行させ、各仮想マシンモニタと仮想マシンのリソースを一元管理する管理サーバに、リソース借用要求があった場合、どの仮想マシンモニタからどの程度のリソースを借用するかを決定し、リソース借用要求を通知した仮想マシンモニタに、当該仮想マシンモニタの仮想マシンのタスクを他の仮想マシンモニタに実行させる分散処理開始命令を送信する分散先決定機能を実行させ、仮想マシンモニタに、管理サーバから送信された分散処理開始命令に従い、自身の仮想マシンのタスクの分散処理を行う分散処理機能を実行させる。
【発明の効果】
【００２３】
本発明によれば、仮想マシンモニタを導入している環境において、グリッドコンピューティングの機能を追加することで、各仮想マシンモニタのあまったリソースを使用し、仮想マシンが安定して動作することを可能にする。
【図面の簡単な説明】
【００２４】
【図１】本発明の背景技術のシステム構成例を示すブロック図である。
【図２】本発明の背景技術のシステム構成例を示すブロック図である。
【図３】本発明の第１の実施の形態の構成を示すブロック図である。
【図４】第１の実施の形態に係るリソース制御手段の構成を示すブロック図である。
【図５】第１の実施の形態に係る管理サーバの構成を示すブロック図である。
【図６】第１の実施の形態の動作の具体例を示す図である。
【図７】第１の実施の形態の動作を示すフローチャートである。
【図８】第１の実施の形態に係るリソース監視手段の動作を示すフローチャートである。
【図９】第１の実施の形態に係る分散処理手段の構成を示すブロック図である。
【図１０】本発明の第２の実施の形態の構成を示すブロック図である。
【発明を実施するための形態】
【００２５】
次に、本発明の実施の形態について図３、図４、図５を参照して詳細に説明する。
【００２６】
（第１の実施の形態）
【００２７】
本発明の第１の実施の形態に係るグリッドコンピューティングシステム１００は、仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃと、仮想マシンモニタ１０１Ｂ上で動作する仮想マシン６０１と、各仮想マシンモニタのリソース使用状況の一元管理及び処理分散の決定を行う管理サーバ５０１とを含む。
【００２８】
仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃは、仮想６０１のリソース使用状況を監視するリソース監視手段１３１と、仮想マシン６０１のリソース割り当て状況をチェックし、仮想マシン６０１のリソース使用状況情報及び仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃのリソース空き状況情報を通知するパフォーマンスチェック手段１３２と、リソース最適化が可能かチェックしリソースの最適化ができないと判断したときに管理サーバへリソース借用要求を通知するリソース最適化チェック手段１３３と、リソースの最適化を行うリソース最適化手段１３４と、タスク毎の計算処理先を決定し計算を行う分散処理手段１３５とを含むリソース制御手段１０３Ａ、１０３Ｂ、１０３Ｃと、各仮想マシンモニタ間で実効命令の送受信を行うインターナルＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）通信手段１０４Ａ、１０４Ｂ、１０４Ｃを有する。
【００２９】
リソース監視手段１３１は、仮想マシン６０１を有する場合は、仮想マシン６０１のＣＰＵ使用率およびメモリの使用状況を監視する機能を有する。リソース監視手段１３１は、カーネル内の監視プログラム等を想定している。
【００３０】
パフォーマンスチェック手段１３２は、仮想マシン６０１を有する場合は、仮想マシン６０１にリソースが十分に割り当たっているかをチェックし、管理サーバへ仮想マシン６０１のリソース使用状況情報及び仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃのリソース空き状況情報を通知する機能を有する。
【００３１】
パフォーマンスチェック手段１３２は、仮想マシン６０１に十分なリソースが割り当たっていると判断した場合には、仮想マシン６０１のリソース使用状況及び仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃの余剰リソース量情報を管理サーバに送信する。
【００３２】
パフォーマンスチェック手段１３２は、仮想マシン６０１に十分なリソースが割り当たっていないと判断された場合には、仮想マシン６０１のリソース使用状況及び仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃの不足リソース量情報を管理サーバへと送信する。
【００３３】
なお、パフォーマンスチェック手段１３２は、仮想マシンを有しない場合は、仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃのリソース空き状況情報のみを管理サーバに送信する。
【００３４】
リソース最適化チェック手段１３３は、リソース最適化手段１３４により仮想マシン６０１のリソースを最適化する余地があるかどうかを判断する機能を有する。
【００３５】
リソース最適化チェック手段１３３は、仮想マシン６０１のリソースを最適化できると判断したときはリソース最適化手段１３４へ処理を移行し、仮想マシン６０１のリソースの最適化ができないと判断したときは管理サーバにリソース借用要求を行う。
【００３６】
リソース最適化手段１３４は、仮想マシン６０１の最適化を行う機能を有する。
【００３７】
分散処理手段１３５は、管理サーバ５０１の分散先決定手段５０２より送信された分散処理開始命令に従い、仮想マシンが実行するタスクの分散処理を行う。
【００３８】
分散処理手段１３５は、仮想マシンが実行するタスク毎に、ローカルマシンで計算処理を行うか、リモートマシンで計算を行うかを決定し、リモートマシンで計算を行う場合は、リモートマシンとの間でインターナルＬＡＮ１４０を介して実行命令の送受信を行う。
【００３９】
分散処理手段１３５は、分散処理が終了した場合にはリソースを開放し、処理終了した旨を管理サーバへ情報送信する。
【００４０】
また、分散処理手段１３５は、リモートマシンから実効命令が送信された場合に、即座に計算処理を行う。
【００４１】
なお、分散処理手段１３５は、仮想デバイスドライバを想定している。図９は、分散処理手段１３５の構成の一例を示したブロック図である。
【００４２】
インターナルＬＡＮ通信手段１０４は、仮想マシンモニタ間での実効命令の送受信を行う機能を有し、インターナルＬＡＮ１４０を構成する。
【００４３】
管理サーバ５０１は、パフォーマンスチェック手段１３２から送られてきた仮想マシン６０１のリソース使用状況および仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃのリソース空き状況情報の一元管理を行う。
【００４４】
また、管理サーバ５０１は、各仮想マシンモニタからリソース借用要求があった場合に、どの仮想マシンモニタからどの程度リソースを借用するべきかを決定し、リソース借用要求を通知してきた仮想マシンモニタへ情報送信する分散先決定手段５０２を有する。
【００４５】
分散先決定処理手段５０２は、仮想マシン６０１のリソース使用状況および仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃのリソース空き状況情報と、仮想マシンモニタによって要求されたリソース量から、どの仮想マシンモニタからどの程度リソースを借用するべきかを決定する機能を有する。処理の分散が決定した後、分散先決定手段５０２は分散処理開始命令を管理ＬＡＮ５１０経由でリソース借用要求を通知してきた仮想マシンモニタへ送信する。
【００４６】
（第１の実施の形態の動作の説明）
次に、図６〜図８を参照して本発明の実施の形態の動作について詳細に説明する。なお、仮想マシンモニタ１０１Ａ、１０１Ｃは仮想マシン６０１を搭載していないため、仮想マシンモニタ６０１を例にとって説明を行う。
【００４７】
まず、仮想マシンモニタ１０１Ｂは、リソース監視手段１３１を用いて仮想マシン６０１のリソース監視処理を行う（ステップＳ７０１）。リソース監視手段１３１は、仮想マシン６０１の使用率およびメモリの使用状況を監視する。
【００４８】
リソース監視手段１３１は、仮想マシン６０１のリソース使用状況を一定時間取得し、その一定期間における仮想マシン６０１のリソース使用状況の性能平均値を算出する。図８はリソース監視処理（ステップＳ７０１）の処理フローの例である。
【００４９】
リソース監視処理が終わると、仮想マシンモニタ１０１Ｂは、パフォーマンスチェック手段１３２を用いてパフォーマンスチェック処理（ステップＳ７０２）を行う。
【００５０】
パフォーマンスチェック手段１３２は、仮想マシン６０１にリソースが十分に割り当たっているかをチェックし、仮想マシン６０１のリソース使用状況情報と、仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃのリソース空き状況情報を管理サーバへ送信する。
【００５１】
仮想マシン６０１に十分なリソースが割り当たっている場合、パフォーマンスチェック手段１３２は、仮想マシン６０１のリソース使用状況情報及び仮想マシンモニタ１０１Ｂの余剰リソース量情報を管理サーバ５０１に送信し、再度リソース監視処理へと移行する（ステップＳ７０２”ＹＥＳ”）。
【００５２】
パフォーマンスチェック処理で仮想マシン６０１に十分なリソースが割り当たっていないと判断された場合（ステップＳ７０２”ＮＯ”）は、パフォーマンスチェック手段１３２は、仮想マシン６０１のリソース使用状況情報および仮想マシンモニタ１０１Ｂの不足リソース量情報を管理サーバ５０１へと送信し、次いで、リソース最適化チェック処理（ステップＳ７０３）へ移行する。
【００５３】
なお、仮想マシン６０１を有しない１０１Ａ、１０１Ｃは、仮想マシンモニタ１０１Ａ、１０１Ｃのリソース空き状況情報のみを送信し、以後、再びリソース監視処理へ移行するものとする。
【００５４】
パフォーマンスチェック処理により、管理サーバ５０１は常に仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃの性能情報を一元管理することができる。
【００５５】
リソース最適化チェック処理（ステップＳ７０３）では、まず、仮想マシンモニタ１０１Ｂは、リソース最適化チェック手段１３３を用いて、リソース最適化手段１３４で仮想マシン６０１のリソースを最適化する余地があるかどうかを判断する。
【００５６】
リソース最適化チェック手段１３３は、仮想マシン６０１のリソースを最適化する余地があると判断した場合（ステップＳ７０３”ＹＥＳ”）は、リソース最適化処理（ステップＳ７０４）へ移行する。
【００５７】
リソース最適化処理では、仮想マシンモニタ１０１Ｂはリソース最適化手段１３４により、仮想マシン６０１のリソース最適化処理を行う。
【００５８】
リソース最適化処理を行った後は、仮想マシンモニタ１０１Ｂは再びリソース監視処理（ステップＳ７０１）を行う。
【００５９】
一方、リソース最適化チェック手段１３３は、仮想マシン６０１のリソースを最適化する余地がないと判断した場合（ステップＳ７０３”ＮＯ”）は、管理サーバ５０１へリソース借用通知を送信し（ステップＳ７０５）、通知を受けた管理サーバ５０１は、分散先決定手段５０２を用いて分散先決定処理（ステップＳ７０５）を行う。
【００６０】
分散先決定処理では、分散先決定手段５０２が、仮想マシンモニタ６０１のリソース使用状況及び仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃのリソース空き状況情報、そして仮想マシンモニタ１０１Ｂのリソース最適化チェック手段１３３に要求された借用リソース量から、どの仮想マシンモニタからどの程度リソースを借用するべきかを決定する。
【００６１】
処理の分散先が決定した後、分散先決定手段５０２は、リソース借用通知を行った仮想マシンモニタ１０１Ｂへどの仮想マシンモニタからどの程度リソースを借用するべきかを示した分散処理開始命令を発信し、分散処理開始命令を受け取った仮想マシンモニタ１０１Ｂは、分散処理手段１３５を用いて、分散処理（ステップＳ７０６）を行う。
【００６２】
分散処理手段１３５は、分散処理開始命令を元に、仮想マシン６０１が実行するタスク毎にローカルマシンで計算処理を行うか、リモートマシンで計算を行うかを決定し、分散処理を行う各仮想マシンモニタ間でインターナルＬＡＮを介してＣＰＵのインストラクションレベルの実行命令を送受信する。
【００６３】
分散処理が終了した場合には、分散処理手段１３５は、リソースを開放し、処理終了した旨を管理サーバ５０１へ情報送信する。その後仮想マシンモニタ１０１Ｂは、再びリソース監視処理を行う。
【実施例１】
【００６４】
次に、具体的な実施例を用いて本実施の形態の動作を説明する。図６は、第１の実施の形態を、具体的な例の１つとして、仮想マシンモニタとしてＶＭｗａｒｅを使用し、仮想マシンサーバとしてＥＳＸサーバを使用した場合のグリッドコンピューティングシステムの実施例を示す図である。
【００６５】
（構成の説明）
図６に示すグリッドコンピューティングシステム１００は、ＥＳＸサーバ１０９Ａ、１０９Ｂ、１０９Ｃと、ストレージ４０１と、管理サーバ５０１と、ＥＳＸサーバ１０９Ａ、１０９Ｂ、１０９Ｃと管理サーバ５０１を接続して管理ＬＡＮ５１０を構成するＬ２（Ｌａｙｅｒ  ２）スイッチ２０１と、ＥＳＸサーバ１０９Ａ、１０９Ｂ、１０９Ｃ同士を接続してインターナルＬＡＮ１４０を構成するＬ２スイッチ２０２と、ＥＳＸサーバ１０９Ａ、１０９Ｂ、１０９Ｃとストレージ４０１とを接続するＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）スイッチ３０１と、を含む。
【００６６】
ＥＳＸサーバ１０９Ａ、１０９Ｂ、１０９Ｃは、ＶＭｗａｒｅ１１０Ａ、１１０Ｂ、１１０Ｃ、ハードウェア１０２Ａ、１０２Ｂ、１０２Ｃ、ＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）１０５Ａ、１０５Ｂ、１０５Ｃ、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１０６Ａ、１０６Ｂ、１０６Ｃ及び１０７Ａ、１０７Ｂ、１０７Ｃ、ＳＣ１０８Ａ、１０８Ｂ、１０８Ｃを有する。ＳＣとは仮想マシンモニタにおける管理用仮想マシンを示す。
【００６７】
管理サーバ５０１は、ＮＩＣ５０６を有し、ＮＩＣ５０６を用いて管理ＬＡＮ５１０に接続している。
【００６８】
ＨＢＡ１０５Ａ、１０５Ｂ、１０５Ｃは、ＦＣスイッチ３０１に接続している。ＦＣスイッチ３０１にはストレージ４０１も接続されており、ＥＳＸサーバ１０９Ａ、１０９Ｂ、１０９Ｃは、共通のストレージ４０１が見えるように接続されている。
【００６９】
ＮＩＣ１０６Ａ、１０６Ｂ、１０６Ｃ、５０６は、Ｌ２スイッチ２０１に接続し、管理ＬＡＮ５１０を構成している。
【００７０】
管理ＬＡＮ５１０は、管理サーバ５０１による各ＶＭｗａｒｅの一元管理のために使用される。
【００７１】
ＮＩＣ１０７Ａ、１０７Ｂ、１０７Ｃは、Ｌ２スイッチ２０２に接続し、インターナルＬＡＮ１４０を構成している。
【００７２】
インターナルＬＡＮ１４０は、ＥＳＸサーバ１０９Ａ、１０９Ｂ、１０９Ｃのみを相互に接続したプライベートなＬＡＮである。
【００７３】
ＥＳＸサーバ１０９Ａ、１０９Ｂ、１０９Ｃは同一のＣＰＵまたは互換性のあるＣＰＵを搭載しているものとする。同一または互換性のあるＣＰＵを搭載することにより、ＣＰＵの実効命令を転送することが可能となる。
【００７４】
ＶＭｗａｒｅ１１０Ａ、１１０Ｂ、１１０Ｃは、それぞれリソース監視手段１３１、パフォーマンスチェック手段１３２、リソース最適化手段１３３、分散処理手段１３５を有するものとする
【００７５】
また、ＶＭｗａｒｅ１１０Ａは仮想マシン６０１を搭載しているものとする。
【００７６】
（動作の説明）
次に、本発明の実施例の動作についてＥＳＸサーバ１０９Ａを例にとって詳細に説明する。
【００７７】
まず、ＶＭｗａｒｅ１１０Ａは、リソース監視手段１３１を用いて仮想マシン６０１のリソース監視処理を行うリソース監視処理を行う（ステップＳ７０１）。リソース監視処理では、リソース監視手段１３１は、仮想マシン６０１のＣＰＵ使用率およびメモリの使用状況を監視する。
【００７８】
リソース監視手段１３１は、仮想マシン６０１のリソース使用状況を一定時間取得し、その一定期間におけるＶＭｗａｒｅ１１０Ａのリソース使用状況の性能平均値（リソース使用状況情報）を算出する。
【００７９】
リソース監視処理が終わると、ＶＭｗａｒｅ１１０Ａは、パフォーマンスチェック手段１３２を用いてパフォーマンスチェック処理（ステップＳ７０２）を行う。
【００８０】
パフォーマンスチェック手段１３２は、仮想マシン６０１にリソースが十分に割り当たっているかをチェックし、仮想マシン６０１のリソース使用状況情報と、ＶＭｗａｒｅ１１０Ａのリソースの空き状況情報を管理サーバへ送信する。
【００８１】
仮想マシン６０１に十分なリソースが割り当たっている場合、パフォーマンスチェック手段１３２は、仮想マシン６０１のリソース使用状況情報及びＶＭｗａｒｅ１１０Ａの余剰リソース量情報を管理サーバ５０１に送信し、再度リソース監視処理へと移る（ステップＳ７０２”ＹＥＳ”）。
【００８２】
パフォーマンスチェック処理で仮想マシン６０１に十分なリソースが割り当たっていないと判断された場合（ステップＳ７０２”ＮＯ”）は、パフォーマンスチェック手段１３２は、仮想マシン６０１のリソース使用状況情報およびＶＭｗａｒｅ１１０Ａの不足リソース量情報を管理サーバ５０１へと送信し、次いで、リソース最適化チェック処理（ステップＳ７０３）へ移行する。
【００８３】
パフォーマンスチェック処理により、管理サーバ５０１は常にＶＭｗａｒｅ１１０Ａの性能情報を管理することができる。なお、ＶＭｗａｒｅ１１０Ｂ、１１０Ｃでもリソース監視処理は行われているため、管理サーバ５０１は、ＶＭｗａｒｅ１１０Ａ、１１０Ｂ、１１０Ｃの性能情報を一元管理することができる。
【００８４】
リソース最適化チェック処理（ステップＳ７０３）では、まず、ＶＭｗａｒｅ１１０Ａは、リソース最適化チェック手段１３３を用いて、仮想マシン６０１のリソースを最適化する余地があるかどうかを判断する。
【００８５】
リソース最適化チェック手段１３３は、具体的には、仮想マシンモニタＶＭｗａｒｅ  ＥＳＸ（商標）においてはＶＭｗａｒｅ  ＤＲＳ（商標）が該当する。
【００８６】
リソース最適化チェック手段１３３は、リソース最適化チェック処理で仮想マシン６０１のリソースを最適化する余地があると判断した場合（ステップＳ７０３”ＹＥＳ”）は、リソース最適化処理（ステップＳ７０４）へ移行する。
【００８７】
リソース最適化処理では、ＶＭｗａｒｅ１１０Ａは、リソース最適化手段１３４（ＶＭｗａｒｅ  ＤＲＳ）により、仮想マシン６０１のリソース最適化処理を行う。
【００８８】
リソース最適化処理を行った後は、ＶＭｗａｒｅ１１０Ａは、再びリソース監視処理（ステップＳ７０１）を行う。
【００８９】
一方、リソース最適化チェック手段１３３は、リソース最適化チェック処理で仮想マシン６０１のリソース最適化の余地がないと判断した場合（ステップＳ７０３”ＮＯ”）は、管理サーバ５０１へリソース借用通知を送信し（ステップＳ７０５）、通知を受けた管理サーバ５０１は、分散先決定手段５０２を用いて分散先決定処理（ステップＳ７０５）を行う。
【００９０】
分散先決定処理では、分散先決定手段５０２が、仮想マシン６０１のリソース使用状況情報及びＶＭｗａｒｅ１１０Ａ、１１０Ｂ、１１０Ｃのリソース空き状況情報、そしてリソース最適化チェック手段１３３によって要求されたリソース量から、どのＶＭｗａｒｅからどの程度リソースを借用するべきかを決定する。
【００９１】
処理の分散先が決定した後、分散先決定手段５０２は、ＶＭｗａｒｅ１１０Ａへ分散処理開始命令を発信し、分散処理開始命令を受け取ったＶＭｗａｒｅ１１０Ａは、分散処理手段１３５を用いて分散処理（ステップＳ７０６）を行う。
【００９２】
分散処理手段１３５は、分散処理開始命令を元に、仮想マシン６０１が実行するタスク毎にローカルマシンで計算処理を行うか、リモートマシンで計算を行うかを決定し、分散処理を行う各仮想マシンモニタ間でインターナルＬＡＮを介してＣＰＵのインストラクションレベルの実行命令を送受信する。
【００９３】
分散処理が終了した場合には、分散処理手段１３５は、リソースを開放し、処理終了した旨を管理サーバ５０１へ情報送信する。その後ＶＭｗａｒｅ１１０Ａは、再びリソース監視処理を行う。
【００９４】
（第１の実施の形態による効果）
次に本実施の形態の効果について説明する。
【００９５】
第１の効果は各仮想マシンモニタの余剰リソースが使用できるようになることである。すなわち、他サーバのリソースも自由に使えるようになるため、サーバの台数を減少させることも期待でき、グリーンなＩＴの先駆けとなる。
【００９６】
第２の効果は、ライセンス費用の削減である。分散処理先では仮想マシンを必要としないためＯＳ費およびアプリケーションコスト費の削減をすることができる。
【００９７】
第３の効果は、ゲストＯＳが分散処理を意識する必要がない点である。ＣＰＵのインストラクションレベルの命令の転送により、仮想マシンモニタ間で分散処理を実行するため、上位アプリケーションを問わず全て分散処理を実行することができる。
【００９８】
第４の効果は、分散処理専用のネットワークであるインターナルＬＡＮを設けることによって、第３者介入の危険性を防ぐことができる点である。また、管理ＬＡＮとは別にすることで広帯域のネットワークを確保できる。
【００９９】
第５の効果は、仮想マシンモニタのみならず仮想マシン毎のリソース監視も行っているため、管理サーバでの負荷分散決定を適切に行うことができる。
【０１００】
（第２の実施の形態）
次に、本発明の第２の実施の形態について図１０を参照して説明する。
【０１０１】
本発明の第１の実施の形態では、仮想マシンモニタ３台に対し仮想マシン１台として実施していたが、仮想マシン台数および仮想マシンモニタの数にはこだわらず自由に拡張することが可能である。
【０１０２】
図１０を参照すると、本実施の形態のグリッドコンピューティングシステム１００は、仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃと、管理サーバ５０１を有する。
【０１０３】
仮想マシンモニタ１０１Ａ、１０１Ｂ、１０１Ｃは、それぞれ、仮想マシン６０１Ａ、６０１Ｂ、６０１Ｃを有する。
【０１０４】
その他の物理的な構成は図３と同様であるため、詳細は省略する。
【０１０５】
（第２の実施の形態の動作の説明）
本実施の形態の動作の詳細は第１の実施の形態の動作と同等であるので説明は省略する。
【０１０６】
（第２の実施の形態による効果）
本実施の形態により、仮想マシン台数および仮想マシンモニタの数にはこだわらず自由に拡張することができる
【０１０７】
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【符号の説明】
【０１０８】
１００：グリッドコンピューティングシステム
１０１、１０１Ａ、１０１Ｂ、１０１Ｃ：仮想マシンモニタ
１０２、１０２Ａ、１０２Ｂ、１０２Ｃ：ハードウェア
１０３、１０３Ａ、１０３Ｂ、１０３Ｃ：リソース制御手段
１０４、１０４Ａ、１０４Ｂ、１０４Ｃ：インターナルＬＡＮ通信手段
１０５Ａ、１０５Ｂ、１０５Ｃ：ＨＢＡ
１０６Ａ、１０６Ｂ、１０６Ｃ：ＮＩＣ
１０７Ａ、１０７Ｂ、１０７Ｃ、５０６：ＮＩＣ
１０８Ａ、１０８Ｂ、１０８Ｃ：ＳＣ
１０９Ａ、１０９Ｂ、１０９Ｃ：ＥＳＸサーバ
１１０Ａ、１１０Ｂ、１１０Ｃ：ＶＭｗａｒｅ
１３１：リソース監視手段
１３２：パフォーマンスチェック手段
１３３：リソース最適化チェック手段
１３４：リソース最適化手段
１３５：分散処理手段
１４０：インターナルＬＡＮ
２０１：Ｌ２スイッチ
３０１：ＦＣスイッチ
４０１：ストレージ
５０１：管理サーバ
５０２：分散先決定手段
５１０：管理ＬＡＮ
６０１、６０１Ａ、６０１Ｂ、６０１Ｃ：仮想マシン
９０１：外部装置
９０２：デバイスドライバ
９０３：インターフェース部
９０４：仮想デバイスドライバ
９０５、９０６、９０７：タスク
【図１】
2010231601.tif 000003
【図２】
2010231601.tif 000004
【図３】
2010231601.tif 000005
【図４】
2010231601.tif 000006
【図５】
2010231601.tif 000007
【図６】
2010231601.tif 000008
【図７】
2010231601.tif 000009
【図８】
2010231601.tif 000010
【図９】
2010231601.tif 000011
【図１０】
2010231601.tif 000012