4. 存储网络加速需求分析

要理解 DPU 为什么值得为存储网络单独做加速,先要把“瓶颈到底在哪里”拆开看。存储网络加速不是把网卡换成更快的网卡,而是识别出一条 I/O 路径上哪些环节在消耗时延、哪些环节在限制吞吐,再判断哪些环节适合卸载到 DPU。本节围绕 NVMe over Fabrics(NVMe-oF)、分布式存储和超融合三类典型场景,分析它们的时延构成与吞吐约束。

一、先建立时延预算的参照系

讨论瓶颈前必须统一参照约定。本节所有时延均指端到端单次 I/O 时延,即从主机应用发起读/写请求,到收到完成响应为止,单位为微秒(μs)。吞吐指单节点可持续的有效数据带宽,单位为 GB/s。方向约定:主机侧为发起端(Initiator),存储侧为目标端(Target)。

一个典型的 NVMe-oF 读 I/O 路径可以拆成若干段:应用与文件系统/块层处理、主机协议栈(NVMe 命令封装)、传输层(RDMA 或 TCP)、网络交换、目标端接收与解析、后端介质访问、响应回传。在本地 NVMe SSD 上,一次 4KB 随机读的端到端时延通常在 80~120μs 量级;而一旦跨网络,同样的 I/O 往往上升到 200~400μs。多出来的部分,正是存储网络加速要压缩的对象。

NVMe-oF 读 I/O 端到端时延构成与瓶颈分布(示例量级) 主机侧 Initiator 应用 / 文件系统 / 块层 ≈ 15~30 μs NVMe 命令封装 / 队列 ≈ 10~20 μs 传输层:RDMA / TCP ≈ 30~80 μs(瓶颈高发) 中断 / 轮询 / 上下文切换 ≈ 10~40 μs 主机侧合计 ≈ 65~170 μs Fabric 交换机 / 路由 跳数 1~3 ≈ 5~25 μs 拥塞时抖动放大 目标侧 Target 网卡收包 / 协议解析 ≈ 20~50 μs NVMe 目标处理 / 队列 ≈ 15~35 μs 后端介质访问 SSD ≈ 60~100 μs(硬下限) 响应封装 / 回传 ≈ 10~25 μs 目标侧合计 ≈ 105~210 μs 请求 请求 响应回传(与请求路径对称) 瓶颈高发区 传输层协议栈 中断与上下文切换 目标端收包解析 多跳网络抖动 CPU 软中断争抢 示例量级仅用于说明各段相对占比,实际数值随硬件、协议与负载变化

二、NVMe over Fabrics:协议栈是主要时延来源

NVMe-oF 的核心价值是把本地 NVMe 的低时延语义延伸到网络上,支持 RDMA(RoCEv2、InfiniBand)和 TCP 两类传输。RDMA 路径通过内核旁路和零拷贝,把传输层时延压到几十微秒;TCP 路径则要经过完整内核协议栈,时延通常高出 50~150μs,且在高 PPS 下 CPU 占用急剧上升。

瓶颈的典型表现有三类。第一,小 I/O 高 IOPS 场景下 CPU 成为瓶颈:4KB 随机读达到 50 万 IOPS 时,仅软中断和协议处理就可能吃掉多个物理核,留给应用的算力被挤占。第二,队列深度与并发不足:NVMe 依赖多队列并行,若主机侧队列数或中断亲和性配置不当,单队列成为串行点。第三,目标端解析开销:目标端每收一个命令都要做协议解析、内存映射和完成队列写入,这部分在纯软件实现中难以随核数线性扩展。

判断是否已触及协议栈瓶颈,可以观察三个信号:CPU 的 softirq 或 ksoftirqd 占用是否随 IOPS 线性上升;单核 %sys 是否接近饱和;在 IOPS 提升时端到端时延是否出现非线性拐点。若三者同时出现,说明瓶颈在主机或目标端的协议处理,而非网络或介质。

三、分布式存储:网络往返与副本放大

分布式存储把数据切分并复制到多个节点,一次写请求往往触发多次网络往返。以三副本为例,客户端写入主副本后,主副本再同步转发到两个从副本,全部确认后才返回。这意味着一次逻辑写在实际链路上产生 3 次以上的数据传输和多次确认往返。

这里的吞吐瓶颈来自两个方向。其一是东西向流量放大:三副本使节点间流量达到客户端有效带宽的 2~3 倍,交换机背板和节点网卡先于客户端网卡饱和。其二是一致性协议开销:副本确认、元数据更新、心跳与租约维护都消耗 CPU 和网络,且随节点规模增长而增加。

时延方面,分布式存储的端到端时延近似等于“客户端到主副本往返 + 主副本到从副本往返 + 介质访问”。若跨机架或跨可用区,光传输和交换时延会显著抬升下限。因此分布式存储的优化重点通常不是单次 I/O 的极限时延,而是在保证副本一致性的前提下,降低单位有效带宽的 CPU 与网络开销。

四、超融合:计算与存储争抢同一资源

超融合(HCI)把计算、存储、网络收敛到同一批节点上,存储流量与业务流量共享同一张网卡和同一批 CPU 核。这带来一个结构性矛盾:存储副本同步产生的东西向流量会与业务南北向流量争抢带宽,存储协议处理会与虚拟机争抢 CPU 时间片。

超融合场景的瓶颈特征与纯分布式存储不同。它更常表现为尾时延恶化:平均时延看似正常,但 P99 时延因资源争抢而大幅抖动。原因是存储 I/O 的完成时间受同节点上其他负载影响,缺乏稳定的资源隔离。此外,重建(Rebalance)期间流量激增,会进一步挤压业务带宽。

因此超融合的加速需求集中在三点:把存储协议处理从业务 CPU 上剥离、为东西向存储流量提供可预期的带宽与优先级、降低副本同步路径上的处理时延。这正是 DPU 能够直接介入的位置——将 NVMe-oF 目标端、副本转发、校验与加密卸载到 DPU,使主机 CPU 专注于业务。

五、三类场景的瓶颈对照

场景 主要时延来源 主要吞吐约束 典型可卸载环节
NVMe-oF 传输层协议栈、中断与上下文切换 单核协议处理能力、队列并发度 NVMe-oF 目标端、TCP/RDMA 协议处理
分布式存储 多副本网络往返、跨机架传输 东西向流量放大、一致性协议开销 副本转发、校验计算、加密
超融合 资源争抢导致的尾时延抖动 计算与存储共享网卡和 CPU 存储协议卸载、流量隔离与限速
判断瓶颈归属的实用顺序:先看介质是否已达上限(SSD 自身时延与带宽),再看网络是否拥塞(丢包、PFC、ECN 计数),最后看主机与目标端 CPU 的协议处理占用。只有排除了前两者,把协议处理卸载到 DPU 才是有意义的优化。
不要用平均时延判断存储网络是否健康。分布式存储与超融合场景中,P99/P999 尾时延更能反映资源争抢和副本同步问题。若平均时延正常但 P99 明显抬升,优先排查同节点资源竞争与东西向流量突发,而非单纯升级网卡带宽。