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

相关推荐
Asum1ta1 小时前
Kubernetes Namespace 命名空间管理实战:资源隔离、默认命名空间与常用命令
网络·容器·kubernetes
好评1241 小时前
【Linux】传输层协议TCP
linux·网络·tcp/ip
数据知道1 小时前
恶意软件分析实验室搭建——沙箱、快照、网络隔离
网络·安全·web安全·网络安全
西柚小萌新2 小时前
【论文阅读】--AgentPoison:通过投毒记忆库或知识库对LLM智能体进行红队测试
网络·安全
Fcy6482 小时前
Linux下 Socket编程 —— TCP网络编程
linux·网络·tcp/ip
IPdodo_2 小时前
静态 IP 访问异常排查:403/429 归因与迁移验收
服务器·网络·数据库·python·网络协议·php·性能测试
ouynagda3 小时前
HTTP协议与Socket网络编程笔记
网络·笔记·http
haerapi3 小时前
流式对话接口怎么选:SSE 与 WebSocket 的原理、实现和工程边界
网络·websocket·网络协议
砚凝霜3 小时前
【软考信息安全】第二章 网络攻击基础与常见技术方法
网络·安全·php