(57)【要約】【課題】仮想基盤ホストと端末とのリソースを含む全体的なリソースを効率的に使用できるようにする。【解決手段】接続管理サーバ１Ａは、仮想基盤ホストにおける仮想マシンを利用する複数の端末７，８とに通信可能に接続され、端末７，８による仮想マシンの利用要求または利用終了が生じたときに、仮想マシンの稼働マシン数に応じた性能スコアである第１の性能スコアと端末の性能スコアである第２の性能スコアとを比較する性能比較手段２と、性能比較手段２が第１の性能スコアよりも第２の性能スコアの方が高いと判定した場合には端末７，８のリソースを使用することに決定し、性能比較手段２が第２の性能スコアよりも第１の性能スコアの方が高いと判定した場合には仮想マシンのリソースを使用することに決定する切替決定手段３とを備えている。【選択図】図５
2018147257.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンが構築された仮想基盤ホストにおける仮想マシンを複数の端末が利用する仮想基盤にもとづくシステムにおけるリソース割当方法であって、
前記端末による前記仮想マシンの利用要求または利用終了が生じたときに、前記仮想マシンの稼働マシン数に応じた性能スコアである第１の性能スコアと前記仮想マシンを使用する端末の性能スコアである第２の性能スコアとを比較し、
前記第１の性能スコアよりも前記第２の性能スコアの方が高い場合には当該端末のリソースを使用することに決定し、前記第２の性能スコアよりも前記第１の性能スコアの方が高い場合には前記仮想マシンのリソースを使用することに決定する
ことを特徴とするリソース割当方法。
【請求項２】
前記第１の性能スコアと複数の端末のそれぞれの前記第２の性能スコアとを算定し
算定した前記第１の性能スコアと前記第２の性能スコアとを性能データベースに格納する
請求項１記載のリソース割当方法。
【請求項３】
前記第１の性能スコアおよび前記第２の性能スコアとして、グラフィック性能スコアを算定する
請求項２記載のリソース割当方法。
【請求項４】
前記第１の性能スコアおよび前記第２の性能スコアとを、同じベンチマークソフトウェアを用いて算定する
請求項２または請求項３記載のリソース割当方法。
【請求項５】
複数の仮想マシンが構築された仮想基盤ホストと、当該仮想基盤ホストにおける仮想マシンを利用する複数の端末とに通信可能に接続される接続管理サーバであって、
前記端末による前記仮想マシンの利用要求または利用終了が生じたときに、前記仮想マシンの稼働マシン数に応じた性能スコアである第１の性能スコアと前記仮想マシンを使用する端末の性能スコアである第２の性能スコアとを比較する性能比較手段と、
前記性能比較手段が前記第１の性能スコアよりも前記第２の性能スコアの方が高いと判定した場合には当該端末のリソースを使用することに決定し、前記性能比較手段が前記第２の性能スコアよりも前記第１の性能スコアの方が高いと判定した場合には前記仮想マシンのリソースを使用することに決定する切替決定手段と
を備えたことを特徴とする接続管理サーバ。
【請求項６】
前記第１の性能スコアと複数の端末のそれぞれの前記第２の性能スコアとが格納された性能データベースを備えた
請求項５記載の接続管理サーバ。
【請求項７】
リソースはＧＰＵである
請求項５または請求項６記載の接続管理サーバ。
【請求項８】
稼働している前記仮想マシンの数を特定可能なデータを記憶し、前記仮想マシンの利用要求または利用終了が生じたときに前記データを更新する接続セッション管理手段を備えた
請求項５から請求項７のうちのいずれか１項に記載の接続管理サーバ。
【請求項９】
複数の仮想マシンが構築された仮想基盤ホストと、当該仮想基盤ホストにおける仮想マシンを利用する複数の端末とに通信可能に接続される接続管理サーバに、
前記端末による前記仮想マシンの利用要求または利用終了が生じたときに、前記仮想マシンの稼働マシン数に応じた性能スコアである第１の性能スコアと前記仮想マシンを使用する端末の性能スコアである第２の性能スコアとを比較する処理と、
前記性能比較手段が前記第１の性能スコアよりも前記第２の性能スコアの方が高いと判定した場合には当該端末のリソースを使用することに決定し、前記性能比較手段が前記第２の性能スコアよりも前記第１の性能スコアの方が高いと判定した場合には前記仮想マシンのリソースを使用することに決定する処理とを
実行させるための接続管理プログラム。
【請求項１０】
接続管理サーバに、
稼働している前記仮想マシンの数を特定可能なデータを、前記仮想マシンの利用要求または利用終了が生じたときに更新する処理を実行させるための請求項９記載の接続管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想基盤に構築された仮想マシンのリソースと端末のリソースとを効率的に使い分ける、仮想基盤にもとづくシステムにおけるリソース割当方法、接続管理サーバおよび接続管理プログラムに関する。
【背景技術】
【０００２】
仮想基盤技術は、例えば、１台のサーバ等の計算機上に複数の仮想サーバ（仮想マシン）を構築する技術である。以下、複数の仮想マシンが構築された計算機を、仮想基盤ホストという。
【０００３】
図８は、仮想基盤にもとづくシステムの一例を示すブロック図である。仮想基盤ホスト２００には、複数の仮想マシン２１１〜２１ｎが構築されている。
【０００４】
ハイパーバイザ３０は、仮想基盤ホスト２００における物理リソース（ハードウェア）４０の制御を担う。ハイパーバイザ３０は、仮想マシン２１１〜２１ｎのいずれかからハードウェア４０の使用が要求されると、リソース制御を行う。すなわち、ハイパーバイザ３０は、実際のハードウェアリソースの割り当てを行う。ハイパーバイザ３０のリソース制御によって、仮想マシン２１１〜２１ｎのうちの複数の並列稼働も可能である。
【０００５】
図８に示すシステムでは、仮想基盤ホスト２００にクライアント１００が通信可能に接続されている。例えば、クライアント１００（一例として、パーソナルコンピュータ）のユーザが、Windows （登録商標）ＯＳ（Operating System）等に標準的に搭載されているリモートデスクトップ接続機能を用いて、仮想マシンマシン２１１〜２１ｎのデスクトップを遠隔から操作することによって、操作結果としての画面や音声等をクライアント１００で得ることができる。
【０００６】
また、ＧＰＵ（Graphics Processing Unit）の仮想化も行われている。図９は、仮想ＧＰＵを使用するシステムの一例を示すブロック図である。図９には、複数のクライアント１００１〜１００ｍが示されている。また、仮想マシン２１１にインストールされているＯＳ２２、アプリケーションプログラム（ユーザアプリケーション）２３およびグラフィックドライバ２４も示されている。
【０００７】
仮想基盤ホスト２０１には、ハードウェア４０として、ＧＰＵ（ＧＰＵコアおよびＧＰＵ用メモリ）４１が搭載されたＧＰＵボードが実装されている。仮想マシン２１１で要求される画像処理（グラフィック処理）を、ＧＰＵ４１が担うことによって、仮想マシン２１１におけるユーザアプリケーション２３が要求する高いグラフィック処理性能が実現される。このことは、仮想マシン２１１以外の仮想マシンについても同様である。
【０００８】
複数の仮想マシン２１１〜２１ｎへのハードウェアリソースの割り当ては、例えば、ＧＰＵ用メモリを複数のメモリ領域に分割し各々のメモリ領域を各々の仮想マシン２１１〜２１ｎに１対１に対応付けるように固定的に割り当てる方法による。いわゆるＧＰＵ仮想化方式が用いられる。ＧＰＵ仮想化方式として、例えば、NVIDIA社が提供するNVIDIA GRID （登録商標）にもとづくｖＧＰＵ（仮想ＧＰＵ）がある。
【０００９】
また、図９に示すように、クライアント１００１〜１００ｍと仮想基盤ホスト２００との間に接続管理サーバ５００を介在させたシステムもある。クライアント１００１〜１００ｍは、接続管理サーバ５００を介して、空いている仮想マシン２１１〜２１ｎに自動的にログインできる。
【００１０】
ユーザが例えばクライアント１００１から仮想マシン２１１のＯＳ２２にログインし、ユーザアプリケーション２３を利用して画面描画などのグラフィック処理の実行を望む場合、仮想マシン２１１は、グラフィックドライバ２４を介して、グラフィックドライバ２４に割り当てられた仮想ＧＰＵ４１１に対する処理要求をハイパーバイザ３０に対して行う。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００３−３６４３５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
クライアント１００１〜１００ｍとして、デスクトップパーソナルコンピュータ（ＰＣ）、ノートＰＣ、タブレット端末、スマートフォンなど種々の端末が使用されうる。それらに実装されているメモリ、ＣＰＵ数、ＧＰＵ数等は様々である。また、それらのグラフィック性能も異なる。さらに、１台の仮想基盤ホスト２０１に実装できるメモリ、ＣＰＵ数、ＧＰＵ数には限りがある。従って、仮想基盤ホスト２０１で稼働できる仮想マシン２１１〜２１ｎの数には上限がある。一方で、仮想マシン２１１〜２１ｎの側で３Ｄ  ＣＡＤ（Computer Aided Design ）などのグラフィックアプリケーションが実行されている場合には、クライアント側の使用リソースには余裕があることが多い。
【００１３】
よって、複数のクライアント１００１〜１００ｍが仮想基盤ホスト２０１を使用する環境では、限られたリソースの下で、ユーザ全員のアプリケーションの実行速度を維持または向上させることが望まれる。また、ユーザの利便性と作業効率を挙げることが要請される。
【００１４】
上記の要請は、例えば、仮想基盤ホスト２００，２０１のリソースとクライアントのリソースとを効率的に使用することによって実現可能である。
【００１５】
特許文献１には、端末装置（具体的には、ディジタルスチルカメラ）と、端末装置と通信可能な外部サーバとのいずれかで画像処理を行うことが可能なシステムにおいて、画像サイズ、双方のメモリサイズおよび双方の画像処理時間にもとづいて、いずれで画像処理を行うべきかを決定することが記載されている。
【００１６】
しかし、特許文献１では、１台の物理的な外部サーバと１台の端末装置との関係しか論じられていない。複数の端末装置および外部サーバ間でのリソースの割り当てに関する概念は、特許文献１には存在しない。なお、特許文献１には「仮想マシン」という表現があるが、特許文献１に記載された端末装置と外部サーバとの双方において、「仮想マシン」は１つしか存在しない。
【００１７】
本発明は、仮想基盤ホストに複数の端末が通信可能に接続されるシステムにおいて、仮想基盤ホストと端末とのリソースを含む全体的なリソースを効率的に使用できるようにすることを目的とする。
【課題を解決するための手段】
【００１８】
本発明による仮想基盤にもとづくシステムにおけるリソース割当方法は、複数の仮想マシンが構築された仮想基盤ホストにおける仮想マシンを複数の端末が利用する仮想基盤にもとづくシステムにおけるリソース割当方法であって、端末による仮想マシンの利用要求または利用終了が生じたときに、仮想マシンの稼働マシン数に応じた性能スコアである第１の性能スコアと端末の性能スコアである第２の性能スコアとを比較し、第１の性能スコアよりも第２の性能スコアの方が高い場合には端末のリソースを使用することに決定し、第２の性能スコアよりも第１の性能スコアの方が高い場合には仮想マシンのリソースを使用することに決定することを特徴とする。
【００１９】
本発明による接続管理サーバは、複数の仮想マシンが構築された仮想基盤ホストと、仮想基盤ホストにおける仮想マシンを利用する複数の端末とに通信可能に接続される接続管理サーバであって、端末による仮想マシンの利用要求または利用終了が生じたときに、仮想マシンの稼働マシン数に応じた性能スコアである第１の性能スコアと端末の性能スコアである第２の性能スコアとを比較する性能比較手段と、性能比較手段が第１の性能スコアよりも第２の性能スコアの方が高いと判定した場合には端末のリソースを使用することに決定し、性能比較手段が第２の性能スコアよりも第１の性能スコアの方が高いと判定した場合には仮想マシンのリソースを使用することに決定する切替決定手段とを備えたことを特徴とする。
【００２０】
本発明による接続管理プログラムは、複数の仮想マシンが構築された仮想基盤ホストと、仮想基盤ホストにおける仮想マシンを利用する複数の端末とに通信可能に接続される接続管理サーバに、端末による仮想マシンの利用要求または利用終了が生じたときに、仮想マシンの稼働マシン数に応じた性能スコアである第１の性能スコアと端末の性能スコアである第２の性能スコアとを比較する処理と、性能比較手段が第１の性能スコアよりも第２の性能スコアの方が高いと判定した場合には端末のリソースを使用することに決定し、性能比較手段が第２の性能スコアよりも第１の性能スコアの方が高いと判定した場合には仮想マシンのリソースを使用することに決定する処理とを実行させることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、仮想基盤ホストと端末とのリソースを含む全体的なリソースを効率的に使用できる。
【図面の簡単な説明】
【００２２】
【図１】仮想基盤にもとづくシステムの一実施形態を示すブロック図である。
【図２】仮想マシンのグラフィック性能スコアとクライアントのグラフィック性能スコアとの一例を示す説明図である。
【図３】あるクライアントが仮想マシンに対する接続要求を行ったときのシステムの動作を示すフローチャートである。
【図４】あるクライアントが仮想マシンに対する接続解除要求（接続終了）を行ったときのシステムの動作を示すフローチャートである。
【図５】接続管理サーバの主要部を示すブロック図である。
【図６】他の態様の接続管理サーバの主要部を示すブロック図である。
【図７】さらに他の態様の接続管理サーバの主要部を示すブロック図である。
【図８】仮想基盤にもとづくシステムの一例を示すブロック図である。
【図９】仮想ＧＰＵを使用するシステムの一例を示すブロック図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態を図面を参照して説明する。
【００２４】
図１は、仮想基盤にもとづくシステムの一実施形態を示すブロック図である。
【００２５】
図１に示すシステムは、クライアント１０１〜１０ｍ、仮想サーバ等の仮想基盤ホスト２０、および接続管理サーバ５０を含む。クライアント１０１〜１０ｍと接続管理サーバ５０とは通信ネットワークを介して通信可能に接続される。仮想基盤ホスト２０と接続管理サーバ５０とは通信ネットワークを介して通信可能に接続される。
【００２６】
クライアント１０１〜１０ｍは、例えば、デスクトップＰＣ、ノートＰＣ、タブレット端末、スマートフォンである。
【００２７】
図１には、クライアント１０１〜１０ｍのうちクライアント１０１の内部構成例が示されている。なお、クライアント１０１以外のクライアントの構成は、クライアント１０１の構成と同じでよい。図１に示すように、クライアント１０１は、ＯＳ１２、グラフィックドライバ１４、物理的なハードウェア１５、グラフィック処理切替部１６、および通信処理部１７を含む。クライアント１０１には、３Ｄ  ＣＡＤや３Ｄ  ＣＧ（Computer Graphics ）等のユーザアプリケーション１３がインストールされている。
【００２８】
図１に示す例では、ハードウェア１５は、ＣＰＵ、ＲＡＭ（Random Access Memory）等のメモリ、ＨＤＤ（Hard Disk Drive ）およびＧＰＵを含む。
【００２９】
グラフィック処理切替部１６は、グラフィック処理の実行環境を切り替えるための処理を実行する。通信処理部１７は、接続管理サーバ５０とデータの送受信を行う。また、通信処理部１７は、接続管理サーバ５０から、グラフィック処理の切替通知を受信する。
【００３０】
仮想基盤ホスト２０には、複数の仮想マシン２１１〜２１ｎが構築されている。ハイパーバイザ３０は、仮想基盤ホスト１００におけるハードウェア４０の制御を担う。ハイパーバイザ３０は、仮想マシン２１１〜２１ｎのいずれかからハードウェア４０の使用が要求されると、リソース制御を行う。すなわち、ハイパーバイザ３０は、実際のハードウェアリソースの割り当てを行う。
【００３１】
仮想基盤ホスト２０は、ＯＳ２２、グラフィック処理切替部２６、および通信処理部２７を含む。グラフィック処理切替部２６は、グラフィック処理の実行環境を切り替えるための処理を実行する。通信処理部２７は、接続管理サーバ５０とデータの送受信を行う。また、通信処理部２７は、接続管理サーバ５０から、グラフィック処理の切替通知を受信する。
【００３２】
図３に示す例では、仮想基盤ホスト２０には、ハードウェア４０として、ＧＰＵ（ＧＰＵコアおよびＧＰＵ用メモリ）４１が搭載されている。仮想マシン２１１で要求される画像処理（グラフィック処理）を、ＧＰＵ４１が担うことによって、仮想マシン２１１における３Ｄ  ＣＡＤや３Ｄ  ＣＧ等のユーザアプリケーション２３が要求する高いグラフィック処理性能が実現される。このことは、仮想マシン２１１以外の仮想マシンについても同様である。
【００３３】
複数の仮想マシン２１１〜２１ｎへのＧＰＵのリソースは、例えば、ＧＰＵ用メモリを複数のメモリ領域に分割し各々のメモリ領域を各々の仮想マシン２１１〜２１ｎに１対１に対応付けるように固定的に割り当てられる。
【００３４】
例えば、ユーザが仮想マシン２１１のＯＳ２２にログインした後、ユーザアプリケーション２３が画面描画などのグラフィック処理を実行する場合には、仮想マシン２１１は、ハードウェア４０を制御するハイパーバイザ３０に対して、ＧＰＵ４１を仮想的に分割して自身に割り当てられた仮想ＧＰＵ４２１に対する処理要求を行う。
【００３５】
接続管理サーバ５０は、通信処理部５１、グラフィック性能データベース５２、グラフィック処理切替判定部５３、および接続セッション管理部５４を含む。
【００３６】
通信処理部５１は、仮想基盤ホスト２０およびクライアント１０１〜１０ｍとデータの送受信を行う。グラフィック性能データベース５２は、クライアント１０１〜１０ｍのグラフィック性能スコアと仮想マシン２１１〜２１ｎのグラフィック性能スコアとを記憶する。グラフィック処理切替判定部５３は、グラフィック処理を、クライアント１０１〜１０ｍで実行すべきか仮想マシン２１１〜２１ｎで実行すべきかを決定する。接続セッション管理部５４は、現在の仮想マシンの接続数を示す情報、どの仮想マシンが稼働しているのかを特定するための情報、および、クライアントに接続されている仮想マシンに関していずれの側でグラフィック処理が実行されているのかを示す情報を、記憶部に接続情報として保持する。
【００３７】
接続管理サーバ５０において、通信処理部５１（通信用インタフェースを除く。）、グラフィック処理切替判定部５３、および接続セッション管理部５４（記憶部を除く。）は、ＲＯＭ（Read Only Memory）等の記憶部に記憶されたプログラムやＲＡＭ等の記憶部にロードされたプログラムに従って処理を実行するＣＰＵ（Central Processing Unit ）で実現可能である。
【００３８】
次に、グラフィック性能スコアとグラフィック性能スコアとにもとづくリソースの割り当て方法を説明する。
【００３９】
例えば、クライアント１０１から仮想マシンに対する接続要求が行われる場合、クライアント１０１の通信処理部１７は、クライアント１０１の仕様を示す情報（スペック情報）として、ＣＰＵコア数、ＣＰＵクロック速度、メモリ速度、メモリ容量、ＨＤＤアクセス速度、ＧＰＵメモリ速度、ＧＰＵメモリ容量、ＧＰＵコア数、ＧＰＵクロック速度、ＯＳのバージョン等を収集し、それらの情報を接続管理サーバ５０に通知する。
【００４０】
接続管理サーバ５０において、通信処理部５１は、クライアント１０１からの接続要求とクライアント１０１のスペック情報を受信する。グラフィック処理切替判定部５３は、グラフィック性能データベース５２に予め保存されているリストから、同一または最も類似するスペックのクライアントグラフィック性能スコアを取得する。
【００４１】
グラフィック性能スコアは、予め、ベンチマークソフトウェアを使用してベンチマークテストを行うことによって得られる。グラフィック性能に関する最も一般的なベンチマークソフトウェアとして、国際的な非営利団体Standard Performance Evaluation Corporation （SPEC）が提供するSPECviewperfがある。Webで一般公開されている実行機器のスペックとSPECviewperfによるベンチマークテストの結果とがある場合には、それらをデータベースに取り込んでもよい。
【００４２】
クライアント１０１〜１０ｍのグラフィック性能とは別に、仮想マシン２１１〜２１ｎのグラフィック性能スコアも予め算定される。仮想マシン２１１〜２１ｎのグラフィック性能スコアは、例えば、クライアント１０１〜１０ｍのグラフィック性能を取得したときに用いられたベンチマークソフトウェアを仮想マシン２１１〜２１ｎで実行することによって算定される。ただし、各仮想マシン２１１〜２１ｎの各々は、全てのリソースを使用可能であるが、仮想基盤ホスト２０において複数の仮想マシンが稼働する場合には、ＧＰＵコア、およびやＧＰＵ／ＣＰＵ／メモリ／ＨＤＤ間の各通信バス等が共有される。よって、複数の仮想マシンが稼働するときには、グラフィック性能スコアは、単一の仮想マシンが稼働したときのグラフィック性能スコアよりも劣化する。
【００４３】
そして、同時に稼働する仮想マシンの数が増えるほど、グラフィック性能スコアは、単一の仮想マシンが稼働したときのグラフィック性能スコアよりもより劣化する。よって、ベンチマークテストを実行する際に、仮想マシンの同時稼働数を変更し、仮想マシンの同時稼働数に応じたグラフィック性能スコアが予め取得され、それぞれが、グラフィック性能データベース５２に格納される。
【００４４】
また、接続セッション管理部５４は、現在の仮想マシンの接続数（いずれかの仮想マシン２１１〜２１ｎを利用しているクライアントの数に相当）の情報を保持している。グラフィック処理切替判定部５３は、接続している各クライアント（いずれかの仮想マシン２１１〜２１ｎを利用しているクライアント）および新規に接続要求したクライアントのグラフィック性能スコアと、接続セッション管理部５４に保持されている現在の仮想マシンの接続数に応じた仮想マシンのグラフィック性能スコアとを比較する。
【００４５】
なお、仮想基盤ホスト２０において、各仮想マシン２１１〜２１ｎには固定的に均等にハードウェアリソースが割り振られているとする。従って、各々の仮想マシンの接続数について、各仮想マシン２１１〜２１ｎのグラフィック性能スコアは同じである。
【００４６】
ただし、各仮想マシン２１１〜２１ｎに不均等にハードウェアリソースが割り振られていたり、各仮想マシン２１１〜２１ｎに対して動的にハードウェアリソースが割り振られる場合には、仮想マシン２１１〜２１ｎごとに、グラフィック性能スコアが算出されるようにしてもよい。
【００４７】
現在の仮想マシンの接続数における仮想マシンのグラフィック性能スコアの方が大きい場合には、通信処理部５１は、仮想マシン側のリソースを使用してグラフィック処理を行うように、仮想マシンとその仮想マシンに接続されているクライアントに通知する。すなわち、通信処理部５１は、仮想マシン側でグラフィック処理を行う（クライアント側でグラフィック処理を行わない。）指示を含む切替通知を行う。クライアントのグラフィック性能スコアの方が大きい場合には、通信処理部５１は、クライアント側のリソースを使用してグラフィック処理を行うように、仮想マシンとその仮想マシンに接続されているクライアントに通知する。すなわち、通信処理部５１は、クライアント側でグラフィック処理を行う（仮想マシン側でグラフィック処理を行わない。）指示を含む切替通知を行う。なお、以前の比較結果と変わらない場合には、通信処理部５１は、通知を行わないようにしてもよい。その場合には、クライアントと仮想マシンとにおけるグラフィック処理の分担の状態は維持される。
【００４８】
なお、通信処理部５１の仮想マシンに対する切替通知は、具体的には、切替対象の仮想マシンを特定可能な情報を仮想基盤ホスト２０に送信することによって実現される。
【００４９】
一例として、クライアント１０１〜１０ｍのうちのクライアントＡ，Ｂ，Ｃが、仮想マシン２１１〜２１ｎのうちの仮想マシンＸ，Ｙ，Ｚに接続されている状態で、クライアントＤが新規に接続要求したクライアントとして、仮想マシンＷに接続される場合を想定する。そのような状況では、接続セッション管理部５４は、クライアントＡ，Ｂ，Ｃ，Ｄのそれぞれのグラフィック性能スコアと、接続数が「４」である場合の仮想マシンのグラフィック性能スコアとを、グラフィック性能データベース５２から入手する。
【００５０】
例えば、クライアントＡ，Ｃ，Ｄについては、仮想マシンのグラフィック性能スコアよりもグラフィック性能スコアが高い場合には、通信処理部５１は、クライアントＡ，Ｃ，Ｄと仮想マシンＸ，Ｚ，Ｗとに対して、クライアントＡ，Ｃ，Ｄ側のリソースを使用してグラフィック処理を行うように通知する。ただし、一例として、直近に通知がなされたときにクライアントＣのグラフィック性能スコアの方が仮想マシンのグラフィック性能スコアよりも既に高かった場合には、通信処理部５１は、通知を行わない。
【００５１】
仮想マシンのグラフィック性能スコアの方がクライアントＢのグラフィック性能スコアよりも高かった場合には、通信処理部５１は、クライアントＢと仮想マシンＹとに対して、仮想マシン側のリソースを使用してグラフィック処理を行うように通知する。この場合にも、直近に通知がなされたときに仮想マシンのグラフィック性能スコアの方がクライアントＢのグラフィック性能スコアよりも既に高かった場合には、通信処理部５１は、通知を行わない。
【００５２】
なお、仮想マシンのグラフィック性能スコアとクライアントのグラフィック性能スコアとが等しい場合には、例えば、クライアントと仮想マシンとにおけるグラフィック処理の分担の状態が維持されるように、通信処理部５１は、通知を行わない。
【００５３】
図２は、仮想マシンのグラフィック性能スコアとクライアントのグラフィック性能スコアとの一例を示す説明図である。図２に示す例では、接続数が「１」である（稼働数が「１」である）ときの仮想マシンのグラフィック性能スコアが１００で、接続数が「６」であるときのグラフィック性能スコアが８０、接続数が「８」であるときのグラフィック性能スコアが４０である。また、クライアントＡのグラフィック性能スコアは８０であり、クライアントＤのグラフィック性能スコアは４０である。
【００５４】
図２に示す例では、接続数が「６」を越えると、クライアントＡについては、クライアントＡ側でリソースを使用してグラフィック処理が行われる状態に切り替えられる。また、接続数が「８」を越えると、クライアントＤについては、クライアントＤ側でリソースを使用してグラフィック処理が行われる状態に切り替えられる。すなわち、グラフィック処理の実行環境の切り替えが行われる。
【００５５】
切替通知がクライアントでの実行を指示している場合、クライアントにおいて、通信処理部１７が切替通知を受信すると、グラフィック処理切替部１６は、自クライアントがグラフィック処理を実行する状態に設定する。そのような設定の下のクライアントでは、画面描画などのグラフィック処理が行われる場合に、ユーザアプリケーション１３は、グラフィックドライバ１４を介して、ＧＰＵなどのハードウェアに処理を要求する。また、仮想基盤ホスト２０において、通信処理部２７が切替通知を受信すると、グラフィック処理切替部２６は、そのクライアントに接続されてる仮想マシンがグラフィック処理を実行しない状態に設定する。
【００５６】
切替通知が仮想マシンでの実行を指示している場合、クライアントにおいて、通信処理部１７が切替通知を受信すると、グラフィック処理切替部１６は、自クライアントがグラフィック処理を実行しない状態に設定する。また、仮想基盤ホスト２０において、通信処理部２７が切替通知を受信すると、グラフィック処理切替部２６は、そのクライアントに接続されてる仮想マシンがグラフィック処理を実行する状態に設定する。そのような設定の下では、仮想マシンが仮想ＧＰＵを用いてグラフィック処理を実行する。
【００５７】
また、あるクライアントにおける動作が終了して接続数が減るときにも、接続セッション管理部５４は、上記のグラフィック処理の実行環境を切り替えるか否かの判定を行い、切り替えると決定したときには、通信処理部５１は、決定の対象の仮想マシンとその仮想マシンに接続されているクライアントとに対して、グラフィック処理の実行の切り替えに関する通知を行う。
【００５８】
次に、図１に示されたシステムの動作を説明する。図３は、あるクライアントが仮想マシンに対する接続要求を行ったときのシステムの動作を示すフローチャートである。クライアント１０１が接続要求を行ったとする。
【００５９】
接続管理サーバ５０において、通信処理部５１は、クライアント１０１から、クライアント１０１のスペック情報を受信する（ステップＳ１１）。通信処理部５１は、受信したスペック情報をグラフィック処理切替判定部５３に出力する。
【００６０】
なお、接続管理サーバ５００は、空いている仮想マシンから１つをクライアント１０１に接続される仮想マシンとして選択し、選択結果を接続セッション管理部５４および仮想基盤ホスト２０に通知する。
【００６１】
グラフィック処理切替判定部５３は、グラフィック性能データベース５２に予め保存されているリストから、同一または最も類似するスペックのクライアントグラフィック性能スコアを取得する（ステップＳ１２）。
【００６２】
グラフィック処理切替判定部５３は、接続セッション管理部５４から、現在の仮想マシン２１１〜２１ｎの接続数の情報を取得して、現在の仮想マシンの接続数を把握する。そして、グラフィック処理切替判定部５３は、接続している各クライアントおよび新規に接続要求したクライアント１０１のグラフィック性能スコアと、仮想マシンの接続数（クライアント１０１も含む。）に応じた仮想マシンのグラフィック性能スコアとを比較する（ステップＳ１３）。
【００６３】
接続している各クライアントおよび新規に接続要求したクライアント１０１のうちで、仮想マシンのグラフィック性能スコアよりも高いグラフィック性能スコアのクライアントが生じた場合には、グラフィック処理切替判定部５３は、そのクライアントについては、クライアント側のリソースを使用してグラフィック処理を行うことに決定する。通信処理部５１は、グラフィック処理切替判定部５３の決定に応じて、そのクライアントと、そのクライアントに接続されている仮想マシンに対して、グラフィック処理の切替通知を行う（ステップＳ１４）。
【００６４】
クライアントの通信処理部１７は、グラフィック処理の切替通知を受信すると、グラフィック処理切替部１６に対して切り替えの通知を行い、切替完了通知を接続管理サーバ５０に送信する。仮想基盤ホスト２０の通信処理部２７は、グラフィック処理の切替通知を受信すると、グラフィック処理切替部２６に対して切り替えの通知を行い、切替完了通知を接続管理サーバ５０に送信する。
【００６５】
接続管理サーバ５０の通信処理部５１が双方から切替完了通知を受信すると、接続セッション管理部５４は、接続数を更新するとともに、クライアントに接続されている仮想マシンに関していずれの側でグラフィック処理が実行されているのかを示す情報を更新する（ステップＳ１５）。
【００６６】
図４は、あるクライアントが仮想マシンに対する接続解除要求（接続終了）を行ったときのシステムの動作を示すフローチャートである。クライアント１０１が接続解除要求を行ったとする。
【００６７】
接続管理サーバ５０において、通信処理部５１が、クライアント１０１から、接続解除要求を受信すると、接続セッション管理部５４は、接続情報（現在の仮想マシンの接続数を示す情報、どの仮想マシンが稼働しているのかを特定するための情報、および、クライアントに接続されている仮想マシンに関していずれの側でグラフィック処理が実行されているのかを示す情報）を更新する（ステップＳ２１）。
【００６８】
グラフィック処理切替判定部５３は、接続セッション管理部５４から、更新後の仮想マシンの接続数の情報を取得する。そして、グラフィック処理切替判定部５３は、接続している各クライアント（クライアント１０１を除く。）のグラフィック性能スコアと、仮想マシンの接続数に応じた仮想マシンのグラフィック性能スコアとを比較する（ステップＳ２２）。
【００６９】
仮想マシンのグラフィック性能スコアが、接続しているいずれかのクライアントのグラフィック性能スコアよりも高くなっている場合には、グラフィック処理切替判定部５３は、そのクライアントについては、仮想マシン側のリソースを使用してグラフィック処理を行うことに決定する。通信処理部５１は、グラフィック処理切替判定部５３の決定に応じて、そのクライアントと、そのクライアントに接続されている仮想マシンに対して、グラフィック処理の切替通知を行う（ステップＳ２３）。
【００７０】
クライアントの通信処理部１７は、グラフィック処理の切替通知を受信すると、グラフィック処理切替部１６に対して切り替えの通知を行い、切替完了通知を接続管理サーバ５０に送信する。仮想基盤ホスト２０の通信処理部２７は、グラフィック処理の切替通知を受信すると、グラフィック処理切替部２６に対して切り替えの通知を行い、切替完了通知を接続管理サーバ５０に送信する。
【００７１】
接続管理サーバ５０の通信処理部５１が双方から切替完了通知を受信すると、接続セッション管理部５４は、クライアントに接続されている仮想マシンに関していずれの側でグラフィック処理が実行されているのかを示す情報を更新する（ステップＳ２４）。
【００７２】
以上に説明したように、本実施形態では、仮想基盤ホストのリソース使用状況に応じて、仮想基盤ホスト側（仮想マシン側）のリソースとクライアント側のリソースとの使用効率を自動的かつ自律的に最適化でき、クライアント全体のアプリケーションの実行速度が向上する。
【００７３】
なお、本実施形態では、ユーザアプリケーション１３，２３として、グラフィック処理を実行するアプリケーションプログラムが使用され、グラフィック処理の性能にもとづいてリソースを割り当てる場合を例にしたが、本発明の適用範囲は、そのようなアプリケーションプログラムに限られない。他のアプリケーションが対象とされる場合には、仮想基盤ホスト２０およびクライアント１０１〜１０ｍにおいて、ハードウェア１５，４０として、当該アプリケーションに対応する物理リソース（ハードウェア）およびドライバが用いられる。また、接続管理サーバ５０において、当該アプリケーションに対応する処理スコアが保持される。
【００７４】
また、仮想基盤ホスト２０として、サーバの他に、ワークステーションを使用することもできる。さらに、クライアント１０１〜１０ｍは仮想基盤ホスト２０をリモートアクセスするが、仮想基盤ホスト２０は、組織内運用下にあってもよいし、クラウド環境下にあってもよい。
【００７５】
図５は、接続管理サーバの主要部を示すブロック図である。図５に示す接続管理サーバ１Ａは、複数の仮想マシンが構築された仮想基盤ホスト６（実施形態では、仮想基盤ホスト２０）と、仮想基盤ホストにおける仮想マシンを利用する複数の端末７，８（２つに限定されない：図１に示されたクライアント１０１〜１０ｍに相当）とに通信可能に接続され、端末７，８による仮想マシンの利用要求または利用終了が生じたときに、仮想マシンの稼働マシン数に応じた性能スコアである第１の性能スコアと端末の性能スコアである第２の性能スコアとを比較する性能比較手段２（例えば、グラフィック処理切替判定部５３で実現される。）と、性能比較手段２が第１の性能スコアよりも第２の性能スコアの方が高いと判定した場合には端末７，８のリソースを使用することに決定し、性能比較手段２が第２の性能スコアよりも第１の性能スコアの方が高いと判定した場合には仮想マシンのリソースを使用することに決定する切替決定手段３（例えば、グラフィック処理切替判定部５３で実現される。）とを備えている。
【００７６】
図６は、他の態様の接続管理サーバの主要部を示すブロック図である。図６に示す接続管理サーバ１Ｂは、第１の性能スコアと複数の端末のそれぞれの第２の性能スコアとが格納された性能データベース４（例えば、グラフィック性能データベース５２で実現される。）を備えている。
【００７７】
図７は、さらに他の態様の接続管理サーバの主要部を示すブロック図である。図７に示す接続管理サーバ１Ｃは、稼働している仮想マシンの数を特定可能なデータを記憶し、仮想マシンの利用要求または利用終了が生じたときにデータを更新する接続セッション管理手段５（例えば、接続セッション管理部５４で実現される。）を備えている。
【符号の説明】
【００７８】
１Ａ，１Ｂ，１Ｃ  接続管理サーバ
２      性能比較手段
３      切替決定手段
４      性能データベース
５      接続セッション管理手段
６      仮想基盤ホスト
７，８  端末
１０１〜１０ｍ  クライアント
１２    ＯＳ
１３    ユーザアプリケーション
１４    グラフィックドライバ
１５    ハードウェア
１７    通信処理部
１６    グラフィック処理切替部
２０    仮想基盤ホスト
２１１〜２１ｎ  仮想マシン
２２    ＯＳ
２３    ユーザアプリケーション
２４    グラフィックドライバ
２６    グラフィック処理切替部
２７    通信処理部
３０    ハイパーバイザ
４０    ハードウェア
４１    ＧＰＵ
４２１〜４２ｎ  仮想ＧＰＵ
５０    接続管理サーバ
５１    通信処理部
５２    グラフィック性能データベース
５３    グラフィック処理切替判定部
５４    接続セッション管理部
【図１】
2018147257.tif 000003
【図２】
2018147257.tif 000004
【図３】
2018147257.tif 000005
【図４】
2018147257.tif 000006
【図５】
2018147257.tif 000007
【図６】
2018147257.tif 000008
【図７】
2018147257.tif 000009
【図８】
2018147257.tif 000010
【図９】
2018147257.tif 000011