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