2021年9月25日,由“科创中国”未来网络专业科技服务团指导,江苏省未来网络创新研究院、网络通信与安全紫金山实验室联合主办、SDNLAB社区承办的2021中国智能网卡研讨会中,多家机构谈到了智能网卡的网络加速实现,我们对此进行整理,以飨读者。
网络加速的起源
传统数据中心基于冯诺依曼架构,所有的数据都需要送到CPU进行处理。随着数据中心的高速发展,摩尔定律逐渐失效,CPU的增长速度无法满足数据的爆发式增长,CPU的处理速率已经不能满足数据处理的要求。
图1:通用服务器处理网络负载的消耗情况
以24核计算型服务器为例,网络功能占用6个core,虚拟化功能占用1个core,可用于VM的core数量为17个,可用CPU资源比例为70%。当网卡升级到100G时,CPU资源基本都被占用,算力资源基本不可用。
计算架构从以CPU为中心的Onload模式,向以数据为中心的Offload模式转变。以数据为中心的计算架构成为了趋势。以数据为中心的模式即数据在哪里,计算就部署在哪里。当数据在存储资源上,对数据的计算就在存储上执行。当数据在网络中流动时,对数据的处理就在网络上执行。通过架构的演进,典型的通信延时可以从30-40微秒,缩短为3-4微秒。网络计算和智能网卡/DPU成为数据中心计算架构的核心。
图2:NVIDIA DPU功能框架
智能网卡/DPU通过集成多个面向不同应用的加速引擎,进行数据平面卸载,通过内嵌的ARM处理器或者其他协处理器进行控制平面的卸载。
在网络功能卸载方面,硬件替代CPU完成专业设备NFV后处理逻辑,实现硬件加速。同时,网络功能卸载将观察点从硬件交换机延伸到主机侧,实现网络端到端运维可视化。
网络加速的技术架构
业界主流智能网卡有四种实现方案:SoC、NP、FPGA、ASIC。
SoC方案在终端市场应用较成熟,硬件需要根据客户需求定制,部署周期较长,但是计算效率高,适合成熟算法及应用,功耗较低。
NP方案生态封闭,主流厂商已不再发布路标,不支持重编程,难以解耦,成本高于FPGA,但是功耗较低。
FPGA方案生态开放,在数据中心场景中得到广泛应用,可以重复编程实现特定应用,适合演进中的算法及应用,适用于网络转发等并行计算场景,该方案处理时延低,支持虚拟化,功耗适中。
ASIC方案,其硬件根据用户需求定制,开发成本昂贵,生产周期长,不具备灵活性,但是计算效率高,功耗较低,适合大规模成熟算法及应用。
网络加速技术
智能网卡实现的网络加速有多种,除基本的网络功能外,还包括RoCEv2、VXLAN、OVS ct功能、TF-vRouter虚拟路由、kTLS/IPSec加速等技术。智能网卡的网络加速技术可以进一步细分为网络功能的加速以及网络能力的虚拟化。这里仅列举常见的几种技术及其应用。
OVS卸载技术,SmartNIC 负责L2转发,通过额外的处理逻辑实现部分vSwitch功能,能够卸载部分网络流量(例如基于Tc Flower Offload功能),支持对网络数据包包头的处理(如Push/Pop VLAN Tag、VXLAN Encap/Decap)。
Connection Tracking offload可以实现L3/L4 Firewall功能。
Header Re-write Offload 能够对packet header进行set/copy/add操作,可以实现路由、NAT等功能。
VIRTIO-net网络虚拟化技术。传统加速方式通过软件优化比如DPDK实现VM对网络设备的访问。大量的资源和时间损耗在软件层面,当前网络和PCIe设备的性能优势没有彻底发挥出来。智能网卡支持SR-IOV和VIRTIO技术,实现了IO硬件虚拟化,虚拟机可以直接访问网卡硬件设备的寄存器和DMA内存,同时借助于FPGA和SoC将OVS数据和控制平面完全卸载,大大提升了数据传输和处理的性能。SRIOV技术引入了两种虚拟化设备,PF和VF,在大多数虚拟机场景下,VM里的设备映射到不同的VF上,每增加一个虚机时,需要新增VF与其绑定。VF的配置和管理均由VMM完成。在裸金属场景,PF通常被用来作为网络或存储设备,PF的资源在FPGA加载时生成,当资源不足时,分配新的PF。PF设备的管理通过智能网卡SOC来管理。当增加PF时,SOC上将对应的PF设备使能,然后通知Host端添加新的设备。当不再需要PF设备时,通过SoC disable释放资源。
网络加速的技术实现
智能网卡的本质能力是实现网络加速,在2021中国智能网卡研讨会中,包括中国移动、电信等企业的智能网卡产品,采用了多种智能网卡技术架构,实现了不同的网络加速功能。
中国移动IT云和网络云采用混合SDN方案,面向不同业务提供虚拟机或裸机部署能力,面向虚拟化场景,引入智能网卡突破提升vSwitch转发性能和数据处理能力;面向裸机场景,引入智能网卡构建弹性裸金属服务。面向虚拟化场景,将vSwitch转发面卸载至智能网卡中,提升转发性能及表项规格。软件vSwitch依靠CPU转发,通过将转发面卸载到硬件网卡,实现主机侧CPU零消耗,满足25G、100G网卡及后续更大带宽线速转发要求,提升块表规格到百万级甚至千万级,满足SBC等大规格网元部署需求。
图3:电信智能网卡协议栈
天翼云高级工程师、硬件加速组负责人孙晓宁在《天翼云智能网卡产品的前世、今生和未来》中介绍了电信ASIC架构的智能网卡中采用的网络加速技术,包括RDMA的代表性技术,以及RoCEv2、VXLAN隧道技术和OVS ct功能。
芯启源基于NP-SoC实现的全可编程DPU芯片具备网络报文处理引擎、流处理器引擎、接口引擎和加速硬件,支持高效的网络报文处理,具备极高的编程自由度。其基于DPU芯片的Agilio智能网卡支持OVS卸载,支持内核TC-Flower、DPDK RTE_FLOW,支持vRouter卸载,也支持Contrail 内核卸载。
迈普SNC5000-2S-NPDH1智能网卡,采用国产CPU飞腾 FPGA架构,在网络加速方面实现了VXLAN、GENEVE卸载、VIRTIO-NET模式卸载、SR-IOV卸载。OVS-DP通过FPGA实现硬件加速,用于卸载转发策略,实现数据快速转发。控制面卸载通过内嵌CPU实现,用于openflow协议运行和北向通信,支持OVS-DPDK。
腾讯智能网卡采用FPGA SoC架构,网络加速技术实现方面自研vDPA,支持VIRTIO-net卸载,能够实现虚拟化性能零损耗,数据面直通,软硬结合跟踪脏页的功能。自研VIRTIO-net硬件后端核心IP,自研vSwitch Fastpath硬件卸载;自研vSwitch offload高度软硬协同的硬件驱动层。借助自研技术,智能网卡网络性能大幅度提升,PPS提升到40Mpps ,带宽提升到100Gbps。网络功能全部offload到智能网卡上,彻底消除Host CPU占用。内存带宽零抢占,高速网络流量在Host内存只穿越一次,降低内存带宽占比高造成对租户应用内存访问的影响。
Intel FPGA IPU C6000平台采用FPGA x86 CPU架构,支持OVS卸载、NVMe over Fabric、RoCE卸载。
阿里通过主机协议栈延时优化、网络动态延时优化,将高性能网络的时延降低1个数量级。通过端网协同的网络流控,多路径优化和全链路网络QoS等机制来降低网络动态延时,减少网络拥塞,故障时快速切换,保障大小流之间的公平性,有效处理网络incast。其中端侧通过智能网卡/DPU的硬件卸载来优化网络协议处理。其自研的高性能网络协议,包括HPCC拥塞控制算法、Multi-path、xRD传输方式,去PFC实现Lossy RDMA,进一步优化长尾延时,增加RDMA扩展性。其自研的高性能网卡,实现了自研高性能网络协议卸载,目前已经落地云存储。
锐文科技推出的RAYMAX xSmartNIC智能网卡,支持SR-IOV、VIRTIO,支持Open vSwitch卸载,VXLAN、NVGRE tunnel加载及卸载,通过智能网卡的卸载应用,把耗费CPU大量资源的数据层查找卸载到智能网卡中,可提升超过30%吞吐量。
浪潮智能网卡采用了FPGA CPU架构,FPGA提供了接近ASIC的处理能力,而X86为异常处理、存储和安全业务提供了高速处理能力。通过硬件方式实现了VIRTIO-net,数据面基于FPGA的可编程硬件网络包处理,SoC侧处理异常报文和控制面,支持OVS、VLAN、VXLAN、Conntrack Table以及IPSec等,减少Host端CPU负载,降低报文的延迟和抖动。
锐捷网络新推出的湛卢1.0 2*25G网卡产品,采用了FPGA x86 CPU架构。该智能网卡产品基于RTE_Flow的流表卸载模型,支持开源OVS和锐捷商用vSwitch(RG-S1000v)。同时支持DPDK/SPDK的二次合作开发,支持VIRTIO-net、OVS全卸载,支持裸金属网络卸载。
英伟达的BlueField-2采用SoC架构设计,最大200Gbps带宽,内置ConnectX-6 Dx网卡芯片,支持RDMA,同时支持TLS/IPSec。以IPSec VXLAN通信场景为例,通常情况下(X86 普通网卡),Throughput能达到21.2Gbps,采用DPU卸载方式能够达到88.9Gbps。如果达到90G处理速率,理想情况下需要消耗60个CPU核,采用DPU卸载方式,只需要消耗10个CPU 核,CPU核资源节省了83.3%。
小 结
智能网卡进入高速发展期,行业内的主流厂家凭借其技术积累及应用场景,采用了多样化的技术架构,实现了效果差异的网络加速。正像赵慧玲女士在致辞中讲到的,产业发展呼吁加快标准化进程。技术标准化、规范化对于产业的发展起着积极作用。
【转载须知】
若转载文章为原创文章,可在相应文章下或公众号后台留言;其他非转载类文章须在文首以不小于14号字体标明转载自SDNLAB。
【投稿】
欢迎SDN、NFV、边缘计算、SD-WAN、TSN、5G 网络切片等网络方向的观点类、新闻类、技术类稿件。
联系人:kk__wu(微信号)
投稿邮箱:pub@sdnlab.com
详情请参考:SDNLAB原创文章奖励计划