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