At this post, I will add a brief explanation of "how to configure RHEL native multipath(device-mapper-multipath) for EMC storage".
Environment:
- Red Hat Enterprise Linux 6-7
- device-mapper-multipath (DM-Multipath)
- ECM Clariion/VNX/Unity
Resolution:
Multiple LUNs for RHEL 6.0 and later
Step 1: Check installed HBA modules with lspci
#yum install -y pciutils
# lspci |grep -i fibr
07:00.0 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)
0a:00.0 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)
Step 2: Configure grub.conf
Add scsi_mod.max_report_luns and scsi_mod.max_luns to 'kernel' line in /etc/grub.conf and reboot system.
kernel /vmlinuz-2.6.32-573.12.1.el6.x86_64 ro root=/dev/mapper/vgroot-lvroot rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=trq LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vgroot/lvswap SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vgroot/lvroot rd_NO_DM rhgb quiet scsi_mod.max_report_luns=32768 scsi_mod.max_luns=32768
Step 3: Configure multipath.conf file
**Please check EMC Host Connectivity Guide for Linux for multipath configuration on page 194-207. I added a simple configuration sets for RHEL6.x and RHEL7.x . But don't forget to check your RHEL subversion to find out spesific config sets. For example RHEL 6.5 supports ALUA option. So maybe you need to configure multipathd with ALUA options. And also RHEL 7.2 and later has an option "retain_attached_hw_handler" that can recognize PNR and ALUA automatically and does not need changes to the multipath.conf file.
## Use user friendly names, instead of using WWIDs as names. defaults { user_friendly_names yes } blacklist { devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" devnode "^hd[a-z]" devnode "^cciss!c[0-9]d[0-9]*" } devices { device { vendor "DGC" product ".*" product_blacklist "LUNZ" path_grouping_policy group_by_prio getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n" path_checker emc_clariion features "1 queue_if_no_path" hardware_handler "1 emc" prio emc failback immediate rr_weight uniform no_path_retry 60 } }
Multiple LUNs for RHEL 7.0 and later
Step 1: Check installed HBA modules with lspci
#yum install -y pciutils # lspci |grep -i fibr 07:00.0 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02) 0a:00.0 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)
*So I'll follow to define a configuration for QLogic. If you have an Emulex adapter and then check EMC Host Connectivity Guide for Linux.
Step 2: Configure grub.conf
Add scsi_mod.max_report_luns and scsi_mod.max_luns to grub.conf
# cat /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=vgroot/lvroot rhgb quiet scsi_mod.max_report_luns=32768 scsi_mod.max_luns=32768" GRUB_DISABLE_RECOVERY="true"
Step 3: Mkconfig for Grub
#grub2-mkconfig -o /boot/grub2.cfg #dracut -f #reboot
Step 4: Configure multipath.conf file
*Since RHEL7.2, the default stanza parameter retain_attached_hw_handler yes can recognize PNR and ALUA automatically and does not need changes to the multipath.conf file. However, the manual configuration of PNR and ALUA will still work.
defaults { user_friendly_names yes find_multipaths yes } blacklist { } devices { device { vendor "DGC" product ".*" product_blacklist "LUNZ" path_grouping_policy "group_by_prio" path_checker "emc_clariion" features "1 queue_if_no_path" hardware_handler "1 emc" prio "emc" failback immediate rr_weight "uniform" no_path_retry 60 retain_attached_hw_handler yes detect_prio yes } } multipaths { }