Red Hat Training

A Red Hat training course is available for RHEL 8

18.3. 在 NVMe 设备中启用 DM 多路径

这个过程使用 DM 多路径解决方案在连接的 NVMe 设备中启用多路径。

先决条件

步骤

  1. 检查是否禁用了原生 NVMe 多路径:

    # cat /sys/module/nvme_core/parameters/multipath

    这个命令显示以下之一:

    N
    禁用原生 NVMe 多路径。
    Y
    启用原生 NVMe 多路径。
  2. 如果启用了原生 NVMe 多路径,请禁用它:

    1. 在内核命令行中删除 nvme_core.multipath=Y 选项:

      # grubby --update-kernel=ALL --remove-args="nvme_core.multipath=Y"
    2. 在 64 位 IBM Z 构架中更新引导菜单:

      # zipl
    3. 如果存在,从 /etc/modprobe.d/nvme_core.conf 文件中删除 options nvme_core multipath=Y 行。
    4. 重启系统。
  3. 确保启用了 DM 多路径:

    # systemctl enable --now multipathd.service
  4. 在所有可用路径中分发 I/O。在 /etc/multipath.conf 文件中添加以下内容:

    device {
      vendor "NVME"
      product ".*"
      path_grouping_policy    group_by_prio
    }
    注意

    当 DM 多路径管理 NVMe 设备时,/sys/class/nvme-subsys0/iopolicy 配置文件不会影响 I/O 分发。

  5. 重新载入 multipathd 服务以应用配置更改:

    # multipath -r
  6. 备份 initramfs 文件系统:

    # cp /boot/initramfs-$(uname -r).img \
         /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img
  7. 重建 initramfs 文件系统:

    # dracut --force --verbose

验证

  1. 检查您的系统是否识别 NVMe 设备:

    # nvme list
    
    Node             SN                   Model                                    Namespace Usage                      Format           FW Rev
    ---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
    /dev/nvme0n1     a34c4f3a0d6f5cec     Linux                                    1         250.06  GB / 250.06  GB    512   B +  0 B   4.18.0-2
    /dev/nvme0n2     a34c4f3a0d6f5cec     Linux                                    2         250.06  GB / 250.06  GB    512   B +  0 B   4.18.0-2
    /dev/nvme1n1     a34c4f3a0d6f5cec     Linux                                    1         250.06  GB / 250.06  GB    512   B +  0 B   4.18.0-2
    /dev/nvme1n2     a34c4f3a0d6f5cec     Linux                                    2         250.06  GB / 250.06  GB    512   B +  0 B   4.18.0-2
    /dev/nvme2n1     a34c4f3a0d6f5cec     Linux                                    1         250.06  GB / 250.06  GB    512   B +  0 B   4.18.0-2
    /dev/nvme2n2     a34c4f3a0d6f5cec     Linux                                    2         250.06  GB / 250.06  GB    512   B +  0 B   4.18.0-2
    /dev/nvme3n1     a34c4f3a0d6f5cec     Linux                                    1         250.06  GB / 250.06  GB    512   B +  0 B   4.18.0-2
    /dev/nvme3n2     a34c4f3a0d6f5cec     Linux                                    2         250.06  GB / 250.06  GB    512   B +  0 B   4.18.0-2
  2. 列出所有连接的 NVMe 子系统。检查命令报告为 nvme0n1nvme3n2,而不是,例如: nvme0c0c0n1nvme0c3n1

    # nvme list-subsys
    
    nvme-subsys0 - NQN=testnqn
    \
     +- nvme0 fc traddr=nn-0x20000090fadd5979:pn-0x10000090fadd5979 host_traddr=nn-0x20000090fac7e1dd:pn-0x10000090fac7e1dd live
     +- nvme1 fc traddr=nn-0x20000090fadd597a:pn-0x10000090fadd597a host_traddr=nn-0x20000090fac7e1dd:pn-0x10000090fac7e1dd live
     +- nvme2 fc traddr=nn-0x20000090fadd5979:pn-0x10000090fadd5979 host_traddr=nn-0x20000090fac7e1de:pn-0x10000090fac7e1de live
     +- nvme3 fc traddr=nn-0x20000090fadd597a:pn-0x10000090fadd597a host_traddr=nn-0x20000090fac7e1de:pn-0x10000090fac7e1de live
    # multipath -ll
    
    mpathae (uuid.8ef20f70-f7d3-4f67-8d84-1bb16b2bfe03) dm-36 NVME,Linux
    size=233G features='1 queue_if_no_path' hwhandler='0' wp=rw
    `-+- policy='service-time 0' prio=50 status=active
      |- 0:1:1:1  nvme0n1 259:0   active ready running
      |- 1:2:1:1  nvme1n1 259:2   active ready running
      |- 2:3:1:1  nvme2n1 259:4   active ready running
      `- 3:4:1:1  nvme3n1 259:6   active ready running
    
    mpathaf (uuid.44c782b4-4e72-4d9e-bc39-c7be0a409f22) dm-39 NVME,Linux
    size=233G features='1 queue_if_no_path' hwhandler='0' wp=rw
    `-+- policy='service-time 0' prio=50 status=active
      |- 0:1:2:2  nvme0n2 259:1   active ready running
      |- 1:2:2:2  nvme1n2 259:3   active ready running
      |- 2:3:2:2  nvme2n2 259:5   active ready running
      `- 3:4:2:2  nvme3n2 259:7   active ready running