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.

SPDK v17.10 and v17.10.1: Logical Volumes

Dec 4, 2017 • Daniel Verkamp

The SPDK team is proud to announce the v17.10 release, as well as the v17.10.1 release (see below for details on the changes between v17.10 and v17.10.1). This release adds a major new feature, Logical Volumes.

Continue...

Success! SPDK's First Developer Meetup...

Nov 9, 2017 • Paul Luse

This week members of the growing SPDK Community met for the first ever SPDK Developer Meetup. Engineers from Massachusetts, Arizona, California, Washington, China, Japan and the United Kingdom all came together in Chandler, AZ, to meet for 2 days of discussions on everything from NVMe to vhost to the community test strategy, roadmap and upcoming improvements.

Continue...

Performance Report Section

Oct 13, 2017 • Prital Shah

Performance Report section has been added under Documentation tab on www.spdk.io.

Continue...