欢迎关注软硬件融合公众号:
编者按:
NVIDIA最大的成功是把GPU变成了GPGPU,使之成为了最广泛的异构加速器件;而构筑起坚固护城河的的则是庞大的CUDA生态。2020年10月,NVIDIA DPU发布,同步发布了DOCA开发SDK及框架。是否能够基于DOCA构建DPU的成熟生态,复制GPU和CUDA的成功,大家拭目以待。本文是DOCA SDK及框架的综述。1 DOCA定义
现代企业数据中心是软件定义、完全可编程的数据中心,旨在跨越云、核心和边缘环境为高度分布式的应用工作负载提供服务。软件定义的数据中心可提供类似云的灵活性和敏捷性,但会消耗许多CPU核资源,降低服务器和数据中心的效率。通过DPU和DOCA(Data Center Infrastructure on a Chip Architecture),可以实现软件定义且硬件加速的基础设施,更大限度地提高数据中心的性能和灵活性。DPU位于数据中心的服务器节点内,DOCA是用于在BlueField DPU上开发应用程序的软件框架。借助DOCA,可以在BlueField DPU,从主机CPU卸载并加速基础设施工作负载。开发者基于DOCA开发运行在DPU上的各种服务,让DPU成为与业务隔离的、安全的服务域(或Enclave),用于网络、安全、存储和基础设施管理。DPU可加速所有关键数据中心的基础设施服务,还可以运行控制平面的软件,如软件定义网络(SDN)的控制器、分布式存储软件,或在可编程Arm核上运行新一代防火墙代理。2 NVIDIA Bluefield DPU
嵌入式ConnectX智能网卡包含许多加速器(网络、云、存储、加密、流媒体、时间同步等),BlueField更是增加了面向安全、存储虚拟化、硬件隔离和远程管理的加速器和功能。3 DOCA的功能组件
DOCA SDK提供行业标准的开放式API和框架,其中包括用于网络和安全的DPDK和P4,以及用于存储的SPDK。这些框架通过集成的NVIDIA加速包简化了应用卸载开发。
DOCA SDK支持一系列操作系统及其发行版本,并且包含驱动、库、工具、文档和示例应用程序。
基于DOCA的服务以行业标准的I/O接口开放给计算节点,从而实现基础设施虚拟化和隔离。
DOCA运行时环境包括用于在数据中心内的数百或数千个DPU上进行预置、部署和编排容器化服务的工具。
BlueField DPU和DOCA框架允许将基础设施服务转移到DPU,从而卸载和加速这些服务。DOCA支持在应用层和基础架构服务层进行开发。SDK包含的关键组件:行业标准API:DPDK、SPDK、P4;
网络加速SDK:ASAP2 SDN、模拟的VirtIO、P4、5T for 5G技术;
安全加速SDK:inline加密、深度数据包检测;
存储加速SDK:存储Emulation和虚拟化、加密和压缩;
RDMA加速SDK:UCX、RDMA Verbs、GPUDirect;
管理SDK:部署、预配置、服务编排;
用户空间接口和内核空间接口。
运行时包含二进制库、运行时二进制文件、编译工具、安装工具、基准测试程序以及各种DOCA服务代理。借助这些,您可以使用不同的DPU API和功能,设置DPU卡、安装合适的操作系统,以及在DPU上运行您的软件。运行时还包括各种管理工具,用于配置和支撑服务器中和网络中的DPU卡,同时支持编排容器化操作与各种加速服务。DOCA 1.0包括了使用DPI的加速负载均衡器参考应用程序,以及使用DPI和regex模型匹配的下一代防火墙代理参考应用程序。他们都充分利用了DOCA库和DPU上的加速功能的优势。它们包含源文件,无需在DPU上进行编程。但是,它们可以提供DPU API和库的使用示例,从而简化应用程序的开发和集成。未来的DOCA版本中可能会添加更多的参考应用程序。SDK管理器。帮助在运行DPU的机器上安装和更新BlueField SDK。它会在主机上安装 DOCA SDK和运行时,并在主机上安装用于更新BlueField的操作系统和DOCA的开发容器。
配置工具。旨在简化管理和自动化部署数据中心中的大量DPU卡,可以通过脚本和管理工具来实现。
遥测。可以在DPU上选择性地捕获和共享网络和服务器的关键遥测数据,然后分享和收集这些数据给日志管理工具、数据分析工具或网络安全工具等。
以下功能目前可以从BlueField DPU软件包或Mellanox OFED库中获得,并将被添加到未来版本的DOCA SDK中:通过DPU将远端网络存储虚拟为本地NVMe SSD或virtio-blk(虚拟IO-块存储)设备的BlueField SNAP技术。DOCA运行时包含的SNAP功能,可支持通过SPDK库访问上层开发者SDK,更多的SNAP功能将会逐渐添加到DOCA SDK。BlueField操作系统包含引导加载器、操作系统内核、必要的网卡固件、NVIDIA驱动、示例文件系统和工具链。NVIDIA BlueField DPU预装商业级Linux发行版Ubuntu Server 20.04,并且持续提供操作系统和安全更新。作为一个独立的软件包,DOCA可以在多种业界领先的操作系统上使用,而不与某个特定的Arm或x86操作系统进行捆绑。4 DOCA的价值和作用
DOCA利用行业标准API,基于NVIDIA DPU快速创建应用程序和服务;
DOCA和BlueField DPU相结合,使得开发者能够开发具备突破性的网络、安全和存储性能的应用程序。
BlueField将基础设施服务域与工作负载域隔离开来,显著提高了应用程序和服务器的性能、安全性和效率;
同时,DOCA为开发者提供了实现优化、安全、加速数据中心所需的各种工具。
满足未来需求。DOCA可提供多代产品支持,给予开发者充分信心,确保今天开发的应用程序能够在未来各代的BlueField上持续运行,并持续获得性能加持。
卸载、加速、隔离基础设施。网络、存储和安全服务可通过DPU进行卸载、加速和隔离,同时以线速性能安全地把数据传输给上层工作负载。
开放式生态系统。DOCA提供软件应用程序框架,加速生态系统开发。
4.1 加快基础设施服务走向市场的时间
DOCA包括了API、驱动、库、示例代码、文档和预设的容器等,可激活BlueField-2 DPU的加速、安全和虚拟化功能。DOCA提供一套统一且可靠的工具,用于开发基于DPU运行的关键数据中心服务,以处理多种类型的数据处理。其中包括:定向网络流量;
存储的加速、虚拟化和压缩;
数据加密和解密;
安全威胁扫描;
与远程管理工具的集成;
在Arm核上运行控制平面应用。
您可以对这些卸载和加速器进行编程,实现单独或一起使用,并可与基于GPU的NVIDIA AI平台进行集成。DOCA助力应用程序开发者、设备供应商、研究人员和NVIDIA软件合作伙伴通过SDK对所有这些DPU功能进行编程。许多功能的接口在底层的API和上层编程语言中均会提供。这些基于DPU运行的服务不仅仅是软件定义、硬件加速,而且支持AI、易于编程。未来几代BlueField DPU将借助新的增强型加速器提供更强的计算力。DOCA可通过扩展API的方式来支持新的功能,确保了与DPU的前向兼容。NVIDIA致力于通过架构流程技术和软件创新来提升性能。我们持续提升云、核心和边缘环境以及应用工作负载的性能和功能。4.2 简化BlueField DPU上的服务创建流程
4.2.1 网络
DPU可加速SDN和NFV:开放虚拟交换(OVS)、Overlay网络(例如VXLAN)、网络地址转换(NAT)、自动负载平衡、细粒度流量管理和内容分发网络。DOCA支持通过标准DPDK API将服务应用和DPU加速引擎关联起来,例如rte_flow库可以支持基于流的不同操作,包括Overlay封包、包头重写、Hairpin,以及对虚拟网络功能的测量。为提升性能和主机CPU效率,DOCA还包含了原生OVS-kernel和OVS-DPDK应用程序,通过BlueField DPU的硬件加速交换和数据包处理(ASAP2)技术提供无缝加速。DPU硬件对于主机网络的加速,由DOCA编程平台上运行的OVS应用来定义,数据中心SDN控制器来编排所有网络,并通过DPU的带外管理端口进行连接。P4是另一种语言,可以对BlueField DPU中灵活、可编程的数据路径加速器进行编程。DOCA 支持P4语言,可支持未来基于P4开发的VNF业务。这个功能被集成到了已经拥有丰富的VNF产品生态系统的其它API中。此架构允许同时执行面向内核、RoCE、DPDK、SPDK、P4 和P4.runtime接口编写的程序,这些可无缝共存并充分利用DPU数据路径加速。4.2.2 存储
对于存储,DPU支持加速软件定义的弹性存储、NVMe over Fabrics (NVMe-oF)、RoCE、静态数据加密、数据删除、分布式纠错和数据压缩。BlueField DPU NVMe SNAP技术可提供弹性块存储功能,并向主机提供远程块存储,如同它是本地NVMe块存储或VirtIO-blk块设备一样具有低延迟、高吞吐量和高IOPS等特性。DOCA完全支持SPDK开源框架,可助力您创建自己的存储解决方案。通过模拟对PCIe NVMe磁盘的的访问,利用BlueField DPU的多项加速功能来实现各种自定义的逻辑,主机应用可以透明地管理模拟出来的NVMe存储。其中包括加密、ECC分布式纠错、压缩、重复数据删除和恶意软件扫描。如果您要通过DOCA进行编程,现在无需对个别引擎进行显式编程,即可轻松调用用于数据存储的功能。4.2.3 安全性
DPU还可以卸载、加速和隔离所有关键数据中心安全服务。其中包括支持新一代防火墙、微分段、使用透明IPSec和TLS进行动态数据在线加密以及入侵保护。DPU拥有一组专用的安全引擎,包含了构建安全解决方案的所有模块。DOCA包含一组用于开发安全应用程序的标准化API。所有安全服务均始于数据包采集、解密、连接状态的有状态跟踪,一直到7层深度数据包检查。这样会将应用程序流量分类为受信任或恶意。此外,它最终还会将定义的安全策略转换为一系列操作,例如数据包允许、丢弃、重写或重定向。编程通过标准DPDK API完成,如下所示:DOCA还支持基于IPSec、TLS和存储AES-XTS的原生内核加密,由DPU实现在线加速,可以轻松用于基于OpenSSL或OVS-IPSec的应用。这支持DPU在不通知主机的情况下透明地对所有流量进行加密和解密。其中包括DPU在安全Enclave内执行密钥管理。通过RDMA库对主机进行快速内存访问,DOCA可让您创建严格的主机自检方案。借助自动恶意软件扫描,您可以进一步了解从DPU到主机的一举一动。如果发现恶意活动,您可以通过对DPU的硬件加速引擎的编程,达到以线速来执行策略。4.2.4 基础设施管理
传统管理会在每台服务器上运行代理。但是,运行这些代理会消耗本可用于业务应用的CPU周期。代理通常无法监控服务器上VM之间以及容器之间的网络流量。如果代理执行数据包过滤或流量遥测等功能,则会消耗更多CPU周期。如果服务器发生严重故障,则基于VM 或容器的管理代理不太可能报告状态或重启服务器。DOCA允许业务隔离的、基于DPU的代理执行带内或带外管理,而不会给服务器CPU增加负担。如果服务器需要重置,或者甚至租户或业务应用需要一台无代理的裸金属服务器,通过DOCA编程的DPU仍可发送遥测数据、执行远程重置或允许安全启动服务器,这些操作均无需在服务器CPU上运行代理。4.3 使用DOCA的益处
BlueField的许多功能和加速器均可通过特定API、开源SDK或现有驱动进行访问,使用DOCA的主要益处是简化使用DPU的基础设施应用程序和功能的开发和部署流程。这样可以加快应用和其它BlueField的功能进入市场的速度:统一访问所有DPU功能,不必学习和使用多种不同的工具。
在DPU的底层API上提供一个抽象层给上层的库,可以更快速、更轻松地进行开发,实现和上层业务的集成;也可以直接和底层接口交互,从而达到更精细的控制。
向前/向后兼容性。使用DOCA进行开发意味着应用可以在未来版本的BlueField DPU上无缝运行,且得到了更高的性能和扩展性。
基于容器化服务的DPU调配和部署。DOCA包含用于简化DPU设置、配置和服务编排的工具。
5 BlueField DPU和DOCA密切协作
通过BlueField DPU和DOCA,可以整合通常无法一起部署的数据中心基础设施服务。例如,由CPU或独立Look-aside加密卡对动态数据进行加密时,无法和RoCE、压缩、哈希或 Overlay网络一起工作。事实上,执行此类加密会禁用以上操作及许多其它网络卸载功能。这是因为,如果先对数据进行加密的话,意味着网络设备不再能识别数据包的内容,进而无法执行巧妙的数据包重路由、过滤、拥塞管理等操作。但是,使用BlueField DPU和DOCA, 您可以通过编程将RoCE、VXLAN、哈希计算、压缩,以及许多其它卸载功能与加密功能组合在一起,以及它们之间互相组合。DOCA将所有功能合并到一个SDK,使用基于通用开放API的加速库来即刻释放DPU的力量。您还可以使用DOCA,透明地将关键控制平面应用或代理从X86域移植到DPU的Arm 核,从而提高服务器性能、效率,并实现工作负载和安全的隔离。6 对数据处理加速和AI进行编程
重要的是,DOCA更进一步地支持先进的GPU加速的AI工作负载,被完全整合到了大型NVIDIA NGC加速计算软件平台,成为了其中的一个测试项。对于传统的企业应用,DOCA可加速包含BlueField DPU的系统中的数据中心基础设施服务。但是,对于包含DPU和GPU的系统,加速AI和数据分析工作负载具有巨大优势。DOCA 已集成到NGC认证计划。它可以充分利用大量的开发、集成和测试资源,支持NVIDIA的全部AI应用程序框架(NVIDIA Riva、NVIDIA Merlin、NVIDIA Metropolis、NVIDIA Clara、NVIDIA Aerial等)。DOCA与NGC平台集成,还释放了各类第三方软件基础设施与应用的强大功能。可以将DOCA与CUDA结合使用,通过GPU加速计算并通过DPU加速数据中心服务。还可以使用DOCA启用GPUDirect,加速整个网络中GPU之间的通信。7 DOCA编程选项
当对DPU进行编程时,可以直接访问驱动。这通常需要底层编程和详细的驱动知识。在大多数情况下,对DOCA库进行编程会更加轻松,这些库为驱动提供了上层的抽象层。它的优势就是已经针对每个用例进行了调优,可获得更出色的加速性能。参考应用提供了实际工作代码以及DOCA库的使用示例。在某些情况下,可以使用这些参考应用作为基础,然后通过修改它们来满足运行在DPU上的不同应用和方案。例如如果想构建一个可加速的负载均衡器,或者集成一个分布式防火墙的代理到DPU,可以选择DOCA中关于深度数据包检测(DPI)库的相关参考应用。这些库又运行在DPDK库上,利用DPU内的有状态连接跟踪和正则表达式(regex)匹配引擎进行加速。
| | | |
| | | |
| | | |
| FTE_FLOW、DPDK SFT、DPDK REGEX、DPDK | | |
| | | RDMA、BlueField SNAP、PCIe交换机 |
表1 三个例子来解释DOCA是如何运行在底层API/Lib和DPU上,以及如何来访问底层API/Lib和DPU件功能的8 DOCA 1.1更新
DOCA 1.1版本建立在DOCA 1.0的强劲势头之上,并包含以下更新:DOCA FLOW-LIB,用于网关性能的加速,以实现不同网络间互操作性;
DOCA FLOW示例应用,用于URL和DNS过滤与转发功能;
加速有状态流表(SFT),用于连接追踪功能;
加速正则表达式(RegEx),用于与DPI Lib进行模式匹配;
引入x86平台上的DOCA Runtime,用于加速在主机x86处理器上运行的应用,不必所有的业务都卸载到DPU。
(正文完)
关注“软硬件融合”公众号,回复“介绍PPT” 下载软硬件融合技术介绍PPT。
《软硬件融合》最新直播回放:点击“原文链接”或访问网址https://aijishu.com/l/1110000000215003。
长按扫描二维码或公众号回复“加群”,加入“软硬件融合”技术讨论群: