JP2016220126A - ネットワーク処理システム、ネットワークシステムの管理方法及び通信装置 - Google Patents

ネットワーク処理システム、ネットワークシステムの管理方法及び通信装置 Download PDF

Info

Publication number
JP2016220126A
JP2016220126A JP2015105287A JP2015105287A JP2016220126A JP 2016220126 A JP2016220126 A JP 2016220126A JP 2015105287 A JP2015105287 A JP 2015105287A JP 2015105287 A JP2015105287 A JP 2015105287A JP 2016220126 A JP2016220126 A JP 2016220126A
Authority
JP
Japan
Prior art keywords
network
processing unit
unit
network processing
processing
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.)
Pending
Application number
JP2015105287A
Other languages
English (en)
Inventor
浩平 萬代
Kohei Mandai
浩平 萬代
高橋 清隆
Kiyotaka Takahashi
清隆 高橋
泰輔 植田
Yasusuke Ueda
泰輔 植田
健二 藤平
Kenji Fujihira
健二 藤平
誠由 高瀬
Masayoshi Takase
誠由 高瀬
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2015105287A priority Critical patent/JP2016220126A/ja
Publication of JP2016220126A publication Critical patent/JP2016220126A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ハードウェア・アクセラレータを有するネットワーク処理装置で、最小構成の計算機資源で必要な処理性能を提供する。【解決手段】受信したパケットを処理する通信装置を管理装置で管理し、通信装置はパケットをソフトウェアで処理する第1のネットワーク処理部と、パケットをハードウェアで処理する第2のネットワーク処理部と、を有し、通信装置が、第1のネットワーク処理部に、前記受信したパケットを振り分けて処理を実行し、管理装置が、通信装置の稼働状態の監視結果に基づいて、前記第1のネットワーク処理部と第2のネットワーク処理部の間で前記パケットの処理を切り替える指令を前記通信装置へ送信し、通信装置が受信した指令に基づいて、第1のネットワーク処理部と第2のネットワーク処理部の間で前記パケットの処理を切り替える。【選択図】図2

Description

本発明は、要求されるネットワーク処理の機能や、性能ないしはコストによりネットワークを構成する通信装置を変更可能な通信ネットワークシステムに関する。
近年、サーバをネットワーク処理装置として使用するNFV(ネットワーク機能仮想化:Network Functions Virtualization)の開発が進められている。NFVは、これまでハードウェアで開発されていたネットワーク処理機能をソフトウェア化し、サーバのCPU(中央演算処理装置)で実行するものである。また、1つのCPU上に複数のコンピュータを仮想的に構築するサーバの仮想化技術を適用すれば、複数のネットワーク処理機能をこれらの仮想的なコンピュータにそれぞれ実装できる。この仮想的なコンピュータはVM(仮想マシン:Virtual Machine)とよばれる。
NFVはモバイルネットワークにも利用されつつある。NFVの利用により、大規模なハードウェア開発をせずともネットワーク処理装置を開発できるため、装置の開発期間を短縮できるメリットがある。また、汎用サーバをNFVのプラットフォームにすれば、機器の調達性や保守性も高まる。特にメトロ・コアネットワークでは、ハードウェアで開発された専用装置と比べて装置1台あたりの価格が安く、また、消費電力も小さくなると期待されている。
NFVの採用については、処理性能に関しても、比較的高い処理能力をもつ高価なマルチコアCPUを使い、さらに処理を工夫することで、数10Gbit/sの処理速度が実現されている。しかし、これまでネットワーク処理装置のプラットフォームとされてきたFPGA(フィールドプログラマブルゲートアレイ)やASIC(特定用途向け集積回路)といったハードウェアに比べ、CPUは処理能力が低く、数10Gbpsを超す処理速度を実現するにはFPGAやASICなどのハードウェアを使用しなければならない。
もちろんCPUの数を増やして並列化すれば処理速度を向上できるが、装置全体の価格もサイズも大きくなる。いずれにしても単位処理速度あたりの価格はCPUの方がハードウェアより割高になってしまう。
サーバでは、CPUで実行するネットワーク処理の一部をハードウェア・アクセラレータに代行させるハードウェア・オフロードとよばれる構成が利用されている。これにより、サーバのCPUにかかるネットワーク処理の負荷を減らし、他の処理を実行させることができる。
従来から行われているサーバのハードウェア・オフロードは、ハードウェア・アクセラレータに代行(オフロード)させるネットワーク処理が予め決められており、オフロード先のハードウェア・アクセラレータには書換えのできないASICを使用することが多い。また、このハードウェアはサーバに固定的に装着される。そのため、ハードウェアの機能と規模が固定されてしまい、サーバに要求される処理量が少ない場合には、ハードウェアの処理資源(リソース)が過剰になってしまう。
これに対して、特許文献1には、データセンタのサーバ内にプログラマブルなハードウェアであるプログラマブルハードウェアアクセラレータ(PHA)を設け、ハードウェアで実行するソフトウェア(アプリケーション)を任意に選択する技術が開示されている。また、特許文献1では、PHAのパフォーマンスを所定の基準値と比較して、比較結果を管理者などに通知する機能を提供する。上記特許文献1では、PHAの機能を変更できるため、サーバの稼働状況に応じてCPU負荷の大きいネットワーク処理を選択し、PHAに代行させることが可能となる。
特開2014−191828号公報
しかしながら、上記特許文献1でもPHAはサーバに固定的に装着されるため、サーバ全体の処理量が少なくなった場合には、サーバのハードウェアのリソースが過剰になる、という問題があった。
そこで本発明は、上記問題点に鑑みてなされたもので、ハードウェア・アクセラレータを有するネットワーク処理システムで、最小構成の資源で必要な処理性能を提供することを目的とする。
本発明は、受信したパケットを処理する通信装置と、前記通信装置を管理する管理装置と、を有するネットワーク処理システムであって、前記通信装置は、前記パケットをソフトウェアで処理する第1のネットワーク処理部と、前記パケットをハードウェアで処理する第2のネットワーク処理部と、前記受信したパケットを第1のネットワーク処理部と第2のネットワーク処理部に振り分ける第1の振り分け部と、を有し、前記管理装置は、前記通信装置の稼働状態を監視する稼働状態監視部と、前記稼働状態監視部の監視結果に基づいて、前記第1のネットワーク処理部と第2のネットワーク処理部の間で前記パケットの処理を切り替える指令を前記通信装置へ送信する構成管理部と、を有し、前記通信装置は、前記構成管理部からの指令に基づいて、前記第1のネットワーク処理部と第2のネットワーク処理部の間で前記パケットの処理を切り替える。
本発明によれば、ネットワーク処理システムの規模に応じて最適なネットワーク処理のリソースが配置されるため、ネットワーク処理システムの成長に伴った設備投資が可能となる。
本発明の第1の実施例を示し、ネットワーク処理システムの構成の一例を示すブロック図である。 本発明の第1の実施例を示し、通信装置の構成の一例を示すブロック図である。 本発明の第1の実施例を示し、ネットワークソフトウェア実行部の一例を示すブロック図である。 本発明の第1の実施例を示し、ネットワーク管理サーバの一例を示すブロック図である。 本発明の第1の実施例を示し、ネットワーク管理サーバのコア資源管理データベースの一例を示す図である。 本発明の第1の実施例を示し、ネットワーク管理サーバのコア機能管理データベースの一例を示す図である。 本発明の第1の実施例を示し、ネットワーク管理サーバの処理機能グループ管理データベースの一例を示す図である。 本発明の第1の実施例を示し、ネットワーク管理サーバのモジュールデータベースの一例を示す図である。 本発明の第1の実施例を示し、ネットワーク管理サーバで行われる処理の一例を示すフローチャートの前半部である。 本発明の第1の実施例を示し、ネットワーク管理サーバで行われる処理の一例を示すフローチャートの後半部である。 本発明の第1の実施例を示し、コアコスト管理データベースの一例を示す図である。 本発明の第1の実施例を示し、CPUで処理を行う場合の価格と利用可能帯域の関係を示すグラフである。 本発明の第1の実施例を示し、CPUとFPGAの価格と利用可能帯域の関係を示すグラフである。 本発明の第2の実施例を示し、ネットワーク処理部の一例を示すブロック図である。 本発明の第3の実施例を示し、通信装置の一例を示すブロック図である。 本発明の第4の実施例を示し、通信装置の一例を示すブロック図である。 本発明の第5の実施例を示し、通信装置の一例を示すブロック図である。
以下、本発明の実施例を添付図面に基づいて説明する。
図1は、本発明の第1の実施例を示し、本発明を適用するネットワーク処理システムの一例を示すブロック図である。なお、本発明の実施例は、図1に示したようなネットワークにおける通信装置に適用した場合を一例として記載するが、本発明の実施例は以下に記載した構成に限定されるものではない。他のネットワークであっても本発明を適用することで同等の効果が得られる。
図1において、基地局(図中eNB:eNodeB)2は、図示しないユーザ端末と通信し、基地局2はネットワークを構成する通信装置30−1〜30−4を介してサーバ6との間でパケットを転送する。なお、以下では、通信装置30−1〜30−4の全体を指すときには「−」のない符号30で示す。他の構成要素の符号も同様である。
ネットワーク処理システムは、ネットワーク管理サーバ20と、管理ネットワーク40と、4つの通信装置30−1、30−2、30−3、30−4から成る。各通信装置30は、管理ネットワーク40を介してネットワーク管理サーバ20で管理される。ネットワーク管理サーバ20は、保守端末21に接続されて、設定情報等の受け付けや、演算結果の出力等を行う。
通信装置30−1は、2つのネットワークソフトウェア実行部(図中ソフト実行部)31−1、31−2と、2つのプログラマブルネットワーク処理部(図中PNW処理部)32−1、32−2と、1つのパケット振り分け部(第1の振り分け部)33と、装置コントローラ34とで構成される。他の通信装置30−2、30−3、30−4については説明を省略するが、通信装置30−1と同様の構成である。ただし、ネットワークソフトウェア実行部(第1のネットワーク処理部)31とプログラマブルネットワーク処理部(第2のネットワーク処理部)32の数は互いに異なっていてもよい。また、通信装置30は、少なくともひとつのネットワークソフトウェア実行部31を有し、必用に応じてプログラマブルネットワーク処理部32やネットワークソフトウェア実行部31を追加することができる。すなわち、通信装置30内では、ネットワークソフトウェア実行部31がネットワーク処理のサーバとして機能し、ネットワークソフトウェア実行部31はアクセラレータとして機能する。なお、ネットワークソフトウェア実行部31−1に加えてネットワークソフトウェア実行部31−2を追加した場合、ネットワークソフトウェア実行部31−2は、アクセラレータとして機能する。
これらの通信装置30−1、30−2、30−3、30−4は、それぞれが有するパケット振り分け部33で接続されており、互いにパケットを送受信することでネットワークを構築している。
通信装置30−1においては、ネットワーク処理リソースであるネットワークソフトウェア実行部31−1、31−2とプログラマブルネットワーク処理部32−1、32−2がそれぞれパケット振り分け部33−1に接続される。そして、パケット振り分け部33−1がパケット振分けテーブル(図示省略)に従ってパケットを上記ネットワーク処理リソースから選択して転送する。
また、これらのネットワーク処理リソースで処理されたパケットはパケット振り分け部33に送られ、パケット振り分け部33がパケット転送テーブルに従って他の通信装置などに転送される。
本実施例1のネットワーク処理システムの主な構成要素は、ネットワーク処理機能のソフトウェアプログラムを実行するネットワークソフトウェア実行部31と、再構成可能な論理回路を用いてネットワーク処理を実行するプログラマブルネットワーク処理部32と、これらのネットワーク処理リソースを接続するパケット振り分け部33と、これらを管理及び制御するネットワーク管理サーバ20、である。
ネットワークソフトウェア実行部31には、CPUやNP(ネットワークプロセッサ)などが使用される。汎用プロセッサであるCPUは、プログラム化された複数の異なるネットワーク処理のうち任意の処理を選択して実行することができる。すなわち、ネットワークソフトウェア実行部31は、実行するプログラムを変更することで、異なる処理を行うことが可能なソフトウェア・アクセラレータとして機能することができる。
プログラマブルネットワーク処理部32には、回路の再構成が可能なFPGAが使用される。FPGAは異なるネットワーク処理機能をもつ複数の回路プログラムから、任意のプログラムを選択して所定の回路構成を実現することができる。すなわち、プログラマブルネットワーク処理部32は、適用する回路を変更することで、異なる処理を行うことが可能なハードウェア・アクセラレータとして機能する。
例えば、あるネットワーク処理機能に対してソフトウェアプログラムと回路プログラムの両方を用意しておけば、そのネットワーク処理機能を実行するネットワーク処理リソース(実行リソース)を増設でき、さらには実行リソースをネットワークソフトウェア実行部31とプログラマブルネットワーク処理部32のいずれかで切り替えることができる。
ネットワーク管理サーバ20がパケット振り分け部33の設定を変更し、増設や、切り替え後のネットワーク処理リソースにパケットを転送させれば、更新された実行リソースでパケットのネットワーク処理を継続することができる。
また、ネットワーク処理機能を実行するネットワーク処理リソースの削減も可能である。ただし、削減するネットワーク処理リソースに処理対象のパケットが設定されている場合は、当該パケットが他のネットワーク処理リソースで処理されるよう、ネットワーク処理の設定の移譲と、パケット振り分け部33の設定の変更を行う。
図2は、通信装置30−1の具体的な構成の一例を示すブロック図である。通信装置30−1は、カードスロット35−1〜35−4に挿入されたネットワークソフトウェア実行部31−1、31−2及びプログラマブルネットワーク処理部32−1、32−2と、ネットワークソフトウェア実行部31とプログラマブルネットワーク処理部32へパケットを振り分けるパケット処理部57と、ネットワーク管理サーバ20からの指令に基づいてパケット処理部57とネットワークソフトウェア実行部31とプログラマブルネットワーク処理部32を制御する装置コントローラ34を含む。
なお、カードスロット35−1〜35−4は挿抜自在に構成され、管理者などによってカード状のネットワークソフトウェア実行部31やプログラマブルネットワーク処理部32を脱着することができる。また、カードスロット35の数や装着するカードの種類は、上記に限定されるものではなく、所望の数と種類で構成することができる。また、ネットワークソフトウェア実行部31とプログラマブルネットワーク処理部32の総称を、カードとする。
パケット振り分け部33は、外部の機器に接続される受信回路51−1、51−2、51−3と送信回路52−1、52−2、52−3とを有する。例えば、受信回路51−1と送信回路52−1が基地局2と接続され、受信回路51−2と送信回路52−2が通信装置30−2と接続され、受信回路51−3と送信回路52−3が通信装置30−3と接続される。
通信装置30は、受信回路51と送信回路52を用いて、他の通信装置30や基地局2と主信号のパケットを送受信する。なお、装置コントローラ34は、内部にネットワークインタフェースを有して管理ネットワーク40に接続される。
また、パケット振り分け部33は、内部のパケット処理部57に接続される受信回路54−1、54−2、54−3と送信回路53−1、53−2、53−3とを有する。例えば、送信回路53−1と受信回路54−1がネットワークソフトウェア実行部31−1に接続され、送信回路53−2、53−3と受信回路54−2、54−3がネットワークソフトウェア実行部31−1に接続される。なお、ネットワークソフトウェア実行部31−2と、プログラマブルネットワーク処理部32−2も同様であり、図示しない送信回路と受信回路によってパケット処理部57に接続される。
ネットワークソフトウェア実行部31−1、31−2はカードの形態であり、カードコントローラ161と、受信回路155と、パケット振り分け部(第2の振り分け部)158と、複数の処理部59−1、59−2、…、59−nと、パケット多重部160と、送信回路56とを含む。なお、ネットワークソフトウェア実行部31−1、31−2は同一の構成であるので、ネットワークソフトウェア実行部31−1のみについて説明する。
本実施例1では、処理部59を、仮想計算機(VM:Virtual Machine)で構成した例を示す。すなわち、ネットワークソフトウェア実行部31は、CPUとメモリを含んで、複数の仮想計算機が所定のソフトウェアを実行することでパケットを処理する。
受信回路155は、パケット振り分け部33の送信回路53−1から転送されたパケットを受信し、パケット振り分け部158に転送する。パケット振り分け部158は、受信したパケットを予め設定された内部の振分けテーブル(図示省略)に基づいて複数の処理部59−1、59−2、…、59−nに振分ける。
処理部59−1、59−2、…、59−nは、ネットワーク管理サーバ20によって指定された処理を実行し、実行結果のパケットをパケット多重部160に出力する。パケット多重部160は、複数の処理部59から受信したパケットをまとめて送信回路156に出力し、送信回路156からパケット振り分け部33の受信回路54−1に送信する。
ネットワークソフトウェア実行部31のパケット振り分け部158とパケット多重部160は例えば、仮想スイッチを制御する。カードコントローラ161はこれらの設定や状態監視を行う。なお、ネットワークソフトウェア実行部31の詳細については後述する。
次に、プログラマブルネットワーク処理部32−1、32−2もカードの形態である。本実施例1では、処理部62−1〜62−nをFPGA等のハードウェアで構成した例を示す。なお、プログラマブルネットワーク処理部32−1、32−2は同一の構成であるので、プログラマブルネットワーク処理部32−1のみについて説明する。
プログラマブルネットワーク処理部32−1の内部は、受信回路255と送信回路256をそれぞれ2つ有し、パケット振り分け部33とプログラマブルネットワーク処理部32−1の間でより多くのパケットを転送することができる。
2つの受信回路255−1、255−2で受信されたパケットは、パケット振り分け部(第3の振り分け部)258に転送される。パケット振り分け部258は内部の振分けテーブル(図示省略)に基づいて受信したパケットを複数の処理部62−1、62−2、…、62−nに振分ける。
これらの処理部62は、1つのFPGAの中に設定される1以上の処理ブロックで構成される。処理部62−1〜62−nでそれぞれ処理されたパケットはパケット多重部260に転送される。パケット多重部260は、複数の処理部62から受信したパケットをまとめてから2つの送信回路256−1、256−2に分配し、パケット振り分け部33の受信回路54−2、54−3に送信する。カードコントローラ261は、上記機能部位の設定や状態の監視を行う。
この例ではプログラマブルネットワーク処理部32の受信回路255と送信回路256の数を2つずつにしたが、1つずつでも3つずつ以上でも良い。パケット振り分け部33には、これらの受信回路255、送信回路256と同数の送信回路53、受信回路54を持たなければならない。同様に、ネットワークソフトウェア実行部31も受信回路155、送信回路156の数は1つずつより多くても良い。
上記通信装置30−1の構成により、ネットワーク管理サーバ20は、ネットワークソフトウェア実行部31−1やプログラマブルネットワーク処理部32−1を選択して、他の通信装置30や基地局2、あるいは外部のサーバなどから送信されたパケットを処理することができる。
さらに、通信装置30は、各ネットワーク処理リソース内の複数の処理部にパケットを振り分けて処理させることで、ネットワーク処理リソースを様々なネットワーク処理機能に利用することができる。
図3は、ネットワークソフトウェア実行部31−1の一例を示すブロック図である。なお、ネットワークソフトウェア実行部31−2も同様の構成であるので、重複した説明は省略する。
ネットワークソフトウェア実行部31−1は、処理を実行するCPU310と、データやプログラムを格納するメモリ311と、パケット振り分け部33と通信を行う受信回路155及び送信回路156を含む。なお、受信回路155と送信回路156は、ひとつのネットワークインタフェースで構成してもよい。他の受信回路と送信回路も同様であり、ひとつのネットワークインタフェースで構成することができる。
CPU310は、複数のプロセッサコアを含むマルチコアプロセッサで構成することができる。メモリ311には、ネットワークソフトウェア実行部31−1のネットワーク処理のリソースを仮想計算機350−1〜350−nに割り当てるハイパバイザ320が格納されて、CPU310によって実行される。
仮想計算機350−1〜350−nでは、OSやアプリケーションでパケットの処理を実行する処理部59−1〜59−nがそれぞれ稼働する。各処理部59が行う処理は、ネットワーク管理サーバ20で決定される。各処理部59は、ネットワーク管理サーバ20が配布したプログラムを実行して、パケットに所定の処理を行う。
ハイパバイザ320は、仮想NIC(Network Interface Card)340−1〜340−nを仮想計算機350−1〜350−nに提供する。そして、仮想NIC340−1〜340−nは、ハイパバイザ320が提供する仮想スイッチ330を介して、受信回路155や送信回路156と通信を行う。なお、上述のパケット振り分け部158とパケット多重部160はハイパバイザ320内に提供される機能の一つである。パケット振り分け部158は、装置コントローラ34によって予め設定された振り分けテーブル162に基づいて、パケットを転送する処理部59−1〜59−nを選択する。
カードコントローラ161は、ハイパバイザ320内で各機能要素の管理と監視を実行する。本実施例1では、ハイパバイザ320がひとつの機能としてカードコントローラ161を提供する例を示す。カードコントローラ161は、装置コントローラ34の指令に応じて各機能要素の設定や仮想計算機350−1〜350−nで行う処理を変更することができる。
プログラマブルネットワーク処理部32−1は、パケット振り分け部258と、処理部62−1〜62−nと、パケット多重部260をFPGAで構成することができる。また、プログラマブルネットワーク処理部32−1では、振り分けテーブルをカードコントローラ261内に保持するようにすればよい。
<パケット振り分け部のパケット振分け処理>
図2の通信装置30−1を例として、パケット振り分け部33、158におけるパケット振分け処理の実施形態の一例を説明する。なお、プログラマブルネットワーク処理部32のパケット振り分け部258も、ネットワークソフトウェア実行部31のパケット振り分け部158と同様の機能を有するので、重複した説明は省略する。
本実施例1では、パケットの振分けを行う構成要素が、パケット振り分け部33のパケット処理部57と、カード形態のネットワーク処理リソース内のパケット振り分け部158との多段構成となっている。前段のパケット処理部57がパケットをカード単位(ネットワークソフトウェア実行部31、プログラマブルネットワーク処理部32)で振分け、後段のパケット振り分け部158がパケットを処理部59の単位でパケットを振り分ける。
パケットには、当該パケットが受けるネットワーク処理機能を示すラベルがVLANタグや宛先MACアドレス、宛先IPアドレスやポート番号などの形で付与されている。
パケット処理部57は、ネットワーク処理機能を示すラベルに対し、当該ラベルに応じたネットワーク処理機能を実行するネットワーク処理リソースの対応を示した振分けテーブル571を参照し、パケットを当該ラベルに応じたネットワーク処理リソースに転送する。この振分けテーブル571はネットワーク管理サーバ20によって管理される。
パケット振り分け部158は、ネットワーク処理機能を示すラベルに対し、ネットワーク処理機能を実行する処理部59とラベルの対応を示した振分けテーブル162を参照し、パケットをラベルに応じた処理部59に転送する。この振分けテーブル162はカードコントローラ161によって管理される。
パケット振り分け部158は、1つのネットワーク処理機能に複数の処理部59−1〜59−nを割り当てた場合、もし処理対象となるパケットのラベルが複数存在すれば、そのラベル群を分割してそれぞれを異なる処理部59に振り分ける。
また、処理対象となるパケットの順序逆転が許容される場合などはパケットのラベルに応じて処理部59を分ける必要のないため、パケット振り分け部158には、パケット振り分け部158が受信したパケットを到着順などで複数の処理部59に振り分ける機能を実装することができる。
そして、パケット振り分け部158は、振分けテーブル162において、当該ネットワーク処理機能を受けるパケットのラベルに対する振分け処理と複数の振分け先を指定する。パケット振り分け部158はこの振分けテーブル162を参照して、受信したパケットのラベルに応じた複数の振分け先に指定された振分け内容でパケットを転送する。振分け内容には、到着順での振分けの他に、ランダムな振分けなど多種存在するが、いずれの振り分け内容であっても本実施例1のネットワーク処理システムに適用できる。
なお、プログラマブルネットワーク処理部32では、FPGA等のハードウェアで処理部62を構成するので、パケット振り分け部258が振り分けテーブル162を保持するようにしても良い。あるいは、カードコントローラ261が振り分けテーブル162を保持し、パケット振り分け部258が振り分けテーブル162を参照するようにしてもよい。
<パケット多重部の振分け処理>
図2の通信装置30−1のプログラマブルネットワーク処理部32−1を例として、パケット多重部260におけるパケット振分け処理の一例を説明する。なお、プログラマブルネットワーク処理部32−2も同様の構成であるので重複した説明は省略する。
プログラマブルネットワーク処理部32−1のパケット多重部260において、2つの送信回路256−1、256−2への振分けのポリシーや振分け方法は、例えば、受信回路255−1、255−2で受信したパケットをそれぞれ送信回路256−1、256−2から出力する場合、パケット振り分け部258が受信回路255−1、255−2に応じたヘッダをパケットに付与し、パケット多重部260が当該ヘッダに基づいて送信回路256−1、256−2に振り分ける。これ以外の振分けポリシーや振り分け方法を採用しても良い。
<ネットワーク管理サーバの構成>
図4はネットワーク管理サーバ20の構成の一例を示すブロック図である。ネットワーク管理サーバ20は、CPU70と、メモリ71と、ストレージ装置75と、通信装置制御インタフェース91と、保守端末接続インタフェース92とを含む。
メモリ71には、利用状況監視部(稼働状態監視部)72と、コア管理部(構成管理部)73と、モジュール管理部74から成るネットワーク処理部171が格納されて、CPU70によって実行される。ストレージ装置75には、コア資源管理データベース81と、コア機能管理データベース82と、処理機能グループ管理データベース83と、モジュールデータベース84と、コアコスト管理データベース231と、コストルールデータベース232と、振り分けテーブル233から成るデータベースが格納される。
ネットワーク処理部171は、通信装置制御インタフェース91と管理ネットワーク40を介して通信装置30の装置コントローラ34に接続されている。装置コントローラ34は通信装置30の状態や設定を監視し、制御している。また、ネットワーク処理部171は、保守端末接続インタフェース92を介して保守端末21に接続されており、保守を行う管理者等が保守端末21からネットワーク処理部171を介してデータベースの情報を読み書きできる。
コア管理部73は、利用状況監視部72の監視結果に基づいて、通信装置30内のネットワーク処理実行リソースの性能や状態をコア資源管理データベース81で管理する。新たにネットワーク処理実行リソース(プログラマブルネットワーク処理部32やネットワークソフトウェア実行部31)が通信装置30に追加または削除されると、保守端末21もしくは通信装置30の装置コントローラ34がコア管理部73に追加または削除を通知する。コア管理部73は、受信した通知に従ってコア資源管理データベース81を更新する。
また、コア管理部73は、処理機能グループ管理データベース83に基づいてパケット処理部57の振分けテーブル571を更新する。なお、コア管理部73は、運用中の通信装置30のネットワーク処理実行リソース(例えば、プログラマブルネットワーク処理部32)が削除された場合には、他のネットワーク処理実行リソース(例えば、ネットワークソフトウェア実行部31)に処理を移すようにモジュール管理部74と通信装置30に指令を出力する。
利用状況監視部72は、通信装置30の装置コントローラ34に定期的にアクセスし、ネットワーク処理実行リソースを構成する処理部59、62の利用帯域や利用コア数等の利用状況を通信装置30の稼働状態を示す稼働情報として取得する。利用状況監視部72は、取得した処理部59、62の利用帯域から各通信装置30のネットワーク処理機能の利用帯域を算出し、処理機能グループ管理データベース83に格納する。
利用状況監視部72は、図7で示すように、ネットワークの処理機能832ごとの利用帯域125が予め設定された閾値127、129の何れかを超過すると、処理部59、62の増設や、ネットワークソフトウェア実行部31をプログラマブルネットワーク処理部32に置き換える指示をコア管理部73に出力する。
反対に、利用状況監視部72は、図7で示すように、ネットワークの処理機能832ごとの利用帯域125が予め設定された閾値128、130の何れかを下回ると、処理部59、62の削減や、プログラマブルネットワーク処理部32をネットワークソフトウェア実行部31に置き換える指示をコア管理部73に出力する。
利用状況監視部72は、運用中の処理部59、62が削除される場合は、他の処理部59、62に処理を移すようにコア管理部73に指示する。なお、上記閾値は保守を行う管理者等によって予め設定されてもよいし、ネットワーク管理サーバ20が定められたルールに基づいて決定してもよい。この場合、このルールはコストルールデータベース232で管理される。
モジュール管理部74は、各処理部59、62にインストールされたネットワーク処理機能と稼働状態をコア機能管理データベース82で管理する。また、モジュール管理部74は、コア管理部73の指示に従い、各処理部59にネットワーク処理プログラムをインストールさせ、また、各処理部62にネットワーク処理回路の構築を指令する。
また、モジュール管理部74は、ネットワーク処理プログラムやネットワーク処理回路のレイアウトが格納されるモジュールデータベース84を管理しており、保守端末21と保守端末接続インタフェース92を介して受け付ける保守を行う管理者等からの指示に従い、ネットワーク処理プログラムやネットワーク処理回路の追加や削除を行う。
<ネットワーク管理サーバのデータベースの構成>
ネットワーク管理サーバ20のコア資源管理データベース81には、ネットワーク処理リソースの実体と処理性能が格納される。図5は、コア資源管理データベース81の一例を示す図である。
コア資源管理データベース81は、通信装置30の識別子を格納する装置ID101と、通信装置30内のカードの識別子を格納するカードID102と、カードの種別を格納するコア種別103と、当該コア種別103の処理部59、62の数を格納するコア数104と、コア数104のうち使用中の処理部59、62の数を格納する利用コア数105と、処理部59、62のひとつ当たりの処理性能を示す指標を格納するコアあたりの性能106からひとつのエントリが構成される。
装置ID101とカードID102は、ネットワーク処理リソースが格納された通信装置30の識別子と、ネットワークソフトウェア実行部31やプログラマブルネットワーク処理部32等の通信装置30内のネットワーク処理リソースの識別子である。これらの識別子により、ネットワーク処理リソースの物理的な位置を特定できる。
コア種別103は、当該ネットワーク処理リソースの種類を示し、本実施例1ではネットワークソフトウェア実行部31(CPU)とかプログラマブルネットワーク処理部32(FPGA)の何れかで表す例を示した。
コア数104と、利用コア数105は、当該ネットワーク処理リソースが有する処理部の数と、現在利用されている処理部の数を示す。ネットワークソフトウェア実行部31(CPU)の場合、処理部59は例えばVMで構成され、FPGAの場合、処理部62はFPGA内に形成される処理ブロックである。
コアあたりの性能106は、当該ネットワーク処理リソースの処理部59、62の1つあたりが提供する最大処理性能である。本実施例1で、ネットワークソフトウェア実行部31とプログラマブルネットワーク処理部32の種類が1つずつしかない場合など、コア種別103によってコアあたりの性能106が一意に決まる場合は、コア種別103に格納された種別によって、コア数104の数に基づいて、カード1つあたりの最大処理性能をコア管理部73等で決定することができる。図示の例では、コアあたりの性能106として、単位時間で処理可能なビット数(bps)で表す例示したが、これに限定されるものではない。他にも収容可能なパケットアドレスの数などがある。
コア資源管理データベース81のコア数104及び利用コア数105は、利用状況監視部72が所定のタイミングで通信装置30の装置コントローラ34から取得した値が設定される。また、コア種別103やコアあたりの性能106は、管理者などが予め設定した値である。
次に、コア機能管理データベース82には、ネットワーク処理リソースの処理部59、62ごとに実行するネットワーク処理機能が格納される。図6は、コア機能管理データベース82の一例を示す図である。
コア機能管理データベース82は、通信装置30の識別子を格納する装置ID821と、通信装置30内のカードの識別子を格納するカードID822と、処理部59、62の識別子を格納するコアID111と、当該コアID111に割り当てた機能を格納する処理機能112と、当該コアID111の稼働状態を格納する状態113からひとつのエントリが構成される。
装置ID821とカードID822は、コア資源管理データベース81と同じく、ネットワーク処理リソースの物理的な位置を示す装置IDと、カードIDである。コアID111は、ネットワーク処理リソースを構成する処理部59、62の識別子である。
処理機能112は、各処理部59、62にインストールまたは設定されたネットワーク処理機能の識別子が格納される。図中EPC(Evolved Packet Core)は、コアネットワークの処理機能を示し、DPI(Deep Packet Inspection)は、パケットの内容を参照して、フィルタリングなどの処理を決定する処理機能を示し、「未使用」は該処理部に処理機能が割り当てられていないことを示す。また、処理機能112は、モジュール管理部74が処理部59、62にインストールまたは設定した機能(モジュールプログラム)が格納される。
状態113は、各処理部59、62にインストールされたネットワーク処理機能の状態を示す。「インストール中」は、割り当てた機能がまだインストール中(または設定中)であることを示し、「有効」は割り当てた機能が利用されていることを示し、「無効」は割り当てた機能が利用されていないことを示す。
処理機能グループ管理データベース83には、通信装置30のネットワーク処理機能ごとの処理性能や使用中のネットワーク処理リソースなどの情報が格納される。図7は、処理機能グループ管理データベース83の一例を示す図である。
処理機能グループ管理データベース83は、通信装置30の識別子を格納する装置ID831と、通信装置30内に割り当てられた処理機能の識別子(または名称)を格納する処理機能832と、使用中の処理部59、62の数を格納する利用コア数122と、処理を実行中の処理部の識別子を格納する処理コアID123と、当該処理部で利用可能な性能を格納する利用可能帯域124と、当該処理部が使用中の性能を格納する利用帯域125と、プログラマブルネットワーク処理部32による処理の有効または無効を示すハードアシスト状態126と、処理性能の向上を決定する閾値を格納するスケールアウト閾値127と、処理性能の縮小を決定する閾値を格納するスケールイン閾値128と、処理コア種別をネットワークソフトウェア実行部31からプログラマブルネットワーク処理部32に変更する閾値を格納するハードアシスト有効化閾値129と、処理コアの種別をプログラマブルネットワーク処理部32からネットワークソフトウェア実行部31に変更する閾値を格納するハードアシスト無効化閾値130と、からひとつのエントリが構成される。
処理機能グループ管理データベース83は、通信装置30の識別子ごとにネットワーク処理機能を管理するものである。装置ID831の識別子は、コア機能管理データベース82のカードID822と同様である。利用コア数122には、ネットワーク処理機能832に割り当てられた処理部の数が示され、処理コアID123には処理部の識別子が格納される。
利用可能帯域124には、当該処理部59、62で処理可能な最大の性能(帯域)が利用可能帯域として格納される。利用帯域125には、実際に使用されている帯域が使用帯域として格納される。なお、利用可能帯域124や各閾値127〜130は、予め設定した値を設定すればよい。また、利用コア数122、処理コアID123、利用帯域125、ハードアシスト状態126は、利用状況監視部72が所定のタイミングで取得した値を格納する。
ハードアシスト状態126は、ネットワーク処理リソースをネットワークソフトウェア実行部31(CPU)からプログラマブルネットワーク処理部32(FPGA=ハードウェア)に変更しているか否かを示す。
ハードアシスト状態126が「有効」であれば、FPGA等のハードウェアで処理を実行するプログラマブルネットワーク処理部32が使用されていることを示す。ハードアシスト状態126「無効」であれば、ハードアシストが実行されていない状態であり、ネットワーク処理リソースにネットワークソフトウェア実行部31が使用されていることを示す。
スケールアウト閾値127には、利用帯域125が利用可能帯域124の何%に達すると処理部を追加するかを決定する値がスケールアウト閾値として格納される。スケールイン閾値128には、利用帯域125が利用可能帯域124の何%を下回ると処理部を減らすかがスケールイン閾値として格納される。
ハードアシスト有効化閾値129には、利用帯域が増大したときにハードアシストを実行することを決定する閾値が、ハードアシスト有効化閾値として格納される。ハードアシスト無効化閾値130には、利用帯域が低下したときにハードアシストを解除することを決定する閾値がハードアシスト無効化閾値として格納される。
モジュールデータベース84には、ネットワーク処理リソースにインストールされるネットワーク処理機能についてモジュールプログラムの種類や格納場所が格納される。
図8は、モジュールデータベース84の一例を示す図である。モジュールデータベース84には、管理者などが予め設定した値が格納される。
モジュールデータベース84は、カードの種類を示すモジュール種別131と、当該モジュールプログラムに割り当てた機能を格納する処理機能132と、当該モジュールプログラムを格納する形式133と、機能を供するための実行プログラムやソースコードなどの名称が格納されるファイル名134と、からひとつのエントリが構成される。
モジュール種別131には、CPU(ネットワークソフトウェア実行部31)またはFPGA(プログラマブルネットワーク処理部32)などカードで実行されるモジュールプログラムの種別が格納される。
処理機能132には、モジュールプログラムが提供するネットワーク処理機能の識別子が格納される。形式133には、モジュールプログラムが実行プログラムか、バイナリコードか、ソースコードかといったモジュールプログラムの形式が格納される。ファイル名134には、モジュールプログラムの格納場所を示すファイル名が記載される。ファイル名が示す格納場所にモジュールプログラムが保存される。
なお、ネットワーク管理サーバ20は、ソースコードから実行プログラムを生成するコンパイラを有することができる。この場合、モジュールデータベース84にはモジュールプログラムではなくソースコードが格納され、ソースコードから一部の機能を抽出したり、複数のソースコードを結合するなどしてからコンパイルすることで、所望の実行プログラムをカードに提供することができる。また、管理者などがソースコードを編集した後にコンパイルして所望の実行プログラムをカードに提供することも可能となる。
次に、コアコスト管理データベース231は、コア資源管理データベース81を補足するテーブルであり、ネットワーク処理実行リソースの価格(利用料金)に関する情報が格納される。
図10は、コアコスト管理データベース231の一例を示す図である。コアコスト管理データベース231は、通信装置30の識別子を格納する装置ID2311と、通信装置30内のカードの識別子を格納するカードID2312と、当該カードの導入価格を格納する初期コスト241と、当該カードのひとつの処理部59、62当たりの利用価格を格納するコアあたりのコスト242と、からひとつのエントリが構成される。なお、これらの値は、管理者などが予め設定した値である。
装置ID2311とカードID2312は、コア資源管理データベース81と同様である。初期コスト241には、各カードを導入(増設)するための価格が格納される。また、コアあたりのコスト242には、処理部59、62を1つ利用するための価格(運用コスト)が格納される。
<振り分けテーブル>
どの処理機能112がいずれの処理部59、62で実行されるかは処理機能グループ管理データベース83で管理される。これに基づいて各処理機能112で処理されるパケットが決められた処理部59、62に転送されるように、通信装置30のパケット振り分け部33の振り分けテーブル571と、ネットワークソフトウェア実行部31のパケット振り分け部158、プログラマブルネットワーク処理部32のパケット振り分け部258の振り分けテーブルが設定される。
振り分けには、MACアドレスやIPアドレス、IPヘッダ内に格納されるサービス種別やプロトコル種別など様々なものが利用できる。例えば、サービス種別がTCPでIPアドレスの上位8bitが123のパケットを通信装置30−1のソフトウェア実行部31−1に転送するようにパケット振り分け部33の振り分けテーブルに設定し、さらにIPアドレスの下位8bitが0〜127のパケットを処理部59−1、128〜255のパケットを処理部59−2に転送するようにパケット振り分け部158の振り分けテーブルに設定する。他にも様々な組合せを各振り分けテーブルに設定することができる。
この振り分けテーブル233は管理者などが保守端末21を使って設定する他、ネットワークを流れる制御パケットを装置コントローラ34が監視し、その制御パケットの情報に基づいて設定される。
上記により、各通信装置30毎にパケット処理部57は振り分けテーブル571を参照して、パケットの内容に応じたカードにパケットを振り分ける。そして、各カードのパケット振り分け部158、258は、パケットの内容に応じて自カード内の処理部59、62へパケットを振り分ける。各パケット振り分け部33、158、258は、1つのパケットに複数の宛先が割り当てられている場合には到着順にパケットを振り分ける。
これらパケット振り分け部33、158、258の振り分けテーブルは、ネットワーク管理サーバ20の振り分けテーブル233で管理され、変更があった際には、該当の通信装置30の装置コントローラ34に管理サーバ20のコア管理部73から振り分けテーブルの変更が通知される。例えば、処理部59、62やカードのスケールアウトやスケールインを行う度に、各振り分けテーブル233は更新され、パケット振り分け部33の振り分けテーブル571と、パケット振り分け部158、258の各振り分けテーブルが更新される。
本実施例では、パケット振り分け部33、158、258の振り分けテーブルを管理サーバ20の振り分けテーブル233で一元管理しているが、管理サーバ20において振り分けテーブル233を無くし、処理機能グループ管理データベース83と各処理機能で処理すべきパケットの情報(MACアドレスやIPアドレスなど)を通信装置30の装置コントローラ34に通知してもよい。この場合、装置コントローラ34がパケット振り分け部33、158、258の振り分けテーブルを生成する。
<ネットワーク処理リソースの制御>
図9A、図9Bは、ネットワーク管理サーバ20のネットワーク処理部171(利用状況監視部72、コア管理部73、モジュール管理部74)で行われる処理の一例を示すフローチャートである。この処理は、所定の周期で実行される。
まず初めに、ステップ211では、利用状況監視部72が、通信装置制御インタフェース91を介して各通信装置30の装置コントローラ34にアクセスし、各通信装置30のネットワーク処理リソースが有する処理部59、62の利用帯域を取得する。この時、併せて稼働状態等の情報を全て取得してもよい。利用状況監視部72は、取得した情報で処理機能グループ管理データベース83を更新する。同時に、他の各データベース(コア資源管理データベース81、コア機能管理データベース82)を更新してもよい。
そして、利用状況監視部72は、処理機能グループ管理データベース83にアクセスし、処理機能832に対応付けられた処理コアIDの処理部59、62の利用帯域を合算して、処理機能832に対応する利用帯域(稼働情報)125を更新する。そして、次のステップ201に処理が移る。
ステップ201では、利用状況監視部72は、処理機能グループ管理データベース83のハードアシスト状態126を処理機能832ごとに読み込んで、「無効」と「有効」の何れかであるかを判定する。「無効」であればステップ202へ進み、「有効」であれば図9Bのステップ205の処理へ進む。
ステップ202では、利用状況監視部72が、処理機能グループ管理データベース83を参照し、利用帯域125の値がハードアシスト有効化閾値129よりも大きければステップ212へ進み、それ以外はステップ203の処理に進む。
ステップ212は、コア管理部73が後述するようにハードアシスト処理を実施する。この処理によって、ネットワーク処理実行リソースがネットワークソフトウェア実行部31からプログラマブルネットワーク処理部32に変更される。ネットワーク処理部171は、ハードアシスト処理が完了すると処理を終了する。
ステップ203では、利用状況監視部72が、処理機能グループ管理データベース83を参照し、利用帯域125がスケールアウト閾値127よりも大きければステップ213、それ以外はステップ204に処理を移す。
ステップ213では、後述するようにコア管理部73が、ソフトスケールアウト処理を実施する。この処理により、ネットワーク処理に用いられるネットワークソフトウェア実行部31の数が増大する。ネットワーク処理部171は、スケールアウト処理が完了すると処理を終了する。
ステップ204では、利用状況監視部72が、処理機能グループ管理データベース83を参照し、利用帯域125がスケールイン閾値128よりも小さければステップ214へ進み、それ以外であればここまでの一連の処理を終了する。
ステップ214は、後述するようにコア管理部73が、ソフトスケールイン処理を実施する。この処理により、ネットワーク処理に用いられるネットワークソフトウェア実行部31の数が減少される。ネットワーク処理部171は、スケールイン処理が完了すると処理を終了する。
一方、ステップ201の判定結果が有効の場合の分岐先である図9Bのステップ205では、利用状況監視部72が、処理機能グループ管理データベース83を参照し、利用帯域125がハードアシスト無効化閾値130よりも小さければステップ215へ進み、それ以外はステップ206に処理を移す。
ステップ215は、後述するようにコア管理部73が、ハードアシスト解除処理を実施する。この処理によって、ネットワーク処理実行リソースをプログラマブルネットワーク処理部32からネットワークソフトウェア実行部31に変更する。ネットワーク処理部171は、ハードアシスト解除処理が完了すると処理を終了する。
ステップ206では、利用状況監視部72が、処理機能グループ管理データベース83を参照し、利用帯域125がスケールアウト閾値127よりも大きければステップ216へ進み、それ以外はステップ207に処理を移す。
ステップ216は、後述するようにコア管理部73が、ハードスケールアウト処理を実施する。この処理により、ネットワーク処理に用いられるプログラマブルネットワーク処理部32の数が増加される。
ステップ207では、利用状況監視部72が処理機能グループ管理データベース83を参照し、利用帯域125がスケールイン閾値128よりも小さければステップ217へ進み、それ以外であればここまでの一連の処理を終了する。
ステップ217は、後述するようにコア管理部73が、ハードスケールイン処理を実施する。この処理により、ネットワーク処理に用いられるプログラマブルネットワーク処理部32の数が減少される。
以上の処理によって、各処理部59、62の利用帯域125の値の変化によって、スケールアウトとスケールインまたはハードアシストの有効と無効が動的に変更される。
<ハードアシスト処理>
以下に、図9Aのステップ212で行われるハードアシスト処理の詳細な例を説明する。
まず、コア管理部73が、コア資源管理データベース81にアクセスし、コア種別103が「FPGA」で、且つコア数104が利用コア数105より大きいカードID102のプログラマブルネットワーク処理部32を1つ選択して「アシストカード」とする。すなわち、図9Aのステップ202で利用帯域125を比較したネットワークソフトウェア実行部31の処理をオフロードするカードとして、プログラマブルネットワーク処理部32を「アシストカード」として選択する。
コア管理部73は、カードID102を選択した「アシストカード」のエントリの利用コア数105の値に1を加算し、コア資源管理データベース81を更新する。そして、コア管理部73は、コア機能管理データベース82にアクセスし、「アシストカード」のカードIDに該当するカードID822を選択する。コア管理部73は、選択したカードID822が有するコアID111の中から状態113が「無効」となっているエントリの処理部62を1つ「アシストコア」として選択する。
次に、コア管理部73は、コア機能管理データベース82の現在選択中のエントリの処理機能112に、処理機能グループ管理データベース83の処理機能832と同じネットワーク処理機能の識別子(名称)を上書きする。すなわち、処理をオフロードするネットワークソフトウェア実行部31の処理部59に割り当てていた機能を、コア機能管理データベース82の「アシストカード」のエントリの処理機能112に設定する。そして、コア管理部73は、現在選択中のコア機能管理データベース82のエントリの状態113を「インストール中」に更新する。
次に、モジュール管理部74が、モジュールデータベース84を参照し、モジュール種別131が「FPGA」で、且つ処理機能132が「アシストコア」にインストールされる処理機能であるモジュールプログラム(ネットワーク処理回路レイアウト)を、ファイル名134が示す格納場所から取得する。ただし、当該モジュールプログラムの形式133がソースコードやバイナリコードの場合、モジュール管理部74はコンパイラなどを用いて実行プログラムに変換する。そして、モジュール管理部74は、通信装置制御インタフェース91を介して選択したモジュールプログラムを上記選択した「アシストコア」にインストールする指令と、実行プログラムを送信する。
次に、コア管理部73が、処理をオフロードする「アシストコア」の追加前から利用されているネットワークソフトウェア実行部31の処理部(「被アシストコア」とする)の設定テーブル等を「アシストコア」に引き継がせる。
「被アシストコア」の処理部59の処理を「アシストコア」の処理部62に引き継がせる手法としては、公知または周知の技術を適用すればよい。例えば、コア管理部73が「被アシストコア」と「アシストコア」を管理する装置コントローラ34にアクセスし、カードコントローラ161から「被アシストコア」の設定テーブル(図示省略)を読み出す指令を送信する。装置コントローラ34はカードコントローラ161から取得した設定テーブルの内容をコア管理部73に送信する。
コア管理部73は、装置コントローラ34から受信した「被アシストコア」の設定テーブルの内容を「アシストコア」を管理するカードコントローラ261に通知することで、「アシストコア」の設定テーブルの内容を「被アシストコア」の設定テーブルの内容に同期させて、処理を引き継がせる。
次に、処理を引き継ぐ「アシストコア」にパケットが転送されるようにパケット処理部57の振り分けテーブル571と、パケット振り分け部158、258の振り分けテーブル162を変更する。以上の処理により、ネットワーク処理実行リソースがネットワークソフトウェア実行部31の「被アシストコア」からプログラマブルネットワーク処理部32の「アシストコア」に移行する。
最後に、コア管理部73が、コア機能管理データベース82にアクセスし、「アシストコア」のエントリで状態113を「有効」に変更する。また、コア管理部73は、「被アシストコア」のエントリで状態113を「無効」に変更し、カードコントローラ261に「被アシストコア」の設定テーブルを削除させる。
さらに、コア管理部73は、コア機能管理データベース82にアクセスし、各カードで状態113が「有効」な処理部59、62の数を再度カウントしてコア資源管理データベース81の利用コア数105を更新する。また、コア管理部73は、処理機能グループ管理データベース83にアクセスし、「アシストコア」の処理コアID123に対応するエントリでハードアシスト状態126を「有効」にする。
また、コア管理部73は、処理機能グループ管理データベース83の現エントリで「被アシストコア」に対応する処理部59のIDを処理コアID123から削除し、「アシストコア」の処理部62のIDを追加する。
そして、コア管理部73は、処理機能グループ管理データベース83の現エントリで利用コア数122を「1」に設定する。また、コア管理部73は、利用可能帯域124を処理コアID123に基づいて変更する。なお、「アシストコア」の利用可能帯域124は、コア資源管理データベース81のコアあたりの性能106を参照すればよい。
以上の処理により、ネットワーク管理サーバ20の各データベースにおいても、「被アシストコア」から「アシストコア」へのネットワーク処理実行リソースの移動が完了する。
以上の処理により、ネットワークソフトウェア実行部31の「被アシストコア」で行われていたネットワーク処理を、FPGAを主体とするプログラマブルネットワーク処理部32の「アシストコア」へ移動して、ネットワーク処理の高速化を図ることができる。
この例では、全ての「被アシストコア」のネットワーク処理を1つの「アシストコア」に移すこととした。ハードアシスト処理時の通信断期間を抑えるためには、コアあたりの性能106がハードアシスト閾値よりも大きなカードを「ハードアシストコア」、その処理部62を「アシストコア」として選択する必要がある。この必要条件を「ハードアシストコア」、「アシストコア」の選択条件に加えてもよい。
また、1つの処理部62では性能が不足する場合には、複数の処理部62を同時に「アシストコア」として選択するようにしてもよい。
また、ハードアシスト処理で「アシストカード」を選択する際、処理機能グループ管理データベース83で各処理機能832の最大利用帯域も管理し、この最大利用帯域の値を収容可能であることを「アシストカード」として選択されるカードの条件に加えてもよい。
また、「アシストカード」の未使用の処理部62を予約する機能をもたせてもよい。これにより、他の処理機能832によって「アシストカード」の未使用の処理部62を使用されないようにすることができる。これらにより、さらに利用帯域が増加した際にも同じ「アシストカード」の他の処理部62に処理を移すこと(ハードスケールアウト処理)ができる。
<ソフトスケールアウト処理>
以下に、図9Aのステップ213で行われるソフトスケールアウト処理の詳細な例を説明する。
まず、コア管理部73が、コア資源管理データベース81にアクセスし、コア種別103が「CPU」で、且つコア数104が利用コア数105より大きいカードID102のネットワークソフトウェア実行部31を1つ選択して「追加カード」とする。すなわち、図9Aのステップ202で利用帯域125を閾値と比較したネットワークソフトウェア実行部31の処理を分散するカードとして、ネットワークソフトウェア実行部31を「追加カード」として選択する。ただし、「追加カード」としては現在使用中のネットワークソフトウェア実行部31を優先する。
コア管理部73は、「追加カード」として選択したカードID102のエントリの利用コア数105の値に1を加算し、コア資源管理データベース81を更新する。
そして、コア管理部73は、コア機能管理データベース82にアクセスし、「追加カード」のカードIDに該当するエントリで、ネットワークソフトウェア実行部31が有する処理部59の中から状態113が「無効」となっている処理部59を1つ「追加コア」として選択する。
さらに コア管理部73は、「追加コア」を選択したエントリで処理機能112に、処理機能グループ管理データベース83の処理機能121と同じネットワーク処理機能の識別子(名称)を上書きする。すなわち、処理を分散するネットワークソフトウェア実行部31の処理部59に割り当てた機能を、コア機能管理データベース82の「追加コア」のエントリの処理機能112に設定する。そして、コア管理部73は、現在選択中のコア機能管理データベース82のエントリの状態113を「インストール中」に変更する。
次に、モジュール管理部74が、モジュールデータベース84を参照し、モジュール種別131が「CPU」で、且つ処理機能132が「追加コア」にインストールされる処理機能であるモジュールプログラムを、ファイル名134が示す格納場所から取得する。ただし、当該モジュールプログラムの形式133がソースコードやバイナリコードの場合、モジュール管理部74はコンパイラなどを用いて実行プログラムに変換する。そして、モジュール管理部74は、通信装置制御インタフェース91を介して、上記選択したモジュールプログラムを「追加コア」にインストールする指令と、実行プログラムを送信する。
次に、コア管理部73が、処理を分散する「追加コア」の追加前から利用されているネットワークソフトウェア実行部31の処理部(「保持コア」とする)の設定テーブルの内容の一部を「追加コア」に引き継がせ、「保持コア」にかかる負荷を削減する。「保持コア」の処理部59の処理の一部を「追加コア」の処理部59に引き継がせる手法としては、公知または周知の技術を適用すればよい。例えば、コア管理部73が「保持コア」と「追加コア」を管理する装置コントローラ34にアクセスし、カードコントローラ161から「保持コア」の設定テーブル(図示省略)を読み出す指令を送信する。装置コントローラ34はカードコントローラ161から取得した設定テーブルの内容をコア管理部73に送信する。
コア管理部73は、装置コントローラ34から受信した「保持コア」の設定テーブルの一部を「追加コア」を管理するカードコントローラ161に通知することで、「保持コア」の設定テーブルの内容を「追加コア」の設定テーブルに移動させて、処理を引き継がせる。
次に、処理の一部を引き継ぐ「追加コア」にパケットが転送されるようにパケット処理部57の振り分けテーブル571と、パケット振り分け部158の振り分けテーブル162を変更する。以上の処理により、ネットワークソフトウェア実行部31のネットワーク処理実行リソースに「追加コア」が加えられる。
最後に、コア管理部73が、コア資源管理データベース81にアクセスし、「追加コア」のエントリで状態113を「有効」に変更する。さらに、コア管理部73は、コア機能管理データベース82にアクセスし、各カードで状態113が「有効」な処理部59の数を再度カウントして、コア資源管理データベース81の利用コア数105を更新する。
また、コア管理部73は、処理機能グループ管理データベース83にアクセスし、処理コアID123に「追加コア」の識別子を追加する。そして、コア管理部73は、当該エントリで利用コア数122に1を加算して更新する。また、コア管理部73は、利用可能帯域124を処理コアID123に基づいて変更する。なお、「追加コア」の利用可能帯域124は、コア資源管理データベース81のコアあたりの性能106を参照すればよい。
以上の処理により、ネットワーク管理サーバ20の各データベースにおいても、ネットワーク処理実行リソースに「保持コア」の処理の一部を負担するネットワークソフトウェア実行部31として「追加コア」が追加される。
以上の処理により、ネットワークソフトウェア実行部31で行われていたネットワーク処理を、新たに追加した「追加コア」で分散して処理することにより、高価なFPGAを含むプログラマブルネットワーク処理部32を用いずに、ネットワーク処理の高速化を図ることができる。
<ソフトスケールイン処理>
以下に、図9Aのステップ214で行われるソフトスケールイン処理の詳細な例を説明する。この処理は、CPU310でネットワークソフトウェアを実行するネットワークソフトウェア実行部31の処理部59を縮退する処理である。
まず、コア管理部73が、処理機能グループ管理データベース83にアクセスし、該当するネットワーク処理を実行している処理部59から削除する1つの処理部(「削除コア」とする)を処理コアID123から選択する。また、コア管理部73は、「削除コア」で行っていた処理を引き継ぐ処理部(「保持コア」とする)を、同一の処理機能832内の処理コアID123から選択する。
次に、コア管理部73が、「削除コア」の設定テーブル(図示省略)の内容を「保持コア」の処理部59の設定テーブルに引き継がせる。「削除コア」の処理部59の処理を「保持コア」の処理部59に引き継がせる手法としては、公知または周知の技術を適用すればよい。例えば、コア管理部73が「削除コア」と「保持コア」を管理する装置コントローラ34にアクセスし、カードコントローラ161から「削除コア」の設定テーブル(図示省略)を読み出す指令を送信する。装置コントローラ34はカードコントローラ161から取得した設定テーブルの内容をコア管理部73に送信する。
コア管理部73は、装置コントローラ34から受信した「削除コア」の設定テーブルの内容を「保持コア」を管理するカードコントローラ161に通知することで、「削除コア」の設定テーブルの内容を「保持コア」の設定テーブルに移動させて、処理を引き継がせる。
次に、「削除コア」に転送されていたパケットが「保持コア」に転送されるようにパケット処理部57の振り分けテーブル571と、パケット振り分け部158の振り分けテーブル162を変更する。以上の処理により、ネットワークソフトウェア実行部31のネットワーク処理実行リソースから「削除コア」が削除される。
最後に、コア管理部73が、コア機能管理データベース82にアクセスし、「削除コア」の状態113を「無効」に変更する。さらに、コア管理部73は、コア機能管理データベース82にアクセスし、各カードの状態113が「有効」な処理部59の数を再度カウントして、コア資源管理データベース81の利用コア数105を更新する。
また、コア管理部73は、処理機能グループ管理データベース83にアクセスし、処理コアID123から「削除コア」のIDを削除する。そして、コア管理部73は、当該エントリの利用コア数122から1を減算して更新する。また、コア管理部73は、当該エントリの利用可能帯域124を処理コアID123に基づいて更新する。なお、「削除コア」の利用可能帯域124は、コア資源管理データベース81のコアあたりの性能106を参照すればよい。
以上の処理により、ネットワーク管理サーバ20の各データベースにおいても、ネットワークソフトウェア実行部31のネットワーク処理実行リソースから「削除コア」が削除される。
なお、ソフトスケールイン処理前に、処理機能グループ管理データベース83の利用コア数122が1の場合、「保持コア」がなく、設定テーブルを「保持コア」に引き継げない。このため、削除コアの設定テーブルが完全に削除されていなければ、ソフトスケールイン処理を実行しないこととする。
以上の処理により、ネットワークソフトウェア実行部31から削除コアを削減することで、利用帯域に応じてネットワーク処理リソースを解放することができ、他のネットワーク処理に使用することが可能となる。
<ハードアシスト解除処理>
以下に、図9Bのステップ215で行われるハードアシスト解除処理の詳細な例を説明する。
まず、コア管理部73は、処理機能グループ管理データベース83を参照してハードアシストの解除対象の処理コアID123の利用帯域125を取得し、利用帯域の総和を算出する。
そして、コア管理部73が、コア資源管理データベース81にアクセスし、コア種別103が「CPU」で、且つコア数104が利用コア数105より必要数以上大きいカードID102のネットワークソフトウェア実行部31を選択して「移譲先カード」とする。
ここで、必要数とは、ハードアシストの解除対象のプログラマブルネットワーク処理部32が処理している利用帯域125を、ネットワークソフトウェア実行部31で処理するために必要な処理部59の数である。
コア管理部73は、コア資源管理データベース81の「移譲先カード」のエントリに対し、利用コア数105の値を移譲先として使用する処理部59の数だけ増加させる。すなわち、コア管理部73は、利用帯域の総和を満たす必要数だけ利用コア数105を増加する。
そして、コア管理部73は、コア機能管理データベース82にアクセスし、「移譲先カード」に該当するカードID822のネットワークソフトウェア実行部31が有するコアID111の中から状態113が「無効」となっている処理部59を必要数だけ「移譲先コア」として選択する。
さらに、コア管理部73は、処理機能112に、処理機能グループ管理データベース83でハードアシストの解除対象のエントリの処理機能121と同じネットワーク処理機能の識別子(名称)を上書きし、状態113を「インストール中」に変更する。
次に、モジュール管理部74が、モジュールデータベース84を参照し、モジュール種別131が「CPU」で、且つ処理機能132が「移譲先コア」にインストールされる処理機能であるモジュールプログラムを、「ファイル名」134が示す格納場所から選択する。ただし、当該モジュールプログラムの形式133がソースコードやバイナリコードの場合は、上述のコンパイラなどを用いて実行プログラムに変換する。なお、「移譲先コア」にインストールされる処理機能は、ハードアシストの解除対象のプログラマブルネットワーク処理部32が実行していた処理に対応する。
そして、モジュール管理部74は、通信装置制御インタフェース91を介して、選択したモジュールプログラムを上記選択した「移譲先コア」にインストールする指令と、実行プログラムを送信する。
次に、コア管理部73は、ハードアシストの解除対象のプログラマブルネットワーク処理部32内の処理部(「移譲元コア」とする)の設定テーブルの内容を「移譲先コア」に引き継がせる。「委譲元コア」の処理部62の処理を「移譲先コア」の処理部59に引き継がせる手法としては、公知または周知の技術を適用すればよい。例えば、コア管理部73が「移譲元コア」と「移譲先コア」を管理する装置コントローラ34にアクセスし、カードコントローラ261から「委譲元コア」の設定テーブル(図示省略)を読み出す指令を送信する。装置コントローラ34はカードコントローラ261から取得した設定テーブルの内容をコア管理部73に送信する。
コア管理部73は、装置コントローラ34から受信した「委譲元コア」の設定テーブルの内容を「移譲先コア」を管理するカードコントローラ161に通知することで、「委譲元コア」の設定テーブルの内容を「移譲先コア」の設定テーブルに同期させて、処理を引き継がせる。
次に、処理を引き継ぐ「移譲先コア」にパケットが転送されるようにパケット処理部57の振り分けテーブル571と、パケット振り分け部158、258の振り分けテーブル162を変更する。
以上の処理により、ネットワーク処理実行リソースがプログラマブルネットワーク処理部32の「移譲元コア」からネットワークソフトウェア実行部31の「移譲先コア」に移動して、ハードアシストが解除される。
最後に、コア管理部73が、コア機能管理データベース82にアクセスし、「移譲先コア」のエントリで状態113を「有効」に変更する。また、コア管理部73は「移譲元コア」のエントリで状態113を「無効」に変更する。
さらに、コア管理部73は、コア機能管理データベース82にアクセスし、各カードで状態113が「有効」な処理部59、62の数を再度カウントして、コア資源管理データベース81の利用コア数105の値を更新する。また、コア管理部73は、処理機能グループ管理データベース83にアクセスし、「委譲元コア」に対応するハードアシスト状態の126を「無効」に更新する。
さらに、コア管理部73は、処理機能グループ管理データベース83で「移譲元コア」のエントリで処理コアID123を削除し、「移譲先コア」のエントリを追加する。そして、コア管理部73は、処理機能グループ管理データベース83の「移譲先コア」のエントリで、利用コア数122を「移譲先コア」の数に変更する。また、コア管理部73は、利用可能帯域124を処理コアID123に基づいて変更する。なお、「移譲先コア」の利用可能帯域124は、コア資源管理データベース81のコアあたりの性能106から算出することができる。
以上の処理により、ネットワーク管理サーバ20の各データベースにおいても、「委譲元コア」から「移譲先コア」へのネットワーク処理実行リソースの移動が完了する。
以上の処理により、プログラマブルネットワーク処理部32のネットワーク処理を、ネットワークソフトウェア実行部31へ移動することで、利用帯域に応じてネットワーク処理リソースを解放することができ、余剰となったプログラマブルネットワーク処理部32を他のネットワーク処理に使用することが可能となる。
なお、通常、「委譲先コア」の数は「委譲元コア」の数より多く、「委譲元コア」で処理するパケットは複数の「委譲先コア」に配分される。これは管理サーバ20の振り分けテーブル233やぱっと処理部57の振り分けテーブル571、パケット振り分け部158、258の振り分けテーブル162で管理される。パケットを到着順で複数の「委譲先コア」に配分する場合、「移動元コア」の設定テーブルは各「委譲先コア」にそのまま転写する。処理対象となるパケットのラベル(MACアドレスやIPアドレスなど)を複数の「委譲先コア」で分割する場合、「委譲元コア」の設定テーブルはこの分割(振り分けテーブル)に即して分割され、各「委譲先コア」の設定テーブルとなる。
この例では、全ての「委譲元コア」のネットワーク処理を1つの「委譲先カード」の「アシストコア」に移すこととした。しかし、1つのカードでは処理部59の数が足りないこともある。その場合には、複数のネットワークソフトウェア実行部31を同時に「委譲先カード」として選択するようにしてもよい。
また、ハードアシスト解除処理で「委譲先カード」を選択する際、処理機能グループ管理データベース83で管理されるハードアシスト有効化閾値129の処理量を収容可能であることを「委譲先カード」として選択されるカードの条件に加えてもよい。
また、「委譲先カード」の未使用の処理部59を予約する機能をもたせてもよい。これにより、他の処理機能832によって「委譲先カード」の未使用の処理部59を使用されないようにすることができる。これらにより、さらに利用帯域が増加した際にも同じ「委譲先カード」の他の処理部59に処理を移すこと(ソフトスケールアウト処理)ができる。
<ハードスケールアウト処理>
以下に、図9Bのステップ216で行われるハードスケールアウト処理の詳細な例を説明する。
まず、コア管理部73が、コア資源管理データベース81にアクセスし、コア種別103が「FPGA」で、且つコア数104が利用コア数105よりも大きいカードID102のプログラマブルネットワーク処理部32(FPGA)を1つ選択して「追加カード」とする。すなわち、図9Aのステップ202で利用帯域125を閾値と比較したカード(プログラマブルネットワーク処理部32)の処理を分散してハードウェアのアシストをスケールアウトするカードとして、FPGAで構成されたプログラマブルネットワーク処理部32を「追加カード」として選択する。ただし、「追加カード」としては現在使用中のプログラマブルネットワーク処理部32を優先する。
コア管理部73は、「追加カード」として選択したカードID102のエントリの利用コア数105の値に「1」を加算し、コア資源管理データベース81を更新する。
そして、コア管理部73は、コア機能管理データベース82にアクセスし、「追加カード」のカードIDに該当するカードID822のエントリで、プログラマブルネットワーク処理部32が有する処理部62の中から状態113が「無効」となっている処理部62のコアID111を1つ「追加コア」として選択する。
さらに、コア管理部73は、「追加コア」を選択したエントリで処理機能112に、処理機能グループ管理データベース83の処理機能121と同じネットワーク処理機能の識別子(名称)を上書きする。
すなわち、処理を分散するプログラマブルネットワーク処理部32の処理部62に割り当てた機能を、コア機能管理データベース82の「追加コア」のエントリの処理機能112に設定する。そして、コア管理部73は、現在選択中のコア機能管理データベース82のエントリの状態113を「インストール中」に変更する。
次に、モジュール管理部74が、モジュールデータベース84を参照し、モジュール種別131が「FPGA」で、且つ処理機能132が「追加コア」にインストールされる処理機能であるモジュールプログラム(ネットワーク処理回路レイアウト)を、ファイル名134が示す格納場所から取得する。ただし、当該モジュールプログラムの形式133がソースコードやバイナリコードの場合、モジュール管理部74はコンパイラなどを用いて実行プログラムに変換する。そして、モジュール管理部74は、通信装置制御インタフェース91を介して、上記選択したモジュールプログラムを「追加コア」にインストールする指令と、実行プログラムを送信する。
次に、コア管理部73が、処理を分散する「追加コア」の追加前から利用されているプログラマブルネットワーク処理部32の処理部(「保持コア」とする)の設定テーブルの一部を「追加コア」に引き継がせ、「保持コア」にかかる負荷を削減する。「保持コア」の処理部62の処理の一部を「追加コア」の処理部62に引き継がせる手法としては、公知または周知の技術を適用すればよい。
例えば、コア管理部73が「保持コア」と「追加コア」を管理する装置コントローラ34にアクセスし、カードコントローラ261から「保持コア」の設定テーブル(図示省略)を読み出す指令を送信する。装置コントローラ34はカードコントローラ261から取得した設定テーブルの内容をコア管理部73に送信する。
コア管理部73は、装置コントローラ34から受信した「保持コア」の設定テーブルの一部を「追加コア」を管理するカードコントローラ261に通知することで、「保持コア」の設定テーブルの内容を「追加コア」の設定テーブルに反映させて、処理を引き継がせる。
次に、コア管理部73は、「追加コア」にパケットが転送されるようにパケット処理部57の振り分けテーブル571と、パケット振り分け部258の振り分けテーブル162を変更する。以上の処理により、プログラマブルネットワーク処理部32のネットワーク処理実行リソースに「追加コア」が追加される。
最後に、コア管理部73が、コア機能管理データベース82にアクセスし、「追加コア」のエントリで状態113を「有効」に変更する。さらに、コア管理部73は、コア機能管理データベース82にアクセスし、各カードの処理機能112が「有効」な処理部62の数を再度カウントして、コア資源管理データベース81の利用コア数105を更新する。
また、コア管理部73は、処理機能グループ管理データベース83にアクセスし、処理コアID123に「追加コア」の識別子を追加する。そして、コア管理部73は、当該エントリで利用コア数122に「1」を加算する。また、コア管理部73は、利用可能帯域124を処理コアID123に基づいて変更する。なお、「追加コア」の利用可能帯域124は、コア資源管理データベース81のコアあたりの性能106を参照すればよい。
以上の処理により、ネットワーク管理サーバ20のデータベースにおいても、ネットワーク処理実行リソースに、「保持コア」の処理の一部を負担するプログラマブルネットワーク処理部32として「追加コア」が加えられる。
以上の処理により、プログラマブルネットワーク処理部32で行われていたネットワーク処理を、新たに追加した「追加コア」で分散して処理することにより、高速なFPGAを含むプログラマブルネットワーク処理部32による処理量を増大して、利用帯域が増大した場合でもネットワーク処理の高速化を図ることができる。
<ハードスケールイン処理>
以下に、図9Bのステップ217で行われるハードスケールイン処理の詳細な例を説明する。この処理は、FPGAでパケットの処理を行うプログラマブルネットワーク処理部32の処理部62を縮退する処理である。
まず、コア管理部73は、処理機能グループ管理データベース83にアクセスし、該当するネットワーク処理を実行する処理部62から削除する1つ(「削除コア」とする)を処理コアID123から選択する。
次に、コア管理部73が、「削除コア」の設定テーブルの内容を他の処理部(「保持コア」とする)62の設定テーブルに引き継がせる。「削除コア」の処理部62の処理を「保持コア」の処理部62に引き継がせる手法としては、公知または周知の技術を適用すればよい。例えば、コア管理部73が「削除コア」と「保持コア」を管理する装置コントローラ34にアクセスし、カードコントローラ261から「削除コア」の設定テーブル(図示省略)の内容を読み出す指令を送信する。装置コントローラ34はカードコントローラ261から取得した設定テーブルの内容をコア管理部73に送信する。
コア管理部73は、装置コントローラ34から受信した「削除コア」の設定テーブルの内容を「保持コア」を管理するカードコントローラ261に通知することで、「削除コア」の設定テーブルの内容を「保持コア」の設定テーブルに移動させて、処理を引き継がせる。
次に、「削除コア」に転送されていたパケットが「保持コア」に転送されるようにパケット処理部57の振り分けテーブル571と、パケット振り分け部258の振り分けテーブル162を変更する。以上の処理により、プログラマブルネットワーク処理部32のネットワーク処理実行リソースから「削除コア」が削除される。
最後に、コア管理部73が、コア機能管理データベース82にアクセスし、「削除コア」の状態113を「無効」に変更する。さらに、コア管理部73は、コア機能管理データベース82にアクセスし、各カードで状態113が「有効」な処理部62の数を再度カウントしてコア資源管理データベース81の利用コア数105を更新する。
また、コア管理部73は、処理機能グループ管理データベース83にアクセスし、処理コアID123から「削除コア」のIDを削除する。そして、コア管理部73は、当該エントリの利用コア数122から1を減算して更新する。また、コア管理部73は、当該エントリの利用可能帯域124を処理コアID123に基づいて更新する。なお、「削除コア」の利用可能帯域124は、コア資源管理データベース81のコアあたりの性能106を参照すればよい。
以上の処理により、ネットワーク管理サーバ20の各データベースにおいても、プログラマブルネットワーク処理部32のネットワーク処理実行リソースから「削除コア」が削除される。
以上の処理により、プログラマブルネットワーク処理部32のネットワーク処理を縮退させることで、利用帯域に応じてネットワーク処理リソースを解放することができ、余剰となったプログラマブルネットワーク処理部32を他のネットワーク処理に使用することが可能となる。
<スケールアウト閾値およびスケールイン閾値>
ソフトスケールアウト処理(213)またはハードスケールアウト処理(216)の判定で使用されるステップ203、ステップ206のスケールアウト閾値は、処理機能グループ管理データベース83の利用可能帯域124にスケールアウト閾値127(%)を積算した値である。下記に計算式を示す。
Figure 2016220126
一方、ステップ204、207のスケールイン閾値は、ソフトスケールイン処理(214)またはハードスケールイン処理(217)の後に残る「保持コア」の利用可能帯域124が基準となる。そのため、コア管理部73は、「削除コア」と「保持コア」を予め決めておき、すべての「保持コア」の利用帯域125の総計にスケールイン閾値127(%)を積算した値をスケールインの閾値とする。下記に計算式を示す。
Figure 2016220126
また、スケールイン閾値(%)はスケールアウト閾値(%)未満とする。これにより、スケールイン処理とスケールアウト処理が交互に実行されるのを防いで、ネットワーク処理実行リソースの過大な変動を防止できる。
<ハードアシスト有効化閾値およびハードアシスト無効化閾値>
処理機能グループ管理データベース83のハードアシスト有効化閾値129の値はハードアシスト無効化閾値130よりも大きな値に設定される。これにより、ハードアシスト処理(212)とハードアシスト解除処理(215)が交互に実行されるのを防いで、ネットワーク処理実行リソースの過大な変動を防止できる。
なお、ハードアシスト有効化閾値129は、「アシストコア」の利用可能帯域124にスケールアウト閾値127(%)を積算した値よりも大きいと、「アシストコア」の帯域が不足していることとなり、ハードアシスト処理後すぐにハードスケールアウト処理が実施されることに注意されたい。
<ハードアシスト有効化閾値およびハードアシスト無効化閾値>
ハードアシスト処理(212)やハードアシスト解除処理(215)によって、ネットワーク処理実行リソースをネットワークソフトウェア実行部31とプログラマブルネットワーク処理部32との間で切り替える際のハードアシスト有効化閾値129およびハードアシスト無効化閾値130は、管理者などが保守端末21からネットワーク管理サーバ20に設定することができる。
本実施例1のネットワーク処理システムにおいては、ネットワーク管理サーバ20がネットワーク処理実行リソースの状態とコストルールデータベース232として予め設定されたルールに基づき、ハードアシスト閾値(ハードアシスト有効化閾値129およびハードアシスト無効化閾値130)を設定する。
以下、ネットワーク管理サーバ20のコア管理部73がハードアシスト閾値を決定する処理について説明する。
本実施例1では、コストルールデータベース232に、ネットワーク処理システム導入時の価格を最小化することがルールとして記載されている場合を考える。この場合、ネットワークソフトウェア実行部31とプログラマブルネットワーク処理部32との利用可能帯域と価格の違いに着目して、コア管理部73が、必要な利用帯域に対して使用するネットワーク処理実行リソースをネットワークソフトウェア実行部31とプログラマブルネットワーク処理部32とで切り替える。これにより、本実施例1では、ネットワーク処理システムの導入時の価格を最小化できる。なお、以下では説明を簡単にするために、コアコスト管理データベース231のコアあたりのコスト242を無視し、初期コスト241のみを価格として扱う。
ネットワークソフトウェア実行部31とプログラマブルネットワーク処理部32には利用可能帯域と導入価格(初期コスト)に大きな違いがある。ネットワークソフトウェア実行部31の処理部59であるCPUと、プログラマブルネットワーク処理部32の処理部62であるFPGAを比較すると、CPUは汎用性が高く安価だが利用可能帯域が小さい。反対にFPGAは汎用性が低く高価だが利用可能帯域が大きい。
そのため、利用帯域の小さいネットワーク処理を実行する場合には、FPGAよりCPUを使用した方が安価なシステムになる。しかし、ネットワーク処理の利用帯域がまとまった大きさになると、CPUよりもFPGAを使用した方が安価になる。そこで、ハードアシスト閾値を、例えば下記の式で決定する。
Figure 2016220126
なお、上記Quotientは割り算の商を算出する関数である。
例として、利用可能帯域と価格が3Gbps、$3,000のCPUと、利用可能帯域と価格が80Gbps、$10,000のFPGAについて、利用可能帯域と価格の推移を図11、図12にそれぞれ示す。図11は、CPUで処理を行う場合の価格(導入コスト)と利用可能帯域の関係を示すグラフである。図12は、CPUとFPGAで処理を行う場合の価格(導入コスト)と利用可能帯域の関係を示すグラフである。
両者を比較すると、利用帯域が9GbpsまではCPUのみを使用した方が安価だが、利用帯域が9Gbpsを超えると4つのCPUが必要で価格が$12,000となり、FPGAの1個の価格$10,000を超えてしまう。
この場合、コア管理部73はハードアシスト閾値を9Gbpsとし、利用帯域が9Gbpsを超えるとネットワーク処理リソースをCPUからFPGAに切り替える。
また、管理部73は、ハードアシスト閾値=ハードアシスト有効化閾値129として設定し、ハードアシスト閾値×所定比率=ハードアシスト無効化閾値130として設定する。例えば、ハードアシスト有効化閾値129を9Gbpsに設定し、ハードアシスト有効化閾値129の80%の値である7.2Gbpsをハードアシスト無効化閾値130に設定する。
なお、コア管理部73は、利用帯域125がハードアシスト有効化閾値129を超えて、且つ、利用可能なプログラマブルネットワーク処理部32が存在しない場合には、保守端末21に警告を表示するようにしても良い。
このように、CPUを処理の主体とするネットワークソフトウェア実行部31の数を増やして並列化すれば処理速度を向上できるが、全体の価格(導入コスト)も上昇し、単位処理速度あたりの価格はCPUの方がハードウェア(FPGA)より割高になってしまう。このため、ハードアシスト閾値でハードウェアによる処理を主体とするプログラマブルネットワーク処理部32の利用に切り替えることで、ネットワーク処理システムの導入コストを抑制することが可能となる。
また、CPUを処理の主体とするネットワークソフトウェア実行部31の場合、CPU310内の処理資源がスケジューリングによって複数のプロセスでシェアされるため、処理遅延が不確定で且つ変動する。その結果、瞬間的に極めて大きな遅延が発生することもある。このため、並列化したCPU(または処理部59)間で遅延量が一致せず、パケットを異なるCPUで処理すると順序の逆転が発生する場合がある。これに対して、ハードウェアで処理を行うプログラマブルネットワーク処理部32では、処理の遅延が発生しにくく、利用帯域が増大してもパケットの処理順序が逆転するのを抑制することができる。
このようなネットワークソフトウェア実行部31(CPU)とプログラマブルネットワーク処理部32(FPGA)の差異を鑑みて、特定のサービスに対しては遅延の安定性が必要な場合、処理量が少なくても価格(導入コスト)を無視してプログラマブルネットワーク処理部32(FPGA)を使用する。このようなルールもコストルールデータベース232の中で管理される。
以上のように、本実施例1によれば、ネットワーク処理システムの規模に応じて最適なネットワーク処理のリソースが配置され、ネットワーク処理システムの成長に伴った設備投資が可能となる。特にネットワーク処理システムのスモールスタートに適しており、ネットワークソフトウェア実行部31で初期投資を抑えつつ、ネットワーク処理システムの成長時にはハードウェア・アクセラレータであるプログラマブルネットワーク処理部32に移行することができる。ハードウェア・アクセラレータへ移行した後もネットワークソフトウェア実行部31が適宜活用され、設備投資の最小化を行うことができる。
上記実施例1ではネットワーク処理リソースのコストとしてカードの価格を例に挙げたが、他にも消費電力などをコストとして利用することができ、価格と同様にハードアシスト有効化閾値129およびハードアシスト無効化閾値130の設定に利用することができる。
また、価格と消費電力の双方を考慮してハードアシスト有効化閾値およびハードアシスト無効化閾値を設定してもよい。この場合、価格と消費電力のそれぞれに異なる重みをかけて合算し、これをコストとしてハードアシスト有効化閾値129およびハードアシスト無効化閾値130の設定に利用する。例えば、価格に2/$を、消費電力に1/Wを重みとして積算したものを合算し、コストを示すパラメータとすればよい。これらの重み付けなどもコストルールデータベース232の中で管理される。
これらのコストルールデータベース232は導入時に設定されるが、それ以降も本発明のシステムに変更がある際に見直される。すなわち、CPUやFPGAの価格の変更や、性能や価格の異なるCPUやFPGAの追加、新しい処理機能の追加、利用者の変化などがあった際に、管理者や作業者によって保守端末21を介してコストルールデータベース232が更新され、管理サーバ20においてスケールアウト閾値、スケールイン閾値、ハードアシスト有効化閾値、ハードアシスト無効化閾値が再設定される。
また、利用可能帯域と価格が異なる複数のCPU、もしくはFPGAがある場合には、それぞれ別種のネットワーク処理リソースとする。そして、各種ネットワーク処理リソース間でネットワーク処理を切り替えるための判定閾値を設定する。もしくは、ネットワーク処理に必要なネットワークの処理性能を元に予め移譲先のFPGAないしはCPUを選択し、移譲先と移譲前のネットワーク処理リソースの間でハードアシスト有効化閾値およびハードアシスト無効化閾値を設定してもよい。
図3に示したネットワークソフトウェア実行部31の例では、処理部59が複数のVMで構成される。一連のネットワーク処理を分割してこれらのVMにインストールする。これにより、細分化されたネットワーク処理をそれぞれ独立して実行し、設定できるようになる。その結果、ネットワーク処理を他のネットワーク処理リソースに移譲する際、移譲先に適したネットワーク処理のみを選択して移譲できるようになる。パケット振分け装置はVMからVMに転送されていたパケットを途中で移譲先のネットワーク処理リソースに転送すればよい。
モバイルネットワークにおいては、ネットワーク処理がC−Plane処理とU−Plane処理の2つに大別される。C−Plane処理はネットワーク管理用パケットの処理であり、処理容量は少ないが、信号の種類が多く、処理が煩雑である。このような処理はハードウェアで処理を行うプログラマブルネットワーク処理部32には適さない。一方、U−Plane処理はユーザパケットの処理であり、処理容量が大きいが、単純なルーティング処理である。このような処理はハードウェアによる処理に適している。そこで、C−Plane処理とU−Plane処理を別のVMにインストールしておけば、U−Plane処理を行うVMのみをプログラマブルネットワーク処理部32に移譲させるだけで、ネットワーク処理の負荷の増大に対応できる。
図13は、本発明の第2の実施例を示し、プログラマブルネットワーク処理部の一例を示すブロック図である。上記実施例1では、プログラマブルネットワーク処理部にFPGAを採用する例を示したが、他の形態でもよい。
図13のプログラマブルネットワーク処理部32A−1は、前記実施例1のプログラマブルネットワーク処理部32−1に代わって、異なるネットワーク処理機能をもつ複数のASIC301−1、301−2と、スイッチ302とで構成される。
ASIC301−1、301−2はスイッチ302に接続されており、外部のパケット処理部57から入力されるパケットがこのスイッチ302によって所定のASIC301−1または301−2に転送され、転送先のASIC301−1または301−2で処理される。
これにより、プログラマブルネットワーク処理部32A−1のネットワーク処理機能を切替えることができる。ASIC301−1、301−2の切り替えは、コア管理部73がスイッチ302に使用するASIC301−1または301−2を指令することで行うことができる。
また、スイッチ302は、パケットをASIC301−1に転送して処理した後、ASIC301−2に転送して別のネットワーク処理を行うこともできる。
本実施例2も前記実施例1と同様に、ネットワーク処理システムの規模に応じて最適なネットワーク処理のリソースが配置され、ネットワーク処理システムの成長に伴った設備投資が可能となる。
図14は、本発明の第3の実施例を示し、通信装置30B−1の一例を示すブロック図である。
本実施例3の通信装置30B−1は、前記実施例1の図1の通信装置30−1とは異なり、ネットワークソフトウェア実行部31Bとプログラマブルネットワーク処理部32Bのそれぞれに、外部の装置と通信を行うネットワークインタフェース41を設けた点が相違する。
通信装置30B−1では、パケット振り分け部33がネットワーク処理リソースであるネットワークソフトウェア実行部31B−1、31B−2と、プログラマブルネットワーク処理部32B−1、32B−2の後方に配置されている。
そして、ネットワークソフトウェア実行部31B−1、31B−2と、プログラマブルネットワーク処理部32B−1、32B−2の前方には、ネットワークインタフェース41がそれぞれ配置されて図1に示した基地局2や通信装置30−2、30−3に接続される。
このパケット振り分け部33の配置は通信ネットワークで広く利用されているシェルフ型のネットワーク装置に倣ったものである。
この構成では、各ネットワーク処理リソースに図中下方から入力されたパケットは、当該ネットワーク処理リソースで処理される。ただし、当該ネットワーク処理リソースの処理性能に不足があれば、ネットワーク処理の一部又は全てを他のネットワーク処理リソースに移譲し、さらにパケット振り分け部33を介して移譲先のネットワーク処理リソースにパケットを転送する。
移譲先のネットワーク処理リソースでは、他にネットワーク処理が残っていれば、パケット振り分け部33を介して元のネットワーク処理リソースにパケットを送り返す。これにより、ネットワーク処理のハードウェア・オフロードを実現することができる。
図15は、本発明の第4の実施例を示し、通信装置30C−1の一例を示すブロック図である。
通信装置30C−1は、前記実施例3の図14と同様に、パケット振り分け部33はネットワーク処理リソースであるネットワークソフトウェア実行部31−1と、プログラマブルネットワーク処理部32−1、32−2の後方に配置されている。ただし、通信装置30C−1には、図14の通信装置30B−1とは異なり、ネットワークインタフェースカード42が追加され、パケット振り分け部33に接続されている。なお、図15では、ネットワークソフトウェア実行部31−1のみを示したが、前記実施例1と同様に複数のネットワークソフトウェア実行部31を有することができる。
このネットワークインタフェースカード42は、前記実施例3の図14のネットワーク処理リソースがそれぞれ保持していたネットワークインタフェース41の機能を集約したもので、通信装置30C−1の外部とパケットの送受信を行う。
大容量なネットワークインタフェースでは、ネットワーク処理機能を持たない例が多いため、ネットワークインタフェースカード42は、接続されているパケット振り分け部33を介して各ネットワーク処理リソースにパケットを転送する。転送先のネットワーク処理リソース(ネットワークソフトウェア実行部31、プログラマブルネットワーク処理部32)がパケット処理を行う。
本実施例3も前記実施例1都同様に、ネットワーク処理システムの規模に応じて最適なネットワーク処理のリソースが配置され、ネットワーク処理システムの成長に伴った設備投資が可能となる。
図16は、本発明の第5の実施例を示し、通信装置30D−1の一例を示すブロック図である。本実施例5の通信装置30D−1は、ネットワークソフトウェア実行部31とプログラマブルネットワーク処理部32の両方が実装されたハイブリッドネットワーク処理部501−1、501−2がパケット振り分け部33に接続される。
ハイブリッドネットワーク処理部501−1は、前記実施例4に示したネットワークソフトウェア実行部31B−1がネットワーク処理リソースの主体であり、このネットワークソフトウェア実行部31B−1に、前記実施例1に示したプログラマブルネットワーク処理部32−1がネットワーク処理の一部をオフロードするために接続される。
一方、ハイブリッドネットワーク処理部501−2は、前記実施例4に示したプログラマブルネットワーク処理部32−10がネットワーク処理リソースの主体であり、これに前記実施例1に示したネットワークソフトウェア実行部31−2がネットワーク処理の一部をオフロードするために接続される。
これらハイブリッドネットワーク処理部501−1、501−2は、ネットワークソフトウェア実行部31(31B)とプログラマブルネットワーク処理部32(32B)とが密接に接続されており、パケット振り分け部33のパケット転送処理容量を逼迫せずに、ネットワークソフトウェア実行部31(31B)とプログラマブルネットワーク処理部32(32B)とでネットワーク処理のオフロードが相互に可能となる。
さらに、本実施例5において、ネットワーク処理の一部をオフロードするためのプログラマブルネットワーク処理部32−1や、ネットワークソフトウェア実行部31−2をパケット振り分け部33に接続すれば、他のネットワーク処理リソースがこれらオフロード用のネットワーク処理リソースに直接アクセス可能になる。
なお、本実施例5に示したパケット振り分け部33に対するネットワーク処理リソースの配置は混在してもよい。また、パケット振り分け部33は複数のスイッチを多段に接続した構成となってもよい。この場合、ネットワーク管理サーバ20がパケット振り分け部33の設定を各スイッチに分散させることができる。
ネットワーク管理サーバ20は、図3に限定されるものではなく、他の形態でもよい。例えば、ネットワーク処理システムにおいて管理対象となる通信装置30が1つの場合、通信装置30の装置コントローラ34にネットワーク管理サーバ20の機能を持たせることができる。
また、通信装置30が複数の場合でも、管理対象となる全ての通信装置30の装置コントローラ34にネットワーク管理サーバ20の一部または全てを実装することができる。全ての装置コントローラ34が管理ネットワーク40を介して通信することで、互いに他の通信装置30のもつネットワーク処理リソースの状態を把握し、利用することができる。
さらに、各ネットワーク処理リソースにネットワーク管理サーバ20を実装することも考えられる。この場合には、各ネットワーク処理リソースに実装されたネットワーク管理サーバ20が管理ネットワーク40などを介して互いの状態を把握し、利用する。
本実施例7では、前記実施例1に示したネットワーク管理サーバ20のモジュールデータベース84とモジュール管理部74の他の構成例を示す。
モジュールデータベース84に格納されるネットワーク処理のソースコードやバイナリコードが、ネットワークソフトウェア実行部31とプログラマブルネットワーク処理部32とで共通のもので、モジュール管理部74がソースコードやバイナリコードからネットワークソフトウェア実行部31やプログラマブルネットワーク処理部32の実行プログラムを生成する。なお、この場合、モジュール管理部74は、ネットワークソフトウェア実行部31のコンパイラと、プログラマブルネットワーク処理部32のコンパイラをそれぞれ有する。
また、保守端末21では、保守要員や管理者等が複数のソースコードやバイナリコードから任意の処理を抜粋したり、組み合わせたりすることで、ネットワーク処理リソースにインストールするネットワーク処理機能の組み合わせや規模を変更することができる。また、管理サーバ20のネットワーク処理部171がこれを自動で実施してもよい。
<まとめ>
上記実施例1のネットワークソフトウェア実行部31では、CPU310を仮想化したVMの処理部59でネットワーク処理を実行する例を示したが、これに限定されるものではない。例えば、ネットワーク処理をひとつのアプリケーションとして、VMの仮想プロセッサまたはCPU310のプロセッサコアに直接割り当てる技術が、Intel(登録商標)社のDPDK(Data Plane Development Kit)として知られている。
上記実施例1にDPDKを利用したアプリケーション(モジュールプログラム)を採用することで、当該アプリケーションは、OSのカーネルを介さずに、ネットワークソフトウェア実行部31が受信したパケットを直接受け取って処理することができる。この場合、各処理部59をプロセッサコアとして扱うことができる。
また、上記実施例1では、通信装置30−1〜30−4を接続してネットワークを構成する例を示したが、通信装置30−1〜30−4は、通信ノードであってもよい。
また、本発明は上記した各実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
20 ネットワーク管理サーバ
21 保守端末
30−1〜30−4 通信装置
31−1〜31−n ネットワークソフトウェア実行部
32−1〜32−n プログラマブルネットワーク処理部
33 パケット振り分け部
34 装置コントローラ
40 管理ネットワーク
51−1〜51−3、54−1〜54−3、155、255 受信回路
52−1〜52−3、53−1〜53−3、156、256 送信回路
57 パケット処理部
158、258 パケット振り分け部
59−1〜59−n 処理部
62−1〜62−n 処理部
160、260 パケット多重部
161、261 カードコントローラ
171 ネットワーク処理部
72 利用状況監視部
73 コア管理部
74 モジュール管理部
81 コア資源管理データベース
82 コア機能管理データベース
83 処理機能グループ管理データベース
84 モジュールデータベース

Claims (14)

  1. 受信したパケットを処理する通信装置と、
    前記通信装置を管理する管理装置と、を有するネットワーク処理システムであって、
    前記通信装置は、
    前記パケットをソフトウェアで処理する第1のネットワーク処理部と、
    前記パケットをハードウェアで処理する第2のネットワーク処理部と、
    前記受信したパケットを第1のネットワーク処理部と第2のネットワーク処理部に振り分ける第1の振り分け部と、を有し、
    前記管理装置は、
    前記通信装置の稼働状態を監視する稼働状態監視部と、
    前記稼働状態監視部の監視結果に基づいて、前記第1のネットワーク処理部と第2のネットワーク処理部の間で前記パケットの処理を切り替える指令を前記通信装置へ送信する構成管理部と、を有し、
    前記通信装置は、
    前記構成管理部からの指令に基づいて、前記第1のネットワーク処理部と第2のネットワーク処理部の間で前記パケットの処理を切り替えることを特徴とするネットワーク処理システム。
  2. 請求項1に記載のネットワーク処理システムであって、
    前記第1のネットワーク処理部は、
    前記パケットを処理する複数の第1の処理部と、
    前記パケットを前記複数の第1の処理部へ振り分ける第2の振り分け部と、を有し、
    前記第2のネットワーク処理部は、
    前記パケットを処理する複数の第2の処理部と、
    前記パケットを前記複数の第2の処理部へ振り分ける第3の振り分け部と、を有することを特徴とするネットワーク処理システム。
  3. 請求項1に記載のネットワーク処理システムであって、
    前記構成管理部は、
    前記稼働状態監視部の監視結果が、前記通信装置で処理したパケットの稼働実績が予め設定した閾値を超えたときに、前記通信装置へ前記第1のネットワーク処理部から前記第2のネットワーク処理部へ切り替える指令を送信し、
    前記通信装置は、
    前記構成管理部から受信した前記指令に基づいて、受信したパケットの処理を前記第1のネットワーク処理部から前記第2のネットワーク処理部へ切り替えることを特徴とするネットワーク処理システム。
  4. 請求項3に記載のネットワーク処理システムであって、
    前記閾値は、前記第1のネットワーク処理部のコストと、前記第2のネットワーク処理部のコストから予め設定された値であることを特徴とするネットワーク処理システム。
  5. 請求項1に記載のネットワーク処理システムであって、
    前記構成管理部は、
    前記稼働状態監視部の監視結果が、前記通信装置で処理したパケットの稼働実績が予め設定した閾値よりも小さいときに、前記通信装置へ前記第2のネットワーク処理部から前記第1のネットワーク処理部へ切り替える指令を送信し、
    前記通信装置は、
    前記構成管理部から受信した前記指令に基づいて、受信したパケットの処理を前記第2のネットワーク処理部から前記第1のネットワーク処理部へ切り替えることを特徴とするネットワーク処理システム。
  6. 受信したパケットを処理する通信装置を管理装置で管理するネットワークシステムの管理方法であって、
    前記通信装置は、前記パケットをソフトウェアで処理する第1のネットワーク処理部と、前記パケットをハードウェアで処理する第2のネットワーク処理部と、を有し、
    前記管理方法は、
    前記通信装置が、第1のネットワーク処理部に、前記受信したパケットを振り分けて処理を実行する第1のステップと、
    前記管理装置が、前記通信装置の稼働状態を監視する第2のステップと、
    前記管理装置が、前記監視結果に基づいて、前記第1のネットワーク処理部と第2のネットワーク処理部の間で前記パケットの処理を切り替える指令を前記通信装置へ送信する第3のステップと、
    前記通信装置が、前記管理装置からの指令に基づいて、前記第1のネットワーク処理部と第2のネットワーク処理部の間で前記パケットの処理を切り替える第4のステップと、
    を含むことを特徴とするネットワークシステムの管理方法。
  7. 請求項6に記載のネットワークシステムの管理方法であって、
    前記第1のステップは、
    前記第1のネットワーク処理部で前記パケットを処理する複数の第1の処理部へ前記パケットを振り分けるステップを含み、
    前記第4のステップは、
    前記第2のネットワーク処理部で前記パケットを処理する複数の第2の処理部へ前記パケットを振り分けるステップを含むことを特徴とするネットワークシステムの管理方法。
  8. 請求項6に記載のネットワークシステムの管理方法であって、
    前記第3のステップは、
    前記監視結果が、前記通信装置で処理したパケットの稼働実績が予め設定した閾値を超えたときに、前記通信装置へ前記第1のネットワーク処理部から前記第2のネットワーク処理部へ切り替える指令を送信し、
    前記第4のステップは、
    前記管理装置から受信した前記指令に基づいて、受信したパケットの処理を前記第1のネットワーク処理部から前記第2のネットワーク処理部へ切り替えることを特徴とするネットワークシステムの管理方法。
  9. 請求項8に記載のネットワークシステムの管理方法であって、
    前記閾値は、前記第1のネットワーク処理部のコストと、前記第2のネットワーク処理部のコストから予め設定された値であることを特徴とするネットワークシステムの管理方法。
  10. 請求項6に記載のネットワークシステムの管理方法であって、
    前記管理装置が、前記通信装置で処理したパケットの稼働実績が予め設定した閾値よりも小さいときに、前記通信装置へ前記第2のネットワーク処理部から前記第1のネットワーク処理部へ切り替える指令を送信する第5のステップと、
    前記通信装置が、前記管理装置から受信した前記指令に基づいて、受信したパケットの処理を前記第2のネットワーク処理部から前記第1のネットワーク処理部へ切り替える第6のステップと、をさらに含むことを特徴とするネットワークシステムの管理方法。
  11. 受信したパケットを処理する通信装置であって、
    前記パケットをソフトウェアで処理する第1のネットワーク処理部と、
    前記パケットをハードウェアで処理する第2のネットワーク処理部と、
    前記受信したパケットを第1のネットワーク処理部と第2のネットワーク処理部に振り分ける第1の振り分け部と、を有し、
    前記第1のネットワーク処理部は、
    前記パケットを処理する複数の第1の処理部と、
    前記パケットを前記複数の第1の処理部へ振り分ける第2の振り分け部と、を有し、
    前記第2のネットワーク処理部は、
    前記パケットを処理する複数の第2の処理部と、
    前記パケットを前記複数の第2の処理部へ振り分ける第3の振り分け部と、を有し、
    前記第1の振り分け部は、受信した指令に基づいて、前記第1のネットワーク処理部と第2のネットワーク処理部の間で前記パケットの処理を切り替えることを特徴とする通信装置。
  12. 請求項11に記載の通信装置であって、
    前記第1のネットワーク処理部はネットワークインタフェースを介してネットワークに接続され、
    前記第2のネットワーク処理部はネットワークインタフェースを介してネットワークに接続され、
    前記第1のネットワーク処理部と前記第2のネットワーク処理部は並列的に前記第1の振り分け部に接続されたことを特徴とする通信装置。
  13. 請求項11に記載の通信装置であって、
    ネットワークに接続されたネットワークインタフェースカードを有し、前記第1のネットワーク処理部と前記第2のネットワーク処理部と前記ネットワークインタフェースカードは並列的に前記第1の振り分け部に接続され、前記第1のネットワーク処理部と前記第2のネットワーク処理部が前記ネットワークインタフェースカードを介してネットワークに接続されることを特徴とする通信装置。
  14. 請求項11に記載の通信装置であって、
    前記第1のネットワーク処理部と前記第2のネットワーク処理部は接続されてハイブリッドネットワーク処理部を構成し、複数のハイブリッドネットワーク処理部を並列的に前記第1の振り分け部に接続したことを特徴とする通信装置。
JP2015105287A 2015-05-25 2015-05-25 ネットワーク処理システム、ネットワークシステムの管理方法及び通信装置 Pending JP2016220126A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015105287A JP2016220126A (ja) 2015-05-25 2015-05-25 ネットワーク処理システム、ネットワークシステムの管理方法及び通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015105287A JP2016220126A (ja) 2015-05-25 2015-05-25 ネットワーク処理システム、ネットワークシステムの管理方法及び通信装置

Publications (1)

Publication Number Publication Date
JP2016220126A true JP2016220126A (ja) 2016-12-22

Family

ID=57578706

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015105287A Pending JP2016220126A (ja) 2015-05-25 2015-05-25 ネットワーク処理システム、ネットワークシステムの管理方法及び通信装置

Country Status (1)

Country Link
JP (1) JP2016220126A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110392170A (zh) * 2018-04-23 2019-10-29 富士施乐株式会社 信息处理装置、记录媒体、信息处理系统及信息处理方法
JP2020102888A (ja) * 2016-03-31 2020-07-02 日本電気株式会社 ネットワークシステムの制御方法および制御装置
WO2023157200A1 (ja) * 2022-02-17 2023-08-24 楽天モバイル株式会社 スケーリング制御システム及びスケーリング制御方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020102888A (ja) * 2016-03-31 2020-07-02 日本電気株式会社 ネットワークシステムの制御方法および制御装置
JP2022078349A (ja) * 2016-03-31 2022-05-24 日本電気株式会社 ネットワークシステムの制御方法および制御装置
JP7184434B2 (ja) 2016-03-31 2022-12-06 日本電気株式会社 ネットワークシステムの制御方法および制御装置
JP7251671B2 (ja) 2016-03-31 2023-04-04 日本電気株式会社 ネットワークシステムの制御方法および制御装置
CN110392170A (zh) * 2018-04-23 2019-10-29 富士施乐株式会社 信息处理装置、记录媒体、信息处理系统及信息处理方法
CN110392170B (zh) * 2018-04-23 2023-11-28 富士胶片商业创新有限公司 信息处理装置、记录媒体、信息处理系统及信息处理方法
WO2023157200A1 (ja) * 2022-02-17 2023-08-24 楽天モバイル株式会社 スケーリング制御システム及びスケーリング制御方法

Similar Documents

Publication Publication Date Title
US20180018197A1 (en) Virtual Machine Resource Allocation Method and Apparatus
US9405589B2 (en) System and method of optimization of in-memory data grid placement
WO2015141337A1 (ja) 受信パケット分散方法、キュー選択器、パケット処理装置、および記録媒体
US10541858B2 (en) Thin client system, management server, workplace environment setting method and workplace environment setting program
US20150271075A1 (en) Switch-based Load Balancer
JP2015194855A (ja) 情報処理システム、制御プログラム、及び情報処理システムの制御方法
KR102181640B1 (ko) 재구성가능한 분산 처리
US10341195B1 (en) Virtual network function (VNF) resource management in a software defined network (SDN)
JP5952214B2 (ja) 仮想マシンの動的配置方法及び仮想マシンシステム
CN111371694B (zh) 一种分流方法、装置和系统、处理设备和存储介质
CN111182037A (zh) 一种虚拟网络的映射方法和装置
WO2013169422A1 (en) Communications management
JP2016220126A (ja) ネットワーク処理システム、ネットワークシステムの管理方法及び通信装置
DE112019000965T5 (de) Technologien zur reduzierung der nic-anschlüsse mit beschleunigter schaltung
CN106059940A (zh) 一种流量控制方法及装置
JP2014186411A (ja) 管理装置、情報処理システム、情報処理方法、及びプログラム
JP6565429B2 (ja) 仮想マシン共有を用いるデータセンタネットワークにおけるリスク軽減
JP2013186644A (ja) サービスオーダーシステム、サービスオーダー装置、サービスオーダー方法、及びサービスオーダープログラム
US10157066B2 (en) Method for optimizing performance of computationally intensive applications
WO2019159875A1 (ja) 配置構成装置、および、配置構成方法
JP5876425B2 (ja) 仮想マシンのライブマイグレーションスケジューリング方法及び仮想マシンシステム
JP2009087213A (ja) 計算機余力算出装置、計算機余力算出方法
JP2017182435A (ja) 仮想化システム、管理サーバ及びマイグレーション方法
JP5758358B2 (ja) 仮想マシンシステム及びその高速ライブマイグレーション方法
JP2015162147A (ja) ネットワーク機能仮想化基盤管理システム及びネットワーク機能仮想化基盤管理方法