抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

记录 SPDK NVMe over RDMA 的部署过程。

环境准备

文件准备

需要下载的文件:(严格控制版本,不同版本可能会导致很多错误)

安装与构建

clone 项目源码

更新子模块

安装依赖

打上 patch、修改代码

开发者说明 master 分支已经整合该 patchv24.05.x 还未整合。

位于 lib/log/log.c。添加和修改以下代码(共 3 处):

构建项目

执行单元测试

绑定 NVMe 设备

绑定 NVMe 设备:

则绑定成功。lsblk 中看不到 NVMe 设备。

若输出结果为:

且运行 build/examples/hello_world,若出现以下结果:

说明没有 NVMe 设备或者 NVMe 设备处于挂载状态,无法解除内核驱动,此时需要将该设备初始化或者其他的方法。

添加 NVMe 设备后,NVMe 设备不能处于挂载状态,lsblk 结果:

再次绑定后测试,出现正确结果则成功。

取消绑定


部署 RDMA Soft-RoCE

参考 【学习笔记-存储】NVMeoF(二):NVMe over RDMA 环境部署 部署 RDMA 部分,部署好 RDMA Soft RoCE 软件栈。

仅部署 RDMA 部分,sh 脚本中从 # 1. config nvme subsystem 后的代码全部注释掉。

重启后需要重新部署一遍 RDMA 软件栈。


这部分结束可以对 dev1 进行克隆。


配置 SPDK NVMe over RDMA Target 端

Target 端 ip:192.168.159.142

运行 nvmeof-setup.sh 脚本部署 RDMA Soft-RoCE

绑定 NVMe SSD 设备

这个 BDF 0000:0b:00.0 可能会变化,需要记住。

给 SPDK 分配大页

启动 tgt 并监听


配置 SPDK NVMe over RDMA Host 端

Host 端 ip:192.168.159.143

运行 nvmeof-setup.sh 脚本部署 RDMA Soft-RoCE

SPDK 初始化

发现 Target 并连接(与 SPDK 无关)

这一步执行的是 nvme-cli 的命令,需要经过 kernel 驱动,而 SPDK 是用户态驱动。可以直接跳过这一步直接运行 SPDK 的应用程序。

简单测试

测试结果图:

这里测试结果的值较低,可能是因为虚拟机的缘故?

取消连接(与 SPDK 无关)

如果执行了前面的 nvme connect 命令连接设备,则这里执行 nvme disconnect 命令取消连接。

恢复内核态驱动




本站采用 Volantis 主题设计