70d15f32fc6d62ab24c15e6c5bc1d32c251e0338
[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 occur.
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 taken to be the value of
59 the udev attribute given by the
60 \fIuid_attribute\fR keyword.
61 .TP
62 .B devices
63 This section defines the device-specific settings.
64 .RE
65 .LP
66 .SH "defaults section"
67 The
68 .B defaults
69 section recognizes the following keywords:
70 .TP 17
71 .B polling_interval
72 interval between two path checks in seconds. For properly functioning paths,
73 the interval between checks will gradually increase to
74 .B max_polling_interval;
75 default is
76 .I 5
77 .TP
78 .B max_polling_interval
79 maximal interval between two path checks in seconds; default is
80 .I 4 * polling_interval
81 .TP
82 .B multipath_dir
83 directory where the dynamic shared objects are stored; default is system
84 dependent, commonly
85 .I /lib/multipath
86 .TP
87 .B verbosity
88 default verbosity. Higher values increase the verbosity level. Valid
89 levels are between 0 and 6; default is
90 .I 2
91 .TP
92 .B reassign_maps
93 enable reassigning of device-mapper maps. With this option multipathd
94 will remap existing device-mapper maps to always point to multipath
95 device, not the underlying block devices. Possible values are
96 \fIyes\fR and \fIno\fR. Default is
97 .I yes
98 .TP
99 .B path_selector
100 The default path selector algorithm to use; they are offered by the
101 kernel multipath target. There are three selector algorithms.
102 .RS
103 .TP 12
104 .B "round-robin 0"
105 Loop through every path in the path group, sending the same amount of IO to
106 each.
107 .TP
108 .B "queue-length 0"
109 Send the next bunch of IO down the path with the least amount of outstanding IO.
110 .TP
111 .B "service-time 0"
112 Choose the path for the next bunch of IO based on the amount of outstanding IO
113 to the path and its relative throughput.
114 .RE
115 .TP
116 .B path_grouping_policy
117 The default path grouping policy to apply to unspecified
118 multipaths. Possible values are
119 .RS
120 .TP 12
121 .B failover
122 1 path per priority group
123 .TP
124 .B multibus
125 all paths in 1 priority group
126 .TP
127 .B group_by_serial
128 1 priority group per serial number
129 .TP
130 .B group_by_prio
131 1 priority group per priority value. Priorities are determined by
132 callout programs specified as a global, per-controller or
133 per-multipath option in the configuration file.
134 .TP
135 .B group_by_node_name
136 1 priority group per target node name. Target node names are fetched
137 in /sys/class/fc_transport/target*/node_name.
138 .TP
139 Default value is \fIfailover\fR.
140 .RE
141 .TP
142 .B uid_attribute
143 The udev attribute providing a unique path
144 identifier. Default value is
145 .I ID_SERIAL
146 .TP
147 .B prio
148 The name of the path priority routine. The specified routine
149 should return a numeric value specifying the relative priority
150 of this path. Higher number have a higher priority.
151 .I "none"
152 is a valid value. Currently the following path priority routines
153 are implemented:
154 .RS
155 .TP 12
156 .B const
157 Return a constant priority of \fI1\fR.
158 .TP
159 .B emc
160 Generate the path priority for EMC arrays.
161 .TP
162 .B alua
163 Generate the path priority based on the SCSI-3 ALUA settings.
164 .TP
165 .B ontap
166 Generate the path priority for NetApp arrays.
167 .TP
168 .B rdac
169 Generate the path priority for LSI/Engenio/NetApp E-Series RDAC controller.
170 .TP
171 .B hp_sw
172 Generate the path priority for Compaq/HP controller in
173 active/standby mode.
174 .TP
175 .B hds
176 Generate the path priority for Hitachi HDS Modular storage arrays.
177 .TP
178 .B random
179 Generate a random priority between 1 and 10.
180 .TP 12
181 .B weightedpath
182 Generate the path priority based on the regular expression and the 
183 priority provided as argument. requires prio_args keyword.
184 .TP
185 Default value is \fBnone\fR.
186 .RE
187 .TP
188 .B prio_args
189 Arguments to pass to to the prio function.  Currently only used with
190 .I weighted, which needs a value of the form
191 .I "<hbtl|devname> <regex1> <prio1> <regex2> <prio2> ..."
192 .I hbtl
193 regex can be of SCSI H:B:T:L format  Ex: 1:0:.:. , *:0:0:.
194 .I devname
195 regex can be of device name format  Ex: sda , sd.e
196 .TP
197 .B features
198 Specify any device-mapper features to be used. Syntax is
199 .I num list
200 where
201 .I num
202 is the number of features in
203 .I list.
204 Possible values for the feature list are
205 .RS
206 .TP 12
207 .B queue_if_no_path
208 Queue IO if no path is active; identical to the
209 .I no_path_retry
210 keyword.
211 .TP
212 .B no_partitions
213 Disable automatic partitions generation via kpartx.
214 .RE
215 .TP
216 .B path_checker
217 The default method used to determine the paths state. Possible values
218 are
219 .RS
220 .TP 12
221 .B readsector0
222 (Deprecated) Read the first sector of the device. This checker is being
223 deprecated, please use \fIdirectio\fR instead
224 .TP
225 .B tur
226 Issue a
227 .I TEST UNIT READY
228 command to the device.
229 .TP
230 .B emc_clariion
231 Query the EMC Clariion specific EVPD page 0xC0 to determine the path
232 state.
233 .TP
234 .B hp_sw
235 Check the path state for HP storage arrays with Active/Standby firmware.
236 .TP
237 .B rdac
238 Check the path state for LSI/Engenio/NetApp E-Series RDAC storage controller.
239 .TP
240 .B directio
241 Read the first sector with direct I/O.
242 .TP
243 Default value is \fIdirectio\fR.
244 .RE
245 .TP
246 .B failback
247 Tell multipathd how to manage path group failback.
248 .RS
249 .TP 12
250 .B immediate
251 Immediately failback to the highest priority pathgroup that contains
252 active paths.
253 .TP
254 .B manual
255 Do not perform automatic failback.
256 .TP
257 .B followover
258 Only perform automatic failback when the first path of a pathgroup
259 becomes active. This keeps a node from automatically failing back when
260 another node requested the failover.
261 .TP
262 .B values > 0
263 deferred failback (time to defer in seconds)
264 .TP
265 Default value is \fImanual\fR.
266 .RE
267 .TP
268 .B  rr_min_io
269 The number of IO to route to a path before switching to the next in
270 the same path group. This is only for BIO based multipath. Default is
271 .I 1000
272 .TP
273 .B rr_min_io_rq
274 The number of IO requests to route to a path before switching to the
275 next in the same path group. This is only for request based multipath.
276 Default is
277 .I 1
278 .TP
279 .B rr_weight
280 If set to \fIpriorities\fR the multipath configurator will assign
281 path weights as "path prio * rr_min_io". Possible values are
282 .I priorities
283 or
284 .IR uniform .
285 Default is
286 .IR uniform .
287 .TP
288 .B no_path_retry
289 Specify the number of retries until disable queueing, or
290 .I fail
291 for immediate failure (no queueing),
292 .I queue
293 for never stop queueing. Default is 0.
294 .TP
295 .B user_friendly_names
296 If set to 
297 .I yes
298 , using the bindings file
299 .I /etc/multipath/bindings
300 to assign a persistent and unique alias to the multipath, in the form of mpath<n>.
301 If set to 
302 .I no
303 use the WWID as the alias. In either case this be will
304 be overridden by any specific aliases in the \fImultipaths\fR section.
305 Default is
306 .I no
307 .TP
308 .B flush_on_last_del
309 If set to
310 .I yes
311 , multipathd will disable queueing when the last path to a device has been
312 deleted. Default is
313 .I no
314 .TP
315 .B max_fds
316 Specify the maximum number of file descriptors that can be opened by multipath
317 and multipathd.  This is equivalent to ulimit \-n. A value of \fImax\fR will set
318 this to the system limit from /proc/sys/fs/nr_open. If this is not set, the
319 maximum number of open fds is taken from the calling process. It is usually
320 1024. To be safe, this should be set to the maximum number of paths plus 32,
321 if that number is greated than 1024.
322 .TP
323 .B checker_timeout
324 Specify the timeout to user for path checkers that issue scsi commands with an
325 explicit timeout, in seconds; default taken from
326 .I /sys/block/sd<x>/device/timeout
327 .TP
328 .B fast_io_fail_tmo
329 Specify the number of seconds the scsi layer will wait after a problem has been
330 detected on a FC remote port before failing IO to devices on that remote port.
331 This should be smaller than dev_loss_tmo. Setting this to
332 .I off
333 will disable the timeout.
334 .TP
335 .B dev_loss_tmo
336 Specify the number of seconds the scsi layer will wait after a problem has
337 been detected on a FC remote port before removing it from the system. This
338 can be set to "infinity" which sets it to the max value of 2147483647
339 seconds, or 68 years. It will be automatically adjusted to the overall
340 retry interval
341 \fIno_path_retry\fR * \fIpolling_interval\fR
342 if a number of retries is given with \fIno_path_retry\fR and the
343 overall retry interval is longer than the specified \fIdev_loss_tmo\fR value.
344 The linux kernel will cap this value to \fI300\fR if \fBfast_io_fail_tmo\fR
345 is not set.
346 .TP
347 .B queue_without_daemon
348 If set to
349 .I no
350 , when multipathd stops, queueing will be turned off for all devices.
351 This is useful for devices that set no_path_retry.  If a machine is
352 shut down while all paths to a device are down, it is possible to hang waiting
353 for IO to return from the device after multipathd has been stopped. Without
354 multipathd running, access to the paths cannot be restored, and the kernel
355 cannot be told to stop queueing IO. Setting queue_without_daemon to
356 .I no
357 , avoids this problem. Default is
358 .I yes
359 .TP
360 .B bindings_file
361 The full pathname of the binding file to be used when the user_friendly_names option is set. Defaults to
362 .I /etc/multipath/bindings
363 .TP
364 .B wwids_file
365 The full pathname of the wwids file, which is used by multipath to keep track
366 of the wwids for LUNs it has created multipath devices on in the past.
367 Defaults to
368 .I /etc/multipath/wwids
369 .TP
370 .B log_checker_err
371 If set to
372 .I once
373 , multipathd logs the first path checker error at logging level 2. Any later
374 errors are logged at level 3 until the device is restored. If set to
375 .I always
376 , multipathd always logs the path checker error at logging level 2. Default is
377 .I always
378 .TP
379 .B reservation_key
380 This is the service action reservation key used by mpathpersist.  It must be
381 set for all multipath devices using persistent reservations, and it must be
382 the same as the RESERVATION KEY field of the PERSISTENT RESERVE OUT parameter
383 list which contains an 8-byte value provided by the application client to the
384 device server to identify the I_T nexus. It is unset by default.
385 .TP
386 .B retain_attached_hw_handler
387 If set to
388 .I yes
389 and the scsi layer has already attached a hardware_handler to the device,
390 multipath will not force the device to use the hardware_handler specified by
391 mutipath.conf. If the scsi layer has not attached a hardware handler,
392 multipath will continue to use its configured hardware handler. Default is
393 .I no
394 .TP
395 .B detect_prio
396 If set to
397 .I yes
398 , multipath will try to detect if the device supports ALUA. If so, the device
399 will automatically use the
400 .I alua
401 prioritizer. If not, the prioritizer will be selected as usual. Default is
402 .I no
403 .
404 .SH "blacklist section"
405 The
406 .I blacklist
407 section is used to exclude specific device from inclusion in the
408 multipath topology. It is most commonly used to exclude local disks or
409 LUNs for the array controller.
410 .LP
411 The following keywords are recognized:
412 .TP 17
413 .B wwid
414 The \fIWorld Wide Identification\fR of a device.
415 .TP
416 .B devnode
417 Regular expression of the device nodes to be excluded.
418 .TP
419 .B device
420 Subsection for the device description. This subsection recognizes the
421 .I vendor
422 and
423 .I product
424 keywords. For a full description of these keywords please see the
425 .I devices
426 section description.
427 .SH "blacklist_exceptions section"
428 The
429 .I blacklist_exceptions
430 section is used to revert the actions of the
431 .I blacklist
432 section, ie to include specific device in the
433 multipath topology. This allows one to selectively include devices which
434 would normally be excluded via the
435 .I blacklist
436 section.
437 .LP
438 The following keywords are recognized:
439 .TP 17
440 .B wwid
441 The \fIWorld Wide Identification\fR of a device.
442 .TP
443 .B devnode
444 Regular expression of the device nodes to be excluded.
445 .TP
446 .B device
447 Subsection for the device description. This subsection recognizes the
448 .I vendor
449 and
450 .I product
451 keywords. For a full description of these keywords please see the
452 .I devices
453 section description.
454 .SH "multipaths section"
455 The only recognized attribute for the
456 .B multipaths
457 section is the
458 .I multipath
459 subsection.
460 .LP
461 The
462 .B multipath
463 subsection recognizes the following attributes:
464 .TP 17
465 .B wwid
466 Index of the container. Mandatory for this subsection.
467 .TP
468 .B alias
469 (Optional) symbolic name for the multipath map.
470 .LP
471 The following attributes are optional; if not set the default values
472 are taken from the
473 .I defaults
474 or
475 .I devices
476 section:
477 .sp 1
478 .PD .1v
479 .RS
480 .TP 18
481 .B path_grouping_policy
482 .TP
483 .B path_selector
484 .TP
485 .B prio
486 .TP
487 .B prio_args
488 .TP
489 .B failback
490 .TP
491 .B rr_weight
492 .TP
493 .B flush_on_last_del
494 .TP
495 .B no_path_retry
496 .TP
497 .B rr_min_io
498 .TP
499 .B rr_min_io_rq
500 .TP
501 .B features
502 .TP
503 .B reservation_key
504 .RE
505 .PD
506 .LP
507 .SH "devices section"
508 The only recognized attribute for the
509 .B devices
510 section is the
511 .I device
512 subsection.
513 .LP
514 The
515 .I device
516 subsection recognizes the following attributes:
517 .TP 17
518 .B vendor
519 (Mandatory) Vendor identifier
520 .TP
521 .B product
522 (Mandatory) Product identifier
523 .TP
524 .B revision
525 (Optional) Revision identfier
526 .TP
527 .B product_blacklist
528 (Optional) Product strings to blacklist for this vendor
529 .TP
530 .B alias_prefix
531 (Optional) The user_friendly_names prefix to use for this
532 device type, instead of the default "mpath"
533 .TP
534 .B hardware_handler
535 (Optional) The hardware handler to use for this device type.
536 The following hardware handler are implemented:
537 .RS
538 .TP 12
539 .B 1 emc
540 Hardware handler for EMC storage arrays.
541 .TP
542 .B 1 rdac
543 Hardware handler for LSI/Engenio/NetApp E-Series RDAC storage controller.
544 .TP
545 .B 1 hp_sw
546 Hardware handler for Compaq/HP storage arrays in active/standby
547 mode.
548 .TP
549 .B 1 alua
550 Hardware handler for SCSI-3 ALUA compatible arrays.
551 .RE
552 .LP
553 The following attributes are optional; if not set the default values
554 are taken from the
555 .I defaults
556 section:
557 .sp 1
558 .PD .1v
559 .RS
560 .TP 18
561 .B path_grouping_policy
562 .TP
563 .B uid_attribute
564 .TP
565 .B path_selector
566 .TP
567 .B path_checker
568 .TP
569 .B prio
570 .TP
571 .B prio_args
572 .TP
573 .B features
574 .TP
575 .B failback
576 .TP
577 .B rr_weight
578 .TP
579 .B no_path_retry
580 .TP
581 .B rr_min_io
582 .TP
583 .B rr_min_io_rq
584 .TP
585 .B fast_io_fail_tmo
586 .TP
587 .B dev_loss_tmo
588 .TP
589 .B flush_on_last_del
590 .TP
591 .B retain_attached_hw_handler
592 .TP
593 .B detect_prio
594 .RE
595 .PD
596 .LP
597 .SH "KNOWN ISSUES"
598 The usage of
599 .B queue_if_no_path
600 option can lead to
601 .B D state
602 processes being hung and not killable in situations where all the paths to the LUN go offline.
603 It is advisable to use the
604 .B no_path_retry
605 option instead.
606 .P
607 The use of
608 .B queue_if_no_path
609 or
610 .B no_path_retry
611 might lead to a deadlock if the
612 .B dev_loss_tmo
613 setting results in a device being removed while I/O is still queued.
614 The multipath daemon will update the
615 .B dev_loss_tmo
616 setting accordingly to avoid this deadlock. Hence if both values are
617 specified the order of precedence is
618 .I no_path_retry, queue_if_no_path, dev_loss_tmo
619
620 .SH "SEE ALSO"
621 .BR udev (8),
622 .BR dmsetup (8)
623 .BR multipath (8)
624 .BR multipathd (8)
625 .SH AUTHORS
626 .B multipath
627 was developed by Christophe Varoqui, <christophe.varoqui@opensvc.com> and others.