CN115643215A - 负载均衡方法、装置、网络设备及计算机可读存储介质 - Google Patents
负载均衡方法、装置、网络设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115643215A CN115643215A CN202211224809.3A CN202211224809A CN115643215A CN 115643215 A CN115643215 A CN 115643215A CN 202211224809 A CN202211224809 A CN 202211224809A CN 115643215 A CN115643215 A CN 115643215A
- Authority
- CN
- China
- Prior art keywords
- port
- bandwidth
- quality
- pipeline
- target
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提出一种负载均衡方法、装置、网络设备及计算机可读存储介质,属于通信技术领域,应用于网络设备的方法包括:每个流水线定时根据各核心同步的每个流水线和每个成员端口当前的带宽质量,在质量表中更新每个成员端口的端口带宽质量,从而任一流水线接收到出口为聚合口的转发报文时,根据质量表,从出口的所有成员端口中确定出目标端口,并将转发报文发送至目标端口所在的目标流水线,以通过目标流水线将转发报文从目标端口发送出去。从而实现根据成员端口最新的端口带宽质量来确定发送转发报文的目标端口,能够在实现负载均衡的同时,极大地改善报文丢包的问题。
Description
技术领域
本发明涉及通信技术领域,具体而言,涉及一种负载均衡方法、装置、网络设备及计算机可读存储介质。
背景技术
链路聚合,即以太网链路聚合Eth-Trunk,是指将网络设备(例如,交换机)的多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。进行链路聚合的所有网络设备统称为聚合组。
采用链路聚合的网络设备可以同时采用多核多流水线的芯片架构。在多核多流水线的芯片架构下,网络设备的每个流水线相当于一个独立的芯片,由多个流水线组成最终的完整芯片。然而,在网络设备进行报文流量转发时,具有成员端口的流水线的负载量大,从而极易出现流量损失,即丢包。
发明内容
有鉴于此,本发明的目的在于提供一种负载均衡方法、装置、网络设备及计算机可读存储介质,其能够改善目前采用链路聚合的网络设备进行报文转发时,流量极易丢包的问题。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供一种负载均衡方法,应用于网络设备,所述网络设备包括至少两个核心的芯片,每个所述核心包括管辖的多个流水线,每个所述流水线包括管辖的普通端口和/或成员端口,每个所述成员端口与另外的至少一个成员端口构成一个聚合口,所述方法包括:
每个所述核心定时计算所管辖的每个所述流水线当前的第一带宽质量,以及定时计算所管辖的每个所述成员端口当前的第二带宽质量,并将所有所述第一带宽质量和所述第二带宽质量同步至剩余所有核心的各流水线;
每个所述流水线根据所述第一带宽质量和所述第二带宽质量,在质量表中更新每个所述成员端口的端口带宽质量;
任一所述流水线从所管辖的任一端口接收到转发报文,且所述转发报文的出口为聚合口时,根据所述质量表中的所有端口带宽质量,从所述聚合口的所有成员端口中确定出目标端口,并将所述转发报文发送至所述目标端口所在的目标流水线,以通过所述目标流水线将所述转发报文从所述目标端口发送出去。
进一步地,所述根据所述质量表中的所有端口带宽质量,从所述聚合口的所有成员端口中确定出目标端口的步骤,包括:
根据所述质量表中的所有端口带宽质量,将所述聚合口的所有成员端口进行排序,并按照从高到低的顺序对所述聚合口的每个成员端口进行查询;
计算当前查询的成员端口的当前带宽与所述转发报文的需求带宽的总带宽,并判断所述总带宽是否超过所述当前查询的成员端口的限制带宽;
若否,则将所述当前查询的成员端口作为目标端口;
若是,则继续查询下一个成员端口,直至查询出目标端口。
进一步地,所述定时计算所管辖的每个所述流水线当前的第一带宽质量的步骤,包括:
定时采集所管辖的每个所述流水线当前所通过的字节数,并根据所述字节数所处的等级区间,得到每个所述流水线当前的第一带宽质量。
进一步地,所述定时计算所管辖的每个所述成员端口当前的第二带宽质量的步骤,包括:
定时采集所管辖的每个所述成员端口当前所通过的字节数,基于所述字节数所处的等级区间,得到每个所述成员端口当前的第二带宽质量。
进一步地,所述每个所述核心根据所述第一带宽质量和所述第二带宽质量,在质量表中更新每个所述成员端口的端口带宽质量的步骤,包括:
针对每个所述成员端口,计算该成员端口所属的流水线的第一带宽质量与第一预设权重间的第一乘积值,计算该成员端口的所述第二带宽质量与第二预设权重间的第二乘积值,并计算所述第一乘积值和所述第二乘积值的和,得到该成员端口的端口带宽质量。
进一步地,每个所述流水线还包括入口处理引擎模块,所述方法还包括:
当任一流水线从所管辖的任一端口接收到转发报文时,所述流水线的入口处理引擎模块根据所述转发报文的目的地址和预存的转发表,确定出所述转发报文的出口,并查询所述出口是否为一个聚合口。
进一步地,每个所述流水线还包括流量管理模块和出口处理引擎模块,所述方法还包括:
所述目标流水线接收到转发报文时,通过所述流量管理模块对所述转发报文进行流量管理,并通过所述出口处理引擎模块对所述转发报文进行编辑后,将所述转发报文从所述目标端口发送出去。
第二方面,本发明实施例提供一种负载均衡装置,应用于网络设备,所述网络设备包括至少两个核心的芯片,每个所述核心包括管辖的多个流水线,每个所述流水线包括管辖的普通端口和/或成员端口,每个所述成员端口与另外的至少一个成员端口构成一个聚合口,所述负载均衡装置包括监控模块和处理模块;
所述监控模块,用于通过每个所述核心定时计算所管辖的每个所述流水线当前的第一带宽质量,以及定时计算所管辖的每个所述成员端口当前的第二带宽质量,并将所有所述第一带宽质量和所述第二带宽质量同步至剩余所有核心的各流水线;
所述监控模块,还用于通过每个所述流水线根据所述第一带宽质量和所述第二带宽质量,在质量表中更新每个所述成员端口的端口带宽质量;
所述处理模块,用于任一所述流水线从所管辖的任一端口接收到转发报文,且所述转发报文的出口为聚合口时,根据所述质量表中的所有端口带宽质量,从所述聚合口的所有成员端口中确定出目标端口,并将所述转发报文发送至所述目标端口所在的目标流水线,以通过所述目标流水线将所述转发报文从所述目标端口发送出去。
第三方面,本发明实施例提供一种网络设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序,所述处理器可执行所述机器可执行指令以实现如第一方面所述的负载均衡方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的负载均衡方法。
本发明实施例提供的负载均衡方法、装置、网络设备及计算机可读存储介质,网络设备的芯片的每个核心定时计算每个流水线当前的第一带宽支路和每个成员端口当前的第二带宽质量,把计算出的第一带宽质量和第二带宽质量同步给其他核心的各流水线,从而每个流水线更新质量表中每个成员端口的端口带宽质量,从而当任意流水线接收到出口为聚合口的转发报文时,根据每个成员端口最新的端口带宽质量,从该聚合口的所有成员端口中确定出目标端口,并将转发报文发送至目标端口所在的目标流水线,以通过目标端口将该转发报文发送出去,实现根据成员端口最新的端口带宽质量来确定由哪个成员端口来发送转发报文,从而能够极大地改善报文丢包的问题。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的负载均衡系统的方框示意图。
图2示出了本发明实施例提供的网络设备的芯片的结构示意图。
图3示出了本发明实施例提供的负载均衡方法的流程示意图之一。
图4示出了步骤S15的部分子步骤的流程示意图。
图5是出了图4中步骤S153的部分子步骤的流程示意图。
图6示出了本发明实施例提供的负载均衡装置的方框示意图。
图7示出了本发明实施例提供的网络设备的方框示意图。
附图标记:100-负载均衡系统;110-网络设备;120-计算机设备;130-芯片;140-负载均衡装置;150-监控模块;160-处理模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
采用链路聚合的网络设备可以同时采用多核多流水线的芯片架构。在多核多流水线的芯片架构下,网络设备的每个流水线相当于一个独立的芯片,由多个流水线组成最终的完整芯片。每个流水线可以独立担负起报文接收或转发的工作,并且每个流水线上的端口可以与其他流水线上的端口链路聚合构成聚合口。
然而,由于网络设备采用链路聚合,在网络设备进行报文流量转发时,具有成员端口的流水线的负载量大,因此,极易出现某个流水线在带宽不足的情况下接收到需要转发的报文流量,导致流量损失,即丢包。
基于上述考虑,本发明实施例提供一种负载均衡方法,其能够给改善目前采用链路聚合的网络设备进行报文转发时,报文极易丢包的问题。以下,对负载均衡方法进行介绍。
本发明实施例提供的负载均衡方法,可以应用于如图1所示的负载均衡系统100中,该负载均衡系统100包括网络设备110和多个计算机设备120,网络设备110和每个计算机设备120均可以通过网络通信连接。
参照图2,网络设备110包括至少两个核心的芯片130,每个核心包括自身管辖的多个流水线,每个流水线包括自身管辖的普通端口和/或成员借口。对于每个流水线而言,可以同时管辖有普通端口和成员端口,且普通端口和成员端口均可以为多个,也可以仅管辖有普通端口,或仅管辖有成员端口。每个核心还包括与该核心的任一流水线通信的通信通道,通过该通信通道,核心内的流水线可以相互通信。
应当理解的是,每个普通端口均可以配置为成员端口。
流水线的每个成员端口与另外的至少一个成员端口通过链路聚合构成一个聚合口。需要理解的是,聚合口的所有成员端口可以为从属于同一个流水线,也可以从属于不同的流水线。
每个流水线还包括入口处理引擎模块、流量管理模块和出口处理引擎模块。
其中,入口处理引擎(Ingress Process Engine,IPE)模块,用于在接收到转发报文时,根据转发报文的目的地址,查找预存的转发表,确定出口。流量管理(TafficManager,TM)模块,进行报文限速、拥塞管理等流量管理。出口处理引擎(Egress ProcessEngin,EPE)模块,用于对报文进行编辑,例如,增加或删除报文中的vlan字段等。
计算机设备120,用于发送报文至网络设备110,或接收网络设备110发送的报文。
其中,计算机设备120包括但不限于是:移动终端、平板电脑、个人计算机、测量终端、可穿戴便携式设备和服务器等。服务器可以是独立服务器,也可以是服务器集群。
在一种实施方式中,参照图3,本发明实施例提供一种负载均衡方法,包括以下步骤。在本实施方式中,以该负载均衡方法应用于图1中的网络设备110来举例说明。
S11,每个核心定时计算所管辖的每个流水线当前的第一带宽质量,以及定时计算所管辖的每个成员端口当前的第二带宽质量,并将所有第一带宽质量和第二带宽质量同步至剩余所有核心的各流水线。
S13,每个流水线根据第一带宽质量和第二带宽质量,在质量表中更新每个成员端口的端口带宽质量。
S15,任一流水线从所管辖的任一端口接收到转发报文,且转发报文的出口为聚合口时,根据质量表中的所有端口带宽质量,从聚合口的所有成员端口中确定出目标端口,并将转发报文发送至目标端口所在的目标流水线,以通过目标流水线将转发报文从目标端口发送出去。
对于网络设备110的每个核心而言,其所包括的所有流水线及流水线的成员端口都属于管辖对象。对于流水线而言,从属于所在的核心。同理,对于每个成员端口而言,从属于所在的核心。每个流水线都预存有质量表。
通过每个核心将所管辖的所有流水线当前的第一带宽质量,以及所管辖的所有成员端口当前的第二带宽质量同步至网络设备110的其他核心的各流水线,使网络设备110内的每个流水线可以知道整颗芯片130的所有流水线的第一带宽质量以及所有成员端口的第二带宽质量。
在一个示例中,采用周期为2ms,参照图2,网络设备110包括核心0和核心1,每个核心均包括2个流水线(分别为流水线0和流水线1,实际应用时,可以不止两个流水线)。对于核心1的流水线0,其流水线标识可以为C1s1,对于核心1的流水线0的成员端口1,其端口标识可以为C1s1g1。
每间隔2ms,网络设备110的每个核心计算自身的所有流水线当前的第一带宽质量,以及自身管辖的流水线的每个成员端口当前的第二带宽质量,并将每个第一带宽质量带上所对应的流水线标识,将每个第二带宽质量带上所对应的成员端口标识后,同步给剩余的所有核心的各流水线。每个流水线根据各核心发送的第一带宽质量、第二带宽质量,以覆盖的方式更新质量表中该网络设备110的所有成员端口的端口带宽质量。
网络设备110的流水线(核心0的流水线1)从管辖的普通端口或成员端口接收到由网络设备110发送的转发报文,且查询出转发报文的出口为聚合口A时,则根据质量表上聚合口A的所有成员端口的端口带宽质量,从聚合口A的所有成员端口确定出目标端口。若目标端口为核心1的流水线1的g2端口,则将转发报文发送至核心1的流水线1。核心1的流水线1接收到转发报文后,将该转发报文从自身的g2端口发送出去。
与传统的网络设备的报文转发方法相比,本发明提供的负载均衡方法实现根据成员端口最新的端口带宽质量来确定由哪个成员端口来发送转发报文,能够在实现负载均衡的同时,极大地改善报文丢包的问题。
需要说明的是,当网络设备的芯片仅有一个核心时,网络设备依旧可以采用本发明实施例提供的负载均衡方法,此时,核心将所管辖的各流水线的第一带宽质量和各成员端口的第二带宽质量同步给所有流水线,各流水线根据第一带宽质量和第二带宽质量更新自身管辖的每个成员端口的端口带宽质量,并根据各端口带宽质量,从聚合口的所有成员端口中确定出目标端口,将转发报文发送至目标端口所在的目标流水线。
在一种实施方式中,为了精确获取每个流水线当前的第一带宽质量,为核心引入监控所管辖的流水线的负载情况的功能,以根据流水线实际的负载确定第一带宽质量。具体地,每个核心定时采集所管辖的每个流水线所通过的字节数,并根据字节数所处的等级区间,得到每个流水线当前的第一带宽质量。
同理,为了精确获取每个成员端口当前的第二带宽质量,为核心引入监控所管辖的成员端口的负载情况的功能,以根据流水线实际的负载确定第一带宽质量。具体地,每个核心定时采集所管辖的每个成员端口当前所通过的字节数,并根据字节数所处的等级区间,得到每个成员端口当前的第一带宽质量。
在实际应用中,可以有多个等级区间,每个等级区间可以对应一个具体的分值。例如,若有16个等级区间,则16个分值(可以为0-15份),字节数越少,则对应的分值越高。当某个流水线或某个成员端口当前转发的字节数为0,0属于第一等级区间,第一等级区间对应的分值为15,则该流水线当前的第一带宽质量为15分,或该成员端口当前的第二带宽质量为15分。应该理解的是,单位时间内通过的字节数越多,则标志负载越重,质量越差。
在传统的成员端口收发报文流量的方法中,一般要么仅考虑成员端口的带宽质量,要么仅考虑流水线的带宽质量。但是,流水线中往往存在背景流量,即流水线上的普通端口收发的报文流量,例如,流水线1有成员端口S1,流水线2有成员端口S2和普通端口,S1和S2绑定为聚合口,流水线1中的10条报文流量全部转发到S1,流水线2中的N(远大于10)条报文流量全部都转发到普通端口,此时这N条报文流量就是背景流量。
若只考虑成员端口的带宽质量不考虑流水线的带宽质量,成员端口S2的质量更好,但是由于背景流量的存在,实际上流水线2的质量并不优于流水线1。此时,若新增的流量选择流水线2,流水线2就极易因转发能力不足而导致丢包。
若只考虑流水线的带宽质量不考虑成员端口的带宽质量,流水线1只有10条流,相比流水线2的n条流,流水线1的质量看似优于流水线2质量,但是,由于流水线2的成员端口S2上没有流量,因此,S1并不一定优于S2。此时,若新增的流量选择流水线1的成员端口S1,很有可能因为s1的转发能力不足而丢包。
考虑到成员端口自身当前的第二带宽质量和所属的流水线当前的第一带宽质量都会对成员端口最终的带宽质量有影响,在一种实施方式中,为了更准确地衡量每个成员端口的端口带宽质量,在端口带宽质量计算中引入权重。具体地,针对每个成员端口,计算该成员端口所属的流水线的第一带宽质量与第一预设权重间的第一乘积值,计算该成员端口的第二带宽质量与第二预设权重间的第二乘积值,并计算第一乘积值和第二乘积值的和,得到该成员端口的端口带宽质量。
用计算公式表示,则为:Q=q1×a+q2×b,其中,Q表示端口带宽质量,q1表示第一带宽质量,q2表示第二带宽质量,a表示第一预设权重,b表示第二预设权重,且a+b=1。
对于不同的流水线,第一预设权重和第二预设权重可以不同。例如,对于核心1的流水线1,第一预设权重可以为80%,第二预设权重可以为20%,对于核心0的流水线1,第一预设权重可以为70%,第二预设权重可以为30%。
通过上述设置,根据成员端口的第二带宽质量和成员端口所在的流水线的第一带宽质量综合考虑后,获取到端口带宽质量,以使端口带宽质量充分考虑成员端口的质量和流水线的质量,即实现带宽质量考虑平衡,进一步有助于达到均衡且不丢包的效果。
进一步地,网络设备110可以预先存储有聚合口表,聚合口表中可以记录有各聚合口的所有成员端口的信息。由于每个流水线均包括入口处理引擎模块、流量管理模块和出口处理引擎模块,故而,在一种实施方式中,参照图4,步骤S15可以包括以下子步骤。
S151,当任一流水线从所管辖的任一端口接收到转发报文时,流水线的入口处理引擎模块根据转发报文的目的地址和预存的转发表,确定出转发报文的出口。
S152,查询出口是否为一个聚合口。若是,则执行步骤S153。
确定出转发报文的出口之后,通过查询网络设备110预存的聚合口表可以获知该出口是否是聚合口。
S153,根据质量表中的所有端口带宽质量,从聚合口的所有成员端口中确定出目标端口,并将转发报文发送至目标端口所在的目标流水线。
S154,目标流水线接收到转发报文时,通过流量管理模块对转发报文进行流量管理,并通过出口处理引擎模块对转发报文进行编辑后,将转发报文从目标端口发送出去。
其中,流量管理可以包括但不限于是:发送速度配置,例如,可以限速。出口处理引擎模块对转发报文进行编辑的内容可以是:添加或删除报文中的vlan字段。
通过上述步骤S151-S154,将出口为某个聚合口的转发报文从适宜的成员端口发送出去,以能够降低报文丢包的概率。
在一种实时方式中,为了尽可能降低报文丢包的概率,在一种实施方式中,参照图5,上述步骤S153可以包括以下子步骤。
S1531,根据质量表中的所有端口带宽质量,将聚合口的所有成员端口进行排序,并按照从高到低的顺序对聚合口的每个成员端口进行查询。
S1532,计算当前查询的成员端口的当前带宽与所述转发报文的需求带宽的总带宽。
应当理解的是,总带宽=当前查询的成员端口的当前带宽+转发报文的需求带宽。当前带宽指的是成员端口目前的负载占用带宽。
S1533,判断总带宽是否超过当前查询的成员端口的限制带宽。若是,则执行步骤S1534,若否,则执行步骤S1535。
其中,限制带宽指的是成员端口可允许的最大带宽。
S1534,将当前查询的成员端口作为目标端口。
S1535,继续查询下一个成员端口。直至当前带宽与转发报文的总带宽小于或等于自身的限制带宽的成员端口,并将该成员端口作为目标端口。
若出口的所有成员端口的当前带宽与转发报文间的总带宽均大于成员端口的限制带宽,则可以选择总带宽与限制带宽的差值最小的成员端口作为目标端口,也可以重新查询,直至得到总带宽小于或等于限制带宽的成员端口作为目标端口。
通过上述步骤S1531-S1535,能够为转发报文找寻出最优的目标端口,以尽可能降低转发报文丢包的概率。
本发明实施例提供的负载均衡方法,定时评估网络设备的每个成员端口的质量,即采用动态质量评估机制,无需人工干预,增加了智能化程度,减少配置复杂度。同时,根据成员端口的端口带宽质量,选择最优的成员端口作为转发报文的目标端口,以将转发报文从目标端口发送出去,实现多级负载均衡,考虑流水线级别和端口级别,有效降低了链路聚合场景下拥塞的可能性,能够有效防止报文的丢失或丢包。
基于上述负载均衡方法的构思,在一种实施方式中,参照图6,本发明实施例还提供了一种负载均衡装置140,该负载均衡装置140可以应用于如图1所示的网路设备中,该负载均衡装置140可以包括监控模块150和处理模块160。
监控模块150,用于通过每个核心定时计算所管辖的每个流水线当前的第一带宽质量,以及定时计算所管辖的每个成员端口当前的第二带宽质量,并将所有第一带宽质量和所述第二带宽质量同步至剩余所有核心的各流水线。
监控模块150,还用于通过每个流水线根据第一带宽质量和第二带宽质量,在质量表中更新每个成员端口的端口带宽质量。
处理模块160,用于任一流水线从所管辖的任一端口接收到转发报文,且转发报文的出口为聚合口时,根据质量表中的所有端口带宽质量,从聚合口的所有成员端口中确定出目标端口,并将转发报文发送至目标端口所在的目标流水线,以通过目标流水线将所述转发报文从目标端口发送出去。
在上述负载均衡装置140中,通过监控模块150、处理模块160与网络设备110的核心、各流水线的协同作用,实现根据成员端口最新的端口带宽质量来确定由哪个成员端口来发送转发报文,从而能够极大地改善报文丢包的问题。
关于负载均衡装置140的具体限定可以参见上文中对于负载均衡方法的限定,在此不再赘述。上述负载均衡装置140中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于网络设备110中的处理器中,也可以以软件形式存储于网络设备110的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一种实施方式中,提供了一种网络设备110,其内部结构图可以如图7所示。该网络设备110包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该网络设备110的处理器用于提供计算和控制能力。该网络设备110的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该网络设备110的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、近场通信(NFC)或其他技术实现。该计算机程序被处理器执行时实现如上述实施方式提供的负载均衡方法。
图7中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的网络设备110的限定,具体的网络设备110可以包括比图7中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一种实施方式中,本发明提供的负载均衡装置140可以实现为一种计算机程序的形式,计算机程序可在如图7所示的网络设备110上运行。网络设备110的存储器中可存储组成该违负载均衡装置140的各个程序模块,比如,图6所示的监控模块150和处理模块160。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的负载均衡方法中的步骤。
例如,图7所示的网络设备110可以通过如图6所示的负载均衡装置140中的监控模块150执行步骤S11和S13。网络设备110可以通过处理模块160执行步骤S15。
在一种实施方式中,提供了一种控制设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:每个核心定时计算所管辖的每个流水线当前的第一带宽质量,以及定时计算所管辖的每个成员端口当前的第二带宽质量,并将所有第一带宽质量和第二带宽质量同步至剩余所有核心的各流水线;每个流水线根据第一带宽质量和第二带宽质量,在质量表中更新每个成员端口的端口带宽质量;任一流水线从所管辖的任一断开有接收到转发报文,且转发报文的出口为聚合口时,根据质量表中的所有端口带宽质量,从聚合口的所有成员端口中确定出目标端口,并将转发报文发送至目标端口所在的目标流水线,以通过目标流水线将转发报文从目标端口发送出去。
在一种实施方式中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:每个核心定时计算所管辖的每个流水线当前的第一带宽质量,以及定时计算所管辖的每个成员端口当前的第二带宽质量,并将所有第一带宽质量和第二带宽质量同步至剩余所有核心的各流水线;每个流水线根据第一带宽质量和第二带宽质量,在质量表中更新每个成员端口的端口带宽质量;任一流水线从所管辖的任一端口接收到转发报文,且转发报文的出口为聚合口时,根据质量表中的所有端口带宽质量,从聚合口的所有成员端口中确定出目标端口,并将转发报文发送至目标端口所在的目标流水线,以通过目标流水线将转发报文从目标端口发送出去。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种负载均衡方法,其特征在于,应用于网络设备,所述网络设备包括至少两个核心的芯片,每个所述核心包括管辖的多个流水线,每个所述流水线包括管辖的普通端口和/或成员端口,每个所述成员端口与另外的至少一个成员端口构成一个聚合口,所述方法包括:
每个所述核心定时计算所管辖的每个所述流水线当前的第一带宽质量,以及定时计算所管辖的每个所述成员端口当前的第二带宽质量,并将所有所述第一带宽质量和所述第二带宽质量同步至剩余所有核心的各流水线;
每个所述流水线根据所述第一带宽质量和所述第二带宽质量,在质量表中更新每个所述成员端口的端口带宽质量;
任一所述流水线从所管辖的任一端口接收到转发报文,且所述转发报文的出口为聚合口时,根据所述质量表中的所有端口带宽质量,从所述聚合口的所有成员端口中确定出目标端口,并将所述转发报文发送至所述目标端口所在的目标流水线,以通过所述目标流水线将所述转发报文从所述目标端口发送出去。
2.根据权利要求1所述的负载均衡方法,其特征在于,所述根据所述质量表中的所有端口带宽质量,从所述聚合口的所有成员端口中确定出目标端口的步骤,包括:
根据所述质量表中的所有端口带宽质量,将所述聚合口的所有成员端口进行排序,并按照从高到低的顺序对所述聚合口的每个成员端口进行查询;
计算当前查询的成员端口的当前带宽与所述转发报文的需求带宽的总带宽,并判断所述总带宽是否超过所述当前查询的成员端口的限制带宽;
若否,则将所述当前查询的成员端口作为目标端口;
若是,则继续查询下一个成员端口,直至查询出目标端口。
3.根据权利要求1或2所述的负载均衡方法,其特征在于,所述定时计算所管辖的每个所述流水线当前的第一带宽质量的步骤,包括:
定时采集所管辖的每个所述流水线当前所通过的字节数,并根据所述字节数所处的等级区间,得到每个所述流水线当前的第一带宽质量。
4.根据权利要求1或2所述的负载均衡方法,其特征在于,所述定时计算所管辖的每个所述成员端口当前的第二带宽质量的步骤,包括:
定时采集所管辖的每个所述成员端口当前所通过的字节数,基于所述字节数所处的等级区间,得到每个所述成员端口当前的第二带宽质量。
5.根据权利要求1或2所述的负载均衡方法,其特征在于,所述每个所述流水线根据所述第一带宽质量和所述第二带宽质量,在质量表中更新每个所述成员端口的端口带宽质量的步骤,包括:
针对每个所述成员端口,计算该成员端口所属的流水线的第一带宽质量与第一预设权重间的第一乘积值,计算该成员端口的所述第二带宽质量与第二预设权重间的第二乘积值,并计算所述第一乘积值和所述第二乘积值的和,得到该成员端口的端口带宽质量。
6.根据权利要求2所述的负载均衡方法,其特征在于,每个所述流水线还包括入口处理引擎模块,所述方法还包括:
当任一流水线从所管辖的任一端口接收到转发报文时,所述流水线的入口处理引擎模块根据所述转发报文的目的地址和预存的转发表,确定出所述转发报文的出口,并查询所述出口是否为一个聚合口。
7.根据权利要求6所述的负载均衡方法,其特征在于,每个所述流水线还包括流量管理模块和出口处理引擎模块,所述方法还包括:
所述目标流水线接收到转发报文时,通过所述流量管理模块对所述转发报文进行流量管理,并通过所述出口处理引擎模块对所述转发报文进行编辑后,将所述转发报文从所述目标端口发送出去。
8.一种负载均衡装置,其特征在于,应用于网络设备,所述网络设备包括至少两个核心的芯片,每个所述核心包括管辖的多个流水线,每个所述流水线包括管辖的普通端口和/或成员端口,每个所述成员端口与另外的至少一个成员端口构成一个聚合口,所述负载均衡装置包括监控模块和处理模块;
所述监控模块,用于通过每个所述核心定时计算所管辖的每个所述流水线当前的第一带宽质量,以及定时计算所管辖的每个所述成员端口当前的第二带宽质量,并将所有所述第一带宽质量和所述第二带宽质量同步至剩余所有核心的各流水线;
所述监控模块,还用于通过每个所述流水线根据所述第一带宽质量和所述第二带宽质量,在质量表中更新每个所述成员端口的端口带宽质量;
所述处理模块,用于任一所述流水线从所管辖的任一端口接收到转发报文,且所述转发报文的出口为聚合口时,根据所述质量表中的所有端口带宽质量,从所述聚合口的所有成员端口中确定出目标端口,并将所述转发报文发送至所述目标端口所在的目标流水线,以通过所述目标流水线将所述转发报文从所述目标端口发送出去。
9.一种网络设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序,所述处理器可执行所述机器可执行指令以实现如权利要求1至7中任一项所述的负载均衡方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的负载均衡方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211224809.3A CN115643215A (zh) | 2022-10-09 | 2022-10-09 | 负载均衡方法、装置、网络设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211224809.3A CN115643215A (zh) | 2022-10-09 | 2022-10-09 | 负载均衡方法、装置、网络设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115643215A true CN115643215A (zh) | 2023-01-24 |
Family
ID=84941314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211224809.3A Pending CN115643215A (zh) | 2022-10-09 | 2022-10-09 | 负载均衡方法、装置、网络设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115643215A (zh) |
-
2022
- 2022-10-09 CN CN202211224809.3A patent/CN115643215A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109787921B (zh) | Cdn带宽调度方法、采集及调度服务器和存储介质 | |
CN107005485B (zh) | 一种确定路由的方法、对应装置及系统 | |
US10742722B2 (en) | Server load balancing | |
CN109617810B (zh) | 数据传输方法及装置 | |
US9049131B2 (en) | Network system and load balancing method | |
CN107404441B (zh) | 一种切片网络中数据流分流的方法及设备 | |
CN104756451A (zh) | 用于lag接口上网络流的动态负载平衡的方法 | |
CN103843297B (zh) | 用于为实时流服务提供和选择候选节点的方法、装置和系统 | |
Wang et al. | Implementation of multipath network virtualization with SDN and NFV | |
CN103297347B (zh) | 一种负载均衡处理方法及装置 | |
EP3337093B1 (en) | Optimizing information related to a route and/or a next hop for multicase traffic | |
CN108476175B (zh) | 使用对偶变量的传送sdn流量工程方法与系统 | |
US20160065449A1 (en) | Bandwidth-Weighted Equal Cost Multi-Path Routing | |
US20180270159A1 (en) | Flow control | |
CN105338090A (zh) | 一种基于WebSocket的断点续传方法及装置 | |
CN111526606B (zh) | 用于数据传输的方法及装置、智能家居设备、存储介质 | |
EP2890063B1 (en) | Method and apparatus for determining energy-efficient routing | |
WO2022166584A1 (zh) | 点对点网络调度方法和系统 | |
CN109088822B (zh) | 数据流量转发方法、装置、系统、计算机设备及存储介质 | |
CN110855741B (zh) | 业务的自适应接入方法和装置、存储介质、电子装置 | |
CN108738078A (zh) | 一种数据传输方法装置、设备及可读存储介质 | |
CN107819697B (zh) | 数据传输方法、交换机及数据中心 | |
CN111740922B (zh) | 数据传输方法、装置、电子设备及介质 | |
CN115643215A (zh) | 负载均衡方法、装置、网络设备及计算机可读存储介质 | |
CN105656814A (zh) | 一种sdn网络转发系统与方法 |
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 |