第17期-直播回顾丨有关SPDK NVMe-oF解决方案介绍

本周,在SDNLAB直播活动【 一期一会】中,英特尔资深软件工程师——杨子夜与大家进行了在线交流,分享有关SPDK NVMe-oF解决方案的介绍,介绍了什么情况下需要NVMe-oF方案和SPDK NVMe-oF解决方案的发展历史、架构,以及基于RDMA和TCP两种传输的设计实现细节,同时也分享了一些性能优化的数据。

(文末有PPT下载方式)

视频回顾和PPT分享

直播问题总结

Q:

为什么要推出SPDK的NVMe-oF解决方案?

A:

其实这个问题在我的演讲中已经提过了。SPDK是一套用户态的针对NVMe SSD 优化的软件库,所以推出SPDK的NVMe-oF 方案主要是为了性能。基于SPDK的用户态NVMe 驱动,以及SPDK的高效编程框架,能更好的发挥出性能(优于内核)。另外在用户态部署NVMe-oF的服务,也便于运维以及管理,摆脱对kernel版本的依赖

Q:

SPDK 和DPDK怎么结合?

A:

SPDK 对于CPU(线程)调度, 用户态的设备管理,和DMA的内存管理等都有相应的API 抽象。其中DPDK库是SPDK高性能的基石,因为对于这些抽象的缺省实现主要由DPDK 承载。当然用户也可以根据业务的需要选择性的替换成自己的软件库。比如把内存管理的那部分抽象出来,集成自己的软件库。

Q:

 SPDK里面对硬件卸载提供哪些功能?

A:

SPDK 库中暂时没有“显示”的library可以把任务卸载到FPGA等硬件中。但是目前SPDK 针对Intel平台有用户态的CBDMA 驱动;包括对Intel的DSA(Data streaming accelerator)也有相应的用户态驱动IDXD(Intel Data Accelerator Driver, 目前在实现过程中)。这些驱动可以卸载一些内存相关的操作,比如内存拷贝等。因此可以在CPU非常繁忙的时候,如果进行相关的卸载可以提高性能。另外SPDK 目前已经用于一些卸载方案中,比如在各种DPU(Data processing unit)中充当了重要的角色,比如集成在一些智能网卡中。

Q:

请问NVMe over TCP有内核版本要求吗?

A:

至少需要Linux 内核版本在5.1以上,选一个比较稳定的版本比较合适。

Q:

 RDMA现在有成熟的用户态的verbs库和SPDK 配合吗?

A:

目前SPDK 中使用了libibverbs, librdmacm相关的库,这些是非常成熟的RDMA 编程相关的库。但是这些库原则上还是依赖于内核。比如需要内核有相应的驱动去管理具有RDMA功能的网卡,或者内核支持一些模拟(比如software RoCE)。目前没有纯用户态的verbs相关的库, 比如说可以直接驱动DPDK管理用户态网卡然后提供RDMA的功能。

Q:

可以聊下和SmartNic的结合吗?

A:

目前可以看到一些公开的信息, 比如Mellanox公司(被NVDIA收购)的智能网卡已经使用了SPDK;此外阿里云的神龙服务器中也用了SPDK。这些做法本质是把SPDK的vhost实现从主机侧放到了智能网卡中。因为智能网卡对主机模拟virtio-net, virtio-blk,甚至模拟NVMe 等设备。那么非常自然的,一些基于SPDK的vhost将加速, 比如基于SPDK的 virtio-blk的加速(SPDK vhost-block)也被下沉到智能网卡中。因为SPDK的框架是非常强大的。对主机侧来讲,智能网卡中的SPDK其实作为了主机侧存储服务的服务端(target);然后对远端的存储服务来讲,智能网卡中的SPDK又充当了客户端的角色(initiator)。

若视频无法播放可扫描下方二维码,从B站观看

扫码关注【SDNLAB】公众号????,

在后台回复第17期直播即可获取课件。

———————————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值