linux/Documentation/blockdev/cciss.txt
<<
>>
Prefs
   1This driver is for Compaq's SMART Array Controllers.
   2
   3Supported Cards:
   4----------------
   5
   6This driver is known to work with the following cards:
   7
   8        * SA 5300
   9        * SA 5i 
  10        * SA 532
  11        * SA 5312
  12        * SA 641
  13        * SA 642
  14        * SA 6400
  15        * SA 6400 U320 Expansion Module
  16        * SA 6i
  17        * SA P600
  18        * SA P800
  19        * SA E400
  20        * SA P400i
  21        * SA E200
  22        * SA E200i
  23        * SA E500
  24        * SA P700m
  25        * SA P212
  26        * SA P410
  27        * SA P410i
  28        * SA P411
  29        * SA P812
  30        * SA P712m
  31        * SA P711m
  32
  33Detecting drive failures:
  34-------------------------
  35
  36To get the status of logical volumes and to detect physical drive
  37failures, you can use the cciss_vol_status program found here:
  38http://cciss.sourceforge.net/#cciss_utils
  39
  40Device Naming:
  41--------------
  42
  43If nodes are not already created in the /dev/cciss directory, run as root:
  44
  45# cd /dev
  46# ./MAKEDEV cciss
  47
  48You need some entries in /dev for the cciss device.  The MAKEDEV script
  49can make device nodes for you automatically.  Currently the device setup
  50is as follows:
  51
  52Major numbers:
  53        104     cciss0  
  54        105     cciss1  
  55        106     cciss2
  56        105     cciss3
  57        108     cciss4
  58        109     cciss5
  59        110     cciss6
  60        111     cciss7
  61
  62Minor numbers:
  63        b7 b6 b5 b4 b3 b2 b1 b0
  64        |----+----| |----+----|
  65             |           |
  66             |           +-------- Partition ID (0=wholedev, 1-15 partition)
  67             |
  68             +-------------------- Logical Volume number
  69
  70The device naming scheme is:
  71/dev/cciss/c0d0                 Controller 0, disk 0, whole device
  72/dev/cciss/c0d0p1               Controller 0, disk 0, partition 1
  73/dev/cciss/c0d0p2               Controller 0, disk 0, partition 2
  74/dev/cciss/c0d0p3               Controller 0, disk 0, partition 3
  75
  76/dev/cciss/c1d1                 Controller 1, disk 1, whole device
  77/dev/cciss/c1d1p1               Controller 1, disk 1, partition 1
  78/dev/cciss/c1d1p2               Controller 1, disk 1, partition 2
  79/dev/cciss/c1d1p3               Controller 1, disk 1, partition 3
  80
  81SCSI tape drive and medium changer support
  82------------------------------------------
  83
  84SCSI sequential access devices and medium changer devices are supported and 
  85appropriate device nodes are automatically created.  (e.g.  
  86/dev/st0, /dev/st1, etc.  See the "st" man page for more details.) 
  87You must enable "SCSI tape drive support for Smart Array 5xxx" and 
  88"SCSI support" in your kernel configuration to be able to use SCSI
  89tape drives with your Smart Array 5xxx controller.
  90
  91Additionally, note that the driver will not engage the SCSI core at init 
  92time.  The driver must be directed to dynamically engage the SCSI core via 
  93the /proc filesystem entry which the "block" side of the driver creates as 
  94/proc/driver/cciss/cciss* at runtime.  This is because at driver init time, 
  95the SCSI core may not yet be initialized (because the driver is a block 
  96driver) and attempting to register it with the SCSI core in such a case 
  97would cause a hang.  This is best done via an initialization script 
  98(typically in /etc/init.d, but could vary depending on distribution). 
  99For example:
 100
 101        for x in /proc/driver/cciss/cciss[0-9]*
 102        do
 103                echo "engage scsi" > $x
 104        done
 105
 106Once the SCSI core is engaged by the driver, it cannot be disengaged 
 107(except by unloading the driver, if it happens to be linked as a module.)
 108
 109Note also that if no sequential access devices or medium changers are
 110detected, the SCSI core will not be engaged by the action of the above
 111script.
 112
 113Hot plug support for SCSI tape drives
 114-------------------------------------
 115
 116Hot plugging of SCSI tape drives is supported, with some caveats.
 117The cciss driver must be informed that changes to the SCSI bus
 118have been made.  This may be done via the /proc filesystem.
 119For example:
 120
 121        echo "rescan" > /proc/scsi/cciss0/1
 122
 123This causes the driver to query the adapter about changes to the
 124physical SCSI buses and/or fibre channel arbitrated loop and the
 125driver to make note of any new or removed sequential access devices
 126or medium changers.  The driver will output messages indicating what 
 127devices have been added or removed and the controller, bus, target and 
 128lun used to address the device.  It then notifies the SCSI mid layer
 129of these changes.
 130
 131Note that the naming convention of the /proc filesystem entries 
 132contains a number in addition to the driver name.  (E.g. "cciss0" 
 133instead of just "cciss" which you might expect.)
 134
 135Note: ONLY sequential access devices and medium changers are presented 
 136as SCSI devices to the SCSI mid layer by the cciss driver.  Specifically, 
 137physical SCSI disk drives are NOT presented to the SCSI mid layer.  The 
 138physical SCSI disk drives are controlled directly by the array controller 
 139hardware and it is important to prevent the kernel from attempting to directly
 140access these devices too, as if the array controller were merely a SCSI 
 141controller in the same way that we are allowing it to access SCSI tape drives.
 142
 143SCSI error handling for tape drives and medium changers
 144-------------------------------------------------------
 145
 146The linux SCSI mid layer provides an error handling protocol which
 147kicks into gear whenever a SCSI command fails to complete within a
 148certain amount of time (which can vary depending on the command).
 149The cciss driver participates in this protocol to some extent.  The
 150normal protocol is a four step process.  First the device is told
 151to abort the command.  If that doesn't work, the device is reset.
 152If that doesn't work, the SCSI bus is reset.  If that doesn't work
 153the host bus adapter is reset.  Because the cciss driver is a block
 154driver as well as a SCSI driver and only the tape drives and medium
 155changers are presented to the SCSI mid layer, and unlike more 
 156straightforward SCSI drivers, disk i/o continues through the block
 157side during the SCSI error recovery process, the cciss driver only
 158implements the first two of these actions, aborting the command, and
 159resetting the device.  Additionally, most tape drives will not oblige 
 160in aborting commands, and sometimes it appears they will not even 
 161obey a reset command, though in most circumstances they will.  In
 162the case that the command cannot be aborted and the device cannot be 
 163reset, the device will be set offline.
 164
 165In the event the error handling code is triggered and a tape drive is
 166successfully reset or the tardy command is successfully aborted, the 
 167tape drive may still not allow i/o to continue until some command
 168is issued which positions the tape to a known position.  Typically you
 169must rewind the tape (by issuing "mt -f /dev/st0 rewind" for example)
 170before i/o can proceed again to a tape drive which was reset.
 171
 172
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.