DPU(Data Processing Unit)是以数据为中心构造的专用处理器。那么为什么需要DPU?DPU主要承担什么功能?它带来什么影响?我们可以通过四个关键字快速认识DPU:数据中心数据卸载重构

数据中心

数据中心由大量的服务器构成。计算、存储、网络数据传输是数据中心的三大核心功能。
数据中心服务器
CPU之上运行操作系统虚拟机管理器Kubernetes等基础软件。在此之上业务应用部分通过虚拟机容器进行部署,实现资源共享、弹性伸缩、多租户、微服务、SaaS等。底层由GPUFPGA提供硬件加速,所有的加速资源网络资源存储资源由CPU统一协调调用。此时CPU不仅仅是控制的中心,也是数据流动的中心。

数据

数据中心
以CPU为中心的数据中心面临多方面的挑战:

  • 构建于虚拟化和容器基础上的业务系统一方面带来了极大的便利,另一方面由于虚拟化的开销越来越大。
  • 基础设施和业务处于同一个计算平台,基础设施的性能突发会干扰业务的性能稳定度;
  • 还有一个问题就是安全访问,宿主机侧管理具有业务虚机等的所有权限,运维管理的一些误操作,以及宿主机OS的一些漏洞被攻破后,黑客不但可以破坏宿主机,还可能导致用户的数据安全。

这些挑战在数据量剧增的情况下更是严峻:随着我们信息社会从互联网时代向物联网时代发展,万物互连,万物智能,数据中心需要负责海量的数据的收发和处理需求。来自终端的南北向数据流,比如直播、视频游戏、视频会议、电子商务、智慧城市、城市大脑等业务不仅仅是数据量大,高并发,对算力要求高,而且有些业务对时延也很敏感。另外一个方面,数据中心内部位于不同服务器内的服务组成服务网格,也使得东西向数据流也剧增。
CPU-workload
面对数据中心流量和业务带来的挑战,以CPU为中心的架构已经不堪负重。比如加速部分数据在CPU和加速器之间来回搬运的影响,加速比率打了折扣,有些场景综合加速效果不明显,以CPU为中心,整个IO路径很长,IO成为性能的瓶颈。如图所示,12个Core的CPU,提供能够提供给租户的就4个Core,其他8个Core都要用于处理网络传输存储安全相关的基础业务。数据中心的算力需求一直在增长,考虑到CPU的性能瓶颈,我们需要有个平台来帮助CPU承担绝大部分算力的压力,而让CPU专注于应用层算力需求虽然不大但非常高净值的工作。

卸载

DPU为中心
DPU可以有效卸载数据中心的基础设施方面的功能:

  • 虚拟化方面,可以在Host CPU侧存在一个轻量的Hypervisor Agent,然后在DPU支持Hypervisor、呈现给Host的设备管理(vDPA,SRIOV,SIOV)、设备迁移等。
  • 网络方面,网络类的任务处理非常消耗CPU资源,可以通过DPU卸载OVS,也可以引入DPU智能网卡将虚拟化网络的控制平面完全卸载到智能网卡上,与主机操作系统相隔离。
  • 存储方面,DPU可以虚拟多个存储设备给主机,这些存储设备可以是NVMe也可以是VirtIO-BLK,从主机来看,这些存储设备相当于是本地磁盘设备。但实际上这些存储盘都是通过网络存储协议连接到远端的存储设备,这些网络存储协议以及相关的控制都是下沉到DPU上来完成的。这些网络存储协议可以是标准的协议,比如NVMe Over Fabric, NVMe Over TCP和iSCSI, 也可以是用户自己定义的网络存储协议。除此此外,DPU还可以支持其他类型的存储卸载,比如存储数据的压缩解压缩,加密解密,也支持存储数据的签名和校验,比如T10-DIF.
  • 安全方面,DPU也提供众多的卸载功能,比如支持网络数据的在线(inline)加密和解密, 包括SSL/TLS和IPSec, 也支持对网络第7层数据的正则表达式匹配(RegEx)以及基于它的DPI支持。DPU 也支持PKI,从而实现TLS握手协议的硬件卸载。另外DPU本身是一个安全设备,可以确保自身的Firmware, Bootloader以及BMC code不受到串改。
  • IO加速,通过运行于CPU的控制面和慢路径,定义好之后,绝大部分数据流量的处理都在DPU就可以完成,不需要进CPU。

当然不同的DPU实现的卸载的程度有差别,或者是分阶段的:

  • 第1阶段,卸载1个任务。网络卸载,成为智能网卡。分布式远程存储遇到问题,卸载存储,成为智能存储卡。
  • 第2阶段,卸载2-4个任务(非严格定义)。CPU的功能任务不但卸载,还需要卸载的功能集成到一个平台。比如把最底层的网络、存储、虚拟化和安全四大类功能从CPU侧卸载到DPU中。
  • 第3阶段,卸载5项以上。把整个系统栈里能够卸载的任务都尽可能的卸载到DPU中。这里可以给出卸载的一个更加通用的标准:①性能敏感,占据较多CPU资源;②广泛部署,运行于众多服务器。当整个系统栈都尽可能进行卸载加速之后,IPU的名称要更准确一些(IPU,基础设施处理器)。
  • 第4阶段,不但全量卸载,还需要均衡和弹性。卸载下来的任务需要更多的灵活性,形成弹性的基础设施支撑平台。或者说,需要把IaaS的服务融入到DPU中,并且这些服务的业务逻辑需要仍由云服务提供商CSP的软件工程负责定义,并且能够很好的支持多租户、微服务、一致性等云的高级特征。

重构

数据中心架构转变
由于数据量大于计算量之后,整个计算的模式就从计算驱动变成了数据驱动。这样促进了数据中心服务器架构的重构,DPU成为整个服务器架构的核心器件。

DPU承担的事情越多,其功能也就需要越强大,其定位也就越来越不一样。对应上面的DPU实现的四个不同的阶段可以把DPU的定位分为四个层次:
层次一,DPU是CPU的任务卸载/加速。克服CPU性能瓶颈,把网络、存储、虚拟化及安全等任务从CPU卸载到DPU加速,减轻CPU的压力。
层次二,DPU是基础设施,支撑上层应用。DPU成为集成加速平台,既完成基础设施层工作任务处理,也完成部分业务应用的加速,支撑CPU和GPU的应用层工作。
层次三,DPU/IPU是计算的核心。IaaS甚至PaaS、SaaS等云计算核心服务,融入到DPU软硬件。DPU图灵完备,并且是数据的入口。这使得DPU成为核心,而CPU和GPU成为扩展。
层次四,DPU/IPU的本质是超异构计算。算力持续提升,数据中心的超异构计算,DPU是核心承载。基于超异构的复杂计算,需要在极致灵活性的基础上,提供极致的性能。

总结

概括地说,DPU就是在数据中心面对海量数据导致CPU不堪负重情形下,负责卸载基础设施功能的一种新形态的处理器,其也将引发数据中心架构从以计算为中心到以数据为中心的重构

参考链接

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐