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.07 Release: Build system improvements, userspace vhost-blk target, and GPT bdev

Jul 31, 2017 • Daniel Verkamp

The SPDK team is proud to announce the v17.07 release. This release incorporates a number of ease-of-use improvements and API cleanups.

Continue...

Videos: Intel® Builders Developer Summit on April 19-20, 2017

Jun 21, 2017 • John Kariuki

Videos from the Intel Builders Developers Summit featuring SPDK and ISA-L held in Santa Clara on April 19th and 20th are posted here.

Continue...

Presentations: Intel® Builders Developer Summit on April 19-20, 2017

May 3, 2017 • Jonathan Stern

Please note these are static PDFs, but many of the presentations made extensive use of animations, so something may be lost in translation. There will be video available soon; links will be added in a separate post.

Continue...