(57)【特許請求の範囲】
【請求項１】
仮想ネットワーク機能が動作するサーバを含むネットワークの制御装置であって、
サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係を記憶する記憶手段と、
前記対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御する制御手段と、
を有し、前記制御手段が、前記プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させることを特徴とする制御装置。
【請求項２】
仮想ネットワーク機能が動作するサーバを含むネットワークの制御装置であって、
サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係を記憶する記憶手段と、
前記対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御する制御手段と、
を有し、前記制御手段が、前記プログラム可能論理回路のプログラムを更新する場合、当該プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させることを特徴とする制御装置。
【請求項３】
前記制御手段が、前記仮想マシンまたは前記プログラム可能論理回路の追加、更新あるいは削除を実行することを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記制御手段が、前記プログラム可能論理回路のプログラムを更新することを特徴とする請求項１−３のいずれか１項に記載の制御装置。
【請求項５】
仮想ネットワーク機能が動作するサーバを含むネットワークの制御方法であって、
記憶手段が、サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係を記憶し、
制御手段が、前記対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御し、前記プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させる、
ことを特徴とする制御方法。
【請求項６】
仮想ネットワーク機能が動作するサーバを含むネットワークの制御方法であって、
記憶手段が、サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係を記憶し、
制御手段が、前記対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御し、前記プログラム可能論理回路のプログラムを更新する場合、前記プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させる、
ことを特徴とする制御方法。
【請求項７】
前記制御手段が、前記仮想マシンまたは前記プログラム可能論理回路の追加、更新あるいは削除を実行することを特徴とする請求項５または６に記載の制御方法。
【請求項８】
仮想ネットワーク機能が動作するサーバを含むネットワークシステムであって、
少なくとも一つのプログラム可能論理回路に対応したサーバを含む複数のサーバが接続されたネットワークと、
サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御し、前記プログラム可能論理回路のプログラムを更新する場合、前記プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させる制御装置と、
を有することを特徴とするネットワークシステム。
【請求項９】
コントローラにより制御されるサーバであって、
仮想ネットワーク機能を実現する仮想マシンの動作主体となり得るＣＰＵ（Central Processing Unit）と、
仮想ネットワーク機能を実現する仮想マシンの動作主体となり得るプログラム可能論理回路と、
前記コントローラからの指示に従って、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御する制御手段と、
を有し、前記制御手段が、前記プログラム可能論理回路のプログラムを更新する場合、前記プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させることを特徴とするサーバ。
【請求項１０】
仮想ネットワーク機能が動作するサーバを含むネットワークの制御装置としてコンピュータを機能させるプログラムであって、
サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係を記憶する機能と、
前記対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御し、前記プログラム可能論理回路のプログラムを更新する場合、前記プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させる機能と、
を前記コンピュータで実現することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想ネットワーク機能を含むネットワークシステムに係り、特にその制御技術に関する。
【背景技術】
【０００２】
現在の通信システムでは、ＢＲＡＳ(Broadband Remote Access Server)、ＮＡＴ(Network Address Translation)、ルータ(Router)、ファイアウォール（ＦＷ：Firewall）、ＤＰＩ（Deep Packet Inspection)などの様々なネットワーク機能（Network Function：ＮＦ）を専用のハードウェア機器（アプライアンス）により実現している。このために、ネットワークオペレータは、新たなネットワークサービスを立ち上げる場合、新たな専用のハートウェア機器の導入を強いられ、機器の購入費用や設置スペース等の多大なコストを必要とする。このような状況に鑑み、近年、ハードウェア機器で実行されるネットワーク機能をソフトウェアにより仮想的に実行する技術（ネットワーク機能の仮想化：Network Function Virtualization）が検討されている（非特許文献１）。ネットワークサービスの仮想化の一例として、特許文献１に、通信ノード装置上に複数の仮想ルータを構築し、これらの仮想ルータの資源を通信品質に応じて動的に配分する方法が開示されている。【０００３】
また、複数の仮想ネットワーク機能(Virtual Network Function：ＶＮＦ)を組み合わせた通信経路に通信フローを伝送することにより種々のネットワークサービスを提供する技術も検討されている（たとえば、非特許文献２を参照）。【０００４】
図１に例示するように、ネットワーク機能の仮想化では、仮想ネットワーク機能ＶＮＦの論理的つながり（フォワーディンググラフ：Forwarding Graph）によりネットワークサービスが構成され管理される。ここでは、オーバレイネットワークに５つの仮想ネットワーク機能ＶＮＦ−１〜ＶＮＦ−５からなるネットワークサービスが例示されている。【０００５】
このフォワーディンググラフの仮想ネットワーク機能ＶＮＦ−１〜ＶＮＦ−５は、NFVインフラストラクチャ（NFV Infrastructure:ＮＦＶＩ）における汎用サーバＳＶ１〜ＳＶ４上で動作する。専用サーバでなく汎用サーバ上でキャリアグレードの機能を仮想的に動作させることにより、低価格化および運用の容易化を達成することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１７５４１８号公報
【非特許文献】
【０００７】
【非特許文献１】Network Functions Virtualization - Update White Paper, October 15-17, 2013 at the “SDN and OpenFlow World Congress”, Frankfurt-Germany (http://portal.etsi.org/NFV/NFV_White_Pater2.pdf)
【０００８】
【非特許文献２】ETSI GS NFV 001 v1.1.1 (2013-10)“Network Functions Virtualisation (NFV); Use Cases”(http://docbox.etsi.org/ISG/NFV/Open/Published/gs_NFV001v010101p%20-%20Use%20Cases.pdf)
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、汎用サーバでＮＦＶを構築しようとすると、サーバのＣＰＵ(Central Processing Unit)処理、サーバ間の通信などにボトルネックが起こる可能性があり、このボトルネックを回避するには各サーバの高速化が不可欠である。ＣＰＵの高速化技術としては、ＣＰＵコア数を増加させる他に、ＣＰＵにＦＰＧＡ（Field-Programmable Gate Array）を結合するアクセラレータ技術が知られている（たとえば、”Xeon+FPGA Platform for the Data Center”ISCA/CARL 2015 <http://www.ece.cmu.edu/~calcm/carl/lib/exe/fetch.php?media=carl15-gupta.pdf>）。【００１０】
ところが、このようなＦＰＧＡを付加したサーバを用いてＮＦＶを構築すると、ＣＰＵだけなくＦＰＧＡ上でもＶＭ／ＶＮＦが動作するので、ネットワーク内のＦＰＧＡとＶＭとの対応についても管理する必要がある。たとえば、ＶＭに応じたＦＰＧＡプログラムの更新を実行したり、バージョンアップ等のＶＭの更新あるいはＶＮＦ機能追加によるＶＭの追加／更新に伴ったＦＰＧＡの追加／更新を実行したりする必要がある。【００１１】
このように、サーバのＣＰＵだけでなく、ＦＰＧＡのようなプログラム可能論理回路がＶＭ／ＶＮＦのインフラストラクチャとして含まれるネットワークでは、プログラム可能論理回路を考慮した特別の制御手法が必要である。【００１２】
そこで、本発明の目的は、プログラム可能論理回路がＶＭ／ＶＮＦのインフラストラクチャとして含まれるネットワークを効率的に制御する制御方法および制御装置、ネットワークシステムならびにサーバを提供することにある。
【課題を解決するための手段】
【００１３】
本発明によるネットワーク制御装置は、仮想ネットワーク機能が動作するサーバを含むネットワークの制御装置であって、サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係を記憶する記憶手段と、前記対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御する制御手段と、を有し、前記制御手段が、前記プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させることを特徴とする。
また、本発明によるネットワーク制御装置は、仮想ネットワーク機能が動作するサーバを含むネットワークの制御装置であって、サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係を記憶する記憶手段と、前記対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御する制御手段と、を有し、前記制御手段が、前記プログラム可能論理回路のプログラムを更新する場合、当該プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させることを特徴とする。
本発明によるネットワーク制御方法は、仮想ネットワーク機能が動作するサーバを含むネットワークの制御方法であって、記憶手段が、サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係を記憶し、制御手段が、前記対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御し、前記プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させる、ことを特徴とする。
また、本発明によるネットワーク制御方法は、仮想ネットワーク機能が動作するサーバを含むネットワークの制御方法であって、記憶手段が、サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係を記憶し、制御手段が、前記対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御し、前記プログラム可能論理回路のプログラムを更新する場合、前記プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させる、ことを特徴とする。
本発明によるネットワークシステムは、仮想ネットワーク機能が動作するサーバを含むネットワークシステムであって、少なくとも一つのプログラム可能論理回路に対応したサーバを含む複数のサーバが接続されたネットワークと、サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御し、前記プログラム可能論理回路のプログラムを更新する場合、前記プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させる制御装置と、を有することを特徴とする。
本発明によるサーバは、コントローラにより制御されるサーバであって、仮想ネットワーク機能を実現する仮想マシンの動作主体となり得るＣＰＵ（Central Processing Unit）と、仮想ネットワーク機能を実現する仮想マシンの動作主体となり得るプログラム可能論理回路と、前記コントローラからの指示に従って、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御する制御手段と、を有し、前記制御手段が、前記プログラム可能論理回路のプログラムを更新する場合、前記プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、プログラム可能論理回路がＶＭ／ＶＮＦのインフラストラクチャとして含まれるネットワークを効率的に制御することができる。
【図面の簡単な説明】
【００１５】
【図１】図１はネットワーク機能の仮想化の一例を示す概略的ネットワーク図である。
【図２】図２は本発明を適用するネットワークシステムの第１例を示す模式的なネットワーク図である。
【図３】図３は本発明を適用するネットワークシステムにおける物理サーバと仮想ネットワーク機能との対応関係の一例を示す模式的なネットワーク図である。
【図４】図４は本発明の第１実施形態による制御装置の概略的構成を示すブロック図である。
【図５】図５は本実施形態によるネットワークシステムの一例を示すネットワーク構成図である。
【図６】図６は本実施形態によるネットワークシステムの制御動作を説明するためのネットワーク構成図である。
【図７Ａ】図７Ａは図６に示すネットワークシステムにおける機能管理部の管理データの一例を示す模式図である。
【図７Ｂ】図７Ｂは図６に示すネットワークシステムにおけるＦＰＧＡ管理部の管理データの一例を示す模式図である。
【図８】図８は本実施形態によるネットワークシステムにおける制御動作の第１例を説明するためのネットワーク構成図である。
【図９Ａ】図９Ａは図８に示すネットワークシステムにおける機能管理部の管理データの一例を示す模式図である。
【図９Ｂ】図９Ｂは図８に示すネットワークシステムにおけるＦＰＧＡ管理部の管理データの一例を示す模式図である。
【図１０】図１０は本実施形態によるネットワークシステムにおける制御動作の第２例を説明するためのネットワーク構成図である。
【図１１】図１１は図１０に示すネットワークシステムにおけるＦＰＧＡ管理部の管理データの一例を示す模式図である。
【図１２】図１２は本実施形態によるネットワークシステムにおける制御動作の第３例を説明するためのネットワーク構成図である。
【図１３】図１３はＦＰＧＡ対応サーバの概略的構成を示すブロック図である。
【図１４】図１４は図１２に示す制御動作のシーケンス図である。
【図１５】図１５は本発明を適用するネットワークシステムの第２例を示す模式的なネットワーク図である。
【図１６】図１６は本発明を適用するネットワークシステムの第３例を示す模式的なネットワーク図である。
【発明を実施するための形態】
【００１６】
＜実施形態の概要＞
本発明の実施形態によれば、サーバ上で仮想化ネットワーク機能（ＶＮＦ）が動作しうるネットワークシステムにおいて、サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシン（ＶＭ）と、サーバのＶＭで実現するＶＮＦと、の対応関係を用いてネットワークを制御する。たとえば、どのサーバがプログラム可能論理回路に対応しているか、プログラム可能論理回路にどのプログラムがインストールされているか、どのサーバにどのＶＭ、どのＶＮＦが動作しているか、を示す情報を参照することで、更新すべきＶＭおよび／またはプログラム可能論理回路を特定することができる。このように、プログラム可能論理回路に関する情報とそれに対応付けられたＶＭ／ＶＮＦ情報とを用いることで、プログラム可能論理回路の回路構成プログラムの更新、ＶＭの追加／更新に伴ったプログラム可能論理回路の追加／更新等の制御を実行することができ、プログラム可能論理回路を含むネットワークの効率的な制御が可能となる。
【００１７】
まず、図２および図３を参照して、本発明の各実施形態を説明するためのシステム構成の一例を示す。このシステム構成は、説明の複雑化を回避するための簡略化された例であり、本発明を限定するものではない。
【００１８】
＜システム＞
図２に例示するように、コントローラ１０は、管理装置１１からの指示に従って、複数のサーバからなる下位レイヤネットワーク２０と複数のＶＮＦからなる上位レイヤネットワーク３０とを制御する。ここでは、図の簡略化のために、下位レイヤネットワーク２０がサーバＡ、Ｂ、ＣおよびＤからなり、上位レイヤネットワーク３０が仮想ネットワーク機能ＶＮＦ−１〜ＶＮＦ−５からなるものとする。
【００１９】
下位レイヤネットワーク２０における複数のサーバのうち少なくとも一つはプログラム可能論理回路を含むサーバである。プログラム可能論理回路は、後述するように、プログラム可能な定型的な処理を高速で実行可能なハードウェア回路であり、結合したＣＰＵのアクセラレータとして動作可能である。また、プログラム可能論理回路は、ユーザが希望する論理機能を短期間で実現できるとともに、書き換え可能という利点も有する。以下、プログラム可能論理回路としてＦＰＧＡを例示し、ＣＰＵとＦＰＧＡとが結合したサーバをＦＰＧＡ対応サーバ、ＦＰＧＡのないサーバをＦＰＧＡ非対応サーバと呼ぶ。
【００２０】
上位レイヤネットワーク３０における各ＶＮＦは下位レイヤネットワーク２０の物理サーバ上に設定される。たとえば、図２に例示したシステムでは、ＶＮＦ−１、ＶＮＦ−４およびＶＮＦ−５がそれぞれサーバＡ、ＣおよびＤ上に、ＶＮＦ−２およびＶＮＦ−３が一つの物理サーバＢ上に、それぞれ設定されている。管理装置１１は、ＦＰＧＡ対応サーバおよび非対応サーバにＶＮＦをどのように配置するかを決定する。ＶＮＦの配置例を図３に示す。
【００２１】
図３において、下位レイヤネットワーク２０におけるＦＰＧＡ対応サーバ２１はＣＰＵ２１−１とＦＰＧＡ２１−２とが結合された構成を有する。図３では、ＣＰＵ２１−１上に仮想マシンＶＭ１が、ＦＰＧＡ２１−２上に仮想マシンＶＭ２がそれぞれ構成され、仮想マシンＶＭ１に上位レイヤネットワーク２０のＶＮＦ−Ａが、ＦＰＧＡ２１−２上の仮想マシンＶＭ２にＶＮＦ−Ｂが、それぞれ配置されている。ＦＰＧＡ２１−２は、例えば、コントローラ１０など、ＦＰＧＡ対応サーバ２１を制御するための装置を介して、コンフィグレーションデータをロードすることで所望のＶＮＦを再構成することが可能である。なお、ＣＰＵ２１−１あるいはＦＰＧＡ２１−２上に複数の仮想マシンＶＭを構成し、これらの仮想マシンにＶＮＦをそれぞれ配置することもできる。ＦＰＧＡ非対応サーバ２２は単一のＣＰＵ２２−１を有し、その上に一つあるいは複数の仮想マシンＶＭ３が構成され、その上にＶＮＦが配置されうる。
【００２２】
上述したようなネットワークシステムにおいて、コントローラ１０は、管理装置１１の指示に従って、ＦＰＧＡ対応サーバおよびＦＰＧＡ非対応サーバにおけるＶＮＦ、ＶＭおよびＦＰＧＡの追加、設定変更、削除等の制御を個別に実行することができる。なお、上述したようにコントローラ１０がネットワークシステムを一括管理することもできるが、上位レイヤネットワーク３０（ＶＮＦレイヤ）を制御するコントローラ、下位レイヤネットワーク２０（ＮＦＶＩレイヤ）を制御する別のコントローラ、というように、レイヤごとにコントローラを設ける構成であってもよい。以下、本発明の実施形態によるコントローラ１０について図面を参照しながら詳細に説明する。
【００２３】
１．一実施形態
１．１）制御装置
本発明の一実施形態によるコントローラ１０は、ネットワークシステムにおけるサーバおよびスイッチを制御し、管理装置１１からの指示に従ってＦＰＧＡ、ＶＭあるいはＶＮＦの制御および経路制御を実行する。
【００２４】
図４において、コントローラ１０は、ネットワーク管理部１０１、機能管理部１０２およびＦＰＧＡ管理部１０３を有し、さらに上述したネットワークシステムにおける各サーバおよびスイッチと接続するネットワークインタフェース１０４を有する。また、コントローラ１０はオペレータが操作する管理装置１１と管理インタフェース１０５を通して接続している。コントローラ１０の制御部１０６は、プログラムメモリ１０７に格納されたプログラムを実行することで、後述するように、ネットワーク管理部１０１、機能管理部１０２およびＦＰＧＡ管理部１０３を制御し、ＶＭ／ＦＰＧＡの追加、変更、削除等の制御を実行する。
【００２５】
ネットワーク管理部１０１は、サーバおよびスイッチで構成されるネットワーク情報、例えばトポロジ情報を管理する。機能管理部１０２は、各サーバで動作している機能、すなわち仮想マシンＶＭおよび仮想ネットワーク機能ＶＮＦを管理する。例えば、どのサーバにどのＶＭが立ち上がっているか等を管理する。ＦＰＧＡ管理部１０３は、各サーバのＦＰＧＡを管理し、例えば、どのサーバがＦＰＧＡ対応のサーバか、どのＦＰＧＡプログラムがインストールされているか等を管理する。
【００２６】
制御部１０６は、管理部１０１〜１０３の管理する情報を基に、ネットワークサービスのフォワーディング経路を制御する。例えば、機能管理部１０２からの機能情報と、ネットワーク管理部１０１からのトポロジ情報とに応じて上位ネットワーク３０の経路を特定する。さらに、制御部１０６は、ＦＰＧＡ管理部１０３からのＦＰＧＡに関する情報と、機能管理部１０２からの機能情報とに基づいて、更新すべきＶＭとＦＰＧＡとの対応関係を特定する。
【００２７】
１．２）システム構成
以下、説明の複雑化を回避するために、図５に示すシステムを参照しながら本実施形態による制御方法について説明する。すなわち、サーバＸ、ＹがＦＰＧＡ対応、サーバＺがＦＰＧＡ非対応とし、コントローラ１０が管理装置１１の指示に従って各サーバのＶＭ／ＦＰＧＡと各スイッチとを制御するものとする。制御の具体例を説明するための構成を図６に示す。
【００２８】
図６に例示するように、サーバＸ、ＹおよびＺの各々に仮想ネットワーク機能が配置されているものとする。より詳しくは、ＦＰＧＡ対応サーバＸのＣＰＵ上に仮想マシンＶＭ１が、ＦＰＧＡ上に仮想マシンＶＭ２がそれぞれ構成され、仮想マシンＶＭ１にＶＮＦ−Ａが、仮想マシンＶＭ２にＶＮＦ−Ｂが、それぞれ配置されている。また、ＦＰＧＡ対応サーバＹのＣＰＵ上に仮想マシンＶＭ３が、ＦＰＧＡ上に仮想マシンＶＭ４がそれぞれ構成され、仮想マシンＶＭ３にＶＮＦ−Ｃが、仮想マシンＶＭ４にＶＮＦ−Ｂが、それぞれ配置されている。ＦＰＧＡ非対応サーバＺのＣＰＵ上に仮想マシンＶＭ５が構成され、仮想マシンＶＭ５にＶＮＦ−Ｄが配置されている。このようなシステムにおいて、管理装置１１がコントローラ１０に対してＶＮＦ、ＶＭあるいはＦＰＧＡの更新を指示すると、コントローラ１０は、上述した機能管理部１０２およびＦＰＧＡ管理部１０３により、対象となるサーバおよびＶＭを特定し、指示されたＶＮＦあるいはＶＭの更新、またはＦＰＧＡプログラムのバージョンアップを実行する。機能管理部１０２およびＦＰＧＡ管理部１０３には、図７Ａおよび図７Ｂに例示するような管理テーブルが格納されている。
【００２９】
図７Ａに例示するように、機能管理部１０２には、ネットワークシステムにおけるＶＭと、ＶＮＦと、サーバと、サーバにおけるＶＭ実行主体との間の対応関係を登録した管理テーブルが設けられている。すなわち、機能管理部１０２の管理テーブルを参照することで、ネットワークシステムで動作している仮想マシンＶＭ１〜ＶＭ５の各々が、どのサーバのどの実行主体（ＣＰＵあるいはＦＰＧＡ）で動作し、その上でどのＶＮＦが動作しているか、を特定することができる。
【００３０】
また、図７Ｂに例示するように、ＦＰＧＡ管理部１０３には、ネットワークシステムにおけるサーバがＦＰＧＡ対応であるか否か、そのＦＰＧＡがどのＦＰＧＡプログラムをインストールしているか、を示すＦＰＧＡ情報を登録した管理テーブルが設けられている。たとえば、サーバＸはＦＰＧＡ対応であり、そのＦＰＧＡにはＦＰＧＡプログラムＦ−Ａ１．１がインストールされている。
【００３１】
本実施形態によるコントローラ１０は、上述したような機能管理部１０２およびＦＰＧＡ管理部１０３の管理テーブルを用いることで、ネットワーク／ＶＮＦ／ＶＭ／ＦＰＧＡの制御を実行することができる。
【００３２】
なお、コントローラ１０において、後述するようなネットワーク管理部１０１、機能管理部１０２、ＦＰＧＡ管理部１０３および制御部１０５の機能は、プログラムメモリ１０７に蓄積されたプログラムをＣＰＵ上で実行することにより実現することもできる。以下、上述したＶＭ／ＦＰＧＡの制御例について図面を参照しながら説明する。
【００３３】
１．３）制御動作
＜ＶＮＦ更新＞
図８に示すように、管理装置１１からＶＭ更新およびＦＰＧＡプログラムＦ−Ａ１．１のバージョンアップを含むＶＮＦ−Ｂの更新が指示されると（動作Ｓ２０１）、コントローラ１０の制御部１０６は、機能管理部１０２の管理テーブルを参照して、ＶＮＦ−Ｂに対応づけられたサーバＸのＦＰＧＡおよびＶＭ２と、サーバＹのＦＰＧＡおよびＶＭ４とを特定し、さらにＦＰＧＡ管理部１０３の管理テーブルを参照して、サーバＸのＦＰＧＡプログラムＦ−Ａ１．１を特定する。そして、制御部１０６は、ネットワークインタフェース１０４を通して、対象となるサーバＸのＶＭ２をＶＭ２’へ更新し、ＦＰＧＡプログラムをＦ−Ａ１．１からＦ−Ａ１．２へバージョンアップし、また、サーバＹのＶＭ４をＶＭ４’へ更新する（動作Ｓ２０２）。以上の更新が完了すると、制御部１０６は機能管理部１０２およびＦＰＧＡ管理部１０３の管理テーブルを図９Ａおよび図９Ｂに示すように更新する。
【００３４】
なお、ＶＭの追加あるいは削除も同様に制御することができる。例えば、サーバＸに新たなＶＭを追加する場合、制御部１０６は、ネットワークインタフェース１０４を通して、対象となるサーバＸに対して、新たなＶＭの追加を指示する。また、例えば、サーバＸからＶＭ２を削除する場合、制御部１０６は、ネットワークインタフェース１０４を通して、対象となるサーバＸに対して、ＶＭ２の削除を指示する。
【００３５】
＜ＦＰＧＡプログラム更新＞
図１０に示すように、管理装置１１からＦＰＧＡプログラムＦ−Ａ１．１のバージョンアップが指示されると（動作Ｓ３０１）、コントローラ１０の制御部１０６は、ＦＰＧＡ管理部１０３の管理テーブルを参照して、サーバＸのＦＰＧＡプログラムＦ−Ａ１．１を特定する。そして、制御部１０６は、ネットワークインタフェース１０４を通して、対象となるサーバＸのＦＰＧＡプログラムをＦ−Ａ１．１からＦ−Ａ１．２へバージョンアップする（動作Ｓ３０２）。以上の更新が完了すると、制御部１０６はＦＰＧＡ管理部１０３の管理テーブルを図１１に示すように更新する。
【００３６】
なお、ＦＰＧＡの追加あるいは削除も同様に制御することができる。例えば、サーバＸに新たなＦＰＧＡを追加する場合、制御部１０６は、ネットワークインタフェース１０４を通して、対象となるサーバＸに対して、新たなＦＰＧＡプログラムを追加（インストール）するように指示する。また、例えば、サーバＸからＦＰＧＡプログラムＦ−Ａ１．１を削除する場合、制御部１０６は、ネットワークインタフェース１０４を通して、対象となるサーバＸに対して、ＦＰＧＡプログラムＦ−Ａ１．１を削除するように指示する。
【００３７】
＜ＦＰＧＡプログラム更新中のＣＰＵ代理処理＞
図１２はＦＧＰＡプログラム更新制御の他の例を示す。図１２において、管理装置１１からＦＰＧＡプログラムＦ−Ａ１．１のバージョンアップが指示されると（動作Ｓ４０１）、コントローラ１０は、対象となるサーバＸのＦＰＧＡプログラムをＦ−Ａ１．１からＦ−Ａ１．２へバージョンアップする（動作Ｓ４０２）。その際、ＦＰＧＡが行っていたＶＭ２のデータ処理はＣＰＵ側で代理処理される（動作Ｓ４０３）。これにより、一時的なマイグレーション等を実行することなく、ＦＰＧＡ更新中のデータ処理を続行することができる。
【００３８】
なお、ＦＰＧＡ側のデータ処理をＣＰＵ側で代行する制御は、サーバＸがコントローラ１０からＦＰＧＡプログラム更新指示を受信したときに自律的に実行してもよいし、コントローラ１０が代理処理を依頼する旨をサーバＸへ指示してもよい。たとえば、コントローラ１０からのＦＰＧＡプログラム更新指示に処理代理指示を含めることができる。
【００３９】
図１３に示すように、ＦＰＧＡ２１−２上のＶＭ２でのデータ処理をＣＰＵ２１−１が代行する制御は、たとえば共通のメモリ２１−３を介して行うことができる。
【００４０】
以下、図１２に示すＦＧＰＡプログラム更新制御について、図１４を参照しながらより詳細に説明する。
【００４１】
図１４に示すように、管理装置１１からＦＰＧＡプログラムＦ−Ａ１．１のバージョンアップが指示されると（動作Ｓ４０１）、コントローラ１０の制御部１０６は、ＦＰＧＡ管理部１０３の管理テーブルを参照して、サーバＸのＦＰＧＡプログラムＦ−Ａ１．１を特定し（動作Ｓ４０１ａ）、ネットワークインタフェース１０４を通して、対象となるサーバＸに対して、ＦＰＧＡプログラムをＦ−Ａ１．１からＦ−Ａ１．２へバージョンアップする更新指示を送信する（動作Ｓ４０２）。
【００４２】
サーバＸは、コントローラ１０からＦＰＧＡプログラム更新指示を受信すると、自律的にＦＰＧＡでのデータ処理をＣＰＵ側へ代行させる。まず、ＦＰＧＡが行っていたＶＭ２のデータ処理をＣＰＵ側に代理処理させ、これによりＣＰＵ上でＶＭ１およびＶＭ２のデータ処理が実行される（動作Ｓ４０３）。続いて、コントローラ１０から受信した更新ＦＰＧＡプログラムを用いて更新処理を実行し（動作Ｓ４０４）、ＦＰＧＡ側のプログラム更新が完了すると、ＦＰＧＡは、更新されたプログラムＦ−Ａ１．２上でＶＭ２によるデータ処理をＣＰＵ側から引き継いで実行する（動作Ｓ４０５）。こうして、ＦＰＧＡプログラムをバージョンアップしている間、サーバＸは、ＦＰＧＡ更新中にＦＰＧＡ側で実行すべきデータ処理をＣＰＵ側で続行するので、処理を中断することなくＦＰＧＡプログラムの更新が可能となる。
【００４３】
なお、上述したように、ＦＰＧＡ側のデータ処理をＣＰＵ側で代行する制御は、サーバＸが自律的に実行してもよいが、コントローラ１０がＦＰＧＡプログラム更新指示に処理代理指示を含めることでコントローラ１０が主導して実行してもよい。
【００４４】
１．４）効果
上述したように、本実施形態によるネットワーク制御によれば、サーバに含まれるＦＰＧＡと、サーバで起動する仮想マシン（ＶＭ）と、サーバのＶＭで実現するＶＮＦと、の対応関係を用いることで、更新すべきＶＭおよび／またはＦＰＧＡを特定することができる。これにより、ＦＰＧＡプログラムの更新、ＶＭの追加／更新に伴ったＦＰＧＡの追加／更新等の制御を実行することができ、ＦＰＧＡを含むネットワークの効率的な制御が可能となる。
【００４５】
２．他の実施形態
上述した実施形態では、管理装置１１がコントローラ１０を通してネットワークシステムを一括管理する場合を例示したが、管理装置１１とコントローラ１０とを一体化した管理装置がネットワークを一括管理してもよい。たとえば、図１５に示すように、管理装置１２に上述した管理装置１１およびコントローラ１０の機能がふくまれており、管理装置１２がネットワークシステムを一括管理することもできる。
【００４６】
また、本発明はこの一括管理に限定されるものではなく、マルチレイヤシステムの各レイヤを別々の管理部が協調して管理する構成であってもよい。このような分散管理システムの一例を図１６に示す。
【００４７】
図１６に例示するように、ネットワークシステムは、下位レイヤネットワーク２０（ＶＮＦＩレイヤ）を管理する管理部１２ａと、上位レイヤネットワーク３０（ＶＮＦレイヤ）を管理する管理部１２ｂとを有し、管理部１２ａおよび１２ｂが協調して下位レイヤネットワーク２０および上位レイヤネットワーク３０を管理する。管理方法は上述した実施形態の通りであるから、説明は省略する。
【００４８】
なお、各レイヤを管理する管理部１２ａおよび１２ｂは、通信可能に接続された別個の装置が互いに協調して上記各実施形態の管理動作を実行してもよいし、それらの上位装置の管理により管理動作を実行してもよい。また、一つの管理装置内に各レイヤを管理する管理部１２ａおよび１２ｂ、あるいはそれらを管理する上位管理部が機能的に分離して設けられた構成であってもよい。
３．付記
上述した実施形態および実施例の一部あるいは全部は、以下の付記のようにも記載されうるが、これらに限定されるものではない。
（付記１）
仮想ネットワーク機能が動作するサーバを含むネットワークの制御装置であって、
サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係を記憶する記憶手段と、
前記対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御する制御手段と、
を有することを特徴とする制御装置。
（付記２）
前記制御手段が、前記仮想マシンまたは前記プログラム可能論理回路の追加、更新あるいは削除を実行することを特徴とする付記１に記載の制御装置。
（付記３）
前記制御手段が、前記プログラム可能論理回路のプログラムを更新することを特徴とする付記１または２に記載の制御装置。
（付記４）
前記制御手段が、前記プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させることを特徴とする付記１−３のいずれか１項に記載の制御装置。
（付記５）
前記制御手段が、前記プログラム可能論理回路のプログラムを更新する場合、当該プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させることを特徴とする付記１−３のいずれか１項に記載の制御装置。
（付記６）
仮想ネットワーク機能が動作するサーバを含むネットワークの制御方法であって、
記憶手段が、サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係を記憶し、
制御手段が、前記対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御する、
ことを特徴とする制御方法。
（付記７）
前記制御手段が、前記仮想マシンまたは前記プログラム可能論理回路の追加、更新あるいは削除を実行することを特徴とする付記６に記載の制御方法。
（付記８）
前記制御手段が、前記プログラム可能論理回路のプログラムを更新することを特徴とする付記６または７に記載の制御方法。
（付記９）
前記制御手段が、前記プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させることを特徴とする付記６−８のいずれか１項に記載の制御方法。
（付記１０）
前記制御手段が、前記プログラム可能論理回路のプログラムを更新する場合、当該プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させることを特徴とする付記６−８のいずれか１項に記載の制御方法。
（付記１１）
仮想ネットワーク機能が動作するサーバを含むネットワークシステムであって、
少なくとも一つのプログラム可能論理回路に対応したサーバを含む複数のサーバが接続されたネットワークと、
サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御する制御装置と、
を有することを特徴とするネットワークシステム。
（付記１２）
前記制御装置が、前記仮想マシンまたは前記プログラム可能論理回路の追加、更新あるいは削除を実行することを特徴とする付記１１に記載のネットワークシステム。
（付記１３）
前記制御装置が、前記プログラム可能論理回路のプログラムを更新することを特徴とする付記１１または１２に記載のネットワークシステム。
（付記１４）
前記制御装置が、前記プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させることを特徴とする付記１１−１３のいずれか１項に記載のネットワークシステム。
（付記１５）
前記制御装置から前記プログラム可能論理回路のプログラム更新指示を受け取ると、前記サーバが、前記プログラム可能論理回路のプログラムを更新する間、当該プログラム可能論理回路で動作している仮想マシンのデータ処理を当該サーバのＣＰＵ（Central Processing Unit）に代行させることを特徴とする付記１１−１３のいずれか１項に記載のネットワークシステム。
（付記１６）
コントローラにより制御されるサーバであって、
仮想ネットワーク機能を実現する仮想マシンの動作主体となり得るＣＰＵ（Central Processing Unit）と、
仮想ネットワーク機能を実現する仮想マシンの動作主体となり得るプログラム可能論理回路と、
前記コントローラからの指示に従って、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御する制御手段と、
を有することを特徴とするサーバ。
（付記１７）
前記制御手段が、前記仮想マシンまたは前記プログラム可能論理回路の追加、更新あるいは削除を実行することを特徴とする付記１６に記載のサーバ。
（付記１８）
前記制御手段が、前記プログラム可能論理回路のプログラムを更新することを特徴とする付記１６または１７に記載のサーバ。
（付記１９）
前記コントローラからの前記プログラム可能論理回路のプログラム更新指示に含まれるＣＰＵ処理代理指示に従って、前記制御手段が、前記プログラム可能論理回路のプログラムを更新する間、当該プログラム可能論理回路で動作している仮想マシンのデータ処理を前記ＣＰＵに代行させることを特徴とする付記１６−１８のいずれか１項に記載のサーバ。
（付記２０）
前記コントローラから前記プログラム可能論理回路のプログラム更新指示を受け取ると、前記制御手段が、前記プログラム可能論理回路のプログラムを更新する間、当該プログラム可能論理回路で動作している仮想マシンのデータ処理を前記ＣＰＵに代行させることを特徴とする付記１６−１８のいずれか１項に記載のサーバ。
（付記２１）
仮想ネットワーク機能が動作するサーバを含むネットワークの制御装置としてコンピュータを機能させるプログラムであって、
サーバに含まれるプログラム可能論理回路と、サーバで起動する仮想マシンと、サーバの仮想マシンで実現する仮想ネットワーク機能と、の対応関係を記憶する機能と、
前記対応関係に基づいて、少なくとも前記仮想マシンと当該仮想マシンが動作する前記プログラム可能論理回路とをそれぞれ制御する機能と、
を前記コンピュータで実現することを特徴とするプログラム。
【産業上の利用可能性】
【００４９】
本発明は、仮想ネットワーク機能（ＶＮＦ）をネットワーク上に配置するシステムで利用可能である。
【符号の説明】
【００５０】
１０  コントローラ
１１、１２  管理装置
１２ａ，１２ｂ  管理部
２０  下位レイヤネットワーク
２１−１  ＣＰＵ
２１−２  ＦＰＧＡ
２２−１  ＣＰＵ
３０  上位レイヤネットワーク
１０１  ネットワーク管理部
１０２  機能管理部
１０３  ＦＰＧＡ管理部
１０４  ネットワークインタフェース
１０５  管理インタフェース
１０６  制御部
１０７  プログラムメモリ
ＶＮＦ  仮想ネットワーク機能
【図１】
0006687106.tif 000002
【図２】
0006687106.tif 000003
【図３】
0006687106.tif 000004
【図４】
0006687106.tif 000005
【図５】
0006687106.tif 000006
【図６】
0006687106.tif 000007
【図７Ａ】
0006687106.tif 000008
【図７Ｂ】
0006687106.tif 000009
【図８】
0006687106.tif 000010
【図９Ａ】
0006687106.tif 000011
【図９Ｂ】
0006687106.tif 000012
【図１０】
0006687106.tif 000013
【図１１】
0006687106.tif 000014
【図１２】
0006687106.tif 000015
【図１３】
0006687106.tif 000016
【図１４】
0006687106.tif 000017
【図１５】
0006687106.tif 000018
【図１６】
0006687106.tif 000019