# This is a basic configuration file with some examples, for device mapper
# multipath.
# For a complete list of the default configuration values, see
# /usr/share/doc/device-mapper-multipath-0.4.7/multipath.conf.defaults
# For a list of configuration options with descriptions, see
# /usr/share/doc/device-mapper-multipath-0.4.7/multipath.conf.annotated


# Blacklist all devices by default. Remove this to enable multipathing
# on the default devices. 
#blacklist {
#        devnode "*"
#}

## By default, devices with vendor = "IBM" and product = "S/390.*" are
## blacklisted. To enable mulitpathing on these devies, uncomment the
## following lines.
#blacklist_exceptions {
#	device {
#		vendor	"IBM"
#		product	"S/390.*"
#	}
#}

## Use user friendly names, instead of using WWIDs as names.
defaults {
	user_friendly_names no
}

## some vendor specific modifications
devices {
	device {
		vendor "LIO-ORG"
		product "*"
		#path_grouping_policy group_by_prio
		path_grouping_policy multibus
		path_checker tur
		getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
		prio_callout "/sbin/mpath_prio_alua /dev/%n"
		path_selector "round-robin 0"
		hardware_handler "1 alua"
		rr_weight uniform
		rr_min_io 2
		failback immediate
	}

	device {
		vendor "DELL"
		product "MD3000i"
		path_grouping_policy group_by_prio
		getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
		path_checker rdac
		prio_callout "/sbin/mpath_prio_rdac /dev/%n"
		hardware_handler "1 rdac"
		failback immediate
	}
	device { 
		vendor "DELL" 
		product "MD36xxi" 
		path_grouping_policy group_by_prio 
		#prio rdac 
		#polling_interval 5 
		path_checker rdac 
		path_selector "round-robin 0" 
		hardware_handler "1 rdac" 
		failback immediate 
		features "2 pg_init_retries 50" 
		no_path_retry 30 
		rr_min_io 100 
		prio_callout "/sbin/mpath_prio_rdac /dev/%n" 
	} 
	device { 
		vendor "DELL" 
		product "MD36xxf" 
		path_grouping_policy group_by_prio 
		#prio rdac 
		#polling_interval 5 
		path_checker rdac 
		path_selector "round-robin 0" 
		hardware_handler "1 rdac" 
		failback immediate 
		features "2 pg_init_retries 50" 
		no_path_retry 30 
		rr_min_io 100 
		prio_callout "/sbin/mpath_prio_rdac /dev/%n" 
	} 
       device {
		vendor "FUJITSU"
		product "ETERNUS_DXL|ETERNUS_DX400|ETERNUS_DX8000"
		prio_callout "/sbin/mpath_prio_alua %d"
		path_grouping_policy group_by_prio
		path_selector "round-robin 0"
		failback immediate
		path_checker tur
		no_path_retry 10
       }
	device {
		vendor "HITACHI"
		product "DF600F*"
		path_grouping_policy group_by_prio
		prio_callout "/sbin/mpath_prio_hds_modular %d"
		path_checker readsector0
		getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
	}
	device {
		vendor "HITACHI"
		product "OPEN-*"
		path_grouping_policy multibus
		path_checker readsector0
		getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
	}
	device {
		vendor "HP"
		product "HSV300"
		path_grouping_policy group_by_prio
		getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
		path_checker tur
		path_selector "round-robin 0"
		prio_callout "/sbin/mpath_prio_alua /dev/%n"
		rr_weight uniform
		rr_min_io 100
		failback immediate
		no_path_retry 12
	}
	device {
		vendor "HP"
		product "MSA2312fc|MSA2324fc|MSA2312i|MSA2324i"
		path_grouping_policy group_by_prio
		getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
		path_checker tur
		path_selector "round-robin 0"
		prio_callout "/sbin/mpath_prio_alua /dev/%n"
		rr_weight uniform
		failback immediate
		hardware_handler "0"
		no_path_retry 18
		rr_min_io 100
	}
	device {
		vendor "HP"
		product "OPEN-*"
		path_grouping_policy multibus
		getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
		rr_weight uniform
		rr_min_io 100
		path_checker tur
		failback immediate
		no_path_retry 12
	}
	device {
		vendor "DataCore"
		product "SAN*"
		path_checker tur 
		path_grouping_policy failover 
		failback 30
	}
	device {
		vendor "IBM"
		product "1723*"
		prio_callout "/sbin/mpath_prio_rdac /dev/%n"
		path_grouping_policy group_by_prio
		failback immediate
		path_checker rdac
		hardware_handler "1 rdac"
	}
	device {
		vendor "IBM"
		product "1815"
		prio_callout "/sbin/mpath_prio_rdac /dev/%n"
		path_grouping_policy group_by_prio
		failback immediate
		path_checker rdac
		hardware_handler "1 rdac"
	}
	device {
		vendor "IBM"
		product "2145"
		path_grouping_policy group_by_prio
		path_checker tur
		#polling_interval 30
		#selector "round-robin 0"
		getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
		prio_callout "/sbin/mpath_prio_alua /dev/%n"
		rr_min_io 100
		failback immediate
		no_path_retry 5
	}
	device { 
		vendor "NETAPP" 
		product "LUN" 
		path_grouping_policy group_by_prio
		getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
		prio_callout "/sbin/mpath_prio_ontap /dev/%n"
		path_checker directio
		failback immediate
	}
	device {
		vendor "DGC"
		product "*"
		path_grouping_policy group_by_prio
		getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
		prio_callout "/sbin/mpath_prio_emc /dev/%n"
		hardware_handler "1 emc"
		no_path_retry 300
		path_checker emc_clariion
		failback immediate   
	}
	device {              
		vendor                 "HP"
		product                "MSA2[02]12fc|MSA2012i"
		getuid_callout         "/sbin/scsi_id -g -u -s /block/%n"
		hardware_handler       "0"
		path_selector          "round-robin 0"
		path_grouping_policy   multibus
		failback               immediate
		rr_weight              uniform
		no_path_retry          18
		rr_min_io              100
		path_checker           tur
	}
        device {
                vendor                  "Pillar  "
                product                 "Axiom 600       "
                getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
                prio_callout            "/sbin/mpath_prio_alua_pillar %n"
                features                "0"
                hardware_handler        "0"
                path_grouping_policy    group_by_prio
                rr_weight               priorities
                rr_min_io               10000
                failback                immediate
                path_checker            tur
        }
        device {
                vendor                  "Pillar  "
                product                 "Axiom 500       "
                getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
                prio_callout            "/sbin/mpath_prio_alua_pillar %n"
                features                "0"
                hardware_handler        "0"
                path_grouping_policy    group_by_prio
                rr_weight               priorities
                rr_min_io               10000
                failback                immediate
                path_checker            tur
        }
        device {
                vendor                  "Pillar  "
                product                 "Axiom 300       "
                getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
                prio_callout            "/sbin/mpath_prio_alua_pillar %n"
                features                "0"
                hardware_handler        "0"
                path_grouping_policy    group_by_prio
                rr_weight               priorities
                rr_min_io               10000
                failback                immediate
                path_checker            tur
        }

}

##
## Here is an example of how to configure some standard options.
##
#
#defaults {
#	udev_dir		/dev
#	polling_interval 	10
#	selector		"round-robin 0"
#	path_grouping_policy	multibus
#	getuid_callout		"/sbin/scsi_id -g -u -s /block/%n"
#	prio_callout		none
#	path_checker		readsector0
#	rr_min_io		100
#	max_fds			8192
#	rr_weight		priorities
#	failback		immediate
#	no_path_retry		fail
#	user_friendly_names	yes
#}
##
## The wwid line in the following blacklist section is shown as an example
## of how to blacklist devices by wwid.  The 2 devnode lines are the
## compiled in default blacklist. If you want to blacklist entire types
## of devices, such as all scsi devices, you should use a devnode line.
## However, if you want to blacklist specific devices, you should use
## a wwid line.  Since there is no guarantee that a specific device will
## not change names on reboot (from /dev/sda to /dev/sdb for example)
## devnode lines are not recommended for blacklisting specific devices.
##
#blacklist {
#       wwid 26353900f02796769
#	devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
#	devnode "^hd[a-z]"
#}
#multipaths {
#	multipath {
#		wwid			3600508b4000156d700012000000b0000
#		alias			yellow
#		path_grouping_policy	multibus
#		path_checker		readsector0
#		path_selector		"round-robin 0"
#		failback		manual
#		rr_weight		priorities
#		no_path_retry		5
#	}
#	multipath {
#		wwid			1DEC_____321816758474
#		alias			red
#	}
#}
#devices {
#	device {
#		vendor			"COMPAQ  "
#		product			"HSV110 (C)COMPAQ"
#		path_grouping_policy	multibus
#		getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
#		path_checker		readsector0
#		path_selector		"round-robin 0"
#		hardware_handler	"0"
#		failback		15
#		rr_weight		priorities
#		no_path_retry		queue
#	}
#	device {
#		vendor			"COMPAQ  "
#		product			"MSA1000         "
#		path_grouping_policy	multibus
#	}
#}
