Technical Walkthrough

使用 NVIDIA DOCA SDK 对整个数据中心基础设施进行编程

今天,首席执行官黄仁勋在其 NVIDIA GTC 秋季主题演讲中推出了一种新型处理器,即 BlueField-2 DPU(数据处理器),和一款功能强大的 DPU 新软件开发套件 – DOCA,以及 DPU 和 AI 创新的三年路线图。NVIDIA BlueField-2 DPU 首次实现了集数据中心基础设施于芯片的架构,并针对现代企业数据中心进行了优化。在支持 DPU 卸载、加速和隔离数据中心服务,推动企业和 AI 应用程序将性能、安全性和可靠性提升至新高度方面,DOCA 起着关键作用。具体而言,DOCA 旨在帮您在当前和未来的 BlueField DPU上,提供广泛的面向可加速的软件定义网络、存储、安全和管理服务等。

1.运行在 DPU 上的面向数据中心基础设施应用的 DOCA 分层。

NVIDIA 还发布了 BlueField-2X,这是一款先进的基于 AI 的DPU,完美集成了 BlueField-2 的所有功能与 NVIDIA的 Ampere GPU 技术。DOCA 将添加对于 BlueField-2X 的支持,让您能够构建基于 AI 的、且经过优化的基础设施管理和网络安全应用。有关 DPU 如何提高数据中心安全性和效率的更多信息,请参阅什么是 DPUNVIDIA DPU

凭借 DOCA 及其 BlueField DPU 系列,NVIDIA 正在重新塑造企业数据中心架构,让您可以构建安全且加速的基础设施服务。DOCA 之于 DPU 就像 CUDA 之于 GPU。就像CUDA 让您实现了加速计算应用的编程一样,DOCA可让您对数据处理的加速应用进行编程,将数据移入和移出服务器、虚拟机和容器。DOCA 与 CUDA 一起,服务于一个安全、加速的数据中心中的各类 NVIDIA AI 应用。

DOCA 已面向精选的抢先体验合作伙伴推出。如果您感兴趣,可以在 DOCA 开发者领地页面注册了解进一步信息。BlueField-2 正在样品阶段,它在多个操作系统发行版下的驱动、工具、加速库已经可以工作。

在本文中,我将探讨 DOCA 的优势并深入探究 API,提供一个功能强大的开发工具,实现从数据中心到边缘全面提升服务器的性能、效率和安全性。

应对软件定义一切的挑战

Marc Andreessen 在 2011 年一份著名的出版物中说:“软件正在吞噬整个世界。”时间快进到 2020 年。现在,在企业数据中心中占主导地位约 15 年之久的硬件设备已经转变为虚拟化、按需付费、安装在每台服务器上的软件服务。现代企业数据中心是软件定义、完全可编程的数据中心,旨在跨云、核心和边缘环境为高度分布式的应用工作负载提供服务。

软件定义的数据中心可提供类似云的灵活性和敏捷性,但会消耗许多CPU核资源。软件定义的“性能税”会消耗我们的业务应用或租户的 CPU 资源,并且降低服务器和数据中心的效率,有时还很严重。

DPU 位于每个数据中心的节点内,DOCA 可以让应用程序开发者和 NVIDIA 技术合作伙伴可以提供运行在 DPU上的各种服务,让 DPU 成为与业务隔离的、安全的服务域(或 Enclave),用于网络、安全、存储和基础设施管理。DPU 可加速所有关键数据中心的基础设施服务,还可以上运行控制平面的软件,如软件定义网络 (SDN) 的控制器、分布式存储软件,或在可编程 Arm 核上运行新一代防火墙代理。

2.DOCA 实现了在 DPU 上的各种基础设施(网络、存储、安全和管理)应用运行在一个与 CPU 上的应用域相分离的一个隔离的、安全的服务域中。

加快基础设施服务走向市场的时间

DOCA 是一款 SDK,包括了 API、驱动、库、示例代码、文档和预设的容器等,可激活 BlueField-2 DPU 的加速、安全和虚拟化功能。DOCA 为您提供一套统一且可靠的工具,用于开发基于 DPU 运行的关键数据中心服务,以处理多种类型的数据处理。其中包括定向网络流量;存储的加速、虚拟化和压缩;数据加密和解密;安全威胁扫描;与远程管理工具的集成;在 Arm 核上运行控制平面应用。您可以对这些卸载和加速器进行编程,实现单独或一起使用,并可与基于 GPU 的 NVIDIA AI 平台进行集成。

DOCA 助力应用程序开发者、设备供应商、研究人员和 NVIDIA 软件合作伙伴通过一个 SDK 对所有这些 DPU 功能进行编程。许多功能的接口在底层的 API 和上层编程语言中均会提供。这些基于 DPU 运行的服务不仅仅是软件定义、硬件加速,而且支持 AI、易于编程。

未来几代 BlueField DPU 将借助新的增强型加速器提供更强的计算力。DOCA 可通过扩展API的方式来支持新的功能,确保了与DPU 的前向兼容。NVIDIA 致力于通过架构流程技术和软件创新来提升性能。我们持续提升云、核心和边缘环境以及应用工作负载的性能和功能。

简化 BlueField DPU 上的服务创建流程

下面,我们进一步了解 DOCA 如何处理四项关键的数据中心功能:网络、存储、安全性和管理。

网络

对于网络,DPU 可加速领先的的数据中心 SDN 和网络功能虚拟化 (NFV):开放虚拟交换 (OVS)、Overlay 网络(例如 VXLAN)、网络地址转换 (NAT)、自动负载平衡、细粒度流量管理和内容分发网络。

DOCA 支持您通过标准 DPDK API将服务应用和DPU加速引擎关联起来,例如 rte_flow 库可以支持基于流的不同操作,包括Overlay封包、、header rewrite, hairpin,以及对广泛的虚拟网络功能的测量。

为提升性能和主机 CPU 效率,DOCA 还包含了原生 OVS 和 OVS-over-DPDK 应用程序,通过 BlueField DPU 的硬件加速交换和数据包处理 (ASAP 2) 技术提供无缝加速。DPU 硬件对于主机网络的加速,由 DOCA 编程平台上运行的 OVS 应用来定义,数据中心 SDN 控制器来编排所有网络,并通过 DPU 的带外管理端口进行连接。

P4 是另一种语言,可以对 BlueField DPU 中灵活、可编程的数据路径加速器进行编程。DOCA 支持 P4语言,可支持未来基于 P4 开发的 VNF 业务。这个功能被集成到了已经拥有丰富的 VNF 产品生态系统的其它 API 中 。此架构允许同时执行面向内核、RoCE、DPDK、SPDK、P4 和 P4.runtime 接口编写的程序,这些可无缝共存并充分利用 DPU 数据路径加速。

存储

对于存储,DPU 支持加速软件定义的弹性存储、NVMe over Fabrics (NVMe-oF)、RoCE、静态数据(data-at-rest)加密、数据删除、分布式纠错和数据压缩。BlueField DPU NVMe SNAP 技术可提供弹性块存储功能,并向主机提供远程块存储,如同它是本地 NVMe 块存储或 VirtIO blk 块设备一样具有低延迟、高吞吐量和高 IOPS等特性。

DOCA 完全支持 SPDK 开源框架,可助力您创建自己的存储解决方案。通过模拟对 PCIe NVMe 磁盘的的访问,利用 BlueField DPU 的多项加速功能来实现各种自定义的逻辑,主机应用可以透明地管理模拟出来的NVMe存储。其中包括加密、ECC 分布式纠错、压缩、重复数据删除和恶意软件扫描。如果您要通过 DOCA 进行编程,现在无需对个别引擎进行显式编程,即可轻松调用用于数据存储的功能。

安全性

DPU 还可以卸载、加速和隔离所有关键数据中心安全服务。其中包括支持新一代防火墙、微分段、使用透明 IPSec 和 TLS 进行动态数据在线加密以及入侵保护。DPU 拥有一组专用的安全引擎,包含了构建安全解决方案的所有模块。

DOCA 包含一组用于开发安全应用程序的标准化 API。所有安全服务均始于数据包采集、解密、连接状态的有状态跟踪,一直到第 7 层深度数据包检查。这样会将应用程序流量分类为受信任或恶意。此外,它最终还会将定义的安全策略转换为一系列操作,例如数据包允许、丢弃、重写或重定向。编程通过标准 DPDK API 完成,如下所示:

  • rte_security,用于加密和解密
  • rte_sft 库,用于连接感知
  • rte_regex 库,用于正则表达式模式匹配
  • rte_dpi 库,用于对所有流水线加速函数进行深度包检查

DOCA 还支持基于 IPSec、TLS 和存储 AES-XTS 的原生内核加密,由 DPU 实现在线加速,可以轻松用于基于 OpenSSL 或 OVS-IPSec 的应用。这支持 DPU 在不通知主机的情况下透明地对所有流量进行加密和解密。其中包括 DPU 在安全 Enclave 内执行密钥管理。

通过 RDMA 库对主机进行快速内存访问,DOCA可让您创建严格的主机自检方案。借助自动恶意软件扫描,您可以进一步了解从 DPU 到主机的一举一动。如果发现恶意活动,您可以通过对 DPU 的硬件加速引擎的编程,达到以线速来执行策略。

基础设施管理

传统管理会在每台服务器上运行代理。但是,运行这些代理会消耗本可用于业务应用的 CPU 周期。代理通常无法监控服务器上 VM之间以及容器之间的网络流量。如果代理执行数据包过滤或流量遥测等功能,则会消耗更多 CPU 周期。如果服务器发生严重故障,则基于 VM 或容器的管理代理不太可能报告状态或重启服务器。

DOCA 允许于业务隔离的、基于 DPU 的代理执行带内或带外管理,而不会给服务器 CPU 增加负担。如果服务器需要重置,或者甚至租户或业务应用需要一台无代理的裸金属服务器,通过 DOCA 编程的 DPU 仍可发送遥测数据、执行远程重置或允许安全启动服务器,这些操作均无需在服务器 CPU 上运行代理。

BlueField 和 DOCA:强强联手

通过 BlueField DPU 和 DOCA,可以整合通常无法一起部署的数据中心基础设施服务。例如,由 CPU 或独立Look-aside加密卡对动态数据进行加密时,无法和 RoCE、压缩、哈希或 Overlay 网络一起工作。事实上,执行此类加密会禁用以上操作及许多其它网络卸载功能。这是因为,如果先对数据进行加密的话,意味着网络设备不再能识别数据包的内容,进而无法执行巧妙的数据包重路由、过滤、拥塞管理等操作。但是,使用 BlueField DPU 和 DOCA, 您可以通过编程将 RoCE、VXLAN、哈希计算、压缩,以及许多其它卸载功能与加密功能组合在一起,以及它们之间互相组合。

DOCA 将对所有功能合并到一个 SDK,让您使用基于通用开放API的加速库来即刻释放 DPU 的力量。您还可以使用 DOCA,透明地将关键控制平面应用或代理从 X86 域移植到 DPU 的Arm 核,从而提高服务器性能、效率,并实现工作负载和安全的隔离。

对数据处理加速和 AI 进行编程

重要的是,DOCA 更进一步地支持先进的 GPU 加速的 AI 工作负载,被完全整合到了大型 NVIDIA NGC 加速计算软件平台,成为了其中的一个测试项。

对于传统的企业应用,DOCA 可加速包含 BlueField DPU 的系统中的数据中心基础设施服务。但是,对于包含 DPU 和 GPU 的系统,加速 AI 和数据分析工作负载具有巨大优势。DOCA 已集成到 NGC 认证计划。它可以充分利用大量的开发、集成和测试资源,支持我们的全部 AI 应用程序框架(NVIDIA Riva、NVIDIA Merlin、NVIDIA Metropolis、NVIDIA Clara、NVIDIA Aerial 等)。DOCA 与 NGC 平台集成,还释放了各类第三方软件基础设施与应用的强大功能。

您可以将 DOCA 与 CUDA 结合使用,通过 GPU 加速计算并通过 DPU 加速数据中心服务。您还可以使用 DOCA 启用 GPUDirect,加速整个网络中 GPU 之间的通信。

通过 DPU 简化对数据中心的加速和提升效率

DOCA 就像一个统一的编程网关,供 NVIDIA 开发者社区、合作伙伴和客户在 DPU 上进行开发,使他们受益于对于网络、存储和安全的加速以及简化管理。基于DOCA 开发的程序运行在 BlueField DPU 上,可以为数据中心内的每台服务器和每个存储节点卸载、加速和隔离端到端数据中心服务。因此,企业和私有云可通过硬件加速的 DPU 的性能和效率,实现软件定义服务的灵活性和可扩展性。

通过 DPU 实现对数据中心基础设施进行软件定义和硬件加速,您可以提高所有服务器的性能、效率和安全性。您将实现一种新的架构,那就是数据中心成为了新的计算单元。NVIDIA DPU 在单个芯片上实现了数据中心基础设施的各项功能,而 DOCA 则助您轻松地提高了数据中心的可扩展性、性能和威胁保护。

立即试用 DOCA

现在,您可以使用 BlueField DPU 软件包体验 DOCA,该软件包包含适用于网络、存储和安全的 DOCA 运行时加速库。这些库有助于您对 DPU 上运行的数据中心基础设施进行编程。

DOCA 程序现已面向精选的抢先体验合作伙伴推出。要接收有关 DOCA 的新闻和更新或成为抢先体验合作伙伴,请参阅 DOCA 页面。