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

相关推荐
虎头金猫1 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
wuyk5551 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
QYRdata1 天前
年均增速24.2%!机器人数据湖未来六年增长动能强劲
网络·机器人·服务发现
CHENKONG_CK1 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
Eloudy1 天前
开源 gpunetio examples 01 解析 gpunetio_verbs_put_bw
gpu·fpga·rdma·roce·doca
chshang19921 天前
工业路由器是什么?浅谈5G工业网络中的IR602
网络·物联网·5g·智能路由器
萧瑟余晖1 天前
Netty 核心组件与 Reactor 模型详解
网络·架构
ITxiaobing20231 天前
IP 定位服务选型指南:从准确率到工程落地的技术考察
linux·服务器·网络
wuyk5551 天前
【Socket 进阶之路】第 9 章 Linux 网络服务量产稳定性优化|心跳保活、TIME_WAIT、SO_LINGER、内存池、断线重连、完整异常防护框架
linux·服务器·开发语言·网络·物联网
z落落1 天前
C#UDP+串口服务端+UDP 客户端(含 CRC16 校验)
网络·网络协议·udp