Oracle Linux 8.10 with ONTAP용 NVMe-oF 호스트 구성
NetApp SAN 호스트 구성은 ANA(Asymmetric Namespace Access)를 통해 NVMe-oF(NVMe over Fabrics) 프로토콜을 지원합니다. NVMe-oF 환경에서 ANA는 iSCSI 및 FCP 환경에서 ALUA(Asymmetric Logical Unit Access) 다중 경로와 같습니다. ANA는 커널 내 NVMe 다중 경로 기능을 사용하여 구현됩니다.
Oracle Linux 8.10용 NVMe-oF 호스트 구성에 다음과 같은 지원 및 기능을 사용할 수 있습니다. 또한 구성 프로세스를 시작하기 전에 알려진 제한 사항을 검토해야 합니다.
-
사용 가능한 지원:
-
NVMe over TCP(NVMe/TCP) 및 NVMe over Fibre Channel(NVMe/FC)을 지원합니다. 이 경우 네이티브 NVMe-CLI 패키지의 NetApp 플러그인에 NVMe/FC 및 NVMe/TCP 네임스페이스 모두에 대한 ONTAP 정보를 표시할 수 있습니다.
호스트 구성에 따라 NNNMe/FC, NVMe/TCP 또는 두 프로토콜 모두 구성합니다.
-
동일한 호스트에서 NVMe 및 SCSI 트래픽을 동시에 실행 예를 들어, SCSI LUN에 대해 SCSI 장치에 대해 dm-multipath를 구성하고 NVMe multipath를 사용하여 호스트에 NVMe-oF 네임스페이스 장치를 구성할 수
mpath
있습니다.
지원되는 구성에 대한 자세한 내용은 를 참조하십시오 "NetApp 상호 운용성 매트릭스 툴".
-
-
사용 가능한 기능:
-
Oracle Linux 8.10에서는 커널 내 NVMe 다중 경로 기능이 NVMe 네임스페이스에 대해 기본적으로 사용하도록 설정되어 있습니다. 명시적 설정은 구성할 필요가 없습니다.
-
-
알려진 제한 사항:
-
현재 NVMe-oF 프로토콜을 사용한 SAN 부팅은 지원되지 않습니다.
-
NetApp sanlun 호스트 유틸리티 지원은 Oracle Linux 8.10 호스트의 NVMe-oF에 대해 사용할 수 없습니다. 대신 모든 NVMe-oF 전송에 대해 기본 패키지에 포함된 NetApp 플러그인을 사용할 수
nvme-cli
있습니다.
-
소프트웨어 버전을 확인합니다
Oracle Linux 8.10에 대해 지원되는 최소 소프트웨어 버전을 검증합니다.
-
서버에 Oracle Linux 8.10 GA를 설치합니다. 설치가 완료되면 지정된 Oracle Linux 8.10 GA 커널을 실행하고 있는지 확인합니다.
uname -r
5.15.0-206.153.7.1.el8uek.x86_64
-
"NVMe-CLI" 패키지를 설치합니다.
rpm -qa|grep nvme-cli
nvme-cli-1.16-9.el8.x86_64
-
Oracle Linux 8.10 호스트에서
hostnqn
/etc/nvme/hostnqn
다음 위치에서 문자열을 확인합니다.cat /etc/nvme/hostnqn
nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a
-
Oracle Linux 8.10 호스트에서
hostnqn
ONTAP 어레이의 해당 하위 시스템과 일치하는지 확인합니다hostnqn
.vserver nvme subsystem host show -vserver vs_coexistence_LPE36002
예제 보기
Vserver Subsystem Priority Host NQN ------- --------- -------- ------------------------------------------------ vs_coexistence_LPE36002 nvme regular nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a nvme1 regular nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a nvme2 regular nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a nvme3 regular nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a 4 entries were displayed.
문자열이 일치하지 않으면 hostnqn
명령을hostnqn
사용하여vserver modify
해당 ONTAP 배열 하위 시스템의 문자열을/etc/nvme/hostnqn
호스트의 문자열과 일치하도록hostnqn
업데이트합니다. -
동일한 호스트에서 NVMe와 SCSI가 공존하는 트래픽을 모두 실행하려는 경우 NetApp에서는 ONTAP 네임스페이스 및 ONTAP LUN에 대해 커널 내 NVMe 다중 경로를 각각 사용하는 것이 좋습니다
dm-multipath
. 이렇게 하면 ONTAP 네임스페이스가 에서 제외되고dm-multipath
ONTAP 네임스페이스 디바이스가 생성되는 것을 방지할 수dm-multipath
있습니다.-
enable_foreign`파일에 설정을 `/etc/multipath.conf
추가합니다.# cat /etc/multipath.conf defaults { enable_foreign NONE }
-
데몬을 다시
multipathd
시작하여 새 설정을 적용합니다.systemctl restart multipathd
-
NVMe/FC 구성
Broadcom/Emulex FC 또는 Marvell/Qlogic FC 어댑터를 사용하여 NVMe/FC를 구성할 수 있습니다. Broadcom 어댑터로 구성된 NVMe/FC의 경우 1MB 크기의 I/O 요청을 활성화할 수 있습니다.
Broadcom/Emulex 어댑터용 NVMe/FC를 구성합니다.
-
지원되는 어댑터 모델을 사용하고 있는지 확인합니다.
-
cat /sys/class/scsi_host/host*/modelname
LPe36002-M64 LPe36002-M64
-
cat /sys/class/scsi_host/host*/modeldesc
Emulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter Emulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter
-
-
권장 Broadcom을 사용하고 있는지 확인합니다
lpfc
펌웨어 및 받은 편지함 드라이버:-
cat /sys/class/scsi_host/host*/fwrev
14.4.317.10, sli-4:6:d 14.4.317.10, sli-4:6:d
-
cat /sys/module/lpfc/version
0:14.2.0.13
지원되는 어댑터 드라이버 및 펌웨어 버전의 현재 목록은 를 참조하십시오"NetApp 상호 운용성 매트릭스 툴".
-
-
가 "3"으로 설정되어 있는지
lpfc_enable_fc4_type
확인합니다.cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type
-
이니시에이터 포트가 가동 및 실행 중이며 타겟 LIF를 볼 수 있는지 확인합니다.
-
cat /sys/class/fc_host/host*/port_name
0x100000109bf0449c 0x100000109bf0449d
-
cat /sys/class/fc_host/host*/port_state
Online Online
-
cat /sys/class/scsi_host/host*/nvme_info
예제 보기
NVME Initiator Enabled XRI Dist lpfc0 Total 6144 IO 5894 ELS 250 NVME LPORT lpfc0 WWPN x100000109bf0449c WWNN x200000109bf0449c DID x061500 ONLINE NVME RPORT WWPN x200bd039eab31e9c WWNN x2005d039eab31e9c DID x020e06 TARGET DISCSRVC ONLINE NVME RPORT WWPN x2006d039eab31e9c WWNN x2005d039eab31e9c DID x020a0a TARGET DISCSRVC ONLINE NVME Statistics LS: Xmt 000000002c Cmpl 000000002c Abort 00000000 LS XMIT: Err 00000000 CMPL: xb 00000000 Err 00000000 Total FCP Cmpl 000000000008ffe8 Issue 000000000008ffb9 OutIO ffffffffffffffd1 abort 0000000c noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000 FCP CMPL: xb 0000000c Err 0000000c NVME Initiator Enabled XRI Dist lpfc1 Total 6144 IO 5894 ELS 250 NVME LPORT lpfc1 WWPN x100000109bf0449d WWNN x200000109bf0449d DID x062d00 ONLINE NVME RPORT WWPN x201fd039eab31e9c WWNN x2005d039eab31e9c DID x02090a TARGET DISCSRVC ONLINE NVME RPORT WWPN x200cd039eab31e9c WWNN x2005d039eab31e9c DID x020d06 TARGET DISCSRVC ONLINE NVME Statistics LS: Xmt 0000000041 Cmpl 0000000041 Abort 00000000 LS XMIT: Err 00000000 CMPL: xb 00000000 Err 00000000 Total FCP Cmpl 00000000000936bf Issue 000000000009369a OutIO ffffffffffffffdb abort 00000016 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000 FCP CMPL: xb 00000016 Err 00000016
-
Marvell/QLogic 어댑터용 NVMe/FC를 구성합니다.
Oracle Linux 10 GA 커널에 포함된 기본 받은 편지함 qla2xxx 드라이버에는 최신 수정 사항이 있습니다. 이러한 수정 사항은 ONTAP 지원에 필수적입니다. |
-
지원되는 어댑터 드라이버 및 펌웨어 버전을 실행하고 있는지 확인합니다.
cat /sys/class/fc_host/host*/symbolic_name
QLE2772 FW:v9.15.00 DVR:v10.02.09.100-k QLE2772 FW:v9.15.00 DVR:v10.02.09.100-k
-
가 "1"로 설정되어 있는지
ql2xnvmeenable
확인합니다. 그러면 Marvell 어댑터가 NVMe/FC Initiator로 작동할 수 있습니다.cat /sys/module/qla2xxx/parameters/ql2xnvmeenable
1MB I/O 크기 활성화(옵션)
ONTAP는 컨트롤러 식별 데이터에서 MDTS(MAX Data 전송 크기)를 8로 보고합니다. 이는 최대 I/O 요청 크기가 1MB까지 될 수 있음을 의미합니다. Broadcom NVMe/FC 호스트에 대해 1MB 크기의 I/O 요청을 발행하려면 매개 변수 값을 lpfc_sg_seg_cnt
기본값인 64에서 256으로 늘려야 lpfc
합니다.
이 단계는 Qlogic NVMe/FC 호스트에는 적용되지 않습니다. |
-
`lpfc_sg_seg_cnt`매개변수를 256으로 설정합니다.
cat /etc/modprobe.d/lpfc.conf
options lpfc lpfc_sg_seg_cnt=256
-
`dracut -f`명령을 실행하고 호스트를 재부팅합니다.
-
의 예상 값이 256인지 확인합니다
lpfc_sg_seg_cnt
.cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt
NVMe/TCP를 구성합니다
NVMe/TCP 프로토콜이 작업을 지원하지 auto-connect
않습니다. 대신 NVMe/TCP 또는 connect-all
작업을 수동으로 수행하여 NVMe/TCP 하위 시스템과 네임스페이스를 검색할 수 connect
있습니다.
-
이니시에이터 포트가 지원되는 NVMe/TCP LIF에서 검색 로그 페이지 데이터를 가져올 수 있는지 확인합니다.
nvme discover -t tcp -w <host-traddr> -a <traddr>
예제 보기
# nvme discover -t tcp -w 192.168.6.1 -a 192.168.6.24 Discovery Log Number of Records 20, Generation counter 45 =====Discovery Log Entry 0====== trtype: tcp adrfam: ipv4 subtype: unrecognized treq: not specified portid: 6 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:discovery traddr: 192.168.6.25 sectype: none =====Discovery Log Entry 1====== trtype: tcp adrfam: ipv4 subtype: unrecognized treq: not specified portid: 1 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:discovery traddr: 192.168.5.24 sectype: none =====Discovery Log Entry 2====== trtype: tcp adrfam: ipv4 subtype: unrecognized treq: not specified portid: 4 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:discovery traddr: 192.168.6.24 sectype: none =====Discovery Log Entry 3====== trtype: tcp adrfam: ipv4 subtype: unrecognized treq: not specified portid: 2 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:discovery traddr: 192.168.5.25 sectype: none =====Discovery Log Entry 4====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 6 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:subsystem.nvme_tcp_4 traddr: 192.168.6.25 sectype: none =====Discovery Log Entry 5====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 1 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:subsystem.nvme_tcp_4 ..........
-
다른 모든 NVMe/TCP 이니시에이터-타겟 LIF 조합이 검색 로그 페이지 데이터를 성공적으로 가져올 수 있는지 확인합니다.
nvme discover -t tcp -w <host-traddr> -a <traddr>
예제 보기
# nvme discover -t tcp -w 192.168.6.1 -a 192.168.6.24 # nvme discover -t tcp -w 192.168.6.1 -a 192.168.6.25 # nvme discover -t tcp -w 192.168.5.1 -a 192.168.5.24 # nvme discover -t tcp -w 192.168.5.1 -a 192.168.5.25
-
노드에서 지원되는 모든 NVMe/TCP 이니시에이터-타겟 LIF에서 명령을 실행합니다
nvme connect-all
.nvme connect-all -t tcp -w <host-traddr> -a <traddr> -l <ctrl_loss_timeout_in_seconds>
예제 보기
# nvme connect-all -t tcp -w 192.168.5.1 -a 192.168.5.24 -l -1 # nvme connect-all -t tcp -w 192.168.5.1 -a 192.168.5.25 -l -1 # nvme connect-all -t tcp -w 192.168.6.1 -a 192.168.6.24 -l -1 # nvme connect-all -t tcp -w 192.168.6.1 -a 192.168.6.25 -l -1
NetApp은 경로가 손실되는 경우 NVMe/TCP 이니시에이터가 무기한 재연결을 시도하도록 옵션을 "-1"으로 설정하는 것이 좋습니다 ctrl-loss-tmo
.
NVMe-oF를 검증합니다
ONTAP LUN에 대한 올바른 작업을 지원하려면 커널 내 NVMe 다중 경로 상태, ANA 상태 및 ONTAP 네임스페이스가 NVMe-oF 구성에 적합한지 확인하십시오.
-
커널 내 NVMe 다중 경로가 활성화되었는지 확인:
cat /sys/module/nvme_core/parameters/multipath
Y
-
각 ONTAP 네임스페이스에 대한 NVMe-oF 설정(예: "NetApp ONTAP Controller"로 설정된 모델 및 "round-robin"으로 설정된 로드 밸런싱 옵션)이 호스트에 올바르게 표시되는지 확인합니다.
-
cat /sys/class/nvme-subsystem/nvme-subsys*/model
NetApp ONTAP Controller NetApp ONTAP Controller
-
cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy
round-robin round-robin
-
-
호스트에서 네임스페이스가 생성되고 올바르게 검색되는지 확인합니다.
nvme list
예제 보기
Node SN Model --------------------------------------------------------- /dev/nvme0n1 814vWBNRwf9HAAAAAAAB NetApp ONTAP Controller /dev/nvme0n2 814vWBNRwf9HAAAAAAAB NetApp ONTAP Controller /dev/nvme0n3 814vWBNRwf9HAAAAAAAB NetApp ONTAP Controller Namespace Usage Format FW Rev ----------------------------------------------------------- 1 85.90 GB / 85.90 GB 4 KiB + 0 B FFFFFFFF 2 85.90 GB / 85.90 GB 24 KiB + 0 B FFFFFFFF 3 85.90 GB / 85.90 GB 4 KiB + 0 B FFFFFFFF
-
각 경로의 컨트롤러 상태가 라이브이고 올바른 ANA 상태인지 확인합니다.
NVMe/FCnvme list-subsys /dev/nvme0n1
예제 보기
nvme-subsys0 - NQN=nqn.1992- 08.com.netapp: 4b4d82566aab11ef9ab8d039eab31e9d:subsystem.nvme\ +- nvme1 fc traddr=nn-0x2038d039eab31e9c:pn-0x203ad039eab31e9c host_traddr=nn-0x200034800d756a89:pn-0x210034800d756a89 live optimized +- nvme2 fc traddr=nn-0x2038d039eab31e9c:pn-0x203cd039eab31e9c host_traddr=nn-0x200034800d756a88:pn-0x210034800d756a88 live optimized +- nvme3 fc traddr=nn-0x2038d039eab31e9c:pn-0x203ed039eab31e9c host_traddr=nn-0x200034800d756a89:pn-0x210034800d756a89 live non-optimized +- nvme7 fc traddr=nn-0x2038d039eab31e9c:pn-0x2039d039eab31e9c host_traddr=nn-0x200034800d756a88:pn-0x210034800d756a88 live non-optimized
NVMe/TCPnvme list-subsys /dev/nvme0n1
예제 보기
nvme-subsys0 - NQN=nqn.1992- 08.com.netapp: sn.e6c438e66ac211ef9ab8d039eab31e9d:subsystem.nvme_tcp_4 \ +- nvme1 tcp traddr=192.168.5.25 trsvcid=4420 host_traddr=192.168.5.1 src_addr=192.168.5.1 live optimized +- nvme10 tcp traddr=192.168.6.24 trsvcid=4420 host_traddr=192.168.6.1 src_addr=192.168.6.1 live optimized +- nvme2 tcp traddr=192.168.5.24 trsvcid=4420 host_traddr=192.168.5.1 src_addr=192.168.5.1 live non-optimized +- nvme9 tcp traddr=192.168.6.25 trsvcid=4420 host_traddr=192.168.6.1 src_addr=192.168.6.1 live non-optimized
-
NetApp 플러그인에 각 ONTAP 네임스페이스 장치에 대한 올바른 값이 표시되는지 확인합니다.
열nvme netapp ontapdevices -o column
예제 보기
Device Vserver Namespace Path NSID UUID Size -------------- ------------------------ ----------------------------- ---- ------------------------------------- --------- /dev/nvme0n1 vs_coexistence_QLE2772 /vol/fcnvme_1_1_0/fcnvme_ns 1 159f9f88-be00-4828-aef6-197d289d4bd9 10.74GB /dev/nvme0n2 vs_coexistence_QLE2772 /vol/fcnvme_1_1_1/fcnvme_ns 2 2c1ef769-10c0-497d-86d7-e84811ed2df6 10.74GB /dev/nvme0n3 vs_coexistence_QLE2772 /vol/fcnvme_1_1_2/fcnvme_ns 3 9b49bf1a-8a08-4fa8-baf0-6ec6332ad5a4 10.74GB
JSON을 참조하십시오nvme netapp ontapdevices -o json
예제 보기
{ "ONTAPdevices" : [ { "Device" : "/dev/nvme0n1", "Vserver" : "vs_coexistence_QLE2772", "Namespace_Path" : "/vol/fcnvme_1_1_0/fcnvme_ns", "NSID" : 1, "UUID" : "159f9f88-be00-4828-aef6-197d289d4bd9", "Size" : "10.74GB", "LBA_Data_Size" : 4096, "Namespace_Size" : 2621440 }, { "Device" : "/dev/nvme0n2", "Vserver" : "vs_coexistence_QLE2772", "Namespace_Path" : "/vol/fcnvme_1_1_1/fcnvme_ns", "NSID" : 2, "UUID" : "2c1ef769-10c0-497d-86d7-e84811ed2df6", "Size" : "10.74GB", "LBA_Data_Size" : 4096, "Namespace_Size" : 2621440 }, { "Device" : "/dev/nvme0n4", "Vserver" : "vs_coexistence_QLE2772", "Namespace_Path" : "/vol/fcnvme_1_1_3/fcnvme_ns", "NSID" : 4, "UUID" : "f3572189-2968-41bc-972a-9ee442dfaed7", "Size" : "10.74GB", "LBA_Data_Size" : 4096, "Namespace_Size" : 2621440 },
알려진 문제
ONTAP 릴리즈가 포함된 Oracle Linux 8.10용 NVMe-oF 호스트 구성에는 다음과 같은 알려진 문제가 있습니다.
NetApp 버그 ID | 제목 | 설명 |
---|---|---|
CONTAPEXT-1082를 참조하십시오 |
Oracle Linux 8.10 NVMe-oF 호스트는 중복된 PDC를 생성합니다 |
Oracle Linux 8.10 NVMe-oF 호스트에서 명령과 함께 옵션을 |