DPU全称是 data processing unit,在云计算技术和产品里出现时间也有几年了,包括AWS的Nitro(注意不是智能网卡ENA,ENA对应的是Mellanox的CX-5等),不过大部分云厂商都是用于自己云平台上,只是最近NVIDIA CEO Jensen Huang对其DPU产品BlueField-X的介绍和产品发布视频导致了一股讨论热潮。
那么到底什么是DPU?通过以下几点对DPU即同类型设备的几点特征做如下解释:
1)DPU是一块完整的板卡,这块卡有独自的CPU,而且不是类似原来嵌入式设备的MIPS等性能不高的CPU,通常是ARM等服务器同类型的CPU;并且这块卡还有独立的内存、磁盘、网卡及可配置GPU等增强设备,并且有独立的BMC和OS,即如果不看物理形态,完全是一台体积小的服务器;
2)DPU设备工作时,是附录在通用服务器上作为附属设备来使能,通过PCI设备与所属Host进行交互信息;并且在Host OS来看,DPU设备是透明的,但是提供的网路、存储、安全等能力是可见的;
3)DPU设备的启动/重启对所属Host有依赖,二者的OS相互独立但是有控制信息传递和数据信息的交互(通过PCI接口);相比智能网卡,完全在所属主机Host内可视并且可控;
4)如前面提及的,不少人认为DPU是智能网卡或智能网卡的增强版,个人并不这么认为;一方面是DPU要比智能网卡的能力全的多(包括有网络能力、存储能力、安全能力等),再一个是智能网卡的驱动通常是在所在主机内而DPU完全不需要任何驱动,最后DPU有独立的CPU和OS而智能网卡仅是驱动设备;所以DPU是一种全新的软件定义基础设施的设备(Software-Defined Infrastructure),而不是已有网卡设备的增强版;
通过上面几点,我们可以得到DPU可以提供的几点能力:
1)提供为所属主机的网络处理能力、存储处理能力和安全处理能力,并且这些能力可以使用DPU的OS的软件栈来实现,也可以通过智能网卡或安全设备实现网络处理能力、存储处理能力和安全处理能力的硬件卸载,以提升处理性能;比如NVIDIA的BlueField-2就集成了ConnectX-6提供200G的以太网或IB处理能力,并且实现了虚拟交换机卸载;
2)DPU类型的设备所用CPU可以是前面提及的ARM,技术上讲也可以是其他能力匹配的CPU比如X86等,但是产品化要考虑性能、功耗、产品体积、主机插槽等各方面影响;
3)DPU类型的设备比如类似AWS的Nitro卡,也可以提供hypervisor的能力,对BMS和EC2实例提供一致的产品架构和特性能力,这点对于BMS产品实现尤其重要,这里可以参考阿里的神龙相关说明;
4)DPU类型设备提供了服务器“异构”的生态自主构建能力,比如X86的服务器上,可能很多比如Mellanox(已被NVIDIA 收购)的网卡、英伟达的GPU可以很方便的在X86上通过标准的PCI标准提供相应的能力,而无需再直接和X86 主板CPU产生关联;这就使得其他厂商给服务器的主机CPU外围提供更多能力构建的通道,并且不会和主机CPU产生绑定和依赖,也同时“绕开”了主机CPU厂商设置的“门槛”。
所以结合上面的内容,我们看下DPU的出现会给业界带来什么?
1)从技术上来说,可以通过主机外面附加DPU设备使得最大化Host资源使用率,这样通过DPU的廉价性使能在比如云计算场景有更多的主机CPU可以销售,也为提供更大规格单EC2实例甚至BMS提供了方案,而更多的主机CPU出售意味着主机数没有增加而销售产品数量增加了;并且使用DPU的智能网卡等硬件卸载提升网络能力和存储能力,以及加解密安全能力;而DPU设备对于主机的透明性,增加了云计算主机被入侵后的扩散隔离能力;
2)从商业上讲,以DPU对于NVIDIA为例,NVIDIA产品中网卡、GPU外设可以不再受Host主板/板载约束,因为如前面所述,DPU设备通过PCI标准通信,实现了CPU算力的逐步抢占,即可以在维持客户数据中心已有X86设备的基础上来叠加NVIDIA的设备能力,并且逐步蚕食这块算力市场,从而构建NVIDIA在数据中心整体能力建设,最终实现数据中心全NVIDIA的“设备全栈”目标;以突破比如intel CPU板载网卡必须是本厂商的限制;
3)从趋势上讲,DPU设备对于主机Host来说,使得主机具有了更多“智能化”,虽然原来服务器通常有管理职能化(BMC),但是接口标准性、接口性能、功能丰富度一直存在不足,而DPU设备对于数据中心硬件设备的SDN(Network Defined Software)、SDS(Network Defined Storage)之后的SDC(Network Defined Compute)最后一环提供了一种实现,相比原来纯虚拟化内容的SDC,最终实现了能力加设备的智能管控,即前面提及的SDI能力;
4)DPU设备的出现,解决了数据中心服务器设备尤其是在云场景下带来的一些问题,为数据中心的智能化又实现了重要的一环;但是对于当前来说,如果X86服务器的CPU主机使用了NVIDIA的DPU之后,导致CPU的板载网卡处于无用之地,也给整体设备采购成本、采购流程带来了影响,并且DPU选型需要考虑到市场和客户因素;
5)从整体运行的系统性来讲,原来单主机允许的故障范围,扩大到DPU设备和CPU主机,二者之一有故障就会带来整体的损坏,可靠性和稳定性角度是有下降的,毕竟“没有免费的午餐”,想获得收益就得有付出,只是这个代价是否是客户可以接受的。
6)DPU毕竟也属于一款硬件产品,其研发不仅包括了CPU,还有网卡、OS等,所以对于基于DPU进行所谓自主和服务器设备自身研发不会存在太多差异,甚至还有因为设备体积限制等带来更多制造精度的要求,因此DPU的制造可以当做服务器集成来做,技术上还是有很多可以从服务器商借鉴的;也因此,如果说一款DPU类型的设备全是创业公司自研,那这个自研说法的可信度也自然就值得怀疑;
总之而言,DPU设备提供了较多的实用能力,也有NVIDIA等厂商对产品的定位和市场考虑,但是说“数据中心基础架构”也只能当做厂商自己目标的宣传语看待,还没到必要的程度;并且从DPU的市场来看,主要用于云计算场景,而云计算大厂商基本都会有自己自研设备或设备合作定制;DPU产品之路,且行且看路,因为这条路真不宽。