Here is what it looks like to have a Dell MD3060 JBOD Chassis attached to a an Ubuntu box
root@sata01:~# lsscsi [0:0:0:0] cd/dvd PLDS DVD+-RW DS-8A3S HD51 /dev/sr0 [2:2:0:0] disk DELL PERC H700 2.10 /dev/sda [3:0:0:0] disk iDRAC LCDRIVE 0323 /dev/sdaf [4:0:0:0] cd/dvd iDRAC Virtual CD 0323 /dev/sr1 [4:0:0:1] disk iDRAC Virtual Floppy 0323 /dev/sdag [5:0:31:0] enclosu DELL MD3060e 039D - [5:0:32:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdah [5:0:33:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdai [5:0:34:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdaj [5:0:35:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdak [5:0:36:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdal [5:0:37:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdam [5:0:38:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdan [5:0:39:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdao [5:0:40:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdap [5:0:41:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdb [5:0:42:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdc [5:0:43:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdd [5:0:44:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sde [5:0:45:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdf [5:0:46:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdg [5:0:47:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdaq [5:0:48:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdh [5:0:49:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdi [5:0:50:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdj [5:0:51:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdk [5:0:52:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdl [5:0:53:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdm [5:0:54:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdar [5:0:55:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdn [5:0:56:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdo [5:0:57:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdp [5:0:58:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdq [5:0:59:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdr [5:0:60:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sds [5:0:61:0] disk TOSHIBA MG04SCA40ENY EG02 /dev/sdt
To list only the SATA disks filter on ” t(SSP)”
root@sata01:~# for i in /dev/bsg/expand* ; do smp_discover $i | grep " t(SSP)" | wc -l; done 12 12 0 0 0 6 root@sata01:~# for i in /dev/bsg/expand* ; do smp_discover $i; done phy 0:D:attached:[500003983832bef2:00 t(SSP)] 6 Gbps phy 1:D:attached:[50000398383814f2:00 t(SSP)] 6 Gbps phy 2:D:attached:[50000398382a56fa:00 t(SSP)] 6 Gbps phy 3:D:attached:[500003983832bf02:00 t(SSP)] 6 Gbps phy 4:D:attached:[50000398382a573a:00 t(SSP)] 6 Gbps phy 5:D:attached:[500003983833e472:00 t(SSP)] 6 Gbps phy 6:D:attached:[500003983832bece:00 t(SSP)] 6 Gbps phy 7:D:attached:[5000039848013812:00 t(SSP)] 6 Gbps phy 8:D:attached:[5000039848013816:00 t(SSP)] 6 Gbps phy 9:D:attached:[5000039848013916:00 t(SSP)] 6 Gbps phy 10:D:attached:[50000398480137f6:00 t(SSP)] 6 Gbps phy 11:D:attached:[500003984801380a:00 t(SSP)] 6 Gbps phy 12:S:attached:[50080e548c83503f:12 exp t(SMP)] 6 Gbps phy 13:S:attached:[50080e548c83503f:13 exp t(SMP)] 6 Gbps phy 14:S:attached:[50080e548c83503f:14 exp t(SMP)] 6 Gbps phy 15:S:attached:[50080e548c83503f:15 exp t(SMP)] 6 Gbps phy 16:D:attached:[50080e54a55db03d:00 V i(SSP+SMP) t(SSP)] 6 Gbps phy 0:D:attached:[500003984801382a:00 t(SSP)] 6 Gbps phy 1:D:attached:[5000039848013722:00 t(SSP)] 6 Gbps phy 2:D:attached:[500003983833c74a:00 t(SSP)] 6 Gbps phy 3:D:attached:[500003983838a4aa:00 t(SSP)] 6 Gbps phy 4:D:attached:[50000398382a572a:00 t(SSP)] 6 Gbps phy 5:D:attached:[500003983838a4a2:00 t(SSP)] 6 Gbps phy 6:D:attached:[500003984801381e:00 t(SSP)] 6 Gbps phy 7:D:attached:[500003984801381a:00 t(SSP)] 6 Gbps phy 8:D:attached:[500003983830e1ca:00 t(SSP)] 6 Gbps phy 9:D:attached:[50000398480137de:00 t(SSP)] 6 Gbps phy 10:D:attached:[50000398382a56ce:00 t(SSP)] 6 Gbps phy 11:D:attached:[500003983830e1d2:00 t(SSP)] 6 Gbps phy 12:S:attached:[50080e548c83503f:16 exp t(SMP)] 6 Gbps phy 13:S:attached:[50080e548c83503f:17 exp t(SMP)] 6 Gbps phy 14:S:attached:[50080e548c83503f:18 exp t(SMP)] 6 Gbps phy 15:S:attached:[50080e548c83503f:19 exp t(SMP)] 6 Gbps phy 16:D:attached:[50080e54a54ef03d:00 V i(SSP+SMP) t(SSP)] 6 Gbps phy 0:U:attached:[50080e54a567703f:12 exp t(SMP)] 6 Gbps phy 1:U:attached:[50080e54a567703f:13 exp t(SMP)] 6 Gbps phy 2:U:attached:[50080e54a567703f:14 exp t(SMP)] 6 Gbps phy 3:U:attached:[50080e54a567703f:15 exp t(SMP)] 6 Gbps phy 4:U:attached:[50080e54a57b703f:12 exp t(SMP)] 6 Gbps phy 5:U:attached:[50080e54a57b703f:13 exp t(SMP)] 6 Gbps phy 6:U:attached:[50080e54a57b703f:14 exp t(SMP)] 6 Gbps phy 7:U:attached:[50080e54a57b703f:15 exp t(SMP)] 6 Gbps phy 8:U:attached:[50080e54a56b303f:12 exp t(SMP)] 6 Gbps phy 9:U:attached:[50080e54a56b303f:13 exp t(SMP)] 6 Gbps phy 10:U:attached:[50080e54a56b303f:14 exp t(SMP)] 6 Gbps phy 11:U:attached:[50080e54a56b303f:15 exp t(SMP)] 6 Gbps phy 12:U:attached:[50080e54a55db03f:12 exp t(SMP)] 6 Gbps phy 13:U:attached:[50080e54a55db03f:13 exp t(SMP)] 6 Gbps phy 14:U:attached:[50080e54a55db03f:14 exp t(SMP)] 6 Gbps phy 15:U:attached:[50080e54a55db03f:15 exp t(SMP)] 6 Gbps phy 16:U:attached:[50080e54a54ef03f:12 exp t(SMP)] 6 Gbps phy 17:U:attached:[50080e54a54ef03f:13 exp t(SMP)] 6 Gbps phy 18:U:attached:[50080e54a54ef03f:14 exp t(SMP)] 6 Gbps phy 19:U:attached:[50080e54a54ef03f:15 exp t(SMP)] 6 Gbps phy 20:U:attached:[51866da05f99eb00:07 i(SSP+STP+SMP)] 6 Gbps phy 21:U:attached:[51866da05f99eb00:06 i(SSP+STP+SMP)] 6 Gbps phy 22:U:attached:[51866da05f99eb00:05 i(SSP+STP+SMP)] 6 Gbps phy 23:U:attached:[51866da05f99eb00:04 i(SSP+STP+SMP)] 6 Gbps phy 32:D:attached:[50080e548c83503d:00 V i(SSP+SMP) t(SSP)] 6 Gbps phy 12:S:attached:[50080e548c83503f:00 exp t(SMP)] 6 Gbps phy 13:S:attached:[50080e548c83503f:01 exp t(SMP)] 6 Gbps phy 14:S:attached:[50080e548c83503f:02 exp t(SMP)] 6 Gbps phy 15:S:attached:[50080e548c83503f:03 exp t(SMP)] 6 Gbps phy 16:D:attached:[50080e54a567703d:00 V i(SSP+SMP) t(SSP)] 6 Gbps phy 12:S:attached:[50080e548c83503f:04 exp t(SMP)] 6 Gbps phy 13:S:attached:[50080e548c83503f:05 exp t(SMP)] 6 Gbps phy 14:S:attached:[50080e548c83503f:06 exp t(SMP)] 6 Gbps phy 15:S:attached:[50080e548c83503f:07 exp t(SMP)] 6 Gbps phy 16:D:attached:[50080e54a57b703d:00 V i(SSP+SMP) t(SSP)] 6 Gbps phy 0:D:attached:[500003983832be2e:00 t(SSP)] 6 Gbps phy 1:D:attached:[5000039848013936:00 t(SSP)] 6 Gbps phy 2:D:attached:[500003983832be8e:00 t(SSP)] 6 Gbps phy 3:D:attached:[500003983830e1da:00 t(SSP)] 6 Gbps phy 4:D:attached:[500003984801391e:00 t(SSP)] 6 Gbps phy 5:D:attached:[500003983832be76:00 t(SSP)] 6 Gbps phy 12:S:attached:[50080e548c83503f:08 exp t(SMP)] 6 Gbps phy 13:S:attached:[50080e548c83503f:09 exp t(SMP)] 6 Gbps phy 14:S:attached:[50080e548c83503f:10 exp t(SMP)] 6 Gbps phy 15:S:attached:[50080e548c83503f:11 exp t(SMP)] 6 Gbps phy 16:D:attached:[50080e54a56b303d:00 V i(SSP+SMP) t(SSP)] 6 Gbps
What info can we get form Udev
root@sata01:~# udevadm info -q path -n /dev/sdar /devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11/port-5:11:4/end_device-5:11:4/target5:0:54/5:0:54:0/block/sdar root@edpk-sata01:~# udevadm info -a -p /devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11/port-5:11:4/end_device-5:11:4/target5:0:54/5:0:54:0/block/sdar Udevadm info starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11/port-5:11:4/end_device-5:11:4/target5:0:54/5:0:54:0/block/sdar': KERNEL=="sdar" SUBSYSTEM=="block" DRIVER=="" ATTR{alignment_offset}=="0" ATTR{capability}=="50" ATTR{discard_alignment}=="0" ATTR{events}=="" ATTR{events_async}=="" ATTR{events_poll_msecs}=="-1" ATTR{ext_range}=="256" ATTR{inflight}==" 0 0" ATTR{range}=="16" ATTR{removable}=="0" ATTR{ro}=="0" ATTR{size}=="7814037168" ATTR{stat}==" 32963 1619 7699048 104236 7501 779 3505528 328772 0 240440 433100" looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11/port-5:11:4/end_device-5:11:4/target5:0:54/5:0:54:0': KERNELS=="5:0:54:0" SUBSYSTEMS=="scsi" DRIVERS=="sd" ATTRS{device_blocked}=="0" ATTRS{device_busy}=="0" ATTRS{dh_state}=="detached" ATTRS{eh_timeout}=="10" ATTRS{evt_capacity_change_reported}=="0" ATTRS{evt_inquiry_change_reported}=="0" ATTRS{evt_lun_change_reported}=="0" ATTRS{evt_media_change}=="0" ATTRS{evt_mode_parameter_change_reported}=="0" ATTRS{evt_soft_threshold_reached}=="0" ATTRS{inquiry}=="" ATTRS{iocounterbits}=="32" ATTRS{iodone_cnt}=="0xa12e" ATTRS{ioerr_cnt}=="0x0" ATTRS{iorequest_cnt}=="0xa12e" ATTRS{model}=="MG04SCA40ENY " ATTRS{queue_depth}=="254" ATTRS{queue_ramp_up_period}=="120000" ATTRS{queue_type}=="simple" ATTRS{rev}=="EG02" ATTRS{sas_address}=="0x50000398382a572a" ATTRS{sas_device_handle}=="0x0026" ATTRS{scsi_level}=="7" ATTRS{state}=="running" ATTRS{timeout}=="30" ATTRS{type}=="0" ATTRS{vendor}=="TOSHIBA " ATTRS{vpd_pg80}=="" ATTRS{vpd_pg83}=="" looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11/port-5:11:4/end_device-5:11:4/target5:0:54': KERNELS=="target5:0:54" SUBSYSTEMS=="scsi" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11/port-5:11:4/end_device-5:11:4': KERNELS=="end_device-5:11:4" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11/port-5:11:4': KERNELS=="port-5:11:4" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5/expander-5:11': KERNELS=="expander-5:11" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6/port-5:6:5': KERNELS=="port-5:6:5" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1/expander-5:6': KERNELS=="expander-5:6" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5/port-5:1': KERNELS=="port-5:1" SUBSYSTEMS=="" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/host5': KERNELS=="host5" SUBSYSTEMS=="scsi" DRIVERS=="" looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0': KERNELS=="0000:04:00.0" SUBSYSTEMS=="pci" DRIVERS=="mpt3sas" ATTRS{broken_parity_status}=="0" ATTRS{class}=="0x010700" ATTRS{config}=="" ATTRS{consistent_dma_mask_bits}=="64" ATTRS{d3cold_allowed}=="1" ATTRS{device}=="0x0072" ATTRS{dma_mask_bits}=="64" ATTRS{driver_override}=="(null)" ATTRS{enable}=="1" ATTRS{irq}=="35" ATTRS{local_cpulist}=="0-23" ATTRS{local_cpus}=="00ffffff" ATTRS{msi_bus}=="1" ATTRS{numa_node}=="-1" ATTRS{subsystem_device}=="0x1f1c" ATTRS{subsystem_vendor}=="0x1028" ATTRS{vendor}=="0x1000" ATTRS{vpd}=="" looking at parent device '/devices/pci0000:00/0000:00:07.0': KERNELS=="0000:00:07.0" SUBSYSTEMS=="pci" DRIVERS=="pcieport" ATTRS{broken_parity_status}=="0" ATTRS{class}=="0x060400" ATTRS{consistent_dma_mask_bits}=="32" ATTRS{d3cold_allowed}=="0" ATTRS{device}=="0x340e" ATTRS{dma_mask_bits}=="32" ATTRS{driver_override}=="(null)" ATTRS{enable}=="1" ATTRS{irq}=="27" ATTRS{local_cpulist}=="0-23" ATTRS{local_cpus}=="00ffffff" ATTRS{msi_bus}=="1" ATTRS{numa_node}=="-1" ATTRS{subsystem_device}=="0x0236" ATTRS{subsystem_vendor}=="0x1028" ATTRS{vendor}=="0x8086" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS==""
Seems to crash the machine 10% of the time it’s run
udevadm info -a -p $(udevadm info -q path -n /dev/sdl) | grep sas