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