Several changes to the SPDK bdev nvme driver have been synced to the github repo today. These will affect anyone using the SPDK nvme driver in an iSCSI or NVMe-oF context via the SPDK block device layer.
1) The SPDK bdev nvme driver can now create bdevs for both locally attached and remote (NVMe-oF) devices.
2) The SPDK bdev nvme driver no longer supports wildcard claiming of NVMe devices. This deprecates the NumControllers and ClaimAllDevices key names and requires users to explicitly list the devices to be attached.
3) The SPDK bdev nvme driver no longer automatically creates names for block devices – these names are now specified by the user.
All of the above changes are in effect as of SPDK git commit ID d326998ce.
scripts/gen_nvme.sh can be used to automate creation of a valid configuration file section for locally attached NVMe SSDs.
New configuration file format:
# NVMe Device Whitelist
# Users may specify which NVMe devices to claim by their transport id.
# See spdk_nvme_transport_id_parse() in spdk/nvme.h for the correct format.
# The devices will be assigned names in the format <YourName>nY, where YourName is the
# name specified at the end of the TransportId line and Y is the namespace id, which starts at 1.
TransportID "trtype:PCIe traddr:0000:00:00.0" Nvme0
TransportID "trtype:RDMA subnqn:nqn.2016-06.io.spdk:cnode1 traddr:192.168.100.1 trsvcid:4420" Nvme1