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