I have a server with 2 internal disks with Adaptec hardware RAID and an external disk box connected via SAS.
lsscsi
finds all the devices:
# lsscsi
[0:0:0:0] disk Adaptec System V1.0 /dev/sda
[0:1:0:0] disk WDC WD1003FBYX-0 01.0 -
[0:1:1:0] disk WDC WD1003FBYX-0 01.0 -
[1:0:0:0] disk Promise VessRAID 1840s 0304 -
The first 3 are the 2 physical disks and the hardware RAID on top of those.
The 4th is the external diskbox connected via SAS.
As you can see there is no corresponding device in /dev for the external VessRAID.
The VessRAID is an external SAS-RAID box that presents itself as a SAS device. Linux clearly sees the device, but somehow it does not make it into a device in /dev.
There are two logical drives on the VessRAID.
I have the feeling I need to tell Linux that this is a SAS disk device that Linux should use and scan for logical drives and make them show up in /dev. But I have been unable to find the the magical command that does this.
Digging around /sys
gave this:
# cat /sys/class/bsg/1\:0\:0\:0/device/model
VessRAID 1840s
# cat /sys/class/bsg/1\:0\:0\:0/device/vendor
Promise
Again this confirms that Linux sees the device, which is already known.
/dev/disk/* sees the RAID'ed internal disks as one device with 2 partition. It does not see the external disk:
# ls -al /dev/disk/by-path
total 0
drwxr-xr-x 2 root root 100 Jun 29 17:06 .
drwxr-xr-x 5 root root 100 Jun 29 17:06 ..
lrwxrwxrwx 1 root root 9 Jun 29 17:06 pci-0000:02:00.0-scsi-0:0:0:0 -> ../../sda
lrwxrwxrwx 1 root root 10 Jun 29 17:06 pci-0000:02:00.0-scsi-0:0:0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jun 29 17:06 pci-0000:02:00.0-scsi-0:0:0:0-part2 -> ../../sda2
The problem was not in the Linux end but in the storage end. What was needed was assigning Linux as an initiator on the storage device and disable LUN Masking.
After doing that I simply
modprobe -r mptsas;sleep 1; modprobe mptsas
to force a rescan. Then the disks showed up inlsscsi
: