CN102970242B - 一种实现负载均衡的方法 - Google Patents
一种实现负载均衡的方法 Download PDFInfo
- Publication number
- CN102970242B CN102970242B CN201210446192.XA CN201210446192A CN102970242B CN 102970242 B CN102970242 B CN 102970242B CN 201210446192 A CN201210446192 A CN 201210446192A CN 102970242 B CN102970242 B CN 102970242B
- Authority
- CN
- China
- Prior art keywords
- load balancing
- forwarding
- controller
- forwarding rule
- rule
- 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
Abstract
一种实现负载均衡的方法,本方法是借助于设置在网络服务器与网络服务器实时通信的客户端之间的负载均衡装置实现的,负载均衡装置的结构中包括:控制器、驱动模块及受控制器控制的存储有转发规则索引表的转发模块,所述的转发规则索引表的表项中包括七元组、数据包出端口、及流量计量,根据客户端发送的报文信息流的七元组信息从转发规则索引表中找到匹配的转发规则,按照匹配的转发规则将报文流转发到相应的目的网络服务器端口。本发明提供一种高性能负载均衡方法,具备线速转发能力,同时具有很好的扩充性,利用流量计量来判断数据包的流量大小,控制器根据这些信息来将负载大的服务器的流量调节到其它服务器,在单个装置处理能力不足的情况下,能够互连起来并行处理以提供更高的性能。
Description
技术领域
本发明涉及网络通信技术领域,具体地说是一种提升网络服务器集群处理能力的高性能的负载均衡方法。
背景技术
互联网的发展日新月异,随之而来的各种应用更是层出不穷。业务量的发展都超出了过去最乐观的估计,即使按照当时最优配置建设的网络,也很快会应付不了日益庞大的业务量。尤其是各个网络的核心部分,其数据流量和计算强度之大,使得单一设备根本无法承担,比如电子商务网站的服务器,网络数据库的存储系统,视频服务的网络出口等,而如何在完成同样功能的多个网络设备之间实现合理的业务量分配,使之不致于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,就成了一个问题,负载均衡机制也因此应运而生。
目前典型的服务器集群系统都是基于分配器的,整个系统由前端的分配器和后端若干节点构成,由分配器负责对tcp连接在后端服务器之间进行分配来实现负载均衡,后端服务器对所有的请求提供真实的服务。根据前端分配器在OSI协议体系中的工作层次可将集群系统分为两类:一种是分配器工作在第4层,也被称为第四层集群系统,在该系统中,分配器将以IP地址和端口所确定的TCP连接再后端真实服务器节点间分发,从而实现整个系统的负载均衡。这种机制由于其实现方式简单而效率较高,但这种机制对连接的内容不具有可知性,因而难以提供更细密度的负载均衡。另一种分配器工作在第七层,前端分配器根据HTTP请求的内容为依据,选择合适的后端节点来请求真实的服务。对TCP连接进行基于内容的分发,对站点进行基于内容的划分,将后台不同的服务器节点进行优化后专门为不同类型的文件提供服务,同时由于相同类型的请求总是被发送到相同的服务器上,可以很大程度上提高后台服务器的缓存命中率。
目前实现第七层的负载均衡的常用机制是连接代理,工作原理是前端分配器首先与客户端建立连接,根据客户端请求信息选择出合适的后台服务器,再由前端与所选中的服务器建立连接,将客户端的请求通过该连接发送给服务器。服务器对请求的响应直接通过前端与之建立的连接返回到客户端。使用这种机制的所有网络流量都通过前端,同时前端要处理大量的TCP连接,要消耗大量的内存和CPU资源,使得前端成为整个系统的瓶颈。
发明内容
针对上述问题,本发明的目的在于提供一种高性能的负载均衡实现方法,将外部客户端发送来的请求均匀分配到网络服务器上,避免了前端存在的瓶颈,同时避免了低成本软件方式的低性能,以及硬件方式的高性能和高成本。
本发明采用的技术方案是:一种实现负载均衡的方法,本方法是借助于设置在网络服务器与网络服务器实时通信的客户端之间的负载均衡装置实现的,关键在于:负载均衡装置的结构中包括:控制器、驱动模块及受控制器控制的存储有转发规则索引表的转发模块,所述的转发规则索引表的表项中包括七元组、数据包出端口、及流量计量,基于上述装置实现负载均衡的方法步骤中包括:
1)、客户端将需传送的报文信息流发送至负载均衡装置,该负载均衡装置中的驱动模块将报文信息流转至转发模块;
2)、转发模块接收客户端发来的报文信息流,根据该报文信息流的七元组信息生成一个键值,从转发规则索引表中查找与该键值对应的转发规则,如果找到,跳至步骤3);如果未找到,则跳至步骤6);
3)、转发模块查看找到的转发规则所对应的流量计量的值,如果该值已超过极限值,则跳至步骤5);如果没有超过极限值,则跳至步骤4);
4)、按照已找到的转发规则及该规则所对应的数据包出端口,将报文信息流转发至相应的目的网络服务器,跳至步骤7);
5)、转发模块将发送报文进入消息至控制器,控制器根据报文的七元组信息生成新的转发规则,并指定该新的转发规则中的数据包出端口表项与所找到的流量计量已超极限值的转发规则的数据包出端口不同,按照新的转发规则中记录的数据包出端口,将报文信息流转发至相应的目的网络服务器,跳至步骤7);
6)、转发模块将发送报文进入消息至控制器,控制器用报文信息流的七元组信息、及指定的数据包出端口生成新的转发规则加入转发规则索引表中,以新的转发规则作为找到的转发规则,跳至步骤3);
7)、结束。
本发明的有益效果是:传统的交换机路由器是根据目的MAC或目的IP进行报文的线速转发,在商业的负载均衡设备中,最终的报文的转发也是和交换机路由器相同的,即按MAC或IP。本方法中的负载均衡装置将完全由交换机路由器控制的报文转发过程转化由转发模块和控制器来共同完成,从而实现了数据转发和路由控制的分离,控制器可以通过事先规定好的接口操作来控制转发模块中的转发规则索引表,从而达到控制数据转发的目的。
转发模块的转发规则索引表由很多个转发规则组成,进入本装置的数据包也即报文信息流通过查询转发规则索引表来获得数据包出端口,即数据包需发送至目的网络服务器时所用的负载均衡装置的端口号。
转发模块的转发规则索引表中每一条转发规则所对应的各个表项概括起来包括:规则,流量计量。规则用来区分收到的报文,除了支持传统的七元组之外增加了以太网类型、VlanID、及扩展字段,该扩展字段用于通过比较识别报文中的其它字段来识别某些特殊报文,比如BT ,流量计量主要用来判断某些数据的流量大小,控制器根据这些信息来将负载大的服务器的流量调节到其它服务器。
本发明中的负载均衡装置,可以提供线速的处理能力,同时提供高扩展性,在后端服务器数量增加时,可以利用负载均衡装置中的扩展串口或扩展网口将多个该装置可互连,协同工作。
附图说明
图1是本发明的方法流程图。
具体实施方式
一种实现负载均衡的方法,本方法是借助于设置在网络服务器与网络服务器实时通信的客户端之间的负载均衡装置实现的,重要的是:负载均衡装置的结构中包括:控制器、驱动模块及受控制器控制的存储有转发规则索引表的转发模块,所述的转发规则索引表的表项中包括七元组、数据包出端口、及流量计量,基于上述装置实现负载均衡的方法步骤中包括:
1)、客户端将需传送的报文信息流发送至负载均衡装置,该负载均衡装置中的驱动模块将报文信息流转至转发模块;
2)、转发模块接收客户端发来的报文信息流,根据该报文信息流的七元组信息生成一个键值,从转发规则索引表中查找与该键值对应的转发规则,如果找到,跳至步骤3);如果未找到,则跳至步骤6);
3)、转发模块查看找到的转发规则所对应的流量计量的值,如果该值已超过极限值,则跳至步骤5);如果没有超过极限值,则跳至步骤4);
4)、按照已找到的转发规则及该规则所对应的数据包出端口,将报文信息流转发至相应的目的网络服务器,跳至步骤7);
5)、转发模块将发送报文进入消息至控制器,控制器根据报文的七元组信息生成新的转发规则,并指定该新的转发规则中的数据包出端口表项与所找到的流量计量已超极限值的转发规则的数据包出端口不同,按照新的转发规则中记录的数据包出端口,将报文信息流转发至相应的目的网络服务器,跳至步骤7);
6)、转发模块将发送报文进入消息至控制器,控制器用报文信息流的七元组信息、及指定的数据包出端口生成新的转发规则加入转发规则索引表中,以新的转发规则作为找到的转发规则,跳至步骤3);
7)、结束。
所有的数据包,也即报文信息流经由本负载均衡装置都需要根据转发规则索引表进行处理,一旦找到一个匹配的表项,该数据包将按照对应规则进行处理,比如转发到对应的服务器,如果没有相应的匹配项,数据包将转到控制器进行处理,控制器将处理没有有效匹配项的数据包,同时通过增删表项来管理转发规则索引表。
所述的转发规则索引表的表项中还包括以太网类型、VlanID、扩展字段。
所述的负载均衡装置的结构中还包括用于设置各种协议处理规则及处理策略的管理模块,管理模块与控制器双向连接。该管理模块为用户提供了一个与负载均衡装置交互的窗口,用于可以通过设置各种协议处理规则及处理策略来规定本装置进行负载均衡实现过程中的处理方式。
随着链路速度的高速增长以及IP报文的分类规则的复杂化,要处理的字段长,要求的访存时间长,这样查表算法的低效成为了高性能网络设备的瓶颈,因此一些算法利用硬件的并行性来加速处理,除了利用ASIC设计来实现的算法外,目前使用较多的是用TCAM来分类,所有的规则存储在TCAM存储器中,报文到达时会并行的与所有存储单元进行比较并且选择存储地址最小的一个作为最终匹配的规则。故,本技术方案中所述的负载均衡装置的结构中还包括TCAM存储器,转发规则索引表存储于TCAM存储器中。TCAM的优势:1、一个时钟周期就可完成查找关键字的匹配,没有其它类型的存储器可以做到这点,2、可以把查找数据的宽度和深度配置成多种格式,实现并行查找,3、通过级联多个CAM,可大大增加存储的查找表容量,4、自动更新和学习功能。
所述的转发规则索引表是哈希表。用基于软件映像的方法实现TCAM的规则管理时,需要为TCAM中存储的规则维护一张表,实际查找中表的组织结构就决定了查找的效率。本方法采用基于哈希的搜索算法对转发规则索引表进行管理,与其它搜索算法相比,具有查找快速,管理方便实现简单的特点,在将转发速度作为系统性能的重要指标的负载均衡设备中,使用哈希表存放规则可大大提高搜索定位规则的速度,具有实用意义。
为了避免当一个本装置的端口数或处理能力不能满足应用要求的状况发生,所述的负载均衡装置的结构中还包括与控制器连接的扩展串口或网口。在此种应用场景下,本负载均衡装置成为单纯的查表转发装置,抽象的控制器独立出来成为一个物理设备,通过扩展串口或网口控制每个装置协同工作。
Claims (7)
1.一种实现负载均衡的方法,本方法是借助于设置在网络服务器与网络服务器实时通信的客户端之间的负载均衡装置实现的,其特征在于:负载均衡装置的结构中包括:控制器、驱动模块及受控制器控制的存储有转发规则索引表的转发模块,所述的转发规则索引表的表项中包括七元组、数据包出端口、及流量计量,基于上述装置实现负载均衡的方法步骤中包括:
1)、客户端将需传送的报文信息流发送至负载均衡装置,该负载均衡装置中的驱动模块将报文信息流转至转发模块;
2)、转发模块接收客户端发来的报文信息流,根据该报文信息流的七元组信息生成一个键值,从转发规则索引表中查找与该键值对应的转发规则,如果找到,跳至步骤3);如果未找到,则跳至步骤6);
3)、转发模块查看找到的转发规则所对应的流量计量的值,如果该值已超过极限值,则跳至步骤5);如果没有超过极限值,则跳至步骤4);
4)、按照已找到的转发规则及该规则所对应的数据包出端口,将报文信息流转发至相应的目的网络服务器,跳至步骤7);
5)、转发模块将发送报文进入消息至控制器,控制器根据报文的七元组信息生成新的转发规则,并指定该新的转发规则中的数据包出端口表项与所找到的流量计量已超极限值的转发规则的数据包出端口不同,按照新的转发规则中记录的数据包出端口,将报文信息流转发至相应的目的网络服务器,跳至步骤7);
6)、转发模块将发送报文进入消息至控制器,控制器用报文信息流的七元组信息、及指定的数据包出端口生成新的转发规则加入转发规则索引表中,以新的转发规则作为找到的转发规则,跳至步骤3);
7)、结束。
2. 根据权利要求1所述的一种实现负载均衡的方法,其特征在于:所述的转发规则索引表的表项中还包括以太网类型、VlanID、扩展字段。
3. 根据权利要求1所述的一种实现负载均衡的方法,其特征在于:所述的负载均衡装置的结构中还包括用于设置各种协议处理规则及处理策略的管理模块,管理模块与控制器双向连接。
4. 根据权利要求1所述的一种实现负载均衡的方法,其特征在于:所述的负载均衡装置的结构中还包括TCAM存储器,转发规则索引表存储于TCAM存储器中。
5. 根据权利要求1所述的一种实现负载均衡的方法,其特征在于:所述的转发规则索引表是哈希表。
6. 根据权利要求1所述的一种实现负载均衡的方法,其特征在于:所述的负载均衡装置的结构中还包括与控制器连接的扩展串口或扩展网口。
7. 根据权利要求1所述的一种实现负载均衡的方法,其特征在于:所述的负载均衡装置的结构中还包括与控制器连接的存储有转发规则超时值的中间存储器,所述的转发规则索引表中还增设用于指示该转发规则未命中过的时间值,基于上述结构,控制器实时检测该时间值,并将该时间值与中间存储器中的值比较,如果超过超时值,则将该条转发规则删除;如果未超过超时值,则将该转发规则保留。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210446192.XA CN102970242B (zh) | 2012-11-09 | 2012-11-09 | 一种实现负载均衡的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210446192.XA CN102970242B (zh) | 2012-11-09 | 2012-11-09 | 一种实现负载均衡的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102970242A CN102970242A (zh) | 2013-03-13 |
CN102970242B true CN102970242B (zh) | 2015-06-17 |
Family
ID=47800129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210446192.XA Active CN102970242B (zh) | 2012-11-09 | 2012-11-09 | 一种实现负载均衡的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102970242B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104811396A (zh) | 2014-01-23 | 2015-07-29 | 中兴通讯股份有限公司 | 一种负荷均衡的方法及系统 |
WO2015176208A1 (zh) * | 2014-05-19 | 2015-11-26 | 华为技术有限公司 | 数据包转发处理方法及装置 |
EP3148134B1 (en) * | 2014-06-18 | 2020-02-26 | Huawei Technologies Co., Ltd. | Method and device for controlling service data flow |
WO2016058169A1 (zh) | 2014-10-17 | 2016-04-21 | 华为技术有限公司 | 数据流分发方法和设备 |
CN106936796B (zh) * | 2015-12-30 | 2019-11-29 | 华耀(中国)科技有限公司 | 一种基于sni的服务器负载均衡方法及设备 |
CN109981476B (zh) * | 2017-12-27 | 2021-12-21 | 华为技术有限公司 | 一种负载均衡方法和装置 |
CN108400938A (zh) * | 2018-01-25 | 2018-08-14 | 济南浪潮高新科技投资发展有限公司 | 一种数据流处理方法和装置 |
CN109787912A (zh) * | 2019-03-04 | 2019-05-21 | 南京邮电大学 | 一种dpdk环境下基于nat的负载均衡方法 |
CN112311876B (zh) * | 2020-10-30 | 2022-08-16 | 武汉绿色网络信息服务有限责任公司 | 通过负载均衡设备确定当前会话的后端设备的方法与设备 |
CN114615673B (zh) * | 2022-03-10 | 2024-01-26 | 深圳市共进电子股份有限公司 | 自动补盲扩容方法、装置、小基站系统及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567882A (zh) * | 2003-06-12 | 2005-01-19 | 华为技术有限公司 | 一种访问服务器群的方法 |
CN102447636A (zh) * | 2012-01-06 | 2012-05-09 | 中兴通讯股份有限公司 | 一种数据中心通讯设备的负载分担方法和装置 |
CN102447638A (zh) * | 2012-01-12 | 2012-05-09 | 中兴通讯股份有限公司 | 负载均衡的方法及转发设备 |
-
2012
- 2012-11-09 CN CN201210446192.XA patent/CN102970242B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567882A (zh) * | 2003-06-12 | 2005-01-19 | 华为技术有限公司 | 一种访问服务器群的方法 |
CN102447636A (zh) * | 2012-01-06 | 2012-05-09 | 中兴通讯股份有限公司 | 一种数据中心通讯设备的负载分担方法和装置 |
CN102447638A (zh) * | 2012-01-12 | 2012-05-09 | 中兴通讯股份有限公司 | 负载均衡的方法及转发设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102970242A (zh) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102970242B (zh) | 一种实现负载均衡的方法 | |
Zhang et al. | A Scalable Publish/Subscribe Broker Network Using Active Load Balancing | |
US20180097736A1 (en) | Application delivery controller and global server load balancer | |
Xie et al. | TECC: Towards collaborative in-network caching guided by traffic engineering | |
Guo et al. | Collaborative forwarding and caching in content centric networks | |
US7710884B2 (en) | Methods and system for dynamic reallocation of data processing resources for efficient processing of sensor data in a distributed network | |
CN109906595A (zh) | 用于跨不同类型的处理硬件执行密码操作的系统和方法 | |
CN102025643A (zh) | 一种流表查找方法和装置 | |
CN111277629A (zh) | 一种基于高可用性的web高并发系统及方法 | |
WO2010127618A1 (zh) | 一种实现流媒体内容服务的系统和方法 | |
CN111046065B (zh) | 可扩展的高性能分布式查询处理方法及装置 | |
CN105450535B (zh) | 一种海量的cdn节点资源部署系统和方法 | |
CN105162623B (zh) | 一种云处理方法及云服务器 | |
CN104038425A (zh) | 转发以太网报文的方法和装置 | |
Carofiglio et al. | FOCAL: Forwarding and caching with latency awareness in information-centric networking | |
CN110866046A (zh) | 一种可扩展的分布式查询方法及装置 | |
CN103401951B (zh) | 基于对等架构的弹性云分发方法 | |
JP5818263B2 (ja) | データの分散管理システム及び装置及び方法及びプログラム | |
Jin et al. | Content routing and lookup schemes using global bloom filter for content-delivery-as-a-service | |
CN105025042B (zh) | 一种确定数据信息的方法及系统、代理服务器 | |
CN1649326A (zh) | 一种集群服务器的多分配器前端系统构成方法 | |
Li et al. | Application of bloom filter in grid information service | |
Jiang et al. | A replica placement algorithm for hybrid CDN-P2P architecture | |
Cui et al. | Cooperative redundancy elimination in data center networks with wireless cards at routers | |
Hautakorpi et al. | A feasibility study of an arbitrary search in structured peer-to-peer networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |