本文参考自“未来网络:SmartNIC DPU技术白皮书DPU是以数据为中心 IO密集的专用处理器。DPU对现有的SmartNIC 做了整合,能看到很多以往 SmartNIC 的影子,但明显高于之前任何一个 SmartNIC 的定位。DPU可以实现多种功能。以 Nvidia BlueField 架构为例,其功能模块如下图。
(1)接口与驱动
对于每个 BlueField DPU 网络端口,都开放了 2 个物理 PCIe 网络功能:一个供嵌入式 Arm 子系统使用,一个供 PCIe 上的 Host 使用。mlx5 驱动程序及其相应的软件堆栈必须加载到两台主机(Arm和 Host 服务器)上。每台主机上运行的操作系统都会探测驱动程序。
(2)工作模式
DPU 模式或嵌入式功能(ECPF)所有权,其中嵌入式 Arm 系统控制 NIC 资源和数据路径(默认)。受限模式是 ECPF 所有权的扩展,对主机端有额外限制。NIC 模式是从外部主机的角度来看,DPU 的行为与适配卡完全一样。分离模式将网络功能分配给 Arm 内核和 x86主机内核。
(3)内核表示模型
BlueField DPU 使用 netdev 表示器来映射每个主机端物理和虚拟功能:作为隧道将运行在 Arm 内核上的虚拟交换机或应用程序的流量传递到 Arm 侧的相关 PF 或 VF;作为通道将嵌入式交换机配置为相应的代表功能的规则。这些表示器用作连接到 OVS 或在 Arm 内核上运行的任何其他虚拟交换机的虚拟端口。
(4)多主机
在多主机模式下,每个主机接口最多可划分为 4 个独立的 PCIe接口。所有接口将共享同一个物理端口,并由同一个多物理功能交换机(multi-physical function switch,MPFS)管理。每个主机都有自己的电子交换机(e-switch)并控制自己的流量。
(5)Virtual Switch on DPU 
NVIDIA BlueField 支持 ASAP技术。它利用了上面提到的表示器。BlueField SW package 包括已经支持 ASAP2的 OVS 安装。在 Arm内核上运行的虚拟交换机允许通过 Arm 内核传递进出主机功能的所有流量,同时执行 OVS 支持的所有操作。ASAP2允许通过对 NIC 嵌入式交换机进行编程来卸载数据路径,并避免需要通过 Arm 内核传递每个数据包。控制平面与使用标准 OVS 保持相同。
(6)Virtual Switch on DPU
网络绑定可以将两个或多个网络接口组合成一个接口。如果其中一个接口发生故障,它会增加网络吞吐量、带宽并提供冗余。BlueField DPU 可以选择以对主机透明的方式在 Arm 端配置网络绑定。在这种配置下,主机只能看到一个 PF。
(7)配置上行 MTU
要在 SmartNIC 模式下运行时配置端口 MTU,需要限制 BlueField DPU 的 host。一旦 host 受到限制,端口 MTU 可以通过更改上行链路表示器(p0 或 p1)的 MTU 进行配置。
(8)链路聚合
网络绑定可以将两个或多个网络接口组合成一个接口。如果其中一个接口发生故障,它会增加网络吞吐量、带宽并提供冗余。BlueField DPU 可以选择以对主机透明的方式在 Arm 端配置网络绑定。在这种配置下,主机只能看到一个 PF。
(9)可扩展功能(scalable function,SF)
SF 是一种轻量级功能,具有部署它的父 PCIe 功能。一个 mlx5 SF 有自己的功能能力和自己的资源。这意味着 SF 有自己的专用队列(txq、rxq、cq、eq),这些队列既不共享也不从父 PCIe 功能中抢占。使用 SF 不需要系统 BIOS 的特殊支持。SF 与 PCIe SR-IOV 虚拟功能共存。SF 不需要启用 PCIe SR-IOV。
(10)主机和 Arm 系统上的 RDMA 堆栈支持
Arm Linux 系统上预装了完整的 RDMA 堆栈。BlueField DPU 在Separate Host Mode 和 Embedded CPU Mode 中支持 RDMA(RoCE 或InfiniBand)。
(11)控制 host PF 和 VF 参数
1)设置 hostPF 和 VF 默 MAC 地址,从 Arm 中,用户可以配置主机中物理功能的 MAC 地址。发送命令后,用户必须在主机中重新加载 NVIDIA 驱动才能看到新配置的 MAC 地址。系统重启后 MAC地址恢复到 FW 中的默认值;
2)设置主机 PF 和 VF 链路状态,Port状态可以配置为 Up、Down 或 Follow。
3)查询配置,PF 和 VF 的配置可以通过一定指令查询。
4)禁用主机网络 PF,对于只对使用存储或 VirtIO 功能感兴趣的用户,可以不向主机公开 ConnectX 网络功能。
启用此功能后,将不会在 Arm 上看到主机 PF 表示器。如果主机上没有 PF,则无法启用 SR-IOV,因此在 Arm 上也不会看到 VF 表示器。如果主机上没有 PF,就不能在主机使用 SF。Arm 上的 SF 功能不受影响。
(12)BlueField DPU 支持 DPDK
DPDK 是一组快速处理数据包的开发平台及接口(Data Plane Development Kit,DPDK)。BlueField DPU 支持 DPDK 以使用其提供的开发平台和接口。
(13)BlueField DPU 上的 SNAP
NVIDIA BlueField SNAP(软件定义网络加速处理)技术支持NVMe 存储的硬件加速虚拟化。BlueField SNAP 将网络存储呈现为本地 NVMe SSD,模拟 PCIe 总线上的 NVMe 驱动器。主机OS/Hypervisor 使用其标准 NVMe 驱动程序不知道通信终止,不是由物理驱动器,而是由 BlueField SNAP。任何逻辑都可以通过 BlueField SNAP 框架应用于数据,并通过以太网或 InfiniBand 协议通过网络传输到存储目标。BlueField SNAP 将独特的硬件加速存储虚拟化与 DPU的高级网络和可编程能力相结合。BlueField SNAP 与 DPU 一起实现了解决存储和网络效率和性能的应用世界。
(14)正则表达式加速
BlueField-2 DPU 支持高速 RegEx 加速。这允许主机将多个RegEx 作业卸载到 DPU。此功能可从主机或 Arm 端使用。使用此功能的应用程序通常会将已编译的规则集加载到 BlueField RegEx 引擎并发送作业进行处理。对于每个作业,RegEx 引擎将返回一个匹配列表(例如匹配规则、偏移量、长度)。用于加载规则和发送 RegEx 作业的示例和标准 API 可通过 DPDK 获得。
(15)压缩加速(Compression Acceleration)
NVIDIA BlueField DPU 支持高速压缩加速。此功能允许主机将多个压缩/解压缩作业卸载到 DPU。压缩类操作与 net、vDPA 和 RegEx类操作并行支持。
(16)公钥加速
NVIDIA BlueField DPU 集成了多个公钥加速(PKA)引擎来卸载Arm 主机的处理器,提供 PK 算法的高性能计算。BlueField 的 PKA可用于广泛的安全应用。它可以协助 SSL 加速,或安全的高性能 PK签名生成器/检查器和证书相关操作。
(17)IPsec 功能
BlueField DPU 可以透明地从主机 CPU 卸载 IPsec 操作。这意味着主机不需要知道网络流量在接入线路之前是加密的,或者在离开线路之后是解密的。IPsec 操作可以在 DPU 的软件(Arm 内核或加速器块中)中运行。
(18)QoS 配置
BlueField DPU 支持限速 Host PF 和 VF、限速 SF、限速 VF 组来实现配置 QoS 组、SF QoS、VF QoS 和 PF QoS。
(19)VirtIO-net 模拟设备(Emulated Devices)
此功能使用户能够在连接了 BlueField-2 DPU 的系统中创建VirtIO-net 模拟 PCIe 设备。这是由 DPU 中的 virtio-net-controller 软件模块完成的。Virtio-net 模拟设备允许用户在插入 DPU 的主机系统中热插拔多达 16 个 virtio-net PCIe PF 以太网 NIC 设备或 504 个 virtio-net PCIe VF 以太网 NIC 设备。
(20)深度报文检测
深度包检测(Deep packet inspection,DPI)是一种在数据包通过受监控的网络检查点时检查其全部内容的方法。DPI 是用于 NVIDIA BlueField-2 DPU 的 DOCA SDK 软件解决方案的一部分。DPI 提供了一种更强大的机制来执行网络数据包过滤,因为它可用于识别和阻止隐藏在网络数据流中的一系列复杂威胁,例如,恶意应用程序,恶意软件数据泄露尝试,内容政策违规,应用识别和负载均衡。
(21)共享 RQ 模式
在创建 1 个发送队列(SQ)和 1 个接收队列(RQ)时,每个表示器每个通道消耗约 3MB 内存。将其缩放到所需的 1024 个表示器(SF 和/或 VF)将需要约 3GB 的单通道内存。3MB 的主要部分是由RQ 分配(接收缓冲区和 SKB)贡献的。因此,为了有效利用内存,实现了共享 RQ 模式,以便 PF/VF/SF 表示器共享上行链路表示器拥有的接收队列。
本文参考自“未来网络:SmartNIC DPU技术白皮书,介绍 SmartNIC/DPU 的特征和需求、硬件和编程架构、技术和产业发展趋势,提供应用场景和应用案例,介绍相关公司及产品、以及 SmartNIC/DPU 的测试技术,同时提出发展建议,以期促进SmartNIC/DPU 相关产业发展。
下载链接:
转载申明:转载本号文章请注明作者来源,本号发布文章若存在版权等问题,请留言联系处理,谢谢。
推荐阅读
更多架构相关技术知识总结请参考“架构师全店铺技术资料打包”相关电子书(37本技术资料打包汇总详情可通过“阅读原文”获取)。
全店内容持续更新,现下单“架构师技术全店资料打包汇总(全)”,后续可享全店内容更新“免费”赠阅,价格仅收198元(原总价350元)。
温馨提示:
扫描二维码关注公众号,点击小程序链接获取架构师技术联盟书店电子书资料详情

继续阅读
阅读原文