NVME-oF IP 设计18 :如何进行多模块并行协同设计2

续上一篇,在RDMA连接建立完成后,Initiator可发起NVMe-oF命令请求。本文系统采用基于RDMA Send + RDMA Read的命令执行机制,其具体流程如图3所示。

图3 NVMe-oF建链流程

(1)NVMe-oF Request发送

Initiator通过RDMA Send操作向Target发送NVMe-oF Request Capsule,其中包含NVMe命令信息(如读写类型、逻辑块地址LBA、数据长度等)以及本端数据缓冲区的远程地址与RKey信息。

(2)Target发起 RDMA Read

Target接收到NVMe-oF Request后,解析Capsule内容,提取数据缓冲区的远程地址与RKey。随后,Target中的NVMe-oF模块向RDMA模块发送RDMA Read指令,从Initiator内存中读取Submission Queue Entry(SQE)或数据负载内容。该方式避免了额外的数据拷贝,实现零拷贝传输。

(3)Initiator返回Read Response

在RDMA Read操作过程中,Initiator作为被动方返回RDMA Read Response,将指定内存区域的数据传输至Target。本阶段数据直接写入Target本地内存缓冲区。

(4)Target执行NVMe-oF命令

NVMe-oF模块在获得完整的SQE及数据内容后,在NVMe-oF控制器内创建虚拟队列。

(5)CQE封装与发送

NVMe-oF模块解析SQE信息后,将完成指令NVMe-oF Completion Capsule写入本地缓冲区,并通过RMDA模块将RDMA Send操作发送至Initiator。至此,一次NVMe-oF命令交互完成。

B站已给出之前的相关性能演示视频,如想进一步了解,请搜索B站用户:专注与守望

https://www.bilibili.com/video/BV1f6mbBeEiH/?spm_id_from=333.337.search-card.all.click\&vd_source=c355545d27a44fe96188b7caefeda6e7

https://www.bilibili.com/video/BV1og3e6XEHR/?spm_id_from=333.337.search-card.all.click\&vd_source=c355545d27a44fe96188b7caefeda6e7

相关推荐
YWamy1 小时前
如何降低RTC SDK在复杂网络环境下的运行成本
网络·音视频·实时音视频
北京盛世宏博1 小时前
信创国产化智慧档案馆管库系统:十二防一体化管控平台落地笔记
网络·方案·温湿度·智慧档案馆建设
w-w0w-w2 小时前
SQL注入
网络·数据库·sql
一条泥憨鱼2 小时前
【计算机网络】短连接、长连接与连接池:从 TCP 握手到池化复用的完整链路
网络·数据库·网络协议·tcp/ip·计算机网络
北京盛世宏博3 小时前
数字孪生 3D 可视化实战:档案十防体系温湿度数据联动与告警定位实现
网络·档案八防·十防
Lynne3094 小时前
EtherCAT网络中,多个节点如何配置才能互不干扰?
网络·网络配置·ethercat·工业网络
Yang96114 小时前
实验室里的多面手:鼎讯信通TM-150信号发生器技术拆解与实测思考
网络
默|笙6 小时前
【Linux网络】传输层协议TCP(1)---TCP报文介绍
linux·网络·tcp/ip
云飞云共享云桌面6 小时前
1台SolidWorks服务器如何承载10个设计并发?
运维·服务器·网络·3d·制造
Escalating_xu8 小时前
【Linux 网络编程】NAT、代理服务与内网穿透:从一个公网 IP,到一条真正可达的连接
linux·网络·tcp/ip