DPU技术的进步与未来创新
随着云计算和虚拟化技术的发展,网卡在功能和硬件结构方面也经历了四个阶段,即网卡、智能网卡、基于FPGA的DPU和DPU SoC网卡。本文将重点介绍这些不同类型的网络适配器和处理器,在硬件、可编程能力、开发和应用方面的特点。
网卡的演进和应用
传统的基本网卡,也被称为NIC或网络适配器,在计算机网络中的作用至关重要。它的主要功能是将数据转换为网络设备之间高效传输所需的格式。随着时间的推移,网卡的功能不断扩展,除了融合额外功能,还具备基本的硬件卸载功能,例如CRC校验、TSO/UF0、LSO/LR0以及VLAN支持等。它还支持SR-IOV以实现虚拟化和QoS以提升网络性能。在网络接口带宽方面,它已经从100M和1000M的速率演进到支持更高速率的10G、25G甚至100G。
在云计算虚拟化网络中,传统的基本网卡提供了三种主要方法来为虚拟机提供网络访问。
1. 通过操作系统内核协议栈,网卡将传入的流量转发到虚拟机。
2. DPDK用户态驱动程序绕过内核协议栈,直接将数据包复制到虚拟机的内存中,以提高性能。
3. SR-IOV技术将物理网卡虚拟化为多个直接分配给虚拟机的虚拟功能(VF)。
随着VxLAN等隧道协议和虚拟交换技术等网络复杂性的增加,对CPU资源的需求也越来越高。智能网卡通过从CPU中卸载网络处理任务,提升整体网络性能,从而应对这一挑战。
智能网卡的演进和应用
智能网卡不仅提供传统基本网卡中的网络传输功能,还融合数据平面硬件卸载功能,例如使用FPGA或集成处理器与FPGA和处理器核心的OVS/vRouter硬件卸载。这些智能网卡提升云计算网络的转发速率,并减轻主机CPU的计算资源负担。
与传统的网卡不同,智能网卡不包含通用的CPU。相反,它们依赖主机CPU来管理控制平面。智能网卡卸载加速的主要焦点是数据平面,涵盖了诸如0VS/vRouter等虚拟交换机的快速路径卸载、RDMA网络卸载、NVMe-oF存储卸载和IPsec/TLS数据平面安全卸载等任务。
然而,随着云计算应用中网络速度的不断提高,主机CPU仍然需要大量的资源用于流量分类、跟踪和控制。实现主机CPU的“零消耗”已成为云服务提供商的下一个研究方向,旨在尽可能减少主机CPU参与这些任务。
基于FPGA的数据处理单元(DPU)的演进和应用
基于FPGA的数据处理单元(DPU)是一种智能网卡,可以卸载数据并具有平面控制功能。它在控制平面和数据平面上都是部分可编程的。在硬件方面,它包括一个基于FPGA的通用CPU处理器,例如英特尔CPU。
与智能网卡相比,基于FPGA的数据处理单元(DPU)通过整合通用CPU处理单元来增强硬件架构,形成了FPGA+CPU架构。这种配置有助于加速和卸载各种基础设施组件,包括网络、存储、安全和管理。目前,主流形式的DPU是FPGA+CPU配置,基于这种架构的DPU具有出色的软件和硬件可编程性。
在DPU的早期开发阶段,它提供了更短的开发时间和快速迭代,便于快速定制功能。这使得DPU制造商能够快速推出产品并抓住市场机遇。然而,随着网络带宽从25G过渡到100G,基于FPGA+CPU的DPU架构由于芯片工艺和FPGA结构的限制遇到挑战。这些限制使得在追求更高吞吐量的同时,有效控制芯片面积和功耗变得困难。因此,这种DPU架构的持续发展受到了阻碍。
DPU SoC网卡的演进和应用
与基于FPGA的架构不同,基于应用专用集成电路(ASIC)的DPU SoC将专用加速器的性能与通用处理器的可编程性相结合,解决了成本、功耗和功能等方面的问题。尤其是针对下一代100G服务器,它们在成本、功耗、高吞吐量和灵活的编程能力方面具有优势,DPU SoC可支持应用管理、虚拟机、容器和裸金属应用。
DPU技术正在不断发展,通用可编程的DPU SoC现在对于云服务提供商的数据中心建设至关重要。它们能够高效地管理计算和网络资源,支持多样化的云计算场景,并优化数据中心资源利用率。芯片巨头和领先的云服务提供商在DPU的研究、开发和利用方面进行了重大投资,通过持续的探索和实际实施取得了显著的成本效益。
亚马逊云中的DPU
亚马逊网络服务(AWS)是一家以Nitro DPU系统作为关键技术基础的顶级云计算服务提供商。Nitro DPU系统可以高效地将网络、存储、安全和监控功能卸载到专用的硬件和软件上。这使得服务实例可以访问大部分的服务器资源,从而大幅降低成本并增加年收入。Nitro DPU系统由多个组件组成:
1. Nitro卡:用于网络、存储和控制的专用硬件,以提升整体系统性能。
2. Nitro安全芯片:将虚拟化和安全功能转移到专用的硬件和软件上,减小攻击面,确保安全的云平台。
3. Nitro虚拟化管理程序:一种轻量级的虚拟化管理程序,高效地管理内存和CPU分配,提供与裸金属相当的性能。
通过提供关键的网络、安全、服务器和监控功能,Nitro DPU系统可以释放底层服务资源供客户虚拟机使用。它使得AWS可以提供更多的裸金属实例类型,甚至能够为特定实例实现高达100Gbps的网络性能。
英伟达(NVIDIA)DPU
英伟达(NVIDIA)是一家知名的半导体公司,以其在高性能计算领域的图形处理单元(GPU)而闻名。该公司于2020年4月以69亿美元收购了网络芯片和设备公司迈络思(Mellanox)。在收购之后,英伟达(NVIDIA)推出了BlueField系列的DPU。
NVIDIA BlueField-3 DPU是专为加速计算而设计的,继承了BlueField-2 DPU的先进功能。它提供高达400G的网络连接,并为软件定义的网络、存储、安全和管理功能提供卸载、加速和隔离能力。
英特尔(Intel)IPU
英特尔(Intel)IPU是一种配备了硬化加速器和以太网连接的先进网络设备。它利用紧密耦合的专用可编程核心来加速和管理基础设施功能。IPU实现基础设施卸载,并充当运行基础设施应用程序的主机控制点,提供了额外的安全层。将所有基础设施服务从服务器卸载到IPU中,释放服务器CPU资源,并为云服务提供商提供了一个独立且安全的控制点。
英特尔的路线图包括Oak Springs Canyon和Mount Evans IPU产品。Oak Springs Canyon是基于FPGA的IPU产品,而Mount Evans IPU是基于ASIC的IPU产品。Oak Springs Canyon采用了英特尔的Agilex FPGA和Xeon-D CPU,而Mount Evans则由英特尔和谷歌共同设计,结合用于数据包处理的ASIC和16个ARM Neoverse N1核心,具备强大的计算能力。
阿里云中的DPU
阿里云是DPU技术探索的前沿。在2022年的阿里云峰会上,他们发布了基于神龙架构开发的云基础架构处理器CIPU。CIPU继承了其前身MoC卡(卡上微服务器)的功能和定位,与DPU的定义相吻合。MoC卡具有独立的I/O、存储和处理单元,并处理网络、存储和设备虚拟化任务。MoC卡经历了四个发展阶段:
第一代和第二代MoC卡解决计算虚拟化的零开销挑战,通过软件实现了网络和存储虚拟化。 第三代MoC卡引入了增强的网络转发功能,显著提高了网络性能。 第四代MoC卡实现了网络和存储操作的完全硬件卸载,并支持RDMA功能。
火山引擎DPU
更多DPU技术,请参考文章“DPU硬件标准化思考与探索(2023)”,“DPU:存储、网络等可编程关键应用”,“2023直击DPU:“第三颗”主力芯片”,“数据中心为什么需要DPU?”,“DPU全球混战,国内多家崛起(2023)”,“云计算通用可编程DPU发展(2023)”,“DPU全球格局,国内5家崛起(2023)”,“从市场预测,谈DPU产业链发展”,“主流DPU架构实现及技术对比”等等。
温馨提示:
扫描二维码关注公众号,点击阅读原文链接获取“架构师技术全店资料打包汇总(全)”电子书资料详情。
微信扫码关注该文公众号作者