(57)【要約】【課題】  仮想マシン及び仮想マシンがアクセスしていた記憶装置の割り当て先を変更した場合に、処理結果がクライアントに返されるまでの応答時間が長くなってしまうことがある。【解決手段】  仮想マシン及び前記仮想マシンにより処理されるデータが格納された記憶装置を、中継装置により互いに接続された複数の割り当て先に割り当てる場合に、前記仮想マシンによる前記記憶装置へのアクセス頻度に応じた応答時間が前記仮想マシン及び前記記憶装置を前記複数の割り当て先に割り当てる前よりも短くなるように割り当て先の組み合わせを選択する。【選択図】  図１
2014102740.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
仮想マシン及び前記仮想マシンにより処理されるデータが格納された記憶装置を、中継装置により互いに接続された複数の割り当て先に割り当てる場合に、前記仮想マシンによる前記記憶装置へのアクセス頻度に応じた応答時間が前記仮想マシン及び前記記憶装置を前記複数の割り当て先に割り当てる前よりも短くなるように割り当て先の組み合わせを選択する
ことを特徴とする情報処理方法。
【請求項２】
前記コンピュータは、前記中継装置を含むネットワークでの伝搬時間に基づいて、前記アクセス頻度に応じた前記応答時間を算出する
ことを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記コンピュータは、前記中継装置の転送処理時間に基づいて、前記アクセス頻度に応じた前記応答時間を算出する
ことを特徴とする請求項１又は２に記載の情報処理方法。
【請求項４】
前記コンピュータは、前記中継装置により分けられた複数の通信経路のうち、帯域の使用率が最大となる通信経路の帯域に基づいて、前記転送処理時間を算出する
ことを特徴とする請求項３に記載の情報処理方法。
【請求項５】
前記コンピュータは、前記仮想マシン及び前記記憶装置の少なくとも一方が複数である場合に、前記アクセス頻度が最大となる仮想マシン及び記憶装置の組み合わせを前記複数の割り当て先に割り当てずに同じ割り当て先に割り当てる
ことを特徴とする請求項１〜４の何れか１項に記載の情報処理方法。
【請求項６】
前記コンピュータは、
前記仮想マシン及び前記記憶装置の少なくとも一方が複数であると、前記割り当て先の組み合わせを選択する場合に、
候補となる複数の組み合わせを選択し、
前記候補となる複数の組み合わせ毎の応答時間の各々に対して、前記仮想マシンに要求される処理の要求頻度に応じた重み付け演算をし、
重み付け演算された複数の応答時間に基づいて、前記候補となる複数の組み合わせから前記割り当て先の組み合わせを選択する
ことを特徴とする請求項１〜５の何れか１項に記載の情報処理方法。
【請求項７】
コンピュータが、第一のリクエスト元を識別するための識別情報が関連付けられた複数の仮想マシン、前記識別情報が関連付けられた複数の記憶装置、又はそれらの組み合わせを複数のデータセンタに分散して割り当てる
ことを特徴とする情報処理方法。
【請求項８】
仮想マシン及び前記仮想マシンにより処理されるデータが格納された記憶装置を、中継装置により互いに接続された複数の割り当て先に割り当てる場合に、前記仮想マシンによる前記記憶装置へのアクセス頻度に応じた応答時間が前記仮想マシン及び前記記憶装置を前記複数の割り当て先に割り当てる前よりも短くなるように割り当て先の組み合わせを選択するコンピュータ
を有することを特徴とすることを特徴とする情報処理システム。
【請求項９】
仮想マシン及び前記仮想マシンにより処理されるデータが格納された記憶装置を、中継装置により互いに接続された複数の割り当て先に割り当てる場合に、前記仮想マシンによる前記記憶装置へのアクセス頻度に応じた応答時間が前記仮想マシン及び前記記憶装置を前記複数の割り当て先に割り当てる前よりも短くなるように割り当て先の組み合わせを選択する処理部
を有することを特徴とする情報処理装置。
【請求項１０】
コンピュータに、仮想マシン及び前記仮想マシンにより処理されるデータが格納された記憶装置を、中継装置により互いに接続された複数の割り当て先に割り当てさせる場合に、前記仮想マシンによる前記記憶装置へのアクセス頻度に応じた応答時間が前記仮想マシン及び前記記憶装置を前記複数の割り当て先に割り当てる前よりも短くなるように割り当て先の組み合わせを選択させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理方法、プログラム、情報処理装置、及び情報処理システムに関する。
【背景技術】
【０００２】
サーバやディスクを有するデータセンタが、ネットワークを介して互いに接続され、複数のデータセンタを利用したクラウドコンピューティングによるサービスが提供されることがある。複数のデータセンタを使用したシステムに含まれる何れかの物理リソースが仮想マシン及びディスクに割り当てられることによって、クライアントから要求された処理が実行される。
【０００３】
ところで、データセンタ内で実行されていたアプリケーションのためのネットワーク要件、サーバ要件、およびストレージ要件を満たせるか否かを他のデータセンタに問い合わせ、その要件が満たされる場合に他のデータセンタにアプリケーションをマイグレーションさせる技術が知られている。
【０００４】
また、クライアントから送られたリクエストが解析されることでクライアントのネットワーク上の位置が識別されて、クライアントと各データセンタとの通信経路に基づいてクライアントがデータセンタから応答を受け取るまでの処理遅延時間がデータセンタ毎に判断され、判断された処理遅延時間に基づいて少ない遅延時間でサービスを提供可能なデータセンタが優先的に推奨センタとして選択され、リクエストを出力したクライアントへのサービスが推奨センタ内のサーバで実行される技術が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１３４６８７号公報
【特許文献２】特開２００６−３３２８２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
仮想マシン及び仮想マシンがアクセスしていた記憶装置の割り当て先を変更した場合に、処理結果がクライアントに返されるまでの応答時間が長くなってしまうことがある。例えば、複数のデータセンタのリソースを有効利用するために、あるデータセンタやサーバで実行されていた仮想マシン及び仮想マシンがアクセスしていた記憶装置を、ネットワークを介して接続された複数のデータセンタやサーバに分散してマイグレーションさせると、仮想マシンによる記憶装置へのアクセスがネットワークを介して実行されることによって、処理結果がクライアントに返されるまでの応答時間がマイグレーション前よりも長くなってしまうことがある。
【０００７】
本願は、仮想マシンと記憶装置とを割り当て先を変更して、応答時間を短くさせるための情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
開示の情報処理方法によれば、仮想マシン及び前記仮想マシンにより処理されるデータが格納された記憶装置を、中継装置により互いに接続された複数の割り当て先に割り当てる場合に、前記仮想マシンによる前記記憶装置へのアクセス頻度に応じた応答時間が前記仮想マシン及び前記記憶装置を前記複数の割り当て先に割り当てる前よりも短くなるように割り当て先の組み合わせを選択する。
【発明の効果】
【０００９】
本開示の一側面によれば、仮想マシンと記憶装置との割り当て先を変更して、応答時間が短くできる。
【図面の簡単な説明】
【００１０】
【図１】実施例の情報処理システムの例。
【図２】クライアントが仮想マシンに処理の実行を要求してから処理結果がクライアントに返されるまでの応答時間の例。
【図３】実施例のサーバのハードウェア構成の例。
【図４】実施例のデータセンタに含まれるサーバの機能ブロックの例。
【図５】実施例のデータセンタに含まれるサーバによって実行される処理の例。
【図６】クライアントによる仮想マシンへの要求頻度に関する情報の例。
【図７】仮想マシンによるディスクへのアクセス頻度に関する情報の例。
【図８】実施例の制御コンピュータのハードウェア構成の例。
【図９】実施例の制御コンピュータの機能ブロックの例。
【図１０】実施例の制御コンピュータによって実行される処理の例。
【図１１】各データセンタにおけるリソースの使用情報の例。
【図１２】ネットワークに含まれる通信経路のリンク使用率の例。
【図１３】各データセンタまでの距離に関する情報の例。
【図１４】マイグレーション前の応答時間の例。
【図１５】マイグレーション後の割り当てパターンの候補の例。
【図１６】ネットワークに含まれる各拠点間の伝搬時間の例。
【図１７】実施例の制御コンピュータによって実行される処理の他の例。
【図１８】実施例の制御コンピュータによって実行される処理の他の例。
【図１９】マイグレーション後の割り当てパターンの候補毎の応答時間の例。
【発明を実施するための形態】
【００１１】
図１に、実施例の情報処理システムの例が示される。情報処理システムは、データセンタ（ＤＣ：Ｄａｔａ  Ｃｅｎｔｅｒ）１００−４００、中継装置５００−５３０、制御コンピュータ６００、通信経路８１０−８８０を含む。クライアント８００はデータセンタ４００に接続する。
【００１２】
データセンタ１００−４００の各々は、１以上のサーバ及びサーバに接続された１以上の記憶装置を有する。その１以上のサーバに含まれるＣＰＵやメモリのリソースが割り当てられることによって、仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）が実行される。その１以上の記憶装置から仮想マシンに対して記憶領域としてＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）といったディスク（Ｄｉｓｋ）が割り当てられ、仮想マシンによって実行される処理に使用されるデータがディスクに格納される。なお、実施例の記憶装置はディスクに限定されず、メモリや、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）といったストレージが適用されてもよい。
【００１３】
例えば、データセンタ１００では、データセンタ１００に含まれるサーバのリソースが割り当てられることで、仮想マシン１０１及び１０２が実行される。また、データセンタ１００に含まれる記憶装置の記憶領域ディスク１１１及び１１２として割り当てられる。なお、データセンタ１００では、仮想マシン１０１及び１０２に加えて１つの仮想マシンを実行するためのリソースが残っているとし、図１において、その残りのリソースによって実行可能な仮想マシンが“ＶＭ”を点線の円（符号なし）で囲んだものとして示されている。また、データセンタ１００では、ディスク１１１及び１１２に加えて１つのディスクを割り当てるためのリソースが残っているとし、図１において、その残りのリソースによって割り当て可能なディスクが“ＤＩＳＫ”を点線の四角（符号なし）で囲んだものとして示されている。すなわち、点線で示されている構成は、利用可能な仮想マシン及びディスクである。
【００１４】
なお、他のデータセンタ２００−４００の構成は、上述したデータセンタ１００の構成と実質的に同じであるため説明を省略する。以降の説明では、データセンタ１００−４００において、実行可能な仮想マシンの総数を３、及び割り当て可能なディスクの総数を３として説明するが、実施例はこれに限定されず、データセンタに含まれるサーバの能力や数、また記憶装置の容量などによって、仮想マシン及びディスクの総数を決めればよい。
【００１５】
データセンタ１００−４００の各々は、中継装置５００−５３０及び中継装置５００−５３０の間を接続する通信経路７１０−７８０によって、互いに接続されている。中継装置５００−５３０は、例えばルータ（ＲＴ：Ｒｏｕｔｅｒ）などの通信経路を制御するための装置である。通信経路７１０−７８０は、例えば光ファイバや電話網である。データセンタ１００−４００内で実行される仮想マシンは、中継装置５００−５３０及び通信経路７１０−７８０を介して互いに通信する。
【００１６】
制御コンピュータ６００は、後述されるように仮想マシン及びディスクのマイグレーションの制御や、中継装置から通信状況に関する情報の収集を、中継装置５００−５３０及び通信経路７１０−７８０を介して実行する。
【００１７】
クライアント８００は、データセンタ４００に接続されている。クライアント８００が実行するアプリケーションは、データセンタ１００内で実行される仮想マシン１０１、仮想マシン１０２、ディスク１１１及びディスク１１２を使用することによって、実行されているとする。クライアント８００は、このアプリケーションの実行のために、中継装置５００−５３０及び通信経路７１０−７８０を介してデータセンタ１００と通信する。
【００１８】
図２に、クライアントが仮想マシンに処理の実行を要求してから処理結果がクライアントに返されるまでの応答時間の例が示される。図２Ａ、Ｂ、Ｃ及びＤの４つの例には、図１に示されたクライアント８００から仮想マシン１０１に処理の要求が送信され、仮想マシン１０１が要求された処理を実行するためにディスク１１１と３回のアクセスを実行して、処理結果をクライアント８００に返すまでのタイムチャートが例示される。
【００１９】
図２Ａに、図１に示されるクライアント８００からデータセンタ４００、中継装置５３０、中継装置５２０、及び中継装置５００を経由して、データセンタ１００内で実行される仮想マシン１０１に処理の要求が送信され、仮想マシン１０１が要求された処理を実行するためにディスク１１１と３回のアクセスを実行して、処理結果が中継装置５００、中継装置５２０、中継装置５３０、及びデータセンタ４００を経由してクライアント８００に返される例が示される。なお、中継装置５００、５２０及び５３０が“ＲＴ”と表記されている。
【００２０】
図２Ａに示される“Ｔ１”は、クライアント８００が処理の要求をしてから、処理結果を受けとるまでの応答時間である。後述するが、応答時間“Ｔ１”は、クライアント８００が処理の要求をしてから処理結果を受けとるまでの、クライアントとデータセンタとの間の伝搬時間、データセンタと中継装置との間の伝搬時間、及び中継装置間の伝搬時間の総和である伝搬時間“Ｔｐ”、中継装置でのデータ転送にかかる転送処理時間の総和である転送処理時間“Ｔｓ”、及び仮想マシンとディスクとの間のアクセスにかかる時間の総和であるアクセス時間“Ｔａ”の合計値となる。
【００２１】
図２Ａに示される“Ｔｐ”は、クライアント８００が処理の要求をしてから、処理結果を受けとるまでに介在する、クライアントとデータセンタとの間の伝搬時間、データセンタと中継装置との間の伝搬時間、及び中継装置間の伝搬時間といった各拠点間の伝搬時間の総和である。伝搬時間“Ｔｐ”は伝搬遅延ともよばれ、距離に依存した時間として算出することができ、典型的には光ファイバを用いた光通信の場合に１００ｋｍあたり約０．５ｍｓとして算出される。なお、図２Ａでは、クライアントとデータセンタとの間、データセンタと中継装置との間、及び中継装置間といった各拠点間が同じ距離として表現されているが、各拠点間の距離は様々であり、各拠点間の伝搬時間はその距離に依存して算出されればよい。
【００２２】
図２Ａでは、煩雑になることを避けるために一部省略しているが、伝搬時間“Ｔｐ”が算出される際に考慮される拠点間の一部に“Ｔｐ”の符線が付されており、例えば、クライアント８００からデータセンタ４００にデータが転送されるまでの時間、データセンタ４００から中継装置５３０にデータが転送されるまでの時間、中継装置５３０から中継装置５２０にデータが転送されるまでの時間などが、伝搬時間“Ｔｐ”が算出される際に考慮される。
【００２３】
図２Ａに示される“Ｔｓ”は、クライアント８００が処理の要求をしてから、処理結果を受けとるまでに介在する中継装置でのデータ転送にかかる転送処理時間の総和であり、処理遅延ともよばれる。図２Ａでは、煩雑になることを避けるために一部省略しているが、転送処理時間“Ｔｐ”が算出される際に考慮される処理の一部に“Ｔｓ”の符線が付されており、例えば、中継装置５３０においてデータ転送にかかる処理にかかる時間が、転送処理時間“Ｔｐ”が算出される際に考慮される時間である。
【００２４】
転送処理時間“Ｔｓ”は、各拠点間の通信経路のリンク使用率に依存する。なお、リンク使用率とは、通信経路の最大の帯域に対して使用されている帯域の割合であり、例えば、帯域が１０Ｇｂｐｓの通信経路において２Ｇｂｐｓの帯域がすでに使用されているとすると、リンク使用率は２０％となる。例えば、複数の通信経路を経由する通信の場合に、最も混雑している通信経路のリンク使用率によって転送処理時間“Ｔｓ”が決まる。なぜならば、複数の通信経路のうちの他の通信経路の帯域に余裕があっても、リンク使用率が相対的に大きい通信経路は混雑しているためにデータが送りだせないからである。この場合、中継装置でデータがバッファリングされ、バッファリングの能力を超える場合にはデータを送りださないようフィードバックをかけ、最も混雑しているリンク使用率が相対的に大きな通信経路の帯域に合わせて通信が実行される。例えば、中継装置５３０から中継装置５００へデータを転送する場合を考える。中継装置５３０と中継装置５２０との間の通信経路の最大の帯域が１０Ｇｂｐｓであってリンク使用率が４０％であり、中継装置５２０と中継装置５００との間の通信経路の最大の帯域が１０Ｇｂｐｓであってリンク使用率が２０％であると、中継装置５２０から中継装置５００へのデータ転送には相対的に余裕があったとしても、中継装置５２０に転送されるデータレートが４０％のリンク使用率に依存したデータレートとなるために、中継装置５２０から中継装置５００へのデータ転送もこのデータレートに依存することとなる。
【００２５】
図２Ａに示される“Ｔａ”は、クライアント８００から要求された処理を実行するために、仮想マシン１０１がディスク１１１にアクセスしている時間の総和である。ここでは、仮想マシン１０１が要求された処理を実行するために、ディスク１１１に３回アクセスしている例が示されており、３回のアクセスにかかった時間がアクセス時間“Ｔａ”である。図２Ａでは、仮想マシン１０１とディスク１１１とのアクセスが、同じデータセンタ１００内で実行されているため、アクセス時間“Ｔａ”が、ネットワークを介した通信によって定まる伝搬時間“Ｔｐ”、や転送処理時間“Ｔｐ”よりも相対的に短い。
【００２６】
なお、図２Ｂ、Ｃ及びＤに付された伝搬時間“Ｔｐ”、転送処理時間“Ｔｐ”、及びアクセス時間“Ｔａ”は、上述した内容と同様である。
【００２７】
図２Ｂには、図１の示されたクライアント８００に最も近いデータセンタ４００にデータセンタ１００から仮想マシン１０１及びディスク１１１がマイグレーションされた場合に、クライアント８００から仮想マシン１０１に処理の要求が送信され、仮想マシン１０１が要求された処理を実行するためにディスク１１１と３回のアクセスを実行して、処理結果をクライアント８００に返すまでのタイムチャートが例示される。クライアント８００に処理結果が返されるまでの応答時間“Ｔ２”であり、図２Ａと比較して他のデータセンタや中継装置を介さないため、応答時間“Ｔ２”は、伝搬時間“Ｔｐ”及びアクセス時間“Ｔａ”の和になる。
【００２８】
図２Ｃは、図１の示されたデータセンタ３００にデータセンタ１００から仮想マシン１０１及びディスク１１１がマイグレーションされた場合に、クライアント８００からデータセンタ４００、中継装置５３０、及び中継装置５２０を経由して、データセンタ３００内で実行される仮想マシン１０１に処理の要求が送信され、仮想マシン１０１が要求された処理を実行するためにディスク１１１と３回のアクセスを実行して、処理結果が中継装置５２０、中継装置５３０、及びデータセンタ４００を経由してクライアント８００に返される例が示される。クライアント８００に処理結果が返されるまでの応答時間が“Ｔ３”であり、図２Ａと比較して通信経路が短くなっていることと中継装置５００を介さないことによって、応答時間“Ｔ３”は、応答時間“Ｔ１”よりも短くなっている。
【００２９】
図２Ｄは、図１の示されたデータセンタ４００にデータセンタ１００から仮想マシン１０１がマイグレーションされ、データセンタ３００にディスク１１１がマイグレーションされた場合の例である。クライアント８００から仮想マシンに処理の要求が送信され、仮想マシン１０１が要求された処理を実行するために、中継装置５３０、及び中継装置５２０間を３回介してデータセンタ３００内のディスク１１１にアクセスして、処理結果がクライアント８００に返される。クライアント８００に処理結果が返されるまでの応答時間が“Ｔ４”である。仮想マシン１０１とディスク１１１とが異なるデータセンタにマイグレーションされたため、仮想マシン１０１とディスク１１１との間のアクセス毎にデータセンタ間のネットワークに通信が発生する。この場合、ネットワークを介した通信では、その度に伝搬遅延と処理遅延とが発生するため、図２Ａ，Ｂ及びＣと比較して、応答時間が長くなっている。
【００３０】
ところで、仮想マシン１０１及びディスク１１１間で通信されるデータ量が、クライアント８００から送信される要求及び仮想マシン１０１が送信する処理結果のデータ量よりも少ない場合には、Ｔａと比較して、ＴｐやＴｓは相対的に大きくなる。例えば、あるデータセンタに、橋梁の備え付けられたセンタから収集した橋梁の強度に関するログデータが１年分といった長期間蓄積され、この蓄積されたログデータの解析に基づいて強度に関する時系列のデータを取得するためには、解析を開始させるためのｋｂｐｓのオーダのトリガ信号がクライアント８００からデータセンタ１００へ送信されるのに対して、解析中には膨大なデータ量の通信が仮想マシン１０１とディスク１１１との間で実行されるからである。
【００３１】
図２Ａ、Ｂ及びＣに示されるように、仮想マシン１０１とディスク１１１との間の通信がデータセンタ内で実行される場合には、例えば数百ｋｍのオーダで通信が実行されるデータセンタ間の通信の伝搬遅延や、データセンタ間のネットワークに介在する中継装置による処理遅延と比較して、アクセス時間による遅延が少ない。従って、解析中の膨大なデータ量の通信があっても、同じデータセンタにある仮想マシンとディスクとで通信される場合には、クライアントへの応答時間に対してはアクセス時間が無視できる程度の遅延となる。
【００３２】
しかし、図２Ｄに示されるように、仮想マシンとディスクとが異なるデータセンタにマイグレーションされ、データセンタ間のネットワークを介して仮想マシンがディスクにアクセスする場合には、データ量の多い通信が複数回ネットワークに発生するため、伝搬遅延及び中継装置による処理遅延が図２Ａ、Ｂ及びＣと比較して大きくなり、アクセス時間が応答時間に与える影響が無視できなくなる。
【００３３】
例えば、図１に示されるデータセンタ１００内で実行される仮想マシン１０１−１０３及びディスク１１１−１１２によりサービスを受けていたクライアント８００が、より低遅延のサービスを受けるために、契約内容をより低遅延を保証する契約内容に変更することがある。この場合、クライアント８００により近いデータセンタ４００に仮想マシン１０１−１０３及びディスク１１１−１１２をマイグレーションさせることによって、ネットワークにおける伝搬時間や転送処理時間を少なくすることが考えられる。クライアント８００に最も近いデータセンタ４００に、仮想マシン１０１−１０３及びディスク１１１−１１２の全てをマイグレーションさせるだけのリソースがあれば、そのリソースを利用してマイグレーションを実行すればよい。
【００３４】
しかし、図１に示されるように、データセンタ４００において空いているリソースが仮想マシン２個分及びディスク１個分の場合には、仮想マシン１０１−１０３及びディスク１１１−１１２の全てをマイグレーションさせるだけの空きリソースがない。この場合に、仮想マシン１０１−１０３及びディスク１１１−１１２を、データセンタ２００−４００に分散させてマイグレーションさせると、マイグレーション後の仮想マシン１０１−１０３及びディスク１１１−１１２との間の通信に、図２Ｂ、Ｃ、Ｄに示された通信の例が混在する可能性がある。とりわけ、図２Ｄに示されたような通信が発生する場合には、クライアント８００に対して遅延が大きくなってしまう。
【００３５】
以上に述べたように、複数のデータセンタのリソースを有効に利用するために、仮想マシン及びディスクを複数のデータセンタに分散してサービスを行うと、データセンタ内では時間が相対的に短いと想定できた仮想マシンとディスクとのアクセスがデータセンタ間に発生してしまう。そのため、クライアントのサービス体感を向上させるためには、クライアントの要求に対するリソースの割り当て量を考慮するだけでは不十分である。図２Ｄに示されたように、仮想マシンとディスクとの間のアクセス回数が多いほど、クライアントが処理の実行を要求してから処理結果を受け取るまでの応答時間が長くなってしまうため、このアクセス回数や、このアクセスによって発生するネットワークでの伝搬遅延や中継装置における処理遅延を考慮する必要がある。以上に述べたように、複数のデータセンタのリソースを有効活用することと、クライアントに対する応答時間を短くすることにはジレンマがある。
【００３６】
後述される実施例によれば、複数の割り当て先に仮想マシン及び記憶装置を割当てる場合に、記憶装置へのアクセス頻度に応じた応答時間が短くなる割り当て先の組合せを選ぶ事で、ユーザに処理結果が返されるまでの応答遅延を小さくできる。
【００３７】
図３に、実施例のサーバのハードウェア構成の例が示される。実施例のデータセンタ１００−４００の各々は１以上のサーバ及びサーバに接続されたディスクを含む。サーバはＣＰＵ１０００、メモリコントローラ１０１０、メモリ１０２０、メモリバス１０３０、ＩＯバスコントローラ１０４０、ＮＩＣ１０５０、及びＩＯバス１０６０を含む。上述されたディスクに対応する構成としての記憶装置１０７０がＩＯバス１０６０に接続される。
【００３８】
メモリバス１０３０に接続されたメモリ１０２０には、サーバの各種処理を実行するためのプログラムが格納されている。ＣＰＵ１０００は、メモリコントローラ１０１０を介して、メモリ１０２０からプログラムを読み出し、各種処理を実行する。ＣＰＵ１０００によって実行される各種処理に伴い、メモリ１０２０に対するデータの書き込み及び読み出しがメモリコントローラ１０１０を介して実行される。
【００３９】
ＣＰＵ１０００は、ＩＯバスコントローラ１０４０を介して、ＩＯバス１０６０に接続されたＮＩＣ１０５０にサーバから送信されるデータやパケットを転送し、また、サーバに対して送信されたデータやパケットを受信する。ＣＰＵ１０００は、ＩＯバスコントローラ１０４０を介して、ＩＯバス１０６０に接続された記憶装置１０７０からデータを読み出し、また記憶装置１０７０にデータを書き込む。
【００４０】
ＣＰＵ１０００は、各種処理を実行するための１以上のＣＰＵコアを含んでいてもよい。また、各ＣＰＵコアは１以上のプロセッサを含んでいてもよい。メモリ１０２０は、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのＲＡＭである。記憶装置１０７０は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリなどの不揮発性メモリ、又はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気ディスク装置である。
【００４１】
なお、ＣＰＵ１０００、メモリコントローラ１０１０、メモリ１０２０、ＮＩＣ１０５０、及び、記憶装置１０７０が同じバスに接続された構成を実施例のサーバ１００−４００に適用してもよい。図３に示されるハードウェア構成によって、後述されるサーバの機能ブロックが実現され、処理が実行される。
【００４２】
図４に、実施例のデータセンタに含まれるサーバの機能ブロックの例が示される。実施例のデータセンタ１００−４００の各々に含まれるサーバでは、記憶装置１０７０に格納されたプログラムが、ワーキングメモリとして使用されるメモリ１０２０にロードされる。メモリ１０２０にロードされたプログラムがＣＰＵ１０００によって実行されることにより、カウンタ１１００、及び算出部１１１０として機能する。各機能ブロックにより実行される処理が、図５に示される処理と対応させて後述される。
【００４３】
図５に、実施例のデータセンタに含まれるサーバによって実行される処理の例が示される。
【００４４】
データセンタ１００−４００の各々に含まれるサーバは、クライアントから処理の要求を受信すると、要求頻度及びアクセス頻度を算出するために、図５に示された処理を開始させるための処理２１００を実行する。
【００４５】
仮想マシン及びディスクの組み合わせ毎に、所定期間Ｔｃ内において、処理の実行が要求される回数Ｎｒをカウントする処理２２００が、カウンタ１１００によって実行される。処理２２００では、クライアントが処理の実行を要求する際に送信するパケットのヘッダに含まれる宛先アドレスにより仮想マシンを特定し、その要求に対する処理によってどのディスクがアクセスされたかをモニタすることで、所定期間Ｔｃにおける組み合わせ毎の回数Ｎｒをカウントすればよい。なお、宛先アドレスは、仮想マシンに割り当てられたＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスやＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスなどである。
【００４６】
仮想マシン及びディスクの組み合わせ毎に、所定期間Ｔｃ内におけるディスクへのアクセス回数Ｎａをカウントする処理２３００が、カウンタ１１００によって実行される。処理２３００では、クライアントが処理の実行を要求する際に送信するパケットのヘッダに含まれる宛先アドレスにより仮想マシンを特定し、その要求に対する処理によってどのディスクがアクセスされたかをモニタし、クライアントに対して処理結果が返されるまでのディスクへのアクセス回数をカウントすることで、所定期間Ｔｃにおける組み合わせ毎の回数Ｎａをカウントすればよい。
【００４７】
処理２２００によってカウントされた、組み合わせ毎の回数Ｎｒに基づいて、仮想マシン及びディスクの組み合わせ毎に、要求頻度Ｆｒを算出する処理２４００が、算出部１１１０によって実行される。処理２２００では、回数Ｎｒの何れか（例えば最大値をとるＮｒ）によって各Ｎｒが正規化される。処理２４００によって、仮想マシン及びディスクの組み合わせ毎に、クライアントが処理を要求する要求頻度Ｆｒが算出され、組み合わせ毎の要求頻度Ｆｒの相対関係が求まる。処理２４００によって算出された要求頻度Ｆｒは、後述される図６に示される情報であり、メモリ１０２０に格納される。
【００４８】
仮想マシン及びディスクの組み合わせ毎に、アクセス頻度Ｆａ＝Ｎａ／Ｎｒを算出する処理２５００が、算出部１１１０によって実行される。処理２５００は、クライアントからの１回当たりの要求に対して発生するディスクへのアクセス回数の平均値をアクセス頻度として算出する処理である。処理２５００によって算出されたアクセス頻度Ｆａは、後述される図７に示される情報であり、メモリ１０２０に格納される。
【００４９】
図６に、クライアントによる仮想マシンへの要求頻度に関する情報の例が示される。要求頻度Ｆｒは、図５に示される処理２４００によって算出されてメモリ１０２０に格納された情報である。ここでは、処理２２００によってカウントされた回数Ｎｒのうち、図１に示される仮想マシン１０２及びディスク１１１の組み合わせに対応する回数が最も大きく、この値で、各Ｎｒが正規化された場合の例である。
【００５０】
例えば、仮想マシン１０２及びディスク１１１の組み合わせに対応する要求頻度が“１”であるのに対して、仮想マシン１０１及びディスク１１１の組み合わせに対応する要求頻度が正規化されたことにより“０．５”となっている。
【００５１】
なお、仮想マシン１０１−１０３及びディスク１１１−１１２が、ある特定のクライアントに割り当てられたリソースであって、特定のクライアントから要求された処理を実行するためのリソースであることを識別するために、仮想マシン１０１−１０３及びディスク１１１−１１２には特定のクライアントを識別するための共通の識別情報が関連付けられて管理されている。例えば、共通の識別情報として、特定のクライアントに割り当てられているＭＡＣアドレスやＩＰアドレスが使用されてもよい。
【００５２】
図７に、仮想マシンによるディスクへのアクセス頻度に関する情報の例が示される。アクセス頻度Ｆａは、図５に示される処理２５００によって算出されてメモリ１０２０に格納された情報である。図７に示される組み合わせ毎のアクセス頻度は、所定期間Ｔｃにおいて、クライアントからの１回当たりの要求に対して発生するディスクへのアクセス回数の平均値である。例えば、クライアントが仮想マシン１０１に対して要求を１回すると、仮想マシン１０１はディスク１１１と平均して１０回アクセスして、処理結果をクライアントに返すことが例示されている。
【００５３】
図８に、実施例の制御コンピュータのハードウェア構成の例が示される。実施例の制御コンピュータ６００は、ＣＰＵ３０００、メモリコントローラ３０１０、メモリ３０２０、メモリバス３０３０、ＩＯバスコントローラ３０４０、ＮＩＣ３０５０、ＩＯバス３０６０、及び記憶装置３０７０を含む。
【００５４】
メモリバス３０３０に接続されたメモリ３０２０には、サーバの各種処理を実行するためのプログラムが格納されている。ＣＰＵ３０００は、メモリコントローラ３０１０を介して、メモリ３０２０からプログラムを読み出し、各種処理を実行する。ＣＰＵ３０００によって実行される各種処理に伴い、メモリ３０２０に対するデータの書き込み及び読み出しがメモリコントローラ３０１０を介して実行される。
【００５５】
ＣＰＵ３０００は、ＩＯバスコントローラ３０４０を介して、ＩＯバス３０６０に接続されたＮＩＣ３０５０にサーバから送信されるデータやパケットを転送し、また、サーバに対して送信されたデータやパケットを受信する。ＣＰＵ３０００は、ＩＯバスコントローラ３０４０を介して、ＩＯバス３０６０に接続された記憶装置３０７０からデータを読み出し、また記憶装置３０７０にデータを書き込む。
【００５６】
ＣＰＵ３０００は、各種処理を実行するための１以上のＣＰＵコアを含んでいてもよい。また、各ＣＰＵコアは１以上のプロセッサを含んでいてもよい。メモリ３０２０は、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのＲＡＭである。記憶装置３０７０は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリなどの不揮発性メモリ、又はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気ディスク装置である。
【００５７】
なお、ＣＰＵ３０００、メモリコントローラ３０１０、メモリ３０２０、ＮＩＣ３０５０、及び、記憶装置３０７０が同じバスに接続された構成を実施例の制御コンピュータ６００に適用してもよい。図８に示されるハードウェア構成によって、後述される制御コンピュータ６００の機能ブロックが実現され、処理が実行される。
【００５８】
図９に、実施例の制御コンピュータの機能ブロックの例が示される。実施例の制御コンピュータ６００では、記憶装置３０７０に格納されたプログラムが、ワーキングメモリとして使用されるメモリ３０２０にロードされる。メモリ３０２０にロードされたプログラムがＣＰＵ３０００によって実行されることにより、特定部３１００、取得部３１１０、算出部３１２０、選定部３１３０、選択部３１４０、判定部３１５０、抽出部３１６０、及び、命令部３１７０として機能する。各機能ブロックにより実行される処理が、図１０に示される処理と対応させて後述される。
【００５９】
図１０に、実施例の制御コンピュータによって実行される処理の例が示される。マイグレーション要求が設定されると、図１０に示されるように、マイグレーション先のデータセンタを選択するための処理を開始させるための処理４０００が、制御コンピュータ６００によって実行される。なお、図１０の説明では、図１に示されるデータセンタ１００において実行される仮想マシン１０１−１０３と、それらの仮想マシン１０１−１０３によってアクセスされるディスク１１１及び１１２により、クライアント８００にサービスが提供されており、クライアント８００に対してより低遅延のサービスを提供するために、仮想マシン１０１−１０３及びディスク１１１−１１２をマイグレーションさせるための要求が設定された例に沿って例示する。
【００６０】
マイグレーション要求に基づき、マイグレーションの対象となる仮想マシン及びディスクを特定する処理４０１０が、特定部３１００によって実行される。処理４０１０により、マイグレーション要求に基づき、仮想マシン１０１−１０３及びディスク１１１−１１２がマイグレーションの対象となる仮想マシン及びディスクであると特定される。
【００６１】
各データセンタのリソースの使用情報を取得する処理４０２０が、取得部３１１０によって実行される。処理４０２０により、各データセンタ１００−４００のリソースの使用情報が取得されて、メモリ３０２０に格納される。
【００６２】
図１１に、各データセンタにおけるリソースの使用情報の例が示される。ここでは、図１に示されたデータセンタ１００−４００において割り当て可能な仮想マシンの数及びディスクの数に対して、すでに割り当てられている仮想マシン数及びディスクの数が示されており、上述したように、データセンタ１００−４００において割り当て可能な仮想マシンの数が“３”及びディスクの数が“３”であるとして例示されている。処理４０２０によって取得されるリソースの使用情報において、例えばデータセンタ２００では、割り当て可能な仮想マシンの数“３”に対して“２”の数の仮想マシンがすでに割り当てられて使用されている。また、割り当て可能なディスクの数“３”に対して“１”の数のディスクがすでに割り当てられて使用されている。すなわち、データセンタ２００では、“１”の数の仮想マシン及び“２”の数のディスクが、まだ割り当て可能なリソースとして残っている。
【００６３】
なお、処理４０２０に関連して、制御コンピュータ６００が、各データセンタ１００−４００にリソースの使用情報を問い合わせてもよいし、各データセンタ１００−４００が定期的に自身のリソースの使用情報を制御コンピュータ６００に通知してもよい。また、制御コンピュータ６００やデータセンタ１００−４００内の管理サーバが仮想マシンを管理している場合には、仮想マシンが配備、移動、消去される際に更新される管理情報に従ってリソースの使用情報を使用してリソースの使用情報を取得してもよい。
【００６４】
図１０に示されるように、処理４０１０により特定された仮想マシン及びディスクの組み合わせ毎に対応する要求頻度Ｆｒに関する情報を取得する処理４０３０が、取得部３１１０によって実行される。要求頻度Ｆｒに関する情報の例が、上述された図６に示された情報であり、処理４０３０により制御コンピュータ６００は、処理４０１０により特定された仮想マシン及びディスクを含むデータセンタから要求頻度Ｆｒを取得して、メモリ３０２０に要求頻度Ｆｒが格納される。
【００６５】
処理４０１０により特定された仮想マシン及びディスクの組み合わせ毎のアクセス頻度Ｆａに関する情報を取得する処理４０４０が、取得部３１１０によって実行される。アクセス頻度Ｆｒに関する情報の例が、上述された図７に示された情報であり、処理４０４０により制御コンピュータ６００は、処理４０１０により特定された仮想マシン及びディスクを含むデータセンタからアクセス頻度Ｆａを取得し、メモリ３０２０にアクセス頻度Ｆａが格納される。
【００６６】
ネットワークに含まれる通信経路のリンク使用率に関する情報を取得する処理４０５０が、取得部３１１０によって実行される。処理４０５０により、図１に示されるデータセンタと中継装置との間、及び中継装置間の通信経路７１０−７８０のリンク使用率Ｌ７１０−７８０が取得され、メモリ３０２０に格納される。
【００６７】
図１２に、ネットワークに含まれる通信経路のリンク使用率の例が示される。なお、処理４０５０により取得されるリンク使用率は、定常的なトラフィックが支配的な状況を想定し、マイグレーション前後で実質的な影響を受けないものと仮定する。図１２に示されるように、例えば、通信経路７１０のリンク使用率Ｌ７１０が“２０％”である。なお、リンク使用率は時々刻々と変化する情報のため、制御コンピュータ６００は中継装置５００−５３０から定期的にリンク使用率を収集するようにすればよい。中継装置５００−５３０は、自身の出力バッファに入力されるデータ量と出力されるデータ量の変化分から、通信経路において転送されるデータ量を算出して、単位時間当たりに送信しているデータ量に基づいてリンク使用率を制御コンピュータに通知するようにすればよい。
【００６８】
図１０に示されるように、各データセンタまでの距離に関する情報を取得するための処理４０６０が、取得部３１１０によって実行される。処理４０６０により、図１に示されるクライアント８００と各データセンタ１００−４００と間の距離に関する情報が取得され、メモリ３０２０に格納される。なお、この距離に関する情報は、図１０に示される処理の順序によらずに取得してメモリ３０２０に格納しておいてもよい。
【００６９】
図１３に、各データセンタまでの距離に関する情報の例が示される。処理４０６０により取得される距離に関する情報において、例えば、クライアント８００からデータセンタ１００までの距離が“５００ｋｍ”であると示されている。
【００７０】
図１０に示されるように、処理４０１０により特定された仮想マシン及びディスクの組み合わせ毎に、マイグレーション前の応答時間Ｔｆを算出する処理４０７０が、算出部３１２０によって実行される。ここで、マイグレーション前とは、図１に示される仮想マシン１０１−１０３及びディスク１１１−１１２がデータセンタ１００に割り当てられている場合であり、クライアント８００が処理の実行を要求してから処理結果を受け取るまでの応答時間Ｔｆは図２Ａに示される応答時間“Ｔ１”に対応する。上述したが、クライアント８００による処理の要求にかかるデータ量や、クライアント８００に返される処理結果にかかるデータ量は、データセンタ１００内で通信されるデータ量よりも小さい。つまり、応答時間Ｔｆは、仮想マシン１０１−１０３とディスク１１１−１１２との間のアクセス時間や中継装置の転送処理時間よりも、データセンタとクライアントとの間やデータセンタ間の伝搬時間に実質的に依存する。
【００７１】
処理４０７０では、例えば、図１に示される通信経路７１０−７８０に光ファイバが適用されている場合に、算出部３１２０は、メモリ１０２０に格納される図１４に示される距離に関する情報に基づいて、クライアント８００が仮想マシン１０１及びディスク１１１を使用する処理を要求した際に往復の伝送距離が“１０００ｋｍ”であると判定し、適宜設定された光ファイバ内の伝送速度である１００ｋｍあたり０．５ｍｓに基づいて、伝搬時間を“５．０ｍｓ”と算出し、これを応答時間Ｔｆとしてメモリ３０２０に格納する。なお、マイグレーション前は、仮想マシン１０１−１０３及びディスク１１１−１１２がデータセンタ１００にあるので、算出部３１２０が算出する応答時間Ｔｆは、それらのどの組合せであっても実質的に上述した伝搬時間に依存した“５．０ｍｓ”となる。
【００７２】
図１４に、マイグレーション前の応答時間の例が示される。処理４０７０により算出されたマイグレーション前の仮想マシン及びディスクの組み合わせ毎の応答時間Ｔｆは、どの組合せであっても “５．０ｍｓ”として、メモリ３０２０に格納されている。
【００７３】
図１０に示されるように、応答時間Ｔｆを要求頻度Ｆｒで重み付けして、マイグレーション前の重み付け平均応答時間を算出する処理４０８０が、算出部３１２０によって実行される。処理４０８０では、処理４０７０により算出した応答時間Ｔｆに、図５に示される処理２４００により算出された要求頻度Ｆｒに基づいて重み付けをする演算を実行し、それらの平均値を演算することによって、マイグレーション前の重み付け平均応答時間を算出する。マイグレーション前の応答時間Ｔｆが図１４に示される例であって、要求頻度Ｆｒが図６に示される例である場合には、マイグレーション前の重み付け平均応答時間は“５．０ｍｓ”となる。なお、処理４０７０及び４０８０は、図１０に示された処理の開始前に実行しておいてもよい。
【００７４】
図１０に示されるように、処理４０１０により特定された仮想マシン及びディスクについて、マイグレーション後の割り当てパターンの候補を選定する処理４０９０が、選定部３１３０によって実行される。処理４０９０では、例えば、図１に示されるクライアント８００が使用している３つの仮想マシン１０１―１０３及び２つのディスク１１１―１１２のマイグレーション先を選定するために、図１３に示される距離情報がメモリ３０２０から読み出され、各データセンタ１００−４００のうちでクライアント８００から最も近いデータセンタがデータセンタ４００であり、データセンタ３００、データセンタ２００の順に距離がクライアント８００から離れていくと判定される。そして、クライアント８００から最も近いデータセンタ４００の余りのリソースを、メモリ３０２０に格納されたリソースの使用情報に基づいて判定する。ここでは、図１１に示されるように、データセンタ４００では１つの仮想マシン及び２つのディスクがすでに割り当てられているため、処理４０９０では、２つの仮想マシン及び１つのディスクが余りのリソースであると判定される。
【００７５】
また、処理４０９０では、処理４０４０により取得したアクセス頻度Ｆａに基づき、アクセス頻度の大きな仮想マシンとディスクとの組み合わせを選定する。例えばアクセス頻度Ｆａが図７に示される例の場合には、仮想マシン及びディスクの組み合わせ毎のアクセス頻度Ｆａが互いに比較されることで、仮想マシン１０１及びディスク１１１の組み合わせ、及び、仮想マシン１０２及びディスク１１１の組み合わせによるアクセス頻度Ｆｒが相対的に大きいと判定される。図２に基づいて説明したように、仮想マシンとディスクとのアクセスがネットワークを介して実行されてしまうと、クライアントへの応答時間Ｔｆが大きくなってしまう。従って、処理４０９０では、仮想マシン１０１、仮想マシン１０２、及びディスク１１１は同じデータセンタに配備し、とりわけ、クライアント８００に近いデータセンタであるデータセンタ４００に配備した方がよいと判定される。リソースの使用状況に基づきデータセンタ４００には２つの仮想マシン及び１つのディスクの余りのリソースがあると判定されているため、処理４０９０では、仮想マシン１０１、仮想マシン１０２、及びディスク１１１をデータセンタ４００にマイグレーションさせる割り当てパターンが候補であると判定する。
【００７６】
マイグレーション先が判定されていない仮想マシン１０３及びディスク１１２について、図１１に示されるリソースの使用情報及び図１３に示される距離情報に基づき、データセンタ４００の次にクライアント８００から距離の近いデータセンタ２００に仮想マシン１０３及びディスク１１２をマイグレーションさせる割り当てパターンが候補であると判定する。すなわち、処理４０９０では、仮想マシン１０１、仮想マシン１０２、及びディスク１１１をデータセンタ４００にマイグレーションさせ、仮想マシン１０３及びディスク１１２をデータセンタ２００にマイグレーションさせる割り当てパターンが第１の候補として選定される。
【００７７】
また、処理４０９０では、データセンタ２００とデータセンタ３００との距離の差が“５０ｋｍ”であるため、この距離の差が所定の閾値よりも小さい場合には、データセンタ３００にマイグレーションする割り当てパターンを他の候補であると判定してもよい。すなわち、処理４０９０では、仮想マシン１０１、仮想マシン１０２、及びディスク１１１をデータセンタ４００にマイグレーションさせ、仮想マシン１０３及びディスク１１２をデータセンタ２００にマイグレーションさせる割り当てパターンが第２の候補として選定される。
【００７８】
以上に述べた処理４０９０の結果として、以上に述べた２つの割り当てパターンが選定される。なお、割り当てパターンとして、アクセス頻度Ｆａに加えて、又はアクセス頻度Ｆａに代えて、要求頻度Ｆｒが大きい仮想マシンとディスクとの組み合わせがクライアントに近いデータセンタに配置されるように割り当てパターンが選定されてもよい。これは、より頻繁に要求される処理の応答時間が短くなるようにマイグレーションさせることによって、クライアントにとって利便性が向上するからである。
【００７９】
図１５に、マイグレーション後の割り当てパターンの候補の例が示される。図１５Ａには、処理４０９０により選定された割り当てパターンのうち第１の候補が示されている。図１５Ａに示される第１の割り当てパターンの候補は、仮想マシン１０１、仮想マシン１０２、及びディスク１１１をデータセンタ４００にマイグレーションさせ、仮想マシン１０３及びディスク１１２をデータセンタ２００にマイグレーションさせる関係が関連付けられた情報である。
【００８０】
図１５Ｂには、処理４０９０により選定された割り当てパターンのうち第２の候補が示されている。図１５Ｂに示される第２の割り当てパターンの候補は、仮想マシン１０１、仮想マシン１０２、及びディスク１１１をデータセンタ４００にマイグレーションさせ、仮想マシン１０３及びディスク１１２をデータセンタ３００にマイグレーションさせる関係が関連付けられた情報である。なお、図１５Ａ及びＢに示された情報はメモリ３０２０に格納される。
【００８１】
図１０に示されるように、処理４０６０により取得された距離情報に基づき、処理４０９０により選定された割り当てパターンに関連する各拠点間の伝搬時間を算出する処理４１００が、算出部３１２０によって実行される。なお、この拠点とは、データセンタ、中継装置、及びクライアントなどであり、通信経路に介在する装置やシステムである。
【００８２】
処理４１００では、処理４０６０により取得された距離情報に基づいて、各拠点間の距離が算出される。例えば、データセンタ２００とデータセンタ４００との間の距離は、クライアント８００からデータセンタ２００までの距離から、クライアント８００からデータセンタ４００までの距離を減算すればよい。また、データセンタ２００とデータセンタ３００との間の距離は、データセンタ２００及びデータセンタ４００の間の距離と、データセンタ３００及びデータセンタ４００の間の距離とを加算すればよい。さらに、処理４１００では、各拠点間の通信経路が光ファイバで接続されている場合には、光ファイバによる伝送速度として１００ｋｍあたり０．５ｍｓが設定されて、算出された各拠点間の距離から各拠点間の伝搬時間が算出される。なお、処理４１００では、処理４０９０で選定された割り当てパターンの候補に関連しない拠点間の伝搬時間を算出してもよい。
【００８３】
図１６に、ネットワークに含まれる各拠点間の伝搬時間の例が示される。処理４１００により算出された各拠点間の伝搬時間として、図１６Ａに示されるように、例えばクライアント８００とデータセンタ４００との間の伝搬時間が“２．０ｍｓ”であり、図１６Ｂに示されるように、例えばデータセンタ３００とデータセンタ４００との間の伝搬時間が“２．０ｍｓ”であることが関連付けられている。なお、図１６Ａ及びＢ示される伝搬時間は各拠点間の往復にかかる時間情報であり、メモリ３０２０に格納される情報である。
【００８４】
図１０に示されるように、処理４０９０で選定された割り当てパターンの候補のうちの１つを選択する処理４１１０が、選択部３１４０によって実行される。ここでは、図１５Ｂに対応する割り当てパターンの第２の候補が選択されたとして、続く処理を説明する。
【００８５】
処理４１１０により選択された割り当てパターンの候補において、仮想マシン及びディスクの組み合わせ毎に伝搬時間Ｔｐを算出する処理４１２０が、算出部３１２０によって実行される。処理４１２０の詳細な例が図１７に示されており、図１７に沿って後述する。
【００８６】
図１７に、実施例の制御コンピュータによって実行される処理の他の例が示される。図１７に示された処理は、図１０に示される処理４１２０の詳細な例である。処理４１１０により割り当てパターンの候補のうちの１つが選択されると処理５０００により図１７に示される処理が開始される。
【００８７】
選択された割り当てパターンにおいて、仮想マシン及びディスクの組み合わせのうち１つを選択する処理５０１０が、選択部によって実行される。次いで、処理５０１０により選択された仮想マシンが配備されるデータセンタ及びクライアントの間の伝搬時間Ｔａを算出する処理５０２０が、算出部３１２０によって実行される。
【００８８】
例えば、処理５０１０により選択された仮想マシン及びディスクの組み合わせが、仮想マシン１０１及びディスク１１１である場合には、処理５０２０により仮想マシン１０１が割り当てられるデータセンタ及びクライアント８００の間の伝搬時間Ｔａが算出される。なお、上述したように、図１７に示される処理が、図１５Ｂに対応する割り当てパターンの第２の候補が選択されたとしているため、仮想マシン１０１がデータセンタ４００にて割り当てられることになる。つまり、処理５０２０では、図１６に示される伝搬時間に関する情報がメモリ３０２０から読み出されて、データセンタ４００とクライアント８００との間の伝搬時間が“２．０ｍｓ”であることにより、伝搬時間Ｔａが“２．０ｍｓ”であると算出される。また、処理５０１０により選択された仮想マシン及びディスクの組み合わせが、仮想マシン１０３及びディスク１１１である場合には、処理５０２０により仮想マシン１０３が割り当てられるデータセンタ及びクライアント８００の間の伝搬時間Ｔａが算出される。なお、図１５Ｂに対応する割り当てパターンの第２の候補が選択されたとしているため、仮想マシン１０３がデータセンタ３００にて割り当てられることになる。つまり、処理５０２０では、図１６に示される伝搬時間に関する情報がメモリ３０２０から読み出されて、データセンタ３００とクライアント８００との間の伝搬時間が“４．０ｍｓ”であることにより、伝搬時間Ｔａが“４．０ｍｓ”であると算出される。
【００８９】
選択された割り当てパターンにおいて、選択された仮想マシン及びディスクが同じデータセンタに割り当てられるか否かを判定する処理５０３０が、判定部３１５０によって実行される。処理５０３０では、例えば、処理５０１０により選択された仮想マシン及びディスクの組み合わせが、仮想マシン１０１及びディスク１１１である場合には、図１５Ｂに対応する割り当てパターンの第２の候補が選択されたとしているため、仮想マシン１０１及びディスク１１１が共にデータセンタ４００にて割り当てられるため、処理５０４０に移る。
【００９０】
選択された仮想マシン及びディスクの組み合わせに対応する伝搬時間Ｔｐとして、Ｔｐ＝Ｔａを算出する処理５０４０が、算出部３１２０によって実行される。なお、処理５０４０において、伝搬時間ＴｐをＴａとする理由は、仮想マシンとディスクとが同じデータセンタにて割り当てられているため、仮想マシンとディスクとの間のアクセス時間がネットワークにおける伝搬時間に対して無視してもよいためである。
【００９１】
ところで、処理５０３０では、例えば、処理５０１０により選択された仮想マシン及びディスクの組み合わせが、仮想マシン１０３及びディスク１１１である場合には、図１５Ｂに対応する割り当てパターンの第２の候補が選択されて、仮想マシン１０３がデータセンタ３００にて割り当てられ、ディスク１１１がデータセンタ４００にて割り当てられているため、同じデータセンタに割り当てられていないと判定されて処理５０５０に移る。この場合には、仮想マシンとディスクとが異なるデータセンタにて割り当てられているため、仮想マシンとディスクとの間のアクセスがネットワークを介して行われることにより、アクセス頻度に基づいた伝搬時間を算出するため処理５０５０を実行することとなる。
【００９２】
選択された仮想マシン及びディスク間の伝搬時間Ｔｂを算出する処理５０５０が、算出部３１２０によって実行される。ここで、処理５０１０により選択された仮想マシン及びディスクの組み合わせが、仮想マシン１０３及びディスク１１１であるとする。図１５Ｂに対応する割り当てパターンの第２の候補が選択されているため、仮想マシン１０３がデータセンタ３００にて割り当てられ、ディスク１１１がデータセンタ４００にて割り当てられることになる。すなわち、仮想マシン１０３とディスク１１１との間のアクセスは、データセンタ３００とデータセンタ４００との間で実行されるため、図１６Ｂに示された情報に基づき、仮想マシン１０３とディスク１１１との間の往復のアクセス時間が、“２．０ｍｓ”と算出される。また、図１０に示される処理４０４０により取得されたアクセス頻度Ｆａは、図７に示されるように、仮想マシン１０３及びディスク１１１の場合にはクライアント８００から要求された処理を実行して処理結果を返すまでに１回のディスクアクセスがあるため、処理５０５０によって、仮想マシン１０３とディスク１１１との間の全体の伝搬時間が、“２．０ｍｓ”×１＝“２．０ｍｓ”と算出される。処理５０５０により、異なるデータセンタにて仮想マシンとディスクを割り当てた場合の伝搬時間をより正確に見積もることができる。
【００９３】
選択された仮想マシン及びディスクの組み合わせに対応する伝搬時間Ｔｐとして、Ｔｐ＝Ｔａ＋Ｔｂを算出する処理５０６０が、算出部３１２０によって実行される。ここで、処理５０１０により選択された仮想マシン及びディスクの組み合わせが、仮想マシン１０３及びディスク１１１である場合には、上述したように、処理５０２０によりＴａ＝“２．０ｍｓ”、及び処理５０５０によりＴｂ＝“２．０ｍｓ”と算出されているため、処理５０６０によってＴｐ＝“４．０ｍｓ”と算出される。なお、処理５０６０及び処理５０４０により算出された伝搬時間Ｔｐに関する情報は、仮想マシン及びディスクの組み合わせに関連付けられてメモリ３０２０に格納される。
【００９４】
選択された仮想マシン及びディスクの全ての組み合わせについて、伝搬時間Ｔｐを算出したか否かを判定する処理５０７０が、判定部３１５０によって実行される。算出していないと判定された場合には処理５０８０に移り、選択されていない仮想マシン及びディスクの他の組み合わせを選択する処理５０８０を実行して処理５０２０に移る。処理５０７０において、算出されたと判定された場合には処理５０９０に移り、図１０に示された処理４１３０に移るために、図１７に示された処理を終える。
【００９５】
図１７に示される処理が終わると、図１０に示される処理４１１０により選択された割り当てパターンの候補において、仮想マシン及びディスクの組み合わせ毎に伝搬時間Ｔｓを算出する処理４１３０が、算出部３１２０によって実行される。処理４１３０の詳細な例が図１８に示されており、図１８に沿って後述する。
【００９６】
図１８に、実施例の制御コンピュータによって実行される処理の他の例が示される。図１８に示された処理は、図１０に示される処理４１３０の詳細な例である。処理４１２０が終了すると処理６０００により図１８に示される処理が開始される。処理４１１０により選択された割り当てパターンの候補において、仮想マシン及びディスクの組み合わせのうち１つを選択する処理６０１０が、選択部によって実行される。
【００９７】
処理６０１０により選択された仮想マシン及びディスクで通信されるデータ量Ｖを取得する処理６０２０が、取得部３１１０によって実行される。各データセンタ１００−４００では、仮想マシンが受信するパケットのヘッダに含まれる宛先アドレスと、その後の処理でアクセスされるディスクとの対応付けが管理されており、また、仮想マシンとディスクと間の通信で発生するデータ量Ｖをモニタされてログに記録されているため、処理６０２０では、このログに基づいて、選択された仮想マシン及びディスクで通信されるデータ量Ｖが取得される。
【００９８】
処理６０１０により選択された仮想マシン及びディスクの通信経路について、リンク使用率に基づき、許容される伝送レートＲを算出する処理６０３０が、算出部３１２０によって実行される。ここで、図１８に示される処理が、図１５Ｂに対応する割り当てパターンの第２の候補が選択されて実行されているとし、また、処理６０１０により選択された仮想マシン及びディスクの組み合わせが、仮想マシン１０１及びディスク１１２であるとする。すなわち、仮想マシン１０１がデータセンタ４００にて割り当てられ、ディスク１１２がデータセンタ３００にて割り当てられるものとする。
【００９９】
処理６０３０では、ネットワークの構成情報に従い、データセンタ４００にて割り当てられる仮想マシン１０１及びデータセンタ３００にて割り当てられるディスク１１２の通信経路が、図１に示された通信経路７４０、７８０、及び７３０であると判定する。処理６０３０では、図１２に示されたリンク使用率をメモリ３０２０から読み出されることで、通信経路７４０に関連付けられたリンク使用率が“４０％”であり、通信経路７８０に関連付けられたリンク使用率が“６０％”であり、通信経路７３０に関連付けられたリンク使用率が“５０％”であると判定される。なお、図２Ａに沿って上述したが、リンク使用率とは、通信経路の最大の帯域に対して使用されている帯域の割合であり、ここでは、図１に示される通信経路７１０−７８０の全ての帯域が１０Ｇｂｐｓであるとして例示する。
【０１００】
このように複数の通信経路７４０、７８０、及び７３０を経由する通信の場合には、最も混雑している通信経路のリンク使用率によって伝送レートＲが決まる。なぜならば、複数の通信経路のうちの他の通信経路の帯域に余裕があっても、リンク使用率が相対的に大きい通信経路は混雑しているためにデータが送り出せないからである。この場合、中継装置でデータがバッファリングされ、バッファリングの能力を超える場合にはデータを送りださないようフィードバックをかけ、最も混雑しているリンク使用率が相対的に大きな通信経路の帯域に合わせて通信が実行される。上述したように、通信経路７４０に関連付けられたリンク使用率が“４０％”であり、通信経路７８０に関連付けられたリンク使用率が“６０％”であり、通信経路７３０に関連付けられたリンク使用率が“５０％”である場合には、例えば、通信経路７４０へのデータ転送には相対的に余裕があったとしても、通信経路７８０への転送が待たされる結果、複数の通信経路７４０、７８０、及び７３０を経由する通信の伝送レートＲは最も大きなリンク使用率である“６０％”に依存することとなる。従って、上述した例の場合には、処理６０３０では、通信経路毎のリンク利用率の最大値である“６０％”に基づき、許容される伝送レートＲが１０Ｇｂｐｓ×（１００％−６０％）＝４Ｇｂｐｓであると算出される。
【０１０１】
処理６０１０により選択された仮想マシン及びディスクの通信経路に含まれる中継装置の数及びアクセス回数、処理６０２０により取得されたデータ量Ｖ、及び処理６０３０により算出された伝送レートＲに基づいて、転送処理時間Ｔｓを算出する処理６０４０が、算出部３１２０によって実行される。ここで、図１８に示される処理が、図１５Ｂに対応する割り当てパターンの第２の候補が選択されて実行されているとし、また、処理６０１０により選択された仮想マシン及びディスクの組み合わせが、仮想マシン１０１及びディスク１１２であるとする。すなわち、仮想マシン１０１がデータセンタ４００にて割り当てられ、ディスク１１２がデータセンタ３００にて割り当てられるものとする。
【０１０２】
処理６０４０では、ネットワークの構成情報に従い、データセンタ４００にて割り当てられる仮想マシン１０１及びデータセンタ３００にて割り当てられるディスク１１２の通信経路に中継装置５２０及び５３０の２つの中継装置があると判定される。また、処理６０４０では、図１０に示される処理４０４０により取得されたアクセス頻度Ｆａが、図７に示される情報が読み出されることにより、仮想マシン１０１及びディスク１１１の場合にはクライアント８００から要求された処理を実行して処理結果を返すまでに３回のディスクアクセスがあると判定される。従って、仮想マシン１０１及びディスク１１１の組み合わせの場合には、クライアント８００から要求された処理を実行して処理結果を返すまでに、１回のディスクアクセスの往復で中継装置を２×２＝４（回）経由するため、合計では中継装置を４×３＝１２（回）経由することとなる。
【０１０３】
他方で、処理６０２０により取得されたデータ量Ｖが、仮想マシン１０１及びディスク１１１の組み合わせの場合は“５Ｍｂｙｔｅ”であるとする。また、処理６０３０により算出された伝送レートＲは、上述されたように、仮想マシン１０１及びディスク１１１の組み合わせの場合に“４Ｇｂｐｓ”である。
【０１０４】
従って、処理６０４０では、Ｖ（ｂｙｔｅ）×８／Ｒ（Ｇｂｐｓ）×１２（回）＝５ｂｙｔｅ×８／４Ｇｂｐｓ×１２＝１．２ｍｓが演算されて、仮想マシン１０１及びディスク１１１の組み合わせの場合の転送処理時間Ｔｓが“１．２ｍｓ”と算出される。なお、処理６０４０により算出された転送処理時間Ｔｓに関する情報は、仮想マシン及びディスクの組み合わせに関連付けられてメモリ３０２０に格納される。
【０１０５】
特定された仮想マシン及びディスクの全ての組み合わせについて、転送処理時間Ｔｓを算出したか否かを判定する処理６０５０が、判定部３１５０によって実行される。算出していないと判定された場合には処理６０６０に移り、選択されていない仮想マシン及びディスクの他の組み合わせを選択する処理６０６０を実行して処理６０２０に移る。処理６０５０において、算出されたと判定された場合には処理６０７０に移り、図１０に示された処理４１４０に移るために、図１８に示された処理を終える。
【０１０６】
図１０に示されるように、処理４１１０により選択された割り当てパターンの候補において、仮想マシン及びディスクの組み合わせ毎に、マイグレーション後の応答時間Ｔｒ＝Ｔｐ＋Ｔｓを算出する処理４１４０が、算出部３１２０によって実行される。処理４１４０では、処理４１２０により算出されてメモリ３０２０に格納されたＴｐと、処理４１３０により算出されてメモリ３０２０に格納されたＴｓとをメモリ３０２０から読み出し、Ｔｐ及びＴｓが加算されることによって、仮想マシン及びディスクの組み合わせ毎に、応答時間Ｔｒが算出される。処理４１４０により、マイグレーションによって仮想マシンとディスクとが同じデータセンタにある場合も、仮想マシンとディスクとが異なる場合にある場合も、クライアントから処理の要求がされてから処理結果が返されるに実行されるデータ転送のネットワークでの伝搬時間及び中継装置による転送処理時間が仮想マシン及びディスクとのアクセス頻度までも考慮された上で、応答時間Ｔｒが算出されることとなる。算出された応答時間Ｔｒは、仮想マシン及びディスクの組み合わせに関連付けられてメモリ３０２０に格納される。
【０１０７】
図１９に、マイグレーション後の割り当てパターンの候補毎の応答時間の例が示される。図１９Ａ及びＢに示される情報は処理４１４０によって算出された応答時間Ｔｒであり、メモリ３０２０に格納されている情報である。図１９Ａに示される情報が図１５Ａに示される割り当てパターンに対応しており、図１９Ｂに示される情報が図１５Ｂに示される割り当てパターンに対応している。
【０１０８】
図１９Ａに示される情報では、図１５Ａも参照すると、例えば、データセンタ４００にマイグレーションさせられる仮想マシン１０１及びディスク１１１を使用する処理の要求がクライアント８００から送信された場合に、クライアント８００が処理結果を受け取るまでの応答時間が“２．０ｍｓ”であることが示されている。また、データセンタ２００にマイグレーションさせられる仮想マシン１０３及びディスク１１２を使用する処理の要求がクライアント８００から送信された場合に、クライアント８００が処理結果を受け取るまでの応答時間が“３．５ｍｓ”であることが示されている。また、データセンタ２００にマイグレーションさせられる仮想マシン１０３及びデータセンタ４００にマイグレーションさせられるディスク１１１を使用する処理の要求がクライアント８００から送信された場合に、クライアント８００が処理結果を受け取るまでの応答時間が“１１．３ｍｓ”であることが示されている。このように、クライアントに近いデータセンタ４００に共にマイグレーションさせられた仮想マシン１０１及びディスク１１１の組み合わせに対応する応答時間“２．０ｍｓ”よりも、データセンタ２００に共にマイグレーションさせられた仮想マシン１０３及びディスク１１２の組み合わせに対応する応答時間“３．５ｍｓ”の方が長く見積もられていることが分かる。また、データセンタ４００に共にマイグレーションさせられた仮想マシン１０１及びディスク１１１の組み合わせに対応する応答時間“２．０ｍｓ”よりも、異なるデータセンタにマイグレーションさせられた仮想マシン１０３及びディスク１１１の組み合わせに対応する応答時間“１１．３ｍｓ”の方が長く見積もられていることが分かる。
【０１０９】
図１９Ｂに示される情報では、図１５Ｂも参照すると、例えば、データセンタ４００にマイグレーションさせられる仮想マシン１０１及びディスク１１１を使用する処理の要求がクライアント８００から送信された場合に、クライアント８００が処理結果を受け取るまでの応答時間が“２．０ｍｓ”であることが示されている。また、データセンタ３００にマイグレーションさせられる仮想マシン１０３及びディスク１１２を使用する処理の要求がクライアント８００から送信された場合に、クライアント８００が処理結果を受け取るまでの応答時間が“４．０ｍｓ”であることが示されている。また、データセンタ３００にマイグレーションさせられる仮想マシン１０３及びデータセンタ４００にマイグレーションさせられるディスク１１１を使用する処理の要求がクライアント８００から送信された場合に、クライアント８００が処理結果を受け取るまでの応答時間が“９．２ｍｓ”であることが示されている。このように、クライアントに近いデータセンタ４００に共にマイグレーションさせられた仮想マシン１０１及びディスク１１１の組み合わせに対応する応答時間“２．０ｍｓ”よりも、データセンタ３００に共にマイグレーションさせられた仮想マシン１０３及びディスク１１２の組み合わせに対応する応答時間“４．０ｍｓ”の方が長く見積もられていることが分かる。また、データセンタ４００に共にマイグレーションさせられた仮想マシン１０１及びディスク１１１の組み合わせに対応する応答時間“２．０ｍｓ”よりも、異なるデータセンタにマイグレーションさせられた仮想マシン１０３及びディスク１１１の組み合わせに対応する応答時間“９．２ｍｓ”の方が長く見積もられていることが分かる。
【０１１０】
さらに、図１９Ａにおいて仮想マシン１０３及びディスク１１２の組み合わせに対応する応答時間“３．５ｍｓ”であるのに対して、図１９Ｂにおいて仮想マシン１０３及びディスク１１２の組み合わせに対応する応答時間“４．０ｍｓ”である。これは、図１３に示される距離情報を参照すると、図１９Ａの場合がクライアント８００からの距離が“３５０ｋｍ”のデータセンタ２００に仮想マシン１０３及びディスク１１２がマイグレーションされられる場合であり、図１９Ｂの場合がクライアント８００からの距離が“４００ｋｍ”のデータセンタ３００に仮想マシン１０３及びディスク１１２がマイグレーションされられる場合であるため、クライアント８００からの距離による伝搬時間Ｔｐの差が応答時間Ｔｒの影響しているためである。
【０１１１】
さらに、図１９Ａにおいて仮想マシン１０３及びディスク１１１の組み合わせに対応する応答時間“１１．３ｍｓ”であるのに対して、図１９Ｂにおいて仮想マシン１０３及びディスク１１１の組み合わせに対応する応答時間“９．２ｍｓ”である。これは、図１２に示されるリンク使用率を参照すると、図１９Ａの場合ではデータセンタ２００にマイグレーションさせられる仮想マシン１０３及びデータセンタ４００にマイグレーションさせられるディスク１１１の間のアクセスがリンク使用率“９０％”といった混雑した通信経路Ｌ７７０を介して実行されるのに対して、図１９Ｂの場合ではデータセンタ３００にマイグレーションさせられる仮想マシン１０３及びデータセンタ４００にマイグレーションさせられるディスク１１１の間のアクセスがリンク使用率“６０％”の通信経路Ｌ７８０を介して実行されるため、リンク使用率の差が応答時間Ｔｒの影響しているためである。
【０１１２】
図１０に示されるように、応答時間Ｔｒを要求頻度Ｆｒで重み付けして、マイグレーション後の重み付け平均応答時間を算出する処理４１５０が、算出部３１２０によって実行される。処理４１５０では、処理４１４０により算出された応答時間Ｔｒがメモリ３０２０から読み出され、処理４０３０により取得された要求頻度Ｆｒで応答時間Ｔｒを、対応する仮想マシン及びディスクの組み合わせ毎に重み付けする演算が実行される。そして、処理４１５０では、対応する仮想マシン及びディスクの組み合わせ毎に重み付けされた応答時間Ｔｒの平均値を算出する演算が実行されて、割り当てパターンの候補に対応する重み付け平均応答時間が算出される。算出された重み付け平均応答時間は、後述される処理４１８０で使用されるため、メモリ３０２０に格納される。
【０１１３】
処理４１５０では、例えば図１９Ａに示される例の場合、仮想マシン及びディスクの組み合わせ毎の応答時間Ｔｒが、図６に示される要求頻度Ｆｒに基づいて、対応する仮想マシン及びディスクの組み合わせ毎に重み付けされて平均値が演算されることで、重み付け平均応答時間が“４．６ｍｓ”となる。
【０１１４】
処理４１５０では、例えば図１９Ｂに示される応答時間Ｔｒの場合、仮想マシン及びディスクの組み合わせ毎の応答時間Ｔｒが、図６に示される要求頻度Ｆｒに基づいて、対応する仮想マシン及びディスクの組み合わせ毎に重み付けされて平均値が演算されることで、重み付け平均応答時間が“４．１ｍｓ”となる。
【０１１５】
処理４１５０によって、重み付け平均応答時間が算出されることで、マイグレーションの割り当てパターンを選択する際に指標とする応答時間において、クライアントが頻繁に要求してくる処理を実行する仮想マシン及びディスクの組み合わせを考慮することができるため、クライアントに対して全体としてサービス体感がより向上するような応答時間の評価がされることとなる。
【０１１６】
図１０に示されるように、割り当てパターンの候補の全てについて、重み付け平均応答時間を算出したか否かを判定する処理４１６０が、判定部３１５０によって実行される。算出していないと判定された場合には処理６０６０に移り、選択されていない割り当てパターンの候補を選択する処理４１７０を実行して処理４１２０に移る。処理４１６０において、算出されたと判定された場合には処理４１８０に移る。
【０１１７】
マイグレーション前よりも重み付け平均応答時間が短くなる割り当てパターンの候補を抽出する処理４１８０が、抽出部３１６０によって実行される。処理４１８０では、処理４０８０により算出されたマイグレーション前の重み付け平均応答時間がメモリ３０２０から読み出される。また、処理４１８０では、処理４１５０により算出されたマイグレーション後の重み付け平均応答時間が割り当てパターンの候補毎にメモリ３０２０から読み出される。そして、処理４１８０では、マイグレーション前の重み付け平均応答時間と、
マイグレーション後の重み付け平均応答時間とが比較されて、マイグレーション前よりも重み付け平均応答時間が短くなる割り当てパターンの候補が抽出される。
【０１１８】
処理４１８０では、例えば上述した例であると、マイグレーション前の重み付け平均応答時間が“５．０ｍｓ”であり、第１の割り当てパターンの候補に対応するマイグレーション後の重み付け平均応答時間が“４．６ｍｓ”であり、第２の割り当てパターンの候補に対応するマイグレーション後の重み付け平均応答時間が“４．１ｍｓ”であるので、第１の割り当てパターンの候補及び第２の割り当てパターンの候補が共にマイグレーション前よりも重み付け平均応答時間が短くなる。従って、処理４１８０では、第１の割り当てパターンの候補及び第２の割り当てパターンの候補が共に抽出される。
【０１１９】
処理４１８０により抽出された割り当てパターンの候補から、マイグレーション後の割り当てパターンを選択する処理４１９０が、選択部３１４０によって実行される。処理４１９０では、ライアントに対してサービス体感がより向上するように、処理４１８０により抽出された割り当てパターンの候補のうち、重み付け平均応答時間がより短い割り当てパターンの候補を、マイグレーション後の割り当てパターンとして選択する処理が実行される。例えば上述した例であると、重み付け平均応答時間が“４．６ｍｓ”である第１の割り当てパターンの候補と、重み付け平均応答時間が“４．１ｍｓ”である第２の割り当てパターンの候補とが処理４１８０により抽出されたので、処理４１９０によって、重み付け平均応答時間がより短い第２の割り当てパターンの候補がマイグレーション後の割り当てパターンとして選択される。
【０１２０】
処理４１９０によって選択された割り当てパターンに従ったマイグレーションを命令する処理４２００が、命令部３１７０によって実行される。処理４２００によって、制御コンピュータ６００からマイグレーションに関連するデータセンタに対して、処理４１９０によって選択された割り当てパターンに従ってマイグレーションさせるための命令が送信される。例えば上述した例であると、制御コンピュータ６００からマイグレーションに関連するデータセンタ１００、３００及び４００に対して、第２の割り当てパターンに従ってマイグレーションを実行するよう命令が送信される。その後、図１０に示された処理が終了する。
【０１２１】
上述した実施例によれば、複数のデータセンタに仮想マシン及び記憶装置を割当てる場合に、記憶装置へのアクセス頻度に応じた応答時間が短くなるデータセンタの組合せを選ぶ事で、ユーザに処理結果が返されるまでの応答遅延を小さくできる。また、上述した実施例では複数のデータセンタを例としたが、複数のデータセンタに代えて、中継装置によって互いに接続された複数のサーバや、一つのデータセンタ内で中継装置によって互いに接続された複数のサーバに対して想マシン及び記憶装置を割当てる場合に適用してもよい。
【０１２２】
以上の実施形態に関し、さらに以下の付記を開示する。
（付記１）コンピュータが、仮想マシン及び前記仮想マシンにより処理されるデータが格納された記憶装置を、中継装置により互いに接続された複数の割り当て先に割り当てる場合に、前記仮想マシンによる前記記憶装置へのアクセス頻度に応じた応答時間が前記仮想マシン及び前記記憶装置を前記異なる割り当て先に割り当てる前よりも短くなるように割り当て先の組み合わせを選択することを特徴とする情報処理方法。
（付記２）前記コンピュータは、前記中継装置を含むネットワークでの伝搬時間に基づいて、前記アクセス頻度に応じた前記応答時間を算出することを特徴とする付記１に記載の情報処理方法。
（付記３）前記コンピュータは、前記中継装置の転送処理時間に基づいて、前記アクセス頻度に応じた前記応答時間を算出することを特徴とする付記１又は２に記載の情報処理方法。
（付記４）前記コンピュータは、前記中継装置により分けられた複数の通信経路のうち、帯域の使用率が最大となる通信経路の帯域に基づいて、前記転送処理時間を算出することを特徴とする付記３に記載の情報処理方法。
（付記５）前記コンピュータは、前記仮想マシン及び前記記憶装置の少なくとも一方が複数である場合に、前記アクセス頻度が最大となる仮想マシン及び記憶装置の組み合わせを前記複数の割り当て先に割り当てずに同じ割り当て先に割り当てることを特徴とする付記１〜４の何れか１つに記載の情報処理方法。
（付記６）前記コンピュータは、
前記仮想マシン及び前記記憶装置の少なくとも一方が複数であると、前記割り当て先の組み合わせを選択する場合に、候補となる複数の組み合わせを選択し、前記候補となる複数の組み合わせ毎の応答時間の各々に対して、前記仮想マシンに要求される処理の要求頻度に応じた重み付け演算をし、重み付け演算された複数の応答時間に基づいて、前記候補となる複数の組み合わせから前記割り当て先の組み合わせを選択することを特徴とする付記１〜５の何れか１つに記載の情報処理方法。
（付記７）前記コンピュータは、前記重み付け演算された複数の応答時間毎に平均応答時間を算出し、算出された複数の平均応答時間のうちで最小の平均応答時間となる組み合わせの候補を前記割り当て先の組み合わせとして選択することを特徴とする付記６に記載の情報処理方法。
（付記８）前記仮想マシン及び前記記憶装置には、所定のリクエスト元を識別するための識別情報が関連付けられていることを特徴とする付記１〜７の何れか１つに記載の情報処理方法。
（付記９）前記割り当て先がデータセンタであることを特徴とする付記１〜８の何れか１つに記載の情報処理方法。
（付記１０）コンピュータが、第一のリクエスト元を識別するための識別情報が関連付けられた複数の仮想マシン、前記識別情報が関連付けられた複数の記憶装置、又はそれらの組み合わせを複数のデータセンタに分散して割り当てることを特徴とする情報処理方法。
（付記１１）仮想マシン及び前記仮想マシンにより処理されるデータが格納された記憶装置を、中継装置により互いに接続された複数の割り当て先に割り当てる場合に、前記仮想マシンによる前記記憶装置へのアクセス頻度に応じた応答時間が前記仮想マシン及び前記記憶装置を前記異なる割り当て先に割り当てる前よりも短くなるように割り当て先の組み合わせを選択するコンピュータを有することを特徴とすることを特徴とする情報処理システム。
（付記１２）前記コンピュータは、前記中継装置を含むネットワークでの伝搬時間に基づいて、前記アクセス頻度に応じた前記応答時間を算出することを特徴とする付記１１に記載の情報処理システム。
（付記１３）前記コンピュータは、前記中継装置の転送処理時間に基づいて、前記アクセス頻度に応じた前記応答時間を算出することを特徴とする付記１１又は１２に記載の情報処理システム。
（付記１４）前記コンピュータは、前記中継装置により分けられた複数の通信経路のうち、帯域の使用率が最大となる通信経路の帯域に基づいて、前記転送処理時間を算出する
ことを特徴とする付記１３に記載の情報処理システム。
（付記１５）前記コンピュータは、前記仮想マシン及び前記記憶装置の少なくとも一方が複数である場合に、前記アクセス頻度が最大となる仮想マシン及び記憶装置の組み合わせを前記複数の割り当て先に割り当てずに同じ割り当て先に割り当てることを特徴とする付記１１〜１４の何れか１つに記載の情報処理システム。
（付記１６）前記コンピュータは、前記仮想マシン及び前記記憶装置の少なくとも一方が複数であると、前記割り当て先の組み合わせを選択する場合に、候補となる複数の組み合わせを選択し、前記候補となる複数の組み合わせ毎の応答時間の各々に対して、前記仮想マシンに要求される処理の要求頻度に応じた重み付け演算をし、重み付け演算された複数の応答時間に基づいて、前記候補となる複数の組み合わせから前記割り当て先の組み合わせを選択することを特徴とする付記１１〜１５の何れか１つに記載の情報処理システム。
（付記１７）前記コンピュータは、前記重み付け演算された複数の応答時間毎に平均応答時間を算出し、算出された複数の平均応答時間のうちで最小の平均応答時間となる組み合わせの候補を前記割り当て先の組み合わせとして選択することを特徴とする付記１６に記載の情報処理システム。
（付記１８）前記仮想マシン及び前記記憶装置には、所定のリクエスト元を識別するための識別情報が関連付けられていることを特徴とする付記１１〜１７の何れか１つに記載の情報処理システム。
（付記１９）仮想マシン及び前記仮想マシンにより処理されるデータが格納された記憶装置を、中継装置により互いに接続された複数の割り当て先に割り当てる場合に、前記仮想マシンによる前記記憶装置へのアクセス頻度に応じた応答時間が前記仮想マシン及び前記記憶装置を前記異なる割り当て先に割り当てる前よりも短くなるように割り当て先の組み合わせを選択する処理部を有することを特徴とする情報処理装置。
（付記２０）コンピュータに、仮想マシン及び前記仮想マシンにより処理されるデータが格納された記憶装置を、中継装置により互いに接続された複数の割り当て先に割り当てさせる場合に、前記仮想マシンによる前記記憶装置へのアクセス頻度に応じた応答時間が前記仮想マシン及び前記記憶装置を前記異なる割り当て先に割り当てる前よりも短くなるように割り当て先の組み合わせを選択させることを特徴とするプログラム。
【符号の説明】
【０１２３】
１００、２００、３００、４００  データセンタ
１０１、１０２、１０３、２０１、２０２、３０１、３０２、４０１  仮想マシン
１１１、１１２、２１１、３１１、４１１、４１２  ディスク
５００、５１０、５２０、５３０  中継装置
６００  制御コンピュータ
７１０、７２０、７３０、７４０、７５０、７６０、７７０、７８０  通信経路
８００  クライアント
１０００、３０００  ＣＰＵ
１０１０、３０１０  メモリコントローラ
１０２０、３０２０  メモリ
１０３０、３０３０  メモリバス
１０４０、３０４０  ＩＯバスコントローラ
１０５０、３０５０  ＮＩＣ
１０６０、３０６０  ＩＯバス
１０７０、３０７０  記憶装置
１１００  カウンタ
１１１０  算出部
３１００  特定部
３１１０  取得部
３１２０  算出部
３１３０  選定部
３１４０  選択部
３１５０  判定部
３１６０  抽出部
３１７０  命令部
【図１】
2014102740.tif 000003
【図２】
2014102740.tif 000004
【図３】
2014102740.tif 000005
【図４】
2014102740.tif 000006
【図５】
2014102740.tif 000007
【図６】
2014102740.tif 000008
【図７】
2014102740.tif 000009
【図８】
2014102740.tif 000010
【図９】
2014102740.tif 000011
【図１０】
2014102740.tif 000012
【図１１】
2014102740.tif 000013
【図１２】
2014102740.tif 000014
【図１３】
2014102740.tif 000015
【図１４】
2014102740.tif 000016
【図１５】
2014102740.tif 000017
【図１６】
2014102740.tif 000018
【図１７】
2014102740.tif 000019
【図１８】
2014102740.tif 000020
【図１９】
2014102740.tif 000021