JP6977621B2 - 制御装置、及び制御方法 - Google Patents

制御装置、及び制御方法 Download PDF

Info

Publication number
JP6977621B2
JP6977621B2 JP2018037025A JP2018037025A JP6977621B2 JP 6977621 B2 JP6977621 B2 JP 6977621B2 JP 2018037025 A JP2018037025 A JP 2018037025A JP 2018037025 A JP2018037025 A JP 2018037025A JP 6977621 B2 JP6977621 B2 JP 6977621B2
Authority
JP
Japan
Prior art keywords
unit
control
units
distribution circuit
output
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.)
Active
Application number
JP2018037025A
Other languages
English (en)
Other versions
JP2019153019A (ja
Inventor
育生 大谷
紀貴 堀米
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2018037025A priority Critical patent/JP6977621B2/ja
Priority to PCT/JP2019/006614 priority patent/WO2019167802A1/ja
Priority to US16/977,139 priority patent/US11509573B2/en
Publication of JP2019153019A publication Critical patent/JP2019153019A/ja
Application granted granted Critical
Publication of JP6977621B2 publication Critical patent/JP6977621B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • H04L45/566Routing instructions carried by the data packet, e.g. active networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、制御装置、及び制御方法に関する。
ロードバランサ(Balancer)が処理要求(パケット)を複数に振り分け、振り分けられた処理要求を、複数のディスパッチャ(Dispatcher)が、該ディスパッチャと同数のサーバ(CPU)に振り分け、振り分けられたサーバが処理を実行する技術が開示されている(特許文献1参照)。また、特許文献1には、「ロードバランサBは、外部装置5から処理要求を取得すると、ラウンドロビン等によりその処理要求を複数のディスパッチャD(D1,D2,D3)のいずれかに振り分ける」と記載されている。
特開2014−032530号公報(段落0033、図2)
ここで、特許文献1に記載のロードバランサは、物理CPUを搭載し、ソフトウェアで実現しているのか、物理CPUを搭載することなく、ハードウェアロジックで実現しているのかまでは記載されていない。仮に、ロードバランサを専用ハードウェアで構成すれば、ソフトウェアで実現するよりも、高速になる一方、振り分けロジックや振り分け先の数が固定されてしまう。
本発明は、このような問題点を解決するためになされたものであり、振り分けロジックを柔軟に変更することができる制御装置、及び制御方法を提供することを目的とする。
請求項1に係る発明の制御装置は、ネットワークからパケットを受信する通信部(例えば、NIC)と、複数の仮想制御部(例えば、VM1a,1b,・・・)として機能する複数の第1制御部と、受信した前記パケットを複数に振り分ける振分回路(例えば、Balancer10a)と、前記振分回路が振り分けたパケットを前記複数の仮想制御部に振り分ける複数の第2制御部(例えば、Dispatcher4a,・・・)とを備え、前記振分回路は、PLD(Programmable Logic Device)で構成されており、前記振分回路は、前記第2制御部と1対1接続されている複数の第1出力部と、前記第2制御部と接続されていない第2出力部とを有することにより、前記複数の第1出力部と前記第2出力部との和で示される前記振分回路の出力数が、前記第2制御部の数よりも多くなっており、前記第1出力部と前記第2出力部との何れを振り分け経路とするかを管理する管理部をさらに備えることを特徴とする。
これによれば、振分回路が受信したパケットを第2制御部に振り分ける。そして、第2制御部は、振り分けられたパケットを複数の仮想制御部に振り分ける。振分回路によって、第2制御部を複数備えられるので、複数の仮想制御部を構成する第1制御部の数を増加させることができる。
ここで、PLDで構成された振分回路が複数の第2制御部にパケットを振り分けるので、専用ハードウェアで構成するよりも、柔軟性が高く、ケースバイケースで振り分けロジックを変更することができる。また、ソフトウェアでパケットを振り分けるよりも、高速化を実現することができる。なお、第1制御部及び第2制御部の何れか一方又は双方は、CPUコアやCPUデバイスの機能部として構成することができる。
また、振分回路は、第2制御部(例えば、Dispatcher)の数よりも多い数の出力部(例えば、CPU_IF機能部11の出力部)を備えておくことができる。つまり、振分回路は、ハードウェア上の限界まで、最大数の出力部(第1出力部又は第2出力部)を構成することができる。
請求項2に係る発明は、ネットワークからパケットを受信する通信部と、複数の仮想制御部として機能する複数の第1制御部と、受信した前記パケットを複数に振り分ける振分回路と、前記振分回路が振り分けたパケットを前記複数の仮想制御部に振り分ける複数の第2制御部とを備え、前記振分回路は、PLDで構成されており、前記振分回路は、前記第2制御部と1対1接続されている複数の第1出力部と、前記第2制御部と接続されていない第2出力部とを有することにより、前記複数の第1出力部と前記第2出力部との和で示される前記振分回路の出力数が、前記第2制御部の数よりも多くなっており、前記第2出力部の出力信号経路が遮断されることを特徴とする。
これによれば、振分回路が受信したパケットを第2制御部に振り分ける。そして、第2制御部は、振り分けられたパケットを複数の仮想制御部に振り分ける。振分回路によって、第2制御部を複数備えられるので、複数の仮想制御部を構成する第1制御部の数を増加させることができる。
ここで、PLDで構成された振分回路が複数の第2制御部にパケットを振り分けるので、専用ハードウェアで構成するよりも、柔軟性が高く、ケースバイケースで振り分けロジックを変更することができる。また、ソフトウェアでパケットを振り分けるよりも、高速化を実現することができる。なお、第1制御部及び第2制御部の何れか一方又は双方は、CPUコアやCPUデバイスの機能部として構成することができる。
また、振分回路は、ハードウェア上の限界まで、最大数の出力部(第1出力部又は第2出力部)を構成することができる。
請求項に係る発明は、請求項又は請求項に記載の制御装置であって、前記振分回路は、前記第2出力部に送信されるべきパケットを、ラウンドロビンを用いて第1出力部に振り分け直すことを特徴とする。
これによれば、複数の第1出力部は、1対1接続されている第2制御部を負荷分散する。また、第2出力部は、負荷を有さない。
請求項4に係る発明は、ネットワークからパケットを受信する通信部と、受信した前記パケットを複数に振り分け、PLDで構成された振分回路と、前記振分回路が振り分けたパケットを処理する複数の制御部を備える制御装置が実行する制御方法であって、前記振分回路は、前記制御部と1対1接続されている複数の第1出力部と、前記制御部と接続されていない第2出力部とを有することにより、前記複数の第1出力部と前記第2出力部との和で示される前記振分回路の出力数が、前記制御部の数よりも多くなっており、前記第1出力部と前記第2出力部との何れを振り分け経路とするかを管理するステップを有することを特徴とする。
請求項5に係る発明は、ネットワークからパケットを受信する通信部と、受信した前記パケットを複数に振り分け、PLDで構成された振分回路と、前記振分回路が振り分けたパケットを処理する複数の制御部を備える制御装置が実行する制御方法であって、前記振分回路は、前記制御部と1対1接続されている複数の第1出力部と、前記制御部と接続されていない第2出力部とを有することにより、前記複数の第1出力部と前記第2出力部との和で示される前記振分回路の出力数が、前記制御部の数よりも多くなっており、前記第2出力部の出力信号経路が遮断されるステップを有することを特徴とする。
なお、振分回路は、パケットの特定のフィールドの内容に基づいて、何れかの第1出力部に切り替え、各々の第2制御部は、識別子を用いて、各々の仮想制御部に振り分ける振分機能を実現することができる。
本発明によれば、振り分けロジックを柔軟に変更することが可能な制御装置を構成することができる。
本発明の第1実施形態である制御装置の構成図である。 本発明の第2実施形態である制御装置の構成図である。 本発明の第3実施形態である制御装置の構成図である。 本発明の第4実施形態である制御装置の構成図である。 本発明の第5実施形態である制御装置の構成図である。 本発明の比較例である制御装置の構成図である。
以下、図面を参照して、本発明の実施の形態(以下、「本実施形態」と称する)につき詳細に説明する。なお、各図は、本発明を十分に理解できる程度に、概略的に示してあるに過ぎない。また、各図において、共通する構成要素や同様な構成要素については、同一の符号を付し、それらの重複する説明を省略する。
(第1実施形態)
図1は、本発明の第1実施形態である制御システムの全体構成図である。
制御装置100aは、複数の第1制御部3a,3b,3c,3dと、該第1制御部と同数の第2制御部6a,6b,6c,6dと、振分回路としてのBalancer10aと、通信部としてのNIC20とを備えて構成される。
第1制御部3aは、物理CPU(Central Processing Unit)としてのCPUコアであり、プログラム(プログラムモジュール)を実行することにより、複数のVM(Virtual Machine)である仮想制御部1a,1bと、複数のキューである第1バッファ2a,2bとの機能を実現する。仮想制御部1a,1bは、ハイパバイザ上で動作する仮想的なコンピュータである。第1バッファ2a,2bは、第2制御部6aから振り分けられた信号(パケット)を先入れ先出しで仮想制御部1a,1bに出力するキューである。
第2制御部6aは、物理CPUとしてのCPUコアであり、プログラムを実行することにより、Dispatcher4aと、キューである第2バッファ5aとの機能を実現する。なお、複数の第1制御部3a,3b,3c,3dと、該第1制御部と同数の第2制御部6a,6b,6c,6dとの何れか一方又は双方は、CPUコアの機能部としても実現可能であり、また、複数のCPUコアを内蔵するCPUデバイスの機能部としても実現可能である。
Dispatcher4aは、例えば、宛先IPアドレス等の識別子に基づいて、仮想制御部1a,1bに振り分ける機能を有する。同様に、第1制御部3bは、複数の仮想制御部1c,1dと、複数の第1バッファ2c,2dとの機能を実現する。第2制御部6bは、Dispatcher4bと、第2バッファ5bとの機能を実現する。また、第1制御部3cは、複数の仮想制御部1e,1fと、複数の第1バッファ2e,2fとの機能を実現する。第2制御部6cは、Dispatcher4cと、第2バッファ5cとの機能を実現する。また、第1制御部3dは、複数の仮想制御部1g,1hと、複数の第1バッファ2g,2hとの機能を実現する。第2制御部6dは、Dispatcher4dと、第2バッファ5dとの機能を実現する。NIC20は、Network Interface Cardであり、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークに接続される通信部である。
Balancer10aは、CPU_IF機能部11と、Balancer機能部12と、NIC_IF機能部13と、汎用IF14a,14bとを備えて構成される振分回路である。CPU_IF機能部11は、4つの出力部を有し、第2制御部6a,6b,6c,6dとのインタフェースを司るハードウェアである。なお、後記する第5実施形態である制御装置100e(図5)のように、CPU_IF機能部11は、ラウンドロビン等の機能を実現するCPUで構成されることもある。
NIC_IF機能部13は、NIC20とのインタフェースを司るハードウェアである。汎用IF14a,14bは、汎用のキューである。特に、汎用IF14aは、CPU_IF機能部11とBalancer機能部12との間を中継するFIFO(First In First Out)メモリ(ハードウェア)である。汎用IF14bは、Balancer機能部12とNIC_IF機能部13との間を中継するFIFOメモリである。
Balancer機能部12は、NIC20が受信したパケットを複数に振り分けるハードウェアであり、PLD(Programmable Logic Device)、例えば、FPGA(Field Programmable Gate Array)で構成される振分部である。そして、振り分けられたパケットは、汎用IF14a、及びCPU_IF機能部11を介して、4つの第2バッファ5a,5b,5c,5dに出力される。Balancer機能部12は、PLDを用いることにより、任意の振り分けロジックを実現することができる。つまり、Balancer機能部12は、Balancer機能部A12a、Balancer機能部B12b、Balancer機能部C12c、Balancer機能部D12d等の異なる種類のBalancer機能部(振分部)の何れかに機能変更することができる。また、Balancer機能部12は、FPGAを用い、Gate Arrayを再構成することにより、ケースバイケースで機能変更することができる。
例えば、Balancer機能部12は、パケットの特定のフィールドを見て、同等のフローで処理可能であれば、同じ振り分け先に振り分けるものであったり、ラウンドロビンのように、パケットの性質に無関係に振り分けるものであったりする。なお、同じ振り分け先に振り分けるものは、指向性が高いということができ、振り分け先がランダムなラウンドロビンは、指向性が低いということができる。また、同等のフローを示したものを同じ振り分け先に振り分ければ、ランダム性が低く、静的な仮想制御部(VM)に振り分けることができる。また、パケットの性質によらずに振り分ければ、ランダム性が高く、仮想制御部(VM)の数や配置場所が動的に変動する場合に有効に振り分けることができる。
また、Balancer機能部12は、Balancer機能部A12a、Balancer機能部B12b、Balancer機能部C12c、Balancer機能部D12d等の異なる機能のBalancerを有し、オプション設定により、各機能部を切り替えることができるように構成しても構わない。
以上説明したように、本実施形態の制御装置100aは、Balancer機能部12をFPGAのハードウェアで構成するので、ケースバイケースで再構成したり、オプション設定することにより、複数のBalancer機能部12a,12b,12c,12dの何れかに切り替えることができる。
(第2実施形態)
前記第1実施形態の制御装置100aのBalancer10aは、Balancer機能部12を備え、Balancer機能部12が振り分けることができる数と、第2制御部6a,6b,6c,6dの数とが等しいことを前提としていた。本実施形態では、Balancer機能部12が振り分け可能な数の方が第2制御部6a,6b,6c,6dの数よりも多いことを前提とする。
図2は、本発明の第2実施形態である制御装置の構成図である。
制御装置100bは、前記第1実施形態の制御装置100aと同様に、複数の第1制御部3a,3b,3cと、該第1制御部と同数の第2制御部6a,6b,6cと、振分回路としてのBalancer10aと、通信部としてのNIC20とを備える。ここで、第1制御部3cは、複数の仮想制御部1e,1f,1g,1hと、複数の第1バッファ2e,2f,2g,2hとの機能を実現する。第1制御部3a,3bよりも仮想制御部の数が多いので、処理が軽い制御を並列処理することができる。第2制御部6cは、Dispatcher4cと、第2バッファ5cとの機能を実現する。
ここで、Balancer10aは、振り分け可能な数が第2制御部6a,6b,6cの数よりも多いBalancer機能部12(図1)を備えているものとする。つまり、Balancer10aは、第2制御部6a,6b,6cと1対1接続する第1出力部(振り分け経路)と、第2制御部6a,6b,6cに接続されない第2出力部(振り分け経路)とを有している。さらに、制御装置100bは、第2制御部6a,6b,6cを管理する管理部30aと、Balancer10aを管理する管理部30bと、管理部30aと管理部30bとを通信可能に接続する通知用IFとを備えて構成される。
管理部30a,30bは、Balancer10aの機能を指定する。具体的には、管理部30a,30bは、振分部としてのBalancer機能部12(図1)の第2出力部を指定する機能を有する。ここでは、管理部30a,30bは、第2制御部6a,6b,6cの数が3つであるので、Balancer機能部12は、第2制御部6a,6b,6cに接続されている3つの第1出力部を使用する。つまり、管理部30a,30bは、Balancer10aの回路を変更することなく、インタフェース(出力部)の数を変更する。また、Balancer機能部12は、Balancer機能部A12a、Balancer機能部B12b、Balancer機能部C12c、Balancer機能部D12d等の異なる機能のBalancerを有し、管理部30a,30bが各機能部を切り替えるように構成しても構わない。
制御装置100bによれば、Balancer10aは、最大限の振り分け可能数のBalancer機能部12を、FPGAで構成することができる。そして、第2制御部6a,6b,6cに接続されている第1出力部を使用し、第2制御部6a,6b,6cに接続されていない第2出力部が未使用になる。
(第3実施形態)
前記第2実施形態では、管理部30a,30bがBalancer機能部10aの振り分けインタフェースの一部を未使用にしたが、Balancer10aに接続される第2制御部6a,6b,6cの何れかまでパケットが送信されないように構成することができる。
図3は、本発明の第3実施形態である制御装置の構成図である。
制御装置100cは、前記第2実施形態と同様に、複数の第1制御部3a,3b,3cと、該第1制御部と同数の第2制御部6a,6b,6cと、Balancer機能部12(図1)を有するBalancer10aと、機能部としてのバッファ5eと、通信部としてのNIC20とを備える。ここで、Balancer機能部12の振り分け可能な数は、FPGAの能力の最大数に設定されているものとする。第2制御部6cは、Dispatcher4cと、第2バッファ5cとの機能を実現する。なお、バッファ5eは、新たな制御部が実現しても、第1制御部3a,3b,3c及び第2制御部6a,6b,6c何れが実現しても構わない。
Balancer10aは、4つの出力部を有し、第2制御部6aの第2バッファ5aと、第2制御部6bの第2バッファ5bと、第2制御部6cの第2バッファ5cと、バッファ5eと接続されている。また、バッファ5eは、ダミー「full」が格納されており、Balancer10aからパケット(情報)が伝送されないように構成されている。
この構成により、Balancer10aは、第2制御部6aの第2バッファ5aと、第2制御部6bの第2バッファ5bと、第2制御部6cの第2バッファ5cとに対して、パケットを3つに振り分ける。Balancer10aは、その回路を変更することなく、インタフェースの数が減少する。
(第4実施形態)
前記第3実施形態の制御装置100cは、第2バッファ5c及びバッファ5eの一方の第2バッファ5cを使用したが、第2バッファ5c及びバッファ5eを使用することもできる。
図4は、本発明の第4実施形態である制御装置の構成図である。
制御装置100dは、前記第3実施形態と同様に、複数の第1制御部3a,3b,3cと、該第1制御部と同数の第2制御部6a,6b,6cと、Balancer機能部12(図1)を有するBalancer10aと、通信部としてのNIC20とを備える。ここで、Balancer機能部12の振り分け可能な数は、FPGAの能力の最大数に設定されている。第2制御部6cは、Dispatcher4cと、複数の第2バッファ5c,5dとの機能を実現する。
Balancer10aは、4つの出力部を有し、第2制御部6aの第2バッファ5aと、第2制御部6bの第2バッファ5bと、第2制御部6cの2つの第2バッファ5c,5dと接続されている。Dispatcher4cは、2つの第2バッファ5c,5dから受け取るパケット(信号)をマージ(併合)し、マージされた信号を第1制御部3cの第1バッファ2e,2f,2g,2hに振り分ける。
このため、Balancer10aのBalancer機能部12(図1)は、Balancer機能部10aの振り分けインタフェースの一部を未使用にすることなく、パケットを振り分けることができる。
(第5実施形態)
前記第2実施形態の制御装置100bは、Balancer10aの回路を変更することなく、インタフェースの数を減少させた。また、前記第3実施形態の制御装置100cは、第2バッファ5eにダミー「full」を格納し、情報(パケット)伝送不可になるように構成していた。制御装置100cの場合において、パケットは、第2バッファ5a,5b,5cに送信される。
図5は、本発明の第5実施形態である制御装置の構成図である。
制御装置100eは、前記第3実施形態と同様に、複数の第1制御部3a,3b,3cと、該第1制御部と同数の第2制御部6a,6b,6cと、Balancer機能部12(図1)を有するBalancer10aと、機能部としてのバッファ5eと、通信部としてのNIC20とを備える。Balancer機能部12の振り分け可能な数は、FPGAの能力の最大数に設定されている。第2制御部6cは、Dispatcher4cと、第2バッファ5cとの機能を実現する。
Balancer10aは、4つの出力部を有し、第2制御部6aの第2バッファ5aと、第2制御部6bの第2バッファ5bと、第2制御部6cの第2バッファ5cと、バッファ5eと接続されている。但し、バッファ5eは、前記第3実施形態のように、ダミー「full」が格納されており、Balancer10aから情報(パケット)が伝送されないように構成されている。
Balancer10aは、複数の第3バッファ15a,15b,15c,15dと、複数の第4バッファ15e,15f,15g,15hと、振分機能部16とを備えて構成される。ここで、複数の第3バッファ15a,15b,15c,15d、及び複数の第4バッファ15e,15f,15g,15hは、前記第1実施形態のCPU_IF機能11(図1)に相当する。第4バッファ15hは、ダミー「full」が格納されているバッファ5eに接続されているので、パケットを第2制御部6cに送信することができない。
振分機能部16は、NIC20から受信したパケットを複数の第3バッファ15a,15b,15c,15dに振り分ける。つまり、振分機能部16は、前記第1実施形態のBalancer機能部12(図1)に相当する。第3バッファ15a,15b,15c,15dに振り分けられたパケットは、原則的に、第4バッファ15e,15f,15g,15hに送信される。しかしながら、第3バッファ15hは使用不可なので、第3バッファ15a,15b,15c,15dに振り分けられたパケットは、ラウンドロビン等の振り分けロジックに基づいて、第4バッファ15e,15f,15gに振り分けられる。
例えば、第3バッファ15a,15b,15cに振り分けられたパケットは、原則通り、第4バッファ15e,15f,15gに送信される。さらに、また、第3バッファ15dに振り分けられたパケットは、第4バッファ15hに振り分けられるべきであるが、他の第4バッファ15e,15f,15gにラウンドロビンで振り分けられる。そして、第4バッファ15e,15f,15gに振り分けられたパケットは、第2バッファ5a,5b,5cに送信される。
つまり、Balancer10aは、振分機能部16の機能数と、出力数(第4バッファ15e,15f,15g,15hの数)との不一致を回避する。
また、前記第2実施形態では、管理部30a,30b(図2)が未使用な振り分けインタフェースを指定していた。具体的に、管理部30a,30bは、バッファ15hを未使用に指定する。これにより、第3バッファ15dに振り分けられたパケットは、第4バッファ15e,15f,15gにラウンドロビンで振り分けられる。
(比較例)
図6は、本発明の比較例である制御装置の構成図である。
以下、制御装置100fを用いて、前記実施形態の制御装置100a〜100eと比較する。制御装置100fは、複数の第1制御部3a,3b,3d,3eと、該第1制御部と同数の第2制御部6a,6b,6d,6eと、振分回路としてのBalancer10bと、通信部としてのNIC20とを備えて構成される。
第1制御部3aは、物理CPUとしてのCPUコアであり、複数の仮想制御部1a,1bと、複数の第1バッファ2a,2bとの機能を実現する。仮想制御部1a,1bは、ハイパバイザ上で動作する仮想的なコンピュータである。第1バッファ2a,2bは、第2制御部6aから振り分けられた信号(パケット)を先入れ先出しで仮想マシン1a,1bに出力する。
第2制御部6aは、物理CPUとしてのCPUコアであり、プログラムを実行することにより、Dispatcher4aと、第2バッファ5aとの機能を実現する。同様に、第1制御部3bは、複数の仮想制御部1c,1dと、複数の第1バッファ2c,2dとの機能を実現する。第2制御部6bは、Dispatcher4bと、第2バッファ5bとの機能を実現する。また、第1制御部3dは、複数の仮想制御部1e,1fと、複数の第1バッファ2e,2fとの機能を実現する。第2制御部6dは、Dispatcher4dと、第2バッファ5dとの機能を実現する。また、第1制御部3eは、複数の仮想制御部1g,1hと、複数の第1バッファ2g,2hとの機能を実現する。第2制御部6eは、Dispatcher4eと、第2バッファ5eとの機能を実現する。NIC20は、Network Interface Cardであり、ネットワークに接続される通信部である。
Balancer10bは、PLDでなく、専用ハードウェアで実現されており、単一の振分機能のみを実現する。Balancer10bは、NIC20が受信したパケットを固定された単一ロジックで第2制御部6a,6b,6d,6eに振り分ける。
Balancer10bは、専用ハードウェアで実現されているので、高速である一方、振り分けロジックや振り分け先の数が固定されている。しかしながら、前記第1実施形態の制御装置100aのBalancer10aはPLD、例えばFPGAで構成されている。このため、Balancer機能部12は、Gate Arrayを再構成することにより、Balancer機能部A12a、Balancer機能部B12b、Balancer機能部C12c、Balancer機能部D12d等の何れかに機能変更することができる。また、Balancer機能部12は、Balancer機能部A12a、Balancer機能部B12b、Balancer機能部C12c、Balancer機能部D12d等を有し、オプション設定により、各機能部を切り替えることができる。
また、前記第2,3,4実施形態の制御装置100b,100c,100dは、Balancer10aの振り分け機能の数と、振り分け先である第2制御部6a,6b,6cの数とが異なっている。
(変形例)
本発明は前記した実施形態に限定されるものではなく、例えば、以下のような種々の変形が可能である。
(1)前記各実施形態の第1バッファ2a,2b,2c,2d,2e,2f,2g,2hや、第2バッファ5a,5b,5c,5d,5eは、先入れ先だしを行う機能を有していたが、所定のアドレスにデータを書き込み、それを取り出すものであっても構わない。
(2)前記各実施形態のDispatcher4a,4b,4c,4dは、それぞれに接続している第1制御部3a,3b,3c,3dの複数の仮想制御部(例えば、第1制御部3aの仮想制御部1a,1b)に振り分けていた。Dispatcher4aは、全ての仮想制御部1a,1b,1c,1d,1e,1f,1g,1hの何れかに振り分け、他のDispatcher4b,4c,4dも全ての仮想制御部1a,1b,1c,1d,1e,1f,1g,1hの何れかに振り分けるように構成しても構わない。
(3)前記各実施形態のDispatcher4a,4b,4c,4dは、それぞれに接続している第1制御部3a,3b,3c,3dの複数の仮想制御部(例えば、第1制御部3aの仮想制御部1a,1b)に振り分けていた。各々のDispatcher4a,4b,4c,4dは、それぞれに接続している第1制御部3a,3b,3c,3dの複数の仮想制御部だけでなく、他のDispatcher(例えば、Dispatcher4aがDispatcher4b,4c,4d)に振り分けることもある。
1,1a,1b,1c,1d,1e,1f,1g,1h 仮想制御部
2,2a,2b,2c,2d,2e,2f,2g,2h 第1バッファ(キュー)
3,3a,3b,3c 第1制御部
4,4a,4b,4c,4d Dispatcher
5,5a,5b,5c,5d 第2バッファ(キュー)
5e バッファ(full)
6,6a,6b,6c,6d 第2制御部
7a,7b,7c, 第3制御部
10a Balancer(振分回路、PLD,FPGA)
10b Balancer(専用ハードウェア)
11 CPU_IF機能部(第1出力部,第2出力部)
12 Balancer機能部
12a,12b,12c,12d Balancer機能部(振分部)
13 NIC_IF機能部
14a,14b 汎用IF(キュー)
15a,15b,15c,15d 第3バッファ
15e,15f,15g,15h 第4バッファ
16 振分機能部
20 NIC(通信部)
30a,30b 管理部
100a,100b,100c,100d,100e,100f,100g 制御装置

Claims (5)

  1. ネットワークからパケットを受信する通信部と、
    複数の仮想制御部として機能する複数の第1制御部と、
    受信した前記パケットを複数に振り分ける振分回路と、
    前記振分回路が振り分けたパケットを前記複数の仮想制御部に振り分ける複数の第2制御部とを備え、
    前記振分回路は、PLDで構成されており、
    前記振分回路は、前記第2制御部と1対1接続されている複数の第1出力部と、前記第2制御部と接続されていない第2出力部とを有することにより、前記複数の第1出力部と前記第2出力部との和で示される前記振分回路の出力数が、前記第2制御部の数よりも多くなっており、
    前記第1出力部と前記第2出力部との何れを振り分け経路とするかを管理する管理部をさらに備える
    ことを特徴とする制御装置。
  2. ネットワークからパケットを受信する通信部と、
    複数の仮想制御部として機能する複数の第1制御部と、
    受信した前記パケットを複数に振り分ける振分回路と、
    前記振分回路が振り分けたパケットを前記複数の仮想制御部に振り分ける複数の第2制御部とを備え、
    前記振分回路は、PLDで構成されており、
    前記振分回路は、前記第2制御部と1対1接続されている複数の第1出力部と、前記第2制御部と接続されていない第2出力部とを有することにより、前記複数の第1出力部と前記第2出力部との和で示される前記振分回路の出力数が、前記第2制御部の数よりも多くなっており、
    前記第2出力部の出力信号経路が遮断される
    ことを特徴とする制御装置。
  3. 請求項1又は請求項2に記載の制御装置であって、
    前記振分回路は、前記第2出力部に送信されるべきパケットを、ラウンドロビンを用いて第1出力部に振り分け直す
    ことを特徴とする制御装置。
  4. ネットワークからパケットを受信する通信部と、
    受信した前記パケットを複数に振り分け、PLDで構成された振分回路と、
    前記振分回路が振り分けたパケットを処理する複数の制御部を備える制御装置が実行する制御方法であって、
    前記振分回路は、前記制御部と1対1接続されている複数の第1出力部と、前記制御部と接続されていない第2出力部とを有することにより、前記複数の第1出力部と前記第2出力部との和で示される前記振分回路の出力数が、前記制御部の数よりも多くなっており、
    前記第1出力部と前記第2出力部との何れを振り分け経路とするかを管理するステップを有することを特徴とする制御方法。
  5. ネットワークからパケットを受信する通信部と、
    受信した前記パケットを複数に振り分け、PLDで構成された振分回路と、
    前記振分回路が振り分けたパケットを処理する複数の制御部を備える制御装置が実行する制御方法であって、
    前記振分回路は、前記制御部と1対1接続されている複数の第1出力部と、前記制御部と接続されていない第2出力部とを有することにより、前記複数の第1出力部と前記第2出力部との和で示される前記振分回路の出力数が、前記制御部の数よりも多くなっており、
    前記第2出力部の出力信号経路が遮断されるステップを有することを特徴とする制御方法。
JP2018037025A 2018-03-02 2018-03-02 制御装置、及び制御方法 Active JP6977621B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018037025A JP6977621B2 (ja) 2018-03-02 2018-03-02 制御装置、及び制御方法
PCT/JP2019/006614 WO2019167802A1 (ja) 2018-03-02 2019-02-21 制御装置、及び制御方法
US16/977,139 US11509573B2 (en) 2018-03-02 2019-02-21 Control device and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018037025A JP6977621B2 (ja) 2018-03-02 2018-03-02 制御装置、及び制御方法

Publications (2)

Publication Number Publication Date
JP2019153019A JP2019153019A (ja) 2019-09-12
JP6977621B2 true JP6977621B2 (ja) 2021-12-08

Family

ID=67806276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018037025A Active JP6977621B2 (ja) 2018-03-02 2018-03-02 制御装置、及び制御方法

Country Status (3)

Country Link
US (1) US11509573B2 (ja)
JP (1) JP6977621B2 (ja)
WO (1) WO2019167802A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7087807B2 (ja) * 2018-08-08 2022-06-21 日本電信電話株式会社 サーバ、サーバシステム及びサーバのネットワーク帯域増加方法
US20220321403A1 (en) * 2021-04-02 2022-10-06 Nokia Solutions And Networks Oy Programmable network segmentation for multi-tenant fpgas in cloud infrastructures

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7333570B2 (en) * 2000-03-14 2008-02-19 Altera Corporation Clock data recovery circuitry associated with programmable logic device circuitry
KR100567326B1 (ko) * 2003-12-24 2006-04-04 한국전자통신연구원 Sonet/sdh, pdh, 그리고 이더넷 신호의 통합스위칭/전달 장치 및 그 방법
US7783839B2 (en) * 2007-01-08 2010-08-24 International Business Machines Corporation Using different algorithms to destage different types of data from cache
KR101399553B1 (ko) * 2007-03-09 2014-05-27 삼성전자주식회사 멀티미디어 스트림 전송 장치 및 방법
US9600332B2 (en) * 2009-04-28 2017-03-21 Cisco Technology, Inc. Server load balancing based on virtual utilization, physical utilization, and feedback
JP5382451B2 (ja) * 2010-01-29 2014-01-08 日本電気株式会社 フロントエンドシステム、フロントエンド処理方法
US8949431B2 (en) * 2011-08-24 2015-02-03 Radware, Ltd. Method for live migration of virtual machines
JP2013105308A (ja) * 2011-11-14 2013-05-30 Nippon Telegr & Teleph Corp <Ntt> 負荷分散システム、負荷分散装置、負荷分散方法および負荷分散プログラム
US9443269B2 (en) * 2012-02-16 2016-09-13 Novasparks, Inc. FPGA matrix architecture
JP5723330B2 (ja) * 2012-08-03 2015-05-27 日本電信電話株式会社 分散処理システムおよび分散処理方法
JP6342110B2 (ja) * 2012-11-27 2018-06-13 キヤノンマーケティングジャパン株式会社 マルチテナント型サービスシステム、情報処理装置、制御方法、及びプログラム
US9430239B2 (en) * 2013-03-12 2016-08-30 Qualcomm Incorporated Configurable multicore network processor
US9130872B2 (en) * 2013-03-15 2015-09-08 Cisco Technology, Inc. Workload based service chain insertion in a network environment
US20150074222A1 (en) * 2013-09-12 2015-03-12 Guanfeng Liang Method and apparatus for load balancing and dynamic scaling for low delay two-tier distributed cache storage system
WO2015100624A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 一种crc计算方法及装置
US11093468B1 (en) * 2014-03-31 2021-08-17 EMC IP Holding Company LLC Advanced metadata management
US9344373B2 (en) * 2014-06-13 2016-05-17 International Business Machines Corporation Packet I/O support for a logical switch router architecture
JP6461834B2 (ja) * 2016-02-03 2019-01-30 日本電信電話株式会社 ネットワーク負荷分散装置および方法
JP6564349B2 (ja) * 2016-06-09 2019-08-21 日本電信電話株式会社 保守減設システム、ノードおよび保守減設方法
US11176081B2 (en) * 2016-06-23 2021-11-16 Halliburton Energy Services, Inc. Parallel, distributed processing in a heterogeneous, distributed environment
US11522763B2 (en) * 2017-11-29 2022-12-06 Nicira, Inc. Agent-based network scanning in software-defined networking (SDN) environments
US11036596B1 (en) * 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed

Also Published As

Publication number Publication date
US20210051097A1 (en) 2021-02-18
WO2019167802A1 (ja) 2019-09-06
US11509573B2 (en) 2022-11-22
JP2019153019A (ja) 2019-09-12

Similar Documents

Publication Publication Date Title
CN110892380B (zh) 用于流处理的数据处理单元
Lin et al. {PANIC}: A {High-Performance} programmable {NIC} for multi-tenant networks
EP3098718B1 (en) Multilayer quality of service (qos) for network functions virtualization platforms
US6922408B2 (en) Packet communication buffering with dynamic flow control
CN107750357B (zh) 具有硬件加速平面和软件平面的数据处理系统
István et al. Providing multi-tenant services with FPGAs: Case study on a key-value store
CN102845035A (zh) 在虚拟环境中识别目的地的方法
US10909067B2 (en) Multi-node zero-copy mechanism for packet data processing
US9774461B2 (en) Network switch with dynamic multicast queues
US20070268825A1 (en) Fine-grain fairness in a hierarchical switched system
KR20100025335A (ko) 데이터 처리 시스템
CN117015963A (zh) 用于异构和加速计算系统的输入/输出缩放的服务器结构适配器
JP6977621B2 (ja) 制御装置、及び制御方法
US10423333B2 (en) System and method for scalable processing of abort commands in a host bus adapter system
US20220413910A1 (en) Execution job compute unit composition in computing clusters
JP5919937B2 (ja) 仮想化システム、管理サーバ、マイグレーション方法、マイグレーションプログラム業務間通信を考慮した仮想マシンのマイグレーション方法
CN112272933B (zh) 队列控制方法、装置及存储介质
US8644326B2 (en) Queue processing method
US11811685B1 (en) Selective packet processing including a run-to-completion packet processing data plane
Chen et al. HyScaler: a dynamic, hybrid VNF scaling system for building elastic service function chains across multiple servers
US20220283866A1 (en) Job target aliasing in disaggregated computing systems
JP2016146077A (ja) 計算機、通信制御方法および通信制御プログラム
EP3343843B1 (en) A control plane system and method for managing a data plane amongst a plurality of equipments
US10554572B1 (en) Scalable ingress arbitration for merging control and payload
LEI ENHANCING THE EFFICIENCY AND SCALABILITY OF CLOUD NETWORKING SYSTEMS

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210927

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: 20211012

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211025

R150 Certificate of patent or registration of utility model

Ref document number: 6977621

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150