CN114006861B - 链路聚合负载均衡方法、装置和存储介质 - Google Patents
链路聚合负载均衡方法、装置和存储介质 Download PDFInfo
- Publication number
- CN114006861B CN114006861B CN202111079480.1A CN202111079480A CN114006861B CN 114006861 B CN114006861 B CN 114006861B CN 202111079480 A CN202111079480 A CN 202111079480A CN 114006861 B CN114006861 B CN 114006861B
- Authority
- CN
- China
- Prior art keywords
- link
- member port
- port
- occupied
- outgoing
- 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
Links
- 230000002776 aggregation Effects 0.000 title claims abstract description 68
- 238000004220 aggregation Methods 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 10
- 239000012528 membrane Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000008713 feedback mechanism Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种链路聚合负载均衡方法、装置和存储介质。所述方法包括:建立链路聚合组,并将N个成员端口依次循环填入到M个出链路中,每个成员端口占用至少1个出链路,其中所述链路聚合组包括N个成员端口以及M个出链路,M>N;获取N个成员端口中各成员端口的出口流量速率;根据各成员端口的出口流量速率调整各成员端口占用的出链路。通过动态调整成员端口占用的出链路数,对于流量速率高的端口,权重低,占用的出口链路数量减少,流量速率低的端口权重大,占用的出口链路数量增多。从而使得报文经过哈希运算后选择流量速率低的端口的机会大大增加,避免了报文从聚合组转发出去时由于负载不均衡而拥塞丢包,提高了网络可靠性。
Description
技术领域
本申请涉及网络通信技术领域,特别是涉及一种链路聚合负载均衡方 法、装置和存储介质。
背景技术
以太网链路聚合组(Ethernet Link Aggregation Group,简称Eth-LAG) 是指将多个以太网物理端口捆绑(Trunk)成一个逻辑端口使用,参见图1。 在数据通信领域中的交换机或路由器通常使用该技术来提供链路冗余和提 高网络带宽。
Eth-LAG是一个逻辑端口,报文从Eth-LAG转发的时候,为了在Eth-LAG 的成员端口做到负载均衡,会根据报文的内容(如五元组,源IP地址,目 的IP地址,协议号,源端口号,目的端口号)作为哈希关键字进行哈希运 算,根据运算结果选择Eth-LAG中的某条出链路转发出去。现有技术中 Eth-LAG的出链路数与成员端口的数量相同,由于在不同的网络环境中, 网络流量具有随机性,通过哈希运算选择Eth-LAG口的出端口时,存在某 些成员端口流量多,某些成员端口流量少,流量在各成员端口间转发不均 衡,某些端口甚至会发生拥塞丢包,造成网络中断。
此外现有技术中,当出现链路聚合组各成员间负载不均衡时,通常采 用修改聚合组链路选择的哈希关键字或是哈希算法的方式。通过修改聚合 组链路选择的哈希关键字或是哈希算法的方式,需要ASIC芯片的支持, 某些ASIC芯片对于哈希关键字和哈希算法的修改支持有限,无法完全满 足用户的需求,并且由于不同的网络环境,网络流量的类型差异很大,这 就时刻需要人工的监控干预,给网络维护带来困难。
发明内容
基于此,有必要针对上述技术问题,提供一种能够自动重新设置出链 路端口的链路聚合负载均衡方法、装置、计算机设备和存储介质。
一方面,提供一种链路聚合负载均衡方法,所述方法包括:
建立链路聚合组,并将N个成员端口依次循环填入到M个出链路中, 每个成员端口占用至少1个出链路,其中所述链路聚合组包括N个成员端 口以及M个出链路,M>N;
获取N个成员端口中各成员端口的出口流量速率;
根据各成员端口的出口流量速率调整各成员端口占用的出链路。
进一步的,根据各成员端口的出口流量速率调整各成员端口占用的出 链路,包括:
根据各成员端口的出口流量速率计算各成员端口占用出链路的权重;
根据所述权重计算各成员端口占用出链路的数量;
根据计算结果调整各成员端口占用的出链路。
进一步的,根据各成员端口的出口流量速率计算各成员端口占用出链 路的权重,之前还包括:
判断各成员端口的出口流量速率是否超过第一阈值;
若各成员端口中存在至少一个出口流量速率超过第一阈值,则判断成 员端口中最大出口流量速率与最小出口流量速率的差值是否超过第二阈 值;
若所述差值超过第二阈值,则计算各成员端口占用出链路的权重。
进一步的,根据各成员端口的出口流量速率计算各成员端口占用出链 路的权重,包括:
WN=所有成员端口的出链路速率之和/第N个端口的出端口流量速率, 其中WN为第N个成员端口占用出链路的权重;
根据所述权重计算各成员端口占用出链路的数量,包括:
CN=M*WN/(W1+W2+…+WN),其中CN为第N个成员端口占用的出链路数量, 且各成员端口占用的出链路数量大于等于1;
根据计算结果调整各成员端口占用的出链路,包括:
根据各成员端口的CN取整后的值调整各成员端口占用的出链路。
进一步的,根据各成员端口的CN取整后的值调整各成员端口占用的出 链路,包括:
对于出链路数量减少的成员端口,保持原有占用的出链路不改变,同 时释放出来当前多占用的出链路;
对于出链路数量增加的成员端口,保持原有占用的出链路不改变,将 出链路数量增加的成员端口按照所增加的数量添加到其它释放出来的出链 路中。
进一步的,M为芯片最大支持出链路的数量。
进一步的,定时查询统计各成员端口的流量,并计算各成员端口的出 口流量速率。
进一步的,获取N个成员端口中各成员端口的出口流量速率,之前还 包括:
接收待转发报文;
根据报文内容进行哈希运算;
根据运算结果选择相应的出链路,并通过该出链路对应的成员端口转 发。
另一方面,提供了一种链路聚合负载均衡装置,所述装置包括:
链路聚合单元,用于建立链路聚合组,并将N个成员端口依次循环填 入到M个出链路中,每个成员端口占用至少1个出链路;其中所述链路聚 合组包括N个成员端口以及M个出链路,M>N;
流量监控单元,用于获取N个成员端口中各成员端口的出口流量速率;
链路更新单元,用于根据各成员端口的出口流量速率调整各成员端口 占用的出链路。
又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序, 所述计算机程序被处理器执行时实现以下步骤:
建立链路聚合组,其中所述链路聚合组包括N个成员端口以及M个出 链路,M>N;
将N个成员端口依次循环填入到M个出链路中,每个成员端口占用至 少1个出链路;
获取N个成员端口中各成员端口的出口流量速率;
根据各成员端口的出口流量速率调整各成员端口占用的出链路。
上述链路聚合负载均衡方法、装置和存储介质,在设置芯片的Eth-LAG 的出链路时,将各成员端口依次循环写入Eth-LAG的出链路。增加各成员 端口的出口流量速率检测机制,并根据出口流量速率来动态调整各成员端 口占用的出链路数量。通过这种方式,使得往Eth-LAG转发的报文经过哈 希运算后选择流量速率低的端口的机会大大增加,高流量速率端口的负载 减少,低流量速率端口的负载增加,有效防止了由于负载不均衡导致端口发生拥塞而丢包。
附图说明
图1为现有技术中Eth-LAG在芯片中的设置示意图;
图2为一个实施例中链路聚合负载均衡方法的流程示意图;
图3为本申请中Eth-LAG在芯片中的设置示意图;
图4为另一个实施例中链路聚合负载均衡方法的流程图;
图5为一个实施例中链路聚合负载均衡装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图 及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实 施例仅仅用以解释本申请,并不用于限定本申请。
现有技术中Eth-LAG的出链路数与成员端口的数量相同,如图1所示, 将链路聚合组成员端口依次标记为member1,member2,…,memberN, Eth-LAG的出链路数M与N相等。由于在不同的网络环境中,网络流量具 有随机性,通过哈希运算选择Eth-LAG口的出端口时,存在某些成员端口 流量多,某些成员端口流量少,流量在各成员端口间转发不均衡,某些端 口甚至会发生拥塞丢包,造成网络中断。
本发明在现有的技术基础上,提供一种以太网链路聚合组的负载均衡 配置方法。该配置方法通过扩展Eth-LAG出链路数目,并自动对各成员的 链路流量实时监控。当发现各成员端口间负载不均衡超过预定阈值时,通 过重设置出链路的端口,达到流量在各成员端口的重均衡状态,避免流量 在聚合组不同成员间负载分担不均造成的网络拥塞丢包。
在一个实施例中,如图2所示,提供了一种以太网链路聚合负载均衡 方法,包括以下步骤:
步骤201,建立链路聚合组,并将N个成员端口依次循环填入到M个 出链路中,每个成员端口占用至少1个出链路,其中所述链路聚合组包括 N个成员端口以及M个出链路,M>N。
具体地,将链路聚合组成员端口依次标记为member1,member2,…, memberN,member1,member2,…,memberN按顺序依次循环填入到聚合组 的出链路M中,如图3所示,初始状态,各端口的权重基本一致,占据基 本相同的链路数量。例如链路聚合组成员端口有2个成员端口,依次标记 为member1,member2,出链路有4条,标记为L1、L2、L3、L4,端口分配表如下表1所示:
出链路 | 成员端口 |
L1 | member1 |
L2 | member2 |
L3 | Member1 |
L4 | member2 |
表1
报文转发到该LAG时,芯片采用报文的内容(MAC或IP等)作hash 运算,hash结果索引到Eth-LAG的某条出链路,查表得到出端口,从该端 口转发出去。
此外,此处的M为芯片最大支持出链路的数量。
步骤202,获取N个成员端口中各成员端口的出口流量速率。
具体地,定时查询统计各成员端口的流量,并计算各成员端口的出口 流量速率。
当然也可以实时查询统计,但会增加系统开销,同时端口调整过于频 繁。
步骤203,根据各成员端口的出口流量速率调整各成员端口占用的出 链路。
具体地,步骤203可以包括:
步骤2031,根据各成员端口的出口流量速率计算各成员端口占用出链 路的权重;
具体地,第N个成员端口占用出链路的权重WN=所有成员端口的出链路 速率之和/第N个端口的出端口流量速率。
接上述示例,端口member1的流量速率是100M/s,端口2的流量速率 是400M/s,则端口member1的权重W1=(100+400)/100=5;端口member2 的权重W2=(100+400)/400=1.25
步骤2032,根据所述权重计算各成员端口占用出链路的数量;
具体地,第N个成员端口占用的出链路数量CN=M*WN/(W1+W2+…+WN),且 各成员端口占用的出链路数量大于等于1;
接上述示例,端口member1占用出链路数量C1=4*W1/(W1+W2)=4*5/ (5+1.25)=3.2;端口member2占用出链路数量C1=4*W3/(W1+W2)=4*1.25/ (5+1.25)=0.8。
步骤2033,根据计算结果调整各成员端口占用的出链路。
具体地,根据各成员端口的CN取整后的值调整各成员端口占用的出链 路。此处的取整为四舍五入。
接上述示例,取整后端口member1占用出链路数量为3,端口member2 占用出链路数量为1,调整后的端口分配表如下表2所示:
出链路 | 成员端口 |
L1 | member1 |
L2 | member2 |
L3 | Member1 |
L4 | Member1 |
表2
又例如,调整前的端口分配表如下表3所示:
出链路 | 成员端口 |
L1 | member1 |
L2 | member2 |
L3 | Member3 |
L4 | Member4 |
L5 | Member1 |
L6 | Member2 |
L7 | Member3 |
L8 | Member4 |
表3
计算后端口member1占用出链路数量为2.3,端口member2占用出链 路数量为1.3,端口member3占用出链路数量为2.3,端口member3占用出 链路数量为2.1;取整后端口member1占用出链路数量为2,端口member2 占用出链路数量为1,端口member3占用出链路数量为2,端口member4 占用出链路数量为2,但由于总的出链路数为8,则根据总的出链路数对最 后一个成员端口的占用出链路进行适应性调整,即将最后一个需要端口 member4占用出链路数量为3。调整后的端口分配表如下表4所示:
出链路 | 成员端口 |
L1 | member1 |
L2 | member2 |
L3 | Member3 |
L4 | Member4 |
L5 | Member1 |
L6 | Member4 |
L7 | Member3 |
L8 | Member4 |
上述以太网链路聚合负载均衡方法中,在设置芯片的Eth-LAG的出链 路时,将各成员端口依次循环写入Eth-LAG的出链路。增加各成员端口的 出口流量速率检测机制,监控Eth-LAG成员端口的出口流量速率,当速率 超过指定阈值,并且最大出口流量速率与最小出口流量速率之差超过指定 阈值时,重新计算各端口的权重及所占用的出链路数量。对于流量速率高 的端口,权重低,占用的出口链路数量减少,流量速率低的端口,权重大, 占用的出口链路数量增多。通过这种方式,使得往Eth-LAG转发的报文经 过哈希运算后选择流量速率低的端口的机会大大增加,高流量速率端口的 负载减少,低流量速率端口的负载增加,有效防止了由于负载不均衡导致 端口发生拥塞而丢包。
在一个实施例中,在步骤2031之前,即根据各成员端口的出口流量速 率计算各成员端口占用出链路的权重之前,还包括:
步骤2041,判断各成员端口的出口流量速率是否超过第一阈值;
步骤2042,若各成员端口中存在至少一个出口流量速率超过第一阈 值,则判断成员端口中最大出口流量速率与最小出口流量速率的差值是否 超过第二阈值;
步骤2043,若所述差值超过第二阈值,则计算各成员端口占用出链路 的权重。
具体地,判断当前各端口的最大出口流量速率是否超过第一指定阈值, 最大出口流量速率与最小出口流量速率之差是否超过第二指定阈值,当两 者都满足时,重新计算各成员端口的权重和所占的出链路数量。此处的第 一指定阈值或第二指定阈值均为预设的常规数值,并且可以根据实际需要 进行调整。例如第一指定阈值为1G/s,第二指定阈值为200M/s。
通过这样的方式,可以有效控制动态调整各成员端口占用的出链路数 量的频率,降低系统开销,同时保证报文转发的稳定性。
在一个实施例中,步骤2033,根据计算结果调整各成员端口占用的出 链路,具体为:对于出链路数量减少的成员端口,保持原有占用的出链路 不改变,同时释放出来当前多占用的出链路;而对于出链路数量增加的成 员端口,保持原有占用的出链路不改变,将出链路数量增加的成员端口按 照所增加的数量添加到其它释放出来的出链路中。
通过这样的方式,可以在动态调整各成员端口占用的出链路数量的情 况下,尽最大可能保证系统的稳定性,以顺利转发报文。
在一个实施例中,在步骤202之前,即获取N个成员端口中各成员端 口的出口流量速率之前,还包括;
接收待转发报文;
根据报文内容进行哈希运算;
根据运算结果选择相应的出链路,并通过该出链路对应的成员端口转 发。
图4示出链路聚合负载均衡方法的完整流程图,如图4所示。
401:设置芯片,创建Eth-LAG聚合组,将聚合组的N个成员端口依次 标识为member1,member2,…,memberN。
402:设置芯片,将Eth-LAG聚合组的出链路数量设置为芯片支持的最 大数量M(M>N),因此依次将N个成员端口填入到Eth-LAG出链路中,如 图3所示。报文转发到该LAG时,芯片采用报文的内容(MAC或IP等)作 hash运算,hash结果索引到Eth-LAG的某条出链路,查表得到出端口,从 该端口转发出去,端口占用的出链路越多,报文哈希到该端口的几率越大。
403:定时查询获取Eth-LAG的每个成员端口的出端口流量速率。
404:判断各成员端口的出端口流量速率是否超过指定阈值,如果是, 则执行405,否则,返回执行403。
405:判断最大出端口的流量速率与最小出端口的流量速率之差是否超 过指定阈值,如果是,则执行406,否则,返回403。
406:根据出端口的流量速率计算每个成员端口的权重,第N个成员端 口的权重WN=(所有成员端口的出链路速率之和/第N个端口的出端口流量 速率)。
407:根据每个成员端口的权重计算每个端口所占用的出链路数量,第 N个成员端口分配的链路数量CN=M*WN/(W1+W2+…+WN),CN最小为1,即各成 员端口占用的聚合组的出链路数量最少为1。
408:更新芯片的Eth-LAG的出口链路,按照每个端口分配的链路数量, 重新更新设置Eth-LAG的出口链路,对于出口链路减少的端口,释放出来 当前多占据的链路,对于出链路数量增加的端口,保持原有的出链路不改 动,将端口添加到其它释放出来的出链路中。
本申请在初始化设置芯片的链路聚合组时,将Eth-LAG的出链路设置 到芯片能支持的最大数量。建立Eth-LAG成员端口的出口流量速率反馈机 制,监控Eth-LAG成员端口的出口流量速率。当速率超过指定阈值,并且 最大出口流量速率与最小出口流量速率之差超过指定阈值时,重新计算各 端口的权重及所占用的出链路数量。对于流量速率高的端口,权重低,占 用的出口链路数量减少,流量速率低的端口权重大,占用的出口链路数量 增多。通过这种方式,使得往Eth-LAG转发的报文经过哈希运算后选择流 量速率低的端口的机会大大增加,高流量速率端口的负载减少,低流量速 率端口的负载增加,避免了报文从聚合组转发出去时由于负载不均衡而拥 塞丢包,提高了网络可靠性。
应该理解的是,虽然图4的流程图中的各个步骤按照箭头的指示依次 显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文 中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以 以其它的顺序执行。而且,图4中的至少一部分步骤可以包括多个子步骤 或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而 是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部 分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种以太网链路聚合负载均衡 装置,包括:链路聚合单元、流量监控单元和链路更新单元,其中:
链路聚合单元,用于建立链路聚合组,并将N个成员端口依次循环填 入到M个出链路中,每个成员端口占用至少1个出链路;其中所述链路聚 合组包括N个成员端口以及M个出链路,M>N;
流量监控单元,用于获取N个成员端口中各成员端口的出口流量速率;
链路更新单元,用于根据各成员端口的出口流量速率调整各成员端口 占用的出链路。
在一个实施例中,链路聚合单元中M为芯片最大支持出链路的数量。
在一个实施例中,流量监控单元还用于:
判断各成员端口的出口流量速率是否超过第一阈值;
若各成员端口中存在至少一个出口流量速率超过第一阈值,则判断成 员端口中最大出口流量速率与最小出口流量速率的差值是否超过第二阈 值;
若所述差值超过第二阈值,则计算各成员端口占用出链路的权重。
在一个实施例中,流量监控单元中:
所述根据各成员端口的出口流量速率计算各成员端口占用出链路的权 重,包括:
WN=所有成员端口的出链路速率之和/第N个端口的出端口流量速率, 其中WN为第N个成员端口占用出链路的权重;
所述根据所述权重计算各成员端口占用出链路的数量,包括:
CN=M*WN/(W1+W2+…+WN),其中CN为第N个成员端口占用的出链路数量, 且各成员端口占用的出链路数量大于等于1;
所述根据计算结果调整各成员端口占用的出链路,包括:
根据各成员端口的CN取整后的值调整各成员端口占用的出链路。
在一个实施例中,流量监控单元还用于:
定时查询统计各成员端口的流量,并计算各成员端口的出口流量速率 在一个实施例中,链路更新单元还用于:
根据各成员端口的出口流量速率计算各成员端口占用出链路的权重;
根据所述权重计算各成员端口占用出链路的数量;
根据计算结果调整各成员端口占用的出链路。
在一个实施例中,链路更新单元还用于:
对于出链路数量减少的成员端口,保持原有占用的出链路不改变,同 时释放出来当前多占用的出链路;
对于出链路数量增加的成员端口,保持原有占用的出链路不改变,将 出链路数量增加的成员端口按照所增加的数量添加到其它释放出来的出链 路中。
在一个实施例中,一种以太网链路聚合负载均衡装置,还包括报文转 发单元,报文转发单元用于:
所述获取N个成员端口中各成员端口的出口流量速率,之前还包括:
接收待转发报文;
根据报文内容进行哈希运算;
根据运算结果选择相应的出链路,并通过该出链路对应的成员端口转 发。
关于太网链路聚合负载均衡装置的具体限定可以参见上文中对于太网 链路聚合负载均衡方法的限定,在此不再赘述。上述太网链路聚合负载均 衡装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述 各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以 软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各 个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务 器。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和 数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算 机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质 存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质 中的操作系统和计算机程序的运行提供环境。该计算机程序被处理器执行 时以实现一种太网链路聚合负载均衡方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算 机程序,计算机程序被处理器执行时实现以下步骤:
建立链路聚合组,并将N个成员端口依次循环填入到M个出链路中, 每个成员端口占用至少1个出链路,其中所述链路聚合组包括N个成员端 口以及M个出链路,M>N;
获取N个成员端口中各成员端口的出口流量速率;
根据各成员端口的出口流量速率调整各成员端口占用的出链路。
在一个实施例中,计算机程序被处理器执行时根据各成员端口的出口 流量速率调整各成员端口占用的出链路时具体实现以下步骤:
根据各成员端口的出口流量速率计算各成员端口占用出链路的权重;
根据所述权重计算各成员端口占用出链路的数量;
根据计算结果调整各成员端口占用的出链路。
在一个实施例中,计算机程序被处理器执行时还可以在根据各成员端 口的出口流量速率计算各成员端口占用出链路的权重之前实现以下步骤:
判断各成员端口的出口流量速率是否超过第一阈值;
若各成员端口中存在至少一个出口流量速率超过第一阈值,则判断成 员端口中最大出口流量速率与最小出口流量速率的差值是否超过第二阈 值;
若所述差值超过第二阈值,则计算各成员端口占用出链路的权重。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
WN=所有成员端口的出链路速率之和/第N个端口的出端口流量速率, 其中WN为第N个成员端口占用出链路的权重;
CN=M*WN/(W1+W2+…+WN),其中CN为第N个成员端口占用的出链路数量, 且各成员端口占用的出链路数量大于等于1;
根据各成员端口的CN取整后的值调整各成员端口占用的出链路。
在一个实施例中,计算机程序被处理器执行时根据各成员端口的CN取 整后的值调整各成员端口占用的出链路实现以下步骤:
对于出链路数量减少的成员端口,保持原有占用的出链路不改变,同 时释放出来当前多占用的出链路;
对于出链路数量增加的成员端口,保持原有占用的出链路不改变,将 出链路数量增加的成员端口按照所增加的数量添加到其它释放出来的出链 路中。
在一个实施例中,计算机程序被处理器执行时实现以下步骤:
定时查询统计各成员端口的流量,并计算各成员端口的出口流量速率。
在一个实施例中,计算机程序被处理器执行获取N个成员端口中各成 员端口的出口流量速率之前实现以下步骤:
接收待转发报文;
根据报文内容进行哈希运算;
根据运算结果选择相应的出链路,并通过该出链路对应的成员端口转 发。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流 程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序 可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时, 可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中 所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易 失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM) 或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存 储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、 动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、 增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存 储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、 以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对 上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这 些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和 详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对 于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做 出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的 保护范围应以所附权利要求为准。
Claims (8)
1.一种链路聚合负载均衡方法,其特征在于,所述方法包括:
建立链路聚合组,并将N个成员端口依次循环填入到M个出链路中,每个成员端口占用至少1个出链路,其中所述链路聚合组包括N个成员端口以及M个出链路,M>N;
获取N个成员端口中各成员端口的出口流量速率;
根据各成员端口的出口流量速率调整各成员端口占用的出链路;
所述根据各成员端口的出口流量速率调整各成员端口占用的出链路包括,根据各成员端口的出口流量速率计算各成员端口占用出链路的权重;根据所述权重计算各成员端口占用出链路的数量;根据计算结果调整各成员端口占用的出链路;
所述根据各成员端口的出口流量速率计算各成员端口占用出链路的权重,包括:
WN=所有成员端口的出链路速率之和/第N个端口的出端口流量速率,其中WN为第N个成员端口占用出链路的权重;
所述根据所述权重计算各成员端口占用出链路的数量,包括:
CN=M*WN/(W1+W2+…+WN),其中CN为第N个成员端口占用的出链路数量,且各成员端口占用的出链路数量大于等于1;
所述根据计算结果调整各成员端口占用的出链路,包括:
根据各成员端口的CN取整后的值调整各成员端口占用的出链路。
2.根据权利要求1所述的链路聚合负载均衡方法,其特征在于,所述根据各成员端口的出口流量速率计算各成员端口占用出链路的权重,之前还包括:
判断各成员端口的出口流量速率是否超过第一阈值;
若各成员端口中存在至少一个出口流量速率超过第一阈值,则判断成员端口中最大出口流量速率与最小出口流量速率的差值是否超过第二阈值;
若所述差值超过第二阈值,则计算各成员端口占用出链路的权重。
3.根据权利要求1所述的链路聚合负载均衡方法,其特征在于,所述根据各成员端口的CN取整后的值调整各成员端口占用的出链路,包括:
对于出链路数量减少的成员端口,保持原有占用的出链路不改变,同时释放出来当前多占用的出链路;
对于出链路数量增加的成员端口,保持原有占用的出链路不改变,将出链路数量增加的成员端口按照所增加的数量添加到其它释放出来的出链路中。
4.根据权利要求1所述的链路聚合负载均衡方法,其特征在于,M为芯片最大支持出链路的数量。
5.根据权利要求1所述的链路聚合负载均衡方法,其特征在于,定时查询统计各成员端口的流量,并计算各成员端口的出口流量速率。
6.根据权利要求1所述的链路聚合负载均衡方法,其特征在于,所述获取N个成员端口中各成员端口的出口流量速率,之前还包括:
接收待转发报文;
根据报文内容进行哈希运算;
根据运算结果选择相应的出链路,并通过该出链路对应的成员端口转发。
7.一种链路聚合负载均衡装置,其特征在于,所述装置包括:
链路聚合单元,用于建立链路聚合组,并将N个成员端口依次循环填入到M个出链路中,每个成员端口占用至少1个出链路;其中所述链路聚合组包括N个成员端口以及M个出链路,M>N;
流量监控单元,用于获取N个成员端口中各成员端口的出口流量速率;
链路更新单元,用于根据各成员端口的出口流量速率调整各成员端口占用的出链路;
所述根据各成员端口的出口流量速率调整各成员端口占用的出链路包括,根据各成员端口的出口流量速率计算各成员端口占用出链路的权重;根据所述权重计算各成员端口占用出链路的数量;根据计算结果调整各成员端口占用的出链路;
所述根据各成员端口的出口流量速率计算各成员端口占用出链路的权重,包括:
WN=所有成员端口的出链路速率之和/第N个端口的出端口流量速率,其中WN为第N个成员端口占用出链路的权重;
所述根据所述权重计算各成员端口占用出链路的数量,包括:
CN=M*WN/(W1+W2+…+WN),其中CN为第N个成员端口占用的出链路数量,且各成员端口占用的出链路数量大于等于1;
所述根据计算结果调整各成员端口占用的出链路,包括:
根据各成员端口的CN取整后的值调整各成员端口占用的出链路。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111079480.1A CN114006861B (zh) | 2021-09-15 | 2021-09-15 | 链路聚合负载均衡方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111079480.1A CN114006861B (zh) | 2021-09-15 | 2021-09-15 | 链路聚合负载均衡方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114006861A CN114006861A (zh) | 2022-02-01 |
CN114006861B true CN114006861B (zh) | 2023-08-04 |
Family
ID=79921364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111079480.1A Active CN114006861B (zh) | 2021-09-15 | 2021-09-15 | 链路聚合负载均衡方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114006861B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114866473B (zh) * | 2022-02-25 | 2024-04-12 | 网络通信与安全紫金山实验室 | 一种转发装置及流量输出接口调节方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594671A (zh) * | 2012-02-08 | 2012-07-18 | 中兴通讯股份有限公司 | 一种对用户进行限速的方法和装置 |
CN103401801A (zh) * | 2013-08-07 | 2013-11-20 | 盛科网络(苏州)有限公司 | 动态负载均衡的实现方法及装置 |
CN113141268A (zh) * | 2020-01-20 | 2021-07-20 | 华为技术有限公司 | 实现手工聚合的链路聚合组冗余备份的方法及装置 |
-
2021
- 2021-09-15 CN CN202111079480.1A patent/CN114006861B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594671A (zh) * | 2012-02-08 | 2012-07-18 | 中兴通讯股份有限公司 | 一种对用户进行限速的方法和装置 |
CN103401801A (zh) * | 2013-08-07 | 2013-11-20 | 盛科网络(苏州)有限公司 | 动态负载均衡的实现方法及装置 |
CN113141268A (zh) * | 2020-01-20 | 2021-07-20 | 华为技术有限公司 | 实现手工聚合的链路聚合组冗余备份的方法及装置 |
Non-Patent Citations (1)
Title |
---|
一种面向主干网的器件级动态功率感知节能机制;张金宏;王兴伟;易波;黄敏;;计算机研究与发展(第07期);3-24 * |
Also Published As
Publication number | Publication date |
---|---|
CN114006861A (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11005769B2 (en) | Congestion avoidance in a network device | |
US20220329525A1 (en) | Load balancing method and device | |
US10735323B2 (en) | Service traffic allocation method and apparatus | |
US8462781B2 (en) | Systems and methods for in-line removal of duplicate network packets | |
US10567345B2 (en) | Verifying firewall filter entries using rules associated with an access control list (ACL) template | |
US8571048B2 (en) | Dynamic memory queue depth algorithm | |
US9306794B2 (en) | Algorithm for long-lived large flow identification | |
US6205149B1 (en) | Quality of service control mechanism and apparatus | |
WO2017025021A1 (zh) | 一种处理流表的方法及装置 | |
US20160149820A1 (en) | Hash Level Load Balancing For Deduplication Of Network Packets | |
CN108965121B (zh) | 传输数据的方法、主机和交换机 | |
CN114006861B (zh) | 链路聚合负载均衡方法、装置和存储介质 | |
CN111726299B (zh) | 流量均衡方法及装置 | |
US20100205382A1 (en) | Dynamic queue management | |
CN111314236A (zh) | 报文转发方法及装置 | |
US11115333B2 (en) | Single stage look up table based match action processor for data packets | |
US9515934B2 (en) | Determining a load distribution for data units at a packet inspection device | |
CN111585892A (zh) | 数据中心流量管控方法和系统 | |
CN111404839A (zh) | 报文处理方法和装置 | |
US8982700B1 (en) | System and method for minimizing hardware resources for given performance using weighted cost multi-path flow distribution | |
US10684960B2 (en) | Managing cache memory in a network element based on costs associated with fetching missing cache entries | |
US11018978B1 (en) | Configurable hash-based lookup in network devices | |
US9461915B1 (en) | System and method for reducing consumption of hardware resources using weighted cost multi-path flow distribution | |
US20230037476A1 (en) | Adapting forwarding database learning rate based on fill level of forwarding table | |
CN113141313A (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 |