RDMA是个什么鬼?相信大部分不关心高性能网络的童鞋都不太了解.但是NVMe over Fabrics的出现让搞存储的不得不抽出时间来看看这个东西,这篇文章就来介绍下我所了解的RDMA. RDMA(Remote Direct Memory Access)意为在远端直接访问主机的内存,而不需要主机参与.如下图,当主机和Client端都配备RDMA NIC的时候,数据通过NIC的DMA引擎直接在两端内存之间转移,而不需要经过OS的网络协议栈.这种技术对于局域网高带宽的存储系统非常有吸引力. 网络技术…
对于大部分人来说,NVMe over Fabrics(简称NVMf)还是个新东西,因为其第一个正式版本的协议在今年6月份才发布.但是这并不影响人们对NVMf的关注,因为这项依托于NVMe的技术很可能继续改变存储市场格局. NVMf的贡献在于提供除PCIe外访问NVM的另一个途径-Fabrics,并且将fabrics链路在latency上增加的overhead维持在10us以内.来自NVMf spec的一张图清晰的展示了它的野心,围绕着NVMe的战场再一次扩大了. 提供fabrics途径后,可以在…
NVMe over Fabrics 技术特征 跨网络传输NVMe命令需要特殊的考虑,而不仅仅是针对本地存储内存.例如,为了远距离传输NVMe协议,理想的底层网络或fabric技术将具有以下特性: 可靠的.基于可信的流程控制和交付机制.这种流控制允许网络或Fabric进行自身限流,提供了可靠的连接,可以保证在硬件级别进行传输,而不需要由于拥塞而丢弃帧或包.对FC,InfiniBand和PCI Express传输来说,基于可信的流量控制是天然具备的. 一个最优化的客户端.客户机软件应该能够直接向fa…
文章出处:https://mp.weixin.qq.com/s/pW-tQR4AYr1Gtd4dpHVW7w 摘要:远程直接内存访问(即Remote Direct Memory Access)是一种直接内存访问技术,它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入. RDMA简介 传统的TCP/IP技术在数据包处理过程中,要经过操作系统及其他软件层,需要占用大量的服务器资源和内存总线带宽,数据在系统内存.处理器缓存和网络控制器缓存之间来回进行复制移动,给服务器的CPU和内…
Discovery服务过程跟踪 对于NVMe over Fabrics的subsystem,有两种类型:Discovery子系统和NVM子系统.这里介绍与Discovery子系统相关的交互内容(即:在Linux系统上使用nvme discover命令后的交互过程). Discovery子系统无Namespace存储空间,只响应相关的Fabric命令和Admin命令.这也就意味着主机与Discovery子系统只需要NVMe协议规格说明书中定义的Admin Submission Queue,而不需要…
基础部分 NVMe驱动解析-前言 NVMe驱动解析-注册设备 NVMe驱动解析-关键的BAR空间 NVMe驱动解析-DMA传输(热门) NVMe驱动解析-响应I/O请求 用一个简单的例子窥探NVMe的PRP规则 SPDK预备知识-DPDK SPDK的NVMe协议实现-上半部分 SPDK的NVMe协议实现-下半部分 NVMe融合blk-mq(从centos7.2开始) 强势回归,Linux blk用实力证明自己并不弱!(热门) NVMe over Fabrics NVMe over Fabrics…
毫无疑问地,用来取代iSCSI/iSER(iSCSI Extensions for RDMA)技术的NVMe over Fabrics着实让RDMA又火了一把.在介绍NVMe over Fabrics之前,先科普一下RDMA. 1. DMA和RDMA的概念 1.1 什么是DMA? Direct Memory Access(DMA) is a capability provided that allows data to be sent directly from an attached devi…
Introduction to the Storage Performance Development Kit (SPDK) | SPDK概述 By Jonathan S. (Intel), Updated December 5, 2016 Solid-state storage media is in the process of taking over the data center. Current-generation flash storage enjoys significant a…
在NVMe over PCIe中,I/O命令支持SGL(Scatter Gather List 分散聚合表)和PRP(Physical Region Page 物理(内存)区域页), 而管理命令只支持PRP;而在NVMe over Fabrics中,无论是管理命令还是I/O命令都只支持SGL.NVMe over Fabrics既支持FC网络,又支持RDMA网络.众所周知,在RDMA编程中,SGL(Scatter/Gather List)是最基本的数据组织形式. SGL是一个数组,该数组中的元素被…
源代码及NVMe协议版本 SPDK : spdk-17.07.1 DPDK : dpdk-17.08 NVMe Spec: 1.2.1 基本分析方法 01 - 到官网http://www.spdk.io/下载spdk-17.07.1.tar.gz 02 - 到官网http://www.dpdk.org/下载dpdk-17.08.tar.xz 03 - 创建目录nvme/src, 将spdk-17.07.1.tar.gz和dpdk-17.08.tar.xz解压缩到nvme/src中,然后用Open…