Veritas-bu

[Veritas-bu] Solaris 8 not making devices for IBM LTO 2

2003-10-09 08:07:52
Subject: [Veritas-bu] Solaris 8 not making devices for IBM LTO 2
From: Joost Mulders <mail AT j-mulders.demon DOT nl> (Joost Mulders)
Date: Thu, 9 Oct 2003 14:07:52 +0200 (CEST)
--Mumble_of_Moles_272_000
Content-Type: TEXT/plain; charset=us-ascii
Content-MD5: anMy/foDvr+PmLfo+NeoHA==

Steve, 

First, bind WWN's persistantly to SCSI target ID's. Best, this is done by port 
binding. A sample jnicXX.conf is attached. 

Secondly, make sure that your SCSI target id's are in st.conf. Suppose, you 
have 
bound your tape drives to id 15-30, then add these to your st.conf:

  name="st" class="scsi"
        target=15 lun=0;
  name="st" class="scsi"
        target=16 lun=0;
  ...

Thirdly, I remember an issue with the 5.2.1 driver: For 2Gb, the HBA must be 
configured for public loop. If you have fabric, the HBA must be forced to 1Gb. 
Don't know wether this is still tru for 5.3 though.

Best regards, 

Joost

>Box = e450, Solaris 8
>HBA's = 2 x JNI 6460 , Driver 5.3 connected to a brocade fabric.
>ATL = STK L700 w/ 8 IBM LTO Gen 2 Drives connected to a brocade fabric.
>
>Right now I'm just trying to see the physical tape drives.
>
>my logs show that I'm, seeing the devices, 2 drives on each HBA
>
>jnic146x0: Port 020055 (WWN 5005076300213C6B:5005076300613C6B) online
>jnic146x0: Port 020155 (WWN 5005076300213A72:5005076300613A72) online
>Network Port FFFC01 (WWN 1000006069102F0A:20FD006069102F0A) available
>
>jnic146x1: Port 020255 (WWN 5005076300213B4C:5005076300613B4C) online
>jnic146x1: Port 020355 (WWN 5005076300213800:5005076300613800) online
>Network Port FFFC02 (WWN 1000006069102F6A:20FD006069102F6A) available
>
>I'm using the latest st driver.
>
># strings /kernel/drv/st | grep IBM
>IBM     ULTRIUM-TD2
>IBM     ULT3580-TD2
>IBM     ULTRIUM-TD1
>IBM     ULT3580-TD1
>IBM Ultrium Gen 2 LTO
>IBM Ultrium Gen 2 LTO
>IBM Ultrium LTO
>IBM Ultrium LTO
>
>However, no new devices are being created in /dev/rmt via boot -r or
>devfsadm
>
>Any ideas ?
>_______________________________________________
>Veritas-bu maillist  -  Veritas-bu AT mailman.eng.auburn DOT edu
>http://mailman.eng.auburn.edu/mailman/listinfo/veritas-bu

-- 
Long may you run.

--Mumble_of_Moles_272_000
Content-Type: TEXT/plain; name="jnic146x.conf"; charset=us-ascii; 
x-unix-mode=0644
Content-Description: jnic146x.conf
Content-MD5: yQBiefl/IYafB+/SqRB0sg==

##
## JNI Corporation jnic146x driver (Solaris SCSI) configuration file.
##
## jnic146x.conf
##
## Date last modified: September 06, 2002
##
## For additional information, refer to the "readme.txt" file provided with 
## the jnic146x driver installation package.


###########################################################################
##
## NOTE:  If you change any of the parameter values, the system must be 
## rebooted in order for the new settings to take effect. 
##
###########################################################################

###########################################################################
## Per-Instance HBA Parameter Settings
## All configuration parameters can be done on a per-instance basis. To do this,
## add the interface name (jnic146x), driver instance (e.g., 0, 1, 2, 3, etc), 
## and a hyphen ('-') before the configuration parameter.
## For example: 
## To configure jnic146x0 instance to operate in Arbitrated Loop topology and
## jnic146x1 instance to operate in Fabric topology, type in:
## jnic146x0-FcLoopEnabled   = 1;
## jnic146x0-FcFabricEnabled = 0;
## jnic146x1-FcLoopEnabled   = 0;
## jnic146x1-FcFabricEnabled = 1;
## NOTE: EZ Fibre performs parameter configuration on a per-instance basis. 
###########################################################################

#
# Configuration parameters: FcLoopEnabled, FcFabricEnabled
# Type: boolean
# Default: FcLoopEnabled   = 1
#          FcFabricEnabled = 0
#
# These parameters are used to configure the HBA port topology. The HBA port
# will be set up as specified in the following table:
#
#   FcLoopEnabled  FcFabricEnabled   Topology 
#   -------------  ----------------  --------------------------
#          0              0          Auto-topology detect
#          0              1          N_Port mode (fabric)
#          1              0          L_Port mode (private loop)
#          1              1          NL_Port Mode (public loop)
#
#FcLoopEnabled   = 1;
#FcFabricEnabled = 0;
#jnic146x0-FcLoopEnabled   = 1;     
#jnic146x0-FcFabricEnabled = 0;

#
# Configuration parameter: FcEngHeartbeatInterval
# Type: integer
# Default: 5 (sec)
#
# When the JNI adapter/driver detects that the Fibre Channel link is up (and
# there is no I/O activity), it will send a "test frame" (or heartbeat) to
# itself to verify link integrity.  The test frame is sent at the interval
# specified by this parameter.  If the test frame does not complete, it is
# assumed that there is a link problem.  In this situation, the driver
# initiates error recovery to re-establish a good link.  A value of "0"
# disables the heartbeat.
#
#FcEngHeartbeatInterval = 5;
#jnic146x0-FcEngHeartbeatInterval = 5;

#
# Configuration parameter: FcLinkUpRecoveryTime
# Type: integer
# Default: 1000 (msec)
#
# Delay (msec) after the link is up before port discovery begins, allowing
# the link to stabilize and protecting against a possible I/O surge. This timer
# is reset every time the link comes up. The default value is adequate for most
# configurations.
#
#FcLinkUpRecoveryTime = 1000;
#jnic146x0-FcLinkUpRecoveryTime = 1000;

#
# Configuration parameter: BusyRetryDelay
# Type: integer
# Default: 5000 (msec)
#
# Delay (msec) before retrying after receipt of an I/O with a "SCSI Busy"
# status from a target. The number of retries is based on the Solaris retry
# count associated with the I/O.
#
#BusyRetryDelay = 5000;
#jnic146x0-BusyRetryDelay = 5000;

#
# Configuration parameter: FailoverDelay
# Type: integer
# Default: 30 (sec)
#
# Delay (seconds) before failing all I/O for an offline target. If the delay
# timer expires, all I/O for the failed target is returned to the application.
# A zero value disables failover.
#
#FailoverDelay = 30;
#jnic146x0-FailoverDelay = 30;

#
# Configuration parameter: TimeoutResetEnable
# Type: boolean
# Default: 0 (false)
#
# Boolean parameter for enabling SCSI target resets for timed out I/O. When
# the timer expires (usually 60 seconds, as specified by the upper layers),
# the driver issues a target reset to attempt to clear the device (which might
# be either too busy to respond or stuck).
#
#TimeoutResetEnable = 0;
#jnic146x0-TimeoutResetEnable = 0;

#
# Configuration parameter: QfullRetryCount
# Type: integer
# Default: 5
#
# Number of times an I/O is retried due to receipt of a "SCSI Queue Full" status
# from a target. The delay between retries is based on the QfullRetryDelay
# parameter.
#
#QfullRetryCount = 5;
#jnic146x0-QfullRetryCount = 5;

#
# Configuration parameter: QfullRetryDelay
# Type: integer
# Default: 5000 (msec)
#
# Delay (msec) before retrying after receipt of an I/O with a "SCSI Queue Full"
# status from a target. The number of retries is based on the QfullRetryCount
# parameter.
#
#QfullRetryDelay = 5000;
#jnic146x0-QfullRetryDelay = 5000;

#
# Configuration parameter: LunRecoveryInterval
# Type: integer
# Default: 50 (msec)
#
# Sets the LUN I/O recovery interval (in msec) after the driver reconnects to
# a disk. It is a global parameter affecting all targets, and determines how
# long the driver waits after a port is discovered until sending I/O to that 
# port. Some devices might require more time to flush I/O that was in progress
# prior to a link going down; if this is the case, increase the value of this
# parameter.
#
#LunRecoveryInterval = 50;
#jnic146x0-LunRecoveryInterval = 50;

#
# Configuration parameter: FcLinkSpeed
# Type: integer
# Default: 3 (auto negotiate link speed)
#
# Specifies the desired Fibre Channel link speed as follows:
#   0 - default to SEEPROM setting
#   1 - force 1 Gbit/sec
#   2 - force 2 Gbit/sec
#   3 - auto negotiate link speed
#
#FcLinkSpeed = 3;
#jnic146x0-FcLinkSpeed = 3;

#
# Configuration parameter: JniCreationDelay
# Type: integer
# Default: 5 (sec)
#
# Delay (seconds) after driver creation to allow the network to stabilize,
# discover ports, and build the driver's database.  Increase this value
# if targets are being discovered too late in the boot process.
#
#JniCreationDelay = 5;
#jnic146x0-JniCreationDelay = 5;

#
# Configuration parameter: FlogiRetryCount
# Type: integer
# Default: 3
#
# Total number of Fabric Login (FLOGI) attempts before giving up logging in to
# a switch. Failure prevents participation on a Fabric topology.
#
#FlogiRetryCount = 3;
#jnic146x0-FlogiRetryCount = 3;

#
# Configuration parameter: FcFlogiTimeout
# Type: integer
# Default: 10
#
# Specifies the amount of time (in seconds) that the driver waits for a Fabric
# Login (FLOGI) accept. The value should be increased only if the switch to
# which the HBA is connected requires more time to respond to a FLOGI. The
# number of retries is configured with the FlogiRetryCount parameter.
#
#FcFlogiTimeout = 10;
#jnic146x0-FcFlogiTimeout = 10;

#
# Configuration parameter: PlogiRetryCount
# Type: integer
# Default: 5
#
# Total number of Port Login (PLOGI) attempts before giving up logging in to
# a SCSI target.
#
#PlogiRetryCount = 5;
#jnic146x0-PlogiRetryCount = 5;

#
# Configuration parameter: PlogiControlSeconds
# Type: integer
# Default: 30
#
# Defines the number of seconds that the driver waits for a successful
# port login (PLOGI) attempt. The maximum number of attempts is defined by
# the PlogiRetryCount parameter. Some devices might take longer to respond 
# to PLOGIs; if this is the case, increase the value of this parameter.
#
#PlogiControlSeconds = 30;
#jnic146x0-PlogiControlSeconds = 30;

#
# Configuration parameter: LunDiscoveryMethod
# Type: integer
# Default: 0 (Inquiry)
#
# Sets the LUN discovery method. A value of zero (the default) selects the SCSI
# Inquiry method. A value of 1 enables LUN reporting. The SCSI Report LUNs and
# Inquiry commands are employed by the driver to discover logical units (LUNs). 
# If the expected LUNs do not appear for the selected host bus adapter, then 
# the user can set the parameter to use the alternative method. The change 
# affects all targets connected to the selected host bus adapter.
#
# LunDiscoveryMethod = 0;
# jnic146x0-LunDiscoveryMethod = 0;
#

#
# Configuration parameter: CmdTaskAttr
# Type: integer
# Default: 1 (Untagged)
#
# Controls the task attribute field of Fibre Channel Protocol (FCP) SCSI 
# commands generated by the driver. A value of 1 sets the task attribute to
# "Untagged" (which is the default). A value of 0 sets the task attribute to
# "Simple Queue." This parameter must be set to Simple Queue to interoperate
# with CLARiiON RAID controllers.
#
# CmdTaskAttr = 1;
# jnic146x0-CmdTaskAttr = 1;
#

#
# Configuration parameter: automap
# Set to 0 for persistent binding and 1 for auto mapping
# Type: integer
# Default: 0 (Persistent Binding)
#
# Sets the auto mapping feature for the fabric configuration. A value of 1 
enables 
# auto mapping, which means that all target/LUN instances will be initialized 
by 
# all jnic146x instances. A value of 0 disables this feature, and no target/LUN 
# instance will be initialized by any jnic146x instance unless persistent 
# binding parameters are explicitly defined. 
#
# Example usage:
# automap = 0;
# jnic146x0-automap = 0;


###############################################################################
#
# Binding Parameters:
#
# Configuration parameter: def_hba_binding
# Type: string
# Default: "jnic146x*" 
#
# Sets the default HBA binding for every target/LUN instance which does not
# explicitly define one.  A "*" following an HBA name indicates all instances
# of that HBA driver
#
#  "jnic146x*" - means all target/LUN instances will be initialized by all
#                jnic146x instances
#
#  "null" - means no target/LUN instance will be initialized by any jnic146x
#           instance UNLESS the targetX_hba or targetX_lunY_hba binding 
#           parameters are explicitly defined
#
#def_hba_binding = "jnic146x*";
#jnic146x0-def_hba_binding = "jnic146x*";

#
# Configuration parameter: def_wwnn_binding
# Type: string
# Default: "$xxxxxxxxxxxxxxxx" (means WWNN is "static don't care")
#
# Sets the 16-digit hexadecimal default WWNN binding for every target/LUN
# instance which does not explicitly define one.
#      - A "$" preceding the string indicates static binding by WWNN enabled
#      - A "x" in place of a digit indicates "don't care" for that digit
#
#def_wwnn_binding = "$xxxxxxxxxxxxxxxx";
#jnic146x0-def_wwnn_binding = "$xxxxxxxxxxxxxxxx";

#
# Configuration parameter: def_wwpn_binding
# Type: string
# Default: "$xxxxxxxxxxxxxxxx" (means WWPN is "static don't care")
#
# Sets the 16-digit hexadecimal default WWPN binding for every target/LUN
# instance which does not explicitly define one.
#      - A "$" preceding the string indicates static binding by WWPN enabled
#      - A "x" in place of a digit indicates "don't care" for that digit
#
#def_wwpn_binding = "$xxxxxxxxxxxxxxxx";
#jnic146x0-def_wwpn_binding = "$xxxxxxxxxxxxxxxx";

#
# Configuration parameter: def_port_binding
# Type: string
# Default: "xxxxxx" (means PORT is "non-static don't care")
#
# Sets the 6-digit hexadecimal default port binding for every target/LUN
# instance which does not explicitly define one.
#      - A "$" preceding the string indicates static binding by port ID enabled
#      - A "x" in place of a digit indicates "don't care" for that digit
#
#def_port_binding = "xxxxxx";
#jnic146x0-def_port_binding = "xxxxxx";


###############################################################################
#
# Configuration parameters for target to FC device mapping: 
#
#    targetX_hba, 
#    targetX_lunY_hba, 
#    targetX_wwnn,
#    targetX_wwpn, 
#    targetX_port,
#
# Type: string
# Default:
#
# Example usage: Replace the 'x' characters with actual WWNN, WWPN, or port ID.
#
# target0_hba      = "jnic146x0";
# target0_lun0_hba = "jnic146x0";
# target0_wwnn     = "xxxxxxxxxxxxxxxx";
# target0_wwpn     = "xxxxxxxxxxxxxxxx";
# target0_port     = "xxxxxx";
# jnic146x0-target0_lun0_hba="jnic146x0";
# jnic146x0-target0_wwnn="xxxxxxxxxxxxxxxx";



###############################################################################
#
# Configuration parameters for target and LUN level throttling: 
#
#   target_throttle  <default = 256>,    - Default throttle for all targets
#   lun_throttle     <default = 64>,     - Default throttle for all LUNs
#   targetX_throttle <default = 256>,    - Specific throttle for targetX
#   targetX_lun_throttle  <default = 64> - Default throttle for all targetX LUNs
#   targetX_lunY_throttle <default = 64> - Specific throttle for each targetX 
LUN
#
# Type: integer
# Default:
#
# Example usage:
#
# target_throttle = 256;
# lun_throttle = 64;
# target0_throttle = 256;
# target0_lun_throttle = 64;
# target0_lun1_throttle = 64;
# jnic146x0-target0_lun0_throttle=64;
################################################################################
# Joost Mulders, Sun Microsystems x15701. Mar 11, 2003.
################################################################################
#
# Global configuration 
#
# Force fabric.
jnic146x0-FcFabricEnabled=1;
jnic146x1-FcFabricEnabled=1;
# 
jnic146x0-FcLoopEnabled=0;
jnic146x1-FcLoopEnabled=0;
#
jnic146x0-FcLinkSpeed=2;
jnic146x1-FcLinkSpeed=2;
#
# As per readme_sol_521.txt (included w. 5.2.1 driver):
#        - "FCP Command Task Attribute" to a value of "Untagged"
#        - "LUN Discovery Method" to a value of "Report LUNs"
#        - "Lun Throttle" to a value of "1"
#        - "Target Failed Reporting Delay" to a value of "0" (unless
#          attempting failover with tape targets).
#
jnic146x0-CmdTaskAttr=1;
jnic146x1-CmdTaskAttr=1;
#
jnic146x0-LunDiscoveryMethod=1;
jnic146x1-LunDiscoveryMethod=1;
#
jnic146x0-lun_throttle=1;
jnic146x1-lun_throttle=1;
#
jnic146x0-FailoverDelay=0;
jnic146x1-FailoverDelay=0;
################################################################################
# Binding: Static binding by port ID
################################################################################
def_port_binding = "$xxxxxx";
def_wwnn_binding = "xxxxxxxxxxxxxxxx";
def_wwpn_binding = "xxxxxxxxxxxxxxxx";

jnic146x0-target0_port = "11002";
jnic146x0-target1_port = "11104";
jnic146x0-target2_port = "11208";
jnic146x0-target6_port = "11601";
jnic146x1-target0_port = "1130f";
jnic146x1-target1_port = "11410";
jnic146x1-target2_port = "11526";

--Mumble_of_Moles_272_000--

<Prev in Thread] Current Thread [Next in Thread>