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 Developer Meetup is Now Full!

Sep 1, 2017 • Paul Luse

It’s going to be awesome! Although we’re now at capacity, please feel free to email Paul and we’ll make sure we do everything we can to accommodate you.

Continue...

Announcing the first SPDK Developer Meetup

Aug 21, 2017 • Paul Luse

Come and join the very first SPDK Developer Meetup! It’s an excellent opportunity for networking, learning and making forward progress on the code and generally making the community more productive. There won’t be any presentations at this meeting, instead be prepared for the following types of activities:

Continue...

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...