IP使用离不开应用需求,本博客以某项目为例,介绍本IP应用。
续上文:
表1 网络传输系统的具体性能指标

为满足以上需求,该系用采用一种基于 NVMe over Fabrics(NVMe-oF)的网络化高性能存储系统。系统整体架构如图1所示,按照功能划分可分为网络接口层、网络协议层、存储层及内存管理层四个部分。其中,核心功能由RDMA IP模块、NVMe-oF模块以及NVMe Host Controller(NVMe HC)模块协同完成。

图1 NVMe-oF网络传输系统架构图
系统采用分层解耦设计思想,将网络传输逻辑与存储协议控制逻辑分离,实现数据路径与控制路径的结构化组织。在保证高带宽数据吞吐能力的同时,兼顾系统的扩展性与可维护性。
RDMA IP模块位于网络协议层,主要负责实现基于RoCEv2协议的数据传输功能。该模块完成以太网帧解析、UDP/IP封装解析以及RDMA传输语义处理,是系统实现100 Gbps高速数据传输的基础模块。在接收方向,RDMA IP模块对来自Host PC的RoCEv2报文进行解析,提取基础传输头(Base Transport Header,BTH)、远程地址头(RDMA Extended Transport Header,RETH)等协议字段,根据队列对(QP)信息完成数据分发,将有效负载写入本地DDR缓冲区或转发至NVMe-oF控制器模块。在发送方向,RDMA IP模块负责将NVMe-oF控制器封装完成的应答数据进行RoCEv2协议组包,通过RDMA Write或Send操作回写至Initiator的内存区域。该模块仅承担网络层数据封装与传输任务,不参与NVMe协议语义解析,从而实现网络协议与存储协议的解耦。
NVMe-oF 控制器模块位于系统存储控制层的核心位置,主要负责 NVMe-oF 协议的语义解析与命令转译。该模块承担系统的控制路径逻辑,是连接 RDMA IP 与 NVMe Host Controller 的关键桥梁。在命令接收阶段,NVMe-oF 控制器解析 RDMA IP 模块传递的 NVMe-oF Capsule 数据结构,提取其中的 Submission Queue Entry(SQE)信息,并对命令字段进行合法性校验。随后,模块将 NVMe-oF 命令转译为标准 NVMe 命令格式,并分配唯一标识符(Unique ID)以建立 NVMe-oF 队列与物理 NVMe 队列之间的映射关系。在命令完成阶段,NVMe-oF 控制器根据 NVMe Host Controller 返回的 Completion Queue Entry(CQE)信息,通过 UID 机制恢复原始 NVMe-oF 队列上下文,并重新封装为 NVMe-oF Completion Capsule,最终通过 RDMA IP 模块发送至 Initiator。该模块主要承担控制流处理任务,同时也是后续动态队列绑定机制实现的核心位置。
NVMe Host Controller(NVMe HC)模块负责与本地 NVMe SSD 进行直接交互。该模块通过 PCIe Hard IP 实现与 SSD 的高速连接,完成标准 NVMe 协议的命令提交与完成管理。具体而言,NVMe HC 模块负责维护 Submission Queue(SQ)与 Completion Queue(CQ),通过 Doorbell 机制触发命令提交,并通过 PCIe 传输层数据包(TLP)完成数据读写操作。同时,模块实现 DMA 数据搬运与状态管理功能,确保数据在本地 DDR 与 SSD 之间高效传输。该模块是系统实现物理数据访问的执行单元,其性能直接决定了系统的本地存储吞吐能力。
B站已给出之前的相关性能演示视频,如想进一步了解,请搜索B站用户:专注与守望