JP6349786B2 - 仮想計算機管理装置、仮想計算機管理方法、及び仮想計算機管理プログラム - Google Patents

仮想計算機管理装置、仮想計算機管理方法、及び仮想計算機管理プログラム Download PDF

Info

Publication number
JP6349786B2
JP6349786B2 JP2014040257A JP2014040257A JP6349786B2 JP 6349786 B2 JP6349786 B2 JP 6349786B2 JP 2014040257 A JP2014040257 A JP 2014040257A JP 2014040257 A JP2014040257 A JP 2014040257A JP 6349786 B2 JP6349786 B2 JP 6349786B2
Authority
JP
Japan
Prior art keywords
virtual machine
virtual
unit
state
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014040257A
Other languages
English (en)
Other versions
JP2015165361A (ja
Inventor
朋之 南
朋之 南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2014040257A priority Critical patent/JP6349786B2/ja
Publication of JP2015165361A publication Critical patent/JP2015165361A/ja
Application granted granted Critical
Publication of JP6349786B2 publication Critical patent/JP6349786B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、仮想計算機を管理する技術に関する。
サーバにおいて動作する仮想計算機に、シンクライアント端末が接続する際必ずログオンが行われる場合、サーバは、接続の度にログオンに伴う処理を行う必要がある。ログオンに伴う処理として、例えば、ユーザの認証、ユーザプロファイルの読み込み、ログオン時に起動されるアプリケーションの起動等がある。ログオンに伴う処理を削減する方法として、例えば、ユーザが仮想計算機の使用を終了する際、ログオフを行う代わりに、シンクライアント端末と仮想計算機との間の接続のみを切断する方法がある。この方法では、シンクライアント端末との接続が切断された仮想計算機は、ユーザがログオンした状態で動作し続ける。そして、シンクライアント端末が、一度ログオンした仮想計算機に再び接続する場合、シンクライアント端末は動作中の仮想計算機に再接続される。その際、ログオンは行われない。しかし、全ての仮想計算機を動作させ続けると、例えば、サーバが仮想計算機を動作させるのに必要なメモリが不足する。そのようなサーバのメモリ不足を緩和する方法の例が、例えば特許文献1に記載されている。
特許文献1に記載されているユーザ環境退避制御システムは、仮想PC(Personal Computer)にユーザ毎の環境を実現するためのユーザ環境情報を、記憶装置に退避させる。そのユーザ環境退避制御システムは、各ユーザに優先度を割り当てる。そして、ユーザ環境情報が退避させられているユーザが仮想PCにアクセスした際、空き仮想PCが無ければ、そのユーザ環境退避制御システムは、ユーザ環境情報が退避させられていないユーザから、割り当てられている優先度が最も低いユーザを選択する。そして、そのユーザ環境退避制御システムは、選択したユーザのユーザ環境情報を退避させることにより、空き仮想PCを準備する。そして、そのユーザ環境退避制御システムは、準備した空き仮想PCに、アクセスしたユーザのユーザ環境情報をロードする。
特開2011−134219号公報
仮想PCが使用するサーバのリソースの量が、例えばユーザ毎に異なるように設定されている場合、仮想PCを使用するユーザが変わることにより、その仮想PCが必要とするリソースの量が増加する可能性がある。その場合、仮想PCを使用するユーザが変わる前に、新たに仮想PCに割り当てることができる未使用リソースがサーバに無ければ、ユーザを変更することによってリソースが不足することが考えられる。
特許文献1の技術では、仮想PCが必要とする、サーバのリソースの量が、例えばユーザ毎に異なる場合、サーバのリソース不足を防ぐことはできない。
本発明の主な目的は、使用するリソースが必ずしも同一でない仮想計算機を実行するサーバがリソース不足になることなく、仮想計算機へのログオン時における処理による負荷を削減することができる仮想計算機管理装置を提供することにある。
本発明の仮想計算機管理装置は、仮想計算機記憶手段に仮想計算機を退避させることができる実行装置が実行する仮想計算機に関して、当該仮想計算機が使用するリソース量と、前記仮想計算機の優先順位とを記憶する状態記憶手段と、前記仮想計算機のうち接続先仮想計算機への接続要求を受信する要求受信手段と、前記実行装置において検出された未使用リソース量と、前記仮想計算機記憶手段に退避させられている前記接続先仮想計算機が使用するリソース量とに基づき、前記接続先仮想計算機を復帰させた場合の不足リソース量を特定する不足特定手段と、前記優先順位に基づき、退避させられていない前記仮想計算機から選択仮想計算機を、前記選択仮想計算機が使用する前記リソース量の合計が前記不足リソースより大きくなるように選択する選択手段と、を備える。
本発明の仮想計算機管理方法は、仮想計算機記憶手段に仮想計算機を退避させることができる実行装置が実行する仮想計算機に関して、当該仮想計算機が使用するリソース量と、前記仮想計算機の優先順位とを状態記憶手段に記憶し、前記仮想計算機のうち接続先仮想計算機への接続要求を受信する要求受信手段と、前記実行装置において検出された未使用リソース量と、前記仮想計算機記憶手段に退避させられている前記接続先仮想計算機が使用するリソース量とに基づき、前記接続先仮想計算機を復帰させた場合の不足リソース量を特定し、前記優先順位に基づき、退避させられていない前記仮想計算機から選択仮想計算機を、前記選択仮想計算機が使用する前記リソース量の合計が前記不足リソースより大きくなるように選択する。
本発明の仮想計算機管理プログラムは、コンピュータを、仮想計算機記憶手段に仮想計算機を退避させることができる実行装置が実行する仮想計算機に関して、当該仮想計算機が使用するリソース量と、前記仮想計算機の優先順位とを記憶する状態記憶手段と、前記仮想計算機のうち接続先仮想計算機への接続要求を受信する要求受信手段と、前記実行装置において検出された未使用リソース量と、前記仮想計算機記憶手段に退避させられている前記接続先仮想計算機が使用するリソース量とに基づき、前記接続先仮想計算機を復帰させた場合の不足リソース量を特定する不足特定手段と、前記優先順位に基づき、退避させられていない前記仮想計算機から選択仮想計算機を、前記選択仮想計算機が使用する前記リソース量の合計が前記不足リソースより大きくなるように選択する選択手段と、して動作させる。
本発明には、必要とするリソースが必ずしも同一でない仮想計算機を実行するサーバがリソース不足になることなく、仮想計算機へのログオン時における処理による負荷を削減することができるという効果がある。
図1は、第1の実施形態の情報処理システム100の構成の例を表すブロック図である。 図2は、第1の実施形態の情報処理システム100Aの構成の例を表すブロック図である。 図3は、状態記憶部10が記憶する状態テーブルの例を表す図である。 図4は、状態記憶部10が記憶する状態テーブルにおける使用リソース量の部分の例を表す図である。 図5は、状態記憶部10に格納されるユーザ優先順位の例を表す図である。 図6は、状態記憶部10に格納される、ユーザの接続に関するデータ値の例を表す図である。 図7は、第1の実施形態の仮想計算機管理装置1の動作の例を表すフローチャートである。 図8は、第1の実施形態の仮想計算機実行装置2の動作の例を表すフローチャートである。 図9は、第1の実施形態の仮想計算機20の構成の例を表すブロック図である。 図10は、第1の実施形態の仮想計算機20の機能構成の例を表すブロック図である。 図11は、第1の実施形態の仮想計算機20の機能構成の例を表すブロック図である。 図12は、ログオフ要求受信時における仮想計算機20の動作の例を表すフローチャートである。 図13は、第2の実施形態の仮想計算機管理装置1Aの構成を表す図である。 図14は、仮想計算機管理装置1、仮想計算機管理装置1A、仮想計算機実行装置2、仮想計算機実行装置2Aを実現することができる、コンピュータ1000の構成の一例を表す図である。
次に、本発明の実施の形態について説明する。
<第1の実施形態>
まず、本発明の第1の実施形態について、図面を参照して詳細に説明する。
図1は、本実施形態の情報処理システム100の構成の例を表すブロック図である。
図1を参照すると、情報処理システム100は、仮想計算機管理装置1と、仮想計算機実行装置2と、端末装置3と、ユーザ管理装置4とを含む。情報処理装置100は、複数の端末装置3を含んでいてもよい。仮想計算機管理装置1と、仮想計算機実行装置2と、ユーザ管理装置4とは、互いに接続されている。端末装置3は、仮想計算機管理装置1及び仮想計算機実行装置2に接続されている。なお、仮想計算機管理装置1、仮想計算機実行装置2、及びユーザ管理装置4のいずれか2台以上が、同一の装置であってもよい。例えば、仮想計算機実行装置2が、仮想計算機管理装置1を含むことによって、仮想計算機管理装置1として動作してもよい。本発明の各実施形態の説明における、仮想計算機実行装置2及び仮想計算機実行装置2Aは、単に、実行装置とも表記される。
図2は、本実施形態の情報処理システム100Aの構成の例を表すブロック図である。情報処理システム100Aでは、仮想計算機実行装置2が、仮想計算機管理装置1及びユーザ管理装置4を含む。他の点では、情報処理システム100Aは、情報処理システム100と同じである。
仮想計算機管理装置1は、状態記憶部10と、要求受信部11と、不足特定部12と、選択部13と、優先順位決定部14と、出力部15とを含む。
仮想計算機実行装置2は、仮想計算機20を実行する仮想計算機実行部21と、退避部22と、仮想計算機記憶部23と、状態取得部24と、要求実行部25と、状態送信部26とを含む。
ユーザ管理装置4は、ログ記憶部40と、認証部41とを含む。
仮想計算機20は、仮想計算機実行装置2においてエミュレートされる仮想的なコンピュータである。仮想計算機20は、一般に、仮想機械あるいはバーチャルマシンとも呼ばれる。仮想計算機20がエミュレートされたPCである場合、仮想計算機20は、仮想PCとも呼ばれる。
仮想計算機実行部21は、仮想計算機20を実行する。すなわち、仮想計算機実行部21は、仮想計算機20をエミュレートする。仮想計算機実行部21は、例えば、仮想計算機実行装置21のプロセッサと、そのプロセッサが実行する、仮想計算機20を実現するための制御プログラムによって実現される。そのような仮想計算機実行部21は、一般に、ハイパーバイザと呼ばれる。
仮想計算機実行装置2において仮想計算機20が動作している場合、その仮想計算機20に対して、その仮想計算機20がコンピュータとして動作するために使用するメモリが、仮想計算機実行装置2のメモリから割り当てられる。
退避部22は、退避指示と、退避の対象である仮想計算機20の識別子とを受信すると、その仮想計算機20に対して、退避処理を行う。すなわち、退避部22は、その仮想計算機20に割り当てられているメモリにロードされているデータを、その仮想計算機20に関連付けて仮想計算機記憶部23に格納する。さらに、退避部22は、退避が行われた仮想計算機20に割り当てられていたメモリを解放する。退避処理は、例えば、以上の、仮想計算機実行装置2のメモリにロードされていた仮想計算機20のデータを仮想計算機記憶部23に格納し、その仮想計算機20に割り当てられていたメモリを解放する処理である。以下の説明において、仮想計算機20に対して退避処理を行うことを、「仮想計算機20を退避させる」とも表記することにする。
退避部22は、さらに、復帰指示と、復帰の対象である仮想計算機20の識別子とを受信すると、その仮想計算機20に対して復帰処理を行う。すなわち、退避部22は、まず、復帰の対象である仮想計算機20がコンピュータとして動作するために使用するメモリを、仮想計算機実行装置2のメモリにおいて確保する。そして、退避部22は、仮想計算機記憶部23に格納されている、復帰の対象である仮想計算機20のデータを、確保したメモリに再びロードする。復帰処理は、例えば、以上の、復帰の対象である仮想計算機20が使用するメモリを確保する処理と、その仮想計算機20のデータを確保したメモリにロードする処理である。以下の説明では、仮想計算機20に対して復帰処理を行うことを、「仮想計算機20を復帰させる」とも表記することにする。
仮想計算機記憶部23は、仮想計算機実行装置2のメモリにロードされていた仮想計算機20のデータを記憶する。以下の説明において、仮想計算機実行装置2のメモリにロードされていた仮想計算機20のデータを記憶することを、「仮想計算機20を記憶する」とも表記することにする。
状態取得部24は、さらに、仮想計算機実行装置2の未使用リソースの量を特定する。未使用リソースは、どの仮想計算機20にも割り当てられていない、いずれかの仮想計算機20に割り当てることができる仮想計算機実行装置2のリソースである。リソースは、例えば、メモリ、プロセッサ、ネットワーク帯域、ストレージなどである。状態取得部24は、未使用リソースの量を、例えば、仮想計算機実行部21から受信してもよい。そして、状態取得部24は、特定した未使用リソースの量を、状態送信部26に送信する。
要求実行部25は、退避させる仮想計算機20として選択部13が選択した仮想計算機20である選択仮想計算機の、識別子を受信する。要求実行部25は、退避指示と、受信した選択仮想計算機の識別子とを、退避部22に送信する。退避指示と、受信した選択仮想計算機の識別子と受信した退避部22は、選択仮想計算機を退避させる。選択仮想計算機がいずれかの端末装置3と接続されている場合、要求実行部25は、選択仮想計算機に、退避準備指示を送信してもよい。各仮想計算機20は、退避準備指示を受信した場合、端末装置3との接続を切断するよう設計されていればよい。
要求実行部25は、さらに、端末装置3の識別子と、端末装置3が送信した接続要求における接続先の仮想計算機20である接続先仮想計算機の識別子とを受信する。接続先仮想計算機が退避させられている場合、要求実行部25は、復帰指示と、接続先仮想計算機の識別子とを、退避部22に送信する。復帰指示と、接続先仮想計算機の識別子とを受信した退避部22は、接続先仮想計算機を復帰させる。
要求実行部25は、さらに、端末装置3と接続先仮想計算機とを接続する。要求実行部25は、例えば、接続要求を送信した端末装置3に、接続先仮想計算機の識別子を送信することによって、端末装置3と接続先仮想計算機とを接続すればよい。接続先仮想計算機の識別子を受信した端末装置3は、接続先仮想計算機に接続する。
状態送信部26は、状態取得部24が特定した、仮想計算機実行装置2の未使用リソースの量を、仮想計算機管理装置1の状態受信部16に送信する。
状態送信部26は、さらに、各仮想計算機20の状態を、仮想計算機管理装置1の状態受信部16に送信する。仮想計算機20の状態は、例えば、仮想計算機20の「接続状態」と、仮想計算機20の「場所」を含む。仮想計算機20の状態は、仮想計算機20の使用リソース量を含んでいてもよい。仮想計算機20の状態は、仮想計算機20の動作状態を含んでいてもよい。仮想計算機20の状態は、さらに、その仮想計算機20に関連付けられている「ユーザID(Identifier)」を含む。ただし、状態送信部26は、「ユーザID」を送信しなくてよい。「ユーザID」は、ユーザの識別子である。仮想計算機20にユーザIDが関連付けられているユーザは、例えば、その仮想計算機20が割り当てられているユーザである。以下の説明において、仮想計算機20にユーザのユーザIDが関連付けられていることを、「仮想計算機20にユーザが関連付けられている」とも表記することにする。なお、本実施形態では、一つの仮想計算機20とユーザは一対一で関連付けられている。しかし、一つの仮想計算機20に複数のユーザが関連付けられていてもよい。また、一人のユーザが複数の仮想計算機20に関連付けられていてもよい。
仮想計算機20の「接続状態」は、例えば、仮想計算機20とその仮想計算機20に関連付けられているユーザが使用する端末装置3との間の接続の状態を表す。仮想計算機20の接続状態は、例えば、「切断」、「接続」、あるいは「未使用」である。「切断」、「接続」、及び「未使用」は、あらかじめ定められた異なる値であればよい。「切断」は、仮想計算機20とその仮想計算機20に関連付けられているユーザが使用する端末装置3との間の接続が、切断されていることを表す。「接続」は、仮想計算機20とその仮想計算機20に関連付けられているユーザが使用する端末装置3との間が、接続されていることを表す。「未使用」は、仮想計算機20に関連付けられているユーザがいないことを表す。
例えば、端末装置3が仮想計算機20に接続した場合に、その仮想計算機20の接続状態は変化する。例えば、端末装置3が仮想計算機20に対する接続を切断した場合、その仮想計算機20の接続状態は変化する。また、例えば、要求実行部25が、端末装置3に接続されている仮想計算機20に、退避準備指示を送信した場合にも、その仮想計算機20の接続状態は変化する。
仮想計算機20の接続状態が変化した場合、例えば、接続状態が変化した仮想計算機20が、接続状態を、例えば状態取得部24に送信すればよい。状態取得部24は、いずれかの仮想計算機20から接続状態を受信した場合、その接続状態を送信した仮想計算機20に関連付けて、受信した接続状態を状態送信部26に送信すればよい。後述されるように、状態送信部26は、受信した、仮想計算機20に関連付けられた接続状態を、状態受信部16に送信する。仮想計算機20に関連付けられた接続状態を受信した状態受信部16は、状態記憶部10に格納されている、その仮想計算機20の接続状態を更新する。すなわち、仮想計算機20から接続状態を受信した状態取得部24は、状態送信部26及び状態受信部16を介して、状態記憶部10に格納されている、その仮想計算機20の接続状態を更新する。
仮想計算機20の「場所」は、仮想計算機20がコンピュータとして動作するために使用するメモリにロードされるデータが存在する場所を表す。仮想計算機20が退避させられていない場合、仮想計算機20がコンピュータとして動作するために使用するメモリにロードされるデータは、仮想計算機実行装置2のメモリに存在する。その場合、仮想計算機20の「場所」の値は、例えば「メモリ」である。仮想計算機20が退避させられている場合、仮想計算機20がコンピュータとして動作するために使用するメモリにロードされるデータは、仮想計算機記憶部23に格納されている。その場合、仮想計算機20の「場所」の値は、例えば「ディスク」である。このように、仮想計算機20の「場所」は、例えば、「メモリ」又は「ディスク」である。「メモリ」及び「ディスク」は、あらかじめ定められた互いに異なる値であればよい。
例えば退避部22が、仮想計算機20を退避させた場合及び仮想計算機20を復帰させた場合に、退避又は復帰が行われた仮想計算機20の「場所」を状態送信部26に送信すればよい。仮想計算機20の「場所」を受信した状態送信部26は、受信した、仮想計算機20の「場所」を、状態受信部16に送信する。後述されるように、仮想計算機20の「場所」を状態受信部16は、状態記憶部10に格納されている、その仮想計算機20の「場所」を更新する。
使用リソース量は、仮想計算機実行装置2のリソースのうち、その仮想計算機20が使用しているリソースの量である。仮想計算機実行装置2は、仮想計算機20が使用するリソースの量は、あらかじめ定められた複数の量のいずれかから選択するよう設定されていてもよい。その場合、あらかじめ定められた量を表す値のいずれかであればよい。
例えば、仮想計算機実行部21が、各仮想計算機20のリソース量を特定すればよい。仮想計算機実行部21は、特定した各仮想計算機20のリソース量を、状態取得部24に送信すればよい。そして、状態取得部24は、特定した各仮想計算機20のリソース量を、状態送信部26に送信すればよい。仮想計算機20のリソース量を受信した状態送信部26は、受信したリソース量を、そのリソース量のリソースを使用する仮想計算機20に関連付けて状態受信部16に送信すればよい。状態受信部16は、状態記憶部10に格納されている使用リソース量を更新すればよい。各仮想計算機20の使用リソース量は、あらかじめ定められていてもよい。その場合、例えば仮想計算機実行装置2の管理者が、各仮想計算機20の使用リソース量を、あらかじめ状態記憶部10に格納しておけばよい。
動作状態は、例えば、「アイドル状態」及び「処理中」である。動作状態は、例えば、仮想計算機20に接続されている端末装置3のユーザによる、その仮想計算機20に対する操作が、継続しているか否かを表す。「アイドル状態」は、例えば、所定時間以上仮想計算機20に対するユーザの操作が無いことを表す。「処理中」は、例えば、過去所定時間以内に仮想計算機20に対するユーザの操作があったことを表す。動作状態は、他の定義によって定められていてもよい。
例えば、仮想計算機実行部21が、各仮想計算機20の動作状態を特定すればよい。仮想計算機実行部21は、特定した各仮想計算機20の動作状態を、状態送信部26に送信すればよい。あるいは、状態取得部24が、各仮想計算機20から動作状態を取得してもよい。その場合、例えば各仮想計算機20が、状態取得部24に動作状態を送信すればよい。そして、状態取得部24が、各仮想計算機20の動作状態を、状態送信部26に送信すればよい。
次に、ユーザ管理装置4について説明する。
認証部41は、端末装置3が仮想計算機20に接続する場合に、例えば仮想計算機20からの要求に基づき、端末装置3を使用するユーザの認証を行う。認証部41は、ユーザが未使用であった仮想計算機20を使用し始める場合だけでなく、端末装置3が、接続が切断されている仮想計算機20に再接続する場合にも、ユーザの認証を行う。
そして、認証部41は、行った認証に関する記録、すなわち認証記録をログ記憶部40に格納する。認証記録は、例えば、認証が行われたユーザのユーザIDと認証が行われた時間情報を含む。時間情報は、例えば、日付、時間、曜日などを含んでいればよい。認証記録は、認証が行われた仮想計算機20の仮想計算機IDを含んでいてもよい。
認証の結果が成功であった場合、ユーザが使用する端末装置3は、仮想計算機20に接続する。従って、結果が成功であった認証に関する記録は、仮想計算機20に対する接続の記録である。認証部41は、認証の結果が成功であった場合にのみ、上述の認証記録を、ログ記憶部40に格納してもよい。あるいは、認証部41は、認証の結果をさらに含む、上述の認証記録を、ログ記憶部40に格納してもよい。
認証部41は、さらに、ユーザの認証が行われた後、そのユーザが使用する端末装置3と仮想計算機20との間の接続が切断された時刻を、ログ記憶部40に格納してもよい。その場合、端末装置3によって接続が切断された仮想計算機20は、例えば、接続を切断した端末装置3のユーザのユーザIDと切断が行われた時刻とを認証部41に送信すればよい。そして、認証部41は、例えば、受信したユーザID及び時刻と、そのユーザID及び時刻を送信した仮想計算機20の仮想計算機IDとに基づき、どの認証の結果に基づき行われた接続が切断されたか特定すればよい。認証部41は、特定した認証の認証記録として、接続が切断された時刻をログ記憶部40に格納すればよい。
ログ記憶部40は、上述の認証記録を記憶する。上述のように、結果が成功であった認証に関する記録は、仮想計算機20に対する接続の記録である。また、端末装置3が仮想計算機20に接続された場合、端末装置3のユーザは、仮想計算機20を利用する。従って、上述の認証記録は、ユーザによる仮想計算機20の利用記録でもある。認証記録が、認証が行われた時刻と、接続が切断された時刻とを含む場合、それらの時刻に基づきユーザが仮想計算機20を利用していた時間帯を特定することができる。
次に、仮想計算機管理装置1について説明する。
状態記憶部10は、各仮想計算機20の状態を、仮想計算機20の識別子である仮想計算機IDに関連付けて記憶する。状態記憶部10は、各仮想計算機20の状態を、各仮想計算機20の状態を含むテーブルである状態テーブルの形で記憶していてもよい。
前述のように、仮想計算機20の状態は、例えば、その仮想計算機20に関連付けられているユーザの識別子である「ユーザID」と、仮想計算機20の「接続状態」と、仮想計算機20の「場所」を含む。仮想計算機20の状態は、仮想計算機20の「使用リソース量」を含んでいてもよい。仮想計算機20の状態は、仮想計算機20の「動作状態」を含んでいてもよい。仮想計算機20の状態は、さらに、仮想計算機20の優先順位を含む。仮想計算機20の優先順位は、後述されるように、優先順位決定部14によって決定される。
図3は、状態記憶部10が記憶する状態テーブルの例を表す図である。図3に示す例では、状態テーブルは、仮想計算機IDと、ユーザIDと、接続状態と、使用リソース量と、動作状態と、場所と、優先順位とを含む。図3に示す例では、使用リソース量は、「高」と「低」の2つの状態値によって表される。その場合、それぞれの状態値は、リソースの種類及びリソースの量を表す数値の組み合わせ一つ以上に、関連付けられていればよい。
図4は、状態記憶部10が記憶する状態テーブルにおける使用リソース量の部分の例を表す図である。図4に示す例では、使用リソース量は、メモリの容量及びプロセッサの数によって表されている。使用リソース量は、例えば、メモリの容量だけによって表されていてもよい。
状態受信部16は、状態送信部26が送信する上述の各仮想計算機20の状態を受信する。状態受信部16は、受信した各仮想計算機20の状態を、状態記憶部10に格納する。状態受信部16は、前述の状態テーブルを更新すればよい。
状態受信部16は、さらに、状態送信部26から、仮想計算機実行装置2の状態を受信する。状態受信部16が受信する仮想計算機実行装置2の状態は、上述の、未使用リソースの量である。状態受信部16は未使用リソースの量を不足特定部12に送信する。
優先順位決定部14は、ログ記憶部40に格納されている、仮想計算機20に対して行われた接続の記録に基づき、各仮想計算機20の優先順位を決定する。優先順位決定部14は、仮想計算機20に対して決定した優先順位を、その仮想計算機20に関連付けて状態記憶部10に格納する。
前述のように、本実施形態では、仮想計算機20とユーザは、一対一に対応付けられている。そのため、優先順位決定部14は、ユーザに対して決定された優先順位を、そのユーザに関連付けられている仮想計算機20の優先順位にしてもよい。
その場合、優先順位決定部14は、まず、例えば仮想計算機20に対する接続の頻度に応じて、各ユーザの優先順位を決定すればよい。優先順位決定部14は、例えば、接続の頻度が多いユーザほど優先順位が高くなるように、各ユーザの優先順位を決定する。接続の頻度は、例えば、過去の一定期間において集計された、ユーザ毎の接続の回数である。接続の頻度は、例えば、過去の一定期間において曜日別に集計された、ユーザ毎の接続の回数であってもよい。接続の頻度は、例えば、過去の一定期間において時間帯別に集計された、ユーザ毎の接続の回数であってもよい。接続の頻度は、例えば、過去の一定期間において時間帯別に集計された、ユーザ毎の、ユーザが仮想計算機20を利用していた回数であってもよい。
そして、優先順位決定部14は、仮想計算機20の優先順位がその仮想計算機20に関連付けられているユーザの優先順位に等しくなるように、各仮想計算機20の優先順位を決定すればよい。
一方、情報処理システム100が、仮想計算機20とユーザが必ずしも一対一で関連付けられないよう設計されている場合もある。
そのような場合、優先順位決定部14は、例えば、過去の一定期間において仮想計算機20毎に集計された、仮想計算機20に対する接続の頻度に基づき、仮想計算機20の優先順位を決定すればよい。優先順位決定部14は、例えば、接続の頻度が多い仮想計算機20ほど優先順位が高くなるよう、各仮想計算機20の優先順位を決定すればよい。接続の頻度は、例えば、過去の一定期間において曜日別に集計された、仮想計算機20毎の接続の回数であってもよい。接続の頻度は、例えば、過去の一定期間において時間帯別に集計された、仮想計算機20毎の接続の回数であってもよい。接続の頻度は、例えば、過去の一定期間において時間帯別に集計された、仮想計算機20毎の、仮想計算機20を利用していたユーザの人数であってもよい。
優先順位が曜日によって異なる場合、優先順位決定部14は、曜日が変わるのに応じて優先順位を決定し、決定した優先順位を状態記憶部10に格納すればよい。優先順位が時間帯によって異なる場合、優先順位決定部14は、時間帯が変わるのに応じて優先順位を決定し、決定した優先順位を状態記憶部10に格納すればよい。
優先順位決定部14は、ユーザに対して決定された優先順位であるユーザ優先順位を、状態記憶部10に格納してもよい。
図5は、状態記憶部10に格納されるユーザ優先順位の例を表す図である。
優先順位決定部14は、さらに、ユーザ優先順位を決定する過程において集計した集計値などのユーザの接続に関するデータ値を、ユーザ優先順位を決定するために使用したデータ値を、状態記憶部10に格納してもよい。
図6は、状態記憶部10に格納される、ユーザの接続に関するデータ値の例を表す図である。図6に示す例では、状態記憶部10に格納されるデータ値は、ユーザ優先順位を決定する日の前の週における、各ユーザのログオンの有無と、各日のログオン回数とを含む。
要求受信部11は、端末装置3から、仮想計算機20に対する接続要求を受信する。要求受信部11は、受信した接続要求によって接続を要求された仮想計算機20である、接続先仮想計算機を特定する。接続情報は、接続先仮想計算機を特定できるデータ値を含んでいればよい。
接続先仮想計算機を特定できるデータ値は、例えば、ユーザIDであってもよい。その場合、要求受信部11は、例えば、接続要求に含まれるユーザIDに関連付けられている仮想計算機20を、接続先仮想計算機として特定する。この場合、接続要求に含まれるユーザIDに関連付けられている仮想計算機20が存在しなければ、要求受信部11は、例えば、未使用である仮想計算機20のいずれかを、接続先仮想計算機として選択する。その際、要求受信部11は、「場所」が「メモリ」である仮想計算機20から接続先仮想計算機を選択すればよい。「場所」が「メモリ」である仮想計算機20が存在しなければ、要求受信部11は、「場所」が「ディスク」である仮想計算機20から接続先仮想計算機を選択すればよい。
接続要求は、ユーザIDと仮想計算機IDの双方を含んでいてもよい。その場合、要求受信部11は、接続要求に含まれる仮想計算機IDによって特定される仮想計算機20を接続先仮想計算機として選択すればよい。接続要求に含まれる仮想計算機IDによって特定される仮想計算機20が存在しない場合、要求受信部11は、未使用である仮想計算機20のいずれかを、接続先仮想計算機として前述のように選択すればよい。
要求受信部11は、未使用である仮想計算機20のいずれかを接続先仮想計算機として選択した場合、ユーザIDを、選択した接続先仮想計算機に関連付けて、状態記憶部10に格納する。要求受信部11は、例えば、状態記憶部10に格納されている状態テーブルにおいて、選択した接続先仮想計算機に関連付けられているユーザIDを更新すればよい。
不足特定部12は、受信した未使用リソースの量と、状態記憶部10に格納されている、接続先仮想計算機の使用リソース量とに基づき、不足リソース量を特定する。不足リソース量は、接続先仮想計算機以外の各仮想計算機20のデータが存在する「場所」を変更せずに、接続先仮想計算機を動作させた場合に不足する、仮想計算機実行装置2のリソースの量である。例えば、接続先仮想計算機が退避させられている場合に、接続先仮想計算機を復帰させると、接続先仮想計算機が使用するリソースを新たに接続先仮想計算機にわりあてる必要がある。接続先仮想計算機の使用リソース量が、未使用リソース量より少ない場合、未使用リソースから接続先仮想計算機が使用するリソースを割り当てることができる。従って、不足リソース量はゼロである。一方、接続先仮想計算機の使用リソース量が、未使用リソース量より多い場合、接続先仮想計算機の使用リソース量から未使用リソース量を引いた量のリソースが不足する。接続先仮想計算機の「場所」が「メモリ」であれば、接続先仮想計算機は退避させられていない。従って、接続先仮想計算機を復帰させる必要はない。よって、接続先仮想計算機に新たにリソースを割り当てる必要はない。そのため、不足リソース量はゼロである。
選択部13は、不足リソース量がゼロでない場合、各仮想計算機20の優先順位に基づき、退避させる仮想計算機20を選択する。上述のように、選択部13によって選択される仮想計算機20が、選択仮想計算機と表記である。
選択部13は、仮想計算機20の接続状態や動作状態に基づき、選択仮想計算機の使用リソース量の合計が、不足リソース量を上回るように、「場所」が「メモリ」である仮想計算機20の中から1台以上の選択仮想計算機を選択すればよい。
選択部13は、仮想計算機20の接続状態や動作状態に基づき、各仮想計算機20に、状態順位を付与してもよい。そして、選択部13は、状態順位を更に使用して、選択仮想計算機を選択してもよい。状態順位は、例えば、仮想計算機20が退避された場合に、その仮想計算機20に関連付けられているユーザが受ける影響の大きさの程度を表す順位である。選択部13は、例えば下記の方法で、仮想計算機20に状態順位を付与してもよい。選択部13は、他の方法で、仮想計算機20に状態順位を付与してもよい。
例えば、仮想計算機20の接続状態が「未使用」である場合、その仮想計算機20に関連付けられているユーザは存在しない。従って、接続状態が「未使用」である仮想計算機20が退避されても、ユーザは影響を受けない。選択部13は、接続状態が「未使用」である仮想計算機20に、最も低い状態順位を付与すればよい。
接続状態が「接続」である仮想計算機20のユーザは、端末装置3を介して仮想計算機20において操作を継続している可能性がある。一方、接続状態が「切断」である仮想計算機20は端末装置3に接続されていない。そのため、接続状態が「切断」である仮想計算機20のユーザが、端末装置3を介して仮想計算機20において操作を継続している可能性はない。従って、仮想計算機20を退避させた場合におけるユーザの影響は、接続状態が「切断」である仮想計算機20と比べて、接続状態が「接続」である仮想計算機20の方が大きい。選択部13は、接続状態が「切断」である仮想計算機20に対して、接続状態が「接続」である仮想計算機20の状態順位より低い状態順位を付与すればよい。
また、動作状態が「処理中」である仮想計算機20のユーザは、仮想計算機20において操作を継続している。一方、動作状態が「アイドル状態」である仮想計算機20のユーザは、少なくとも所定時間以上、仮想計算機20において操作を行っていない。従って、仮想計算機20を退避させた場合におけるユーザの影響は、動作状態が「アイドル状態」である仮想計算機20と比べて、動作状態が「処理中」である仮想計算機20の方が大きい。選択部13は、動作状態が「アイドル状態」である仮想計算機20に対して、動作状態が「処理中」である仮想計算機20の状態順位より低い状態順位を付与すればよい。
選択部13は、場所が「メモリ」である仮想計算機20の中で、状態順位が最も低い仮想計算機20を選択の対象とする。そして、選択部13は、選択の対象である仮想計算機20から、例えば以下のように、選択仮想計算機を選択する。
選択部13は、選択の対象である仮想計算機20の中で最も優先順位が低い仮想計算機20を選択仮想計算機として選択する。最も優先順位が低い仮想計算機20が複数存在する場合、選択部13は、最も優先順位が低い仮想計算機20のうちいずれかを選択する。
既に選択されている選択仮想計算機の使用リソース量の合計が不足リソース量より大きい場合、選択部13は、選択仮想計算機の選択を終了する。既に選択されている選択仮想計算機の使用リソース量の合計が不足リソース量より小さい場合、選択部13は、選択の対象である仮想計算機20の中から、優先順位が低い順に、選択仮想計算機の選択を繰り返せばよい。
選択の対象である仮想計算機20を全て選択しても、選択されている選択仮想計算機の使用リソース量の合計が不足リソース量より小さい場合、選択部13は、選択の対象である仮想計算機20に、状態順位が2番目に低い仮想計算機20を追加する。選択部13は、新たな選択の対象である仮想計算機20から、選択仮想計算機を、上述のように選択する。
選択部13は、選択されている選択仮想計算機の使用リソース量の合計が不足リソース量より大きくなるまで、選択仮想計算機の選択と選択の対象である仮想計算機20の追加を繰り返せばよい。
上述のように状態順位が各仮想計算機20に付与されている場合、選択仮想計算機は、まず、接続状態が「未使用」であり、場所が「メモリ」である仮想計算機20から選択される。選択仮想計算機が更に選択される場合、選択仮想計算機は、次に、接続状態が「切断」であり、場所が「メモリ」である仮想計算機20から選択される。選択仮想計算機が更に選択される場合、選択仮想計算機は、次に、接続状態が「接続」であり、動作状態が「アイドル状態」であり、場所が「メモリ」である仮想計算機20から選択される。
選択部13は、他の方法で、選択仮想計算機を選択してもよい。
選択部13は、選択仮想計算機を選択した場合、選択仮想計算機の識別子を、出力部15に送信する。また、選択部13は、接続先仮想計算機の識別子を、出力部15に送信する。
出力部15は、選択仮想計算機の識別子を受信した場合、受信した選択仮想計算機の識別子を仮想計算機実行装置2の要求実行部25に送信する。また、出力部15は、接続要求を送信した端末装置3の識別子と、接続先仮想計算機の識別子とを、要求実行部25に送信する。
出力部15は、例えば選択仮想計算機の識別子に関連付けて、その選択仮想計算機が退避の対象であることを表すデータ値を、要求実行部25に送信してもよい。要求実行部25は、受信した仮想計算機20の識別子に、その仮想計算機20が退避の対象であることを表すデータ値が関連付けられている場合、その仮想計算機20は退避の対象である選択仮想計算機であると判定すればよい。出力部15は、接続先仮想計算機の識別子に関連付けて、その接続先仮想計算機が接続要求に基づく接続先であることを表すデータ値を、要求実行部25に送信してもよい。要求実行部25は、受信した仮想計算機20の識別子に、その仮想計算機20が接続要求に基づく接続先であることを表すデータ値であることを表すデータ値が関連付けられている場合、その仮想計算機20は接続先仮想計算機であると判定すればよい。
出力部15は、選択仮想計算機の識別子を、端末装置3の識別子に関連付けずに、要求実行部25に送信してもよい。出力部15は、接続先仮想計算機の識別子を、端末装置3の識別子に関連付けて、要求実行部25に送信してもよい。そして、要求実行部25は、受信した仮想計算機20の識別子に端末装置3の識別子に関連付けられていない場合、その仮想計算機20は選択仮想計算機であると判定すればよい。要求実行部25は、受信した仮想計算機20の識別子に端末装置3の識別子に関連付けられている場合、その仮想計算機20は接続先仮想計算機であると判定すればよい。そして、要求実行部25は、その識別子によって特定される端末装置3が、接続要求を送信した端末装置3であると認識すればよい。
なお、仮想計算機管理装置1と仮想計算機実行装置2とが同一の装置である場合、出力部15と、状態受信部16と、状態送信部26とは存在しなくてもよい。その場合、選択部13は、接続先仮想計算機の識別子と選択仮想計算機の識別子と端末装置3の識別子とを、出力部15ではなく要求実行部25に送信すればよい。また、退避部22、状態取得部24、及び仮想計算機実行部21は、各仮想計算機20の状態を、状態送信部26に送信する代わりに、状態記憶部10に書き込めばよい。さらに、状態取得部24は、未使用リソース量を、状態送信部26ではなく、不足特定部12に送信すればよい。
次に、本実施形態の仮想計算機管理装置1の動作について、図面を参照して詳細に説明する。
図7は、本実施形態の仮想計算機管理装置1の動作の例を表すフローチャートである。
まず、要求受信部11が、端末装置3から接続要求を受信する(ステップS101)。
要求受信部11は、受信した接続要求によって接続が要求された仮想計算機20である、接続先仮想計算機を特定する(ステップS102)。
選択部13は、特定された接続先仮想計算機が動作中であるか否かを判定する(ステップS103)。選択部13は、状態記憶部10に格納されている状態テーブルにおいて、接続先仮想計算機の「場所」が「メモリ」であれば、接続先仮想計算機が動作中であると判定すればよい。接続先仮想計算機の「場所」が「メモリ」である場合、接続先仮想計算機は退避させられていないので、端末装置3は、そのまま接続先仮想計算機にアクセスすることができる。
接続先仮想計算機が動作中である場合(ステップS103においてYes)、選択部13は、例えば出力部15を介して、接続先仮想計算機の識別子を、仮想計算機実行装置2に送信する(ステップS109)。
ステップS103において、選択部13は、状態記憶部10に格納されている状態テーブルにおいて、接続先仮想計算機の「場所」が「ディスク」であれば、接続先仮想計算機が動作中でないと判定すればよい。接続先仮想計算機の「場所」が「ディスク」である場合、接続先仮想計算機は退避させられている。その場合、端末装置3が接続先仮想計算機にアクセスするためには、接続先仮想計算機を復帰させる必要がある。
接続先仮想計算機が動作中でない場合(ステップS103においてNo)、不足特定部12は、例えば状態送信部26及び状態受信部16を介して、状態取得部24から、仮想計算機実行装置2の未使用リソース量を受信する(ステップS104)。
不足特定部12は、例えば、状態送信部26及び状態受信部16を介して、状態取得部24に未使用リソース量を要求すればよい。状態取得部24は、未使用リソース量の要求に応じて、未使用リソース量を取得し、取得した未使用リソース量を、例えば状態送信部26及び状態受信部16を介して、不足特定部12に送信すればよい。状態取得部24は、定期的に未使用リソース量を取得し、取得した未使用リソース量を、例えば状態送信部26及び状態受信部16を介して、不足特定部12に送信してもよい。
不足特定部12は、仮想計算機実行装置2が接続先仮想計算機を動作させるために不足するリソース量である、不足リソース量を特定する(ステップS105)。すなわち、不足特定部12は、仮想計算機実行装置2が、退避させられている接続先仮想計算機を復帰させた場合に不足する仮想計算機実行装置2のリソース量を特定する。
不足リソース量がゼロである場合、すなわち、リソースが不足しない場合(ステップS106においてNo)、仮想計算機管理装置1の動作は、ステップS109に進む。
不足リソース量がゼロでない場合、すなわち、リソースが不足する場合(ステップS106においてYes)、仮想計算機管理装置1の動作は、ステップS107に進む。
選択部13は、上述のようにして、不足リソース量と、動作中の仮想計算機20の優先順位とに基づき、退避させる仮想計算機20を、動作中の仮想計算機20から選択する(ステップS107)。前述のように、動作中の仮想計算機20は、退避させられていない仮想計算機20である。状態記憶部10が記憶する状態テーブルにおいて、動作中の仮想計算機20の「場所」は、「メモリ」である。前述のように、退避させる仮想計算機20として選択された仮想計算機20は、選択仮想計算機と表記される。
選択部13は、例えば出力部15を介して、選択された選択仮想計算機の識別子を、仮想計算機実行装置2に送信する(ステップS108)。
次に、端末装置3が仮想計算機管理装置1に接続要求を送信した場合における、本実施形態の仮想計算機実行装置2の動作について、図面を参照して詳細に説明する。
図8は、本実施形態の仮想計算機実行装置2の動作の例を表すフローチャートである。端末装置3が仮想計算機管理装置1に接続要求を送信した場合、仮想計算機管理装置1が選択仮想計算機を選択していれば、仮想計算機管理装置1は選択仮想計算機の識別子を送信する。仮想計算機管理装置1は、さらに、接続先仮想計算機の識別子と、接続要求を送信した端末装置3の識別子とを送信する。
まず、要求実行部25は、仮想計算機管理装置1の選択部13から、例えば出力部15を介して、選択仮想計算機の識別子を受信する(ステップS201)。
上述のように、仮想計算機実行装置2が接続先仮想計算機を動作させるために、動作中の仮想計算機20のいずれかを退避させる必要がある場合、仮想計算機管理装置1は、退避させる仮想計算機20として、選択仮想計算機を選択する。仮想計算機管理装置1が選択仮想計算機を選択していれば、仮想計算機管理装置1は選択仮想計算機の識別子を送信する。
動作中の仮想計算機20を退避させなくても接続先仮想計算機が動作する場合、仮想計算機管理装置1は、選択仮想計算機を選択しない。仮想計算機管理装置1が選択仮想計算機を選択していなければ、仮想計算機管理装置1は選択仮想計算機の識別子を送信しない。
要求実行部25が選択仮想計算機の識別子を受信しなかった場合(ステップS202においてNo)、仮想計算機実行装置2の動作は、ステップS204に進む。
要求実行部25が選択仮想計算機の識別子を受信した場合(ステップS202においてYes)、要求実行部25は、退避部22に、退避指示と選択仮想計算機の識別子とを送信する。
退避指示と選択仮想計算機の識別子とを受信した退避部22は、選択仮想計算機を仮想計算機記憶部23に退避させる(ステップS203)。仮想計算機実行装置2の動作は、ステップS203の後、ステップS204に進む。
ステップS204において、要求実行部25は、接続先仮想計算機の識別子と、端末装置3の識別子とを受信する(ステップS204)。
接続先仮想計算機が仮想計算機記憶部23に退避させられている場合(ステップS205においてYes)、要求実行部25は、退避部22に、復帰指示と接続先仮想計算機の識別子とを送信する。
復帰指示と接続先仮想計算機の識別子とを受信した退避部22は、接続先仮想計算機を復帰させる(ステップS206)。仮想計算機実行装置2の動作は、ステップS206の後、ステップS207に進む。
接続先仮想計算機が仮想計算機記憶部23に退避させられていない場合(ステップS205においてNo)、仮想計算機実行装置2の動作は、ステップS207に進む。
ステップS207において、要求実行部25は、接続要求を受信した端末装置3と接続先仮想計算機とを接続する(ステップS207)。
要求実行部25は、例えば、接続要求を受信した端末装置3に接続先仮想計算機の識別子を送信することによって、接続要求を受信した端末装置3と接続先仮想計算機とを接続すればよい。仮想計算機20の識別子を受信した端末装置3は、その仮想計算機20に接続すればよい。
次に、仮想計算機20について、図面を参照して詳細に説明する。
図9は、本実施形態の仮想計算機20の構成の例を表すブロック図である。図9を参照すると、仮想計算機20では、ゲストOS202が動作している。ゲストOS202は、仮想計算機20のOSである。また、仮想計算機20において、エージェント201が動作している。エージェント201は、ゲストOS202の制御下で動作するとソフトウェアソフトウェアである。仮想計算機20において、仮想計算機20を使用するユーザが起動したアプリケーションプログラムが動作していてもよい。エージェント201は、以下で述べるログオフ検出部203と、切断部204と、通知部205として動作する。
図10は、本実施形態の仮想計算機20の機能構成の例を表すブロック図である。図10には、さらに、仮想計算機管理装置1と、仮想計算機実行装置2と、端末装置3と、端末装置3が描かれている。ただし、図10では、状態記憶部10及び状態受信部16以外の仮想計算機管理装置1の構成要素は省略されている。さらに、仮想計算機20と、状態取得部24と、状態送信部26以外の仮想計算機実行装置2の構成要素は省略されている。
図10を参照すると、仮想計算機20は、ログオフ検出部203と、通信切断部204と、通知部205とを含む。
ログオフ検出部203は、端末装置3が仮想計算機20に送信するログオフ要求を検出する。
切断部204は、端末装置3が仮想計算機20に送信したログオフ要求が検出されると、仮想計算機20と端末装置3との間の接続を切断する。
通知部205は、仮想計算機20と端末装置3との間の接続が切断された場合、状態取得部24に対して、仮想計算機20と端末装置3との間の接続が切断されたことを通知する。
前述のように、仮想計算機20と端末装置3との間の接続が切断されたことを受信した状態取得部24は、状態送信部26及び状態受信部16を介して、状態記憶部10に格納されている、その仮想計算機20の接続状態を更新する。
図11は、本実施形態の仮想計算機20の機能構成の例を表すブロック図である。図11に示す例では、仮想計算機管理装置1は、仮想計算機実行装置2に含まれている。
仮想計算機管理装置1が仮想計算機実行装置2に含まれている場合、仮想計算機20と端末装置3との間の接続が切断されたことを受信した状態取得部24は、状態記憶部10に格納されている、その仮想計算機20の接続状態を、直接更新してもよい。
次に、仮想計算機20がログオフ要求を受信する際の、仮想計算機20の動作について、図面を参照して詳細に説明する。
図12は、ログオフ要求受信時における仮想計算機20の動作の例を表すフローチャートである。
まず、ログオフ検出部203が、端末装置3から送信されるログオフ要求を検出する(ステップS301)。ログオフ要求が検出されない場合(ステップS302においてNo)、ログオフ検出部203はログオフ要求の検出を継続する(ステップS301)。
ログオフ要求が検出された場合(ステップS302においてYes)、切断部204は、仮想計算機20と端末装置3との間の接続を切断する(ステップS303)。端末装置3がログオフ要求を送信しても、仮想計算機20はログオフの処理を行わない。
仮想計算機20と端末装置3との間の接続が切断されると、通知部205は、状態取得部24に対して、仮想計算機20と端末装置3との間の接続が切断されたことを通知する(ステップS304)。
仮想計算機20と端末装置3との間の接続が切断されたことを受信した状態取得部24は、状態送信部26及び状態受信部16を介して、状態記憶部10に格納されている、その仮想計算機20の接続状態を更新する。仮想計算機管理装置1が仮想計算機実行装置2に含まれている場合、仮想計算機20と端末装置3との間の接続が切断されたことを受信した状態取得部24は、状態記憶部10に格納されている、その仮想計算機20の接続状態を、直接更新してもよい。
以上で説明した本実施形態には、必要とするリソースが必ずしも同一でない仮想計算機20を実行する仮想計算機実行装置2がリソース不足になることなく、仮想計算機20へのログオン時における処理による負荷を削減することができるという効果がある。
その理由は、不足特定部12が、接続要求によって接続が要求された接続先仮想計算機が仮想計算機実行装置2において動作する場合に不足する、仮想計算機実行装置2のリソース量を算出するからである。そして、選択部13が、不足するリソース量と、仮想計算機20の優先順位に基づき、接続先仮想計算機が動作しても仮想計算機実行装置2がリソース不足にならないように退避させる仮想計算機20を選択するからである。
端末装置3を介して仮想計算機20を使用するユーザが、その仮想計算機20からログオフする代わりに、その仮想計算機20と端末装置3との間の接続を切断することができる。その場合、ユーザは仮想計算機20からログオフしていないので、ユーザが次にその仮想計算機20を使用する際、仮想計算機20はログオンに伴う処理を行う必要がない。すなわち、ログオン時における処理による負荷を削減することができる。
しかし、ユーザがログオンした状態で動作を続ける仮想計算機20が増加すると、仮想計算機20を実行する仮想計算機実行装置2のリソースが不足するおそれがある。
仮想計算機20を仮想計算機記憶部23に退避させる退避部22が、仮想計算機実行装置2のリソースが不足しないように仮想計算機20を退避させることができれば、仮想計算機実行装置2のリソースは不足しない。例えば、端末装置3が接続を要求した接続先仮想計算機が退避させられている場合、仮想計算機実行装置2の未使用リソースが不十分であれば、接続先仮想計算機を復帰させるとリソースが不足する。リソース不足を防ぐために、接続先仮想計算機を復帰させる代わりに、いずれかの仮想計算機20を退避させる場合、退避させる仮想計算機20が使用するリソースより接続先仮想計算機が使用するリソースが多ければ、リソースが不足するおそれがある。
一方、選択部13は、仮想計算機20を退避させずに仮想計算機実行装置2を復帰させることにより不足するリソースより、仮想計算機20を退避させることにより使用されなくなるリソースが多くなるよう、退避させる仮想計算機20を選択する。従って、選択部13が選択した選択仮想計算機を退避させることにより、退避させられている接続先仮想計算機を復帰させても、仮想計算機実行装置2のリソースは不足しない。その場合、仮想計算機20が使用するリソースの量が異なっていても、仮想計算機実行装置2のリソースは不足しない。
<第2の実施形態>
次に、本発明の第2の実施形態について、図面を参照して詳細に説明する。
図13は、本実施形態の仮想計算機管理装置1Aの構成を表す図である。
図13を参照すると、仮想計算機管理装置1Aは、仮想計算機記憶部23に仮想計算機20を退避させることができる仮想計算機実行装置2が実行する仮想計算機20に関して、当該仮想計算機20が使用するリソース量と、前記仮想計算機20の優先順位とを記憶する状態記憶部10と、前記仮想計算機10のうち接続先仮想計算機への接続要求を受信する要求受信部11と、前記仮想計算機実行装置2において検出された未使用リソース量と、前記仮想計算機記憶部23に退避させられている前記接続先仮想計算機が使用するリソース量とに基づき、前記接続先仮想計算機を復帰させた場合の不足リソース量を特定する不足特定部12と、前記優先順位に基づき、退避させられていない前記仮想計算機20から選択仮想計算機を、前記選択仮想計算機が使用する前記リソース量の合計が前記不足リソースより大きくなるように選択する選択部13と、を備える。前述のように、仮想計算機実行装置2は、単に「実行装置2」とも表記される。
以上で説明した本実施形態には、第1の実施形態と同じ効果がある。その理由は、第1の実施形態の効果が生じる理由と同じである。
仮想計算機管理装置1、仮想計算機管理装置1A、仮想計算機実行装置2、仮想計算機実行装置2Aは、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
図14は、仮想計算機管理装置1、仮想計算機管理装置1A、仮想計算機実行装置2、仮想計算機実行装置2Aを実現することができる、コンピュータ1000の構成の一例を表す図である。図14を参照すると、コンピュータ1000は、プロセッサ1001と、メモリ1002と、記憶装置1003と、I/O(Input/Output)インタフェース1004とを含む。また、コンピュータ1000は、記録媒体1005にアクセスすることができる。メモリ1002と記憶装置1003は、例えば、RAM(Random Access Memory)、ハードディスクなどの記憶装置である。記録媒体1005は、例えば、RAM、ハードディスクなどの記憶装置、ROM(Read Only Memory)、可搬記録媒体である。記憶装置1003が記録媒体1005であってもよい。プロセッサ1001は、メモリ1002と、記憶装置1003に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ1001は、I/Oインタフェース1004を介して、例えば、端末装置3や、ユーザ管理装置4にアクセスすることができる。プロセッサ1001は、記録媒体1005にアクセスすることができる。記録媒体1005には、コンピュータ1000を、仮想計算機管理装置1、仮想計算機管理装置1A、仮想計算機実行装置2、又は仮想計算機実行装置2Aとして動作させるプログラムが格納されている。
プロセッサ1001は、記録媒体1005に格納されている、コンピュータ1000を、仮想計算機管理装置1、仮想計算機管理装置1A、仮想計算機実行装置2、又は仮想計算機実行装置2Aとして動作させるプログラムを、メモリ1002にロードする。そして、プロセッサ1001が、メモリ1002にロードされたプログラムを実行することにより、コンピュータ1000は、仮想計算機管理装置1、仮想計算機管理装置1A、仮想計算機実行装置2、又は仮想計算機実行装置2Aとして動作する。
要求受信部11、不足特定部12、選択部13、優先順位決定部14、出力部15、仮想計算機実行部21、退避部22、状態取得部24、要求実行部25、状態送信部26は、例えば、プログラムを記憶する記録媒体1005からメモリ1002に読み込まれた、各部の機能を実現することができる専用のプログラムと、そのプログラムを実行するプロセッサ1001により実現することができる。また、状態記憶部10、仮想計算機記憶部23は、コンピュータ1000が含むメモリ1002やハードディスク装置等の記憶装置1003により実現することができる。あるいは、状態記憶部10、要求受信部11、不足特定部12、選択部13、優先順位決定部14、出力部15、仮想計算機実行部21、退避部22、仮想計算機記憶部23、状態取得部24、要求実行部25、状態送信部26の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
1、1A 仮想計算機管理装置
2、2A 仮想計算機実行装置
3 端末装置
4 ユーザ管理装置
10 状態記憶部
11 要求受信部
12 不足特定部
13 選択部
14 優先順位決定部
15 出力部
16 状態受信部
20 仮想計算機
21 仮想計算機実行部
22 退避部
23 仮想計算機記憶部
24 状態取得部
25 要求実行部
26 状態送信部
40 ログ記憶部
41 認証部
100、100A 情報処理システム
201 エージェント
202 ゲストOS
203 ログオフ検出部
204 切断部
205 通知部
1000 コンピュータ
1001 プロセッサ
1002 メモリ
1003 記憶装置
1004 I/Oインタフェース
1005 記録媒体

Claims (10)

  1. 仮想計算機記憶手段に仮想計算機を退避させることができる実行装置が実行する仮想計算機に関して、当該仮想計算機が使用するリソース量と、前記仮想計算機の優先順位とを記憶する状態記憶手段と、
    ログ記憶手段が記憶する、前記仮想計算機に対して行われた接続の頻度に基づき、前記仮想計算機の優先順位を決定し、決定された前記優先順位を前記仮想計算機に関連付けて前記状態記憶手段に格納する優先順位決定手段と、
    前記仮想計算機のうち接続先仮想計算機への接続要求を受信する要求受信手段と、
    前記実行装置において検出された未使用リソース量と、前記仮想計算機記憶手段に退避させられている前記接続先仮想計算機が使用するリソース量とに基づき、前記接続先仮想計算機を復帰させた場合の不足リソース量を特定する不足特定手段と、
    前記優先順位に基づき、退避させられていない前記仮想計算機から、退避させられる選択仮想計算機を、前記選択仮想計算機が使用する前記リソース量の合計が前記不足リソースより大きくなるように選択する選択手段と、
    仮想計算機管理装置。
  2. 優先順位決定手段は、期間のサイクルにおける段階の移り変わりに応じて、前記段階ごとに記録された前記接続の頻度に基づき、前記優先順位を決定し直し、決定された前記優先順位を前記仮想計算機に関連付けて前記状態記憶手段に格納する
    請求項1に記載の仮想計算機管理装置。
  3. 前記状態記憶手段は、前記仮想計算機に関連付けて、当該仮想計算機に対して操作が行われているか否かを表す動作状態を記憶し、
    前記選択手段は、前記操作が行われている前記仮想計算機から前記選択仮想計算機を選択する場合、前記動作状態に基づき、前記選択仮想計算機を選択する
    請求項1又は2に記載の仮想計算機管理装置。
  4. 前記接続要求を送信する端末と、前記実行装置と、請求項1から3のいずれか1項に記載の仮想計算機管理装置とを含み、
    前記実行装置は、
    前記選択仮想計算機を前記仮想計算機記憶手段に退避させ、さらに、前記仮想計算機記憶手段に退避させられている前記接続先仮想計算機を復帰させる退避手段と、
    前記仮想計算機記憶手段と、
    識別子を受信した仮想計算機に接続する前記端末に、前記接続先仮想計算機の識別子を送信する要求実行手段と、
    を備える
    情報処理システム。
  5. 仮想計算機管理装置が、
    仮想計算機記憶手段に仮想計算機を退避させることができる実行装置が実行する仮想計算機に関して、当該仮想計算機が使用するリソース量を状態記憶手段に記憶し、
    ログ記憶手段が記憶する、前記仮想計算機に対して行われた接続の頻度に基づき、前記仮想計算機の優先順位を決定し、決定された前記優先順位を前記仮想計算機に関連付けて前記状態記憶手段に記憶し、
    前記仮想計算機のうち接続先仮想計算機への接続要求を受信し、
    前記実行装置において検出された未使用リソース量と、前記仮想計算機記憶手段に退避させられている前記接続先仮想計算機が使用するリソース量とに基づき、前記接続先仮想計算機を復帰させた場合の不足リソース量を特定し、
    前記優先順位に基づき、退避させられていない前記仮想計算機から、退避させられる選択仮想計算機を、前記選択仮想計算機が使用する前記リソース量の合計が前記不足リソースより大きくなるように選択する、
    仮想計算機管理方法。
  6. 前記仮想計算機管理装置は、
    期間のサイクルにおける段階の移り変わりに応じて、前記段階ごとに記録された前記接続の頻度に基づき、前記優先順位を決定し直し、決定された前記優先順位を前記仮想計算機に関連付けて前記状態記憶手段に格納する
    請求項5に記載の仮想計算機管理方法。
  7. 前記仮想計算機管理装置は、
    前記仮想計算機に関連付けて、当該仮想計算機に対して操作が行われているか否かを表す動作状態を前記状態記憶手段に記憶し、
    使用されている前記仮想計算機から前記選択仮想計算機を選択する場合、前記動作状態に基づき、前記選択仮想計算機を選択する
    請求項5又は6に記載の仮想計算機管理方法。
  8. コンピュータを、
    仮想計算機記憶手段に仮想計算機を退避させることができる実行装置が実行する仮想計算機に関して、当該仮想計算機が使用するリソース量と、前記仮想計算機の優先順位とを記憶する状態記憶手段と、
    ログ記憶手段が記憶する、前記仮想計算機に対して行われた接続の頻度に基づき、前記仮想計算機の優先順位を決定し、決定された前記優先順位を前記仮想計算機に関連付けて前記状態記憶手段に格納する優先順位決定手段と、
    前記仮想計算機のうち接続先仮想計算機への接続要求を受信する要求受信手段と、
    前記実行装置において検出された未使用リソース量と、前記仮想計算機記憶手段に退避させられている前記接続先仮想計算機が使用するリソース量とに基づき、前記接続先仮想計算機を復帰させた場合の不足リソース量を特定する不足特定手段と、
    前記優先順位に基づき、退避させられていない前記仮想計算機から、退避させられる選択仮想計算機を、前記選択仮想計算機が使用する前記リソース量の合計が前記不足リソースより大きくなるように選択する選択手段と、
    して動作させる仮想計算機管理プログラム。
  9. コンピュータを、
    期間のサイクルにおける段階の移り変わりに応じて、前記段階ごとに記録された前記接続の頻度に基づき、前記優先順位を決定し直し、決定された前記優先順位を前記仮想計算機に関連付けて前記状態記憶手段に格納する前記優先順位決定手段
    として動作させる請求項8に記載の仮想計算機管理プログラム。
  10. コンピュータを、
    前記仮想計算機に関連付けて、当該仮想計算機に対して操作が行われているか否かを表す動作状態を記憶する前記状態記憶手段と、
    使用されている前記仮想計算機から前記選択仮想計算機を選択する場合、前記動作状態に基づき、前記選択仮想計算機を選択する前記選択手段と、
    して動作させる請求項8又は9に記載の仮想計算機管理プログラム。
JP2014040257A 2014-03-03 2014-03-03 仮想計算機管理装置、仮想計算機管理方法、及び仮想計算機管理プログラム Active JP6349786B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014040257A JP6349786B2 (ja) 2014-03-03 2014-03-03 仮想計算機管理装置、仮想計算機管理方法、及び仮想計算機管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014040257A JP6349786B2 (ja) 2014-03-03 2014-03-03 仮想計算機管理装置、仮想計算機管理方法、及び仮想計算機管理プログラム

Publications (2)

Publication Number Publication Date
JP2015165361A JP2015165361A (ja) 2015-09-17
JP6349786B2 true JP6349786B2 (ja) 2018-07-04

Family

ID=54187829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014040257A Active JP6349786B2 (ja) 2014-03-03 2014-03-03 仮想計算機管理装置、仮想計算機管理方法、及び仮想計算機管理プログラム

Country Status (1)

Country Link
JP (1) JP6349786B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7155584B2 (ja) * 2018-03-30 2022-10-19 株式会社リコー 情報処理装置、情報処理方法及び情報処理プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293386A (ja) * 1999-04-12 2000-10-20 Hitachi Ltd メモリ管理方式
JP3768775B2 (ja) * 2000-04-27 2006-04-19 三菱電機株式会社 バックアップ装置及びバックアップ方法
JP4966942B2 (ja) * 2008-10-01 2012-07-04 株式会社日立製作所 仮想pc管理方法、仮想pc管理システム、および仮想pc管理プログラム
JP2011134219A (ja) * 2009-12-25 2011-07-07 Nec Corp ユーザ環境退避制御システム、装置、方法、及びプログラム

Also Published As

Publication number Publication date
JP2015165361A (ja) 2015-09-17

Similar Documents

Publication Publication Date Title
CN109101318B (zh) 一种虚拟机迁移控制方法及装置
CN109768871B (zh) 配置多个虚拟网卡的方法、宿主机和存储介质
US8346933B2 (en) Virtual machine location system, virtual machine location method, program, virtual machine manager, and server
CN110753131A (zh) 微服务分布式限流方法及装置、存储介质和电子设备
US9756010B2 (en) Resolving network address conflicts
US20150309828A1 (en) Hypervisor manager for virtual machine management
US8589538B2 (en) Storage workload balancing
US10044799B2 (en) Implementing synchronization of state information betweeen instances of an application as well as between different applications in an efficient, scalable manner
US9672069B2 (en) Dynamic zone-based cloud management
US8621081B2 (en) Hypervisor controlled user device that enables available user device resources to be used for cloud computing
GB2507779A (en) Terminating a virtual machine in response to user inactivity in a cloud computing environment
US9229762B2 (en) Host providing system and host providing method
US20110173319A1 (en) Apparatus and method for operating server using virtualization technique
US9317210B2 (en) Balancing traffic through logical unit range partitioning
JP2011028547A (ja) 仮想マシン起動端末および仮想マシン起動プログラム
US10754368B1 (en) Method and system for load balancing backup resources
CN106911741B (zh) 一种虚拟化网管文件下载负载均衡的方法及网管服务器
CN114915593A (zh) 基于Redis的流量控制方法、装置、电子设备及存储介质
JP6349786B2 (ja) 仮想計算機管理装置、仮想計算機管理方法、及び仮想計算機管理プログラム
US8868750B2 (en) Information processing device, computer system and program
US8433877B2 (en) Storage scalability management
US11881996B2 (en) Input and output for target device communication
KR102064466B1 (ko) 가상화 시스템에서의 가상 데스크톱을 할당하는 방법 및 그 가상화 시스템
US9742687B2 (en) Management system and method for execution of virtual machines
KR20230063015A (ko) 가상화 서버에서 가상머신 cpu 자원을 관리하는 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180425

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180521

R150 Certificate of patent or registration of utility model

Ref document number: 6349786

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150