(57)【特許請求の範囲】
【請求項１】
ライブマイグレーションの対象である仮想マシンの識別子と当該仮想マシンを使用するユーザの識別子と当該仮想マシンのライブマイグレーション先候補である仮想マシンの識別子の情報と、当該仮想マシンに接続されるネットワークのネットワークトポロジと通信帯域と遅延の情報と、所定の通信品質を優先して保障されるユーザである優先ユーザの識別子とＩＰアドレスと当該優先ユーザのユーザ端末が接続する前記ネットワーク内の構成要素の情報と、を取得する情報取得部と、
前記情報取得部が取得した情報を、前記ネットワークの所定の性能を達成する目的関数および制約条件に適用し、混合整数線形計画法を用いて前記優先ユーザに対する前記所定の通信品質を維持する最適解となる、ライブマイグレーションによる前記仮想マシンの移行先と、ライブマイグレーション後の前記優先ユーザと前記優先ユーザ以外のユーザについて異なる前記ネットワーク内の情報転送経路とを決定する条件決定部と、
前記条件決定部の決定に基づいて、前記ライブマイグレーションの実行および前記ネットワーク内の情報転送経路の更新を制御する実行制御部と、
を備えることを特徴とする統合制御装置。 
【請求項２】
前記ネットワーク内の情報転送経路を制御するため、前記ネットワーク内に配置される複数の情報転送装置が保持するテーブルを更新するための命令を送信する命令送信部をさらに備え、
前記命令送信部は、前記条件決定部が決定する情報転送経路を設定するための設定情報を前記複数の情報転送装置に送信することで、前記複数の情報転送装置のテーブルを更新するよう指示する命令を送信することを特徴とする請求項１に記載の統合制御装置。 
【請求項３】
統合制御装置で実行される統合制御方法であって、
ライブマイグレーションの対象である仮想マシンの識別子と当該仮想マシンを使用するユーザの識別子と当該仮想マシンのライブマイグレーション先候補である仮想マシンの識別子の情報と、当該仮想マシンに接続されるネットワークのネットワークトポロジと通信帯域と遅延の情報と、所定の通信品質を優先して保障されるユーザである優先ユーザの識別子とＩＰアドレスと当該優先ユーザのユーザ端末が接続する前記ネットワーク内の構成要素の情報と、を取得する情報取得工程と、
前記情報取得工程において取得した情報を、前記ネットワークの所定の性能を達成する目的関数および制約条件に適用し、混合整数線形計画法を用いて前記優先ユーザに対する前記所定の通信品質を維持する最適解となる、ライブマイグレーションによる前記仮想マシンの移行先と、ライブマイグレーション後の前記優先ユーザと前記優先ユーザ以外のユーザについて異なる前記ネットワーク内の情報転送経路とを決定する条件決定工程と、
前記条件決定工程の決定に基づいて、前記ライブマイグレーションの実行および前記ネットワーク内の情報転送経路の更新を制御する実行制御工程と、
を含むことを特徴とする統合制御方法。 
【請求項４】
前記ネットワーク内の情報転送経路を制御するため、前記ネットワーク内に配置される複数の情報転送装置が保持するテーブルを更新するための命令を送信する命令送信工程をさらに備え、
前記命令送信工程は、前記条件決定工程において決定される情報転送経路を設定するための設定情報を前記複数の情報転送装置に送信することで、前記複数の情報転送装置のテーブルを更新するよう指示する命令を送信することを特徴とする請求項３に記載の統合制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライブマイグレーションとトラヒックエンジニアリングとを統合的に制御する統合制御装置および統合制御方法に関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングを利用したリソースの提供が盛んに行われている。クラウドコンピューティングを利用したリソースの提供においては、クラウド事業者がリソースを管理し、必要に応じてユーザにリソースを割り当てる。
【０００３】
クラウド事業者が、仮想技術を用いてリソースを提供する場合には、リソースの利用効率を高めリソース構成を柔軟に調整するため、ライブマイグレーションが利用される。ライブマイグレーションは、使用中の仮想マシンの動作を停止させることなく、他の仮想マシンに処理内容を移行させ、継ぎ目無くサービスを提供することを可能にする技術である。ライブマイグレーションの効率をさらに向上させ、多様な環境で効率的なライブマイグレーションを実現するため、様々な提案がされている。たとえば、広域ネットワーク（ＷＡＮ）を介したライブマイグレーションにおいて、メモリ内容だけでなく、ファイルシステムやネットワーク接続も併せて移行させるための技術が提案されている。
【０００４】
また、情報を転送するネットワークの利用効率を高めるために、トラヒックエンジニアリングが行われている。トラヒックエンジニアリングは、ネットワークリソースの使用率とネットワーク性能を最適化することを目的とする。たとえば、情報を迅速に転送するためには最短経路に沿って転送することが好ましい。しかし、すべての情報を最短経路に沿って転送させた場合、輻輳が生じることがある。トラヒックエンジニアリングは、このような不都合を防止し、情報の転送経路を最適化する。たとえば、ＯＳＰＦ（Open  Shortest  Path  First）の重み付けの最適化によるトラヒックエンジニアリングの手法が提案されている。  
【０００５】
そして、クラウドコンピューティングの効率をさらに高めるために、ライブマイグレーションとトラヒックエンジニアリングを統合的に制御する統合制御の手法も提案されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】R.  Bradford他  “Live  Wide-Area  Migration  of  Virtual  Machines  Including  Local  Persistent  State,”  in  Proceedings  of  the  3rd  International  Conference  on  Virtual  Execution  Environments  (VEE  ’07),  pp.  169-179,  June  2007.
【非特許文献２】Bernard  Fortz他  “Internet  Traffic  Engineering  by  Optimizing  OSPF  Weights,”  in  Proceedings  of  the  INFOCOM  2000,  19th  Annual  Joint  Conference  of  the  IEEE  Computer  and  Communications  Societies,  pp.  519-528,  March  2000.
【非特許文献３】Hirofumi  Ichihara他  “On  the  Integrated  Control  of  Virtual  Machine  Live  Migration  and  Traffic  Engineering  for  Cloud  Computing,”  in  Proceedings of IEEE  Global  Communications  Conference  (GLOBECOM),  2012,  Dec.  2012.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の統合制御においては、データセンタ間を接続するコアネットワークがクラウド等のサービスのトラヒックによって輻輳状態にあるとき、ネットワーク全体としてトラヒックを均一化することでネットワーク全体の通信品質を改善する。このため、ユーザごとに見た場合には、トラヒックエンジニアリングによる制御前よりも通信品質が悪化してしまうことがある。また、個別のユーザに対して通信品質を保障するような制御を実現できない。
【０００８】
開示の実施形態は、上記に鑑みてなされたものであって、クラウドコンピューティングにおいてライブマイグレーションとトラヒックエンジニアリングを統合的に制御するに際して、特定ユーザに対する通信品質の保障を可能とする統合制御装置および統合制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、ライブマイグレーションの対象である仮想マシンの情報と、当該仮想マシンに接続されるネットワークの情報と、所定の通信品質を優先して保障されるユーザである優先ユーザの情報と、を取得し、取得した仮想マシンの情報、ネットワークの情報および優先ユーザの情報と、所定の制御目標とに基づき、混合整数線形計画法を用いて優先ユーザに対する所定の通信品質を維持する最適解となる、ライブマイグレーションによる仮想マシンの移行先と、ライブマイグレーション後のネットワーク内の情報転送経路と、を決定し、決定に基づいて、ライブマイグレーションの実行およびネットワーク内の情報転送経路の更新を制御することを特徴とする。
【発明の効果】
【００１０】
開示する統合制御装置および統合制御方法は、クラウドコンピューティングにおいてライブマイグレーションとトラヒックエンジニアリングを統合的に制御するに際して、特定ユーザに対する通信品質の保障を可能とするという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、第１の実施形態に係る統合制御装置の概要を示す図である。
【図２−１】図２−１は、第１の実施形態に係る統合制御装置が記憶する制御情報の一例を示す図である。
【図２−２】図２−２は、第１の実施形態に係る統合制御装置が記憶する制御対象の情報の一例を示す図である。
【図３】図３は、第１の実施形態に係る統合制御装置が、ライブマイグレーション制御装置から受信する情報の一例を示す図である。
【図４−１】図４−１は、第１の実施形態に係る統合制御装置が、トラヒックエンジニアリング制御装置から受信する情報の一例を示す図である。
【図４−２】図４−２は、ネットワークトポロジについて説明するための図である。
【図５】図５は、第１の実施形態に係る統合制御装置が、優先ユーザ制御装置から受信する情報の一例を示す図である。
【図６】図６は、第１の実施形態に係る統合制御装置による処理の流れの一例を示す図である。
【図７】図７は、第１の実施形態に係る統合制御装置、ライブマイグレーション制御装置、トラヒックエンジニアリング制御装置および優先ユーザ制御装置間での処理シーケンスの一例を示す図である。
【図８】図８は、第２の実施形態に係る統合制御装置の構成の一例を示す図である。
【図９】図９は、第２の実施形態に係る統合制御装置による実行制御処理の流れの一例を示す図である。
【図１０】図１０は、第２の実施形態に係る統合制御装置、ライブマイグレーション制御装置、トラヒックエンジニアリング制御装置間での実行制御の処理シーケンスの一例を示す図である。
【図１１】図１１は、第２の実施形態に係るネットワーク内の情報転送経路を説明するための図である。
【図１２−１】図１２−１は、第２の実施形態に係るルータが保持するラベルテーブルの一例を示す図である。
【図１２−２】図１２−２は、第２の実施形態に係るルータが保持するラベルテーブルの他の例を示す図である。
【図１３】図１３は、第２の実施形態に係るルータの構成の一例を示す図である。
【図１４】図１４は、第２の実施形態に係る予約パケットの構成の一例を示す図である。
【図１５】図１５は、第３の実施形態に係る統合制御装置の構成の一例を示す図である。
【図１６】図１６は、第３の実施形態に係る統合制御装置における処理の流れの一例を示す図である。
【図１７】図１７は、統合制御装置による一例の処理を実行するプログラムである統合制御プログラムによる情報処理が、コンピュータを用いて具体的に実現されることを示す図である。
【発明を実施するための形態】
【００１２】
以下に、開示する統合制御装置および統合制御方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、各実施形態は適宜組み合わせることができる。
【００１３】
（第１の実施形態）
図１を参照し、第１の実施形態に係る統合制御装置の概要について説明する。図１は、第１の実施形態に係る統合制御装置の概要を示す図である。図１中、統合制御装置１００は、ライブマイグレーション制御装置２００、トラヒックエンジニアリング制御装置３００、優先ユーザ制御装置４００と接続される。統合制御装置１００は、ライブマイグレーション制御装置２００、トラヒックエンジニアリング制御装置３００、優先ユーザ制御装置４００各々から、ライブマイグレーションの対象となる仮想マシンの情報、トラヒックエンジニアリングの対象となるネットワークの情報、優先的に通信品質を保障する優先ユーザの情報を取得する。統合制御装置１００は、取得した情報に基づき、ライブマイグレーション、トラヒックエンジニアリングおよび優先制御を統合的に制御する。なおここで、優先制御とは、優先ユーザに対して通信品質を保障するための制御をいうものとする。
【００１４】
ライブマイグレーション制御装置２００は、統合制御装置１００およびリソース５００と接続される。図１中、リソース５００は、データセンタＤＣ１とデータセンタＤＣ２とを備える。データセンタＤＣ１内には、仮想マシン（Virtual  Machine）ＶＭ１，ＶＭ２が構築されている。また、データセンタＤＣ２内には、仮想マシンＶＭ３，ＶＭ４が構築されている。データセンタＤＣ１およびデータセンタＤＣ２は、ユーザに対して適切な資源を提供するため、適宜仮想的に構成が変更され、必要に応じて一つ又は複数の仮想マシンが構築される。なお、図１においては、便宜的に、リソース５００が二つのデータセンタを備え、各データセンタにおいて二つの仮想マシンが構築されているものとしたが、リソース５００が備えるデータセンタの数および各データセンタに構築される仮想マシンの数は、図示される数に限定されるものではない。また、ライブマイグレーションにおいては、各データセンタに適宜新しい仮想マシンが構築され、既存の仮想マシンが再構築されることがある。
【００１５】
ライブマイグレーション制御装置２００は、データセンタＤＣ１およびＤＣ２を制御する。具体的には、データセンタＤＣ１およびＤＣ２内の仮想マシンの処理状況や負荷状況を検出する。ライブマイグレーション制御装置２００は、特定の仮想マシンに負荷が集中している等、処理効率の低下を検出すると、適切に負荷が分散され処理効率が向上するように、ライブマイグレーションを実行する。たとえば、処理能力の低い仮想マシンＶＭ１に負荷が集中し、他方、処理能力の高い仮想マシンＶＭ４が使用されておらず、停止した状態であるとする。この場合、ライブマイグレーションにより、仮想マシンＶＭ１の処理内容、具体的にはメモリ内容を仮想マシンＶＭ４に移行させて処理を引き継がせる。また、ライブマイグレーション制御装置２００は、仮想マシンＶＭ１に負荷が集中している一方、他のデータセンタＤＣ２に対する負荷が低い場合、データセンタＤＣ２内に新たに仮想マシンを構築して、仮想マシンＶＭ１の処理内容を新しく構築した仮想マシンに引き継がせることもできる。ライブマイグレーション制御装置２００は、このようにして、負荷を分散し、処理効率を向上させる。
【００１６】
また、ライブマイグレーション制御装置２００は、ライブマイグレーションを実行すると決定した場合、統合制御装置１００にライブマイグレーション（ＬＭ）通知を送信する。また、ライブマイグレーション制御装置２００は、統合制御装置１００からの要求に応じて、ライブマイグレーションの対象となる仮想マシンの情報を統合制御装置１００に送信する。
【００１７】
また、ライブマイグレーション制御装置２００は、統合制御装置１００からの要求に応じて、ライブマイグレーションの対象となる仮想マシンの情報を送信する際、優先ユーザの制御に関連する情報を併せて送信する。たとえば、ライブマイグレーション制御装置２００は、ライブマイグレーションの対象となる仮想マシンを利用している優先ユーザのユーザＩＤや、当該ユーザが仮想マシンにアクセスする際のＩＰアドレス等の情報を送信する。
【００１８】
トラヒックエンジニアリング制御装置３００は、統合制御装置１００およびネットワーク６００と接続される。トラヒックエンジニアリング制御装置３００は、ネットワーク６００内の情報転送経路やルータの使用率を検出し、検出結果に応じて、情報転送経路を更新する。すなわち、トラヒックエンジニアリング制御装置３００は、ネットワーク６００におけるトラヒックエンジニアリングを実行する。また、トラヒックエンジニアリング制御装置３００は、統合制御装置１００からの要求に応じて、ネットワーク６００の情報を統合制御装置１００に送信する。
【００１９】
優先ユーザ制御装置４００は、統合制御装置１００、リソース５００およびネットワーク６００と接続される。優先ユーザ制御装置４００は、優先的に通信品質を保障されるユーザである優先ユーザに関する情報を管理する。たとえば、優先ユーザ制御装置４００は、優先ユーザを識別する情報と当該優先ユーザに対して保障すべき通信品質保障水準とを対応付けて記憶する。優先ユーザ制御装置４００は、新しい優先ユーザの登録があるごとに統合制御装置１００から優先ユーザに関する情報を受信して記憶するように構成してもよい。また、優先ユーザ制御装置４００は、ネットワークを介して優先ユーザに関する情報たとえば優先ユーザを示す識別子が付された情報を検出して、適宜優先ユーザに関する情報を記憶するように構成してもよい。
【００２０】
リソース５００は、ライブマイグレーション制御装置２００およびネットワーク６００と接続される。リソース５００は、ユーザ端末８００からの要求に応じてユーザに割り当てられる。そして、リソース５００は、ネットワーク６００および外部ネットワーク（ＮＷ）７００を介して、ユーザに対するサービスに利用される。ユーザに対して割り当てられるリソース５００内の資源、たとえば、仮想マシンは、利用状況や負荷状況に応じて、適宜ライブマイグレーション等により変更される。
【００２１】
ネットワーク６００は、トラヒックエンジニアリング制御装置３００と、リソース５００と、外部ネットワーク７００と接続される。外部ネットワーク７００はさらに、ユーザ端末８００と接続される。ネットワーク６００は、ユーザ端末８００から送信される要求や情報を、外部ネットワーク７００を介して受信し、受信した要求や情報をリソース５００に転送する。また、リソース５００から送信される情報を、外部ネットワーク７００に転送する。さらに、リソース５００内の仮想マシン等から送信される情報を他の仮想マシン等に転送する。
【００２２】
ネットワーク６００内には、複数のルータが配置される。図１の例では、５つのルータＲ１，Ｒ２，Ｒ３，Ｒ４，Ｒ５を示す。ただし、ネットワーク６００を構成するルータの数は図示される数に限られるものではない。ルータは、予め定められた情報転送経路に沿って、情報を転送する。また、各ルータは、情報転送経路に関する情報を保持する。そして、各ルータは、トラヒックエンジニアリング制御装置３００からの命令に応じて、適宜保持する情報転送経路の情報を更新する。なお、ネットワーク６００の種類は特に限定されず、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）等であってよい。
【００２３】
外部ネットワーク７００は、ネットワーク６００およびユーザ端末８００と接続される。外部ネットワーク７００は、ネットワーク６００を介してリソース５００とユーザ端末８００との間の情報を転送する。なお、外部ネットワーク７００の種類は特に限定されず、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）等であってよい。
【００２４】
ユーザ端末８００は、外部ネットワーク７００と接続される。ユーザ端末８００のユーザは、ネットワーク６００および外部ネットワーク７００を介して、リソース５００との間で情報をやり取りし、リソース５００により提供されるサービスを利用する。
【００２５】
［第１の実施形態に係る統合制御装置１００の構成］
次に、統合制御装置１００の構成について図１を参照して説明する。図１中、統合制御装置１００は、通信部１０１と、記憶部１１０と、制御部１２０とを備える。通信部１０１は、統合制御装置１００と、ライブマイグレーション制御装置２００、トラヒックエンジニアリング制御装置３００および優先ユーザ制御装置４００との間での情報の通信を実行する。記憶部１１０は、統合制御装置１００内での処理に使用する情報および処理の結果生成される情報等を記憶する。制御部１２０は、統合制御装置１００における優先ユーザに対する通信品質保障のための優先制御を加味したライブマイグレーションとトラヒックエンジニアリングとの統合制御処理を制御する。
【００２６】
［記憶部１１０に格納する情報］
記憶部１１０は、制御情報記憶部１１１と制御対象記憶部１１２とを備える。制御情報記憶部１１１は、統合制御装置１００が優先制御を加味してライブマイグレーションおよびトラヒックエンジニアリングの制御内容を決定する際に用いる制御情報を記憶する。制御情報は、たとえば、制御目標および当該制御目標を達成するための目的関数、制約条件等を含む。制御目標とは、たとえば、ユーザとデータセンタ間での遅延を最小化すること、ネットワーク資源の利用効率を最大化すること、等である。制御目標に対応付けて、当該制御目標を達成するために最も適したライブマイグレーションの移行先およびトラヒックエンジニアリングによる情報転送経路を最適解として算出するための目的関数、制約条件等を格納する。なお、目的関数や制約条件は、優先ユーザとそれ以外のユーザとで必要に応じて異なる情報転送経路を使用して優先ユーザに対して通信品質を保障するように設定する。
【００２７】
なお、第１の実施形態では、制御目標、目的関数および制約条件等の制御情報を予め制御情報記憶部１１１に格納するものとして説明するが、制御情報は、制御の目的に応じて、統合制御装置１００を操作するオペレータが適宜設定してもよい。また、ライブマイグレーションが実行される時間帯に合わせて、制御情報記憶部１１１から制御目標が自動的に選択され、それに応じた目的関数および制約条件に基づいて、移行先や情報転送経路が決定されるものとしてもよい。さらに、仮想マシンを利用するユーザごとに、制御目標を設定するように構成してもよい。すなわち、優先ユーザに対して保障すべき通信品質のパラメータが各優先ユーザごとに相違する場合は、優先ユーザごとに制御目標を設定してもよく、さらに優先ユーザ以外の通常のユーザとの間で異なる制御目標を設定して差別化を図ってもよい。また、ここでは、目的関数および制約条件は、混合整数線形計画法に基づいて設定するものとするが、利用する方法は、混合整数線形計画法に限られず、たとえば、非線形計画法を利用してもよい。また、利用する計画法の種類に応じて、制御情報記憶部１１１に格納される情報は適宜変更されてよい。
【００２８】
図２−１を参照して、制御情報記憶部１１１に格納される制御情報の一例を説明する。図２−１は、第１の実施形態に係る統合制御装置１００が記憶する制御情報の一例を示す図である。図２−１に示す例では、目標ＩＤに対応付けて、制御目標、目的関数および制約条件が格納されている。たとえば、目標ＩＤ「０１」に対応付けて、制御目標である「ユーザ／データセンタ（ＤＣ）間の遅延の最小化」が格納されている。そして、制御目標を達成する最適解を導くための目的関数として「ｍｉｎ：ｃＴｘ」、制約条件として「Ａｘ＝ｂ，ｘ≧０」等が格納されている。また、この時点で選択されている制御目標を示すフラグが記憶されている。図２−１の例では、目標ＩＤ「０１」の制御情報が選択されていることが、フラグ「１」により示されている。
【００２９】
次に、図２−２を参照して、制御対象記憶部１１２に格納される制御対象の情報の一例を説明する。図２−２は、第１の実施形態に係る統合制御装置１００が記憶する制御対象の情報の一例を示す図である。図２−２に示すように、制御対象記憶部１１２には、統合制御の対象であるリソース５００およびネットワーク６００に関する情報が格納される。たとえば、データセンタＤＣ１について、当該データセンタを一意に識別する識別子（ＩＤ：Identifier）である対象ＩＤ「ＤＣ００１」と対応付けて、当該データセンタを管理する管理者ＩＤ「Ｍ００１」や、当該データセンタの場所「東京」などが記憶される。また、データセンタＤＣ１内の仮想マシンそれぞれの性能が記憶される。たとえば、リソースＩＤ「ＶＭ００１」の仮想マシンについて、メモリ容量「１６ＧＢ」、ＣＰＵコアクロック「３ＧＨｚ」等が記憶される。
【００３０】
また、ネットワーク６００に関する情報として、ネットワーク６００を構成するルータの情報が記憶される。図２−２の例では、複数のネットワークについての情報を示す。図２−２では、ネットワークを一意に識別するネットワークＩＤに対応付けて、当該ネットワークを構成するルータのＩＤが格納される。たとえば、ネットワークＩＤ「ＮＷ００１」に対応付けて、複数のルータのルータＩＤ「Ｒ００１」「Ｒ００２」等が格納される。また、各ルータの性能に関する情報が格納される。たとえば、ルータＩＤ「Ｒ００１」のルータについて、帯域（物理帯域保証通信速度、最大通信速度）「２５０ｋｂｐｓ，１Ｍｂｐｓ」や、遅延（最大遅延時間、平均遅延時間）「１０ｓ，５ｓ」が記憶される。なお、図２−２に示す制御対象情報は、統合制御の開始時に、ライブマイグレーション制御装置２００およびトラヒックエンジニアリング制御装置３００の各々から適宜送信され、統合制御装置１００に格納されるものとしてもよい。また、仮想マシンの構成が変更されたり、ネットワークの構成が変更されたりした場合に、自動的にライブマイグレーション制御装置２００およびトラヒックエンジニアリング制御装置３００から情報が送信され、制御対象記憶部１１２に記憶されるものとしてもよい。また、統合制御装置１００からの要求に応じて、ライブマイグレーション制御装置２００およびトラヒックエンジニアリング制御装置３００から送信され、制御対象記憶部１１２に記憶されるものとしてもよい。
【００３１】
［制御部１２０の構成］
図１を参照し、制御部１２０の構成について説明する。制御部１２０は、情報取得部１２１と、条件決定部１２２と、実行制御部１２３と、を備える。情報取得部１２１は、通信部１０１を介して、ライブマイグレーション制御装置２００、トラヒックエンジニアリング制御装置３００および優先ユーザ制御装置４００の各々から、ライブマイグレーションの対象となる仮想マシンの情報、トラヒックエンジニアリングの対象となるネットワーク６００の情報および優先ユーザに関する情報を取得する。より具体的には、情報取得部１２１は、ライブマイグレーションの対象となる仮想マシンに対するトラヒック量や、ライブマイグレーションによる当該仮想マシンの移行先候補、移行先候補のデータセンタの位置等を、ライブマイグレーション制御装置２００から受信する。また、情報取得部１２１は、ライブマイグレーションの対象である仮想マシンに接続され、トラヒックエンジニアリングの対象となるネットワーク内の構成情報であるネットワークトポロジ、当該ネットワークの通信帯域や伝送遅延等を、トラヒックエンジニアリング制御装置３００から受信する。また、情報取得部１２１は、優先ユーザのユーザＩＤ、当該ユーザが接続するルータのルータＩＤ、当該ユーザに対して保障する通信品質等の情報を、優先ユーザ制御装置４００から受信する。
【００３２】
図３、図４−１、図４−２および図５を参照し、ライブマイグレーション制御装置２００、トラヒックエンジニアリング制御装置３００および優先ユーザ制御装置４００から、統合制御装置１００に送信される情報について説明する。図３は、第１の実施形態に係る統合制御装置１００が、ライブマイグレーション制御装置２００から受信する情報の一例を示す図である。図４−１は、第１の実施形態に係る統合制御装置１００が、トラヒックエンジニアリング制御装置３００から受信する情報の一例を示す図である。図４−２は、図４−１に示すネットワークトポロジについて説明するための図である。図５は、第１の実施形態に係る統合制御装置１００が、優先ユーザ制御装置４００から受信する情報の一例を示す図である。
【００３３】
図３の例では、ライブマイグレーション制御装置２００は、ライブマイグレーションの対象となる仮想マシンのＩＤと、当該仮想マシンを使用するユーザのＩＤと、当該仮想マシンに対するトラヒック量と、を対応付けて送信する。また、ライブマイグレーション制御装置２００は、当該仮想マシンのＩＤに対応付けて、当該仮想マシンの移行先候補となる仮想マシンのＩＤと、当該仮想マシンのＩＰアドレスと、を送信する。たとえば、図３に示す情報では、ライブマイグレーションの対象となる仮想マシンのＩＤ「ＶＭ００１」と、当該仮想マシンを利用するユーザのＩＤ「Ｕ００１」と、が対応付けられている。さらに、当該仮想マシンのＩＤ「ＶＭ００１」に、当該仮想マシンに対するトラヒック量「３０Ｍｂｐｓ」と、当該仮想マシンの移行先候補である仮想マシンのＩＤ「ＶＭ０１０」と「ＶＭ０２０」とが対応付けられている。そして、当該仮想マシンのＩＰアドレスである「１１１．２２．２２．１１」が対応付けられている。なお、ここで、仮想マシンの情報だけでなく、当該仮想マシンを利用するユーザのＩＤや、ＬＭ先の仮想マシンのＩＰアドレスを送信するのは、優先ユーザに対する通信品質保障を加味して統合制御を実現するためである。
【００３４】
なお、図３の例では、仮想マシンＩＤによって当該仮想マシンが配置されるデータセンタも識別できるものとするが、仮想マシンＩＤとは別に、当該仮想マシンが構築されているデータセンタのＩＤも対応付けて情報を構成してもよい。また、図３では、ライブマイグレーションによる仮想マシンの移行先は、既に構築されているが停止している仮想マシンとしたが、ライブマイグレーション制御装置２００は、移行先候補として、仮想マシンのＩＤではなく、新たに仮想マシンを構築できるデータセンタのＩＤを送信してもよい。この場合は、ライブマイグレーション時に、移行先として決定されたデータセンタ内に仮想マシンが新たに構築される。
【００３５】
他方、トラヒックエンジニアリング制御装置３００から送信される情報は、たとえば、図４−１に示すように、ネットワークＩＤと、当該ネットワーク内のネットワークトポロジと、通信帯域、遅延等とを対応づけたものである。図４−１の例では、ネットワークＩＤ「ＮＷ００１」で識別されるネットワークに、ネットワークトポロジとして、「Ｒ１−Ｒ２−Ｒ３−Ｒ４」、「Ｒ１−Ｒ５−Ｒ６−Ｒ４」、「Ｒ１−Ｒ７−Ｒ８−Ｒ４」が対応付けられている。ネットワークトポロジは、ネットワーク内の構成要素間の接続関係や依存関係を示す情報である。図４−１に示すネットワークトポロジは、図４−２に示すように、ルータＲ１〜Ｒ８が接続されていることを示す。また、図４−１の例では、ネットワークＩＤ「ＮＷ００１」に、通信帯域「１Ｇｂｐｓ」が対応付けられている。さらに、ネットワークＩＤ「ＮＷ００１」に各ルータでの遅延「Ｒ１：０．１ｓ」等および各ルータ間での遅延「Ｒ１−Ｒ２：０．５ｓ」等が対応付けられている。
【００３６】
優先ユーザ制御装置４００から送信される情報は、たとえば、図５に示すように、ユーザを一意に示すユーザＩＤと、当該ユーザすなわち当該ユーザのユーザ端末が接続するルータを一意に示すルータＩＤとを対応付けたものである。さらに、ユーザＩＤに、当該ユーザのＩＰアドレスや、当該ユーザに対して保障する通信品質保障水準が対応付けられて送信される。通信品質保障水準とは、たとえば、当該ユーザに対して保障するスループットや遅延である。通信品質保障水準は予め契約時等に設定し、優先ユーザ制御装置４００に記憶される。
【００３７】
たとえば、図５の例では、ユーザＩＤ「Ｕ００１」に、接続するルータＩＤ「Ｒ００１」、ユーザＩＰアドレス「１０９．１２．１２３．２３」が対応付けられている。また、ユーザＩＤ「Ｕ００１」に通信品質保障水準（スループット、遅延）「２Ｍｂｐｓ，１ｓ」が対応付けられている。
【００３８】
条件決定部１２２は、情報取得部１２１がライブマイグレーション制御装置２００、トラヒックエンジニアリング制御装置３００および優先ユーザ制御装置４００から取得した情報並びに制御情報記憶部１１１および制御対象記憶部１１２に記憶された情報に基づいて、ライブマイグレーションの対象となる仮想マシンの移行先およびライブマイグレーション後の情報転送経路を決定する。具体的には、条件決定部１２２は、混合整数線形計画法を利用して、移行先および情報転送経路を決定する。
【００３９】
すなわち、条件決定部１２２は、混合整数線形計画法を用いて、制約条件および目的関数に情報取得部１２１が取得した各情報を適用して、最適解を算出する。たとえば、条件決定部１２２は、ライブマイグレーションの対象となる仮想マシンの移行先候補の処理能力や、移行先候補のデータセンタの位置、ライブマイグレーションの対象となる仮想マシンに対するトラヒック量等に基づいて、制約条件および目的関数を用いて最適解を導出する。また、条件決定部１２２は、ネットワーク６００の通信帯域や遅延等に基づいて、最適解を導出する。さらに、条件決定部１２２は、優先ユーザに対して保障すべき通信速度や通信量に基づいて、最適解を導出する。そして、条件決定部１２２は、最適解に基づいて、移行先および情報転送経路を決定する。
【００４０】
実行制御部１２３は、条件決定部１２２が決定した内容に基づいて、優先制御を加味してライブマイグレーションおよびトラヒックエンジニアリングを実行するよう、ライブマイグレーション制御装置２００およびトラヒックエンジニアリング制御装置３００に命令を送信し、実行処理を制御する。
【００４１】
［第１の実施形態に係る統合制御装置の処理の流れ］
次に、図６を参照し、第１の実施形態に係る統合制御装置１００による処理の流れを説明する。図６は、第１の実施形態に係る統合制御装置１００による処理の流れの一例を示す図である。まず、統合制御装置１００は、ライブマイグレーションの対象となる仮想マシン、トラヒックエンジニアリングの対象となるネットワークおよび優先ユーザに関する情報を受信する（ステップＳ１０１）。次に、統合制御装置１００は、受信した情報に基づいて、混合整数線形計画法を用いて、最適解となる、ライブマイグレーションの移行先およびライブマイグレーション後の情報転送経路を決定する（ステップＳ１０２）。そして、統合制御装置１００は、決定した移行先へのライブマイグレーションを実行し、決定した情報転送経路へ、ネットワーク内の情報転送経路を変更するよう実行を制御する（ステップＳ１０３）。そして、処理を終了する。
【００４２】
［第１の実施形態に係る統合制御処理の流れ］
次に図７を参照し、第１の実施形態に係る統合制御装置１００、ライブマイグレーション制御装置２００、トラヒックエンジニアリング制御装置３００および優先ユーザ制御装置４００間での処理シーケンスの一例を説明する。図７は、第１の実施形態に係る統合制御装置１００、ライブマイグレーション制御装置２００、トラヒックエンジニアリング装置３００、優先ユーザ制御装置４００間での処理シーケンスの一例を示す図である。図７に示す例では、ライブマイグレーション制御装置２００からのライブマイグレーション（ＬＭ）通知を受信することによって、統合制御装置１００の統合制御処理が開始するものとして説明する。
【００４３】
ライブマイグレーション制御装置２００は、リソース５００の処理状況および負荷状況を検出し、たとえば、特定の仮想マシンにかかる負荷が所定の閾値を超えたと判定した場合に、ＬＭ通知を送信する（図７の（１））。
【００４４】
ライブマイグレーション制御装置２００からのＬＭ通知を受信した統合制御装置１００は、ライブマイグレーション制御装置２００、トラヒックエンジニアリング制御装置３００および優先ユーザ制御装置４００に、情報を送信するよう求める要求を送信する（図７の（２−１）、（２−２）、（２−３））。要求に応じて、ライブマイグレーション制御装置２００は、ライブマイグレーションの対象である仮想マシンの情報および当該仮想マシンを利用するユーザの情報（図３参照）を、統合制御装置１００に送信する（図７の（３−１））。また、トラヒックエンジニアリング制御装置３００も、トラヒックエンジニアリングの対象であるネットワークの情報（図４−１参照）を、統合制御装置１００に送信する（図７の（３−３））。さらに、優先ユーザ制御装置４００も、優先ユーザに関する情報（図５参照）を、統合制御装置１００に送信する（図７の（３−２））。情報を受信した統合制御装置１００は、各情報に基づいて混合整数線形計画法を用いて、最適解となるライブマイグレーションの移行先およびライブマイグレーション後の情報転送経路を決定する。そして、決定した内容に基づいてライブマイグレーションおよびトラヒックエンジニアリングを実行するよう、ライブマイグレーション制御装置２００およびトラヒックエンジニアリング制御装置３００に制御命令を送信する（図７の（４−１）、（４−２））。
【００４５】
なお、第１の実施形態では、ライブマイグレーション制御装置２００が、ライブマイグレーションの実行を決定し、統合制御装置１００に通知するものとした。しかし、統合制御装置１００による統合制御は、ライブマイグレーション制御装置２００からのＬＭ通知をトリガとして開始される場合に限られず、オペレータの制御命令の入力に応じて開始されてもよい。または、所定の期間ごとに統合制御装置１００が、ライブマイグレーション制御装置２００、トラヒックエンジニアリング制御装置３００および優先ユーザ制御装置４００に対して情報送信を要求する通知を発行し、受信した情報に基づいてライブマイグレーションの要否を判定した上で、統合制御を行うものとしてもよい。
【００４６】
また、ライブマイグレーションおよびトラヒックエンジニアリングの実行に係る判定は、統合制御装置１００のみが実行するように構成してもよい。つまり、ライブマイグレーション制御装置２００、トラヒックエンジニアリング制御装置３００および優先ユーザ制御装置４００は、ライブマイグレーションやトラヒックエンジニアリング、優先制御の実行に関する判定は行わないよう構成してもよい。この場合、ライブマイグレーション制御装置２００、トラヒックエンジニアリング制御装置３００および優先ユーザ制御装置４００は、リソースの処理状況、ネットワークの使用状況および優先ユーザに関する情報を、継続的に統合制御装置１００に送信する。そして、統合制御装置１００は、受信した情報に基づいてライブマイグレーションの実行の要否やトラヒックエンジニアリングの実行の要否、優先制御の実行の要否について判定する。統合制御装置１００は、いずれかの制御の実行が必要であると判定した場合、上記の、移行先や情報転送経路の決定処理を実行する。このように、ライブマイグレーション制御装置２００、トラヒックエンジニアリング制御装置３００および優先ユーザ制御装置４００は、統合制御装置１００に情報を送信するのみで、処理実行の要否判断は行わないように構成してもよい。そして、統合制御装置１００の命令に基づいて、ライブマイグレーション制御装置２００およびトラヒックエンジニアリング制御装置３００が、優先制御を加味したライブマイグレーションおよびトラヒックエンジニアリングを実行するものとしてもよい。
【００４７】
［第１の実施形態に係る統合制御装置の効果］
上記のように、第１の実施形態に係る統合制御装置１００は、ライブマイグレーション制御装置２００、トラヒックエンジニアリング制御装置３００および優先ユーザ制御装置４００の各々からライブマイグレーションの情報、トラヒックエンジニアリングの情報、優先ユーザの情報を取得して、取得した情報に基づき、ライブマイグレーションによる仮想マシンの移行先およびライブマイグレーション後の情報転送経路を決定する。そして、統合制御装置１００は決定した内容に基づいて、ライブマイグレーション制御装置２００およびトラヒックエンジニアリング制御装置３００によるライブマイグレーションおよびトラヒックエンジニアリングを制御する。このため、優先ユーザに対して通信品質を保障しつつライブマイグレーションとトラヒックエンジニアリングとを統合的に制御することが可能になる。
【００４８】
また、第１の実施形態に係る統合制御装置１００は、ライブマイグレーションを考慮してトラヒックエンジニアリングによる経路変更内容を決定している。このため、ライブマイグレーションによってネットワーク内を行き来する情報量に変化が生じても、ライブマイグレーションの完了後、最適な情報転送経路を通じて情報を送信することができる。
【００４９】
また、第１の実施形態に係る統合制御装置１００は、トラヒックエンジニアリングを考慮してライブマイグレーションによる移行先を決定している。このため、情報転送経路を考慮して適切な移行先を決定することができる。また、ライブマイグレーションによって仮想マシンの場所が大きく変化しても、適切に情報を送信することができる。
【００５０】
（第２の実施形態）
上記の通り、第１の実施形態に係る統合制御装置１００は、ライブマイグレーションの情報、トラヒックエンジニアリングの情報および優先ユーザの情報を取得して、これらの情報を元に、ライブマイグレーションによる仮想マシンの移行先およびネットワーク内の情報転送経路を決定する。したがって、ライブマイグレーション後の情報転送経路が、優先ユーザに対する通信品質の保障を考慮して最適化される。第２の実施形態では、さらに、ライブマイグレーションの実行処理と、トラヒックエンジニアリングの実行処理とを同期させる。そして、第２の実施形態においては、移行先マシンが起動され処理を開始するときには、新しい情報転送経路が確立されているように、ライブマイグレーションとトラヒックエンジニアリングのタイミングを調整する。
【００５１】
［第２の実施形態に係る統合制御装置の構成］
図８を参照し、第２の実施形態に係る統合制御装置９００の構成の一例を説明する。図８は、第２の実施形態に係る統合制御装置９００の構成の一例を示す図である。図８においては、ライブマイグレーション制御装置、トラヒックエンジニアリング制御装置および優先ユーザ制御装置に接続されるリソース、ネットワーク等については図示を省略する。また、統合制御装置９００中、第１の実施形態に係る統合制御装置１００と同様の機能部については説明を省略する。
【００５２】
図８中、統合制御装置９００は、ライブマイグレーション制御装置２１０、トラヒックエンジニアリング制御装置３１０および優先ユーザ制御装置４１０に接続される。統合制御装置９００は、通信部９０１、記憶部９１０および制御部９２０を備える。通信部９０１は、統合制御装置９００と外部との通信を実行する。すなわち、通信部９０１は、統合制御装置９００とライブマイグレーション制御装置２１０、トラヒックエンジニアリング制御装置３１０および優先ユーザ制御装置４１０との間での情報の送受信を実行する。
【００５３】
記憶部９１０は、統合制御装置９００内での処理に使用される情報および処理の結果生成される情報等を記憶する。記憶部９１０は、制御情報記憶部９１１および制御対象記憶部９１２を備える。制御情報記憶部９１１および制御対象記憶部９１２の機能は、第１の実施形態に係る制御情報記憶部１１１および制御対象記憶部１１２と同様である。
【００５４】
制御部９２０は、情報取得部９２１と、条件決定部９２２と、命令生成部９２４と、命令送信部９２５と、タイミング制御部９２６とを備える。情報取得部９２１および条件決定部９２２の動作および機能は、第１の実施形態と同様である。以下、命令生成部９２４、命令送信部９２５およびタイミング制御部９２６について説明する。なお、第２の実施形態の命令生成部９２４、命令送信部９２５およびタイミング制御部９２６は、第１の実施形態の実行制御部１２３に対応する。
【００５５】
命令生成部９２４は、条件決定部９２２が決定したライブマイグレーションによる仮想マシンの移行先およびライブマイグレーション後の情報転送経路に基づいて、命令を生成する。具体的には、命令生成部９２４は、ライブマイグレーション（ＬＭ）実行命令と、移行先マシン起動命令と、予約ラベルテーブル作成命令と、ラベルテーブル更新命令と、を生成する。
【００５６】
ライブマイグレーション実行命令は、ライブマイグレーション制御装置２１０に対して、ライブマイグレーションの対象である仮想マシンのメモリ内容を、移行先マシン（すなわち、移行先マシンが構築されるデータセンタ）に移動させるよう指示する命令である。移行先のデータセンタに移行先マシンとして新たに仮想マシンを構築する場合は、ライブマイグレーション実行命令は、移行先マシンの構築命令も含む。ライブマイグレーション制御装置２１０は、ライブマイグレーション実行命令を受信すると、ライブマイグレーションの対象である仮想マシンに対して、メモリ内容を移行先に移行させるよう指示する命令を送信する。この際も、新たに移行先として仮想マシンを構築する場合は、送信される命令は、移行先マシンの構築命令を含む。
【００５７】
移行先マシン起動命令は、ライブマイグレーション制御装置２１０に対して、ライブマイグレーションの移行先マシンを起動するよう指示する命令である。ライブマイグレーション制御装置２１０は、移行先マシン起動命令を受信すると、ライブマイグレーションによる移行先の仮想マシンに対して、起動命令を送信する。また、ライブマイグレーション制御装置２１０は、移行先マシンの起動後、移行元マシンの停止を指示する命令を移行元マシンに送信する。
【００５８】
ライブマイグレーションにおいては、まず、対象仮想マシンのメモリ内容を移行先に移行させ、その後、移行先のマシンを起動させて移行元の仮想マシンを停止させる。第２の実施形態では、ライブマイグレーションの実行とトラヒックエンジニアリングの実行とのタイミングを同期させるため、ライブマイグレーションを、メモリ内容の移動と、移行先マシンの起動との２段階に分離して実行するよう構成している。なお、第２の実施形態では、ライブマイグレーションにおいてメモリ内容を移動させるものとして説明するが、その他、仮想マシンが接続されるネットワーク等の環境に応じて、ファイルシステム等他の情報も移動させてもよい。また、移行先として新たに仮想マシンを構築する場合は、メモリ内容の移動の段階において、移行先マシンの構築も行う。
【００５９】
予約ラベルテーブル作成命令とは、トラヒックエンジニアリング制御装置３１０に対して、予約ラベルテーブルを生成するよう指示する命令である。予約ラベルテーブルは、条件決定部９２２により決定された情報転送経路を規定するテーブルである。ネットワーク内の各ルータは、情報転送経路を規定するラベルテーブルを保持する。予約ラベルテーブルは、このラベルテーブルを更新するものである。予約ラベルテーブルの詳細については後述する。トラヒックエンジニアリング制御装置３１０は、予約ラベルテーブル作成命令を受信すると、制御対象であるネットワーク内のルータに対して予約ラベルテーブルの生成を指示する命令を送信する。たとえば、トラヒックエンジニアリング制御装置３１０は、条件決定部９２２により決定された情報転送経路の情報を含む予約パケットを生成し、送信する。なお、ルータによる予約ラベルテーブルの作成の詳細についても後述する。
【００６０】
ラベルテーブル更新命令とは、トラヒックエンジニアリング制御装置３１０に対して、各ルータが保持するラベルテーブルを予約ラベルテーブルに更新するよう指示する命令である。トラヒックエンジニアリング制御装置３１０は、ラベルテーブル更新命令を受信すると、制御対象であるネットワーク内のルータに対してラベルテーブルを予約ラベルテーブルに更新するよう指示する命令を送信する。たとえば、トラヒックエンジニアリング制御装置３１０は、ルータに切替パケットを送信することで、ルータが保持するラベルテーブルを更新させる。ラベルテーブルの詳細についても後述する。
【００６１】
命令送信部９２５は、命令生成部９２４が生成した各命令を、後述するタイミング制御部９２６から指示されるタイミングで、ライブマイグレーション制御装置２１０およびトラヒックエンジニアリング制御装置３１０に送信する。
【００６２】
タイミング制御部９２６は、命令送信部９２５に対して、命令の送信タイミングを指示する。具体的には、タイミング制御部９２６は、ライブマイグレーション制御装置２１０へのライブマイグレーション実行命令の送信タイミングと、トラヒックエンジニアリング制御装置３１０への予約ラベルテーブル作成命令の送信タイミングとを同期させるよう指示を出す。また、タイミング制御部９２６は、ライブマイグレーション制御装置２１０への移行先マシン起動命令の送信タイミングと、トラヒックエンジニアリング制御装置３１０へのラベルテーブル更新命令の送信タイミングとを同期させるよう指示を出す。
【００６３】
具体的には、タイミング制御部９２６は、命令生成部９２４からライブマイグレーション実行命令と予約ラベルテーブル作成命令を生成したことを通知されると、命令送信部９２５にライブマイグレーション実行命令と予約ラベルテーブル作成命令を送信するよう指示する。そして、ライブマイグレーション制御装置２１０からのライブマイグレーション実行完了通知と、トラヒックエンジニアリング制御装置３１０からの予約ラベルテーブル作成完了通知とを受信すると、タイミング制御部９２６は、命令送信部９２５に対して、移行先マシン起動命令とラベルテーブル更新命令とを送信するよう指示する。
【００６４】
［第２の実施形態に係る統合制御装置９００における処理の概要］
次に図９を参照し、第２の実施形態に係る統合制御装置９００における実行制御処理の概要について説明する。図９は、第２の実施形態に係る統合制御装置９００による実行制御処理の流れの概要を示す図である。第２の実施形態に係る統合制御装置９００は、第１の実施形態と同様、ライブマイグレーションの対象である仮想マシンに関する情報と、当該仮想マシンに接続されるネットワークに関する情報と、優先ユーザに関する情報とを受信する（ステップＳ２０１）。次に、取得した情報に基づいて、混合整数線形計画法を用いて最適解を導出し、ライブマイグレーションの移行先と、ライブマイグレーション後の情報転送経路を決定する（ステップＳ２０２）。次に、統合制御装置９００は、ライブマイグレーションの対象となる仮想マシンのメモリ内容をステップＳ２０２において決定された移行先に移動させ、ネットワーク内の各ルータに、ステップＳ２０２において決定された情報転送経路を規定する予約ラベルテーブルを作成させる（ステップＳ２０３：処理段階Ａ）。次に、統合制御装置９００は、移行先マシンを起動させ、ネットワーク内の各ルータが保持するラベルテーブルをステップＳ２０３において作成した予約ラベルテーブルに更新させる（ステップＳ２０４：処理段階Ｂ）。そして、統合制御装置９００は実行制御処理を終了する。
【００６５】
［第２の実施形態に係る統合制御装置と他の装置との間での処理シーケンス］
さらに、図１０を参照し、第２の実施形態に係る統合制御装置９００と他の装置との間での処理シーケンスについて説明する。図１０は、第２の実施形態に係る統合制御装置９００、ライブマイグレーション制御装置２１０およびトラヒックエンジニアリング制御装置３１０間での実行制御の処理シーケンスの一例を示す図である。図１０には、情報取得部９２１が情報を受信し、条件決定部９２２が移行先およびライブマイグレーション後の情報転送経路を決定し、命令生成部９２４が命令を生成した後の処理の流れの一例を示す。図１０に示すように、まず、統合制御装置９００（命令送信部９２５）は、ライブマイグレーション制御装置２１０に対して、命令生成部９２４が生成したライブマイグレーション（ＬＭ）実行命令を送信する（図１０の（１−１））。同時に、統合制御装置９００は、トラヒックエンジニアリング制御装置３１０に対して、予約ラベルテーブル作成命令を送信する（図１０の（１−２））。なお、ライブマイグレーション実行命令の送信と予約ラベルテーブル作成命令の送信とは完全に同時である必要はなく、実質的に同期していればよい。
【００６６】
ライブマイグレーション制御装置２１０は、ライブマイグレーション実行命令を受信すると、ライブマイグレーションの対象である仮想マシンに対して、メモリ内容を移行先に移動させるよう指示するライブマイグレーション実行命令を送信する（図１０の（２−１））。命令を受信した仮想マシンは、メモリ内容の移動を開始し、移動が完了すると、ライブマイグレーション制御装置２１０に対してライブマイグレーション実行完了通知を送信する（図１０の（３−１））。
【００６７】
他方、トラヒックエンジニアリング制御装置３１０は、予約ラベルテーブル作成命令を受信すると、トラヒックエンジニアリングの対象であるネットワーク内の各ルータ（ラベルエッジルータ（ＬＥＲ）、ラベルスイッチルータ（ＬＳＲ）等、詳細は後述）に予約ラベルテーブルを作成するよう指示する予約ラベルテーブル作成命令を送信する（図１０の（２−２））。命令を受信したルータは、指示に従って、予約ラベルテーブルを作成する。ネットワーク内のすべてのルータが予約ラベルテーブルの作成を完了すると、トラヒックエンジニアリング制御装置３１０に、予約ラベルテーブル作成完了通知を送信する（図１０の（３−２））。
【００６８】
ライブマイグレーション制御装置２１０は、仮想マシンからライブマイグレーション実行完了通知を受信すると、統合制御装置９００に対して、ライブマイグレーション実行完了通知を送信する（図１０の（４−１））。同様に、トラヒックエンジニアリング制御装置３１０は、すべてのルータが予約ラベルテーブルの作成を完了したことを示す予約ラベルテーブル作成完了通知を受信すると、統合制御装置９００に対して、予約ラベルテーブル作成完了通知を送信する（図１０の（４−２））。ここまでが処理段階Ａである。
【００６９】
統合制御装置９００は、ライブマイグレーション実行完了通知をライブマイグレーション制御装置２１０から受信し、かつ、予約ラベルテーブル作成完了通知をトラヒックエンジニアリング制御装置３１０から受信すると、次の処理（処理段階Ｂ）に進む。すなわち、統合制御装置９００は、ライブマイグレーション制御装置２１０に対して、移行先マシン起動命令を送信する（図１０の（５−１））。また、統合制御装置９００は、トラヒックエンジニアリング制御装置３１０に対して、ラベルテーブル更新命令を送信する（図１０の（５−２））。具体的には、タイミング制御部９２６は、ライブマイグレーション実行完了通知および予約ラベルテーブル作成完了通知の受信を検出すると、命令送信部９２５に対して、移行先マシン起動命令とラベルテーブル更新命令を送信するよう指示する。なお、移行先マシン起動命令の送信とラベルテーブル更新命令の送信も完全に同時である必要はなく、実質的に同期していればよい。
【００７０】
移行先マシン起動命令を受信したライブマイグレーション制御装置２１０は、移行先の仮想マシンに対して起動命令を送信する（図１０の（６−１））。移行先の仮想マシンは、起動命令を受信すると、起動処理を開始する。そして、起動が完了すると、移行先の仮想マシンは、ライブマイグレーション制御装置２１０に対して、起動完了通知を送信する（図１０の（７−１））。この後、ライブマイグレーション制御装置２１０は、移行元の仮想マシンを停止させる（図示せず）。
【００７１】
他方、ラベルテーブル更新命令を受信したトラヒックエンジニアリング制御装置３１０は、ネットワーク内のルータに対して、ラベルテーブルを予約ラベルテーブルに更新するよう指示するラベルテーブル更新命令を送信する（図１０の（６−２））。命令を受信したルータは、ラベルテーブルを予約ラベルテーブルに更新する。すべてのルータがラベルテーブルの更新処理を完了すると、トラヒックエンジニアリング装置３１０にラベルテーブル更新完了通知が送信される（図１０の（７−２））。
【００７２】
起動完了通知を受信したライブマイグレーション制御装置２１０は、統合制御装置９００に対して、移行先マシン起動完了通知を送信する（図１０の（８−１））。同様に、トラヒックエンジニアリング制御装置３１０は、ラベルテーブル更新完了通知を受信すると、統合制御装置９００に対して、ラベルテーブル更新完了通知を送信する（図１０の（８−２））。これによって、処理を終わる。
【００７３】
［ネットワーク内での経路の設定］
次に、図１１、図１２−１、図１２−２を参照し、ネットワーク内での情報転送経路の設定および更新の処理について説明する。ここでは、ＭＰＬＳ（Multi-Protocol  Label  Switching）技術を用いて、転送処理およびルーティング処理を行うものとする。ただし、本実施形態は、ＧＭＰＬＳ（Generalized  Multi-Protocol  Label  Switching）や、オープンフロー（Open  Flow）を用いたルーティングにも同様に適用することができる。
【００７４】
ここでは、トラヒックエンジニアリングの対象となるネットワークが図１１のように構成されているとする。図１１は、第２の実施形態に係るネットワーク内の情報転送経路を説明するための図である。図１１中、「ＶＭ」は仮想マシン（Virtual  Machine）を指し、「ＬＥＲ」はラベルエッジルータ（Label  Edge  Router）を指し、「ＬＳＲ」はラベルスイッチルータ（Label  Switch  Router）を指す。ラベルエッジルータとは、ネットワークと外部との境界に位置するルータであり、外部からネットワークに入来するパケットにラベルを付してネットワーク内の次のルータに転送する。ラベルスイッチルータとは、ネットワークの内部に位置するルータであり、ラベルが付されたパケットを受信し、自己が保持するラベルテーブルを参照してパケットに所定の処理を施した上で、隣接するルータに転送するルータである。
【００７５】
［ラベルテーブルを用いたルーティング］
ラベルテーブルを用いたパケットのルーティングについて、図１１を参照しさらに詳細に説明する。図１１中、仮想マシンＶＭ１，ＶＭ２がルータＬＥＲ１に接続される。また、仮想マシンＶＭ３，ＶＭ４がルータＬＥＲ２に接続される。ルータＬＥＲ１，ＬＥＲ２は、ルータＬＳＲ３に接続される。ルータＬＳＲ３は、ルータＬＳＲ４，ＬＳＲ６に接続される。ルータＬＳＲ４は、ルータＬＳＲ５に接続され、ルータＬＳＲ５は、ルータＬＥＲ８に接続される。また、ルータＬＳＲ６は、ルータＬＳＲ７に接続され、ルータＬＳＲ７は、ルータＬＥＲ８，ＬＥＲ９に接続される。ルータＬＥＲ８は、外部ネットワークＮＷ−Ａ，ＮＷ−Ｂに接続される。ルータＬＥＲ９は、外部ネットワークＮＷ−Ｂに接続される。外部ネットワークＮＷ−Ａには、クライアントＣＬ１が接続している。また、外部ネットワークＮＷ−Ｂには、クライアントＣＬ２が接続している。
【００７６】
ここで、各ルータは、予め入来パケットの転送経路を定めたラベルテーブルを保持する。たとえば、ルータＬＥＲ１は、図１２−１に示すラベルテーブルを保持する。図１２−１は、第２の実施形態に係るルータが保持するラベルテーブルの一例を示す図である。図１２−１に示すように、ラベルテーブルには、入来するパケットの行き先（ＤＡ：Destination  Address）に対応付けて、入来パケットの送信元（ＳＡ：Source  Address）、次の転送先ルータ（ＮＨＯＰ：Next  Hop）と、が格納される。また、ラベルテーブルには、入来パケットのラベルに対して実行する処理の内容（ＡＣＴＩＯＮ）と、入来するパケットに付加するラベル（ＬＡＢＥＬ（ＯＵＴ））とが格納される。図１２−１に示すラベルテーブルの１行目は、入来するパケットの行き先が、クライアント「ＣＬ１」であり、入来するパケットの送信元が「０．０．０．０」であれば、次の転送先ルータは「ＬＳＲ３」であることが示されている。「ＮＨＯＰ」は次のホップ（Next  Hop）を意味する。また、入来するパケットの行き先が、クライアント「ＣＬ１」であり、入来するパケットの送信元が「０．０．０．０」であれば、当該パケットのラベルに対する処理は、ラベルを付け替えること（「ＳＷＡＰ＆ＰＵＳＨ」）であることが示されている。また、付与するラベルは「Ｌ１」であることが示されている。
【００７７】
ここで、図１２−１に示すように、入来するパケットの行き先が同じクライアント「ＣＬ１」であっても、送信元が「０．０．０．０」である場合と「１０９．１２．１３．５」である場合とでは処理が異なる。送信元「０．０．０．０」は、優先ユーザ以外の全てのユーザが送信元である場合を意味する。これに対して、送信元「１０９．１２．１３．５」は特定の優先ユーザを示す。優先ユーザについて特定の転送経路を通じてパケットを送信する場合は、各ラベルテーブルにおいて当該優先ユーザの情報を送信元として格納しておく。
【００７８】
このようにラベルテーブルに、送信元の情報を格納するのは、送信元が優先ユーザである場合と優先ユーザ以外の場合とでパケットに対する処理内容を変更したり、異なる転送経路を使用したりできるようにするためである。本実施形態では、優先制御を加味してライブマイグレーションとトラヒックエンジニアリングを統合制御する。このため、統合制御後にパケットがとる転送経路は優先ユーザに関するパケットとそれ以外のユーザに関するパケットとで異なる場合がある。この経路制御を可能にするため、各ラベルテーブルにおいてパケットの行き先だけでなく送信元も定義付ける。
【００７９】
ルータＬＥＲ１が、図１２−１に示すラベルテーブルを保持しているとすると、行き先アドレスを「ＣＬ１」とし、送信元アドレスを「０．０．０．０」とする入来パケットは、ラベル「Ｌ１」を付与され、次にルータ「ＬＳＲ３」に転送される。ルータ「ＬＳＲ３」は、たとえば、図１２−２に示すラベルテーブルを参照して、当該パケットの転送処理を実行する。図１２−２は、第２の実施形態に係るルータが保持するラベルテーブルの他の例を示す図である。図１２−２に示すラベルテーブルの１行目には、ラベル「Ｌ１」を持つパケットの次の転送先は、「ＬＳＲ４」であり、ラベルを付け替えて（SWAP）、「Ｌ２」にすることが規定されている。ルータ「ＬＳＲ３」は、このラベルテーブルを参照して、入来パケットのラベル「Ｌ１」を「Ｌ２」に付け替え、次の転送先であるルータ「ＬＳＲ４」に転送する。ラベルは、外部からネットワークにパケットが入ったとき、ラベルエッジルータによって付与され、パケットが外部ネットワークへと転送されるときは、ラベルエッジルータが、ラベルを削除して、外部ネットワークに対応した行き先アドレスのみを残す。このようにして、各ルータは、自己の保持するラベルテーブルを参照して入来パケットを転送する。
【００８０】
また、ルータＬＥＲ１が、図１２−１に示すラベルテーブルを保持しているとすると、行き先アドレスを「ＣＬ１」とし、送信元アドレスを「１０９．１２．１３．５」とする入来パケットは、ラベル「Ｌ５」を付与され、次にルータ「ＬＳＲ３」に転送される。ルータ「ＬＳＲ３」は、たとえば、図１２−２に示すラベルテーブルを参照して、当該パケットの転送処理を実行する。たとえば、ルータ「ＬＳＲ３」は、ラベル「Ｌ５」をラベル「Ｌ６」に付け替えて（SWAP）、入来パケットを次の転送先であるルータ「ＬＳＲ６」に転送する。
【００８１】
なお、図１２−１に示すように、ＬＥＲにおいて優先ユーザを送信元とするパケットとそれ以外のユーザを送信元とするパケットについて異なるラベルを付しているので、ＬＳＲにおいて優先ユーザの情報を格納しておく必要はない。ただしさらに細かい経路分けをする場合には適宜ＬＥＲ，ＬＳＲのラベルテーブルに格納する情報を設定すればよい。
【００８２】
第２の実施形態では、仮想マシンのライブマイグレーションに伴う、最適な情報転送経路の変動に応じて、各ルータが保持するラベルテーブルを更新する。たとえば、図１１の例において、仮想マシンＶＭ１を仮想マシンＶＭ４にライブマイグレーションすることを考える。この時点で、仮想マシンＶＭ１に処理が集中している一方で、仮想マシンＶＭ４は利用されておらず停止しているとする。そして、仮想マシンＶＭ１からクライアントＣＬ１へのパケットは、「ＬＥＲ１−ＬＳＲ３−ＬＳＲ４−ＬＳＲ５−ＬＥＲ８」という経路（図１１の矢印Ａ）で転送されるように、ラベルテーブルが設定されているとする。また、仮想マシンＶＭ３からクライアントＣＬ２へのパケットは、「ＬＥＲ２−ＬＳＲ３−ＬＳＲ６−ＬＳＲ７−ＬＥＲ９」という経路（図１１の矢印Ｂ）で転送されるように、ラベルテーブルが設定されているとする。このとき、仮想マシンＶＭ１の処理を仮想マシンＶＭ４に移行させて、仮想マシンＶＭ３からクライアントＣＬ２への情報経路に重なる経路「ＬＥＲ２−ＬＳＲ３−ＬＳＲ６−ＬＳＲ７−ＬＥＲ８」（図９の矢印Ｃ）を通じて転送するようにラベルテーブルを設定すると、「ＬＥＲ２−ＬＳＲ３−ＬＳＲ６−ＬＳＲ７」において輻輳が発生する可能性がある。そこで、輻輳を防止するよう、仮想マシンＶＭ４からクライアントＣＬ１へのパケットは、「ＬＥＲ２−ＬＳＲ３−ＬＳＲ４−ＬＳＲ５−ＬＥＲ８」という経路（図１１の矢印Ｄ）を通って転送されるようにラベルテーブルを更新することができる。
【００８３】
［ラベルテーブルの更新］
ラベルテーブルの更新は、条件決定部９２２によって決定された情報転送経路に基づき、トラヒックエンジニアリング制御装置３１０から各ルータに予約ラベルテーブル作成命令およびラベルテーブル更新命令を送信することによって実行される。次に、予約ラベルテーブルの作成およびラベルテーブルの更新につき、説明する。
【００８４】
図１３は、第２の実施形態に係るルータの構成の一例を示す図である。図１３に示すルータは、ラベルエッジルータ又はラベルスイッチルータ、たとえば、図１１に示すルータＬＥＲ１またはＬＳＲ３等に相当する。ここでは、ネットワークと外部との境界に位置するラベルエッジルータはトラヒックエンジニアリング制御装置３１０と接続され、ラベルスイッチルータはトラヒックエンジニアリング制御装置３１０と接続されていないものとする。その他の構成はラベルエッジルータもラベルスイッチルータも同様である。
【００８５】
図１３に示すように、ルータ（ＬＳＲ，ＬＥＲ）は、記憶部１０と、制御部２０と、入出力部３０と、を備える。記憶部１０は、ラベルテーブル１１を備える。また、記憶部１０は、予約ラベルテーブル１２が作成されると、ラベルテーブル１１とは別に、予約ラベルテーブル１２を保持する。制御部２０は、経路判定部２１と、予約ラベルテーブル作成部２２と、テーブル更新部２３とを備える。
【００８６】
ラベルテーブル１１は、上述のようにルータ（ＬＳＲ，ＬＥＲ）を介して転送されるパケットの転送先を規定するテーブルである（図１２−１、図１２−２参照）。また、予約ラベルテーブル１２は、トラヒックエンジニアリング制御装置３１０からの予約ラベルテーブル作成命令をルータ（ＬＳＲ，ＬＥＲ）が受信した際に、予約ラベルテーブル作成命令に含まれる情報に従って作成される更新用のラベルテーブルである。以下、予約ラベルテーブル作成命令は、予約パケットとして送信されるものとして説明する。
【００８７】
経路判定部２１は、入出力部３０を介して入力パケットを受信すると、ラベルテーブル１１を参照して入力パケットの転送先を判定し、ラベルテーブル１１に格納された情報に基づいて、ラベルの付与、削除等を実行する。経路判定部２１が処理したパケットは、入出力部３０を介して、ラベルテーブル１１に規定された転送先に出力パケットとして転送される。
【００８８】
予約ラベルテーブル作成部２２は、入出力部３０を介して予約パケットを受信すると、予約パケットに格納された情報に基づき、予約ラベルテーブルを作成し、記憶部１０に格納する（予約ラベルテーブル１２）。
【００８９】
図１４を参照して予約パケットについて説明する。図１４は、第２の実施形態に係る予約パケットの構成の一例を示す図である。図１４に示すように、予約パケットは、パケットの送信元アドレス（ＳＡ：Source  Address）と、宛先アドレス（ＤＡ：Destination  Address）と、指定転送経路とを対応付けて保持する。図１４の例では、仮想マシン「ＶＭ４」を送信元とする、クライアント「ＣＬ１」宛のパケットは、ルータ「Ｒ２−Ｒ３−Ｒ６−Ｒ７−Ｒ８」によって構成される経路を通じて転送されることが規定されている。予約パケットは、経路変更または経路設定が必要なパケットの情報を適宜保持する。
【００９０】
予約パケットを受信した予約ラベルテーブル作成部２２は、自ルータを経路に含む情報を参照して、予約ラベルテーブルを作成する。予約ラベルテーブルは、図１２−１乃至図１２−２に示すラベルテーブルと同様の構成である。作成した予約ラベルテーブルは記憶部１０に格納される（予約ラベルテーブル１２）。予約ラベルテーブル１２の作成が完了すると、予約ラベルテーブル作成部２２は、設定したラベルの情報および予約ラベルテーブルを設定したことを示す情報を予約パケットに付与して、予約パケットを隣接するルータに転送する。
【００９１】
テーブル更新部２３は、入出力部３０を介して、ラベルテーブル更新命令すなわち切替パケットを受信すると、ラベルテーブル１１を、予約ラベルテーブル１２で置き換えることによって、ラベルテーブル１１を更新する。テーブル更新部２３は、ラベルテーブル１１の更新が完了すると、更新完了を示す情報を切替パケットに付与して、切替パケットを隣接するルータに転送する。
【００９２】
予約パケットおよび切替パケットは、トラヒックエンジニアリング制御装置３１０によって情報転送経路の末端に位置するラベルエッジルータに送信される。そして、ラベルエッジルータからラベルスイッチルータを介して順次転送される。予約パケットまたは切替パケットが、転送経路の最後のラベルエッジルータに到達すると、転送経路上のすべてのルータにおける予約ラベルテーブル作成処理、またはラベルテーブル更新処理が完了したことになる。転送経路の最後のラベルエッジルータは、他のルータから予約パケットまたは切替パケットを受信すると、予約パケットまたは切替パケットが転送されてきた方向と反対の方向に、予約応答パケットまたは切替応答パケットを作成して送り返す。予約応答パケットまたは切替応答パケットを、最初に予約パケットまたは切替パケットを転送したルータが受信すると、トラヒックエンジニアリング制御装置３１０に対して、予約応答パケットまたは切替応答パケットを送信する。予約応答パケットおよび切替応答パケットは、図１０に示した予約ラベルテーブル作成完了通知（図１０、（３−２）参照）およびラベルテーブル更新完了通知（図１０、（７−２）参照）の一例である。
【００９３】
なお、ここでは、予約応答パケットおよび切替応答パケットが処理完了通知の機能を果たすものとして構成したが、予約パケットおよび切替パケットを受信したルータそれぞれが、処理を完了すると完了通知をブロードキャストし、ラベルエッジルータが、各ルータからの完了通知を順次トラヒックエンジニアリング制御装置３１０に転送するように構成してもよい。処理が完了したことを示す通知の態様は、特に限定されない。
【００９４】
［第２の実施形態の統合制御装置の効果］
上記のように、第２の実施形態に係る統合制御装置９００は、優先制御を加味してライブマイグレーションとトラヒックエンジニアリングの処理内容を統合的に決定し、制御する。このため、ライブマイグレーション後の情報転送経路を最適化しつつ優先ユーザに対して通信品質を保障することができ、クラウドコンピューティングにおいて特定ユーザに対する通信品質の保障を可能にできる。
【００９５】
また、上記のように、第２の実施形態に係る統合制御装置９００は、トラヒックエンジニアリング制御装置３１０に予約ラベルテーブルの作成を命令し、予約ラベルテーブルの作成が完了した後にラベルテーブルを更新させる。このため、情報転送経路の更新を迅速に完了させ更新後の情報転送経路を確立することができる。
【００９６】
また、上記のように、第２の実施形態に係る統合制御装置９００は、ライブマイグレーション制御装置２１０によるライブマイグレーションの実行制御と、トラヒックエンジニアリング制御装置３１０による予約ラベルテーブルの作成の制御とを同期させる。また、第２の実施形態に係る統合制御装置９００は、ライブマイグレーション制御装置２１０による移行先仮想マシンの起動処理制御と、トラヒックエンジニアリング制御装置３１０によるラベルテーブル更新処理制御とを同期させる。このため、ライブマイグレーションの処理とトラヒックエンジニアリングの処理とを並行して実行させることができ、それぞれの処理の完了タイミングのずれを抑制することができる。たとえば、トラヒックエンジニアリングにより更新された後の情報転送経路が確立されていない状態で移行先マシンが起動することが防止できる。また、たとえば、移行先マシンが起動していない段階で情報転送経路が確立されてしまうことが防止できる。したがって、ライブマイグレーションとトラヒックエンジニアリングとの統合制御により、クラウドコンピューティングの性能をさらに向上させることができる。また、完了タイミングのずれを抑制することで、優先ユーザに対して途切れなく一定品質のサービスを提供することができる。
【００９７】
（第３の実施形態）
上記第１および第２の実施形態は、ライブマイグレーションの対象となる仮想マシンの数については特に限定せずに構成した。次に、第３の実施形態として、同時にライブマイグレーションの対象となる仮想マシンが複数存在する場合の統合制御について説明する。
【００９８】
ライブマイグレーションの対象となる仮想マシンが複数存在する場合、当該仮想マシンが構築されているデータセンタの処理能力や、当該仮想マシンが接続されるネットワークの転送処理能力によって、同時にライブマイグレーションを行うことができない場合がある。第３の実施形態に係る統合制御装置は、このような場合における優先制御を加味したライブマイグレーションとトラヒックエンジニアリングの統合制御を実現する。
【００９９】
［第３の実施形態に係る統合制御装置の構成］
図１５を参照し、第３の実施形態に係る統合制御装置の構成の概要について説明する。図１５は、第３の実施形態に係る統合制御装置１０００の構成の一例を示す図である。図１５に示すように、第３の実施形態に係る統合制御装置１０００は、ライブマイグレーション制御装置２２０、トラヒックエンジニアリング制御装置３２０および優先ユーザ制御装置４２０と接続される。ライブマイグレーション制御装置２２０はリソース５２０と接続され、トラヒックエンジニアリング制御装置３２０はネットワーク６２０と接続される。優先ユーザ制御装置４２０はリソース５２０およびネットワーク６２０と接続される。リソース５２０は、ネットワーク６２０と接続される。ネットワーク６２０は外部ネットワーク７２０と接続され、外部ネットワーク７２０はさらにユーザ端末８２０と接続される。
【０１００】
統合制御装置１０００は、通信部１００１、記憶部１０１０および制御部１０２０を備える。通信部１００１の機能は、第１の実施形態の通信部１０１と同様である。また、記憶部１０１０の機能は、第１の実施形態の記憶部１１０と同様である。記憶部１０１０は、制御情報記憶部１０１１および制御対象記憶部１０１２を備える。制御情報記憶部１０１１および制御対象記憶部１０１２の機能は、第１の実施形態の制御情報記憶部１１１および制御対象記憶部１１２と同様である。
【０１０１】
制御部１０２０は、情報取得部１０２１、条件決定部１０２２、同時実行判定部１０２３、組合せ決定部１０２４、実行順序決定部１０２５、命令生成部１０２６、命令送信部１０２７およびタイミング制御部１０２８を備える。情報取得部１０２１および条件決定部１０２２の動作および機能は、第１の実施形態の情報取得部１２１および条件決定部１２２の動作および機能と同様である。ただし、第３の実施形態では、情報取得部１０２１は、ライブマイグレーション制御装置２２０から、複数の仮想マシンのライブマイグレーションに関する情報を取得し、条件決定部１０２２は、優先制御を加味して複数の仮想マシンのライブマイグレーションによる移行先、および複数のライブマイグレーション後の情報転送経路を決定する。
【０１０２】
同時実行判定部１０２３は、すべてのライブマイグレーションを同時に実行可能か否か、を判定する。たとえば、同時実行判定部１０２３は、制御対象記憶部１０１２に格納された情報等に基づき、各データセンタの処理能力やネットワークの転送処理能力等の制約に照らして、優先制御を加味してすべてのライブマイグレーションを同時に実行できるか否かを判定する。
【０１０３】
組合せ決定部１０２４は、同時実行判定部１０２３が、すべてのライブマイグレーションを同時に実行することはできないと判定した場合に、同時にライブマイグレーションを実行することができる仮想マシンの組合せを決定する。たとえば、各データセンタの処理能力やネットワークの転送処理能力に基づき、同時にライブマイグレーションを実行することができる仮想マシンの組合せを決定する。ここでは、組合せ決定部１０２４は、同時にライブマイグレーションを実行した場合に、優先ユーザに対する品質保証が損なわれないようにするとともにライブマイグレーションにより移動されるデータ間で輻輳が発生しないように、すなわち、ライブマイグレーションに要する時間ができるだけ短縮できるように、混合整数線形計画法を用いて、組合せを決定する。なお、各組合せに含まれる仮想マシンの数は特に限定されない。たとえば、一度に一つの仮想マシンのライブマイグレーションしか実行できない場合は、一つの仮想マシンを組合せとして決定してもよい。また、複数の仮想マシンのライブマイグレーションを同時に実行できる場合は、複数の仮想マシンの組を組合せとして決定してもよい。
【０１０４】
実行順序決定部１０２５は、組合せ決定部１０２４が決定した組合せについてライブマイグレーションの実行順序を決定する。ここでは、実行順序決定部１０２５は、ライブマイグレーションを実行した場合に、先にライブマイグレーションを実行した仮想マシンが移行したことにより輻輳が発生したり、優先ユーザに対する通信品質保障が損なわれないように、実行順序を決定する。たとえば、実行順序決定部１０２５は、混合整数線形計画法を用いて、優先ユーザへの通信品質の保障、ライブマイグレーションを実行する仮想マシンの処理量や、当該仮想マシンに対するトラヒック量、移行先マシンの位置、ネットワークの構成等を考慮して、最適解を導出する。そして、ライブマイグレーションを実行する組合せの順序を決定する。
【０１０５】
命令生成部１０２６は、組合せ決定部１０２４が決定した組合せおよび実行順序決定部１０２５が決定した実行順序に基づき、ライブマイグレーション制御装置２２０およびトラヒックエンジニアリング制御装置３２０に送信する命令を生成する。たとえば、組合せ決定部１０２４および実行順序決定部１０２５により、仮想マシンＶＭ１およびＶＭ２のライブマイグレーションを同時に実行し、実行終了後、次に、仮想マシンＶＭ３およびＶＭ４のライブマイグレーションを同時に実行する、と決定されたとする。この場合、命令生成部１０２６は、仮想マシンＶＭ１およびＶＭ２のライブマイグレーションの実行を指示するライブマイグレーション実行命令と、仮想マシンＶＭ３およびＶＭ４のライブマイグレーションの実行を指示するライブマイグレーション実行命令とをそれぞれ生成する。また、命令生成部１０２６は、仮想マシンＶＭ１およびＶＭ２の移行先マシンの起動および仮想マシンＶＭ１およびＶＭ２の停止を命じる命令を生成する。さらに、命令生成部１０２６は、仮想マシンＶＭ３およびＶＭ４の移行マシンの起動および仮想マシンＶＭ３およびＶＭ４の停止を命じる命令を生成する。
【０１０６】
また、命令生成部１０２６は、条件決定部１０２２が決定した情報転送経路のうち、仮想マシンＶＭ１およびＶＭ２並びにその移行先マシンを宛先または送信元とする情報の転送経路を規定する予約ラベルテーブルを作成するよう指示する予約ラベルテーブル作成命令（予約パケット）を生成する。さらに、命令生成部１０２６は、仮想マシンＶＭ１およびＶＭ２並びにその移行先マシンに対するトラヒックの転送経路を規定する予約ラベルテーブルでラベルテーブルを更新するよう指示するラベルテーブル更新命令（切替パケット）を生成する。命令生成部１０２６は、さらに、条件決定部１０２２が決定した情報転送経路のうち、仮想マシンＶＭ３およびＶＭ４並びにその移行先マシンを宛先または送信元とする情報の転送経路を規定する予約ラベルテーブルを作成するよう指示する予約ラベルテーブル作成命令（予約パケット）を生成する。さらに、命令生成部１０２６は、仮想マシンＶＭ３およびＶＭ４並びにその移行先マシンに対するトラヒックの転送経路を規定する予約ラベルテーブルでラベルテーブルを更新するよう指示するラベルテーブル更新命令（切替パケット）を生成する。
【０１０７】
命令送信部１０２７は、後述するタイミング制御部１０２８からの指示に従い、命令生成部１０２６が生成した命令をライブマイグレーション制御装置２２０およびトラヒックエンジニアリング制御装置３２０に送信する。
【０１０８】
タイミング制御部１０２８は、命令生成部１０２６が各命令を生成すると、命令送信部１０２７に対して、実行順序決定部１０２５が決定した順序に従い、ライブマイグレーション制御装置２２０およびトラヒックエンジニアリング制御装置３２０に対して、ライブマイグレーション実行命令および予約ラベルテーブル作成命令を送信するよう指示する。また、タイミング制御部１０２８は、ライブマイグレーション制御装置２２０およびトラヒックエンジニアリング制御装置３２０各々から、ライブマイグレーション実行完了通知および予約ラベルテーブル作成完了通知を受信すると、命令送信部１０２７に対して、ライブマイグレーション制御装置２２０およびトラヒックエンジニアリング制御装置３２０に対して、移行先マシン起動命令およびラベルテーブル更新命令を送信するよう指示する。
【０１０９】
［第３の実施形態に係る統合制御装置の処理の流れ］
第３の実施形態に係る統合制御装置１０００における処理の流れを、図１６を参照して説明する。図１６は、第３の実施形態に係る統合制御装置１０００における処理の流れの一例を示す図である。まず、情報取得部１０２１は、ライブマイグレーション制御装置２２０、トラヒックエンジニアリング制御装置３２０および優先ユーザ制御装置４２０から各々、ライブマイグレーション対象となる複数の仮想マシンの情報、トラヒックエンジニアリングの対象となるネットワークの情報および優先ユーザの情報を取得する（ステップＳ１６０１）。次に、条件決定部１０２２は、情報取得部１０２１が取得した情報に基づき、混合整数線形計画法を用いて、最適解となる移行先およびライブマイグレーション後の情報転送経路を決定する（ステップＳ１６０２）。ここまでの処理は、第１および第２の実施形態と同様である。
【０１１０】
次に、同時実行判定部１０２３は、ライブマイグレーションの対象となる複数の仮想マシンの情報および条件決定部１０２２が決定した移行先の情報、記憶部１０１０内の制御対象記憶部１０１２に格納された制御対象情報、優先ユーザの情報等に基づき、優先ユーザへの通信品質保証を損なわずにすべてのライブマイグレーションを同時に実行することができるか否かを判定する（ステップＳ１６０３）。同時実行判定部１０２３が、すべてのライブマイグレーションを同時に実行することはできないと判定した場合（ステップＳ１６０３，否定）、次に、組合せ決定部１０２４が、同時実行可能な仮想マシンの組合せを決定する（ステップＳ１６０４）。ここで、組合せの数をｎ（ｎは１以上の自然数）とする。次に、実行順序決定部１０２５が、ｎ個の組合せについてライブマイグレーションおよびトラヒックエンジニアリングを実行する順序を決定する（ステップＳ１６０５）。
【０１１１】
命令生成部１０２６は、組合せ決定部１０２４が決定した組合せと実行順序決定部１０２５が決定した実行順序に基づき、１番目の組合せ「ｋ」を選択する（ステップＳ１６０６，Ｓ１６０７，ｋ＝１）。そして、命令生成部１０２６は、組合せ決定部１０２４が決定した組合せと実行順序決定部１０２５が決定した実行順序に基づき、１番目にライブマイグレーションおよびトラヒックエンジニアリングを実行する仮想マシンの組合せに対応した、ライブマイグレーション実行命令、予約ラベルテーブル作成命令、移行先マシン起動命令およびラベルテーブル更新命令を作成する（ステップＳ１６０８）。そして、タイミング制御部１０２８からの指示に基づき、命令送信部１０２７は、１番目の組合せ用のライブマイグレーション実行命令および予約ラベルテーブル作成命令をそれぞれ、ライブマイグレーション制御装置２２０およびトラヒックエンジニアリング制御装置３２０に送信し、該当する仮想マシンからのメモリ内容の移動と、各ルータでの予約ラベルテーブルの作成を実行させる（ステップＳ１６０９）。ステップＳ１６０９における処理は、第２の実施形態について説明した処理段階Ａにおける処理と同様である（図９参照）。
【０１１２】
メモリ内容の移動と予約ラベルテーブルの作成が完了し、ライブマイグレーション制御装置２２０およびトラヒックエンジニアリング制御装置３２０から完了通知が送信されると、次に、タイミング制御部１０２８からの指示に基づき、１番目の組合せに対応した、移行先マシン起動命令およびラベルテーブル更新命令を、命令送信部１０２７が送信する。そして、移行先マシンの起動とラベルテーブルの更新が実行される（ステップＳ１６１０）。ステップＳ１６１０における処理は、第２の実施形態について説明した処理段階Ｂにおける処理と同様である（図９参照）。
【０１１３】
１番目の組合せに対するライブマイグレーションおよびトラヒックエンジニアリングが完了すると、命令生成部１０２６は、次の組合せがあるか否かを判定する（ステップＳ１６１１）。次の組合せがあると判定すると（ステップＳ１６１１，否定）、次の組合せを選択するためｋ＝ｋ＋１と設定し（ステップＳ１６１２）、ステップＳ１６０７に戻って次の組合せを選択し、命令生成部１０２６が次の組合せに対応する命令を生成する。次の組合せがない、すなわち、すべての組合せについてライブマイグレーションおよびトラヒックエンジニアリングの実行を完了したと判定すると（ステップＳ１６１１，肯定）、処理を終了する。
【０１１４】
ステップＳ１６０３において、同時実行判定部１０２３が、すべてのライブマイグレーションを同時に実行することができると判定した場合（ステップＳ１６０３，肯定）には、組合せ決定部１０２４は、ライブマイグレーションの対象となるすべての仮想マシンの集合を、ライブマイグレーションを同時実行する仮想マシンの組合せとして設定する（ステップＳ１６１３，ｋ＝ｎ＝１）。命令生成部１０２６は、設定した組合せを選択し（ステップＳ１６０７）、組合せに対応した命令を生成する（ステップＳ１６０８）。そして、統合制御装置１０００は、ステップＳ１６０９以降の処理を実行する。
【０１１５】
なお、上記第３の実施形態では、ライブマイグレーションを仮想マシンの組合せごとに、複数回に分けて実行するものとした。そして、ライブマイグレーションの実行時に、当該ライブマイグレーションの対象となる仮想マシンおよびその移行先マシンを宛先または送信元とするパケットの情報転送経路についてトラヒックエンジニアリングを実行するものとして説明した。しかし、場合によっては、複数の仮想マシンのライブマイグレーションの結果として、ライブマイグレーションの対象となった仮想マシンおよびその移行先マシン以外の処理装置を宛先または送信元とするパケットについても、情報転送経路を変更することが望ましい場合が考えられる。このような場合には、ライブマイグレーション後の情報転送経路の決定時（図１６，ステップＳ１６０２）において、ライブマイグレーション対象である仮想マシンおよびその移行先マシン以外を宛先または送信元とするパケットの情報転送経路が決定される。これらの情報転送経路については、すべてのライブマイグレーションが終了した後（たとえば、図１６のステップＳ１６１１の後）に、まとめてトラヒックエンジニアリング制御装置３２０に予約ラベルテーブル作成命令およびラベルテーブル更新命令を送信して、更新処理を行うものとしてもよい。
【０１１６】
また、上記第３の実施形態では、組合せを選択するごとに、当該組合せに対応した命令を生成するものとして説明した。しかし、本実施形態はこれに限定されず、たとえば、ライブマイグレーションおよびトラヒックエンジニアリングの実行前に、すべての組合せに対応する命令を命令生成部１０２６に生成させておき、その後、１番目の組合せについてのライブマイグレーションおよびトラヒックエンジニアリングを実行するものとしてもよい。また、命令の生成は他の組合せについてライブマイグレーション等が実行されている間に行うものとしてもよい。
【０１１７】
また、上記第３の実施形態では、仮想マシンの組合せについてライブマイグレーションの実行順序を決定し、決定した順序に基づいてライブマイグレーションおよびトラヒックエンジニアリングを実行するものとしたが、組合せ数や予想される輻輳の程度等によっては、実行順序を決定せずに、ランダムに組合せを選択して順次実行するものとしてもよい。
【０１１８】
また、上記第３の実施形態では、ライブマイグレーションとトラヒックエンジニアリングをそれぞれの組合せについて同期的に実行するものとしたが、各組合せについてライブマイグレーションが完了した後に、当該組合せに関係するトラヒックエンジニアリングを実行するものとしてもよい。
【０１１９】
［第３の実施形態に係る統合制御装置の効果］
上記のように、第３の実施形態に係る統合制御装置１０００は、複数のライブマイグレーションを実行する場合、優先制御を加味してすべてのライブマイグレーションを同時実行できるか否かを判定する。同時実行できないと判定した場合、統合制御装置１０００は、同時実行できる組合せを決定し、組合せごとにライブマイグレーションおよびトラヒックエンジニアリングを実行する。このため、データセンタやネットワークの性能上の制約や優先制御による制約により、ライブマイグレーションを同時に実行できない場合であっても、優先ユーザへの通信品質保障を考慮しつつ適切にライブマイグレーションおよびトラヒックエンジニアリングを統合制御することができ、クラウドコンピューティングにおいて特定ユーザに対する通信品質の保障を可能とすることができる。
【０１２０】
また、上記のように、第３の実施形態に係る統合制御装置１０００は、複数のライブマイグレーションを実行する場合、優先制御を加味してすべてのライブマイグレーションを同時実行できるか否かを判定する。そして、同時実行できないと判定した場合、統合制御装置１０００は、同時に実行した場合に、優先制御を加味しつつ最も短時間でライブマイグレーションを完了することができる組合せを決定し、組合せごとにライブマイグレーションおよびトラヒックエンジニアリングを実行する。このため、データセンタやネットワークの性能上の制約や優先制御による制約により、ライブマイグレーションを同時に実行できない場合であっても、優先ユーザへの通信品質保障を考慮しつつ適切にライブマイグレーションおよびトラヒックエンジニアリングを統合制御することができる。さらに、ライブマイグレーションに要する時間を削減することができ、クラウドコンピューティングにおいて特定ユーザに対する通信品質の保障を可能とすることができる。
【０１２１】
また、上記のように、第３の実施形態に係る統合制御装置１０００は、複数のライブマイグレーションを実行する場合、優先制御を加味してすべてのライブマイグレーションを同時実行できるか否かを判定する。そして、同時実行できないと判定した場合、統合制御装置１０００は、優先制御を加味して同時にライブマイグレーションを実行した場合に発生する輻輳が最も少ない仮想マシンの組合せを決定する。そして、統合制御装置１０００は、組合せごとにライブマイグレーションおよびトラヒックエンジニアリングを実行する。このため、優先ユーザへの通信品質保障を考慮しつつライブマイグレーション中に発生する輻輳を抑制し、ライブマイグレーションに要する時間を削減することができ、クラウドコンピューティングにおいて特定ユーザに対する通信品質の保障を可能とすることができる。
【０１２２】
また、上記のように、第３の実施形態に係る統合制御装置１０００は、複数のライブマイグレーションを実行する場合、優先制御を加味してすべてのライブマイグレーションを同時実行できるか否かを判定する。そして、同時実行できないと判定した場合、統合制御装置１０００は、優先制御を加味して同時にライブマイグレーションを実行することができる仮想マシンの複数の組合せを決定する。そして、統合制御装置１０００は、複数の組合せについて、順次ライブマイグレーションを実行した場合に、優先制御を加味して先にライブマイグレーションを実行した仮想マシンに対するトラヒックにより輻輳が生じる可能性が最も低い順序を、混合整数線形計画法を用いて決定する。このため、優先ユーザへの通信品質保障を考慮しつつ、仮想マシンの複数の組合せについて、順次ライブマイグレーションを実行する場合であっても、ライブマイグレーションが完了した仮想マシンに対するトラヒックが、まだライブマイグレーションが完了していない仮想マシンの処理に与える影響を抑制することができ、クラウドコンピューティングにおいて特定ユーザに対する通信品質の保障を可能とすることができる。
【０１２３】
（第４の実施形態）
これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、その他の実施形態にて実施されてもよい。以下に、その他の実施形態を説明する。
【０１２４】
上に説明した第１の実施形態においては、優先ユーザ制御装置４００は、統合制御装置１００とは別個に設けるものとした（図１参照）。しかし、これに限らず、優先ユーザ制御装置４００は、統合制御装置１００と一体に設けるものとしてもよい。また、たとえば、複数の事業者が一つの統合制御装置１００によって制御されるインタークラウドシステムを利用する場合には、各事業者との間で契約を結んだユーザごとに複数の異なる優先ユーザ制御装置４００を設けてもよい。このように構成することで、ユーザの情報を事業者ごとに管理し、必要に応じてセキュリティ対策を講じて個人情報を管理することが可能となる。
【０１２５】
［インタークラウド環境］
たとえば、第１の実施形態の統合制御装置１００を、インタークラウドサーバとして構成してもよい。その場合、ライブマイグレーション制御装置２００を、クラウド事業者Ｘが管理する複数のデータセンタによって構成されるクラウドの管理を行う管理装置として構成してもよい。また、トラヒックエンジニアリング制御装置３００を、クラウド事業者Ｙが管理するネットワークによって構成されるクラウドの管理を行う管理装置として構成してもよい。このように構成することで、異なる事業者が運営するクラウドを統合してユーザに提供するインタークラウドシステムにおいて、各リソース間の動作を統合的に制御して、ユーザに提供することが可能となる。
【０１２６】
［システム構成］
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１２７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。たとえば、図１に示す例では、記憶部１１０を統合制御装置１００の内部に配置したが、記憶部１１０を統合制御装置１００の外部装置としてネットワーク経由で接続するようにしてもよい。また、たとえば、図１に示す例において、実行制御部１２３をライブマイグレーション実行制御部とトラヒックエンジニアリング実行制御部とに分離してもよく、また、図１５に示す例において、命令送信部１０２７とタイミング制御部１０２８とを統合してもよい。
【０１２８】
［プログラム］
図１７は、統合制御装置による一連の処理を実行するプログラムである統合制御プログラムによる情報処理が、コンピュータを用いて具体的に実現されることを示す図である。図１７に例示するように、コンピュータ３０００は、たとえば、メモリ３０１０と、ＣＰＵ（Central  Processing  Unit）３０２０と、ハードディスクドライブ３０８０と、ネットワークインタフェース３０７０とを有する。コンピュータ３０００の各部はバス３１００によって接続される。
【０１２９】
メモリ３０１０は、図１７に例示するように、ＲＯＭ３０１１およびＲＡＭ３０１２を含む。ＲＯＭ３０１１は、たとえば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。
【０１３０】
ここで、図１７に例示するように、ハードディスクドライブ３０８０は、たとえば、ＯＳ３０８１、アプリケーションプログラム３０８２、プログラムモジュール３０８３、プログラムデータ３０８４を記憶する。すなわち、開示の技術に係る統合制御プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール３０８３として、たとえばハードディスクドライブ３０８０に記憶される。たとえば、制御部１２０の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュール３０８３が、ハードディスクドライブ３０８０に記憶される。
【０１３１】
また、記憶部１１０に記憶されるデータのように、統合制御プログラムによる情報処理に用いられるデータは、プログラムデータ３０８４として、たとえばハードディスクドライブ３０８０に記憶される。そして、ＣＰＵ３０２０が、ハードディスクドライブ３０８０に記憶されたプログラムモジュール３０８３やプログラムデータ３０８４を必要に応じてＲＡＭ３０１２に読み出し、各種の手順を実行する。
【０１３２】
なお、統合制御プログラムに係るプログラムモジュール３０８３やプログラムデータ３０８４は、ハードディスクドライブ３０８０に記憶される場合に限られない。たとえば、プログラムモジュール３０８３やプログラムデータ３０８４は、着脱可能な記憶媒体に記憶されてもよい。この場合、ＣＰＵ３０２０は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、更新プログラムに係るプログラムモジュール３０８３やプログラムデータ３０８４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。この場合、ＣＰＵ３０２０は、ネットワークインタフェース３０７０を介して他のコンピュータにアクセスすることで各種データを読み出す。
【０１３３】
［その他］
なお、本実施形態で説明した統合制御プログラムは、インターネット等のネットワークを介して配布することができる。また、統合制御プログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【０１３４】
１００  統合制御装置
１０１  通信部
１１０  記憶部
１１１  制御情報記憶部
１１２  制御対象記憶部
１２０  制御部
１２１  情報取得部
１２２  条件決定部
１２３  実行制御部
２００  ライブマイグレーション制御装置
３００  トラヒックエンジニアリング制御装置
４００  優先ユーザ制御装置
５００  リソース
６００  ネットワーク
７００  外部ネットワーク
８００  ユーザ端末
【図１】
0005976603.tif 000002
【図２−１】
0005976603.tif 000003
【図２−２】
0005976603.tif 000004
【図３】
0005976603.tif 000005
【図４−１】
0005976603.tif 000006
【図４−２】
0005976603.tif 000007
【図５】
0005976603.tif 000008
【図６】
0005976603.tif 000009
【図７】
0005976603.tif 000010
【図８】
0005976603.tif 000011
【図９】
0005976603.tif 000012
【図１０】
0005976603.tif 000013
【図１１】
0005976603.tif 000014
【図１２−１】
0005976603.tif 000015
【図１２−２】
0005976603.tif 000016
【図１３】
0005976603.tif 000017
【図１４】
0005976603.tif 000018
【図１５】
0005976603.tif 000019
【図１６】
0005976603.tif 000020
【図１７】
0005976603.tif 000021