1. 课程导入与平台全景
在数据中心与边缘基础设施快速演进的今天,存储与网络不再是两条彼此独立的“竖井”。Marvell 存储与网络融合平台,正是把高速存储控制器、以太网/InfiniBand 交换与 PHY、DPU/智能网卡、PCIe/CXL 互连以及配套固件与软件栈,整合到同一套可编程、可观测、可编排的体系之中。它的核心命题不是“把两块板卡放进同一个机箱”,而是让数据在计算、存储、网络之间流动时,路径更短、时延更可预测、带宽利用率更高、运维边界更清晰。
从工程视角看,这个平台的价值可以用三个关键词概括:融合、卸载、可视。融合意味着存储流量与业务流量共享同一套高速互连,减少协议转换与额外跳数;卸载意味着把 NVMe-oF、RoCEv2、IPsec、压缩/加密、RAID 校验等任务从主机 CPU 转移到 DPU 或存储控制器;可视意味着在端口、队列、缓存、PCIe 链路等层面提供细粒度计数与遥测,让性能问题可定位、可复现。
典型应用场景
该平台常见于四类场景。第一类是全闪存阵列与 JBOF:通过 PCIe Switch 连接多块 NVMe SSD,再由 DPU 或存储控制器对外提供 NVMe-oF 目标端,前端用 100/200/400GbE 承载。第二类是超融合与分布式存储:计算节点内的 DPU 同时承担存储前端与后端复制流量,RoCEv2 负责低时延传输,PFC/ECN 负责无损保障。第三类是AI 训练与推理集群:GPU 服务器通过高速网卡与交换机构成参数面网络,存储侧用并行文件系统或对象网关提供高吞吐数据供给。第四类是边缘与 5G UPF:在有限功耗下,把用户面转发、存储缓存与安全卸载集成到同一平台。
整体架构分层
理解平台全景,最有效的方式是按“从介质到应用”的分层来看。最底层是介质与互连层:NVMe SSD、HDD、PCIe/CXL 链路、以太网 PHY 与光模块。往上是控制器与交换层:Marvell 的存储控制器、PCIe Switch、以太网交换机芯片,负责队列调度、缓存管理、端口聚合与流量整形。再往上是卸载与加速层:DPU/智能网卡执行 NVMe-oF、RoCEv2、IPsec/TLS、压缩、ECN 标记等。最上层是软件与编排层:SPDK、DPDK、NVMe-oF initiator/target、Kubernetes CSI、遥测采集与策略下发。
一个可复现的教学示例
假设我们要在一台双路服务器上验证“存储流量与业务流量融合”的基本行为。硬件配置为:2 块 200GbE DPU、1 块 PCIe 4.0 Switch、8 块 NVMe SSD、1 台 200GbE 交换机。软件侧使用 SPDK 的 NVMe-oF target,前端用 nvme-cli 发起连接。关键参数示例:队列深度 128,RoCEv2 的 ECN 阈值设为 150KB,PFC 优先级 3,MTU 4096。
# 在 target 侧启动 SPDK NVMe-oF 目标端(示例)
sudo ./build/bin/nvmf_tgt -m 0x3
# 创建传输层,绑定 200GbE 端口
sudo ./scripts/rpc.py nvmf_create_transport -t RDMA -u 8192 -p 4 -c 0
# 将 NVMe SSD 挂载为子系统
sudo ./scripts/rpc.py bdev_nvme_attach_controller -b Nvme0 -t PCIe -a 0000:01:00.0
sudo ./scripts/rpc.py nvmf_create_subsystem nqn.2024-01.io.marvell:test -a -s MARVELL001
sudo ./scripts/rpc.py nvmf_subsystem_add_ns nqn.2024-01.io.marvell:test Nvme0n1
sudo ./scripts/rpc.py nvmf_subsystem_add_listener nqn.2024-01.io.marvell:test -t RDMA -a 192.168.10.1 -s 4420
在 initiator 侧执行连接后,用 fio 做 4K 随机读,观察 iostat -x 1 中的 r_await 与 aqu-sz,同时用 ethtool -S 查看 rx_ecn_marked 与 tx_pause 计数。若 r_await 稳定在 120~180μs、aqu-sz 不超过队列深度的 70%,且 ECN 标记比例低于 5%,说明融合路径工作正常。若 tx_pause 持续增长,则说明 PFC 触发过于频繁,需要检查 ECN 阈值或交换机缓冲区配置。