JP2015158904A - 通信装置、拡張機能の移動方法、及び通信システム - Google Patents

通信装置、拡張機能の移動方法、及び通信システム Download PDF

Info

Publication number
JP2015158904A
JP2015158904A JP2015000036A JP2015000036A JP2015158904A JP 2015158904 A JP2015158904 A JP 2015158904A JP 2015000036 A JP2015000036 A JP 2015000036A JP 2015000036 A JP2015000036 A JP 2015000036A JP 2015158904 A JP2015158904 A JP 2015158904A
Authority
JP
Japan
Prior art keywords
function
execution unit
destination
function execution
process execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015000036A
Other languages
English (en)
Other versions
JP6345604B2 (ja
Inventor
亮 坂内
Ryo Sakauchi
亮 坂内
古橋 亮慈
Ryoji Furuhashi
亮慈 古橋
宏人 大柿
Hiroto Ogaki
宏人 大柿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alaxala Networks Corp
Original Assignee
Alaxala Networks Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alaxala Networks Corp filed Critical Alaxala Networks Corp
Priority to JP2015000036A priority Critical patent/JP6345604B2/ja
Priority to US14/604,795 priority patent/US9858096B2/en
Publication of JP2015158904A publication Critical patent/JP2015158904A/ja
Application granted granted Critical
Publication of JP6345604B2 publication Critical patent/JP6345604B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • H04L41/0897Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers

Abstract

【課題】機能実行カードのCPとDPとを連携して移動することが可能なネットワーク装置を提供する。
【解決手段】物理プロセッサを有する機能実行モジュールに、所定機能を実装する第1処理実行部と第2処理実行部を有する通信装置において、第1処理実行部は機能を実現する制御情報を管理し、第2処理実行部と共有し、第2処理実行部は処理中の一時的データのみを保持する。通信装置は、第1処理実行部を管理メモリと共に移動先の機能実行モジュールに移動し、第2処理実行部の割り当てプログラムを特定可能な情報と物理プロセッサ割り当てに関する情報を移動先の機能実行モジュールに通知する。移動先の機能実行モジュールは、通知情報に基づいて、第2処理実行部を起動させるプログラムファイルをダウンロードし、新たな第2処理実行部を稼働させ、一時的なデータを廃棄することで、擬似的に第2処理実行部を移動させる。
【選択図】図14

Description

ネットワークとの間でパケットを送受信する通信装置に関し、複数の機能実行モジュール間で拡張機能をマイグレーションする通信装置に関する。
近年、クラウドコンピューティングに代表されるネットワークを介したコンピューティング資源の利用の広まり、及びネットワークのマルチメディア利用等によって、ネットワーク上における多様なサービスの提供が求められている。このような状況の中で、ネットワーク装置が計算機又は他のネットワーク装置と協調することによって多様なサービスを提供するための機能がネットワーク装置に搭載されることが一般的になってきている。また、ネットワーク装置を高性能化するために、パケット転送処理に注力したハードウェアがネットワーク装置に搭載されることが一般的である。しかし、このようなハードウェアは多様なサービスを提供するための機能に柔軟に対応することが困難である。
このようなハードウェアを搭載したネットワーク装置に機能を付加する技術として、特開2002−281072号公報(特許文献1)がある。この公報には、「ハードウェアによるルーティング処理も可能である高速なルーティングモジュール32に、拡張機能を実行する機能実行モジュール62を接続して機能拡張モジュール6を構成することによって、機能実行モジュール62によるパケットデータの加工により新たなアドレス情報を持つパケットが生成された場合でも、接続している当該ルーティングモジュール32により、パケットの新たなルーティング先を選び転送するルーティング処理の高速性を維持し、機能実行モジュール62を複数枚接続することでスケーラブルな機能拡張モジュールによる機能拡張を可能にする。」と記載されている(要約参照)。
一方、コンピューティング資源の柔軟な運用のため、仮想マシン技術の利用が広まりつつある。負荷の変動に対応する等の理由により、仮想マシンを利用するシステムにおいて、プロセッサを跨がって仮想マシンを移動するマイグレーション技術として、US2012/0324442(特許文献2)、US2010/0211946(特許文献3)、及び特開2002−215408号公報(特許文献4)がある。
特許文献2には、プロセッサが複数の各仮想マシンのネットワークスイッチング機能とハードウェアネットワークデバイスとをマッピングする処理を実行することが記載されている(要約参照)。
特許文献3には、「この発明は、ネットワーク化の分野に関し、特に、単一OSのネットワーク抽象化と仮想化の方法とシステムに関する。この発明の方法は、この発明の方法は、単一OSで構成されるネットワーク装置に於いて、単一か、あるいは、複数の資源、および、単一OSの外側で運用されるソフトウェアと、更に、単一OSを備える複数のハードウェア資源の問で互換性を保証する抽象化とで構成される、処置の方法であることを特徴とする。実施例をFig.2Aにより説明する。Fig.2Aは、この発明の具体例にしたがう、単一OSの仮想化とハードウェア抽象化アーキテクチヤ200を図示するナロックダイアグラムである。例えば、単一OSの仮想化とハードウェア抽象化アーキテクチヤ200は、ハードウェア資源抽象化か、あるいは単一OSの仮想化を支援するが、Fig.2Aに示されるのは、ハードウェア資源202と、抽象化層204と、OS206と、ソフトウェア分割208と、複数の仮想ネットワークインターフェース制御器ドライバ210a,...,210nと、ソフトウェアスイッチングモジユール220と、物理的ネットワーク駆動器222、および、物理的記憶装置駆動器224である。次に、ハードウェア資源202は、一つ以上の物理的な要素か、あるいはネットワーク装置内のサブシステムに対応するが、このハードウェア資源202は、物理的なネットワークインターフェース制御器を構成することが可能であると共に、かつ、ネットワーク装置内のネットワーク化サブシステムか、あるいは要素に対応する。」と記載されている(要約参照)。
特許文献4には、「各I/Oアダプタおよびパーティションにおいて、I/Oアダプタのパーティションへの割当てを時分割で制御するスケジューリング手段、I/Oアダプタをパーティションに空間分割で割当てる手段、パーティション制御プログラムが上記の割当てを動的に変更する手段を設ける。また、パーティションごとの入出力性能を計測する手段を、パーティションごとの性能に基づいてユーザプログラムのSLAを保持する手段を設ける。」と記載されている(要約参照)。
特開2002−281072号公報 米国特許出願公開第2012/0324442号明細書 米国特許出願公開第2010/0211946号明細書 特開2002−215408号公報
ネットワーク装置に搭載される機能実行カードにおいても、サービスを提供するための機能の柔軟な運用のために、仮想マシン技術を利用することが考えられる。
また、ネットワーク装置において、多機能性の求められる制御系の機能をCP(コントロールプレーン)、単機能で高速性の求められる転送系の機能をDP(データプレーン)として分割して実装し、転送処理の性能を確保する技術がある。ネットワーク装置に搭載される機能実行カードにおいても、同様にCPとDPとを分割して、それぞれ別々の機能として一つの機能実行カードに実装することが考えられる。
機能実行カードにおいて、仮想マシン技術を利用し、かつCPとDPとを分割して実装する場合、CPは仮想マシン上に実装することが可能であるが、DPは転送処理の性能を確保するために当該仮想マシン上に実装することができない。DPはプロセッサの一部のコアを占有して、仮想マシン上で稼働するOSの外部又はホストOS上に実装されることが考えられる。
このように機能実行カードに実装されるCP及びDPにおいて、仮想マシンのマイグレーション技術を利用した場合、CPは仮想マシン上に実装されるので、仮想マシンと共に移動することが可能である。一方、DPは仮想マシン上に実装されないため、仮想マシンのマイグレーション技術を利用して移動できない。
機能実行カードに実装されたCPとDPは、CPが管理する機能の制御に必要な情報を共有し、DPはその情報を参照する事で、宛先検索による転送処理に専従し、連携して所定の機能を実現する。このため、機能実行カードに実装された機能の移動を考えた時、仮想マシンのマイグレーション技術を利用してCPだけが移動した状態では動作できない問題がある。
本発明は、機能実行カードのCPとDPとを連携して移動することが可能なネットワーク装置を提供することを目的とする。
本発明の代表的な一例を示せば、ネットワークに接続され、前記ネットワークとの間でパケットを送受信する通信装置であって、前記ネットワークとの間のパケットの送受信処理を実行する転送制御部と、物理プロセッサを有する機能実行モジュールと、を備え、前記パケットの宛先と当該パケットの出力先との関係が登録された転送テーブルを保持し、前記機能実行モジュールは所定の拡張機能を実装する機能実行部を有し、前記機能実行部は、第1処理を実行する第1処理実行部、及び第2処理を実行する第2処理実行部を有し、前記機能実行部の拡張機能は、前記第1処理実行部と前記第2処理実行部とが連携することによって実装され、前記物理プロセッサの演算資源は、前記第1処理実行部、及び前記第2処理実行部に割り当てられ、前記物理プロセッサのメモリは前記第1処理実行部のプログラムとデータ、及び前記第2処理実行部のプログラムとデータに割り当てられ、前記第1処理実行部は、前記機能実行モジュール上に構築された仮想マシン上で稼働し、前記第2処理実行部は、前記第1処理実行部が稼働する仮想マシンの外部で稼働し、前記通信装置は、前記機能実行モジュールで稼働する第1処理実行部のプログラムとデータを移動先の機能実行モジュールに移動し、前記機能実行モジュールは、前記第2処理実行部に割り当てられたプログラムに関する情報、及び物理プロセッサの割り当てに関する情報を前記移動先の機能実行モジュールに通知し、前記移動先の機能実行モジュールは、前記通知された情報に基づいて、第2処理実行部に割り当てるプログラムを特定し、割り当てに関する情報に基づいて新たな第2処理実行部を前記移動先の機能実行モジュールで稼働させ、
前記第2処理実行部を前記移動先の機能実行モジュールに移動させ、前記第1処理実行部及び前記第2処理実行部の前記移動先の機能実行モジュールへの移動によって、前記機能実行部が前記移動先の機能実行モジュールに移動され、前記機能実行部の前記移動先の機能実行モジュールへの移動に伴って、前記転送テーブルを更新することを特徴とする。
本願において開示される発明のうち代表的なものによって得られる効果を簡潔に説明すれば、下記の通りである。すなわち、機能実行モジュールのCPとDPとを連携して割り当てることが可能なネットワーク装置を提供できる。
上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
実施例1のネットワーク中継システムの説明図である。 実施例1の基本制御部の説明図である。 実施例1の機能実行カードの説明図である。 実施例1のPE搭載ラインカードの説明図である。 実施例1の機能実行部IPアドレス管理テーブルの説明図である。 実施例1の転送エンジン管理テーブルの説明図である。 実施例1のPE搭載ラインカード管理テーブルの説明図である。 実施例1の転送テーブルの説明図である。 実施例1のVM−CP対応テーブルの説明図である。 実施例1のCP−DP対応テーブルの説明図である。 実施例1のPE搭載ラインカード対応管理テーブルの説明図である。 実施例1の機能実行カード情報管理テーブルの説明図である。 実施例1の機能実行部IPアドレステーブルの説明図である。 実施例1のある機能実行カードに構築された仮想マシンを他の機能実行カードに移動する場合のシーケンス図である。 実施例1の対象DP停止処理のフローチャートである。 実施例1のDP起動処理のフローチャートである。 実施例1の転送テーブル更新処理のフローチャートである。 実施例2の移動先転送テーブル更新処理のフローチャートである。 実施例3のマイクロコード移動処理のフローチャートである。 実施例3の移動先マイクロコード移動処理のフローチャートである。 実施例1の機能実行カード内機能実行部のメモリ配置説明図である。 実施例4のシステム構成図を示す。
実施例1について図1〜図17、図21を用いて説明する。本実施例は、機能実行カード(機能実行モジュール)で稼働する機能の移動先が同一ネットワーク装置(通信装置)内の機能実行カードである場合について説明する。
図1は、実施例1のネットワーク中継システムの説明図である。
本ネットワーク中継システムは、ネットワーク装置100−1及び100−2を有する。ネットワーク装置100−1及び100−2はスイッチ20−1を介して接続され、ネットワーク装置100−2は、スイッチ20−2に接続される。スイッチ20−1にはサーバ30−1が接続され、例えば、ネットワーク装置100−1及び100−2はサーバ30−1との間でパケットを送受信する。また、スイッチ20−2にはサーバ30−2が接続され、ネットワーク装置100−2はサーバ30−2との間でパケットを送受信する。また、ネットワーク装置100−1及び100−2は管理用のネットワークを介して管理サーバ10に接続される。
ネットワーク装置100−1及び100−2について、ネットワーク装置100−1を例に説明する。
ネットワーク装置100−1は、基本制御部1000−1、転送エンジン2000−1、機能実行カード3000−1及び3000−2、PE搭載ラインカード4000−1、並びにラインカード5000−1を有する。なお、本実施例のネットワーク装置100−1はPE搭載ラインカード4000−1を有さなくてもよく、PE搭載ラインカード4000−1は実施例3のネットワーク装置100−1に必須の構成である。
基本制御部1000−1は、転送エンジン2000−1及びPE搭載ラインカード4000−1を制御する。基本制御部1000−1は図2で詳細を説明する。転送エンジン2000−1は、転送テーブル2100−1を参照し、ネットワーク装置100−1が受信したパケットの出力先となるポートを決定し、受信したパケットを当該ポートから出力する。転送テーブル2100−1は、パケットの宛先のIPアドレスと、当該パケットのネクストホップと、当該パケットを出力するポートとの関連付けを保持し、図8で詳細を説明する。
機能実行カード3000−1及び3000−2には拡張機能を実行する機能実行部が実装可能である。図1では、機能実行カード3000−1に機能実行部が実装され、機能実行カード3000−2に機能実行部が実装されていない状態を示す。拡張機能のうち制御系の機能がCP(コントロールプレーン)3132−1に実装され、転送系の機能がDP(データプレーン)3140−1に実装される。
CP3132−1及びDP3140−1が連携することによって拡張機能Aが実装される。例えば、サーバと連携して拡張機能を提供する場合、データ転送処理に必要なリソース設定のためのサーバとの制御通信をCP3132−1が実施し、サーバからの指示により、CP3132−1がメモリ上に保持するデータ3132−12を設定し、その設定したメモリ情報をDP3140−1と共有する事で、その情報に従った高速なデータ転送処理をDP3140−1が実施する。DP3140−1は転送中のデータを一時的に保持する。つまり、CP3132−1の処理の結果や処理の状況に応じて、DP3140−1の処理が行われる。なお、機能実行カード3000−1には、機能実行部Bにより実現される拡張機能Bも実装される(図3参照)。なお、他の機能実行カード3000−2及び3000−3には、機能実行部の拡張機能は実装されない。また、拡張機能は、OSIで規定されるレイヤ4以上のプロトコルで規定される処理であってもよい。拡張機能は、IP電話のセッション制御を行うアプリケーションや、パケットのデータを検査するアプリケーションであってもよい。また、拡張機能は、帯域を有効利用するための帯域制御や通信の最適化制御、高速化転送制御を行うアプリケーションであってもよい。
CP3132−1は、機能実行カード3000−1が有するメモリ3100−1上に構築された仮想マシン(VM)3130−1で動作するOS3131−1によって提供される。また、DP3140−1は、当該仮想マシン3130−1の外部で稼働する。機能実行カード3000−1については、図3で詳細を説明する。メモリ3100-1上での機能実行部の構成については、図21で詳細を説明する。
PE搭載ラインカード4000−1は、ネットワーク装置100−1をスイッチ20に接続するポートを有し、外部ネットワークとのインタフェースである。プログラマブルエンジン(PE)4200−1(図4参照)に記憶されたマイクロコード4210−1(図4参照)に対応する処理を実行する。この処理は、例えば、受信したパケットを当該パケットに対応する機能実行カードに振り分ける処理である。なお、マイクロコード4210−1に対応する処理はこれに限定されず、PE4200−1に他のマイクロコードが記憶されれば、他の処理が実行される。PE搭載ラインカード4000−1については、図4で詳細を説明する。
ラインカード5000−1は、管理サーバ10に接続されるポート及びスイッチ20−1に接続されるポートを有し、外部ネットワークとのインタフェースである。
ネットワーク装置100−2は、基本制御部1000−2、転送エンジン2000−2、機能実行カード3000−3、PE搭載ラインカード4000−2、並びにラインカード5000−2及び5000−3を有する。ラインカード5000−3は、スイッチ20−2に接続されるポートを有し、外部ネットワークとのインタフェースである。他の構成は、ネットワーク装置100−1の基本制御部1000−1、転送エンジン2000−1、機能実行カード3000−2、PE搭載ラインカード4000−1、及びラインカード5000−1と同じであるので、説明を省略する。
なお、ネットワーク装置100−1及び100−2は、図示しない他のスイッチに接続され、図示しない他のサーバ又は端末と接続されてもよい。
また、機能実行カード3000−1〜3000−3と記載しているが、カードに限定されず、例えば、機能実行ボード等であってもよい。特許請求の範囲では、機能実行カード及び機能実行ボード等を含む概念を機能実行モジュールとして記載する。また、ラインカード5000−1〜5000−3も同様に、カードに限定されず、ラインボード等であってもよく、これらを含む概念をラインモジュールとする。また、PE搭載ラインカード4000−1及び4000−2も同様に、カードに限定されず、PE搭載ラインボード等であってもよく、これらを含む概念をPE搭載ラインモジュールとする。
次に、管理サーバ10について説明する。
管理サーバ10は、CPU11、メモリ12、及び二次記憶装置14を有する計算機である。
メモリ12には、マイグレーション指示部13を実現するためのプログラムが記憶され、CPU11は、当該プログラムを実行することによってマイグレーション指示部13を実装する。マイグレーション指示部13は、移動対象となる拡張機能の識別情報(拡張機能ID)、及び移動先となる機能実行カードの識別情報(機能実行カードID)を含むマイグレーション指示をネットワーク装置100−1又は100−2に送信する。
図2は、実施例1の基本制御部1000−1の説明図である。
基本制御部1000−1は、CPU1200−1、メモリ1100−1及び二次記憶装置1300−1を有する。メモリ1100−1は、転送エンジン制御部1101−1に対応するプログラム及びPE搭載ラインカード制御部1102−1に対応するプログラム、並びに、拡張機能IPアドレス管理テーブル1103−1、転送エンジン管理テーブル1104−1、及びPE搭載ラインカード管理テーブル1105−1を記憶する。なお、実施例1及び2では、PE搭載ラインカード制御部1102−1及びPE搭載ラインカード管理テーブル1105−1は必須の構成ではない。
CPU1200−1は、メモリ1100−1に記憶された転送エンジン制御部1101−1に対応するプログラムを実行することによって転送エンジン制御部1101−1を実装し、メモリ1100−1に記憶されたPE搭載ラインカード制御部1102−1に対応するプログラムを実行することによってPE搭載ラインカード制御部1102−1を実装する。
二次記憶装置1300−1は、機能実行カードに実装される拡張機能のプログラムファイル1301−1、及び1302−1を記憶する。これらのプログラムファイル1301は、移動先の機能実行カード3000−2で起動されるDPを起動するために用いられる。
転送エンジン制御部1101−1は転送エンジン2000−1を制御する。例えば、転送エンジン制御部1101−1は転送テーブル2100−1を更新する。PE搭載ラインカード制御部1102−1はPE搭載ラインカード4000−1を制御する。
拡張機能IPアドレス管理テーブル1103−1には、基本制御部1000−1を有するネットワーク装置100−1が有する機能実行カード3000−1及び3000−2に実装される拡張機能の識別情報と当該拡張機能に設定されたIPアドレスとの関連付けが登録される。拡張機能IPアドレス管理テーブル1103−1は、図5で詳細に説明する。
転送エンジン管理テーブル1104−1には、機能実行カード3000−1〜3000−3と、機能実行カード3000−1〜3000−3のIPアドレスと、出力先のポートの識別情報との関連付けが登録される。転送エンジン管理テーブル1104−1は、図6で詳細に説明する。
PE搭載ラインカード管理テーブル1105−1には、PE搭載ラインカード4000−1の識別情報と当該PE搭載ラインカード4000−1のマイクロコード4210−1の機能の種別の識別情報との関連付けが登録される。PE搭載ラインカード管理テーブル1105−1は、図7で詳細を説明する。
ネットワーク装置100−2が有する基本制御部1000−2も図2と同じ構成であるので、説明を省略する。
図3は、実施例1の機能実行カード3000−1の説明図である。
機能実行カード3000−1は、物理プロセッサ3200−1及びメモリ3100−1を有する。物理プロセッサ3200−1は複数のプロセッサコアを有し、図3では、物理プロセッサ3200−1は、32個のプロセッサコア3201−1〜3232−1を有する。
メモリ3100−1は、OS3101−1、ハイパーバイザー3102−1、コア割付部3103−1、及びマイグレーション制御部3104−1に対応するプログラムを記憶する。物理プロセッサ3200−1がこれらのプログラムを実行することによって、OS3101−1、ハイパーバイザー3102−1、コア割付部3103−1、及びマイグレーション制御部3104−1を実装する。
OS3101−1は、機能実行カード3000−1の基本的な制御を行う。ハイパーバイザー3102−1は、メモリ3100−1に実装される仮想マシン(VM)3130−1及び3120−1を制御する。
コア割付部3103−1は、DPへのプロセッサコアの割り当てを制御する。マイグレーション制御部3104−1は、機能実行カード3000−1に実装される拡張機能のマイグレーション(移動)を制御する。
機能実行カード3000−1上にはVM3120−1及び3130−1が構築され、VM3120−1で動作するOS3131−1はCP3132−1を提供し、VM3120−1で動作するOS3121−1はCP3122−1を提供する。また、機能実行カード3000−1上では、パケットを中継するDP3140−1及び3150−1が動作する。CP3132−1とDP3140−1とで拡張機能Aを実現し、CP3122−1とDP3150−1とで拡張機能Bを実現する。
また、メモリ3100−1は、主信号I/F IPアドレス3105−1、拡張機能IPアドレステーブル3106−1、VM−CP対応テーブル3107−1、CP−DP対応テーブル3108−1、PE搭載ラインカード対応管理テーブル3109−1、及び機能実行カード情報管理テーブル3110−1を記憶する。
主信号I/F IPアドレス3105−1は、機能実行カード3000−1が接続された転送エンジン2000−1のポートに設定されたIPアドレス、すなわち、機能実行カード3000−1のIPアドレスである。拡張機能IPアドレステーブル3106−1には、機能実行カード3000−1に実装される拡張機能の識別情報と当該拡張機能に設定されたIPアドレスとの関連付けが登録される。拡張機能IPアドレステーブル3106−1は、図13で詳細を説明する。
VM−CP対応テーブル3107−1には、機能実行カード3000−1上に構築されるVMの識別情報と当該VM上で動作するCPの識別情報との関連付け、及びCPの物理プロセッサ3200−1の割り当てに関する情報が登録される。VM−CP対応テーブル3107−1は、図9で詳細に説明する。
CP−DP対応テーブル3108−1には、一つの拡張機能を実現する機能実行部であるCPの識別情報とDPの識別情報との関連付け、及びDPの物理プロセッサ3200−1の割り当てに関する情報が登録される。CP−DP対応テーブル3108−1は、図10で詳細を説明する。
PE搭載ラインカード対応管理テーブル3109−1には、PE搭載ラインカード4000−1のマイクロコードの機能がどの拡張機能に対応するかの関連付けが登録される。PE搭載ラインカード対応管理テーブル3109−1は図11で詳細を説明する。
機能実行カード情報管理テーブル3110−1には、全ての機能実行カード3000−1〜3000−3の識別情報と、これらの機能実行カード3000−1〜3000−3のIPアドレスとの関連付けが登録される。機能実行カード情報管理テーブル3110−1は、図12で詳細に説明する。
なお、機能実行カード3000−2及び機能実行カード3000−3はVMが構築されておらず、拡張機能が動作していない点で機能実行カード3000−1と異なる。
図4は、実施例1のPE搭載ラインカード4000−1の説明図である。
PE搭載ラインカード4000−1は、メモリ4100−1及びPE4200−1を有する。PE4200−1は、マイクロコード4210−1の処理を実行する。マイクロコード4210−1は、PE搭載ラインカード4000−1のポートが受信したパケットを機能実行カード3000−1〜3000−3に転送する機能を有する。メモリ4100−1は、拡張機能IPアドレステーブル4102−1及び機能種別管理テーブル4103を記憶する。拡張機能IPアドレステーブル4102−1には、ネットワーク装置100−1で動作する拡張機能の識別情報と当該拡張機能のIPアドレスとの関連付けが登録される。機能種別管理テーブル4103には、PE4200−1で実行されるマイクロコード4210−1の機能の種別の識別情報が登録される。
なお、PE搭載ラインカード4000−2は、PE搭載ラインカード4000−1と同じ構成であるが、PEにはマイクロコードが記憶されていない。
図5は、実施例1の拡張機能IPアドレス管理テーブル1103−1の説明図である。
拡張機能IPアドレス管理テーブル1103−1は、拡張機能ID11031及びIPアドレス11032を含む。拡張機能ID11031には、基本制御部1000−1を有するネットワーク装置100−1が有する機能実行カード3000−1及び3000−2に実装される拡張機能の識別情報(拡張機能ID)が登録される。IPアドレス11032には、拡張機能に設定されたIPアドレスが登録される。
すなわち、拡張機能IPアドレス管理テーブル1103−1には、拡張機能IDと拡張機能のIPアドレスとの関連付けが登録される。
図6は、実施例1の転送エンジン管理テーブル1104−1の説明図である。
転送エンジン管理テーブル1104−1は、機能実行カードID11041、主信号I/F IPアドレス11042、及び出力先ポート番号11043を含む。
機能実行カードID11041には、全てのネットワーク装置100−1及び100−2の機能実行カード3000−1〜3000−3の識別情報(機能実行カードID)が登録される。
主信号I/F IPアドレス11042には、転送エンジン2000−1及び200−2のポートのうち機能実行カード3000−1〜3000−3に接続されたポートに設定されたIPアドレス(機能実行カードのIPアドレス)が登録される。
出力先ポート番号11043には、転送エンジン2000−1及び200−2のポートのうち機能実行カード3000−1〜3000−3に接続されたポートの識別情報(ポート番号)が登録される。
すなわち、転送エンジン管理テーブル1104−1には、機能実行カードのIPアドレスと当該機能実行カードにパケットを出力するためのポート番号との関連付けが登録される。
図7は、実施例1のPE搭載ラインカード管理テーブル1105−1の説明図である。
PE搭載ラインカード管理テーブル1105−1は、PE搭載ラインカードID11051及び機能種別ID11052を含む。
PE搭載ラインカードID11051には、ネットワーク装置100−1が有するPE搭載ラインカードの識別情報(PE搭載ラインカードID)が登録される。機能種別ID11052には、PE搭載ラインカードのマイクロコードの機能の種別の識別情報(機能種別ID)が登録される。
すなわち、PE搭載ラインカード管理テーブル1105−1には、PE搭載ラインカードIDと機能種別IDとの関連付けが登録される。
図8は、実施例1の転送テーブル2100−1の説明図である。
転送テーブル2100−1は、宛先IPアドレス21001、ネクストホップ21002、及び出力先ポート番号21003が登録される。
宛先IPアドレス21001には、パケットの宛先のIPアドレス(宛先IPアドレス)が登録される。ネクストホップ21002には、ネクストホップのIPアドレスが登録される。出力先ポート番号21003には、パケットを出力するポート番号が登録される。
すなわち、転送テーブル2100−1には、パケットの宛先と当該パケットの出力先とが登録される。
図9は、実施例1のVM−CP対応テーブル3107−1の説明図である。
VM−CP対応テーブル3107−1は、VM−ID31071、CP−ID31072、及びCOREマスク31073を含む。
VM−ID31071には、機能実行カード上に構築される仮想マシンの識別情報(VM−ID)が登録される。CP−ID31072には、仮想マシン上で動作するOSによって提供されるCPの識別情報(CP−ID)が登録される。COREマスク31073には、物理プロセッサ3200−1のコアのうちCPに割り当てられるコアと特定するための情報である。COREマスク31073に登録された8桁の16進数によって、物理プロセッサ3200−1が有する32個のプロセッサコア3201−1〜3232−1のうちCPに割り当てられるコアを特定できる。例えば、CP−ID「1」のCOREマスク31073には「0x0000000f」が登録されるので、CP−ID「1」のCPには物理プロセッサ3200−1の四つのコア3229−1(図3不図示)〜3232−1が割り当てられる。なお、COREマスク31073は、CPの物理プロセッサ3200−1の割り当てに関する情報であり、CPに割り当てられたコア数を含めば他の形式であってもよい。
すなわち、VM−CP対応テーブル3107−1には、機能実行カード3000−1上に構築されるVMの識別情報と当該VM上で動作するCPの識別情報との関連付け、及びCPの物理プロセッサ3200−1の割り当てに関する情報が登録される。
なお、機能実行カード3000−2上には仮想マシンが構築されないので、機能実行カード3000−2のVM−CP対応テーブルには何も登録されない。
図10は、実施例1のCP−DP対応テーブル3108−1の説明図である。
CP−DP対応テーブル3108−1は、CP−ID31081、DP−ID31082、及びCOREマスク31083を含む。
CP−ID31081には、機能実行カード3000−1上で動作するCPの識別情報(CP−ID)が登録される。DP−ID31082には、CPと連携して拡張機能を実装するDPの識別情報(DP−ID)が登録される。COREマスク31083には、物理プロセッサ3200−1のコアのうちDPに割り当てられるコアを特定するための情報である。COREマスク31083の詳細は、COREマスク31073と同じであるので、説明を省略する。
すなわち、CP−DP対応テーブル3108−1には、一つの拡張機能を実現するCPの識別情報とDPの識別情報との関連付け、及びDPの物理プロセッサ3200−1の割り当てに関する情報が登録される。
なお、機能実行カード3000−2上ではDPは動作しないので、機能実行カード3000−2のCP−DP対応テーブルには何も登録されない。
図11は、実施例1のPE搭載ラインカード対応管理テーブル3109−1の説明図である。
PE搭載ラインカードID31091にはPE搭載ラインカードIDが登録され、拡張機能ID31092には、機能実行カード3000−1に実装される拡張機能の識別情報(拡張機能ID)が登録され、機能種別ID31093には、拡張機能に対応するマイクロコードの機能の種別の識別情報(機能種別ID)が登録される。
すなわち、PE搭載ラインカード対応管理テーブル3109−1には、PE搭載ラインカード4000−1のマイクロコードの機能がどの拡張機能に対応するかの関連付けが登録される。
図12は、実施例1の機能実行カード情報管理テーブル3110−1の説明図である。
機能実行カード情報管理テーブル3110−1は、機能実行カードID31101、及びIPアドレス31102を含む。
機能実行カードID31101には、ネットワーク中継システムの全ての機能実行カードの識別情報(機能実行カードID)が登録される。IPアドレス31102には、機能実行カードのIPアドレスが登録される。
すなわち、全ての機能実行カード3000−1〜3000−3の識別情報と、これらの機能実行カード3000−1〜3000−3のIPアドレスとの関連付けが登録される。
図13は、実施例1の拡張機能IPアドレステーブル3106−1の説明図である。
拡張機能IPアドレステーブル3106−1は、拡張機能ID31061及びIPアドレス31062を含む。
拡張機能ID31061には、機能実行カード3000−1に実装される拡張機能の識別情報(拡張機能ID)が登録され、IPアドレス31062には拡張機能のIPアドレスが登録される。
すなわち、拡張機能IPアドレステーブル3106−1には、機能実行カード3000−1に実装される拡張機能の識別情報と当該拡張機能に設定されたIPアドレスとの関連付けが登録される。
図14は、実施例1のある機能実行カードに構築された仮想マシンを他の機能実行カードに移動する場合のシーケンス図である。
ネットワーク装置100−1は、機能実行カード3000−1及び3000−2を有する。図3で説明したように、機能実行カード3000−1上にはVM3120−1及び3130−1が構築され、CP3132−1及び31210−1並びにDP3140−1及び3150−1が動作する。CP3132−1及びDP3140−1によって拡張機能Aが実装され、CP3122−1及びDP3150−1によって拡張機能Bが実装される。
また、機能実行カード3000−2上にはVMが構築されず、CP及びDPは動作していない。
本実施例では、機能実行カード3000−1に実装された拡張機能Aを機能実行カード3000−2に移動する動作について説明する。
まず、管理サーバ10のマイグレーション指示部13は、移動対象の拡張機能ID「A」及び移動先の機能実行カードID「2」を含むマイグレーション指示をネットワーク装置100−1に送信する(S11)。マイグレーション指示部13は、管理者による移動対象の拡張機能ID及び移動先の機能実行カードIDの入力を受け付けた場合にマイグレーション指示を送信してもよいし、機能実行カードの負荷等を収集し、収集した負荷等に基づいて移動対象の拡張機能ID及び移動先の機能実行カードIDを特定し、マイグレーション指示を送信してもよい。
ネットワーク装置100−1がマイグレーション指示を受信し、受信したマイグレーション指示が機能実行カード3000−1に入力されると、当該機能実行カード3000−1のハイパーバイザー3102−1は、VMマイグレーション処理を実行し(S12)、VMマイグレーション通知をマイグレーション制御部3104−1に出力する(S13)。具体的には、VMマイグレーション処理では、ハイパーバイザー3102−1は、入力されたマイグレーション指示に基づいて、拡張機能AのCP3132−1を提供するOS3131−1が稼働するVM3130−1を移動先の機能実行カード3000−2に移動する。また、VMマイグレーション通知は、移動対象となる拡張機能ID、移動させた仮想マシンの識別情報(VM−ID)及び移動先の機能実行カードIDを含む。
マイグレーション制御部3104−1は、VMマイグレーション通知が入力された場合、対象DP停止処理を実行し(S14)、DPマイグレーション通知を移動先の機能実行カード3000−2に出力し(S15)、拡張機能マイグレーション通知を転送エンジン制御部1101−1に出力する(S17)。
対象DP停止処理では、マイグレーション制御部3104−1は、入力されたVMマイグレーション通知に含まれるVM−IDに基づいてDP−IDを特定し、当該DP−IDによって識別されるDPの機能を停止する。また、マイグレーション制御部3104−1は、特定したDP−ID及びDPのCOREマスクを含むDP情報を取得し、DPマイグレーション通知を出力する。また、マイグレーション制御部3104−1は、移動対象となる拡張機能ID及び移動先の機能実行カードIDを含む拡張機能マイグレーション通知を転送エンジン制御部1101−1に出力する。なお、対象DP停止処理は、図15で詳細に説明する。
移動先の機能実行カード3000−2にDPマイグレーション指示が入力された場合、機能実行カード3000−2のマイグレーション制御部3104−2は、DPマイグレーション指示に基づいてDPを起動させるDP起動処理を実行する(S16)。DP起動処理は、図16で詳細に説明する。
転送エンジン制御部1101−1に拡張機能マイグレーション通知が入力された場合、転送エンジン制御部1101−1は、移動対象の拡張機能宛てのパケットを移動先の機能実行カード3000−2に出力されるように、転送テーブル2100−1を更新する転送テーブル更新処理を実行する(S17)。なお、転送テーブル更新処理は、図17で詳細に説明する。
図15は、実施例1の対象DP停止処理のフローチャートである。
マイグレーション制御部3104−1は、VMマイグレーション通知が入力されたか否かを判定する(S501)。VMマイグレーション通知には、移動対象となる拡張機能ID「A」、移動させたVM−ID「1」及び移動先の機能実行カードID「2」が含まれるものとする。
S501でVMマイグレーション通知が入力されていないと判定されると、マイグレーション制御部3104−1は、S501に戻り、再度、VMマイグレーション通知が入力されたか否かを判定する。
S501でVMマイグレーション通知が入力されたと判定された場合、マイグレーション制御部3104−1は、VM−IDとCP−IDとの関連付けを参照し、入力されたVMマイグレーション通知に含まれる移動させたVM−IDに対応するCP−IDを特定し、また、当該CP−IDに基づいてCPの物理プロセッサ3200−1の割り当てに関する情報を特定する(S502)。特定したCP−ID及びCPの物理プロセッサ3200−1の割り当てに関する情報をCP情報という。
具体的には、マイグレーション制御部3104−1は、VM−CP対応テーブル3107−1のVM−ID31071に、入力されたVMマイグレーション通知に含まれるVM−ID「1」が登録されたレコードのCP−ID「A」及びCOREマスク「0x0000000f」を特定する。なお、ここで、特定されたCP−ID「A」は、ハイパーバイザーによるVMマイグレーションによって移動先の機能実行カード3000−2に移動したCP3132−1の識別情報である。
次に、マイグレーション制御部3104−1は、CP−IDとDP−IDとの関連付けを参照し、移動先の機能実行カード3000−2に移動したCP3132−1のCP−ID「A」に対応するDP−IDを特定し、また、当該DP−IDに基づいてDPの物理プロセッサ3200−1の割り当てに関する情報を特定する(S503)。特定したDP−ID及びDPの物理プロセッサ3200−1の割り当てに関する情報をDP情報という。ここでは、移動したCP3132−1と同じ拡張機能Aの機能を実装するためにCP3132−1と連携するDPのDP−IDが特定され、当該DPの物理プロセッサ3200−1の割り当てに関する情報が特定される。
具体的には、マイグレーション制御部3104−1は、CP−DP対応テーブル3108−1のCP−ID31081にS502で特定したCP−ID「A」が登録されたレコードのDP−ID「A」及びCOREマスク「0x0000ff00」を特定する。
次に、マイグレーション制御部3104−1は、機能実行カードIDと機能実行カードのIPアドレスとの関連付けを参照し、移動先の機能実行カード3000−2のIPアドレスを特定する(S504)。
具体的には、マイグレーション制御部3104−1は、機能実行カード情報管理テーブル3110−1の機能実行カードID31101に、入力されたVMマイグレーション通知に含まれる移動先の機能実行カードID「2」が登録されたレコードのIPアドレス「192.168.102.2」を特定する。
次に、マイグレーション制御部3104−1は、S503で特定したDP情報を含むDPマイグレーション通知を、S504で特定した移動先の機能実行カード3000−2のIPアドレス宛てに出力する(S505)。
次に、マイグレーション制御部3104−1は、入力されたVMマイグレーション通知に含まれる移動先の機能実行カードID「2」及び移動対象の拡張機能ID「A」を含む機能実行部マイグレーション通知を転送エンジン制御部1101−1に出力する(S506)。
次に、マイグレーション制御部3104−1は、移動対象の拡張機能IDとPE搭載ラインカードIDとの関連付けを参照し、移動対象の拡張機能と連携するPE搭載ラインカードが存在するか否かを判定する(S507)。
S507で、移動対象の拡張機能と連携するPE搭載ラインカードが存在すると判定された場合、マイグレーション制御部3104−1は、S508を実行し、S509に進む。一方、S507で、移動対象の拡張機能と連携するPE搭載ラインカードが存在しないと判定された場合、S509に進む。本実施例では、PE搭載ラインカードは考慮しないため、S507では、移動対象の拡張機能と連携するPE搭載ラインカードが存在しないと判定され、S508を実行せず、S509に進む。S507及びS508は、実施例3で詳細に説明する。
S509では、マイグレーション制御部3104−1は、S503で特定されたDP−ID「A」のDP3140−1の機能を停止し(S509)、処理を終了する。なお、S509の実行前又は後に、マイグレーション制御部3104−1は、CP−DP対応テーブル3108−1のDP−ID31082にDP−ID「A」が登録されたレコードを削除する。
図16は、実施例1のDP起動処理のフローチャートである。
まず、移動先の機能実行カード3000−2のマイグレーション制御部3104−2は、DPマイグレーション通知が入力されたか否か判定する(S601)。なお、DPマイグレーション通知は、DP情報(DP−ID「A」及びCOREマスク「0x0000ff00」)を含む。
S601でDPマイグレーション通知が入力されていないと判定されると、マイグレーション制御部3104−2は、S601に戻り、再度、DPマイグレーション通知が入力されたか否かを判定する。
S601でDPマイグレーション通知が入力されたと判定された場合、マイグレーション制御部3104−2は、入力されたDPマイグレーション通知に含まれるDP情報に基づいて、DPを起動する(S602)。
具体的には、マイグレーション制御部3104−2は、DPマイグレーション通知に含まれるDP−ID「A」に対応するプログラム1301−1を基本制御部1000−1から機能実行カード3000−2のメモリにダウンロードする。また、マイグレーション制御部3104−2は、DPマイグレーション通知に含まれるCOREマスク「0x0000ff00」を機能実行カード3000−2のコア割付部に渡す。このコア割付部は、COREマスク「0x0000ff00」に基づいて、機能実行カード3000−2の物理プロセッサが有するプロセッサコアをDPに割り当てる。これによって、移動先の機能実行カード3000−2においても、DPが機能実行カード3000−1で稼働していた場合と同じくDPに物理プロセッサを割り当てることができる。換言すれば、移動元の機能実行カード3000−1でDPに割り当てられていたプロセッサの数を移動先の機能実行カード3000−2でもDPに割り当てることができ、DPの移動前後で当該DPの処理能力が増減することを防止できる。なお、本実施例のコア割付部は、機能実行カードが有するハイパーバイザーから独立して動作するが、ハイパーバイザーがコア割付部の機能を有していてもよい。
図21は機能拡張カード3000−1に搭載されたメモリ3100−1内における、拡張機能AのCP3132−1とDP3140−1、及び拡張機能BのCP3122−1とDP3150−1のメモリ構造を示している。移動対象である拡張機能AのCP3132−1はプログラム3132−11とサーバとの制御通信により設定したデータ3132−12から構成される。CP3132−1とDP3140−1は、メモリ3100−1内のデータ3132−12を共有し、拡張機能Aを行う。VMマイグレーション通知の処理でハイパーバイザー3102−1にて移動されたCPは、移動前の機能実行カード3000−1で動作していたのと全く同じプログラム3132−11とデータ3132−12から構成され動作する事が可能である。
一方、拡張機能AのDP3140−1は、CPと同様にプログラム3140−11とデータ3140−12から構成されており、データ3140−12には、現在転送中のデータが一時的に格納されている。DPマイグレーション通知の処理で移動先の機能実行カード3000−2で起動されるDPは、基本制御部1000−1に格納された対応する拡張機能Aのプログラムファイル1301−1から起動しダウンロードされる。従って本実施例のマイグレーションにより、CP及びDPを含む拡張機能の処理主体が変更される。
また、移動前の機能実行カード3000−1で動作していたデータ3140−12は、プログラムファイル1301−1のダウンロードに応じて移動されてもよい。また、データ3140−12には現在転送中のデータが一時的に保存されている為、拡張機能の処理部を移動する場合に転送処理を行っていたパケットについてはロストを許容すれば、拡張機能Aの動作に必要なデータはCP3132−1が持つデータ3132−12にすべて管理されているので、データ3140−12は用いずに以降の転送処理を移動先によって引き継がれてもよい。また、メモリ3100に転送処理中のパケットが保持されていない場合を検知して、拡張機能に関するCPとDPの移動を行ってもよい。
これによって、機能実行カード3000−2上でCP−ID「A」のCP及びDP−ID「A」のDPが動作し、機能実行カード3000−2に拡張機能Aが実装される。
次に、マイグレーション制御部3104−2は、新たに動作するCPのCP−IDとDPのDP−IDとの関連付け、及びDPの物理プロセッサの割り当てに関する情報によって、機能実行カード3000−2のCP−DP対応テーブルを更新し(S603)、処理を終了する。
具体的には、マイグレーション制御部3104−2は、CP−DP対応テーブルに新たなレコードを追加し、CP−ID31081にCP−ID「A」を登録し、DP−ID31082にDP−ID「A」を登録し、COREマスク31083に「COREマスク「0x0000ff00」を登録する。
図17は、実施例1の転送テーブル更新処理のフローチャートである。
まず、転送エンジン制御部1101−1は、拡張機能マイグレーション通知が入力されたか否か判定する(S101)。なお、拡張機能マイグレーション通知は、移動先の機能実行カードID「2」及び移動対象の拡張機能ID「A」を含む。
S101で拡張機能マイグレーション通知が入力されていないと判定されると、転送エンジン制御部1101−1は、S101に戻り、再度、拡張機能マイグレーション通知が入力されたか否かを判定する。
S101で拡張機能マイグレーション通知が入力されたと判定された場合、転送エンジン制御部1101−1は、機能実行カードIDと、機能実行カードのIPアドレスと、出力先のポート番号との関連付けを参照し、拡張機能マイグレーション通知に含まれる移動先の機能実行カードIDの機能実行カードのIPアドレス及び出力先のポート番号を特定する(S102)。
具体的には、転送エンジン制御部1101−1は、転送エンジン管理テーブル1104−1の機能実行カードID11041に移動先の機能実行カードID「2」が登録されたレコードの主信号I/F IPアドレス「192.168.102.2」及び出力先ポート番号「102」を特定する。
次に、転送エンジン制御部1101−1は、拡張機能IDと拡張機能のIPアドレスとの関連付けを参照し、入力された拡張機能マイグレーション通知に含まれる移動対象の拡張機能IDによって識別される拡張機能のIPアドレスを特定する(S103)。
具体的には、転送エンジン制御部1101−1は、拡張機能IPアドレス管理テーブル1103−1の拡張機能ID11031に移動対象の拡張機能ID「A」が登録されたレコードのIPアドレス「10.1.1.1」を特定する。
次に、転送エンジン制御部1101−1は、移動対象の拡張機能のIPアドレス宛てのパケットの出力先が移動先の機能実行カード3000−2となるように転送テーブル2100−1を更新する(S104)。
具体的には、転送エンジン制御部1101−1は、転送テーブル2100−1の宛先IPアドレス21001に、S103で特定した移動対象の拡張機能のIPアドレス「10.1.1.1」が登録されたレコードのネクストホップ21002に、S102で特定した主信号I/F IPアドレス「192.168.102.2」を登録し、当該レコードの出力先ポート番号21003に、S102で特定した出力先ポート番号「102」を登録する。これによって、ネットワーク装置100−1は、移動対象となる拡張機能宛てのパケットを移動先の機能実行カード3000−2に転送できる。
次に、転送エンジン制御部1101−1は、他のネットワーク装置が移動先の機能実行カードを有するか否かを判定する(S105)。基本制御部1000−1及び1000−2は、自ネットワーク装置が有する機能実行カードIDを管理する図示しないテーブルを有している。S105では、転送エンジン制御部1101−1は、入力された拡張機能マイグレーション通知に含まれる移動先の機能実行カードIDが当該テーブルに登録されているか否かを判定することによって、他のネットワーク装置が移動先の機能実行カードを有するか否かを判定する。
S105で他のネットワーク装置が移動先の機能実行カードを有すると判定された場合、転送エンジン制御部1101−1はS106を実行し、処理を終了する。S105で他のネットワーク装置が移動先の機能実行カードを有さないと判定された場合、転送エンジン制御部1101−1は、処理を終了する。なお、本実施例では、移動先の機能実行カードは、移動対象の機能実行カードを有するネットワーク装置が有するので、S106が実行されず、処理を終了する。S106は実施例2で詳細を説明する。
以上によって、ネットワーク装置100−1内において、機能実行カード3000−1で動作していた同じ拡張機能を実装するCP及びDPを、他の機能実行カード3000−2に移動することができる。
実施例2について図18を用いて説明する。
本実施例では、ネットワーク装置を跨がった拡張機能の移動について説明する。具体的には、ネットワーク装置100−1の機能実行カード3000−1からネットワーク装置100−2の機能実行カード3000−3への移動について説明する。
本実施例では、実施例1と異なる処理のみを説明する。
まず、図14を用いて本実施例の概略を説明する。
本実施例では、実施例1と異なり、マイグレーション指示は、移動対象の拡張機能ID「A」及び移動先の機能実行カードID「3」を含むものとする。すなわち、当該マイグレーション指示は、ネットワーク装置100−1の機能実行カード3000−1に実装される拡張機能Aを他のネットワーク装置100−2の機能実行カード3000−3に移動させる指示である。
S15で、DPマイグレーション通知は機能実行カード3000−3に送信され、S16で、機能実行カード3000−3のマイグレーション制御部がDP起動処理(図16参照)を実行する。
また、S18で、転送エンジン制御部1101−1は、転送テーブル更新処理(図17参照)を実行する。ここで、移動先の機能実行カード3000−3はネットワーク装置100−1以外のネットワーク装置100−2が有するので、転送エンジン制御部1101−1は、機能実行カードマイグレーション通知を移動先のネットワーク装置100−2に送信する。機能実行カードマイグレーション通知は、移動先の機能実行カードID、移動対象の拡張機能ID、及び移動対象の拡張機能のIPアドレスを含む。
ネットワーク装置100−2が機能実行カードマイグレーション通知を受信した場合、基本制御部1000−2の転送エンジン制御部は、移動先転送テーブル更新処理を実行する。移動先テーブル更新処理は、図18で詳細に説明する。
本実施例の転送テーブル更新処理について図17を用いて説明する。
S105では、他のネットワーク装置が移動先の機能実行カードを有すると判定され、S106に進む。
S106では、転送エンジン制御部1101−1は、移動先の機能実行カードID「3」、移動対象の拡張機能ID「A」、及びS103で特定した移動対象の拡張機能のIPアドレス「10.1.1.1」を含む機能実行カードマイグレーション通知を、移動先のネットワーク装置100−2の基本制御部1000−2の転送エンジン制御部に送信し(S106)、処理を終了する。
次に、図18を用いて移動先転送テーブル更新処理について説明する。図18は、実施例2の移動先転送テーブル更新処理のフローチャートである。
まず、基本制御部1000−2の転送エンジン制御部は、機能実行カードマイグレーション通知が入力されたか否か判定する(S201)。なお、機能実行カードマイグレーション通知は、移動先の機能実行カードID「3」、移動対象の拡張機能ID「A」、及び移動対象の拡張機能のIPアドレス「10.1.1.1」を含む。
S201で機能実行カードマイグレーション通知が入力されていないと判定されると、基本制御部1000−2の転送エンジン制御部は、S201に戻り、再度、機能実行カードマイグレーション通知が入力されたか否かを判定する。
S201で機能実行カードマイグレーション通知が入力されたと判定された場合、基本制御部1000−2の転送エンジン制御部は、機能実行カードIDと、機能実行カードのIPアドレスと、出力先のポート番号との関連付けを参照し、機能実行カードマイグレーション通知に含まれる機能実行カードIDの機能実行カードのIPアドレス及び出力先のポート番号を特定する(S202)。
ネットワーク装置100−2の基本制御部1000−2は、図6に示す転送エンジン管理テーブル1104−1と同じ転送エンジン管理テーブルを有している。このため、S202では、基本制御部1000−2の転送エンジン制御部は、S102と同じく、転送エンジン管理テーブル1104−1の機能実行カードID11041に移動先の機能実行カードID「2」が登録されたレコードの主信号I/F IPアドレス「192.168.102.2」及び出力先ポート番号「102」を特定する。
次に、基本制御部1000−2の転送エンジン制御部は、拡張機能IPアドレス管理テーブルに新たなレコードを追加し、追加したレコードの拡張機能ID11031に、入力された機能実行カードマイグレーション通知に含まれる移動対象の拡張機能ID「A」を登録し、当該レコードのIPアドレス11032に、入力された機能実行カードマイグレーション通知に含まれる移動対象の拡張機能のIPアドレス「10.1.1.1」を登録する(S203)。
次に、基本制御部1000−2の転送エンジン制御部は、移動対象の拡張機能のIPアドレス宛てのパケットの出力先が移動先の機能実行カード3000−3となるように転送テーブル2100−2を更新する(S204)。
具体的には、基本制御部1000−2の転送エンジン制御部は、転送テーブル2100−2の宛先IPアドレス21001に、入力された機能実行カードマイグレーション通知に含まれる移動対象の拡張機能のIPアドレス「10.1.1.1」が登録されたレコードのネクストホップ21002に、S202で特定した主信号I/F IPアドレス「192.168.102.2」を登録し、当該レコードの出力先ポート番号21003に、S202で特定した出力先ポート番号「102」を登録する。これによって、ネットワーク装置100−2は、移動対象となる拡張機能宛てのパケットを移動先の機能実行カード3000−2に転送できる。
以上によって、機能実行カード3000−1で動作していた同じ機能を実装するCP及びDPを、ネットワーク装置を跨がって、他の機能実行カード3000−3に移動することができる。
実施例3について図19及び図20を用いて説明する。
本実施例では、CP、DP、及びPE搭載ラインカードのマイクロコードが連携して拡張機能を実装する。このため、本実施例では、CP、DP、及びマイクロコードを連携して移動先の機能実行カード及び当該機能実行カードを有するネットワーク装置が有するPE搭載ラインカードに移動する。
以下では、機能実行カード3000−1で動作するCP及びDPを機能実行カード3000−3に移動させ、PE搭載ラインカード4000−1(PE搭載ラインカードID「1」)のマイクロコードをPE搭載ラインカード4000−2(PE搭載ラインカード「2」)に移動させる例について説明する。
本実施例では、実施例1及び実施例2と異なる処理のみを説明する。
拡張機能AはPE搭載ラインカード4000−1のマイクロコード4210−1の機能種別ID「1」によって識別される機能種別と連携し、拡張機能BはPE搭載ラインカード4000−1のマイクロコード4210−1の機能種別ID「2」によって識別される機能種別と連携するものとする。
本実施例では、実施例2と同じく、マイグレーション指示は、移動対象の拡張機能ID「A」及び移動先の機能実行カードID「3」を含むものとする。
図14に示すS14の対象DP停止処理では、移動対象となる拡張機能AがPE搭載ラインカード4000−1のマイクロコードの機能と連携しているので、マイグレーション制御部3104−1は、機能種別マイグレーション通知をPE搭載ラインカード4000−1に出力する。
この処理について図15を用いて詳細に説明する。
S507では、マイグレーション制御部3104−1は、移動対象の拡張機能IDとPE搭載ラインカードIDとの関連付けを参照し、移動対象の拡張機能と連携するPE搭載ラインカードが存在するか否かを判定する(S507)。具体的には、マイグレーション制御部3104−1は、PE搭載ラインカード対応管理テーブル3109−1を参照し、拡張機能ID31092に移動対象の拡張機能IDが登録されたレコードが存在するか否かを判定する。本実施例では、PE搭載ラインカード対応管理テーブル3109−1の拡張機能ID31092に拡張機能ID「A」が登録されたレコードが存在し、当該レコードのPE搭載ラインカードID31091にはPE搭載ラインカードID「1」が登録されているため、移動対象の拡張機能と連携するPE搭載ラインカードが存在すると判定され、S508に進む。
S508では、マイグレーション制御部3104−1は、移動対象の拡張機能ID「A」、移動先の機能実行カードID「3」、連携するPE搭載ラインカードID「1」、及び連携する機能種別ID「1」を含む機能種別マイグレーション通知を、基本制御部1000−1のPE搭載ラインカード制御部1102−1に出力し、S509に進み、処理を終了する。
なお、連携する機能種別ID「1」は、PE搭載ラインカード対応管理テーブル3109−1の拡張機能ID31092に拡張機能ID「A」が登録されたレコードの機能種別ID31093から取得される。
次に、PE搭載ラインカード制御部1102−1は、機能種別マイグレーション通知が入力された場合、図19に示すマイクロコード移動処理を実行する。
図19は、実施例3のマイクロコード移動処理のフローチャートである。
まず、PE搭載ラインカード制御部1102−1は、機能種別マイグレーション通知が入力されたか否か判定する(S301)。
S301で機能種別マイグレーション通知が入力されていないと判定されると、PE搭載ラインカード制御部1102−1は、S301に戻り、再度、機能種別マイグレーション通知が入力されたか否かを判定する。
S301で機能種別マイグレーション通知が入力されたと判定された場合、PE搭載ラインカード制御部1102−1は、入力された機能種別マイグレーション通知に含まれる連携する機能種別ID「1」を移動対象となる機能種別IDとして特定する(S302)。
次に、PE搭載ラインカード制御部1102−1は、拡張機能IDと拡張機能のIPアドレスとの関連付けを参照し、移動対象の拡張機能のIPアドレスを特定する(S303)。
具体的には、PE搭載ラインカード制御部1102−1は、拡張機能IPアドレス管理テーブル1103−1の拡張機能ID11031に移動対象の拡張機能ID「A」が登録されたレコードのIPアドレス「10.1.1.1」を特定する。
次に、PE搭載ラインカード制御部1102−1は、他のネットワーク装置が移動先の機能実行カードを有するか否かを判定する(S304)。この処理は、図17に示すS105と同じ処理であるので、詳細な説明を省略する。
S304で他のネットワーク装置が移動先の機能実行カードを有さないと判定された場合、PE搭載ラインカード4000−1のマイクロコードを移動する必要がなく、S30いので、S305〜S308を実行せず、S309に進む。S304で他のネットワーク装置が移動先の機能実行カードを有すると判定された場合、S305に進む。本実施例では、移動先の機能実行カード3000−3は他のネットワーク装置100−2が有するため、S305に進む。
S305では、PE搭載ラインカード制御部1102−1は、移動先の機能実行カード3000−3を有するネットワーク装置100−2に、移動対象の機能種別ID「1」、移動対象の拡張機能ID「A」、及び移動対象の拡張機能のIPアドレス「10.1.1.1」を含むPE搭載ラインカードマイグレーション通知を送信する(S305)。ネットワーク装置100−2がPE搭載ラインカードマイグレーション通知を受信し、受信したPE搭載ラインカードマイグレーション通知がネットワーク装置100−2の基本制御部1000−2のPE搭載ラインカード制御部に入力されると、このPE搭載ラインカード制御部は図20に示す移動先マイクロコード移動処理を実行する。移動先マイクロコード移動処理は図20で詳細に説明する。
次に、PE搭載ラインカード制御部1102−1は、移動対象の機能種別ID「1」によって識別されるマイクロコードの機能がネットワーク装置100−2のPE搭載ラインカード4000−2に移動するので、PE搭載ラインカード管理テーブル1105−1の移動対象の機能種別ID「1」のレコードを削除する(S306)。
次に、PE搭載ラインカード制御部1102−1は、移動元の機能実行カード3000−1のPE搭載ラインカード対応管理テーブル3109−1の移動対象の機能種別ID「1」のレコードを削除する(S307)。
次に、PE搭載ラインカード制御部1102−1は、移動対象の機能種別IDによって識別されるマイクロコード4210−1の機能を、PE搭載ラインカード4000−1に停止させる(S308)。
次に、PE搭載ラインカード制御部1102−1は、PE搭載ラインカード4000−1に、移動対象の拡張機能ID及び移動対象の拡張機能のIPアドレスを出力し(S309)、処理を終了する。
PE搭載ラインカード4000−1は、S309で出力された情報が入力された場合、拡張機能IPアドレステーブル4102−1の移動対象の拡張機能ID又は移動対象の拡張機能のIPアドレスが登録されたレコードを削除する。
図20を用いて、移動先マイクロコード移動処理について説明する。図20は、実施例3の移動先マイクロコード移動処理のフローチャートである。
まず、ネットワーク装置100−2の基本制御部1000−2のPE搭載ラインカード制御部は、PE搭載ラインカードマイグレーション通知が入力されたか否かを判定する(S401)。PE搭載ラインカードマイグレーション通知は、移動対象の機能種別ID「1」、移動対象の拡張機能ID「A」、及び移動対象の拡張機能のIPアドレス「10.1.1.1」を含む。
S401で、PE搭載ラインカードマイグレーション通知が入力されていないと判定されると、基本制御部1000−2のPE搭載ラインカード制御部は、S401に戻り、再度、PE搭載ラインカードマイグレーション通知が入力されたか否かを判定する。
一方、S401で、PE搭載ラインカードマイグレーション通知が入力されたと判定された場合、基本制御部1000−2のPE搭載ラインカード制御部は、基本制御部1000−2が有するPE搭載ラインカード管理テーブルを更新する。具体的には、PE搭載ラインカード管理テーブルに新たなレコードを追加し、追加したレコードのPE搭載ラインカードID11051に、ネットワーク装置100−2が有するPE搭載ラインカード4000−2の識別情報(PE搭載ラインカードID「2」)を登録し、機能種別ID11052に、機能種別ID「1」を登録する。
次に、基本制御部1000−2のPE搭載ラインカード制御部は、移動先の機能実行カード3000−3のPE搭載ラインカード対応管理テーブルを更新する。具体的には、PE搭載ラインカード制御部1102−2は、PE搭載ラインカード対応管理テーブル新たなレコードを追加し、追加したレコードのPE搭載ラインカードID31091にPE搭載ラインカードID「2」を登録し、拡張機能ID31092に、PE搭載ラインカードマイグレーション通知に含まれる移動対象の拡張機能ID「A」を登録し、機能種別ID31093に、PE搭載ラインカードマイグレーション通知に含まれる移動対象の機能種別ID「1」を登録する。
次に、基本制御部1000−2のPE搭載ラインカード制御部は、基本制御部1000−2が保持する機能種別ID「1」に対応するマイクロコードをPE搭載ラインカード4000−2にダウンロードし、機能種別ID「1」の機能でPE搭載ラインカード400−2を起動する(S404)。
次に、基本制御部1000−2のPE搭載ラインカード制御部は、移動対象の機能種別ID「2」、移動対象の拡張機能ID「A」、及び移動対象の拡張機能のIPアドレス「10.1.1.1」を移動先のPE搭載ラインカード4000−2に出力し(S405)、処理を終了する。
PE搭載ラインカード4000−2は、S405で出力された情報が入力された場合、PE搭載ラインカード4000−2の拡張機能IPアドレステーブルに新たなレコードを追加し、追加したレコードに移動対象の拡張機能ID「A」及び移動対象の拡張機能のIPアドレス「10.1.1.1」を登録する。
以上によって、拡張機能Aが機能実行カード3000−1から機能実行カード3000−3に移動することによって、拡張機能Aと連携するマイクロコードの機能をPE搭載ラインカード4000−1からPE搭載ラインカード4000−2に移動することができる。
実施例4について図22を用いて説明する。本実施例では、サーバ上に実装された拡張機能をスイッチ等のネットワーク装置で接続された別のサーバへ移動する場合について説明する。
図22は、実施例4のネットワーク中継システムの説明図である。
本ネットワーク中継システムは、ネットワーク装置60000−1を有し、ネットワーク装置60000−1を介して、機能実行サーバ70000−1、機能実行サーバ70000−2及び管理サーバ80000−1が接続される。
ネットワーク装置60000−1について説明する。ネットワーク装置60000−1は、CPU61000−1、メモリ62000−1及び転送エンジン63000−1、を有する。
メモリ62000−1上で動作する転送エンジン制御部62100−1が転送エンジン63000−1上のARPキャッシュテーブル63100−1を制御する。転送エンジン63000−1は、ARPキャッシュテーブルテーブル63100−1を参照し、ネットワーク装置60000−1が送信するパケットの宛先MACアドレスを決定する。ARPキャッシュテーブルテーブル63100−1は、パケットの宛先のIPアドレスとMACアドレスとの関連付けを保持する。
機能実行サーバ70000−1及び70000−2には拡張機能を実行する機能実行部が実装可能である。図22では、機能実行サーバ70000−1に機能実行部が実装され、機能実行サーバ70000−2に機能実行部が実装されていない状態を示す。拡張機能のうち多機能性の求められる制御系の機能がCP(コントロールプレーン)72120−1に実装され、単機能で高速性の求められる転送系の機能がDP(データプレーン)72200−1に実装される。CP72120−1及びDP72200−1とが連携することによって拡張機能Aが実装される。例えば、サーバと連携して拡張機能を提供する場合、データ転送処理に必要なリソース設定のためのサーバとの制御通信をCP72120−1が実施し、CP72200−1がその制御通信により設定したリソース情報を共有する事で、その情報に従った高速なデータ転送処理をDP72200−1が実施する。DP72200−1は転送中のデータを一時的に保持するのみで、永続的な情報の処理は行わない。つまり、CP72120−1の処理の結果や処理の状況に応じて、DP72200−1の処理が行われる。CP72120−1は、機能実行サーバ70000−1が有するメモリ72000−1上に構築された仮想マシン(VM)72100−1で動作するOS72110−1によって提供される。また、DP72200−1は、当該仮想マシン72100−1の外部で稼働する。
管理サーバ80000−1に搭載される二次記憶装置81000−1は、機能実行サーバに実装される拡張機能のプログラムファイル81100−1を記憶する。
なお、ネットワーク装置60000−1は、図示しない他のスイッチに接続され、図示しない他のサーバ又は端末と接続されてもよい。
また、機能実行サーバと記載しているが、サーバに限定されず、例えば、ネットワーク装置に実装されるモジュール等であってもよい。
本実施例では、機能実行サーバ70000−1に実装された拡張機能Aを機能実行サーバ70000−2に移動する動作について説明する。
まず、管理サーバ80000−1より、機能実行サーバ70000−1へtelnet等のプロトコルによりアクセスし、メモリ72000−1で動作するVM72100−1を管理サーバ80000−1の二次記憶装置81000−1へコピーし、その後、拡張機能Aを停止させる。
続いて、管理サーバ80000−1より、機能実行サーバ70000−2へtelnet等のプロトコルによりアクセスし、上記処理にて管理サーバ80000−1の二次記憶装置81000−1にコピーされた、VM72100−1を機能実行サーバ70000−2のメモリ72000−2へ展開する。また、管理サーバ80000−1の二次記憶装置81000−1に格納された拡張機能Aのプログラムファイル81100−1を機能実行サーバ70000−2のメモリ72000−2へ展開し、拡張機能Aを起動する。
機能実行サーバ70000−2で起動された拡張機能Aは、ネットワーク装置60000−1へGratuitous ARPを送信する。Gratuitous ARPを受信したネットワーク装置60000−1の転送エンジン制御部62100−1がARPキャッシュテーブル63100−1を更新する事で、ネットワーク装置60000−1が受信した拡張機能A宛のパケットは、機能実行サーバ70000−2へ転送される事になる。
移動対象である拡張機能AのCP72120−1はプログラムとデータから構成されており、前述の通り、データをDP72200−1と共有し、機能を実現している。機能実行サーバ70000−2に移動したCP72120−1は、移動前の機能実行サーバ70000−1で動作していたのと全く同じプログラムとデータから構成され動作する事が可能である。
一方、拡張機能AのDP72200−1はCPと同様にプログラムとデータから構成されており、データには、現在転送中のデータが一時的に格納されている。機能実行サーバ70000−2で起動されるDPは、管理サーバ80000−1に格納された同一のプログラムファイル81100−1から起動されるが、移動前の機能実行サーバで動作していたデータは移動する事が出来ない。前述の通り、データには現在転送中のデータが一時的に保存されている為、移動時に転送処理を行っていたパケットについては、ロストしてしまうが、拡張機能Aの動作に必要なデータはCP72120−1が持つデータにすべて管理されているので、以降の転送処理には支障を来たす事無く動作可能となる。 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
10 管理サーバ 20 スイッチ 30 サーバ 100−1、100−2 ネットワーク装置 1000−1、1000−2 基本制御部 2000−1、2000−2 転送エンジン 2100−1、2100−2 転送テーブル 3000−1、3000−2、3000−3 機能実行カード 4000−1、4000−2 PE搭載ラインカード 5000−1、5000−2 ラインカード

Claims (11)

  1. ネットワークに接続され、前記ネットワークとの間でパケットを送受信する通信装置であって、
    前記ネットワークとの間のパケットの送受信処理を実行する転送制御部と、
    物理プロセッサを有する機能実行モジュールと、を備え、
    前記パケットの宛先と当該パケットの出力先との関係が登録された転送テーブルを保持し、
    前記機能実行モジュールは所定の拡張機能を実装する複数の処理実行部を有し、
    前記拡張機能は、複数の前記処理実行部のうち第1処理を実行する第1処理実行部と第2処理を実行する第2処理実行部とが連携することによって実装され、
    前記物理プロセッサの演算資源は、前記第1処理実行部及び前記第2処理実行部に割り当てられ、
    前記物理プロセッサのメモリ資源は、前記第1処理実行部のプログラムとデータ、及び前記第2処理実行部のプログラムとデータに割り当てられ、
    前記第1処理実行部は、前記機能実行モジュール上に構築された仮想マシン上で稼働し、
    前記第2処理実行部は、前記第1処理実行部が稼働する仮想マシンの外部で稼働し、
    前記通信装置は、前記機能実行モジュールで稼働する第1処理実行部を移動先の機能実行モジュールに移動し、
    前記機能実行モジュールは、前記第2処理実行部に割り当てられたプログラムに関する情報、及び物理プロセッサの割り当てに関する情報を前記移動先の機能実行モジュールに通知し、
    前記移動先の機能実行モジュールは、前記通知されたプログラムに関する情報に基づいて、前記第2処理実行部を起動させるためにプログラムファイルをダウンロードし、前記物理プロセッサの割り当てに関する情報に基づいて新たな第2処理実行部のプログラムを前記移動先の機能実行モジュールで稼働させ、前記第2処理実行部を前記移動先の機能実行モジュールに移動し、
    前記第1処理実行部及び前記第2処理実行部の前記移動先の機能実行モジュールへの移動によって、前記拡張機能が前記移動先の機能実行モジュールに移動され、
    前記拡張機能の前記移動先の機能実行モジュールへの移動に伴って、前記転送テーブルを更新することを特徴とする通信装置。
  2. 請求項1に記載の通信装置であって、
    連携する第1処理実行部と第2処理実行部との関連付けを保持し、
    前記拡張機能を前記移動先の機能実行モジュールに移動する移動指示を受け付けた場合、前記拡張機能が有する前記第1処理実行部を前記移動先の機能実行モジュールに移動し、
    前記機能実行モジュールは、
    前記連携する第1処理実行部と第2処理実行部との関連付けを参照し、前記移動した第1処理実行部と連携する前記第2処理実行部を特定し、
    前記特定した第2処理実行部を前記移動先の機能実行モジュールに移動させることによって、前記拡張機能を前記移動先の機能実行モジュールに移動させることを特徴とする通信装置。
  3. 請求項1に記載の通信装置であって、
    前記移動した拡張機能宛てのパケットの出力先を前記移動先の機能実行モジュールに変更することによって、前記転送テーブルを更新することを特徴とする通信装置。
  4. 請求項1に記載の通信装置であって、
    前記移動先の機能実行モジュールは当該通信装置が有する機能実行モジュールであることを特徴とする通信装置。
  5. 請求項1に記載の通信装置であって、
    前記移動先の機能実行モジュールは、当該通信装置と異なる他の通信装置が有する機能実行モジュールであることを特徴とする通信装置。
  6. 請求項5に記載の通信装置であって、
    前記移動した拡張機能宛てのパケットの出力先を前記移動先の機能実行モジュールに変更することによって、前記転送テーブルを更新し、
    前記移動先の機能実行モジュールを特定可能な情報、及び前記移動した拡張機能の識別情報を含む機能実行モジュール移動通知を前記他の通信装置に送信することによって、前記他の通信装置に、前記移動した拡張機能宛てのパケットの出力先を前記移動先の機能実行モジュールに変更させることによって前記他の通信装置の転送テーブルを更新させることを特徴とする通信装置。
  7. 請求項5に記載の通信装置であって、
    前記転送制御部はプログラムを保持し、
    前記プログラムは、前記拡張機能と連携して当該拡張機能を実装する機能を含み、
    前記拡張機能を前記移動先の機能実行モジュールに移動する場合、当該拡張機能と連携するプログラムの機能を移動対象の機能として特定し、
    前記特定した移動対象の機能を前記他の通信装置の転送制御部に移動することを特徴とする通信装置。
  8. 請求項7に記載の通信装置であって、
    前記特定した移動対象の機能の種別を特定可能な情報を前記他の通信装置に送信して、前記他の通信装置に、当該機能の種別を含むプログラムを当該他の通信装置の転送制御部に設定させることによって、前記移動対象の機能を当該他の通信装置の転送制御部に移動することを特徴とする通信装置。
  9. 請求項1に記載の通信装置であって、
    前記物理プロセッサは、複数のプロセッサコアを有し、
    前記第2処理実行部には、少なくとも一つのプロセッサコアが割り当てられ、
    前記第2処理実行部に割り当てられた物理プロセッサの割り当てに関する情報は、当該第2処理実行部に割り当てられたプロセッサコアの数を含み、
    前記移動先の機能実行モジュールは、前記移動先の機能実行モジュールに前記割り当てに関する情報に基づいて、前記特定した第2処理実行部と同じ第2処理実行部に、前記特定した第2処理実行部に割り当てられていたプロセッサコアの数と同じ数のプロセッサコアを割り当てることを特徴とする通信装置。
  10. ネットワークに接続され、前記ネットワークとの間でパケットを送受信する通信装置における拡張機能の移動方法であって、
    前記通信装置は、
    前記ネットワークとの間のパケットの送受信処理を実行する転送制御部と、
    物理プロセッサを有し、所定の機能を実装する機能実行モジュールと、を備え、
    前記通信装置は、前記パケットの宛先と当該パケットの出力先との関係を保持する転送テーブルを有し、
    前記機能実行モジュールは所定の拡張機能を実装する複数の処理実行部を有し、
    前記拡張機能は、複数の前記処理実行部のうち第1処理を実行する第1処理実行部と第2処理を実行する第2処理実行部とが連携することによって実装され、
    前記物理プロセッサの演算資源は、前記第1処理実行部及び前記第2処理実行部に割り当てられ、前記物理プロセッサのメモリ資源は、前記第1処理実行部のプログラムとデータ、及び前記第2処理実行部のプログラムとデータに割り当てられ、
    前記第1処理実行部は、前記機能実行モジュール上に構築された仮想マシン上で稼働し、
    前記第2処理実行部は、前記第1処理実行部が稼働する仮想マシンの外部で稼働し、
    前記方法は、
    前記通信装置が、移動元の機能実行モジュールで稼働する所定の拡張機能が実装される第1処理実行部を移動先の機能実行モジュールに移動し、
    前記移動元の機能実行モジュールは、前記第2処理実行部に割り当てられたプログラムに関する情報、及び物理プロセッサの割り当てに関する情報を前記移動先の機能実行モジュールに通知し、
    前記移動先の機能実行モジュールは、前記通知されたプログラムに関する情報に基づいて、前記第2処理実行部を起動させる為のプログラムファイルをダウンロードし、割り当てに関する情報に基づいて新たな第2処理実行部のプログラムを前記移動先の機能実行モジュールで稼働させ、前記拡張機能の前記第2処理実行部を前記移動先の機能実行モジュールに移動し、
    前記第1処理実行部及び前記第2処理実行部の前記移動先の機能実行モジュールへの移動によって、前記拡張機能が前記移動先の機能実行モジュールに移動され、
    前記通信装置が、前記拡張機能の前記移動先の機能実行モジュールへの移動に伴って、前記転送テーブルを更新することを特徴とする移動方法。
  11. ネットワークに接続され、前記ネットワークとの間でパケットを送受信する複数の通信装置を備える通信システムであって、
    前記通信装置は、
    前記ネットワークとの間のパケットの送受信処理を実行する転送制御部と、
    物理プロセッサを有する機能実行モジュールと、
    前記通信装置を制御する制御部と、を有し、
    前記パケットの宛先と当該パケットの出力先との関係が登録された転送テーブルを保持し、
    前記複数の通信装置は、第1通信装置及び第2通信装置を含み、
    前記第1通信装置の前記機能実行モジュールは所定の拡張機能を実装する複数の処理実行部を有し、
    前記拡張機能は、複数の前記処理実行部のうち第1処理を実行する第1処理実行部と第2処理を実行する第2処理実行部とが連携することによって実装され、
    前記物理プロセッサは、前記第1処理実行部及び前記第2処理実行部に割り当てられ、前記物理プロセッサのメモリ資源は、前記第1処理実行部のプログラムとデータ、及び前記第2処理実行部のプログラムとデータに割り当てられ、
    前記第1処理実行部は、前記機能実行モジュール上に構築された仮想マシン上で稼働し、
    前記第2処理実行部は、前記第1処理実行部が稼働する仮想マシンの外部で稼働し、
    前記第1通信装置の機能実行モジュールが有する拡張機能を前記第2通信装置の機能実行モジュールに移動する場合において、
    前記第1通信装置は、前記機能実行モジュールで稼働する第1処理実行部を前記第2通信装置の機能実行モジュールに移動し、
    前記第1通信装置は、前記機能実行モジュールで稼働する第2処理実行部に割り当てられたプログラムに関する情報、及び物理プロセッサの割り当てに関する情報を前記第2通信装置の機能実行モジュールに通知し、
    前記第2通信装置は、前記プログラムに関する情報に基づいて、前記第2処理実行部を起動させる為のプログラムファイルをダウンロードし、割り当てに関する情報に基づいて新たな第2処理実行部のプログラムを、前記第2通信装置の機能実行モジュールで稼働させ、前記第2処理実行部を前記第1通信装置の機能実行モジュールから前記第2通信装置の機能実行モジュールに移動し、
    前記第1処理実行部及び前記第2処理実行部の前記移動先の機能実行モジュールへの移動によって、前記拡張機能が前記第1通信装置の機能実行モジュールから前記第2通信装置の機能実行モジュールに移動され、
    前記第1通信装置及び前記第2通信装置は、前記拡張機能の移動に伴って、前記転送テーブルを更新することを特徴とする通信システム。
JP2015000036A 2014-01-27 2015-01-05 通信装置、拡張機能の移動方法、及び通信システム Active JP6345604B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015000036A JP6345604B2 (ja) 2014-01-27 2015-01-05 通信装置、拡張機能の移動方法、及び通信システム
US14/604,795 US9858096B2 (en) 2014-01-27 2015-01-26 Communication device migration method of extension function and communication system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014012156 2014-01-27
JP2014012156 2014-01-27
JP2015000036A JP6345604B2 (ja) 2014-01-27 2015-01-05 通信装置、拡張機能の移動方法、及び通信システム

Publications (2)

Publication Number Publication Date
JP2015158904A true JP2015158904A (ja) 2015-09-03
JP6345604B2 JP6345604B2 (ja) 2018-06-20

Family

ID=53680238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015000036A Active JP6345604B2 (ja) 2014-01-27 2015-01-05 通信装置、拡張機能の移動方法、及び通信システム

Country Status (2)

Country Link
US (1) US9858096B2 (ja)
JP (1) JP6345604B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2017122544A1 (ja) * 2016-01-13 2018-11-08 ソニー株式会社 データ処理装置、及び、データ処理方法
CN105718287B (zh) * 2016-01-20 2018-11-13 中南大学 一种智能终端的程序流式执行方法
US10341448B2 (en) 2016-06-12 2019-07-02 Apple Inc. Notification extensions for applications
US11469953B2 (en) 2017-09-27 2022-10-11 Intel Corporation Interworking of legacy appliances in virtualized networks
CN116260776A (zh) * 2017-10-24 2023-06-13 英特尔公司 硬件辅助的虚拟交换机
CN111988223B (zh) * 2020-08-19 2022-04-08 杭州迪普科技股份有限公司 虚拟机迁移方法与网络系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060203832A1 (en) * 2005-03-09 2006-09-14 Hitachi, Ltd. Packet communication apparatus with function enhancement module
US20070014231A1 (en) * 2005-07-15 2007-01-18 Kaarthik Sivakumar Router and method for protocol process migration
US20110134931A1 (en) * 2009-12-08 2011-06-09 Jacobus Van Der Merwe Virtual router migration
JP2011176504A (ja) * 2010-02-23 2011-09-08 Nippon Telegr & Teleph Corp <Ntt> ネットワーク制御方法、ネットワーク制御システム、パケット転送装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4481517B2 (ja) 2001-03-19 2010-06-16 株式会社日立製作所 インターネットワーク装置及びインターネットワーク方法
JPH08241214A (ja) * 1995-03-06 1996-09-17 Hitachi Ltd データ処理システム
JP4214682B2 (ja) 2001-01-24 2009-01-28 株式会社日立製作所 計算機およびその入出力手段
JP5222651B2 (ja) * 2008-07-30 2013-06-26 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムの制御方法
DE102009010930B4 (de) 2009-02-27 2010-12-30 Adc Gmbh Verfahren zum Einspleißen einer Doppelader in mindestens eine bestehende Endteilnehmer-Doppelader und Aderverbinder
US8627426B2 (en) * 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US8761187B2 (en) 2011-06-14 2014-06-24 Futurewei Technologies, Inc. System and method for an in-server virtual switch
US9323579B2 (en) * 2012-08-25 2016-04-26 Vmware, Inc. Resource allocation diagnosis on distributed computer systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060203832A1 (en) * 2005-03-09 2006-09-14 Hitachi, Ltd. Packet communication apparatus with function enhancement module
JP2006253899A (ja) * 2005-03-09 2006-09-21 Hitachi Ltd パケット通信装置とその機能拡張方法
US20070014231A1 (en) * 2005-07-15 2007-01-18 Kaarthik Sivakumar Router and method for protocol process migration
JP2009501472A (ja) * 2005-07-15 2009-01-15 テレフオンアクチーボラゲット エル エム エリクソン(パブル) プロトコルプロセスの移動(migration)に関する方法およびルータ
US20110134931A1 (en) * 2009-12-08 2011-06-09 Jacobus Van Der Merwe Virtual router migration
JP2011176504A (ja) * 2010-02-23 2011-09-08 Nippon Telegr & Teleph Corp <Ntt> ネットワーク制御方法、ネットワーク制御システム、パケット転送装置

Also Published As

Publication number Publication date
JP6345604B2 (ja) 2018-06-20
US9858096B2 (en) 2018-01-02
US20150215384A1 (en) 2015-07-30

Similar Documents

Publication Publication Date Title
JP6345604B2 (ja) 通信装置、拡張機能の移動方法、及び通信システム
US11502950B2 (en) Universal customer premise equipment
US11934341B2 (en) Virtual RDMA switching for containerized
Suo et al. An analysis and empirical study of container networks
JP6544872B2 (ja) 負荷バランシングコンピュータデバイス、システム、および方法
US9893977B2 (en) System and method for supporting live migration of virtual machines in a virtualization environment
JP6605713B2 (ja) クラウドコンピューティングシステムにおけるパケット処理方法、ホスト及びシステム
RU2584449C2 (ru) Система управления связью, коммутационный узел и способ управления связью
KR102445870B1 (ko) 고성능 클라우드 컴퓨팅 환경을 위한 인피니밴드 SR-IOV vSWITCH 아키텍쳐를 제공하는 시스템 및 방법
US9934057B2 (en) Shadow VNICs for the control and observability of IO virtual functions
US20170161090A1 (en) Communication control program, communication control method, and information processing device
US9928093B2 (en) Methods and systems for establishing connections associated with virtual machine migrations
US20170322828A1 (en) Systems and methods for virtio based optimization of data packet paths between a virtual machine and a network device for live virtual machine migration
EP2831729A1 (en) System and method for supporting live migration of virtual machines based on an extended host channel adaptor (hca) model
JP2015536003A (ja) 仮想クラウドインフラストラクチャへの仮想セキュリティ装置アーキテクチャの提供
JP6579916B2 (ja) 仮想計算機間の通信経路制御方法および計算機システム
US20170272437A1 (en) Software defined network (sdn) application integrity
Katsikas et al. Metron: High-performance NFV service chaining even in the presence of blackboxes
WO2022160714A1 (zh) 一种通信方法、装置以及系统
US11595347B1 (en) Dual-stack network addressing in cloud provider network edge locations
JP5395833B2 (ja) 仮想ネットワークシステム及び仮想通信制御方法
JP2013197919A (ja) 通信制御装置、通信制御方法および通信制御プログラム
JP6778169B2 (ja) 仮想化通信装置、および、仮想化通信方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170117

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170124

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170417

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180214

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20180223

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180320

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180423

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180515

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180523

R150 Certificate of patent or registration of utility model

Ref document number: 6345604

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250