[Bug 1611945] Re: /dev/disk/by-path not properly populated for (e)SATA port multiplier disks
thulle
1611945 at bugs.launchpad.net
Sun Mar 17 22:27:26 UTC 2019
I saw the discussion in zfs-discuss and read a bit for fun.
To answer some old questions from what i understood from linked resources:
This bug/deficiency seem to make it impossible to see all drives behind a port multiplier when using links in /dev/disk/by-path/ but not other links, making the drives unadressable by slot.
This can be fixed by patching systemd. Why this haven't been done seems to be summarized here:
https://github.com/systemd/systemd/issues/3943#issuecomment-404996399
The patch submitted here seems to be outdated, later one found here:
https://github.com/sitsofe/systemd/commit/ee26c33ede684138ba9fdc7f286bfa402860aff3
IMHO, the easiest (but not easy) way to add this patch in Ubuntu on your
own would be to create an PPA and rebuild systemd from ubuntu with the
patch added. Note that you'll be responsible for keeping your systemd-
package up to date on your own and that changes can be made upstream
that breaks the patch.
It could be added in the official ubuntu package of systemd, but I'm
guessing they don't want to add a patch that adds a naming scheme for
drives that later might change when the proper fix mentioned last in the
first link is implemented.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1611945
Title:
/dev/disk/by-path not properly populated for (e)SATA port multiplier
disks
Status in systemd package in Ubuntu:
Confirmed
Bug description:
We have a just-installed Ubuntu 16.04 LTS machine with a number of
disks behind port-multiplier eSATA ports, all of them driven by a SiI
3124 controller (sata_sil24 kernel driver). Our machine sees all disks
on all channels, however under 16.04 only one disk from each channel
shows up in /dev/disk/by-path/ (all disks show up in /dev/disk/by-id
and /dev/disk/by-uuid). For our usage this is a severe defect because
we rotate disks in and out of the external enclosure and rely on
mounting specific slots in the external enclosure through /dev/disk
/by-path.
This did not happen in Ubuntu 12.04 LTS, the release that this machine
was previously running.
According to 'udevadm info --export-db' and 'udevadm test-builtin
path_id' and so on, systemd's udev stuff is assigning all drives
behind the same port the same disk/by-path data (ID_PATH et al). In
'udevadm info /sys/block/sdX', the 'P:' and 'E: DEVPATH=' values show
a difference in the target portion of PCI path, eg:
P: /devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/ata1/host0/target0:0:0/0:0:0:0/block/sda
P: /devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/ata1/host0/target0:1:0/0:1:0:0/block/sdb
However the 'S: disk/by-path', 'E: DEVLINKS=', and 'E: ID_PATH'
portions do not. For both devices above, we see:
S: disk/by-path/pci-0000:02:00.0-ata-1
E: ID_PATH=pci-0000:02:00.0-ata-1
Naturally only one device can have a /dev/disk/by-
path/pci-0000:02:00.0-ata-1 symlink, so instead of four disks per
channel in /dev/disk/by-path we see one.
Ubuntu release: 16.04
Package versions from 'apt-cache policy udev systemd':
udev:
Installed: 229-4ubuntu7
systemd:
Installed: 229-4ubuntu7
'journalctl -b' reports that during boot systemd does report some
'appeared twice with different sysfs paths' notes, eg:
Aug 10 13:34:21 verdandi systemd[1]: dev-disk-by\x2dpath-
pci\x2d0000:02:00.0\x2data\x2d1\x2dpart1.device: Dev dev-disk-by
\x2dpath-pci\x2d0000:02:00.0\x2data\x2d1\x2dpart1.device appeared
twice with different sysfs paths
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/ata1/host0/target0:3:0/0:3:0:0/block/sdd/sdd1
and
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/0000:02:00.0/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda1
However it doesn't seem to be reporting this for all port-multiplier
drives and their partitions.
If it would be useful I can attach full 'udevadm info --export-db'
output or the like.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1611945/+subscriptions
More information about the foundations-bugs
mailing list