Add 'no_partitions' feature
[multipath-tools/.git] / multipath / multipath.conf.5
1 .TH MULTIPATH.CONF 5 "30 November 2006"
2 .SH NAME
3 multipath.conf \- multipath daemon configuration file
4 .SH DESCRIPTION
5 .B "multipath.conf"
6 is the configuration file for the multipath daemon. It is used to
7 overwrite the built-in configuration table of \fBmultipathd\fP.
8 Any line whose first non-white-space character is a '#' is considered
9 a comment line. Empty lines are ignored.
10 .SH SYNTAX
11 The configuration file contains entries of the form:
12 .RS
13 .nf
14 .ft B
15 .sp
16 <section> {
17 .RS
18 .ft B
19 <attribute> <value>
20 .I "..."
21 .ft B
22 <subsection> {
23 .RS
24 .ft B
25 <attribute> <value>
26 .I "..."
27 .RE
28 }
29 .RE
30 }
31 .ft R
32 .fi
33 .RE
34 .LP
35 Each \fIsection\fP contains one or more attributes or subsections. The
36 recognized keywords for attributes or subsections depend on the
37 section in which they occor.
38 .LP
39 The following \fIsection\fP keywords are recognized:
40 .TP 17
41 .B defaults
42 This section defines default values for attributes which are used
43 whenever no values are given in the appropriate device or multipath
44 sections.
45 .TP
46 .B blacklist
47 This section defines which devices should be excluded from the
48 multipath topology discovery.
49 .TP
50 .B blacklist_exceptions
51 This section defines which devices should be included in the
52 multipath topology discovery, despite being listed in the
53 .I blacklist
54 section.
55 .TP
56 .B multipaths
57 This section defines the multipath topologies. They are indexed by a
58 \fIWorld Wide Identifier\fR(wwid), which is the result of the
59 \fIgetuid_callout\fR program.
60 .TP
61 .B devices
62 This section defines the device-specific settings.
63 .RE
64 .LP
65 .SH "defaults section"
66 The
67 .B defaults
68 section recognizes the following keywords:
69 .TP 17
70 .B polling_interval
71 interval between two path checks in seconds For properly functioning paths,
72 the interval between checks will gradually increase to (4 * polling_interval);
73 default is
74 .I 5
75 .TP
76 .B udev_dir
77 directory where udev creates its device nodes; default is
78 .I /dev
79 .TP
80 .B verbosity
81 default verbosity. Higher values increase the verbosity level. Valid
82 levels are between 0 and 6; default is
83 .I 2
84 .TP
85 .B path_selector
86 The default path selector algorithm to use; they are offered by the
87 kernel multipath target. There are three selector algorithms.
88 .RS
89 .TP 12
90 .B "round-robin 0"
91 Loop through every path in the path group, sending the same amount of IO to
92 each.
93 .TP
94 .B "queue-length 0"
95 Send the next bunch of IO down the path with the least amount of outstanding IO.
96 .TP
97 .B "service-time 0"
98 Choose the path for the next bunch of IO based on the amount of outstanding IO
99 to the path and its relative throughput.
100 .RE
101 .TP
102 .B path_grouping_policy
103 The default path grouping policy to apply to unspecified
104 multipaths. Possible values are
105 .RS
106 .TP 12
107 .B failover
108 1 path per priority group
109 .TP
110 .B multibus
111 all paths in 1 priority group
112 .TP
113 .B group_by_serial
114 1 priority group per serial number
115 .TP
116 .B group_by_prio
117 1 priority group per priority value. Priorities are determined by
118 callout programs specified as a global, per-controller or
119 per-multipath option in the configuration file.
120 .TP
121 .B group_by_node_name
122 1 priority group per target node name. Target node names are fetched
123 in /sys/class/fc_transport/target*/node_name.
124 .TP
125 Default value is \fImultibus\fR.
126 .RE
127 .TP
128 .B getuid_callout
129 The default program and args to callout to obtain a unique path
130 identifier. Should be specified with an absolute path. Default value
131 is
132 .I /lib/udev/scsi_id --whitelisted --device=/dev/%n
133 .TP
134 .B prio_callout
135 The default program and args to callout to obtain a path priority
136 value. The specified program will be executed and should return a
137 numeric value specifying the relative priority of this path. Higher
138 number have a higher priority. A '%n' in the command line will be expanded
139 to the device name, a '%b' will be expanded to the device number in
140 .I major:minor
141 format.
142 .I "none"
143 is a valid value. Currently the following path priority programs are
144 implemented:
145 .RS
146 .TP 12
147 .B mpath_prio_emc /dev/%n
148 Generate the path priority for EMC arrays
149 .TP
150 .B mpath_prio_alua /dev/%n
151 Generate the path priority based on the SCSI-3 ALUA settings.
152 .TP
153 .B mpath_prio_ontap /dev/%n
154 Generate the path priority for NetApp arrays.
155 .TP
156 .B mpath_prio_rdac /dev/%n
157 Generate the path priority for LSI/Engenio RDAC controller.
158 .TP
159 .B mpath_prio_hp_sw /dev/%n
160 Generate the path priority for Compaq/HP controller in
161 active/standby mode.
162 .TP
163 .B mpath_prio_hds_modular %b
164 Generate the path priority for Hitachi HDS Modular storage arrays.
165 .TP
166 Default value is \fBnone\fR.
167 .RE
168 .TP
169 .B features
170 Specify any device-mapper features to be used. Syntax is
171 .I num list
172 where
173 .I num
174 is the number of features in
175 .I list.
176 Possible values for the feature list are
177 .RS
178 .TP 12
179 .B queue_if_no_path
180 Queue IO if no path is active; identical to the
181 .I no_path_retry
182 keyword.
183 .TP
184 .B no_partitions
185 Disable automatic partitions generation via kpartx.
186 .RE
187 .TP
188 .B path_checker
189 The default method used to determine the paths' state. Possible values
190 are
191 .RS
192 .TP 12
193 .B readsector0
194 Read the first sector of the device
195 .TP
196 .B tur
197 Issue a
198 .I TEST UNIT READY
199 command to the device.
200 .TP
201 .B emc_clariion
202 Query the EMC Clariion specific EVPD page 0xC0 to determine the path
203 state.
204 .TP
205 .B hp_sw
206 Check the path state for HP storage arrays with Active/Standby firmware.
207 .TP
208 .B rdac
209 Check the path state for LSI/Engenio RDAC storage controller.
210 .TP
211 .B directio
212 Read the first sector with direct I/O.
213 .TP
214 Default value is \fIreadsector0\fR.
215 .RE
216 .TP
217 .B failback
218 Tell the daemon to manage path group failback, or not to. 0 or
219 .I immediate
220 means immediate failback, values >0 means deferred failback (in
221 seconds).
222 .I manual
223 means no failback. Default value is
224 .I manual
225 .TP
226 .B  rr_min_io
227 The number of IO to route to a path before switching to the next in
228 the same path group. Default is
229 .I 1000
230 .TP
231 .B rr_weight
232 If set to \fIpriorities\fR the multipath configurator will assign
233 path weights as "path prio * rr_min_io". Possible values are
234 .I priorities
235 or
236 .IR uniform .
237 Default is
238 .IR uniform .
239 .TP
240 .B no_path_retry
241 Specify the number of retries until disable queueing, or
242 .I fail
243 for immediate failure (no queueing),
244 .I queue
245 for never stop queueing. Default is 0.
246 .TP
247 .B user_friendly_names
248 If set to 
249 .I yes
250 , using the bindings file
251 .I /etc/multipath/bindings
252 to assign a persistent and unique alias to the multipath, in the form of mpath<n>.
253 If set to 
254 .I no
255 use the WWID as the alias. In either case this be will
256 be overriden by any specific aliases in the \fImultipaths\fR section.
257 Default is
258 .I no
259 .TP
260 .B max_fds
261 Specify the maximum number of file descriptors that can be opened by multipath
262 and multipathd.  This is equivalent to ulimit -n. A value of \fImax\fR will set
263 this to the system limit from /proc/sys/fs/nr_open. If this is not set, the
264 maximum number of open fds is taken from the calling process. It is usually
265 1024. To be safe, this should be set to the maximum number of paths plus 32,
266 if that number is greated than 1024.
267 .TP
268 .B checker_timeout
269 Specify the timeout to user for path checkers that issue scsi commands with an
270 explict timeout, in seconds; default taken from
271 .I /sys/block/sd<x>/device/timeout
272 .TP
273 .B fast_io_fail_tmo
274 Specify the number of seconds the scsi layer will wait after a problem has been
275 detected on a FC remote port before failing IO to devices on that remote port.
276 This should be smaller than dev_loss_tmo. Setting this to
277 .I off
278 will disable the timeout.
279 .TP
280 .B dev_loss_tmo
281 Specify the number of seconds the scsi layer will wait after a problem has
282 been detected on a FC remote port before removing it from the system.
283 .TP
284 .B queue_without_daemon
285 If set to
286 .I no
287 , when multipathd stops, queueing will be turned off for all devices.
288 This is useful for devices that set no_path_retry.  If a machine is
289 shut down while all paths to a device are down, it is possible to hang waiting
290 for IO to return from the device after multipathd has been stopped. Without
291 multipathd running, access to the paths cannot be restored, and the kernel
292 cannot be told to stop queueing IO. Setting queue_without_daemon to
293 .I no
294 , avoids this problem. Default is
295 .I yes
296 .
297 .SH "blacklist section"
298 The
299 .I blacklist
300 section is used to exclude specific device from inclusion in the
301 multipath topology. It is most commonly used to exclude local disks or
302 LUNs for the array controller.
303 .LP
304 The following keywords are recognized:
305 .TP 17
306 .B wwid
307 The \fIWorld Wide Identification\fR of a device.
308 .TP
309 .B devnode
310 Regular expression of the device nodes to be excluded.
311 .TP
312 .B device
313 Subsection for the device description. This subsection recognizes the
314 .I vendor
315 and
316 .I product
317 keywords. For a full description of these keywords please see the
318 .I devices
319 section description.
320 .SH "blacklist_exceptions section"
321 The
322 .I blacklist_exceptions
323 section is used to revert the actions of the
324 .I blacklist
325 section, ie to include specific device in the
326 multipath topology. This allows to selectively include devices which
327 would normally be excluded via the
328 .I blacklist
329 section.
330 .LP
331 The following keywords are recognized:
332 .TP 17
333 .B wwid
334 The \fIWorld Wide Identification\fR of a device.
335 .TP
336 .B devnode
337 Regular expression of the device nodes to be excluded.
338 .TP
339 .B device
340 Subsection for the device description. This subsection recognizes the
341 .I vendor
342 and
343 .I product
344 keywords. For a full description of these keywords please see the
345 .I devices
346 section description.
347 .SH "multipaths section"
348 The only recognized attribute for the
349 .B multipaths
350 section is the
351 .I multipath
352 subsection.
353 .LP
354 The
355 .B multipath
356 subsection recognizes the following attributes:
357 .TP 17
358 .B wwid
359 Index of the container. Mandatory for this subsection.
360 .TP
361 .B alias
362 (Optional) symbolic name for the multipath map.
363 .LP
364 The following attributes are optional; if not set the default values
365 are taken from the
366 .I defaults
367 section:
368 .sp 1
369 .PD .1v
370 .RS
371 .TP 18
372 .B path_grouping_policy
373 .TP
374 .B path_selector
375 .TP
376 .B failback
377 .TP
378 .B no_path_retry
379 .TP
380 .B rr_min_io
381 .RE
382 .PD
383 .LP
384 .SH "devices section"
385 The only recognized attribute for the
386 .B devices
387 section is the
388 .I device
389 subsection.
390 .LP
391 The
392 .I device
393 subsection recognizes the following attributes:
394 .TP 17
395 .B vendor
396 (Mandatory) Vendor identifier
397 .TP
398 .B product
399 (Mandatory) Product identifier
400 .TP
401 .B revision
402 (Optional) Revision identfier
403 .TP
404 .B product_blacklist
405 (Optional) Product strings to blacklist for this vendor
406 .TP
407 .B hardware_handler
408 (Optional) The hardware handler to use for this device type.
409 The following hardware handler are implemented:
410 .RS
411 .TP 12
412 .B 1 emc
413 Hardware handler for EMC storage arrays.
414 .RE
415 .LP
416 The following attributes are optional; if not set the default values
417 are taken from the
418 .I defaults
419 section:
420 .sp 1
421 .PD .1v
422 .RS
423 .TP 18
424 .B path_grouping_policy
425 .TP
426 .B getuid_callout
427 .TP
428 .B path_selector
429 .TP
430 .B path_checker
431 .TP
432 .B features
433 .TP
434 .B prio_callout
435 .TP
436 .B failback
437 .TP
438 .B rr_weight
439 .TP
440 .B no_path_retry
441 .TP
442 .B rr_min_io
443 .TP
444 .B fast_io_fail_tmo
445 .TP
446 .B dev_loss_tmo
447 .RE
448 .PD
449 .LP
450 .SH "KNOWN ISSUES"
451 The usage of
452 .B queue_if_no_path
453 option can lead to
454 .B D state
455 processes being hung and not killable in situations where all the paths to the LUN go offline.
456 It is advisable to use the
457 .B no_path_retry
458 option instead.
459 .SH "SEE ALSO"
460 .BR udev (8),
461 .BR dmsetup (8)
462 .BR multipath (8)
463 .BR multipathd (8)
464 .SH AUTHORS
465 .B multipath
466 was developed by Christophe Varoqui, <christophe.varoqui@opensvc.com> and others.