前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SPDK介绍

SPDK介绍

作者头像
用户4700054
发布2022-08-17 11:17:05
1.5K0
发布2022-08-17 11:17:05
举报
文章被收录于专栏:存储内核技术交流

什么是SPDK?

SPDK是一套存储开发套件,专门为专用设备(NVME)设计。全称是The Storage Performance Development Kit。SPDK提供了一系列的高性能、可扩展、用户态下面的工具和库。它有如下三个优势

存储设备的驱动代码运行在用户态,不会运行在内核态,避免了内核的上下文切换节省了大量的处理开销,节省下来的CPU时间片可以用于实际的数据处理,比如重复数据剔除、压缩、加密。SPDK的原则是通过消除每一处额外的软件开销来提供最少的延迟和最高的效率。

轮询模式驱动(Polled Mode Drivers, PMDs),改变了I/O的基本模型。在传统的I/O模型中,应用程序提交读写请求后睡眠,一旦I/O完成,中断就会将其唤醒。PMDs的工作方式不同,应用程序提交读写请求后继续执行其他工作,以一定的时间间隔回头检查I/O是否已经完成。这种方式避免了中断带来的延迟和开销,并使得应用程序提高了I/O的效率。在旋转设备时代(磁带和机械硬盘),中断开销只占整个I/O时间的一个很小的百分比,因此给系统带来了巨大的效率提升。然而,在固态设备的时代,持续引入更低延迟的持久化设备,中断开销成为了整个I/O时间中不能被忽视的部分。这个问题在更低延迟的设备上只会越来越严重。系统已经能够每秒处理数百万个I/O,所以消除数百万个事务的这种开销,能够快速地复制到多个内核中。数据包和数据块被立即分发,等待时间减小到最少,使得延迟更低,一致性延迟更多(抖动更少),吞吐量也得到提高。

SPDK核心组件

NVMe驱动

SPDK的基础组件,这个提供优化无锁的驱动提供高扩展、高效、高性能。

Intel I/O Acceleration Technology 是一种基于Xeon处理器的copu offload的引擎,通过提供用户控件访问,减少DMA的数据移动的阈值,允许对小尺寸IO的更好利用

后端块设备

NVMe over Fabrics(NVMe-oF)initiator,从技术角度是从本地SPDK NVMe驱动和NVMe-Of启动器共享一套共同的API命令,这样实现本地/远程复制就非常容易实现

Ceph RADOS Block Device(RBD):使Ceph成为SPDK的后端设备,比如这可能允许Ceph用作另一个存储层。

Blobstore Block Device, 这是SPDK Blobstore的分配的块设备,是虚拟机或者数据可以交互的虚拟设备,这些设备得到SPDK的基础架构的优势,可是显示零拷贝和非常高的扩展性

Linux Asynchrounous I/O(AIO),允许SPDK和内核设备(比如机器硬盘)交互

存储服务

Block device abstration layer(bdev),这种通用的块设备抽象是连接各种不同设备驱动和块设备的存储协议粘合剂,在块层中提供灵活的API用于额外的用户功能,比如压缩和去重

Blobstore:为SPDK实现高精的文件式语义,为数据库、容器、虚拟机或者不依赖POSIX文件系统功能集的工作负载提供高性能基础

存储协议

iSCSI target,建立通过以太网的块流量规范,大约是内核LIO效率的两倍,现在模式是使用TCP/IP协议栈

NVMe-Of target:实现新的NVMe-oF规范,这个取决于RDMA的硬件,NVMe-Of的目标是为每个CPU核心提供高达40bps的流量

vhost-scsi target:KVM/QEMU的功能利用了SPDK NVMe驱动,使得访客虚拟机访问存储设备时延迟更低,使得I/O密集型工作负载的整体CPU负载减低。

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

本文分享自 存储内核技术交流 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档