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