DPU:我真的会“卸”

CPU近来“鸭梨山大”,逐渐有些力不从心,忽而听说数据中心来了个新助手。

DPU 是一种新型可编程的高性能处理器,IDC将其归类为一种新兴类别功能卸载协处理器(FOCs)。在基于协处理器的系统中,一个或多个协处理器被集成到体系结构中,以取代CPU来接管一些特权操作。

调研机构AMR称2021年全球DPU市场规模为 5.5396 亿美元,预计到 2031 年将达到 55 亿美元,2022 年至 2031 年的复合年增长率为 26.9%。英伟达首席执行官黄仁勋也表示,全球每个数据中心都将在五年内部署DPU,以将应用层与控制平面隔离开来。

那么,CPU为什么需要卸载?DPU怎么完成卸载工作?卸载了哪些部分?又有哪些应用场景?

为什么需要卸

我们现在买个256G内存的手机,实际能用的只有230个G左右。其他内存去哪里了?这些额外的开销部分被手机系统、内置应用等占有。类比到CPU上,就叫做数据中心税,

现代工作负载和数据中心设计对 CPU 内核施加了过多的网络开销,CPU 将太多宝贵的内核用于分类、跟踪和引导网络流量。

阿里云弹性计算产品线负责人张献涛曾算过一笔账,阿里云营收规模已经达到上百亿元,如果存储、网络占用约10%的CPU资源,则意味着年损失10多亿元。

传统来看,2层网络的数据帧由网卡来处理,CPU上运行的OS中的内核协议栈处理网络数据包的收发问题。这个开销在网络带宽比较低的时候,不算什么大问题,甚至中断开销都可以接受。但是,随着核心网、汇聚网朝着100G、200G发展,接入网也达到50G、100G时,CPU就无法再提供足够的算力来处理数据包了。

CPU需要从“统揽”所有事情转为工作分工化、分类化。

如今,CPU 正在演变成一个“系统控制器”,将复杂的工作负载(如数据分析、AI/ML、图形、视频处理等)交给专门的单元和加速器。为此,市场上已经出现一些专门针对特定领域的加速器,以减轻计算芯片传统主力CPU的工作负载。

比如,图像、图形类运算可以交由GPU负责,复杂类运算则交给DPU,这样一来,CPU可以更好的服务于应用。

我真的会卸

近年来,GPU凭借其强大的实时图形处理能力和并行处理能力,已成为各种加速计算如图形处理、人工智能、深度学习和大数据分析应用的理想选择。

DPU作为继CPU和GPU后的第三个计算单元横空出世,最直接的作用是作为CPU的卸载引擎,接管网络虚拟化、硬件资源池化等基础设施层服务,从而释放宝贵的CPU资源来运行上层应用,实现了以数据为中心的业务和基础设施操作的分离。

DPU架构

DPU 由三个主要元件组成。首先,DPU通常有一个软件可编程的多核 CPU 。第二个元件是高性能网络接口,它使 DPU 能够解析、处理并在网络中有效地传输数据。第三个元件是一组丰富的灵活、可编程的加速引擎,它将网络和存储功能从 CPU 卸载到 DPU。


| DPU架构参考设计

宏观来看,DPU架构有三大核心组成部分,分别是控制平面、IO子系统和数据平面。

控制平面:控制平台负责DPU设备运行管理,以及计算任务和计算资源的配置。

IO⼦系统分为系统IO,负责DPU和其他处理平台(如X86、ARM处理器、GPU、FPGA等)或高速外部设备(如SSD)的集成;网络IO,负责DPU与高速网络相连接,主要是以太网或者FC为主;主存IO,负责缓存网络IO和系统IO输入输出数据,以及数据平面中间数据结果。

数据平面:主要负责高速数据通路的功能单元的集成,通常集成多个处理核。

高速数据包处理,主要对接收到的网络数据包进行如OvS解析、匹配和处理,以及RDMA远程数据传输加速等操作。

虚拟化协议加速,支持SR-IOV、VirtIO 和PV(Para-Virtualization)等虚拟化。支持网络虚拟化VxLAN、Geneve Overlay卸载和VTEP等协议卸载。

安全加密,在线IPSec和TLS加密加速,以及多种标准加解密算法和国密算法。

流量压缩,对网络数据包,或者要存储的数据,进行实时地数据压缩/ 解压缩处理,压缩过程中还要完成地址的转换和重映射等操作。

其他算法加速。除了上述网络、安全协议外还要支持NVMe等存储协议,业务相关的处理卸载也呈增长趋势,如大数据分析SQL加速。

怎么卸

以计算为中心到以数据为中心

DPU将计算功能移动到更接近数据所在的位置(以数据为中心的架构),数据不用再移动到计算所在的位置(以计算为中心的架构),从而释放了CPU资源。


| 以计算为中心和以数据为中心的架构

以计算为中心的通信场景里,所有数据都需要先被送到CPU,CPU的处理时延通常会比较高,约30至40微秒。CPU的计算包含了应用的计算,通信的计算和存储的计算等,每一类计算都需要独占CPU资源。CPU已然成为数据中心释放算力的瓶颈。

以数据为中心的架构,数据转发通道不再需要CPU参与,DPU可以直接将数据送达GPU和虚拟机CPU,不需要基于CPU的软件转发,时延上可以提升到3至4微秒,典型的通信时延可以从30至40微妙降低到3至4微妙,有近10倍的性能提升。

DPU通过三种独立的技术做到了这一点:创建专门用于高效处理多路工作负载的体系结构;为最频繁执行的操作设计专门的加速器;通过提供一个有效的模型来处理数据流,同时对它们执行轻量级计算。DPU提供网络侧的标准IPoE(IP over Ethernet)接口和本地总线侧的标准PCIe接口,用于连接计算元素和存储元素。

DPU可以用于卸载NSX或OVS虚拟交换机、防火墙或任何其他需要高速数据包处理的应用程序。使用特定于安全的加速器,DPU还可以卸载计算密集型的安全功能。这不仅可以在不消耗额外CPU的情况下提供安全选项,还可以最大限度地减少延迟,使安全功能处理速度更快。


| 将基础架构任务卸载到 DPU

DPU将基础设施任务从CPU“卸载”,释放了宝贵的CPU资源,使得更多CPU核心可用于处理应用程序,从而大大提高数据中心的效率,减少了能源浪费,降低成本。

基础设施与业务分离

英特尔数据平台集团首席技术官 Guido Appenzeller 将“旧的”企业数据中心架构和当今以云为中心的数据中心架构进行了比较。

旧的数据中心架构类似于个人住宅,厨房、餐厅和客厅等所有不同的专用区域,都可以从房子的其他区域轻松访问。这类似于运行在相同 CPU 上的用户任务、基础设施任务和开销。这种架构的存在是为了满足一个租户的需求:拥有数据中心的企业。

云数据中心架构更类似于酒店,因为有多个租户(客人)和拥有数据中心(酒店)的云服务提供商。酒店的客房、餐厅、厨房和其他服务区彼此分隔,拥有钥匙的人才能进入另一个区域。使用酒店模式架构的成本更高,额外的墙壁和门等安全设备方面存在更多开销。

酒店不希望客人进入厨房,也不希望服务人员在未经许可的情况下进入客房。此外,酒店式架构降低了某些成本。例如,拥有一个中央厨房比为每个客房配备独立的厨房要便宜得多。

DPU将基础设施与租户的功能隔离开。DPU运行存储、网络、管理等通常由云服务提供商(CSP)开发的代码和功能,CPU 运行客户的软件(上层应用)。

基础设施和主机侧系统完全物理隔离,即使主CPU被破坏,DPU仍然可以检测或阻止恶意活动。

硬件加速

加速,就是利用专门的硬件,把卸载下来的应用做的更快、性能更高。不仅把活接下来,还要干的比原来还好。硬件加速可提供最佳性能和效率,相较于 CPU 能够以更快的速度运行基础设施,这也意味着能够以更少的支出实现更多的卸载。为某些功能配备专用硬件的能力是 DPU 合理性的关键。

卸哪些?

网络功能卸载

虚拟化网络卸载:网络功能卸载是伴随云计算网络而产生的,虚拟化网络演进是云计算发展的重要推动力。早期业务对虚拟化网络的处理性能要求不高,虚拟网络转发通过软件实现即可满足需求。但是,随着业务的发展与丰富,对虚拟化网络的带宽和时延要求不断提高,通过硬件卸载虚拟化网络成为主流。

虚拟化网络硬件卸载主要包含两大部分:网络接口的硬件卸载和虚拟交换网络的硬件卸载。DPU减少主机上消耗在网络上的CPU算力,提高可售卖计算资源。

RDMA卸载:RDMA 使用内核旁路和零拷贝技术,使能网卡和应用之间的直接数据读写,消除了传统 TCP/IP 协议栈的上下文切换和数据拷贝开销,因此可提供端到端微秒级、以及低 CPU 开销的低时延网络通信。在 HPC/AI、Data Base、Web server 等类型的计算节点、高性能存储节点,以及网关节点等得到越来越广泛的应用。

使用 DPU 将 RDMA 协议(如 ROCEv2)卸载到硬件中,包括封装/解封装、拥塞控制算法等,并且支持单边操作,可以进一步降低被动端的 CPU 开销。主机安装 RDMA 协议驱动,向上对接 RDMA 原语,可以大大缩短时延并提升业务的吞吐率。

存储功能卸载

在云服务中,DPU 可以为虚拟机或裸金属提供存储加速功能,通过软硬件结合方式实现存储协议卸载,灵活实现高存储 IOPS 性能和低主机 CPU 占用率的要求。与虚拟化网络卸载原理类似,对于虚拟机或者裸金属,通过存储卸载可以提供灵活、高性能的弹性存储设备,存储系统卸载在 DPU 上完成的主要工作为:存储接口的卸载和存储网络协议栈加速。

安全功能卸载

云计算场景安全领域,主流虚拟化技术(KVM、XEN、VMware)中虚拟化漏洞广泛存在,Hypervisor 作为虚拟机的运行底座一旦存在漏洞将危及运行其上的所有虚拟机,甚至影响宿主机的安全。基于安全需求,各云厂商在宿主机上部署安全功能产品,而安全功能串行在网络转发中,产品的转发性能对整体网络的吞吐量和时延有较大影响。伴随网络、存储卸载,将安全功能从主机上剥离,卸载到 DPU 上是必然趋势。安全系统的卸载可以实现虚拟化的安全隔离和网络数据加解密卸载。

应用场景

数据中心

数据中心是DPU目前最主要的应用场景,预计未来用于数据中心的DPU数量将达到和数据中心服务器同等量级。

在数据中心和云计算领域,DPU可广泛应用于物理机、虚拟化、容器化、私有云、公共云、混合云等各个方面。例如,DPU可为SDN和虚拟化应用提供硬件加速;在大规模数据中心中,将CPU上运行的通信和虚拟化操作卸载到DPU上,亦可为用户提供应用加速附加价值;OVS等Hypervisor、各种容器框架在DPU上运行,可实现控制平面和业务的分离,保障业务安全性。

5G

算力发展与网络演进相辅相成,5G时代算力发展呈现两个特点。一是5G驱动下边缘计算、云计算由集中走向分布,导致算力和数据流量大幅增长。二是人工智能广泛应用,算力走向多样性,除了传统CPU通用的算力之外,DPU、GPU等算力基础设施也在不断赋能。

5G的时代是数据革命时代,也是DPU的时代。

5G行业专网要求低时延、低抖动,DPU可以发挥重要作用。业务层面,通信云一些业务生成兆级数量的流表,对虚拟化网络压力巨大,基于DPU的硬件加速方案可提高流表查表和报文处理能力。虚拟化层面,现有NFV架构三层解耦推进缓慢,探索虚拟化层下沉至DPU的技术方案,推进通信云NFV架构更加开放。

目前运营商正在推动开放的UPF,但当前大量UPF与设备厂商绑定。采用DPU可以实现UPF的GTP、QoS、Forward等功能卸载,提高UPF转发效率,提高单服务器吞吐量,降低处理时延、抖动和丢包率等,并可以减少各站址用户面服务器部署数量,从而降低对机房空间、功耗、散热要求,降低成本。

零信任

零信任是一种以安全性为中心的模型,企业不应对其内外的任何事物授予默认信任选项,任何时候都需要不断的校验。零信任可以减少数据泄露、拒绝未授权的访问,因此在数据安全方面价值巨大。

DPU可以为企业提供零信任保护,通过将控制平面从主机下放到DPU,系统能够实现主机业务和控制平面的完全隔离,数据将无法进行穿透,保证安全性。如果主机遭受入侵,安全控制代理与被入侵主机之间的DPU隔离层可防止攻击扩散至整个数据中心。这样DPU就解决了企业不愿直接在计算平台上部署安全代理的情况。通过在完全隔离于应用程序域的DPU上部署安全代理,企业不仅能获得对应用程序工作负载的可见性,还能在其基础设施中执行一致的安全策略。

目前来说,DPU主要应用于数据中心、通信及网络安全等领域。未来,DPU将向自动驾驶、元宇宙及人工智能等新兴应用领域延伸。随着网络流量指数上涨,在任何有大流量的地方,DPU都将存在,市场前景广阔。

  • 参考文献:
    专⽤数据处理器 (DPU)白皮书
    中国移动 DPU 技术白皮书(2022 年)
    “DPU”非DPU


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/26150.html
分享到:
相关文章
条评论

登录后才可以评论

SDNLAB君 发表于23-02-27
3