(57)【要約】【課題】フェデレーション制御のためのサーバをスライス上に仮想的に形成し、この仮想サーバを用いて他仮想化基盤のドメインにまたがるユーザスライスを作成する。【解決手段】複数の仮想化基盤にまたがった仮想ネットワークに予め作成された管理スライス上に、自仮想化基盤内の仮想ノードと他仮想化基盤内の仮想ノードを形成してリンクで接続し、この仮想ノードにフェデレーション制御を行う第１仮想サーバを構成する。仮想化基盤に作成される仮想ノードのうちの特定ノード（特定仮想ノード）に、他仮想化基盤に作成する仮想ネットワークの構成定義情報を入れ子構造で保持する。自仮想化基盤と他仮想化基盤にまたがる仮想ネットワークに第２スライスを作成する場合、管理スライスに形成された第１仮想サーバが、特定仮想ノードから取得した構成定義情報を用いて他仮想化基盤における第２スライスの作成を指示する。【選択図】図１
2015159346.tif 000002
【特許請求の範囲】
【請求項１】
複数の各ネットワーク仮想化基盤が、複数の物理ノードと、該物理ノード間を接続する物理ネットワークと、他ネットワーク仮想化基盤との間で物理ネットワークを接続するためのゲートウェイと、該ネットワーク仮想化基盤に対応したフェデレーション制御を行う第１サーバと、自ネットワーク仮想化基盤を管理する第２サーバを有し、各ネットワーク仮想化基盤の該物理ノードに仮想ノードを形成することができるネットワークシステムにおいて、該第１サーバの制御によって複数の該ネットワーク仮想化基盤にまたがった仮想ネットワークを形成するフェデレーションを行うフェデレーション方法であって、
複数の該ネットワーク仮想化基盤にまたがった仮想ネットワークに第１スライスを作成し、
該第１スライス上に形成される自ネットワーク仮想化基盤内の仮想ノードと他ネットワーク仮想化基盤内の仮想ノードをリンクで接続すると共に、該仮想ノードにフェデレーション制御を行う該第１サーバとしての第１仮想サーバを構成し、
該ネットワーク仮想化基盤に作成される仮想ノードのうちの特定仮想ノードに、該他ネットワーク仮想化基盤に作成する仮想ネットワークの構成定義情報を保持し、
該自ネットワーク仮想化基盤と該他ネットワーク仮想化基盤にまたがる仮想ネットワークに第２スライスを作成する場合、該第１スライスに形成された該第１仮想サーバは、該特定仮想ノードから該構成定義情報を取得して、該構成定義情報を用いて該他ネットワーク仮想化基盤における該第２スライス作成を指示する
ことを特徴とするフェデレーション方法。
【請求項２】
前記特定仮想ノードは、前記第１仮想サーバを起動するための起動スクリプトを保持し、該第１仮想サーバは該起動スクリプトによってフェデレーションを起動する、請求項１記載のフェデレーション方法。
【請求項３】
前記第１仮想サーバは、自ネットワーク仮想化基盤におけるスライス名、フェデレーションの要求を出す他ネットワーク仮想化基盤を示す宛先仮想化基盤名、他ネットワーク仮想化基盤のスライス設計図の情報を保持する管理テーブルを有し、
フェデレーションによりスライスが作成される時に該管理テーブルに新たなエントリを作成して、該エントリに該スライス名、該宛先仮想化基盤名、他ネットワーク仮想化基盤のスライス設計図の情報を登録する、請求項２記載のフェデレーション方法。
【請求項４】
各ネットワーク仮想化基盤に置かれた前記第１仮想サーバは、自ネットワーク仮想化基盤から生成されフェデレーションされた各仮想ネットワークについて、該仮想ネットワークの該構成定義情報を定期的に前記第２サーバに問い合わせ、
該構成定義情報に変更があった場合には、フェデレーションの宛先のネットワーク仮想化基盤に置かれた第１仮想サーバに対して、該仮想ネットワークを構成定義情報の変更を指示する、請求項１記載のフェデレーション方法。
【請求項５】
前記第１仮想サーバが、自ネットワーク仮想化基盤における前記第２スライスの削除を検出した場合、該第１仮想サーバは、該第２スライスに含まれる該他ネットワーク仮想化基盤上の対応する仮想ネットワークの削除を指示する、請求項４記載のフェデレーション方法。
【請求項６】
フェデレーションにより他ネットワーク仮想化基盤の仮想ネットワークを作成する際に、自ネットワーク仮想化基盤に作成された前記特定仮想ノードと、他ネットワーク仮想化基盤に作成される仮想ノードとを結ぶリンクを自動生成する、請求項１記載のフェデレーション方法。
【請求項７】
前記起動スクリプトは、該起動スクリプトのファイル名、該第１仮想サーバのアドレス、フェデレーションで作成される自ネットワーク仮想化基盤のスライス名を有する、
請求項２記載のフェデレーション方法。
【請求項８】
前記第２サーバは、該第２サーバに接続される端末から入力される、前記第２スライス作成に関する、前記自ネットワーク仮想化基盤側の第１の構成定義情報と、前記他ネットワーク仮想化基盤側の前記構成定義情報（第２構成定義情報）とを保持し、
該第２サーバは、該第１の構成定義情報を用いて、該第２スライスにおける仮想ノードを形成し、
前記特定仮想ノードは、該第２サーバから該第２構成定義情報を取得して入れ子構造のデータとして保持する、
請求項１記載のフェデレーション方法。
【請求項９】
前記第２構成定義情報は、該自ネットワーク仮想化基盤における記述方式に基づいて作成される、請求項８記載のフェデレーション方法。
【請求項１０】
複数のネットワーク仮想化基盤にまたがった仮想ネットワークを形成するフェデレーションを行うネットワークシステムであって、
複数の該ネットワーク仮想化基盤は、仮想ノードを形成することができる複数の物理ノードと、該物理ノード間を接続する物理ネットワークと、他ネットワーク仮想化基盤との間で物理ネットワークを接続するためのゲートウェイと、該ネットワーク仮想化基盤に対応したフェデレーション制御を行う第１サーバと、自ネットワーク仮想化基盤を管理する第２サーバを有し、
複数の該ネットワーク仮想化基盤にまたがった仮想ネットワークに作成された第１スライスと、
該第１スライス上に形成される自ネットワーク仮想化基盤内の仮想ノードと他ネットワーク仮想化基盤内の仮想ノードをリンクで接続すると共に、該仮想ノードにフェデレーション制御を行う該第１サーバとしての第１仮想サーバと、
該ネットワーク仮想化基盤に作成される仮想ノードのうちの特定仮想ノードは、該他ネットワーク仮想化基盤に作成する仮想ネットワークの構成定義情報を保持し、
該自ネットワーク仮想化基盤と該他ネットワーク仮想化基盤にまたがる仮想ネットワークに第２スライスを作成する場合、該第１スライスにおける該第１仮想サーバは、該特定仮想ノードから取得された該構成定義情報を用いて該他ネットワーク仮想化基盤における該第２スライス作成を指示する
ことを特徴とするネットワークシステム。
【請求項１１】
前記第１仮想サーバは、物理構成を有するサーバに形成される複数のＶＭを動作させるためのハイパバイザと、該ＶＭと該他仮想化ネットワーク基盤との通信を司る仮想スイッチを有し、
該複数のＶＭのうちの１のＶＭは、フェデレーション制御を行うプログラムとフェデレーション制御のためのデータを管理する管理テーブルを少なくとも記憶する仮想記憶部と、該プログラムを実行する仮想ＣＰＵを有し、
該管理テーブルは、自ネットワーク仮想化基盤におけるスライス名、フェデレーションの要求を出す他ネットワーク仮想化基盤を示す宛先仮想化基盤名、他ネットワーク仮想化基盤のスライス設計図の情報を保持し、
該仮想ＣＰＵは該プログラムを実行して、前記特定仮想ノードから取得される該構成定義情報を用いて該他ネットワーク仮想化基盤における該第２スライス作成を指示する
請求項１０記載のネットワークシステム。
【請求項１２】
前記特定仮想ノードは、物理構成を有するサーバに形成される複数のＶＭを動作させるためのハイパバイザと、該ＶＭと該他仮想化ネットワーク基盤との通信を司る仮想スイッチを有し、
該複数のＶＭのうち１のＶＭは、前記構成定義情報を入れ子構造で記憶し、かつ前記第１仮想サーバを起動するための起動スクリプトを記憶する仮想記憶部を有する、
請求項１０記載のネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フェデレーション方法及びネットワークシステムに係り、特に複数の仮想ネットワーク基盤のドメインにまたがる仮想ネットワークを形成するためのフェデレーション制御に関する。
【背景技術】
【０００２】
複数の仮想ネットワークのドメインを連携させて、より広範囲な仮想ネットワークを実現するための技術としてフェデレーションが提唱されている。この技術に関して、例えば、特許文献１には、ネットワークドメイン間のフェデレーションアーキテクチャが開示されている。この技術は、仮想化基盤にスライス定義を投入する際に、他の仮想化基盤の部分のスライス定義を、自ネットワーク仮想化基盤の特別なノード（代理ノード）の内部構成として保持しておき、他のネットワーク仮想化基盤の概念を持たない仮想化基盤においても、他のネットワーク仮想化基盤（以下単に仮想化基盤という）にまたがったスライスを記述することを可能としている。
【０００３】
特許文献１には、さらに、各仮想化基盤のフェデレーションのための管理サーバであるゲートキーパー（ＧＫ）間の通信において、仮想化基盤に依存しない「標準のスライス情報」（共通ＡＰＩという）を使用し、この共通ＡＰＩを用いて一旦通信することにより、フェデレーションを実施する仮想化基盤の数が増えた場合における、フェデレーション機能の開発を容易化することができる、旨が記載されている。すなわち、共通ＡＰＩを用いないで各仮想化基盤の管理コマンドを直接変換する場合には、フェデレーションの対象となる仮想化基盤の数だけ、ＡＰＩの変換機能を開発する必要があり、仮想基盤の数が増えると開発量が膨大になる。これに対して、共通ＡＰＩを使用すると、各仮想化基盤は共通ＡＰＩとの間の変換機能を開発するだけでよく、開発量を大幅に削減することができる。
【０００４】
他仮想化基盤側のＧＫは、共通ＡＰＩを介して送られて来た、他仮想化基盤側のスライス定義を、他仮想化基盤側の管理コマンドに翻訳して、他仮想化基盤側の管理サーバに送付する。その結果、他仮想化基盤部側のスライスが生成される。このような処理により、スライス設計者が、自仮想化基盤側に他仮想化基盤側のスライス定義を投入するだけで、他仮想化基盤にまたがったスライスを作成することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１０２３３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術によれば、他の仮想化基盤の概念を持たない仮想化基盤におけるフェデレーションをサポートすることができる。しかし、フェデレーションを実現するための管理機能として、他の仮想化基盤のスライス定義を受け付けるための特別な機能を持つノード及び他の仮想化基盤との間のコマンドのやり取りを行う転送制御サーバであるＧＫを、アーキテクチャとして持たなければならないという制約がある。特に、フェデレーションで連係しようとしている仮想化基盤が、上記管理機能を持っていない場合は、フェデレーションを実施することができない。
【０００７】
この課題を解決する一案として、発明者らはフェデレーションのための管理サーバを仮想的に実現する方法を考えた。すなわち、他の仮想化基盤との間のコマンドのやり取りを実現するためのＧＫを、複数の仮想ノードの一つを用いて実現するというものである。具体的には、フェデレーションを実施する各仮想化基盤間をまたがって、フェデレーションを管理する管理スライスを作成する。管理スライスには、双方の仮想化基盤にＧＫの機能を持つ仮想ノードを置き、このＧＫ間を仮想リンクで接続する。これにより、フェデレーション機能を持った特別な管理サーバＧＫを持たない仮想化基盤においても、スライス上のソフトウェアの一つとして（仮想化基盤を改造すること無しに）、フェデレーション機能を持たせることができる。
【０００８】
しかし、ソフトウェアでＧＫを実現する場合、更なる課題があることがわかった。すなわち、フェデレーションで作成されるスライス定義においては、他仮想化基盤のスライス定義を代理ノードの内部に入れ子構造で記述するが、該当する定義をソフトウェアで実現しているＧＫに伝え、フェデレーションを起動することができないという点である。
【０００９】
従来のフェデレーションでは、ＧＫはハードウェア（物理ノード）で実現して仮想化基盤の管理系に組み込まれている。即ち、特許文献１に記載のフェデレーションにおいて、管理サーバ（ＮＭ）１０２とＧＫ１０７は、管理サーバ間リンクで接続されている。仮想化基盤にスライス定義が投入された際には、管理サーバは代理ノード３９０の定義をＧＫに送付する。これにより、ＧＫは代理ノード内の入れ子定義を受け取り、フェデレーションの処理を起動することができる。
【００１０】
これに対して、ＧＫを仮想ノードとしてソフトウェアで実現する場合、スライス定義を代理ノードに投入したときに、他仮想化基盤の部分のスライス定義を保持する代理ノードは、フェデレーションで作成された仮想ノードの一つとして仮想的に作成されるが、ＧＫのフェデレーション処理は起動されない。つまり、ＧＫの存在する管理スライスと、フェデレーションで作られたスライスは別のスライスであるため、代理ノードの内容は、ＧＫには伝えられず、フェデレーションを起動することができない。ここで注意しなければならないのは、仮想化基盤においては、スライス間は分離されているため、例え代理ノードをＧＫと同じ物理ノードに割り当てても、ＧＫは代理ノードが作成されたことを知ることができないということである。
【００１１】
さらに、同様の課題はフェデレーションされたスライスの削除、構成変更が行われた場合にも発生する。自仮想化基盤におけるスライス削除、構成変更（代理ノード内部の入れ子構造の構成変更も含む）が行われた場合に、ＧＫを経由して他仮想化基盤のフェデレーションされたスライスを削除、構成変更する必要がある。
【００１２】
さらに、仮想化基盤でノードを作成した後、スライス設計者は、作成したノードにログインし、初期設定、プログラムのインストールを行う必要がある。フェデレーションにおいて、他仮想化基盤にまたがったスライスを作成した場合において、他の仮想化基盤に作成したノードに自仮想化基盤からログインする必要がある。もちろん、他仮想化基盤の管理系を経由すれば他仮想化基盤のノードにはアクセスできるが、自仮想化基盤からログインする方法を実現することが望まれる。
【００１３】
そこで、本発明の主な目的は、フェデレーション制御のためのサーバをスライス上に仮想的に形成し、この仮想サーバを用いて他仮想化基盤のドメインにまたがるユーザスライスを作成することにある。
本発明の他の目的は、スライス上に仮想的に形成した仮想サーバを用いてフェデレーションにより他仮想化基盤のユーザスライスの作成、構成変更、削除を可能とすることにある。
本発明の更に他の目的は、フェデレーションにより作成されたスライスの他仮想化基盤に置かれた仮想ノードに対する、自仮想化基盤からの管理者のログインを可能とすることにある。
【課題を解決するための手段】
【００１４】
本発明に係るフェデレーション方法は、好ましくは、複数の各ネットワーク仮想化基盤が、複数の物理ノードと、該物理ノード間を接続する物理ネットワークと、他ネットワーク仮想化基盤との間で物理ネットワークを接続するためのゲートウェイと、該ネットワーク仮想化基盤に対応したフェデレーション制御を行う第１サーバと、自ネットワーク仮想化基盤を管理する第２サーバを有し、各ネットワーク仮想化基盤の該物理ノードに仮想ノードを形成することができるネットワークシステムにおいて、該第１サーバの制御によって複数の該ネットワーク仮想化基盤にまたがった仮想ネットワークを形成するフェデレーションを行うフェデレーション方法であって、
複数の該ネットワーク仮想化基盤にまたがった仮想ネットワークに第１スライスを作成し、
該第１スライス上に形成される自ネットワーク仮想化基盤内の仮想ノードと他ネットワーク仮想化基盤内の仮想ノードをリンクで接続すると共に、該仮想ノードにフェデレーション制御を行う該第１サーバとしての第１仮想サーバを構成し、
該ネットワーク仮想化基盤に作成される仮想ノードのうちの特定仮想ノードに、該他ネットワーク仮想化基盤に作成する仮想ネットワークの構成定義情報を保持し、
該自ネットワーク仮想化基盤と該他ネットワーク仮想化基盤にまたがる仮想ネットワークに第２スライスを作成する場合、該第１スライスに形成された該第１仮想サーバは、該特定仮想ノードから該構成定義情報を取得して、該構成定義情報を用いて該他ネットワーク仮想化基盤における該第２スライス作成を指示することを特徴とするフェデレーション方法として構成される。
【００１５】
好ましい例では、前記特定仮想ノードは、前記第１仮想サーバを起動するための起動スクリプトを保持し、該第１仮想サーバは該起動スクリプトによってフェデレーションを起動する。
また好ましくは、前記第１仮想サーバは、自ネットワーク仮想化基盤におけるスライス名、フェデレーションの要求を出す他ネットワーク仮想化基盤を示す宛先仮想化基盤名、他ネットワーク仮想化基盤のスライス設計図の情報を保持する管理テーブルを有し、
フェデレーションによりスライスが作成される時に該管理テーブルに新たなエントリを作成して、該エントリに該スライス名、該宛先仮想化基盤名、他ネットワーク仮想化基盤のスライス設計図の情報を登録する。
【００１６】
また好ましくは、各ネットワーク仮想化基盤に置かれた前記第１仮想サーバは、自ネットワーク仮想化基盤から生成されフェデレーションされた各仮想ネットワークについて、該仮想ネットワークの該構成定義情報を定期的に前記第２サーバに問い合わせ、
該構成定義情報に変更があった場合には、フェデレーションの宛先のネットワーク仮想化基盤に置かれた第１仮想サーバに対して、該仮想ネットワークを構成定義情報の変更を指示する。
また好ましくは、前記第１仮想サーバが、自ネットワーク仮想化基盤における前記第２スライスの削除を検出した場合、該第１仮想サーバは、該第２スライスに含まれる該他ネットワーク仮想化基盤上の対応する仮想ネットワークの削除を指示する。
【００１７】
また好ましくは、フェデレーションにより他ネットワーク仮想化基盤の仮想ネットワークを作成する際に、自ネットワーク仮想化基盤に作成された前記特定仮想ノードと、他ネットワーク仮想化基盤に作成される仮想ノードとを結ぶリンクを自動生成する。
また好ましくは、前記起動スクリプトは、該起動スクリプトのファイル名、該第１仮想サーバのアドレス、フェデレーションで作成される自ネットワーク仮想化基盤のスライス名を有する。
【００１８】
また好ましくは、前記第２サーバは、該第２サーバに接続される端末から入力される、前記第２スライス作成に関する、前記自ネットワーク仮想化基盤側の第１の構成定義情報と、前記他ネットワーク仮想化基盤側の前記構成定義情報（第２構成定義情報）とを保持し、
該第２サーバは、該第１の構成定義情報を用いて、該第２スライスにおける仮想ノードを形成し、
前記特定仮想ノードは、該第２サーバから該第２構成定義情報を取得して入れ子構造のデータとして保持する。
【００１９】
本発明はまた、複数のネットワーク仮想化基盤にまたがった仮想ネットワークを形成するフェデレーションを行うネットワークシステムとしても構成される。
【発明の効果】
【００２０】
本発明によれば、フェデレーション制御のためのサーバをスライス上に仮想的に実現でき、この仮想サーバを用いて他仮想ネットワーク基盤のドメインにまたがるユーザスライスを作成することが可能となる。
また、スライス上に仮想的に形成した自仮想基盤の仮想サーバを用いてフェデレーションにより他仮想化基盤のユーザスライスの作成、構成変更、削除を可能となる。
また、他仮想化基盤に作成したノードと、自仮想化基盤内のフェデレーションの管理を行うノードとの間に、リンクを自動的に作成する機能を有することにより、他仮想化基盤の管理系を経由せずに、管理者の操作により自仮想化基盤から、他仮想化基盤に作成した仮想ノードの設定やプログラムインストール等のログインが可能となる。
【図面の簡単な説明】
【００２１】
【図１】実施例１における、フェデレーションを行うネットワークシステムの構成を示す図である。
【図２】物理ノード１２の構成図である。
【図３】物理ノード１３の構成図である。
【図４】管理サーバ１９の構成図である。
【図５】スライスの作成動作を表すタイムチャート図である。
【図６】スライスの削除動作を表すタイムチャート図である。
【図７Ａ】自仮想化基盤から他仮想化基盤に対して作成要求したスライスの管理テーブルを示す図である。
【図７Ｂ】他仮想化基盤から自仮想化基盤に対して作成要求されたスライスの管理テーブルを示す図である。
【図７Ｃ】他仮想化基盤の管理テーブルを示す図である。
【図８】スライス定義の構成例を示す図である。
【図９】スライス定義に対して、ログイン用のリンクを自動生成した後の構成例を示す図である。
【図１０】共通ＡＰＩに変換後のスライス定義の例を示す図である。
【図１１】共通ＡＰＩから変換された、仮想化基盤２０の管理サーバ２９に投入されるスライス定義の例を示す図である。
【図１２】共通ＡＰＩのコマンド形式を示す図である。
【図１３】共通ＡＰＩのコマンド一覧を示す図である。
【図１４Ａ】ＰＶＮの起動スクリプトの動作フローを示す図である。
【図１４Ｂ】ＰＶＮのシャットダウンスクリプトの動作フローを示す図である。
【図１５】ＶＧＫ４１０によるポーリングの動作フローを示す図である。
【図１６】実施例２における、フェデレーションを行うネットワークシステムの構成図である。
【図１７】実施例２のフェデレーションにおける共通ＡＰＩで送られるスライス定義の例を示す図である。
【発明を実施するための形態】
【実施例１】
【００２２】
〈システム構成〉
図１は、フェデレーションのためのネットワークシステムの全体構成を示す。図１において点線より下側は物理的な構成、点線より上側は論理的な構成を示す。物理構成としては、２つの仮想化基盤１０，２０が存在する。仮想化基盤１０は、仮想化ネットワークを作成するための物理ノード１１、１２、１３、仮想化基盤内ネットワーク１５、他仮想化基盤との間でデータ系を接続するためのゲートウェイ（ＧＷ）１６、さらに管理系として、仮想化基盤１０の管理を行う管理サーバ１９を有する。同様に仮想化基盤２０は、物理ノード２１、２２、ネットワーク２５、ゲートウェイ（ＧＷ）２６、管理サーバ２９を有する。
【００２３】
仮想化基盤１０、２０内のＧＷ１６とＧＷ２６間は、仮想化基盤間データプレーン９０により接続されている。本実施例は、フェデレーションの管理機能を持たない仮想化基盤間でのフェデレーションの実現を目的としており、仮想化基盤１０，２０間で何らかのゲートウェイ機能を介してデータプレーン接続ができることを前提している。ＧＷ１６，２６は、各仮想化基盤間のデータプレーン（ＶＬＡＮやＧＲＥトンネル）と、仮想化基盤間ネットワークのデータプレーン（ＶＬＡＮ、ＭＡＣヘッダによるカプセリング等）間を相互接続する機能を有し、例えばＶＬＡＮ番号の変換機能を持つネットワーク機器により実現される。本例では、仮想化基盤間リンクはＶＬＡＮにより実装されているが、ＶＬＡＮ以外のＧＲＥ（Generic Routing Encapsulation）による実装や、ゲートウェイの宛先ＭＡＣアドレスによりリンクを区別する方法等、種々の実装が可能である。
【００２４】
本例では、上記物理構成の仮想化基盤にフェデレーション機能を実現する管理スライス４００が予め作成されている。さらに本発明のフェデレーション機能によりユーザスライス３００が仮想化基盤１０と２０にまたがって作成される。管理スライス４００上に、各仮想化基盤にフェデレーション機能を実現する管理サーバであるＶＧＫ（Virtual Gate Keeper）４１０、４２０が仮想ノードのＶＭ（Virtual Machine）として形成され、これらＶＧＫはフェデレーション用の管理リンク４３０により接続されている。各仮想化基盤には、フェデレーション管理のためのスライス間の通信を行うための共有ＶＬＡＮが置かれる。仮想化基盤１０には、共有ＶＬＡＮ１（１９０）が、仮想化基盤２０には共有ＶＬＡＮ２（２９０）が置かれ、各ＶＧＫ４１０．４２０のもう一つのネットワークポートと接続されている。ＶＧＫ４１０と４２０、ＶＧＫ間リンク４３０から構成される管理スライス４００、及び仮想化基盤１０，２０内の共有ＶＬＡＮ１９０，２９０は、以下に述べるフェデレーション機能を動作させる準備として、予め作成されているものとする。
【００２５】
ユーザ層スライス３００には仮想ノード３１０、３２０、３３０、３４０、３５０が作成され、これらの仮想ノードは物理ノード１１、１２、１３、２１、２２にそれぞれマッピングされている（縦長の点線の囲みが論理と物理間のマッピングを示す）。代理ノード（ＰＶＮ：Pseudo Virutal Node）３９０は、スライス作成等を行う管理者（ネットワーク設計者又はスライス設計者ということもある）がスライス定義を投入する側の仮想化基盤１０に作成する、フェデレーションを行うための特別な仮想ノードである。本例では、代理ノードは物理ノード１２にマッピングされている。代理ノード３９０には、仮想化基盤２０のためのスライス定義、具体的には仮想ノード３４０、３５０のスライス定義が、代理ノード３９０内の入れ子（Nest）定義３９０１の中に記述される。代理ノード３９０は、さらにユーザスライス３００が新規に作成された際に、管理スライス４００上のＶＧＫ４１０にフェデレーション処理の開始を指示するためのＶＧＫトリガ起動スクリプト３９０２を有する。ＰＶＮ３９０は同じ仮想化基盤１０内に存在するＶＧＫ４１０が接続される共有ＶＬＡＮ１９０に接続される。
【００２６】
各仮想化基盤１０，２０の管理サーバには、管理者が操作する端末８０、８１が接続されている。管理者がこれら端末８０，８１を操作して、仮想ネットワークの管理（例えば作成、削除、構成変更等）を行う。図１３に、共通ＡＰＩにより仮想化基盤間で伝達される、仮想ネットワークの管理コマンドの例を示す。本実施例におけるフェデレーションは、この仮想ネットワークの管理のための処理を、片方の仮想化基盤の端末から片方の仮想化基盤側のコマンドだけで実現する。本例では、仮想化基盤１０の端末８０からのオペレーションによってフェデレーションを行う例として説明する。
【００２７】
ここで、仮想ノード、代理ノードと物理ノードとのマッピングは、図１の例に限定されずに任意である。上記したマッピング以外の構成、例えば管理スライス４００のＶＧＫ４１０が形成される仮想ノードと、ユーザスライス３００に形成されるＰＶＮ３９０のための仮想ノードが、同じ物理ノードにマッピングされてもよい。さらに図１の例では、フェデレーションで作成されるユーザスライス３００はスライス３００の一個のみを示しているが、リソースが許す限り、任意の数のユーザスライスを作成することができる。また、各仮想化基盤内に閉じた（フェデレーションを行わない）スライスと共存させることが可能である。
【００２８】
ユーザスライス３００内に点線で示される仮想リンク３８０は、他仮想化基盤（図１の例では仮想化基盤２０）に作成された仮想ノード３４０，３５０に、管理者が端末８０からログインするために、本実施例によって自動生成されるリンクである。ＰＶＮ３９０と仮想化基盤２０に作成されたノード３４０、３５０を接続することにより、管理者はＰＶＮ３９０を経由して他の仮想化基盤２０に作成された仮想ノード３４０、３５０にログイン、設定、プログラムのインストール等を行うことが可能となる。
【００２９】
次に物理ノードのアーキテクチャについてノード１２、１３を例に示す。その他のノードも同様のアーキテクチャを持つ。
【００３０】
〈物理ノードの構成〉
図２は物理ノード１２の構成を示す。物理ノード１２はパケットの転送を司るスイッチ１２２０と、仮想ネットワークの実現する高度なノード機能をサポートするサーバ部１２００から構成される。物理ノード１２はスイッチ１２２０を介して、外部の物理ネットワーク１５に接続される。
【００３１】
サーバ部１２００にはＶＭ（Virtual Machine）により各仮想ノードの機能が実現される。サーバ部１２００の下側がＣＰＵ１２１０、メモリ１２１１、ネットワークインタフェース１２１２、ストレージ１２１３を有するサーバの物理構成を示し、上側がサーバ上で動作するプログラムを示す。サーバ部はＶＭを動作させるためのハイパバイザ１２０１、ＶＭと外部の通信を司る仮想スイッチ１２０２を有する。ハイパバイザ１２０１の管理下で各ＶＭが動作する。この例では、仮想ノードをサポートするＶＭ３２０、ＰＶＮをサポートするＶＭ３９０が動作している。各ＶＭは、仮想ＣＰＵ３２１、ＶＭの仮想的な主記憶３２２、各ＶＭに割り当てられた仮想ＮＩＣ３２３，３２４により構成される。各ＶＭは仮想ＮＩＣ、仮想スイッチを通じて外部のネットワークと通信する。ＶＭ３９０の仮想主記憶３９２には仮想ノードのプログラムやデータ領域の他に、ＰＶＮのプログラム３９８やＰＶＮ管理データ３９９が置かれる。各ＶＭの各プログラムは仮想ＣＰＵ３２１，３９１で実行される。
【００３２】
図３は物理ノード１３の構成を示す。物理ノード１３の基本的な構成は物理ノード１２と同じである。しかし、物理ノード１３はＶＧＫ４１０を実現するために、特有の仮想的構成を有する。すなわち、仮想的機能として、仮想ノード３３０とフェデレーション管理を行うＶＧＫ４１０が設けられる。ＶＧＫ４１０仮想主記憶４１０には、ＶＧＫのプログラム４１８や管理テーブル４１９が置かれ、ＶＧＫのプログラムは仮想ＣＰＵ４１１で実行される。ＶＧＫのプログラム４１８には、図５及び図６に示すシーケンス動作を行うプログラムがある。管理テーブル４１９の構成については図７Ａ〜７Ｃを参照して後述する。
【００３３】
図４は仮想化基盤における管理サーバ１９の構成を示す。
管理サーバ１９には、ＣＰＵ１９１０、主記憶１９２０、外部と通信するためのＮＩＣ１９３０，１９４０が設けられる。管理サーバの主記憶１９２０には仮想化基盤管理プログラム１９２１及び仮想化基盤管理テーブル１９２２が置かれ、このプログラム１９２１はＣＰＵ１９１０で実行される。なお、管理サーバ２９も同様の構成である。
【００３４】
図７Ａ、図７Ｂ、図７Ｃは、フェデレーション管理を行う各ＶＧＫ（４１０、４２０）が持つ管理テーブルを示す。ＶＧＫは、３つの管理テーブル及び仮想化基盤間リンクのＶＬＡＮ番号を管理するためのＶＬＡＮ番号のプールを持つ。
【００３５】
図７Ａは、自仮想化基盤から他仮想化基盤へ作成要求したスライスの管理テーブルである。管理テーブル７０１には、フェデレーションにより作成されるスライス毎に一行のエントリが形成される。管理テーブル７０１は、自仮想化基盤におけるスライス名、フェデレーションの要求を出す他仮想化基盤を示す宛先仮想化基盤名、他仮想化基盤のスライス設計図の情報、初回起動処理実施済フラグ、を保持する。ここで、宛先仮想化基盤名フィールドには、３つ以上の仮想化基盤の間におけるフェデレーションをサポートするために、複数の宛先基盤名を記述可能である。他仮想化基盤のスライス設計図の情報は、代理ノード３９０内の入れ子定義３９０１で示される内容となり、ＸＭＬ形式で記載される。
【００３６】
図７Ｂは、他仮想化基盤から自仮想化基盤に作成依頼されたスライスの管理テーブルである。管理テーブル７０２も管理テーブル７０１と同様に、フェデレーションによりスライスが作成される度に一行のエントリが追加される。管理テーブル７０２は、自仮想化基盤側でのスライス名、要求元仮想化基盤名、要求元仮想化基盤におけるオリジナルのスライス名、を保持する。ここで、自仮想化基盤側でのスライス名は、他仮想化基盤からのフェデレーションによるスライス作成要求が到来した際に、自仮想化基盤のＶＧＫ４１０で作成される名前である。図示の例では、オリジナルスライス名と要求元仮想化基盤名とがハイフンでつないで表示されている。
【００３７】
図７Ｃは他の仮想化基盤の実装情報を管理するための管理テーブルである。
管理テーブル７０３は、相手先の仮想化基盤毎に、ＶＧＫアドレス、ゲートウェイのアドレスを保持する。ＶＧＫアドレスは、フェデレーションの管理スライス４００上のＶＧＫ間リンク４３０上に接続されたＶＧＫのポートのローカルＩＰアドレスであり、フェデレーションのための制御系コマンドを送出するために使用される。ゲートウェイアドレスは、各仮想化基盤のゲートウェイ（ＧＷ）間を結ぶネットワーク９０上のゲートウェイのＭＡＣアドレスである。ここで、ゲートウェイ間はＬ２ネットワークであると仮定する。各仮想化基盤内のパケットは、ゲートウェイ間のネットワークにおいては、ＭＡＣヘッダでカプセリングされ、宛先の仮想化基盤のゲートウェイに向けて送られる。これにより、基盤間のネットワークと、各仮想ネットワーク上のパケットとの依存関係をなくすことができる。複数のリンクはＶＬＡＮ番号により区別される。
管理テーブル７０１と管理テーブル７０２は、最初は空であり、フェデレーションが実施されると、エントリが追加される。管理テーブル７０３については、ＶＧＫ４１０，４２０の作成時に、管理者が必要なデータを設定しておく。
【００３８】
本実施例の特徴は、管理スライス４００上にフェデレーションの管理機能を有するＶＧＫ４１０，４２０を仮想的に実現し、かつ仮想ネットワークのスライス定義において、管理者によってスライス定義が投入される側の仮想化基盤１０にフェデレーションの制御をおこなう代理ノード３９０を置き、代理ノードの起動時に起動スクリプト３９０２によってＶＧＫのフェデレーション処理を起動するようにしたことにある。
【００３９】
〈フェデレーション動作〉
フェデレーションの動作を、システム構成図（図１〜図４）及びタイムチャート図５〜図６を参照して説明する。本実施例では、システムは仮想化基盤１０、仮想化基盤２０の２つの仮想化基盤を持つ。管理者は、仮想化基盤１側の端末８０を操作してスライス作成、構成変更、削除等の制御を行う例について述べる。
【００４０】
フェデレーション制御に先だち、管理スライス４００が作成されていることが必要である。すなわち、仮想化基盤１０，２０にＶＧＫ４１０、４２０を形成して、これらＶＧＫ間を接続するためのネットワーク４３０が形成される。さらに、各仮想化基盤内にはＶＧＫにアクセスするための共有ＶＬＡＮ１９０、２９０が形成される。共有ＶＬＡＮは、スライス間通信を行うためのＶＬＡＮであり、任意のスライスが該当するＶＬＡＮに接続し、通信を行うことができる。共有ＶＬＡＮにより、後に作成されるユーザスライス３００内の代理ノード（ＰＶＮ）３９０が、自仮想化基盤にあらかじめ作られているＶＧＫ４１０に通信を行うことができる。管理スライスと共有ＶＬＡＮは、フェデレーションを行う準備として、各仮想化基盤の管理サーバ１９，２９に個別にアクセスし、予め作成されている。最初に管理スライス４００を作成するには手間がかかるであろうが、フェデレーション機能を提供する管理者によって管理スライスが一旦作成されれば、それ以降のユーザスライス３００の作成については、管理者は管理スライス４００上に形成されたフェデレーション機能を使用して容易に作成することができる。
【００４１】
次にユーザスライス作成時の動作について述べる。スライス作成の管理者は、端末８０を用いて、これから作成するスライスの設計情報（スライス定義）を仮想化基盤１０に投入する。具体的には仮想ノード３１０、３２０、３３０の定義、及び代理ノード３９０（内部に入れ子定義３９０１を含む）の定義を、端末８０から管理サーバ１９に入力する。
【００４２】
図８に、仮想化基盤１０に投入されるスライス定義の例を示す。なお、図８にはスライス定義が図で示されているが、実際には、図に示す構造がＸＭＬデータによって表現される。スライス定義には、３つの通常の仮想ノードの定義（３１０ｘ、３２０ｘ、３３０ｘ）、代理ノード（ＰＶＮ）の定義（３９０ｘ）が含まれる。仮想ノードの定義（３１０ｘ、３２０ｘ、３３０ｘ）において、ノード間は仮想リンクで接続され、仮想ノードの定義（３３０ｘ）はゲートウェイにおける仮想化基盤間を結ぶリンクＡの定義（３６０ｘ）に接続される。代理ノードの定義（３９０ｘ）は共有ＶＬＡＮ１の定義（１９０ｘ）に接続されている。共有ＶＬＡＮ１はＶＧＫとの間の通信に使用される。これらのノードは自仮想化基盤１０で作成される。
【００４３】
代理ノードの定義（３９０ｘ）の内部には、入れ子構造のデータで、他仮想化基盤のスライス定義３９０１が含まれる。具体的には、予め決められた入れ子構造のデータを表すタグにより、他仮想化基盤の仮想化基盤の定義を囲んで代理ノードの定義の内部に含ませる。このタグは、自仮想化基盤１０の管理系（管理サーバ１９）では、無視されるように、管理系に拡張タグとして登録する。これにより、自仮想化基盤１０の管理系は、入れ子構造内部のデータを解釈しないため、他仮想化基盤部２０のためのスライス構造を自由に記述することができる。
【００４４】
入れ子構造の定義３９０１には、先ず、スライスを作成する先の仮想化基盤を表す枠３９０３が置かれる。一般的には複数の枠３９０３を置いてもよい。仮想化基盤を表す枠３９０３内では、スライス作成先のスライス名が３９０３ａのフィールドで指定される（本例では仮想化基盤２０を表すｄｏｍａｉｎ２が指定される）とともに、スライス定義本体が保持される。なお、３つの以上の仮想化基盤のフェデレーションを行う場合でも、上記枠３９０３に囲むことにより、スライス作成先の仮想化基盤を区別することができる。
【００４５】
仮想化基盤を表す枠３９０３の中に、他の仮想化基盤２０に作成されるスライスの構成を、自仮想化基盤１０のスライス記述方式で記述する。自仮想化基盤の記述方式で記述できるため、管理者は、他仮想化基盤の制御コマンドやスライス記述方式を覚える必要はない。すなわち、自仮想化基盤の操作方法で、他の仮想化基盤を含めたフェデレーションしたスライスを作成することができる。この例では、２個の仮想ノードが定義（３４０ｘ、３５０ｘ）され、仮想リンクで接続される。ノード定義３４０ｘは、ゲートウェイ（ＧＷ）における仮想化基盤間を結ぶ仮想化基盤間リンクＡの定義（４ｘ）と接続される。ここで、仮想化基盤１０に定義されているノード３３０ｘと、仮想化基盤２０に定義されているノード３４０ｘは同一の仮想化基盤間リンクの定義３６０ｘに接続されているため、仮想化基盤をまたがったデータリングが作成される。
【００４６】
代理ノード（ＰＶＮ）の定義（３９０ｘ）にはさらに、ＶＧＫのフェデレーション処理をトリガするための、起動スクリプト３９０２が記述される。すなわち、代理ノードの３９０の仮想サーバの起動スクリプトとして、ＶＧＫを指定して、該当するスライスのフェデレーションを起動するプログラムが起動される。起動スクリプト３９０２は、図８に示すように、スクリプトのファイル名（３９０２ａ）、ＶＧＫのアドレス（３９０２ｂ）（ＶＧＫ（４１０）の共有ＶＬＡＮ（１９０）上でのアドレスである）、フェデレーションで作成される自仮想化基盤のスライス名（３９０２ｃ）を有する。ここで、ＶＧＫのアドレス３９０２ｂは、スクリプトがＶＧＫに対してアクセスするために、スライス名３９０２ｃは、後にＶＧＫ４１０が管理サーバ１９に対してフェデレーションで作成されたスライス定義を問い合わせるために使用される。
【００４７】
以上述べたスライス定義は仮想化基盤１０側の管理者により作成される。管理者は、仮想化基盤１０側の端末８０を操作して、代理ノード内の入れ子構造３９０１により、仮想化基盤２０に作成したいスライス構成を指定することができ、更に起動スクリプト３９０２によりフェデレーション処理の実行を指示することができる。
【００４８】
次に、図５のタームチャートを参照して、スライス作成動作について説明する。タイムチャートの左側は仮想化基盤１０の構成要素、右側は仮想化基盤２０の構成要素を示す。ここでのスライス作成には、スライスの作成と起動処理までが含まれる。
【００４９】
先ず、仮想化基盤１０の端末８０から管理サーバ１９に図８で示す定義が入力され、フェデレーションスライスの作成指示が行われる（５０００）。管理サーバ１９は自らが保持するスライス定義に基づいて、仮想化基盤１０のスライス作成処理を行う（５００１）。具体的には、ユーザスライス３００上に形成されるべき仮想ノード３１０、３２０、３３０、代理ノード（ＰＶＮ）３９０が作成される。これらノードの作成後に各ノードが起動される。その結果、ＰＶＮ３９０も同様に起動される（６０００）。ＰＶＮ３９０には起動スクリプト３９０２が定義されており、ＰＶＮの起動スクリプトにより、ＶＧＫ４１０のフェデレーション処理がトリガされる（５００２）。
【００５０】
ＰＶＮ３９０によりトリガされたＶＧＫ４１０は以下の処理を実行する。先ず、ＶＧＫ４１０はトリガ時に指定されたスライス名３９０２ｃを用いて、内部ネットワーク１５経由で仮想化基盤１０の管理サーバ１９に問い合わせして、仮想化基盤１０のスライスの設計情報を入手する（５００３）。この処理は管理者が端末８０から、仮想ネットワークの設計情報を問い合わせるのと同一のインタフェースを使用して行われる。具体的には、作成されたスライスのスライス定義（図８の内容）、及びスライスを実装した結果各ノードに割り振られたＩＰアドレス等を入手する。その際にゲートウェイ（ＧＷ）１６に割り振られた仮想化基盤間リンクＡ（３６０ｘ）の定義に実際に割り当てられたＶＬＡＮ番号（本例ではＶＬＡＮ１００とする）も入手する。ゲートウェイ（ＧＷ）１６では、仮想化基盤１０内の仮想ノード３３０から伸びて来た仮想化基盤間仮想リンク３６０上のパケットをＬ２ヘッダでカプセリングして、仮想化基盤間の物理ネットワーク９０に送出するように設定する。その際に宛先のＭＡＣアドレスは、図７Ｃで示す仮想化基盤２０（ｄｏｍａｉｎ２）のＭＡＣアドレス、ＶＬＡＮ番号は、ＶＧＫが管理しているＶＬＡＮ番号のプールから得る空いているＶＬＡＮ番号である。
【００５１】
ＶＧＫ４１０がスライスの設計情報を得ると、スライス定義内の入れ子構造３９０１から、他仮想化基盤（仮想化基盤２０）に作成するスライス定義を抜き出す（６００１）。本例では、図８の３９０１の中の３９０３枠内の仮想化基盤２０に作成される定義が入手される。ＶＧＫ４１０は、自仮想化基盤から他仮想化基盤に作成依頼したスライス管理テーブル７０１にエントリを作成して、そのエントリに、スライス名、宛先仮想化基盤名、ステップ６００１で抜き出した他仮想化基盤のスライス定義のＸＭＬデータを格納する（６００２）。
【００５２】
ＶＧＫ４１０は、次の処理として、他の仮想化基盤に作成されたノードに、管理者が端末８０からログインするためのリンク（図１の３８０）の自動設定処理を行う。すなわち、管理サーバ１９を経由して自仮想化基盤１０の管理者ログインリンクを生成してスライスを改変する処理（５００４）、及び他仮想化基盤２０に送付するスライス定義を作成し他仮想化基盤２０の管理者ログイン用リンクを生成する処理を行う（６００３）。
【００５３】
図９に改変後のスライス定義を示す。点線部分が上記処理により改変された部分である。なおここで、自及び他仮想化基盤に管理者ログイン用リンクを生成することを、従前に比してスライスの定義を変える意味から改変と呼んでいる。この処理によって、具体的に以下の部分が改変される。
（イ）自仮想化基盤のゲートウェイ（ＧＷ）に仮想化基盤間を新たに結ぶリンクＺ（３８０ｘ）を新たに定義し、自仮想化基盤のＰＶＮノード（３９０ｘ）との間でリンクを生成する（ステップ５００４）。その結果得られたリンクの実装情報（ＶＬＡＮ番号）を記憶する。
【００５４】
（ロ）他仮想化基盤に送付するスライス定義に、仮想化基盤間を結ぶリンクＺ（３８０ｘ）の定義を追加するとともに、他仮想化基盤に生成する仮想ノード（一般的には複数）との間にリンクの定義（３８００）を作成する（ステップ６００３）。ここで、改変するのは他仮想化基盤に送付するスライス定義だけであり、図７Ａに示す自仮想化基盤から他仮想化基盤に作成依頼したスライス管理テーブル７０１内の定義は変更していない。
【００５５】
ＶＧＫ４１０はその後、改変されたスライス定義を共通ＡＰＩに変換し（６００４）、管理サーバ１９より得た仮想化基盤間リンクの実装情報（本例ではＶＬＡＮ番号）を共通ＡＰＩに付加する（６００５）。図１０に、図９で示すスライスに関する共通ＡＰＩを示す。ここでは図により示しているが、共通ＡＰＩはＸＭＬ−ＲＰＣ等で実装される。
【００５６】
共通ＡＰＩにより、他仮想化基盤に作成されるスライスの構成、仮想化基盤間リンクの実装情報が送付される。図１０において、ノード３９２０は仮想化基盤１０を表す擬似的なノードである。共通ＡＰＩにおいては、依頼元仮想化基盤（仮想化基盤１０）の内部の構成を伝える必要は無いので、仮想化基盤１０を表す枠の情報のみが送られる。３９２１は仮想化基盤２０の境界を表す枠である。３つ以上の仮想化基盤をまたがるフェデレーションを実施する場合は、依頼先の仮想化基盤が複数存在するため、仮想化基盤をまたがる境界は必須である。枠３９２１では、依頼先の仮想化基盤の名前をフィールド３９２１ａで示す。この場合は、仮想化基盤２０を表すｄｏｍａｉｎ２が指定される。
【００５７】
枠３９２１の中に、各々の依頼先仮想化基盤に作成されるべきノード、仮想化基盤内のリンクが定義される。本例では、２つの仮想ノード（３４０ｙ、３５０ｙ）が定義され、これらのノードがリンクで結ばれる。共通ＡＰＩではさらに、仮想化基盤間のリンクが定義される。本例では、元々のスライス定義上で、仮想化基盤１０に置かれた仮想ノード３３０と仮想化基盤２０に置かれた仮想ノード３４０を結ぶ仮想化基盤間リンクＡ（３６０）に相当する定義３６０ｙ、仮想化基盤２０に作成されたノードに管理者がログインするために自動生成された基盤間リンクＺ（３８０）に相当する定義３８０ｙが置かれる。さらに、共通ＡＰＩの各々の仮想化基盤間リンクの定義には、リンクの実装情報（ＶＬＡＮ番号）が埋め込まれる。本例では、リンクＡに関してはＶＬＡＮ１００が指定され、リンクＺに関してはＶＬＡＮ１０１が指定される。
【００５８】
仮想化基盤１０のＶＧＫ４１０は、以上により得られた共通ＡＰＩを、ＶＧＫ間リンク４３０を介して仮想化基盤２０のＶＧＫ４２０へ送付する（５００５）。図１２に共通ＡＰＩの形式を示す。共通ＡＰＩには、要求元仮想化基盤名、要求先仮想化基盤名、要求元仮想化基盤におけるスライス名、スライス定義が記述される。スライス定義としては、ノード定義、リンク定義が含まれる。
【００５９】
共通ＡＰＩを受け取った仮想化基盤２０のＶＧＫ４２０は、共通ＡＰＩに含まれるスライス定義に基づいて仮想化基盤２０の設計情報を生成する（６００６）。この設計情報は、仮想化基盤２０の表記法で記述される。図１１に、図１０に示す共通ＡＰＩに対応して、仮想化基盤２０で生成されるスライス定義を示す。２個の仮想ノードの定義（３４０ｚ、３５０ｚ）、ゲートウェイ（ＧＷ）２６におけるネットワーク収容定義（３９３０、３９３１）が記述される。ここで、ネットワーク収容定義とは、ＧＷ２６において該当するＶＬＡＮで指定される仮想化基盤間リンクＶＬＡＮを収納し、仮想化基盤間のリンクに接続する設定を行うための定義である。
【００６０】
仮想化基盤２０のＶＧＫ４２０は、上記により得られた仮想化基盤２０のスライスの作成を、仮想化基盤２０の管理サーバ２９に指示し（５００６）、仮想化基盤２０のスライスが作成される（５００７）。このスライス生成処理は、仮想ネットワーク端末から管理サーバに仮想ネットワークの作成を指示する場合と同じインタフェースで依頼される。上記仮想ネットワーク作成指示の際にＧＷ２６に仮想化基盤間リンクのネットワーク収容が設定され、仮想化基盤間リンク３６０と３８０が接続される。ステップ６００５で共通ＡＰＩに付加された仮想化基盤１０における実装情報（ＶＬＡＮ番号）を仮想化基盤２０でも設定することにより、対応する仮想化基盤間リンクを接続ことができる。仮想化基盤２０のＶＧＫ４２０は管理サーバからスライス作成結果を得て（５００８）、共通ＡＰＩで結果を仮想化基盤１０へ返送する（５００９）。
【００６１】
通常、共通ＡＰＩにより返信される結果には以下の情報が送られる。
・仮想化基盤２０でのスライス作成の成否。
・他仮想化基盤ノードログイン用リンク３８０に接続された仮想ノード３４０、３５０のＩＰアドレス等の情報（仮想化基盤１０の管理者は仮想化基盤１０のＶＧＫ４１０より上記情報を得ることができる）。
・仮想化基盤１０側が共通ＡＰＩで要求した仮想化基盤間リンクのＶＬＡＮ番号が、何らかの事情により仮想化基盤２０で使用できない場合、新しいＶＬＡＮ番号（仮想化基盤１０のＶＧＫは、上記ＶＬＡＮ番号をゲートウェイ（１６）に再設定する）。
【００６２】
以上の処理により、フェデレーション機能を持たない仮想化基盤（即ち仮想化基盤２０）においても、仮想化基盤１０の管理者が、仮想サーバによりソフトウェア的に実現したフェデレーション制御のためのＶＧＫ４１０を通して、他の仮想化基盤２０を含んだ仮想ネットワークのスライスを作成することができる。
【００６３】
〈スライス削除〉
次に、フェデレーションにより作成されたスライスを削除する処理について述べる。
図６は、仮想化基盤１０からの指示により、作成済みのスライスをフェデレーションによって削除するタイムチャートを示す。スライス削除はスライス作成の場合とは異なり、スライス上のＰＶＮでスライス削除を検知することは困難である。その理由は、スライス削除は、スライス作成の場合と異なり、ＰＶＮ３９０内のスクリプトで削除を検知することはできないためである。ここで注意しなければならないのは、ＰＶＮノードのシャットダウンスクリプトではスライス削除の検知はできないことである（ノードのリスタートが行われた場合と区別ができない）。
【００６４】
上記の理由により、本発明の好ましい例では、ＶＧＫ４１０において、スライスが削除されたことを検知する。各ＶＧＫは、自仮想化基盤から他仮想化基盤にフェデレーションで作成依頼したスライスの一覧を、管理テーブル７０１に記憶している。ＶＧＫ４１０は、管理テーブル７０１中の「自仮想化基盤スライス名」フィールドに基づき、自仮想化基盤の管理サーバ１９に、スライスの設計情報（状態、設計図）を定期的にポーリングする（５１００〜５１０１、５１０２）。このように、各仮想化基盤のＶＧＫは、自仮想化基盤から投入されたフェデレーションスライスの設計情報をポーリングしている。このポーリング処理は、後で述べる、仮想化基盤の構成変更にも利用される。
【００６５】
フェデレーションで作成したスライスを削除する場合、仮想化基盤１０の端末８０から管理者の操作により、管理サーバ１９にフェデレーションで作成したスライスの削除要求が出される。具体的には、仮想化基盤１０に作成された、仮想ノード３１０、３２０、３３０、ＰＶＮのノード３９０を削除するコマンドが出される。管理サーバ１９は削除コマンドを受信すると、指定された各ノードを含む仮想化基盤１０のスライス全体を削除する（５２０１）。その結果、ステップ５１０２で該当する仮想化基盤の設計情報がポーリングされた時に、該当する（仮想化基盤１０の）スライスは既に消去されていることを示す情報が伝えられる。
【００６６】
上記情報を受け取ったＶＧＫ４１０は、スライスが削除されていることを検出する（６１００）。そして、管理テーブル７０１の「宛先仮想化基盤名」フィールドに基づき、共通ＡＰＩにより仮想化基盤２０のＶＧＫ４２０へ、該当するスライスを削除する要求を送る（５２０２）。この共通ＡＰＩを受け取った仮想化基盤２０のＶＧＫ４２０は、管理テーブル７０２中の該当するスライスのエントリの「自仮想化基盤スライス名」フィールドを参照して、仮想化基盤２０の管理サーバ２９に、該当するスライスの仮想化基盤２０の部分の削除を指示する（５２０３）。管理サーバ２９は、仮想化基盤２０のスライスを削除して（５２０４）、その結果を仮想化基盤２０のＶＧＫ４２０に通知する（５２０５）。仮想化基盤２０のＶＧＫ４２０は、仮想化基盤１０のＶＧＫ４１０へ共通ＡＰＩにより結果を通知する（５２０６）。
【００６７】
以上述べた処理により、管理者が端末８０を操作して仮想化基盤１０の管理サーバ１９に削除指示を出すことにより、フェデレーションで作成されたスライス３００を削除することができる。この処理では、ＶＧＫ４１０においてスライス削除の検出にポーリングを利用しているため、仮想化基盤１０のスライスに削除要求が出されてから、仮想化基盤２０のスライスが削除されるまで時間差が生じるが、ポーリング間隔を適切に設定すれば、問題は生じない。例えばポーリング間隔を３分に設定すれば、３分以内に他仮想化基盤の不要になったスライスを削除することができる。
【００６８】
〈スライス変更〉
次に、仮想ネットワークの構成変更の処理について述べる。管理者の端末８０からの変更要求は仮想化基盤１０の管理サーバ１９に送られる。仮想化基盤２０の構成変更が行われる場合は、図８に示すＰＶＮの定義（３９０ｘ）内の、入れ子定義３９０１内が変更されている。変更処理の処理シーケンスは、図６に示すスライス削除の場合と同様のシーケンスで実施される。（以下の説明では、便宜上図６を参照する。）
仮想化基盤１０のＶＧＫ４１０は、定期的に実施する管理サーバ（１９）へのポーリング（５１００〜５１０１、５１０２）により、自仮想化基盤１０から投入されフェデレーションで作成されたスライスの設計情報（設計図）を得る。ＶＧＫ４１０はポーリングにより得られた設計図と、図７Ａの管理テーブルに記憶されている、以前の設計図とを比較する。比較の結果、仮想化基盤２０の設計図が変更されていると判断すると（図６のステップ６１００に該当）、仮想化基盤１０のＶＧＫ４１０は、仮想化基盤２０のＶＧＫ４２０に対して、共通ＡＰＩを用いて新しい（変更後の）スライスの設計図を送る（図６のステップ５２０２に該当）。ＶＧＫ４２０は仮想化基盤２０の管理サーバ２９に仮想化基盤２０特有のスライス構成変更コマンドを送付し、スライスの構成変更を実施するように指示する（図６のステップ５２０３に該当）。なお、スライス構成変更コマンドの送付に際しては、管理者用ログインリンクの作成に必要な、スライス設計図の改変も実施する。この部部の処理の流れは、スライス作成時と同様である。
以上述べたように、図６に示すスライス削除と同様の動作シーケンスにより、フェデレーションで作成された、他の仮想化基盤のスライスの構成変更を行うことができる。
【００６９】
〈ポーリング処理〉
図１５は、ＶＧＫプログラム４１０の１つであるポーリングプログラムの動作内容を示す。ポーリングプログラムはＶＧＫ作成時に起動され、以下に示す処理を繰り返す。まず、図７Ａに示す、自仮想化基盤から他仮想化基盤へ作成要求したスライス管理テーブル７０１より１エントリを抜き出した後（７２００）、自仮想化基盤の管理サーバ１９にそのスライスの最新の設計情報を問い合わせる（７２０１）。そして、自仮想化基盤１０のスライスが削除済みであるかどうかを確認する（７２０２）。スライスが削除済みの場合は、他仮想化基盤のスライスを削除するための共通ＡＰＩコマンドを、他仮想化基盤２０のＶＧＫ４２０へ送出する（７２０９）。併せて管理テーブル７０１より該当するスライスを削除する（７２１０）。スライス削除の処理は、上記で記したスライス削除処理で説明した通りである。その後、ＶＧＫ４１０は一定時間（ポーリング間隔）待って（７２０５）、管理テーブル７０１の次のエントリの処理に移る（７２０６）。なお、最後のエントリの場合は最初のエントリに戻る。
【００７０】
上記確認の結果、自仮想化基盤１０のスライスが削除されていない場合は、管理サーバ１９から得られたスライス設計図と、管理テーブル７０１に記憶されている以前の設計図と比較して（７２０３）、ＰＶＮ３９０内に入れ子情報として定義されている、他仮想化基盤２０のスライス設計図が変更されているかどうかを判定する（７２０４）。この判定の結果、他仮想化基盤のスライス設計図が変更されている場合には、新しい設計図に基づき、他仮想化基盤２０のスライスの変更を要求するための共通ＡＰＩコマンドを、他仮想化基盤２０のＶＧＫ４２０へ送出する（７２０７）。併せて、新しい設計図を管理テーブル７０１に格納する（７２０８）。その後、ステップ７２０５以下の処理に移る。以上は、上記のスライス構成変更処理で説明した処理である。これに対して、他仮想化基盤の設計図が変更されていない場合は、共通ＡＰＩの送出は行われず、直接にステップ７２０５以下の処理に移る。
なお、各ＶＧＫはポーリングにより上記処理を実施することにより、他の仮想化基盤のスライス部分の削除、構成変更等に対応することが可能である。
【００７１】
以上では、図１３で示す共通ＡＰＩコマンドのうち、Create Slivers（スライス作成・実行）とDelete Slivers（スライス削除）、Modify Sliveres（スライス構成変更）の実行方法を述べた。Run Slivers（スライス起動）とStop Slivers（スライス停止）は下記の方法で実行される。
【００７２】
〈スライス起動〉
管理者がスライス操作を実施する側の仮想化基盤（本実施例では仮想化基盤１０）のＰＶＮ３９０で実施される。すなわち、ＰＶＮ３９０のＶＭ（仮想ノード３２０）が起動した際に他の仮想化基盤２０のスライスを起動するために、ＶＧＫ４１０へ、Run Sliversの共通ＡＰＩコマンドの送出を依頼する。（なお、初回起動時は上述したようにCreate Sliveresによるスライスの作成が必要になる。）Run Sliveresコマンドを受け取った他の仮想化基盤のＶＧＫ４２０は、管理サーバ２９にスライスの起動を指示する。
【００７３】
図１４ＡはＰＶＮのＶＭの起動スクリプトの処理フローを示す。
まず、ＰＶＮ３９０が初回起動であるかどうかを判定する（ステップ７０００）。具体的には、管理テーブル７０１の「初回起動処理が実施済」フィールドに、初回起動実施済みを示すフラグが記憶されているので、このフラグを参照して初回起動の場合は、ＶＧＫ４１０経由で上述したスライス作成処理をトリガして（７００１）、他仮想化基盤のスライス作成を依頼した後に、管理テーブル７０１のフィールドに、スライスの初回起動処理が実施済であることを記憶する（７００２）。一方、初回起動時で無い場合は、ＶＧＫ４１０に他仮想化基盤部２０のスライスを起動することを依頼する（７００３）。
以上の処理により、管理者の端末８０の操作によって自仮想化基盤１０のスライスが２回目以降に起動された場合に、他の仮想化基盤のスライスを自動的に起動することができる。
【００７４】
〈スライス停止〉
スライス停止の処理も、上記と同様にＰＶＮ３９０により実施される。具体的には、ＰＶＮ３９０にシャットダウンスクリプトを保持させておき、このシャットダウンスクリプトにより、他仮想化基盤のスライスをシャットダウンする処理を実行するための共通ＡＰＩをＶＧＫ４１０経由で他仮想化基盤２０へ送出する。共通ＡＰＩを受け取った他仮想化基盤２０のＶＧＫ４２０は、管理サーバ２９にスライスをシャットダウンすることを要求する。
【００７５】
図１４ＢにＰＶＮのシャットダウンスクリプトの処理を示す。シャットダウンスクリプトが起動されると、ＶＧＫ４１０に他仮想化基盤２０のスライス停止を行うための共通ＡＰＩ送出を依頼する（７１００）。
以上の処理により、管理者により自仮想化基盤のスライスがシャットダウンされた場合に、他の仮想化基盤のスライスを自動的にシャットダウンすることができる。
【００７６】
〈実施例１のまとめ〉
以上述べたように、フェデレーションのための特別な管理系を持たない仮想化基盤２０においても、管理者が自仮想化基盤１０で操作を行うことにより、他仮想化基盤にまたがったスライスの作成、構成変更、削除等を実施することが可能となる。これにより、仮想化基盤間フェデレーションの適用範囲を大幅に拡大することが可能である。
【実施例２】
【００７７】
〈システム構成〉
実施例１は２つのドメイン間のフェデレーション処理であるが、実施例２は３つ以上のドメインにまたがるフェデレーション処理に関するものである。
【００７８】
図１６は、３つの仮想化基盤にまたがってフェデレーションを行うネットワークシステムの全体構成を示す。図１に対比すると、図１６は、物理構成の図示を省略して、論理構成の部分を図示している。なお、物理構成は図１と同様である。仮想化基盤２０と同じ構成の仮想化基盤３（５０）が追加されて、ゲートウェイ間ネットワーク５９０に接続された構成となる。また図１６のシステム図では、管理者が他仮想化基盤に作成したノードにログインするためのネットワーク(図１の３８０に相当)は省略されている。ログイン用ネットワークが必要な場合は、実施例１と同様の方法で自動生成することができる。
【００７９】
図１６に示すネットワークシステムには、図１の２つの仮想化基盤１０，２０に、新たに仮想化基盤５０が追加されている。ユーザスライス３００について、仮想化基盤５０には２つの仮想ノード５４０、５５０が置かれている。仮想ノード５４０は仮想化基盤間リンク３６１を介して仮想化基盤１０の仮想ノード３３０と接続され、更に仮想化基盤間リンク３６２を介して仮想化基盤２０の仮想ノード３４０と接続されている。管理スライス４００については、仮想化基盤５０に置かれたＶＧＫ４５０がフェデレーションの制御を行う。
【００８０】
さらに管理スライス４００には、各ＶＧＫ４１０、４２０、４５０とＶＧＫ間リンク４３０との間に、自仮想化基盤１０から出力される共通ＡＰＩの補完を行う補完機能４４０、４６０、４７０が新たに置かれる。これらの補完機能は、他仮想化基盤から入力される共通ＡＰＩに対しては透過である。ここで、この補完機能は、管理スライス４００上の新たなＶＭとして実装しても良いし、ＶＧＫと同じＶＭのプログラムとして実装しても良い。この補完機能は、３つ以上の仮想化基盤のフェデレーションにおいて、管理者がスライスを作成した自仮想化基盤以外の他仮想化基盤間のリンクを作成するために、ネットワークの実装情報を補完するために用いられる。すなわち仮想化基盤１０から管理者がフェデレーションスライスを投入した場合は、仮想化基盤２０と仮想化基盤５０との間のリンクを作成するために、ネットワークの実装情報を補完する。仮想化基盤１０の補完機能４４０の内部には、他仮想化基盤間リンク管理情報４４１を持つ。その他の補完機能も同様に他仮想化基盤間リンク管理情報（図示せず）を持つ。
【００８１】
次に、補完機能の必要性について、仮想化基盤１０から定義が投入された場合を例にして説明する。先に述べたように、仮想化基盤１０から定義が導入された場合、仮想化基盤１０のＶＧＫ４１０は、自仮想化基盤１０と他仮想化基盤（この場合は仮想化基盤２０、仮想化基盤５０）との間の仮想化基盤間データプレーン３６０、３６１については、リンクの実装情報（ＶＬＡＮ番号等）を設定することができる。それに対して、他仮想化基盤同士のリンク３６２については、仮想化基盤１０のＶＧＫ４１０では実装情報を管理していないので、そのままでは共通ＡＰＩの実装情報を設定することができない。
【００８２】
補完機能４４０は、共通ＡＰＩを仮想化基盤１０から他仮想化基盤（仮想化基盤２０、仮想化基盤５０）に送付する前に、他仮想化基盤間リンク３６２の実装情報を共通ＡＰＩに追加する機能を提供する。この機能を提供するために、補完機能４４０は、他仮想化基盤間リンク管理情報４４１を持つ。具体的には、他仮想化基盤間リンク作成に必要な複数（ｍ）の他仮想化基盤間リンクのＶＬＡＮ番号の使用状況等を記憶する。他仮想化基盤間リンク管理機構４４１は、他の仮想化基盤のＶＧＫ（本例では４２０、４５０）と通信を行い、リンクの実装情報をアップデートしておく。
【００８３】
図１７は、フェデレーションスライスを作成するために、仮想化基盤１０から出される共通ＡＰＩによるスライス定義の例を示す。図１７において、図１６と同様に、他の仮想化基盤のノードに管理者がログインするために自動生成されるリンクの図示が省略されている。自仮想化基盤を表す擬似的なノードの定義３９２０、仮想化基盤２０の境界を表す定義３９２１、仮想化基盤５０の境界を表す定義３９２２が存在する。仮想化基盤２０、仮想化基盤５０の定義の中には、ノードの定義（３４０ｙ、３５０ｙ、５４０ｙ、５５０ｙ）が記述される。さらに仮想化基盤１０と仮想化基盤２０を結ぶリンク３６０ｙの定義、仮想化基盤１０と仮想化基盤５０を結ぶリンク３６１ｙの定義、仮想化基盤２０と仮想化基盤５０を結ぶリンク３６２ｙが記述される。
【００８４】
共通ＡＰＩが自仮想化基盤のＶＧＫ４１０から出力される際には、自仮想化基盤と他仮想化基盤間のリンク３６０ｙ、３６１ｙに関しては、実装情報（ＶＬＡＮ番号）が設定されているが、他仮想化基盤間のリンク３６２ｙについては、実装情報（ＶＬＡＮ番号）の欄は空欄である。補完機能４４０では、管理情報４４１に基づき、他仮想化基盤間のリンク３６２ｙの実装情報（ＶＬＡＮ番号）を共通ＡＰＩに追加し、他仮想化基盤のＶＧＫ４２０、４５０へ送出する（図１７は、補完後の共通ＡＰＩを示す）。以上の処理により、共通ＡＰＩの他仮想化基盤間リンクの実装情報を指定し、他の仮想化基盤間のリンクをフェデレーション機能により作成することが可能になる。
【００８５】
共通ＡＰＩを受け取った他仮想化基盤のＶＧＫは、該当する仮想化基盤が関連する情報を抜き出し、管理サーバに上記部分のスライスの作成を指示する。例えば、仮想化基盤２０のＶＧＫ４２０においては、仮想ノードの定義３４０ｙ、３５０ｙ及びそれらを結ぶ仮想化基盤内リンク、仮想化ノード間リンクの定義３６０ｙ、３６２ｙを抜き出し、管理サーバ２９に上記部分のスライスの作成を指示する。
上記以外のフェデレーション動作に関しては、フェデレーション先の仮想化基盤数が１個から２個に増える以外は実施例１と同様の方法で実現できる。
【００８６】
〈実施例２のまとめ〉
実施例２のフェデレーションによれば、仮想化のための管理機構を持たない、３つ以上の仮想化基盤間でのフェデレーションを実現でき、自仮想化基盤における管理者の操作により他の仮想化基盤間のリンクを作成することが可能となる。
【００８７】
〈変形例〉
以上、本発明の好ましい実施例について説明したが、本発明は上記実施例に限定されることなく、更に種々変形して実施し得る。その幾つかについて説明する。
【００８８】
（１）上記実施例では、他仮想化基盤２０のスライス削除は、自仮想化基盤１０のＶＧＫ４１０のポーリングにより検出されるとした。これに対して変形例では、仮想化基盤がノードの削除スクリプト（スライスが削除される前にノードのＶＭ上で実行されるスクリプト）をサポートする場合は、スクリプトを契機として、他仮想化基盤のスライス削除処理をトリガすることができる。具体的には、各スライスのＰＶＮ３９０において、削除スクリプトとして、ＶＧＫに他仮想化基盤のスライスの削除を指示する共通ＡＰＩの送出を依頼する。これにより、自仮想化基盤のスライス削除時に、他仮想化基盤のスライスの削除を実施することができる。
【００８９】
（２）上記実施例では、他仮想化基盤のスライスの構成変更は、ＶＧＫのポーリングにより検出されるとした。これに対して変形例では、ＰＶＮにより、スライスの構成変更をトリガすることができる。具体的には、他仮想化基盤の構成変更を指示するために、自仮想化基盤の既存ＰＶＮの削除と、新しいＰＶＮの追加を記述する。新しいＰＶＮでは、入れ子構造で新しいスライスの設計図を保持するとともに、ＶＭの起動スクリプトとして、ＶＧＫに他仮想化基盤のスライスの構成変更を指示する、共通ＡＰＩの送出を依頼する。これにより、他仮想化基盤のスライス構成変更を起動することができる。
【００９０】
（３）上記実施例では、ＶＧＫは他仮想化基盤のスライス定義を、スライス定義の入れ子のデータとして得る。つまり、自仮想化基盤の管理サーバより、該当するスライスの設計情報を取得し、そこから他仮想化基盤のスライス定義を抽出している。一方、変形例では、他仮想化基盤のスライス定義をＰＶＮの起動スクリプトの引数データとして与えることができる。具体的には、ＰＶＮが起動スクリプトで、他仮想化基盤に対してスライス作成を依頼する共通ＡＰＩの作成をＶＧＫに依頼する際に、スライス定義（設計図のＸＭＬ等）を、起動スクリプト内の引数として指定する。
【００９１】
（４）上記実施例では、ＰＶＮ３９０に保持した起動スクリプト３９０２によって、ＶＧＫ４１０の処理をトリガしている。一方、変形例においては、ＰＶＮ３９０に起動スクリプト３９０２を持たせないで、ＶＧＫ４１０を起動することができる。これは、ＶＧＫ４１０が管理サーバ１９に定期的にポーリングを行い、自仮想化基盤１０において仮想ノード３１０〜３３０の作成の完了を検知したことをトリガとして起動スクリプト３９０２を同様の機能を果たすことが可能である。
【符号の説明】
【００９２】
１０，２０、５０：仮想化基盤
１１、１２、１３、２１，２２：物理ノード
１６、２６：ゲートウェイ
１９、２９：管理サーバ
３００：ユーザスライス
３１０、３２０、３３０、３４０、３５０、５４０、５５０：仮想ノード
３９０：代理ノード（ＶＰＮ）
４００：管理スライス
４１０、４２０、４５０：仮想ゲートキーパー（ＶＧＫ）
【図１】
2015159346.tif 000003
【図２】
2015159346.tif 000004
【図３】
2015159346.tif 000005
【図４】
2015159346.tif 000006
【図５】
2015159346.tif 000007
【図６】
2015159346.tif 000008
【図７Ａ】
2015159346.tif 000009
【図７Ｂ】
2015159346.tif 000010
【図７Ｃ】
2015159346.tif 000011
【図８】
2015159346.tif 000012
【図９】
2015159346.tif 000013
【図１０】
2015159346.tif 000014
【図１１】
2015159346.tif 000015
【図１２】
2015159346.tif 000016
【図１３】
2015159346.tif 000017
【図１４Ａ】
2015159346.tif 000018
【図１４Ｂ】
2015159346.tif 000019
【図１５】
2015159346.tif 000020
【図１６】
2015159346.tif 000021
【図１７】
2015159346.tif 000022