##
#defaults {
# #
-# # name : multipath_tool
-# # scope : multipathd
-# # desc : the tool in charge of configuring the multipath device maps
-# # default : "/sbin/multipath -v0"
-# #
-# multipath_tool "/sbin/multipath -v0"
-#
-# #
# # name : udev_dir
# # desc : directory where udev creates its device nodes
-# # default : /udev
+# # default : /dev
# #
# udev_dir /dev
#
# #
# # name : polling_interval
# # scope : multipathd
-# # desc : interval between two path checks in seconds
+# # 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 : default_selector
-# # scope : multipath
+# # 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"
# #
-# default_selector "round-robin 0"
+# path_selector "round-robin 0"
#
# #
-# # name : default_path_grouping_policy
-# # scope : multipath
+# # name : path_grouping_policy
+# # scope : multipath & multipathd
# # desc : the default path grouping policy to apply to unspecified
# # multipaths
-# # default : multibus
+# # 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
# #
-# default_path_grouping_policy multibus
+# path_grouping_policy multibus
#
# #
-# # name : default_getuid_callout
-# # scope : multipath
+# # name : getuid_callout
+# # scope : multipath & multipathd
# # desc : the default program and args to callout to obtain a unique
# # path identifier. Absolute path required
-# # default : /sbin/scsi_id -g -u -s
+# # default : /lib/udev/scsi_id --whitelisted --device=/dev/%n
# #
-# default_getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
+# getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
#
# #
-# # name : default_prio_callout
-# # scope : multipath
-# # desc : the default program and args to callout to obtain a path
+# # 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. "none" is a valid value
+# # exploitable prio value for example.
+# # default : (null)
+# #
+# 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)
# #
-# #default_prio_callout "/bin/true"
+# 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
+# # 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
# #
-# r_min_io 100
+# 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.
+# # 0 means immediate failback, values >0 means deffered
+# # failback expressed in seconds.
# # values : manual|immediate|n > 0
-# # default : immediate
+# # 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
+#
# #
-# failback manual
+# # 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 : blacklist
## scope : multipath & multipathd
## desc : list of device names to discard as not multipath candidates
-## default : cciss, fd, hd, md, dm, sr, scd, st, ram, raw, loop
+## 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][[0-9]*]"
-# devnode "cciss!c[0-9]d[0-9]*[p[0-9]*]"
+# 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 : alias
-# # scope : multipath
-# # desc : symbolic name for the multipath
+# # 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
+# # scope : multipath & multipathd
# # desc : path grouping policy to apply to this multipath
# # values : failover, multibus, group_by_serial
-# # default : failover
+# # 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 multibus
+# path_grouping_policy failover
#
# #
-# # name : path_checker
-# # scope : multipathd
-# # desc : path checking alorithm to use to check path state
-# # values : readsector0, tur
-# # default : readsector0
-# #
-# # path_checker readsector0
-#
-# #
# # 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"
-# # default : "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.
+# # 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 : immediate
# #
# 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 controler settings
+## desc : list of per storage controller settings
## overrides default settings (device_maps block)
## overriden by per multipath settings (multipaths block)
##
# #
# # name : device
# # scope : multipath & multipathd
-# # desc : settings for this specific storage controler
+# # desc : settings for this specific storage controller
# #
# device {
# #
#
# #
# # name : path_grouping_policy
-# # scope : multipath
-# # desc : path grouping policy to apply to multipath hosted
-# # by this storage controler
-# # 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
-# # default : failover
+# # 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 multibus
+# path_grouping_policy failover
#
# #
# # name : getuid_callout
-# # scope : multipath
+# # scope : multipath & multipathd
# # desc : the program and args to callout to obtain a unique
# # path identifier. Absolute path required
-# # default : /sbin/scsi_id -g -u -s
# #
-# getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
+# getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
#
# #
-# # name : prio_callout
-# # scope : multipath
-# # desc : the program and args to callout to obtain a path
+# # 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.
-# # "none" is a valid value.
# # default : no callout, all paths equals
# #
-# prio_callout "/sbin/pp_balance_units %d"
+# 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)
# #
-# # name : path_checker
-# # scope : multipathd
+# 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
-# # default : readsector0
+# # values : readsector0|tur|emc_clariion|hp_sw|directio|rdac|
+# # cciss_tur
# #
-# path_checker readsector0
+# 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"
-# # default : "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.
+# # 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 : immediate
# #
-# failback 15
-# }
-# device {
-# vendor "COMPAQ "
-# product "MSA1000 "
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# vendor "COMPAQ "
-# product "MSA1000 VOLUME "
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# vendor "DEC "
-# product "HSG80 "
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# vendor "HP "
-# product "HSV100 "
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# vendor "3PARdata"
-# product "VV "
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# vendor "DDN "
-# product "SAN DataDirector"
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# vendor "FSC "
-# product "CentricStor "
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# vendor "HITACHI "
-# product "DF400 "
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# vendor "HITACHI "
-# product "DF500 "
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# vendor "HITACHI "
-# product "DF600 "
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# vendor "IBM "
-# product "ProFibre 4000R "
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# vendor "IBM "
-# product "3542 "
-# path_grouping_policy group_by_serial
-# path_checker tur
+# 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 "SGI "
-# product "TP9100 "
# vendor "COMPAQ "
# product "MSA1000 "
# path_grouping_policy multibus
# path_checker tur
-# }
-# device {
-# vendor "SGI "
-# product "TP9300 "
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# vendor "SGI "
-# product "TP9400 "
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# vendor "SGI "
-# product "TP9500 "
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# # all paths active but with a switchover latency
-# # LSI controlers
-# vendor "STK "
-# product "OPENstorage D280"
-# path_grouping_policy group_by_serial
-# path_checker tur
-# }
-# device {
-# # assymmetric array
-# vendor "SUN "
-# product "StorEdge 3510 "
-# path_grouping_policy multibus
-# path_checker tur
-# }
-# device {
-# # symmetric array
-# vendor "SUN "
-# product "T4 "
-# path_grouping_policy multibus
-# path_checker tur
+# rr_weight priorities
# }
#}