They have a serial.
# lsblk -o name,serial,wwn
NAME SERIAL WWN
sda 6000c29b7ba629b5b75003dd5db7db85 0x6000c29b7ba629b5b75003dd5db7db85
├─sda1 0x6000c29b7ba629b5b75003dd5db7db85
├─sda2 0x6000c29b7ba629b5b75003dd5db7db85
└─sda3 0x6000c29b7ba629b5b75003dd5db7db85
sdb 6000c29b173bad2d77098967b388da1c 0x6000c29b173bad2d77098967b388da1c
sdc 6000c29ec478c552259d7b509d1d0263 0x6000c29ec478c552259d7b509d1d0263
sdd 6000c29291de82536ac578342096fbb6 0x6000c29291de82536ac578342096fbb6
├─sdd1 0x6000c29291de82536ac578342096fbb6
├─sdd2 0x6000c29291de82536ac578342096fbb6
└─sdd3 0x6000c29291de82536ac578342096fbb6
So clean and easy it hurts that this remains unfixed. What’s the middleware looking for that it’s not finding?
Edit: Nevermind. I’ve just spotted the other thread. A Bright Spark decided to rely solely on VPD page 0x80 even though the T10 group has never required it under any revision of SPC. It’s been optional since day one.
You can lead a horse to the water but you cannot force it to drink.
Edit2: It gets worse. VMware with disk.EnableUUID = “TRUE” in the .vmx does enable a valid response to VPD 0x80:
sg_vpd -v /dev/sdb
Supported VPD pages VPD page:
inquiry cdb: [12 01 00 00 fc 00]
[PQual=0 Peripheral device type: disk]
Supported VPD pages [sv]
Unit serial number [sn] <---- This is 0x80
Device identification [di]
Block device characteristics (SBC) [bdc]
In the Linux kernel’s include/scsi/scsi_device.h the read of 0x80 is gated behind how the device reports its scsi/SPC level; VMware disks report as legacy SCSI_2 so the kernel bypasses reading 0x80 (and likely others as well).
The workaround here should be something like scsi_mod.dev_flags=VMware:Virtual Disk S:0x10000000 which triggers BLIST_TRY_VPD_PAGES (see scsi_devinfo.h) but I can’t get it to work on the kernel command line nor as a .conf in modules.d. Based on my research it might need padding to 8chars:16chars. Or quotes. Or both.
Whatever the case, success should mean the appearance of vpd_pg80 under sys/block/*/device.