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