SPDK v19.10: NVMe character devices, Zoned bdev API, Opal support

On behalf of the SPDK community I’m pleased to announce the release of SPDK 19.10!

This release contains the following new features:

  • Zoned bdev API: Zones are an extension of the bdev interface. The concept comes from ATA/SCSI and is currently being worked as an NVMe TP. Bdevs can now be queried to check for zone semantics.
  • Opal bdev: A new opal bdev has been added to support management of NVMe self-encrypting drives through the Opal specification. This feature is considered experimental.
  • NVMe character device: Added NVMe character device implementation based on CUSE library. It allows creation of NVMe device nodes in Linux kernel for the controller and namespaces (i.e. at /dev/nvmeXnY). These character devices can be used by tools such as nvme-cli. This feature is considered experimental.
  • Blobfs mount via RPC: Added mounting blobfs to path on host via RPC.
  • OCF: Added support for OCF v19.06. Added write-only, write-invalidate and write-around mode support.
  • DPDK: Added support for DPDK 19.08.
  • RPC names: Names of RPC calls streamlined between different components. Previous RPC names are available, but will be deprecated.

The full changelog for this release is available here.

New Contributors

This release contains 845 commits from 44 authors with over 44k lines of code changed.

We’d especially like to recognize all of our first time contributors:

  • Benjamin Saunders
  • Kay Bouché
  • Marcin Dzięgielewski
  • Michael Haeuptle
  • Michal Ben Haim
  • Tom Nabarro
  • Yang Fan
  • Yan Wang
  • Yao Liu

Thanks to everyone for your contributions, participation, and effort!