随着云平台虚拟化技术的发展,智能网卡的发展基本可以分为三个阶段(如下图所示):

 DPU 技术发展概况系列(四)DPU发展历程_DPU

图  智能网卡发展的三个阶段

第一阶段:基础功能网卡

基础功能网卡(即普通网卡)提供2x10G或2x25G带宽吞吐,具有较少的硬件卸载能力,主要是Checksum,LRO/LSO等,支持SR-IOV,以及有限的多队列能力。在云平台虚拟化网络中,基础功能网卡向虚拟机(VM)提供网络接入的方式主要是有三种:由操作系统内核驱动接管网卡并向虚拟机(VM)分发网络流量;由OVS-DPDK接管网卡并向虚拟机(VM)分发网络流量;以及高性能场景下通过SR-IOV的方式向虚拟机(VM)提供网络接入能力。

第二阶段:硬件卸载网卡

可以认为是第一代智能网卡,具有丰富的硬件卸载能力,比较典型的有OVS Fastpath硬件卸载,基于RoCEv1和RoCEv2的RDMA网络硬件卸载,融合网络中无损网络能力(PFC,ECN,ETS等)的硬件卸载,存储领域NVMe-oF的硬件卸载,以及安全传输的数据面卸载等。这个时期的智能网卡以数据平面的卸载为主。

第三阶段:DPU智能网卡

可以认为是第二代智能网卡,在第一代智能网卡基础上加入CPU,可以用来卸载控制平面的任务和一些灵活复杂的数据平面任务。目前DPU智能网卡的特点首先是支持PCIe Root Complex模式和Endpoint模式,在配置为PCIe Root Complex模式时,可以实现NVMe存储控制器,与NVMe SSD磁盘一起构建存储服务器;另外,由于大规模的数据中心网络的需要,对无损网络的要求更加严格,需要解决数据中心网络中Incast流量、“大象”流等带来的网络拥塞和时延问题,各大公有云厂商纷纷提出自己的应对方法,比如阿里云的高精度拥塞控制(HPCC,High Precision Congestion Control),AWS的可扩展可靠数据报(SRD,Scalable Reliable Datagram)等。DPU智能网卡在解决这类问题时将会引入更为先进的方法,如Fungible的TrueFabric,就是在DPU智能网卡上的新式解决方案。还有,业界提出了Hypervisor中的网络,存储和安全全栈卸载的发展方向,以Intel为代表提出了IPU,将基础设施的功能全部卸载到智能网卡中,可以全面释放之前用于Hypervisor管理的CPU算力。

未来的DPU智能网卡硬件形态

随着越来越多的功能加入到智能网卡中,其功率将很难限制在75W之内,这样就需要独立的供电系统。所以,未来的智能网卡形态可能有三种形态:

(1)独立供电的智能网卡,需要考虑网卡状态与计算服务之间低层信号识别,在计算系统启动的过程中或者启动之后,智能网卡是否已经是进入服务状态,这些都需要探索和解决。

(2)没有PCIe接口的DPU智能网卡,可以组成DPU资源池,专门负责网络功能,例如负载均衡,访问控制,防火墙设备等。管理软件可以直接通过智能网卡管理接口定义对应的网络功能,并作为虚拟化网络功能集群提供对应网络能力,无需PCIe接口。

(3)多PCIe接口,多网口的DPU芯片。例如Fungible F1芯片,支持16个双模PCIe控制器,可以配置为Root Complex模式或Endpoint模式,以及8x100G网络接口。通过PCIe Gen3 x8接口可以支撑8个Dual-Socket计算服务器,网络侧提供8x100G带宽的网口。

 DPU 技术发展概况系列(四)DPU发展历程_DPU_02

图 未来智能网卡的硬件形态

DPU作为一种新型的专用处理器,随着需求侧的变化,必将在未来计算系统中成为一个重要组成部分,对于支撑下一代数据中心起到至关重要的作用。

 

来源:专用数据处理器(DPU)技术白皮书,中国科学院计算技术研究所,鄢贵海等