missing serial / scsi / disk by-id
When you have a lot of storage devices, it's best practice to assign them to raid arrays or ZFS pools by something identifiable. And preferably something that's also readable when outside a computer. Commonly: the disk manufacturer and the serial number.
Usually, both the disk manufacturer and the disk serial number are printed on a small label on the disk. So, if you're in the data center replacing a disk, one glance is sufficient to know you got the correct disk.
For this reason, our ZFS storage pool configurations look like this:
NAME STATE tank ONLINE raidz2-0 ONLINE scsi-SSEAGATE_ST10000NM0226_6351 ONLINE scsi-SSEAGATE_ST10000NM0226_0226 ONLINE scsi-SSEAGATE_ST10000NM0226_8412 ONLINE scsi-SSEAGATE_ST10000NM0226_... ONLINE
Instead of this:
NAME STATE tank ONLINE raidz2-0 ONLINE sda ONLINE sdb ONLINE sdc ONLINE sd... ONLINE
If you're replacing a faulty disk, you can match it to the serial number and confirm that you haven't done anything stupid.
Referencing these disks is as easy as using the symlink in
No model names and serial numbers in udev?
But I don't have any serial numbers in
/dev/disk/by-id, I only have
/dev/disk/by-id looks like this:
# ls -1 /dev/disk/by-id/ scsi-35000c5001111138e scsi-35000c50011111401 ... wwn-0x5000c5001111138e wwn-0x5000c5001111140f ...
And it has no manufacturer/serial symlinks, then udev is letting you down.
udevadm info /dev/sda may reveal that you're missing some
udev rules. On this particular machine I did have
On Ubuntu/Focal, the fix was to install
provides udev rules in
# apt-get install sg3-utils-udev
# udevadm trigger --action=change
# ls -1 /dev/disk/by-id/ scsi-35000c5001111138e scsi-35000c50011111401 ... scsi-SSEAGATE_ST10000NM0226_8327 scsi-SSEAGATE_ST10000NM0226_916D ... wwn-0x5000c5001111138e wwn-0x5000c5001111140f ...
Awesome. Devices with serial numbers. I'm off to create a nice zpool.