1CCISS(4)                   Linux Programmer's Manual                  CCISS(4)
2
3
4

NAME

6       cciss - HP Smart Array block driver
7

SYNOPSIS

9       modprobe cciss [ cciss_allow_hpsa=1 ]
10

DESCRIPTION

12       cciss is a block driver for older HP Smart Array RAID controllers.
13
14   Options
15       cciss_allow_hpsa=1: This option prevents the cciss driver from attempt‐
16       ing to drive any controllers that the hpsa(4) driver is capable of con‐
17       trolling,  which  is  to  say,  the  cciss driver is restricted by this
18       option to the following controllers:
19
20           Smart Array 5300
21           Smart Array 5i
22           Smart Array 532
23           Smart Array 5312
24           Smart Array 641
25           Smart Array 642
26           Smart Array 6400
27           Smart Array 6400 EM
28           Smart Array 6i
29           Smart Array P600
30           Smart Array P400i
31           Smart Array E200i
32           Smart Array E200
33           Smart Array E200i
34           Smart Array E200i
35           Smart Array E200i
36           Smart Array E500
37
38   Supported hardware
39       The cciss driver supports the following Smart Array boards:
40
41           Smart Array 5300
42           Smart Array 5i
43           Smart Array 532
44           Smart Array 5312
45           Smart Array 641
46           Smart Array 642
47           Smart Array 6400
48           Smart Array 6400 U320 Expansion Module
49           Smart Array 6i
50           Smart Array P600
51           Smart Array P800
52           Smart Array E400
53           Smart Array P400i
54           Smart Array E200
55           Smart Array E200i
56           Smart Array E500
57           Smart Array P700m
58           Smart Array P212
59           Smart Array P410
60           Smart Array P410i
61           Smart Array P411
62           Smart Array P812
63           Smart Array P712m
64           Smart Array P711m
65
66   Configuration details
67       To configure HP Smart Array controllers, use the HP Array Configuration
68       Utility  (either  hpacuxe(8)  or  hpacucli(8)) or the Offline ROM-based
69       Configuration Utility (ORCA) run from the Smart Array's option  ROM  at
70       boot time.
71

FILES

73   Device nodes
74       The device naming scheme is as follows:
75
76       Major numbers:
77
78           104     cciss0
79           105     cciss1
80           106     cciss2
81           105     cciss3
82           108     cciss4
83           109     cciss5
84           110     cciss6
85           111     cciss7
86
87       Minor numbers:
88
89           b7 b6 b5 b4 b3 b2 b1 b0
90           |----+----| |----+----|
91                |           |
92                |           +-------- Partition ID (0=wholedev, 1-15 partition)
93                |
94                +-------------------- Logical Volume number
95
96       The device naming scheme is:
97
98           /dev/cciss/c0d0         Controller 0, disk 0, whole device
99           /dev/cciss/c0d0p1       Controller 0, disk 0, partition 1
100           /dev/cciss/c0d0p2       Controller 0, disk 0, partition 2
101           /dev/cciss/c0d0p3       Controller 0, disk 0, partition 3
102
103           /dev/cciss/c1d1         Controller 1, disk 1, whole device
104           /dev/cciss/c1d1p1       Controller 1, disk 1, partition 1
105           /dev/cciss/c1d1p2       Controller 1, disk 1, partition 2
106           /dev/cciss/c1d1p3       Controller 1, disk 1, partition 3
107
108   Files in /proc
109       The  files /proc/driver/cciss/cciss[0-9]+ contain information about the
110       configuration of each controller.  For example:
111
112           $ cd /proc/driver/cciss
113           $ ls -l
114           total 0
115           -rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss0
116           -rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss1
117           -rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss2
118           $ cat cciss2
119           cciss2: HP Smart Array P800 Controller
120           Board ID: 0x3223103c
121           Firmware Version: 7.14
122           IRQ: 16
123           Logical drives: 1
124           Current Q depth: 0
125           Current # commands on controller: 0
126           Max Q depth since init: 1
127           Max # commands on controller since init: 2
128           Max SG entries since init: 32
129           Sequential access devices: 0
130
131           cciss/c2d0:   36.38GB       RAID 0
132
133   Files in /sys
134       /sys/bus/pci/devices/<dev>/ccissX/cXdY/model
135              Displays the SCSI INQUIRY page 0 model for logical  drive  Y  of
136              controller X.
137
138       /sys/bus/pci/devices/<dev>/ccissX/cXdY/rev
139              Displays the SCSI INQUIRY page 0 revision for logical drive Y of
140              controller X.
141
142       /sys/bus/pci/devices/<dev>/ccissX/cXdY/unique_id
143              Displays the SCSI INQUIRY page  83  serial  number  for  logical
144              drive Y of controller X.
145
146       /sys/bus/pci/devices/<dev>/ccissX/cXdY/vendor
147              Displays  the  SCSI INQUIRY page 0 vendor for logical drive Y of
148              controller X.
149
150       /sys/bus/pci/devices/<dev>/ccissX/cXdY/block:cciss!cXdY
151              A symbolic link to /sys/block/cciss!cXdY.
152
153       /sys/bus/pci/devices/<dev>/ccissX/rescan
154              When this file is written to, the driver rescans the  controller
155              to discover any new, removed, or modified logical drives.
156
157       /sys/bus/pci/devices/<dev>/ccissX/resettable
158              A  value  of  1  displayed  in  this  file  indicates  that  the
159              "reset_devices=1" kernel parameter (used by kdump) is honored by
160              this   controller.    A   value   of   0   indicates   that  the
161              "reset_devices=1" kernel parameter will not  be  honored.   Some
162              models of Smart Array are not able to honor this parameter.
163
164       /sys/bus/pci/devices/<dev>/ccissX/cXdY/lunid
165              Displays  the  8-byte  LUN ID used to address logical drive Y of
166              controller X.
167
168       /sys/bus/pci/devices/<dev>/ccissX/cXdY/raid_level
169              Displays the RAID level of logical drive Y of controller X.
170
171       /sys/bus/pci/devices/<dev>/ccissX/cXdY/usage_count
172              Displays the usage count (number of opens) of logical drive Y of
173              controller X.
174
175   SCSI tape drive and medium changer support
176       SCSI sequential access devices and medium changer devices are supported
177       and appropriate device nodes are automatically created (e.g., /dev/st0,
178       /dev/st1,  etc.;  see  st(4)  for more details.)  You must enable "SCSI
179       tape drive support for Smart Array 5xxx" and  "SCSI  support"  in  your
180       kernel configuration to be able to use SCSI tape drives with your Smart
181       Array 5xxx controller.
182
183       Additionally, note that the driver will not engage  the  SCSI  core  at
184       init  time.  The driver must be directed to dynamically engage the SCSI
185       core via the /proc file-system entry, which the  "block"  side  of  the
186       driver  creates  as  /proc/driver/cciss/cciss*  at  run  time.  This is
187       because at driver init time, the SCSI core may not yet  be  initialized
188       (because  the  driver  is a block driver) and attempting to register it
189       with the SCSI core in such a case would cause a  hang.   This  is  best
190       done  via an initialization script (typically in /etc/init.d, but could
191       vary depending on distribution).  For example:
192
193           for x in /proc/driver/cciss/cciss[0-9]*
194           do
195               echo "engage scsi" > $x
196           done
197
198       Once the SCSI core is engaged by the driver, it  cannot  be  disengaged
199       (except  by  unloading the driver, if it happens to be linked as a mod‐
200       ule.)
201
202       Note also that if no sequential access devices or medium  changers  are
203       detected,  the SCSI core will not be engaged by the action of the above
204       script.
205
206   Hot plug support for SCSI tape drives
207       Hot plugging of SCSI tape drives is supported, with some caveats.   The
208       cciss  driver  must  be informed that changes to the SCSI bus have been
209       made.  This may be done via the /proc file system.  For example:
210
211           echo "rescan" > /proc/scsi/cciss0/1
212
213       This causes the driver to:
214
215              1. query the adapter about changes to the  physical  SCSI  buses
216                 and/or fibre channel arbitrated loop, and
217
218              2. make  note of any new or removed sequential access devices or
219                 medium changers.
220
221       The driver will output messages  indicating  which  devices  have  been
222       added  or  removed  and  the  controller,  bus,  target and lun used to
223       address each device.  The driver then notifies  the  SCSI  midlayer  of
224       these changes.
225
226       Note  that  the naming convention of the /proc file-system entries con‐
227       tains a number in addition to the driver name (e.g.,  "cciss0"  instead
228       of just "cciss", which you might expect).
229
230       Note:  Only sequential access devices and medium changers are presented
231       as SCSI devices to the SCSI midlayer by  the  cciss  driver.   Specifi‐
232       cally,  physical  SCSI  disk  drives are not presented to the SCSI mid‐
233       layer.  The only disk devices that are presented to the kernel are log‐
234       ical  drives  that  the array controller constructs from regions on the
235       physical drives.  The logical drives are presented to the  block  layer
236       (not  to the SCSI midlayer).  It is important for the driver to prevent
237       the kernel from accessing the physical  drives  directly,  since  these
238       drives  are  used  by  the  array  controller  to construct the logical
239       drives.
240
241   SCSI error handling for tape drives and medium changers
242       The Linux SCSI midlayer provides an  error-handling  protocol  that  is
243       initiated  whenever  a  SCSI command fails to complete within a certain
244       amount of time (which can vary depending on the  command).   The  cciss
245       driver participates in this protocol to some extent.  The normal proto‐
246       col is a four-step process:
247
248       *  First, the device is told to abort the command.
249
250       *  If that doesn't work, the device is reset.
251
252       *  If that doesn't work, the SCSI bus is reset.
253
254       *  If that doesn't work the host bus adapter is reset.
255
256       The cciss driver is a block driver as well as a SCSI  driver  and  only
257       the  tape drives and medium changers are presented to the SCSI midlayer
258       Furthermore, unlike more straightforward SCSI drivers, disk I/O contin‐
259       ues  through  the  block  side  during  the SCSI error-recovery process
260       Therefore, the cciss driver implements only  the  first  two  of  these
261       actions,  aborting  the  command,  and resetting the device.  Note also
262       that most tape drives will not oblige in aborting commands,  and  some‐
263       times  it  appears  they  will not even obey a reset command, though in
264       most circumstances they will.  If the command cannot be aborted and the
265       device cannot be reset, the device will be set offline.
266
267       In the event that the error-handling code is triggered and a tape drive
268       is successfully reset or the tardy command is successfully aborted, the
269       tape  drive  may  still not allow I/O to continue until some command is
270       issued that positions the tape to a known position.  Typically you must
271       rewind  the  tape (by issuing mt -f /dev/st0 rewind for example) before
272       I/O can proceed again to a tape drive that was reset.
273

SEE ALSO

275       cciss_vol_status(8), hpsa(4), hpacucli(8), hpacuxe(8),
276
277http://cciss.sf.net⟩, and Documentation/blockdev/cciss.txt  and  Docu‐
278       mentation/ABI/testing/sysfs-bus-pci-devices-cciss  in  the Linux kernel
279       source tree
280

COLOPHON

282       This page is part of release 3.53 of the Linux  man-pages  project.   A
283       description  of  the project, and information about reporting bugs, can
284       be found at http://www.kernel.org/doc/man-pages/.
285
286
287
288Linux                             2012-08-05                          CCISS(4)
Impressum