网络

在 NVIDIA BlueField DPU 上通过 DOCA 加速解决方案开发

DOCA 是用于在 BlueField DPU 上开发应用程序的软件框架。借助 DOCA,您可以从主机 CPU 中卸载基础设施工作负载,并通过 BlueField DPU 加速这些工作负载。这样可以实现软件定义且硬件加速的基础设施,更大限度地提高数据中心的性能和灵活性。

DOCA 现已推出!

NVIDIA 于 2020 年 10 月首次推出 DOCA。NVIDIA BlueField-2 DPU 现已正式推出,DOCA 也已进入早期提供阶段,这样一来,您便可以轻松开发和增强您的方案,利用 BlueField 的功能卸载、加速和隔离基础设施工作负载(包括网络、安全、存储和管理)。在本文中,我们将详细讨论 DOCA 包含什么,以及开发者和 ISV 如何借此创建基于 DPU 的解决方案。

首先,简要概述BlueField DPU的含义和功能。它包含了一个强大的智能网卡,可支持高速以太网或 InfiniBand 两种接口、一组 Arm 核、DRAM 和 PCIe 交换机,通过高速Mesh网络连接在一起。嵌入式 ConnectX 智能网卡包含许多加速器(网络、云、存储、加密、流媒体、时间同步等), BlueField 更是增加了面向安全、存储虚拟化、硬件隔离和远程管理的加速器和功能。

图 1.BlueField DPU 和 DOCA 框架允许将基础设施服务转移到 DPU,从而卸载和加速这些服务。DOCA 支持在应用层和基础架构服务层进行开发

使用 DOCA 的益处

BlueField 的许多功能和加速器均可通过特定 API、开源 SDK 或现有驱动进行访问,因此您可能会问为何应使用 DOCA。使用 DOCA 的主要益处是简化使用 DPU 的基础设施应用程序和功能的开发和部署流程。这样可以加快应用和其它BlueField的功能进入市场的速度:

  • 统一访问所有 DPU 功能 – 让您不必学习和使用多种不同的工具。
  • DPU 的底层 API上提供一个抽象层给上层的库,  – 您可以更快速、更轻松地进行开发,实现和上层业务的集成,并经优化而提供出色的性能;或者和底层接口合作达到更精细的控制。
  • 向前/向后兼容性 – 使用 DOCA 进行开发意味着您的应用可以在未来版本的 BlueField DPU 上无缝运行,且得到了更高的性能和可扩展性。
  • 基于容器化服务的 DPU 调配和部署 – DOCA 包含用于简化 DPU 设置、配置和服务编排的工具。

开发者的 DOCA 1.0 使用历程

DOCA 包含 SDK 软件开发套件和 DPU 运行时平台。SDK 包含 API、开发库、开发者工具和参考应用代码,其运行时包含服务、参考应用程序可执行文件和运行时工具。驱动支持 DOCA 库,DOCA库已经支持 DOCA 1.0包含的参考应用。此外,还有 DOCA 服务,如发送经过滤的遥测数据、DPU 和 SDK 管理工具,以及数据平面(在此版本中通过 DPDK 加速)或控制平面上软件定义网络 (SDN) 的编程接口。

选择您想在在 DPU 上运行的应用或与 DPU 集成的应用,开启您的 DOCA 使用历程。然后,定义您的应用应该在主机 CPU运行、或是在DPU 上运行,还是需要运行在两者之上。主机上运行的应用程序必须面向主机 CPU(通常为 X86)进行编译,而 DPU 上运行的应用程序必须面向 Arm 进行编译。无论采用哪种方式,应用程序都可以通过 DOCA 访问 DPU 的卸载和加速引擎,您可以选择用于开发的 DOCA 应用示例、库和 API。如果主应用程序仍然需要运行在主机 CPU 上,您可以在 DPU 的 Arm 核上创建一个小型代理来激活 BlueField 的 硬件卸载功能,而无需对现有应用程序进行大的修改。

2.开发者的 DOCA 使用历程从开发到部署。

DOCA 编程选项

当您对 DPU 进行编程时,在许多情况下,可以直接访问驱动。这通常需要底层编程和详细的驱动知识。在大多数情况下,对 DOCA 库进行编程会更加轻松,这些库为驱动提供了上层的抽象层。它的优势就是已经针对每个用例进行了调优,可获得更出色的加速性能。参考应用提供了实际工作代码以及 DOCA 库的使用示例。在某些情况下,可以使用这些参考应用作为基础, 然后通过修改它们来满足运行在DPU上的不同应用和方案。

例如您想构建一个可加速的负载均衡器,或者集成一个分布式防火墙的代理到DPU,您就可以选择DOCA中关于深度数据包检测 (DPI)库的相关参考应用。这些库又运行在 DPDK 库上,利用 DPU 内的有状态连接跟踪和正则表达式 (regex) 匹配引擎进行加速。

加速
负载均衡器
NGFW 下一代防火墙代理弹性存储
DOCA 参考
应用
负载均衡器防火墙代理<将于 2021 年 6 月推出>
DOCA DOCA Flow 和 DPIDOCA Flow 和 DPISPDK
底层API/LibFTE_FLOW、DPDK SFT、DPDK REGEX、DPDKRTE_FLOW、DPDK RegExSPDK、BlueField SNAP
DPU 硬件功能eSwitch、连接跟踪、RegExeSwitch、连接跟踪、RegExRDMA、BlueField SNAP、PCIe 交换机


1.三个例子来解释 DOCA 是如何运行在底层 API/LibDPU上,以及如何来访问底层API/LibDPU件功能的。

在大多数情况下,您可以对底层 API/Lib进行编程,而不是对DOCA 库进行编程, 但是如果可以对DOCA 库直接进行编的话, 其实会更简单,甚至还可以修改 DOCA 参考应用程序。对另一些 DOCA 库,如SPDK等,尽管目前尚未提供 DOCA 参考应用程序,但您还是使用 DOCA 1.0的库。关于存储的相关参考应用程序稍后将被添加到 DOCA中。关于时间同步或 IPSec 加密功能等这些应用,它们的API 和功能实现已经可以在最新的 BlueField 操作系统获得。功能实现将在未来版本的 DOCA 库中提供。

从两方面来看DOCA 工具

从开发者的角度来看,DOCA 可划分为两大领域:

  • SDK 组件,帮助您构建在 DPU 上运行或使用 DPU 的应用程序。
  • DOCA 运行时集,包含在 DPU 上运行应用程序所需的组件。

其中的SDK 又包含开发库、驱动和工具包,以及参考应用相关的文档和参考代码源。

运行时包含二进制库、运行时二进制文件、编译工具、安装工具、基准测试程序以及各种 DOCA 服务代理。借助这些,您可以使用不同的 DPU API 和功能,设置 DPU 卡、安装合适的操作系统,以及在 DPU 上运行您的软件。运行时还包括各种管理工具,用于配置和支撑服务器中和网络中的 DPU卡,同时支持编排容器化操作与各种加速服务。

DOCA 中包含的参考应用程序

DOCA 1.0 包括了使用DPI 的加速负载均衡器参考应用程序,以及使用 DPI 和 regex 模型匹配的下一代防火墙代理参考应用程序。他们都充分利用了 DOCA库和DPU 上的加速功能的优势。它们包含源文件,无需在 DPU 上进行编程。但是,它们可以提供 DPU API 和库的使用示例,从而简化应用程序的开发和集成。未来的 DOCA 版本中可能会添加更多的参考应用程序。

DPU 管理工具和其他功能

  • SDK 管理器 – 帮助您在运行 DPU 的机器上安装和更新 BlueField SDK。它会在主机上安装 DOCA SDK 和运行时,并在主机上安装用于更新 BlueField 的操作系统和 DOCA 的开发容器。
  • 配置工具 – 旨在简化管理和自动化部署数据中心中的大量 DPU 卡,可以通过脚本和管理工具来实现。DOCA 1.0 中目前不包含这些工具,但很快会添加到 DOCA中。
  • 遥测 – 可以在DPU上选择性地捕获和共享网络和服务器的关键遥测数据,然后分享和收集这些数据给日志管理工具、数据分析工具或网络安全工具等。

有一些 BlueField DPU 功能在DOCA 1.0 SDK 中不支持,但是 DOCA 运行时对此提供了支持。以下功能目前可以从 BlueField DPU 软件包或 Mellanox OFED 库中获得,并将被添加到未来版本的 DOCA SDK中:

  • 网络流量加密(使用 IPSec 或 TLS)
  • 面向时间同步数据中心的超级准确的精度时间协议 (PTP)
  • 高性能计算/AI 的集合通信卸载
  • 关于 NVIDIA GPUDirect Storage (GDS) 的支持
  • 等等……

同样,通过 DPU 将远端网络存储虚拟为本地 NVMe SSD 或 virtio-blk(虚拟IO-块存储)设备的BlueField SNAP 技术。DOCA 运行时现在包含的 SNAP 功能,可支持通过 SPDK 库访问上层开发者 SDK,更多的SNAP功能将会逐渐添加到 DOCA SDK。

DOCA 愿景

DOCA 的路线图包括了支持使用 DOCA 访问 BlueField DPU 的几乎所有功能。图 3 是 DOCA 软件栈的计划,包括了对于运行在各种 DOCA 服务、库和驱动上的不同类型的上层应用。

3.随着DOCA 不断发展,将为几乎所有的 BlueField DPU 功能提供全面支持。

NVIDIA 希望您能轻松使用 DPU 的各种功能,并简化以下流程:在 DPU 上创建新应用程序,或者将现有应用程序与 BlueField DPU 集成。随着 新DOCA系列版本的发布, 将不断扩展 DOCA 中的驱动、库、服务和应用示例等。您将能够使用 NVIDIA DPU 创建更先进、更高效的解决方案,加速基础设施服务。使用 DOCA 提高数据中心的性能、效率、安全性和可管理性。您可以立即申请访问 DOCA

有关更多信息,请参阅以下资源:

Tags