科技云报道原创。
有人说它叫DPU(dataprocessingunits),也有人说它叫IPU(infrastructureprocessingunits),我们不妨用“数据基础设施”一词来一个和稀泥式的命名,因为它的出现本就是数据基础设施领域近年来的一大创新。
为了方便起见,本文还是把它叫做DPU。
经典的传统服务器架构中,CPU在处理各种业务工作负载的同时,还要负责包括网络、存储、安全以及虚拟化软件等非业务型工作负载,由于CPU需要承担很多非工作型负载,导致可用于运行业务负载的空间大大压缩,DPU的出现就是为了缓解这一问题。
DPU与SmartNIC智能网卡有千丝万缕的关系,有人说DPU就是SmartNIC的加强版,在一些语境下两者就是一回事儿,在下文讲出具体的区别之前,我们谈两者的共同点,那就是,都能用卸载来减少CPU资源消耗,从而提升服务器乃至数据中心的运行效率。
英伟达的*仁勋曾表示,在虚拟化和微服务等技术的推动下,数据中心CPU要处理的任务越来越多,在每年出货的大约万台服务器中,有三分之一用来运行数据中心的软件定义的网络堆栈,他认为必须将这部分工作负载卸载掉。
来自谷歌和Facebook的研究也表明,CPU周期里有22%到80%都用来处理各种微服务工作负载。
我们可以粗暴地认为,如果能把这些工作负载交给别人来做,数据中心在CPU资源方面的投入,可以省下22%到80%。
许多研究数字表明,卸载的效果将非常诱人,然而,这场关于卸载的创新与变革,历经近二十年时间才完成。
虚拟化技术的创新,将CPU卸载进行到底
年的VMwarex86虚拟化完全由软件独立完成,由于缺少硬件支持,全靠软件模拟,其性能损耗堪称灾难,以至于没多少人能看出这有什么用。
年以来,IntelVT-x和AMD-V技术的出现,解决了CPU和内存的硬件虚拟化问题,从而提升了整个虚拟化系统的性能,越来越多的人开始注意到虚拟化技术的价值。
随着PCIeSR-IOV以及IntelVT-d等技术的兴起,I/O硬件虚拟化,包括网络和存储的硬件虚拟化方面都取得重大进步,在性能和灵活性上都有极大提升。
从纯软件模拟的原始虚拟化阶段,到后来的半虚拟化阶段,虚拟化技术越来越多地利用硬件本身的能力,系统的性能和运行的效率也随之提升。
下图是技术大神BrendanGregg汇总的亚马逊云(AWS)EC2虚拟化技术变迁的历史,同样也记录了整个虚拟化技术的发展历程。
发展历程中,值得划重点的历史时刻是年。
这一年,亚马逊云发布Nitro系统,同年,阿里云也宣布有类似功能的神龙架构。
回看过去,我们可以将这一年称之为DPU元年,直到三年后英伟达将其命名为DPU之后,才有了一个统一的叫法。
亚马逊云的Nitro系统有专有的硬件,不仅完成了I/O的硬件虚拟化,更重要的是,它还将虚拟化管理程序Hypervisior从原来的CPU卸载到了专用硬件上,于是,虚拟化技术的性能损耗趋近于零,CPU的能力几乎完全用来运行业务负载。
从使用的角度看,亚马逊云Nitro不仅为云主机带来了虚拟化技术的灵活性,还带来了近似裸金属的性能,鱼和熊掌兼得。
从经济的角度看,当宝贵的CPU资源能被充分利用,同样的成本可以得到更多性能,整个工业界为之震撼。
从虚拟化技术的角度看,虚拟化技术的性能损耗问题,因为有了专有硬件的卸载而取得了巨大进步,同时,也意味着cpu的卸载也进入了新阶段。
DPU燃起来的三把火
虽然,此前也有过一些把存储和网络以及安全等能力卸载到专用硬件上的做法,但直到年英伟达发布BlueField-2并将其命名为DPU之后,DPU一词才真正走进了大众视野。
尽管有争议,但DPU的名字能叫起来说明还是有些道理的,那么,到底什么是DPU?DPU的命名者英伟达是怎么区别SmartNIC和DPU的呢?
上图可见,英伟达认为基于SoC的智能网卡就是DPU,DPU是功能最强大的SmartNIC,DPU新增了虚拟化,网络功能虚拟化(NFV),安全,存储等功能,这种说法也基本符合我们看到的趋势。
维基百科上解释,DPU通常包含做通用计算的CPU、NIC网卡和可编程数据加速引擎,使得DPU同时具有通用计算能力和可编程性,而且,在网络数据包、存储IO处理方面的效率都非常高。
所以,我们可以认为,做网络、安全、存储以及虚拟化的专用系统都算是DPU。
DPU话题热度非常高,DPU被称作是CPU、GPU之后的第三个主力芯片,市场空间不难想象的大,国内市场上芯启源、中科驭数、星云智联、云豹智能都受到了很高的