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.

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.

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.

Finally, SPDK provides NVMe-oF, iSCSI, 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.

Test your SPDK application with Intel® Optane™ SSDs

Sep 6, 2018 • John Kariuki

Intel and Packet are working together to bring free infrastructure for testing and benchmarking with Intel® Optane™ SSDs to the developer community. This community lab is a perfect fit for the SPDK community that cares about getting the most from their storage applications. Interested in testing your SPDK application on the world’s most responsive data center SSD? Head over to Accelerate with Optane for more information, and, once you’re ready, request access. The lab will provide you with a highly capable bare metal server powered by Intel Xeon® Scalable processors, with three 750GB Intel Optane™ SSD DC P4800X and one 4TB Intel SSD DC P4500 for comparison purposes.

Continue...

Announcing the 2018 SPDK Developer Meetup hosted by NetApp

Aug 8, 2018 • Paul Luse

Come and join the 2nd annual SPDK Developer Meetup, this year hosted by NetApp in beautiful Sunnyvale CA! It’s an excellent opportunity for networking, learning and making forward progress on the code and generally making the community more productive. We’ll be covering all sorts of topics but a major theme this year will be NVMeOF (including FC support) so if you’re interested in these topics you won’t want to miss this meet-up.

Continue...

2018 SPDK US Summit Recap

Jun 13, 2018 • Anu Rao

Here is a recap of 2018 SPDK Summit at the beautiful Dolce Hayes Mansion, San Jose on May 15th and 16th. We had a successful event and achieved all of our goals. Thanks to the dedication and support of many contributors and great participation from SPDK community members.

Continue...