基于DPU的高性能网络加速方法及系统技术方案

技术编号:37622472 阅读:6 留言:0更新日期:2023-05-18 12:13
本发明专利技术提供了一种基于DPU的高性能网络加速方法及系统,包括:将DPDK软件栈部署在DPU上,并读取远端存储节点发送的数据包进行网络数据解析,通过DMA接口将处理后的数据发送至主机的用户态应用程序;所述DPDK接收用户态应用程序发送的数据包,并将接收到的数据包进行封装,将封装后的数据包发送至相应IP的存储节点。点。点。

【技术实现步骤摘要】
基于DPU的高性能网络加速方法及系统


[0001]本专利技术涉及互联网
,具体地,涉及基于DPU的高性能网络加速方法及系统。

技术介绍

[0002]当前,随着大数据和云计算的发展,本地计算集群自带的存储硬盘已经无法满足日益增长的存储需求。在分布式存储领域,大量优秀的架构已经被提出,其高性能、高可靠、易拓展的优点被广泛青睐。存算分离的思想已经成为主流的趋势。大规模的数据通过网络对分布式存储集群进行远程读写的场景对网络性能的需求带来了新的挑战。对于传统网卡而言,其主要完成数据链路层和物理层的功能,而更高层的任务,如网络协议的解析则需要交给CPU来完成。所以,在传统网络功能方案中,远程存储集群密集的网络通信会频繁的将网络协议解析下陷到计算节点的主机内核态进行处理,对计算节点的主机CPU占用产生额外开销,如上下文切换对缓存的污染、逐包中断、内核态与用户态的内存拷贝等。这对于本就CPU需求密集的计算节点会直接占用宝贵的计算资源,同时大量的网络中断与计算线程的CPU争用,也导致了计算节点的网络通信性能下降。更重要的是,随着NFV和SDN技术的兴起,Open Flow,Open Vswitch等虚拟交换机的引入,大量的软件栈的引入使得网络数据面的复杂性不断增加,对主机的CPU会造成难以承受的压力。
[0003]目前,为了解决主机网络数据处理性能以及网络功能占用CPU过高的问题,学术界从软件和硬件的角度做出了各样的研究。
[0004]在软件方面,Linux社区在2011年推出了Netmap网络架构,它是一个基于零拷贝思想和高速IO的架构。其零拷贝的思想有DBA实现,将应用程序直接跑在内核态或者将内核中的缓存数据直接暴露给用户态的数据结构。然而Netmap自身需要驱动的支持,并且还是依赖于中断机制,没有从根本上解决CPU上下文切换带来的性能瓶颈。SR

IOV技术在NFV领域应用十分广泛。其将PF(Physical Function)映射为多个VF(Virtual Function),使得每个VF都可以绑定到虚拟机。这样做确实可以让CPU使用率和网络性能带来提升,但是其固定性的架构一方面增加了复杂性,一方面也限制了拓展性。一个支持SR

IOV的网卡只能提供有限的VF接口。2010年,Intel公司推出了DPDK(Data Plane Development Kit)高性能包转发协议。与Netmap类似,其基本思想也是通过绕过内核的方式,通过用户态直接对网络包进行解析。与Netmap不同的是,DPDK采用了轮询机制,不断探测网口有无数据包的收发。这样的机制可以迅速对网络包进行处理,同时避免了中断机制带来的内核切换上下文开销。然而,轮询机制也需要大量的CPU资源,通常的做法是绑定轮询线程到特定的核,让其占满该核的使用率。
[0005]在硬件方面,近几年越来越多的可编程DPU产品的相继出现代表了另一种减少主机处理开销方法。DPU的核心支持远程数据结构访问,并且DPU具有高效的包处理、低DMA写入延迟、含有丰富的硬件接口如异步操作和批量操作等优势。DPU的存在对于主机端的网络处理功能的有效卸载和可编程的智能核心无疑为存算分离架构下,计算节点获取更高性能
的网络通信提供了潜在的研究方向。然而,由于DPU的受限于其处理核心的计算能力以及有限的内存,将主机端的网络功能简单的移植将大幅降低吞吐量。如何对DPU进行卸载以及如果利用DPU自身的硬件特性搭建网络处理栈对提升网络性能成为了目前需要考虑的问题。
[0006]专利文献CN110892380A(申请号:201880046042.5)公开了一种利用数据处理单元(DPU)的新处理体系结构。与以中央处理单元(CPU)为中心的传统计算模型不同,DPU被设计用于以数据为中心的计算模型,在该以数据为中心的计算模型中,数据处理任务以DPU为中心。DPU可以看作是高度可编程的高性能I/O和数据处理集线器,其被设计为聚合和处理去往和来自其他设备的网络和存储I/O。DPU包括用于直接连接到网络的网络接口、用于直接连接到一个或多个应用处理器(例如CPU)或存储设备的一个或多个应用处理器接口,以及多核处理器,其中每个处理核执行运行至完成数据平面操作系统。数据平面操作系统被配置为支持控制平面软件堆栈和用于执行数据处理任务的软件功能的库。

技术实现思路

[0007]针对现有技术中的缺陷,本专利技术的目的是提供一种基于DPU的高性能网络加速方法及系统。
[0008]根据本专利技术提供的一种基于DPU的高性能网络加速方法,包括:
[0009]将DPDK软件栈部署在DPU上,并读取远端存储节点发送的数据包进行网络数据解析,通过DMA接口将处理后的数据发送至主机的用户态应用程序;
[0010]所述DPDK接收用户态应用程序发送的数据包,并将接收到的数据包进行封装,将封装后的数据包发送至相应IP的存储节点。
[0011]优选地,包括:
[0012]DPU配置模块:用于连接主机与DPU,配置DPU的本地IP,使DPU与主机进行IP转发;
[0013]DPU运行模式配置模块:用于切换DPU的separated host mode和embedded mode运行模式;
[0014]DPDK编译模块:用于编译DPDK环境,在Ubuntu20.04系统环境下采用dpdk

22.03进行DPDK文件编译;
[0015]大页配置模块:用于实现大页内存配置,在DPDK编译完后,设置nr_hugepages=1G;
[0016]核绑定模块:用于将不同功能的线程与内核进行绑定,将预设常驻线程固定于某些CPU单独运行;
[0017]Pktgen编译模块:用于编译Pktgen,测试不同流场景,不同的DPU核绑定方式下DPDK优化模块的实时吞吐量。
[0018]优选地,基于OVS对DPDK的数据路径进行硬件卸载,使用DPU的硬件进行流的识别与分类,并对流量进行批处理。
[0019]优选地,基于OVS与DPDK设置虚拟网桥,虚拟网桥一端是物理端口,另一端是representor的逻辑端口。
[0020]优选地,使用所述DPU运行模式配置模块将DPU运行模式切换为embedded mode,确保所有的网络数据包均通过DPU进行收发。
[0021]优选地,使用所述大页配置模块为OVS分配大页内存。
[0022]根据本专利技术提供的一种基于DPU的高性能网络加速系统,包括:
[0023]将DPDK软件栈部署在DPU上,并读取远端存储节点发送的数据包进行网络数据解析,通过DMA接口将处理后的数据发送至主机的用户态应用程序;
[0024]所述DPDK接收用户态应用程序发送的数据包,并将接收到的数据包进行封装,将封装后的数据包发送至相应IP的存储节点。
[0025]优选地,包括:
[0026]DPU配置模块:用于连接主机与DPU,配置DPU的本地IP,使本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于DPU的高性能网络加速方法,其特征在于,包括:将DPDK软件栈部署在DPU上,并读取远端存储节点发送的数据包进行网络数据解析,通过DMA接口将处理后的数据发送至主机的用户态应用程序;所述DPDK接收用户态应用程序发送的数据包,并将接收到的数据包进行封装,将封装后的数据包发送至相应IP的存储节点。2.根据权利要求1所述的基于DPU的高性能网络加速方法,其特征在于,包括:DPU配置模块:用于连接主机与DPU,配置DPU的本地IP,使DPU与主机进行IP转发;DPU运行模式配置模块:用于切换DPU的separated host mode和embedded mode运行模式;DPDK编译模块:用于编译DPDK环境,在Ubuntu20.04系统环境下采用dpdk

22.03进行DPDK文件编译;大页配置模块:用于实现大页内存配置,在DPDK编译完后,设置nr_hugepages=1G;核绑定模块:用于将不同功能的线程与内核进行绑定,将预设常驻线程固定于某些CPU单独运行;Pktgen编译模块:用于编译Pktgen,测试不同流场景,不同的DPU核绑定方式下DPDK优化模块的实时吞吐量。3.根据权利要求1所述的基于DPU的高性能网络加速方法,其特征在于,基于OVS对DPDK的数据路径进行硬件卸载,使用DPU的硬件进行流的识别与分类,并对流量进行批处理。4.根据权利要求1所述的基于DPU的高性能网络加速方法,其特征在于,基于OVS与DPDK设置虚拟网桥,虚拟网桥一端是物理端口,另一端是representor的逻辑端口。5.根据权利要求2所述的基于DPU的高性能网络加速方法,其特征在于,使用所述DPU运行模式配置模块将DPU运行模式切换为embedded mode,确保所有的网络数...

【专利技术属性】
技术研发人员:姚建国夏沛言管海兵
申请(专利权)人:上海交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1