一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

负载均衡方法、装置、网络设备及计算机可读存储介质与流程

2021-11-15 17:45:00 来源:中国专利 TAG:


1.本技术属于网络通信技术领域,具体涉及一种负载均衡方法、装置、网络设备及计算机可读存储介质。


背景技术:

2.通过将多个物理端口捆绑在一起形成一个逻辑端口是增加带宽的常用方法。多个物理端口捆绑在一起所形成的组合称为聚合组,而这些被捆绑在一起的物理端口称为聚合组的成员端口。通过聚合组发送报文时,需要考虑如何选择成员端口,以使各个成员端口的负载比较均衡。
3.通过聚合组发送报文时,在各个成员端口带宽相同的情形下,通常使用报文头部关键字段计算hash(哈希)值,并通过hash值确定转发表中的发送端口。由于采用hash分配客观存在不均匀的情形,使得可能会出现一些成员端口比较繁忙而另一些成员端口比较空闲的情形,出现此情形后,在总流量速率未达到聚合组的带宽时会出现丢包,从而影响网络质量。


技术实现要素:

4.鉴于此,本技术的目的在于提供一种负载均衡方法、装置、网络设备及计算机可读存储介质,以改善于现有通过聚合组发送报文时,容易出现丢包影响网络质量的问题。
5.本技术的实施例是这样实现的:
6.第一方面,本技术实施例提供了一种负载均衡方法,包括:获取根据预设分配规则为待发送报文分配的发送端口,其中,所述发送端口为聚合组中的成员端口;确定所述发送端口的繁忙状态;在所述发送端口处于预先设定的繁忙状态时,重新从所述聚合组中确定发送所述待发送报文的目标端口。本技术实施例中,在为待发送报文分配发送端口后,不再是直接通过该发送端口发送出去,而是还要确定发送端口的繁忙状态,若发送端口处于预先设定的繁忙状态时,则需要重新从聚合组中确定发送待发送报文的目标端口,以降低聚合组中各个成员端口发送流量负载不均的概率,从而避免发生因聚合组中各个成员端口发送流量负载不均的情况导致丢包影响网络质量的问题。
7.结合第一方面实施例的一种可能的实施方式,所述方法还包括:获取所述聚合组中每个成员端口的字节发送速率,以及获取所述聚合组中成员端口的平均字节速率;检测每个成员端口的字节发送速率与所述平均字节速率之间的误差是否大于第一预设门限值;若存在成员端口的字节发送速率与所述平均字节速率之间的误差大于所述第一预设门限值的情形,则更新所述预设分配规则。本技术实施例中,通过对各个成员端口的字节发送速率进行监控,若检测到存在成员端口的字节发送速率与平均字节速率之间的误差大于第一预设门限值的情形,则更新预设分配规则,以便于从源头上解决聚合组中各个成员端口发送流量负载不均的问题。
8.结合第一方面实施例的一种可能的实施方式,所述预设分配规则包括预设转发
表,更新所述预设分配规则,包括:将预设速率统计表中速率最大的m个表项对应的hash值分配给所述聚合组中的m个成员端口;从所述预设速率统计表中选择n/m

1个表项对应的hash值分配给所述m个成员端口中的每一个成员端口,以保证每一个成员端口对应的表项的速率之和与所述平均字节速率之间的误差小于第二预设门限值,所述第二预设门限值小于所述第一预设门限值,从而得到更新后的转发表;其中,所述预设速率统计表包括n个表项,每一个表项对应所述预设转发表中的一个hash值,不同表项对应的hash值不同,n为所述聚合组中的成员端口数m的整数倍。本技术实施例中,通过预设速率统计表来对预设转发表中的每一个hash值对应的发送报文的字节发送速率进行统计,在更新转发表时,先将预设速率统计表中速率最大的m个表项对应的hash值分配给m个成员端口,然后再从预设速率统计表中选择n/m

1个表项对应的hash值分配给m个成员端口中的每一个成员端口,以保证每一个成员端口对应的表项的速率之和与平均字节速率之间的误差小于第二预设门限值,这样便可确保更新后的转发表中对应的每一个成端端口发送的流量负载是均衡的。
9.结合第一方面实施例的一种可能的实施方式,根据预设分配规则为待发送报文分配发送端口,包括:根据所述待发送报文中的关键信息计算出的hash值中的预设位以及预设转发表为待发送报文分配发送端口;相应地,重新从所述聚合组中确定发送所述待发送报文的目标端口,包括:根据所述待发送报文中的关键信息计算出的hash值中的其他预设位以及所述预设转发表重新从所述聚合组中确定发送所述待发送报文的目标端口,其中,重新确定所述目标端口所根据的hash值中的预设位与确定所述发送端口所根据的所述hash值中的预设位不同。本技术实施例中,在重新确定目标端口时,是根据计算出的hash值中的其他预设位来确定,且重新确定目标端口所根据的hash值中的预设位与确定发送端口所根据的hash值中的预设位不同,这样能大概率避免重新确定的端口还是原来的发送端口。
10.结合第一方面实施例的一种可能的实施方式,重新从所述聚合组中确定发送所述待发送报文的目标端口之后,所述方法还包括:确定所述目标端口的繁忙状态;在所述目标端口处于预先设定的繁忙状态时,再次重新从所述聚合组中确定发送所述待发送报文的目标端口,直至确定的目标端口不处于预先设定的繁忙状态为止。本技术实施例中,在重新确定目标端口后,还要进一步确定目标端口的繁忙状态,直至找到不处于预先设定的繁忙状态的目标端口为止,这样能更大程度的保证各个端口的流量负载均衡。
11.结合第一方面实施例的一种可能的实施方式,确定所述发送端口的繁忙状态,包括:获取所述发送端口的使用信息,并基于所述使用信息和预设规则确定所述发送端口的繁忙状态。本技术实施例中,通过获取发送端口的使用信息,并结合预设规则来确定发送端口的繁忙状态,从而可以快速准确的确定发送端口的繁忙状态。
12.结合第一方面实施例的一种可能的实施方式,所述使用信息包括带宽占用比,基于所述使用信息和预设规则确定所述发送端口的繁忙状态,包括:判断所述发送端口的带宽占用比是否不小于第三预设门限值;若所述发送端口的带宽占用比不小于所述第三预设门限值,则确定所述发送端口处于预先设定的繁忙状态。本技术实施例中,通过判断发送端口的带宽占用比是否不小于第三预设门限值即可快速确定发送端口的繁忙状态。
13.结合第一方面实施例的一种可能的实施方式,所述方法还包括:若所述发送端口的带宽占用比小于所述第三预设门限值,获取所述聚合组中其他成员端口的带宽占用比;
若所述发送端口的带宽占用比为所有带宽占用比中的最大带宽占比,根据最大带宽占比和最小带宽占用比,获得负载均衡量;若所述负载均衡量大于第四预设门限值,重新从所述聚合组中确定发送所述待发送报文的目标端口。本技术实施例中,即使发送端口的带宽占用比小于第三预设门限值,则还要进一步根据聚合组中最大带宽占比和最小带宽占用比获得负载均衡量,若负载均衡量大于第四预设门限值,则重新从聚合组中确定发送待发送报文的目标端口,以尽可能的保证各个端口的流量负载均衡。
14.结合第一方面实施例的一种可能的实施方式,所述使用信息包括上一个报文的发送情况,基于所述使用信息和预设规则确定所述发送端口的繁忙状态,包括:判断所述上一个报文是否发送完毕;若所述上一个报文未发送完毕,则确定所述发送端口处于预先设定的繁忙状态。本技术实施例中,通过判断发送端口的上一个报文是否发送完毕即可快速确定发送端口的繁忙状态。
15.第二方面,本技术实施例还提供了一种负载均衡方法,包括:获取聚合组中每个成员端口的字节发送速率,以及获取所述聚合组中成员端口的平均字节速率;检测每个成员端口的字节发送速率与所述平均字节速率之间的误差是否大于第一预设门限值;若存在成员端口的字节发送速率与所述平均字节速率之间的误差大于所述第一预设门限值的情形,则更新用于指导报文转发的预设分配规则。本技术实施例中,通过对各个成员端口的字节发送速率进行监控,若检测到存在成员端口的字节发送速率与平均字节速率之间的误差大于第一预设门限值的情形,则更新预设分配规则,以便于从源头上解决聚合组中各个成员端口发送流量负载不均的问题。
16.第三方面,本技术实施例还提供了一种负载均衡装置,包括:获取模块以及处理模块;获取模块,用于获取根据预设分配规则为待发送报文分配的发送端口;其中,所述发送端口为聚合组中的成员端口;处理模块,用于确定所述发送端口的繁忙状态,在所述发送端口处于预先设定的繁忙状态时,重新从所述聚合组中确定发送所述待发送报文的目标端口。
17.第四方面,本技术实施例还提供了一种负载均衡装置,包括:获取模块、检测模块以及更新模块;获取模块,用于获取聚合组中每个成员端口的字节发送速率,以及获取所述聚合组中成员端口的平均字节速率;检测模块,用于检测每个成员端口的字节发送速率与所述平均字节速率之间的误差是否大于第一预设门限值;更新模块,用于若存在成员端口的字节发送速率与所述平均字节速率之间的误差大于所述第一预设门限值的情形,则更新用于指导报文转发的预设分配规则。
18.第五方面,本技术实施例还提供了一种网络设备,包括:存储器和处理器,所述处理器与所述存储器连接;所述存储器,用于存储程序;所述处理器,用于调用存储于所述存储器中的程序,以执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法,或者,执行上述第二方面实施例提供的方法。
19.第六方面,本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法,或者,执行上述第二方面实施例提供的方法。
20.本技术的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术实施例而了解。本技术的目的和其他优点可通过在所写的
说明书以及附图中所特别指出的结构来实现和获得。
附图说明
21.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本技术的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本技术的主旨。
22.图1示出了本技术实施例提供的一种负载均衡方法的流程示意图。
23.图2示出了本技术实施例提供的一种预设转发表的示意图。
24.图3为图2中的预设转发表更新后的示意图。
25.图4示出了本技术实施例提供的又一种负载均衡方法的流程示意图。
26.图5示出了本技术实施例提供的一种聚合组成员流量负载均衡的模块示意图。
27.图6示出了本技术实施例提供的又一种聚合组成员流量负载均衡的模块示意图。
28.图7示出了本技术实施例提供的一种网络设备的结构示意图。
具体实施方式
29.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
30.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。1`
31.再者,本技术中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
32.鉴于现有通过聚合组发送报文时,容易出现聚合组中各个成员端口发送流量负载不均的情况,从而导致丢包影响网络质量的问题。本技术实施例提供了一种负载均衡方法,以解决聚合组各个成员端口发送流量负载不均的问题。
33.下面将结合图1,对本技术实施例提供的负载均衡方法进行说明。
34.s1:获取聚合组中每个成员端口的字节发送速率,以及获取所述聚合组中成员端口的平均字节速率。
35.聚合组中每个成员端口的字节发送速率之和为聚合组的字节发送速率,根据聚合组的字节发送速率和成员端口数m,便可计算出聚合组中每个成员端口的平均速率。平均速率=聚合组的字节发送速率/成员端口数m。
36.成员端口的字节发送速率可以通过统计预设时间段内成员端口发送的报文的字节数得到,例如,根据成员端口此次轮询和上次轮询之间发送的报文的字节数以及轮询周期,计算出字节发送速率,其中,字节发送速率=发送字节数/轮询周期。
37.s2:检测每个成员端口的字节发送速率与所述平均字节速率之间的误差是否大于第一预设门限值。
38.计算每个成员端口的字节发送速率与平均字节速率之间的误差,检测每个成员端口的字节发送速率与平均字节速率之间的误差是否大于第一预设门限值(经验值,如10%)。
39.s3:若存在成员端口的字节发送速率与所述平均字节速率之间的误差大于所述第一预设门限值的情形,则更新用于指导报文转发的预设分配规则。
40.若存在成员端口的字节发送速率与所平均字节速率之间的误差大于第一预设门限值的情形,则更新用于指导报文转发的预设分配规则,以便后续再进行报文转发时,基于更新后的预设分配规则指导报文进行转发。
41.一种可选实施方式下,预设分配规则包括预设转发表,更新预设分配规则的过程可以是:将预设速率统计表中速率最大的m个表项对应的hash值分配给聚合组中的m个成员端口,从预设速率统计表中选择n/m

1个表项对应的hash值分配给m个成员端口中的每一个成员端口,以保证每一个成员端口对应的表项的速率之和与平均字节速率之间的误差小于第二预设门限值,第二预设门限值小于第一预设门限值(经验值,如5%),从而得到更新后的转发表。
42.其中,预设速率统计表包括n个表项,每一个表项对应预设转发表中的一个hash值,不同表项对应的hash值不同,n为聚合组中的成员端口数m的整数倍。
43.为了便于理解,下面举例进行说明,假设聚合组中有4个成员端口,分别为端口0、端口1、端口2、端口3,预设速率统计表和预设转发表均包括n个表项,则转发表中同一个端口可以对应n/4个hash值,预设转发表的示意图如图2所示。预设速率统计表中的每一个表项与预设转发表中的hash值一一对应,在发送报文时,由报文五元组等关键字段计算hash值,在对应的转发表中确定发送端口,以及在该hash值对应的统计表中统计发送报文的字节数,根据统计的预设时间段内该表项发送的报文的字节数便可得到该表项的字节发送速率。对应同一个成员端口的表项的字节发送速率之和,即为该成员端口的字节发送速率,例如,以包含12个表项,4个成员端口为例,则每个成员端口对应3个表项,则成员端口的字节发送速率为对应的3个表项的字节发送速率之和。
44.以n为12,m为4为例,在更新预设转发表时,选取预设速率统计表速率最大的4个表项,将这4个表项对应的hash值分配给端口0、端口1、端口2、端口4。假设速率最大的4个表项的hash值分别为h0、h1、h2、h3,则可以是将h0分配给端口0,h1分配给端口1,h2分配给端口2,h3分配给端口3,如图3所示。然后再从剩余的8个表项中,选择2(12/4

1)个表项对应的hash值分配给每一个成员端口,使得每一个成员端口各自对应3(12/4)个hash值。其中,在分配时,需要保证每一个成员端口对应的表项的速率之和与平均字节速率之间的误差小于第二预设门限值,这样便可得到新的转发表,之后便可利用新的转发表替代老的转发表,用于指导报文的转发。其中,新的转发表的示意图如图3所示。
45.除了更新预设分配规则来解决聚合组成员流量负载不均衡的问题,还可以在发送
报文时,通过重新确定发送报文的目标端口的方式来解决聚合组成员流量负载不均衡的问题。下面将结合图4,对本技术实施例提供的另一种负载均衡方法进行说明。
46.s10:获取根据预设分配规则为待发送报文分配的发送端口,所述发送端口为聚合组中的成员端口。
47.其中,该预设分配规则可以包括用于指导报文转发的预设转发表。
48.在通过聚合组发送待发送报文时,根据预设分配规则为待发送报文分配发送端口,具体为:根据待发送报文中的关键信息如五元组或五元组 媒体接入控制(media access control,mac)地址等计算hash值,如得到32位hash值,然后再根据32位hash值中的预设位(如前四位)去匹配预设转发表,即可从聚合组中确定发送待发送报文的发送端口。需要说明的是,预设位的位数需要大于等于成员端口数。
49.根据32位hash值中的预设位(如前四位)去匹配预设转发表时,可以是根据预设位对应的十进制值去匹配预设转发表。例如,假设聚合组包括4个成员端口,分别为端口0、端口1、端口2、端口3,3位预设位的值的取值范围为0

15,在建立转发表时,可以是预设位值为0、4、8、12的对应端口0,值为1、5、9、13的对应端口1,值为2、6、10、14的对应端口2,值为3、7、8、15的对应端口3。这样后续便可根据32位hash值中的预设位(如前四位)的值去匹配预设转发表,便可确定对应的发送端口。
50.s20:确定所述发送端口的繁忙状态。
51.为了使聚合组中成员端口的流量负载均衡,在获取到根据预设分配规则为待发送报文分配的发送端口后,需要确定发送端口的繁忙状态。
52.可选地,确定发送端口的繁忙状态的过程可以是:获取发送端口的使用信息,并基于使用信息和预设规则确定发送端口的繁忙状态。
53.一种实施方式下,发送端口的使用信息包括带宽占用比,相应地,基于使用信息和预设规则确定发送端口的繁忙状态的过程可以是:判断发送端口的带宽占用比是否不小于第三预设门限值(为经验值),若发送端口的带宽占用比不小于第三预设门限值,则确定发送端口处于预先设定的繁忙状态,反之,则确定发送端口不处于预先设定的繁忙状态。
54.在某些场景中,需要各个成员端口的负载尽可能的均衡,在该种场景下,即使发送端口的带宽占用比小于第三预设门限值,则还需要进一步获取聚合组中其他成员端口的带宽占用比,并进一步判断发送端口的带宽占用比是否为所有带宽占用比中的最大带宽占比,若发送端口的带宽占用比为所有带宽占用比中的最大带宽占比,则根据最大带宽占比和最小带宽占用比,获得负载均衡量,并进一步判断负载均衡量是否大于第四预设门限值(经验值),若负载均衡量大于第四预设门限值,则重新从聚合组中确定发送待发送报文的目标端口。其中,负载均衡量可以是最大带宽占比与最小带宽占用比的差值或者平均值。
55.其中,在重新从聚合组中确定发送待发送报文的目标端口时,可以是根据待发送报文中的关键信息计算出的hash值中的其他预设位(如第五位、第六位、第七位、第八位)以及预设转发表,重新从聚合组中确定发送待发送报文的目标端口,其中,重新确定目标端口所根据的hash值中的预设位与确定发送端口所根据的hash值中的预设位不同,例如,重新确定目标端口所根据的hash值中的预设位为第五位至第八位,而确定发送端口所根据的hash值中的预设位为前四位。
56.其中,网络设备可通过控制面周期性地计算各成员端口的带宽占用比。可选地,带
宽占用比=字节发送速率*100/带宽,可以根据成员端口此次轮询和上次轮询之间发送的报文的字节数以及轮询周期,计算出字节发送速率,其中,字节发送速率=发送字节数/轮询周期。
57.一种实施方式下,发送端口的使用信息包括上一个报文的发送情况,相应地,基于使用信息和预设规则确定所发送端口的繁忙状态的过程可以是:判断上一个报文是否发送完毕,若上一个报文未发送完毕,则确定发送端口处于预先设定的繁忙状态,若上一个报文发送完毕,则确定发送端口不处于预先设定的繁忙状态。其中,上一个报文是相对于当前的待发送报文而言。
58.其中,可以根据报文长度、成员端口的带宽,计算出该报文发送完成的时间。例如,以成员端口a来说,对于选择到成员端口a的第一个报文来说,根据报文长度、成员端口a的带宽,计算出该报文发送完成的时刻t0。对于选择到成员端口a的第二个报文来说,根据成员端口a的带宽、当前时刻、上一个报文发送完成的时刻t0,判断上一个报文是否发送完成(根据经验,可以认为完成整个报文80%发送即为完成发送),如果完成发送,则发送第二个报文,并计算出第二个报文发送完成的时刻t0。
59.其中,在每个成员端口加入聚合组时计算该成员端口发送一个字节的时间f:f=1*8*109/b,b为该成员端口的物理带宽,单位为ns。报文发送时间=f*l,l为报文的长度。因此,报文发送完毕的时刻为:t=tc f*l,tc为当期时刻,单位为ns。
60.s30:在所述发送端口处于预先设定的繁忙状态时,重新从所述聚合组中确定发送所述待发送报文的目标端口。
61.在发送端口处于预先设定的繁忙状态时,例如,发送端口的带宽占用比不小于第三预设门限值时,或者,发送端口的上一个报文未发送完毕时,重新从聚合组中确定发送待发送报文的目标端口,以便通过重新确定的目标端口将该待发送报文发送出去。
62.若预先设定的繁忙状态为发送端口的上一个报文未发送完毕,则在重新确定待发送报文的目标端口后,将待发送报文从重新确定的目标端口发送出去,并更新目标端口完成该待发送报文发送的时刻t0。
63.在重新从聚合组中确定发送待发送报文的目标端口时,可以是根据待发送报文中的关键信息计算出的hash值中的其他预设位(如第九位至第十二位)以及预设分配规则,重新从聚合组中确定发送待发送报文的目标端口。其中,重新确定目标端口所根据的hash值中的预设位与确定发送端口所根据的hash值中的预设位不同,例如,重新确定目标端口所根据的hash值中的预设位为第七位至第九位,而确定发送端口所根据的hash值中的预设位为前四位。
64.一种实施方式下,重新从聚合组中确定发送待发送报文的目标端口后,无论目标端口是否繁忙,均将待发送报文从该目标端口发送出去。
65.一种实施方式下,重新从聚合组中确定发送待发送报文的目标端口之后,方法还包括:确定目标端口的繁忙状态,在目标端口处于预先设定的繁忙状态时,再次重新从聚合组中确定发送待发送报文的目标端口,直至确定的目标端口不处于预先设定的繁忙状态为止。在该种实施方式下,在重新确定目标端口后,还需要进一步判断该目标端口是否繁忙,若处于预先设定的繁忙状态,则需要再次重新确定目标端口,直至确定的目标端口不处于预先设定的繁忙状态为止。
66.基于同一构思,一种实施方式下,重新从聚合组中确定发送待发送报文的目标端口之后,方法还包括:判断目标端口的繁忙程度是否小于发送端口的繁忙程度,若目标端口的繁忙程度不小于送端口的繁忙程度,则再次重新从聚合组中确定发送待发送报文的目标端口,直至确定的目标端口的繁忙程度小于发送端口的繁忙程度。其中,带宽占比越高和/或上一个报文未发送部分的剩余发送时间越长,表征繁忙程度越忙。
67.除了通过重新确定发送报文的目标端口的方式来解决聚合组成员流量负载不均衡的问题,一种实施方式下,还可以通过更新预设转发表,然后利用更新后的预设转发表指导报文的转发,以解决聚合组成员流量负载不均衡的问题。需要说明的是,本实施例中,更新预设转发表的内容与上述实施例(图1)中的内容相同,此处未介绍之处,请参阅前述内容。
68.基于同一发明构思,本技术实施例还提供了一种负载均衡装置100,如图5所示。该负载均衡装置100包括:获取模块110、检测模块120以及更新模块130。
69.获取模块110,用于获取聚合组中每个成员端口的字节发送速率,以及获取所述聚合组中成员端口的平均字节速率。
70.检测模块120,用于检测每个成员端口的字节发送速率与所述平均字节速率之间的误差是否大于第一预设门限值。
71.更新模块130,用于若存在成员端口的字节发送速率与所述平均字节速率之间的误差大于所述第一预设门限值的情形,则更新用于指导报文转发的预设分配规则。
72.可选地,所述预设分配规则包括预设转发表,更新模块130,具体用于:将预设速率统计表中速率最大的m个表项对应的hash值分配给所述聚合组中的m个成员端口;从所述预设速率统计表中选择n/m

1个表项对应的hash值分配给所述m个成员端口中的每一个成员端口,以保证每一个成员端口对应的表项的速率之和与所述平均字节速率之间的误差小于第二预设门限值,所述第二预设门限值小于所述第一预设门限值,从而得到更新后的转发表;其中,所述预设速率统计表包括n个表项,每一个表项对应所述预设转发表中的一个hash值,不同表项对应的hash值不同,n为所述聚合组中的成员端口数m的整数倍。
73.本技术实施例所提供的负载均衡装置100,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
74.基于同一发明构思,本技术实施例还提供了一种负载均衡装置200,如图6所示。该负载均衡装置200包括:获取模块210、处理模块220。
75.获取模块210,用于获取根据预设分配规则为待发送报文分配的发送端口;其中,所述发送端口为聚合组中的成员端口。
76.处理模块220,用于确定所述发送端口的繁忙状态,在所述发送端口处于预先设定的繁忙状态时,重新从所述聚合组中确定发送所述待发送报文的目标端口。
77.可选地,处理模块220,具体用于:根据所述待发送报文中的关键信息计算出的hash值中的预设位以及预设转发表为待发送报文分配发送端口;以及根据所述待发送报文中的关键信息计算出的hash值中的其他预设位以及所述预设转发表重新从所述聚合组中确定发送所述待发送报文的目标端口,其中,重新确定目标端口所根据的hash值中的预设位与确定所述发送端口所根据的所述hash值中的预设位不同。
78.可选地,处理模块220,还用于在重新从所述聚合组中确定发送所述待发送报文的目标端口之后,确定所述目标端口的繁忙状态;在所述目标端口处于预先设定的繁忙状态时,再次重新从所述聚合组中确定发送所述待发送报文的目标端口,直至确定的目标端口不处于预先设定的繁忙状态为止。
79.所述使用信息包括带宽占用比,可选地,处理模块220,具体用于:获取所述发送端口的使用信息,并基于所述使用信息和预设规则确定所述发送端口的繁忙状态。
80.若所述发送端口的带宽占用比小于所述第三预设门限值,可选地,获取模块210,还用于获取所述聚合组中其他成员端口的带宽占用比;处理模块220还用于若所述发送端口的带宽占用比为所有带宽占用比中的最大带宽占比,根据最大带宽占比和最小带宽占用比,获得负载均衡量;若所述负载均衡量大于第四预设门限值,重新从所述聚合组中确定发送所述待发送报文的目标端口。
81.所述使用信息包括上一个报文的发送情况,可选地,处理模块220,具体用于:判断所述上一个报文是否发送完毕;
82.若所述上一个报文未发送完毕,则确定所述发送端口处于预先设定的繁忙状态。
83.可选地,获取模块210,还用于获取所述聚合组中每个成员端口的字节发送速率,以及获取所述聚合组中成员端口的平均字节速率;处理模块220,还用于检测每个成员端口的字节发送速率与所述平均字节速率之间的误差是否大于第一预设门限值;若存在成员端口的字节发送速率与所述平均字节速率之间的误差大于所述第一预设门限值的情形,则更新所述预设分配规则。
84.所述预设分配规则包括预设转发表,处理模块220,具体用于将预设速率统计表中速率最大的m个表项对应的hash值分配给所述聚合组中的m个成员端口;从所述预设速率统计表中选择n/m

1个表项对应的hash值分配给所述m个成员端口中的每一个成员端口,以保证每一个成员端口对应的表项的速率之和与所述平均字节速率之间的误差小于第二预设门限值,所述第二预设门限值小于所述第一预设门限值,从而得到更新后的转发表;其中,所述预设速率统计表包括n个表项,每一个表项对应所述预设转发表中的一个hash值,不同表项对应的hash值不同,n为所述聚合组中的成员端口数m的整数倍。
85.本技术实施例所提供的负载均衡装置200,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
86.如图7所示,图7示出了本技术实施例提供的一种网络设备300的结构框图。所述网络设备300包括:收发器310、存储器320、通讯总线330以及处理器340。
87.所述收发器310、所述存储器320、处理器340各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线330或信号线实现电性连接。其中,收发器310用于收发数据。存储器320用于存储计算机程序,如存储有图5中所示的软件功能模块,即负载均衡装置100,或者,如存储有图6中所示的软件功能模块,即负载均衡装置200。其中,负载均衡装置100或负载均衡装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器320中或固化在所述网络设备300的操作系统(operating system,os)中的软件功能模块。所述处理器340,用于执行存储器320中存储的可执行模块。
88.例如,处理器340用于执行负载均衡装置100包括的软件功能模块或计算机程序时,处理器340,用于获取聚合组中每个成员端口的字节发送速率,以及获取所述聚合组中成员端口的平均字节速率;检测每个成员端口的字节发送速率与所述平均字节速率之间的误差是否大于第一预设门限值;若存在成员端口的字节发送速率与所述平均字节速率之间的误差大于所述第一预设门限值的情形,则更新用于指导报文转发的预设分配规则。
89.例如,处理器340用于执行负载均衡装置200包括的软件功能模块或计算机程序时,处理器340,用于获取根据预设分配规则为待发送报文分配的发送端口,其中,所述发送端口为聚合组中的成员端口;确定所述发送端口的繁忙状态;在所述发送端口处于预先设定的繁忙状态时,重新从所述聚合组中确定发送所述待发送报文的目标端口。
90.其中,存储器320可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read

only memory,prom),可擦除只读存储器(erasable programmable read

only memory,eprom),电可擦除只读存储器(electric erasable programmable read

only memory,eeprom)等。
91.处理器340可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(centralprocessing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signalprocessor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器340也可以是任何常规的处理器等。
92.其中,上述的网络设备300,包括但不限于交换机、路由器等。
93.本技术实施例还提供了一种非易失性的计算机可读存储介质(以下简称存储介质),该存储介质上存储有计算机程序,该计算机程序被计算机如上述的网络设备300运行时,执行上述所示的负载均衡方法,即执行上述图1所示的负载均衡方法,或,图4所示的负载均衡方法。
94.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
95.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
96.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
97.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(randomaccess memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
98.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献