前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用SPDK实现NVMe over Fabrics Target

使用SPDK实现NVMe over Fabrics Target

作者头像
虚拟化云计算
发布于 2020-09-08 09:31:20
发布于 2020-09-08 09:31:20
6.1K0
举报
文章被收录于专栏:虚拟化云计算虚拟化云计算

本文使用两台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"

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 虚拟化云计算 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
NVMe-oF,nvme_cli_initiator与tgt(spdk_tgt)之Fabrics(RDMA)流程源码分析
NVMe over Fabrics (NVMe-oF) 是 NVMe 网络协议对以太网和光纤通道的扩展,可在存储和服务器之间提供更快、更高效的连接,并降低应用程序主机服务器的 CPU 利用率
晓兵
2023/07/14
2.4K0
NVMe-oF,nvme_cli_initiator与tgt(spdk_tgt)之Fabrics(RDMA)流程源码分析
基于DOAS文件系统接口(DFS)暴露的SPDK块设备
git clone https://github.com/spdk/spdk.git
晓兵
2023/05/22
8550
基于DOAS文件系统接口(DFS)暴露的SPDK块设备
用mellanox DPU实现裸金属服务器
两种传输协议,mellanox的卡即可以工作于InfiniBand模式也可以工作于Ethernet模式。
惠伟
2021/07/30
8.9K2
DPU/IPU SPDK存储卸载之用户态vfio(vfio_user)
IPU: Infrastructure Processing Units (lPUs), 基础设施处理单元(硬件卡), 如存储处理/卸载到IPU
晓兵
2024/09/01
6272
DPU/IPU SPDK存储卸载之用户态vfio(vfio_user)
SPDK与iscsi_initiator及libiscsi库源码分析
SPDK initiator模块可与远端的iscsi_tgt配合, 将SPDK的块存储bdev拉远到TGT端, bdev除了可对接iscsi, 还可对接ceph_rbd, nvmeof_tgt等
晓兵
2024/10/26
2540
SPDK与iscsi_initiator及libiscsi库源码分析
【重识云原生】第三章云存储3.2节——SPDK方案综述
SSD正在迅速扩展它在数据中心中的份额,同旋转介质(HHD)相比,当前的闪存在性能、功耗和机架密度上具有明显优势,随着下一代媒介进入市场,这些优势将持续扩大。
江中散人_Jun
2022/04/11
5.1K0
【重识云原生】第三章云存储3.2节——SPDK方案综述
用SPDK实现存储加速
个人理解nvme能提高存储性能,就像4G比3G快一样,电磁波还是光速,但协议变了,所以快了。rdma应用跑在用户态能减小存储时延,spdk在用户态实现nvme驱动,天然能和rdma结合,而且两者的队列能一一映射,能达到锦上添花的效果。坏处就是kernel upstream实现的nvme代码无法复用,网卡硬件得支持rdma,rdma的库很多,出了问题估计会有找不得北的感觉。
惠伟
2021/08/26
2.6K0
DAOS分布式存储_用户态文件系统dfuse_IO全路径(任务调度_RPC_RDMA_BULK_SPDK_NVME_EC_SGL等)
分布式异步对象存储(DAOS,Distributed Asynchronous Object Storage)是一个开源的可扩展存储系统,从根本上设计用于在用户空间支持SCM和NVMe存储。DAOS在IO500基准测试中展现出领先的性能
晓兵
2023/09/03
1.3K0
DAOS分布式存储_用户态文件系统dfuse_IO全路径(任务调度_RPC_RDMA_BULK_SPDK_NVME_EC_SGL等)
Brocade为何认为FC是NVMe over Fabric中最好的Fabric?
企鹅号小编
2017/12/29
1.1K0
Brocade为何认为FC是NVMe over Fabric中最好的Fabric?
Intel高性能IO500分布式存储系统DAOS资源汇总-包含RDMA 网络 SPDK NVME TSE 任务调度 异步 事件队列等
DAOS在后傲腾时代的发展策略: https://www.bilibili.com/video/BV1Qw411377s
晓兵
2023/10/16
2.2K0
Intel高性能IO500分布式存储系统DAOS资源汇总-包含RDMA 网络 SPDK NVME TSE 任务调度 异步 事件队列等
全闪分布式存储之PureFlash-极短IO路径-极致性能-极简RDMA和SPDK引擎落盘-支持超融合-IO路径-源码流程及项目简介
极简IO路径, 原生RDMA(verbs)和SPDK引擎落盘加持, 能充分发挥硬件性能, 支持快照, 多副本等, 高可用的高性能分布式存储, 让我们一起见证全闪时代吧!
晓兵
2023/11/25
1.7K0
全闪分布式存储之PureFlash-极短IO路径-极致性能-极简RDMA和SPDK引擎落盘-支持超融合-IO路径-源码流程及项目简介
【重识云原生】第四章云网络4.7.6节——virtio-blk存储虚拟化方案
        基于virtio的virtio-blk是KVM-Qemu虚拟化生态中的虚拟化块存储的一种实现方式,利用了virtio共享内存的机制,提供了一种高效的块存储挂载的方法。Guest OS内核通过加载virtio-blk驱动,实现块存储的读写,无需额外的厂家专用驱动。Virtio-blk设备在虚拟机以一个磁盘的方式呈现,是目前应用最广泛的虚拟存储控制器。如下是qemu所模拟的PC(基于intel i440fx主板架构)的组成结构图。
江中散人_Jun
2022/06/28
2.2K0
【重识云原生】第四章云网络4.7.6节——virtio-blk存储虚拟化方案
由mellanox DPU bluefield-2想到的问题
本文全是个人感想和猜测,写一写软件人眼中的硬件,越底层越难,个人理解不一定对,请用批判的眼光看,特此声明,免得被人贻笑大方。
惠伟
2021/08/19
1.9K0
由mellanox DPU bluefield-2想到的问题
DAOS引擎启动流程-源码分析_模块初始化_如VOS等
执行:daos_server start, server通过golang调用engine的c
晓兵
2023/06/01
1.1K0
DAOS引擎启动流程-源码分析_模块初始化_如VOS等
虚拟机支持本地nvme ssd
提起存储都是血泪史,不知道丢了多少数据,脑子首先想到的就是《你说啥》洗脑神曲,我就像那个大妈一样,千万个问号?????????????.........
惠伟
2022/04/28
1.5K0
虚拟机支持本地nvme ssd
聊聊daos高性能分布式存储
简介 现在大部分应用的IO模型会增加元数据和不对齐的数据碎片比例越来越大,同时传统的存储软件引入的对齐约束和通过大量延迟导致针对这些类型的IO应用越来越差的性能。大容量持久化内存(SCM)和高速硬件结构两者结合的,为重新定义存储规范和高效支持现在的IO密集型应用提供最佳的机会 基于SCM需要重新考虑完整的存储栈的设计,为了释放这些新硬件的性能,新的软件栈采用字节粒度无共享的接口,并且它能够支持大规模分布式存储。DAOS是基于SCM和NVMe的全新的IO架构,通过fabric全局访问对象的地址空间,保证性能的
用户4700054
2022/08/17
3.6K0
聊聊daos高性能分布式存储
Linux内核(5.10)-IO全路径-文件系统到磁盘-或远端iscsi/nvmeof协议盘
DAX: 磁盘(disk)的访问模式有三种 BUFFERED、DIRECT、DAX。前面提到的由于page cache存在可以避免耗时的磁盘通信就是BUFFERED访问模式的集中体现;但是如果我要求用户的write请求要实时存储到磁盘里,不能只在内存中更新,那么此时我便需要DIRECT模式;大家可能听说过flash分为两种nand flash和nor flash,nor flash可以像ram一样直接通过地址线和数据线访问,不需要整块整块的刷,对于这种场景我们采用DAX模式。所以file_operations的read_iter和write_iter回调函数首先就需要根据不同的标志判断采用哪种访问模式, kernel在2020年12月的patch中提出了folio的概念,我们可以把folio简单理解为一段连续内存,一个或多个page的集合
晓兵
2023/12/07
1.9K0
Linux内核(5.10)-IO全路径-文件系统到磁盘-或远端iscsi/nvmeof协议盘
DAOS-VOS版本化对象存储-NVME调度-轮询-水位线等流程分析
博客: https://logread.cn | https://blog.csdn.net/ssbandjl | https://cloud.tencent.com/developer/user/5060293/articles
晓兵
2023/11/12
7440
DAOS-VOS版本化对象存储-NVME调度-轮询-水位线等流程分析
分布式存储_高性能RDMA网络_架构设计_性能调优参考_网卡排查命令_笔记
博客: https://logread.cn | https://blog.csdn.net/ssbandjl | https://cloud.tencent.com/developer/user/5060293/articles
晓兵
2023/11/03
5K0
分布式存储_高性能RDMA网络_架构设计_性能调优参考_网卡排查命令_笔记
从SAS过渡到NVMe岂止仅换个底盘
广告:冬瓜哥新作《大话计算机——计算机系统低层架构原理极限剖析》将于8月份出版,详细内容点击链接。
冬瓜哥
2019/06/10
1.3K0
从SAS过渡到NVMe岂止仅换个底盘
推荐阅读
相关推荐
NVMe-oF,nvme_cli_initiator与tgt(spdk_tgt)之Fabrics(RDMA)流程源码分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档