nvme should use namespace GUID for devid if available
The nvme driver is currently ignoring the namespace GUID which NVMe 1.2 introduced. Many devices that support a NGUID do not set the EUI64, so the devid is constructed from vendor ID, model number, serial number and namespace ID.
As a first step towards full support for the namespace GUID, nvme should use it to create a devid.
Updated by Joshua M. Clulow over 1 year ago
That said, it would be good to confirm, during testing, a couple of cases:
- that a mirrored root pool is still bootable; unlike single-vdev root pools, changes in the devices path of disks in a complex pool (mirrors, raidz, etc) are not tolerated by the fix for #7119, but I believe devid-only changes should not impact boot under any circumstance
- that a non-boot pool (i.e., a second data pool other than the root pool) that is imported during boot via the cache file (i.e., it was not previously exported before reboot) survives across the change in devid as well
I think early boot ZFS pool things like that are probably the only things that end up using
/etc/devices/devid_cache in any vaguely load-bearing fashion.
Updated by Hans Rosenfeld about 1 year ago
Testing: First I verified a system on a single-vdev root pool still boots with this change. As suggested by Josh, I also tested booting with a mirrored root pool, and with havin non-boot pool. Both cases worked as expected.
Note that after updating to #14686, going back to a previous BE only works if the previous BE has #14745. This is needed because the updated devid is stored in the vdev labels by ZFS, causing pool import problems on earlier versions.
Updated by Electric Monk about 1 year ago
- Status changed from New to Closed
- % Done changed from 0 to 100
commit b8f43eb65c2ac2ff69cf1a69aabc90c27cdb859e Author: Hans Rosenfeld <email@example.com> Date: 2022-08-24T08:01:48.000Z 14686 nvme should use namespace GUID for devid if available Reviewed by: Andrew Giles <firstname.lastname@example.org> Reviewed by: Guy Morrogh <email@example.com> Reviewed by: Robert Mustacchi <firstname.lastname@example.org> Reviewed by: Toomas Soome <email@example.com> Approved by: Dan McDonald <firstname.lastname@example.org>