本文来自“DPU技术发展及落地实战(2023)”,随着云计算、虚拟化技术的发展,网卡也随之发展,从功能和硬件结构上基本可划分为4个阶段。
1.传统基础网卡(NIC)。负责数据报文的收发,具有较少的硬件卸载能力。硬件上以ASIC硬件逻辑实现网络物理链路层,以及MAC层的报文处理,后期NIC标卡也支持了,诸如CRC校验的功能。不具有编程能力。
2.智能网卡(SmartNIC)。具备一定的数据平面硬件卸载能力,例如OVS/vRouter硬件卸载。硬件结构上以FPGA或者是带有FPGA和处理器内核的集成处理器(这里处理器功能较弱)来实现数据面硬件卸载。
3.FPGA+CPU的DPU网卡(FPGA-Based DPU)。兼具智能网卡功能的同时,可以支持数据面和控制面的卸载以及一定的控制平面与数据平面的可编程能力。硬件结构的发展上,基于FPGA增加了通用CPU处理器,例如Inte1 CPU。
4.DPU SoC网卡(Single-Chip DPU)。单芯片的通用可编程DPU芯片,具备丰富的硬件卸载加速和可编程能力,支持不同云计算场景和资源统一管理特性。
硬件上,采用单芯片的SoC形态,兼顾性能和功耗。FPGA-Based DPU在硬件设计上的挑战主要来自芯片面积和功耗。
面积上,PCIe接口的结构尺寸限定了板上的芯片面积;
功耗上,板卡的散热设计与芯片和整板的功耗密切相关。
这两个因素制约着FPGA方案的持续发展。DPU SoC方案吸取了从NIC到FPGA-Based DPU的发展过程的软硬件经验和成果,是目前以DPU为中心的数据中心架构的重要演进路径。
DPU作为软件定义芯片的典型代表,基于“软件定义、硬件加速”的理念,是集数据处理为核心功能于芯片的通用处理器。DPU通用处理单元用来处理控制平面业务,专用处理单元保证了数据平面的处理性能,从而达到了性能与通用性的平衡。DPU专用处理单元用来解决通用基础设施虚拟化的性能瓶颈,通用处理单元则保证DPU的通用性,使得DPU能够广泛适用于云基础设施的各种场景中,实现虚拟化软件框架向DPU的平滑迁移。
NIC的发展和应用
传统基础网卡NIC,又称网络适配器,是构成计算机网络系统中最基本和最重要的连接设备,其主要工作是将需要传输的数据转换为网络设备能够识别的格式在网络技术发展的带动下,传统基础网卡的功能也更加丰富,已经初步具备了一些简单的硬件卸载能力(如CRC校验、TSO/UF0、LSO/LR0、VLAN等),支持SR-IOV和流量管理QoS,传统基础网卡的网络接口带宽也由原来的百兆、千兆发展到10G、25G乃至100G。
在云计算虚拟化网络中,传统基础网卡向虚拟机提供网络接入的方式主要分为以下3种。
(1)网卡接收流量经操作系统内核协议栈转发至虚拟机。
(2)由DPDK用户态驱动接管网卡,让数据包绕过操作系统内核协议栈直接拷贝到虚拟机内存。
(3)使用SR-IOV技术,将物理网卡PF虚拟化成多个具有网卡功能的虚拟VF,再将VF直通到虚拟机中。
随着VxLAN等隧道协议以及OpenFlow、0VS等虚拟交换技术的应用,网络处理的复杂度在逐渐增大,需要消耗更多的CPU资源,因此智能网卡SmartNIC诞生了。
2.SmartNIC的发展和应用
智能网卡SmartNIC除了具备传统基础网卡的网络传输功能外,还提供丰富的硬件卸载加速能力,能够提升云计算网络的转发速率,释放主机CPU计算资源。
智能网卡SmartNIC上没有通用处理器CPU,需要主机CPU进行控制面管理。智能网卡SmartNIC主要卸载加速对象是数据平面,如虚拟交换机0VS/vRouter等数据面Fastpath卸载、RDMA网络卸载、NVMe-oF存储卸载以及IPsec/TLS数据面安全卸载等。
但是随着云计算应用中网络速率的不断提高,主机仍会消耗大量宝贵的CPU资源对流量进行分类、跟踪和控制,如何实现主机CPU的“零消耗”成了云厂商下一步的研究方向。
3.FPGA-Based DPU网卡的发展和应用
相比智能网卡SmartNIC,FPGA-Based DPU网卡在硬件架构上增加了通用CPU处理单元,组合成FPGA+CPU的架构形态,从而便于实现对网络、存储、安全和管控等通用基础设施的加速和卸载。
在这个阶段中,DPU的产品形态主要以FPGA+CPU为主。基于FPGA+CPU硬件架构的DPU具有良好的软硬件可编程性,在DPU发展初期大部分DPU厂商都选择了这个方案。该方案开发时间相对较短且迭代快速,能够迅速完成定制化功能开发,便于DPU厂商快速推出产品,抢占市场。但是随着网络带宽从25G向100G的迁移,基于FPGA+CPU硬件架构的DPU受到芯片制程和FPGA结构的限制,导致在追求更高吞吐能力时,难以做到对芯片面积和功耗的很好控制,从而制约了这种DPU架构的持续发展。
4.DPU SoC网卡的发展和应用
DPU SoC是基于ASIC的硬件架构,结合了ASIC和CPU的优势,兼顾了专用加速器的优异性能和通用处理器的可编程灵活性的单芯片DPU技术方案,是驱动云计算技术发展的重要因素。
如前一段所述,虽然DPU在云计算扮演着重要的作用,但传统的DPU方案多以FPGA-based方案呈现,随着服务器从25G向下一代100G服务器迁移,其成本、功耗、功能等诸多方面受到了严重的挑战。单芯片的DPU SoC不仅在成本、功耗方面有着巨大优势,同时也兼具高吞吐和高灵活编程能力,不仅支持虚拟机、容器的应用管理部署,也支持裸金属应用。
随着DPU技术的不断发展,通用可编程的DPU SoC正在成为云厂商在数据中心建设中的关键部件。DPU SoC可以实现对数据中心中的计算资源和网络资源的经济高效管理,具备丰富功能和可编程能力的DPUSoC可以支持不同云计算场景和资源统一管理,优化数据中心计算资源利用率。
在DPU的设计、开发和使用中,国内外芯片巨头和头部云服务商都投入了大量的研发资源,经过不断探索和实践,取得了很好的成本收益。
1.DPU在AWS(亚马逊云)中的应用
AWS是全球领先的云计算服务和解决方案提供商,AWS NitroDPU系统已经成为AWS云服务的技术基石。AWS借助Nitro DPU系统把网络、存储、安全和监控等功能分解并转移到专用的硬件和软件上,将服务器上几乎所有资源都提供给服务实例,极大地降低了成本。Nitro DPU在亚马逊云中的应用可以使一台服务器每年可以多获得几千美元的收益。Nitro DPU系统主要分为以下几个部分。
(1)Nitro卡。一系列用于网络、存储和管控的专用硬件,以提高整体系统性能。
(2)Nitro安全芯片。将虚拟化和安全功能转移到专用的硬件和软件上,减少攻击面,实现安全的云平台。
(3)Nitro控制卡。一种轻量型Hypervisor管理程序,可以管理内存和CPU的分配,并提供与裸机无异的性能。
Nitro DPU系统提供了密钥、网络、安全、服务器和监控等功能支持,释放了底层服务资源供客户的虚拟机使用,并且NitroDPU使AWS可以提供更多的裸金属实例类型,甚至将特定实例的网络性能提升到100Gbps。
2.Nvidia DPU的应用
Nvidia是一家以设计和销售图形处理器GPU为主的半导体公司,GPU产品在AI和高性能计算HPC领域被广泛应用。2020年4月,Nvidia以69亿美元的价格收购了网络芯片和设备公司Mellanox,随后陆续推出BlueField系列DPU。
Nvidia BlueField-3DPU(如图7所示)延续了BlueField-2DPU的先进特性,是首款为AI和加速计算而设计的DPU。BlueField-3 DPU提供了最高400Gbps网络连接,可以卸载、加速和隔离,支持软件定义网络、存储、安全和管控功能。
3.Intel IPU的应用
Intel IPU是一种具有硬化加速器和以太网连接的高级网络设备,可使用紧密耦合的专用可编程内核来加速和管理基础设施功能。IPU提供完整的基础设施卸载,并充当运行基础设施应用的主机控制点,以提供额外的安全层。使用Intel IPU,可以将全部基础设施业务从服务器卸载到IPU上,释放服务器CPU资源,也为云服务提供商提供了一个独立且安全的控制点。
2021年,Intel在Intel Architecture Day上发布了OakSprings Canyon和Mount Evans IPU产品。其中,Oak Springs Canyon是基于FPGA的IPU产品,Mount EvansIPU是基于ASIC的IPU产品。
Intel Oak Springs Canyon IPU配备了Intel Agilex FPGA和Xeon-D CPU。Intel Mount Evans IPU是Intel与Google共同设计的SoC(System-on-a-Chip),Mount Evans主要分为I0子系统和计算子系统两个部分。网络部分用ASIC进行数据包处理,性能相比FPGA高很多,且功耗更低。计算子系统使用了16个ARM Neoverse N1核心,拥有极强的计算能力。
4.DPU在阿里云中的应用
阿里云也在DPU的技术上不断进行着探索。2022年阿里云峰会上,阿里云正式发布了云基础设施处理器CIPU,CIPU的前身是基于神龙架构的MoC卡(Micro Server on a Card),从功能和定位符合DPU的定义。MoC卡拥有独立的I0、存储和处理单元,承担了网络、存储和设备虚拟化的工作。第一代和第二代MoC卡解决了狭义上的计算虚拟化零开销问题,网络和存储部分的虚拟化仍由软件实现。第三代MoC卡实现了部分网络转发功能硬化,网络性能大幅提升。第四代MoC卡实现了网络、存储全硬件卸载,还支持了RDMA能力。
阿里云CIPU作为一颗为飞天系统设计的数据中心处理器系统,对于阿里云构建新一代完整的软硬件云计算架构体系有着重大意义。
5.DPU在火山引擎中的应用
火山引擎同样在不断探索自研DPU的道路,其自研DPU采用软硬一体虚拟化技术,旨在为用户提供可弹性伸缩的高性能计算服务。在火山引擎弹性计算产品中,第二代弹性裸金属服务器和第三代云服务器都搭载了自研DPU,在产品能力和应用场景上进行了广泛验证。2022年正式对外商用的火山引擎第二代EBM实例首次搭载火山自研DPU,在整体性能上既保留了传统物理机的稳定性和安全性优势,能够实现安全物理隔离,又兼具虚拟机的弹性和灵活性优势,是新一代多优势兼具的高性能云服务器。2023年上半年发布的火山引擎第三代ECS实例同样结合了火山引擎自研最新DPU的架构和自研虚拟交换机、虚拟化技术,网络及存储IO性能均实现了大幅提升。
审核编辑:黄飞
评论
查看更多