(57)【要約】      （修正有）【課題】機能実行カードのＣＰとＤＰとを連携して移動することが可能なネットワーク装置を提供する。【解決手段】物理プロセッサを有する機能実行モジュールに、所定機能を実装する第１処理実行部と第２処理実行部を有する通信装置において、第１処理実行部は機能を実現する制御情報を管理し、第２処理実行部と共有し、第２処理実行部は処理中の一時的データのみを保持する。通信装置は、第１処理実行部を管理メモリと共に移動先の機能実行モジュールに移動し、第２処理実行部の割り当てプログラムを特定可能な情報と物理プロセッサ割り当てに関する情報を移動先の機能実行モジュールに通知する。移動先の機能実行モジュールは、通知情報に基づいて、第２処理実行部を起動させるプログラムファイルをダウンロードし、新たな第２処理実行部を稼働させ、一時的なデータを廃棄することで、擬似的に第２処理実行部を移動させる。【選択図】図１４
2015158904.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続され、前記ネットワークとの間でパケットを送受信する通信装置であって、
前記ネットワークとの間のパケットの送受信処理を実行する転送制御部と、
物理プロセッサを有する機能実行モジュールと、を備え、
前記パケットの宛先と当該パケットの出力先との関係が登録された転送テーブルを保持し、
前記機能実行モジュールは所定の拡張機能を実装する複数の処理実行部を有し、
前記拡張機能は、複数の前記処理実行部のうち第１処理を実行する第１処理実行部と第２処理を実行する第２処理実行部とが連携することによって実装され、
前記物理プロセッサの演算資源は、前記第１処理実行部及び前記第２処理実行部に割り当てられ、
前記物理プロセッサのメモリ資源は、前記第１処理実行部のプログラムとデータ、及び前記第２処理実行部のプログラムとデータに割り当てられ、
前記第１処理実行部は、前記機能実行モジュール上に構築された仮想マシン上で稼働し、
前記第２処理実行部は、前記第１処理実行部が稼働する仮想マシンの外部で稼働し、
前記通信装置は、前記機能実行モジュールで稼働する第１処理実行部を移動先の機能実行モジュールに移動し、
前記機能実行モジュールは、前記第２処理実行部に割り当てられたプログラムに関する情報、及び物理プロセッサの割り当てに関する情報を前記移動先の機能実行モジュールに通知し、
前記移動先の機能実行モジュールは、前記通知されたプログラムに関する情報に基づいて、前記第２処理実行部を起動させるためにプログラムファイルをダウンロードし、前記物理プロセッサの割り当てに関する情報に基づいて新たな第２処理実行部のプログラムを前記移動先の機能実行モジュールで稼働させ、前記第２処理実行部を前記移動先の機能実行モジュールに移動し、
前記第１処理実行部及び前記第２処理実行部の前記移動先の機能実行モジュールへの移動によって、前記拡張機能が前記移動先の機能実行モジュールに移動され、
前記拡張機能の前記移動先の機能実行モジュールへの移動に伴って、前記転送テーブルを更新することを特徴とする通信装置。
【請求項２】
請求項１に記載の通信装置であって、
連携する第１処理実行部と第２処理実行部との関連付けを保持し、
前記拡張機能を前記移動先の機能実行モジュールに移動する移動指示を受け付けた場合、前記拡張機能が有する前記第１処理実行部を前記移動先の機能実行モジュールに移動し、
前記機能実行モジュールは、
前記連携する第１処理実行部と第２処理実行部との関連付けを参照し、前記移動した第１処理実行部と連携する前記第２処理実行部を特定し、
前記特定した第２処理実行部を前記移動先の機能実行モジュールに移動させることによって、前記拡張機能を前記移動先の機能実行モジュールに移動させることを特徴とする通信装置。
【請求項３】
請求項１に記載の通信装置であって、
前記移動した拡張機能宛てのパケットの出力先を前記移動先の機能実行モジュールに変更することによって、前記転送テーブルを更新することを特徴とする通信装置。
【請求項４】
請求項１に記載の通信装置であって、
前記移動先の機能実行モジュールは当該通信装置が有する機能実行モジュールであることを特徴とする通信装置。
【請求項５】
請求項１に記載の通信装置であって、
前記移動先の機能実行モジュールは、当該通信装置と異なる他の通信装置が有する機能実行モジュールであることを特徴とする通信装置。
【請求項６】
請求項５に記載の通信装置であって、
前記移動した拡張機能宛てのパケットの出力先を前記移動先の機能実行モジュールに変更することによって、前記転送テーブルを更新し、
前記移動先の機能実行モジュールを特定可能な情報、及び前記移動した拡張機能の識別情報を含む機能実行モジュール移動通知を前記他の通信装置に送信することによって、前記他の通信装置に、前記移動した拡張機能宛てのパケットの出力先を前記移動先の機能実行モジュールに変更させることによって前記他の通信装置の転送テーブルを更新させることを特徴とする通信装置。
【請求項７】
請求項５に記載の通信装置であって、
前記転送制御部はプログラムを保持し、
前記プログラムは、前記拡張機能と連携して当該拡張機能を実装する機能を含み、
前記拡張機能を前記移動先の機能実行モジュールに移動する場合、当該拡張機能と連携するプログラムの機能を移動対象の機能として特定し、
前記特定した移動対象の機能を前記他の通信装置の転送制御部に移動することを特徴とする通信装置。
【請求項８】
請求項７に記載の通信装置であって、
前記特定した移動対象の機能の種別を特定可能な情報を前記他の通信装置に送信して、前記他の通信装置に、当該機能の種別を含むプログラムを当該他の通信装置の転送制御部に設定させることによって、前記移動対象の機能を当該他の通信装置の転送制御部に移動することを特徴とする通信装置。
【請求項９】
請求項１に記載の通信装置であって、
前記物理プロセッサは、複数のプロセッサコアを有し、
前記第２処理実行部には、少なくとも一つのプロセッサコアが割り当てられ、
前記第２処理実行部に割り当てられた物理プロセッサの割り当てに関する情報は、当該第２処理実行部に割り当てられたプロセッサコアの数を含み、
前記移動先の機能実行モジュールは、前記移動先の機能実行モジュールに前記割り当てに関する情報に基づいて、前記特定した第２処理実行部と同じ第２処理実行部に、前記特定した第２処理実行部に割り当てられていたプロセッサコアの数と同じ数のプロセッサコアを割り当てることを特徴とする通信装置。
【請求項１０】
ネットワークに接続され、前記ネットワークとの間でパケットを送受信する通信装置における拡張機能の移動方法であって、
前記通信装置は、
前記ネットワークとの間のパケットの送受信処理を実行する転送制御部と、
物理プロセッサを有し、所定の機能を実装する機能実行モジュールと、を備え、
前記通信装置は、前記パケットの宛先と当該パケットの出力先との関係を保持する転送テーブルを有し、
前記機能実行モジュールは所定の拡張機能を実装する複数の処理実行部を有し、
前記拡張機能は、複数の前記処理実行部のうち第１処理を実行する第１処理実行部と第２処理を実行する第２処理実行部とが連携することによって実装され、
前記物理プロセッサの演算資源は、前記第１処理実行部及び前記第２処理実行部に割り当てられ、前記物理プロセッサのメモリ資源は、前記第１処理実行部のプログラムとデータ、及び前記第２処理実行部のプログラムとデータに割り当てられ、
前記第１処理実行部は、前記機能実行モジュール上に構築された仮想マシン上で稼働し、
前記第２処理実行部は、前記第１処理実行部が稼働する仮想マシンの外部で稼働し、
前記方法は、
前記通信装置が、移動元の機能実行モジュールで稼働する所定の拡張機能が実装される第１処理実行部を移動先の機能実行モジュールに移動し、
前記移動元の機能実行モジュールは、前記第２処理実行部に割り当てられたプログラムに関する情報、及び物理プロセッサの割り当てに関する情報を前記移動先の機能実行モジュールに通知し、
前記移動先の機能実行モジュールは、前記通知されたプログラムに関する情報に基づいて、前記第２処理実行部を起動させる為のプログラムファイルをダウンロードし、割り当てに関する情報に基づいて新たな第２処理実行部のプログラムを前記移動先の機能実行モジュールで稼働させ、前記拡張機能の前記第２処理実行部を前記移動先の機能実行モジュールに移動し、
前記第１処理実行部及び前記第２処理実行部の前記移動先の機能実行モジュールへの移動によって、前記拡張機能が前記移動先の機能実行モジュールに移動され、
前記通信装置が、前記拡張機能の前記移動先の機能実行モジュールへの移動に伴って、前記転送テーブルを更新することを特徴とする移動方法。
【請求項１１】
ネットワークに接続され、前記ネットワークとの間でパケットを送受信する複数の通信装置を備える通信システムであって、
前記通信装置は、
前記ネットワークとの間のパケットの送受信処理を実行する転送制御部と、
物理プロセッサを有する機能実行モジュールと、
前記通信装置を制御する制御部と、を有し、
前記パケットの宛先と当該パケットの出力先との関係が登録された転送テーブルを保持し、
前記複数の通信装置は、第１通信装置及び第２通信装置を含み、
前記第１通信装置の前記機能実行モジュールは所定の拡張機能を実装する複数の処理実行部を有し、
前記拡張機能は、複数の前記処理実行部のうち第１処理を実行する第１処理実行部と第２処理を実行する第２処理実行部とが連携することによって実装され、
前記物理プロセッサは、前記第１処理実行部及び前記第２処理実行部に割り当てられ、前記物理プロセッサのメモリ資源は、前記第１処理実行部のプログラムとデータ、及び前記第２処理実行部のプログラムとデータに割り当てられ、
前記第１処理実行部は、前記機能実行モジュール上に構築された仮想マシン上で稼働し、
前記第２処理実行部は、前記第１処理実行部が稼働する仮想マシンの外部で稼働し、
前記第１通信装置の機能実行モジュールが有する拡張機能を前記第２通信装置の機能実行モジュールに移動する場合において、
前記第１通信装置は、前記機能実行モジュールで稼働する第１処理実行部を前記第２通信装置の機能実行モジュールに移動し、
前記第１通信装置は、前記機能実行モジュールで稼働する第２処理実行部に割り当てられたプログラムに関する情報、及び物理プロセッサの割り当てに関する情報を前記第２通信装置の機能実行モジュールに通知し、
前記第２通信装置は、前記プログラムに関する情報に基づいて、前記第２処理実行部を起動させる為のプログラムファイルをダウンロードし、割り当てに関する情報に基づいて新たな第２処理実行部のプログラムを、前記第２通信装置の機能実行モジュールで稼働させ、前記第２処理実行部を前記第１通信装置の機能実行モジュールから前記第２通信装置の機能実行モジュールに移動し、
前記第１処理実行部及び前記第２処理実行部の前記移動先の機能実行モジュールへの移動によって、前記拡張機能が前記第１通信装置の機能実行モジュールから前記第２通信装置の機能実行モジュールに移動され、
前記第１通信装置及び前記第２通信装置は、前記拡張機能の移動に伴って、前記転送テーブルを更新することを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
ネットワークとの間でパケットを送受信する通信装置に関し、複数の機能実行モジュール間で拡張機能をマイグレーションする通信装置に関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングに代表されるネットワークを介したコンピューティング資源の利用の広まり、及びネットワークのマルチメディア利用等によって、ネットワーク上における多様なサービスの提供が求められている。このような状況の中で、ネットワーク装置が計算機又は他のネットワーク装置と協調することによって多様なサービスを提供するための機能がネットワーク装置に搭載されることが一般的になってきている。また、ネットワーク装置を高性能化するために、パケット転送処理に注力したハードウェアがネットワーク装置に搭載されることが一般的である。しかし、このようなハードウェアは多様なサービスを提供するための機能に柔軟に対応することが困難である。
【０００３】
このようなハードウェアを搭載したネットワーク装置に機能を付加する技術として、特開２００２−２８１０７２号公報（特許文献１）がある。この公報には、「ハードウェアによるルーティング処理も可能である高速なルーティングモジュール３２に、拡張機能を実行する機能実行モジュール６２を接続して機能拡張モジュール６を構成することによって、機能実行モジュール６２によるパケットデータの加工により新たなアドレス情報を持つパケットが生成された場合でも、接続している当該ルーティングモジュール３２により、パケットの新たなルーティング先を選び転送するルーティング処理の高速性を維持し、機能実行モジュール６２を複数枚接続することでスケーラブルな機能拡張モジュールによる機能拡張を可能にする。」と記載されている（要約参照）。
【０００４】
一方、コンピューティング資源の柔軟な運用のため、仮想マシン技術の利用が広まりつつある。負荷の変動に対応する等の理由により、仮想マシンを利用するシステムにおいて、プロセッサを跨がって仮想マシンを移動するマイグレーション技術として、ＵＳ２０１２／０３２４４４２（特許文献２）、ＵＳ２０１０／０２１１９４６（特許文献３）、及び特開２００２−２１５４０８号公報（特許文献４）がある。
【０００５】
特許文献２には、プロセッサが複数の各仮想マシンのネットワークスイッチング機能とハードウェアネットワークデバイスとをマッピングする処理を実行することが記載されている（要約参照）。
【０００６】
特許文献３には、「この発明は、ネットワーク化の分野に関し、特に、単一ＯＳのネットワーク抽象化と仮想化の方法とシステムに関する。この発明の方法は、この発明の方法は、単一ＯＳで構成されるネットワーク装置に於いて、単一か、あるいは、複数の資源、および、単一ＯＳの外側で運用されるソフトウェアと、更に、単一ＯＳを備える複数のハードウェア資源の問で互換性を保証する抽象化とで構成される、処置の方法であることを特徴とする。実施例をＦｉｇ．２Ａにより説明する。Ｆｉｇ．２Ａは、この発明の具体例にしたがう、単一ＯＳの仮想化とハードウェア抽象化アーキテクチヤ２００を図示するナロックダイアグラムである。例えば、単一ＯＳの仮想化とハードウェア抽象化アーキテクチヤ２００は、ハードウェア資源抽象化か、あるいは単一ＯＳの仮想化を支援するが、Ｆｉｇ．２Ａに示されるのは、ハードウェア資源２０２と、抽象化層２０４と、ＯＳ２０６と、ソフトウェア分割２０８と、複数の仮想ネットワークインターフェース制御器ドライバ２１０ａ，．．．，２１０ｎと、ソフトウェアスイッチングモジユール２２０と、物理的ネットワーク駆動器２２２、および、物理的記憶装置駆動器２２４である。次に、ハードウェア資源２０２は、一つ以上の物理的な要素か、あるいはネットワーク装置内のサブシステムに対応するが、このハードウェア資源２０２は、物理的なネットワークインターフェース制御器を構成することが可能であると共に、かつ、ネットワーク装置内のネットワーク化サブシステムか、あるいは要素に対応する。」と記載されている（要約参照）。
【０００７】
特許文献４には、「各Ｉ／Ｏアダプタおよびパーティションにおいて、Ｉ／Ｏアダプタのパーティションへの割当てを時分割で制御するスケジューリング手段、Ｉ／Ｏアダプタをパーティションに空間分割で割当てる手段、パーティション制御プログラムが上記の割当てを動的に変更する手段を設ける。また、パーティションごとの入出力性能を計測する手段を、パーティションごとの性能に基づいてユーザプログラムのＳＬＡを保持する手段を設ける。」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−２８１０７２号公報
【特許文献２】米国特許出願公開第２０１２／０３２４４４２号明細書
【特許文献３】米国特許出願公開第２０１０／０２１１９４６号明細書
【特許文献４】特開２００２−２１５４０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ネットワーク装置に搭載される機能実行カードにおいても、サービスを提供するための機能の柔軟な運用のために、仮想マシン技術を利用することが考えられる。
【００１０】
また、ネットワーク装置において、多機能性の求められる制御系の機能をＣＰ（コントロールプレーン）、単機能で高速性の求められる転送系の機能をＤＰ（データプレーン）として分割して実装し、転送処理の性能を確保する技術がある。ネットワーク装置に搭載される機能実行カードにおいても、同様にＣＰとＤＰとを分割して、それぞれ別々の機能として一つの機能実行カードに実装することが考えられる。
【００１１】
機能実行カードにおいて、仮想マシン技術を利用し、かつＣＰとＤＰとを分割して実装する場合、ＣＰは仮想マシン上に実装することが可能であるが、ＤＰは転送処理の性能を確保するために当該仮想マシン上に実装することができない。ＤＰはプロセッサの一部のコアを占有して、仮想マシン上で稼働するＯＳの外部又はホストＯＳ上に実装されることが考えられる。
【００１２】
このように機能実行カードに実装されるＣＰ及びＤＰにおいて、仮想マシンのマイグレーション技術を利用した場合、ＣＰは仮想マシン上に実装されるので、仮想マシンと共に移動することが可能である。一方、ＤＰは仮想マシン上に実装されないため、仮想マシンのマイグレーション技術を利用して移動できない。
【００１３】
機能実行カードに実装されたＣＰとＤＰは、ＣＰが管理する機能の制御に必要な情報を共有し、DPはその情報を参照する事で、宛先検索による転送処理に専従し、連携して所定の機能を実現する。このため、機能実行カードに実装された機能の移動を考えた時、仮想マシンのマイグレーション技術を利用してＣＰだけが移動した状態では動作できない問題がある。
【００１４】
本発明は、機能実行カードのＣＰとＤＰとを連携して移動することが可能なネットワーク装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の代表的な一例を示せば、ネットワークに接続され、前記ネットワークとの間でパケットを送受信する通信装置であって、前記ネットワークとの間のパケットの送受信処理を実行する転送制御部と、物理プロセッサを有する機能実行モジュールと、を備え、前記パケットの宛先と当該パケットの出力先との関係が登録された転送テーブルを保持し、前記機能実行モジュールは所定の拡張機能を実装する機能実行部を有し、前記機能実行部は、第１処理を実行する第１処理実行部、及び第２処理を実行する第２処理実行部を有し、前記機能実行部の拡張機能は、前記第１処理実行部と前記第２処理実行部とが連携することによって実装され、前記物理プロセッサの演算資源は、前記第１処理実行部、及び前記第２処理実行部に割り当てられ、前記物理プロセッサのメモリは前記第１処理実行部のプログラムとデータ、及び前記第２処理実行部のプログラムとデータに割り当てられ、前記第１処理実行部は、前記機能実行モジュール上に構築された仮想マシン上で稼働し、前記第２処理実行部は、前記第１処理実行部が稼働する仮想マシンの外部で稼働し、前記通信装置は、前記機能実行モジュールで稼働する第１処理実行部のプログラムとデータを移動先の機能実行モジュールに移動し、前記機能実行モジュールは、前記第２処理実行部に割り当てられたプログラムに関する情報、及び物理プロセッサの割り当てに関する情報を前記移動先の機能実行モジュールに通知し、前記移動先の機能実行モジュールは、前記通知された情報に基づいて、第２処理実行部に割り当てるプログラムを特定し、割り当てに関する情報に基づいて新たな第２処理実行部を前記移動先の機能実行モジュールで稼働させ、
前記第２処理実行部を前記移動先の機能実行モジュールに移動させ、前記第１処理実行部及び前記第２処理実行部の前記移動先の機能実行モジュールへの移動によって、前記機能実行部が前記移動先の機能実行モジュールに移動され、前記機能実行部の前記移動先の機能実行モジュールへの移動に伴って、前記転送テーブルを更新することを特徴とする。
【発明の効果】
【００１６】
本願において開示される発明のうち代表的なものによって得られる効果を簡潔に説明すれば、下記の通りである。すなわち、機能実行モジュールのＣＰとＤＰとを連携して割り当てることが可能なネットワーク装置を提供できる。
【００１７】
上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１８】
【図１】実施例１のネットワーク中継システムの説明図である。
【図２】実施例１の基本制御部の説明図である。
【図３】実施例１の機能実行カードの説明図である。
【図４】実施例１のＰＥ搭載ラインカードの説明図である。
【図５】実施例１の機能実行部ＩＰアドレス管理テーブルの説明図である。
【図６】実施例１の転送エンジン管理テーブルの説明図である。
【図７】実施例１のＰＥ搭載ラインカード管理テーブルの説明図である。
【図８】実施例１の転送テーブルの説明図である。
【図９】実施例１のＶＭ−ＣＰ対応テーブルの説明図である。
【図１０】実施例１のＣＰ−ＤＰ対応テーブルの説明図である。
【図１１】実施例１のＰＥ搭載ラインカード対応管理テーブルの説明図である。
【図１２】実施例１の機能実行カード情報管理テーブルの説明図である。
【図１３】実施例１の機能実行部ＩＰアドレステーブルの説明図である。
【図１４】実施例１のある機能実行カードに構築された仮想マシンを他の機能実行カードに移動する場合のシーケンス図である。
【図１５】実施例１の対象ＤＰ停止処理のフローチャートである。
【図１６】実施例１のＤＰ起動処理のフローチャートである。
【図１７】実施例１の転送テーブル更新処理のフローチャートである。
【図１８】実施例２の移動先転送テーブル更新処理のフローチャートである。
【図１９】実施例３のマイクロコード移動処理のフローチャートである。
【図２０】実施例３の移動先マイクロコード移動処理のフローチャートである。
【図２１】実施例１の機能実行カード内機能実行部のメモリ配置説明図である。
【図２２】実施例４のシステム構成図を示す。
【発明を実施するための形態】
【実施例１】
【００１９】
実施例１について図１〜図１７、図２１を用いて説明する。本実施例は、機能実行カード（機能実行モジュール）で稼働する機能の移動先が同一ネットワーク装置（通信装置）内の機能実行カードである場合について説明する。
【００２０】
図１は、実施例１のネットワーク中継システムの説明図である。
【００２１】
本ネットワーク中継システムは、ネットワーク装置１００−１及び１００−２を有する。ネットワーク装置１００−１及び１００−２はスイッチ２０−１を介して接続され、ネットワーク装置１００−２は、スイッチ２０−２に接続される。スイッチ２０−１にはサーバ３０−１が接続され、例えば、ネットワーク装置１００−１及び１００−２はサーバ３０−１との間でパケットを送受信する。また、スイッチ２０−２にはサーバ３０−２が接続され、ネットワーク装置１００−２はサーバ３０−２との間でパケットを送受信する。また、ネットワーク装置１００−１及び１００−２は管理用のネットワークを介して管理サーバ１０に接続される。
【００２２】
ネットワーク装置１００−１及び１００−２について、ネットワーク装置１００−１を例に説明する。
【００２３】
ネットワーク装置１００−１は、基本制御部１０００−１、転送エンジン２０００−１、機能実行カード３０００−１及び３０００−２、ＰＥ搭載ラインカード４０００−１、並びにラインカード５０００−１を有する。なお、本実施例のネットワーク装置１００−１はＰＥ搭載ラインカード４０００−１を有さなくてもよく、ＰＥ搭載ラインカード４０００−１は実施例３のネットワーク装置１００−１に必須の構成である。
【００２４】
基本制御部１０００−１は、転送エンジン２０００−１及びＰＥ搭載ラインカード４０００−１を制御する。基本制御部１０００−１は図２で詳細を説明する。転送エンジン２０００−１は、転送テーブル２１００−１を参照し、ネットワーク装置１００−１が受信したパケットの出力先となるポートを決定し、受信したパケットを当該ポートから出力する。転送テーブル２１００−１は、パケットの宛先のＩＰアドレスと、当該パケットのネクストホップと、当該パケットを出力するポートとの関連付けを保持し、図８で詳細を説明する。
【００２５】
機能実行カード３０００−１及び３０００−２には拡張機能を実行する機能実行部が実装可能である。図１では、機能実行カード３０００−１に機能実行部が実装され、機能実行カード３０００−２に機能実行部が実装されていない状態を示す。拡張機能のうち制御系の機能がＣＰ（コントロールプレーン）３１３２−１に実装され、転送系の機能がＤＰ（データプレーン）３１４０−１に実装される。
ＣＰ３１３２−１及びＤＰ３１４０−１が連携することによって拡張機能Ａが実装される。例えば、サーバと連携して拡張機能を提供する場合、データ転送処理に必要なリソース設定のためのサーバとの制御通信をＣＰ３１３２−１が実施し、サーバからの指示により、ＣＰ３１３２−１がメモリ上に保持するデータ３１３２−１２を設定し、その設定したメモリ情報をＤＰ３１４０−１と共有する事で、その情報に従った高速なデータ転送処理をＤＰ３１４０−１が実施する。ＤＰ３１４０−１は転送中のデータを一時的に保持する。つまり、ＣＰ３１３２−１の処理の結果や処理の状況に応じて、ＤＰ３１４０−１の処理が行われる。なお、機能実行カード３０００−１には、機能実行部Ｂにより実現される拡張機能Bも実装される（図３参照）。なお、他の機能実行カード３０００−２及び３０００−３には、機能実行部の拡張機能は実装されない。また、拡張機能は、ＯＳＩで規定されるレイヤ４以上のプロトコルで規定される処理であってもよい。拡張機能は、ＩＰ電話のセッション制御を行うアプリケーションや、パケットのデータを検査するアプリケーションであってもよい。また、拡張機能は、帯域を有効利用するための帯域制御や通信の最適化制御、高速化転送制御を行うアプリケーションであってもよい。
【００２６】
ＣＰ３１３２−１は、機能実行カード３０００−１が有するメモリ３１００−１上に構築された仮想マシン（ＶＭ）３１３０−１で動作するＯＳ３１３１−１によって提供される。また、ＤＰ３１４０−１は、当該仮想マシン３１３０−１の外部で稼働する。機能実行カード３０００−１については、図３で詳細を説明する。メモリ3100-1上での機能実行部の構成については、図２１で詳細を説明する。
【００２７】
ＰＥ搭載ラインカード４０００−１は、ネットワーク装置１００−１をスイッチ２０に接続するポートを有し、外部ネットワークとのインタフェースである。プログラマブルエンジン（ＰＥ）４２００−１（図４参照）に記憶されたマイクロコード４２１０−１（図４参照）に対応する処理を実行する。この処理は、例えば、受信したパケットを当該パケットに対応する機能実行カードに振り分ける処理である。なお、マイクロコード４２１０−１に対応する処理はこれに限定されず、ＰＥ４２００−１に他のマイクロコードが記憶されれば、他の処理が実行される。ＰＥ搭載ラインカード４０００−１については、図４で詳細を説明する。
【００２８】
ラインカード５０００−１は、管理サーバ１０に接続されるポート及びスイッチ２０−１に接続されるポートを有し、外部ネットワークとのインタフェースである。
【００２９】
ネットワーク装置１００−２は、基本制御部１０００−２、転送エンジン２０００−２、機能実行カード３０００−３、ＰＥ搭載ラインカード４０００−２、並びにラインカード５０００−２及び５０００−３を有する。ラインカード５０００−３は、スイッチ２０−２に接続されるポートを有し、外部ネットワークとのインタフェースである。他の構成は、ネットワーク装置１００−１の基本制御部１０００−１、転送エンジン２０００−１、機能実行カード３０００−２、ＰＥ搭載ラインカード４０００−１、及びラインカード５０００−１と同じであるので、説明を省略する。
【００３０】
なお、ネットワーク装置１００−１及び１００−２は、図示しない他のスイッチに接続され、図示しない他のサーバ又は端末と接続されてもよい。
【００３１】
また、機能実行カード３０００−１〜３０００−３と記載しているが、カードに限定されず、例えば、機能実行ボード等であってもよい。特許請求の範囲では、機能実行カード及び機能実行ボード等を含む概念を機能実行モジュールとして記載する。また、ラインカード５０００−１〜５０００−３も同様に、カードに限定されず、ラインボード等であってもよく、これらを含む概念をラインモジュールとする。また、ＰＥ搭載ラインカード４０００−１及び４０００−２も同様に、カードに限定されず、ＰＥ搭載ラインボード等であってもよく、これらを含む概念をＰＥ搭載ラインモジュールとする。
【００３２】
次に、管理サーバ１０について説明する。
【００３３】
管理サーバ１０は、ＣＰＵ１１、メモリ１２、及び二次記憶装置１４を有する計算機である。
【００３４】
メモリ１２には、マイグレーション指示部１３を実現するためのプログラムが記憶され、ＣＰＵ１１は、当該プログラムを実行することによってマイグレーション指示部１３を実装する。マイグレーション指示部１３は、移動対象となる拡張機能の識別情報（拡張機能ＩＤ）、及び移動先となる機能実行カードの識別情報（機能実行カードＩＤ）を含むマイグレーション指示をネットワーク装置１００−１又は１００−２に送信する。
【００３５】
図２は、実施例１の基本制御部１０００−１の説明図である。
【００３６】
基本制御部１０００−１は、ＣＰＵ１２００−１、メモリ１１００−１及び二次記憶装置１３００−１を有する。メモリ１１００−１は、転送エンジン制御部１１０１−１に対応するプログラム及びＰＥ搭載ラインカード制御部１１０２−１に対応するプログラム、並びに、拡張機能ＩＰアドレス管理テーブル１１０３−１、転送エンジン管理テーブル１１０４−１、及びＰＥ搭載ラインカード管理テーブル１１０５−１を記憶する。なお、実施例１及び２では、ＰＥ搭載ラインカード制御部１１０２−１及びＰＥ搭載ラインカード管理テーブル１１０５−１は必須の構成ではない。
【００３７】
ＣＰＵ１２００−１は、メモリ１１００−１に記憶された転送エンジン制御部１１０１−１に対応するプログラムを実行することによって転送エンジン制御部１１０１−１を実装し、メモリ１１００−１に記憶されたＰＥ搭載ラインカード制御部１１０２−１に対応するプログラムを実行することによってＰＥ搭載ラインカード制御部１１０２−１を実装する。
【００３８】
二次記憶装置１３００−１は、機能実行カードに実装される拡張機能のプログラムファイル１３０１−１、及び１３０２−１を記憶する。これらのプログラムファイル１３０１は、移動先の機能実行カード３０００−２で起動されるＤＰを起動するために用いられる。
【００３９】
転送エンジン制御部１１０１−１は転送エンジン２０００−１を制御する。例えば、転送エンジン制御部１１０１−１は転送テーブル２１００−１を更新する。ＰＥ搭載ラインカード制御部１１０２−１はＰＥ搭載ラインカード４０００−１を制御する。
【００４０】
拡張機能ＩＰアドレス管理テーブル１１０３−１には、基本制御部１０００−１を有するネットワーク装置１００−１が有する機能実行カード３０００−１及び３０００−２に実装される拡張機能の識別情報と当該拡張機能に設定されたＩＰアドレスとの関連付けが登録される。拡張機能ＩＰアドレス管理テーブル１１０３−１は、図５で詳細に説明する。
【００４１】
転送エンジン管理テーブル１１０４−１には、機能実行カード３０００−１〜３０００−３と、機能実行カード３０００−１〜３０００−３のＩＰアドレスと、出力先のポートの識別情報との関連付けが登録される。転送エンジン管理テーブル１１０４−１は、図６で詳細に説明する。
【００４２】
ＰＥ搭載ラインカード管理テーブル１１０５−１には、ＰＥ搭載ラインカード４０００−１の識別情報と当該ＰＥ搭載ラインカード４０００−１のマイクロコード４２１０−１の機能の種別の識別情報との関連付けが登録される。ＰＥ搭載ラインカード管理テーブル１１０５−１は、図７で詳細を説明する。
【００４３】
ネットワーク装置１００−２が有する基本制御部１０００−２も図２と同じ構成であるので、説明を省略する。
【００４４】
図３は、実施例１の機能実行カード３０００−１の説明図である。
【００４５】
機能実行カード３０００−１は、物理プロセッサ３２００−１及びメモリ３１００−１を有する。物理プロセッサ３２００−１は複数のプロセッサコアを有し、図３では、物理プロセッサ３２００−１は、３２個のプロセッサコア３２０１−１〜３２３２−１を有する。
【００４６】
メモリ３１００−１は、ＯＳ３１０１−１、ハイパーバイザー３１０２−１、コア割付部３１０３−１、及びマイグレーション制御部３１０４−１に対応するプログラムを記憶する。物理プロセッサ３２００−１がこれらのプログラムを実行することによって、ＯＳ３１０１−１、ハイパーバイザー３１０２−１、コア割付部３１０３−１、及びマイグレーション制御部３１０４−１を実装する。
【００４７】
ＯＳ３１０１−１は、機能実行カード３０００−１の基本的な制御を行う。ハイパーバイザー３１０２−１は、メモリ３１００−１に実装される仮想マシン（ＶＭ）３１３０−１及び３１２０−１を制御する。
【００４８】
コア割付部３１０３−１は、ＤＰへのプロセッサコアの割り当てを制御する。マイグレーション制御部３１０４−１は、機能実行カード３０００−１に実装される拡張機能のマイグレーション（移動）を制御する。
【００４９】
機能実行カード３０００−１上にはＶＭ３１２０−１及び３１３０−１が構築され、ＶＭ３１２０−１で動作するＯＳ３１３１−１はＣＰ３１３２−１を提供し、ＶＭ３１２０−１で動作するＯＳ３１２１−１はＣＰ３１２２−１を提供する。また、機能実行カード３０００−１上では、パケットを中継するＤＰ３１４０−１及び３１５０−１が動作する。ＣＰ３１３２−１とＤＰ３１４０−１とで拡張機能Ａを実現し、ＣＰ３１２２−１とＤＰ３１５０−１とで拡張機能Bを実現する。
【００５０】
また、メモリ３１００−１は、主信号Ｉ／Ｆ  ＩＰアドレス３１０５−１、拡張機能ＩＰアドレステーブル３１０６−１、ＶＭ−ＣＰ対応テーブル３１０７−１、ＣＰ−ＤＰ対応テーブル３１０８−１、ＰＥ搭載ラインカード対応管理テーブル３１０９−１、及び機能実行カード情報管理テーブル３１１０−１を記憶する。
【００５１】
主信号Ｉ／Ｆ  ＩＰアドレス３１０５−１は、機能実行カード３０００−１が接続された転送エンジン２０００−１のポートに設定されたＩＰアドレス、すなわち、機能実行カード３０００−１のＩＰアドレスである。拡張機能ＩＰアドレステーブル３１０６−１には、機能実行カード３０００−１に実装される拡張機能の識別情報と当該拡張機能に設定されたＩＰアドレスとの関連付けが登録される。拡張機能ＩＰアドレステーブル３１０６−１は、図１３で詳細を説明する。
【００５２】
ＶＭ−ＣＰ対応テーブル３１０７−１には、機能実行カード３０００−１上に構築されるＶＭの識別情報と当該ＶＭ上で動作するＣＰの識別情報との関連付け、及びＣＰの物理プロセッサ３２００−１の割り当てに関する情報が登録される。ＶＭ−ＣＰ対応テーブル３１０７−１は、図９で詳細に説明する。
【００５３】
ＣＰ−ＤＰ対応テーブル３１０８−１には、一つの拡張機能を実現する機能実行部であるＣＰの識別情報とＤＰの識別情報との関連付け、及びＤＰの物理プロセッサ３２００−１の割り当てに関する情報が登録される。ＣＰ−ＤＰ対応テーブル３１０８−１は、図１０で詳細を説明する。
【００５４】
ＰＥ搭載ラインカード対応管理テーブル３１０９−１には、ＰＥ搭載ラインカード４０００−１のマイクロコードの機能がどの拡張機能に対応するかの関連付けが登録される。ＰＥ搭載ラインカード対応管理テーブル３１０９−１は図１１で詳細を説明する。
【００５５】
機能実行カード情報管理テーブル３１１０−１には、全ての機能実行カード３０００−１〜３０００−３の識別情報と、これらの機能実行カード３０００−１〜３０００−３のＩＰアドレスとの関連付けが登録される。機能実行カード情報管理テーブル３１１０−１は、図１２で詳細に説明する。
【００５６】
なお、機能実行カード３０００−２及び機能実行カード３０００−３はＶＭが構築されておらず、拡張機能が動作していない点で機能実行カード３０００−１と異なる。
【００５７】
図４は、実施例１のＰＥ搭載ラインカード４０００−１の説明図である。
【００５８】
ＰＥ搭載ラインカード４０００−１は、メモリ４１００−１及びＰＥ４２００−１を有する。ＰＥ４２００−１は、マイクロコード４２１０−１の処理を実行する。マイクロコード４２１０−１は、ＰＥ搭載ラインカード４０００−１のポートが受信したパケットを機能実行カード３０００−１〜３０００−３に転送する機能を有する。メモリ４１００−１は、拡張機能ＩＰアドレステーブル４１０２−１及び機能種別管理テーブル４１０３を記憶する。拡張機能ＩＰアドレステーブル４１０２−１には、ネットワーク装置１００−１で動作する拡張機能の識別情報と当該拡張機能のＩＰアドレスとの関連付けが登録される。機能種別管理テーブル４１０３には、ＰＥ４２００−１で実行されるマイクロコード４２１０−１の機能の種別の識別情報が登録される。
【００５９】
なお、ＰＥ搭載ラインカード４０００−２は、ＰＥ搭載ラインカード４０００−１と同じ構成であるが、ＰＥにはマイクロコードが記憶されていない。
【００６０】
図５は、実施例１の拡張機能ＩＰアドレス管理テーブル１１０３−１の説明図である。
【００６１】
拡張機能ＩＰアドレス管理テーブル１１０３−１は、拡張機能ＩＤ１１０３１及びＩＰアドレス１１０３２を含む。拡張機能ＩＤ１１０３１には、基本制御部１０００−１を有するネットワーク装置１００−１が有する機能実行カード３０００−１及び３０００−２に実装される拡張機能の識別情報（拡張機能ＩＤ）が登録される。ＩＰアドレス１１０３２には、拡張機能に設定されたＩＰアドレスが登録される。
【００６２】
すなわち、拡張機能ＩＰアドレス管理テーブル１１０３−１には、拡張機能ＩＤと拡張機能のＩＰアドレスとの関連付けが登録される。
【００６３】
図６は、実施例１の転送エンジン管理テーブル１１０４−１の説明図である。
【００６４】
転送エンジン管理テーブル１１０４−１は、機能実行カードＩＤ１１０４１、主信号Ｉ／Ｆ  ＩＰアドレス１１０４２、及び出力先ポート番号１１０４３を含む。
【００６５】
機能実行カードＩＤ１１０４１には、全てのネットワーク装置１００−１及び１００−２の機能実行カード３０００−１〜３０００−３の識別情報（機能実行カードＩＤ）が登録される。
【００６６】
主信号Ｉ／Ｆ  ＩＰアドレス１１０４２には、転送エンジン２０００−１及び２００−２のポートのうち機能実行カード３０００−１〜３０００−３に接続されたポートに設定されたＩＰアドレス（機能実行カードのＩＰアドレス）が登録される。
【００６７】
出力先ポート番号１１０４３には、転送エンジン２０００−１及び２００−２のポートのうち機能実行カード３０００−１〜３０００−３に接続されたポートの識別情報（ポート番号）が登録される。
【００６８】
すなわち、転送エンジン管理テーブル１１０４−１には、機能実行カードのＩＰアドレスと当該機能実行カードにパケットを出力するためのポート番号との関連付けが登録される。
【００６９】
図７は、実施例１のＰＥ搭載ラインカード管理テーブル１１０５−１の説明図である。
【００７０】
ＰＥ搭載ラインカード管理テーブル１１０５−１は、ＰＥ搭載ラインカードＩＤ１１０５１及び機能種別ＩＤ１１０５２を含む。
【００７１】
ＰＥ搭載ラインカードＩＤ１１０５１には、ネットワーク装置１００−１が有するＰＥ搭載ラインカードの識別情報（ＰＥ搭載ラインカードＩＤ）が登録される。機能種別ＩＤ１１０５２には、ＰＥ搭載ラインカードのマイクロコードの機能の種別の識別情報（機能種別ＩＤ）が登録される。
【００７２】
すなわち、ＰＥ搭載ラインカード管理テーブル１１０５−１には、ＰＥ搭載ラインカードＩＤと機能種別ＩＤとの関連付けが登録される。
【００７３】
図８は、実施例１の転送テーブル２１００−１の説明図である。
【００７４】
転送テーブル２１００−１は、宛先ＩＰアドレス２１００１、ネクストホップ２１００２、及び出力先ポート番号２１００３が登録される。
【００７５】
宛先ＩＰアドレス２１００１には、パケットの宛先のＩＰアドレス（宛先ＩＰアドレス）が登録される。ネクストホップ２１００２には、ネクストホップのＩＰアドレスが登録される。出力先ポート番号２１００３には、パケットを出力するポート番号が登録される。
【００７６】
すなわち、転送テーブル２１００−１には、パケットの宛先と当該パケットの出力先とが登録される。
【００７７】
図９は、実施例１のＶＭ−ＣＰ対応テーブル３１０７−１の説明図である。
【００７８】
ＶＭ−ＣＰ対応テーブル３１０７−１は、ＶＭ−ＩＤ３１０７１、ＣＰ−ＩＤ３１０７２、及びＣＯＲＥマスク３１０７３を含む。
【００７９】
ＶＭ−ＩＤ３１０７１には、機能実行カード上に構築される仮想マシンの識別情報（ＶＭ−ＩＤ）が登録される。ＣＰ−ＩＤ３１０７２には、仮想マシン上で動作するＯＳによって提供されるＣＰの識別情報（ＣＰ−ＩＤ）が登録される。ＣＯＲＥマスク３１０７３には、物理プロセッサ３２００−１のコアのうちＣＰに割り当てられるコアと特定するための情報である。ＣＯＲＥマスク３１０７３に登録された８桁の１６進数によって、物理プロセッサ３２００−１が有する３２個のプロセッサコア３２０１−１〜３２３２−１のうちＣＰに割り当てられるコアを特定できる。例えば、ＣＰ−ＩＤ「１」のＣＯＲＥマスク３１０７３には「０ｘ０００００００ｆ」が登録されるので、ＣＰ−ＩＤ「１」のＣＰには物理プロセッサ３２００−１の四つのコア３２２９−１（図３不図示）〜３２３２−１が割り当てられる。なお、ＣＯＲＥマスク３１０７３は、ＣＰの物理プロセッサ３２００−1の割り当てに関する情報であり、ＣＰに割り当てられたコア数を含めば他の形式であってもよい。
【００８０】
すなわち、ＶＭ−ＣＰ対応テーブル３１０７−１には、機能実行カード３０００−１上に構築されるＶＭの識別情報と当該ＶＭ上で動作するＣＰの識別情報との関連付け、及びＣＰの物理プロセッサ３２００−１の割り当てに関する情報が登録される。
【００８１】
なお、機能実行カード３０００−２上には仮想マシンが構築されないので、機能実行カード３０００−２のＶＭ−ＣＰ対応テーブルには何も登録されない。
【００８２】
図１０は、実施例１のＣＰ−ＤＰ対応テーブル３１０８−１の説明図である。
【００８３】
ＣＰ−ＤＰ対応テーブル３１０８−１は、ＣＰ−ＩＤ３１０８１、ＤＰ−ＩＤ３１０８２、及びＣＯＲＥマスク３１０８３を含む。
【００８４】
ＣＰ−ＩＤ３１０８１には、機能実行カード３０００−１上で動作するＣＰの識別情報（ＣＰ−ＩＤ）が登録される。ＤＰ−ＩＤ３１０８２には、ＣＰと連携して拡張機能を実装するＤＰの識別情報（ＤＰ−ＩＤ）が登録される。ＣＯＲＥマスク３１０８３には、物理プロセッサ３２００−１のコアのうちＤＰに割り当てられるコアを特定するための情報である。ＣＯＲＥマスク３１０８３の詳細は、ＣＯＲＥマスク３１０７３と同じであるので、説明を省略する。
【００８５】
すなわち、ＣＰ−ＤＰ対応テーブル３１０８−１には、一つの拡張機能を実現するＣＰの識別情報とＤＰの識別情報との関連付け、及びＤＰの物理プロセッサ３２００−１の割り当てに関する情報が登録される。
【００８６】
なお、機能実行カード３０００−２上ではＤＰは動作しないので、機能実行カード３０００−２のＣＰ−ＤＰ対応テーブルには何も登録されない。
【００８７】
図１１は、実施例１のＰＥ搭載ラインカード対応管理テーブル３１０９−１の説明図である。
【００８８】
ＰＥ搭載ラインカードＩＤ３１０９１にはＰＥ搭載ラインカードＩＤが登録され、拡張機能ＩＤ３１０９２には、機能実行カード３０００−１に実装される拡張機能の識別情報（拡張機能ＩＤ）が登録され、機能種別ＩＤ３１０９３には、拡張機能に対応するマイクロコードの機能の種別の識別情報（機能種別ＩＤ）が登録される。
【００８９】
すなわち、ＰＥ搭載ラインカード対応管理テーブル３１０９−１には、ＰＥ搭載ラインカード４０００−１のマイクロコードの機能がどの拡張機能に対応するかの関連付けが登録される。
【００９０】
図１２は、実施例１の機能実行カード情報管理テーブル３１１０−１の説明図である。
【００９１】
機能実行カード情報管理テーブル３１１０−１は、機能実行カードＩＤ３１１０１、及びＩＰアドレス３１１０２を含む。
【００９２】
機能実行カードＩＤ３１１０１には、ネットワーク中継システムの全ての機能実行カードの識別情報（機能実行カードＩＤ）が登録される。ＩＰアドレス３１１０２には、機能実行カードのＩＰアドレスが登録される。
【００９３】
すなわち、全ての機能実行カード３０００−１〜３０００−３の識別情報と、これらの機能実行カード３０００−１〜３０００−３のＩＰアドレスとの関連付けが登録される。
【００９４】
図１３は、実施例１の拡張機能ＩＰアドレステーブル３１０６−１の説明図である。
【００９５】
拡張機能ＩＰアドレステーブル３１０６−１は、拡張機能ＩＤ３１０６１及びＩＰアドレス３１０６２を含む。
【００９６】
拡張機能ＩＤ３１０６１には、機能実行カード３０００−１に実装される拡張機能の識別情報（拡張機能ＩＤ）が登録され、ＩＰアドレス３１０６２には拡張機能のＩＰアドレスが登録される。
【００９７】
すなわち、拡張機能ＩＰアドレステーブル３１０６−１には、機能実行カード３０００−１に実装される拡張機能の識別情報と当該拡張機能に設定されたＩＰアドレスとの関連付けが登録される。
【００９８】
図１４は、実施例１のある機能実行カードに構築された仮想マシンを他の機能実行カードに移動する場合のシーケンス図である。
【００９９】
ネットワーク装置１００−１は、機能実行カード３０００−１及び３０００−２を有する。図３で説明したように、機能実行カード３０００−１上にはＶＭ３１２０−１及び３１３０−１が構築され、ＣＰ３１３２−１及び３１２１０−１並びにＤＰ３１４０−１及び３１５０−１が動作する。ＣＰ３１３２−１及びＤＰ３１４０−１によって拡張機能Ａが実装され、ＣＰ３１２２−１及びＤＰ３１５０−１によって拡張機能Ｂが実装される。
【０１００】
また、機能実行カード３０００−２上にはＶＭが構築されず、ＣＰ及びＤＰは動作していない。
【０１０１】
本実施例では、機能実行カード３０００−１に実装された拡張機能Ａを機能実行カード３０００−２に移動する動作について説明する。
【０１０２】
まず、管理サーバ１０のマイグレーション指示部１３は、移動対象の拡張機能ＩＤ「Ａ」及び移動先の機能実行カードＩＤ「２」を含むマイグレーション指示をネットワーク装置１００−１に送信する（Ｓ１１）。マイグレーション指示部１３は、管理者による移動対象の拡張機能ＩＤ及び移動先の機能実行カードＩＤの入力を受け付けた場合にマイグレーション指示を送信してもよいし、機能実行カードの負荷等を収集し、収集した負荷等に基づいて移動対象の拡張機能ＩＤ及び移動先の機能実行カードＩＤを特定し、マイグレーション指示を送信してもよい。
【０１０３】
ネットワーク装置１００−１がマイグレーション指示を受信し、受信したマイグレーション指示が機能実行カード３０００−１に入力されると、当該機能実行カード３０００−１のハイパーバイザー３１０２−１は、ＶＭマイグレーション処理を実行し（Ｓ１２）、ＶＭマイグレーション通知をマイグレーション制御部３１０４−１に出力する（Ｓ１３）。具体的には、ＶＭマイグレーション処理では、ハイパーバイザー３１０２−１は、入力されたマイグレーション指示に基づいて、拡張機能ＡのＣＰ３１３２−１を提供するＯＳ３１３１−１が稼働するＶＭ３１３０−１を移動先の機能実行カード３０００−２に移動する。また、ＶＭマイグレーション通知は、移動対象となる拡張機能ＩＤ、移動させた仮想マシンの識別情報（ＶＭ−ＩＤ）及び移動先の機能実行カードＩＤを含む。
【０１０４】
マイグレーション制御部３１０４−１は、ＶＭマイグレーション通知が入力された場合、対象ＤＰ停止処理を実行し（Ｓ１４）、ＤＰマイグレーション通知を移動先の機能実行カード３０００−２に出力し（Ｓ１５）、拡張機能マイグレーション通知を転送エンジン制御部１１０１−１に出力する（Ｓ１７）。
【０１０５】
対象ＤＰ停止処理では、マイグレーション制御部３１０４−１は、入力されたＶＭマイグレーション通知に含まれるＶＭ−ＩＤに基づいてＤＰ−ＩＤを特定し、当該ＤＰ−ＩＤによって識別されるＤＰの機能を停止する。また、マイグレーション制御部３１０４−１は、特定したＤＰ−ＩＤ及びＤＰのＣＯＲＥマスクを含むＤＰ情報を取得し、ＤＰマイグレーション通知を出力する。また、マイグレーション制御部３１０４−１は、移動対象となる拡張機能ＩＤ及び移動先の機能実行カードＩＤを含む拡張機能マイグレーション通知を転送エンジン制御部１１０１−１に出力する。なお、対象ＤＰ停止処理は、図１５で詳細に説明する。
【０１０６】
移動先の機能実行カード３０００−２にＤＰマイグレーション指示が入力された場合、機能実行カード３０００−２のマイグレーション制御部３１０４−２は、ＤＰマイグレーション指示に基づいてＤＰを起動させるＤＰ起動処理を実行する（Ｓ１６）。ＤＰ起動処理は、図１６で詳細に説明する。
【０１０７】
転送エンジン制御部１１０１−１に拡張機能マイグレーション通知が入力された場合、転送エンジン制御部１１０１−１は、移動対象の拡張機能宛てのパケットを移動先の機能実行カード３０００−２に出力されるように、転送テーブル２１００−１を更新する転送テーブル更新処理を実行する（Ｓ１７）。なお、転送テーブル更新処理は、図１７で詳細に説明する。
【０１０８】
図１５は、実施例１の対象ＤＰ停止処理のフローチャートである。
【０１０９】
マイグレーション制御部３１０４−１は、ＶＭマイグレーション通知が入力されたか否かを判定する（Ｓ５０１）。ＶＭマイグレーション通知には、移動対象となる拡張機能ＩＤ「Ａ」、移動させたＶＭ−ＩＤ「１」及び移動先の機能実行カードＩＤ「２」が含まれるものとする。
【０１１０】
Ｓ５０１でＶＭマイグレーション通知が入力されていないと判定されると、マイグレーション制御部３１０４−１は、Ｓ５０１に戻り、再度、ＶＭマイグレーション通知が入力されたか否かを判定する。
【０１１１】
Ｓ５０１でＶＭマイグレーション通知が入力されたと判定された場合、マイグレーション制御部３１０４−１は、ＶＭ−ＩＤとＣＰ−ＩＤとの関連付けを参照し、入力されたＶＭマイグレーション通知に含まれる移動させたＶＭ−ＩＤに対応するＣＰ−ＩＤを特定し、また、当該ＣＰ−ＩＤに基づいてＣＰの物理プロセッサ３２００−１の割り当てに関する情報を特定する（Ｓ５０２）。特定したＣＰ−ＩＤ及びＣＰの物理プロセッサ３２００−１の割り当てに関する情報をＣＰ情報という。
【０１１２】
具体的には、マイグレーション制御部３１０４−１は、ＶＭ−ＣＰ対応テーブル３１０７−１のＶＭ−ＩＤ３１０７１に、入力されたＶＭマイグレーション通知に含まれるＶＭ−ＩＤ「１」が登録されたレコードのＣＰ−ＩＤ「Ａ」及びＣＯＲＥマスク「０ｘ０００００００ｆ」を特定する。なお、ここで、特定されたＣＰ−ＩＤ「Ａ」は、ハイパーバイザーによるＶＭマイグレーションによって移動先の機能実行カード３０００−２に移動したＣＰ３１３２−１の識別情報である。
【０１１３】
次に、マイグレーション制御部３１０４−１は、ＣＰ−ＩＤとＤＰ−ＩＤとの関連付けを参照し、移動先の機能実行カード３０００−２に移動したＣＰ３１３２−１のＣＰ−ＩＤ「Ａ」に対応するＤＰ−ＩＤを特定し、また、当該ＤＰ−ＩＤに基づいてＤＰの物理プロセッサ３２００−１の割り当てに関する情報を特定する（Ｓ５０３）。特定したＤＰ−ＩＤ及びＤＰの物理プロセッサ３２００−１の割り当てに関する情報をＤＰ情報という。ここでは、移動したＣＰ３１３２−１と同じ拡張機能Ａの機能を実装するためにＣＰ３１３２−１と連携するＤＰのＤＰ−ＩＤが特定され、当該ＤＰの物理プロセッサ３２００−１の割り当てに関する情報が特定される。
【０１１４】
具体的には、マイグレーション制御部３１０４−１は、ＣＰ−ＤＰ対応テーブル３１０８−１のＣＰ−ＩＤ３１０８１にＳ５０２で特定したＣＰ−ＩＤ「Ａ」が登録されたレコードのＤＰ−ＩＤ「Ａ」及びＣＯＲＥマスク「０ｘ００００ｆｆ００」を特定する。
【０１１５】
次に、マイグレーション制御部３１０４−１は、機能実行カードＩＤと機能実行カードのＩＰアドレスとの関連付けを参照し、移動先の機能実行カード３０００−２のＩＰアドレスを特定する（Ｓ５０４）。
【０１１６】
具体的には、マイグレーション制御部３１０４−１は、機能実行カード情報管理テーブル３１１０−１の機能実行カードＩＤ３１１０１に、入力されたＶＭマイグレーション通知に含まれる移動先の機能実行カードＩＤ「２」が登録されたレコードのＩＰアドレス「１９２．１６８．１０２．２」を特定する。
【０１１７】
次に、マイグレーション制御部３１０４−１は、Ｓ５０３で特定したＤＰ情報を含むＤＰマイグレーション通知を、Ｓ５０４で特定した移動先の機能実行カード３０００−２のＩＰアドレス宛てに出力する（Ｓ５０５）。
【０１１８】
次に、マイグレーション制御部３１０４−１は、入力されたＶＭマイグレーション通知に含まれる移動先の機能実行カードＩＤ「２」及び移動対象の拡張機能ＩＤ「Ａ」を含む機能実行部マイグレーション通知を転送エンジン制御部１１０１−１に出力する（Ｓ５０６）。
【０１１９】
次に、マイグレーション制御部３１０４−１は、移動対象の拡張機能ＩＤとＰＥ搭載ラインカードＩＤとの関連付けを参照し、移動対象の拡張機能と連携するＰＥ搭載ラインカードが存在するか否かを判定する（Ｓ５０７）。
【０１２０】
Ｓ５０７で、移動対象の拡張機能と連携するＰＥ搭載ラインカードが存在すると判定された場合、マイグレーション制御部３１０４−１は、Ｓ５０８を実行し、Ｓ５０９に進む。一方、Ｓ５０７で、移動対象の拡張機能と連携するＰＥ搭載ラインカードが存在しないと判定された場合、Ｓ５０９に進む。本実施例では、ＰＥ搭載ラインカードは考慮しないため、Ｓ５０７では、移動対象の拡張機能と連携するＰＥ搭載ラインカードが存在しないと判定され、Ｓ５０８を実行せず、Ｓ５０９に進む。Ｓ５０７及びＳ５０８は、実施例３で詳細に説明する。
【０１２１】
Ｓ５０９では、マイグレーション制御部３１０４−１は、Ｓ５０３で特定されたＤＰ−ＩＤ「Ａ」のＤＰ３１４０−１の機能を停止し（Ｓ５０９）、処理を終了する。なお、Ｓ５０９の実行前又は後に、マイグレーション制御部３１０４−１は、ＣＰ−ＤＰ対応テーブル３１０８−１のＤＰ−ＩＤ３１０８２にＤＰ−ＩＤ「Ａ」が登録されたレコードを削除する。
【０１２２】
図１６は、実施例１のＤＰ起動処理のフローチャートである。
【０１２３】
まず、移動先の機能実行カード３０００−２のマイグレーション制御部３１０４−２は、ＤＰマイグレーション通知が入力されたか否か判定する（Ｓ６０１）。なお、ＤＰマイグレーション通知は、ＤＰ情報（ＤＰ−ＩＤ「Ａ」及びＣＯＲＥマスク「０ｘ００００ｆｆ００」）を含む。
【０１２４】
Ｓ６０１でＤＰマイグレーション通知が入力されていないと判定されると、マイグレーション制御部３１０４−２は、Ｓ６０１に戻り、再度、ＤＰマイグレーション通知が入力されたか否かを判定する。
【０１２５】
Ｓ６０１でＤＰマイグレーション通知が入力されたと判定された場合、マイグレーション制御部３１０４−２は、入力されたＤＰマイグレーション通知に含まれるＤＰ情報に基づいて、ＤＰを起動する（Ｓ６０２）。
【０１２６】
具体的には、マイグレーション制御部３１０４−２は、ＤＰマイグレーション通知に含まれるＤＰ−ＩＤ「Ａ」に対応するプログラム１３０１−１を基本制御部１０００−１から機能実行カード３０００−２のメモリにダウンロードする。また、マイグレーション制御部３１０４−２は、ＤＰマイグレーション通知に含まれるＣＯＲＥマスク「０ｘ００００ｆｆ００」を機能実行カード３０００−２のコア割付部に渡す。このコア割付部は、ＣＯＲＥマスク「０ｘ００００ｆｆ００」に基づいて、機能実行カード３０００−２の物理プロセッサが有するプロセッサコアをＤＰに割り当てる。これによって、移動先の機能実行カード３０００−２においても、ＤＰが機能実行カード３０００−１で稼働していた場合と同じくＤＰに物理プロセッサを割り当てることができる。換言すれば、移動元の機能実行カード３０００−１でＤＰに割り当てられていたプロセッサの数を移動先の機能実行カード３０００−２でもＤＰに割り当てることができ、ＤＰの移動前後で当該ＤＰの処理能力が増減することを防止できる。なお、本実施例のコア割付部は、機能実行カードが有するハイパーバイザーから独立して動作するが、ハイパーバイザーがコア割付部の機能を有していてもよい。
【０１２７】
図２１は機能拡張カード３０００−１に搭載されたメモリ３１００−１内における、拡張機能AのＣＰ３１３２−１とＤＰ３１４０−１、及び拡張機能ＢのＣＰ３１２２−１とＤＰ３１５０−１のメモリ構造を示している。移動対象である拡張機能ＡのＣＰ３１３２−１はプログラム３１３２−１１とサーバとの制御通信により設定したデータ３１３２−１２から構成される。ＣＰ３１３２−１とＤＰ３１４０−１は、メモリ３１００−１内のデータ３１３２−１２を共有し、拡張機能Ａを行う。ＶＭマイグレーション通知の処理でハイパーバイザー３１０２−１にて移動されたＣＰは、移動前の機能実行カード３０００−１で動作していたのと全く同じプログラム３１３２−１１とデータ３１３２−１２から構成され動作する事が可能である。
【０１２８】
一方、拡張機能ＡのＤＰ３１４０−１は、ＣＰと同様にプログラム３１４０−１１とデータ３１４０−１２から構成されており、データ３１４０−１２には、現在転送中のデータが一時的に格納されている。ＤＰマイグレーション通知の処理で移動先の機能実行カード３０００−２で起動されるＤＰは、基本制御部１０００−１に格納された対応する拡張機能Ａのプログラムファイル１３０１−１から起動しダウンロードされる。従って本実施例のマイグレーションにより、ＣＰ及びＤＰを含む拡張機能の処理主体が変更される。
【０１２９】
また、移動前の機能実行カード３０００−１で動作していたデータ３１４０−１２は、プログラムファイル１３０１−１のダウンロードに応じて移動されてもよい。また、データ３１４０−１２には現在転送中のデータが一時的に保存されている為、拡張機能の処理部を移動する場合に転送処理を行っていたパケットについてはロストを許容すれば、拡張機能Ａの動作に必要なデータはＣＰ３１３２−１が持つデータ３１３２−１２にすべて管理されているので、データ３１４０−１２は用いずに以降の転送処理を移動先によって引き継がれてもよい。また、メモリ３１００に転送処理中のパケットが保持されていない場合を検知して、拡張機能に関するＣＰとＤＰの移動を行ってもよい。
【０１３０】
これによって、機能実行カード３０００−２上でＣＰ−ＩＤ「Ａ」のＣＰ及びＤＰ−ＩＤ「Ａ」のＤＰが動作し、機能実行カード３０００−２に拡張機能Ａが実装される。
【０１３１】
次に、マイグレーション制御部３１０４−２は、新たに動作するＣＰのＣＰ−ＩＤとＤＰのＤＰ−ＩＤとの関連付け、及びＤＰの物理プロセッサの割り当てに関する情報によって、機能実行カード３０００−２のＣＰ−ＤＰ対応テーブルを更新し（Ｓ６０３）、処理を終了する。
【０１３２】
具体的には、マイグレーション制御部３１０４−２は、ＣＰ−ＤＰ対応テーブルに新たなレコードを追加し、ＣＰ−ＩＤ３１０８１にＣＰ−ＩＤ「Ａ」を登録し、ＤＰ−ＩＤ３１０８２にＤＰ−ＩＤ「Ａ」を登録し、ＣＯＲＥマスク３１０８３に「ＣＯＲＥマスク「０ｘ００００ｆｆ００」を登録する。
【０１３３】
図１７は、実施例１の転送テーブル更新処理のフローチャートである。
【０１３４】
まず、転送エンジン制御部１１０１−１は、拡張機能マイグレーション通知が入力されたか否か判定する（Ｓ１０１）。なお、拡張機能マイグレーション通知は、移動先の機能実行カードＩＤ「２」及び移動対象の拡張機能ＩＤ「Ａ」を含む。
【０１３５】
Ｓ１０１で拡張機能マイグレーション通知が入力されていないと判定されると、転送エンジン制御部１１０１−１は、Ｓ１０１に戻り、再度、拡張機能マイグレーション通知が入力されたか否かを判定する。
【０１３６】
Ｓ１０１で拡張機能マイグレーション通知が入力されたと判定された場合、転送エンジン制御部１１０１−１は、機能実行カードＩＤと、機能実行カードのＩＰアドレスと、出力先のポート番号との関連付けを参照し、拡張機能マイグレーション通知に含まれる移動先の機能実行カードＩＤの機能実行カードのＩＰアドレス及び出力先のポート番号を特定する（Ｓ１０２）。
【０１３７】
具体的には、転送エンジン制御部１１０１−１は、転送エンジン管理テーブル１１０４−１の機能実行カードＩＤ１１０４１に移動先の機能実行カードＩＤ「２」が登録されたレコードの主信号Ｉ／Ｆ  ＩＰアドレス「１９２．１６８．１０２．２」及び出力先ポート番号「１０２」を特定する。
【０１３８】
次に、転送エンジン制御部１１０１−１は、拡張機能ＩＤと拡張機能のＩＰアドレスとの関連付けを参照し、入力された拡張機能マイグレーション通知に含まれる移動対象の拡張機能ＩＤによって識別される拡張機能のＩＰアドレスを特定する（Ｓ１０３）。
【０１３９】
具体的には、転送エンジン制御部１１０１−１は、拡張機能ＩＰアドレス管理テーブル１１０３−１の拡張機能ＩＤ１１０３１に移動対象の拡張機能ＩＤ「Ａ」が登録されたレコードのＩＰアドレス「１０．１．１．１」を特定する。
【０１４０】
次に、転送エンジン制御部１１０１−１は、移動対象の拡張機能のＩＰアドレス宛てのパケットの出力先が移動先の機能実行カード３０００−２となるように転送テーブル２１００−１を更新する（Ｓ１０４）。
【０１４１】
具体的には、転送エンジン制御部１１０１−１は、転送テーブル２１００−１の宛先ＩＰアドレス２１００１に、Ｓ１０３で特定した移動対象の拡張機能のＩＰアドレス「１０．１．１．１」が登録されたレコードのネクストホップ２１００２に、Ｓ１０２で特定した主信号Ｉ／Ｆ  ＩＰアドレス「１９２．１６８．１０２．２」を登録し、当該レコードの出力先ポート番号２１００３に、Ｓ１０２で特定した出力先ポート番号「１０２」を登録する。これによって、ネットワーク装置１００−１は、移動対象となる拡張機能宛てのパケットを移動先の機能実行カード３０００−２に転送できる。
【０１４２】
次に、転送エンジン制御部１１０１−１は、他のネットワーク装置が移動先の機能実行カードを有するか否かを判定する（Ｓ１０５）。基本制御部１０００−１及び１０００−２は、自ネットワーク装置が有する機能実行カードＩＤを管理する図示しないテーブルを有している。Ｓ１０５では、転送エンジン制御部１１０１−１は、入力された拡張機能マイグレーション通知に含まれる移動先の機能実行カードＩＤが当該テーブルに登録されているか否かを判定することによって、他のネットワーク装置が移動先の機能実行カードを有するか否かを判定する。
【０１４３】
Ｓ１０５で他のネットワーク装置が移動先の機能実行カードを有すると判定された場合、転送エンジン制御部１１０１−１はＳ１０６を実行し、処理を終了する。Ｓ１０５で他のネットワーク装置が移動先の機能実行カードを有さないと判定された場合、転送エンジン制御部１１０１−１は、処理を終了する。なお、本実施例では、移動先の機能実行カードは、移動対象の機能実行カードを有するネットワーク装置が有するので、Ｓ１０６が実行されず、処理を終了する。Ｓ１０６は実施例２で詳細を説明する。
【０１４４】
以上によって、ネットワーク装置１００−１内において、機能実行カード３０００−１で動作していた同じ拡張機能を実装するＣＰ及びＤＰを、他の機能実行カード３０００−２に移動することができる。
【実施例２】
【０１４５】
実施例２について図１８を用いて説明する。
【０１４６】
本実施例では、ネットワーク装置を跨がった拡張機能の移動について説明する。具体的には、ネットワーク装置１００−１の機能実行カード３０００−１からネットワーク装置１００−２の機能実行カード３０００−３への移動について説明する。
【０１４７】
本実施例では、実施例１と異なる処理のみを説明する。
【０１４８】
まず、図１４を用いて本実施例の概略を説明する。
【０１４９】
本実施例では、実施例１と異なり、マイグレーション指示は、移動対象の拡張機能ＩＤ「Ａ」及び移動先の機能実行カードＩＤ「３」を含むものとする。すなわち、当該マイグレーション指示は、ネットワーク装置１００−１の機能実行カード３０００−１に実装される拡張機能Ａを他のネットワーク装置１００−２の機能実行カード３０００−３に移動させる指示である。
【０１５０】
Ｓ１５で、ＤＰマイグレーション通知は機能実行カード３０００−３に送信され、Ｓ１６で、機能実行カード３０００−３のマイグレーション制御部がＤＰ起動処理（図１６参照）を実行する。
【０１５１】
また、Ｓ１８で、転送エンジン制御部１１０１−１は、転送テーブル更新処理（図１７参照）を実行する。ここで、移動先の機能実行カード３０００−３はネットワーク装置１００−１以外のネットワーク装置１００−２が有するので、転送エンジン制御部１１０１−１は、機能実行カードマイグレーション通知を移動先のネットワーク装置１００−２に送信する。機能実行カードマイグレーション通知は、移動先の機能実行カードＩＤ、移動対象の拡張機能ＩＤ、及び移動対象の拡張機能のＩＰアドレスを含む。
【０１５２】
ネットワーク装置１００−２が機能実行カードマイグレーション通知を受信した場合、基本制御部１０００−２の転送エンジン制御部は、移動先転送テーブル更新処理を実行する。移動先テーブル更新処理は、図１８で詳細に説明する。
【０１５３】
本実施例の転送テーブル更新処理について図１７を用いて説明する。
【０１５４】
Ｓ１０５では、他のネットワーク装置が移動先の機能実行カードを有すると判定され、Ｓ１０６に進む。
【０１５５】
Ｓ１０６では、転送エンジン制御部１１０１−１は、移動先の機能実行カードＩＤ「３」、移動対象の拡張機能ＩＤ「Ａ」、及びＳ１０３で特定した移動対象の拡張機能のＩＰアドレス「１０．１．１．１」を含む機能実行カードマイグレーション通知を、移動先のネットワーク装置１００−２の基本制御部１０００−２の転送エンジン制御部に送信し（Ｓ１０６）、処理を終了する。
【０１５６】
次に、図１８を用いて移動先転送テーブル更新処理について説明する。図１８は、実施例２の移動先転送テーブル更新処理のフローチャートである。
【０１５７】
まず、基本制御部１０００−２の転送エンジン制御部は、機能実行カードマイグレーション通知が入力されたか否か判定する（Ｓ２０１）。なお、機能実行カードマイグレーション通知は、移動先の機能実行カードＩＤ「３」、移動対象の拡張機能ＩＤ「Ａ」、及び移動対象の拡張機能のＩＰアドレス「１０．１．１．１」を含む。
【０１５８】
Ｓ２０１で機能実行カードマイグレーション通知が入力されていないと判定されると、基本制御部１０００−２の転送エンジン制御部は、Ｓ２０１に戻り、再度、機能実行カードマイグレーション通知が入力されたか否かを判定する。
【０１５９】
Ｓ２０１で機能実行カードマイグレーション通知が入力されたと判定された場合、基本制御部１０００−２の転送エンジン制御部は、機能実行カードＩＤと、機能実行カードのＩＰアドレスと、出力先のポート番号との関連付けを参照し、機能実行カードマイグレーション通知に含まれる機能実行カードＩＤの機能実行カードのＩＰアドレス及び出力先のポート番号を特定する（Ｓ２０２）。
【０１６０】
ネットワーク装置１００−２の基本制御部１０００−２は、図６に示す転送エンジン管理テーブル１１０４−１と同じ転送エンジン管理テーブルを有している。このため、Ｓ２０２では、基本制御部１０００−２の転送エンジン制御部は、Ｓ１０２と同じく、転送エンジン管理テーブル１１０４−１の機能実行カードＩＤ１１０４１に移動先の機能実行カードＩＤ「２」が登録されたレコードの主信号Ｉ／Ｆ  ＩＰアドレス「１９２．１６８．１０２．２」及び出力先ポート番号「１０２」を特定する。
【０１６１】
次に、基本制御部１０００−２の転送エンジン制御部は、拡張機能ＩＰアドレス管理テーブルに新たなレコードを追加し、追加したレコードの拡張機能ＩＤ１１０３１に、入力された機能実行カードマイグレーション通知に含まれる移動対象の拡張機能ＩＤ「Ａ」を登録し、当該レコードのＩＰアドレス１１０３２に、入力された機能実行カードマイグレーション通知に含まれる移動対象の拡張機能のＩＰアドレス「１０．１．１．１」を登録する（Ｓ２０３）。
【０１６２】
次に、基本制御部１０００−２の転送エンジン制御部は、移動対象の拡張機能のＩＰアドレス宛てのパケットの出力先が移動先の機能実行カード３０００−３となるように転送テーブル２１００−２を更新する（Ｓ２０４）。
【０１６３】
具体的には、基本制御部１０００−２の転送エンジン制御部は、転送テーブル２１００−２の宛先ＩＰアドレス２１００１に、入力された機能実行カードマイグレーション通知に含まれる移動対象の拡張機能のＩＰアドレス「１０．１．１．１」が登録されたレコードのネクストホップ２１００２に、Ｓ２０２で特定した主信号Ｉ／Ｆ  ＩＰアドレス「１９２．１６８．１０２．２」を登録し、当該レコードの出力先ポート番号２１００３に、Ｓ２０２で特定した出力先ポート番号「１０２」を登録する。これによって、ネットワーク装置１００−２は、移動対象となる拡張機能宛てのパケットを移動先の機能実行カード３０００−２に転送できる。
【０１６４】
以上によって、機能実行カード３０００−１で動作していた同じ機能を実装するＣＰ及びＤＰを、ネットワーク装置を跨がって、他の機能実行カード３０００−３に移動することができる。
【実施例３】
【０１６５】
実施例３について図１９及び図２０を用いて説明する。
【０１６６】
本実施例では、ＣＰ、ＤＰ、及びＰＥ搭載ラインカードのマイクロコードが連携して拡張機能を実装する。このため、本実施例では、ＣＰ、ＤＰ、及びマイクロコードを連携して移動先の機能実行カード及び当該機能実行カードを有するネットワーク装置が有するＰＥ搭載ラインカードに移動する。
【０１６７】
以下では、機能実行カード３０００−１で動作するＣＰ及びＤＰを機能実行カード３０００−３に移動させ、ＰＥ搭載ラインカード４０００−１（ＰＥ搭載ラインカードＩＤ「１」）のマイクロコードをＰＥ搭載ラインカード４０００−２（ＰＥ搭載ラインカード「２」）に移動させる例について説明する。
【０１６８】
本実施例では、実施例１及び実施例２と異なる処理のみを説明する。
【０１６９】
拡張機能ＡはＰＥ搭載ラインカード４０００−１のマイクロコード４２１０−１の機能種別ＩＤ「１」によって識別される機能種別と連携し、拡張機能ＢはＰＥ搭載ラインカード４０００−１のマイクロコード４２１０−１の機能種別ＩＤ「２」によって識別される機能種別と連携するものとする。
【０１７０】
本実施例では、実施例２と同じく、マイグレーション指示は、移動対象の拡張機能ＩＤ「Ａ」及び移動先の機能実行カードＩＤ「３」を含むものとする。
【０１７１】
図１４に示すＳ１４の対象ＤＰ停止処理では、移動対象となる拡張機能ＡがＰＥ搭載ラインカード４０００−１のマイクロコードの機能と連携しているので、マイグレーション制御部３１０４−１は、機能種別マイグレーション通知をＰＥ搭載ラインカード４０００−１に出力する。
【０１７２】
この処理について図１５を用いて詳細に説明する。
【０１７３】
Ｓ５０７では、マイグレーション制御部３１０４−１は、移動対象の拡張機能ＩＤとＰＥ搭載ラインカードＩＤとの関連付けを参照し、移動対象の拡張機能と連携するＰＥ搭載ラインカードが存在するか否かを判定する（Ｓ５０７）。具体的には、マイグレーション制御部３１０４−１は、ＰＥ搭載ラインカード対応管理テーブル３１０９−１を参照し、拡張機能ＩＤ３１０９２に移動対象の拡張機能ＩＤが登録されたレコードが存在するか否かを判定する。本実施例では、ＰＥ搭載ラインカード対応管理テーブル３１０９−１の拡張機能ＩＤ３１０９２に拡張機能ＩＤ「Ａ」が登録されたレコードが存在し、当該レコードのＰＥ搭載ラインカードＩＤ３１０９１にはＰＥ搭載ラインカードＩＤ「１」が登録されているため、移動対象の拡張機能と連携するＰＥ搭載ラインカードが存在すると判定され、Ｓ５０８に進む。
【０１７４】
Ｓ５０８では、マイグレーション制御部３１０４−１は、移動対象の拡張機能ＩＤ「Ａ」、移動先の機能実行カードＩＤ「３」、連携するＰＥ搭載ラインカードＩＤ「１」、及び連携する機能種別ＩＤ「１」を含む機能種別マイグレーション通知を、基本制御部１０００−１のＰＥ搭載ラインカード制御部１１０２−１に出力し、Ｓ５０９に進み、処理を終了する。
【０１７５】
なお、連携する機能種別ＩＤ「１」は、ＰＥ搭載ラインカード対応管理テーブル３１０９−１の拡張機能ＩＤ３１０９２に拡張機能ＩＤ「Ａ」が登録されたレコードの機能種別ＩＤ３１０９３から取得される。
【０１７６】
次に、ＰＥ搭載ラインカード制御部１１０２−１は、機能種別マイグレーション通知が入力された場合、図１９に示すマイクロコード移動処理を実行する。
【０１７７】
図１９は、実施例３のマイクロコード移動処理のフローチャートである。
【０１７８】
まず、ＰＥ搭載ラインカード制御部１１０２−１は、機能種別マイグレーション通知が入力されたか否か判定する（Ｓ３０１）。
【０１７９】
Ｓ３０１で機能種別マイグレーション通知が入力されていないと判定されると、ＰＥ搭載ラインカード制御部１１０２−１は、Ｓ３０１に戻り、再度、機能種別マイグレーション通知が入力されたか否かを判定する。
【０１８０】
Ｓ３０１で機能種別マイグレーション通知が入力されたと判定された場合、ＰＥ搭載ラインカード制御部１１０２−１は、入力された機能種別マイグレーション通知に含まれる連携する機能種別ＩＤ「１」を移動対象となる機能種別ＩＤとして特定する（Ｓ３０２）。
【０１８１】
次に、ＰＥ搭載ラインカード制御部１１０２−１は、拡張機能ＩＤと拡張機能のＩＰアドレスとの関連付けを参照し、移動対象の拡張機能のＩＰアドレスを特定する（Ｓ３０３）。
【０１８２】
具体的には、ＰＥ搭載ラインカード制御部１１０２−１は、拡張機能ＩＰアドレス管理テーブル１１０３−１の拡張機能ＩＤ１１０３１に移動対象の拡張機能ＩＤ「Ａ」が登録されたレコードのＩＰアドレス「１０．１．１．１」を特定する。
【０１８３】
次に、ＰＥ搭載ラインカード制御部１１０２−１は、他のネットワーク装置が移動先の機能実行カードを有するか否かを判定する（Ｓ３０４）。この処理は、図１７に示すＳ１０５と同じ処理であるので、詳細な説明を省略する。
【０１８４】
Ｓ３０４で他のネットワーク装置が移動先の機能実行カードを有さないと判定された場合、ＰＥ搭載ラインカード４０００−１のマイクロコードを移動する必要がなく、Ｓ３０いので、Ｓ３０５〜Ｓ３０８を実行せず、Ｓ３０９に進む。Ｓ３０４で他のネットワーク装置が移動先の機能実行カードを有すると判定された場合、Ｓ３０５に進む。本実施例では、移動先の機能実行カード３０００−３は他のネットワーク装置１００−２が有するため、Ｓ３０５に進む。
【０１８５】
Ｓ３０５では、ＰＥ搭載ラインカード制御部１１０２−１は、移動先の機能実行カード３０００−３を有するネットワーク装置１００−２に、移動対象の機能種別ＩＤ「１」、移動対象の拡張機能ＩＤ「Ａ」、及び移動対象の拡張機能のＩＰアドレス「１０．１．１．１」を含むＰＥ搭載ラインカードマイグレーション通知を送信する（Ｓ３０５）。ネットワーク装置１００−２がＰＥ搭載ラインカードマイグレーション通知を受信し、受信したＰＥ搭載ラインカードマイグレーション通知がネットワーク装置１００−２の基本制御部１０００−２のＰＥ搭載ラインカード制御部に入力されると、このＰＥ搭載ラインカード制御部は図２０に示す移動先マイクロコード移動処理を実行する。移動先マイクロコード移動処理は図２０で詳細に説明する。
【０１８６】
次に、ＰＥ搭載ラインカード制御部１１０２−１は、移動対象の機能種別ＩＤ「１」によって識別されるマイクロコードの機能がネットワーク装置１００−２のＰＥ搭載ラインカード４０００−２に移動するので、ＰＥ搭載ラインカード管理テーブル１１０５−１の移動対象の機能種別ＩＤ「１」のレコードを削除する（Ｓ３０６）。
【０１８７】
次に、ＰＥ搭載ラインカード制御部１１０２−１は、移動元の機能実行カード３０００−１のＰＥ搭載ラインカード対応管理テーブル３１０９−１の移動対象の機能種別ＩＤ「１」のレコードを削除する（Ｓ３０７）。
【０１８８】
次に、ＰＥ搭載ラインカード制御部１１０２−１は、移動対象の機能種別ＩＤによって識別されるマイクロコード４２１０−１の機能を、ＰＥ搭載ラインカード４０００−１に停止させる（Ｓ３０８）。
【０１８９】
次に、ＰＥ搭載ラインカード制御部１１０２−１は、ＰＥ搭載ラインカード４０００−１に、移動対象の拡張機能ＩＤ及び移動対象の拡張機能のＩＰアドレスを出力し（Ｓ３０９）、処理を終了する。
【０１９０】
ＰＥ搭載ラインカード４０００−１は、Ｓ３０９で出力された情報が入力された場合、拡張機能ＩＰアドレステーブル４１０２−１の移動対象の拡張機能ＩＤ又は移動対象の拡張機能のＩＰアドレスが登録されたレコードを削除する。
【０１９１】
図２０を用いて、移動先マイクロコード移動処理について説明する。図２０は、実施例３の移動先マイクロコード移動処理のフローチャートである。
【０１９２】
まず、ネットワーク装置１００−２の基本制御部１０００−２のＰＥ搭載ラインカード制御部は、ＰＥ搭載ラインカードマイグレーション通知が入力されたか否かを判定する（Ｓ４０１）。ＰＥ搭載ラインカードマイグレーション通知は、移動対象の機能種別ＩＤ「１」、移動対象の拡張機能ＩＤ「Ａ」、及び移動対象の拡張機能のＩＰアドレス「１０．１．１．１」を含む。
【０１９３】
Ｓ４０１で、ＰＥ搭載ラインカードマイグレーション通知が入力されていないと判定されると、基本制御部１０００−２のＰＥ搭載ラインカード制御部は、Ｓ４０１に戻り、再度、ＰＥ搭載ラインカードマイグレーション通知が入力されたか否かを判定する。
【０１９４】
一方、Ｓ４０１で、ＰＥ搭載ラインカードマイグレーション通知が入力されたと判定された場合、基本制御部１０００−２のＰＥ搭載ラインカード制御部は、基本制御部１０００−２が有するＰＥ搭載ラインカード管理テーブルを更新する。具体的には、ＰＥ搭載ラインカード管理テーブルに新たなレコードを追加し、追加したレコードのＰＥ搭載ラインカードＩＤ１１０５１に、ネットワーク装置１００−２が有するＰＥ搭載ラインカード４０００−２の識別情報（ＰＥ搭載ラインカードＩＤ「２」）を登録し、機能種別ＩＤ１１０５２に、機能種別ＩＤ「１」を登録する。
【０１９５】
次に、基本制御部１０００−２のＰＥ搭載ラインカード制御部は、移動先の機能実行カード３０００−３のＰＥ搭載ラインカード対応管理テーブルを更新する。具体的には、ＰＥ搭載ラインカード制御部１１０２−２は、ＰＥ搭載ラインカード対応管理テーブル新たなレコードを追加し、追加したレコードのＰＥ搭載ラインカードＩＤ３１０９１にＰＥ搭載ラインカードＩＤ「２」を登録し、拡張機能ＩＤ３１０９２に、ＰＥ搭載ラインカードマイグレーション通知に含まれる移動対象の拡張機能ＩＤ「Ａ」を登録し、機能種別ＩＤ３１０９３に、ＰＥ搭載ラインカードマイグレーション通知に含まれる移動対象の機能種別ＩＤ「１」を登録する。
【０１９６】
次に、基本制御部１０００−２のＰＥ搭載ラインカード制御部は、基本制御部１０００−２が保持する機能種別ＩＤ「１」に対応するマイクロコードをＰＥ搭載ラインカード４０００−２にダウンロードし、機能種別ＩＤ「１」の機能でＰＥ搭載ラインカード４００−２を起動する（Ｓ４０４）。
【０１９７】
次に、基本制御部１０００−２のＰＥ搭載ラインカード制御部は、移動対象の機能種別ＩＤ「２」、移動対象の拡張機能ＩＤ「Ａ」、及び移動対象の拡張機能のＩＰアドレス「１０．１．１．１」を移動先のＰＥ搭載ラインカード４０００−２に出力し（Ｓ４０５）、処理を終了する。
【０１９８】
ＰＥ搭載ラインカード４０００−２は、Ｓ４０５で出力された情報が入力された場合、ＰＥ搭載ラインカード４０００−２の拡張機能ＩＰアドレステーブルに新たなレコードを追加し、追加したレコードに移動対象の拡張機能ＩＤ「Ａ」及び移動対象の拡張機能のＩＰアドレス「１０．１．１．１」を登録する。
【０１９９】
以上によって、拡張機能Ａが機能実行カード３０００−１から機能実行カード３０００−３に移動することによって、拡張機能Ａと連携するマイクロコードの機能をＰＥ搭載ラインカード４０００−１からＰＥ搭載ラインカード４０００−２に移動することができる。
【実施例４】
【０２００】
実施例4について図22を用いて説明する。本実施例では、サーバ上に実装された拡張機能をスイッチ等のネットワーク装置で接続された別のサーバへ移動する場合について説明する。
【０２０１】
図２２は、実施例4のネットワーク中継システムの説明図である。
【０２０２】
本ネットワーク中継システムは、ネットワーク装置６００００−１を有し、ネットワーク装置６００００−１を介して、機能実行サーバ７００００−１、機能実行サーバ７００００−２及び管理サーバ８００００−１が接続される。
【０２０３】
ネットワーク装置６００００−１について説明する。ネットワーク装置６００００−１は、ＣＰＵ６１０００−１、メモリ６２０００−１及び転送エンジン６３０００−１、を有する。
【０２０４】
メモリ６２０００−１上で動作する転送エンジン制御部６２１００−１が転送エンジン６３０００−１上のＡＲＰキャッシュテーブル６３１００−１を制御する。転送エンジン６３０００−１は、ＡＲＰキャッシュテーブルテーブル６３１００−１を参照し、ネットワーク装置６００００−１が送信するパケットの宛先ＭＡＣアドレスを決定する。ＡＲＰキャッシュテーブルテーブル６３１００−１は、パケットの宛先のＩＰアドレスとＭＡＣアドレスとの関連付けを保持する。
【０２０５】
機能実行サーバ７００００−１及び７００００−２には拡張機能を実行する機能実行部が実装可能である。図２２では、機能実行サーバ７００００−１に機能実行部が実装され、機能実行サーバ７００００−２に機能実行部が実装されていない状態を示す。拡張機能のうち多機能性の求められる制御系の機能がＣＰ（コントロールプレーン）７２１２０−１に実装され、単機能で高速性の求められる転送系の機能がＤＰ（データプレーン）７２２００−１に実装される。ＣＰ７２１２０−１及びＤＰ７２２００−１とが連携することによって拡張機能Ａが実装される。例えば、サーバと連携して拡張機能を提供する場合、データ転送処理に必要なリソース設定のためのサーバとの制御通信をＣＰ７２１２０−１が実施し、ＣＰ７２２００−１がその制御通信により設定したリソース情報を共有する事で、その情報に従った高速なデータ転送処理をＤＰ７２２００−１が実施する。ＤＰ７２２００−１は転送中のデータを一時的に保持するのみで、永続的な情報の処理は行わない。つまり、ＣＰ７２１２０−１の処理の結果や処理の状況に応じて、ＤＰ７２２００−１の処理が行われる。ＣＰ７２１２０−１は、機能実行サーバ７００００−１が有するメモリ７２０００−１上に構築された仮想マシン（ＶＭ）７２１００−１で動作するＯＳ７２１１０−１によって提供される。また、ＤＰ７２２００−１は、当該仮想マシン７２１００−１の外部で稼働する。
【０２０６】
管理サーバ８００００−１に搭載される二次記憶装置８１０００−１は、機能実行サーバに実装される拡張機能のプログラムファイル８１１００−１を記憶する。
【０２０７】
なお、ネットワーク装置６００００−１は、図示しない他のスイッチに接続され、図示しない他のサーバ又は端末と接続されてもよい。
【０２０８】
また、機能実行サーバと記載しているが、サーバに限定されず、例えば、ネットワーク装置に実装されるモジュール等であってもよい。
【０２０９】
本実施例では、機能実行サーバ７００００−１に実装された拡張機能Ａを機能実行サーバ７００００−２に移動する動作について説明する。
【０２１０】
まず、管理サーバ８００００−１より、機能実行サーバ７００００−１へtelnet等のプロトコルによりアクセスし、メモリ７２０００−１で動作するＶＭ７２１００−１を管理サーバ８００００−１の二次記憶装置８１０００−１へコピーし、その後、拡張機能Ａを停止させる。
【０２１１】
続いて、管理サーバ８００００−１より、機能実行サーバ７００００−２へtelnet等のプロトコルによりアクセスし、上記処理にて管理サーバ８００００−１の二次記憶装置８１０００−１にコピーされた、ＶＭ７２１００−１を機能実行サーバ７００００−２のメモリ７２０００−２へ展開する。また、管理サーバ８００００−１の二次記憶装置８１０００−１に格納された拡張機能Ａのプログラムファイル８１１００−１を機能実行サーバ７００００−２のメモリ７２０００−２へ展開し、拡張機能Ａを起動する。
【０２１２】
機能実行サーバ７００００−２で起動された拡張機能Ａは、ネットワーク装置６００００−１へＧｒａｔｕｉｔｏｕｓ ＡＲＰを送信する。Ｇｒａｔｕｉｔｏｕｓ ＡＲＰを受信したネットワーク装置６００００−１の転送エンジン制御部６２１００−１がＡＲＰキャッシュテーブル６３１００−１を更新する事で、ネットワーク装置６００００−１が受信した拡張機能Ａ宛のパケットは、機能実行サーバ７００００−２へ転送される事になる。
【０２１３】
移動対象である拡張機能ＡのＣＰ７２１２０−１はプログラムとデータから構成されており、前述の通り、データをＤＰ７２２００−１と共有し、機能を実現している。機能実行サーバ７００００−２に移動したＣＰ７２１２０−１は、移動前の機能実行サーバ７００００−１で動作していたのと全く同じプログラムとデータから構成され動作する事が可能である。
一方、拡張機能ＡのＤＰ７２２００−１はＣＰと同様にプログラムとデータから構成されており、データには、現在転送中のデータが一時的に格納されている。機能実行サーバ７００００−２で起動されるＤＰは、管理サーバ８００００−１に格納された同一のプログラムファイル８１１００−１から起動されるが、移動前の機能実行サーバで動作していたデータは移動する事が出来ない。前述の通り、データには現在転送中のデータが一時的に保存されている為、移動時に転送処理を行っていたパケットについては、ロストしてしまうが、拡張機能Ａの動作に必要なデータはＣＰ７２１２０−１が持つデータにすべて管理されているので、以降の転送処理には支障を来たす事無く動作可能となる。  なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０２１４】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０２１５】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０２１６】
１０    管理サーバ  ２０    スイッチ  ３０    サーバ  １００−１、１００−２    ネットワーク装置  １０００−１、１０００−２    基本制御部  ２０００−１、２０００−２    転送エンジン  ２１００−１、２１００−２    転送テーブル  ３０００−１、３０００−２、３０００−３    機能実行カード  ４０００−１、４０００−２    ＰＥ搭載ラインカード  ５０００−１、５０００−２    ラインカード
【図１】
2015158904.tif 000003
【図２】
2015158904.tif 000004
【図３】
2015158904.tif 000005
【図４】
2015158904.tif 000006
【図５】
2015158904.tif 000007
【図６】
2015158904.tif 000008
【図７】
2015158904.tif 000009
【図８】
2015158904.tif 000010
【図９】
2015158904.tif 000011
【図１０】
2015158904.tif 000012
【図１１】
2015158904.tif 000013
【図１２】
2015158904.tif 000014
【図１３】
2015158904.tif 000015
【図１４】
2015158904.tif 000016
【図１５】
2015158904.tif 000017
【図１６】
2015158904.tif 000018
【図１７】
2015158904.tif 000019
【図１８】
2015158904.tif 000020
【図１９】
2015158904.tif 000021
【図２０】
2015158904.tif 000022
【図２１】
2015158904.tif 000023
【図２２】
2015158904.tif 000024