]>
Commit | Line | Data |
---|---|---|
d3ea2cc7 MK |
1 | .\" Copyright (C) 2011, Hewlett-Packard Development Company, L.P. |
2 | .\" Written by Stephen M. Cameron <scameron@beardog.cce.hp.com> | |
2297bf0e | 3 | .\" |
c4a99c30 | 4 | .\" %%%LICENSE_START(GPLv2_ONELINE) |
d3ea2cc7 | 5 | .\" Licensed under GNU General Public License version 2 (GPLv2) |
8ff7380d | 6 | .\" %%%LICENSE_END |
536fabdf | 7 | .\" |
dc91c006 SC |
8 | .\" shorthand for double quote that works everywhere. |
9 | .ds q \N'34' | |
4b8c67d9 | 10 | .TH CCISS 4 2017-09-15 "Linux" "Linux Programmer's Manual" |
dc91c006 SC |
11 | .SH NAME |
12 | cciss \- HP Smart Array block driver | |
13 | .SH SYNOPSIS | |
14 | .nf | |
15 | modprobe cciss [ cciss_allow_hpsa=1 ] | |
16 | .fi | |
17 | .SH DESCRIPTION | |
70d6fc4c ES |
18 | .\" commit 253d2464df446456c0bba5ed4137a7be0b278aa8 |
19 | .BR Note : | |
f6da6a11 | 20 | This obsolete driver was removed from the kernel in version 4.14, |
03cd6c1c | 21 | as it is superseded by the |
70d6fc4c ES |
22 | .BR hpsa (4) |
23 | driver in newer kernels. | |
24 | .PP | |
dc91c006 SC |
25 | .B cciss |
26 | is a block driver for older HP Smart Array RAID controllers. | |
3357b1ec MK |
27 | .SS Options |
28 | .IR "cciss_allow_hpsa=1" : | |
536fabdf MK |
29 | This option prevents the |
30 | .B cciss | |
4fa0ef7e | 31 | driver from attempting to drive any controllers that the |
536fabdf MK |
32 | .BR hpsa (4) |
33 | driver is capable of controlling, which is to say, the | |
34 | .B cciss | |
35 | driver is restricted by this option to the following controllers: | |
a2b7a144 | 36 | .PP |
dc91c006 | 37 | .nf |
3357b1ec MK |
38 | Smart Array 5300 |
39 | Smart Array 5i | |
40 | Smart Array 532 | |
41 | Smart Array 5312 | |
42 | Smart Array 641 | |
43 | Smart Array 642 | |
44 | Smart Array 6400 | |
45 | Smart Array 6400 EM | |
46 | Smart Array 6i | |
47 | Smart Array P600 | |
48 | Smart Array P400i | |
49 | Smart Array E200i | |
50 | Smart Array E200 | |
51 | Smart Array E200i | |
52 | Smart Array E200i | |
53 | Smart Array E200i | |
54 | Smart Array E500 | |
dc91c006 | 55 | .fi |
c634028a | 56 | .SS Supported hardware |
dc91c006 SC |
57 | The |
58 | .B cciss | |
59 | driver supports the following Smart Array boards: | |
a2b7a144 | 60 | .PP |
dc91c006 | 61 | .nf |
3357b1ec MK |
62 | Smart Array 5300 |
63 | Smart Array 5i | |
64 | Smart Array 532 | |
65 | Smart Array 5312 | |
66 | Smart Array 641 | |
67 | Smart Array 642 | |
68 | Smart Array 6400 | |
69 | Smart Array 6400 U320 Expansion Module | |
70 | Smart Array 6i | |
71 | Smart Array P600 | |
72 | Smart Array P800 | |
73 | Smart Array E400 | |
74 | Smart Array P400i | |
75 | Smart Array E200 | |
76 | Smart Array E200i | |
77 | Smart Array E500 | |
78 | Smart Array P700m | |
79 | Smart Array P212 | |
80 | Smart Array P410 | |
81 | Smart Array P410i | |
82 | Smart Array P411 | |
83 | Smart Array P812 | |
84 | Smart Array P712m | |
85 | Smart Array P711m | |
dc91c006 | 86 | .fi |
c634028a | 87 | .SS Configuration details |
3357b1ec MK |
88 | To configure HP Smart Array controllers, |
89 | use the HP Array Configuration Utility | |
536fabdf MK |
90 | (either |
91 | .BR hpacuxe (8) | |
92 | or | |
93 | .BR hpacucli (8)) | |
94 | or the Offline ROM-based Configuration Utility (ORCA) | |
dc91c006 SC |
95 | run from the Smart Array's option ROM at boot time. |
96 | .SH FILES | |
c634028a | 97 | .SS Device nodes |
dc91c006 | 98 | The device naming scheme is as follows: |
a2b7a144 | 99 | .PP |
dc91c006 SC |
100 | .nf |
101 | Major numbers: | |
a2b7a144 | 102 | .PP |
3357b1ec MK |
103 | 104 cciss0 |
104 | 105 cciss1 | |
105 | 106 cciss2 | |
106 | 105 cciss3 | |
107 | 108 cciss4 | |
108 | 109 cciss5 | |
109 | 110 cciss6 | |
110 | 111 cciss7 | |
a2b7a144 | 111 | .PP |
dc91c006 | 112 | Minor numbers: |
a2b7a144 | 113 | .PP |
3357b1ec MK |
114 | b7 b6 b5 b4 b3 b2 b1 b0 |
115 | |----+----| |----+----| | |
116 | | | | |
9bc87ed0 | 117 | | +-------- Partition ID (0=wholedev, 1\-15 partition) |
3357b1ec MK |
118 | | |
119 | +-------------------- Logical Volume number | |
a2b7a144 | 120 | .PP |
dc91c006 | 121 | The device naming scheme is: |
a2b7a144 | 122 | .PP |
3357b1ec MK |
123 | /dev/cciss/c0d0 Controller 0, disk 0, whole device |
124 | /dev/cciss/c0d0p1 Controller 0, disk 0, partition 1 | |
125 | /dev/cciss/c0d0p2 Controller 0, disk 0, partition 2 | |
126 | /dev/cciss/c0d0p3 Controller 0, disk 0, partition 3 | |
a2b7a144 | 127 | .PP |
3357b1ec MK |
128 | /dev/cciss/c1d1 Controller 1, disk 1, whole device |
129 | /dev/cciss/c1d1p1 Controller 1, disk 1, partition 1 | |
130 | /dev/cciss/c1d1p2 Controller 1, disk 1, partition 2 | |
131 | /dev/cciss/c1d1p3 Controller 1, disk 1, partition 3 | |
dc91c006 | 132 | .fi |
3357b1ec | 133 | .SS Files in /proc |
536fabdf | 134 | The files |
9bc87ed0 | 135 | .I /proc/driver/cciss/cciss[0\-9]+ |
3357b1ec MK |
136 | contain information about |
137 | the configuration of each controller. | |
138 | For example: | |
019d9ee8 MK |
139 | .PP |
140 | .in +4n | |
141 | .EX | |
142 | $ \fBcd /proc/driver/cciss\fP | |
143 | $ \fBls -l\fP | |
144 | total 0 | |
9bc87ed0 MK |
145 | -rw-r--r-- 1 root root 0 2010\-09\-10 10:38 cciss0 |
146 | -rw-r--r-- 1 root root 0 2010\-09\-10 10:38 cciss1 | |
147 | -rw-r--r-- 1 root root 0 2010\-09\-10 10:38 cciss2 | |
019d9ee8 MK |
148 | $ \fBcat cciss2\fP |
149 | cciss2: HP Smart Array P800 Controller | |
150 | Board ID: 0x3223103c | |
151 | Firmware Version: 7.14 | |
152 | IRQ: 16 | |
153 | Logical drives: 1 | |
154 | Current Q depth: 0 | |
155 | Current # commands on controller: 0 | |
156 | Max Q depth since init: 1 | |
157 | Max # commands on controller since init: 2 | |
158 | Max SG entries since init: 32 | |
159 | Sequential access devices: 0 | |
3357b1ec | 160 | |
019d9ee8 MK |
161 | cciss/c2d0: 36.38GB RAID 0 |
162 | .EE | |
163 | .in | |
164 | .\" | |
3357b1ec | 165 | .SS Files in /sys |
3357b1ec MK |
166 | .TP |
167 | .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/model | |
536fabdf MK |
168 | Displays the SCSI INQUIRY page 0 model for logical drive |
169 | .I Y | |
170 | of controller | |
171 | .IR X . | |
3357b1ec MK |
172 | .TP |
173 | .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/rev | |
536fabdf MK |
174 | Displays the SCSI INQUIRY page 0 revision for logical drive |
175 | .I Y | |
176 | of controller | |
177 | .IR X . | |
3357b1ec MK |
178 | .TP |
179 | .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/unique_id | |
536fabdf MK |
180 | Displays the SCSI INQUIRY page 83 serial number for logical drive |
181 | .I Y | |
182 | of controller | |
183 | .IR X . | |
3357b1ec MK |
184 | .TP |
185 | .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/vendor | |
536fabdf MK |
186 | Displays the SCSI INQUIRY page 0 vendor for logical drive |
187 | .I Y | |
188 | of controller | |
189 | .IR X . | |
3357b1ec MK |
190 | .TP |
191 | .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/block:cciss!cXdY | |
536fabdf MK |
192 | A symbolic link to |
193 | .IR /sys/block/cciss!cXdY . | |
3357b1ec MK |
194 | .TP |
195 | .I /sys/bus/pci/devices/<dev>/ccissX/rescan | |
c98253f8 | 196 | When this file is written to, the driver rescans the controller |
4fa0ef7e | 197 | to discover any new, removed, or modified logical drives. |
3357b1ec MK |
198 | .TP |
199 | .I /sys/bus/pci/devices/<dev>/ccissX/resettable | |
536fabdf MK |
200 | A value of 1 displayed in this file indicates that |
201 | the "reset_devices=1" kernel parameter (used by | |
202 | .BR kdump ) | |
203 | is honored by this controller. | |
204 | A value of 0 indicates that the | |
3357b1ec MK |
205 | "reset_devices=1" kernel parameter will not be honored. |
206 | Some models of Smart Array are not able to honor this parameter. | |
207 | .TP | |
208 | .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/lunid | |
536fabdf MK |
209 | Displays the 8-byte LUN ID used to address logical drive |
210 | .I Y | |
211 | of controller | |
212 | .IR X . | |
3357b1ec MK |
213 | .TP |
214 | .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/raid_level | |
536fabdf MK |
215 | Displays the RAID level of logical drive |
216 | .I Y | |
217 | of controller | |
218 | .IR X . | |
3357b1ec MK |
219 | .TP |
220 | .I /sys/bus/pci/devices/<dev>/ccissX/cXdY/usage_count | |
536fabdf MK |
221 | Displays the usage count (number of opens) of logical drive |
222 | .I Y | |
223 | of controller | |
224 | .IR X . | |
3357b1ec | 225 | .SS SCSI tape drive and medium changer support |
dc91c006 | 226 | SCSI sequential access devices and medium changer devices are supported and |
536fabdf | 227 | appropriate device nodes are automatically created (e.g., |
3357b1ec | 228 | .IR /dev/st0 , |
536fabdf MK |
229 | .IR /dev/st1 , |
230 | etc.; see | |
3357b1ec MK |
231 | .BR st (4) |
232 | for more details.) | |
dc91c006 SC |
233 | You must enable "SCSI tape drive support for Smart Array 5xxx" and |
234 | "SCSI support" in your kernel configuration to be able to use SCSI | |
235 | tape drives with your Smart Array 5xxx controller. | |
5b539973 | 236 | .PP |
536fabdf MK |
237 | Additionally, note that the driver will not engage the SCSI core at |
238 | init time. | |
282c1a35 MK |
239 | The driver must be directed to dynamically engage the SCSI core via the |
240 | .I /proc | |
241 | filesystem entry, | |
4fa0ef7e | 242 | which the "block" side of the driver creates as |
536fabdf | 243 | .I /proc/driver/cciss/cciss* |
72c90260 | 244 | at run time. |
3357b1ec | 245 | This is because at driver init time, |
dc91c006 SC |
246 | the SCSI core may not yet be initialized (because the driver is a block |
247 | driver) and attempting to register it with the SCSI core in such a case | |
3357b1ec MK |
248 | would cause a hang. |
249 | This is best done via an initialization script | |
250 | (typically in | |
251 | .IR /etc/init.d , | |
252 | but could vary depending on distribution). | |
dc91c006 | 253 | For example: |
a2b7a144 MK |
254 | .PP |
255 | .in +4n | |
256 | .EX | |
9bc87ed0 | 257 | for x in /proc/driver/cciss/cciss[0\-9]* |
a2b7a144 MK |
258 | do |
259 | echo "engage scsi" > $x | |
260 | done | |
261 | .EE | |
262 | .in | |
263 | .PP | |
dc91c006 SC |
264 | Once the SCSI core is engaged by the driver, it cannot be disengaged |
265 | (except by unloading the driver, if it happens to be linked as a module.) | |
5b539973 | 266 | .PP |
dc91c006 SC |
267 | Note also that if no sequential access devices or medium changers are |
268 | detected, the SCSI core will not be engaged by the action of the above | |
269 | script. | |
dc91c006 | 270 | .SS Hot plug support for SCSI tape drives |
dc91c006 | 271 | Hot plugging of SCSI tape drives is supported, with some caveats. |
536fabdf MK |
272 | The |
273 | .B cciss | |
274 | driver must be informed that changes to the SCSI bus | |
3357b1ec | 275 | have been made. |
282c1a35 MK |
276 | This may be done via the |
277 | .I /proc | |
278 | filesystem. | |
dc91c006 | 279 | For example: |
5b539973 | 280 | .PP |
3357b1ec | 281 | echo "rescan" > /proc/scsi/cciss0/1 |
5b539973 | 282 | .PP |
536fabdf MK |
283 | This causes the driver to: |
284 | .RS | |
285 | .IP 1. 3 | |
286 | query the adapter about changes to the | |
287 | physical SCSI buses and/or fibre channel arbitrated loop, and | |
288 | .IP 2. | |
289 | make note of any new or removed sequential access devices | |
3357b1ec | 290 | or medium changers. |
536fabdf | 291 | .RE |
dd3568a1 | 292 | .PP |
536fabdf | 293 | The driver will output messages indicating which |
a797afac | 294 | devices have been added or removed and the controller, bus, target, and |
536fabdf MK |
295 | lun used to address each device. |
296 | The driver then notifies the SCSI midlayer | |
dc91c006 | 297 | of these changes. |
5b539973 | 298 | .PP |
282c1a35 MK |
299 | Note that the naming convention of the |
300 | .I /proc | |
301 | filesystem entries | |
3357b1ec MK |
302 | contains a number in addition to the driver name |
303 | (e.g., "cciss0" | |
536fabdf | 304 | instead of just "cciss", which you might expect). |
5b539973 | 305 | .PP |
536fabdf | 306 | Note: |
3357b1ec MK |
307 | .I Only |
308 | sequential access devices and medium changers are presented | |
536fabdf MK |
309 | as SCSI devices to the SCSI midlayer by the |
310 | .B cciss | |
311 | driver. | |
3357b1ec MK |
312 | Specifically, physical SCSI disk drives are |
313 | .I not | |
4fa0ef7e MK |
314 | presented to the SCSI midlayer. |
315 | The only disk devices that are presented to the kernel are logical | |
316 | drives that the array controller constructs from regions on | |
317 | the physical drives. | |
318 | The logical drives are presented to the block layer | |
319 | (not to the SCSI midlayer). | |
320 | It is important for the driver to prevent the kernel from accessing the | |
ddc30fd2 | 321 | physical drives directly, since these drives are used by the array |
4fa0ef7e | 322 | controller to construct the logical drives. |
dc91c006 | 323 | .SS SCSI error handling for tape drives and medium changers |
4fa0ef7e | 324 | The Linux SCSI midlayer provides an error-handling protocol that |
536fabdf | 325 | is initiated whenever a SCSI command fails to complete within a |
dc91c006 | 326 | certain amount of time (which can vary depending on the command). |
536fabdf MK |
327 | The |
328 | .B cciss | |
329 | driver participates in this protocol to some extent. | |
330 | The normal protocol is a four-step process: | |
331 | .IP * 3 | |
332 | First, the device is told to abort the command. | |
333 | .IP * | |
3357b1ec | 334 | If that doesn't work, the device is reset. |
536fabdf | 335 | .IP * |
3357b1ec | 336 | If that doesn't work, the SCSI bus is reset. |
536fabdf | 337 | .IP * |
661d0f7c | 338 | If that doesn't work, the host bus adapter is reset. |
dd3568a1 | 339 | .PP |
536fabdf MK |
340 | The |
341 | .B cciss | |
342 | driver is a block | |
dc91c006 | 343 | driver as well as a SCSI driver and only the tape drives and medium |
9cbbcfc0 | 344 | changers are presented to the SCSI midlayer. |
536fabdf MK |
345 | Furthermore, unlike more |
346 | straightforward SCSI drivers, disk I/O continues through the block | |
9cbbcfc0 | 347 | side during the SCSI error-recovery process. |
536fabdf MK |
348 | Therefore, the |
349 | .B cciss | |
350 | driver implements only the first two of these actions, | |
351 | aborting the command, and resetting the device. | |
352 | Note also that most tape drives will not oblige | |
dc91c006 | 353 | in aborting commands, and sometimes it appears they will not even |
3357b1ec | 354 | obey a reset command, though in most circumstances they will. |
536fabdf | 355 | If the command cannot be aborted and the device cannot be |
dc91c006 | 356 | reset, the device will be set offline. |
5b539973 | 357 | .PP |
536fabdf | 358 | In the event that the error-handling code is triggered and a tape drive is |
dc91c006 | 359 | successfully reset or the tardy command is successfully aborted, the |
536fabdf | 360 | tape drive may still not allow I/O to continue until some command |
4fa0ef7e | 361 | is issued that positions the tape to a known position. |
3357b1ec MK |
362 | Typically you must rewind the tape (by issuing |
363 | .I "mt -f /dev/st0 rewind" | |
4fa0ef7e | 364 | for example) before I/O can proceed again to a tape drive that was reset. |
47297adb | 365 | .SH SEE ALSO |
3357b1ec | 366 | .BR hpsa (4), |
d830b8be | 367 | .BR cciss_vol_status (8), |
3357b1ec | 368 | .BR hpacucli (8), |
a46e3ad2 | 369 | .BR hpacuxe (8) |
5b539973 | 370 | .PP |
608bf950 SK |
371 | .UR http://cciss.sf.net |
372 | .UE , | |
173fe7e7 | 373 | and |
3357b1ec MK |
374 | .I Documentation/blockdev/cciss.txt |
375 | and | |
376 | .I Documentation/ABI/testing/sysfs-bus-pci-devices-cciss | |
173fe7e7 | 377 | in the Linux kernel source tree |
6ad2da24 MK |
378 | .\" .SH AUTHORS |
379 | .\" Don Brace, Steve Cameron, Chase Maupin, Mike Miller, Michael Ni, | |
380 | .\" Charles White, Francis Wiran | |
381 | .\" and probably some other people. |