Add udev rules to ease disk identification of longhorn disks by path

Udev provides various ways to identify disks:

# udevadm info /dev/sdb | grep ID_
E: ID_ATA=1
E: ID_TYPE=disk
E: ID_BUS=ata
E: ID_MODEL=MK001920GWSSE
E: ID_MODEL_ENC=MK001920GWSSE\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
E: ID_REVISION=HPG3
E: ID_SERIAL=MK001920GWSSE_S523NA0N908173
E: ID_SERIAL_SHORT=S523NA0N908173
E: ID_ATA_WRITE_CACHE=1
E: ID_ATA_WRITE_CACHE_ENABLED=0
E: ID_ATA_FEATURE_SET_PM=1
E: ID_ATA_FEATURE_SET_PM_ENABLED=1
E: ID_ATA_FEATURE_SET_SMART=1
E: ID_ATA_FEATURE_SET_SMART_ENABLED=1
E: ID_ATA_DOWNLOAD_MICROCODE=1
E: ID_ATA_SATA=1
E: ID_ATA_SATA_SIGNAL_RATE_GEN2=1
E: ID_ATA_SATA_SIGNAL_RATE_GEN1=1
E: ID_ATA_ROTATION_RATE_RPM=0
E: ID_WWN=0x5002538e009235c5
E: ID_WWN_WITH_EXTENSION=0x5002538e009235c5
E: ID_ATA_PERIPHERAL_DEVICE_TYPE=0
E: ID_PATH=pci-0000:5c:00.0-sas-phy0-lun-0
E: ID_PATH_TAG=pci-0000_5c_00_0-sas-phy0-lun-0

In order to ease the declaration of longhorn_disk_config, it would be convenient to add few udev rules to create new simplinks for values that can be easely retrieved through redfish (using sylvactl inspect-bmh) or ironic inspection.

the use of disk serial-number would be very appropriate (we already recommand its use for rootdevice):

for example, we could add a rule in /etc/udev/rules.d/80-persistent-storage.rules:

ENV{ID_SERIAL_SHORT}=="?*", SYMLINK+="disk/by-sn/$env{ID_SERIAL_SHORT}$env{.PART_SUFFIX}"
Assignee Loading
Time tracking Loading