(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】NFVシステム
(51)【国際特許分類】
H04L 41/40 20220101AFI20231129BHJP
【FI】
H04L41/40
(21)【出願番号】P 2022564989
(86)(22)【出願日】2020-11-30
(86)【国際出願番号】 JP2020044463
(87)【国際公開番号】W WO2022113332
(87)【国際公開日】2022-06-02
【審査請求日】2023-02-24
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100098394
【氏名又は名称】山川 茂樹
(74)【代理人】
【識別番号】100153006
【氏名又は名称】小池 勇三
(74)【代理人】
【識別番号】100064621
【氏名又は名称】山川 政樹
(74)【代理人】
【識別番号】100121669
【氏名又は名称】本山 泰
(72)【発明者】
【氏名】田仲 顕至
(72)【発明者】
【氏名】有川 勇輝
(72)【発明者】
【氏名】伊藤 猛
(72)【発明者】
【氏名】竹谷 勉
(72)【発明者】
【氏名】坂本 健
【審査官】宮島 郁美
(56)【参考文献】
【文献】国際公開第2016/056210(WO,A1)
【文献】特開2020-17952(JP,A)
【文献】米国特許出願公開第2018/0307972(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-12/66,13/00,41/00-49/9057,61/00-65/80,69/00-69/40
(57)【特許請求の範囲】
【請求項1】
外部のネットワークからパケットを受信するように構成されたプロトコル処理部と、
受信したパケットに対して予め定められた処理を施すためのNFVを実現するように構成された第1の計算部と、
前記NFVの処理のうちANNを用いた処理を行うように構成された第2の計算部とを、第1のNICに搭載したことを特徴とするNFVシステム。
【請求項2】
請求項1記載のNFVシステムにおいて、
前記プロトコル処理部と前記第1の計算部と前記第2の計算部とは、プログラマブルロジックデバイスからなることを特徴とするNFVシステム。
【請求項3】
請求項1記載のNFVシステムにおいて、
前記第2の計算部は、前記第1のNICに複数設けられ、
前記第1のNICは、前記複数の第2の計算部の稼働状況を監視し、効率的な処理になるように前記第2の計算部の稼働状況に応じて前記ANNの処理を分割して前記複数の第2の計算部に割り当てるように構成されたディスパッチ部をさらに備えることを特徴とするNFVシステム。
【請求項4】
請求項3記載のNFVシステムにおいて、
前記プロトコル処理部と前記第1の計算部と前記第2の計算部と前記ディスパッチ部とは、プログラマブルロジックデバイスからなることを特徴とするNFVシステム。
【請求項5】
請求項3または4記載のNFVシステムにおいて、
前記第1のNICは、サーバ装置に複数設けられ、
前記サーバ装置は、前記複数の第1のNICと、共有メモリとを備え、
各第1のNICの前記ディスパッチ部は、配下の前記第2の計算部の状態情報を前記共有メモリに書き込み、配下の前記第2の計算部がビジー状態になったときに、前記共有メモリに記録された状態情報に基づいて、ビジー状態になった前記第2の計算部の処理を他の第1のNICの前記第2の計算部に割り当て可能かどうかを判断し、割り当て可能と判断した第1のNICのディスパッチ部に、ビジー状態になった前記第2の計算部の処理を実行するよう依頼することを特徴とするNFVシステム。
【請求項6】
請求項4記載のNFVシステムにおいて、
前記第1のNICは、サーバ装置に複数設けられ、
各第1のNICの前記プロトコル処理部と前記第1の計算部と前記第2の計算部と前記ディスパッチ部とは、プログラマブルロジックデバイスからなり、
前記サーバ装置は、前記複数の第1のNICを備え、
各第1のNICの前記ディスパッチ部は、配下の前記第2の計算部の状態情報をディスパッチ部と同じ第1のNIC内の前記プログラマブルロジックデバイスのメモリに書き込み、配下の前記第2の計算部がビジー状態になったときに、他の第1のNICの前記プログラマブルロジックデバイスのメモリに記録された状態情報をネットワークを介して読み出して、ビジー状態になった前記第2の計算部の処理を他の第1のNICの前記第2の計算部に割り当て可能かどうかを判断し、割り当て可能と判断した第1のNICのディスパッチ部に、ビジー状態になった前記第2の計算部の処理を実行するよう依頼することを特徴とするNFVシステム。
【請求項7】
請求項3または4記載のNFVシステムにおいて、
前記第1のNICは、複数台のサーバ装置にそれぞれ複数設けられ、
各サーバ装置は、前記複数の第1のNICと、共有メモリと、RDMA用の第2のNICとを備え、
各第1のNICの前記ディスパッチ部は、配下の前記第2の計算部の状態情報をディスパッチ部と同じサーバ装置内の前記共有メモリに書き込み、配下の前記第2の計算部がビジー状態になったときに、前記共有メモリに記録された状態情報に基づいて、ビジー状態になった前記第2の計算部の処理を他の第1のNICの前記第2の計算部に割り当て可能かどうかを判断し、割り当て可能と判断した第1のNICのディスパッチ部に、ビジー状態になった前記第2の計算部の処理を実行するよう依頼し、
前記第2のNICは、この第2のNICと同じサーバ装置内の前記共有メモリに記録された情報を他のサーバ装置の前記共有メモリに転送することを特徴とするNFVシステム。
【請求項8】
請求項4記載のNFVシステムにおいて、
前記第1のNICは、複数台のサーバ装置にそれぞれ複数設けられ、
各第1のNICの前記プロトコル処理部と前記第1の計算部と前記第2の計算部と前記ディスパッチ部とは、プログラマブルロジックデバイスからなり、
各サーバ装置は、前記複数の第1のNICを備え、
各第1のNICの前記ディスパッチ部は、配下の前記第2の計算部の状態情報をディスパッチ部と同じ第1のNIC内の前記プログラマブルロジックデバイスのメモリに書き込み、配下の前記第2の計算部がビジー状態になったときに、他の第1のNICの前記プログラマブルロジックデバイスのメモリに記録された状態情報をネットワークを介して読み出して、ビジー状態になった前記第2の計算部の処理を他の第1のNICの前記第2の計算部に割り当て可能かどうかを判断し、割り当て可能と判断した第1のNICのディスパッチ部に、ビジー状態になった前記第2の計算部の処理を実行するよう依頼することを特徴とするNFVシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク機能仮想化を実現するNFVシステムに関するものである。
【背景技術】
【0002】
ネットワーク機能(Network Function:NF)を実現するミドルボックスは、今日のインターネットにおいて重要な役割を果たしている。ミドルボックスは、ルータが提供する転送機能に加えて、ファイアウォール、侵入防止・検出などのセキュリティ機能と、ロードバランシング、WAN(Wide Area Network)、オプティマイザなどのパフォーマンス向上機能の他に、新しいNFの提供など、重要な役割を果たす。
【0003】
従来のNFは、専用のハードウェア上で動作する独自のモノリシック・ソフトウェアとして装備されていた。近年では、ネットワーク・オペレータは、NFを専用のミドルボックスから、コモディティ・サーバ上で動作するネットワーク機能仮想化(Network Function Virtualization:NFV)技術へと移し始めている。
【0004】
NFVは、登場以来、学会でも産業界でも急速に注目を集めている。何百人もの業界関係者が、NFVの導入を計画しているか、あるいはすでに導入済みであり、ネットワークの高い弾力性と管理コストの削減とを目指している。
【0005】
NFを改善するもう1つのトレンドとして、ネットワーキング・コミュニティが人工ニューラルネットワーク(Artificisal Neural Network:ANN)を採用して、ネットワーキングに長年存在している難問に取り組むようになってきている。特に、性能やセキュリティの目標を満たす高度なパケット処理を実現し、高度なNFを実現するためにANNを採用する研究者が出始めている(非特許文献1参照)。
【0006】
従来のNFを利用するユーザは、高いインフラコストとメンテナンスコストに悩まされ、効果的な判断を行うために多大な手作業と専門知識を必要とする。例えば、侵入検知システム(Intrusion Detection System:IDS)では、毎日のように新しいサイバー攻撃が検出される。このため、オペレータは、署名検査ルールを常に更新する必要がある。
【0007】
また、オペレータは、ネットワーク全体の負荷分散を目的として、トラフィック負荷、フローサイズ分布、トラフィック集中度などを変化させるために、手作業で作成したヒューリスティックを直感的に選択してトラフィック最適化の判断を行う。
【0008】
しかし、オペレータの決定は必ずしも最適ではなく、帯域幅の浪費につながる可能性がある。一方、ANNは、高度な非線形概念を学習して、複雑で不確実な環境下で最適化を行うことに長けているため、管理コストと運用コストを大幅に削減することができる。
【0009】
図8は従来のNFVシステムのハードウェア構成を示すブロック図である。通信部300は、外部ネットワークから入力されたパケットをプロトコル処理する。中央処理部301は、通信部300で受信されたパケットに対して予め定められた処理を施すためのNFVを実現する。NFVのプログラムは、中央処理部301に記憶されている。
図8の構成では、ネットワークの運用管理に必要な計算量が大きなANNの処理を計算部302で行う。中央処理部301は、パケットに対する処理が全て完了した後に、パケットを通信部300に渡す。通信部300は、パケットを転送先に送信する。
【0010】
通信部300は、ネットワークインターフェイスカード(Network Interface Card:NIC)を用いて実現される。中央処理部301は、CPU(Central Processing Unit)を用いて実現される。計算部302は、GPU(Graphic Processing Unit)を用いて実現される。
【0011】
NFVは、低遅延・広帯域が求められるが、データがNICとCPUとGPU間で転送されるため、遅延が発生するという課題があった。また、サーバー筐体内のバスのスループットでNFVの処理帯域が制限されるという課題があった。
【先行技術文献】
【非特許文献】
【0012】
【文献】Y.Mirsky,T.Doitshman,Y.Elovici,and A.Shabtai,“Kitsune: An Ensemble of Autoencoders for Online Network Intrusion Detection”,arXiv [cs.CR],2018,<https://arxiv.org/pdf/1802.09089.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0013】
本発明は、上記課題を解決するためになされたもので、NFVの処理で発生する遅延を低減することができるNFVシステムを提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明のNFVシステム(第1の実施例)は、外部のネットワークからパケットを受信するように構成されたプロトコル処理部と、受信したパケットに対して予め定められた処理を施すためのNFVを実現するように構成された第1の計算部と、前記NFVの処理のうちANNを用いた処理を行うように構成された第2の計算部とを、第1のNICに搭載したことを特徴とするものである。
また、本発明のNFVシステムの1構成例(第2の実施例)において、前記プロトコル処理部と前記第1の計算部と前記第2の計算部とは、プログラマブルロジックデバイスからなる。
【0015】
また、本発明のNFVシステムの1構成例(第3の実施例)において、前記第2の計算部は、前記第1のNICに複数設けられ、前記第1のNICは、前記複数の第2の計算部の稼働状況を監視し、効率的な処理になるように前記第2の計算部の稼働状況に応じて前記ANNの処理を分割して前記複数の第2の計算部に割り当てるように構成されたディスパッチ部をさらに備えることを特徴とするものである。
また、本発明のNFVシステムの1構成例(第3の実施例)において、前記プロトコル処理部と前記第1の計算部と前記第2の計算部と前記ディスパッチ部とは、プログラマブルロジックデバイスからなる。
【0016】
また、本発明のNFVシステムの1構成例(第4の実施例)において、前記第1のNICは、サーバ装置に複数設けられ、前記サーバ装置は、前記複数の第1のNICと、共有メモリとを備え、各第1のNICの前記ディスパッチ部は、配下の前記第2の計算部の状態情報を前記共有メモリに書き込み、配下の前記第2の計算部がビジー状態になったときに、前記共有メモリに記録された状態情報に基づいて、ビジー状態になった前記第2の計算部の処理を他の第1のNICの前記第2の計算部に割り当て可能かどうかを判断し、割り当て可能と判断した第1のNICのディスパッチ部に、ビジー状態になった前記第2の計算部の処理を実行するよう依頼することを特徴とするものである。
【0017】
また、本発明のNFVシステムの1構成例(第4の実施例)において、前記第1のNICは、サーバ装置に複数設けられ、各第1のNICの前記プロトコル処理部と前記第1の計算部と前記第2の計算部と前記ディスパッチ部とは、プログラマブルロジックデバイスからなり、前記サーバ装置は、前記複数の第1のNICを備え、各第1のNICの前記ディスパッチ部は、配下の前記第2の計算部の状態情報をディスパッチ部と同じ第1のNIC内の前記プログラマブルロジックデバイスのメモリに書き込み、配下の前記第2の計算部がビジー状態になったときに、他の第1のNICの前記プログラマブルロジックデバイスのメモリに記録された状態情報をネットワークを介して読み出して、ビジー状態になった前記第2の計算部の処理を他の第1のNICの前記第2の計算部に割り当て可能かどうかを判断し、割り当て可能と判断した第1のNICのディスパッチ部に、ビジー状態になった前記第2の計算部の処理を実行するよう依頼することを特徴とするものである。
【0018】
また、本発明のNFVシステムの1構成例(第5の実施例)において、前記第1のNICは、複数台のサーバ装置にそれぞれ複数設けられ、各サーバ装置は、前記複数の第1のNICと、共有メモリと、RDMA用の第2のNICとを備え、各第1のNICの前記ディスパッチ部は、配下の前記第2の計算部の状態情報をディスパッチ部と同じサーバ装置内の前記共有メモリに書き込み、配下の前記第2の計算部がビジー状態になったときに、前記共有メモリに記録された状態情報に基づいて、ビジー状態になった前記第2の計算部の処理を他の第1のNICの前記第2の計算部に割り当て可能かどうかを判断し、割り当て可能と判断した第1のNICのディスパッチ部に、ビジー状態になった前記第2の計算部の処理を実行するよう依頼し、前記第2のNICは、この第2のNICと同じサーバ装置内の前記共有メモリに記録された情報を他のサーバ装置の前記共有メモリに転送することを特徴とするものである。
【0019】
また、本発明のNFVシステムの1構成例(第5の実施例)において、前記第1のNICは、複数台のサーバ装置にそれぞれ複数設けられ、各第1のNICの前記プロトコル処理部と前記第1の計算部と前記第2の計算部と前記ディスパッチ部とは、プログラマブルロジックデバイスからなり、各サーバ装置は、前記複数の第1のNICを備え、各第1のNICの前記ディスパッチ部は、配下の前記第2の計算部の状態情報をディスパッチ部と同じ第1のNIC内の前記プログラマブルロジックデバイスのメモリに書き込み、配下の前記第2の計算部がビジー状態になったときに、他の第1のNICの前記プログラマブルロジックデバイスのメモリに記録された状態情報をネットワークを介して読み出して、ビジー状態になった前記第2の計算部の処理を他の第1のNICの前記第2の計算部に割り当て可能かどうかを判断し、割り当て可能と判断した第1のNICのディスパッチ部に、ビジー状態になった前記第2の計算部の処理を実行するよう依頼することを特徴とするものである。
【発明の効果】
【0020】
本発明によれば、NFVの処理を第1の計算部と第2の計算部で行う。プロトコル処理部と第1の計算部と第2の計算部との間は、第1のNIC内でデータ転送が行われるので、従来のような遅延が発生しない。また、従来のようにCPUとGPUの間のバスのスループットでANNの処理帯域が制限されることがない。また、本発明では、汎用のOSを使用しないので、OSによる遅延が発生しない。本発明では、従来のNFVシステムのCPUやGPUなどのデバイスを排することにより、消費電力と初期コストと管理コストを低減することができる。
【図面の簡単な説明】
【0021】
【
図1】
図1は、本発明の第1の実施例に係るNFVシステムの構成を示すブロック図である。
【
図2】
図2は、本発明の第2の実施例に係るNFVシステムの構成を示すブロック図である。
【
図3】
図3は、本発明の第3の実施例に係るNFVシステムの構成を示すブロック図である。
【
図4】
図4は、本発明の第4の実施例に係るNFVシステムの構成を示すブロック図である。
【
図5】
図5は、本発明の第5の実施例に係るNFVシステムの構成を示すブロック図である。
【
図6】
図6は、本発明の第6の実施例に係るNFVシステムの構成を示すブロック図である。
【
図7】
図7は、従来のNFVシステムの構成を示すブロック図である。
【
図8】
図8は、従来のNFVシステムのハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【0022】
[第1の実施例]
以下、本発明の実施例について図面を参照して説明する。
図1は本発明の第1の実施例に係るNFVシステムの構成を示すブロック図である。本実施例のNFVシステムは、NIC1から構成される。NIC1は、プロトコル処理部10と、計算部11(第1の計算部)と、ANN計算部12(第2の計算部)とを備えている。プロトコル処理部10と計算部11とANN計算部12のそれぞれは、ASIC(Application Specific Integrated Circuit)を用いて実現される。
【0023】
プロトコル処理部10は、外部のネットワークから受信したパケットをプロトコル処理する。計算部11は、NIC1で受信されたパケットに対して予め定められた処理を施すためのNFVを実現する。NFVの処理のうち一部の処理を行うANNは、ANN計算部12によってソフトウェア的に構築される。ANNは、例えばIDSや負荷分散などのネットワークの運用管理に関する処理を行う。
【0024】
本実施例では、NFVの処理を全て計算部11とANN計算部12で行う。プロトコル処理部10と計算部11とANN計算部12との間は、NIC1内でデータ転送が行われるので、従来のような遅延が発生しない。
【0025】
また、従来のようにCPUとGPUの間のバスのスループットでANNの処理帯域が制限されることがない。また、本実施例では、汎用のOS(Operating System)を使用しないので、OSによる遅延が発生しない。本実施例では、従来のNFVシステムのCPUやGPUなどのデバイスを排することにより、消費電力と初期コストと管理コストを低減することができる。
【0026】
[第2の実施例]
次に、本発明の第2の実施例について説明する。
図2は本発明の第2の実施例に係るNFVシステムの構成を示すブロック図である。本実施例のNFVシステムは、NIC1aから構成される。NIC1aは、プロトコル処理部10aと、計算部11aと、ANN計算部12aと、メモリ13aとを備えている。
【0027】
プロトコル処理部10aの動作は、第1の実施例のプロトコル処理部10と同じである。計算部11aの動作は、第1の実施例の計算部11と同じである。ANN計算部12aの動作は、第1の実施例のANN計算部12と同じである。
【0028】
本実施例では、プロトコル処理部10aと計算部11aとANN計算部12aとメモリ13aとをFPGA(Field Programmable Gateway)またはCGRA(Course Grained Reconfigurable Array)などのプログラマブルロジックデバイス3によって実現している。プロトコル処理部10aと計算部11aとANN計算部12aのプログラム(回路構成データ)は、メモリ13aに記憶されている。
【0029】
こうして、本実施例では、第1の実施例と同様の効果を得ることができる。また、本実施例では、プログラマブルロジックデバイス3を用いることにより、プロトコル処理部10aと計算部11aとANN計算部12aの動作を変更することが可能である。本実施例では、NIC1aをワンチップで実装可能であり、さらなる低遅延化、広帯域化が可能である。
【0030】
ミドルボックスを用いる従来のシステムでは、ミドルボックスを一度停止させ、プログラムを書き替えたり、ハードウェアを入れ替えたりする必要があった。これに対して、本実施例では、メモリ13aのプログラムを書き替えることにより、NIC1aの電源を投入した状態のまま、プロトコル処理部10aと計算部11aとANN計算部12aの動作を変更することが可能になる。
【0031】
[第3の実施例]
次に、本発明の第3の実施例について説明する。
図3は本発明の第3の実施例に係るNFVシステムの構成を示すブロック図である。本実施例のNFVシステムは、NIC1bから構成される。NIC1bは、プロトコル処理部10bと、計算部11bと、複数のANN計算部12b-1,12b-2と、メモリ13bと、ディスパッチ部14bとを備えている。
【0032】
プロトコル処理部10bの動作は、第1の実施例のプロトコル処理部10と同じである。計算部11bの動作は、第1の実施例の計算部11と同じである。ANN計算部12b-1,12b-2は、第1の実施例のANN計算部12と同じANNの処理を単独または複数で行う。
【0033】
ディスパッチ部14bは、ANN計算部12b-1,12b-2の稼働状況を監視し、効率的な処理になるように、ANN計算部12b-1,12b-2の稼働状況に応じてANNの処理を分割してANN計算部12b-1,12b-2に割り当てる。
【0034】
ANN計算部12b-1,12b-2は、分割されたANNの処理を並列に実行する。ディスパッチ部14bは、ANN計算部12b-1,12b-2の稼働状況を監視しているので、並列処理した方が効率的であっても、空いているANN計算部が1つしか無い場合は1つのANN計算部で処理させることもあり得る。
図3の例では、ANN計算部12b-1,12b-2を2つ設けているが、3つ以上設けるようにしてもよい。
【0035】
本実施例では、プロトコル処理部10bと計算部11bとANN計算部12b-1,12b-2とメモリ13bとディスパッチ部14bとをFPGAまたはCGRAなどのプログラマブルロジックデバイス3bによって実現している。プロトコル処理部10bと計算部11bとANN計算部12b-1,12b-2とディスパッチ部14bのプログラム(回路構成データ)は、メモリ13bに記憶されている。
【0036】
こうして、本実施例では、第2の実施例と同様の効果を得ることができる。本実施例では、ANNの処理を分割して並列に実行することで、処理の効率化を実現することができる。また、本実施例では、ディスパッチ部14bがANN計算部12b-1,12b-2の稼働状況を監視することで、ジョブ投入の最適タイミングを判断できるようになり、効率的な運用が可能になる。
【0037】
[第4の実施例]
次に、本発明の第4の実施例について説明する。
図4は本発明の第4の実施例に係るNFVシステムの構成を示すブロック図である。本実施例のNFVシステムは、サーバ装置100cと、スイッチ101cとから構成される。サーバ装置100cは、複数のNIC1c-1,1c-2,1c-3と、共有メモリ4cと、CPU5cとを備えている。
【0038】
NIC1c-1は、プロトコル処理部10cと、計算部11cと、複数のANN計算部12c-1,12c-2と、メモリ13cと、ディスパッチ部14cとを備えている。NIC1c-2,1c-3の構成はNIC1c-1と同じである。
【0039】
プロトコル処理部10cの動作は、第1の実施例のプロトコル処理部10と同じである。計算部11cの動作は、第1の実施例の計算部11と同じである。ANN計算部12c-1,12c-2は、第1の実施例のANN計算部12と同じANNの処理を単独または複数で行う。
【0040】
第3の実施例と同様に、ディスパッチ部14cは、ANN計算部12c-1,12c-2の稼働状況を監視し、効率的な処理になるように、ANN計算部12c-1,12c-2の稼働状況に応じてANNの処理を分割してANN計算部12c-1,12c-2に割り当てる。第3の実施例と異なるディスパッチ部14cの特徴的な動作については後述する。
図4の例では、1つのNIC内にANN計算部12c-1,12c-2を2つ設けているが、3つ以上設けるようにしてもよい。
【0041】
本実施例では、各NICのプロトコル処理部10cと計算部11cとANN計算部12c-1,12c-2とメモリ13cとディスパッチ部14cとをFPGAまたはCGRAなどのプログラマブルロジックデバイス3cによって実現している。プロトコル処理部10cと計算部11cとANN計算部12c-1,12c-2とディスパッチ部14cのプログラム(回路構成データ)は、メモリ13cに記憶されている。
【0042】
スイッチ101cは、各NICのディスパッチ部14c同士をネットワークを介して接続する。
共有メモリ4cは、サーバ装置100cのCPU5c配下のメモリであり、各NICのディスパッチ部14cと内部バスを介して接続される。
【0043】
以下、本実施例のディスパッチ部14cの特徴的な動作について説明する。ディスパッチ部14cは、サーバ装置100cの構成に応じて、以下の(I)~(III)のいずれかの処理を行う。
【0044】
(I)各NICのディスパッチ部14c同士がサーバ装置100cの外部ネットワークとサーバ装置100cの内部バスの両方で接続されている場合、各ディスパッチ部14cは、自身と接続されている配下のANN計算部12c-1,12c-2の状態情報を常に共有メモリ4cに書き込む。また、各ディスパッチ部14cは、他のNICのディスパッチ部14cが共有メモリ4cに書き込んだANN計算部12c-1,12c-2の状態情報を読み出す。
【0045】
各ディスパッチ部14cは、配下のANN計算部12c-1,12c-2がビジー状態になったときに、他のNICのANN計算部12c-1,12c-2の状態情報に基づいて、ビジー状態になったANN計算部12c-1,12c-2の処理を他のNICのANN計算部12c-1,12c-2に割り当て可能かどうかを判断する。
【0046】
そして、ディスパッチ部14cは、他のNICのANN計算部12c-1,12c-2に割り当て可能と判断した場合、このNICのディスパッチ部14cに、ビジー状態になったANN計算部12c-1,12c-2の処理を実行するよう外部ネットワークとスイッチ101cとを介して依頼する。
【0047】
依頼を受けたNICのディスパッチ部14cは、依頼された処理を配下のANN計算部12c-1,12c-2に割り当てる。ANNの処理結果は、外部ネットワークとスイッチ101cとを介して依頼元のNICのディスパッチ部14cに返送される。
【0048】
(II)各NICのディスパッチ部14c同士がサーバ装置100cの外部ネットワークのみで接続されている場合、各ディスパッチ部14cは、自身と接続されている配下のANN計算部12c-1,12c-2の状態情報を自身と接続されているメモリ13cに常に書き込む。また、各ディスパッチ部14cは、他のNICのディスパッチ部14cがNIC内のメモリ13cに書き込んだANN計算部12c-1,12c-2の状態情報を外部ネットワークとスイッチ101cとを介して読み出す。
【0049】
各ディスパッチ部14cは、配下のANN計算部12c-1,12c-2がビジー状態になったときに、他のNICのANN計算部12c-1,12c-2の状態情報に基づいて、ビジー状態になったANN計算部12c-1,12c-2の処理を他のNICのANN計算部12c-1,12c-2に割り当て可能かどうかを判断する。
【0050】
そして、ディスパッチ部14cは、他のNICのANN計算部12c-1,12c-2に割り当て可能と判断した場合、このNICのディスパッチ部14cに、ビジー状態になったANN計算部12c-1,12c-2の処理を実行するよう外部ネットワークとスイッチ101cとを介して依頼する。
【0051】
依頼を受けたNICのディスパッチ部14cは、依頼された処理を配下のANN計算部12c-1,12c-2に割り当てる。ANNの処理結果は、外部ネットワークとスイッチ101cとを介して依頼元のNICのディスパッチ部14cに返送される。
【0052】
(III)各NICのディスパッチ部14c同士がサーバ装置100cの内部バスのみで接続されている場合、各ディスパッチ部14cは、配下のANN計算部12c-1,12c-2の状態情報を常に共有メモリ4cに書き込む。また、各ディスパッチ部14cは、他のNICのディスパッチ部14cが共有メモリ4cに書き込んだANN計算部12c-1,12c-2の状態情報を読み出す。
【0053】
各ディスパッチ部14cは、配下のANN計算部12c-1,12c-2がビジー状態になったときに、他のNICのANN計算部12c-1,12c-2の状態情報に基づいて、ビジー状態になったANN計算部12c-1,12c-2の処理を他のNICのANN計算部12c-1,12c-2に割り当て可能かどうかを判断する。
【0054】
そして、ディスパッチ部14cは、他のNICのANN計算部12c-1,12c-2に割り当て可能と判断した場合、このNICのディスパッチ部14cに、ビジー状態になったANN計算部12c-1,12c-2の処理を実行するよう内部バスを介して依頼する。
【0055】
依頼を受けたNICのディスパッチ部14cは、依頼された処理を配下のANN計算部12c-1,12c-2に割り当てる。ANNの処理結果は、内部バスを介して依頼元のNICのディスパッチ部14cに返送される。
【0056】
こうして、本実施例では、第3の実施例と同様の効果を得ることができる。また、本実施例では、ANNの処理の実行効率を高めることができ、システム全体の利用効率を高めることができる。
【0057】
[第5の実施例]
次に、本発明の第5の実施例について説明する。
図5は本発明の第5の実施例に係るNFVシステムの構成を示すブロック図である。本実施例のNFVシステムは、複数のサーバ装置100d-1,100d-2と、スイッチ101dとから構成される。サーバ装置100d-1は、複数のNIC1d-1,1d-2,1d-3と、共有メモリ4dと、CPU5dと、NIC6dとを備えている。サーバ装置100d-2の構成はサーバ装置100d-1と同じである。
【0058】
NIC1d-1は、プロトコル処理部10dと、計算部11dと、複数のANN計算部12d-1,12d-2と、メモリ13dと、ディスパッチ部14dとを備えている。NIC1d-2,1d-3の構成はNIC1d-1と同じである。
【0059】
プロトコル処理部10dの動作は、第1の実施例のプロトコル処理部10と同じである。計算部11dの動作は、第1の実施例の計算部11と同じである。ANN計算部12d-1,12d-2は、第1の実施例のANN計算部12と同じANNの処理を単独または複数で行う。
【0060】
第4の実施例と同様に、ディスパッチ部14dは、ANN計算部12d-1,12d-2の稼働状況を監視し、効率的な処理になるように、ANN計算部12d-1,12d-2の稼働状況に応じてANNの処理を分割してANN計算部12d-1,12d-2に割り当てる。第3の実施例と異なるディスパッチ部14dの特徴的な動作については後述する。
図5の例では、1つのNIC内にANN計算部12d-1,12d-2を2つ設けているが、3つ以上設けるようにしてもよい。
【0061】
本実施例では、各NICのプロトコル処理部10dと計算部11dとANN計算部12d-1,12d-2とメモリ13dとディスパッチ部14dとをFPGAまたはdGRAなどのプログラマブルロジックデバイス3dによって実現している。プロトコル処理部10dと計算部11dとANN計算部12d-1,12d-2とディスパッチ部14dのプログラム(回路構成データ)は、メモリ13dに記憶されている。
【0062】
スイッチ101dは、サーバ装置100d-1,100d-2の各NICのディスパッチ部14d同士をネットワークを介して接続する。
共有メモリ4dは、同じサーバ装置内の各NICのディスパッチ部14dと内部バスを介して接続される。
【0063】
NIC6dは、RDMA(Remote Direct Memory Access)用のNICである。NIC6dを用いることで、従来のRDMAの恩恵を受けながら、共有メモリ4d内のデータをサーバ装置間で共有できる。
【0064】
以下、本実施例のディスパッチ部14dの特徴的な動作について説明する。ディスパッチ部14dは、サーバ装置100d-1,100d-2の構成に応じて、以下の(IV)~(VI)のいずれかの処理を行う。
【0065】
(IV)サーバ装置100d-1,100d-2の各NICのディスパッチ部14d同士が外部ネットワークと、NIC6dを介した内部バスの両方で接続されている場合、各ディスパッチ部14dは、自身と接続されている配下のANN計算部12d-1,12d-2の状態情報を自身と接続されている共有メモリ4dに常に書き込む。また、各ディスパッチ部14dは、他のNICのディスパッチ部14dが共有メモリ4dに書き込んだANN計算部12d-1,12d-2の状態情報を読み出す。
【0066】
各サーバ装置100d-1,100d-2のNIC6dは、同じサーバ装置内の共有メモリ4dに記録された情報を他のサーバ装置の共有メモリ4dに転送する。こうして、サーバ装置100d-1,100d-2間で共有メモリ4dの情報のコーヒレンス(coherence)が保たれている。すなわち、各ディスパッチ部14dは、同じサーバ装置内の別のNICのANN計算部12d-1,12d-2の状態情報だけでなく、他のサーバ装置内のNICのANN計算部12d-1,12d-2の状態情報を共有メモリ4dから読み出すことができる。
【0067】
各ディスパッチ部14dは、配下のANN計算部12d-1,12d-2がビジー状態になったときに、他のNICのANN計算部12d-1,12d-2の状態情報に基づいて、ビジー状態になったANN計算部12d-1,12d-2の処理を他のNICのANN計算部12d-1,12d-2に割り当て可能かどうかを判断する。
【0068】
そして、ディスパッチ部14dは、他のNICのANN計算部12d-1,12d-2に割り当て可能と判断した場合、このNICのディスパッチ部14dに、ビジー状態になったANN計算部12d-1,12d-2の処理を実行するよう外部ネットワークとスイッチ101dとを介して依頼する。
【0069】
依頼を受けたNICのディスパッチ部14dは、依頼された処理を配下のANN計算部12d-1,12d-2に割り当てる。ANNの処理結果は、外部ネットワークとスイッチ101dとを介して依頼元のNICのディスパッチ部14dに返送される。第4の実施例と異なり、本実施例では、他のサーバ装置のディスパッチ部14dに処理を依頼することが可能である。
【0070】
(V)サーバ装置100d-1,100d-2の各NICのディスパッチ部14d同士が外部ネットワークのみで接続されている場合、各ディスパッチ部14dは、自身と接続されている配下のANN計算部12d-1,12d-2の状態情報を自身と接続されているメモリ13dに常に書き込む。
【0071】
また、各ディスパッチ部14dは、他のNICのディスパッチ部14dがNIC内のメモリ13dに書き込んだANN計算部12d-1,12d-2の状態情報を外部ネットワークとスイッチ101dとを介して読み出す。これにより、各ディスパッチ部14dは、同じサーバ装置内の別のNICのANN計算部12d-1,12d-2の状態情報だけでなく、他のサーバ装置内のNICのANN計算部12d-1,12d-2の状態情報を読み出すことができる。
【0072】
各ディスパッチ部14dは、配下のANN計算部12d-1,12d-2がビジー状態になったときに、他のNICのANN計算部12d-1,12d-2の状態情報に基づいて、ビジー状態になったANN計算部12d-1,12d-2の処理を他のNICのANN計算部12d-1,12d-2に割り当て可能かどうかを判断する。
【0073】
そして、ディスパッチ部14dは、他のNICのANN計算部12d-1,12d-2に割り当て可能と判断した場合、このNICのディスパッチ部14dに、ビジー状態になったANN計算部12d-1,12d-2の処理を実行するよう外部ネットワークとスイッチ101dとを介して依頼する。
【0074】
依頼を受けたNICのディスパッチ部14dは、依頼された処理を配下のANN計算部12d-1,12d-2に割り当てる。ANNの処理結果は、外部ネットワークとスイッチ101dとを介して依頼元のNICのディスパッチ部14dに返送される。第4の実施例と異なり、本実施例では、他のサーバ装置のディスパッチ部14dに処理を依頼することが可能である。
【0075】
(VI)サーバ装置100d-1,100d-2の各NICのディスパッチ部14d同士がサーバ装置100d-1,100d-2の内部バスのみで接続されている場合、各ディスパッチ部14dは、自身と接続されている配下のANN計算部12d-1,12d-2の状態情報を自身と接続されている共有メモリ4dに常に書き込む。また、各ディスパッチ部14dは、他のNICのディスパッチ部14dが共有メモリ4dに書き込んだANN計算部12d-1,12d-2の状態情報を読み出す。
【0076】
各サーバ装置100d-1,100d-2のNIC6dは、同じサーバ装置内の共有メモリ4dに記録された情報を他のサーバ装置の共有メモリ4dに転送する。こうして、サーバ装置100d-1,100d-2間で共有メモリ4dの情報のコーヒレンスが保たれている。
【0077】
各ディスパッチ部14dは、配下のANN計算部12d-1,12d-2がビジー状態になったときに、他のNICのANN計算部12d-1,12d-2の状態情報に基づいて、ビジー状態になったANN計算部12d-1,12d-2の処理を他のNICのANN計算部12d-1,12d-2に割り当て可能かどうかを判断する。
【0078】
そして、ディスパッチ部14dは、他のNICのANN計算部12d-1,12d-2に割り当て可能と判断した場合、このNICのディスパッチ部14dに、ビジー状態になったANN計算部12d-1,12d-2の処理を実行するよう内部バスを介して依頼する。ディスパッチ部14dは、依頼先のディスパッチ部14dが他のサーバ装置にある場合には、内部バスとNIC6dを介して依頼する。
【0079】
依頼を受けたNICのディスパッチ部14dは、依頼された処理を配下のANN計算部12d-1,12d-2に割り当てる。ANNの処理結果は、内部バスを介して依頼元のNICのディスパッチ部14dに返送される。依頼を受けたNICのディスパッチ部14dは、依頼元のディスパッチ部14dが他のサーバ装置にある場合には、内部バスとNIC6dを介して処理結果を返送する。
【0080】
こうして、本実施例では、第4の実施例と同様の効果を得ることができる。また、本実施例では、ANNの処理の実行効率を高めることができ、システム全体の利用効率を高めることができる。
【0081】
[第6の実施例]
次に、本発明の第6の実施例について説明する。
図6は本発明の第6の実施例に係るNFVシステムの構成を示すブロック図である。本実施例のNFVシステムは、複数のサーバ装置100e-1,100e-2と、スイッチ101eとから構成される。サーバ装置100e-1は、複数のNIC1e-1,1e-2,1e-3と、共有メモリ4eと、CPU5eと、NIC6eと,外部ANN計算部7eとを備えている。サーバ装置100e-2の構成はサーバ装置100e-1と同じである。
【0082】
NIC1e-1は、プロトコル処理部10eと、計算部11eと、複数のANN計算部12e-1,12e-2と、メモリ13eと、ディスパッチ部14eとを備えている。NIC1e-2,1e-3の構成はNIC1e-1と同じである。
【0083】
プロトコル処理部10eの動作は、第1の実施例のプロトコル処理部10と同じである。計算部11eの動作は、第1の実施例の計算部11と同じである。ANN計算部12e-1,12e-2は、第1の実施例のANN計算部12と同じANNの処理を単独または複数で行う。
【0084】
第5の実施例と同様に、ディスパッチ部14eは、ANN計算部12e-1,12e-2の稼働状況を監視し、効率的な処理になるように、ANN計算部12e-1,12e-2の稼働状況に応じてANNの処理を分割してANN計算部12e-1,12e-2に割り当てる。第5の実施例と異なるディスパッチ部14eの特徴的な動作については後述する。
図5の例では、1つのNIC内にANN計算部12e-1,12e-2を2つ設けているが、3つ以上設けるようにしてもよい。
【0085】
本実施例では、各NICのプロトコル処理部10eと計算部11eとANN計算部12e-1,12e-2とメモリ13eとディスパッチ部14eとをFPGAまたはeGRAなどのプログラマブルロジックデバイス3eによって実現している。プロトコル処理部10eと計算部11eとANN計算部12e-1,12e-2とディスパッチ部14eのプログラム(回路構成データ)は、メモリ13eに記憶されている。
【0086】
スイッチ101eは、サーバ装置100e-1,100e-2の各NICのディスパッチ部14e同士をネットワークを介して接続する。
共有メモリ4eは、同じサーバ装置内の各NICのディスパッチ部14eと内部バスを介して接続される。
NIC6eは、RDMA用のNICである。
【0087】
以下、本実施例のディスパッチ部14eの特徴的な動作について説明する。ディスパッチ部14eの動作は、第5の実施例のディスパッチ部14dと同様である。第5の実施例と異なるのは、ディスパッチ部14eは、プログラマブルロジックデバイス3eでは処理しきれない大きな計算量が必要なANNの処理を、外部ANN計算部7eに依頼することである。外部ANN計算部7eは、GPUを用いて実現される。
【0088】
こうして、本実施例では、第5の実施例と同様の効果を得ることができる。また、本実施例では、大きな計算量が必要な一部の処理を外部ANN計算部7eを用いて実行することにより、ANNの処理の実行効率を高めることができる。
【0089】
[第7の実施例]
次に、本発明の第7の実施例について説明する。
図7は非特許文献1に開示されているNFVシステムの構成を示すブロック図である。
図7のNFVシステムは、Packet Capture200と、Packet Parser201と、Feature Extractor202と、Feature Mapper203と、Ensemble Layer204と、Anomaly Detector205とから構成される。
【0090】
第6の実施例で説明したNFVシステムを用いて、プロトコル処理部10eによってPacket Capture200を実現し、計算部11eによってPacket Parser201を実現し、ディスパッチ部14eによってFeature Mapper203を実現し、ANN計算部12e-1,12e-2と外部ANN計算部7eとによってFeature Extractor202とEnsemble Layer204とAnomaly Detector205とを実現する。
【0091】
こうして、本実施例では、第6の実施例で説明した機能を非特許文献1に開示されたNFVシステムに割り当てることにより、Ensemble Layer毎にANN計算部を割り当てることができ、システムを物理的に拡大することができる。
【0092】
ANNを物理的にマッピングすることにより、ANNのEnsemble Layerを増やしても、物理的にNICの枚数を増やすことで対応することができる。従来の技術では、サーバの負荷が高まってしまい、帯域や遅延性能が劣化する。
【産業上の利用可能性】
【0093】
本発明は、NFVシステムに適用することができる。
【符号の説明】
【0094】
1,1a,1b,1c-1,1c-2,1c-3,1d-1,1d-2,1d-3,1e-1,1e-2,1e-3,6d…NIC、3,3b、3c,3d,3e…プログラマブルロジックデバイス、4c,4d,4e…共有メモリ、5c,5d,5e…CPU、7e…外部ANN計算部、10,10a,10b,10c,10d,10e…プロトコル処理部、11,11a,11b,11c,11d,11e…計算部、12,12a,12b-1,12b-2,12c-1,12c-2,12d-1,12d-2,12e-1,12e-2…ANN計算部、13a,13b,13c,13d,13e…メモリ、14b,14c,14d,14e…ディスパッチ部、100c,100d-1,100d-2,100e-1,100e-2…サーバ装置、101c,101dc,101e…スイッチ。