From Fedora Project Wiki

Device-mapper-multipath Components

Device-mapper-multipath have following four components:

   dm-multipath kernel module
       Reroutes I/O and supports failover for paths and path groups. 
   multipath command
       Lists and configures multipath devices. Normally started up with /etc/rc.sysinit in RHEL5/6, systemd in RHEL7, it can also be started up by a udev program whenever a block device is added or it can be run by the initramfs file system. 
   multipathd daemon
       Monitors paths; as paths fail and come back, it may initiate path group switches. Provides for interactive changes to multipath devices. Command service multipathd reload need to execute for any changes to the /etc/multipath.conf file. 
   kpartx command
       Creates device mapper devices for the partitions on a device It is necessary to use this command for partitions with DM-MP. The kpartx is provided in its own package, but the device-mapper-multipath package depends on it. 

Device-mapper-multipath Configuration

Device-mapper-multipath configuration file /etc/multipath.conf have following sections which different useage and prioirity.

   defaults
       Fallback configurations when a item is not configured in other sections 
   blacklist
       blacklist devices by "wwid", "devnode", "device" 
   blacklist_exceptions
       exceptions of devices which alreay match blacklist sections. Please be informed that blacklist_exceptions should follow exactly same type in blacklist section, i.e.,
       blacklist {
          wwid *
       }
       blacklist_exceptions {
          wwid    "IBM.75000000092461.4d00.34"
       }
   multipaths
       Using wwid to match mpath, holding the configuration for this LUN. 
   devices
       Using device vendor and product name to match scsi devices, holding the configuration for this type of LUN. Normally used for pre-defined LUN. 

Generally, multipath configuration is following this order of priority:

   multipaths > devices > defaults

Notes:

   Match-first role for multipath.conf 
       Multipath is using match-first configuration in this section,hence, if you want to change some pre-defined devices configuration, please copy everything out and make change like this:
       devices{
           device {
                   vendor "NETAPP"
                   product "LUN.*"
                   path_grouping_policy group_by_prio
                   getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
                   path_selector "round-robin 0"
                   path_checker directio
                   features "1 queue_if_no_path"
                   hardware_handler "alua" #this is what we modified
                   prio ontap
                   failback immediate
                   rr_weight uniform
                   rr_min_io 128
           }
       }
           For the rest of documents, if not specified, "default configuration" means configurations in defaults sections. 

For detail information about configuration, please check /usr/share/doc/device-mapper-multipath* or check by man multipath.conf.