NVMeDirect:超越SPDK(4)

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

上回我们说其实SPDK还支持NVMe Over Fabric,就是唐杰之前讲的那个今年NVMe标准新添加的条款。其实这个NVMf就是个利益均沾的条款,当初中国还是大清国的时候,错过了工业化,国力衰落,列强趁机瓜分了中国。但是新贵美国刚刚脱贫,来的晚了,分不到好地盘了,也没签多少不平等条约。那怎么办呢,肥肉就在眼前,不能不吃啊,就搞了个利益均沾,别人有的好处他也有份。

 

 

SSD是个新事物,势头很猛,NAND Flash厂商靠这个赚了很多钱,SSD厂商也名声大噪,甭管有没有赚到钱,融资倒是没个停。那些传统存储和网络厂商也看得眼红了,所以塞进来这个NVMe Over Fabric,一下子谁都可以靠NVMe赚钱,不只是SSD和Flash厂商了,因为NVMe不只是主机到SSD的协议,也可以是网络上的协议。

 

SPDK也可以作为一个NVMe Over Fabrics的用户态程序。作为一个块设备,数据通过RDMA的形式在网络上传输,只需要有支持RDMA的网卡和OFED软件包。

 

RDMA解惑

 

存储行业真是水深的不行,尽管是存储数据这么一件简单的事情,没想到是如此的复杂,有各种各样的产品,也有各种各样的应用环境。有时感觉自己搞清楚了,突然又冒出个新名词,发现还是一头雾水。那这个RDMA又是个什么东东?

 

首先我们知道Direct Memory Access (DMA),就是设备直接访问内存,不需要通过CPU了,节省了CPU的时间,效率也大为提升。RDMA差不多也是这样,Remote Direct Memory Access (RDMA)就是直接访问另一台机器的内存,而不用人家的CPU参与。

 

 

RDMA这种形式有三大优点:

  1. 零复制:无需网络软件层的参与,应用就能传送数据。数据直接在内存之间传输,而不用在网络层一级级复制。
  2. 跳过内核:用户态程序就能直接传输数据,不需要内核的参与。
  3. 跳过CPU:应用直接访问远端机器的内存,不需要人家CPU的参与,同时也不会占用远端机器的Cache。

RoCE和OFED

 

RoCE(RDMA over Converged Ethernet)是一种允许通过以太网使用远程直接内存访问(RDMA)的网络协议。

 

OFED又是什么?OpenFabrics Enterprise Distribution (OFED)是一个开源的软件,专门用来做RDMA。包括内核驱动,RDMA的各种操作,跳过内核的机制,还有内核态和用户态的编程接口API。支持MPI,socket数据传输(RDS,SDP),NAS和SAN存储,文件系统和数据库等。

 

目前大部分RDMA都是通过以太网和Infiniband传输的。

 

SPDK的NVMf

 

要知道SPDK是从DPDK过来的,那DPDK是为网络数据传输设计。所以在NVMe over Fabrics这里,SPDK类似于iSCSI,如上图一样,也有target和initiator。使用比较简单,首先安装一下:

  • Federa:dnf install libibverbs-devel librdmacm-devel
  • Ubuntu: apt-get install libibverbs-dev librdmacm-dev

接着打开RDMA并编译:

make CONFIG_RDMA=y <other config parameters>

 

引用

 

http://www.spdk.io/spdk/doc/nvmf.html

分类目录 未分类.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。