Disk unusable as pool member

@ITstaff Hello again.
Re:

Agreed, nice find. That’s a pain.

Cheers. This is a tricky one. As real independant disks always have unique serial numbers and we have this as a hard dependency.

And that log snippet is consistent with Rockstor fighting with independatn drives having the same serial. We basically have to ‘cover’ each duplicate found with a fake-uuid serial that is temporary and changed on each refresh. See the following doc for some background:

The fact that there are sda sdb type names here for the drives concerned pretty much guarantees that hpsa is already being used. Plus we have:

OK, we may be stuffed here with the current raid controller function, as is. But take a look at exactly how we extract the serial using udev here:

Basically it calls

/usr/bin/udevadm info --name=device_name_here

Where the device name is the canonical one such as sdX. And parses the output to gather a serial that looks most like what we used to use exclusively from lsblk but it started to fail a lot in reporting serials and so we moved to failing through udevadm. See also:

And you could start by simply changing the “False” to “True” (and then restarting Rockstor) as from memory I think we only fall through to udev if lsblk can give us no serials at all.

Let see the output of a couple of different disks on this controller that otherwise show up as the same serial. It may be a tweak there could make this controller work in it’s current configuration. I’m assuming there is no other way to configure it to pass drives throught.

The hope I see here is that udev has created by-id names of:

lrwxrwxrwx 1 root root 9 mag 30 2022 scsi-0HP_LOGICAL_VOLUME_00000000 -> …/…/sdb
...
lrwxrwxrwx 1 root root 9 mag 30 2022 scsi-0HP_LOGICAL_VOLUME_01000000 -> …/…/sda
lrwxrwxrwx 1 root root 9 mag 30 2022 scsi-0HP_LOGICAL_VOLUME_02000000 -> …/…/sdc
lrwxrwxrwx 1 root root 9 mag 30 2022 scsi-0HP_LOGICAL_VOLUME_03000000 -> …/…/sdd
lrwxrwxrwx 1 root root 9 mag 30 2022 scsi-0HP_LOGICAL_VOLUME_04000000 -> …/…/sde

Which looks like artificially assigned serials of 01000000, 02000000, 03000000, 04000000. But if we can see these in the udev output then we may well be able to use them as the serials instead. Long shot but may workout. However before changing anything in the serial finder/parser try that False to True thing first as it may just be we are being initially mislet by lsblk’s serial reporting. For more info on this could you post the output of:

lsblk -P -p -o NAME,MODEL,SERIAL,SIZE,TRAN,VENDOR,HCTL,TYPE,FSTYPE,LABEL,UUID

If it’s dishing out those non unique serials of 5001438010043670 then the False → True change to force udevadm serial retrieval on our part may this may get us a little further along the way.

Hope that helps, and thank for working through this with us.

Nice.

2 Likes