Block device naming

From: Alibek A.
Date: Thu May 09 2019 - 16:45:19 EST


Hi!

I want to address the following problem:
On the system with hot-attached new storage volume, such as FC-switch update configuration for connected FC-HBA on servers, linux kernel reorder block devices and change names of block devices. Becouse scsi-id, wwn-id and other is a symbol links to block device names than on change block device name change path to device.
This causes the server to stop working.

For example, on server present ZFS pool with attached device by scsi-id
# zpool status
pool: pool
state: ONLINE
scan: scrub repaired 0 in 1h39m with 0 errors on Sun Oct 8 02:03:34 2017
config:

NAME STATE READ WRITE CKSUM
pool ONLINE 0 0 0
scsi-3600144f0c7a5bc61000058d3b96d001d ONLINE 0 0 0

Before export new block device from storage to hba, scsi-id have next path to device:
/dev/disk/by-id/scsi-3600144f0c7a5bc61000058d3b96d001d -> ../../sdd

When added new block device by FC-switch, FC-HBA kernel change block device names:
/dev/disk/by-id/scsi-3600144f0c7a5bc61000058d3b96d001d -> ../../sdf

and ZFS can't access to device until reboot (partprobe, zpool online -e pool scsi-3600144f0c7a5bc61000058d3b96d001d - may help or may not help)

Is there any way to fix or change this behavior of the kernel?

It may be more reasonable to immediately assign an unique persistent identifier of device and linking other identifiers with it?


With regards, Alibek!