図1に、実施例の情報処理システムの例が示される。情報処理システムは、データセンタ(DC:Data Center)100−400、中継装置500−530、制御コンピュータ600、通信経路810−880を含む。クライアント800はデータセンタ400に接続する。
データセンタ100−400の各々は、1以上のサーバ及びサーバに接続された1以上の記憶装置を有する。その1以上のサーバに含まれるCPUやメモリのリソースが割り当てられることによって、仮想マシン(VM:Virtual Machine)が実行される。その1以上の記憶装置から仮想マシンに対して記憶領域としてHDD(Hard Disk Drive)といったディスク(Disk)が割り当てられ、仮想マシンによって実行される処理に使用されるデータがディスクに格納される。なお、実施例の記憶装置はディスクに限定されず、メモリや、SSD(Solid State Drive)といったストレージが適用されてもよい。
例えば、データセンタ100では、データセンタ100に含まれるサーバのリソースが割り当てられることで、仮想マシン101及び102が実行される。また、データセンタ100に含まれる記憶装置の記憶領域ディスク111及び112として割り当てられる。なお、データセンタ100では、仮想マシン101及び102に加えて1つの仮想マシンを実行するためのリソースが残っているとし、図1において、その残りのリソースによって実行可能な仮想マシンが“VM”を点線の円(符号なし)で囲んだものとして示されている。また、データセンタ100では、ディスク111及び112に加えて1つのディスクを割り当てるためのリソースが残っているとし、図1において、その残りのリソースによって割り当て可能なディスクが“DISK”を点線の四角(符号なし)で囲んだものとして示されている。すなわち、点線で示されている構成は、利用可能な仮想マシン及びディスクである。
なお、他のデータセンタ200−400の構成は、上述したデータセンタ100の構成と実質的に同じであるため説明を省略する。以降の説明では、データセンタ100−400において、実行可能な仮想マシンの総数を3、及び割り当て可能なディスクの総数を3として説明するが、実施例はこれに限定されず、データセンタに含まれるサーバの能力や数、また記憶装置の容量などによって、仮想マシン及びディスクの総数を決めればよい。
データセンタ100−400の各々は、中継装置500−530及び中継装置500−530の間を接続する通信経路710−780によって、互いに接続されている。中継装置500−530は、例えばルータ(RT:Router)などの通信経路を制御するための装置である。通信経路710−780は、例えば光ファイバや電話網である。データセンタ100−400内で実行される仮想マシンは、中継装置500−530及び通信経路710−780を介して互いに通信する。
制御コンピュータ600は、後述されるように仮想マシン及びディスクのマイグレーションの制御や、中継装置から通信状況に関する情報の収集を、中継装置500−530及び通信経路710−780を介して実行する。
クライアント800は、データセンタ400に接続されている。クライアント800が実行するアプリケーションは、データセンタ100内で実行される仮想マシン101、仮想マシン102、ディスク111及びディスク112を使用することによって、実行されているとする。クライアント800は、このアプリケーションの実行のために、中継装置500−530及び通信経路710−780を介してデータセンタ100と通信する。
図2に、クライアントが仮想マシンに処理の実行を要求してから処理結果がクライアントに返されるまでの応答時間の例が示される。図2A、B、C及びDの4つの例には、図1に示されたクライアント800から仮想マシン101に処理の要求が送信され、仮想マシン101が要求された処理を実行するためにディスク111と3回のアクセスを実行して、処理結果をクライアント800に返すまでのタイムチャートが例示される。
図2Aに、図1に示されるクライアント800からデータセンタ400、中継装置530、中継装置520、及び中継装置500を経由して、データセンタ100内で実行される仮想マシン101に処理の要求が送信され、仮想マシン101が要求された処理を実行するためにディスク111と3回のアクセスを実行して、処理結果が中継装置500、中継装置520、中継装置530、及びデータセンタ400を経由してクライアント800に返される例が示される。なお、中継装置500、520及び530が“RT”と表記されている。
図2Aに示される“T1”は、クライアント800が処理の要求をしてから、処理結果を受けとるまでの応答時間である。後述するが、応答時間“T1”は、クライアント800が処理の要求をしてから処理結果を受けとるまでの、クライアントとデータセンタとの間の伝搬時間、データセンタと中継装置との間の伝搬時間、及び中継装置間の伝搬時間の総和である伝搬時間“Tp”、中継装置でのデータ転送にかかる転送処理時間の総和である転送処理時間“Ts”、及び仮想マシンとディスクとの間のアクセスにかかる時間の総和であるアクセス時間“Ta”の合計値となる。
図2Aに示される“Tp”は、クライアント800が処理の要求をしてから、処理結果を受けとるまでに介在する、クライアントとデータセンタとの間の伝搬時間、データセンタと中継装置との間の伝搬時間、及び中継装置間の伝搬時間といった各拠点間の伝搬時間の総和である。伝搬時間“Tp”は伝搬遅延ともよばれ、距離に依存した時間として算出することができ、典型的には光ファイバを用いた光通信の場合に100kmあたり約0.5msとして算出される。なお、図2Aでは、クライアントとデータセンタとの間、データセンタと中継装置との間、及び中継装置間といった各拠点間が同じ距離として表現されているが、各拠点間の距離は様々であり、各拠点間の伝搬時間はその距離に依存して算出されればよい。
図2Aでは、煩雑になることを避けるために一部省略しているが、伝搬時間“Tp”が算出される際に考慮される拠点間の一部に“Tp”の符線が付されており、例えば、クライアント800からデータセンタ400にデータが転送されるまでの時間、データセンタ400から中継装置530にデータが転送されるまでの時間、中継装置530から中継装置520にデータが転送されるまでの時間などが、伝搬時間“Tp”が算出される際に考慮される。
図2Aに示される“Ts”は、クライアント800が処理の要求をしてから、処理結果を受けとるまでに介在する中継装置でのデータ転送にかかる転送処理時間の総和であり、処理遅延ともよばれる。図2Aでは、煩雑になることを避けるために一部省略しているが、転送処理時間“Tp”が算出される際に考慮される処理の一部に“Ts”の符線が付されており、例えば、中継装置530においてデータ転送にかかる処理にかかる時間が、転送処理時間“Tp”が算出される際に考慮される時間である。
転送処理時間“Ts”は、各拠点間の通信経路のリンク使用率に依存する。なお、リンク使用率とは、通信経路の最大の帯域に対して使用されている帯域の割合であり、例えば、帯域が10Gbpsの通信経路において2Gbpsの帯域がすでに使用されているとすると、リンク使用率は20%となる。例えば、複数の通信経路を経由する通信の場合に、最も混雑している通信経路のリンク使用率によって転送処理時間“Ts”が決まる。なぜならば、複数の通信経路のうちの他の通信経路の帯域に余裕があっても、リンク使用率が相対的に大きい通信経路は混雑しているためにデータが送りだせないからである。この場合、中継装置でデータがバッファリングされ、バッファリングの能力を超える場合にはデータを送りださないようフィードバックをかけ、最も混雑しているリンク使用率が相対的に大きな通信経路の帯域に合わせて通信が実行される。例えば、中継装置530から中継装置500へデータを転送する場合を考える。中継装置530と中継装置520との間の通信経路の最大の帯域が10Gbpsであってリンク使用率が40%であり、中継装置520と中継装置500との間の通信経路の最大の帯域が10Gbpsであってリンク使用率が20%であると、中継装置520から中継装置500へのデータ転送には相対的に余裕があったとしても、中継装置520に転送されるデータレートが40%のリンク使用率に依存したデータレートとなるために、中継装置520から中継装置500へのデータ転送もこのデータレートに依存することとなる。
図2Aに示される“Ta”は、クライアント800から要求された処理を実行するために、仮想マシン101がディスク111にアクセスしている時間の総和である。ここでは、仮想マシン101が要求された処理を実行するために、ディスク111に3回アクセスしている例が示されており、3回のアクセスにかかった時間がアクセス時間“Ta”である。図2Aでは、仮想マシン101とディスク111とのアクセスが、同じデータセンタ100内で実行されているため、アクセス時間“Ta”が、ネットワークを介した通信によって定まる伝搬時間“Tp”、や転送処理時間“Tp”よりも相対的に短い。
なお、図2B、C及びDに付された伝搬時間“Tp”、転送処理時間“Tp”、及びアクセス時間“Ta”は、上述した内容と同様である。
図2Bには、図1の示されたクライアント800に最も近いデータセンタ400にデータセンタ100から仮想マシン101及びディスク111がマイグレーションされた場合に、クライアント800から仮想マシン101に処理の要求が送信され、仮想マシン101が要求された処理を実行するためにディスク111と3回のアクセスを実行して、処理結果をクライアント800に返すまでのタイムチャートが例示される。クライアント800に処理結果が返されるまでの応答時間“T2”であり、図2Aと比較して他のデータセンタや中継装置を介さないため、応答時間“T2”は、伝搬時間“Tp”及びアクセス時間“Ta”の和になる。
図2Cは、図1の示されたデータセンタ300にデータセンタ100から仮想マシン101及びディスク111がマイグレーションされた場合に、クライアント800からデータセンタ400、中継装置530、及び中継装置520を経由して、データセンタ300内で実行される仮想マシン101に処理の要求が送信され、仮想マシン101が要求された処理を実行するためにディスク111と3回のアクセスを実行して、処理結果が中継装置520、中継装置530、及びデータセンタ400を経由してクライアント800に返される例が示される。クライアント800に処理結果が返されるまでの応答時間が“T3”であり、図2Aと比較して通信経路が短くなっていることと中継装置500を介さないことによって、応答時間“T3”は、応答時間“T1”よりも短くなっている。
図2Dは、図1の示されたデータセンタ400にデータセンタ100から仮想マシン101がマイグレーションされ、データセンタ300にディスク111がマイグレーションされた場合の例である。クライアント800から仮想マシンに処理の要求が送信され、仮想マシン101が要求された処理を実行するために、中継装置530、及び中継装置520間を3回介してデータセンタ300内のディスク111にアクセスして、処理結果がクライアント800に返される。クライアント800に処理結果が返されるまでの応答時間が“T4”である。仮想マシン101とディスク111とが異なるデータセンタにマイグレーションされたため、仮想マシン101とディスク111との間のアクセス毎にデータセンタ間のネットワークに通信が発生する。この場合、ネットワークを介した通信では、その度に伝搬遅延と処理遅延とが発生するため、図2A,B及びCと比較して、応答時間が長くなっている。
ところで、仮想マシン101及びディスク111間で通信されるデータ量が、クライアント800から送信される要求及び仮想マシン101が送信する処理結果のデータ量よりも少ない場合には、Taと比較して、TpやTsは相対的に大きくなる。例えば、あるデータセンタに、橋梁の備え付けられたセンタから収集した橋梁の強度に関するログデータが1年分といった長期間蓄積され、この蓄積されたログデータの解析に基づいて強度に関する時系列のデータを取得するためには、解析を開始させるためのkbpsのオーダのトリガ信号がクライアント800からデータセンタ100へ送信されるのに対して、解析中には膨大なデータ量の通信が仮想マシン101とディスク111との間で実行されるからである。
図2A、B及びCに示されるように、仮想マシン101とディスク111との間の通信がデータセンタ内で実行される場合には、例えば数百kmのオーダで通信が実行されるデータセンタ間の通信の伝搬遅延や、データセンタ間のネットワークに介在する中継装置による処理遅延と比較して、アクセス時間による遅延が少ない。従って、解析中の膨大なデータ量の通信があっても、同じデータセンタにある仮想マシンとディスクとで通信される場合には、クライアントへの応答時間に対してはアクセス時間が無視できる程度の遅延となる。
しかし、図2Dに示されるように、仮想マシンとディスクとが異なるデータセンタにマイグレーションされ、データセンタ間のネットワークを介して仮想マシンがディスクにアクセスする場合には、データ量の多い通信が複数回ネットワークに発生するため、伝搬遅延及び中継装置による処理遅延が図2A、B及びCと比較して大きくなり、アクセス時間が応答時間に与える影響が無視できなくなる。
例えば、図1に示されるデータセンタ100内で実行される仮想マシン101−103及びディスク111−112によりサービスを受けていたクライアント800が、より低遅延のサービスを受けるために、契約内容をより低遅延を保証する契約内容に変更することがある。この場合、クライアント800により近いデータセンタ400に仮想マシン101−103及びディスク111−112をマイグレーションさせることによって、ネットワークにおける伝搬時間や転送処理時間を少なくすることが考えられる。クライアント800に最も近いデータセンタ400に、仮想マシン101−103及びディスク111−112の全てをマイグレーションさせるだけのリソースがあれば、そのリソースを利用してマイグレーションを実行すればよい。
しかし、図1に示されるように、データセンタ400において空いているリソースが仮想マシン2個分及びディスク1個分の場合には、仮想マシン101−103及びディスク111−112の全てをマイグレーションさせるだけの空きリソースがない。この場合に、仮想マシン101−103及びディスク111−112を、データセンタ200−400に分散させてマイグレーションさせると、マイグレーション後の仮想マシン101−103及びディスク111−112との間の通信に、図2B、C、Dに示された通信の例が混在する可能性がある。とりわけ、図2Dに示されたような通信が発生する場合には、クライアント800に対して遅延が大きくなってしまう。
以上に述べたように、複数のデータセンタのリソースを有効に利用するために、仮想マシン及びディスクを複数のデータセンタに分散してサービスを行うと、データセンタ内では時間が相対的に短いと想定できた仮想マシンとディスクとのアクセスがデータセンタ間に発生してしまう。そのため、クライアントのサービス体感を向上させるためには、クライアントの要求に対するリソースの割り当て量を考慮するだけでは不十分である。図2Dに示されたように、仮想マシンとディスクとの間のアクセス回数が多いほど、クライアントが処理の実行を要求してから処理結果を受け取るまでの応答時間が長くなってしまうため、このアクセス回数や、このアクセスによって発生するネットワークでの伝搬遅延や中継装置における処理遅延を考慮する必要がある。以上に述べたように、複数のデータセンタのリソースを有効活用することと、クライアントに対する応答時間を短くすることにはジレンマがある。
後述される実施例によれば、複数の割り当て先に仮想マシン及び記憶装置を割当てる場合に、記憶装置へのアクセス頻度に応じた応答時間が短くなる割り当て先の組合せを選ぶ事で、ユーザに処理結果が返されるまでの応答遅延を小さくできる。
図3に、実施例のサーバのハードウェア構成の例が示される。実施例のデータセンタ100−400の各々は1以上のサーバ及びサーバに接続されたディスクを含む。サーバはCPU1000、メモリコントローラ1010、メモリ1020、メモリバス1030、IOバスコントローラ1040、NIC1050、及びIOバス1060を含む。上述されたディスクに対応する構成としての記憶装置1070がIOバス1060に接続される。
メモリバス1030に接続されたメモリ1020には、サーバの各種処理を実行するためのプログラムが格納されている。CPU1000は、メモリコントローラ1010を介して、メモリ1020からプログラムを読み出し、各種処理を実行する。CPU1000によって実行される各種処理に伴い、メモリ1020に対するデータの書き込み及び読み出しがメモリコントローラ1010を介して実行される。
CPU1000は、IOバスコントローラ1040を介して、IOバス1060に接続されたNIC1050にサーバから送信されるデータやパケットを転送し、また、サーバに対して送信されたデータやパケットを受信する。CPU1000は、IOバスコントローラ1040を介して、IOバス1060に接続された記憶装置1070からデータを読み出し、また記憶装置1070にデータを書き込む。
CPU1000は、各種処理を実行するための1以上のCPUコアを含んでいてもよい。また、各CPUコアは1以上のプロセッサを含んでいてもよい。メモリ1020は、例えばDRAM(Dynamic Random Access Memory)などのRAMである。記憶装置1070は、例えば、ROM(Read Only Memory)やフラッシュメモリなどの不揮発性メモリ、又はHDD(Hard Disk Drive)等の磁気ディスク装置である。
なお、CPU1000、メモリコントローラ1010、メモリ1020、NIC1050、及び、記憶装置1070が同じバスに接続された構成を実施例のサーバ100−400に適用してもよい。図3に示されるハードウェア構成によって、後述されるサーバの機能ブロックが実現され、処理が実行される。
図4に、実施例のデータセンタに含まれるサーバの機能ブロックの例が示される。実施例のデータセンタ100−400の各々に含まれるサーバでは、記憶装置1070に格納されたプログラムが、ワーキングメモリとして使用されるメモリ1020にロードされる。メモリ1020にロードされたプログラムがCPU1000によって実行されることにより、カウンタ1100、及び算出部1110として機能する。各機能ブロックにより実行される処理が、図5に示される処理と対応させて後述される。
図5に、実施例のデータセンタに含まれるサーバによって実行される処理の例が示される。
データセンタ100−400の各々に含まれるサーバは、クライアントから処理の要求を受信すると、要求頻度及びアクセス頻度を算出するために、図5に示された処理を開始させるための処理2100を実行する。
仮想マシン及びディスクの組み合わせ毎に、所定期間Tc内において、処理の実行が要求される回数Nrをカウントする処理2200が、カウンタ1100によって実行される。処理2200では、クライアントが処理の実行を要求する際に送信するパケットのヘッダに含まれる宛先アドレスにより仮想マシンを特定し、その要求に対する処理によってどのディスクがアクセスされたかをモニタすることで、所定期間Tcにおける組み合わせ毎の回数Nrをカウントすればよい。なお、宛先アドレスは、仮想マシンに割り当てられたMAC(Media Access Control)アドレスやIP(Internet Protocol)アドレスなどである。
仮想マシン及びディスクの組み合わせ毎に、所定期間Tc内におけるディスクへのアクセス回数Naをカウントする処理2300が、カウンタ1100によって実行される。処理2300では、クライアントが処理の実行を要求する際に送信するパケットのヘッダに含まれる宛先アドレスにより仮想マシンを特定し、その要求に対する処理によってどのディスクがアクセスされたかをモニタし、クライアントに対して処理結果が返されるまでのディスクへのアクセス回数をカウントすることで、所定期間Tcにおける組み合わせ毎の回数Naをカウントすればよい。
処理2200によってカウントされた、組み合わせ毎の回数Nrに基づいて、仮想マシン及びディスクの組み合わせ毎に、要求頻度Frを算出する処理2400が、算出部1110によって実行される。処理2200では、回数Nrの何れか(例えば最大値をとるNr)によって各Nrが正規化される。処理2400によって、仮想マシン及びディスクの組み合わせ毎に、クライアントが処理を要求する要求頻度Frが算出され、組み合わせ毎の要求頻度Frの相対関係が求まる。処理2400によって算出された要求頻度Frは、後述される図6に示される情報であり、メモリ1020に格納される。
仮想マシン及びディスクの組み合わせ毎に、アクセス頻度Fa=Na/Nrを算出する処理2500が、算出部1110によって実行される。処理2500は、クライアントからの1回当たりの要求に対して発生するディスクへのアクセス回数の平均値をアクセス頻度として算出する処理である。処理2500によって算出されたアクセス頻度Faは、後述される図7に示される情報であり、メモリ1020に格納される。
図6に、クライアントによる仮想マシンへの要求頻度に関する情報の例が示される。要求頻度Frは、図5に示される処理2400によって算出されてメモリ1020に格納された情報である。ここでは、処理2200によってカウントされた回数Nrのうち、図1に示される仮想マシン102及びディスク111の組み合わせに対応する回数が最も大きく、この値で、各Nrが正規化された場合の例である。
例えば、仮想マシン102及びディスク111の組み合わせに対応する要求頻度が“1”であるのに対して、仮想マシン101及びディスク111の組み合わせに対応する要求頻度が正規化されたことにより“0.5”となっている。
なお、仮想マシン101−103及びディスク111−112が、ある特定のクライアントに割り当てられたリソースであって、特定のクライアントから要求された処理を実行するためのリソースであることを識別するために、仮想マシン101−103及びディスク111−112には特定のクライアントを識別するための共通の識別情報が関連付けられて管理されている。例えば、共通の識別情報として、特定のクライアントに割り当てられているMACアドレスやIPアドレスが使用されてもよい。
図7に、仮想マシンによるディスクへのアクセス頻度に関する情報の例が示される。アクセス頻度Faは、図5に示される処理2500によって算出されてメモリ1020に格納された情報である。図7に示される組み合わせ毎のアクセス頻度は、所定期間Tcにおいて、クライアントからの1回当たりの要求に対して発生するディスクへのアクセス回数の平均値である。例えば、クライアントが仮想マシン101に対して要求を1回すると、仮想マシン101はディスク111と平均して10回アクセスして、処理結果をクライアントに返すことが例示されている。
図8に、実施例の制御コンピュータのハードウェア構成の例が示される。実施例の制御コンピュータ600は、CPU3000、メモリコントローラ3010、メモリ3020、メモリバス3030、IOバスコントローラ3040、NIC3050、IOバス3060、及び記憶装置3070を含む。
メモリバス3030に接続されたメモリ3020には、サーバの各種処理を実行するためのプログラムが格納されている。CPU3000は、メモリコントローラ3010を介して、メモリ3020からプログラムを読み出し、各種処理を実行する。CPU3000によって実行される各種処理に伴い、メモリ3020に対するデータの書き込み及び読み出しがメモリコントローラ3010を介して実行される。
CPU3000は、IOバスコントローラ3040を介して、IOバス3060に接続されたNIC3050にサーバから送信されるデータやパケットを転送し、また、サーバに対して送信されたデータやパケットを受信する。CPU3000は、IOバスコントローラ3040を介して、IOバス3060に接続された記憶装置3070からデータを読み出し、また記憶装置3070にデータを書き込む。
CPU3000は、各種処理を実行するための1以上のCPUコアを含んでいてもよい。また、各CPUコアは1以上のプロセッサを含んでいてもよい。メモリ3020は、例えばDRAM(Dynamic Random Access Memory)などのRAMである。記憶装置3070は、例えば、ROM(Read Only Memory)やフラッシュメモリなどの不揮発性メモリ、又はHDD(Hard Disk Drive)等の磁気ディスク装置である。
なお、CPU3000、メモリコントローラ3010、メモリ3020、NIC3050、及び、記憶装置3070が同じバスに接続された構成を実施例の制御コンピュータ600に適用してもよい。図8に示されるハードウェア構成によって、後述される制御コンピュータ600の機能ブロックが実現され、処理が実行される。
図9に、実施例の制御コンピュータの機能ブロックの例が示される。実施例の制御コンピュータ600では、記憶装置3070に格納されたプログラムが、ワーキングメモリとして使用されるメモリ3020にロードされる。メモリ3020にロードされたプログラムがCPU3000によって実行されることにより、特定部3100、取得部3110、算出部3120、選定部3130、選択部3140、判定部3150、抽出部3160、及び、命令部3170として機能する。各機能ブロックにより実行される処理が、図10に示される処理と対応させて後述される。
図10に、実施例の制御コンピュータによって実行される処理の例が示される。マイグレーション要求が設定されると、図10に示されるように、マイグレーション先のデータセンタを選択するための処理を開始させるための処理4000が、制御コンピュータ600によって実行される。なお、図10の説明では、図1に示されるデータセンタ100において実行される仮想マシン101−103と、それらの仮想マシン101−103によってアクセスされるディスク111及び112により、クライアント800にサービスが提供されており、クライアント800に対してより低遅延のサービスを提供するために、仮想マシン101−103及びディスク111−112をマイグレーションさせるための要求が設定された例に沿って例示する。
マイグレーション要求に基づき、マイグレーションの対象となる仮想マシン及びディスクを特定する処理4010が、特定部3100によって実行される。処理4010により、マイグレーション要求に基づき、仮想マシン101−103及びディスク111−112がマイグレーションの対象となる仮想マシン及びディスクであると特定される。
各データセンタのリソースの使用情報を取得する処理4020が、取得部3110によって実行される。処理4020により、各データセンタ100−400のリソースの使用情報が取得されて、メモリ3020に格納される。
図11に、各データセンタにおけるリソースの使用情報の例が示される。ここでは、図1に示されたデータセンタ100−400において割り当て可能な仮想マシンの数及びディスクの数に対して、すでに割り当てられている仮想マシン数及びディスクの数が示されており、上述したように、データセンタ100−400において割り当て可能な仮想マシンの数が“3”及びディスクの数が“3”であるとして例示されている。処理4020によって取得されるリソースの使用情報において、例えばデータセンタ200では、割り当て可能な仮想マシンの数“3”に対して“2”の数の仮想マシンがすでに割り当てられて使用されている。また、割り当て可能なディスクの数“3”に対して“1”の数のディスクがすでに割り当てられて使用されている。すなわち、データセンタ200では、“1”の数の仮想マシン及び“2”の数のディスクが、まだ割り当て可能なリソースとして残っている。
なお、処理4020に関連して、制御コンピュータ600が、各データセンタ100−400にリソースの使用情報を問い合わせてもよいし、各データセンタ100−400が定期的に自身のリソースの使用情報を制御コンピュータ600に通知してもよい。また、制御コンピュータ600やデータセンタ100−400内の管理サーバが仮想マシンを管理している場合には、仮想マシンが配備、移動、消去される際に更新される管理情報に従ってリソースの使用情報を使用してリソースの使用情報を取得してもよい。
図10に示されるように、処理4010により特定された仮想マシン及びディスクの組み合わせ毎に対応する要求頻度Frに関する情報を取得する処理4030が、取得部3110によって実行される。要求頻度Frに関する情報の例が、上述された図6に示された情報であり、処理4030により制御コンピュータ600は、処理4010により特定された仮想マシン及びディスクを含むデータセンタから要求頻度Frを取得して、メモリ3020に要求頻度Frが格納される。
処理4010により特定された仮想マシン及びディスクの組み合わせ毎のアクセス頻度Faに関する情報を取得する処理4040が、取得部3110によって実行される。アクセス頻度Frに関する情報の例が、上述された図7に示された情報であり、処理4040により制御コンピュータ600は、処理4010により特定された仮想マシン及びディスクを含むデータセンタからアクセス頻度Faを取得し、メモリ3020にアクセス頻度Faが格納される。
ネットワークに含まれる通信経路のリンク使用率に関する情報を取得する処理4050が、取得部3110によって実行される。処理4050により、図1に示されるデータセンタと中継装置との間、及び中継装置間の通信経路710−780のリンク使用率L710−780が取得され、メモリ3020に格納される。
図12に、ネットワークに含まれる通信経路のリンク使用率の例が示される。なお、処理4050により取得されるリンク使用率は、定常的なトラフィックが支配的な状況を想定し、マイグレーション前後で実質的な影響を受けないものと仮定する。図12に示されるように、例えば、通信経路710のリンク使用率L710が“20%”である。なお、リンク使用率は時々刻々と変化する情報のため、制御コンピュータ600は中継装置500−530から定期的にリンク使用率を収集するようにすればよい。中継装置500−530は、自身の出力バッファに入力されるデータ量と出力されるデータ量の変化分から、通信経路において転送されるデータ量を算出して、単位時間当たりに送信しているデータ量に基づいてリンク使用率を制御コンピュータに通知するようにすればよい。
図10に示されるように、各データセンタまでの距離に関する情報を取得するための処理4060が、取得部3110によって実行される。処理4060により、図1に示されるクライアント800と各データセンタ100−400と間の距離に関する情報が取得され、メモリ3020に格納される。なお、この距離に関する情報は、図10に示される処理の順序によらずに取得してメモリ3020に格納しておいてもよい。
図13に、各データセンタまでの距離に関する情報の例が示される。処理4060により取得される距離に関する情報において、例えば、クライアント800からデータセンタ100までの距離が“500km”であると示されている。
図10に示されるように、処理4010により特定された仮想マシン及びディスクの組み合わせ毎に、マイグレーション前の応答時間Tfを算出する処理4070が、算出部3120によって実行される。ここで、マイグレーション前とは、図1に示される仮想マシン101−103及びディスク111−112がデータセンタ100に割り当てられている場合であり、クライアント800が処理の実行を要求してから処理結果を受け取るまでの応答時間Tfは図2Aに示される応答時間“T1”に対応する。上述したが、クライアント800による処理の要求にかかるデータ量や、クライアント800に返される処理結果にかかるデータ量は、データセンタ100内で通信されるデータ量よりも小さい。つまり、応答時間Tfは、仮想マシン101−103とディスク111−112との間のアクセス時間や中継装置の転送処理時間よりも、データセンタとクライアントとの間やデータセンタ間の伝搬時間に実質的に依存する。
処理4070では、例えば、図1に示される通信経路710−780に光ファイバが適用されている場合に、算出部3120は、メモリ1020に格納される図14に示される距離に関する情報に基づいて、クライアント800が仮想マシン101及びディスク111を使用する処理を要求した際に往復の伝送距離が“1000km”であると判定し、適宜設定された光ファイバ内の伝送速度である100kmあたり0.5msに基づいて、伝搬時間を“5.0ms”と算出し、これを応答時間Tfとしてメモリ3020に格納する。なお、マイグレーション前は、仮想マシン101−103及びディスク111−112がデータセンタ100にあるので、算出部3120が算出する応答時間Tfは、それらのどの組合せであっても実質的に上述した伝搬時間に依存した“5.0ms”となる。
図14に、マイグレーション前の応答時間の例が示される。処理4070により算出されたマイグレーション前の仮想マシン及びディスクの組み合わせ毎の応答時間Tfは、どの組合せであっても “5.0ms”として、メモリ3020に格納されている。
図10に示されるように、応答時間Tfを要求頻度Frで重み付けして、マイグレーション前の重み付け平均応答時間を算出する処理4080が、算出部3120によって実行される。処理4080では、処理4070により算出した応答時間Tfに、図5に示される処理2400により算出された要求頻度Frに基づいて重み付けをする演算を実行し、それらの平均値を演算することによって、マイグレーション前の重み付け平均応答時間を算出する。マイグレーション前の応答時間Tfが図14に示される例であって、要求頻度Frが図6に示される例である場合には、マイグレーション前の重み付け平均応答時間は“5.0ms”となる。なお、処理4070及び4080は、図10に示された処理の開始前に実行しておいてもよい。
図10に示されるように、処理4010により特定された仮想マシン及びディスクについて、マイグレーション後の割り当てパターンの候補を選定する処理4090が、選定部3130によって実行される。処理4090では、例えば、図1に示されるクライアント800が使用している3つの仮想マシン101―103及び2つのディスク111―112のマイグレーション先を選定するために、図13に示される距離情報がメモリ3020から読み出され、各データセンタ100−400のうちでクライアント800から最も近いデータセンタがデータセンタ400であり、データセンタ300、データセンタ200の順に距離がクライアント800から離れていくと判定される。そして、クライアント800から最も近いデータセンタ400の余りのリソースを、メモリ3020に格納されたリソースの使用情報に基づいて判定する。ここでは、図11に示されるように、データセンタ400では1つの仮想マシン及び2つのディスクがすでに割り当てられているため、処理4090では、2つの仮想マシン及び1つのディスクが余りのリソースであると判定される。
また、処理4090では、処理4040により取得したアクセス頻度Faに基づき、アクセス頻度の大きな仮想マシンとディスクとの組み合わせを選定する。例えばアクセス頻度Faが図7に示される例の場合には、仮想マシン及びディスクの組み合わせ毎のアクセス頻度Faが互いに比較されることで、仮想マシン101及びディスク111の組み合わせ、及び、仮想マシン102及びディスク111の組み合わせによるアクセス頻度Frが相対的に大きいと判定される。図2に基づいて説明したように、仮想マシンとディスクとのアクセスがネットワークを介して実行されてしまうと、クライアントへの応答時間Tfが大きくなってしまう。従って、処理4090では、仮想マシン101、仮想マシン102、及びディスク111は同じデータセンタに配備し、とりわけ、クライアント800に近いデータセンタであるデータセンタ400に配備した方がよいと判定される。リソースの使用状況に基づきデータセンタ400には2つの仮想マシン及び1つのディスクの余りのリソースがあると判定されているため、処理4090では、仮想マシン101、仮想マシン102、及びディスク111をデータセンタ400にマイグレーションさせる割り当てパターンが候補であると判定する。
マイグレーション先が判定されていない仮想マシン103及びディスク112について、図11に示されるリソースの使用情報及び図13に示される距離情報に基づき、データセンタ400の次にクライアント800から距離の近いデータセンタ200に仮想マシン103及びディスク112をマイグレーションさせる割り当てパターンが候補であると判定する。すなわち、処理4090では、仮想マシン101、仮想マシン102、及びディスク111をデータセンタ400にマイグレーションさせ、仮想マシン103及びディスク112をデータセンタ200にマイグレーションさせる割り当てパターンが第1の候補として選定される。
また、処理4090では、データセンタ200とデータセンタ300との距離の差が“50km”であるため、この距離の差が所定の閾値よりも小さい場合には、データセンタ300にマイグレーションする割り当てパターンを他の候補であると判定してもよい。すなわち、処理4090では、仮想マシン101、仮想マシン102、及びディスク111をデータセンタ400にマイグレーションさせ、仮想マシン103及びディスク112をデータセンタ200にマイグレーションさせる割り当てパターンが第2の候補として選定される。
以上に述べた処理4090の結果として、以上に述べた2つの割り当てパターンが選定される。なお、割り当てパターンとして、アクセス頻度Faに加えて、又はアクセス頻度Faに代えて、要求頻度Frが大きい仮想マシンとディスクとの組み合わせがクライアントに近いデータセンタに配置されるように割り当てパターンが選定されてもよい。これは、より頻繁に要求される処理の応答時間が短くなるようにマイグレーションさせることによって、クライアントにとって利便性が向上するからである。
図15に、マイグレーション後の割り当てパターンの候補の例が示される。図15Aには、処理4090により選定された割り当てパターンのうち第1の候補が示されている。図15Aに示される第1の割り当てパターンの候補は、仮想マシン101、仮想マシン102、及びディスク111をデータセンタ400にマイグレーションさせ、仮想マシン103及びディスク112をデータセンタ200にマイグレーションさせる関係が関連付けられた情報である。
図15Bには、処理4090により選定された割り当てパターンのうち第2の候補が示されている。図15Bに示される第2の割り当てパターンの候補は、仮想マシン101、仮想マシン102、及びディスク111をデータセンタ400にマイグレーションさせ、仮想マシン103及びディスク112をデータセンタ300にマイグレーションさせる関係が関連付けられた情報である。なお、図15A及びBに示された情報はメモリ3020に格納される。
図10に示されるように、処理4060により取得された距離情報に基づき、処理4090により選定された割り当てパターンに関連する各拠点間の伝搬時間を算出する処理4100が、算出部3120によって実行される。なお、この拠点とは、データセンタ、中継装置、及びクライアントなどであり、通信経路に介在する装置やシステムである。
処理4100では、処理4060により取得された距離情報に基づいて、各拠点間の距離が算出される。例えば、データセンタ200とデータセンタ400との間の距離は、クライアント800からデータセンタ200までの距離から、クライアント800からデータセンタ400までの距離を減算すればよい。また、データセンタ200とデータセンタ300との間の距離は、データセンタ200及びデータセンタ400の間の距離と、データセンタ300及びデータセンタ400の間の距離とを加算すればよい。さらに、処理4100では、各拠点間の通信経路が光ファイバで接続されている場合には、光ファイバによる伝送速度として100kmあたり0.5msが設定されて、算出された各拠点間の距離から各拠点間の伝搬時間が算出される。なお、処理4100では、処理4090で選定された割り当てパターンの候補に関連しない拠点間の伝搬時間を算出してもよい。
図16に、ネットワークに含まれる各拠点間の伝搬時間の例が示される。処理4100により算出された各拠点間の伝搬時間として、図16Aに示されるように、例えばクライアント800とデータセンタ400との間の伝搬時間が“2.0ms”であり、図16Bに示されるように、例えばデータセンタ300とデータセンタ400との間の伝搬時間が“2.0ms”であることが関連付けられている。なお、図16A及びB示される伝搬時間は各拠点間の往復にかかる時間情報であり、メモリ3020に格納される情報である。
図10に示されるように、処理4090で選定された割り当てパターンの候補のうちの1つを選択する処理4110が、選択部3140によって実行される。ここでは、図15Bに対応する割り当てパターンの第2の候補が選択されたとして、続く処理を説明する。
処理4110により選択された割り当てパターンの候補において、仮想マシン及びディスクの組み合わせ毎に伝搬時間Tpを算出する処理4120が、算出部3120によって実行される。処理4120の詳細な例が図17に示されており、図17に沿って後述する。
図17に、実施例の制御コンピュータによって実行される処理の他の例が示される。図17に示された処理は、図10に示される処理4120の詳細な例である。処理4110により割り当てパターンの候補のうちの1つが選択されると処理5000により図17に示される処理が開始される。
選択された割り当てパターンにおいて、仮想マシン及びディスクの組み合わせのうち1つを選択する処理5010が、選択部によって実行される。次いで、処理5010により選択された仮想マシンが配備されるデータセンタ及びクライアントの間の伝搬時間Taを算出する処理5020が、算出部3120によって実行される。
例えば、処理5010により選択された仮想マシン及びディスクの組み合わせが、仮想マシン101及びディスク111である場合には、処理5020により仮想マシン101が割り当てられるデータセンタ及びクライアント800の間の伝搬時間Taが算出される。なお、上述したように、図17に示される処理が、図15Bに対応する割り当てパターンの第2の候補が選択されたとしているため、仮想マシン101がデータセンタ400にて割り当てられることになる。つまり、処理5020では、図16に示される伝搬時間に関する情報がメモリ3020から読み出されて、データセンタ400とクライアント800との間の伝搬時間が“2.0ms”であることにより、伝搬時間Taが“2.0ms”であると算出される。また、処理5010により選択された仮想マシン及びディスクの組み合わせが、仮想マシン103及びディスク111である場合には、処理5020により仮想マシン103が割り当てられるデータセンタ及びクライアント800の間の伝搬時間Taが算出される。なお、図15Bに対応する割り当てパターンの第2の候補が選択されたとしているため、仮想マシン103がデータセンタ300にて割り当てられることになる。つまり、処理5020では、図16に示される伝搬時間に関する情報がメモリ3020から読み出されて、データセンタ300とクライアント800との間の伝搬時間が“4.0ms”であることにより、伝搬時間Taが“4.0ms”であると算出される。
選択された割り当てパターンにおいて、選択された仮想マシン及びディスクが同じデータセンタに割り当てられるか否かを判定する処理5030が、判定部3150によって実行される。処理5030では、例えば、処理5010により選択された仮想マシン及びディスクの組み合わせが、仮想マシン101及びディスク111である場合には、図15Bに対応する割り当てパターンの第2の候補が選択されたとしているため、仮想マシン101及びディスク111が共にデータセンタ400にて割り当てられるため、処理5040に移る。
選択された仮想マシン及びディスクの組み合わせに対応する伝搬時間Tpとして、Tp=Taを算出する処理5040が、算出部3120によって実行される。なお、処理5040において、伝搬時間TpをTaとする理由は、仮想マシンとディスクとが同じデータセンタにて割り当てられているため、仮想マシンとディスクとの間のアクセス時間がネットワークにおける伝搬時間に対して無視してもよいためである。
ところで、処理5030では、例えば、処理5010により選択された仮想マシン及びディスクの組み合わせが、仮想マシン103及びディスク111である場合には、図15Bに対応する割り当てパターンの第2の候補が選択されて、仮想マシン103がデータセンタ300にて割り当てられ、ディスク111がデータセンタ400にて割り当てられているため、同じデータセンタに割り当てられていないと判定されて処理5050に移る。この場合には、仮想マシンとディスクとが異なるデータセンタにて割り当てられているため、仮想マシンとディスクとの間のアクセスがネットワークを介して行われることにより、アクセス頻度に基づいた伝搬時間を算出するため処理5050を実行することとなる。
選択された仮想マシン及びディスク間の伝搬時間Tbを算出する処理5050が、算出部3120によって実行される。ここで、処理5010により選択された仮想マシン及びディスクの組み合わせが、仮想マシン103及びディスク111であるとする。図15Bに対応する割り当てパターンの第2の候補が選択されているため、仮想マシン103がデータセンタ300にて割り当てられ、ディスク111がデータセンタ400にて割り当てられることになる。すなわち、仮想マシン103とディスク111との間のアクセスは、データセンタ300とデータセンタ400との間で実行されるため、図16Bに示された情報に基づき、仮想マシン103とディスク111との間の往復のアクセス時間が、“2.0ms”と算出される。また、図10に示される処理4040により取得されたアクセス頻度Faは、図7に示されるように、仮想マシン103及びディスク111の場合にはクライアント800から要求された処理を実行して処理結果を返すまでに1回のディスクアクセスがあるため、処理5050によって、仮想マシン103とディスク111との間の全体の伝搬時間が、“2.0ms”×1=“2.0ms”と算出される。処理5050により、異なるデータセンタにて仮想マシンとディスクを割り当てた場合の伝搬時間をより正確に見積もることができる。
選択された仮想マシン及びディスクの組み合わせに対応する伝搬時間Tpとして、Tp=Ta+Tbを算出する処理5060が、算出部3120によって実行される。ここで、処理5010により選択された仮想マシン及びディスクの組み合わせが、仮想マシン103及びディスク111である場合には、上述したように、処理5020によりTa=“2.0ms”、及び処理5050によりTb=“2.0ms”と算出されているため、処理5060によってTp=“4.0ms”と算出される。なお、処理5060及び処理5040により算出された伝搬時間Tpに関する情報は、仮想マシン及びディスクの組み合わせに関連付けられてメモリ3020に格納される。
選択された仮想マシン及びディスクの全ての組み合わせについて、伝搬時間Tpを算出したか否かを判定する処理5070が、判定部3150によって実行される。算出していないと判定された場合には処理5080に移り、選択されていない仮想マシン及びディスクの他の組み合わせを選択する処理5080を実行して処理5020に移る。処理5070において、算出されたと判定された場合には処理5090に移り、図10に示された処理4130に移るために、図17に示された処理を終える。
図17に示される処理が終わると、図10に示される処理4110により選択された割り当てパターンの候補において、仮想マシン及びディスクの組み合わせ毎に伝搬時間Tsを算出する処理4130が、算出部3120によって実行される。処理4130の詳細な例が図18に示されており、図18に沿って後述する。
図18に、実施例の制御コンピュータによって実行される処理の他の例が示される。図18に示された処理は、図10に示される処理4130の詳細な例である。処理4120が終了すると処理6000により図18に示される処理が開始される。処理4110により選択された割り当てパターンの候補において、仮想マシン及びディスクの組み合わせのうち1つを選択する処理6010が、選択部によって実行される。
処理6010により選択された仮想マシン及びディスクで通信されるデータ量Vを取得する処理6020が、取得部3110によって実行される。各データセンタ100−400では、仮想マシンが受信するパケットのヘッダに含まれる宛先アドレスと、その後の処理でアクセスされるディスクとの対応付けが管理されており、また、仮想マシンとディスクと間の通信で発生するデータ量Vをモニタされてログに記録されているため、処理6020では、このログに基づいて、選択された仮想マシン及びディスクで通信されるデータ量Vが取得される。
処理6010により選択された仮想マシン及びディスクの通信経路について、リンク使用率に基づき、許容される伝送レートRを算出する処理6030が、算出部3120によって実行される。ここで、図18に示される処理が、図15Bに対応する割り当てパターンの第2の候補が選択されて実行されているとし、また、処理6010により選択された仮想マシン及びディスクの組み合わせが、仮想マシン101及びディスク112であるとする。すなわち、仮想マシン101がデータセンタ400にて割り当てられ、ディスク112がデータセンタ300にて割り当てられるものとする。
処理6030では、ネットワークの構成情報に従い、データセンタ400にて割り当てられる仮想マシン101及びデータセンタ300にて割り当てられるディスク112の通信経路が、図1に示された通信経路740、780、及び730であると判定する。処理6030では、図12に示されたリンク使用率をメモリ3020から読み出されることで、通信経路740に関連付けられたリンク使用率が“40%”であり、通信経路780に関連付けられたリンク使用率が“60%”であり、通信経路730に関連付けられたリンク使用率が“50%”であると判定される。なお、図2Aに沿って上述したが、リンク使用率とは、通信経路の最大の帯域に対して使用されている帯域の割合であり、ここでは、図1に示される通信経路710−780の全ての帯域が10Gbpsであるとして例示する。
このように複数の通信経路740、780、及び730を経由する通信の場合には、最も混雑している通信経路のリンク使用率によって伝送レートRが決まる。なぜならば、複数の通信経路のうちの他の通信経路の帯域に余裕があっても、リンク使用率が相対的に大きい通信経路は混雑しているためにデータが送り出せないからである。この場合、中継装置でデータがバッファリングされ、バッファリングの能力を超える場合にはデータを送りださないようフィードバックをかけ、最も混雑しているリンク使用率が相対的に大きな通信経路の帯域に合わせて通信が実行される。上述したように、通信経路740に関連付けられたリンク使用率が“40%”であり、通信経路780に関連付けられたリンク使用率が“60%”であり、通信経路730に関連付けられたリンク使用率が“50%”である場合には、例えば、通信経路740へのデータ転送には相対的に余裕があったとしても、通信経路780への転送が待たされる結果、複数の通信経路740、780、及び730を経由する通信の伝送レートRは最も大きなリンク使用率である“60%”に依存することとなる。従って、上述した例の場合には、処理6030では、通信経路毎のリンク利用率の最大値である“60%”に基づき、許容される伝送レートRが10Gbps×(100%−60%)=4Gbpsであると算出される。
処理6010により選択された仮想マシン及びディスクの通信経路に含まれる中継装置の数及びアクセス回数、処理6020により取得されたデータ量V、及び処理6030により算出された伝送レートRに基づいて、転送処理時間Tsを算出する処理6040が、算出部3120によって実行される。ここで、図18に示される処理が、図15Bに対応する割り当てパターンの第2の候補が選択されて実行されているとし、また、処理6010により選択された仮想マシン及びディスクの組み合わせが、仮想マシン101及びディスク112であるとする。すなわち、仮想マシン101がデータセンタ400にて割り当てられ、ディスク112がデータセンタ300にて割り当てられるものとする。
処理6040では、ネットワークの構成情報に従い、データセンタ400にて割り当てられる仮想マシン101及びデータセンタ300にて割り当てられるディスク112の通信経路に中継装置520及び530の2つの中継装置があると判定される。また、処理6040では、図10に示される処理4040により取得されたアクセス頻度Faが、図7に示される情報が読み出されることにより、仮想マシン101及びディスク111の場合にはクライアント800から要求された処理を実行して処理結果を返すまでに3回のディスクアクセスがあると判定される。従って、仮想マシン101及びディスク111の組み合わせの場合には、クライアント800から要求された処理を実行して処理結果を返すまでに、1回のディスクアクセスの往復で中継装置を2×2=4(回)経由するため、合計では中継装置を4×3=12(回)経由することとなる。
他方で、処理6020により取得されたデータ量Vが、仮想マシン101及びディスク111の組み合わせの場合は“5Mbyte”であるとする。また、処理6030により算出された伝送レートRは、上述されたように、仮想マシン101及びディスク111の組み合わせの場合に“4Gbps”である。
従って、処理6040では、V(byte)×8/R(Gbps)×12(回)=5byte×8/4Gbps×12=1.2msが演算されて、仮想マシン101及びディスク111の組み合わせの場合の転送処理時間Tsが“1.2ms”と算出される。なお、処理6040により算出された転送処理時間Tsに関する情報は、仮想マシン及びディスクの組み合わせに関連付けられてメモリ3020に格納される。
特定された仮想マシン及びディスクの全ての組み合わせについて、転送処理時間Tsを算出したか否かを判定する処理6050が、判定部3150によって実行される。算出していないと判定された場合には処理6060に移り、選択されていない仮想マシン及びディスクの他の組み合わせを選択する処理6060を実行して処理6020に移る。処理6050において、算出されたと判定された場合には処理6070に移り、図10に示された処理4140に移るために、図18に示された処理を終える。
図10に示されるように、処理4110により選択された割り当てパターンの候補において、仮想マシン及びディスクの組み合わせ毎に、マイグレーション後の応答時間Tr=Tp+Tsを算出する処理4140が、算出部3120によって実行される。処理4140では、処理4120により算出されてメモリ3020に格納されたTpと、処理4130により算出されてメモリ3020に格納されたTsとをメモリ3020から読み出し、Tp及びTsが加算されることによって、仮想マシン及びディスクの組み合わせ毎に、応答時間Trが算出される。処理4140により、マイグレーションによって仮想マシンとディスクとが同じデータセンタにある場合も、仮想マシンとディスクとが異なる場合にある場合も、クライアントから処理の要求がされてから処理結果が返されるに実行されるデータ転送のネットワークでの伝搬時間及び中継装置による転送処理時間が仮想マシン及びディスクとのアクセス頻度までも考慮された上で、応答時間Trが算出されることとなる。算出された応答時間Trは、仮想マシン及びディスクの組み合わせに関連付けられてメモリ3020に格納される。
図19に、マイグレーション後の割り当てパターンの候補毎の応答時間の例が示される。図19A及びBに示される情報は処理4140によって算出された応答時間Trであり、メモリ3020に格納されている情報である。図19Aに示される情報が図15Aに示される割り当てパターンに対応しており、図19Bに示される情報が図15Bに示される割り当てパターンに対応している。
図19Aに示される情報では、図15Aも参照すると、例えば、データセンタ400にマイグレーションさせられる仮想マシン101及びディスク111を使用する処理の要求がクライアント800から送信された場合に、クライアント800が処理結果を受け取るまでの応答時間が“2.0ms”であることが示されている。また、データセンタ200にマイグレーションさせられる仮想マシン103及びディスク112を使用する処理の要求がクライアント800から送信された場合に、クライアント800が処理結果を受け取るまでの応答時間が“3.5ms”であることが示されている。また、データセンタ200にマイグレーションさせられる仮想マシン103及びデータセンタ400にマイグレーションさせられるディスク111を使用する処理の要求がクライアント800から送信された場合に、クライアント800が処理結果を受け取るまでの応答時間が“11.3ms”であることが示されている。このように、クライアントに近いデータセンタ400に共にマイグレーションさせられた仮想マシン101及びディスク111の組み合わせに対応する応答時間“2.0ms”よりも、データセンタ200に共にマイグレーションさせられた仮想マシン103及びディスク112の組み合わせに対応する応答時間“3.5ms”の方が長く見積もられていることが分かる。また、データセンタ400に共にマイグレーションさせられた仮想マシン101及びディスク111の組み合わせに対応する応答時間“2.0ms”よりも、異なるデータセンタにマイグレーションさせられた仮想マシン103及びディスク111の組み合わせに対応する応答時間“11.3ms”の方が長く見積もられていることが分かる。
図19Bに示される情報では、図15Bも参照すると、例えば、データセンタ400にマイグレーションさせられる仮想マシン101及びディスク111を使用する処理の要求がクライアント800から送信された場合に、クライアント800が処理結果を受け取るまでの応答時間が“2.0ms”であることが示されている。また、データセンタ300にマイグレーションさせられる仮想マシン103及びディスク112を使用する処理の要求がクライアント800から送信された場合に、クライアント800が処理結果を受け取るまでの応答時間が“4.0ms”であることが示されている。また、データセンタ300にマイグレーションさせられる仮想マシン103及びデータセンタ400にマイグレーションさせられるディスク111を使用する処理の要求がクライアント800から送信された場合に、クライアント800が処理結果を受け取るまでの応答時間が“9.2ms”であることが示されている。このように、クライアントに近いデータセンタ400に共にマイグレーションさせられた仮想マシン101及びディスク111の組み合わせに対応する応答時間“2.0ms”よりも、データセンタ300に共にマイグレーションさせられた仮想マシン103及びディスク112の組み合わせに対応する応答時間“4.0ms”の方が長く見積もられていることが分かる。また、データセンタ400に共にマイグレーションさせられた仮想マシン101及びディスク111の組み合わせに対応する応答時間“2.0ms”よりも、異なるデータセンタにマイグレーションさせられた仮想マシン103及びディスク111の組み合わせに対応する応答時間“9.2ms”の方が長く見積もられていることが分かる。
さらに、図19Aにおいて仮想マシン103及びディスク112の組み合わせに対応する応答時間“3.5ms”であるのに対して、図19Bにおいて仮想マシン103及びディスク112の組み合わせに対応する応答時間“4.0ms”である。これは、図13に示される距離情報を参照すると、図19Aの場合がクライアント800からの距離が“350km”のデータセンタ200に仮想マシン103及びディスク112がマイグレーションされられる場合であり、図19Bの場合がクライアント800からの距離が“400km”のデータセンタ300に仮想マシン103及びディスク112がマイグレーションされられる場合であるため、クライアント800からの距離による伝搬時間Tpの差が応答時間Trの影響しているためである。
さらに、図19Aにおいて仮想マシン103及びディスク111の組み合わせに対応する応答時間“11.3ms”であるのに対して、図19Bにおいて仮想マシン103及びディスク111の組み合わせに対応する応答時間“9.2ms”である。これは、図12に示されるリンク使用率を参照すると、図19Aの場合ではデータセンタ200にマイグレーションさせられる仮想マシン103及びデータセンタ400にマイグレーションさせられるディスク111の間のアクセスがリンク使用率“90%”といった混雑した通信経路L770を介して実行されるのに対して、図19Bの場合ではデータセンタ300にマイグレーションさせられる仮想マシン103及びデータセンタ400にマイグレーションさせられるディスク111の間のアクセスがリンク使用率“60%”の通信経路L780を介して実行されるため、リンク使用率の差が応答時間Trの影響しているためである。
図10に示されるように、応答時間Trを要求頻度Frで重み付けして、マイグレーション後の重み付け平均応答時間を算出する処理4150が、算出部3120によって実行される。処理4150では、処理4140により算出された応答時間Trがメモリ3020から読み出され、処理4030により取得された要求頻度Frで応答時間Trを、対応する仮想マシン及びディスクの組み合わせ毎に重み付けする演算が実行される。そして、処理4150では、対応する仮想マシン及びディスクの組み合わせ毎に重み付けされた応答時間Trの平均値を算出する演算が実行されて、割り当てパターンの候補に対応する重み付け平均応答時間が算出される。算出された重み付け平均応答時間は、後述される処理4180で使用されるため、メモリ3020に格納される。
処理4150では、例えば図19Aに示される例の場合、仮想マシン及びディスクの組み合わせ毎の応答時間Trが、図6に示される要求頻度Frに基づいて、対応する仮想マシン及びディスクの組み合わせ毎に重み付けされて平均値が演算されることで、重み付け平均応答時間が“4.6ms”となる。
処理4150では、例えば図19Bに示される応答時間Trの場合、仮想マシン及びディスクの組み合わせ毎の応答時間Trが、図6に示される要求頻度Frに基づいて、対応する仮想マシン及びディスクの組み合わせ毎に重み付けされて平均値が演算されることで、重み付け平均応答時間が“4.1ms”となる。
処理4150によって、重み付け平均応答時間が算出されることで、マイグレーションの割り当てパターンを選択する際に指標とする応答時間において、クライアントが頻繁に要求してくる処理を実行する仮想マシン及びディスクの組み合わせを考慮することができるため、クライアントに対して全体としてサービス体感がより向上するような応答時間の評価がされることとなる。
図10に示されるように、割り当てパターンの候補の全てについて、重み付け平均応答時間を算出したか否かを判定する処理4160が、判定部3150によって実行される。算出していないと判定された場合には処理6060に移り、選択されていない割り当てパターンの候補を選択する処理4170を実行して処理4120に移る。処理4160において、算出されたと判定された場合には処理4180に移る。
マイグレーション前よりも重み付け平均応答時間が短くなる割り当てパターンの候補を抽出する処理4180が、抽出部3160によって実行される。処理4180では、処理4080により算出されたマイグレーション前の重み付け平均応答時間がメモリ3020から読み出される。また、処理4180では、処理4150により算出されたマイグレーション後の重み付け平均応答時間が割り当てパターンの候補毎にメモリ3020から読み出される。そして、処理4180では、マイグレーション前の重み付け平均応答時間と、
マイグレーション後の重み付け平均応答時間とが比較されて、マイグレーション前よりも重み付け平均応答時間が短くなる割り当てパターンの候補が抽出される。
処理4180では、例えば上述した例であると、マイグレーション前の重み付け平均応答時間が“5.0ms”であり、第1の割り当てパターンの候補に対応するマイグレーション後の重み付け平均応答時間が“4.6ms”であり、第2の割り当てパターンの候補に対応するマイグレーション後の重み付け平均応答時間が“4.1ms”であるので、第1の割り当てパターンの候補及び第2の割り当てパターンの候補が共にマイグレーション前よりも重み付け平均応答時間が短くなる。従って、処理4180では、第1の割り当てパターンの候補及び第2の割り当てパターンの候補が共に抽出される。
処理4180により抽出された割り当てパターンの候補から、マイグレーション後の割り当てパターンを選択する処理4190が、選択部3140によって実行される。処理4190では、ライアントに対してサービス体感がより向上するように、処理4180により抽出された割り当てパターンの候補のうち、重み付け平均応答時間がより短い割り当てパターンの候補を、マイグレーション後の割り当てパターンとして選択する処理が実行される。例えば上述した例であると、重み付け平均応答時間が“4.6ms”である第1の割り当てパターンの候補と、重み付け平均応答時間が“4.1ms”である第2の割り当てパターンの候補とが処理4180により抽出されたので、処理4190によって、重み付け平均応答時間がより短い第2の割り当てパターンの候補がマイグレーション後の割り当てパターンとして選択される。
処理4190によって選択された割り当てパターンに従ったマイグレーションを命令する処理4200が、命令部3170によって実行される。処理4200によって、制御コンピュータ600からマイグレーションに関連するデータセンタに対して、処理4190によって選択された割り当てパターンに従ってマイグレーションさせるための命令が送信される。例えば上述した例であると、制御コンピュータ600からマイグレーションに関連するデータセンタ100、300及び400に対して、第2の割り当てパターンに従ってマイグレーションを実行するよう命令が送信される。その後、図10に示された処理が終了する。
上述した実施例によれば、複数のデータセンタに仮想マシン及び記憶装置を割当てる場合に、記憶装置へのアクセス頻度に応じた応答時間が短くなるデータセンタの組合せを選ぶ事で、ユーザに処理結果が返されるまでの応答遅延を小さくできる。また、上述した実施例では複数のデータセンタを例としたが、複数のデータセンタに代えて、中継装置によって互いに接続された複数のサーバや、一つのデータセンタ内で中継装置によって互いに接続された複数のサーバに対して想マシン及び記憶装置を割当てる場合に適用してもよい。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータが、仮想マシン及び前記仮想マシンにより処理されるデータが格納された記憶装置を、中継装置により互いに接続された複数の割り当て先に割り当てる場合に、前記仮想マシンによる前記記憶装置へのアクセス頻度に応じた応答時間が前記仮想マシン及び前記記憶装置を前記異なる割り当て先に割り当てる前よりも短くなるように割り当て先の組み合わせを選択することを特徴とする情報処理方法。
(付記2)前記コンピュータは、前記中継装置を含むネットワークでの伝搬時間に基づいて、前記アクセス頻度に応じた前記応答時間を算出することを特徴とする付記1に記載の情報処理方法。
(付記3)前記コンピュータは、前記中継装置の転送処理時間に基づいて、前記アクセス頻度に応じた前記応答時間を算出することを特徴とする付記1又は2に記載の情報処理方法。
(付記4)前記コンピュータは、前記中継装置により分けられた複数の通信経路のうち、帯域の使用率が最大となる通信経路の帯域に基づいて、前記転送処理時間を算出することを特徴とする付記3に記載の情報処理方法。
(付記5)前記コンピュータは、前記仮想マシン及び前記記憶装置の少なくとも一方が複数である場合に、前記アクセス頻度が最大となる仮想マシン及び記憶装置の組み合わせを前記複数の割り当て先に割り当てずに同じ割り当て先に割り当てることを特徴とする付記1〜4の何れか1つに記載の情報処理方法。
(付記6)前記コンピュータは、
前記仮想マシン及び前記記憶装置の少なくとも一方が複数であると、前記割り当て先の組み合わせを選択する場合に、候補となる複数の組み合わせを選択し、前記候補となる複数の組み合わせ毎の応答時間の各々に対して、前記仮想マシンに要求される処理の要求頻度に応じた重み付け演算をし、重み付け演算された複数の応答時間に基づいて、前記候補となる複数の組み合わせから前記割り当て先の組み合わせを選択することを特徴とする付記1〜5の何れか1つに記載の情報処理方法。
(付記7)前記コンピュータは、前記重み付け演算された複数の応答時間毎に平均応答時間を算出し、算出された複数の平均応答時間のうちで最小の平均応答時間となる組み合わせの候補を前記割り当て先の組み合わせとして選択することを特徴とする付記6に記載の情報処理方法。
(付記8)前記仮想マシン及び前記記憶装置には、所定のリクエスト元を識別するための識別情報が関連付けられていることを特徴とする付記1〜7の何れか1つに記載の情報処理方法。
(付記9)前記割り当て先がデータセンタであることを特徴とする付記1〜8の何れか1つに記載の情報処理方法。
(付記10)コンピュータが、第一のリクエスト元を識別するための識別情報が関連付けられた複数の仮想マシン、前記識別情報が関連付けられた複数の記憶装置、又はそれらの組み合わせを複数のデータセンタに分散して割り当てることを特徴とする情報処理方法。
(付記11)仮想マシン及び前記仮想マシンにより処理されるデータが格納された記憶装置を、中継装置により互いに接続された複数の割り当て先に割り当てる場合に、前記仮想マシンによる前記記憶装置へのアクセス頻度に応じた応答時間が前記仮想マシン及び前記記憶装置を前記異なる割り当て先に割り当てる前よりも短くなるように割り当て先の組み合わせを選択するコンピュータを有することを特徴とすることを特徴とする情報処理システム。
(付記12)前記コンピュータは、前記中継装置を含むネットワークでの伝搬時間に基づいて、前記アクセス頻度に応じた前記応答時間を算出することを特徴とする付記11に記載の情報処理システム。
(付記13)前記コンピュータは、前記中継装置の転送処理時間に基づいて、前記アクセス頻度に応じた前記応答時間を算出することを特徴とする付記11又は12に記載の情報処理システム。
(付記14)前記コンピュータは、前記中継装置により分けられた複数の通信経路のうち、帯域の使用率が最大となる通信経路の帯域に基づいて、前記転送処理時間を算出する
ことを特徴とする付記13に記載の情報処理システム。
(付記15)前記コンピュータは、前記仮想マシン及び前記記憶装置の少なくとも一方が複数である場合に、前記アクセス頻度が最大となる仮想マシン及び記憶装置の組み合わせを前記複数の割り当て先に割り当てずに同じ割り当て先に割り当てることを特徴とする付記11〜14の何れか1つに記載の情報処理システム。
(付記16)前記コンピュータは、前記仮想マシン及び前記記憶装置の少なくとも一方が複数であると、前記割り当て先の組み合わせを選択する場合に、候補となる複数の組み合わせを選択し、前記候補となる複数の組み合わせ毎の応答時間の各々に対して、前記仮想マシンに要求される処理の要求頻度に応じた重み付け演算をし、重み付け演算された複数の応答時間に基づいて、前記候補となる複数の組み合わせから前記割り当て先の組み合わせを選択することを特徴とする付記11〜15の何れか1つに記載の情報処理システム。
(付記17)前記コンピュータは、前記重み付け演算された複数の応答時間毎に平均応答時間を算出し、算出された複数の平均応答時間のうちで最小の平均応答時間となる組み合わせの候補を前記割り当て先の組み合わせとして選択することを特徴とする付記16に記載の情報処理システム。
(付記18)前記仮想マシン及び前記記憶装置には、所定のリクエスト元を識別するための識別情報が関連付けられていることを特徴とする付記11〜17の何れか1つに記載の情報処理システム。
(付記19)仮想マシン及び前記仮想マシンにより処理されるデータが格納された記憶装置を、中継装置により互いに接続された複数の割り当て先に割り当てる場合に、前記仮想マシンによる前記記憶装置へのアクセス頻度に応じた応答時間が前記仮想マシン及び前記記憶装置を前記異なる割り当て先に割り当てる前よりも短くなるように割り当て先の組み合わせを選択する処理部を有することを特徴とする情報処理装置。
(付記20)コンピュータに、仮想マシン及び前記仮想マシンにより処理されるデータが格納された記憶装置を、中継装置により互いに接続された複数の割り当て先に割り当てさせる場合に、前記仮想マシンによる前記記憶装置へのアクセス頻度に応じた応答時間が前記仮想マシン及び前記記憶装置を前記異なる割り当て先に割り当てる前よりも短くなるように割り当て先の組み合わせを選択させることを特徴とするプログラム。