mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	vdev_id: implement slot numbering by port id
With HPE hardware and hpsa-driven SAS adapters, only a single phy is reported, but no individual per-port phys (ie. no phy* entry below port_dir), which breaks topology detection in the current sas_handler code. Instead, slot information can be derived directly from the port number. This change implements a new slot keyword "port" similar to "id" and "lun", and assumes a default phy/port of 0 if no individual phy entry can be found. It allows to use the "sas_direct" topology with current HPE Dxxxx and Apollo 45xx JBODs. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Daniel Kobras <d.kobras@science-computing.de> Closes #6484
This commit is contained in:
		
							parent
							
								
									aec4318870
								
							
						
					
					
						commit
						426563be70
					
				@ -237,7 +237,7 @@ sas_handler() {
 | 
			
		||||
 | 
			
		||||
	PHY=`ls -d $port_dir/phy* 2>/dev/null | head -1 | awk -F: '{print $NF}'`
 | 
			
		||||
	if [ -z "$PHY" ] ; then
 | 
			
		||||
		return
 | 
			
		||||
		PHY=0
 | 
			
		||||
	fi
 | 
			
		||||
	PORT=$(( $PHY / $PHYS_PER_PORT ))
 | 
			
		||||
 | 
			
		||||
@ -262,6 +262,10 @@ sas_handler() {
 | 
			
		||||
	"phy")
 | 
			
		||||
		SLOT=`cat $end_device_dir/phy_identifier 2>/dev/null`
 | 
			
		||||
		;;
 | 
			
		||||
	"port")
 | 
			
		||||
		d=$(eval echo \${$i})
 | 
			
		||||
		SLOT=`echo $d | sed -e 's/^.*://'`
 | 
			
		||||
		;;
 | 
			
		||||
	"id")
 | 
			
		||||
		i=$(($i + 1))
 | 
			
		||||
		d=$(eval echo \${$i})
 | 
			
		||||
 | 
			
		||||
@ -90,7 +90,7 @@ internally uses this value to determine which HBA or switch port a
 | 
			
		||||
device is connected to.  The default is 4.
 | 
			
		||||
 | 
			
		||||
.TP
 | 
			
		||||
\fIslot\fR <bay|phy|id|lun>
 | 
			
		||||
\fIslot\fR <bay|phy|port|id|lun>
 | 
			
		||||
Specifies from which element of a SAS identifier the slot number is
 | 
			
		||||
taken.  The default is bay.
 | 
			
		||||
 | 
			
		||||
@ -98,6 +98,8 @@ taken.  The default is bay.
 | 
			
		||||
 | 
			
		||||
\fIphy\fR - read the slot number from the phy identifier.
 | 
			
		||||
 | 
			
		||||
\fIport\fR - use the SAS port as the slot number.
 | 
			
		||||
 | 
			
		||||
\fIid\fR - use the scsi id as the slot number.
 | 
			
		||||
 | 
			
		||||
\fIlun\fR - use the scsi lun as the slot number.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user