Multipath configuration for FC-NVMe hosts

Follow FC-NVMe multipath configuration recommendations for successful attachment of Linux hosts to the system.

  1. On SLES15, complete the following steps to disable native multipath:
    1. Create a kernel module configuration file.
      echo "options nvme_core multipath=N" > /etc/modprobe.d/50-nvme_core.conf
    2. Rebuild RAMDISK.
      dracut -f
    3. Restart the host.

    Based on operating system support, further updates are expected.

  2. Ensure that the Emulex auto-connect mechanism is installed, such as by entering rpm -ivh nvmefc-connect-12.0.261.15-1.sles15sp0.x86_64.rpm.
  3. Linux multipath setting.
    devices {
        device {
            vendor "NVME"
            product "IBM     2145"
            path_grouping_policy "multibus"
            path_selector "round-robin 0"
            prio "const"
            path_checker "none"
            failback "immediate"
            no_path_retry "queue"
            rr_weight uniform
            rr_min_io_rq "1"
            fast_io_fail_tmo 15
            dev_loss_tmo 600
        }
    }
    defaults {
        user_friendly_names yes
        path_grouping_policy    group_by_prio
    }
    	
  4. Multiqueue I/O scheduling with blk-mq (in SLES). Edit the /etc/default/grub file and add dm_mod.use_blk_mq=y to the current settings of the GRUB_CMDLINE_LINUX_DEFAULT variable.
    GRUB_CMDLINE_LINUX_DEFAULT="BOOTPTimeout=20 BootpWait=20 biosdevname=0 powersaved=off
     resume=/dev/system/swap splash=silent quiet showopts crashkernel=175M,high dm_mod.use_blk_mq=y"
  5. Apply the new configuration.
    swfc178:~ # grub2-mkconfig -o /boot/grub2/grub.cfg
    Generating grub configuration file ...
    Found theme: /boot/grub2/themes/SLE/theme.txt
    Found linux image: /boot/vmlinuz-4.12.14-25.19-default
    Found initrd image: /boot/initrd-4.12.14-25.19-default
    Found linux image: /boot/vmlinuz-4.12.14-23-default
    Found initrd image: /boot/initrd-4.12.14-23-default
    done
  6. Restart the system. 
Validate that the multiqueue function is enabled in multipath.
    mpathj (eui.88000000000000000050760071b78044) dm-3 NVME,IBM     2145
    size=12G features='2 queue_mode mq' hwhandler='0' wp=rw