CN109286686A - 基于轮询机制的负载均衡方法 - Google Patents

基于轮询机制的负载均衡方法 Download PDF

Info

Publication number
CN109286686A
CN109286686A CN201811404230.9A CN201811404230A CN109286686A CN 109286686 A CN109286686 A CN 109286686A CN 201811404230 A CN201811404230 A CN 201811404230A CN 109286686 A CN109286686 A CN 109286686A
Authority
CN
China
Prior art keywords
polling
load
flow table
hash value
balancing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811404230.9A
Other languages
English (en)
Other versions
CN109286686B (zh
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.)
Suzhou Centec Communications Co Ltd
Original Assignee
Centec Networks Suzhou Co 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 Centec Networks Suzhou Co Ltd filed Critical Centec Networks Suzhou Co Ltd
Priority to CN201811404230.9A priority Critical patent/CN109286686B/zh
Publication of CN109286686A publication Critical patent/CN109286686A/zh
Application granted granted Critical
Publication of CN109286686B publication Critical patent/CN109286686B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于轮询机制的负载均衡方法,该方法包括:设置聚合流表,至少用于存储Hash值以及对应的成员出口;设置轮询表,至少用于存储负载均衡组中成员的轮询状态;当数据流到达交换机时,计算所述数据流的Hash值;根据所述Hash值查找聚合流表是否存在该记录,若存在,获取该记录对应的成员出口并通过该成员出口转发所述数据流;若不存在,查询轮询表获取成员出口,将该成员出口以及Hash值写入聚合流表,并通过该成员出口转发所述数据流。采用本发明公开的基于轮询机制的负载均衡方法,可以以较小的代价实现均匀的选路,且不会出现乱序。

Description

基于轮询机制的负载均衡方法
技术领域
本发明涉及一种负载均衡方法,特别涉及一种基于轮询机制的负载均衡方法,属于网络通信技术领域。
背景技术
会话保持是负载均衡最常见的问题之一,指针对一个流(通常以五元组标识),能够固定的保持从负载均衡组的某一个成员出去。当组成员发生变化的时候,会话保持能够做到:1)当前流所在成员组的成员数量发生变化时,当前流选中的成员不变;2)当前流选中的成员链路断开时,当前流要能够均匀的分摊到其他正常工作的链路上;3)组成员数量增加(或者是之前断开的链路,现在又恢复工作)时,不影响现在已经转发的流的选路。
静态Hash方法是一种传统的负载均衡方法,该方法基于报文字段,例如最常用的五元组(源IP地址,目的IP地址,四层协议类型,四层源端口,四层目的端口),通过Hash算法计算得到一个Hash值,然后用Hash值对成员数量取模,得到的值即选为当前出口。基于静态Hash的算法,由于采用Hash值对成员数量取模,所以一旦成员数量发生变化,模值随之变化,所有正在转发的流都会受到影响,无法做到会话保持。
动态负载均衡(Dynamic Load Balance,DLB)根据当前负载均衡组成员的负载状况来选择出口,针对每一个新流,DLB都会选择当前最轻的负载作为出口,并且保持该流后续报文仍然用这个成员作为出口,不发生变化。该方法虽然可以做到会话保持,但是需要动态评估当前组成员的负载状况,实现较为复杂,代价较大。并且,带宽是一个瞬时概念,而评估是基于一定的反馈机制,具有滞后性,不能及时反映出当前链路的真实负载状态。
轮询(Round Robin)机制也是负载均衡中常见的方法,传统的轮询机制对每一个报文做轮询,即每一个报文来了都依次选路,该方法容易导致同一个流的报文会从不同的成员端口发出去,造成转发乱序的后果。
在现有负载均衡的应用场景中,主要有ECMP和LAG,ECMP是三层等价路由,LAG是二层应用场景。如前所述的现有几种方案,或静态Hash存在选路不均匀的问题,或DLB存在实现复杂,反馈慢的问题,或常规轮询机制存在乱序的问题。
发明内容
针对现有技术的不足,本发明的主要目的在于:提出一种负载均衡的实现方法,以较小的代价实现相对均匀的选路,做到会话保持,且不会产生乱序。
为实现前述目的,本发明公开了一种基于轮询机制的负载均衡方法,该方法具体包括:
设置Flex Hash模块,至少用于基于报文内容计算当前数据流的Hash值;
设置负载均衡成员组表,至少用于存储负载均衡成员组的所有成员;
设置轮询表,至少用于存储所述负载均衡成员组的成员的轮询状态;
设置聚合流表,至少用于存储Hash值以及对应的成员出口;
当数据流到达交换机时,计算所述数据流的Hash值;根据该Hash值查找聚合流表是否存在该记录,若存在,获取该记录对应的成员出口并通过该成员出口转发所述数据流;若不存在,查询轮询表获取成员出口,将该成员出口以及Hash值写入聚合流表,并通过该成员出口转发所述数据流。
优选地,所述聚合流表具有老化机制,在一定周期内将处于老化状态的流表记录删除。
优选地,每个数据流的报文查到对应的流表后,更新流表为非老化状态;
按一定的老化周期扫描聚合流表中的每一条流表,将非老化状态的流表更新为老化状态,将已处于老化状态的流表删除。
优选地,将所述老化状态标记为0,所述非老化状态标记为1。
优选地,所述聚合流表的深度与所选取的Hash值相对应。
优选地,所述报文内容为五元组。
优选地,所述轮询表包括成员计数器,根据成员计数器值选择对应负载均衡组的成员出口。
优选地,每当查询轮询表获取成员出口后,所述成员计数器值加1。
与现有技术相比,本发明的优点在于:本发明公开的一种基于轮询机制的负载均衡方法,实现简单,可以以较小的代价实现相对均匀的选路,且不会出现同一流的转发乱序,做到会话保持。
附图说明
图1是本发明一典型实施例提出的交换机的负载均衡成员端口组示意图;
图2是本发明一典型实施例提出的基于轮询机制的负载均衡方法逻辑示意图。
具体实施方式
鉴于现有技术中的不足,本案发明人经长期研究和大量实践,得以提出本发明的技术方案。如下将对该技术方案、其实施过程及原理等作进一步的解释说明。
本发明所揭示的一种基于轮询机制的负载均衡方法,是在静态哈希选路机制的基础上,增加轮询表和聚合流表,基于聚合流进行轮询选路,该方法具体包括:
设置Flex Hash模块,至少用于基于报文内容计算当前数据流的Hash值。为避免网络设备的内存产生巨大消耗,本发明技术方案没有记录整个流的五元组(这样需要消耗的存储器(memory)会非常巨大,硬件实现难度较大),而是通过设置的Flex Hash模块基于报文内容计算得到一个Hash值,用以表征数据流。为了予以区分以便更好地理解,本发明实施例中将Flex Hash模块计算得到的hash值称之为“Hash B值”,具有相同Hash B值的流,则被视为同一个流进行处理,Hash B值的取值范围越大,能够区分的流的粒度也就越大。计算Hash B值的报文内容可采用五元组<源IP、目的IP、四层协议类型、四层源端口、四层目的端口>实现。
设置负载均衡成员组表(Member Table),至少用于存储负载均衡成员组的成员,以用于基于静态Hash机制选择成员出口。Member Table包含多条条目(Entry),每一条Entry对应一个成员(Member)的转发出口,有几个成员出口即对应几条Entry,根据负载均衡组的基址(Base)和成员数量即可索引得到当前负载均衡组的成员对应的Entry。例如某个存储芯片一共支持256个负载均衡组,1K(1000)个负载均衡组成员Member(即Memory深度为1K),那么每一个负载均衡组可以定义自己有几个成员,在负载均衡组Member Table的表中基于当前负载均衡组给出的base,以及当前的成员member,可以索引到一个具体的Member信息,也就是这个Member Memory的一条Index,然后便可以读取该Index对应的成员出口。
设置轮询表(RR Table),至少用于存储负载均衡组中所有成员的轮询状态,该表记录基于轮询(RR)算法选择成员出口时的RR状态的指针。对于每一个到达的新流,为其选择当前轮询到的成员出口,当下一个新流来了之后,会依次选择下一个成员出口。
设置聚合流表(Flow Table),至少用于存储Hash B值以及对应的成员出口。聚合流表的每一条entry代表了一组在一定Hash算法下具有相同Hash值(即本实施例所述的hash B值)的流,流表的深度要和选取使用的HashB值相对应,用于记录已经建立的一条流所选中的成员出口。
当数据流到达交换机时,通过Flex Hash模块计算当前数据流的Hash B值;根据所述Hash B值查找聚合流表是否存在该记录,若存在,表明当前流已存在,获取该记录对应的成员出口并通过该成员出口转发当前数据流;若不存在,表明当前流是一条新流,查询轮询表获取成员出口,将该成员出口以及Hash B值写入聚合流表,并通过该成员出口转发当前数据流。
进一步地,为聚合流表设置老化机制Aging,用于老化聚合流表中建立的流表记录。每一个流的报文来了之后都会更新流表的状态Bit为非老化状态(Bit=1),而Aging机制会在一定的老化周期内清除流表的状态为老化状态(Bit=0)。并且,当扫到一条流表的状态Bit为0时,那么老化发生,该条流表被删除。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
图1是本发明一典型实施例提出的交换机的负载均衡成员端口组示意,在交换机中包括一个负载均衡组,该负载均衡组包含四个成员端口:a、b、c、d,x为交换机输入端口。图2是本发明一典型实施例提出的基于轮询机制的负载均衡方法逻辑示意图,现结合图1、图2对该负载均衡方法的核心思想进行阐述,其过程如下:
(1)初始状态,负载均衡组的四个成员端口皆为UP空闲状态;Flow Table为空,轮询表RR Table的成员计数器CurrentMember默认为0,负载均衡组表Member Table依次存储相应成员端口a、b、c、d的信息。
(2)端口x收到流F0的报文;
(3)FlexHash模块可基于报文五元组内容计算流F0的HashB值,并根据该HashB值(Hash Value B)读取Flow Table的对应表项,此时Flow Table表无记录,表明F0是一个新流。获取RR Table当前成员计数器的值CurrentMember==0,表示当前的流F0需要选择第0个成员端口作为出口,即端口a。将端口a以及F0的Hash B值对应写入Flow Table,并基于Group Base以及当前选择的成员端口a,索引Member Table获得成员端口a的具体信息,将报文从端口a转发出去,同时RR Table中CurrentMember值加1。
(4)当流F0的下一个报文到达,首先根据Hash B值读取Flow Table的对应表项,获取得到成员端口a,将报文从端口a转发出去。
(5)端口x收到收到另一个流F1的报文;
(6)Flex Hash模块计算流F1的Hash B值,并根据该Hash B值读取Flow Table的对应表项,Flow Table表未读取到对应记录,表明F1是一个新流。获取RR Table当前成员计数器的值CurrentMember==1,表示当前的流F1需要选择第1个成员端口作为出口,即端口b。将端口b以及F1的Hash B值对应写入Flow Table,并索引Member Table获得成员端口b的具体信息,将当前报文从端口b转发出去,同时RR Table中CurrentMember值加1。
(7)交换机收到的新流的建立过程以及流的转发处理如上所示。其中,Flow Table的老化机制Aging以一定的时间间隔对每一条Entry进行扫描,删除老化的流表记录。
为了保证芯片的效率和内存的开销,本发明公开的基于轮询机制的负载均衡方法采用了基于报文内容计算得到的Hash值来代表一条数据流,如果多条流对应了同一个hash值,则简化成同一条流进行处理,这样可以提高硬件的速度,减少开销。本发明技术方案相较于DLB方法实现简单,可以以较小的代价实现更好的负载均衡;相对于对每个报文进行轮询选路的RR机制,由于增加了流表设置,能够平滑地针对每一条新流用轮询机制选择一个成员,而一旦选择了成员之后,将记入FlowTable,对后续具有相同Hash B值的流起到会话保持的作用,不会出现同一个流被不同端口转发的乱序问题。以聚合流的粒度来选择成员,虽然相对来说粒度变粗了,但是当实际中流量模型越分散,其效果会越好,不会出现某些成员被选中的次数过多,某些成员被选中的次数过少的情况。
应当理解,上述实施例仅为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (8)

1.一种基于轮询机制的负载均衡方法,其特征在于包括:
设置Flex Hash模块,至少用于基于报文内容计算当前数据流的Hash值;
设置负载均衡成员组表,至少用于存储负载均衡成员组的所有成员;
设置轮询表,至少用于存储所述负载均衡成员组的成员的轮询状态;
设置聚合流表,至少用于存储数据流的Hash值以及对应的成员出口;
当数据流到达交换机时,计算当前数据流的Hash值;根据该Hash值查找聚合流表是否存在该记录,若存在,获取该记录对应的成员出口并通过该成员出口转发所述数据流;若不存在,查询轮询表获取成员出口,将该成员出口以及Hash值写入聚合流表,并通过该成员出口转发所述数据流。
2.根据权利要求1所述的基于轮询机制的负载均衡方法,其特征在于:
所述聚合流表具有老化机制,在一定周期内将处于老化状态的流表删除。
3.根据权利要求2所述的基于轮询机制的负载均衡方法,其特征在于:所述老化机制的过程具体包括:
每个数据流的报文查到对应的流表后,更新流表为非老化状态;
按一定的老化周期扫描聚合流表中的每一条流表,将非老化状态的流表更新为老化状态,将已处于老化状态的流表删除。
4.根据权利要求1所述的基于轮询机制的负载均衡方法,其特征在于:
所述聚合流表的深度与所选取的Hash值相对应。
5.根据权利要求1所述的基于轮询机制的负载均衡方法,其特征在于:
所述轮询表包括成员计数器,根据成员计数器值选择对应负载均衡组的成员作为转发出口。
6.根据权利要求1所述的基于轮询机制的负载均衡方法,其特征在于:所述报文内容为五元组。
7.根据权利要求3所述的基于轮询机制的负载均衡方法,其特征在于:将所述老化状态标记为0,所述非老化状态标记为1。
8.根据权利要求5所述的基于轮询机制的负载均衡方法,其特征在于:
每当查询轮询表获取成员出口后,所述成员计数器值加1。
CN201811404230.9A 2018-11-23 2018-11-23 基于轮询机制的负载均衡方法 Active CN109286686B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811404230.9A CN109286686B (zh) 2018-11-23 2018-11-23 基于轮询机制的负载均衡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811404230.9A CN109286686B (zh) 2018-11-23 2018-11-23 基于轮询机制的负载均衡方法

Publications (2)

Publication Number Publication Date
CN109286686A true CN109286686A (zh) 2019-01-29
CN109286686B CN109286686B (zh) 2021-05-14

Family

ID=65172534

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811404230.9A Active CN109286686B (zh) 2018-11-23 2018-11-23 基于轮询机制的负载均衡方法

Country Status (1)

Country Link
CN (1) CN109286686B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109905320A (zh) * 2019-02-25 2019-06-18 杭州迪普科技股份有限公司 一种聚合端口的报文分配方法和装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102577280A (zh) * 2011-11-28 2012-07-11 华为技术有限公司 发送报文的方法、装置和系统
CN103595567A (zh) * 2013-11-13 2014-02-19 杭州华三通信技术有限公司 一种聚合链路中的端口映射方法及装置
CN104022952A (zh) * 2014-06-03 2014-09-03 杭州华三通信技术有限公司 一种报文转发方法及装置
CN106341336A (zh) * 2016-08-29 2017-01-18 锐捷网络股份有限公司 一种通过聚合口转发报文的方法和装置
CN106572025A (zh) * 2016-10-19 2017-04-19 盛科网络(苏州)有限公司 一种实现网络流量负载均衡的方法和装置
US20170262767A1 (en) * 2016-03-09 2017-09-14 Verizon Digital Media Services Inc. Methods and systems for advanced content cacheability determination
CN107454008A (zh) * 2017-08-22 2017-12-08 济南浪潮高新科技投资发展有限公司 一种千兆万兆以太互通系统及方法
CN107566267A (zh) * 2016-06-30 2018-01-09 中兴通讯股份有限公司 一种基于聚合链路的报文转发方法和装置
CN108632159A (zh) * 2017-03-16 2018-10-09 哈尔滨英赛克信息技术有限公司 一种基于预测的网络业务流量负载均衡方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102577280A (zh) * 2011-11-28 2012-07-11 华为技术有限公司 发送报文的方法、装置和系统
CN103595567A (zh) * 2013-11-13 2014-02-19 杭州华三通信技术有限公司 一种聚合链路中的端口映射方法及装置
CN104022952A (zh) * 2014-06-03 2014-09-03 杭州华三通信技术有限公司 一种报文转发方法及装置
US20170262767A1 (en) * 2016-03-09 2017-09-14 Verizon Digital Media Services Inc. Methods and systems for advanced content cacheability determination
CN107566267A (zh) * 2016-06-30 2018-01-09 中兴通讯股份有限公司 一种基于聚合链路的报文转发方法和装置
CN106341336A (zh) * 2016-08-29 2017-01-18 锐捷网络股份有限公司 一种通过聚合口转发报文的方法和装置
CN106572025A (zh) * 2016-10-19 2017-04-19 盛科网络(苏州)有限公司 一种实现网络流量负载均衡的方法和装置
CN108632159A (zh) * 2017-03-16 2018-10-09 哈尔滨英赛克信息技术有限公司 一种基于预测的网络业务流量负载均衡方法
CN107454008A (zh) * 2017-08-22 2017-12-08 济南浪潮高新科技投资发展有限公司 一种千兆万兆以太互通系统及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109905320A (zh) * 2019-02-25 2019-06-18 杭州迪普科技股份有限公司 一种聚合端口的报文分配方法和装置
CN109905320B (zh) * 2019-02-25 2021-04-27 杭州迪普科技股份有限公司 一种聚合端口的报文分配方法和装置

Also Published As

Publication number Publication date
CN109286686B (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN101924695B (zh) 用于网络连接的方法和系统
US6535504B1 (en) Link aggregation path selection method
CN107094115B (zh) 一种基于sdn的蚁群优化负载均衡路由算法
US5398012A (en) Distributed processing of route selection across networks and subnetworks
CN109547343B (zh) 一种流量调度方法及系统
KR101502263B1 (ko) 하이브리드 통신 네트워크들에 대한 어드레싱 방식
CN108259328B (zh) 报文转发方法及装置
CN102098224B (zh) 数据流负荷分担方法及装置
CN109347623A (zh) 一种链路负载均衡应用中进行会话保持的方法及装置
Wang et al. Implementation of multipath network virtualization with SDN and NFV
CN103634224B (zh) 网络中数据传输的方法和系统
CN102970242B (zh) 一种实现负载均衡的方法
Kumar et al. SCalable object-tracking through unattended techniques (SCOUT)
CN109600313A (zh) 报文转发方法及装置
CN109962760A (zh) 一种适于无线tdma自组网的业务调度方法
CN109981768A (zh) 分布式网络存储系统中的io多路径规划方法及设备
CN107332943A (zh) 一种报文转发方法及装置
CN104852859A (zh) 一种聚合接口业务处理方法和设备
CN109286686A (zh) 基于轮询机制的负载均衡方法
CN106341336B (zh) 一种通过聚合口转发报文的方法和装置
CN108418752A (zh) 一种聚合组的创建方法和装置
CN103534996B (zh) 实现负载均衡的方法及设备
CN101599910A (zh) 报文发送的方法及设备
CN103457976A (zh) 数据下载方法和系统
CN102904803B (zh) 一种报文传输方法和设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province

Patentee after: Suzhou Shengke Communication Co.,Ltd.

Address before: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province

Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd.