随着云计算和虚拟化技术的发展,网卡在功能和硬件结构方面也经历了四个阶段,即网卡、智能网卡、基于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功能。
阿里云的CIPU专为飞天系统设计,对于构建新一代综合软硬件云计算架构系统至关重要。
火山引擎DPU
火山引擎致力于推进自主开发的DPU技术,采用软硬集成的虚拟化方法,提供弹性和可扩展的高性能计算服务。他们的第二代弹性裸金属服务器和第三代云服务器都配备了自主研发DPU。这些DPU经过了广泛的测试,以确保其在各种应用中的功能和适应性。
2022年推出的第二代弹性裸金属实例将物理机的稳定性和安全性与虚拟机的灵活性相结合,代表了高性能云服务器的新一代。
2023年上半年发布的第三代云服务器实例将火山引擎最新的DPU架构与专有的虚拟交换机和虚拟化技术集成在一起,显著提高了网络和存储I/O性能。
通过结合自主开发的DPU、虚拟交换机和虚拟化技术,Volcano Engine旨在提供可扩展和高效的高性能计算解决方案,以满足云计算不断演变的需求。