(57)【特許請求の範囲】
【請求項１】
自身が保持するフローテーブルに含まれるフローエントリに従って受信パケットの中継を行う通信経路上のスイッチに対して、前記フローエントリを設定するフローコントローラと、
前記スイッチを介して通信を行う仮想マシンの生成指示に応じて、前記仮想マシンを生成する仮想マシン生成手段とを備え、
前記仮想マシン生成手段は、前記生成指示の受信に応じた前記仮想マシンの生成に並行して、該仮想マシンによる通信に対応するフローエントリを生成するために必要な情報を含むダミーパケットを前記スイッチに送信するプレー設定制御手段を有し、
前記フローコントローラは、前記スイッチが前記ダミーパケットの受信に応じて出力した設定要求を受信すると、該設定要求に含む前記必要な情報に応じて前記フローエントリを生成して、前記スイッチに対して設定することを特徴とするネットワークシステム。
【請求項２】
自身が保持するフローテーブルに含まれるフローエントリに従って受信パケットの中継を行う通信経路上のスイッチに対して前記フローエントリを設定するフローコントローラを備えるネットワークシステムにおける仮想マシン生成装置であって、
前記スイッチを介して通信を行う仮想マシンの生成指示に応じて前記仮想マシンを生成する仮想マシン生成実行手段と、
前記仮想マシン生成実行手段による前記仮想マシンの生成に並行して、該仮想マシンによる通信に対応するフローエントリを生成するために必要な情報を含むダミーパケットを前記スイッチに送信することにより、前記必要な情報に応じた前記フローエントリの設定を前記フローコントローラに要求することを前記スイッチに行わせるダミーパケット送信手段とを有することを特徴とする仮想マシン生成装置。
【請求項３】
自身が保持するフローテーブルに含まれるフローエントリに従って受信パケットの中継を行う通信経路上のスイッチに対して前記フローエントリを設定するフローコントローラを備えたネットワークシステムにおいて、前記スイッチを介して通信を行う仮想マシンの生成指示に応じた前記仮想マシンの生成に並行して、該仮想マシンによる通信に対応するフローエントリを生成するために必要な情報を含むダミーパケットを前記スイッチに送信することにより、前記必要な情報に応じた前記フローエントリの設定を前記フローコントローラに要求することを前記スイッチに行わせることを特徴とするプレー設定制御方法。
【請求項４】
自身が保持するフローテーブルに含まれるフローエントリに従って受信パケットの中継を行う通信経路上のスイッチに対して前記フローエントリを設定するフローコントローラを備えたネットワークシステムにおいて、前記スイッチを介して通信を行う仮想マシンの生成指示に応じた前記仮想マシンの生成に並行して、該仮想マシンによる通信に対応するフローエントリを生成するために必要な情報を含むダミーパケットを前記スイッチに送信することにより、前記必要な情報に応じた前記フローエントリの設定を前記フローコントローラに要求することを前記スイッチに行わせる処理を、コンピュータに実行せしめることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステム、特に、オープンフロー（ＯｐｅｎＦｌｏｗ）技術を利用するネットワークシステムに関する。
【背景技術】
【０００２】
近年、モバイル端末の普及によるトラフィックの爆発的な増加により、トラフィックの可視化やネットワーク帯域最適化を行う技術が求められており、それらを実現するため方法としてＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ）が注目を集めている。【０００３】
ＳＤＮは、概して、ネットワークを仮想化する技術とネットワークをコントロールする技術から構成される。【０００４】
ネットワークを仮想化する技術によれば、仮想マシン（ＶＭ：Ｖｉｔｒｕａｌ  Ｍａｃｈｉｎｅ）から見たネットワークを、物理的なネットワーク構成に依存しないフラットなネットワークに看做すことができるため、サーバの管理者にとって都合が良いようにセグメントの区切りなどができる。逆に物理ネットワーク側からは、仮想マシンのネットワークがどのようなセグメント分けをしているかを考えなくてもよいので、物理サーバー間を流れるパケットの転送に専念できる。【０００５】
ネットワークをコントロールする技術の標準として、オープンフロー（ＯｐｅｎＦｌｏｗ）が知られている。オープンフローは、ネットワークシステムにおける各ネットワークスイッチの転送動作等を外部のコントローラによって一元的に制御する技術である。【０００６】
オープンフローに対応するネットワークスイッチは、オープンフロースイッチ（以下「ＯＦＳ」という）と呼ばれ、プロトコル種別やポート番号などの情報をフローテーブルに保持し、フローの制御と統計情報の採取を行う。【０００７】
ＯＦＳが保持するフローテーブルは、オープンフローコントローラ（以下「ＯＦＣ」という）と呼ばれる制御装置により設定される。ＯＦＣは、ＯＦＳと分離して設けられ、ノード間の通信経路の設定や、経路上におけるＯＦＳが保持するフローテーブルに、フロー（パケットデータ）を特定するルールと、該フローに対する処理を規定するアクションとを対応付けたフローエントリを設定する。通信経路上のＯＦＳは、ＯＦＣによって設定されたフローエントリに従って受信パケットデータを処理する。【０００８】
ＯＦＣは、ＯＦＳからの要求に応じて、通信経路の算出や、通信経路上のＯＦＳが保持するフローテーブルの更新などを行う。例えば、ＯＦＳは、自身のフローテーブルに規定されていないパケットデータを受信した場合、当該パケットデータの情報をＯＦＣに通知する。ＯＦＳが受信したパケットデータが該ＯＦＳのフローテーブルに規定されていない場合、該パケットデータは、当該ＯＦＳにとってのファーストパケットと呼ばれる。対応して、ファーストパケットを受信したＯＦＳがＯＦＣに行う通知は、ファーストパケットの問合せと呼ばれる。【０００９】
ＯＦＣは、ＯＦＳからファーストパケットの問合せを受けると、当該パケットデータのヘッダ情報に基づいて転送元及び転送先を特定して通信経路を決定する共に、ＯＦＳに設定するフローエントリ（ルール＋アクション）を生成して、各ＯＦＳのフローテーブルを更新する。【００１０】
オープンフローを用いたネットワークシステムに対して、様々な視点からの技術が提案されている。【００１１】
例えば、特許文献１には、オープンフローを利用して負荷分散を実現する技術が開示されている。該技術を適用したシステムでは、ＯＦＳを介してクライアントにサービスを提供する各サービスサーバは、自身の負荷状況を監視すると共に、自身の負荷が閾値以上になると、負荷分散要求をＯＦＳに発行する。ＯＦＳは、いずれかのサービスサーバから負荷分散要求を受信すると、該負荷分散要求に応じて、ＯＦＳに対して設定したフローテーブルを変更する。【００１２】
また、特許文献２には、オープンフローを利用してネットワークシステムの耐障害性を向上させる技術が開示されている。該技術を適用したシステムでは、複数のＯＦＣが設けられており、該複数のＯＦＣは、ＯＦＳに対してフローエントリの設定指示をする際に、該フローエントリの設定指示に優先度を付加する。ＯＦＳは、ＯＦＣから受信したフローエントリの設定指示の優先度が、自身に設定されたフローエントリの優先度より高い場合には、受信したフローエントリで、自身に設定されたフローエントリを上書きする。一方、ＯＦＣから受信したフローエントリの設定指示の優先度が、自身に設定されたフローエントリの優先度より低い場合には、ＯＦＳは、受信したフローエントリの設定を拒否する。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２０１１−１７０７１８号公報
【特許文献２】特開２０１１−１６６３８４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
ここで、図８を参照して、仮想マシンの生成から、該仮想マシンによるサービスの提供が開始されるまでの流れについて考える。通常、図８に示すように、この流れは、下記のようになっている。【００１５】
＜ステップＡ１＞
ホストマシン上に実装されたハイパーバイザー（ＨＶ：Ｈｙｐｅｒｖｉｓｏｒ）という制御プログラムに対して、仮想マシンの生成指示が発行される。【００１６】
＜ステップＡ２＞
ハイパーバイザーは、ステップＡ１に発行された生成指示を受信すると、該受信指示に応じた仮想マシンを生成する。【００１７】
＜ステップＡ３＞
ステップＡ２においてハイパーバイザーにより生成された仮想マシンは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｙｔｅｍ）と、提供するサービスに対応するＡＰ（Ａｐｐｌｉｃａｔｉｏｎ）を起動する。【００１８】
＜ステップＡ４＞
仮想マシンは、サービスの開始に当たって、ＯＦＳに対して１回目のフロー通信を実行し、パケットデータを送信する。【００１９】
＜ステップＡ５＞
ステップＡ４において送信されたパケットデータの送信元が生成された直後の仮想マシンであるため、該パケットデータは、それを受信したＯＦＳにとってファーストパケットである。そのため、該ＯＦＳは、ＯＦＣにファーストパケットの問合せを行い、該オープンフローに対応するフローエントリを要求する。【００２０】
＜ステップＡ６＞
ＯＦＣは、ステップＡ５においてＯＦＳが行ったファーストパケットの問合せに応じて、各ＯＦＳに対して、フローエントリの設定を行い、フローテーブルを更新する。【００２１】
＜ステップＡ７＞
以降、該仮想マシンは、ＯＦＳを介しての通信が可能となり、サービスの提供を開始する。【００２２】
以上の流れから分かるように、ステップＡ３の完了時に、仮想マシンが既にサービスを提供することができる状態になったにも関わらず、ＯＦＳを介しての通信が可能になるまで、すなわちサービスの提供を実際に開始するまで、ステップＡ４〜Ａ６の分の待ち時間が必要である。【００２３】
本発明は、上記事情に鑑みてなされたものであり、オープンフロー制御がなされるネットワークシステムにおいて、仮想マシンによるサービスの提供開始までの時間を短縮する技術を提供する。
【課題を解決するための手段】
【００２４】
本発明の１つの態様は、ネットワークシステムである。該ネットワークシステムは、フローコントローラと、仮想マシン生成部と、プレー設定制御部とを備える。【００２５】
フローコントローラは、通信経路上のスイッチに対してフローエントリを設定するものである。スイッチは、自身が保持するフローテーブルに含まれる前記フローエントリに従って受信パケットの中継を行う。【００２６】
仮想マシン生成部は、前記スイッチを介して通信を行う仮想マシンの生成指示に応じて、前記仮想マシンを生成する。【００２７】
プレー設定制御部は、前記仮想マシンの生成指示の発行に並行して、前記仮想マシン生成部により生成された前記仮想マシンによる通信に対応するフローエントリを生成するために必要な情報を前記フローコントローラに送信する。【００２８】
前記フローコントローラは、前記プレー設定制御部から受信した前記必要な情報に応じて前記フローエントリを生成して、前記スイッチに対して設定する。【００２９】
なお、上記態様のネットワークシステムを装置や方法に置き換えて表現したものや、該ネットワークシステムに含まれるプレー設定制御部及びそれに対応する方法や、これらの方法をコンピュータに実行せしめるプログラム、これらのプログラムを記録した記録媒体なども、本発明の態様としては有効である。
【発明の効果】
【００３０】
本発明にかかる技術によれば、例えばオープンフロー制御がなされるネットワークシステムに対して、仮想マシンによりサービスの提供開始までの時間を短縮できる。
【図面の簡単な説明】
【００３１】
【図１】第１の実施の形態にかかるネットワークシステムを示す図である。
【図２】図１に示すネットワークシステムにおけるＯＦＳが保持するフローテーブルの構成を示す図である。
【図３】フローテーブルにおけるフローエントリ内のルールを示す図である。
【図４】フローテーブルにおけるフローエントリ内のアクションの種別を示す図である。
【図５】図１に示すネットワークシステムにおける、仮想マシンの生成指示の発行から、該仮想マシンによりサービスの提供開始までの処理を示すフローチャートである。
【図６】第２の実施の形態にかかるネットワークシステムを示す図である。
【図７】図６に示すネットワークシステムにおける、仮想マシンの生成指示の発行から、該仮想マシンによりサービスの提供開始までの処理を示すフローチャートである。
【図８】従来のオープンフローネットワークシステムにおける、仮想マシンの生成指示の発行から該仮想マシンによるサービスの提供が開示されるまでの流れを示す図である。
【発明を実施するための形態】
【００３２】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェアとソフトウェア（プログラム）の組合せによっていろいろな形で実現できることは当業者には理解されるところであり、ハードウェアとソフトウェアのいずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００３３】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００３４】
＜第１の実施の形態＞
図１は、第１の実施の形態にかかるネットワークシステム１００を示す。ネットワークシステム１００は、オープンフロー技術が適用されたシステムであり、ホストマシン１１０、リソース制御装置１５０、ＯＦＳ（オープンフロースイッチ）１６０、ＯＦＣ（オープンフローコントローラ）１７０を備える。ホストマシン１１０、リソース制御装置１５０、ＯＦＳ１６０、ＯＦＣ１７０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの図示しないネットワークを介して接続されている。
【００３５】
ホストマシン１１０上に、ハイパーバイザー１２０が実装されており、該ハイパーバイザー１２０は、仮想マシンをホストマシン１１０上に生成する仮想マシン生成部として動作することができる。
【００３６】
リソース制御装置１５０は、ホストマシン１１０、より具体的にはホストマシン１１０におけるハイパーバイザー１２０に対して仮想マシンの生成指示を発行する生成指示発行部１５２を備える。生成指示発行部１５２は、この種のネットワークシステムにおいて仮想マシンの生成指示を発行する装置と同様の機能を有しており、ここで詳細な説明を省略する。
【００３７】
本実施の形態において、リソース制御装置１５０は、生成指示発行部１５２に加え、さらに、プレー設定制御部１５４を備える。プレー設定制御部１５４については、後に詳細に説明する。
【００３８】
ＯＦＳ１６０は、ネットワークシステム１００上のノード間の通信を中継するスイッチであり、物理スイッチまたは仮想スイッチである。ＯＦＳ１６０は、フローテーブル１６２を保持しており、該フローテーブル１６２に含まれる各々のフローエントリに従って、受信したフローを処理する。
【００３９】
図２は、ＯＦＳ１６０が保持するフローテーブル１６２を示す。フローテーブル１６２は、１つ以上のフローエントリ１６４を有し、夫々のフローエントリ１６４は、「ルール」と、「アクション」と、「統計情報」から構成される。
【００４０】
図３は、ＯｐｅｎＦｌｏｗ  Ｖｅｒ１．０により定められた、フローエントリ１６４における「ルール」の構成を示す。図３に示すように、ルールは、物理層（Ｌ１）、データリンク層（Ｌ２）、ネットワーク層（Ｌ３層）、トランスポート層（Ｌ４）の４つのレイヤ毎に定められた、総計１２個の要素を有する。
【００４１】
パケットのヘッダ情報には、図３に示す各要素が含まれている。ＯＦＳ１６０は、受信したパケットのヘッダ情報と、自身が保持するフローテーブル１６２内の各フローエントリ１６４のルールとを比較することにより、該パケットがファーストパケットであるか否かを判定する。具体的には、フローテーブル１６２内の各フローエントリ１６４のうちに、受信したパケットのヘッダ情報と全ての要素が一致するルールが含まれるフローエントリがある場合に、ＯＦＳ１６０は、該パケットがファーストパケットではないと判定し、当該フローエントリにおけるアクションが示す処理を該パケットに対して施す。それ以外の場合には、ＯＦＳ１６０は、該パケットがファーストパケットであると判定して、そのヘッダ情報を含む通知をＯＦＣ１７０に送信する。
【００４２】
図４は、フローエントリ１６４における「アクション」の種別を示す。「アクション」は、ルールに適合すると判定されたパケットに対して行う処理を示す。図示のように、４つの種別がある。各種別の詳細な説明は、省略する。
【００４３】
フローエントリ１６４内の統計情報は、ルールに適合したフロー通信の発生量や処理量を管理ためのフィールドであり、例えば、パケット数やバイト数、当該フローがＯＦＳに生成されてからの経過時間などを格納している。ＯＦＳ１６０は、オープンフロープロトコルを介してＯＦＣ１７０から統計情報を取得することができる。
【００４４】
ＯＦＣ１７０は、ＯＦＳ１６０に保持されているフローテーブル１６２内の各フローエントリ１６４の管理を行う。ＯＦＣ１７０により管理は、具体的には、フローエントリ１６４の設定、更新、削除などを含む。
【００４５】
背景技術のときに説明したように、ＯＦＣは、ＯＦＳからファーストパケットの問合せを受けたときに該ＯＦＳに対して新たなフローエントリを設定する。本実施の形態において、ＯＦＣ１７０は、リソース制御装置１５０からプレー設定通知を受けたときにも、該プレー設定通知が指示したＯＦＳに対して新たなフローエントリの設定を行う。このプレー設定通知は、リソース制御装置１５０のプレー設定制御部１５４により行われる。
【００４６】
プレー設定制御部１５４は、生成指示発行部１５２による仮想マシンの生成指示の発行指示に並行して、プレー設定通知をＯＦＣ１７０に送信する。該プレー設定通知には、生成指示発行部１５２により発行された生成指示に応じてハイパーバイザー１２０が生成した仮想マシンによる通信に対応するフローエントリを生成するために必要な情報が含まれている。該必要な情報は、具体的には、図３に示すルール内の１２個の要素と、対応するアクション及び統計情報を有し、以下「フロー情報」という。例えば、ルール内の「送信元ＭＡＣアドレス」と「送信元ＩＰアドレス」は、夫々、生成指示発行部１５２により発行された生成指示に対応する仮想マシンのＭＡＣアドレスとＩＰアドレスになり、「宛先ＭＡＣアドレス」と「宛先ＩＰアドレス」は、プレー設定制御部１５４が設定したアドレスになる。
【００４７】
ＯＦＣ１７０は、プレー設定制御部１５４から上述したプレー設定通知を受信すると、該プレー設定通知に含まれるフロー情報に応じたフローエントリを生成してＯＦＳ１６０に対して設定する。
【００４８】
図５を参照して、仮想マシン１３０がまだ生成されていない状態において、リソース制御装置１５０による仮想マシン１３０の生成指示の発行から、仮想マシン１３０によるサービスの提供が開始されるまでの流れを説明する。
【００４９】
リソース制御装置１５０は、仮想マシン１３０の生成要求を受信すると（Ｓ１００）、生成指示発行部１５２により、ハイパーバイザー１２０に対して仮想マシン１３０の生成指示を発行する（Ｓ１１０）。生成指示発行部１５２による該生成指示の発行に並行して、リソース制御装置１５０のプレー設定制御部１５４は、ＯＦＣ１７０に対してプレー設定通知を送信する（Ｓ１２０）。
【００５０】
ハイパーバイザー１２０は、生成指示発行部１５２から仮想マシン１３０の生成指示を受信すると、仮想マシン１３０を生成し（Ｓ１１２）、生成された仮想マシン１３０は、ＯＳとアプリケーションを起動する（Ｓ１１４）。
【００５１】
ステップＳ１１２〜Ｓ１１４の処理に並行して、ＯＦＣ１７０は、プレー設定制御部１５４からのプレー設定通知に含まれるフロー情報に基づいてフローエントリを作成して、該フローエントリをＯＦＳ１６０に対して設定する（Ｓ１２２）。ＯＦＳ１６０は、ＯＦＣ１７０による設定に応じてフローテーブル１６２を更新する（Ｓ１２４）。
【００５２】
そのため、ステップＳ１１４において、仮想マシン１３０によるＯＳとアプリケーションの起動が完了したとき、すなわち、仮想マシン１３０がサービスを提供することができる状態になったときに、仮想マシン１３０による通信を中継するためのフローエントリが既にＯＦＳ１６０のフローテーブル１６２にあるため、仮想マシン１３０は、直ちにＯＦＳ１６０を介した通信ができ、サービスの提供を開始することができる。
【００５３】
図８に示す従来の流れを参照すると、本実施の形態のネットワークシステム１００において、従来ではステップＡ２の後に開始されるステップＡ４〜Ａ６に相当する処理は、ステップＡ１〜Ａ２の処理中に行われていることが分かる。つまり、本実施の形態のネットワークシステム１００によれば、新規の仮想マシンの生成から、該仮想マシンによるサービスの提供開始までの時間を短縮できる。
【００５４】
さらに、新規の仮想マシンの生成が頻繁に行われるシステムにおいて、多数のＯＦＳからＯＦＣにファーストパケットの問合せを行うと、ＯＦＣの負荷が非常に大きくなるという問題がある。本実施の形態のネットワークシステム１００によれば、新規の仮想マシンを生成する場合に、該仮想マシンによる通信を中継するＯＦＣによるファーストパケットの問合せをしないため、ＯＦＣの負荷を軽減することができる。
【００５５】
＜第２の実施の形態＞
図６は、第２の実施の形態にかかるネットワークシステム２００を示す。該ネットワークシステム２００も、オープンフロー技術が適用されたシステムであり、ホストマシン１１０、リソース制御装置２５０、ＯＦＳ１６０、ＯＦＣ２７０を備える。ホストマシン１１０、リソース制御装置２５０、ＯＦＳ１６０、ＯＦＣ２７０は、図示しないネットワークを介して接続されている。
【００５６】
ホストマシン１１０上に、ハイパーバイザー２２０が実装されている。本実施の形態において、ハイパーバイザー２２０は、ネットワークシステム１００におけるハイパーバイザー１２０と同様の機能を有する仮想マシン生成実行部２２２に加え、さらに、プレー設定制御部２２４を備える。プレー設定制御部２２４については、後述する。
【００５７】
リソース制御装置２５０は、生成指示発行部１５２のみを有し、プレー設定制御部１５４を有しない点において、ネットワークシステム１００におけるリソース制御装置１５０と異なる。
【００５８】
ＯＦＣ２７０は、従来のこの種のＯＦＣと同様の機能を有し、リソース制御装置２５０により制御されない点において、ネットワークシステム１００におけるＯＦＣ１７０と異なる。
【００５９】
リソース制御装置２５０からハイパーバイザー２２０に新規の仮想マシンの生成指示が発行されると、ハイパーバイザー２２０における仮想マシン生成実行部２２２は、ネットワークシステム１００におけるハイパーバイザー１２０と同様に、当該仮想マシンを生成する。プレー設定制御部２２４は、仮想マシン生成実行部２２２による仮想マシンの生成に並行して、フロー情報を含むダミーパケットをＯＦＳ１６０に送信する。すなわち、本実施の形態において、プレー設定制御部２２４は、ハイパーバイザー２２０に含まれたダミーパケット送信部である。
【００６０】
図７を参照して、仮想マシン１３０がまだ生成されていない状態において、リソース制御装置２５０による仮想マシン１３０の生成指示の発行から、仮想マシン１３０によるサービスの提供が開始されるまでの流れを説明する。
【００６１】
リソース制御装置２５０は、仮想マシン１３０の生成要求を受信すると（Ｓ１００）、生成指示発行部１５２により、ハイパーバイザー２２０に対して仮想マシン１３０の生成指示を発行する（Ｓ１１０）。
【００６２】
ハイパーバイザー２２０は、生成指示発行部１５２から仮想マシン１３０の生成指示を受信すると、仮想マシン生成実行部２２２により仮想マシン１３０を生成し（Ｓ１１２）、生成された仮想マシン１３０は、ＯＳとアプリケーションを起動する（Ｓ１１４）。
【００６３】
ステップＳ１１２の処理に並行して、ハイパーバイザー２２０におけるプレー設定制御部２２４は、ダミーパケットをＯＦＳ１６０に送信する（Ｓ２２０）。該ダミーパケットのヘッダには、仮想マシン１３０による通信に対応するフローエントリを生成するために必要なフロー情報が含まれている。
【００６４】
上記ダミーパケットがＯＦＳ１６０にとってファーストパケットとなるため、ＯＦＳ１６０は、ＯＦＣ２７０にファーストパケットの問合せをする（Ｓ２２２）。ＯＦＣ２７０は、ＯＦＳ１６０からのファーストパケットの問合せに含まれるフロー情報に基づいてフローエントリを作成して、該フローエントリをＯＦＳ１６０に対して設定する（Ｓ２２４）。ＯＦＳ１６０は、ＯＦＣ２７０による設定に応じてフローテーブル１６２を更新する（Ｓ２２６）。
【００６５】
そのため、ステップＳ１１４において、仮想マシン１３０によるＯＳとアプリケーションの起動が完了したとき、すなわち、仮想マシン１３０がサービスを提供することができる状態になったときに、仮想マシン１３０による通信を中継するためのフローエントリが既にＯＦＳ１６０のフローテーブル１６２にあるため、仮想マシン１３０は、直ちにＯＦＳ１６０を介した通信ができ、サービスの提供を開始することができる。
【００６６】
つまり、本実施の形態のネットワークシステム２００によれば、ネットワークシステム１００と同様に、従来ではステップＡ２の後に開始されるステップＡ４〜Ａ６（図８を参照）の処理は、ステップＡ１〜Ａ２の処理中に行われている。従って、本実施の形態のネットワークシステム２００も、新規の仮想マシンの生成から、該仮想マシンによるサービスの提供開始までの時間を短縮できる。
【００６７】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した各実施の形態に対してさまざまな変更、増減、組合せを行ってもよい。これらの変更、増減、組合せが行われた変形例も本発明の範囲にあることは、当業者に理解されるところである。
【００６８】
例えば、第１の実施の形態のネットワークシステム１００において、プレー設定制御部１５４は、リソース制御装置１５０に含まれ、ＯＦＣ１７０にフロー情報を直接送信することにより、フローエントリの設定をＯＦＣ１７０に行わせている。ネットワークシステム２００において、プレー設定制御部２２４は、ハイパーバイザー２２０に含まれ、ダミーパケットを送信してＯＦＳ１６０にファーストパケットの問合せをさせることにより、フローエントリの設定をＯＦＣ２７０に行わせている。プレー設定制御部２２４と同様のダミーパケット送信部をハイパーバイザーに設けると共に、仮想マシンの生成指示を発行するリソース制御装置にプレー設定制御部１５４を設けるようにしてもよい。
【００６９】
この場合、新規の仮想マシンの生成に際して、ハイパーバイザーに設けられたダミーパケット送信部と、リソース制御装置に設けられたプレー設定制御部を選択的に動作させればよい。例えば、リソース制御装置から制御可能なＯＦＣに対しては、リソース制御装置が、仮想マシンの生成指示と同時にフロー情報を該ＯＦＣに送信し、リソース制御装置から制御できないＯＦＣに対しては、ハイパーバイザーにより、仮想マシンの生成に並行してＯＦＳにダミーパケットを送信するようにすればよい。
【００７０】
上述した実施の形態の一部または全部は、以下の付記のように記載され得るが、以下の記載に限らない。
【００７１】
＜付記１＞
自身が保持するフローテーブルに含まれるフローエントリに従って受信パケットの中継を行う通信経路上のスイッチに対して、前記フローエントリを設定するフローコントローラと、
前記スイッチを介して通信を行う仮想マシンの生成指示に応じて、前記仮想マシンを生成する仮想マシン生成部とを備え、
前記仮想マシンの生成指示の発行に並行して、前記仮想マシン生成部により生成された前記仮想マシンによる通信に対応するフローエントリを生成するために必要な情報を前記フローコントローラに送信するプレー設定制御部をさらに有し、
前記フローコントローラは、前記プレー設定制御部から受信した前記必要な情報に応じて前記フローエントリを生成して、前記スイッチに対して設定することを特徴とすることを特徴とするネットワークシステム。
＜付記２＞
前記プレー設定制御部は、
前記仮想マシンの生成指示を発行するリソース制御装置に含まれていることを特徴とする付記１に記載のネットワークシステム。
＜付記３＞
前記プレー設定制御部は、前記仮想マシン生成部に含まれたダミーパケット送信部であり、
該ダミーパケット送信部は、前記生成指示の受信に応じた前記仮想マシンの生成に並行して、前記必要な情報を含むダミーパケットを前記スイッチに送信することにより、前記必要な情報に応じた前記フローエントリの設定を前記フローコントローラに要求することを前記スイッチに行わせることを特徴とする付記１に記載のネットワークシステム。
＜付記４＞
自身が保持するフローテーブルに含まれるフローエントリに従って受信パケットの中継を行う通信経路上のスイッチに対して前記フローエントリを設定するフローコントローラと、前記スイッチを介して通信を行う仮想マシンの生成指示に応じて前記仮想マシンを生成する仮想マシン生成部とを備えたネットワークシステムにおける前記仮想マシン生成部に対して前記仮想マシンの生成指示を発行するリソース制御装置であって、
前記仮想マシンの生成指示の発行に並行して、前記仮想マシン生成部により生成された前記仮想マシンによる通信に対応するフローエントリを生成するために必要な情報を前記フローコントローラに送信することにより、前記必要な情報に応じた前記フローエントリを生成して前記スイッチに対して設定することを前記フローコントローラに行わせるプレー設定制御部を有することを特徴とするリソース制御装置。
＜付記５＞
自身が保持するフローテーブルに含まれるフローエントリに従って受信パケットの中継を行う通信経路上のスイッチに対して前記フローエントリを設定するフローコントローラを備えるネットワークシステムにおける仮想マシン生成装置であって、
前記スイッチを介して通信を行う仮想マシンの生成指示に応じて前記仮想マシンを生成する仮想マシン生成実行部と、
前記仮想マシン生成実行部による前記仮想マシンの生成に並行して、該仮想マシンによる通信に対応するフローエントリを生成するために必要な情報を含むダミーパケットを前記スイッチに送信することにより、前記必要な情報に応じた前記フローエントリの設定を前記フローコントローラに要求することを前記スイッチに行わせるダミーパケット送信部とを有することを特徴とする仮想マシン生成装置。
＜付記６＞
自身が保持するフローテーブルに含まれるフローエントリに従って受信パケットの中継を行う通信経路上のスイッチに対して前記フローエントリを設定するフローコントローラと、前記スイッチを介して通信を行う仮想マシンの生成指示に応じて前記仮想マシンを生成する仮想マシン生成部とを備えたネットワークシステムにおける通信方法において、
前記仮想マシン生成部に前記仮想マシンの生成指示を発行する第１のステップと、
前記仮想マシンの生成指示の発行に並行して、前記仮想マシン生成部により生成された前記仮想マシンによる通信に対応するフローエントリを生成するために必要な情報を前記フローコントローラに送信する第２のステップと、
前記フローコントローラが、受信した前記必要な情報に応じて前記フローエントリを生成して、前記スイッチに対して設定する第３のステップとを有することを特徴とする通信方法。
＜付記７＞
前記第２のステップは、前記仮想マシン生成部が、前記生成指示の受信に応じた前記仮想マシンの生成に並行して、前記必要な情報を含むダミーパケットを前記スイッチに送信するステップであり、
前記第３のステップは、前記ダミーパケットの受信に応じて前記スイッチが前記フローコントローラに対して行った、前記必要な情報に応じた前記フローエントリの設定をする要求に応じて、前記フローコントローラが前記フローエントリを設定するステップであることを特徴とする付記６に記載の通信方法。
＜付記８＞
自身が保持するフローテーブルに含まれるフローエントリに従って受信パケットの中継を行う通信経路上のスイッチに対して前記フローエントリを設定するフローコントローラと、前記スイッチを介して通信を行う仮想マシンの生成指示に応じて前記仮想マシンを生成する仮想マシン生成部とを備えたネットワークシステムにおける前記仮想マシン生成部に対して前記仮想マシンの生成指示の発行に並行して、前記仮想マシン生成部により生成された前記仮想マシンによる通信に対応するフローエントリを生成するために必要な情報を前記フローコントローラに送信することにより、前記必要な情報に応じて前記フローエントリを生成して前記スイッチに対して設定することを前記フローコントローラに行わせることを特徴とするプレー設定制御方法。
＜付記９＞
自身が保持するフローテーブルに含まれるフローエントリに従って受信パケットの中継を行う通信経路上のスイッチに対して前記フローエントリを設定するフローコントローラを備えたネットワークシステムにおいて、前記スイッチを介して通信を行う仮想マシンの生成指示に応じた前記仮想マシンの生成に並行して、該仮想マシンによる通信に対応するフローエントリを生成するために必要な情報を含むダミーパケットを前記スイッチに送信することにより、前記必要な情報に応じた前記フローエントリの設定を前記フローコントローラに要求することを前記スイッチに行わせることを特徴とするプレー設定制御方法。
＜付記１０＞
自身が保持するフローテーブルに含まれるフローエントリに従って受信パケットの中継を行う通信経路上のスイッチに対して前記フローエントリを設定するフローコントローラと、前記スイッチを介して通信を行う仮想マシンの生成指示に応じて前記仮想マシンを生成する仮想マシン生成部とを備えたネットワークシステムにおいて、
前記仮想マシン生成部に前記仮想マシンの生成指示を発行する第１のステップと、
前記仮想マシンの生成指示の発行に並行して、前記仮想マシン生成部により生成された前記仮想マシンによる通信に対応するフローエントリを生成するために必要な情報を前記フローコントローラに送信することにより、前記必要な情報に応じて前記フローエントリを生成して前記スイッチに対して設定することを前記フローコントローラに行わせる第２のステップとを有する処理をコンピュータに実行せしめることを特徴とするプログラム。
＜付記１１＞
前記第２のステップは、前記生成指示の受信に応じた前記仮想マシンの生成に並行して、前記必要な情報を含むダミーパケットを前記スイッチに送信する処理を前記仮想マシン生成部に行わせるステップであり、
前記第３のステップは、前記ダミーパケットの受信に応じて前記スイッチが前記フローコントローラに対して行った、前記必要な情報に応じた前記フローエントリの設定をする要求に応じて、前記フローエントリを設定する処理を前記フローコントローラに行わせるステップであることを特徴とする付記１０に記載のプログラム。
＜付記１２＞
自身が保持するフローテーブルに含まれるフローエントリに従って受信パケットの中継を行う通信経路上のスイッチに対して前記フローエントリを設定するフローコントローラと、前記スイッチを介して通信を行う仮想マシンの生成指示に応じて前記仮想マシンを生成する仮想マシン生成部とを備えたネットワークシステムにおける前記仮想マシン生成部に対して前記仮想マシンの生成指示の発行に並行して、前記仮想マシン生成部により生成された前記仮想マシンによる通信に対応するフローエントリを生成するために必要な情報を前記フローコントローラに送信することにより、前記必要な情報に応じて前記フローエントリを生成して前記スイッチに対して設定することを前記フローコントローラに行わせる処理を、コンピュータに実行せしめることを特徴とするプログラム。
＜付記１３＞
自身が保持するフローテーブルに含まれるフローエントリに従って受信パケットの中継を行う通信経路上のスイッチに対して前記フローエントリを設定するフローコントローラを備えたネットワークシステムにおいて、前記スイッチを介して通信を行う仮想マシンの生成指示に応じた前記仮想マシンの生成に並行して、該仮想マシンによる通信に対応するフローエントリを生成するために必要な情報を含むダミーパケットを前記スイッチに送信することにより、前記必要な情報に応じた前記フローエントリの設定を前記フローコントローラに要求することを前記スイッチに行わせる処理を、コンピュータに実行せしめることを特徴とするプログラム。
【００７２】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００７３】
この出願は、２０１３年３月１日に出願された日本出願特願２０１３−０４０９５６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００７４】
１００  ネットワークシステム
１１０  ホストマシン
１２０  ハイパーバイザー
１３０  仮想マシン
１５０  リソース制御装置
１５２  生成指示発行部
１５４  プレー設定制御部
１６０  ＯＦＳ（オープンフロースイッチ）
１６２  フローテーブル
１６４  フローエントリ
１７０  ＯＦＣ（オープンフローコントローラ）
２００  ネットワークシステム
２２０  ハイパーバイザー
２２２  仮想マシン生成実行部
２２４  プレー設定制御部（ダミーパケット送信部）
２５０  リソース制御装置
２７０  ＯＦＣ（オープンフローコントローラ）
【図１】
0005939352.tif 000002
【図２】
0005939352.tif 000003
【図３】
0005939352.tif 000004
【図４】
0005939352.tif 000005
【図５】
0005939352.tif 000006
【図６】
0005939352.tif 000007
【図７】
0005939352.tif 000008
【図８】
0005939352.tif 000009