[dm-devel] [Question] udev ID_UID attribute ???

Hannes Reinecke hare at suse.de
Mon Jul 11 06:40:50 UTC 2016


On 07/08/2016 10:45 PM, Xose Vazquez Perez wrote:
> On 07/08/2016 05:52 PM, Mike Christie wrote:
> 
>> On 07/07/2016 04:21 PM, Xose Vazquez Perez wrote:
>>> Is "ID_UID" really valid?
>>>
>>> libmultipath/hwtable.c:         .uid_attribute = "ID_UID",
>>>
>>
>> I was wondering the same thing. For ceph rbd, we do not have the normal
>> scsi serial/wwn values, so I am modifying our udev rule to export ID_UID.
>>
>> I made the ID_UID, the values we use for the udev (/dev/rbd) name which
>> is the pool name (basically just a grouping of storage) plus the image
>> name (basically name of a disk created in a pool).
> 
> ID_UID isn't "standard". It wasn't found in kernel, multipath-tools or systemd(udev)
> sources.
> 
> It's variable returned by dasdinfo from 390-tools package, it contains the "DASD uid"
> of a dasd device. And it's used by udev rules to make symlinks for dasd devices under
> /dev/disk/by-id/
> 
> This is hercules, but in a LPAR shows a similar output:
> sles11-s390x:~ # dasdinfo -e -a -d /dev/dasda
> ID_BUS=ccw
> ID_TYPE=disk
> ID_UID=HRC.ZZ000000000001.0120.22
> ID_XUID=HRC.ZZ000000000001.0120.22
> ID_SERIAL=0X0122
> 
> sles11-s390x:~ # grep ID_UID  /etc/udev/rules.d/59-dasd.rules
> KERNEL=="dasd*[!0-9]", ENV{ID_UID}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_UID}"
> KERNEL=="dasd*[0-9]", ENV{ID_UID}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_UID}-part%n"
> 
Primary reason here is that DASDs already had an ID_SERIAL, which
happens to contain the disk number. Which unfortunately is _not_ unique,
but rather per guest. So we had to come up with a different identifier
here to get persistent _and_ unique WWIDs.

(And there also the thingie with IBMs GDPRS, which requires us to have
completely different WWIDs, too. But let's not be sidetracked here).

> 
> It was used for dasd devices in multipath-tools because they haven't a WWN.
> 
Well... As mentioned above, they have one _now_ (that's the
ID_UID/ID_XUID above). But by the time we've been doing the persistent
names they didn't.

I would rather make sure Ceph/RBD has a sysfs attribute somewhere which
contains a unique number.
And then we could code a similar thing like we did for SCSI with the
vpd83 access to get the WWID.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		   Teamlead Storage & Networking
hare at suse.de			               +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)




More information about the dm-devel mailing list