NVIDIA BlueField DPU 助力数据中心应用的卸载、加速与隔离
2021-09-01 10:18
当今的数据中心正在迅速地发展,这就需要一种被称为 DPU(数据处理器)的新型处理器。新数据中心的一些应用需要的是一种可卸载、加速和隔离的特定类型 DPU 架构。
8月23日,在 Hot Chips 33 大会上,NVIDIA 芯片架构师 Idan Burstein 探讨了数据中心不断变化的需求,以及这些需求如何推动 NVIDIA BlueField DPU 系列产品的架构。
以前的数据中心需在专用服务器集群上独自运行应用,现如今已不同从前。现在,CPU 计算、GPU 计算和存储等资源已被解聚,可以根据需求将资源组合(分配和组装),还可以根据应用和工作负载的变化对资源进行重新组合或重新分配。
GPU 加速的 AI 正在成为主流,其增强了大量的商业应用,而不仅仅是科学应用。以虚拟化为主的服务器,现在很可能是在裸金属服务器上的容器中运行,尽管这些服务器不再有管理程序或虚拟机,其仍然需要软件定义的基础设施。为支持保证信息安全的零信任方法,防火墙代理和反恶意软件过滤器等网络安全工具必须在每台服务器上运行。这些变化对网络、安全和管理所需的工作方式产生了巨大影响,进而推动了每台服务器对 DPU 的需求。
DPU 任务的最佳定义:卸载、加速和隔离基础设施应用。
卸载:从服务器 CPU 中接管基础设施任务,这样就可以让尽可能多的CPU计算能力来运行应用。
加速:运用 DPU 芯片硬件中的加速,以比 CPU 更快的速度运行基础设施功能。
隔离:将关键的数据面和控制面功能转移到 DPU上,这既减轻 CPU 的工作,同时还可以在 CPU 或其软件被破坏时保护这些功能。
一个 DPU 需要具备完成以上三个任务的能力。
图1:数据中心已发展成为软件定义、容器化和可组合的特性。卸载基础设施任务至 DPU 可提高服务器性能,效率与安全。
仅移动 CPU 核是不够的
一些 DPU 厂商所尝试的一种方法是,在 DPU 上放置大量的 CPU 核以用于卸载服务器 CPU 的应用。无论是 Arm、RISC、X86 还是其他类型的 CPU 核,这种方法都具有根本缺陷,因为服务器的 CPU 或 GPU 对于 CPU 最优或 GPU 最优的应用已是高效的。虽然 DPU 上的 Arm(或 RISC 及其他)核确实可能比一般的服务器 CPU 更节能,但除非 Arm 核有一个用于该特定应用的加速器,否则不值得为了节能而增加复杂性。
此外,目前市面上已出现基于 Arm CPU 的服务器,例如基于 Amazon EC2 Graviton 的实例、Oracle A1 实例,基于 Ampere Computing 的 Altra CPU,以及 Fujitsu 的 A64FX CPU 的服务器。在 Arm 上高效运行的应用,均可部署在 Arm 服务器上。只有在某些功能必须与服务器 CPU 隔离的情况下,例如控制平面或基础设施应用程序的一部分,才需要移动到 DPU 的 Arm 核上。
无论从技术角度出发,还是从经济角度出发,将一个标准应用的工作负载从服务器的 N 个 X86 核卸载到 N 个或 2N 个 DPU 的 Arm 核上都毫无意义。将 AI 或机器学习应用从服务器 GPU 卸载到 DPU 的 Arm 核上亦是如此。将应用从服务器的 CPU 和 GPU 转移到 DPU 的 CPU 上,并且不进行任何类型的加速的举动,充其量只是虚晃,最坏的情况还会降低服务器的性能和效率。
图2:将应用从服务器的 CPU 转移到无加速 DPU 的 CPU 核上,除了满足将这些应用与 CPU 服务器域中隔离的需求外,其他场景都毫无益处。
DPU 最适合的加速类型
很明显,一个合适的 DPU 必须通过硬件加速来增加数据中心的最大效益。它应该加速什么?卸载涉及数据移动和安全性的应用,DPU 是最佳选择。例如,网络与远程直接内存访问 (RDMA) 都最适合卸载到 DPU 芯片,RDMA 常用于加速 AI、HPC、大数据和存储应用的服务器之间的数据移动。
对比 CPU,如果 DPU 具有针对特定任务的加速硬件,卸载和运行效率将会提高很多。若应用满足于 DPU 的硬件加速能力时,一个设计合理的 DPU 可以执行 30 个、100 个 甚至 是 300 个 CPU 的工作。
DPU 的 CPU 核非常适合运行必须与服务器应用程序,以及操作系统域隔离开的控制平面,或安全应用。例如,在裸金属服务器中,租户不希望在他们的服务器上运行管理程序,或虚拟机来进行远程管理、遥测或安全,因为这会损害性能,或干扰到应用程序。然而,云运营商仍然需要能够监控服务器的性能并检测、阻止或隔离入侵该服务器的安全威胁。
DPU 可以独立于应用程序域来运行此软件,提供安全和控制,同时不干扰服务器的性能或操作。