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