以下に、開示する統合制御装置および統合制御方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、各実施形態は適宜組み合わせることができる。
(第1の実施形態)
図1を参照し、第1の実施形態に係る統合制御装置の概要について説明する。図1は、第1の実施形態に係る統合制御装置の概要を示す図である。図1中、統合制御装置100は、ライブマイグレーション制御装置200、トラヒックエンジニアリング制御装置300、優先ユーザ制御装置400と接続される。統合制御装置100は、ライブマイグレーション制御装置200、トラヒックエンジニアリング制御装置300、優先ユーザ制御装置400各々から、ライブマイグレーションの対象となる仮想マシンの情報、トラヒックエンジニアリングの対象となるネットワークの情報、優先的に通信品質を保障する優先ユーザの情報を取得する。統合制御装置100は、取得した情報に基づき、ライブマイグレーション、トラヒックエンジニアリングおよび優先制御を統合的に制御する。なおここで、優先制御とは、優先ユーザに対して通信品質を保障するための制御をいうものとする。
ライブマイグレーション制御装置200は、統合制御装置100およびリソース500と接続される。図1中、リソース500は、データセンタDC1とデータセンタDC2とを備える。データセンタDC1内には、仮想マシン(Virtual Machine)VM1,VM2が構築されている。また、データセンタDC2内には、仮想マシンVM3,VM4が構築されている。データセンタDC1およびデータセンタDC2は、ユーザに対して適切な資源を提供するため、適宜仮想的に構成が変更され、必要に応じて一つ又は複数の仮想マシンが構築される。なお、図1においては、便宜的に、リソース500が二つのデータセンタを備え、各データセンタにおいて二つの仮想マシンが構築されているものとしたが、リソース500が備えるデータセンタの数および各データセンタに構築される仮想マシンの数は、図示される数に限定されるものではない。また、ライブマイグレーションにおいては、各データセンタに適宜新しい仮想マシンが構築され、既存の仮想マシンが再構築されることがある。
ライブマイグレーション制御装置200は、データセンタDC1およびDC2を制御する。具体的には、データセンタDC1およびDC2内の仮想マシンの処理状況や負荷状況を検出する。ライブマイグレーション制御装置200は、特定の仮想マシンに負荷が集中している等、処理効率の低下を検出すると、適切に負荷が分散され処理効率が向上するように、ライブマイグレーションを実行する。たとえば、処理能力の低い仮想マシンVM1に負荷が集中し、他方、処理能力の高い仮想マシンVM4が使用されておらず、停止した状態であるとする。この場合、ライブマイグレーションにより、仮想マシンVM1の処理内容、具体的にはメモリ内容を仮想マシンVM4に移行させて処理を引き継がせる。また、ライブマイグレーション制御装置200は、仮想マシンVM1に負荷が集中している一方、他のデータセンタDC2に対する負荷が低い場合、データセンタDC2内に新たに仮想マシンを構築して、仮想マシンVM1の処理内容を新しく構築した仮想マシンに引き継がせることもできる。ライブマイグレーション制御装置200は、このようにして、負荷を分散し、処理効率を向上させる。
また、ライブマイグレーション制御装置200は、ライブマイグレーションを実行すると決定した場合、統合制御装置100にライブマイグレーション(LM)通知を送信する。また、ライブマイグレーション制御装置200は、統合制御装置100からの要求に応じて、ライブマイグレーションの対象となる仮想マシンの情報を統合制御装置100に送信する。
また、ライブマイグレーション制御装置200は、統合制御装置100からの要求に応じて、ライブマイグレーションの対象となる仮想マシンの情報を送信する際、優先ユーザの制御に関連する情報を併せて送信する。たとえば、ライブマイグレーション制御装置200は、ライブマイグレーションの対象となる仮想マシンを利用している優先ユーザのユーザIDや、当該ユーザが仮想マシンにアクセスする際のIPアドレス等の情報を送信する。
トラヒックエンジニアリング制御装置300は、統合制御装置100およびネットワーク600と接続される。トラヒックエンジニアリング制御装置300は、ネットワーク600内の情報転送経路やルータの使用率を検出し、検出結果に応じて、情報転送経路を更新する。すなわち、トラヒックエンジニアリング制御装置300は、ネットワーク600におけるトラヒックエンジニアリングを実行する。また、トラヒックエンジニアリング制御装置300は、統合制御装置100からの要求に応じて、ネットワーク600の情報を統合制御装置100に送信する。
優先ユーザ制御装置400は、統合制御装置100、リソース500およびネットワーク600と接続される。優先ユーザ制御装置400は、優先的に通信品質を保障されるユーザである優先ユーザに関する情報を管理する。たとえば、優先ユーザ制御装置400は、優先ユーザを識別する情報と当該優先ユーザに対して保障すべき通信品質保障水準とを対応付けて記憶する。優先ユーザ制御装置400は、新しい優先ユーザの登録があるごとに統合制御装置100から優先ユーザに関する情報を受信して記憶するように構成してもよい。また、優先ユーザ制御装置400は、ネットワークを介して優先ユーザに関する情報たとえば優先ユーザを示す識別子が付された情報を検出して、適宜優先ユーザに関する情報を記憶するように構成してもよい。
リソース500は、ライブマイグレーション制御装置200およびネットワーク600と接続される。リソース500は、ユーザ端末800からの要求に応じてユーザに割り当てられる。そして、リソース500は、ネットワーク600および外部ネットワーク(NW)700を介して、ユーザに対するサービスに利用される。ユーザに対して割り当てられるリソース500内の資源、たとえば、仮想マシンは、利用状況や負荷状況に応じて、適宜ライブマイグレーション等により変更される。
ネットワーク600は、トラヒックエンジニアリング制御装置300と、リソース500と、外部ネットワーク700と接続される。外部ネットワーク700はさらに、ユーザ端末800と接続される。ネットワーク600は、ユーザ端末800から送信される要求や情報を、外部ネットワーク700を介して受信し、受信した要求や情報をリソース500に転送する。また、リソース500から送信される情報を、外部ネットワーク700に転送する。さらに、リソース500内の仮想マシン等から送信される情報を他の仮想マシン等に転送する。
ネットワーク600内には、複数のルータが配置される。図1の例では、5つのルータR1,R2,R3,R4,R5を示す。ただし、ネットワーク600を構成するルータの数は図示される数に限られるものではない。ルータは、予め定められた情報転送経路に沿って、情報を転送する。また、各ルータは、情報転送経路に関する情報を保持する。そして、各ルータは、トラヒックエンジニアリング制御装置300からの命令に応じて、適宜保持する情報転送経路の情報を更新する。なお、ネットワーク600の種類は特に限定されず、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)等であってよい。
外部ネットワーク700は、ネットワーク600およびユーザ端末800と接続される。外部ネットワーク700は、ネットワーク600を介してリソース500とユーザ端末800との間の情報を転送する。なお、外部ネットワーク700の種類は特に限定されず、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)等であってよい。
ユーザ端末800は、外部ネットワーク700と接続される。ユーザ端末800のユーザは、ネットワーク600および外部ネットワーク700を介して、リソース500との間で情報をやり取りし、リソース500により提供されるサービスを利用する。
[第1の実施形態に係る統合制御装置100の構成]
次に、統合制御装置100の構成について図1を参照して説明する。図1中、統合制御装置100は、通信部101と、記憶部110と、制御部120とを備える。通信部101は、統合制御装置100と、ライブマイグレーション制御装置200、トラヒックエンジニアリング制御装置300および優先ユーザ制御装置400との間での情報の通信を実行する。記憶部110は、統合制御装置100内での処理に使用する情報および処理の結果生成される情報等を記憶する。制御部120は、統合制御装置100における優先ユーザに対する通信品質保障のための優先制御を加味したライブマイグレーションとトラヒックエンジニアリングとの統合制御処理を制御する。
[記憶部110に格納する情報]
記憶部110は、制御情報記憶部111と制御対象記憶部112とを備える。制御情報記憶部111は、統合制御装置100が優先制御を加味してライブマイグレーションおよびトラヒックエンジニアリングの制御内容を決定する際に用いる制御情報を記憶する。制御情報は、たとえば、制御目標および当該制御目標を達成するための目的関数、制約条件等を含む。制御目標とは、たとえば、ユーザとデータセンタ間での遅延を最小化すること、ネットワーク資源の利用効率を最大化すること、等である。制御目標に対応付けて、当該制御目標を達成するために最も適したライブマイグレーションの移行先およびトラヒックエンジニアリングによる情報転送経路を最適解として算出するための目的関数、制約条件等を格納する。なお、目的関数や制約条件は、優先ユーザとそれ以外のユーザとで必要に応じて異なる情報転送経路を使用して優先ユーザに対して通信品質を保障するように設定する。
なお、第1の実施形態では、制御目標、目的関数および制約条件等の制御情報を予め制御情報記憶部111に格納するものとして説明するが、制御情報は、制御の目的に応じて、統合制御装置100を操作するオペレータが適宜設定してもよい。また、ライブマイグレーションが実行される時間帯に合わせて、制御情報記憶部111から制御目標が自動的に選択され、それに応じた目的関数および制約条件に基づいて、移行先や情報転送経路が決定されるものとしてもよい。さらに、仮想マシンを利用するユーザごとに、制御目標を設定するように構成してもよい。すなわち、優先ユーザに対して保障すべき通信品質のパラメータが各優先ユーザごとに相違する場合は、優先ユーザごとに制御目標を設定してもよく、さらに優先ユーザ以外の通常のユーザとの間で異なる制御目標を設定して差別化を図ってもよい。また、ここでは、目的関数および制約条件は、混合整数線形計画法に基づいて設定するものとするが、利用する方法は、混合整数線形計画法に限られず、たとえば、非線形計画法を利用してもよい。また、利用する計画法の種類に応じて、制御情報記憶部111に格納される情報は適宜変更されてよい。
図2−1を参照して、制御情報記憶部111に格納される制御情報の一例を説明する。図2−1は、第1の実施形態に係る統合制御装置100が記憶する制御情報の一例を示す図である。図2−1に示す例では、目標IDに対応付けて、制御目標、目的関数および制約条件が格納されている。たとえば、目標ID「01」に対応付けて、制御目標である「ユーザ/データセンタ(DC)間の遅延の最小化」が格納されている。そして、制御目標を達成する最適解を導くための目的関数として「min:cTx」、制約条件として「Ax=b,x≧0」等が格納されている。また、この時点で選択されている制御目標を示すフラグが記憶されている。図2−1の例では、目標ID「01」の制御情報が選択されていることが、フラグ「1」により示されている。
次に、図2−2を参照して、制御対象記憶部112に格納される制御対象の情報の一例を説明する。図2−2は、第1の実施形態に係る統合制御装置100が記憶する制御対象の情報の一例を示す図である。図2−2に示すように、制御対象記憶部112には、統合制御の対象であるリソース500およびネットワーク600に関する情報が格納される。たとえば、データセンタDC1について、当該データセンタを一意に識別する識別子(ID:Identifier)である対象ID「DC001」と対応付けて、当該データセンタを管理する管理者ID「M001」や、当該データセンタの場所「東京」などが記憶される。また、データセンタDC1内の仮想マシンそれぞれの性能が記憶される。たとえば、リソースID「VM001」の仮想マシンについて、メモリ容量「16GB」、CPUコアクロック「3GHz」等が記憶される。
また、ネットワーク600に関する情報として、ネットワーク600を構成するルータの情報が記憶される。図2−2の例では、複数のネットワークについての情報を示す。図2−2では、ネットワークを一意に識別するネットワークIDに対応付けて、当該ネットワークを構成するルータのIDが格納される。たとえば、ネットワークID「NW001」に対応付けて、複数のルータのルータID「R001」「R002」等が格納される。また、各ルータの性能に関する情報が格納される。たとえば、ルータID「R001」のルータについて、帯域(物理帯域保証通信速度、最大通信速度)「250kbps,1Mbps」や、遅延(最大遅延時間、平均遅延時間)「10s,5s」が記憶される。なお、図2−2に示す制御対象情報は、統合制御の開始時に、ライブマイグレーション制御装置200およびトラヒックエンジニアリング制御装置300の各々から適宜送信され、統合制御装置100に格納されるものとしてもよい。また、仮想マシンの構成が変更されたり、ネットワークの構成が変更されたりした場合に、自動的にライブマイグレーション制御装置200およびトラヒックエンジニアリング制御装置300から情報が送信され、制御対象記憶部112に記憶されるものとしてもよい。また、統合制御装置100からの要求に応じて、ライブマイグレーション制御装置200およびトラヒックエンジニアリング制御装置300から送信され、制御対象記憶部112に記憶されるものとしてもよい。
[制御部120の構成]
図1を参照し、制御部120の構成について説明する。制御部120は、情報取得部121と、条件決定部122と、実行制御部123と、を備える。情報取得部121は、通信部101を介して、ライブマイグレーション制御装置200、トラヒックエンジニアリング制御装置300および優先ユーザ制御装置400の各々から、ライブマイグレーションの対象となる仮想マシンの情報、トラヒックエンジニアリングの対象となるネットワーク600の情報および優先ユーザに関する情報を取得する。より具体的には、情報取得部121は、ライブマイグレーションの対象となる仮想マシンに対するトラヒック量や、ライブマイグレーションによる当該仮想マシンの移行先候補、移行先候補のデータセンタの位置等を、ライブマイグレーション制御装置200から受信する。また、情報取得部121は、ライブマイグレーションの対象である仮想マシンに接続され、トラヒックエンジニアリングの対象となるネットワーク内の構成情報であるネットワークトポロジ、当該ネットワークの通信帯域や伝送遅延等を、トラヒックエンジニアリング制御装置300から受信する。また、情報取得部121は、優先ユーザのユーザID、当該ユーザが接続するルータのルータID、当該ユーザに対して保障する通信品質等の情報を、優先ユーザ制御装置400から受信する。
図3、図4−1、図4−2および図5を参照し、ライブマイグレーション制御装置200、トラヒックエンジニアリング制御装置300および優先ユーザ制御装置400から、統合制御装置100に送信される情報について説明する。図3は、第1の実施形態に係る統合制御装置100が、ライブマイグレーション制御装置200から受信する情報の一例を示す図である。図4−1は、第1の実施形態に係る統合制御装置100が、トラヒックエンジニアリング制御装置300から受信する情報の一例を示す図である。図4−2は、図4−1に示すネットワークトポロジについて説明するための図である。図5は、第1の実施形態に係る統合制御装置100が、優先ユーザ制御装置400から受信する情報の一例を示す図である。
図3の例では、ライブマイグレーション制御装置200は、ライブマイグレーションの対象となる仮想マシンのIDと、当該仮想マシンを使用するユーザのIDと、当該仮想マシンに対するトラヒック量と、を対応付けて送信する。また、ライブマイグレーション制御装置200は、当該仮想マシンのIDに対応付けて、当該仮想マシンの移行先候補となる仮想マシンのIDと、当該仮想マシンのIPアドレスと、を送信する。たとえば、図3に示す情報では、ライブマイグレーションの対象となる仮想マシンのID「VM001」と、当該仮想マシンを利用するユーザのID「U001」と、が対応付けられている。さらに、当該仮想マシンのID「VM001」に、当該仮想マシンに対するトラヒック量「30Mbps」と、当該仮想マシンの移行先候補である仮想マシンのID「VM010」と「VM020」とが対応付けられている。そして、当該仮想マシンのIPアドレスである「111.22.22.11」が対応付けられている。なお、ここで、仮想マシンの情報だけでなく、当該仮想マシンを利用するユーザのIDや、LM先の仮想マシンのIPアドレスを送信するのは、優先ユーザに対する通信品質保障を加味して統合制御を実現するためである。
なお、図3の例では、仮想マシンIDによって当該仮想マシンが配置されるデータセンタも識別できるものとするが、仮想マシンIDとは別に、当該仮想マシンが構築されているデータセンタのIDも対応付けて情報を構成してもよい。また、図3では、ライブマイグレーションによる仮想マシンの移行先は、既に構築されているが停止している仮想マシンとしたが、ライブマイグレーション制御装置200は、移行先候補として、仮想マシンのIDではなく、新たに仮想マシンを構築できるデータセンタのIDを送信してもよい。この場合は、ライブマイグレーション時に、移行先として決定されたデータセンタ内に仮想マシンが新たに構築される。
他方、トラヒックエンジニアリング制御装置300から送信される情報は、たとえば、図4−1に示すように、ネットワークIDと、当該ネットワーク内のネットワークトポロジと、通信帯域、遅延等とを対応づけたものである。図4−1の例では、ネットワークID「NW001」で識別されるネットワークに、ネットワークトポロジとして、「R1−R2−R3−R4」、「R1−R5−R6−R4」、「R1−R7−R8−R4」が対応付けられている。ネットワークトポロジは、ネットワーク内の構成要素間の接続関係や依存関係を示す情報である。図4−1に示すネットワークトポロジは、図4−2に示すように、ルータR1〜R8が接続されていることを示す。また、図4−1の例では、ネットワークID「NW001」に、通信帯域「1Gbps」が対応付けられている。さらに、ネットワークID「NW001」に各ルータでの遅延「R1:0.1s」等および各ルータ間での遅延「R1−R2:0.5s」等が対応付けられている。
優先ユーザ制御装置400から送信される情報は、たとえば、図5に示すように、ユーザを一意に示すユーザIDと、当該ユーザすなわち当該ユーザのユーザ端末が接続するルータを一意に示すルータIDとを対応付けたものである。さらに、ユーザIDに、当該ユーザのIPアドレスや、当該ユーザに対して保障する通信品質保障水準が対応付けられて送信される。通信品質保障水準とは、たとえば、当該ユーザに対して保障するスループットや遅延である。通信品質保障水準は予め契約時等に設定し、優先ユーザ制御装置400に記憶される。
たとえば、図5の例では、ユーザID「U001」に、接続するルータID「R001」、ユーザIPアドレス「109.12.123.23」が対応付けられている。また、ユーザID「U001」に通信品質保障水準(スループット、遅延)「2Mbps,1s」が対応付けられている。
条件決定部122は、情報取得部121がライブマイグレーション制御装置200、トラヒックエンジニアリング制御装置300および優先ユーザ制御装置400から取得した情報並びに制御情報記憶部111および制御対象記憶部112に記憶された情報に基づいて、ライブマイグレーションの対象となる仮想マシンの移行先およびライブマイグレーション後の情報転送経路を決定する。具体的には、条件決定部122は、混合整数線形計画法を利用して、移行先および情報転送経路を決定する。
すなわち、条件決定部122は、混合整数線形計画法を用いて、制約条件および目的関数に情報取得部121が取得した各情報を適用して、最適解を算出する。たとえば、条件決定部122は、ライブマイグレーションの対象となる仮想マシンの移行先候補の処理能力や、移行先候補のデータセンタの位置、ライブマイグレーションの対象となる仮想マシンに対するトラヒック量等に基づいて、制約条件および目的関数を用いて最適解を導出する。また、条件決定部122は、ネットワーク600の通信帯域や遅延等に基づいて、最適解を導出する。さらに、条件決定部122は、優先ユーザに対して保障すべき通信速度や通信量に基づいて、最適解を導出する。そして、条件決定部122は、最適解に基づいて、移行先および情報転送経路を決定する。
実行制御部123は、条件決定部122が決定した内容に基づいて、優先制御を加味してライブマイグレーションおよびトラヒックエンジニアリングを実行するよう、ライブマイグレーション制御装置200およびトラヒックエンジニアリング制御装置300に命令を送信し、実行処理を制御する。
[第1の実施形態に係る統合制御装置の処理の流れ]
次に、図6を参照し、第1の実施形態に係る統合制御装置100による処理の流れを説明する。図6は、第1の実施形態に係る統合制御装置100による処理の流れの一例を示す図である。まず、統合制御装置100は、ライブマイグレーションの対象となる仮想マシン、トラヒックエンジニアリングの対象となるネットワークおよび優先ユーザに関する情報を受信する(ステップS101)。次に、統合制御装置100は、受信した情報に基づいて、混合整数線形計画法を用いて、最適解となる、ライブマイグレーションの移行先およびライブマイグレーション後の情報転送経路を決定する(ステップS102)。そして、統合制御装置100は、決定した移行先へのライブマイグレーションを実行し、決定した情報転送経路へ、ネットワーク内の情報転送経路を変更するよう実行を制御する(ステップS103)。そして、処理を終了する。
[第1の実施形態に係る統合制御処理の流れ]
次に図7を参照し、第1の実施形態に係る統合制御装置100、ライブマイグレーション制御装置200、トラヒックエンジニアリング制御装置300および優先ユーザ制御装置400間での処理シーケンスの一例を説明する。図7は、第1の実施形態に係る統合制御装置100、ライブマイグレーション制御装置200、トラヒックエンジニアリング装置300、優先ユーザ制御装置400間での処理シーケンスの一例を示す図である。図7に示す例では、ライブマイグレーション制御装置200からのライブマイグレーション(LM)通知を受信することによって、統合制御装置100の統合制御処理が開始するものとして説明する。
ライブマイグレーション制御装置200は、リソース500の処理状況および負荷状況を検出し、たとえば、特定の仮想マシンにかかる負荷が所定の閾値を超えたと判定した場合に、LM通知を送信する(図7の(1))。
ライブマイグレーション制御装置200からのLM通知を受信した統合制御装置100は、ライブマイグレーション制御装置200、トラヒックエンジニアリング制御装置300および優先ユーザ制御装置400に、情報を送信するよう求める要求を送信する(図7の(2−1)、(2−2)、(2−3))。要求に応じて、ライブマイグレーション制御装置200は、ライブマイグレーションの対象である仮想マシンの情報および当該仮想マシンを利用するユーザの情報(図3参照)を、統合制御装置100に送信する(図7の(3−1))。また、トラヒックエンジニアリング制御装置300も、トラヒックエンジニアリングの対象であるネットワークの情報(図4−1参照)を、統合制御装置100に送信する(図7の(3−3))。さらに、優先ユーザ制御装置400も、優先ユーザに関する情報(図5参照)を、統合制御装置100に送信する(図7の(3−2))。情報を受信した統合制御装置100は、各情報に基づいて混合整数線形計画法を用いて、最適解となるライブマイグレーションの移行先およびライブマイグレーション後の情報転送経路を決定する。そして、決定した内容に基づいてライブマイグレーションおよびトラヒックエンジニアリングを実行するよう、ライブマイグレーション制御装置200およびトラヒックエンジニアリング制御装置300に制御命令を送信する(図7の(4−1)、(4−2))。
なお、第1の実施形態では、ライブマイグレーション制御装置200が、ライブマイグレーションの実行を決定し、統合制御装置100に通知するものとした。しかし、統合制御装置100による統合制御は、ライブマイグレーション制御装置200からのLM通知をトリガとして開始される場合に限られず、オペレータの制御命令の入力に応じて開始されてもよい。または、所定の期間ごとに統合制御装置100が、ライブマイグレーション制御装置200、トラヒックエンジニアリング制御装置300および優先ユーザ制御装置400に対して情報送信を要求する通知を発行し、受信した情報に基づいてライブマイグレーションの要否を判定した上で、統合制御を行うものとしてもよい。
また、ライブマイグレーションおよびトラヒックエンジニアリングの実行に係る判定は、統合制御装置100のみが実行するように構成してもよい。つまり、ライブマイグレーション制御装置200、トラヒックエンジニアリング制御装置300および優先ユーザ制御装置400は、ライブマイグレーションやトラヒックエンジニアリング、優先制御の実行に関する判定は行わないよう構成してもよい。この場合、ライブマイグレーション制御装置200、トラヒックエンジニアリング制御装置300および優先ユーザ制御装置400は、リソースの処理状況、ネットワークの使用状況および優先ユーザに関する情報を、継続的に統合制御装置100に送信する。そして、統合制御装置100は、受信した情報に基づいてライブマイグレーションの実行の要否やトラヒックエンジニアリングの実行の要否、優先制御の実行の要否について判定する。統合制御装置100は、いずれかの制御の実行が必要であると判定した場合、上記の、移行先や情報転送経路の決定処理を実行する。このように、ライブマイグレーション制御装置200、トラヒックエンジニアリング制御装置300および優先ユーザ制御装置400は、統合制御装置100に情報を送信するのみで、処理実行の要否判断は行わないように構成してもよい。そして、統合制御装置100の命令に基づいて、ライブマイグレーション制御装置200およびトラヒックエンジニアリング制御装置300が、優先制御を加味したライブマイグレーションおよびトラヒックエンジニアリングを実行するものとしてもよい。
[第1の実施形態に係る統合制御装置の効果]
上記のように、第1の実施形態に係る統合制御装置100は、ライブマイグレーション制御装置200、トラヒックエンジニアリング制御装置300および優先ユーザ制御装置400の各々からライブマイグレーションの情報、トラヒックエンジニアリングの情報、優先ユーザの情報を取得して、取得した情報に基づき、ライブマイグレーションによる仮想マシンの移行先およびライブマイグレーション後の情報転送経路を決定する。そして、統合制御装置100は決定した内容に基づいて、ライブマイグレーション制御装置200およびトラヒックエンジニアリング制御装置300によるライブマイグレーションおよびトラヒックエンジニアリングを制御する。このため、優先ユーザに対して通信品質を保障しつつライブマイグレーションとトラヒックエンジニアリングとを統合的に制御することが可能になる。
また、第1の実施形態に係る統合制御装置100は、ライブマイグレーションを考慮してトラヒックエンジニアリングによる経路変更内容を決定している。このため、ライブマイグレーションによってネットワーク内を行き来する情報量に変化が生じても、ライブマイグレーションの完了後、最適な情報転送経路を通じて情報を送信することができる。
また、第1の実施形態に係る統合制御装置100は、トラヒックエンジニアリングを考慮してライブマイグレーションによる移行先を決定している。このため、情報転送経路を考慮して適切な移行先を決定することができる。また、ライブマイグレーションによって仮想マシンの場所が大きく変化しても、適切に情報を送信することができる。
(第2の実施形態)
上記の通り、第1の実施形態に係る統合制御装置100は、ライブマイグレーションの情報、トラヒックエンジニアリングの情報および優先ユーザの情報を取得して、これらの情報を元に、ライブマイグレーションによる仮想マシンの移行先およびネットワーク内の情報転送経路を決定する。したがって、ライブマイグレーション後の情報転送経路が、優先ユーザに対する通信品質の保障を考慮して最適化される。第2の実施形態では、さらに、ライブマイグレーションの実行処理と、トラヒックエンジニアリングの実行処理とを同期させる。そして、第2の実施形態においては、移行先マシンが起動され処理を開始するときには、新しい情報転送経路が確立されているように、ライブマイグレーションとトラヒックエンジニアリングのタイミングを調整する。
[第2の実施形態に係る統合制御装置の構成]
図8を参照し、第2の実施形態に係る統合制御装置900の構成の一例を説明する。図8は、第2の実施形態に係る統合制御装置900の構成の一例を示す図である。図8においては、ライブマイグレーション制御装置、トラヒックエンジニアリング制御装置および優先ユーザ制御装置に接続されるリソース、ネットワーク等については図示を省略する。また、統合制御装置900中、第1の実施形態に係る統合制御装置100と同様の機能部については説明を省略する。
図8中、統合制御装置900は、ライブマイグレーション制御装置210、トラヒックエンジニアリング制御装置310および優先ユーザ制御装置410に接続される。統合制御装置900は、通信部901、記憶部910および制御部920を備える。通信部901は、統合制御装置900と外部との通信を実行する。すなわち、通信部901は、統合制御装置900とライブマイグレーション制御装置210、トラヒックエンジニアリング制御装置310および優先ユーザ制御装置410との間での情報の送受信を実行する。
記憶部910は、統合制御装置900内での処理に使用される情報および処理の結果生成される情報等を記憶する。記憶部910は、制御情報記憶部911および制御対象記憶部912を備える。制御情報記憶部911および制御対象記憶部912の機能は、第1の実施形態に係る制御情報記憶部111および制御対象記憶部112と同様である。
制御部920は、情報取得部921と、条件決定部922と、命令生成部924と、命令送信部925と、タイミング制御部926とを備える。情報取得部921および条件決定部922の動作および機能は、第1の実施形態と同様である。以下、命令生成部924、命令送信部925およびタイミング制御部926について説明する。なお、第2の実施形態の命令生成部924、命令送信部925およびタイミング制御部926は、第1の実施形態の実行制御部123に対応する。
命令生成部924は、条件決定部922が決定したライブマイグレーションによる仮想マシンの移行先およびライブマイグレーション後の情報転送経路に基づいて、命令を生成する。具体的には、命令生成部924は、ライブマイグレーション(LM)実行命令と、移行先マシン起動命令と、予約ラベルテーブル作成命令と、ラベルテーブル更新命令と、を生成する。
ライブマイグレーション実行命令は、ライブマイグレーション制御装置210に対して、ライブマイグレーションの対象である仮想マシンのメモリ内容を、移行先マシン(すなわち、移行先マシンが構築されるデータセンタ)に移動させるよう指示する命令である。移行先のデータセンタに移行先マシンとして新たに仮想マシンを構築する場合は、ライブマイグレーション実行命令は、移行先マシンの構築命令も含む。ライブマイグレーション制御装置210は、ライブマイグレーション実行命令を受信すると、ライブマイグレーションの対象である仮想マシンに対して、メモリ内容を移行先に移行させるよう指示する命令を送信する。この際も、新たに移行先として仮想マシンを構築する場合は、送信される命令は、移行先マシンの構築命令を含む。
移行先マシン起動命令は、ライブマイグレーション制御装置210に対して、ライブマイグレーションの移行先マシンを起動するよう指示する命令である。ライブマイグレーション制御装置210は、移行先マシン起動命令を受信すると、ライブマイグレーションによる移行先の仮想マシンに対して、起動命令を送信する。また、ライブマイグレーション制御装置210は、移行先マシンの起動後、移行元マシンの停止を指示する命令を移行元マシンに送信する。
ライブマイグレーションにおいては、まず、対象仮想マシンのメモリ内容を移行先に移行させ、その後、移行先のマシンを起動させて移行元の仮想マシンを停止させる。第2の実施形態では、ライブマイグレーションの実行とトラヒックエンジニアリングの実行とのタイミングを同期させるため、ライブマイグレーションを、メモリ内容の移動と、移行先マシンの起動との2段階に分離して実行するよう構成している。なお、第2の実施形態では、ライブマイグレーションにおいてメモリ内容を移動させるものとして説明するが、その他、仮想マシンが接続されるネットワーク等の環境に応じて、ファイルシステム等他の情報も移動させてもよい。また、移行先として新たに仮想マシンを構築する場合は、メモリ内容の移動の段階において、移行先マシンの構築も行う。
予約ラベルテーブル作成命令とは、トラヒックエンジニアリング制御装置310に対して、予約ラベルテーブルを生成するよう指示する命令である。予約ラベルテーブルは、条件決定部922により決定された情報転送経路を規定するテーブルである。ネットワーク内の各ルータは、情報転送経路を規定するラベルテーブルを保持する。予約ラベルテーブルは、このラベルテーブルを更新するものである。予約ラベルテーブルの詳細については後述する。トラヒックエンジニアリング制御装置310は、予約ラベルテーブル作成命令を受信すると、制御対象であるネットワーク内のルータに対して予約ラベルテーブルの生成を指示する命令を送信する。たとえば、トラヒックエンジニアリング制御装置310は、条件決定部922により決定された情報転送経路の情報を含む予約パケットを生成し、送信する。なお、ルータによる予約ラベルテーブルの作成の詳細についても後述する。
ラベルテーブル更新命令とは、トラヒックエンジニアリング制御装置310に対して、各ルータが保持するラベルテーブルを予約ラベルテーブルに更新するよう指示する命令である。トラヒックエンジニアリング制御装置310は、ラベルテーブル更新命令を受信すると、制御対象であるネットワーク内のルータに対してラベルテーブルを予約ラベルテーブルに更新するよう指示する命令を送信する。たとえば、トラヒックエンジニアリング制御装置310は、ルータに切替パケットを送信することで、ルータが保持するラベルテーブルを更新させる。ラベルテーブルの詳細についても後述する。
命令送信部925は、命令生成部924が生成した各命令を、後述するタイミング制御部926から指示されるタイミングで、ライブマイグレーション制御装置210およびトラヒックエンジニアリング制御装置310に送信する。
タイミング制御部926は、命令送信部925に対して、命令の送信タイミングを指示する。具体的には、タイミング制御部926は、ライブマイグレーション制御装置210へのライブマイグレーション実行命令の送信タイミングと、トラヒックエンジニアリング制御装置310への予約ラベルテーブル作成命令の送信タイミングとを同期させるよう指示を出す。また、タイミング制御部926は、ライブマイグレーション制御装置210への移行先マシン起動命令の送信タイミングと、トラヒックエンジニアリング制御装置310へのラベルテーブル更新命令の送信タイミングとを同期させるよう指示を出す。
具体的には、タイミング制御部926は、命令生成部924からライブマイグレーション実行命令と予約ラベルテーブル作成命令を生成したことを通知されると、命令送信部925にライブマイグレーション実行命令と予約ラベルテーブル作成命令を送信するよう指示する。そして、ライブマイグレーション制御装置210からのライブマイグレーション実行完了通知と、トラヒックエンジニアリング制御装置310からの予約ラベルテーブル作成完了通知とを受信すると、タイミング制御部926は、命令送信部925に対して、移行先マシン起動命令とラベルテーブル更新命令とを送信するよう指示する。
[第2の実施形態に係る統合制御装置900における処理の概要]
次に図9を参照し、第2の実施形態に係る統合制御装置900における実行制御処理の概要について説明する。図9は、第2の実施形態に係る統合制御装置900による実行制御処理の流れの概要を示す図である。第2の実施形態に係る統合制御装置900は、第1の実施形態と同様、ライブマイグレーションの対象である仮想マシンに関する情報と、当該仮想マシンに接続されるネットワークに関する情報と、優先ユーザに関する情報とを受信する(ステップS201)。次に、取得した情報に基づいて、混合整数線形計画法を用いて最適解を導出し、ライブマイグレーションの移行先と、ライブマイグレーション後の情報転送経路を決定する(ステップS202)。次に、統合制御装置900は、ライブマイグレーションの対象となる仮想マシンのメモリ内容をステップS202において決定された移行先に移動させ、ネットワーク内の各ルータに、ステップS202において決定された情報転送経路を規定する予約ラベルテーブルを作成させる(ステップS203:処理段階A)。次に、統合制御装置900は、移行先マシンを起動させ、ネットワーク内の各ルータが保持するラベルテーブルをステップS203において作成した予約ラベルテーブルに更新させる(ステップS204:処理段階B)。そして、統合制御装置900は実行制御処理を終了する。
[第2の実施形態に係る統合制御装置と他の装置との間での処理シーケンス]
さらに、図10を参照し、第2の実施形態に係る統合制御装置900と他の装置との間での処理シーケンスについて説明する。図10は、第2の実施形態に係る統合制御装置900、ライブマイグレーション制御装置210およびトラヒックエンジニアリング制御装置310間での実行制御の処理シーケンスの一例を示す図である。図10には、情報取得部921が情報を受信し、条件決定部922が移行先およびライブマイグレーション後の情報転送経路を決定し、命令生成部924が命令を生成した後の処理の流れの一例を示す。図10に示すように、まず、統合制御装置900(命令送信部925)は、ライブマイグレーション制御装置210に対して、命令生成部924が生成したライブマイグレーション(LM)実行命令を送信する(図10の(1−1))。同時に、統合制御装置900は、トラヒックエンジニアリング制御装置310に対して、予約ラベルテーブル作成命令を送信する(図10の(1−2))。なお、ライブマイグレーション実行命令の送信と予約ラベルテーブル作成命令の送信とは完全に同時である必要はなく、実質的に同期していればよい。
ライブマイグレーション制御装置210は、ライブマイグレーション実行命令を受信すると、ライブマイグレーションの対象である仮想マシンに対して、メモリ内容を移行先に移動させるよう指示するライブマイグレーション実行命令を送信する(図10の(2−1))。命令を受信した仮想マシンは、メモリ内容の移動を開始し、移動が完了すると、ライブマイグレーション制御装置210に対してライブマイグレーション実行完了通知を送信する(図10の(3−1))。
他方、トラヒックエンジニアリング制御装置310は、予約ラベルテーブル作成命令を受信すると、トラヒックエンジニアリングの対象であるネットワーク内の各ルータ(ラベルエッジルータ(LER)、ラベルスイッチルータ(LSR)等、詳細は後述)に予約ラベルテーブルを作成するよう指示する予約ラベルテーブル作成命令を送信する(図10の(2−2))。命令を受信したルータは、指示に従って、予約ラベルテーブルを作成する。ネットワーク内のすべてのルータが予約ラベルテーブルの作成を完了すると、トラヒックエンジニアリング制御装置310に、予約ラベルテーブル作成完了通知を送信する(図10の(3−2))。
ライブマイグレーション制御装置210は、仮想マシンからライブマイグレーション実行完了通知を受信すると、統合制御装置900に対して、ライブマイグレーション実行完了通知を送信する(図10の(4−1))。同様に、トラヒックエンジニアリング制御装置310は、すべてのルータが予約ラベルテーブルの作成を完了したことを示す予約ラベルテーブル作成完了通知を受信すると、統合制御装置900に対して、予約ラベルテーブル作成完了通知を送信する(図10の(4−2))。ここまでが処理段階Aである。
統合制御装置900は、ライブマイグレーション実行完了通知をライブマイグレーション制御装置210から受信し、かつ、予約ラベルテーブル作成完了通知をトラヒックエンジニアリング制御装置310から受信すると、次の処理(処理段階B)に進む。すなわち、統合制御装置900は、ライブマイグレーション制御装置210に対して、移行先マシン起動命令を送信する(図10の(5−1))。また、統合制御装置900は、トラヒックエンジニアリング制御装置310に対して、ラベルテーブル更新命令を送信する(図10の(5−2))。具体的には、タイミング制御部926は、ライブマイグレーション実行完了通知および予約ラベルテーブル作成完了通知の受信を検出すると、命令送信部925に対して、移行先マシン起動命令とラベルテーブル更新命令を送信するよう指示する。なお、移行先マシン起動命令の送信とラベルテーブル更新命令の送信も完全に同時である必要はなく、実質的に同期していればよい。
移行先マシン起動命令を受信したライブマイグレーション制御装置210は、移行先の仮想マシンに対して起動命令を送信する(図10の(6−1))。移行先の仮想マシンは、起動命令を受信すると、起動処理を開始する。そして、起動が完了すると、移行先の仮想マシンは、ライブマイグレーション制御装置210に対して、起動完了通知を送信する(図10の(7−1))。この後、ライブマイグレーション制御装置210は、移行元の仮想マシンを停止させる(図示せず)。
他方、ラベルテーブル更新命令を受信したトラヒックエンジニアリング制御装置310は、ネットワーク内のルータに対して、ラベルテーブルを予約ラベルテーブルに更新するよう指示するラベルテーブル更新命令を送信する(図10の(6−2))。命令を受信したルータは、ラベルテーブルを予約ラベルテーブルに更新する。すべてのルータがラベルテーブルの更新処理を完了すると、トラヒックエンジニアリング装置310にラベルテーブル更新完了通知が送信される(図10の(7−2))。
起動完了通知を受信したライブマイグレーション制御装置210は、統合制御装置900に対して、移行先マシン起動完了通知を送信する(図10の(8−1))。同様に、トラヒックエンジニアリング制御装置310は、ラベルテーブル更新完了通知を受信すると、統合制御装置900に対して、ラベルテーブル更新完了通知を送信する(図10の(8−2))。これによって、処理を終わる。
[ネットワーク内での経路の設定]
次に、図11、図12−1、図12−2を参照し、ネットワーク内での情報転送経路の設定および更新の処理について説明する。ここでは、MPLS(Multi-Protocol Label Switching)技術を用いて、転送処理およびルーティング処理を行うものとする。ただし、本実施形態は、GMPLS(Generalized Multi-Protocol Label Switching)や、オープンフロー(Open Flow)を用いたルーティングにも同様に適用することができる。
ここでは、トラヒックエンジニアリングの対象となるネットワークが図11のように構成されているとする。図11は、第2の実施形態に係るネットワーク内の情報転送経路を説明するための図である。図11中、「VM」は仮想マシン(Virtual Machine)を指し、「LER」はラベルエッジルータ(Label Edge Router)を指し、「LSR」はラベルスイッチルータ(Label Switch Router)を指す。ラベルエッジルータとは、ネットワークと外部との境界に位置するルータであり、外部からネットワークに入来するパケットにラベルを付してネットワーク内の次のルータに転送する。ラベルスイッチルータとは、ネットワークの内部に位置するルータであり、ラベルが付されたパケットを受信し、自己が保持するラベルテーブルを参照してパケットに所定の処理を施した上で、隣接するルータに転送するルータである。
[ラベルテーブルを用いたルーティング]
ラベルテーブルを用いたパケットのルーティングについて、図11を参照しさらに詳細に説明する。図11中、仮想マシンVM1,VM2がルータLER1に接続される。また、仮想マシンVM3,VM4がルータLER2に接続される。ルータLER1,LER2は、ルータLSR3に接続される。ルータLSR3は、ルータLSR4,LSR6に接続される。ルータLSR4は、ルータLSR5に接続され、ルータLSR5は、ルータLER8に接続される。また、ルータLSR6は、ルータLSR7に接続され、ルータLSR7は、ルータLER8,LER9に接続される。ルータLER8は、外部ネットワークNW−A,NW−Bに接続される。ルータLER9は、外部ネットワークNW−Bに接続される。外部ネットワークNW−Aには、クライアントCL1が接続している。また、外部ネットワークNW−Bには、クライアントCL2が接続している。
ここで、各ルータは、予め入来パケットの転送経路を定めたラベルテーブルを保持する。たとえば、ルータLER1は、図12−1に示すラベルテーブルを保持する。図12−1は、第2の実施形態に係るルータが保持するラベルテーブルの一例を示す図である。図12−1に示すように、ラベルテーブルには、入来するパケットの行き先(DA:Destination Address)に対応付けて、入来パケットの送信元(SA:Source Address)、次の転送先ルータ(NHOP:Next Hop)と、が格納される。また、ラベルテーブルには、入来パケットのラベルに対して実行する処理の内容(ACTION)と、入来するパケットに付加するラベル(LABEL(OUT))とが格納される。図12−1に示すラベルテーブルの1行目は、入来するパケットの行き先が、クライアント「CL1」であり、入来するパケットの送信元が「0.0.0.0」であれば、次の転送先ルータは「LSR3」であることが示されている。「NHOP」は次のホップ(Next Hop)を意味する。また、入来するパケットの行き先が、クライアント「CL1」であり、入来するパケットの送信元が「0.0.0.0」であれば、当該パケットのラベルに対する処理は、ラベルを付け替えること(「SWAP&PUSH」)であることが示されている。また、付与するラベルは「L1」であることが示されている。
ここで、図12−1に示すように、入来するパケットの行き先が同じクライアント「CL1」であっても、送信元が「0.0.0.0」である場合と「109.12.13.5」である場合とでは処理が異なる。送信元「0.0.0.0」は、優先ユーザ以外の全てのユーザが送信元である場合を意味する。これに対して、送信元「109.12.13.5」は特定の優先ユーザを示す。優先ユーザについて特定の転送経路を通じてパケットを送信する場合は、各ラベルテーブルにおいて当該優先ユーザの情報を送信元として格納しておく。
このようにラベルテーブルに、送信元の情報を格納するのは、送信元が優先ユーザである場合と優先ユーザ以外の場合とでパケットに対する処理内容を変更したり、異なる転送経路を使用したりできるようにするためである。本実施形態では、優先制御を加味してライブマイグレーションとトラヒックエンジニアリングを統合制御する。このため、統合制御後にパケットがとる転送経路は優先ユーザに関するパケットとそれ以外のユーザに関するパケットとで異なる場合がある。この経路制御を可能にするため、各ラベルテーブルにおいてパケットの行き先だけでなく送信元も定義付ける。
ルータLER1が、図12−1に示すラベルテーブルを保持しているとすると、行き先アドレスを「CL1」とし、送信元アドレスを「0.0.0.0」とする入来パケットは、ラベル「L1」を付与され、次にルータ「LSR3」に転送される。ルータ「LSR3」は、たとえば、図12−2に示すラベルテーブルを参照して、当該パケットの転送処理を実行する。図12−2は、第2の実施形態に係るルータが保持するラベルテーブルの他の例を示す図である。図12−2に示すラベルテーブルの1行目には、ラベル「L1」を持つパケットの次の転送先は、「LSR4」であり、ラベルを付け替えて(SWAP)、「L2」にすることが規定されている。ルータ「LSR3」は、このラベルテーブルを参照して、入来パケットのラベル「L1」を「L2」に付け替え、次の転送先であるルータ「LSR4」に転送する。ラベルは、外部からネットワークにパケットが入ったとき、ラベルエッジルータによって付与され、パケットが外部ネットワークへと転送されるときは、ラベルエッジルータが、ラベルを削除して、外部ネットワークに対応した行き先アドレスのみを残す。このようにして、各ルータは、自己の保持するラベルテーブルを参照して入来パケットを転送する。
また、ルータLER1が、図12−1に示すラベルテーブルを保持しているとすると、行き先アドレスを「CL1」とし、送信元アドレスを「109.12.13.5」とする入来パケットは、ラベル「L5」を付与され、次にルータ「LSR3」に転送される。ルータ「LSR3」は、たとえば、図12−2に示すラベルテーブルを参照して、当該パケットの転送処理を実行する。たとえば、ルータ「LSR3」は、ラベル「L5」をラベル「L6」に付け替えて(SWAP)、入来パケットを次の転送先であるルータ「LSR6」に転送する。
なお、図12−1に示すように、LERにおいて優先ユーザを送信元とするパケットとそれ以外のユーザを送信元とするパケットについて異なるラベルを付しているので、LSRにおいて優先ユーザの情報を格納しておく必要はない。ただしさらに細かい経路分けをする場合には適宜LER,LSRのラベルテーブルに格納する情報を設定すればよい。
第2の実施形態では、仮想マシンのライブマイグレーションに伴う、最適な情報転送経路の変動に応じて、各ルータが保持するラベルテーブルを更新する。たとえば、図11の例において、仮想マシンVM1を仮想マシンVM4にライブマイグレーションすることを考える。この時点で、仮想マシンVM1に処理が集中している一方で、仮想マシンVM4は利用されておらず停止しているとする。そして、仮想マシンVM1からクライアントCL1へのパケットは、「LER1−LSR3−LSR4−LSR5−LER8」という経路(図11の矢印A)で転送されるように、ラベルテーブルが設定されているとする。また、仮想マシンVM3からクライアントCL2へのパケットは、「LER2−LSR3−LSR6−LSR7−LER9」という経路(図11の矢印B)で転送されるように、ラベルテーブルが設定されているとする。このとき、仮想マシンVM1の処理を仮想マシンVM4に移行させて、仮想マシンVM3からクライアントCL2への情報経路に重なる経路「LER2−LSR3−LSR6−LSR7−LER8」(図9の矢印C)を通じて転送するようにラベルテーブルを設定すると、「LER2−LSR3−LSR6−LSR7」において輻輳が発生する可能性がある。そこで、輻輳を防止するよう、仮想マシンVM4からクライアントCL1へのパケットは、「LER2−LSR3−LSR4−LSR5−LER8」という経路(図11の矢印D)を通って転送されるようにラベルテーブルを更新することができる。
[ラベルテーブルの更新]
ラベルテーブルの更新は、条件決定部922によって決定された情報転送経路に基づき、トラヒックエンジニアリング制御装置310から各ルータに予約ラベルテーブル作成命令およびラベルテーブル更新命令を送信することによって実行される。次に、予約ラベルテーブルの作成およびラベルテーブルの更新につき、説明する。
図13は、第2の実施形態に係るルータの構成の一例を示す図である。図13に示すルータは、ラベルエッジルータ又はラベルスイッチルータ、たとえば、図11に示すルータLER1またはLSR3等に相当する。ここでは、ネットワークと外部との境界に位置するラベルエッジルータはトラヒックエンジニアリング制御装置310と接続され、ラベルスイッチルータはトラヒックエンジニアリング制御装置310と接続されていないものとする。その他の構成はラベルエッジルータもラベルスイッチルータも同様である。
図13に示すように、ルータ(LSR,LER)は、記憶部10と、制御部20と、入出力部30と、を備える。記憶部10は、ラベルテーブル11を備える。また、記憶部10は、予約ラベルテーブル12が作成されると、ラベルテーブル11とは別に、予約ラベルテーブル12を保持する。制御部20は、経路判定部21と、予約ラベルテーブル作成部22と、テーブル更新部23とを備える。
ラベルテーブル11は、上述のようにルータ(LSR,LER)を介して転送されるパケットの転送先を規定するテーブルである(図12−1、図12−2参照)。また、予約ラベルテーブル12は、トラヒックエンジニアリング制御装置310からの予約ラベルテーブル作成命令をルータ(LSR,LER)が受信した際に、予約ラベルテーブル作成命令に含まれる情報に従って作成される更新用のラベルテーブルである。以下、予約ラベルテーブル作成命令は、予約パケットとして送信されるものとして説明する。
経路判定部21は、入出力部30を介して入力パケットを受信すると、ラベルテーブル11を参照して入力パケットの転送先を判定し、ラベルテーブル11に格納された情報に基づいて、ラベルの付与、削除等を実行する。経路判定部21が処理したパケットは、入出力部30を介して、ラベルテーブル11に規定された転送先に出力パケットとして転送される。
予約ラベルテーブル作成部22は、入出力部30を介して予約パケットを受信すると、予約パケットに格納された情報に基づき、予約ラベルテーブルを作成し、記憶部10に格納する(予約ラベルテーブル12)。
図14を参照して予約パケットについて説明する。図14は、第2の実施形態に係る予約パケットの構成の一例を示す図である。図14に示すように、予約パケットは、パケットの送信元アドレス(SA:Source Address)と、宛先アドレス(DA:Destination Address)と、指定転送経路とを対応付けて保持する。図14の例では、仮想マシン「VM4」を送信元とする、クライアント「CL1」宛のパケットは、ルータ「R2−R3−R6−R7−R8」によって構成される経路を通じて転送されることが規定されている。予約パケットは、経路変更または経路設定が必要なパケットの情報を適宜保持する。
予約パケットを受信した予約ラベルテーブル作成部22は、自ルータを経路に含む情報を参照して、予約ラベルテーブルを作成する。予約ラベルテーブルは、図12−1乃至図12−2に示すラベルテーブルと同様の構成である。作成した予約ラベルテーブルは記憶部10に格納される(予約ラベルテーブル12)。予約ラベルテーブル12の作成が完了すると、予約ラベルテーブル作成部22は、設定したラベルの情報および予約ラベルテーブルを設定したことを示す情報を予約パケットに付与して、予約パケットを隣接するルータに転送する。
テーブル更新部23は、入出力部30を介して、ラベルテーブル更新命令すなわち切替パケットを受信すると、ラベルテーブル11を、予約ラベルテーブル12で置き換えることによって、ラベルテーブル11を更新する。テーブル更新部23は、ラベルテーブル11の更新が完了すると、更新完了を示す情報を切替パケットに付与して、切替パケットを隣接するルータに転送する。
予約パケットおよび切替パケットは、トラヒックエンジニアリング制御装置310によって情報転送経路の末端に位置するラベルエッジルータに送信される。そして、ラベルエッジルータからラベルスイッチルータを介して順次転送される。予約パケットまたは切替パケットが、転送経路の最後のラベルエッジルータに到達すると、転送経路上のすべてのルータにおける予約ラベルテーブル作成処理、またはラベルテーブル更新処理が完了したことになる。転送経路の最後のラベルエッジルータは、他のルータから予約パケットまたは切替パケットを受信すると、予約パケットまたは切替パケットが転送されてきた方向と反対の方向に、予約応答パケットまたは切替応答パケットを作成して送り返す。予約応答パケットまたは切替応答パケットを、最初に予約パケットまたは切替パケットを転送したルータが受信すると、トラヒックエンジニアリング制御装置310に対して、予約応答パケットまたは切替応答パケットを送信する。予約応答パケットおよび切替応答パケットは、図10に示した予約ラベルテーブル作成完了通知(図10、(3−2)参照)およびラベルテーブル更新完了通知(図10、(7−2)参照)の一例である。
なお、ここでは、予約応答パケットおよび切替応答パケットが処理完了通知の機能を果たすものとして構成したが、予約パケットおよび切替パケットを受信したルータそれぞれが、処理を完了すると完了通知をブロードキャストし、ラベルエッジルータが、各ルータからの完了通知を順次トラヒックエンジニアリング制御装置310に転送するように構成してもよい。処理が完了したことを示す通知の態様は、特に限定されない。
[第2の実施形態の統合制御装置の効果]
上記のように、第2の実施形態に係る統合制御装置900は、優先制御を加味してライブマイグレーションとトラヒックエンジニアリングの処理内容を統合的に決定し、制御する。このため、ライブマイグレーション後の情報転送経路を最適化しつつ優先ユーザに対して通信品質を保障することができ、クラウドコンピューティングにおいて特定ユーザに対する通信品質の保障を可能にできる。
また、上記のように、第2の実施形態に係る統合制御装置900は、トラヒックエンジニアリング制御装置310に予約ラベルテーブルの作成を命令し、予約ラベルテーブルの作成が完了した後にラベルテーブルを更新させる。このため、情報転送経路の更新を迅速に完了させ更新後の情報転送経路を確立することができる。
また、上記のように、第2の実施形態に係る統合制御装置900は、ライブマイグレーション制御装置210によるライブマイグレーションの実行制御と、トラヒックエンジニアリング制御装置310による予約ラベルテーブルの作成の制御とを同期させる。また、第2の実施形態に係る統合制御装置900は、ライブマイグレーション制御装置210による移行先仮想マシンの起動処理制御と、トラヒックエンジニアリング制御装置310によるラベルテーブル更新処理制御とを同期させる。このため、ライブマイグレーションの処理とトラヒックエンジニアリングの処理とを並行して実行させることができ、それぞれの処理の完了タイミングのずれを抑制することができる。たとえば、トラヒックエンジニアリングにより更新された後の情報転送経路が確立されていない状態で移行先マシンが起動することが防止できる。また、たとえば、移行先マシンが起動していない段階で情報転送経路が確立されてしまうことが防止できる。したがって、ライブマイグレーションとトラヒックエンジニアリングとの統合制御により、クラウドコンピューティングの性能をさらに向上させることができる。また、完了タイミングのずれを抑制することで、優先ユーザに対して途切れなく一定品質のサービスを提供することができる。
(第3の実施形態)
上記第1および第2の実施形態は、ライブマイグレーションの対象となる仮想マシンの数については特に限定せずに構成した。次に、第3の実施形態として、同時にライブマイグレーションの対象となる仮想マシンが複数存在する場合の統合制御について説明する。
ライブマイグレーションの対象となる仮想マシンが複数存在する場合、当該仮想マシンが構築されているデータセンタの処理能力や、当該仮想マシンが接続されるネットワークの転送処理能力によって、同時にライブマイグレーションを行うことができない場合がある。第3の実施形態に係る統合制御装置は、このような場合における優先制御を加味したライブマイグレーションとトラヒックエンジニアリングの統合制御を実現する。
[第3の実施形態に係る統合制御装置の構成]
図15を参照し、第3の実施形態に係る統合制御装置の構成の概要について説明する。図15は、第3の実施形態に係る統合制御装置1000の構成の一例を示す図である。図15に示すように、第3の実施形態に係る統合制御装置1000は、ライブマイグレーション制御装置220、トラヒックエンジニアリング制御装置320および優先ユーザ制御装置420と接続される。ライブマイグレーション制御装置220はリソース520と接続され、トラヒックエンジニアリング制御装置320はネットワーク620と接続される。優先ユーザ制御装置420はリソース520およびネットワーク620と接続される。リソース520は、ネットワーク620と接続される。ネットワーク620は外部ネットワーク720と接続され、外部ネットワーク720はさらにユーザ端末820と接続される。
統合制御装置1000は、通信部1001、記憶部1010および制御部1020を備える。通信部1001の機能は、第1の実施形態の通信部101と同様である。また、記憶部1010の機能は、第1の実施形態の記憶部110と同様である。記憶部1010は、制御情報記憶部1011および制御対象記憶部1012を備える。制御情報記憶部1011および制御対象記憶部1012の機能は、第1の実施形態の制御情報記憶部111および制御対象記憶部112と同様である。
制御部1020は、情報取得部1021、条件決定部1022、同時実行判定部1023、組合せ決定部1024、実行順序決定部1025、命令生成部1026、命令送信部1027およびタイミング制御部1028を備える。情報取得部1021および条件決定部1022の動作および機能は、第1の実施形態の情報取得部121および条件決定部122の動作および機能と同様である。ただし、第3の実施形態では、情報取得部1021は、ライブマイグレーション制御装置220から、複数の仮想マシンのライブマイグレーションに関する情報を取得し、条件決定部1022は、優先制御を加味して複数の仮想マシンのライブマイグレーションによる移行先、および複数のライブマイグレーション後の情報転送経路を決定する。
同時実行判定部1023は、すべてのライブマイグレーションを同時に実行可能か否か、を判定する。たとえば、同時実行判定部1023は、制御対象記憶部1012に格納された情報等に基づき、各データセンタの処理能力やネットワークの転送処理能力等の制約に照らして、優先制御を加味してすべてのライブマイグレーションを同時に実行できるか否かを判定する。
組合せ決定部1024は、同時実行判定部1023が、すべてのライブマイグレーションを同時に実行することはできないと判定した場合に、同時にライブマイグレーションを実行することができる仮想マシンの組合せを決定する。たとえば、各データセンタの処理能力やネットワークの転送処理能力に基づき、同時にライブマイグレーションを実行することができる仮想マシンの組合せを決定する。ここでは、組合せ決定部1024は、同時にライブマイグレーションを実行した場合に、優先ユーザに対する品質保証が損なわれないようにするとともにライブマイグレーションにより移動されるデータ間で輻輳が発生しないように、すなわち、ライブマイグレーションに要する時間ができるだけ短縮できるように、混合整数線形計画法を用いて、組合せを決定する。なお、各組合せに含まれる仮想マシンの数は特に限定されない。たとえば、一度に一つの仮想マシンのライブマイグレーションしか実行できない場合は、一つの仮想マシンを組合せとして決定してもよい。また、複数の仮想マシンのライブマイグレーションを同時に実行できる場合は、複数の仮想マシンの組を組合せとして決定してもよい。
実行順序決定部1025は、組合せ決定部1024が決定した組合せについてライブマイグレーションの実行順序を決定する。ここでは、実行順序決定部1025は、ライブマイグレーションを実行した場合に、先にライブマイグレーションを実行した仮想マシンが移行したことにより輻輳が発生したり、優先ユーザに対する通信品質保障が損なわれないように、実行順序を決定する。たとえば、実行順序決定部1025は、混合整数線形計画法を用いて、優先ユーザへの通信品質の保障、ライブマイグレーションを実行する仮想マシンの処理量や、当該仮想マシンに対するトラヒック量、移行先マシンの位置、ネットワークの構成等を考慮して、最適解を導出する。そして、ライブマイグレーションを実行する組合せの順序を決定する。
命令生成部1026は、組合せ決定部1024が決定した組合せおよび実行順序決定部1025が決定した実行順序に基づき、ライブマイグレーション制御装置220およびトラヒックエンジニアリング制御装置320に送信する命令を生成する。たとえば、組合せ決定部1024および実行順序決定部1025により、仮想マシンVM1およびVM2のライブマイグレーションを同時に実行し、実行終了後、次に、仮想マシンVM3およびVM4のライブマイグレーションを同時に実行する、と決定されたとする。この場合、命令生成部1026は、仮想マシンVM1およびVM2のライブマイグレーションの実行を指示するライブマイグレーション実行命令と、仮想マシンVM3およびVM4のライブマイグレーションの実行を指示するライブマイグレーション実行命令とをそれぞれ生成する。また、命令生成部1026は、仮想マシンVM1およびVM2の移行先マシンの起動および仮想マシンVM1およびVM2の停止を命じる命令を生成する。さらに、命令生成部1026は、仮想マシンVM3およびVM4の移行マシンの起動および仮想マシンVM3およびVM4の停止を命じる命令を生成する。
また、命令生成部1026は、条件決定部1022が決定した情報転送経路のうち、仮想マシンVM1およびVM2並びにその移行先マシンを宛先または送信元とする情報の転送経路を規定する予約ラベルテーブルを作成するよう指示する予約ラベルテーブル作成命令(予約パケット)を生成する。さらに、命令生成部1026は、仮想マシンVM1およびVM2並びにその移行先マシンに対するトラヒックの転送経路を規定する予約ラベルテーブルでラベルテーブルを更新するよう指示するラベルテーブル更新命令(切替パケット)を生成する。命令生成部1026は、さらに、条件決定部1022が決定した情報転送経路のうち、仮想マシンVM3およびVM4並びにその移行先マシンを宛先または送信元とする情報の転送経路を規定する予約ラベルテーブルを作成するよう指示する予約ラベルテーブル作成命令(予約パケット)を生成する。さらに、命令生成部1026は、仮想マシンVM3およびVM4並びにその移行先マシンに対するトラヒックの転送経路を規定する予約ラベルテーブルでラベルテーブルを更新するよう指示するラベルテーブル更新命令(切替パケット)を生成する。
命令送信部1027は、後述するタイミング制御部1028からの指示に従い、命令生成部1026が生成した命令をライブマイグレーション制御装置220およびトラヒックエンジニアリング制御装置320に送信する。
タイミング制御部1028は、命令生成部1026が各命令を生成すると、命令送信部1027に対して、実行順序決定部1025が決定した順序に従い、ライブマイグレーション制御装置220およびトラヒックエンジニアリング制御装置320に対して、ライブマイグレーション実行命令および予約ラベルテーブル作成命令を送信するよう指示する。また、タイミング制御部1028は、ライブマイグレーション制御装置220およびトラヒックエンジニアリング制御装置320各々から、ライブマイグレーション実行完了通知および予約ラベルテーブル作成完了通知を受信すると、命令送信部1027に対して、ライブマイグレーション制御装置220およびトラヒックエンジニアリング制御装置320に対して、移行先マシン起動命令およびラベルテーブル更新命令を送信するよう指示する。
[第3の実施形態に係る統合制御装置の処理の流れ]
第3の実施形態に係る統合制御装置1000における処理の流れを、図16を参照して説明する。図16は、第3の実施形態に係る統合制御装置1000における処理の流れの一例を示す図である。まず、情報取得部1021は、ライブマイグレーション制御装置220、トラヒックエンジニアリング制御装置320および優先ユーザ制御装置420から各々、ライブマイグレーション対象となる複数の仮想マシンの情報、トラヒックエンジニアリングの対象となるネットワークの情報および優先ユーザの情報を取得する(ステップS1601)。次に、条件決定部1022は、情報取得部1021が取得した情報に基づき、混合整数線形計画法を用いて、最適解となる移行先およびライブマイグレーション後の情報転送経路を決定する(ステップS1602)。ここまでの処理は、第1および第2の実施形態と同様である。
次に、同時実行判定部1023は、ライブマイグレーションの対象となる複数の仮想マシンの情報および条件決定部1022が決定した移行先の情報、記憶部1010内の制御対象記憶部1012に格納された制御対象情報、優先ユーザの情報等に基づき、優先ユーザへの通信品質保証を損なわずにすべてのライブマイグレーションを同時に実行することができるか否かを判定する(ステップS1603)。同時実行判定部1023が、すべてのライブマイグレーションを同時に実行することはできないと判定した場合(ステップS1603,否定)、次に、組合せ決定部1024が、同時実行可能な仮想マシンの組合せを決定する(ステップS1604)。ここで、組合せの数をn(nは1以上の自然数)とする。次に、実行順序決定部1025が、n個の組合せについてライブマイグレーションおよびトラヒックエンジニアリングを実行する順序を決定する(ステップS1605)。
命令生成部1026は、組合せ決定部1024が決定した組合せと実行順序決定部1025が決定した実行順序に基づき、1番目の組合せ「k」を選択する(ステップS1606,S1607,k=1)。そして、命令生成部1026は、組合せ決定部1024が決定した組合せと実行順序決定部1025が決定した実行順序に基づき、1番目にライブマイグレーションおよびトラヒックエンジニアリングを実行する仮想マシンの組合せに対応した、ライブマイグレーション実行命令、予約ラベルテーブル作成命令、移行先マシン起動命令およびラベルテーブル更新命令を作成する(ステップS1608)。そして、タイミング制御部1028からの指示に基づき、命令送信部1027は、1番目の組合せ用のライブマイグレーション実行命令および予約ラベルテーブル作成命令をそれぞれ、ライブマイグレーション制御装置220およびトラヒックエンジニアリング制御装置320に送信し、該当する仮想マシンからのメモリ内容の移動と、各ルータでの予約ラベルテーブルの作成を実行させる(ステップS1609)。ステップS1609における処理は、第2の実施形態について説明した処理段階Aにおける処理と同様である(図9参照)。
メモリ内容の移動と予約ラベルテーブルの作成が完了し、ライブマイグレーション制御装置220およびトラヒックエンジニアリング制御装置320から完了通知が送信されると、次に、タイミング制御部1028からの指示に基づき、1番目の組合せに対応した、移行先マシン起動命令およびラベルテーブル更新命令を、命令送信部1027が送信する。そして、移行先マシンの起動とラベルテーブルの更新が実行される(ステップS1610)。ステップS1610における処理は、第2の実施形態について説明した処理段階Bにおける処理と同様である(図9参照)。
1番目の組合せに対するライブマイグレーションおよびトラヒックエンジニアリングが完了すると、命令生成部1026は、次の組合せがあるか否かを判定する(ステップS1611)。次の組合せがあると判定すると(ステップS1611,否定)、次の組合せを選択するためk=k+1と設定し(ステップS1612)、ステップS1607に戻って次の組合せを選択し、命令生成部1026が次の組合せに対応する命令を生成する。次の組合せがない、すなわち、すべての組合せについてライブマイグレーションおよびトラヒックエンジニアリングの実行を完了したと判定すると(ステップS1611,肯定)、処理を終了する。
ステップS1603において、同時実行判定部1023が、すべてのライブマイグレーションを同時に実行することができると判定した場合(ステップS1603,肯定)には、組合せ決定部1024は、ライブマイグレーションの対象となるすべての仮想マシンの集合を、ライブマイグレーションを同時実行する仮想マシンの組合せとして設定する(ステップS1613,k=n=1)。命令生成部1026は、設定した組合せを選択し(ステップS1607)、組合せに対応した命令を生成する(ステップS1608)。そして、統合制御装置1000は、ステップS1609以降の処理を実行する。
なお、上記第3の実施形態では、ライブマイグレーションを仮想マシンの組合せごとに、複数回に分けて実行するものとした。そして、ライブマイグレーションの実行時に、当該ライブマイグレーションの対象となる仮想マシンおよびその移行先マシンを宛先または送信元とするパケットの情報転送経路についてトラヒックエンジニアリングを実行するものとして説明した。しかし、場合によっては、複数の仮想マシンのライブマイグレーションの結果として、ライブマイグレーションの対象となった仮想マシンおよびその移行先マシン以外の処理装置を宛先または送信元とするパケットについても、情報転送経路を変更することが望ましい場合が考えられる。このような場合には、ライブマイグレーション後の情報転送経路の決定時(図16,ステップS1602)において、ライブマイグレーション対象である仮想マシンおよびその移行先マシン以外を宛先または送信元とするパケットの情報転送経路が決定される。これらの情報転送経路については、すべてのライブマイグレーションが終了した後(たとえば、図16のステップS1611の後)に、まとめてトラヒックエンジニアリング制御装置320に予約ラベルテーブル作成命令およびラベルテーブル更新命令を送信して、更新処理を行うものとしてもよい。
また、上記第3の実施形態では、組合せを選択するごとに、当該組合せに対応した命令を生成するものとして説明した。しかし、本実施形態はこれに限定されず、たとえば、ライブマイグレーションおよびトラヒックエンジニアリングの実行前に、すべての組合せに対応する命令を命令生成部1026に生成させておき、その後、1番目の組合せについてのライブマイグレーションおよびトラヒックエンジニアリングを実行するものとしてもよい。また、命令の生成は他の組合せについてライブマイグレーション等が実行されている間に行うものとしてもよい。
また、上記第3の実施形態では、仮想マシンの組合せについてライブマイグレーションの実行順序を決定し、決定した順序に基づいてライブマイグレーションおよびトラヒックエンジニアリングを実行するものとしたが、組合せ数や予想される輻輳の程度等によっては、実行順序を決定せずに、ランダムに組合せを選択して順次実行するものとしてもよい。
また、上記第3の実施形態では、ライブマイグレーションとトラヒックエンジニアリングをそれぞれの組合せについて同期的に実行するものとしたが、各組合せについてライブマイグレーションが完了した後に、当該組合せに関係するトラヒックエンジニアリングを実行するものとしてもよい。
[第3の実施形態に係る統合制御装置の効果]
上記のように、第3の実施形態に係る統合制御装置1000は、複数のライブマイグレーションを実行する場合、優先制御を加味してすべてのライブマイグレーションを同時実行できるか否かを判定する。同時実行できないと判定した場合、統合制御装置1000は、同時実行できる組合せを決定し、組合せごとにライブマイグレーションおよびトラヒックエンジニアリングを実行する。このため、データセンタやネットワークの性能上の制約や優先制御による制約により、ライブマイグレーションを同時に実行できない場合であっても、優先ユーザへの通信品質保障を考慮しつつ適切にライブマイグレーションおよびトラヒックエンジニアリングを統合制御することができ、クラウドコンピューティングにおいて特定ユーザに対する通信品質の保障を可能とすることができる。
また、上記のように、第3の実施形態に係る統合制御装置1000は、複数のライブマイグレーションを実行する場合、優先制御を加味してすべてのライブマイグレーションを同時実行できるか否かを判定する。そして、同時実行できないと判定した場合、統合制御装置1000は、同時に実行した場合に、優先制御を加味しつつ最も短時間でライブマイグレーションを完了することができる組合せを決定し、組合せごとにライブマイグレーションおよびトラヒックエンジニアリングを実行する。このため、データセンタやネットワークの性能上の制約や優先制御による制約により、ライブマイグレーションを同時に実行できない場合であっても、優先ユーザへの通信品質保障を考慮しつつ適切にライブマイグレーションおよびトラヒックエンジニアリングを統合制御することができる。さらに、ライブマイグレーションに要する時間を削減することができ、クラウドコンピューティングにおいて特定ユーザに対する通信品質の保障を可能とすることができる。
また、上記のように、第3の実施形態に係る統合制御装置1000は、複数のライブマイグレーションを実行する場合、優先制御を加味してすべてのライブマイグレーションを同時実行できるか否かを判定する。そして、同時実行できないと判定した場合、統合制御装置1000は、優先制御を加味して同時にライブマイグレーションを実行した場合に発生する輻輳が最も少ない仮想マシンの組合せを決定する。そして、統合制御装置1000は、組合せごとにライブマイグレーションおよびトラヒックエンジニアリングを実行する。このため、優先ユーザへの通信品質保障を考慮しつつライブマイグレーション中に発生する輻輳を抑制し、ライブマイグレーションに要する時間を削減することができ、クラウドコンピューティングにおいて特定ユーザに対する通信品質の保障を可能とすることができる。
また、上記のように、第3の実施形態に係る統合制御装置1000は、複数のライブマイグレーションを実行する場合、優先制御を加味してすべてのライブマイグレーションを同時実行できるか否かを判定する。そして、同時実行できないと判定した場合、統合制御装置1000は、優先制御を加味して同時にライブマイグレーションを実行することができる仮想マシンの複数の組合せを決定する。そして、統合制御装置1000は、複数の組合せについて、順次ライブマイグレーションを実行した場合に、優先制御を加味して先にライブマイグレーションを実行した仮想マシンに対するトラヒックにより輻輳が生じる可能性が最も低い順序を、混合整数線形計画法を用いて決定する。このため、優先ユーザへの通信品質保障を考慮しつつ、仮想マシンの複数の組合せについて、順次ライブマイグレーションを実行する場合であっても、ライブマイグレーションが完了した仮想マシンに対するトラヒックが、まだライブマイグレーションが完了していない仮想マシンの処理に与える影響を抑制することができ、クラウドコンピューティングにおいて特定ユーザに対する通信品質の保障を可能とすることができる。
(第4の実施形態)
これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、その他の実施形態にて実施されてもよい。以下に、その他の実施形態を説明する。
上に説明した第1の実施形態においては、優先ユーザ制御装置400は、統合制御装置100とは別個に設けるものとした(図1参照)。しかし、これに限らず、優先ユーザ制御装置400は、統合制御装置100と一体に設けるものとしてもよい。また、たとえば、複数の事業者が一つの統合制御装置100によって制御されるインタークラウドシステムを利用する場合には、各事業者との間で契約を結んだユーザごとに複数の異なる優先ユーザ制御装置400を設けてもよい。このように構成することで、ユーザの情報を事業者ごとに管理し、必要に応じてセキュリティ対策を講じて個人情報を管理することが可能となる。
[インタークラウド環境]
たとえば、第1の実施形態の統合制御装置100を、インタークラウドサーバとして構成してもよい。その場合、ライブマイグレーション制御装置200を、クラウド事業者Xが管理する複数のデータセンタによって構成されるクラウドの管理を行う管理装置として構成してもよい。また、トラヒックエンジニアリング制御装置300を、クラウド事業者Yが管理するネットワークによって構成されるクラウドの管理を行う管理装置として構成してもよい。このように構成することで、異なる事業者が運営するクラウドを統合してユーザに提供するインタークラウドシステムにおいて、各リソース間の動作を統合的に制御して、ユーザに提供することが可能となる。
[システム構成]
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。たとえば、図1に示す例では、記憶部110を統合制御装置100の内部に配置したが、記憶部110を統合制御装置100の外部装置としてネットワーク経由で接続するようにしてもよい。また、たとえば、図1に示す例において、実行制御部123をライブマイグレーション実行制御部とトラヒックエンジニアリング実行制御部とに分離してもよく、また、図15に示す例において、命令送信部1027とタイミング制御部1028とを統合してもよい。
[プログラム]
図17は、統合制御装置による一連の処理を実行するプログラムである統合制御プログラムによる情報処理が、コンピュータを用いて具体的に実現されることを示す図である。図17に例示するように、コンピュータ3000は、たとえば、メモリ3010と、CPU(Central Processing Unit)3020と、ハードディスクドライブ3080と、ネットワークインタフェース3070とを有する。コンピュータ3000の各部はバス3100によって接続される。
メモリ3010は、図17に例示するように、ROM3011およびRAM3012を含む。ROM3011は、たとえば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。
ここで、図17に例示するように、ハードディスクドライブ3080は、たとえば、OS3081、アプリケーションプログラム3082、プログラムモジュール3083、プログラムデータ3084を記憶する。すなわち、開示の技術に係る統合制御プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール3083として、たとえばハードディスクドライブ3080に記憶される。たとえば、制御部120の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュール3083が、ハードディスクドライブ3080に記憶される。
また、記憶部110に記憶されるデータのように、統合制御プログラムによる情報処理に用いられるデータは、プログラムデータ3084として、たとえばハードディスクドライブ3080に記憶される。そして、CPU3020が、ハードディスクドライブ3080に記憶されたプログラムモジュール3083やプログラムデータ3084を必要に応じてRAM3012に読み出し、各種の手順を実行する。
なお、統合制御プログラムに係るプログラムモジュール3083やプログラムデータ3084は、ハードディスクドライブ3080に記憶される場合に限られない。たとえば、プログラムモジュール3083やプログラムデータ3084は、着脱可能な記憶媒体に記憶されてもよい。この場合、CPU3020は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、更新プログラムに係るプログラムモジュール3083やプログラムデータ3084は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。この場合、CPU3020は、ネットワークインタフェース3070を介して他のコンピュータにアクセスすることで各種データを読み出す。
[その他]
なお、本実施形態で説明した統合制御プログラムは、インターネット等のネットワークを介して配布することができる。また、統合制御プログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。