CN115550366B - 一种负载均衡方法、设备、存储介质 - Google Patents
一种负载均衡方法、设备、存储介质 Download PDFInfo
- Publication number
- CN115550366B CN115550366B CN202211048617.1A CN202211048617A CN115550366B CN 115550366 B CN115550366 B CN 115550366B CN 202211048617 A CN202211048617 A CN 202211048617A CN 115550366 B CN115550366 B CN 115550366B
- Authority
- CN
- China
- Prior art keywords
- message
- load balancing
- xdp
- balancing method
- hit
- 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
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- 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/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种负载均衡方法,包括:用户层通过接口将eBPF程序下载到XDP中,且通过linuxmap方式创建XDP和SLB之间共享的配置和统计信息、数据;配置驱动程序,在驱动程序中需配置挂载XDPhook,用于进出eBPF程序;当报文被网卡接收后,通过触发软中断调用驱动程序处理此报文:提取报文中的五元组信息,匹配配置信息,如果被命中则根据报文的源IP和源Port利用HASH算法计算出一个后端实服务,且将报文的IP或MAC替换为实服务的IP或MAC,此流量将被发送到HASH命中的服务器中;如果没有命中,流量将被正常转发。本发明的一种负载均衡方法将访问集群的流量在网卡驱动层转发到后端实服务,相较于传统的netfilter方案具有更好的转发性能。
Description
技术领域
本发明属于云服务技术领域,尤其是涉及一种负载均衡方法。
背景技术
流量负载均衡业务在云服务中广泛使用。随着集群业务容量不断扩大,市场迫切需要高性能且灵活部署的流量负载均衡器。目前负载均衡器主要有三种实现方式:
1基于硬件的专用设备;
2基于dpdk的NFV设备;
3使用内核netfilter实现的SLB业务。
目前的负载均衡器具有以下缺陷:专用设备组网不够灵活,不支持负载均衡业务在线创建删除扩容,优势是性能好;基于dpdk的负载均衡对云原生生态不够友好,而性能较好;基于netfilter的负载均衡业务可灵活部署且支持云原生,性能是其不足。
发明内容
有鉴于此,为克服现有技术的不足,本发明提出一种负载均衡方法。
为达到上述目的,本发明的技术方案是这样实现的:
一方面,本发明提供了一种负载均衡方法,包括:
用户层通过接口将eBPF程序下载到XDP中,且通过linuxmap方式创建XDP和SLB之间共享的配置和统计信息、数据;
配置驱动程序,在驱动程序中需配置挂载XDPhook,用于进出eBPF程序;当报文被网卡接收后,通过触发软中断调用驱动程序处理此报文:
提取报文中的五元组信息,匹配配置信息,如果被命中则根据报文的源IP和源Port利用HASH算法计算出一个后端实服务,且将报文的IP或MAC替换为实服务的IP或MAC,此流量将被发送到HASH命中的服务器中;如果没有命中,流量将被正常转发。
进一步的,用户层包括用户层APP和用户层SLB。
进一步的,通过bpf_prog_load_xattr接口将eBPF程序下载到XDP中。
进一步的,数据包括SLB业务的VIP地址、业务port、流量类型、以及后端实服务的MAC和IP地址;
流量类型包括TCP、UDP、QUIC流量。
进一步的,统计信息包括被XDP转发或丢弃的报文的个数和字节数。
第二方面,本发明提供了一种电子设备/服务器,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器在执行所述指令时,实现上述第一方面所述的负载均衡方法。
第三方面,本发明提供了一种可读取存储介质,用于存储计算机程序,所述计算机程序在被处理器执行时,实现上述第一方面所述的负载均衡方法。
相对于现有技术,本发明所述的负载均衡方法具有以下优势:
本发明所述的负载均衡方法,将访问集群的流量在网卡驱动层转发到后端实服务,相较于传统的netfilter方案具有更好的转发性能,且同时保持灵活部署和支持云原生生态的优点,且可以支持智能网卡的硬件卸载,而从进一步提升性能。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明所述的负载均衡方法的原理框架图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合实施例来详细说明本发明。
本实施例提供了一种负载均衡方法,性能强于netfilter实现的负载均衡,且可以卸载到智能网卡上,方法具体如下:
如图1所示,用户层APP/SLB通过bpf_prog_load_xattr接口将ebpf程序下载到XDP中,且通过linuxmap方式创建XDP和SLB之间共享的配置和统计信息、数据。数据主要包括SLB业务的VIP地址,业务port,流量类型(主要包括TCP、UDP、QUIC流量),以及后端实服务(指后端服务器部署的业务)的MAC和IP地址等信息。统计信息主要包括被XDP转发,丢弃的报文的个数和字节数。
当报文被网卡接收后,通过触发软中断调用驱动程序处理此报文,驱动程序中挂载XDPhook,进出eBPF流程:提取报文中的五元组信息,匹配配置信息,如果被命中则根据报文的源IP和源Port利用HASH算法计算出一个后端实服务(HASH算法让流量尽可能的均衡到后端实服务中)且将报文的IP或者MAC替换为实服务的IP或MAC,返回XDP_TX(从收到包的网卡上再将这个包发出去(即hairpin模式)),此流量将被发送到HASH命中的服务器中;如果没有命中则直接返回XDP_PASS(将这个包“交给/还给”内核,继续走正常的内核处理流程),流量将被正常转发。从而实现负载均衡功能。
基于XDP的负载均衡,在驱动层将报文转发,不需要进入TCP/IP协议栈,从而提高性能。此外,智能网卡(高端型号)支持将eBPF码流下载到网卡中运行,进一步提高负载均衡转发能力。
本实施例提供了一种电子设备/服务器,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器在执行所述指令时,实现上述实施例所述的负载均衡方法。
本实施例提供了一种可读取存储介质,用于存储计算机程序,所述计算机程序在被处理器执行时,实现上述实施例所述的负载均衡方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和系统,可以通过其它的方式实现。例如,以上所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。上述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种负载均衡方法,其特征在于,包括:
用户层通过接口将eBPF程序下载到XDP中,且通过linuxmap方式创建XDP和SLB之间共享的配置和统计信息;
配置驱动程序,在驱动程序中需配置挂载XDPhook,用于进出eBPF程序;当报文被网卡接收后,通过触发软中断调用驱动程序处理此报文:
提取报文中的五元组信息,匹配配置信息,如果被命中则根据报文的源IP和源Port利用HASH算法计算出一个后端实服务,且将报文的IP或MAC替换为实服务的IP或MAC,此流量将被发送到HASH命中的服务器中;如果没有命中,流量将被正常转发;
配置信息包括SLB业务的VIP地址、业务port、流量类型、以及后端实服务的MAC和IP地址;
流量类型包括TCP、UDP、QUIC流量;
统计信息包括被XDP转发或丢弃的报文的个数和字节数。
2.根据权利要求1所述的负载均衡方法,其特征在于:用户层包括用户层APP和用户层SLB。
3.根据权利要求1所述的负载均衡方法,其特征在于:通过bpf_prog_load_xattr接口将eBPF程序下载到XDP中。
4.一种电子设备/服务器,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,其特征在于,所述处理器在执行所述指令时,实现权利要求1-3任一所述的负载均衡方法。
5.一种可读取存储介质,用于存储计算机程序,其特征在于,所述计算机程序在被处理器执行时,实现权利要求1-3任一所述的负载均衡方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211048617.1A CN115550366B (zh) | 2022-08-29 | 2022-08-29 | 一种负载均衡方法、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211048617.1A CN115550366B (zh) | 2022-08-29 | 2022-08-29 | 一种负载均衡方法、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115550366A CN115550366A (zh) | 2022-12-30 |
CN115550366B true CN115550366B (zh) | 2024-05-24 |
Family
ID=84724751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211048617.1A Active CN115550366B (zh) | 2022-08-29 | 2022-08-29 | 一种负载均衡方法、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115550366B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111800401A (zh) * | 2020-06-28 | 2020-10-20 | 腾讯科技(深圳)有限公司 | 业务报文的防护方法、装置、系统和计算机设备 |
CN112968955A (zh) * | 2021-02-18 | 2021-06-15 | 北京网聚云联科技有限公司 | 一种基于eBPF技术的CDN边缘节点跨机调度方法及其系统 |
CN113746930A (zh) * | 2021-09-09 | 2021-12-03 | 上海格尔安全科技有限公司 | 网络负载均衡方法、装置、计算机设备和存储介质 |
CN114039789A (zh) * | 2021-11-17 | 2022-02-11 | 北京天融信网络安全技术有限公司 | 流量防护方法及电子设备、存储介质 |
-
2022
- 2022-08-29 CN CN202211048617.1A patent/CN115550366B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111800401A (zh) * | 2020-06-28 | 2020-10-20 | 腾讯科技(深圳)有限公司 | 业务报文的防护方法、装置、系统和计算机设备 |
CN112968955A (zh) * | 2021-02-18 | 2021-06-15 | 北京网聚云联科技有限公司 | 一种基于eBPF技术的CDN边缘节点跨机调度方法及其系统 |
CN113746930A (zh) * | 2021-09-09 | 2021-12-03 | 上海格尔安全科技有限公司 | 网络负载均衡方法、装置、计算机设备和存储介质 |
CN114039789A (zh) * | 2021-11-17 | 2022-02-11 | 北京天融信网络安全技术有限公司 | 流量防护方法及电子设备、存储介质 |
Non-Patent Citations (2)
Title |
---|
Bringing the Power of eBPF to Open vSwitch;Tu W, Stringer J, Sun Y, et al.;《C]//Linux Plum bers Conference》;20181231;第1-5页 * |
基于eBPF的网络安全应用研究;于波;《CNKI中国优秀硕士学位论文全文数据库 信息科技辑》;20201215;第1-68页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115550366A (zh) | 2022-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8099504B2 (en) | Preserving sessions in a wireless network | |
US7554992B2 (en) | Mobile device communications system and method | |
US10417014B2 (en) | System service reloading method and apparatus | |
US20090158082A1 (en) | Failover in a host concurrently supporting multiple virtual ip addresses across multiple adapters | |
US20080046610A1 (en) | Priority and bandwidth specification at mount time of NAS device volume | |
MXPA03003787A (es) | Metodo para sincronizar y cargar una conexion de pila de red descargada con una pila de la red. | |
US20110044205A1 (en) | Automatic network mapping from a host control device | |
US20080267146A1 (en) | System and method for sending and receiving packets | |
US11800587B2 (en) | Method for establishing subflow of multipath connection, apparatus, and system | |
US9356989B2 (en) | Learning values of transmission control protocol (TCP) options | |
US11323310B2 (en) | Method, device, and system for providing hot reservation for in-line deployed network functions with multiple network interfaces | |
US9603191B2 (en) | Apparatus and method for providing access to internet resources in a wireless communications network | |
JP4921142B2 (ja) | 通信装置 | |
US20150295842A1 (en) | Queue Scheduling Method, Apparatus And System | |
CN115550366B (zh) | 一种负载均衡方法、设备、存储介质 | |
JP5152201B2 (ja) | パケット処理装置およびパケット処理プログラム | |
CN112165537A (zh) | 一种用于ping回复的虚拟IP的方法 | |
CN111245728A (zh) | 具多网卡计算装置的数据报文转发方法及系统 | |
CN114449051B (zh) | 一种数据包的传输方法以及通信设备 | |
CN113497718B (zh) | 报文处理设备及报文处理方法 | |
CN114942823A (zh) | 一种容器中服务下线的方法、装置、电子装置和存储介质 | |
US10833981B1 (en) | Method, device, and system for providing hot reservation for in-line deployed network functions with multiple network interfaces | |
CN110337137B (zh) | 数据包过滤方法、装置及系统 | |
CN109510882B (zh) | 游戏客户端之间的通信方法、装置、存储介质和电子装置 | |
CN113329048A (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 |