We have two Dell T550 systems with different models of NVME drive. On one system the NVME devices present as multipath and on the second not.
The multipath NVME:
# nvme list
Node SN Model Namespace Usage Format FW Rev
--------------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1 S6XXXXXXXXXXX97 Dell Ent NVMe v2 AGN RI U.2 3.84TB 1 3.84 TB / 3.84 TB 512 B + 0 B 2.3.0
/dev/nvme1n1 S6XXXXXXXXXXX94 Dell Ent NVMe v2 AGN RI U.2 3.84TB 1 3.84 TB / 3.84 TB 512 B + 0 B 2.3.0
/dev/nvme2n1 S6XXXXXXXXXXX92 Dell Ent NVMe v2 AGN RI U.2 3.84TB 1 3.84 TB / 3.84 TB 512 B + 0 B 2.3.0
/dev/nvme3n1 S6XXXXXXXXXXX89 Dell Ent NVMe v2 AGN RI U.2 3.84TB 1 3.84 TB / 3.84 TB 512 B + 0 B 2.3.0
The non-multipath NVME:
# nvme list
Node SN Model Namespace Usage Format FW Rev
--------------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1 SDB3XXXXXXXXXXX03 Dell DC NVMe PE8010 RI U.2 3.84TB 1 3.84 TB / 3.84 TB 512 B + 0 B 1.2.0
/dev/nvme1n1 SDB3XXXXXXXXXXX0K Dell DC NVMe PE8010 RI U.2 3.84TB 1 3.84 TB / 3.84 TB 512 B + 0 B 1.2.0
/dev/nvme2n1 SDB3XXXXXXXXXXX0J Dell DC NVMe PE8010 RI U.2 3.84TB 1 3.84 TB / 3.84 TB 512 B + 0 B 1.2.0
/dev/nvme3n1 SDB3XXXXXXXXXXX0N Dell DC NVMe PE8010 RI U.2 3.84TB 1 3.84 TB / 3.84 TB 512 B + 0 B 1.2.0
Both systems have an identical operating system installation:
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy
# uname -a
Linux zhapcon0000-007f-00-00 6.8.0-48-generic #48~22.04.1 SMP PREEMPT_DYNAMIC Fri Oct 25 14:37:37 UTC x86_64 x86_64 x86_64 GNU/Linux
# zfs version
zfs-2.2.6-8_g8786ac8453
zfs-kmod-2.2.6-8_g8786ac8453
This most obviously manifests itself as no 'devid' field being provided in the zdb -C output for the whole disk mirror in the zpool. The impact in our environment is that an automated disk replacement tools cannot match the failed/removed unit in the zpool with the replacement device because we are using the devid property as a key. I believe it is this code which is supposed to generate that property and it already seems to have some special behaviour to handle multipath dm devices: https://github.com/openzfs/zfs/blob/baa50314567afd986a00838f0fa65fdacbd12daf/lib/libzutil/os/linux/zutil_import_os.c#L385
We have experienced other slight oddities with udev for this configuration that we've managed to workaround but we're a bit stuck here.
System information
Describe the problem you're observing
We have two Dell T550 systems with different models of NVME drive. On one system the NVME devices present as multipath and on the second not.
The multipath NVME:
The non-multipath NVME:
Both systems have an identical operating system installation:
This most obviously manifests itself as no 'devid' field being provided in the
zdb -C
output for the whole disk mirror in the zpool. The impact in our environment is that an automated disk replacement tools cannot match the failed/removed unit in the zpool with the replacement device because we are using the devid property as a key. I believe it is this code which is supposed to generate that property and it already seems to have some special behaviour to handle multipath dm devices: https://github.com/openzfs/zfs/blob/baa50314567afd986a00838f0fa65fdacbd12daf/lib/libzutil/os/linux/zutil_import_os.c#L385We have experienced other slight oddities with udev for this configuration that we've managed to workaround but we're a bit stuck here.
The multipath NVME:
The non-multipath NVME:
Describe how to reproduce the problem
N/A
Include any warning/errors/backtraces from the system logs
N/A