当前位置: 首页 > news >正文

【SPDK】【NoF】使用SPDK实现NVMe over Fabrics Target

本文使用两台PC,一台做NVMe over Fabrics Target(服务端),一台做NVMe over Fabrics initiator(客户端)。首先使用SoftRoCE来实现底层的rdma传输,然后使用SPDK来实现NVMe over Fabrics Target。

一.首先使用SoftRoCE来实现rdma

服务端和客户端都是:CentOS-7-x86_64-DVD-1810

服务端和客户端都要load softRoCE的kernel模块:rdma_rxe

服务端

# rxe_cfg start

# rxe_cfg add enp5s0f0

# rxe_cfg status

客户端

# rxe_cfg start

# rxe_cfg add enp1s0f0

# rxe_cfg status

测试

服务端

# iptables -F

# rping -s -a 192.168.80.100 -v -C 1000

客户端

# rping -c -a 192.168.80.100 -v -C 1000

二.SPDK nvmf-tgt环境搭建

参考:https://spdk.io/doc/nvmf.html

服务端

1.确定NVME物理设备

[root@localhost ~]# lspci

01:00.0 Non-Volatile memory controller: Intel Corporation PCIe Data Center SSD (rev 01)

2.编译spdk

git clone https://github.com/spdk/spdk

cd spdk

git submodule update --init

scripts/pkgdep.sh

./configure --with-rdma

make

3.启动NVMe-oF target

# modprobe nvme_rdma

# scripts/setup.sh

setup会把nvme盘的驱动由nvme改为uio_pci_generic

# build/bin/nvmf_tgt &

# scripts/rpc.py nvmf_create_transport -t RDMA -u 8192 -p 4 -c 0

4.通过rpc创建导出bdev

创建内存测试盘

# scripts/rpc.py bdev_malloc_create -b Malloc0 512 512

#scripts/rpc.py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001 -d SPDK_Controller1

# scripts/rpc.py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc0

# scripts/rpc.py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t rdma -a 192.168.80.100 -s 4420

创建nvme盘

# scripts/rpc.py bdev_nvme_attach_controller -b Nvme0 -t PCIe -a 0000:01:00.0

# scripts/rpc.py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode2 -a -s SPDK00000000000002 -d SPDK_Controller1

# scripts/rpc.py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode2 Nvme0n1

# scripts/rpc.py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode2 -t rdma -a 192.168.80.100 -s 4420

客户端

1.load module

# modprobe nvme-rdma

2.discovery

# nvme discover -t rdma -a 192.168.80.100 -s 4420

3.connect

连接cnode1

# nvme connect -t rdma -n "nqn.2016-06.io.spdk:cnode1" -a 192.168.80.100 -s 4420

连接cnode2

# nvme connect -t rdma -n "nqn.2016-06.io.spdk:cnode2" -a 192.168.80.100 -s 4420

# lsblk

4.disconnect

# nvme disconnect -n "nqn.2016-06.io.spdk:cnode1"

# nvme disconnect -n "nqn.2016-06.io.spdk:cnode2"

相关文章:

  • vue实现小球掉落
  • 【Git】查看凭据管理器的账号信息,并删除账号,解决首次认证登录失败后无法重新登录的问题
  • 网络传输(TCP)
  • 微信小程序:flex常用布局
  • Windows pip install -r requirement.txt 太慢
  • 【grpc】利用protobuf实现java或kotlin调用python脚本,含实现过程和全部代码
  • MongoDB索引详解
  • 【C】void指针(通用指针)
  • 蚁群算法解决旅行商问题的完整Python实现
  • 谷歌浏览器安装不在默认安装位置Selenium无法打开解决方法
  • Machine Interrupt Registers
  • 响应式编程Reactor API大全(中)
  • Nacos:发现微服务的未来
  • mongo统计数据库和集合大小
  • google drive api
  • 半Happy的一天
  • Android AAudio
  • 计算机网络-2021期末考试解析
  • Python 基础【八】--数据类型-字典【2024.1.11】
  • 【leetcode】力扣热门之回文链表【简单难度】
  • 新城悦服务:独董许新民辞任,新任独董与另两人组成调查委员会将调查与关联方资金往来
  • 侵害孩子者,必严惩不贷!3名性侵害未成年人罪犯被执行死刑
  • 铁路端午假期运输火车票今日开售,12306提升应对超大规模并发访问需求能力
  • 贵州省委军民融合发展委员会办公室副主任李刚接受审查调查
  • 俄代表团:16日上午将继续“等候乌代表团”
  • 专家:家长要以身作则,孩子是模仿者学习者有时也是评判者