基于智能网卡eBPF卸载的负载均衡方法及电子设备与流程

文档序号:34267200发布日期:2023-05-26 19:07阅读:106来源:国知局
本发明属于负载均衡的,特别是涉及一种基于智能网卡ebpf卸载的负载均衡方法及电子设备。
背景技术
::1、网络内核协议栈框架对于网络报文的处理有一套固定的流程和框架,特别是中断和多次内存拷贝等使得报文处理的灵活性和效率已经不能满足现代网络的高吞吐、低时延的要求。2、随着科技日益发展,负载均衡技术越来越受到网络安全厂商的重视。利用负载均衡技术可以有效扩展网络设备带宽、提高数据吞吐量、增强网络处理能力。现有技术中,基于网络内核协议栈框架功能如iptables实现的负载均衡是流量进入到协议栈深层进行的报文处理,加上本身的遍历操作,使得负载均衡效率低下。技术实现思路1、鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于智能网卡ebpf卸载的负载均衡方法及电子设备,能够在智能网卡上实现网络数据包的负载均衡,从而不仅能够提高网络数据包的收发效率,还能够使得cpu尽可能专注于业务的处理,实现智能网卡和cpu的协同优化。2、第一方面,本发明提供一种基于智能网卡ebpf卸载的负载均衡方法,所述方法包括以下步骤:获取负载均衡代码,所述负载均衡代码包括ebpf程序和maps数据;将所述负载均衡代码编译为字节码;基于所述字节码生成网卡指令;将所述网卡指令卸载至所述电子设备的智能网卡,以使所述智能网卡基于所述网卡指令完成负载均衡,从而有效提升了网络数据包的收发效率,降低了cpu的负荷。3、于第一方面的一种实现方式中,基于所述字节码生成网卡指令包括以下步骤:4、将所述字节码加载到所述电子设备的内核;5、对所述字节码进行检查,并在检查通过时将所述字节码转换为网卡指令。6、于第一方面的一种实现方式中,对所述字节码进行检查包括进行控制循环检查、最大指令数检查、无效或无法到达的指令检查、越界检查和预运行检查中的一种或多种组合。7、于第一方面的一种实现方式中,所述智能网卡基于所述网卡指令完成负载均衡包括以下步骤:8、基于xdp程序接收网络数据包;9、基于所述网络数据包的ip地址和tcp/udp网络端口计算哈希值;10、将所述哈希值作为ebpf maps的键值;11、将所述网络数据包重定向至所述键值对应的maps数据所包含的目标节点。12、于第一方面的一种实现方式中,基于xdp程序接收网络数据包包括以下步骤:13、对接收到的网络数据包中的网络报文进行报文长度检查;若检查失败,则丢弃所述网络报文;14、对接收到的网络数据包中的网络报文进行ip首部长度检查;若长度小于预设值,则丢弃所述网络报文;15、对于通过所述报文长度检查和所述ip首部长度检查的网络报文,提取并记录所述网络报文的源和目的地址,判断传输层协议;若采用tcp协议,则记录协议号、tcp源端口号和目的端口号;若采用udp协议,则记录协议号、udp源端口号和目的端口号;若采用其他协议,则将所述网络报文返还至所述内核。16、于第一方面的一种实现方式中,还包括对于丢弃的网络报文进行重封装;对于丢弃的网络报文进行重定向包括以下步骤:17、使用ebpf的辅助函数调整底层的包缓冲区,准备所述网络报文的重封装;18、检查重封装后的网络报文的报文头和负载的长度,若检查失败,则丢弃所述网络报文;19、设置重封装的网络报文的负载,并进行ip报文头的封装和字段填充;20、计算所述重封装的网络报文的哈希值;21、将负载均衡的网络报文计数加一,并将计数值记录到maps中。22、于第一方面的一种实现方式中,将所述网络数据包重定向至所述键值对应的maps数据所包含的目标节点包括以下步骤:23、将所述网络数据包输入微引擎;24、所述微引擎获取存储单元中所述网络数据包的哈希值对应的maps数据;25、根据maps数据中的配置信息对所述网络数据包中的网络报文进行重定向处理;26、根据预设的负载均衡算法将所述网络报文经过指定的队列通过pcie重定向到所述目标节点。27、于第一方面的一种实现方式中,所述智能网卡基于所述网卡指令完成负载均衡还包括以下步骤:28、将网络数据包通过pcie模块经过指定的队列发给微引擎模块;29、所述微引擎取存储单元中所述网络数据包的哈希值对应的maps数据;30、根据maps数据中的配置信息对所述网络数据包中的网络报文进行重定向处理;31、根据预设的负载均衡算法将所述网络报文通过以太网口重定向到外部目标节点。32、于第一方面的一种实现方式中,所述智能网卡基于所述网卡指令完成负载均衡还包括以下步骤:33、将网络数据包通过pcie模块经过指定的队列发给微引擎模块;34、所述微引擎取存储单元中所述网络数据包的哈希值对应的maps数据;35、根据maps数据中的配置信息对所述网络数据包中的网络报文进行重定向处理;36、根据预设的负载均衡算法将所述网络报文通过以pcie重定向到内部目标节点。37、第二方面,本发明提供一种电子设备,所述电子设备包括:处理器和存储器。38、所述存储器用于存储计算机程序;39、所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的基于智能网卡ebpf卸载的负载均衡方法。40、如上所述,本发明所述的基于智能网卡ebpf卸载的负载均衡方法及电子设备,具有以下有益效果:41、本发明所述的基于智能网卡ebpf卸载的负载均衡方法及电子设备通过将负载均衡的算法卸载到智能网卡上,从而基于智能网卡来实现网络数据包的负载均衡,不仅能够提高网络数据包的收发效率,还能够使得cpu尽可能专注于业务的处理,实现智能网卡和cpu的协同优化。另外,由于负载均衡是在智能网卡硬件上实现的,相对软件负载均衡来说性能上也有很大地提升。技术特征:1.一种基于智能网卡ebpf卸载的负载均衡方法,应用于电子设备,其特征在于,所述方法包括以下步骤:2.根据权利要求1所述的基于智能网卡ebpf卸载的负载均衡方法,其特征在于:基于所述字节码生成网卡指令包括以下步骤:3.根据权利要求2所述的基于智能网卡ebpf卸载的负载均衡方法,其特征在于:对所述字节码进行检查包括进行控制循环检查、最大指令数检查、无效或无法到达的指令检查、越界检查和预运行检查中的一种或多种组合。4.根据权利要求1所述的基于智能网卡ebpf卸载的负载均衡方法,其特征在于:所述智能网卡基于所述网卡指令完成负载均衡包括以下步骤:5.根据权利要求4所述的基于智能网卡ebpf卸载的负载均衡方法,其特征在于:基于xdp程序接收网络数据包包括以下步骤:6.根据权利要求5所述的基于智能网卡ebpf卸载的负载均衡方法,其特征在于:还包括对于丢弃的网络报文进行重封装;对于丢弃的网络报文进行重定向包括以下步骤:7.根据权利要求1所述的基于智能网卡ebpf卸载的负载均衡方法,其特征在于:将所述网络数据包重定向至所述键值对应的maps数据所包含的目标节点包括以下步骤:8.根据权利要求1所述的基于智能网卡ebpf卸载的负载均衡方法,其特征在于:所述智能网卡基于所述网卡指令完成负载均衡还包括以下步骤:9.根据权利要求1所述的基于智能网卡ebpf卸载的负载均衡方法,其特征在于:所述智能网卡基于所述网卡指令完成负载均衡还包括以下步骤:10.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器。技术总结本发明提供一种基于智能网卡eBPF卸载的负载均衡方法及电子设备,所述方法包括以下步骤:获取负载均衡代码,所述负载均衡代码包括eBPF程序和MAPs数据;将所述负载均衡代码编译为字节码;基于所述字节码生成网卡指令;将所述网卡指令卸载至所述电子设备的智能网卡,以使所述智能网卡基于所述网卡指令完成负载均衡。本发明的基于智能网卡eBPF卸载的负载均衡方法及电子设备能够在智能网卡上实现网络数据包的负载均衡,将网络的收发offload到网卡执行,从而不仅能够提高网络数据包的收发效率,还能够使得CPU尽可能专注于业务的处理,实现智能网卡和CPU的协同优化。技术研发人员:肖俊,张远超,卢笙,陈盈安受保护的技术使用者:芯启源(南京)半导体科技有限公司技术研发日:技术公布日:2024/1/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1