/dev/disk/by-id/scsi-* links pointing to sdX instead of multipath device

We have two similar SLES10SP2 servers both using multipath on the same devices from the same storage array.

On one server, the /dev/disk/by-id/scsi-* devices properly point at the multipath devices:

server1:/dev/disk/by-id # ls -l scsi-* | awk '{print $9,$10,$11;}'
scsi-3600a0b80005047d80000050c4933f22c -> ../../dm-1
scsi-3600a0b80005047d80000050c4933f22c-part1 -> ../../dm-2
scsi-3600a0b80005047d80000050c4933f22c-part2 -> ../../dm-3
scsi-3600a0b80005047d80000b0a14dbb20e4 -> ../../dm-0

On the other, the /dev/disk/by-id/scsi-* disk devices are pointing at one of the paths instead of the multipath dm device:

server2:/dev/disk/by-id # ls -l scsi-* | awk '{print $9,$10,$11;}'
scsi-3600a0b80005047d80000a3464a07f6ee -> ../../dm-1
scsi-3600a0b8000505008000004f84933e183 -> ../../sda
scsi-3600a0b8000505008000004f84933e183-part1 -> ../../dm-4
scsi-3600a0b8000505008000004f84933e183-part2 -> ../../dm-5
scsi-3600a0b80005050080000057749352a81 -> ../../sdd
scsi-3600a0b80005050080000057749352a81-part1 -> ../../dm-6
scsi-3600a0b80005050080000a7cd4dbb2498 -> ../../sdg

This causes a problem as some of the disks are configured to use the entire disk as a pv.

What do we need to change on server2 to have the system set up all of the scsi-* links to point to the multipath devices instead of a single path?


From the documentation:

In SUSE Linux Enterprise Server 10, the kpartx software is used in the /etc/init.d/boot.multipath to add symlinks to the /dev/dm-* line in the multipath.conf configuration file for any newly created partitions without requiring a reboot. This triggers udevd to fill in the /dev/disk/by-* symlinks.

So, I would

  1. Check whether boot.multipath was run on the second server
  2. Check that udev is configured identically on both servers
  3. Check that udevd is running on the second server

If all of that is true, you could try running kpartx -a on the multipath devices to see if the entries in /dev/disk/by-id/ are updated.

After you straighten this out, you still need to edit lvm.conf. Again, from the documentation:

By default, LVM2 does not recognize multipathed devices. To make LVM2 recognize the multipathed devices as possible physical volumes, you must modify /etc/lvm/lvm.conf. It is important to modify it so that it does not scan and use the physical paths, but only accesses the multipath I/O storage through the multipath I/O layer. If you are using user-friendly names, make sure to specify the path so that it scans only the device mapper names for the device (/dev/disk/by-id/dm-uuid-.-mpath-.) after multipathing is configured.


As it turns out, this is a known issue in SLES10SP2.

It's fixed in SLES10SP3 with package udev-085-30.58.3.6.x86_64.rpm.