JP6829156B2 - ネットワーク負荷分散装置および方法 - Google Patents

ネットワーク負荷分散装置および方法 Download PDF

Info

Publication number
JP6829156B2
JP6829156B2 JP2017123963A JP2017123963A JP6829156B2 JP 6829156 B2 JP6829156 B2 JP 6829156B2 JP 2017123963 A JP2017123963 A JP 2017123963A JP 2017123963 A JP2017123963 A JP 2017123963A JP 6829156 B2 JP6829156 B2 JP 6829156B2
Authority
JP
Japan
Prior art keywords
load distribution
hash value
control unit
packet
route
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
JP2017123963A
Other languages
English (en)
Other versions
JP2019009630A (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 JP2017123963A priority Critical patent/JP6829156B2/ja
Publication of JP2019009630A publication Critical patent/JP2019009630A/ja
Application granted granted Critical
Publication of JP6829156B2 publication Critical patent/JP6829156B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、パケットの送出先を制御するための装置に係り、特に通信サーバ補助装置内での特定のパケットに対する優先制御と負荷分散とを両立させることによってQoS(Quality of Service)の確保とスループット性能の向上とを実現しながら上位処理装置の負荷量に応じて柔軟な制御を可能とするネットワーク負荷分散装置および方法に関するものである。
一般的なSDN(Software Defined Networking)/NFV(Network Functions Virtualization)の考え方に基づいて構成されるネットワークにおいて利用される汎用ネットワーク機器のフロントエンドハードウェアにおいて実現されている優先制御の構成例が非特許文献1に開示されている。
図5は非特許文献1に開示された優先制御技術の一部を説明する図である。図5の例では、着信パケットのイーサタイプ値が所定値と一致すれば(図5ステップS200においてYes)、着信パケットを優先制御対象のフローであるとしてキュー200に分類する(図5ステップS201)。また、着信パケットのFCoE(Fibre Channel over Ethernet)のタイプ値が所定値と一致すれば(図5ステップS202においてYes)、着信パケットを優先制御対象のフローであるとしてキュー201に分類する(図5ステップS203)。
このように一般的に汎用のNIC(Network Interface Card)を利用した優先制御では、各プロトコル毎に固有のキューに優先制御対象のフローがフィルタリングされる。しかしながら、非特許文献1に開示された技術では、予め用意されたプロトコル毎に固定のフィールド値に対するフィルタリングのみを実施するため、特殊な条件(例えば複数フィールドにまたがるフィルタリング条件)への対応が難しく、また将来の拡張性に問題があった。また、非特許文献1に開示された技術では、各プロトコルに割り当てられたキューの数が固定であるため、特定のサービスに特化してリソースを利用することが困難であった。さらに、非特許文献1に開示された技術では、所定のフィルタリング条件に該当しなかったパケットを単一のキューに分類するため、フィルタリング条件に該当しないパケットが多いユースケースにおいて転送性能が悪化する懸念があり、高スループットの実現が困難であった。
また、非特許文献1に開示された技術では、優先制御装置と外部装置間で行われる送受信の負荷量の変動に応じて柔軟な負荷分散の制御を実施することが困難であるため、外部装置との通信量が急激に増加した場合、キューのバッファ能力を超過し、パケットロスが発生するという課題があった。
一方、マルチキューを用いて高スループットを実現する負荷分散の一般例としてはロードバランサなどで利用されているラウンドロビン制御があげられる。しかし、一般的なラウンドロビン制御では、各キュー内における処理時間に変動があり、結果としてフロー内での順序逆転が発生してしまう。この問題に対する解決策としてルータ上で提案されている負荷分散制御が挙げられる。
図6は従来の負荷分散制御技術を説明する図である。この図6に示した例では、パケットの宛先を決定し、宛先への経路に対応するデータバッファにパケットを転送する。パケットは、データバッファから適宜読み出されて宛先へ送信される。このとき、制御部300は、それぞれ経路I,II,IIIに対応するデータバッファ300−1,300−2,300−3の負荷状況を監視して経路を選択する動的な経路割り当てを行い、選択した経路に対応するデータバッファにパケットを転送する。
このようなルータ上で提案されているフロー内順序を保障する負荷分散制御では、ラウンドロビン制御における課題を解決することができる。しかしながら、図6に示した負荷分散制御技術では、データバッファの負荷状況を監視して動的な経路割り当てを行うため、バッファ切り替えのタイミングでフロー内での順序逆転が起こり得るという問題点があった。また、図6に示した負荷分散制御技術では、専用ハードウェアを用いることを前提としており、装置内に十分大きなハードウェア資源が存在するため、優先制御などとの協調制御は考慮されておらず、NIC上の限られたハードウェアでの実装に適していないという問題点があった。
"Intel Ethernet(登録商標) Controller XL710 Datasheet",2015,<http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xl710-10-40-controller-datasheet.pdf>
以上のように汎用のNICを利用した、非特許文献1に開示された技術では、柔軟な優先制御が難しく、また高スループットの実現やパケットロスの回避が困難であった。
また、従来技術では、パケットの送信順序の保証と優先制御とを実現できず、またNIC上の限られたハードウェアに実装し難いという問題点があった。
本発明は、上記課題を解決するためになされたもので、SDN/NFVのフロントエンドハードウェアであるNIC上に実装できる小資源のハードウェア上で柔軟な優先制御と高スループットおよび負荷量に応じた柔軟な制御の共存を実現することを目的とする。
本発明のネットワーク負荷分散装置は、上位処理装置から受信したパケットに含まれるフィールド値を基に第1のハッシュ値を演算するハッシュ値演算部と、前記パケットの送出先の通信経路ごとに設けられるデータバッファと、前記第1のハッシュ値に基づいて優先制御の対象となる特定のパケットを検出し、このパケットの送出先の通信経路を決定する優先制御部と、前記第1のハッシュ値に基づく第2のハッシュ値により前記優先制御の対象外のパケットの送出先の通信経路を、前記データバッファの負荷分散を満たしつつ決定する負荷分散制御部と、前記優先制御部および前記負荷分散制御部で未使用の通信経路の範囲において、前記上位処理装置の負荷量の増減に応じて送出先の通信経路の割り当てを増減させる動的分散制御部と、前記優先制御部、前記負荷分散制御部あるいは前記動的分散制御部が決定した送出先の通信経路に従って、この通信経路に対応する前記データバッファに前記パケットを送信するパケット転送制御部とを備え、前記動的分散制御部は、前記上位処理装置の負荷量を監視し、負荷量に応じた動的な経路制御の入力条件を与える負荷量検出部と、前記優先制御部および前記負荷分散制御部で未使用の通信経路の情報を記憶する動的経路選択テーブルと、前記負荷量検出部で得られた入力条件と前記動的経路選択テーブルに記憶されている未使用の通信経路の情報とを基に、前記上位処理装置の負荷量が規定量を超えたときに動的分散制御の対象となるパケットに前記未使用の通信経路を送出先の通信経路として割り当て、前記上位処理装置の負荷量が規定量を超えた状態から規定量以下の状態になったときに前記通信経路の割り当てを解除する動的経路制御部とを備えることを特徴とするものである。
また、本発明のネットワーク負荷分散装置の1構成例において、前記ハッシュ値演算部は、前記パケット内の、外部から予め指定された位置にあるフィールド値を取得し、このフィールド値と外部から予め設定されたキー値とに基づいて前記第1のハッシュ値を演算することを特徴とするものである。
また、本発明のネットワーク負荷分散装置の1構成例において、前記優先制御部は、前記ハッシュ値演算部が演算する第1のハッシュ値のとり得る値と送出先の通信経路とを対応付けて予め記憶する優先経路選択テーブルと、前記第1のハッシュ値と同一の値が前記優先経路選択テーブルに登録されている場合に、前記第1のハッシュ値と対応する送出先の通信経路の情報を前記優先経路選択テーブルから取得する優先経路制御部とを備えることを特徴とするものである。
また、本発明のネットワーク負荷分散装置の1構成例において、前記負荷分散制御部は、前記ハッシュ値演算部が演算した第1のハッシュ値と負荷分散制御で利用可能な所定の送出先の情報とから第2のハッシュ値を演算する負荷分散ハッシュ値演算部と、この負荷分散ハッシュ値演算部が演算する第2のハッシュ値のとり得る値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路とから予め設定される負荷分散経路選択テーブルと、前記負荷分散ハッシュ値演算部が演算した第2のハッシュ値と対応する送出先の通信経路の情報を前記負荷分散経路選択テーブルから取得する負荷分散経路制御部とを備えることを特徴とするものである。
なお、前記負荷分散経路選択テーブルに登録される送出先の通信経路は、前記負荷分散ハッシュ値演算手段が演算する第2のハッシュ値のとり得る全ての値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路の情報とから、前記負荷分散ハッシュ値演算手段が演算する第2のハッシュ値に応じてパケットを負荷分散制御で利用可能なデータバッファに振り分けたときの各データバッファの負荷状況が前記負荷分散設定データで規定される負荷状況と合致するように決定されている。
また、本発明のネットワーク負荷分散方法は、上位処理装置から受信したパケットに含まれるフィールド値を基に第1のハッシュ値を演算する第1のステップと、前記第1のハッシュ値に基づいて優先制御の対象となる特定のパケットを検出し、このパケットの送出先の通信経路を決定する第2のステップと、前記第1のハッシュ値に基づく第2のハッシュ値により前記優先制御の対象外のパケットの送出先の通信経路を、前記パケットの送出先の通信経路ごとに設けられるデータバッファの負荷分散を満たしつつ決定する第3のステップと、前記第2のステップおよび前記第3のステップで未使用の通信経路の範囲において、前記上位処理装置の負荷量の増減に応じて送出先の通信経路の割り当てを増減させる第4のステップと、前記第2のステップ、前記第3のステップあるいは前記第4のステップで決定した送出先の通信経路に従って、この通信経路に対応する前記データバッファに前記パケットを送信する第5のステップとを含み、前記第4のステップは、前記上位処理装置の負荷量を監視し、負荷量に応じた動的な経路制御の入力条件を与える第6のステップと、前記第6のステップで得られた入力条件と前記第2のステップおよび前記第3のステップで未使用の通信経路の情報を記憶する動的経路選択テーブルに記憶されている未使用の通信経路の情報とを基に、前記上位処理装置の負荷量が規定量を超えたときに動的分散制御の対象となるパケットに前記未使用の通信経路を送出先の通信経路として割り当て、前記上位処理装置の負荷量が規定量を超えた状態から規定量以下の状態になったときに前記通信経路の割り当てを解除する第7のステップとを含むことを特徴とするものである。
本発明によれば、パケットの振り分け処理を優先制御と負荷分散制御と動的分散制御に分け、優先制御と負荷分散制御と動的分散制御を協調させることで限られたデータバッファを効率的に活用することができ、小資源のハードウェア上で柔軟な優先制御と負荷分散による高スループットの共存を実現しながら上位処理装置の負荷量に応じて柔軟な制御を可能とすることができる。
図1は、本発明の実施例に係るネットワーク負荷分散装置の構成を示すブロック図である。 図2は、本発明の実施例に係るネットワーク負荷分散装置の動作を説明するフローチャートである。 図3は、本発明の実施例におけるデータバッファの割り付けの概念を説明する図である。 図4は、本発明の実施例に係るネットワーク負荷分散装置の動的分散制御部の動作を説明するフローチャートである。 図5は、従来の優先制御技術を説明する図である。 図6は、従来の負荷分散制御技術を説明する図である。
以下、本発明の実施例について図面を参照して説明する。図1は本発明の実施例に係るネットワーク負荷分散装置の構成を示すブロック図である。ネットワーク負荷分散装置は、ハッシュ値演算部1と、優先制御部2と、負荷分散制御部3と、動的分散制御部4と、データバッファ5−1〜5−3と、ハッシュ値演算制御部6と、テーブル割り当て制御部7と、パケット転送制御部8とを備えている。なお、図1の例では、パケットの送出先の通信経路ごとに設けられるデータバッファを、データバッファ5−1〜5−3の3個としているが、データバッファの個数はこれに限るものではない。また、上位処理装置9は、本発明の実施例にかかるネットワーク負荷分散装置と通信する通信機能が仮想化された外部装置である。
優先制御部2は、優先経路選択テーブル20と、優先経路制御部21とから構成され、負荷分散制御部3は、負荷分散ハッシュ値演算部30と、負荷分散経路選択テーブル31と、負荷分散経路制御部32とから構成される。動的分散制御部4は、負荷量検出部40と、動的経路選択テーブル41と、動的経路制御部42とから構成される。
ネットワーク負荷分散装置は、典型的にはFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)等のデバイスと、当該デバイス上で動作するプログラムあるいはデバイスの回路データを用いて実現される。プログラムで実現する場合、デバイスのプロセッサは、メモリに格納されたプログラムに従って以下のような処理を実行し、ネットワーク負荷分散装置として機能する。また、これに限るものではなく一般に利用されるスイッチまたはルータのような汎用デバイス上でのプログラムあるいは汎用サーバ上の仮想スイッチなどを利用して本実施例のネットワーク負荷分散装置を実現することもできる。
以下、本実施例のネットワーク負荷分散装置の動作を図2のフローチャートを用いて説明する。本実施例はパケット受信端での利用を想定しており、ネットワーク負荷分散装置にはパケット形式のデータが入力される。パケットは、一般にヘッダデータとして、そのパケットの属性を表す付加データを有している。
ネットワーク負荷分散装置のハッシュ値演算部1は、上位処理装置9からパケットを受信すると(図2ステップS1)、このパケットのヘッダデータ中の所定の位置にあるフィールド値を取得し、取得したフィールド値と予め設定されたキー(key)値とからパケットの属性に固有のハッシュ値を演算する(図2ステップS2)。ハッシュ値演算部1が演算したハッシュ値は、優先制御部2に通知される。
パケットのヘッダデータ中の取得するフィールド値の位置は、ハッシュ値演算部1に対して外部からハッシュ値演算制御部6を介して予め指定される。同様に、キー値についても、外部からハッシュ値演算制御部6を介して予め設定される。
次に、優先制御部2の優先経路選択テーブル20には、ハッシュ値演算部1が演算するハッシュ値のとり得る値と送出先の通信経路とが対応付けて予め記憶されている。この優先経路選択テーブル20は、外部からテーブル割り当て制御部7を介して予め設定される。
優先制御部2の優先経路制御部21は、ハッシュ値演算部1が演算したハッシュ値と優先経路選択テーブル20とを照合し、ハッシュ値演算部1が演算したハッシュ値と同一の値が優先経路選択テーブル20に登録されている場合(図2ステップS3においてYES)、このハッシュ値と対応する送出先の通信経路の情報を優先経路選択テーブル20から取得して、送出先の通信経路の情報をパケット転送制御部8へ通知する(図2ステップS4)。
優先経路制御部21は、ハッシュ値演算部1が演算したハッシュ値と同一の値が優先経路選択テーブル20に登録されていない場合(ステップS3においてNO)、ハッシュ値演算部1が演算したハッシュ値を負荷分散制御部3へ通知する(図2ステップS5)。
負荷分散制御部3の負荷分散経路選択テーブル31には、後述する負荷分散ハッシュ値演算部30が演算するハッシュ値のとり得る値と送出先の通信経路とが対応付けて予め記憶されている。この負荷分散経路選択テーブル31の作成方法については後述する。
負荷分散制御部3の負荷分散ハッシュ値演算部30は、ハッシュ値演算部1が演算したハッシュ値と負荷分散制御で利用可能な所定の送出先の情報とから負荷分散処理に利用するハッシュ値を演算する(図2ステップS6)。具体的には、負荷分散ハッシュ値演算部30は、ハッシュ値演算部1が演算したハッシュ値を負荷分散制御で利用可能な送出先の通信経路の数(負荷分散制御で利用可能なデータバッファ5−1〜5−3の数)で除算すればよい。
送出先の通信経路(データバッファ5−1〜5−3)には、優先制御のみで利用されるものと、負荷分散制御のみで利用されるものと、優先制御と負荷分散制御で共有されるものとがある。したがって、負荷分散制御で利用可能な送出先の通信経路としては、負荷分散制御のみで利用されるものと、優先制御と負荷分散制御で共有されるものとがある。負荷分散制御で利用可能な送出先の通信経路(負荷分散制御で利用可能なデータバッファ5−1〜5−3)の情報は、外部からテーブル割り当て制御部7を介して予め通知される。
上記のとおり、ハッシュ値演算部1が演算するハッシュ値は、パケットの属性に固有の値である。一方、負荷分散ハッシュ値演算部30が演算するハッシュ値は、パケットの属性に固有の値であるとは限らず、異なる属性について同一の値が算出される場合が有り得る。
負荷分散制御部3の負荷分散経路制御部32は、負荷分散ハッシュ値演算部30が演算したハッシュ値と負荷分散経路選択テーブル31とを照合し、負荷分散ハッシュ値演算部30が演算したハッシュ値と対応する送出先の通信経路の情報を負荷分散経路選択テーブル31から取得して、送出先の通信経路の情報をパケット転送制御部8へ通知する(図2ステップS7)。
次に、動的分散制御部4は、テーブル割り当て制御部7と連携し、ステップS6までの通信経路を考慮して動的分散制御を実施する(図2ステップS8)。この動的分散制御の詳細については後述する。
次に、パケット転送制御部8は、受信したパケットを、優先制御部2、負荷分散制御部3あるいは動的分散制御部4から通知される送出先の通信経路の情報に従って、データバッファ5−1〜5−3のいずれかへ送信する(図2ステップS9)。具体的には、パケット転送制御部8は、優先制御部2の優先経路制御部21から送出先の通信経路の情報を受け取った場合には、データバッファ5−1〜5−3のうち、優先経路制御部21から通知された送出先の通信経路に対応するデータバッファにパケットを送信する。パケット転送制御部8は、負荷分散制御部3の負荷分散経路制御部32から送出先の通信経路の情報を受け取った場合には、負荷分散経路制御部32から通知された送出先の通信経路に対応するデータバッファにパケットを送信する。パケットは、データバッファ5−1〜5−3から対応する通信経路へ適宜出力されて宛先へ送信される。
また、パケット転送制御部8は、後述する動的分散制御部4の動的経路制御部42から動的分散制御の対象となるパケットの送信元MACアドレスまたは送信元IPアドレスと送出先の通信経路の情報とを受け取った時点以降に、これら送信元MACアドレスまたは送信元IPアドレスに該当するパケットを受信した場合には、このパケットを動的経路制御部42から通知された送出先の通信経路に対応するデータバッファに送信する。
パケットは、データバッファ5−1〜5−3から対応する通信経路へ適宜出力されて宛先へ送信される。
なお、同一のパケットについて、優先制御部2または負荷分散制御部3だけでなく、動的分散制御部4から送出先の通信経路の情報を通知された場合には、動的分散制御部4から通知された通信経路を優先する。
次に、負荷分散制御部3の負荷分散経路選択テーブル31の作成方法について説明する。負荷分散経路選択テーブル31を作成するためには、負荷分散ハッシュ値演算部30が演算するハッシュ値のとり得る全ての値と、外部から設定される負荷分散設定データと、負荷分散制御で利用可能な送出先の通信経路(負荷分散制御で利用可能なデータバッファ5−1〜5−3)の情報とから、負荷分散ハッシュ値演算部30が演算するハッシュ値に応じてパケットを負荷分散制御で利用可能なデータバッファに振り分けたときの各データバッファの負荷状況が負荷分散設定データで規定される負荷状況と合致するように、送出先の通信経路を決定すればよい。こうして、負荷分散ハッシュ値演算部30が演算するハッシュ値と送出先の通信経路とが対応付けられ、負荷分散経路選択テーブル31を設定することが可能になる。
負荷分散設定データとしては、各データバッファの所望の利用率データと、各データバッファの共有設定データ(例えば優先制御によるデータバッファの利用と負荷分散制御によるデータバッファの利用の所望の割合)とがある。
負荷分散経路選択テーブル31は、基本的には負荷分散制御で利用可能なデータバッファについて全てのデータバッファの利用率が一定となる均一なパケットの振り分けが実現されるように予め作成されるが、外部から設定される負荷分散設定データによっては、必ずしも全てのデータバッファの利用率が同一になるとは限らない。また、本実施例のネットワーク負荷分散装置が上位処理装置9と通信する際に、上位処理装置側の管理運用上の必要性によっては、負荷量が特定のデータバッファに大きく偏り、処理能力を超えることによりパケットロスが発生する恐れがあるが、このような場合において柔軟に負荷を分散させる制御方法が考えられる。このようなデータバッファの割り付けの概念を表したものが図3である。
図3の例では、データバッファ5−1,5−2が優先制御のみで利用されるバッファであり、データバッファ5−3が優先制御と負荷分散制御で共有されるバッファであり、データバッファ5−4〜5−6が負荷分散制御のみで利用されるバッファであり、データバッファ5−7〜5−9が動的分散制御で利用されるバッファである。ただし、データバッファ5−7〜5−9は設定によって優先制御で利用されることも有り得るし、負荷分散制御で利用されることも有り得るが、動的分散制御で利用されるバッファは基本的には優先制御と負荷分散制御で利用されていない未使用の空きバッファを利用して動作する。そのため、動的分散制御では、前期優先制御と負荷分散制御とバッファの共有は行わない。ある属性を有するフロー(パケット)#1は優先制御によりデータバッファ5−1に送信され、別の属性を有するフロー#2は優先制御によりデータバッファ5−2または5−3に送信され、その他のフローは負荷分散制御によりデータバッファ5−3〜5−6のいずれかに送信される。
なお、負荷分散経路選択テーブル31は以上の方法により負荷分散経路制御部32が作成して設定してもよいし、外部で作成した負荷分散経路選択テーブル31をテーブル割り当て制御部7を介して負荷分散制御部3に設定するようにしてもよい。
また、負荷分散制御部3では、優先制御部2の優先経路制御部21から通知された全てのハッシュ値に対して、負荷分散経路選択テーブル31と合致するように新たなハッシュ値が演算される。このときの演算方法は、上記のとおり、通知されたハッシュ値を負荷分散制御で利用可能な送出先の通信経路の数(負荷分散制御で利用可能なデータバッファの数)で除算すればよい。
ただし、負荷分散ハッシュ値演算部30でハッシュ値を演算せずに、優先制御部2の優先経路制御部21から通知されたハッシュ値をそのまま用いてもよい。この場合、負荷分散経路選択テーブル31を作成するためには、ハッシュ値演算部1が演算するハッシュ値のとり得る全ての値と、外部から設定される負荷分散設定データと、負荷分散制御で利用可能な送出先の通信経路の情報とから、ハッシュ値演算部1が演算するハッシュ値に応じてパケットを負荷分散制御で利用可能なデータバッファに振り分けたときの各データバッファの負荷状況が負荷分散設定データで規定される負荷状況と合致するように、送出先の通信経路を決定すればよい。
また、図3においてVNF(Virtualized Network Function)#1,VNF#2,VNF#3,…,VNF#Nは、上位処理装置9のインスタンスである仮想ネットワーク機能をそれぞれ示している。データバッファ5−1〜5−6は、VNF#1との通信に利用される。一方、図3のデータバッファ5−7〜5−9とVNF#2,VNF#3,…,VNF#Nとは、これらVNF#2,VNF#3,…,VNF#Nの各インスタンスが増減するに従い、データバッファの数を調停してパケットロスを防止する制御の概念を表している。以下、本実施例のネットワーク負荷分散装置の動的分散制御部4の動作を図4のフローチャートを用いて説明する。
動的分散制御部4の負荷量検出部40は、上位処理装置9の各VNF(VNF#1,VNF#2,VNF#3,…,VNF#N)の負荷量を監視する(図4ステップS101)。ここで、負荷量の変化の監視には、例えばライフサイクルフックのような既知の情報やそれに類する仕組みを用いても良いし、負荷量の変化に備えて各VNFが保有する固有の情報、例えば上位処理装置9が受信したパケットの送信元を示す送信元MAC(Media Access Control)アドレスの変化や送信元IP(Internet Protocol)アドレスの変化を直接検知することで負荷量に応じた動的な経路制御の入力条件としても良い。これにより、選択し得る多数のパケットのうち、どのVNFのパケットかを特定して動的分散制御の対象を選択することができる。
負荷量検出部40は、上位処理装置9の負荷量が規定量を超え、負荷量の十分な増加を検出すると(図4ステップS102においてYES)、対応する通信経路を確保するため負荷量に応じた動的な経路制御の入力条件を算出して動的経路制御部42に通知する(図4ステップS103)。負荷量検出部40は、例えばライフサイクルフック機能により、各VNFの中に、起動しているインスタンスの数が閾値を超えたVNFが存在することを検出したときに、上位処理装置9の負荷量が規定量を超えたと判定する。また、負荷量検出部40は、各VNFの中に、保有している送信元MACアドレスの数または保有している送信元IPアドレスの数が閾値を超えたVNFが存在することを検出したときに、上位処理装置9の負荷量が規定量を超えたと判定してもよい。
動的な経路制御の入力条件には、動的分散制御の対象となるパケットの情報が含まれる。ここで、動的分散制御の対象となるパケットとは、起動しているインスタンスの数が閾値を超えたVNFに関して、閾値を超えた分のインスタンスに対応するパケット、または保有している送信元MACアドレスの数または保有している送信元IPアドレスの数が閾値を超えたVNFに関して、閾値を超えた分の送信元MACアドレスまたは送信元IPアドレスに対応するパケットのことを言う。
上位処理装置9の負荷量が規定量を下回り、負荷量の増加がそれほどでもなく優先制御部2あるいは負荷分散制御部3が利用するデータバッファで事足りる場合(ステップS102においてNO)、動的分散制御部4は処理を終える。これにより、ネットワーク負荷分散装置は図2のステップS9に進む。
次に、動的分散制御部4の動的経路制御部42は、負荷量検出部40が上位処理装置9の負荷量の増加を検出すると、優先制御部2および負荷分散制御部3が未使用の通信経路を特定し、特定した未使用の通信経路の情報を動的経路選択テーブル41に登録する(図4ステップS104)。
ここでは、8つの通信経路(データバッファ)を仮定してステップS104の処理を説明する。優先経路選択テーブル20に登録されている通信経路の使用状況を“10001010”とし、負荷分散経路選択テーブル31に登録されている通信経路の使用状況を“00010010”とする。このとき、“1”は通信経路が使用されていることを示し、“0”は通信経路が使用されていないことを示す。これらの否定論理和をとると、“01100101”となる。すなわち、未使用の通信経路に対応する値が“1”となるので、優先制御部2および負荷分散制御部3で未使用の通信経路を特定することができる。
次に、動的経路制御部42は、負荷量検出部40で得られた入力条件および動的経路選択テーブル41に登録された未使用の通信経路の情報を基に、動的分散制御の対象となるパケットに、動的経路選択テーブル41に登録された未使用の通信経路を送出先の通信経路として割り当てる(図4ステップS105)。
上記のとおり、負荷量検出部40で得られた入力条件には、動的分散制御の対象となるパケットの情報が含まれる。したがって、動的経路制御部42は、この動的分散制御の対象となるパケットに未使用の通信経路を割り当てるようにすればよい。このとき、通信経路の割り当て順は、動的経路選択テーブル41に登録された未使用の通信経路のうち、下位のものから順に割り当ててもよいし、上位のものから順に割り当ててもよい。一方、対応づけられるVNFのパケットは前記ステップS102で検知した送信元MACアドレスや送信元IPアドレスを直接指定してもよいし、負荷分散ハッシュ値演算部30のハッシュ値をさらに除算して再演算したハッシュ値を指定してもよい。いずれの方法によっても、1つの未使用の通信経路(データバッファ)には1つのフローが割り当てられることになるため、フロー内でパケットの順序逆転等が発生しないことを保証できる。
そして、動的経路制御部42は、動的分散制御の対象となるパケットの送信元MACアドレスまたは送信元IPアドレスと、ステップS105で当該パケットに割り当てた送出先の通信経路の情報とをパケット転送制御部8へ通知する(図4ステップS106)。これにより、上位処理装置9の負荷量の増加への準備が完了する。
次に、動的分散制御部4の負荷量検出部40は、上位処理装置9の各VNFの負荷量を再度監視する(図4ステップS107)。負荷量検出部40は、上位処理装置9の負荷量が規定量を超えた状態から規定量以下の状態になると、動的分散制御部4の動的経路制御部42に上位処理装置9の負荷量の減少を通知する(図4ステップS108においてYES)。負荷量検出部40は、各VNFの中に、起動しているインスタンスの数が閾値を超えるVNFがなくなると、上位処理装置9の負荷量が規定量以下の状態になったと判定する。また、負荷量検出部40は、各VNFの中に、保有している送信元MACアドレスの数または保有している送信元IPアドレスの数が閾値を超えるVNFがなくなると、上位処理装置9の負荷量が規定量以下の状態になったと判定してもよい。
動的分散制御部4の動的経路制御部42は、負荷量検出部40が上位処理装置9の負荷量の減少を検出すると、ステップS105で割り当てた通信経路が不要となるので、割り当て済経路を解除するため、動的経路選択テーブル41に登録した通信経路の情報(エントリ)を削除し、S106で通知した通信経路の割り当てを解除(無効)するようパケット転送制御部8へ通知する(図4ステップS109)。以上で、動的分散制御部4は処理を終える。これにより、ネットワーク負荷分散装置は図2のステップS9に進む。
また、負荷量検出部40が上位処理装置9の負荷量の減少を検出しない場合には、動的分散制御部4は何もせずに処理を終える。
本実施例では、パケットのヘッダデータ中の取得するフィールド値の位置を外部から指定できるようにしたことにより、非特許文献1に開示されたような固定のフィールド値ではなく、任意の長さを持つ任意のフィールド値に対するパケット識別処理を実現することができる。また、本実施例では、特殊な条件(例えば複数のフィールドからのフィールド値の取得)に対応することが可能であり、将来の拡張性を確保することができる。
また、本実施例では、非特許文献1に開示された技術と異なり、優先制御に利用するデータバッファと負荷分散に利用するデータバッファの自由な割り当てを実現することができ、これによりNIC等の省資源なオンチップ上での効率的なサ−ビスを実現することができる。
また、本実施例では、優先制御でのデータバッファの割り当てのためのハッシュ演算に加えて、負荷分散制御で利用可能なデータバッファに適したハッシュ演算を再度実施することで、負荷分散制御の対象外になるパケットを無くすことができ、パケットが単一のデータバッファに振り分けられることによるスループットの低下を回避することができる。また、本実施例では、ハッシュ演算によるパケット識別とデータバッファ割り当てによりパケットの順序逆転が起こらないことを保障することができる。
また、本実施例では、動的分散制御により上位処理装置9のインスタンスである仮想ネットワーク機能の負荷量に応じて、フローとデータバッファと一意に対応づけながら通信経路として確保することができるため、負荷分散制御と同様にパケットの順序逆転を防止しながら、パケットのトラヒック量の増減に応じて適応的に動作するネットワーク負荷分散装置を実現することができる。
以上で本発明の実施例が示され、説明がなされた。本実施例のネットワーク負荷分散装置は、回路であってもよいし、機器であってもよい。本実施例で示したネットワーク負荷分散装置が、QoS機能実現の優先制御処理機能と高スループットを実現する負荷分散処理機能とを具備する構成を最良の形態と見なしているものの、本実施例のネットワーク負荷分散装置は、ROMに記憶されたファームウェアおよび再構成型デバイス、素子、基板、配線などのハードウェアで実現されていても構わない。或いは、ネットワーク負荷分散装置は、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで構成されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPUにより読み出されて実行される。すなわち、プログラムは、本実施例のネットワーク負荷分散装置としてコンピュータを機能させるものである。あるいは、ネットワーク負荷分散装置の各ステップをコンピュータに実行させるものである。
本発明は、小資源のハードウェア上で実施されるパケットの送出先制御に適用することができる。
1…ハッシュ値演算部、2…優先制御部、3…負荷分散制御部、4…動的分散制御部、5−1〜5−6…データバッファ、6…ハッシュ値演算制御部、7…テーブル割り当て制御部、8…パケット転送制御部、9…上位処理装置、20…優先経路選択テーブル、21…優先経路制御部、30…負荷分散ハッシュ値演算部、31…負荷分散経路選択テーブル、32…負荷分散経路制御部、40…負荷量検出部、41…動的経路選択テーブル、42…動的経路制御部。

Claims (5)

  1. 上位処理装置から受信したパケットに含まれるフィールド値を基に第1のハッシュ値を演算するハッシュ値演算部と、
    前記パケットの送出先の通信経路ごとに設けられるデータバッファと、
    前記第1のハッシュ値に基づいて優先制御の対象となる特定のパケットを検出し、このパケットの送出先の通信経路を決定する優先制御部と、
    前記第1のハッシュ値に基づく第2のハッシュ値により前記優先制御の対象外のパケットの送出先の通信経路を、前記データバッファの負荷分散を満たしつつ決定する負荷分散制御部と、
    前記優先制御部および前記負荷分散制御部で未使用の通信経路の範囲において、前記上位処理装置の負荷量の増減に応じて送出先の通信経路の割り当てを増減させる動的分散制御部と、
    前記優先制御部、前記負荷分散制御部あるいは前記動的分散制御部が決定した送出先の通信経路に従って、この通信経路に対応する前記データバッファに前記パケットを送信するパケット転送制御部とを備え、
    前記動的分散制御部は、
    前記上位処理装置の負荷量を監視し、負荷量に応じた動的な経路制御の入力条件を与える負荷量検出部と、
    前記優先制御部および前記負荷分散制御部で未使用の通信経路の情報を記憶する動的経路選択テーブルと、
    前記負荷量検出部で得られた入力条件と前記動的経路選択テーブルに記憶されている未使用の通信経路の情報とを基に、前記上位処理装置の負荷量が規定量を超えたときに動的分散制御の対象となるパケットに前記未使用の通信経路を送出先の通信経路として割り当て、前記上位処理装置の負荷量が規定量を超えた状態から規定量以下の状態になったときに前記通信経路の割り当てを解除する動的経路制御部と
    を備えることを特徴とするネットワーク負荷分散装置。
  2. 請求項1記載のネットワーク負荷分散装置において、
    前記ハッシュ値演算部は、前記パケット内の、外部から予め指定された位置にあるフィールド値を取得し、このフィールド値と外部から予め設定されたキー値とに基づいて前記第1のハッシュ値を演算することを特徴とするネットワーク負荷分散装置。
  3. 請求項1または2に記載のネットワーク負荷分散装置において、
    前記優先制御部は、
    前記ハッシュ値演算部が演算する第1のハッシュ値のとり得る値と送出先の通信経路とを対応付けて予め記憶する優先経路選択テーブルと、
    前記第1のハッシュ値と同一の値が前記優先経路選択テーブルに登録されている場合に、前記第1のハッシュ値と対応する送出先の通信経路の情報を前記優先経路選択テーブルから取得する優先経路制御部と
    を備えることを特徴とするネットワーク負荷分散装置。
  4. 請求項1乃至3のいずれか1項に記載のネットワーク負荷分散装置において、
    前記負荷分散制御部は、
    前記ハッシュ値演算部が演算した第1のハッシュ値と負荷分散制御で利用可能な所定の送出先の情報とから第2のハッシュ値を演算する負荷分散ハッシュ値演算部と、
    この負荷分散ハッシュ値演算部が演算する第2のハッシュ値のとり得る値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路とから予め設定される負荷分散経路選択テーブルと、
    前記負荷分散ハッシュ値演算部が演算した第2のハッシュ値と対応する送出先の通信経路の情報を前記負荷分散経路選択テーブルから取得する負荷分散経路制御部と
    を備えることを特徴とするネットワーク負荷分散装置。
  5. 上位処理装置から受信したパケットに含まれるフィールド値を基に第1のハッシュ値を演算する第1のステップと、
    前記第1のハッシュ値に基づいて優先制御の対象となる特定のパケットを検出し、このパケットの送出先の通信経路を決定する第2のステップと、
    前記第1のハッシュ値に基づく第2のハッシュ値により前記優先制御の対象外のパケットの送出先の通信経路を、前記パケットの送出先の通信経路ごとに設けられるデータバッファの負荷分散を満たしつつ決定する第3のステップと、
    前記第2のステップおよび前記第3のステップで未使用の通信経路の範囲において、前記上位処理装置の負荷量の増減に応じて送出先の通信経路の割り当てを増減させる第4のステップと、
    前記第2のステップ、前記第3のステップあるいは前記第4のステップで決定した送出先の通信経路に従って、この通信経路に対応する前記データバッファに前記パケットを送信する第5のステップとを含み、
    前記第4のステップは、
    前記上位処理装置の負荷量を監視し、負荷量に応じた動的な経路制御の入力条件を与える第6のステップと、
    前記第6のステップで得られた入力条件と前記第2のステップおよび前記第3のステップで未使用の通信経路の情報を記憶する動的経路選択テーブルに記憶されている未使用の通信経路の情報とを基に、前記上位処理装置の負荷量が規定量を超えたときに動的分散制御の対象となるパケットに前記未使用の通信経路を送出先の通信経路として割り当て、前記上位処理装置の負荷量が規定量を超えた状態から規定量以下の状態になったときに前記通信経路の割り当てを解除する第7のステップと
    を含むことを特徴とするネットワーク負荷分散方法。
JP2017123963A 2017-06-26 2017-06-26 ネットワーク負荷分散装置および方法 Active JP6829156B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017123963A JP6829156B2 (ja) 2017-06-26 2017-06-26 ネットワーク負荷分散装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017123963A JP6829156B2 (ja) 2017-06-26 2017-06-26 ネットワーク負荷分散装置および方法

Publications (2)

Publication Number Publication Date
JP2019009630A JP2019009630A (ja) 2019-01-17
JP6829156B2 true JP6829156B2 (ja) 2021-02-10

Family

ID=65029791

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017123963A Active JP6829156B2 (ja) 2017-06-26 2017-06-26 ネットワーク負荷分散装置および方法

Country Status (1)

Country Link
JP (1) JP6829156B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114936087B (zh) * 2021-09-29 2023-06-02 华为技术有限公司 一种嵌入向量预取的方法、装置、系统及相关设备

Also Published As

Publication number Publication date
JP2019009630A (ja) 2019-01-17

Similar Documents

Publication Publication Date Title
CN108337188B (zh) 通信量和负载感知动态队列管理
US9954798B2 (en) Network interface card having embedded virtual router
US8861359B2 (en) Network system, control method thereof and controller
US10721744B2 (en) Resource reallocation
EP2928132B1 (en) Flow-control within a high-performance, scalable and drop-free data center switch fabric
Apostolaki et al. Fab: Toward flow-aware buffer sharing on programmable switches
US8630296B2 (en) Shared and separate network stack instances
JP6461834B2 (ja) ネットワーク負荷分散装置および方法
KR20180129376A (ko) 사물인터넷 지원 스마트 게이트웨이 및 그것의 vpn 터널링 실시간 속도 제어 방법
JP6389564B2 (ja) ポリシーベースネットワークにおける改善されたネットワーク利用
JP6829156B2 (ja) ネットワーク負荷分散装置および方法
US11128569B2 (en) Load distribution system and load distribution method
KR20120055947A (ko) 가입자 인지 플로우별 QoS 제공 방법 및 장치
US9497088B2 (en) Method and system for end-to-end classification of level 7 application flows in networking endpoints and devices
JP6802763B2 (ja) 中継装置及び帯域制御方法
JP6965838B2 (ja) ネットワーク負荷分散装置および方法
JP6285828B2 (ja) パケットヘッダ識別制御装置、制御方法、及び制御プログラム
JP2005244417A (ja) 帯域制御装置、帯域制御方法および帯域制御プログラム
JP2015179970A (ja) パケット中継装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200923

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201027

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201223

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210121

R150 Certificate of patent or registration of utility model

Ref document number: 6829156

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150