以下に添付図面を参照して、この発明にかかる情報処理装置、割当装置、情報処理方法、割当方法、情報処理プログラムおよび割当プログラムの実施の形態を詳細に説明する。以下では、情報処理装置としてサーバルーム内のサーバを採用し、割当装置としてサーバにVMを割り当てる制御サーバを採用する。
ここで、サーバに割り当てられるVMには、例えば、クライアントとの対話型である証券取引用のVMや、クライアントとの対話型ではない売上データの集計用のVMがある。対話型のVMのCPU利用率は、クライアントからの通信頻度や通信タイミングに依存するため、CPU利用率のピークの変動が大きく、かつ、変動のタイミングがランダムである。このような異なる種類のVMが同一サーバに割り当てられると、例えば、対話型のVMのCPU利用率が高いときでも売上データの集計用のVMが一定のCPUリソースを利用するため、サーバのリソースが逼迫する。
その結果、証券取引用のVMの性能が低下して、例えば、クライアントとの通信ができなくなることにより証券取引が失敗する場合がある。また、証券取引用のVMにCPUリソースが高いCPU利用率で使用され続けると、売上データの集計用のVMが規定の終了時刻までに終了せず、クライアントが集計結果を利用できずに不利益を被る場合がある。
本実施の形態の制御サーバは、証券取引用のVMの性能が低下しない条件、および売上データの集計用のVMが規定終了時刻までに終了する条件、の両方を満たすサーバに、各々のVMを割り当てる。そして、当該サーバは、割り当てられた各々のVMを1つのCPUにより実行する。この場合、当該サーバは、証券取引用のVMを、売上データの集計用のVMよりも優先して実行するようにする。
これにより、サーバは、CPUリソースを効率よく利用することができる。例えば、証券取引用のVMが高負荷の場合、サーバは、売上データの集計用のVMが利用していたCPUリソースを証券取引用のVMに利用させ、証券取引用のVMの性能を低下させずに実行することができる。また、サーバは、売上データの集計用のVMが規定終了時刻までに終了する条件を満たすため、証券取引用のVMを優先して実行しても、売上データの集計用のVMを規定終了時刻までに終了させることができる。
また、複数のVMを1台のサーバに割り当てた結果、VMが割り当てられていないサーバがあれば、当該サーバへの電力供給を停止して、サーバルームの消費電力を低減することができる。従って、サーバルーム内の稼働中のサーバが減少し、サーバルームの消費電力が低減される。
図1は、割当装置による情報処理装置へのVMの割り当ての内容を示す説明図である。図1において、制御サーバ100は、VMが割り当てられたサーバSの台数が少なくなるように、VMをサーバSに割り当てるコンピュータである。VMには、他の装置(例えばクライアント)と双方向通信により所定の処理を実行するVMや、規定終了時刻が設定された定型処理を実行するVMがある。
以下では、他の装置と双方向通信により所定の処理を実行するVMを「オンラインVM」と称す。オンラインVMには、例えば、上述した証券取引を行うVMがある。また、定型処理を実行するVMを「バッチVM」と称す。バッチVMには、例えば、上述した売上データの集計を行うVMがある。
ここで、オンラインVMは、クライアントと双方向通信により処理を実行するため、オンラインVMの性能低下が起こると、クライアントからの要求に対する処理やクライアントへの応答が遅れる場合がある。これにより、クライアントの利用者が不利益を被ったり、SLA違反が生じたりする場合がある。例えば、証券取引を行うVMの性能低下が起こった場合、クライアントの利用者の証券の買付や売却の作業が滞り、クライアントの利用者に損害を与えてしまう場合がある。
また、バッチVMには規定終了時刻が設定されているため、規定終了時刻までに終了しないと、バッチVMの処理結果の利用者が不利益を被ったり、SLA違反を生じる場合がある。例えば、売上データの集計を行うVMにおいて、翌営業日の営業開始に利用する売上データの集計が終了しない場合、利用者が営業を開始できなくなり、利用者に損害を与えてしまう。
そのため、制御サーバ100は、VMをサーバSに割り当てる場合、オンラインVMの性能低下を回避し、バッチVMが規定終了時刻までに終了し、かつ、VMが割り当てられたサーバSの台数が少なくなるようにする。制御サーバ100は、具体的には、例えば、下記式(1)および式(2)の条件を満たすサーバSに、VMを1つずつ割り当てていく。
上記式(1)は、バッチVMを規定終了時刻までに終了するための条件を示す。ここで、バッチVMの平均CPU利用率とは、バッチVMを規定終了時刻までに終了することが可能な最小の平均CPU利用率である。オンラインVMの平均CPU利用率とは、測定されたオンラインVMのCPU利用率から算出された平均値である。平均CPU利用率は制御サーバ100に格納されている。Piとは、サーバSのCPU利用率上限であり、サーバS内のCPUの数と1CPU当たりのCPU利用率の上限とを乗算した値である。
上記式(1)の条件は、具体的には、複数のオンラインVMの平均CPU利用率を考慮しても、複数のバッチVMの各々を規定終了時刻までに終了することが可能な最小の平均CPU利用率を、サーバSのCPU利用率上限以下に確保できることを示す。そのため、上記式(1)の条件を満たすサーバSは、バッチVMを規定終了時刻までに終了することができる。
上記式(2)は、オンラインVMの性能低下を回避するための条件を示す。ここで、σは、オンラインVMのCPU利用率の正規分布における標準偏差である。cは、標準偏差の倍数である。例えば、cは、c=1〜3の自然数が採用される。従って、「オンラインVMの平均CPU利用率+オンラインVMのCPU利用率のσ×c」とは、オンラインVMが高負荷になったときのCPU利用率である。
上記式(2)の条件は、具体的には、同時に複数のオンラインVMが高負荷になった場合であっても、オンラインVMのCPU利用率の和が、サーバSのCPU利用率上限以下になることを示す。そのため、上記式(2)の条件を満たすサーバSは、オンラインVM同士の競合を回避することができ、オンラインVMの性能低下を回避することができる。
サーバSは、割り当てられたVMを、自装置内のCPUのいずれかにより実行するコンピュータである。また、サーバSは、割り当てられたVMの中にオンラインVMがある場合、オンラインVMを優先して実行する。サーバSは、例えば、オンラインVMの実行には優先してCPUリソースを利用し、バッチVMの実行にはオンラインVMの実行に利用されていない余りのCPUリソースを利用する。これにより、サーバSは、オンラインVMの性能低下を回避することができる。なお、図1では、サーバSは、CPUを3つ有している。
図1の例では、制御サーバ100は、オンラインVM1、オンラインVM2、バッチVM3、およびバッチVM4を、サーバSに割り当てる。まず、制御サーバ100は、割当対象になるVMとして、オンラインVM1を選択する。ここで、オンラインVM1の平均CPU利用率は「30%」、オンラインVM1のCPU利用率の標準偏差σは「20%」、定数cは「3」とする。また、ここで、サーバS1,S2のCPU利用率上限Piは、1CPU当たりのCPU利用率の上限「80%」とCPUの数「3」を乗算した値「240%」とする。
制御サーバ100は、割当先になるサーバSとして、サーバS1を選択する。制御サーバ100は、選択したサーバS1にオンラインVM1を割り当てた場合に、サーバS1において上記式(1)および式(2)の条件を満たすか否かを判断する。上記式(1)の条件は「30%≦240%」となり、条件を満たしている。また、上記式(2)の条件は、「30%+20%×3=90%≦240%」となり、条件を満たしている。そのため、制御サーバ100は、オンラインVM1をサーバS1に割り当てる。
次に、制御サーバ100は、割当対象になるVMとして、オンラインVM2を選択する。ここで、オンラインVM2の平均CPU利用率は「30%」、オンラインVM2のCPU利用率の標準偏差σは「20%」、定数cは「3」とする。制御サーバ100は、VMが割り振られたサーバS数が少なくなるように、オンラインVM1を割当済みのサーバS1を、割当先になるサーバSとして選択する。制御サーバ100は、選択したサーバS1にオンラインVM2を割り当てた場合に、サーバS1において上記式(1)および式(2)の条件を満たすか否かを判断する。
ここで、上記式(1)は、「30%+30%=60%≦240%」となるため、式(1)の条件を満たす。また、上記式(2)は、「30%+20%×3+30%+20%×3=180%≦240%」となるため、式(2)の条件を満たす。そのため、制御サーバ100は、オンラインVM2をサーバS1に割り当てる。
次に、制御サーバ100は、割当対象になるVMとして、バッチVM3を選択する。ここで、バッチVM3の平均CPU利用率は「30%」とする。制御サーバ100は、VMが割り振られたサーバS数が少なくなるように、オンラインVM1およびオンラインVM2を割当済みのサーバS1を、割当先になるサーバSとして選択する。制御サーバ100は、選択したサーバS1にバッチVM3を割り当てた場合に、サーバS1において上記式(1)および式(2)の条件を満たすか否かを判断する。
ここで、上記式(1)は、「30%+30%+30%=90%≦240%」となるため、式(1)の条件を満たす。また、上記式(2)は、「30%+20%×3+30%+20%×3=180%≦240%」となるため、式(2)の条件を満たす。そのため、制御サーバ100は、バッチVM3をサーバS1に割り当てる。
次に、制御サーバ100は、割当対象になるVMとして、バッチVM4を選択する。ここで、バッチVM4の平均CPU利用率は「30%」とする。制御サーバ100は、VMが割り振られたサーバS数が少なくなるように、オンラインVM1、オンラインVM2およびバッチVM3を割当済みのサーバS1を、割当先になるサーバSとして選択する。制御サーバ100は、選択したサーバS1にバッチVM4を割り当てた場合に、サーバS1において上記式(1)および式(2)の条件を満たすか否かを判断する。
ここで、上記式(1)は、「30%+30%+30%+30%=120%≦240%」となるため、式(1)の条件を満たす。また、上記式(2)は、「30%+20%×3+30%+20%×3=180%≦240%」となるため、式(2)の条件を満たす。そのため、制御サーバ100は、バッチVM4をサーバS1に割り当てる。制御サーバ100は、選択した割当先になるサーバSにおいて、上記式(1)または式(2)の条件を満たさない場合、選択したサーバSとは異なるサーバSを選択し直して、当該異なるサーバSにVMを割り当てることになる。
サーバS1は、割り当てられたオンラインVM1、オンラインVM2、バッチVM3、およびバッチVM4を、自装置内のいずれかのCPUにより実行する。ここで、サーバS1は、オンラインVM1およびオンラインVM2の優先度を高くして実行する。また、サーバS1は、オンラインVM1とオンラインVM2とが競合しないように、CPU101とCPU102の各々に1つずつオンラインVMを実行させてもよい。
図1に示すように、サーバS1は、オンラインVM1、バッチVM3およびバッチVM4をCPU101により実行している。サーバS1は、オンラインVM2をCPU102により実行している。
ここで、サーバS1は、バッチVM3およびバッチVM4については、オンラインVM1が利用していないCPUリソースを利用して処理を実行し、オンラインVM1の性能低下を生じさせずに処理を終了させる。また、サーバS1は、オンラインVM1およびオンラインVM2については、バッチVM3およびバッチVM4より優先して実行する。このため、オンラインVM1およびオンラインVM2は、単独で実行したときと同様のCPUリソースを利用しており、単独で実行したときと同様の性能を確保できている。
このように、制御サーバ100は、上記式(1)および式(2)の条件を満たす限り、1つのサーバSに複数のVMを割り当てていく。これにより、制御サーバ100は、オンラインVMの性能低下を回避し、バッチVMが規定終了時刻までに終了し、かつ、VMを割り当てられたサーバSの数が少なくなるように、VMを割り当てることができる。
また、VMが割り当てられていないサーバSがあれば、制御サーバ100は、サーバSへの電力供給を停止する。これにより、サーバルームの消費電力が低減される。また、制御サーバ100は、複数のVMを1つのサーバSに割り当てることにより、サーバSはCPUリソースを効率よく利用することができる。
また、制御サーバ100は、上記式(1)および(2)を制約条件とした混合整数計画問題を解くことにより、オンラインVM1、オンラインVM2、バッチVM3、およびバッチVM4を、サーバSに割り当ててもよい。例えば、配置済みのVMの平均CPU利用率やCPU利用率の標準偏差を入力とし、変数xn,i,jと、変数vijと、変数θiを出力する混合整数計画問題を用いて、VMをサーバSに割り当てる。
変数xn,i,jは、VMnが、サーバS(i,j)に割り当てられているか否かを示す。変数vijは、サーバS(i,j)の電源がON状態かOFF状態かを示す。変数θiは、ラック(i)にVMが割り当てられているか否かを示す。iはラック番号、jはi番目のラック内でのサーバの番号を示す。nは、割当対象となるVMの番号を示す。また、混合整数計画問題を用いてVMをサーバSに割り当てる具体例については、図17に後述する。
また、上記式(1)および式(2)はサーバSの性能が同一である場合の条件である。サーバSの性能が異なる場合は、上記式(1)の代わりに下記式(3)を用い、上記式(2)の代わりに下記式(4)を用いる。ここで、γiは、サーバSが、基準になるサーバSの何倍の性能があるかを示す比例係数である。また、γiは、サーバSに対するベンチマークテストにより予め取得される。また、制御サーバ100は、一定時間ごとに、サーバSに対してベンチマークテストを実行して、γiを更新してもよい。
また、制御サーバ100は、サーバルーム内のCRAC(精密空量装置:Computer Room Air Conditioning)による冷却効率がよいサーバSを、VMを割り当てるサーバSとして選択してもよい。これにより、CRACの消費電力が低減される。
(システム構成例)
次に、図2を用いて、システム構成例について説明する。
図2は、システム構成例を示す説明図である。図2において、システム200は、サーバルームと、制御サーバ100と、タスク投入サーバ201と、クライアント202と、を含む。また、サーバルームは、複数のサーバSを有するラック203と、CRAC204と、Chiller205(室外機)と、を含む。
サーバルーム内のサーバS群と、制御サーバ100と、タスク投入サーバ201と、クライアント202と、は、ネットワークNETにより接続されている。ネットワークNETは、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、携帯電話網などで構成される。
タスク投入サーバ201は、VMのサーバSへの割当要求を制御サーバ100に送信するコンピュータである。割当要求には、例えば、VMの実行ファイルと、VMがオンラインVMかバッチVMかを示す情報と、が含まれる。
制御サーバ100は、タスク投入サーバ201からVMのサーバSへの割当要求を受け付けるコンピュータである。制御サーバ100は、オンラインVMの性能低下を回避し、バッチVMが規定終了時刻までに終了し、かつ、VMを割り当てられたサーバS数が少なくなるように、受け付けたVMをサーバルーム内のサーバSに割り当てる。
クライアント202は、オンラインVMと双方向通信を行うコンピュータである。クライアント202は、オンラインVMに対して、処理要求を送信したり、処理結果を受信したりする。また、クライアント202は、バッチVMの処理結果を受信するコンピュータであってもよい。クライアント202には、例えば、デスクトップ型PC(Personal Computer)、ノート型PC、携帯電話機(スマートフォン、PHS(Personal Handyphone System))、タブレット型端末を採用できる。
ラック203は、S台のサーバSおよびUPS(Uninterruptible Power Supply)206を搭載する。例えば、ラック203は、サーバルーム内にN台存在するとし、i番目のラック203をラック203(i)と表す。また、サーバSは、割り当てられたVMを実行するコンピュータである。サーバSは、割り当てられたVMの中にオンラインVMがある場合、オンラインVMを優先的に実行する。例えば、i番目のラック203のj番目のサーバSをサーバS(i,j)と表す。また、UPS206は、サーバSへの電力供給を管理する装置である。例えば、i番目のラック203のUPS206をUPS206(i)と表す。
CRAC204は、ラック203内のサーバSを冷却する装置である。例えば、CRAC204は、サーバルーム内にC台存在するとし、k番目のCRAC204をCRAC204(k)と表す。Chiller205は、排気を行う装置である。Chiller205は、CRAC204と同数台存在するとし、例えば、k番目のChiller205をChiller205(k)と表す。
(コンピュータのハードウェア構成例)
次に、図3を用いて、制御サーバ100およびサーバSとして採用されるコンピュータのハードウェア構成例について説明する。
図3は、コンピュータのハードウェア構成例を示すブロック図である。図3において、コンピュータ300は、CPUs301、記憶装置302、入力装置303、出力装置304、および通信装置305が、バス310に接続されて構成されている。
CPUs301は、コンピュータ300の全体の制御を司る。また、CPUs301は、記憶装置302に記憶されている各種プログラムを実行することで、記憶装置302内のデータを読み出したり、実行結果となるデータを記憶装置302に書き込んだりする。各種プログラムには、OS(Operating System)や本実施の形態の情報処理プログラムまたは割当プログラムが含まれる。
記憶装置302は、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ、磁気ディスクドライブなどで構成され、CPUs301のワークエリアになったり、各種プログラムや各プログラムの実行により得られたデータを含む各種データを記憶したりする。
入力装置303は、キーボード、マウス、タッチパネルなどユーザの操作により、各種データの入力を行うインターフェースである。出力装置304は、CPUs301の指示により、データを出力するインターフェースである。出力装置304としては、例えば、ディスプレイやプリンタが採用される。通信装置305は、ネットワークNETを介して外部からデータを受信したり、外部にデータを送信したりするインターフェースである。
(サーバルーム構造情報の記憶内容)
次に、図4を用いて、サーバルーム構造情報の記憶内容の一例について説明する。サーバルーム構造情報は、サーバルームのラック数とサーバ数とを示す情報である。サーバルーム構造情報は、混合整数計画問題を解く際に参照される情報である。サーバルーム構造情報は、例えば、記憶装置302により実現される。
図4は、サーバルーム構造情報の記憶内容の一例を示す説明図である。図4に示すように、サーバルーム構造情報400は、ラック数項目と、サーバ数項目を有する。ラック数項目には、サーバルームに存在するラック203の個数が記憶される。サーバ数項目には、1つのラック203に存在するサーバSの個数が記憶される。各項目の値は、例えば、予め制御サーバ100の利用者によって入力される。
(VM個数情報の記憶内容)
次に、図5を用いて、VM個数情報の記憶内容の一例について説明する。VM個数情報は、混合整数計画問題を解く際に参照される情報である。VM個数情報は、例えば、記憶装置302により実現される。
図5は、VM個数情報の記憶内容の一例を示す説明図である。図5に示すように、VM個数情報500は、個数項目を有する。個数項目には、割当対象になるVMの個数が記憶される。制御サーバ100は、例えば、割当対象になるVMが増加した場合、当該増加分の数を個数項目に加算する。制御サーバ100は、例えば、割当対象になるVMをサーバSに割り当てた場合、割り当てた個数を個数項目から減算する。
(実行可能最大VM数テーブルの記憶内容)
次に、図6を用いて、実行可能最大VM数テーブルの記憶内容の一例について説明する。実行可能最大VM数テーブルは、サーバごとの実行可能最大VM数を記憶するテーブルである。実行可能最大VM数テーブルは、混合整数計画問題を解く際に参照される。実行可能最大VM数テーブルは、例えば、記憶装置302により実現される。
図6は、実行可能最大VM数テーブルの記憶内容の一例を示す説明図である。図6に示すように、実行可能最大VM数テーブル600は、ラック番号項目と、サーバ番号項目と、実行可能最大VM数項目と、を有し、サーバSごとにレコードを構成する。
ラック番号項目には、サーバルームに存在するラック203を識別する番号が記憶される。サーバ番号項目には、ラック番号項目が示すラック203内のサーバSを識別する番号が記憶される。実行可能最大VM数項目には、サーバ番号項目に示されるサーバSが実行可能なVMの最大個数が記憶される。各項目の値は、例えば、予め制御サーバ100の利用者によって入力される。
(VM消費電力テーブルの記憶内容)
次に、図7を用いて、VM消費電力テーブルの記憶内容の一例について説明する。VM消費電力テーブルは、サーバごとのVM1つ当たりの消費電力を記憶するテーブルである。VM消費電力テーブルは、混合整数計画問題を解く際に参照される。VM消費電力テーブルは、例えば、記憶装置302により実現される。
図7は、VM消費電力テーブルの記憶内容の一例を示す説明図である。図7に示すように、VM消費電力テーブル700は、ラック番号項目と、サーバ番号項目と、VM消費電力項目と、を有し、サーバSごとにレコードを構成する。
ラック番号項目には、サーバルームに存在するラック203を識別する番号が記憶される。サーバ番号項目には、ラック番号項目が示すラック203内のサーバSを識別する番号が記憶される。VM消費電力項目には、サーバ番号項目が示すサーバSで、1つのVMを実行するために消費される電力が記憶される。各項目の値は、例えば、予め制御サーバ100の利用者によって入力される。
(ベース消費電力テーブルの記憶内容)
次に、図8を用いて、ベース消費電力テーブルの記憶内容の一例について説明する。ベース消費電力テーブルは、サーバSごとの常時消費電力を記憶するテーブルである。ベース消費電力テーブルは、混合整数計画問題を解く際に参照される。ベース消費電力テーブルは、例えば、記憶装置302により実現される。
図8は、ベース消費電力テーブルの記憶内容の一例を示す説明図である。図8に示すように、ベース消費電力テーブル800は、ラック番号項目と、サーバ番号項目と、ベース消費電力項目と、を有し、サーバSごとにレコードを構成する。
ラック番号項目には、サーバルームに存在するラック203を識別する番号が記憶される。サーバ番号項目には、ラック番号項目が示すラック203内のサーバSを識別する番号が記憶される。ベース消費電力項目には、サーバ番号項目が示すサーバSの常時消費電力が記憶される。常時消費電力は、サーバSが処理を実行していない場合に消費される電力である。各項目の値は、例えば、予め制御サーバ100の利用者によって入力される。
(スケーリング情報の記憶内容)
次に、図9を用いて、スケーリング情報の記憶内容の一例について説明する。スケーリング情報は、標準偏差に対して乗算する定数を示す情報である。スケーリング情報は、混合整数計画問題を解く際に参照される情報である。スケーリング情報は、例えば、記憶装置302により実現される。
図9は、スケーリング情報の記憶内容の一例を示す説明図である。図9に示すように、スケーリング情報900は、定数項目を含む。定数項目には、オンラインVMのCPU利用率の上限の算出に使用される定数cが記憶される。定数cは、標準偏差σの倍数である。例えば、cは、c=1〜3の自然数が採用される。定数cは、例えば、上記式(2)に与えられる。cの値は、例えば、予め制御サーバ100の利用者によって入力される。
(VM配置テーブルの記憶内容)
次に、図10を用いて、VM配置テーブルの記憶内容の一例について説明する。VM配置テーブルは、サーバごとにVMが割り当てられているか否かを示す情報を記憶するテーブルである。VM配置テーブルには、混合整数計画問題の解が記憶される。VM配置テーブルは、例えば、記憶装置302により実現される。
図10は、VM配置テーブルの記憶内容の一例を示す説明図である。図10に示すように、VM配置テーブル1000は、VM番号項目と、ラック番号項目と、サーバ番号項目と、配置先項目と、を有し、サーバSごとにレコードを構成する。
VM番号項目には、VMを識別する番号が記憶される。ラック番号項目には、サーバルームに存在するラック203を識別する番号が記憶される。サーバ番号項目には、ラック番号項目が示すラック203内のサーバSを識別する番号が記憶される。配置先項目には、VM番号項目が示すVMが、サーバ番号項目が示すサーバSに割り当てられているか否かを示す情報が記憶される。ここで、配置先項目の「0」はVMが割り当てられていないことを示し、「1」はVMが割り当てられていることを示す。
(電源テーブルの記憶内容)
次に、図11を用いて、電源テーブルの記憶内容の一例について説明する。電源テーブルは、サーバごとに電源が供給されているか否かを示す情報を記憶するテーブルである。電源テーブルは、混合整数計画問題を解く際に参照される。電源テーブルは、例えば、記憶装置302により実現される。
図11は、電源テーブルの記憶内容の一例を示す説明図である。図11に示すように、電源テーブル1100は、ラック番号項目と、サーバ番号項目と、電源項目と、を有し、サーバSごとにレコードを構成する。
ラック番号項目には、サーバルームに存在するラック203を識別する番号が記憶される。サーバ番号項目には、ラック番号項目が示すラック203内のサーバSを識別する番号が記憶される。電源項目には、サーバ番号項目が示すサーバSに電力供給されているか否かが記憶される。ここで、電源項目の「0」は電力が供給されていないことを示し、「1」は電力が供給されていることを示す。電源項目の値は、例えば、サーバSに電力が供給されているか否かを示す情報をUPS206から取得することにより、更新される。
(ラック状態テーブルの記憶内容)
次に、図12を用いて、ラック状態テーブルの記憶内容の一例について説明する。ラック状態テーブルは、ラックごとにVMが割り振られているか否かを示す情報を記憶するテーブルである。ラック状態テーブルは、混合整数計画問題を解く際に参照される。ラック状態テーブルは、例えば、記憶装置302により実現される。
図12は、ラック状態テーブルの記憶内容の一例を示す説明図である。図12に示すように、ラック状態テーブル1200は、ラック番号項目と、VM実行項目と、を有し、ラック203ごとにレコードを構成する。ラック番号項目には、サーバルームに存在するラック203を識別する番号が記憶される。VM実行項目には、ラック番号項目が示すラック203でVMが実行されているか否かを示す情報が記憶される。例えば、VM実行項目の「0」はVMが実行されていないことを示し、「1」はVMが実行されていることを示す。また、制御サーバ100は、例えば、VMを割り当てるごとにVM実行項目を更新する。制御サーバ100は、例えば、VMの実行が終了したことをサーバSから通知されると、VM実行項目を更新する。
(初期配置テーブルの記憶内容)
次に、図13を用いて、初期配置テーブルの記憶内容の一例について説明する。初期配置テーブルは、サーバごとの配置済みのVM数を記憶するテーブルである。初期配置テーブルは、混合整数計画問題を解く際に参照される。初期配置テーブルは、例えば、記憶装置302により実現される。
図13は、初期配置テーブルの記憶内容の一例を示す説明図である。図13に示すように、初期配置テーブル1300は、ラック番号項目と、サーバ番号項目と、初期配置項目と、を有し、サーバSごとにレコードを構成する。ラック番号項目には、サーバルームに存在するラック203を識別する番号が記憶される。サーバ番号項目には、ラック番号項目が示すラック203内のサーバSを識別する番号が記憶される。初期配置項目には、サーバS項目が示すサーバSに配置されているVM数が記憶される。
(UPSテーブルの記憶内容)
次に、図14を用いて、UPSテーブルの記憶内容の一例について説明する。UPSテーブルは、UPSごとに、常時消費電力と、サーバの消費電力に乗算する比例係数と、を記憶するテーブルである。UPSテーブルは、混合整数計画問題を解く際に参照される。UPSテーブルは、例えば、記憶装置302により実現される。
図14は、UPSテーブルの記憶内容の一例を示す説明図である。図14に示すように、UPSテーブル1400は、UPS番号項目と、ベース消費電力項目と、比例係数項目と、を有し、UPS206ごとにレコードを構成する。UPS番号項目には、サーバルームに存在するUPS206を識別する番号が記憶される。ベース消費電力項目には、UPS206の常時消費電力が記憶される。比例係数項目には、サーバSの消費電力に対して、何倍の電力がUPS206で消費されるかを示す係数が記憶される。各項目の値は、例えば、予め制御サーバ100の利用者によって入力される。
(割当対象VMテーブルの記憶内容)
次に、図15を用いて、割当対象VMテーブルの記憶内容の一例について説明する。割当対象VMテーブルは、割当対象になるVMごとに、平均CPU利用率と、CPU利用率の標準偏差と、を記憶するテーブルである。割当対象VMテーブルは、混合整数計画問題を解く際に参照される。割当対象VMテーブルは、例えば、記憶装置302により実現される。
図15は、割当対象VMテーブルの記憶内容の一例を示す説明図である。図15に示すように、割当対象VMテーブル1500は、VM番号項目と、平均CPU利用率項目と、標準偏差項目と、を有し、割当対象になるVMごとにレコードを構成する。VM番号項目には、割当対象になるVMを識別する番号が記憶される。平均CPU利用率項目には、VM番号項目が示すVMの平均CPU利用率が記憶される。標準偏差項目には、VM番号項目が示すVMのCPU利用率の標準偏差が記憶される。
(配置済みVMテーブルの記憶内容)
次に、図16を用いて、配置済みVMテーブルの記憶内容の一例について説明する。配置済みVMテーブルは、配置済みのVMごとに、平均CPU利用率と、CPU利用率の標準偏差と、を記憶するテーブルである。配置済みVMテーブルは、混合整数計画問題を解く際に参照される。配置済みVMテーブルは、例えば、記憶装置302により実現される。
図16は、配置済みVMテーブルの記憶内容の一例を示す説明図である。図16に示すように、配置済みVMテーブル1600は、ラック番号項目と、サーバ番号項目と、VM番号項目と、平均CPU利用率項目と、標準偏差項目と、を有し、配置済みのVMごとにレコードを構成する。
ラック番号項目には、サーバルームに存在するラック203を識別する番号が記憶される。サーバ番号項目には、ラック番号項目が示すラック203内のサーバSを識別する番号が記憶される。VM番号項目には、サーバS項目が示すサーバSに配置済みのVMを識別する番号が記憶される。
平均CPU利用率項目には、VM番号項目が示すVMの平均CPU利用率が記憶される。平均CPU利用率は、予め制御サーバ100の利用者により入力されていてもよい。また、制御サーバ100は、一定時間ごとに、サーバSから実行中のVMのCPU利用率の変動履歴と実行時間とを取得し、平均CPU利用率を算出し、平均CPU利用率項目を更新してもよい。
標準偏差項目には、VM番号項目が示すVMのCPU利用率の標準偏差が記憶される。標準偏差は、予め制御サーバ100の利用者により入力されていてもよい。制御サーバ100は、一定時間ごとに、サーバSから実行中のVMのCPU利用率の変動履歴と実行時間とを取得し、標準偏差を算出し、標準偏差項目を更新してもよい。
(制御サーバ100の機能的構成例)
次に、制御サーバ100の機能的構成例について説明する。図17は、制御サーバ100の機能的構成例を示すブロック図である。制御サーバ100は、受付部1701と、特定部1702と、選択部1703と、取得部1704と、判断部1705と、割当部1706と、検出部1707と、制御部1708と、を有する。受付部1701〜制御部1708は、具体的には、例えば、図3に示した記憶装置302に記憶されたプログラムをCPU301に実行させることにより、または、通信装置305により、その機能を実現する。
受付部1701は、タスク投入サーバ201から送信されたVMのサーバSへの割当要求を受け付ける。ここで、割当要求には、例えば、割当対象になるVMの実行ファイルが含まれる。また、割当要求には、割当対象になるVMの平均CPU利用率や標準偏差が含まれていてもよい。制御サーバ100は、割当要求に割当対象になるVMの平均CPU利用率や標準偏差が含まれる場合、割当対象になるVMと、平均CPU利用率や標準偏差と、を対応付けたレコードを、割当対象VMテーブル1500に追加する。
また、受付部1701は、現在サーバSに割り当てられているVMの配置変更要求を受け付けてもよい。VMの配置変更の要求は、タスク投入サーバ201から送信されてもよいし、制御サーバ100内で一定時間ごとに発生させてもよい。また、サーバSからのVMの終了通知を、VMの配置変更の要求として受け付けてもよい。これにより、受付部1701は、サーバSへのVMの割り当てを開始するトリガを発生させることができる。受け付けられた要求は、例えば、記憶装置302に記憶される。
特定部1702は、サーバ群に配置済みの第2種類の仮想マシン群の中から、予測残存実行時間が最長の第2種類の仮想マシンを特定する。特定部1702は、具体的には、例えば、サーバ群の各々から実行中のバッチVMの予測残存実行時間を取得し、予測残存実行時間が最長のバッチVMを特定する。また、特定部1702は、サーバ群の各々から実行中のバッチVMのCPU利用率の変動履歴と実行時間を取得し、予測残存実行時間を算出し、予測残存実行時間が最長のバッチVMを特定してもよい。また、特定部1702は、バッチVMにプログラムの進捗を示す情報を送信するAPIが含まれる場合、APIにより送信された進捗を示す情報から予測残存実行時間を算出し、予測残存実行時間が最長のバッチVMを特定してもよい。
これにより、特定部1702は、選択部1703に予測残存時間が最長のバッチVMを配置済みのサーバSを配置先に選択させることができる。結果として、特定部1702は、予測残存時間が最長でないバッチVMに遅れを生じさせず、予測残存時間が最長でないバッチVMの終了により、早期にサーバSのCPUリソースに空きが生じるようにすることができる。
選択部1703は、サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第1種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第2種類の仮想マシンと、を含む仮想マシン群の割当先を選択する。ここで、第1種類の仮想マシンとは、他の装置と双方向通信により所定の処理を実行するVMであり、上述したオンラインVMである。また、第1種類の仮想マシンは、割当対象になるVMであってもよいし、配置済みのVMであってもよい。第2種類の仮想マシンとは、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行するVMであり、上述したバッチVMである。また、第2種類の仮想マシンは、割当対象になるVMであってもよいし、配置済みのVMであってもよい。第1種類の仮想マシンおよび第2種類の仮想マシンは、各々複数個選択されてもよい。
選択部1703は、具体的には、例えば、サーバ群の中から、オンラインVMとバッチVMとを含むVM群の割当先として、他のサーバSよりもCRAC204による冷却効率がよいサーバSを選択する。CRAC204による冷却効率がよいサーバSとは、例えば、他のサーバSよりもCRAC204との距離が近いサーバSである。これにより、選択部1703は、CRAC204による冷却効率の悪いサーバSにVMを割り振った場合に比較して、CRAC204の消費電力の増加を抑えることができる。
また、選択部1703は、具体的には、例えば、第1種類の仮想マシンが配置済みであるサーバSを選択してもよい。選択部1703は、より具体的には、例えば、VM群の中に未割当のバッチVMがある場合、オンラインVMが配置済みのサーバSを選択する。これにより、1つのサーバSに、オンラインVMとバッチVMとが配置される。
この場合、選択部1703は、特定部1702によって特定された予測残存実行時間が最長の第2種類の仮想マシンが配置済みのサーバS以外であって、かつ、第1種類の仮想マシンが配置済みであるサーバSを選択してもよい。選択部1703は、より具体的には、例えば、特定されたバッチVMの割当先になるサーバSとして、オンラインVMが配置済みであるサーバSを選択する。これにより、選択部1703は、オンラインVMの割当によって予測残存時間が最長でないバッチVMに遅れを生じさせず、予測残存時間が最長でないバッチVMの終了により、早期にサーバSのCPUリソースに空きが生じるようにすることができる。
また、選択部1703は、具体的には、例えば、第2種類の仮想マシンが配置済みであるサーバSを選択してもよい。選択部1703は、より具体的には、例えば、VM群の中に未割当のオンラインVMがある場合、バッチVMが配置済みのサーバSを選択する。これにより、選択部1703は、1つのサーバSに、オンラインVMとバッチVMとが割り当てられるようにする。
この場合、選択部1703は、特定部1702によって特定された予測残存実行時間が最長の第2種類の仮想マシンが配置済みであるサーバSを選択してもよい。選択部1703は、より具体的には、例えば、VM群の中に未割当のオンラインVMがある場合、特定されたバッチVMが配置済みであるサーバSを選択する。これにより、選択部1703は、オンラインVMの割当によって予測残存時間が最長でないバッチVMに遅れを生じさせず、予測残存時間が最長でないバッチVMの終了により、早期にサーバSのCPUリソースに空きが生じるようにすることができる。選択結果は、例えば、記憶装置302に記憶される。
取得部1704は、仮想マシン群を同一のサーバSに割り当てた場合の仮想マシン群の演算処理装置使用率に基づく演算処理装置使用率の予測値を取得する。ここで、演算処理装置とは、上述したCPUである。取得部1704は、具体的には、例えば、割当対象VMテーブル1500から、VM群に含まれる割当対象になるバッチVMの平均CPU利用率と割当対象になるオンラインVMの平均CPU利用率とを取得する。そして、取得部1704は、バッチVMの平均CPU利用率とオンラインVMの平均CPU利用率との和を、予測値として算出する。
ここで、バッチVMの平均CPU利用率とは、例えば、バッチVMを規定終了時刻までに終了することが可能な最小の平均CPU利用率である。オンラインVMの平均CPU利用率とは、オンラインVMのCPU利用率の平均値である。割当対象になるVMの平均CPU利用率や標準偏差は、例えば、上述した割当要求に含まれており、制御サーバ100により割当対象VMテーブル1500に登録されている。これにより、取得部1704は、サーバSにVM群を割り当てた場合に、VM群の中のバッチVMを規定終了時刻までに終了可能な最小の平均CPU利用率を取得することができる。
また、取得部1704は、具体的には、例えば、割当対象VMテーブル1500から、VM群に含まれる割当対象になるバッチVMの平均CPU利用率を取得する。次に、取得部1704は、配置済みVMテーブル1600から、VM群に含まれる配置済みのオンラインVMの平均CPU利用率を取得する。そして、取得部1704は、バッチVMの平均CPU利用率とオンラインVMの平均CPU利用率との和を、予測値として算出する。
ここで、配置済みのVMの平均CPU利用率や標準偏差は、例えば、過去に制御サーバ100により割当対象のVMがいずれかのサーバSに割り当てられた場合に、配置済みVMテーブル1600に登録されている。この場合、割当対象VMテーブル1500の割り当てられたVMに関するレコードは削除される。これにより、取得部1704は、オンラインVMが配置済みのサーバSに、割当対象になるバッチVMを割り当てた場合に、割当対象になるバッチVMを規定終了時刻までに終了可能な最小の平均CPU利用率を取得することができる。
また、取得部1704は、具体的には、例えば、配置済みVMテーブル1600から、VM群に含まれる配置済みのバッチVMの平均CPU利用率を取得する。次に、取得部1704は、割当対象VMテーブル1500から、VM群に含まれる割当対象になるオンラインVMの平均CPU利用率を取得する。そして、取得部1704は、バッチVMの平均CPU利用率とオンラインVMの平均CPU利用率との和を、予測値として算出する。これにより、取得部1704は、バッチVMが配置済みのサーバSに、割当対象になるオンラインVMを割り当てた場合に、配置済みのバッチVMを規定終了時刻までに終了可能な最小の平均CPU利用率を取得することができる。
また、取得部1704は、具体的には、例えば、割当対象VMテーブル1500から、オンラインVMの平均CPU利用率と、オンラインVMのCPU利用率のσ×nとを取得する。そして、取得部1704は、オンラインVMの平均CPU利用率と、オンラインVMのCPU利用率のσ×cと、の和を、予測値として算出する。ここで、σは、オンラインVMのCPU利用率の正規分布における標準偏差である。nは、標準偏差に乗算する定数である。これにより、取得部1704は、割当対象になるオンラインVMが高負荷になったときのCPU利用率を取得することができる。
また、取得部1704は、具体的には、例えば、配置済みVMテーブル1600から、オンラインVMの平均CPU利用率と、オンラインVMのCPU利用率のσ×nとを取得する。そして、取得部1704は、オンラインVMの平均CPU利用率と、オンラインVMのCPU利用率のσ×cと、の和を、予測値として算出する。これにより、取得部1704は、配置済みのオンラインVMが高負荷になったときのCPU利用率を取得することができる。
算出されたVM群の複数のバッチVMの平均CPU利用率とVM群の複数のオンラインVMの平均CPU利用率との和は、例えば、記憶装置302に記憶される。また、オンラインVMの平均CPU利用率とオンラインVMのCPU利用率のσ×nとの和も、例えば、記憶装置302に記憶される。
判断部1705は、取得部1704によって取得された予測値が、選択部1703によって選択されたサーバSの演算処理装置数に基づくしきい値以下であるか否かを判断する。しきい値とは、サーバSでのCPU利用率の上限であり、上述したPiである。Piは、サーバS内のCPUの数と1CPU当たりのCPU利用率の上限とを乗算した値である。Piとしては、例えば、(CPUの数×90%)−10%が採用される。
判断部1705は、具体的には、例えば、VM群の複数のバッチVMの平均CPU利用率と、VM群の複数のオンラインVMの平均CPU利用率と、の和が、Pi以下であるか否かを判断する。これにより、判断部1705は、複数のオンラインVMのCPU利用率を考慮しても、複数のバッチVMの各々を規定終了時刻までに終了することが可能な最小の平均CPU利用率を、サーバSのCPU利用率上限以下に確保できるか否かを判断することができる。
また、判断部1705は、具体的には、例えば、オンラインVMの平均CPU利用率と、オンラインVMのCPU利用率のσ×nと、の和が、Pi以下であるか否かを判断する。これにより、判断部1705は、同時に複数のオンラインVMが高負荷になった場合であっても、オンラインVMのCPU利用率の和が、サーバSのCPU利用率上限以下になるか否かを判断することができる。判断結果は、例えば、記憶装置302に記憶される。
割当部1706は、判断部1705によってしきい値以下と判断された場合、第1種類の仮想マシンを第2種類の仮想マシンよりも優先実行するように、選択されたサーバSに仮想マシン群を割り当てる。割当部1706は、具体的には、例えば、判断部1705によって閾値以下と判断された場合、選択されたサーバSに、VM群の実行要求を送信する。ここで、実行要求には、VM群の各々の実行ファイルが含まれる。また、実行要求には、VM群の中のオンラインVMの実行の優先度を、バッチVMよりも高くする旨を示す通知が含まれる。これにより、割当部1706は、割当対象になるバッチVMとオンラインVMとをサーバSに割り当てた場合に、割り当てたオンラインVMの性能低下を回避し、割り当てたバッチVMを規定終了時刻までに終了させることができる。
また、実行要求には、VM群の各々を、サーバSの同一CPUにより実行させる指示を含んでもよい。これにより、割当部1706は、VM群の各々をサーバSの同一CPUにより実行させる指示を含む実行要求をサーバSに送信することにより、サーバSにおいて一つのCPUによりVM群を実行させ、サーバSにCPUリソースを効率よく利用させることができる。
割当部1706は、VM群をサーバSに割り当てると、割当対象VMテーブル1500のVM群の各々に関するレコードを参照し、配置済みVMテーブル1600にVM群の各々に関するレコードを登録する。また、割当部1706は、配置済みVMテーブル1600に登録した後、割当対象VMテーブル1500のVM群の各々に関するレコードを削除する。また、割当部1706は、初期配置テーブル1300の割り当てたサーバSに関するレコードを更新する。これにより、割当部1706は、新たにVMを割り当てる場合、配置済みVMテーブル1500から、割当部1706によって割り当てられたVMの平均CPU利用率や標準偏差を取得できる。
また、割当部1706は、具体的には、例えば、バッチVMが配置済みであるサーバSが選択された場合、選択されたサーバSにオンラインVMの実行要求を送信する。ここで、実行要求には、選択されたサーバSに配置済みのバッチVMよりも、実行要求の対象のオンラインVMの実行の優先度を高くする通知が含まれる。サーバSは、通知に従って、オンラインVMの実行には優先してCPUリソースを利用し、バッチVMの実行にはオンラインVMの実行に利用されていない余りのCPUリソースを利用する。これにより、割当部1706は、割当対象になるオンラインVMを、バッチVMが配置済みのサーバSに割り当てた場合に、割り当てたオンラインVMの性能低下を回避し、配置済みのバッチVMを規定終了時刻までに終了させることができる。
また、実行要求には、サーバSのバッチVMが配置済みのCPUにより、割り当てたオンラインVMを実行させる指示を含んでもよい。これにより、割当部1706は、サーバSにおいて、バッチVMが配置済みのCPUにより、割当対象になるオンラインVMを実行させ、サーバSにCPUリソースを効率よく利用させることができる。
また、割当部1706は、具体的には、例えば、オンラインVMが配置済みであるサーバSが選択された場合、選択されたサーバSにバッチVMの実行要求を送信する。サーバSは、通知に従って、オンラインVMの実行には優先してCPUリソースを利用し、バッチVMの実行にはオンラインVMの実行に利用されていない余りのCPUリソースを利用する。これにより、割当部1706は、割当対象になるバッチVMを、オンラインVMが配置済みのサーバSに割り当てた場合に、配置済みのオンラインVMの性能低下を回避し、割り当てたバッチVMを規定終了時刻までに終了させることができる。
また、実行要求には、サーバSのオンラインVMが配置済みのCPUにより、割り当てたバッチVMを実行させる指示を含んでもよい。これにより、割当部1706は、サーバSのオンラインVMが配置済みのCPUにより、割当対象になるバッチVMを実行させ、サーバSにCPUリソースを効率よく利用させることができる。
検出部1707は、サーバ群のうち、いずれのVMも割り当てられていないサーバSを検出する。検出部1707は、具体的には、例えば、一定時間ごとに、サーバS群の各々にVMの実行状況を要求し、サーバS群の各々のVMの実行状況を取得することによりいずれのVMも割り当てられていないサーバSを検出する。また、検出部1707は、割当部1706による割当の結果、配置済みのVMが他のサーバSに割り振り直されたサーバSのVMの実行状況を取得してもよい。検出結果は、例えば、記憶装置302に記憶される。
制御部1708は、サーバ群のうちいずれの仮想マシンも割り当てられていないサーバSの消費電力が低下するように制御する。制御部1708は、具体的には、例えば、検出部1707によって検出されたサーバSへの電力供給を停止する要求を、当該サーバSへの電力供給を制御するUPS206に送信する。これにより、制御部1708は、サーバSの消費電力を低減することができる。
また、選択部1703と取得部1704と判断部1705との機能は、上記式(1)および式(2)を制約条件に含む混合整数計画問題を解くことにより実現することができる。また、混合整数計画問題を解く際にソルバを利用してもよい。混合整数計画問題を解くソルバとしては、例えば、GLPK、SYMPHONY、Gurobi、CPLEXがある。
具体的には、例えば、混合整数計画問題は下記式(5)の最小化関数と、下記式(6)〜式(15)の制約条件により表される。混合整数計画問題の式(5)〜式(15)の各変数の値は、例えば、予め記憶装置502に記憶されている。
上記式(5)は、混合整数計画問題における最小化関数を示す。制御サーバ100は、混合整数計画問題を解くことで、下記式(6)〜式(15)の制約条件を満たす範囲で、最小化関数を最小化する解を求めることができる。上記式(5)は、具体的には、サーバルームでの消費電力を示す。そのため、制御サーバ100は、混合整数計画問題を解くことにより、サーバルームでの消費電力を最小化する解を求めることができる。
ここで、Nは、サーバルームのラック203の数である。iは、ラック203の番号であり、1からNの数である。Sは、ラック203内のサーバSの数である。jは、ラック203のサーバSの番号であり、1〜Sの数である。Mは、割当対象になるVMの数である。nは、VMの番号であり、1〜Mの数である。Cは、CRAC204の数である。kは、CRAC204の番号であり、1〜Cの数である。
ηiは、ラック203(i)のUPS206で常時消費される電力である。εiは、ラック203(i)のUPS206が、ラック203(i)のサーバSの消費電力に対して、何倍の電力を消費するかを示す比例係数である。αijは、サーバS(i,j)で常時消費される電力である。vijは、サーバS(i,j)の電源がON状態かOFF状態かを示す変数であり、ON状態のとき「1」となり、OFF状態のとき「0」となる。
βijは、サーバS(i,j)でのVM1つ当たりの消費電力である。Wij 0は、サーバSに配置済みのVMの数である。τnは、割当対象になるVMの数である。xn,i,jは、サーバS(i,j)にVM(n)が割り当てられているか否かを示す変数であり、VM(n)が割り当てられているとき「1」となり、VM(n)が割り当てられていないとき「0」となる。
λkは、CRAC204(k)で常時消費される電力である。μkは、CRAC204(k)が、CRAC204(k)に流入する熱流量に対し、何倍の電力を消費するかを示す比例係数である。qin,CRAC Kは、CRAC204(k)に流入する熱流量である。κijは、Chiller205(k)が、Chiller205(k)に流入する熱流量に対し、何倍の電力を消費するかを示す比例係数である。qout,CRAC Kは、CRAC204(k)から流出する熱流量である。
より具体的には、上記式(5)のΣj=1 Sαijvijは、ラック203(i)内の複数のサーバSの常時消費電力の和を示す。上記式(5)のΣj=1 SβijWij 0は、ラック203(i)内の複数のサーバSに配置済みのVMの消費電力の和を示す。上記式(5)のΣj=1 S(βijΣn=1 Mτnxn,i,j)は、ラック203(i)内の複数のサーバSに割り当てられたVMの消費電力の和を示す。従って、上記式(5)のΣj=1 S(αijvij+βij(Wij 0+Σn=1 Mτnxn,i,j))は、ラック203(i)内の複数のサーバSの総消費電力を示す。
上記式(5)のεi(Σj=1 S(αijvij+βij(Wij 0+Σn=1 Mτnxn,i,j)))は、ラック203(i)内のUPS206の消費電力を示す。従って、Σi=1 N(ηi+(1+εi)(Σj=1 S(αijvij+βij(Wij 0+Σn=1 Mτnxn,i,j))))は、サーバルーム内の複数のラック203の消費電力の和を示す。
また、上記式(5)のΣk=1 C(λk+μkqin,CRAC K)は、CRAC204がサーバSの冷却に消費する電力の和を示す。上記式(5)のΣk=1 C(κkqout,CRAC K)は、CRAC204が流出した熱流を、Chiller205が排気するために消費する電力の和を示す。従って、Σk=1 C(λk+μkqin,CRAC K)+Σk=1 C(κkqout,CRAC K)は、サーバルーム内のサーバSの冷却のための総消費電力を示す。
従って、上記式(5)はサーバルームの総消費電力を示している。そのため、制御サーバ100は、整数計画問題を解くことにより、サーバルームでの消費電力を最小化する解を求めることができる。
上記式(6)は、VMnが、サーバS(i,j)に割り当てられているか否かを示す変数xn,i,jが、「0」か「1」かの2値をとる離散変数であることを示す制約条件である。上記式(6)の制約条件により、VMnが、サーバS(i,j)に割り当てられているか否かを示す変数xn,i,jが「0,1」以外の値をとらないようにする。
上記式(7)は、サーバS(i,j)の電源がON状態かOFF状態かを示す変数vijが、「0」か「1」かの2値をとる離散変数であることを示す制約条件である。上記式(7)の制約条件により、サーバS(i,j)の電源がON状態かOFF状態かを示す変数vijが、「0,1」以外の値をとらないようにする。
上記式(8)は、ラック203(i)にVMが割り当てられているか否かを示す変数θiが、「0」か「1」かの2値をとる離散変数であることを示す制約条件である。上記式(8)の制約条件により、ラック203(i)にVMが割り当てられているか否かを示す変数θiが、「0,1」以外の値をとらないようにする。
上記式(9)は、サーバルームのサーバS群の各々のサーバSに関する変数xn,i,jの総和が「1」になることを示す制約条件である。そのため、各々のサーバSのうち、いずれか1つのサーバSに関する変数xn,i,jが「1」になり、残余のサーバSに関する変数xn,i,jが「0」になる。換言すれば、上記式(9)の制約条件は、VMnはいずれか1つのサーバSに割り当てられることを示し、2つ以上のサーバSに割り当てられる場合やサーバSに割り当てられない場合がないことを示す。
上記式(10)は、上記式(1)に対応する制約条件であり、バッチVMを規定終了時刻までに終了するための条件を示す。ここで、M0,i,jは、配置済みのVMの数である。τ0,i,j,mは、サーバS(i,j)に配置済みのVM(m)の平均CPU利用率である。τnは、割当対象になるVM(n)の平均CPU利用率である。γijは、サーバS(i,j)が、基準になるサーバSの何倍の性能があるかを示す比例係数である。Lijは、サーバS(i,j)のCPU利用率の上限である。
上記式(10)の条件は、具体的には、複数のオンラインVMの各々の平均CPU利用率を考慮しても、複数のバッチVMの各々を規定終了時刻までに終了することが可能な最小の平均CPU利用率を、サーバSのCPU利用率上限以下に確保できることを示す。上記式(1)の制約条件により、バッチVMを規定終了時刻までに終了することができる。
上記式(11)は、上記式(2)に対応する制約条件の式であり、オンラインVMの性能低下を回避するための条件を示す。ここで、a0,i,j,mは、サーバS(i,j)に配置済みのオンラインVMの数であり、M0,i,j以下の数である。aは、割当対象になるオンラインVMの数であり、M以下の数である。
σ0,i,j,mは、サーバS(i,j)に配置済みのオンラインVM(m)のCPU利用率の正規分布における標準偏差である。cは、標準偏差に乗算する定数である。従って、τ0,i,j,m+σ0,i,j,m×cは、サーバS(i,j)に配置済みのオンラインVM(m)が同時に高負荷になったときのCPU利用率である。
σnは、割当対象になるオンラインVM(n)のCPU利用率の正規分布における標準偏差である。従って、xn,i,j(τn+σn×c)は、割当対象になるオンラインVM(n)が高負荷になったときのCPU利用率である。
上記式(2)の条件は、具体的には、複数のオンラインVMが同時に高負荷になった場合であっても、オンラインVMのCPU利用率の和が、サーバSのCPU利用率上限以下になることを示す。上記式(2)の制約条件により、オンラインVM同士の競合が回避され、オンラインVMの性能低下が回避される。
上記式(12)は、ラック203(i)に割り当てられるVMの数が割当対象になるVMの数M以下であることを示す制約条件である。
上記式(13)〜式(15)は、サーバルーム内の冷却状態に関する制約条件である。上記式(13)〜式(15)の制約条件により、冷却不十分なサーバSがなくなるようにすることができる。上記式(13)〜式(15)の各変数の値は、例えば、記憶装置502に記憶されている。
また、制御サーバ100は、サーバルームでのCRAC204の消費電力を考慮せず、サーバルームでのサーバSの総消費電力を低減することもできる。この場合、混合整数計画問題について、上記式(5)のΣk=1 C(λk+μkqin,CRAC K)+Σk=1 C(κkqout,CRAC K)、および上記式(13)〜式(15)は削除される。
(サーバSの機能的構成例)
次に、サーバSの機能的構成例について説明する。図18は、サーバSの機能的構成例を示すブロック図である。サーバSは、受付部1801と、決定部1802と、割当部1803と、制御部1804と、を含む構成である。受付部1801〜制御部1804は、図3に示した記憶装置302に記憶されたプログラムをCPU301に実行させることにより、または、通信装置305により、その機能を実現する。
受付部1801は、具体的には、例えば、制御サーバ100から自装置に送信されたVM群の実行要求を受け付ける。ここで、実行要求には、VM群の各々の実行ファイルが含まれる。また、実行要求には、VM群の中のオンラインVMの実行の優先度を、バッチVMよりも高くする旨を示す通知が含まれる。
受付部1801は、より具体的には、例えば、自装置に割り当てられ、同時に実行されるオンラインVMとバッチVMとの実行要求を受け付ける。ここで、オンラインVMとバッチVMとは、自装置において同時に実行した場合に、上記式(10)および式(11)の制約条件を満たすことができるVM群である。また、実行要求には、VM群の配置先のCPUを指定する情報が含まれてもよい。これにより、受付部1801は、自装置において同時に実行しても、性能低下を回避することができるオンラインVMと、規定終了時刻までに終了させることができるバッチVMと、の処理を開始するトリガを発生させることができる。
また、受付部1801は、自装置に配置済みのオンラインVMと同時に実行されるバッチVMの実行要求を受け付けてもよい。また、実行要求には、VM群の配置先になるオンラインVMが配置済みのCPUを指定する情報が含まれてもよい。これにより、受付部1801は、自装置において配置済みのオンラインVMと同時に実行しても、配置済みのオンラインVMが性能低下を生じず、かつ、規定終了時刻までに終了させることができるバッチVMの処理を開始するトリガを発生させることができる。
また、受付部1801は、自装置に配置済みのバッチVMと同時に実行されるオンラインVMの実行要求を受け付けてもよい。また、実行要求には、VM群の配置先になるバッチVMが配置済みのCPUを指定する情報が含まれてもよい。ここで、オンラインVMとバッチVMとは、自装置において同時に実行した場合に、上記式(10)および式(11)の制約条件を満たすことができるVM群である。これにより、受付部1801は、自装置において配置済みのバッチVMと同時に実行しても、配置済みのバッチVMが規定終了時刻までに終了し、かつ、性能低下を回避することができるオンラインVMの処理を開始するトリガを発生させることができる。
決定部1802は、仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定する。ここで、仮想マシン群は、他の装置と双方向通信により所定の処理を実行する第1種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第2種類の仮想マシンと、を含む。演算処理装置とは、CPUである。決定部1802は、具体的には、例えば、VM群の配置先を、複数のCPUの中で、VMを配置済みのCPUに決定する。また、決定部1802は、実行要求に配置先のCPUを指定する情報が含まれる場合、当該情報が示すCPUを配置先に決定してもよい。これにより、決定部1802は、同一CPUによりVM群を実行し、CPUリソースを効率よく利用することができる。
また、決定部1802は、前記第1種類の仮想マシンが前記複数の演算処理装置のいずれかの演算処理装置に配置済みである場合、第2種類の仮想マシンの配置先を、第1種類の仮想マシンが配置済みの演算処理装置に決定してもよい。決定部1802は、具体的には、例えば、バッチVMの配置先を、オンラインVMが配置済みのCPUに決定する。これにより、決定部1802は、同時に実行しても性能低下を回避することができる配置済みのオンラインVMと規定終了時刻までに終了させることができる割当対象になるバッチVMとを同一のCPUにより実行させることができる。
また、決定部1802は、前記第2種類の仮想マシンが前記複数の演算処理装置のいずれかの演算処理装置に配置済みである場合、第1種類の仮想マシンの配置先を、第2種類の仮想マシンが配置済みの演算処理装置に決定してもよい。決定部1802は、具体的には、例えば、オンラインVMの配置先を、バッチVMが配置済みのCPUに決定する。これにより、決定部1802は、同時に実行しても性能低下を回避することができる割当対象になるオンラインVMと規定終了時刻までに終了させることができる配置済みのバッチVMとを同一のCPUにより実行させることができる。
割当部1803は、複数の演算処理装置のうち決定部1802によって配置先に決定された演算処理装置に、仮想マシン群を割り当てる。これにより、割当部1803は、VMの処理をCPUに開始させることができる。
制御部1804は、第1種類の仮想マシンを第2種類の仮想マシンよりも優先して実行するように制御する。制御部1804は、具体的には、例えば、オンラインVMの優先度を、バッチVMの優先度より高くするようにCPUに通知する。そのため、CPUは、オンラインVMの実行には優先してCPUリソースを利用し、バッチVMの実行にはオンラインVMの実行に利用されていない余りのCPUリソースを利用する。これにより、制御部1804は、オンラインVMの性能低下を回避することができる。
(制御サーバ100によるサーバSへのVMの割当結果)
次に、図19および図20を用いて、制御サーバ100によるサーバSへのVMの割当結果について説明する。
図19および図20は、制御サーバ100によるサーバSへのVMの割当結果の一例を示す説明図である。図19の例では、サーバS1には、オンラインVM11と、バッチVM12と、オンラインVM13と、バッチVM14と、オンラインVM15と、オンラインVM16と、バッチVM17と、が配置済みである。また、サーバS2には、バッチVM18が配置済みである。サーバS3には、VMが割り当てられておらず、電力供給がされていない。一例として、オンラインVMの平均CPU利用率は30%、オンラインVMの標準偏差込みのCPU利用率は80%、バッチVMの平均CPU利用率は30%、各サーバSの閾値は360%とする。
制御サーバ100は、オンラインVM19をいずれかのサーバSに割り当てる。制御サーバ100は、割当対象VMテーブル1500からオンラインVM19の平均CPU利用率とCPU利用率の標準偏差を取得し、配置済みVMテーブル1600から配置済みのVM11〜18の平均CPU利用率やCPU利用率の標準偏差を取得する。そして、制御サーバ100は、取得した平均CPU利用率と標準偏差とを用いて、混合整数計画問題を解く。
制御サーバ100は、具体的には、例えば、図4〜図16に示した各テーブルに記憶された変数の値を設定した混合整数計画問題をGLPKに入力し、GLPKが求めた混合整数計画問題の解を取得する。例えば、GLPKは、VM19を割り当てた場合の変数xn,i,jを、解として出力する。
例えば、サーバS1〜S3のいずれのサーバSにおいても、配置済みのVMの平均CPU利用率と、オンラインVM19の平均CPU利用率「30%」と、の和が、CPU利用率の上限になる閾値「360%」以下である。従って、サーバS1〜S3は上記式(10)の条件を満たしている。
また、サーバS1においては、配置済みのオンラインVMの標準偏差込みのCPU利用率「320%」と、オンラインVM19の標準偏差込みのCPU利用率「80%」と、の和が、CPU利用率の上限になる閾値「360%」を超えている。従って、サーバS1は上記式(11)の条件を満たしていない。また、サーバS2,S3においては、配置済みのオンラインVMの標準偏差込みのCPU利用率と、オンラインVM19の標準偏差込みのCPU利用率「80%」と、の和が、CPU利用率の上限になる閾値「360%」以下である。従って、サーバS2,S3は上記式(11)の条件を満たしている。
また、電源供給されていないサーバS3にオンラインVM19を割り当てる場合、サーバS3に電源を供給して、オンラインVM19を割り当てて、実行させることになる。この場合、サーバルームでの消費電力が増大してしまい、上記式(5)の最小化関数を最小化できなくなる。そのため、GLPKは、例えば、オンラインVM19がラック203(1)のサーバS2に割り振られているか否かを示す変数x19,1,2を「1」にして出力する。
そして、制御サーバ100は、出力された解「x19,1,2=1」に応じたサーバS2にオンラインVM19を割り当てる。これにより、制御サーバ100は、オンラインVMの性能低下を回避することができる。また、制御サーバ100は、バッチVMが規定終了時刻までに終了し、かつ、VMを割り当てられたサーバS数が少なくなるように、VMを割り当てることができる。
また、制御サーバ100は、オンラインVM19を割り当てると、割当対象VMテーブル1500のオンラインVM19に関するレコードを参照して、配置済みVMテーブル1600にオンラインVM19に関するレコードを追加する。また、制御サーバ100は、割当対象VMテーブル1500のオンラインVM19に関するレコードを削除する。また、制御サーバ100は、初期配置テーブル1300のサーバS2に関する初期配置項目を更新する。これにより、制御サーバ100は、以降において、新たにVMを割り当てる場合、オンラインVM19の平均CPU利用率とCPU利用率の標準偏差を、配置済みVMテーブル1600から取得できる。
一方、サーバS2は、自装置内で、配置済みのVM群の中のオンラインVMの性能低下を回避し、配置済みのVM群の中のバッチVMを規定終了時刻までに終了することができるように、オンラインVM19をいずれかのCPUに実行させる。これにより、サーバS2は、オンラインVMの性能低下を回避し、バッチVMを規定終了時刻までに終了することができる。
次に、図20の例では、サーバS2に割り当てられたオンラインVM19が終了している。ここで、サーバS2に割り当てられたVMが、バッチVM18であることを検出すると、制御サーバ100は、バッチVM18を他のサーバSに移行できるかを試行する。
具体的には、制御サーバ100は、配置済みのVMからバッチVM18を除外し、かつ、割当対象になるVMとしてバッチVM18を採用した場合の混合整数計画問題を解き、バッチVM18の割り当てをやり直す。
具体的には、制御サーバ100は、配置済みVMテーブル1600のバッチVM18に関するレコードを参照して、割当対象VMテーブル1500にバッチVM18に関するレコードを追加する。また、制御サーバ100は、配置済みVMテーブル1600のバッチVM18に関するレコードを削除する。また、制御サーバ100は、初期配置テーブル1300のサーバS1,S2に関する初期配置項目を更新する。これにより、制御サーバ100は、バッチVM18を割当対象になるVMとして扱うことができる。
そして、制御サーバ100は、図4〜図16に示した各テーブルに記憶された変数の値を設定した混合整数計画問題をGLPKに入力し、GLPKが求めた混合整数計画問題の解を取得する。例えば、GLPKは、VM18を割り当てた場合の変数xn,i,jを、解として出力する。そして、制御サーバ100は、混合整数計画問題の解に応じたサーバSにバッチVM18を割り当てる。
例えば、サーバS1〜S3のいずれのサーバSにおいても、配置済みのVMの平均CPU利用率と、バッチVM18の平均CPU利用率「30%」と、の和が、CPU利用率の上限になる閾値「360%」以下である。従って、サーバS1〜S3は上記式(10)の条件を満たしている。
また、サーバS1〜S3のいずれのサーバSにおいても、配置済みのオンラインVMの標準偏差込みのCPU利用率が、CPU利用率の上限になる閾値「360%」以下である。従って、サーバS1〜S3は上記式(11)の条件を満たしている。
また、サーバS2にバッチVM18を割り当てない場合、サーバS2にはVMが一つも割り当てられなくなる。この場合、サーバS2に割り当てなければ、制御サーバ100は、サーバS2への電力供給を停止することができる。これにより、サーバルームでの消費電力が低減され、上記式(5)の最小化関数が小さくなる。また、サーバS3にバッチVM18を割り当てると、制御サーバ100は、サーバS3に電源を供給して、バッチVM18を実行させることになる。この場合、サーバルームでの消費電力が増大してしまい、上記式(5)の最小化関数を最小化できない。以上より、GLPKは、例えば、バッチVM18がラック203(1)のサーバS1に割り振られているか否かを示す変数x19,1,1を「1」にして出力する。
ここで、制御サーバ100は、混合整数計画問題の解「x19,1,1=1」に応じたサーバS1にバッチVM18を割り当て、サーバS2からバッチVM18を移行させる。そして、制御サーバ100は、サーバS2に割り当てられたVMがないことを検出すると、サーバS2への電力供給の停止をUPS206に要求する。これにより、サーバルームの消費電力が低減される。また、制御サーバ100は、VMの移行においても、上記式(10)および式(11)の条件を満たすサーバSにVMを移行するため、オンラインVMの性能低下を回避し、バッチVMを規定終了時刻までに終了させることができる。
また、混合整数計画問題の解に応じたサーバSがサーバS2であれば、制御サーバ100は、VMの移行を行わない。これにより、制御サーバ100は、消費電力を低減できる移行先があれば、VMを移行することにより、サーバルームの消費電力を低減することができる。また、一般に移行の際にはVMの性能が悪化するため、制御サーバ100は、オンラインVMを移行すると、クライアント202への応答が遅れ、クライアント202の利用者が不利益を被ったり、SLA違反を生じたりする場合がある。そのため、制御サーバ100は、オンラインVMについては移行を行わないようにしてもよい。
(割当処理)
次に、図21を用いて、制御サーバ100によって実行される割当処理の詳細な処理手順について説明する。
図21は、割当処理の詳細な処理手順を示すフローチャートである。図21において、まず、制御サーバ100は、VMの割当要求を受け付けたか否かを判定する(ステップS2101)。ここで、VMの割当要求を受け付けていない場合(ステップS2101:No)、制御サーバ100は、ステップS2101に戻り、割当要求を待つ。
一方、VMの割当要求を受け付けた場合(ステップS2101:Yes)、制御サーバ100は、割当要求されたVMがオンラインVMか否かを判定する(ステップS2102)。ここで、オンラインVMである場合(ステップS2102:Yes)、制御サーバ100は、割当対象VMテーブル1500から、オンラインVMの平均CPU利用率と、オンラインVMのCPU利用率の標準偏差と、を取得する(ステップS2103)。そして、制御サーバ100は、ステップS2105に移行する。
一方、オンラインVMではない場合(ステップS2102:No)、制御サーバ100は、割当対象VMテーブル1500から、バッチVMの平均CPU利用率を取得する(ステップS2104)。そして、制御サーバ100は、ステップS2105に移行する。
次に、制御サーバ100は、取得したバッチVMの平均CPU利用率、または取得したオンラインVMの平均CPU利用率と標準偏差を用いて混合整数計画問題を解く(ステップS2105)。
次に、制御サーバ100は、混合整数計画問題の解に応じて、VMを割り当てる(ステップS2106)。そして、制御サーバ100は、割当処理を終了する。これにより、制御サーバ100は、オンラインVMの性能低下を回避し、バッチVMが規定終了時刻までに終了し、かつ、VMを割り当てられたサーバS数が少なくなるように、VMを割り当てることができる。
以上説明したように、割当装置は、オンラインVMの平均CPU利用率と、オンラインVMのCPU利用率のσ×cと、の和が、サーバSでのCPU利用率の上限を超えない条件の下で、VMを割り当てる。これにより、割当装置は、サーバSでのオンラインVM同士の競合を回避させることができ、オンラインVMの性能低下を回避することができる。
また、割当装置は、VM群の複数のバッチVMの平均CPU利用率と、VM群の複数のオンラインVMの平均CPU利用率と、の和が、サーバSでのCPU利用率の上限を超えない条件の下で、VMを割り当てる。そのため、割当装置は、バッチVMが規定終了時刻までに終了するようにVMを割り当てることができる。
また、割当装置は、VM群をまとめて1つのサーバSに割り当てることにより、サーバルームにおけるVMが割り当てられたサーバS数を減少させることができる。結果、割当装置は、VMが割り当てられていないサーバSがあれば、電力供給を停止して、サーバルームの消費電力を低減することができる。
また、割当装置は、配置済みのVMを移行させることにより、サーバルームにおけるVMが割り当てられたサーバS数を減少させることができる。結果、割当装置は、VMが割り当てられていないサーバSがあれば、電力供給を停止して、サーバルームの消費電力を低減することができる。
この場合、割当装置は、配置済みのVMがオンラインVMである場合、オンラインVMを移行対象にしないことにより、オンラインVMの性能低下を回避することができる。
なお、本実施の形態で説明した割当方法および情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータにより実行することにより実現することができる。本割当プログラムおよび本情報処理プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本割当プログラムおよび本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)他の装置と双方向通信により所定の処理を実行する第1種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第2種類の仮想マシンと、を含む仮想マシン群の演算処理装置使用率の予測値がしきい値以下となる前記仮想マシン群を割当装置から受け付ける受付部と、
前記受付部によって受け付けられた前記仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定する決定部と、
前記複数の演算処理装置のうち前記決定部によって配置先に決定された演算処理装置に、前記仮想マシン群を割り当てる割当部と、
前記第1種類の仮想マシンを前記第2種類の仮想マシンよりも優先して実行するように制御する制御部と、
を有することを特徴とする情報処理装置。
(付記2)前記決定部は、
前記第1種類の仮想マシンが前記複数の演算処理装置のいずれかの演算処理装置に配置済みである場合、前記第2種類の仮想マシンの配置先を、前記第1種類の仮想マシンが配置済みの演算処理装置に決定することを特徴とする付記1に記載の情報処理装置。
(付記3)前記決定部は、
前記第2種類の仮想マシンが前記複数の演算処理装置のいずれかの演算処理装置に配置済みである場合、前記第1種類の仮想マシンの配置先を、前記第2種類の仮想マシンが配置済みの演算処理装置に決定することを特徴とする付記1に記載の情報処理装置。
(付記4)サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第1種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第2種類の仮想マシンと、を含む仮想マシン群の割当先を選択する選択部と、
前記仮想マシン群を同一のサーバに割り当てた場合の前記仮想マシン群の演算処理装置使用率に基づく演算処理装置使用率の予測値を取得する取得部と、
前記取得部によって取得された予測値が、前記選択部によって選択されたサーバの演算処理装置数に基づくしきい値以下であるか否かを判断する判断部と、
前記判断部によってしきい値以下と判断された場合、前記第1種類の仮想マシンを前記第2種類の仮想マシンよりも優先して実行するように、前記選択されたサーバに前記仮想マシン群を割り当てる割当部と、
を有することを特徴とする割当装置。
(付記5)前記選択部は、
前記第1種類の仮想マシンが配置済みであるサーバを選択し、
前記割当部は、
前記判断部によってしきい値以下と判断された場合、前記第1種類の仮想マシンを前記第2種類の仮想マシンよりも優先して実行するように、前記選択されたサーバに、前記第2種類の仮想マシンを割り当てることを特徴とする付記4に記載の割当装置。
(付記6)前記サーバ群に配置済みの前記第2種類の仮想マシン群の中から、予測残存実行時間が最長の前記第2種類の仮想マシンを特定する特定部を有し、
前記選択部は、
前記特定部によって特定された予測残存実行時間が最長の前記第2種類の仮想マシンが配置済みのサーバ以外であって、かつ、前記第1種類の仮想マシンが配置済みであるサーバを選択することを特徴とする付記5に記載の割当装置。
(付記7)前記選択部は、
前記第2種類の仮想マシンが配置済みであるサーバを選択し、
前記割当部は、
前記第1種類の仮想マシンを前記第2種類の仮想マシンよりも優先して実行するように、前記選択されたサーバに、前記第1種類の仮想マシンを割り当てることを特徴とする付記4に記載の割当装置。
(付記8)前記サーバ群に配置済みの前記第2種類の仮想マシン群の中から、予測残存実行時間が最長の前記第2種類の仮想マシンを特定する特定部を有し、
前記選択部は、
前記特定部によって特定された予測残存実行時間が最長の前記第2種類の仮想マシンが配置済みであるサーバを選択することを特徴とする付記7に記載の割当装置。
(付記9)前記サーバ群のうちいずれの仮想マシンも割り当てられていないサーバの消費電力が低下するように制御する制御部を備えることを特徴とする付記4〜8のいずれか一つに記載の割当装置。
(付記10)コンピュータが、
他の装置と双方向通信により所定の処理を実行する第1種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第2種類の仮想マシンと、を含む仮想マシン群の演算処理装置使用率の予測値がしきい値以下となる前記仮想マシン群を割当装置から受け付け、
受け付けられた前記仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定し、
前記複数の演算処理装置のうち配置先に決定された演算処理装置に、前記仮想マシン群を割り当て、
前記第1種類の仮想マシンを前記第2種類の仮想マシンよりも優先実行するように制御する、
処理を実行することを特徴とする情報処理方法。
(付記11)コンピュータが、
サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第1種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第2種類の仮想マシンと、を含む仮想マシン群の割当先を選択し、
前記仮想マシン群を同一のサーバに割り当てた場合の前記仮想マシン群の演算処理装置使用率に基づく演算処理装置使用率の予測値を取得し、
取得された予測値が、選択されたサーバの演算処理装置数に基づくしきい値以下であるか否かを判断し、
しきい値以下と判断された場合、前記第1種類の仮想マシンを前記第2種類の仮想マシンよりも優先して実行するように、前記選択されたサーバに前記仮想マシン群を割り当てる、
処理を実行することを特徴とする割当方法。
(付記12)コンピュータに、
他の装置と双方向通信により所定の処理を実行する第1種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第2種類の仮想マシンと、を含む仮想マシン群の演算処理装置使用率の予測値がしきい値以下となる前記仮想マシン群を割当装置から受け付け、
受け付けられた前記仮想マシン群の配置先を、演算処理装置の処理能力内に収まるよう複数の演算処理装置の中のいずれかの演算処理装置に決定し、
前記複数の演算処理装置のうち配置先に決定された演算処理装置に、前記仮想マシン群を割り当て、
前記第1種類の仮想マシンを前記第2種類の仮想マシンよりも優先して実行するように制御する、
処理を実行させることを特徴とする情報処理プログラム。
(付記13)コンピュータに、
サーバ群の中から、他の装置と双方向通信により所定の処理を実行する第1種類の仮想マシンと、対話的な入出力がなく、所定の処理を所定の時間までに行う定型処理を実行する第2種類の仮想マシンと、を含む仮想マシン群の割当先を選択し、
前記仮想マシン群を同一のサーバに割り当てた場合の前記仮想マシン群の演算処理装置使用率に基づく演算処理装置使用率の予測値を取得し、
取得された予測値が、選択されたサーバの演算処理装置数に基づくしきい値以下であるか否かを判断し、
しきい値以下と判断された場合、前記第1種類の仮想マシンを前記第2種類の仮想マシンよりも優先実行するように、前記選択されたサーバに前記仮想マシン群を割り当てる、
処理を実行させることを特徴とする割当プログラム。