##
## This is a template multipath-tools configuration file
## Uncomment the lines relevent to your environment
##
#
##
## name  : defaults
## desc  : multipath-tools default settings
##
#defaults {
#	#
#	# 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"  = Loop through every path in the path group,
#	#                              sending the same amount of IO to each.
#	#           "queue-length 0" = Send the next bunch of IO down the path
#	#                              with the least amount of outstanding IO.
#	#           "service-time 0" = Choose the path for the next bunch of IO
#	#                              based on the amount of outstanding IO to
#	#                              the path and its relative throughput.
#	# default : "service-time 0"
#	#
#	path_selector	"service-time 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    : uid_attribute
#	# scope   : multipath & multipathd
#	# desc    : the default udev attribute from which the path
#	# 	    identifier should be generated.
#	# default : ID_SERIAL
#	#
#	uid_attribute	"ID_SERIAL"
#
#	#
#	# name    : getuid_callout
#	# scope   : multipath & multipathd
#	# desc    : the default program and args to callout to obtain a unique 
#	#           path identifier. This parameter is deprecated.
#	#           This parameter is deprecated, superseded by uid_attribute
#	# 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.
#	#           Syntax is "num[ feature_0 feature_1 ...]", where `num' is the
#	#           number of features in the following (possibly empty) list of
#	#           features.
#	# values  : queue_if_no_path = Queue IO if no path is active; consider
#	#                              using the `no_path_retry' keyword instead.
#	#           no_partitions    = Disable automatic partitions generation via
#	#                              kpartx.
#	# default : "0"
#	#
#	features	"0"
#	features	"1 queue_if_no_path"
#	features	"1 no_partitions"
#	features	"2 queue_if_no_path no_partitions"
#
#	#
#	# 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 for the bio-based
#	#           multipath implementation. This parameter is used for
#	#           kernels version up to 2.6.31; newer kernel version
#	#           use the parameter rr_min_io_rq
#	# default : 1000
#	#
#	rr_min_io	1000
#
#	#
#	# name    : rr_min_io_rq
#	# scope   : multipath & multipathd
#	# desc    : the number of IO to route to a path before switching
#	#           to the next in the same path group for the request-based
#	#           multipath implementation. This parameter is used for
#	#           kernels versions later than 2.6.31.
#	# default : 1
#	#
#	rr_min_io_rq	1
#
#	#
#	# 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  : infinity | 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    : wwids_file
#	# scope   : multipath
#	# desc    : The location of the wwids file multipath uses to
#       #           keep track of the created multipath devices.
#	# values  : <full_pathname>
#	# default : "/var/lib/multipath/wwids"
#	wwids_file "/etc/multipath/wwids"
#
#	# name    : reservation_key
#	# scope   : multipath
#	# desc    : Service action reservation key used by mpathpersist.
#	# values  : <key>
#	# default : (null)
#	reservation_key "mpathkey"
#
#}
#	
##
## 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 algorithm to use to check path state
#		# values  : readsector0|tur|emc_clariion|hp_sw|directio|rdac|
#		#           cciss_tur
#		#
#		path_checker		directio
#
#		# as already described
#		path_selector		"service-time 0"
#
#		# as already described
#		features	"0"
#
#		#
#		# 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
#	}
#}
