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 by moving all of the necessary drivers into userspace and operating in a polled mode instead of relying on interrupts, which avoids kernel context switches and eliminates interrupt handling overhead.

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. Similarly, SPDK provides a user space driver for the I/OAT DMA engine present on many Intel Xeon-based platforms with all of the same properties as the NVMe driver.

SPDK also provides NVMe-oF and iSCSI servers built on top of these user space drivers that are capable of serving disks over the network. The standard Linux kernel iSCSI and NVMe-oF initiator can be used (or the Windows iSCSI initiator even) to connect clients to the servers. These servers can be up to an order of magnitude more CPU efficient than other implementations.

SPDK is an open source, BSD licensed set of C libraries and executables hosted on GitHub. All new development is done on the master branch and stable releases are created quarterly. Contributors and users are welcome to submit patches, file issues, and ask questions on our mailing list.

News

SPDK 17.03 Release: VM Optimization & Blobstore

Mar 31, 2017 • Jonathan Stern and Jim Harris

Today, the SPDK team is proud to announce the v17.03 release. This release features two significant new sets of components which will unlock a broader set of use cases for SPDK.

Continue...

Intel Builders Developer Summit Featuring SPDK & ISA-L

Mar 16, 2017 • Jonathan Stern

Meet with key contributors to SPDK, learn details about the latest and upcoming SPDK ingredients, and participate in roundtable discussions that will shape the SPDK community. The two day event also includes introductions to adjacent software libraries and opportunities for informal networking and private discussions.

Continue...

SPDK 16.12 Release

Dec 19, 2016 • Jim Harris and Jonathan Stern

Today we have released SPDK 16.12. This release contains the following major additions since our last release:

Continue...