FC-NVMe 主机的多路径配置

请遵循 FC-NVMe 多路径配置建议,以将 Linux 主机成功连接到系统。

主机可配置为使用传统设备映射器或本机 NVMe 多路径。对于 SCSI 设备,在任何情况下,主机继续使用设备映射器。仅在 SLES12SP4 和 SLES15 上支持本机 NVMe 多路径。在 Red Hat Enterprise Linux 上不支持本机 NVME 多路径。本机 NVMe 多路径支持 NVMe ANA(NVMe 等同于 SCSI ALUA),而设备映射器当前不支持 ANA。在本机 NVMe 多路径中,每个名称空间将显示为一个实例。

开启或关闭本机 NVMe 多路径

在 SLES15 上,缺省情况下开启本机 NVMe 多路径。在 SLES12SP4 上,缺省情况下不开启本机 NVMe 多路径。

要检查本机 NVMe 多路径是否开启,请输入:
# systool -m nvme_core -A multipath
Module = "nvme_core"

    multipath           = "Y"
如果 multipath = "N",并且想要开启,那么输入:

echo "options nvme_core multipath=Y" > /etc/modprobe.d/50-nvme_core.conf
dracut -f
reboot
如果选择使用设备映射器,请输入:
echo "options nvme_core multipath=N" > /etc/modprobe.d/50-nvme_core.conf
dracut -f
reboot

设备映射器或本机 NVMe 多路径配置

提供两个框架选项以配置多路径配置文件:设备映射器或本机 NVMe 多路径。

要配置设备映射器,请完成以下步骤:
  1. 编辑 /etc/multipath.conf 文件以包含以下代码:
    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
    }
  2. 运行以下命令以验证多路径守护程序是否正在运行:
    systemctl enable multipathd.service
    systemctl start multipathd.service
    
    # ps -ef | grep -v grep | grep multipath
    root      1616     1  0 Nov21 ?        00:01:14 /sbin/multipathd -d -s
    
    在针对 SLES12SP4 启用多路径服务后,使用多路径支持重新构建 initrd
    dracut --force --add multipath
  3. 运行以下命令以应用配置:
    multipath -F
    multipath
    multipath -ll
如果使用本机 NVMe 多路径,请将以下代码添加到多路径配置文件:
blacklist {
    device {
        vendor "NVME"
        product "IBM\s+2145"
    }
}

设备映射器性能

测试表明,在如以下步骤中所述使用多队列 I/O 调度时,性能更佳。
注: 在应用这些步骤之前,请联系 SUSE 代表以验证是否支持此选项。
要改进性能,请应用带 blk-mq 的多队列 I/O 调度(在 SLES 中):
  1. 编辑 /etc/default/grub 文件及以下文本:
    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 
    scsi_mod.use_blk_mq=1 transparent_hugepage=never"
  2. 应用新配置:
    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
    
  3. 重新引导。
  4. 验证是否在多路径中启用了多队列功能:
    mpatho (eui.880000000000000b0050760071c60044) dm-3 NVME,IBM     2145
    size=1.5G features='3 queue_if_no_path queue_mode mq' hwhandler='0' wp=rw