aboutsummaryrefslogtreecommitdiffstats
path: root/multipath.conf.annotated
blob: c8e82184238b9f2f645c16700b32610e89e38100 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
##
## This is a template multipath-tools configuration file
## Uncomment the lines relevent to your environment
##
#
##
## name  : defaults
## desc  : multipath-tools default settings
##
#defaults {
#	#
#	# name    : udev_dir
#	# desc    : directory where udev creates its device nodes
#	# default : /dev
#	#
#	udev_dir	/dev
#
#	#
#	# name    : polling_interval
#	# scope   : multipathd
#	# desc    : interval between two path checks in seconds. For
#	#           properly functioning paths, the interval between checks
#	#           will gradually increase to (4 * polling_interval).
#	# values  : n > 0
#	# default : 5
#	#
#	polling_interval 10
#
#	#
#	# name    : path_selector
#	# scope   : multipath & multipathd
#	# desc    : the default path selector algorithm to use
#	#           these algorithms are offered by the kernel multipath target
#	# values  : "round-robin 0"
#	# default : "round-robin 0"
#	#
#	path_selector	"round-robin 0"
#
#	#
#	# name    : path_grouping_policy
#	# scope   : multipath & multipathd
#	# desc    : the default path grouping policy to apply to unspecified
#	#           multipaths
#	# values  : failover           = 1 path per priority group
#	#           multibus           = all valid paths in 1 priority group
#	#           group_by_serial    = 1 priority group per detected serial
#	#                                number
#	#           group_by_prio      = 1 priority group per path priority
#	#                                value
#	#           group_by_node_name = 1 priority group per target node name
#	# default : failover
#	#
#	path_grouping_policy	multibus
#
#	#
#	# name    : getuid_callout
#	# scope   : multipath & multipathd
#	# desc    : the default program and args to callout to obtain a unique 
#	#           path identifier. Absolute path required
#	# default : /lib/udev/scsi_id --whitelisted --device=/dev/%n
#	#
#	getuid_callout	"/lib/udev/scsi_id --whitelisted --device=/dev/%n"
#
#	#
#	# name    : prio
#	# scope   : multipath & multipathd
#	# desc    : the default function to call to obtain a path 
#	#           priority value. The ALUA bits in SPC-3 provide an
#	#           exploitable prio value for example.
#	# default : const
#	#
#	prio	"alua"
#
#	#
#	# name    : prio_args
#	# scope   : multipath & multipathd
#	# desc    : The arguments string passed to the prio function
#	#           Most prio functions do not need arguments. The
#	#	    datacore prioritizer need one.
#	# default : (null)
#	#
#	prio_args	"timeout=1000 preferredsds=foo"
#
#	#
#	# name    : features
#	# scope   : multipath & multipathd
#	# desc    : The default extra features of multipath devices. The
#	#           only existing feature currently is queue_if_no_path, which
#	#           is the same as setting no_path_retry to queue.
#	# values  : "1 queue_if_no_path"
#	# default : (null)
#	#
#	features	"1 queue_if_no_path"
#
#	#
#	# name    : path_checker, checker
#	# scope   : multipath & multipathd
#	# desc    : the default method used to determine the paths' state
#	# values  : readsector0|tur|emc_clariion|hp_sw|directio|rdac|cciss_tur
#	# default : directio
#	#
#	path_checker	directio
#
#	#
#	# name    : rr_min_io
#	# scope   : multipath & multipathd
#	# desc    : the number of IO to route to a path before switching
#	#           to the next in the same path group
#	# default : 1000
#	#
#	rr_min_io	100
#
#	#
#	# name    : flush_on_last_del
#	# scope   : multipathd
#	# desc    : If set to "yes", multipathd will disable queueing when the
#	#           last path to a device has been deleted.
#	# values  : yes|no
#	# default : no
#	#
#	flush_on_last_del       yes
#
#	#
#	# name    : max_fds
#	# scope   : multipathd
#	# desc    : Sets the maximum number of open file descriptors for the
#	#           multipathd process.
#	# values  : max|n > 0
#	# default : None
#	#
#	max_fds		8192
#
#	#
#	# name    : rr_weight
#	# scope   : multipath & multipathd
#	# desc    : if set to priorities the multipath configurator will assign
#	#	    path weights as "path prio * rr_min_io"
#	# values  : priorities|uniform
#	# default : uniform
#	#
#	rr_weight	priorities
#
#	#
#	# name    : failback
#	# scope   : multipathd
#	# desc    : tell the daemon to manage path group failback, or not to.
#	#	    0 means immediate failback, values >0 means deffered
#	#           failback expressed in seconds.
#	# values  : manual|immediate|n > 0
#	# default : manual
#	#
#	failback	immediate
#
#	#
#	# name    : no_path_retry
#	# scope   : multipath & multipathd
#	# desc    : tell the number of retries until disable queueing, or
#	#           "fail" means immediate failure (no queueing),
#	#           "queue" means never stop queueing
#	# values  : queue|fail|n (>0)
#	# default : (null)
#	#
#	no_path_retry  queue
#
#	#
#	# name    : queue_without_daemon
#	# scope   : multipathd
#	# desc    : If set to "no", multipathd will disable queueing for all
#	#           devices when it is shut down.
#	# values  : yes|no
#	# default : yes
#	queue_without_daemon	no
#
#	#
#	# name    : user_friendly_names
#	# scope   : multipath & multipathd
#	# desc    : If set to "yes", using the bindings file
#	#           /etc/multipath/bindings to assign a persistent and
#	#           unique alias to the multipath, in the form of mpath<n>.
#	#           If set to "no" use the WWID as the alias. In either case
#	#           this be will be overriden by any specific aliases in this
#	#           file.
#	# values  : yes|no
#	# default : no
#	user_friendly_names no
#
#	#
#	# name    : mode
#	# scope   : multipath & multipathd
#	# desc    : The mode to use for the multipath device nodes, in octal.
#	# values  : 0000 - 0777
#	# default : determined by the process
#	mode 0644
#
#	#
#	# name    : uid
#	# scope   : multipath & multipathd
#	# desc    : The user id to use for the multipath device nodes. You
#	#           may use either the numeric or symbolic uid
#	# values  : <user_id>
#	# default : determined by the process
#	uid 0
#
#	#
#	# name    : gid
#	# scope   : multipath & multipathd
#	# desc    : The group id to user for the multipath device nodes. You
#	#           may use either the numeric or symbolic gid
#	# values  : <group_id>
#	# default : determined by the process
#	gid disk
#
#	#
#	# name    : checker_timeout
#	# scope   : multipath & multipathd
#	# desc    : The timeout to use for path checkers that issue scsi
#	#           commands with an explicit timeout, in seconds.
#	# values  : n > 0
#	# default : taken from /sys/block/sd<x>/device/timeout
#	checker_timeout 60
#
#	#
#	# name    : fast_io_fail_tmo
#	# scope   : multipath & multipathd
#	# desc    : The number of seconds the scsi layer will wait after a
#	#           problem has been detected on a FC remote port before failing
#	#           IO to devices on that remote port.
#	# values  : off | n >= 0 (smaller than dev_loss_tmo)
#	# default : determined by the OS
#	fast_io_fail_tmo 5
#
#	#
#	# name    : dev_loss_tmo
#	# scope   : multipath & multipathd
#	# desc    : The number of seconds the scsi layer will wait after a
#	#           problem has been detected on a FC remote port before
#	#           removing it from the system.
#	# values  : n > 0
#	# default : determined by the OS
#	dev_loss_tmo 600
#	# name    : bindings_file
#	# scope   : multipath
#	# desc    : The location of the bindings file that is used with
#	#           the user_friendly_names option.
#	# values  : <full_pathname>
#	# default : "/var/lib/multipath/bindings"
#	bindings_file "/etc/multipath_bindings"
#
#}
#	
##
## name    : blacklist
## scope   : multipath & multipathd
## desc    : list of device names to discard as not multipath candidates
##           Devices can be identified by their device node name "devnode",
##           their WWID "wwid", or their vender and product strings
##           "device"
## default : fd, hd, md, dm, sr, scd, st, ram, raw, loop, dcssblk
##
#blacklist {
#       wwid 26353900f02796769
#	devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
#	devnode "^hd[a-z]"
#	devnode "^dcssblk[0-9]*"
#       device {
#               vendor DEC.*
#               product MSA[15]00
#       }
#}
##
## name    : blacklist_exceptions
## scope   : multipath & multipathd
## desc    : list of device names to be treated as multipath candidates
##           even if they are on the blacklist.
##           Note: blacklist exceptions are only valid in the same class.
##           It is not possible to blacklist devices using the devnode keyword
##           and to exclude some devices of them using the wwid keyword.
## default : -
##
#blacklist_exceptions {
#       devnode "^dasd[c-d]+[0-9]*"
#       wwid    "IBM.75000000092461.4d00.34"
#       wwid    "IBM.75000000092461.4d00.35"
#       wwid    "IBM.75000000092461.4d00.36"
#}
#
##
## name    : multipaths
## scope   : multipath & multipathd
## desc    : list of multipaths finest-grained settings
##
#multipaths {
#	#
#	# name  : multipath
#	# scope : multipath & multipathd
#	# desc  : container for settings that apply to one specific multipath
#	#
#	multipath {
#		#
#		# name  : wwid
#		# scope : multipath & multipathd
#		# desc  : index of the container
#		#
#		wwid			3600508b4000156d700012000000b0000
#
#		#
#		# name    : alias
#		# scope   : multipath & multipathd
#		# desc    : symbolic name for the multipath. If you are using
#		#           user_friendly_names, do not set the alias to
#		#           mpath<n>. This may conflict with an automatically
#		#           assigned user friendly name, and give you
#		#           incorrect device node names.
#		#
#		alias			yellow
#
#		#
#		# name    : path_grouping_policy
#		# scope   : multipath & multipathd
#		# desc    : path grouping policy to apply to this multipath
#		# values  : failover, multibus, group_by_serial
#		# values  : failover           = 1 path per priority group
#		#           multibus           = all valid paths in 1 priority
#		#                                group
#		#           group_by_serial    = 1 priority group per detected
#		#                                serial number
#		#           group_by_prio      = 1 priority group per path
#		#                                priority value
#		#           group_by_node_name = 1 priority group per target
#		#                                node name
#		#
#		path_grouping_policy	failover
#
#		#
#		# name    : path_selector
#		# scope   : multipath & multipathd
#		# desc    : the path selector algorithm to use for this mpath
#		#           these algo are offered by the kernel mpath target
#		# values  : "round-robin 0"
#		#
#		path_selector		"round-robin 0"
#
#		#
#		# name    : failback
#		# scope   : multipathd
#		# desc    : tell the daemon to manage path group failback, or
#		#	    not to. 0 means immediate failback, values >0 means
#		#	    deffered failback expressed in seconds.
#		# values  : manual|immediate|n > 0
#		#
#		failback		manual
#
#		#
#		# name    : rr_weight
#		# scope   : multipath & multipathd
#		# desc    : if set to priorities the multipath configurator will
#		#	    assign path weights as "path prio * rr_min_io"
#		# values  : priorities|uniform
#		#
#		rr_weight	priorities
#
#		#
#		# name    : no_path_retry
#		# scope   : multipath & multipathd
#		# desc    : tell the number of retries until disable queueing,
#		#           or "fail" means immediate failure (no queueing),
#		#           "queue" means never stop queueing
#		# values  : queue|fail|n (>0)
#		#
#		no_path_retry  queue
#
#		#
#		# name    : rr_min_io
#		# scope   : multipath & multipathd
#		# desc    : the number of IO to route to a path before switching
#		#           to the next in the same path group
#		#
#		rr_min_io	100
#
#		#
#		# name    : flush_on_last_del
#		# scope   : multipathd
#		# desc    : If set to "yes", multipathd will disable queueing
#		#           when the last path to a device has been deleted.
#		# values  : yes|no
#		# default : no
#		#
#		flush_on_last_del       yes
#
#		#
#		# name    : mode
#		# scope   : multipath & multipathd
#		# desc    : The mode to use for the multipath device nodes, in
#		#           octal.
#		# values  : 0000 - 0777
#		# default : determined by the process
#		mode 0644
#
#		#
#		# name    : uid
#		# scope   : multipath & multipathd
#		# desc    : The user id to use for the multipath device nodes.
#		#           You may use either the numeric or symbolic uid
#		# values  : <user_id>
#		# default : determined by the process
#		uid 0
#
#		#
#		# name    : gid
#		# scope   : multipath & multipathd
#		# desc    : The group id to user for the multipath device nodes.
#		#           You may use either the numeric or symbolic gid
#		# values  : <group_id>
#		# default : determined by the process
#		gid 0
#
#	}
#	multipath {
#		wwid	1DEC_____321816758474
#		alias	red
#		rr_weight		priorities
#	}
#}
#
##
## name  : devices
## scope : multipath & multipathd
## desc  : list of per storage controller settings
##	  overrides default settings (device_maps block)
##         overriden by per multipath settings (multipaths block)
##
#devices {
#	#
#	# name  : device
#	# scope : multipath & multipathd
#	# desc  : settings for this specific storage controller
#	#
#	device {
#		#
#		# name  : vendor, product
#		# scope : multipath & multipathd
#		# desc  : index for the block
#		#
#		vendor			"COMPAQ  "
#		product			"HSV110 (C)COMPAQ"
#
#		#
#		# name    : path_grouping_policy
#		# scope   : multipath & multipathd
#		# desc    : path grouping policy to apply to this multipath
#		# values  : failover, multibus, group_by_serial
#		# values  : failover           = 1 path per priority group
#		#           multibus           = all valid paths in 1 priority
#		#                                group
#		#           group_by_serial    = 1 priority group per detected
#		#                                serial number
#		#           group_by_prio      = 1 priority group per path
#		#                                priority value
#		#           group_by_node_name = 1 priority group per target
#		#                                node name
#		#
#		path_grouping_policy	failover
#
#		#
#		# name    : getuid_callout
#		# scope   : multipath & multipathd
#		# desc    : the program and args to callout to obtain a unique 
#		#           path identifier. Absolute path required
#		#
#		getuid_callout          "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
#
#		#
#		# name    : prio
#		# scope   : multipath & multipathd
#		# desc    : the function to call to obtain a path 
#		#           weight. Weights are summed for each path group to
#		#	    determine the next PG to use case of failure.
#		# default : no callout, all paths equals
#		#
#		prio          "hp_sw"
#
#		#	#
#		# name    : prio_args
#		# scope   : multipath & multipathd
#		# desc    : The arguments string passed to the prio function
#		#           Most prio functions do not need arguments. The
#		#	    datacore prioritizer need one.
#		# default : (null)
#		#
#		prio_args	"timeout=1000 preferredsds=foo"
##
#		# name    : path_checker, checker
#		# scope   : multipathd & multipathd
#		# desc    : path checking alorithm to use to check path state
#		# values  : readsector0|tur|emc_clariion|hp_sw|directio|rdac|
#		#           cciss_tur
#		#
#		path_checker		directio
#
#		#
#		# name    : path_selector
#		# scope   : multipathd & multipathd
#		# desc    : the path selector algorithm to use for this mpath
#		#           these algo are offered by the kernel mpath target
#		# values  : "round-robin 0"
#		#
#		path_selector		"round-robin 0"
#
#		#
#		# name    : features
#		# scope   : multipath & multipathd
#		# desc    : The extra features of multipath devices. The only
#		#           existing feature currently is queue_if_no_path,
#		#           which is the same as setting no_path_retry to queue.
#		# values  : "1 queue_if_no_path"
#		#
#		features	"1 queue_if_no_path"
#
#		#
#		# name    : hardware_handler
#		# scope   : multipath & multipathd
#		# desc    : If set, it specifies a module that will be used to
#		#           perform hardware specific actions when switching
#		#	    path groups or handling IO errors
#		# values  : "0"|"1 emc"
#		# default : "0"
#		#
#		hardware_handler "1 emc"
#
#		#
#		# name    : failback
#		# scope   : multipathd
#		# desc    : tell the daemon to manage path group failback, or
#		#	    not to. 0 means immediate failback, values >0 means
#		#	    deffered failback expressed in seconds.
#		# values  : manual|immediate|n > 0
#		#
#		failback		30
#
#		#
#		# name    : rr_weight
#		# scope   : multipath & multipathd
#		# desc    : if set to priorities the multipath configurator will
#		#           assign path weights as "path prio * rr_min_io"
#		# values  : priorities|uniform
#		#
#		rr_weight	priorities
#
#		#
#		# name    : no_path_retry
#		# scope   : multipath & multipathd
#		# desc    : tell the number of retries until disable queueing,
#		#           or "fail" means immediate failure (no queueing),
#		#           "queue" means never stop queueing
#		# values  : queue|fail|n (>0)
#		#
#		no_path_retry  queue
#
#		#
#		# name    : rr_min_io
#		# scope   : multipath & multipathd
#		# desc    : the number of IO to route to a path before switching
#		#           to the next in the same path group
#		#
#		rr_min_io	100
#
#		#
#		# name    : flush_on_last_del
#		# scope   : multipathd
#		# desc    : If set to "yes", multipathd will disable queueing
#		#           when the last path to a device has been deleted.
#		# values  : yes|no
#		#
#		flush_on_last_del       yes
#
#		#
#		# name    : product_blacklist
#		# scope   : multipath & multipathd
#		# desc    : product strings to blacklist for this vendor
#		#
#		product_blacklist	LUN_Z
#
#		#
#		# name    : fast_io_fail_tmo
#		# scope   : multipath & multipathd
#		# desc    : The number of seconds the scsi layer will wait after
#		#           a problem has been detected on a FC remote port
#		#           before failing IO to devices on that remote port.
#		# values  : off | n >= 0 (smaller than dev_loss_tmo)
#		fast_io_fail_tmo 5
#
#		#
#		# name    : dev_loss_tmo
#		# scope   : multipath & multipathd
#		# desc    : The number of seconds the scsi layer will wait after
#		#           a problem has been detected on a FC remote port
#		#           before removing it from the system.
#		# values  : n > 0
#		dev_loss_tmo 600
#	}
#	device {
#		vendor			"COMPAQ  "
#		product			"MSA1000         "
#		path_grouping_policy	multibus
#		path_checker		tur
#		rr_weight		priorities
#	}
#}