NVMe subsystem NQN
An NVMe subsystem NQN is the NVMe Qualified Name identifying an NVM subsystem, distinct from a host NQN and from individual namespace identifiers.
The subsystem NQN is reported in Identify Controller and is intended to remain permanent for the subsystem lifetime [1]. libnvme models the subsystem NQN separately from the transport address, transport service and host NQN [2].
Linux v6.12 normally uses the reported SUBNQN but can construct a compatibility value when it is missing, invalid or ignored by a device quirk [4]. A namespace identity must still be checked within the discovered subsystem before interpreting multipath state [5]. The well-known discovery NQN is not a unique identity for an ordinary storage subsystem [3].
Relations
- related
- nvm-subsystem, nvme-nsid, nvme-namespace-identifiers, nvme-host-identifier, multipath-nvme, nvme
Advantages
- Separates subsystem identity from the address of an individual transport endpoint.
Limitations
- One subsystem may expose multiple namespaces, so a matching NQN alone does not identify a particular volume.
- An NQN is a name, not a secret credential or proof that the target is authentic.
Citations
- NVM Express Base Specification 2.0c, sections 4.5 and 4.5.1; copyright 2008-2022 NVM Express, Inc., all rights reserved
- libnvme API: fabrics connection parameters and host identification
- libnvme upstream types: nvmf_disc_log_entry.subnqn
- Linux v6.12 NVMe host core: nvme_init_subnqn and subsystem discovery
- NVMe multipath: ANA access states and Linux path policies