(57)【特許請求の範囲】
【請求項１】
少なくとも２台のホストコンピュータの、プロセッサ資源およびメモリ資源の少なくとも一方からなる資源を、複数の仮想コンピュータに割り当てる配分を決定する、コンピュータ資源配分決定方法であって、
前記方法は、
制御用コンピュータが、各仮想コンピュータに対する資源の配分を、その仮想コンピュータが属するグループに基づいて決定するステップと、
制御用コンピュータが、各ホストコンピュータに対する各仮想コンピュータの再配置処理を行うステップと、
を備え、
前記再配置処理を行う前記ステップは、
制御用コンピュータが、
‐第１仮想コンピュータに第３ホストコンピュータの資源を割り当てると決定し、かつ、
‐第２仮想コンピュータに第４ホストコンピュータの資源を割り当てると決定した
場合に、
さらに、制御用コンピュータが、
‐第３ホストコンピュータおよび第４ホストコンピュータのうち、各仮想コンピュータに割り当てると決定された資源量の合計がより小さいものを、再配置対象ホストコンピュータとして決定するステップと、
‐第３ホストコンピュータが再配置対象ホストコンピュータである場合に、第１仮想コンピュータに第３ホストコンピュータの資源を割り当てることに代えて、第１仮想コンピュータに第４ホストコンピュータの資源を割り当てるか否かを決定するステップと、
‐第４ホストコンピュータが再配置対象ホストコンピュータである場合に、第２仮想コンピュータに第４ホストコンピュータの資源を割り当てることに代えて、第２仮想コンピュータに第３ホストコンピュータの資源を割り当てるか否かを決定するステップと、
を含む、コンピュータ資源配分決定方法。
【請求項２】
少なくとも２台のホストコンピュータの、プロセッサ資源およびメモリ資源の少なくとも一方からなる資源を、複数の仮想コンピュータに割り当てる配分を決定する、コンピュータ資源配分決定方法であって、
前記方法は、
制御用コンピュータが、各仮想コンピュータに対する資源の配分を、その仮想コンピュータが属するグループに基づいて決定するステップと、
制御用コンピュータが、各ホストコンピュータに対する各仮想コンピュータの再配置処理を行うステップと、
を備え、
前記再配置処理を行う前記ステップは、
制御用コンピュータが、第５ホストコンピュータの利用可能資源量と、各仮想コンピュータの要求資源量とに基づき、第３仮想コンピュータに第５ホストコンピュータの資源を割り当てるか否かを決定するステップと、
第３仮想コンピュータに第５ホストコンピュータの資源を割り当てないと決定した場合に、第５ホストコンピュータの資源を割り当てられている第４仮想コンピュータについて、割り当てられていた資源を解放するとともに第６ホストコンピュータの資源を割り当てると決定するステップと、
第３仮想コンピュータに第５ホストコンピュータの資源を割り当てると決定するステップと、
を含む、コンピュータ資源配分決定方法。
【請求項３】
請求項１または２に記載の方法を実行する制御用コンピュータ。
【請求項４】
コンピュータに請求項１または２に記載の方法を実行させる、コンピュータ資源配分決定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ資源配分決定方法、コンピュータ資源配分決定方法プログラムおよび制御用コンピュータに関する。
【背景技術】
【０００２】
１台の物理コンピュータ上に複数の仮想コンピュータの環境を構築し、外部のアクセスに対してそれらの仮想コンピュータが実際に存在するコンピュータであるかのように見せる技術が公知である。
【０００３】
物理コンピュータの資源を仮想コンピュータに利用させるに際し、利用可能な上限等を決定しておき、それに沿って制御を行う場合がある。特許文献１には、資源配分の上限を動的に変更する制御の具体例が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３０９６４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の制御では、配分の基準となる条件を柔軟かつ効率的に定義することが困難であるという問題があった。
【０００６】
たとえば特許文献１の制御では、すべての仮想コンピュータについてポリシーが一律に適用されるので、柔軟な定義が困難である。
【０００７】
この発明は、このような問題点を解決するためになされたものであり、コンピュータの資源配分の基準となる条件を柔軟かつ効率的に定義することを可能にする、コンピュータ資源配分決定方法、コンピュータ資源配分決定方法プログラムおよび制御用コンピュータを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の問題点を解決するため、この発明に係るコンピュータ資源配分決定方法は、
少なくとも２台のホストコンピュータの、プロセッサ資源およびメモリ資源の少なくとも一方からなる資源を、複数の仮想コンピュータに割り当てる配分を決定する、コンピュータ資源配分決定方法であって、
前記方法は、
制御用コンピュータが、各仮想コンピュータに対する資源の配分を、その仮想コンピュータが属するグループに基づいて決定するステップと、
制御用コンピュータが、各ホストコンピュータに対する各仮想コンピュータの再配置処理を行うステップと、
を備え、
前記再配置処理を行う前記ステップは、
制御用コンピュータが、
‐第１仮想コンピュータに第３ホストコンピュータの資源を割り当てると決定し、かつ、
‐第２仮想コンピュータに第４ホストコンピュータの資源を割り当てると決定した
場合に、
さらに、制御用コンピュータが、
‐第３ホストコンピュータおよび第４ホストコンピュータのうち、各仮想コンピュータに割り当てると決定された資源量の合計がより小さいものを、再配置対象ホストコンピュータとして決定するステップと、
‐第３ホストコンピュータが再配置対象ホストコンピュータである場合に、第１仮想コンピュータに第３ホストコンピュータの資源を割り当てることに代えて、第１仮想コンピュータに第４ホストコンピュータの資源を割り当てるか否かを決定するステップと、
‐第４ホストコンピュータが再配置対象ホストコンピュータである場合に、第２仮想コンピュータに第４ホストコンピュータの資源を割り当てることに代えて、第２仮想コンピュータに第３ホストコンピュータの資源を割り当てるか否かを決定するステップと、
を含む。
また、この発明に係るコンピュータ資源配分決定方法は、
少なくとも２台のホストコンピュータの、プロセッサ資源およびメモリ資源の少なくとも一方からなる資源を、複数の仮想コンピュータに割り当てる配分を決定する、コンピュータ資源配分決定方法であって、
前記方法は、
制御用コンピュータが、各仮想コンピュータに対する資源の配分を、その仮想コンピュータが属するグループに基づいて決定するステップと、
制御用コンピュータが、各ホストコンピュータに対する各仮想コンピュータの再配置処理を行うステップと、
を備え、
前記再配置処理を行う前記ステップは、
制御用コンピュータが、第５ホストコンピュータの利用可能資源量と、各仮想コンピュータの要求資源量とに基づき、第３仮想コンピュータに第５ホストコンピュータの資源を割り当てるか否かを決定するステップと、
第３仮想コンピュータに第５ホストコンピュータの資源を割り当てないと決定した場合に、第５ホストコンピュータの資源を割り当てられている第４仮想コンピュータについて、割り当てられていた資源を解放するとともに第６ホストコンピュータの資源を割り当てると決定するステップと、
第３仮想コンピュータに第５ホストコンピュータの資源を割り当てると決定するステップと、
を含む。
また、本発明に係る制御用コンピュータは、上述の方法を実行する。
また、本発明に係るコンピュータ資源配分決定プログラムは、コンピュータに上述の方法を実行させる。
【発明の効果】
【０００９】
この発明に係るコンピュータ資源配分決定方法、コンピュータ資源配分決定方法プログラムおよび制御用コンピュータによれば、資源の配分をグループに基づいて決定するので、資源配分の基準となる条件を柔軟かつ効率的に定義することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態１が実施される構成の例を示す図である。
【図２】図１のホストコンピュータと仮想コンピュータとの関係を示す図である。
【図３】ホストコンピュータに対する仮想コンピュータの配置の具体例を示す図である。
【図４】仮想コンピュータ構成情報の構成の例を示す図である。
【図５】ホスト構成情報の構成の例を示す図である。
【図６】仮想コンピュータ稼働情報の構成の例を示す図である。
【図７】制御用コンピュータが、第１グループに属する仮想コンピュータに対して資源を割り当てるための処理を表すフローチャートである。
【図８】制御用コンピュータが、第２グループに属する仮想コンピュータに対して資源を割り当てるための処理を表すフローチャートである。
【図９】制御用コンピュータが、第１グループに属する仮想コンピュータから資源を解放するための処理を表すフローチャートである。
【図１０】制御用コンピュータが、第２グループに属する仮想コンピュータから資源を解放するための処理を表すフローチャートである。
【図１１】実施の形態１の変形例に係る制御用コンピュータの処理の流れを表すフローチャートである。
【図１２】実施の形態１の変形例に係る再配置処理の具体例を示す図である。
【図１３】実施の形態１の変形例に係る再配置処理の、別の具体例を示す図である。
【発明を実施するための形態】
【００１１】
以下、この発明の実施の形態を添付図面に基づいて説明する。
実施の形態１．
図１に、本発明の実施の形態１が実施される構成の例を示す。少なくとも１台のホストコンピュータ１０（図１の例では３台）および少なくとも１台のユーザ端末４０（図１の例では３台）が、通信ネットワーク５０を介して、互いに通信可能に接続されている。
【００１２】
ホストコンピュータ１０はコンピュータとしてのハードウェア構成を備え、演算を行う演算手段２０と、情報を格納する記憶手段３０とを備える。演算手段２０はたとえばＣＰＵ（中央処理装置）を含み、記憶手段３０はたとえば半導体メモリおよびＨＤＤ（ハードディスクドライブ）等の記憶媒体を含む。ホストコンピュータ１０は、たとえば１台の「物理コンピュータ」と呼ばれる単位に相当するハードウェアであってもよい。
【００１３】
ホストコンピュータ１０は、プログラムを実行するための資源（コンピュータ資源または計算資源とも呼ばれる）を提供することができる。たとえば、演算手段２０は資源としてプロセッサ資源２１を提供することができ、記憶手段３０は資源としてメモリ資源３１を提供することができる。
【００１４】
プロセッサ資源２１は、たとえば演算手段２０の使用率によって表される。使用率は、演算手段２０に含まれるプロセッサを単位として計測される。たとえば、あるホストコンピュータ１０の演算手段２０が８個のプロセッサを備える場合には、そのホストコンピュータ１０について、プロセッサ資源２１の利用可能資源量は８個（８コア）であると表現することができる。また、あるプログラムを実行するために１個のプロセッサについて２０％の使用率が必要となる場合には、そのプログラムのプロセッサ資源２１に対する要求資源量は０．２個（０．２コア）であると表現することができる。
【００１５】
メモリ資源３１は、たとえば記憶容量によって表される。たとえば、あるホストコンピュータ１０の記憶手段３０が８ＧＢのメモリを備える場合には、そのホストコンピュータ１０について、メモリ資源３１の利用可能資源量は８ＧＢであると表現することができる。また、あるプログラムを実行するために４ＧＢの記憶容量が必要となる場合には、そのプログラムのメモリ資源３１に対する要求資源量は４ＧＢであると表現することができる。
【００１６】
なお、要求資源量は、実際に仮想コンピュータが消費する資源量と異なっていてもよい。
【００１７】
また、とくに図示しないが、ホストコンピュータ１０は、外部の通信ネットワークに対し情報の入出力を行う通信手段を備える。通信手段はたとえばネットワークインタフェース装置または無線インタフェース装置を含む。さらに、ホストコンピュータ１０は、使用者の操作を受け付ける入力手段と、情報を出力する出力手段とを備えてもよい。入力手段はたとえばキーボードおよびマウスを含む。出力手段はたとえば液晶ディスプレイ、スピーカおよびプリンタを含む。
【００１８】
ユーザ端末４０の内部構成についてはとくに図示しないが、ユーザ端末４０もまたコンピュータとしてのハードウェア構成を備える。たとえばユーザ端末４０は、演算を行う演算手段と、情報を格納する記憶手段と、使用者の操作を受け付ける入力手段と、情報を出力する出力手段と、外部の通信ネットワークに対し情報の入出力を行う通信手段とを備える。
【００１９】
図２に、ホストコンピュータ１０と仮想コンピュータ６０との関係を示す。仮想コンピュータ６０は、ホストコンピュータ１０のプロセッサ資源２１およびメモリ資源３１を利用して構成される、仮想的なコンピュータである。仮想コンピュータ６０は、ホストコンピュータ１０が所定の仮想環境プログラムを実行することにより実現することが可能である。なお、「ホストコンピュータ１０が仮想コンピュータ６０のための仮想環境プログラムを実行する」ということは、「仮想コンピュータ６０がホストコンピュータ１０に配置される」と表現することもできる。
【００２０】
仮想コンピュータ６０を実現するための具体的なプログラム等は、公知のものを用いてもよく、当業者が適宜設計可能なものを用いてもよい。
【００２１】
ここで、１台のホストコンピュータ１０に複数の仮想コンピュータ６０が配置される場合には、各仮想コンピュータ６０はホストコンピュータ１０の資源を分け合うことになる。この場合には、プロセッサ資源２１およびメモリ資源３１の双方について、各仮想コンピュータ６０の要求資源量の合計がホストコンピュータ１０の利用可能資源量を超えないように、仮想コンピュータ６０の配置が行われる。
【００２２】
図３に、ホストコンピュータ１０に対する仮想コンピュータ６０の配置の具体例を示す。３台のホストコンピュータ１０ａ〜１０ｃは、それぞれホスト名「ＨＯＳＴ００１」、「ＨＯＳＴ００２」および「ＨＯＳＴ００３」という名称で参照されるホストコンピュータである。４台の仮想コンピュータ６０ａ〜６０ｄは、それぞれ仮想コンピュータ名「ＶＤ００１」、「ＶＤ００６」、「ＡＰＰ００３」および「ＭＡ１」という名称で参照される仮想コンピュータである。
【００２３】
ＨＯＳＴ００１にはＶＤ００１およびＭＡ１が配置されており、ＨＯＳＴ００２にはＶＤ００６およびＡＰ００３が配置されており、ＨＯＳＴ００３にはいかなる仮想コンピュータも配置されていない。
【００２４】
このような配置は、制御用コンピュータによって制御される。制御用コンピュータは、少なくとも１台のホストコンピュータ１０の、プロセッサ資源２１およびメモリ資源３１からなる資源を、複数の仮想コンピュータ６０に割り当てる配分を決定することにより、仮想コンピュータ６０の配置を決定する。
【００２５】
制御用コンピュータ（仮想コンピュータ管理サーバ）は、どのように構成されてもよいが、本実施形態では仮想コンピュータ６０の１つとして構成される。たとえば図３のＭＡ１が制御用コンピュータとして機能する。ここで、仮想コンピュータ６０を制御用コンピュータとして機能させるための制御用プログラムは、たとえば対応するホストコンピュータ１０の記憶手段３０に、メモリ資源３１を使用して格納される。
【００２６】
なお、制御用コンピュータの機能を実現する仮想コンピュータ６０は、ホストコンピュータ１０のプロセッサ資源２１およびメモリ資源３１を利用して構成されているので、制御用コンピュータはホストコンピュータ１０によって構成されるということもできる。すなわち、制御用プログラムは、ホストコンピュータ１０（またはその一部）を制御用コンピュータとして機能させるということもできる。
【００２７】
制御用コンピュータは、本明細書に記載される資源配分決定方法を実行することにより、各仮想コンピュータ６０に対する資源の配分を決定する。また、制御用コンピュータは、決定された配分に基づき、本明細書に記載される資源割り当て方法を実行することにより、各仮想コンピュータ６０に対して資源を割り当てる。資源を割り当てられた仮想コンピュータ６０は、対応するホストコンピュータ１０上で実現されることになる。さらに、制御用コンピュータは、決定された配分に基づき、本明細書に記載される資源解放方法を実行することにより、各仮想コンピュータ６０から資源を解放する。解放された資源は、そのホストコンピュータ１０上で他の仮想コンピュータ６０を実現するために利用することが可能となる。
【００２８】
また、本発明に係る資源配分決定プログラムは、コンピュータに、本明細書に記載される資源配分決定方法を実行させることにより、当該コンピュータを、本明細書に記載される制御用コンピュータ（たとえば図３の仮想コンピュータ「ＭＡ１」）として機能させる。
【００２９】
制御用コンピュータは、資源を管理するための情報を記憶する。図４〜図６にこれらの情報の構成の例を示す。これらの情報は、制御用コンピュータに対応する仮想コンピュータ６０に割り当てられたメモリ資源３１に格納されるということもでき、その仮想コンピュータ６０が配置されたホストコンピュータ１０の記憶手段３０に格納されるということもできる。
【００３０】
図４は、仮想コンピュータ構成情報Ｄ１の構成の例を示す。仮想コンピュータ構成情報Ｄ１は、各仮想コンピュータについて、その仮想コンピュータの設定値および稼働状況を関連付ける。設定値は、要求資源量およびグループを含む。また、設定値はさらにホストを含んでもよい。
【００３１】
要求資源量は、その仮想コンピュータがあるホストコンピュータ上で稼働するために必要な資源の量を表す。たとえば仮想コンピュータ「ＶＤ００１」を実現するためには、０．２個（０．２コア）のプロセッサ資源と、４ＧＢのメモリ資源とが必要となる。
【００３２】
グループは、その仮想コンピュータが属するグループを識別する情報である。図４の例では３個のグループが定義されており、たとえば「ＶＤ」というグループには６台の仮想コンピュータ「ＶＤ００１」〜「ＶＤ００６」が属する。後述するように、制御用コンピュータは、各仮想コンピュータに対する資源の配分を、その仮想コンピュータが属するグループに基づいて決定する。
【００３３】
図４の例では、「ＶＤ」グループ、「ＡＰＰ」グループおよび「ＭＡ」グループが定義されている。「ＶＤ」グループは、たとえば仮想デスクトップのための仮想コンピュータに対応し、「ＡＰＰ」グループは、たとえばアプリケーションプログラムのための仮想コンピュータに対応し、「ＭＡ」グループは、たとえば制御用コンピュータのための仮想コンピュータに対応する。各グループにはそれぞれ少なくとも１台の仮想コンピュータが属する。本実施形態では、１台の仮想コンピュータが複数のグループに同時に属することはない（すなわち各仮想コンピュータは最大で１つのグループに属する）。
【００３４】
また、図４から明らかなように、要求資源量は、グループごとに異なる場合があるが、各グループに属するすべての仮想コンピュータについて同一の値である。すなわち、要求資源量は各グループに係る値として定義される。したがってたとえば仮想コンピュータ構成情報Ｄ１は、仮想コンピュータごとの情報を含む部分と、グループごとの情報を含む部分とに分割することが可能である。また、そのように分割する場合には、要求資源量を表す情報は、仮想コンピュータごとの情報には含まれず、グループごとの情報にのみ含まれるよう構成することも可能である。
【００３５】
ホストは、その仮想コンピュータが通常配置されるホストコンピュータを識別する情報である。たとえば、「ＶＤ００１」は、通常は「ＨＯＳＴ００１」に配置される。なお、後述するように、仮想コンピュータが設定値とは異なるホストコンピュータに配置される場合もある。
【００３６】
ここで、複数の仮想コンピュータについて同一のホストコンピュータを関連付けることが可能である。言い換えると、少なくとも１台（図４の例では２台）のホストコンピュータについて、それぞれ複数の仮想コンピュータを関連付けることが可能である。
【００３７】
稼働状況は、その仮想コンピュータが現在配置されているホストコンピュータを識別する情報を含む。図４の例は、図３に示す具体的配置に対応する。
【００３８】
図５は、ホスト構成情報Ｄ２の構成の例を示す。ホスト構成情報Ｄ２は、各ホストコンピュータについて、そのホストコンピュータの利用可能資源量を関連付ける。図５の例では、３台のホストコンピュータのいずれも、８個のプロセッサ資源と、１６ＧＢのメモリ資源とを備えている。
【００３９】
図５には示さないが、ホスト構成情報Ｄ２はさらに、各ホストコンピュータについて、稼働状況を表す情報を関連付けてもよい。稼働状況は、利用中資源量と、空き資源量とを含んでもよい。利用中資源量は、たとえば、利用可能な資源のうち、仮想コンピュータが実際に使用している資源の量（本発明に従って配分すると決定した資源量と一致する必要はない）を表す。空き資源量は、たとえば、利用可能資源量から利用中資源量を減算した値を表す。
【００４０】
図６は、仮想コンピュータ稼働情報Ｄ３の構成の例を示す。仮想コンピュータ稼働情報Ｄ３は、少なくとも１つのグループ（たとえば「ＶＤ」グループ）に属する各仮想コンピュータについて、稼働状況を表す情報を関連付ける。稼働状況を表す情報は、たとえば、セッション数およびセッション状態を含む。セッション数が１以上である場合にはセッション状態はアクティブであり、セッション数が０である場合にはセッション状態は非接続（すなわちアクティブでない状態）となる。
【００４１】
図６の例では、仮想コンピュータ「ＶＤ００１」「ＶＤ００３」および「ＶＤ００５」にはそれぞれ１本、２本および１本のセッションが関連付けられているが、「ＶＤ００２」「ＶＤ００４」および「ＶＤ００６」にはセッションが関連付けられていない。言い換えると、「ＶＤ００１」「ＶＤ００３」および「ＶＤ００５」はそれぞれ１人、２人および１人のユーザが（たとえばユーザ端末４０を介して）利用中であるが、「ＶＤ００２」「ＶＤ００４」および「ＶＤ００６」はいかなるユーザも利用していない。
【００４２】
仮想コンピュータ稼働情報Ｄ３は、グループごとに異なる構成をもって定義されてもよい。たとえば「ＡＰＰ」グループに属する各仮想コンピュータについては、アプリケーションプログラムを実行中であるか否かを表す情報を関連付けるものであってもよい。
【００４３】
図６には示さないが、仮想コンピュータ稼働情報Ｄ３はさらに、各仮想コンピュータについて、割り当てられているプロセッサ資源の量、割り当てられているメモリ資源の量、割り当てられているネットワーク資源の量、割り当てられているディスク容量、仮想コンピュータのステータス、等を関連付けてもよい。
【００４４】
以上のように構成される制御用コンピュータの動作を、以下に説明する。上述のように、制御用コンピュータは、仮想コンピュータ構成情報Ｄ１、ホスト構成情報Ｄ２および仮想コンピュータ稼働情報Ｄ３を記憶する。したがって、本発明に係る方法は、制御用コンピュータが、各ホストコンピュータの利用可能資源量と、各グループに係る要求資源量とを記憶するステップを備えるということができる。また、本発明に係る方法は、制御用コンピュータが、少なくとも１台のホストコンピュータについて、複数の仮想コンピュータを関連付けて記憶するステップを備えるということができる。
【００４５】
なお、仮想コンピュータ構成情報Ｄ１、ホスト構成情報Ｄ２および仮想コンピュータ稼働情報Ｄ３における稼働状況を表す情報を収集するための構成は、当業者が適宜設計可能なものであってもよい。たとえば制御用コンピュータが稼働状況を監視し、定期的に情報を取得して記録してもよい。
【００４６】
図７〜図１０は、制御用コンピュータの処理の流れを表すフローチャートである。制御用コンピュータ（より厳密には、制御用コンピュータを構成するプロセッサまたはプロセッサ資源）は、これらのフローチャートが表す処理によって、複数の仮想コンピュータに資源を割り当てる配分を決定する。図７〜１０の各処理は、たとえばそれぞれ定期的に実行される。
【００４７】
各グループに対する配分を決定するための条件は、グループごとに異なり得る。すなわち、これらの条件はグループに対応する。また、あるグループに属する仮想コンピュータに対して資源を割り当てるための条件（割当条件）と、そのグループに属する仮想コンピュータから資源を解放するための条件（解放条件）とは異なり得る。
【００４８】
図７は、制御用コンピュータが、あるグループ（第１グループ）に属する仮想コンピュータに対して資源を割り当てるための処理を表す。まず制御用コンピュータは、第１グループに属する仮想コンピュータに資源を割り当てるか否かを、第１割当条件に基づいて決定する（ステップＳ１１）。
【００４９】
たとえば、第１割当条件は時刻または時間に関連する条件を含む。具体例として、「ＶＤ」グループに対応する割当条件は、「時刻が９：００を経過した」というものである。または、「ＶＤ」グループに対応する割当条件は、「時刻が９：００を経過しており、かつ２１：００を経過していない」というものとしてもよい。
【００５０】
図４の例に沿って説明すると、９：００を経過した時点で、ホストコンピュータ「ＨＯＳＴ００１」の資源が仮想コンピュータ「ＶＤ００１」〜「ＶＤ００５」に割り当てられ、ホストコンピュータ「ＨＯＳＴ００２」の資源が仮想コンピュータ「ＶＤ００６」に割り当てられることになる。すなわち、「ＶＤ００１」〜「ＶＤ００５」の５台はいずれも「ＨＯＳＴ００１」に配置され、「ＶＤ００６」は「ＨＯＳＴ００２」に配置されることになる。
【００５１】
ステップＳ１１において、仮想コンピュータに資源を割り当てると決定した場合には、制御用コンピュータは、いずれかのホストコンピュータ（たとえば仮想コンピュータ構成情報Ｄ１においてその仮想コンピュータに関連付けられたホストコンピュータ）の資源をその仮想コンピュータに割り当てる（ステップＳ１２）。
【００５２】
ステップＳ１１において、仮想コンピュータに資源を割り当てないと決定した場合には、制御用コンピュータは、その仮想コンピュータについてはステップＳ１２を実行しない。すなわち、いずれのホストコンピュータの資源も割り当てない。
【００５３】
制御用コンピュータは、ステップＳ１１およびＳ１２を、第１グループに属するすべての仮想コンピュータについて繰り返し実行する。このようにして、制御用コンピュータは、各仮想コンピュータに対する資源の配分を、その仮想コンピュータが属するグループに基づいて決定する。
【００５４】
なお、決定された配分を実現する処理（図７の例ではステップＳ１２）の実行タイミングは、適宜変更可能である。たとえばすべての仮想コンピュータについて配分を決定（ステップＳ１１）した後に、資源を割り当てると決定された仮想コンピュータについて配分を実現または変更（ステップＳ１２）するよう構成してもよい。
【００５５】
図８は、制御用コンピュータが、第１グループとは異なるグループ（第２グループ）に属する仮想コンピュータに対して資源を割り当てるための処理を表す。まず制御用コンピュータは、第２グループに属する仮想コンピュータに資源を割り当てるか否かを、第２割当条件に基いて決定する（ステップＳ２１）。
【００５６】
たとえば、第２割当条件は時刻または時間に関連する条件を含む。具体例として、「ＡＰＰ」グループに対応する割当条件は、「時刻が２１：００を経過した」というものである。または、「ＡＰＰ」グループに対応する割当条件は、「時刻が２１：００を経過しており、かつ翌日の９：００を経過していない」というものとしてもよい。
【００５７】
図４の例に沿って説明すると、２１：００を経過した時点で、ホストコンピュータ「ＨＯＳＴ００１」の資源が仮想コンピュータ「ＡＰ００１」および「ＡＰ００２」に割り当てられ、ホストコンピュータ「ＨＯＳＴ００２」の資源が仮想コンピュータ「ＡＰ００３」に割り当てられることになる。すなわち、「ＡＰ００１」および「ＡＰ００２」はいずれも「ＨＯＳＴ００１」に配置され、「ＡＰ００３」は「ＨＯＳＴ００２」に配置されることになる。
【００５８】
ステップＳ２１において、仮想コンピュータに資源を割り当てると決定した場合には、制御用コンピュータは、いずれかのホストコンピュータ（たとえば仮想コンピュータ構成情報Ｄ１においてその仮想コンピュータに関連付けられたホストコンピュータ）の資源をその仮想コンピュータに割り当てる（ステップＳ２２）。
【００５９】
ステップＳ２１において、仮想コンピュータに資源を割り当てないと決定した場合には、制御用コンピュータは、その仮想コンピュータについてはステップＳ２２を実行しない。すなわち、いずれのホストコンピュータの資源も割り当てない。
【００６０】
制御用コンピュータは、ステップＳ２１およびＳ２２を、第２グループに属するすべての仮想コンピュータについて繰り返し実行する。このようにして、制御用コンピュータは、各仮想コンピュータに対する資源の配分を、その仮想コンピュータが属するグループに基づいて決定する。
【００６１】
図９は、制御用コンピュータが、あるグループ（第１グループ）に属する仮想コンピュータから資源を解放するための処理を表す。まず制御用コンピュータは、第１グループに属する仮想コンピュータに割り当てられていた資源を解放するか否かを、第１解放条件に基づいて決定する（ステップＳ３１）。
【００６２】
たとえば、第１解放条件は時刻または時間に関連する条件を含む。具体例として、「ＶＤ」グループに対応する解放条件は、「時刻が２１：００を経過した」というものである。または、「ＶＤ」グループに対応する割当条件は、「時刻が２１：００を経過しており、かつ翌日の９：００を経過していない」というものとしてもよい。
【００６３】
図４の例に沿って説明すると、２１：００を経過した時点で、仮想コンピュータ「ＶＤ００１」〜「ＶＤ００６」のすべて（厳密には、これらのうち資源が割り当てられているもの）から資源が解放される。すなわち、「ＶＤ００１」〜「ＶＤ００６」の６台はいずれも、いかなるホストコンピュータにも配置されなくなる。
【００６４】
第１解放条件は、時刻または時間に関連する条件を含まないものであってもよく、また、他の条件を含んでもよい。
【００６５】
ステップＳ３１において、仮想コンピュータから資源を解放すると決定した場合には、制御用コンピュータは、その仮想コンピュータに割り当てられていた資源を解放する（ステップＳ３２）。仮想コンピュータから資源を解放しないと決定した場合には、制御用コンピュータは、その仮想コンピュータについてはステップＳ３２を実行しない。
【００６６】
制御用コンピュータは、ステップＳ３１およびＳ３２を、第１グループに属するすべての仮想コンピュータについて繰り返し実行する（ただし、実行時点でいずれのホストコンピュータの資源も割り当てられていない仮想コンピュータについては、処理を省略してもよい）。このようにして、制御用コンピュータは、各仮想コンピュータに対する資源の配分を、その仮想コンピュータが属するグループに基づいて決定する。
【００６７】
図１０は、制御用コンピュータが、第１グループとは異なるグループ（第２グループ）に属する仮想コンピュータから資源を解放するための処理を表す。まず制御用コンピュータは、第２グループに属する仮想コンピュータに割り当てられていた資源を解放するか否かを、第２解放条件に基づいて決定する（ステップＳ４１）。
【００６８】
たとえば、第２解放条件は時刻または時間に関連する条件を含む。具体例として、「ＡＰＰ」グループに対応する解放条件は、「時刻が９：００を経過した」というものである。または、「ＡＰＰ」グループに対応する割当条件は、「時刻が９：００を経過しており、かつ２１：００を経過していない」というものとしてもよい。
【００６９】
図４の例に沿って説明すると、９：００を経過した時点で、仮想コンピュータ「ＡＰ００１」〜「ＡＰ００３」のすべて（厳密には、これらのうち資源が割り当てられているもの）から資源が解放される。すなわち、「ＡＰ００１」〜「ＡＰ００３」の３台はいずれも、いかなるホストコンピュータにも配置されなくなる。
【００７０】
第２解放条件は、時刻または時間に関連する条件を含まないものであってもよく、また、他の条件を含んでもよい。
【００７１】
ステップＳ４１において、仮想コンピュータから資源を解放すると決定した場合には、制御用コンピュータは、その仮想コンピュータに割り当てられていた資源を解放する（ステップＳ４２）。仮想コンピュータから資源を解放しないと決定した場合には、制御用コンピュータは、その仮想コンピュータについてはステップＳ４２を実行しない。
【００７２】
制御用コンピュータは、ステップＳ４１およびＳ４２を、第２グループに属するすべての仮想コンピュータについて繰り返し実行する（ただし、実行時点でいずれのホストコンピュータの資源も割り当てられていない仮想コンピュータについては、処理を省略してもよい）。このようにして、制御用コンピュータは、各仮想コンピュータに対する資源の配分を、その仮想コンピュータが属するグループに基づいて決定する。
【００７３】
以上説明するように、本発明の実施の形態１に係るコンピュータ資源配分決定方法、制御用コンピュータおよびコンピュータ資源配分決定プログラムによれば、資源の配分をグループに基づいて決定するので、資源配分の基準となる条件を柔軟かつ効率的に定義することができる。
【００７４】
たとえば図４の例では、１０台の仮想コンピュータを３つのグループに分類し、割当条件および解放条件をグループごとに設計することが可能なので、一律の定義ではなく柔軟な定義が可能となる。また、１０台の仮想コンピュータについて個別に定義する必要がないので、効率的な定義が可能となる。
【００７５】
上述の実施の形態１において、次のような変形を施すことができる。
資源を配分する際の単位は適宜変更可能である。また、資源を比率で表すか、または絶対値で表すかも適宜変更可能である。たとえばプロセッサ資源を絶対値（１個のプロセッサの使用時間等）で表してもよく、メモリ資源を比率（記憶手段３０全体のうち何％を割り当てるか等）で表してもよい。
【００７６】
また、各仮想コンピュータの要求資源量はどのように決定してもよいが、たとえば、使用資源量およびオーバーコミット率を用いて決定してもよい。たとえば図４に示す例は、「ＶＤ」グループについて、使用プロセッサ数が１個であり、使用メモリ量が４ＧＢであり、プロセッサ資源のオーバーコミット率が０．２であり、メモリ資源のオーバーコミット率が１．０である場合に相当する。
【００７７】
実施の形態１では、第１割当条件および第２割当条件は時刻または時間に関連する条件を含む。変形例として、これらの条件は、時刻または時間に関連する条件を含まないものであってもよく、また、他の条件を含むものであってもよい。たとえば第１割当条件は、時刻に関連する条件に加えて、資源量に関連する条件を含んでもよい。
【００７８】
たとえば、制御用コンピュータは、あるホストコンピュータから仮想コンピュータに対してすでに割り当てられた要求資源量の合計と、新たにステップＳ１１においてそのホストコンピュータから新たな仮想コンピュータに割り当てると決定された要求資源量との和が、そのホストコンピュータの利用可能資源量を超える場合には、他の条件に関わらず、その仮想コンピュータに資源を割り当てないと決定してもよい。
【００７９】
これを図３〜図５の例に沿って説明する。たとえばホストコンピュータ「ＨＯＳＴ００１」に仮想コンピュータ「ＭＡ１」がすでに配置され、他の仮想コンピュータは配置されていないとする。図４の例では、この時点で、「ＨＯＳＴ００１」の利用可能資源量であるプロセッサ資源８個およびメモリ資源１６ＧＢのうち、プロセッサ資源４個およびメモリ資源１２ＧＢが「ＭＡ１」に割り当てられていることになる。
【００８０】
ここで、制御用コンピュータが、第１割当条件に従って仮想コンピュータ「ＶＤ００１」を追加で配置すると決定したとする。この時点で、「ＨＯＳＴ００１」の利用可能資源量であるプロセッサ資源８個およびメモリ資源１６ＧＢから、２台の仮想コンピュータの要求資源量の合計であるプロセッサ資源４．２個およびメモリ資源１６ＧＢが割り当てられ、メモリ資源はすべてが割り当て済みとなる。
【００８１】
この状態で、さらに仮想コンピュータ「ＶＤ００２」についてステップＳ１１が実行されるが、「ＶＤ００２」を「ＨＯＳＴ００１」に配置しようとすると、要求資源量の合計が利用可能資源量を超えることになる。このため、制御用コンピュータは「ＶＤ００２」には資源を割り当てないと決定する。
【００８２】
第１割当条件をこのように設定すると、制御用コンピュータは、各仮想コンピュータに対する資源の配分を、ホストコンピュータの利用可能資源量および各仮想コンピュータの要求資源量に基づいて決定することができる。
【００８３】
第２割当条件も同様に、時刻または時間に関連する条件を含まないものであってもよく、また、他の条件を含んでもよい。たとえば、第２割当条件は、第１割当条件と同様に、ホストコンピュータの利用可能資源量と、仮想コンピュータの要求資源量とに関連する条件を含んでもよい。
【００８４】
実施の形態１では、第１解放条件および第２解放条件は時刻または時間に関連する条件を含む。変形例として、これらの条件は、時刻または時間に関連する条件を含まないものであってもよく、また、他の条件を含むものであってもよい。たとえば第１解放条件または第２解放条件は、各仮想コンピュータに対するセッション数に関連する条件を含んでもよい。
【００８５】
具体例として、制御用コンピュータは、仮想コンピュータ稼働情報Ｄ３に基づいてセッション数およびセッション状態を取得し、これらに基づいて配分を決定してもよい。たとえば、第１解放条件は、必要条件の一部として、「その仮想コンピュータのセッション数が０であり、かつ、その仮想コンピュータのセッション状態が非接続である」という条件を含んでもよい。この条件は、たとえば、その仮想コンピュータを利用中であるユーザが存在しない場合に該当する。
【００８６】
このような変形例によれば、時刻が２１：００を過ぎた場合であっても、セッション数が１以上ある仮想コンピュータや、セッション状態がアクティブである仮想コンピュータからは資源が解放されないので、その仮想コンピュータは継続して稼働可能となる。したがって、仮想コンピュータのセッションを利用中のユーザが、ログアウト前に突然セッションを切断されるということが回避でき、ユーザの利便性が向上する。
【００８７】
別の変形例として、たとえば第１解放条件または第２解放条件は、各仮想コンピュータがアプリケーションプログラムを実行中であるか否かに関連する条件を含んでもよい。
【００８８】
具体例として、制御用コンピュータは、「ＡＰＰ」グループに属する各仮想コンピュータの稼働状況を監視し、これに基づいて配分を決定してもよい。たとえば、第２解放条件は、必要条件の一部として、「その仮想コンピュータがアプリケーションプログラムを実行中でないこと」という条件を含んでもよい。
【００８９】
このような変形例によれば、時刻が９：００を過ぎた場合であっても、アプリケーションプログラムを実行中である仮想コンピュータからは資源が解放されないので、その仮想コンピュータは継続して稼働可能となる。したがって、アプリケーションプログラムの実行を完了することができるので、たとえばシステムの安定性が高まる。
【００９０】
実施の形態１では、ホストコンピュータと仮想コンピュータとの対応関係は固定されている。すなわち、たとえば仮想コンピュータ構成情報Ｄ１において、稼働状況を表す値は、設定値と一致するか、または「なし」かのいずれかである。変形例として、ホストコンピュータが少なくとも２台存在する場合に、対応関係を動的に変更できるよう構成してもよい。たとえば、仮想コンピュータ構成情報Ｄ１における設定値とは異なるホストコンピュータから資源を割り当てるよう構成してもよい。
【００９１】
たとえば、制御用コンピュータが、仮想コンピュータのいずれかに、あるホストコンピュータ（第１ホストコンピュータ）の資源を割り当てないと決定した場合に、その仮想コンピュータに別のホストコンピュータ（第２ホストコンピュータ）の資源を割り当てるか否かを決定するよう構成してもよい。このような決定は、資源量に基づいて行われてもよい。
【００９２】
図１１は、このような変形例に係る制御用コンピュータの処理の流れを表すフローチャートである。この処理は図７の処理に代えて実行される。まず、制御用コンピュータは、実施の形態１と同様にしてステップＳ１１を実行し、第１割当条件に基づいて、仮想コンピュータに資源を割り当てるか否かを決定する。
【００９３】
資源を割り当てると決定した場合には、制御用コンピュータは、第１ホストコンピュータの利用可能資源量と、各仮想コンピュータの要求資源量とに基づき、各仮想コンピュータに第１ホストコンピュータの資源を割り当てるか否かを決定する（ステップＳ５１）。この判定に用いる要求資源量は、たとえば、すでに第１ホストコンピュータに配置されている仮想コンピュータの要求資源量の合計と、処理中の仮想コンピュータの要求資源量との和である。
【００９４】
ステップＳ５１において、仮想コンピュータに第１ホストコンピュータの資源を割り当てると決定した場合には、制御用コンピュータは、第１ホストコンピュータの資源をその仮想コンピュータに割り当てる（ステップＳ５３）。
【００９５】
ステップＳ５１において、仮想コンピュータに第１ホストコンピュータの資源を割り当てないと決定した場合には、制御用コンピュータは、第２ホストコンピュータの利用可能資源量と、各仮想コンピュータの要求資源量とに基づき、その仮想コンピュータに第２ホストコンピュータの資源を割り当てるか否かを決定する（ステップＳ５２）。この判定に用いる要求資源量は、たとえば、すでに第２ホストコンピュータに配置されている仮想コンピュータの要求資源量の合計と、処理中の仮想コンピュータの要求資源量との和である。
【００９６】
ステップＳ５２において、仮想コンピュータに第２ホストコンピュータの資源を割り当てると決定した場合には、制御用コンピュータは、第２ホストコンピュータの資源をその仮想コンピュータに割り当てる（上述のステップＳ５３）。割り当てないと決定した場合には、制御用コンピュータは、その仮想コンピュータには、第１ホストコンピュータおよび第２ホストコンピュータのいずれの資源も割り当てない。
【００９７】
たとえば、図３に示すように、ホストコンピュータ「ＨＯＳＴ００１」に仮想コンピュータ「ＶＤ００１」および「ＭＡ１」がすでに配置されているとする。この時点で、「ＨＯＳＴ００１」の利用可能資源量であるプロセッサ資源８個およびメモリ資源１６ＧＢのうち、「ＶＤ００１」および「ＭＡ１」の要求資源量の合計として、プロセッサ資源４．２個およびメモリ資源１６ＧＢが割り当てられている。
【００９８】
ここで、制御用コンピュータが、仮想コンピュータ「ＶＤ００２」についてステップＳ５１を実行し、「ＨＯＳＴ００１」の資源を「ＶＤ００２」に割り当てるか否かを決定する。「ＶＤ００１」および「ＭＡ１」に「ＶＤ００２」が加わると、要求資源量の合計は、プロセッサ資源４．４個およびメモリ資源２０ＧＢとなる。この要求メモリ資源量（２０ＧＢ）は「ＨＯＳＴ００１」の利用可能メモリ資源量（１６ＧＢ）を超えているので、制御用コンピュータは、「ＶＤ００２」に「ＨＯＳＴ００１」の資源を割り当てないと決定する。
【００９９】
次に、制御用コンピュータは、「ＶＤ００２」についてステップＳ５２を実行し、別のホストコンピュータ（この例では「ＨＯＳＴ００３」とする）の資源を割り当てるか否かを決定する。ここでは、「ＨＯＳＴ００３」の資源はいかなる仮想コンピュータにも割り当てられておらず、「ＶＤ００２」の要求資源量は、プロセッサ資源およびメモリ資源のいずれについても「ＨＯＳＴ００３」の利用可能資源量を超えないので、「ＨＯＳＴ００３」の資源を「ＶＤ００２」に割り当てると決定する。
【０１００】
このような変形例によれば、空いているホストコンピュータの資源を有効に活用することができる。
【０１０１】
図１１の例では、２台のホストコンピュータについてのみ処理が実行されるが、３台以上のホストコンピュータについて同様に処理を実行してもよい。たとえば、ステップＳ５２において、仮想コンピュータに第２ホストコンピュータの資源を割り当てないと決定した場合には、制御用コンピュータは、第３ホストコンピュータの利用可能資源量と、その仮想コンピュータの要求資源量とに基づき、その仮想コンピュータに第３ホストコンピュータの資源を割り当てるか否かを決定してもよい。
【０１０２】
なお、ホストコンピュータが３台以上存在する場合の、ホストコンピュータの判定順序（たとえばどのホストコンピュータを第２ホストコンピュータとして選択するかの基準）は、当業者が適宜設計可能なものであってもよい。たとえば、すでに割り当てられている資源量が最も大きいものを選択してもよく（この場合には、多数の仮想コンピュータを少数のホストコンピュータに集約することができる）、すでに割り当てられている資源量が最も小さいものを選択してもよい（この場合には、ホストコンピュータ間のロードバランシングを適切に行うことができる）。この際の資源量の比較には、プロセッサ資源のみを用いてもよいし、メモリ資源のみを用いてもよいし、双方に基づく関数（重みづけ和等）を用いてもよい。
【０１０３】
実施の形態１では、制御用コンピュータは、各仮想コンピュータにいずれかのホストコンピュータの資源を割り当てると決定した場合には、その後その仮想コンピュータの配置を変更しない。変形例として、制御用コンピュータは、各ホストコンピュータに対する各仮想コンピュータの再配置処理を行ってもよい。
【０１０４】
再配置処理とは、ある仮想コンピュータにあるホストコンピュータの資源を割り当てると決定されている場合において、その決定を取り消し、その仮想コンピュータに、そのホストコンピュータの資源ではなく、別のホストコンピュータの資源を割り当てると決定することを意味する。
【０１０５】
図１２は、このような再配置処理の具体例を示す。図１２（ａ）は再配置処理の実行前の状況を示す。ホストコンピュータ「ＨＯＳＴ００１」に仮想コンピュータ「ＡＰ００１」および「ＶＤ００１」が配置されており、ホストコンピュータ「ＨＯＳＴ００２」に仮想コンピュータ「ＡＰ００２」が配置されている。図１２（ｂ）は再配置処理の実行後の状況を示す。この例では、「ＡＰ００２」が「ＨＯＳＴ００２」から「ＨＯＳＴ００１」に再配置されている。
【０１０６】
再配置処理は、たとえば図７のステップＳ１１の後、ステップＳ１２の前に実行される。また、再配置処理は、複数のグループに対して共通で実行されてもよい。その場合には、制御用コンピュータは、図７および図８の処理を並列的に実行し、ステップＳ１１およびステップＳ２１の後、ステップＳ１２およびステップＳ２２の前に再配置処理を実行してもよい。また、再配置処理は、資源の配分に係る決定処理のみならず、実際に割り当てる処理（たとえば図７のステップＳ１２）を含んでもよい。
【０１０７】
このような再配置処理は、たとえば制御用コンピュータが２台の仮想コンピュータにそれぞれ異なるホストコンピュータの資源を割り当てると決定した場合に実行される。すなわち、制御用コンピュータが、ある仮想コンピュータ（第１仮想コンピュータ）にあるホストコンピュータ（第３ホストコンピュータ）の資源を割り当てると決定し、かつ、別の仮想コンピュータ（第２仮想コンピュータ）に別のホストコンピュータ（第４ホストコンピュータ）の資源を割り当てると決定した場合に実行される。
【０１０８】
なお、この変形例において、第３ホストコンピュータまたは第４ホストコンピュータは、上述の第１ホストコンピュータまたは第２ホストコンピュータと同一であってもよい。
【０１０９】
再配置処理は、ホストコンピュータと仮想コンピュータとの対応関係を変更するか否かを決定する処理を含む。具体例として、再配置処理は、制御用コンピュータが、第１仮想コンピュータに第３ホストコンピュータの資源を割り当てることに代えて、第１仮想コンピュータに第４ホストコンピュータの資源を割り当てるか否かを決定する処理を含む。または、再配置処理は、制御用コンピュータが、第２仮想コンピュータに第４ホストコンピュータの資源を割り当てることに代えて、第２仮想コンピュータに第３ホストコンピュータの資源を割り当てるか否かを決定する処理を含む。
【０１１０】
図１２の例を用いて、このような決定処理の具体例を説明する。再配置処理において、まず制御用コンピュータは、各ホストコンピュータについて、配置されている仮想コンピュータの要求資源量の合計を計算し、この合計が最も小さいホストコンピュータを決定する。
【０１１１】
この際の合計の比較には、プロセッサ資源のみを用いてもよいし、メモリ資源のみを用いてもよいし、双方に基づく関数（重みづけ和等）を用いてもよい。ここではメモリ資源のみを用いるものとして説明する。
【０１１２】
図１２（ａ）の例では、要求資源量の合計としてメモリ資源の合計を比較すると、「ＨＯＳＴ００１」では８ＧＢ、「ＨＯＳＴ００２」では４ＧＢとなっており、「ＨＯＳＴ００２」のほうが合計が小さい。
【０１１３】
この場合には、制御用コンピュータは、「ＨＯＳＴ００２」に配置されている仮想コンピュータのそれぞれについて、再配置処理を実行する。たとえば、「ＡＰ００２」に「ＨＯＳＴ００２」の資源を割り当てることに代えて、「ＡＰ００２」に「ＨＯＳＴ００１」の資源を割り当てるか否かを決定する。
【０１１４】
たとえば、制御用コンピュータは、「ＨＯＳＴ００１」から「ＡＰ００１」および「ＶＤ００１」に対してすでに割り当てられた要求資源量の合計（１．２個および８ＧＢ）と、再配置処理中の仮想コンピュータ「ＡＰ００２」に割り当てられるべき要求資源量（１個および４ＧＢ）との和（２．２個および１２ＧＢ）が、「ＨＯＳＴ００１」の利用可能資源量（８個および１６ＧＢ）を超えるか否かを判定する。
【０１１５】
図１２の例では、プロセッサ資源についてもメモリ資源についても、要求資源量の和が利用可能資源量を超えないので、制御用コンピュータは「ＡＰ００２」を再配置すると決定する。なお、プロセッサ資源またはメモリ資源のいずれかについて、要求資源量の和が利用可能資源量を超える場合には、制御用コンピュータはそのような再配置を行わないと決定する。
【０１１６】
このような決定に基づき、制御用コンピュータは図１２（ｂ）に示すように再配置処理を実行する。再配置処理は、上記のような決定処理に加え、「ＨＯＳＴ００２」の資源を「ＡＰ００２」から解放する処理と、「ＨＯＳＴ００１」の資源を「ＡＰ００２」に割り当てる処理とを含んでもよい。
【０１１７】
図１２の例によれば、このようにして、２台のホストコンピュータに分散配置されていた仮想コンピュータが、１台の仮想コンピュータに集約される。
【０１１８】
このような再配置処理によれば、仮想コンピュータの集約が可能となるので、ホストコンピュータの効率的な運用が可能である。たとえば、あるホストコンピュータの資源がすべて解放された場合には、そのホストコンピュータ全体の動作を停止させることが可能となる。ホストコンピュータを停止することにより、消費電力が低減される。また、動作を停止したホストコンピュータについて、保守作業等の自由度が向上する。
【０１１９】
実施の形態１では、制御用コンピュータは、ある仮想コンピュータの配置を決定する際に、他の仮想コンピュータを再配置することはしない。変形例として、制御用コンピュータは、そのような再配置を行ってもよい。
【０１２０】
図１３は、このような再配置処理の具体例を示す。図１３（ａ）は再配置処理の実行前の状況を示す。ホストコンピュータ「ＨＯＳＴ００１」（第５ホストコンピュータ）に仮想コンピュータ「ＶＤ００１」〜「ＶＤ００４」の４台が配置されており、ホストコンピュータ「ＨＯＳＴ００２」に仮想コンピュータ「ＡＰ００２」が配置されている。
【０１２１】
図１３（ａ）の状況では、「ＨＯＳＴ００１」のメモリ資源がすべて割り当てられており、他の仮想コンピュータを「ＨＯＳＴ００１」に配置することができない。このため、たとえば「ＡＰ００１」（第３仮想コンピュータ）について図１１のステップＳ１１およびＳ５１が実行されると、制御用コンピュータは「ＡＰ００１」に「ＨＯＳＴ００１」の資源を割り当てないと決定する。
【０１２２】
本変形例では、制御用コンピュータは、いずれかの仮想コンピュータ（たとえば「ＡＰ００１」）に、いずれかのホストコンピュータ（たとえば「ＨＯＳＴ００１」）の資源を割り当てないと決定した場合に、そのホストコンピュータの資源を割り当てられている仮想コンピュータのいずれか（たとえば「ＶＤ００１」。第４仮想コンピュータ）について、割り当てられていた資源を解放するとともに、他のホストコンピュータ（たとえば「ＨＯＳＴ００２」。第６ホストコンピュータ）の資源を割り当てると決定する。この決定は、図１１のステップＳ５１と同様の判定の結果として、条件を満たした場合のみ行われるものであってもよい。
【０１２３】
図１３（ｂ）は、このような決定の結果を示す。「ＶＤ００１」が「ＨＯＳＴ００１」から「ＨＯＳＴ００２」に再配置され、その結果として、「ＨＯＳＴ００１」に配置されている仮想コンピュータの要求資源量の合計が減少することになる。
【０１２４】
このような再配置処理の後、制御用コンピュータは、「ＡＰ００１」に「ＨＯＳＴ００１」の資源を割り当てると決定する。この決定は、図１１のステップＳ５１と同様の判定の結果として、条件を満たした場合のみ行われるものであってもよい。図１３（ｃ）は、このような決定の結果を示す。
【０１２５】
図１３の例では、「ＶＤ００１」を再配置した時点で「ＡＰ００１」の配置が可能になるが、「ＶＤ００１」を再配置しても依然として「ＡＰ００１」を配置できない場合には、他の仮想コンピュータ（たとえば「ＶＤ００２」）を対象として同様に再配置処理を繰り返してもよい。
【０１２６】
図１３の例では、「ＡＰ００１」に資源を割り当てるための処理に関して、「ＶＤ００１」が再配置処理の対象となっている。このような仮想コンピュータの選択は、たとえばグループに基づいて行われてもよい。たとえば、「ＡＰＰ」グループに資源を割り当てるための処理に関してはこのような再配置処理が実行されるが、「ＶＤ」グループに資源を割り当てるための処理に関してはこのような再配置処理が実行されないように構成してもよい。
【０１２７】
また、たとえば、「ＶＤ」グループは再配置処理の対象となるが、「ＡＰＰ」グループは再配置処理の対象とならないように構成してもよい。たとえば、図１３（ｃ）の状況において、さらに「ＨＯＳＴ００１」に別の仮想コンピュータを配置しようとする場合に、「ＶＤ００２」〜「ＶＤ００４」については、図１３（ｂ）における「ＶＤ００１」のような再配置処理の対象となるが、「ＡＰ００１」についてはそのような再配置処理の対象とならない。
【０１２８】
また、グループ内での再配置処理の対象となる仮想コンピュータの選択は、任意の基準で行うことができる。たとえば仮想コンピュータの名称の辞書順等を用いてもよい。
【０１２９】
また、再配置先のホストコンピュータ（図１３の例では「ＨＯＳＴ００２」）の選択は、任意の基準で行うことができる。たとえば仮想コンピュータの名称の辞書順等を用いてもよい。たとえば、「ＨＯＳＴ００１」以外のホストコンピュータとして「ＨＯＳＴ００２」および「ＨＯＳＴ００３」が存在する場合には、「ＨＯＳＴ００２」に再配置可能であれば「ＨＯＳＴ００２」に再配置し、「ＨＯＳＴ００２」に再配置可能でなく「ＨＯＳＴ００３」に再配置可能であれば「ＨＯＳＴ００３」に再配置するよう構成してもよい。
【０１３０】
なお、この変形例において、第５ホストコンピュータまたは第６ホストコンピュータは、上述の第１〜第４ホストコンピュータのいずれかと同一であってもよい。
【０１３１】
また、再配置処理の対象となる仮想コンピュータ（図１３の例では「ＶＤ００１」）がすでに稼働中である場合には、その仮想コンピュータを稼働させたまま再配置処理を行ってもよい。「稼働させたまま再配置処理を行う」とは、たとえば、その仮想コンピュータが実行している１つ以上のプログラムについて、再配置処理によってそのプログラムの実行結果が影響を受けないような態様で、再配置処理を行うことを意味する。より具体的には、ログインしているユーザのセッションが途切れたり、アプリケーションプログラムの実行においてエラーが発生したりという事象が、再配置処理に起因して発生するようなことがない態様で行われる。そのような再配置処理の具体的手順は、当業者が適宜設計可能なものを用いてもよい。
【０１３２】
このような再配置処理によれば、仮想コンピュータの配置の組み合わせがより柔軟に実現できる。とくに、再配置処理によって、全体で配置可能な仮想コンピュータの数が増加する場合がある。たとえば、要求資源量が大きい仮想コンピュータを配置する際に、要求資源量のより小さい仮想コンピュータを再配置すれば、そのような効果が得られる可能性がある。
【０１３３】
実施の形態１では、図４に示すグループ「ＭＡ」については、本発明によっては資源の配分変更がなされない。すなわち、一度配分された資源はそのまま割り当てられ続ける。このため、仮想コンピュータ「ＭＡ１」を本発明に係る制御用コンピュータとして用いる場合に好適である。しかしながら、変形例として、グループ「ＭＡ」についても同様に割当条件および解放条件を定義し、他のグループと同様に処理を行ってもよい。
【０１３４】
実施の形態１では、制御用コンピュータは仮想コンピュータの１つ（図３のＭＡ１）として構成されたが、仮想コンピュータとして構成する必要はない。たとえば制御用コンピュータのための専用のハードウェア（物理コンピュータ）を設け、これを通信ネットワーク５０に接続してもよい。
【０１３５】
実施の形態１では、資源はプロセッサ資源およびメモリ資源の双方を含む。変形例として、資源はプロセッサ資源またはメモリ資源のいずれか一方を含み、他方を含まないものであってもよい。その場合には、その他方については、本発明以外の技術によって配分が決定されてもよい。
【符号の説明】
【０１３６】
１０，１０ａ，１０ｂ，１０ｃ  ホストコンピュータ、２１  プロセッサ資源、３１  メモリ資源、６０，６０ａ，６０ｂ，６０ｃ，６０ｄ  仮想コンピュータ。
【図１】
0006374059.tif 000002
【図２】
0006374059.tif 000003
【図３】
0006374059.tif 000004
【図４】
0006374059.tif 000005
【図５】
0006374059.tif 000006
【図６】
0006374059.tif 000007
【図７】
0006374059.tif 000008
【図８】
0006374059.tif 000009
【図９】
0006374059.tif 000010
【図１０】
0006374059.tif 000011
【図１１】
0006374059.tif 000012
【図１２】
0006374059.tif 000013
【図１３】
0006374059.tif 000014