Netpath
学习路径32 / 49 · 高性能网络看全程 →
原理深入预计 25 分钟

DPU 与 Spectrum-X:把网络卸载到卡上

交换机和网卡开始跑自己的操作系统。这对运维意味着多了一层要管的东西。

学完这节你能做到

  • 说出 DPU 能卸载哪些工作以及收益来源
  • 解释 Spectrum-X 用什么手段接近 IB 的确定性
  • 判断当前规模是否值得引入 DPU

建议先学

跳过这几节会看不懂本节的部分推导

网卡开始跑自己的操作系统

一张普通网卡的职责是收发包。DPU(Data Processing Unit)在网卡上加了三样东西:

ARM CPU 核        ← 能跑一个完整的 Linux
网络处理引擎      ← 硬件加速的转发、封装、匹配
专用加速器        ← 加密、压缩、存储协议卸载

于是它不再是"设备",而是一台独立的小服务器插在你的服务器里。 这个变化对运维的影响比对性能的影响更大。

能卸载什么

卸载对象原来在哪卸载后的收益
虚拟交换(OVS)宿主机 CPU释放大量核,尤其是虚拟化场景
加密(IPsec / TLS)CPU线速加密,CPU 不参与
存储协议(NVMe-oF)CPU主机看到的是本地盘,网络细节被隐藏
网络策略与防火墙内核 netfilter / eBPF策略执行不占主机 CPU
遥测与流采集主机 agent采集不影响业务

收益的本质是把"基础设施的开销"从业务 CPU 上挪走。 在虚拟化与多租户场景里,这部分开销可能占掉几个核——卸载掉就是净收益。

两种工作模式

这一点决定了它在架构里的位置:

模式数据平面控制权主机能看到什么
Separated Host主机与 DPU 各管一部分主机仍能看到网卡、能配置
DPU 模式(安全隔离)DPU 完全接管主机只看到一个"虚拟设备",改不了网络配置

第二种模式是零信任架构的关键:即使主机被完全攻破, 攻击者也改不了网络策略——策略在 DPU 上,主机没有权限。

i这是一次信任边界的迁移

传统架构里,主机的 root 就是网络配置的最终权威。DPU 模式把这个边界移了:

传统:  [ 主机 root ] → 控制网卡、iptables、路由
DPU:   [ 主机 root ] → 只能用网络
        [ DPU 管理面 ] → 决定这台主机能通什么

对运维的含义是多了一个需要独立管理的控制面:谁能登 DPU、 它的策略怎么下发、它的账号怎么审计。这不是纯技术问题, 往往涉及团队职责划分——这也是引入 DPU 最容易被低估的成本。

Spectrum-X:端网协同拿确定性

DPU 之外,另一条相关的产品线是把网卡与交换机作为一套系统来设计。 IB vs RoCE 那节提过它的定位: 在以太网上拿到接近 IB 的确定性。

从实践中的 NCCL 配置能直接看出"配套"的含义:

NCCL_NET_PLUGIN=spcx                    # 专用网络插件
NCCL_IB_ADAPTIVE_ROUTING=1              # 自适应路由
NCCL_NCHANNELS_PER_NET_PEER=4
NCCL_P2P_NET_CHUNKSIZE=262144
NCCL_IB_PORT_SPEED=800000
NCCL_MIN_NCHANNELS=32
NCCL_IB_HCA=roce_vf_rail                # VF rail 模式

它解决的核心问题是以太网的静态哈希导致链路不均—— 多条大流哈希到同一条 spine 链路上,其它链路闲着, 表现为 AllReduce 的尾延迟很差(拓扑那节 讲过)。

收益代价
以太网生态 + 接近 IB 的确定性交换机、网卡、通信库要配套
不用另学 IB 的一套体系换任一环节都可能失效
自适应路由改善尾延迟依赖插件版本,配置项更多
!配套方案的隐性约束

NCCL_NET_PLUGIN=spcx 这一行意味着:通信库依赖厂商插件。 连带的三件事要提前想:

  • 升级耦合:NCCL 版本、插件版本、驱动版本、交换机固件要匹配
  • 排障链路更长:出问题时要判断是插件、NCCL、还是交换机
  • 换供应商成本高:整套换,而不是换一个环节

这不是反对它——端网协同确实能拿到普通以太网拿不到的确定性。 但要在选型时把"锁定"这一项显式算进去,而不是只比性能数字。

什么规模值得引入

DPU 与 Spectrum-X 都属于"规模到了才划算"的技术:

情况建议
几十台服务器、单租户不需要,卸载省下的核不值那个成本
大规模虚拟化 / 多租户云值得,OVS 卸载省下的核乘以机器数很可观
有零信任 / 强隔离合规要求值得,DPU 模式的隔离是架构级的
大规模 AI 集群坚持以太网路线考虑 Spectrum-X
已经用 IB没必要叠加

判断标准很朴素:省下的 CPU 核数 × 机器数,能不能覆盖 DPU 的采购与运维成本。 小规模基本覆盖不了。

运维上的三个新增负担

引入 DPU 之后,多了三件以前不用做的事:

① 它也要打补丁

DPU 上跑着完整的操作系统,意味着:

# DPU 上的固件与 OS 版本
# (通过 BMC 或 DPU 自己的管理接口查询)
mlxfwmanager --query          # 固件版本
# DPU 内部:ssh 到 DPU 的管理地址后
uname -a; ofed_info -s

固件、DPU OS、主机驱动三者要版本匹配——升级时是一个矩阵,不是一条线。

② 它也会坏

DPU 故障的表现比普通网卡复杂:可能是网络不通, 也可能是网络通但策略失效、或者主机看不到存储设备。 排障时要多问一句"是主机侧的问题还是 DPU 侧的问题"。

③ 排障要跨两个系统

主机侧:ip link / ethtool → 可能只看到虚拟设备
DPU 侧:需要单独登录,用它自己的工具看真实的转发状态

这与 DPDK 那节 的教训类似: 能力增强的同时,可观测性的入口变了——原来的工具看不到全貌了。

检查点

Checkpoint单选

DPU 模式(安全隔离模式)最关键的架构价值是什么?

Checkpoint单选

NCCL_NET_PLUGIN=spcx 这类配套方案,选型时最该额外考虑什么?

Checkpoint单选

几十台服务器的单租户集群,是否值得引入 DPU?

这节课的落点

  • DPU = ARM 核 + 网络引擎 + 加速器,本质是一台插在服务器里的小服务器
  • 卸载对象:虚拟交换、加密、存储协议、网络策略、遥测;本质是把基础设施开销挪出业务 CPU
  • 两种模式的区别在数据平面控制权;DPU 模式是零信任架构的关键
  • 它带来的是信任边界迁移:多了一个要独立管理与审计的控制面
  • Spectrum-X 是端网协同:解决以太网静态哈希导致的链路不均与尾延迟
  • 配套方案的隐性成本是升级耦合与供应商锁定,选型时要显式算进去
  • 引入门槛看规模:省下的核数 × 机器数能否覆盖成本;小规模基本不划算
  • 三个新增运维负担:打补丁(版本矩阵)、会坏(故障形态更复杂)、跨系统排障

延伸资料