]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | This driver is for Compaq's SMART Array Controllers. |
2 | ||
3 | Supported Cards: | |
4 | ---------------- | |
5 | ||
6 | This 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 | |
9dc7a86e MM |
20 | * SA P400i |
21 | * SA E200 | |
22 | * SA E200i | |
1883c5ab | 23 | * SA E500 |
fd96feb2 | 24 | * SA P700m |
24aac480 MM |
25 | * SA P212 |
26 | * SA P410 | |
27 | * SA P410i | |
28 | * SA P411 | |
29 | * SA P812 | |
77ca7286 MM |
30 | * SA P712m |
31 | * SA P711m | |
1da177e4 | 32 | |
6c080f1a SC |
33 | Detecting drive failures: |
34 | ------------------------- | |
1da177e4 | 35 | |
6c080f1a SC |
36 | To get the status of logical volumes and to detect physical drive |
37 | failures, you can use the cciss_vol_status program found here: | |
38 | http://cciss.sourceforge.net/#cciss_utils | |
1da177e4 LT |
39 | |
40 | Device Naming: | |
41 | -------------- | |
42 | ||
6c080f1a SC |
43 | If nodes are not already created in the /dev/cciss directory, run as root: |
44 | ||
45 | # cd /dev | |
46 | # ./MAKEDEV cciss | |
47 | ||
1da177e4 LT |
48 | You need some entries in /dev for the cciss device. The MAKEDEV script |
49 | can make device nodes for you automatically. Currently the device setup | |
50 | is as follows: | |
51 | ||
52 | Major 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 | ||
62 | Minor 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 | ||
70 | The 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 | ||
13049537 JH |
81 | CCISS simple mode support |
82 | ------------------------- | |
83 | ||
84 | The "cciss_simple_mode=1" boot parameter may be used to prevent the driver | |
85 | from putting the controller into "performant" mode. The difference is that | |
86 | with simple mode, each command completion requires an interrupt, while with | |
87 | "performant mode" (the default, and ordinarily better performing) it is | |
88 | possible to have multiple command completions indicated by a single | |
89 | interrupt. | |
90 | ||
1da177e4 LT |
91 | SCSI tape drive and medium changer support |
92 | ------------------------------------------ | |
93 | ||
94 | SCSI sequential access devices and medium changer devices are supported and | |
95 | appropriate device nodes are automatically created. (e.g. | |
96 | /dev/st0, /dev/st1, etc. See the "st" man page for more details.) | |
97 | You must enable "SCSI tape drive support for Smart Array 5xxx" and | |
98 | "SCSI support" in your kernel configuration to be able to use SCSI | |
99 | tape drives with your Smart Array 5xxx controller. | |
100 | ||
0007a4c9 SC |
101 | Additionally, note that the driver will engage the SCSI core at init |
102 | time if any tape drives or medium changers are detected. The driver may | |
103 | also be directed to dynamically engage the SCSI core via the /proc filesystem | |
104 | entry which the "block" side of the driver creates as | |
105 | /proc/driver/cciss/cciss* at runtime. This is best done via a script. | |
106 | ||
1da177e4 LT |
107 | For example: |
108 | ||
109 | for x in /proc/driver/cciss/cciss[0-9]* | |
110 | do | |
111 | echo "engage scsi" > $x | |
112 | done | |
113 | ||
114 | Once the SCSI core is engaged by the driver, it cannot be disengaged | |
115 | (except by unloading the driver, if it happens to be linked as a module.) | |
116 | ||
117 | Note also that if no sequential access devices or medium changers are | |
118 | detected, the SCSI core will not be engaged by the action of the above | |
119 | script. | |
120 | ||
121 | Hot plug support for SCSI tape drives | |
122 | ------------------------------------- | |
123 | ||
124 | Hot plugging of SCSI tape drives is supported, with some caveats. | |
125 | The cciss driver must be informed that changes to the SCSI bus | |
f4a93bcd MM |
126 | have been made. This may be done via the /proc filesystem. |
127 | For example: | |
1da177e4 LT |
128 | |
129 | echo "rescan" > /proc/scsi/cciss0/1 | |
130 | ||
f4a93bcd MM |
131 | This causes the driver to query the adapter about changes to the |
132 | physical SCSI buses and/or fibre channel arbitrated loop and the | |
1da177e4 LT |
133 | driver to make note of any new or removed sequential access devices |
134 | or medium changers. The driver will output messages indicating what | |
135 | devices have been added or removed and the controller, bus, target and | |
f4a93bcd MM |
136 | lun used to address the device. It then notifies the SCSI mid layer |
137 | of these changes. | |
1da177e4 LT |
138 | |
139 | Note that the naming convention of the /proc filesystem entries | |
140 | contains a number in addition to the driver name. (E.g. "cciss0" | |
141 | instead of just "cciss" which you might expect.) | |
142 | ||
143 | Note: ONLY sequential access devices and medium changers are presented | |
144 | as SCSI devices to the SCSI mid layer by the cciss driver. Specifically, | |
145 | physical SCSI disk drives are NOT presented to the SCSI mid layer. The | |
146 | physical SCSI disk drives are controlled directly by the array controller | |
147 | hardware and it is important to prevent the kernel from attempting to directly | |
148 | access these devices too, as if the array controller were merely a SCSI | |
149 | controller in the same way that we are allowing it to access SCSI tape drives. | |
150 | ||
3da8b713 | 151 | SCSI error handling for tape drives and medium changers |
152 | ------------------------------------------------------- | |
153 | ||
154 | The linux SCSI mid layer provides an error handling protocol which | |
155 | kicks into gear whenever a SCSI command fails to complete within a | |
156 | certain amount of time (which can vary depending on the command). | |
157 | The cciss driver participates in this protocol to some extent. The | |
158 | normal protocol is a four step process. First the device is told | |
159 | to abort the command. If that doesn't work, the device is reset. | |
160 | If that doesn't work, the SCSI bus is reset. If that doesn't work | |
161 | the host bus adapter is reset. Because the cciss driver is a block | |
162 | driver as well as a SCSI driver and only the tape drives and medium | |
163 | changers are presented to the SCSI mid layer, and unlike more | |
164 | straightforward SCSI drivers, disk i/o continues through the block | |
165 | side during the SCSI error recovery process, the cciss driver only | |
166 | implements the first two of these actions, aborting the command, and | |
167 | resetting the device. Additionally, most tape drives will not oblige | |
168 | in aborting commands, and sometimes it appears they will not even | |
6c28f2c0 | 169 | obey a reset command, though in most circumstances they will. In |
3da8b713 | 170 | the case that the command cannot be aborted and the device cannot be |
171 | reset, the device will be set offline. | |
172 | ||
173 | In the event the error handling code is triggered and a tape drive is | |
174 | successfully reset or the tardy command is successfully aborted, the | |
175 | tape drive may still not allow i/o to continue until some command | |
176 | is issued which positions the tape to a known position. Typically you | |
177 | must rewind the tape (by issuing "mt -f /dev/st0 rewind" for example) | |
178 | before i/o can proceed again to a tape drive which was reset. | |
179 | ||
8a4ec67b SC |
180 | There is a cciss_tape_cmds module parameter which can be used to make cciss |
181 | allocate more commands for use by tape drives. Ordinarily only a few commands | |
182 | (6) are allocated for tape drives because tape drives are slow and | |
183 | infrequently used and the primary purpose of Smart Array controllers is to | |
184 | act as a RAID controller for disk drives, so the vast majority of commands | |
185 | are allocated for disk devices. However, if you have more than a few tape | |
186 | drives attached to a smart array, the default number of commands may not be | |
187 | enought (for example, if you have 8 tape drives, you could only rewind 6 | |
188 | at one time with the default number of commands.) The cciss_tape_cmds module | |
189 | parameter allows more commands (up to 16 more) to be allocated for use by | |
190 | tape drives. For example: | |
191 | ||
192 | insmod cciss.ko cciss_tape_cmds=16 | |
193 | ||
194 | Or, as a kernel boot parameter passed in via grub: cciss.cciss_tape_cmds=8 |