Storage Performance Development Kit (SPDK)提供了一组用于编写高性能、可伸缩、用户态存储应用程序的工具和库。它通过使用一些关键技术来实现高性能:

  • 将所有必需的驱动程序移至用户空间,这样就避免了系统调用,并允许从应用程序中进行零拷贝访问;
  • 轮询硬件任务的完成而不是依靠中断,这会降低总延迟和延迟抖动;
  • 避免在I/O路径中出现锁, 而是依赖消息传递。

SPDK的基础是用户态、轮询、异步、无锁 NVMe 驱动。这提供了从用户空间应用程序直接访问SSD的零拷贝、高度并行的访问。驱动程序被编写为带有一个公共头文件的C语言库。

SPDK进一步提供了一个完整的块堆栈,作为一个用户空间库,它执行许多与操作系统中的块堆栈相同的操作。这包括统一不同存储设备之间的接口、通过队列来处理内存不足或I/O挂起等情况以及逻辑卷管理。

最后,SPDK提供 NVMe-oF, iSCSI, 和 vhost。 在这些组件之上构建的服务器,能够通过网络或其他进程为磁盘提供服务。NVMe和iSCSI的标准Linux内核启动器与这些target交互, 以及与QEMU和虚拟主机进行交互。与其他实现相比,这些服务器的CPU效率可以提高一个数量级。这些target可以用作实现高性能存储目标的范例,也可以用作生产部署的基础。

SPDK NVMe-oF TCP Transport

Nov 15, 2018 • Jim Harris

NVM Express has ratified TCP as a new transport for NVMe-oF! The announcement can be found here. Quoting from the NVM Express announcement:

Continue...

Hitachi SPDK NVMe-oF Performance Report

Nov 8, 2018 • Shuhei Matsumoto

We have been doing some work to evaluate the performance of SPDK and gain some hands-on experience with the SPDK NVMe-oF Target and Initiator. The Hitachi SPDK NVMe-oF Performance Report contains our test configuration and performance results. In summary, we observed up to 8x more IOPS/Core with SPDK NVMe-oF Target and Initiator, vs the Linux Kernel, and a 90% reduction in the software latency. Many thanks to John Kariuki and the SPDK team.

Continue...

New Core Maintainer - Darek Stojaczyk

Nov 7, 2018 • Jim Harris

The SPDK project has a team of core maintainers who are responsible for providing technical oversight for the SPDK project, including final review and merging of patches into the SPDK code base. As the SPDK project continues to grow, the core maintainer team needs to grow as well. With that in mind, I am pleased to announce that we are adding Dariusz (Darek) Stojaczyk to the core maintainer team!

Continue...