码迷,mamicode.com
首页 > 其他好文 > 详细

【SPDK官方文档】Introduction/What is SPDK

时间:2020-02-22 14:01:18      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:userspace   存储设备   使用   rop   head   系统调用   cti   其他   hardware   

What is SPDK

The Storage Performance Development Kit (SPDK) provides a set of tools and libraries for writing high performance, scalable, user-mode storage applications. It achieves high performance through the use of a number of key techniques:

  • Moving all of the necessary drivers into userspace, which avoids syscalls and enables zero-copy access from the application.
  • Polling hardware for completions instead of relying on interrupts, which lowers both total latency and latency variance.
  • Avoiding all locks in the I/O path, instead relying on message passing.

SPDK是什么

存储性能开发套件(SPDK)提供一套工具和库用来开发高性能,可扩展,用户态存储应用。达成高性能通过使用以下关键技术:

  • 移动所有必须的驱动到用户空间,这样避免系统调用和确保从应用无拷贝的访问。
  • 轮询硬件来实现而不是依赖中断,降低总延迟和延迟状态。
  • 避免了IO锁,而是使用消息传递。

 

The bedrock of SPDK is a user space, polled-mode, asynchronous, lockless NVMe driver. This provides zero-copy, highly parallel access directly to an SSD from a user space application. The driver is written as a C library with a single public header. See NVMe Driver for more details.

SPDK的基石是用户空间,轮询模式,异步,无锁NVMe驱动,这提供了零拷贝,高并行的从用户空间应用直接访问SSD。驱动由C库单独头文件编写,查看NVMe Driver获取更多细节。

 

SPDK further provides a full block stack as a user space library that performs many of the same operations as a block stack in an operating system. This includes unifying the interface between disparate storage devices, queueing to handle conditions such as out of memory or I/O hangs, and logical volume management. See Block Device User Guide for more information.

SPDK还提供一个完整的块栈,是一个用户空间库,和操作系统中的块栈运行很多相同的功能。包括在不同存储设备之间的统一接口,列队处理内存不足或IO挂起,和逻辑卷管理。查看Block Device User Guide获取更多细节。

 

Finally, SPDK provides NVMe-oFiSCSI, and vhost servers built on top of these components that are capable of serving disks over the network or to other processes. The standard Linux kernel initiators for NVMe-oF and iSCSI interoperate with these targets, as well as QEMU with vhost. These servers can be up to an order of magnitude more CPU efficient than other implementations. These targets can be used as examples of how to implement a high performance storage target, or used as the basis for production deployments.

最后,SPDK提供NVMe-oF, iSCSI, and vhost服务,这些服务建立在通过网络服务硬盘或其他程序之上。标准的Linux内核和target之间发起NVMe-oF 和 iSCSI互操作,就像QEMU 和 vhost。这些服务可以提高一个数量级的CPU效率。那些target可以被当作实现高性能存储target的样例,或者被用来作为开发产品的基础。

存储性能开发套件(SPDK)提供一套工具和库用来开发高性能,可扩展,用户态存储应用。达成高性能通过以下关键简述的使用移动所有必须的驱动到用户空间,这样避免系统调用和确保从应用无拷贝的访问轮询硬件来实现而不是依赖中断,降低总延迟和延迟状态避免了IO锁,而是用消息传递

【SPDK官方文档】Introduction/What is SPDK

标签:userspace   存储设备   使用   rop   head   系统调用   cti   其他   hardware   

原文地址:https://www.cnblogs.com/xasz/p/12344919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!