Red Hat Training

A Red Hat training course is available for RHEL 8

18.2. 네이티브 NVMe 다중 경로 활성화

nvme_core.multipath 옵션의 기본 커널 설정은 N.로 설정되어 있습니다. 즉, 기본 NVMe(Non-volatile Memory Express™) 다중 경로가 비활성화됩니다. 네이티브 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 --args="nvme_core.multipath=Y"
      2. 64비트 IBM Z 아키텍처에서 부팅 메뉴를 업데이트합니다.

        # zipl
      3. 시스템을 재부팅합니다.
    • 커널 모듈 구성 파일 사용:

      1. 다음 콘텐츠를 사용하여 /etc/modprobe.d/nvme_core.conf 구성 파일을 만듭니다.

        options nvme_core multipath=Y
      2. initramfs 파일을 백업합니다.

        # cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img
      3. initramfs 를 다시 빌드합니다.

        # dracut --force --verbose
      4. 시스템을 재부팅합니다.
  3. 선택 사항: 실행 중인 시스템에서 NVMe 장치의 I/O 정책을 변경하여 사용 가능한 모든 경로에서 I/O를 배포합니다.

    # echo "round-robin" > /sys/class/nvme-subsystem/nvme-subsys0/iopolicy
  4. 선택 사항: udev 규칙을 사용하여 I/O 정책을 영구적으로 설정합니다. 다음 콘텐츠를 사용하여 /etc/udev/rules.d/71-nvme-io-policy.rules 파일을 만듭니다.

    ACTION=="add|change", SUBSYSTEM=="nvme-subsystem", ATTR{iopolicy}="round-robin"

검증

  1. 시스템이 NVMe 장치를 인식하는지 확인합니다. 다음 예제에서는 두 개의 NVMe 네임스페이스가 있는 패브릭 스토리지 하위 시스템에 연결된 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
  2. 연결된 모든 NVMe 하위 시스템을 나열합니다.

    # nvme list-subsys
    
    nvme-subsys0 - NQN=testnqn
    \
     +- nvme0 fc traddr=nn-0x20000090fadd597a:pn-0x10000090fadd597a host_traddr=nn-0x20000090fac7e1dd:pn-0x10000090fac7e1dd live
     +- nvme1 fc traddr=nn-0x20000090fadd5979:pn-0x10000090fadd5979 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

    활성 전송 유형을 확인합니다. 예를 들어 nvme0 fc 는 장치가 파이버 채널 전송을 통해 연결되어 있음을 나타내며 nvme tcp 는 장치가 TCP를 통해 연결되어 있음을 나타냅니다.

  3. 커널 옵션을 편집한 경우 커널 명령 줄에서 네이티브 NVMe 멀티패스가 활성화되어 있는지 확인합니다.

    # cat /proc/cmdline
    
    BOOT_IMAGE=[...] nvme_core.multipath=Y
  4. I/O 정책을 변경한 경우 NVMe 장치에서 라운드 로빈 이 활성 I/O 정책인지 확인합니다.

    # cat /sys/class/nvme-subsystem/nvme-subsys0/iopolicy
    
    round-robin