12.3. NVMe 장치에서 DM Multipath 활성화

이 절차에서는 DM Multipath 솔루션을 사용하여 연결된 NVMe 장치에서 멀티패스를 활성화합니다.

사전 요구 사항

  • 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/n vme_core.conf 파일에서 nvme_core=Y 줄이 있는 경우 해당 옵션을 제거합니다.
    4. 시스템을 재부팅합니다.
  3. DM Multipath가 활성화되어 있는지 확인합니다.

    # systemctl enable --now multipathd.service
  4. 사용 가능한 모든 경로에 I/O를 분산합니다. /etc/multipath.conf 파일에 다음 내용을 추가합니다.

    device {
      vendor "NVME"
      product ".*"
      path_grouping_policy    group_by_prio
    }
    참고

    DM Multipath가 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 하위 시스템을 모두 나열합니다. 명령이 nvme0n1 에서 nvme3n2 를 통해 보고하고 있는지 확인합니다(예: nvme0c0n1 에서 nvme0c3n 1) :

    # 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