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