NVMe-of host Configuration per Oracle Linux 8,10 con ONTAP
Gli host Red Hat Enterprise Linux (RHEL) supportano i protocolli NVMe su Fibre Channel (NVMe/FC) e NVMe su TCP (NVMe/TCP) con Asymmetric Namespace Access (ANA). ANA fornisce funzionalità multipathing equivalenti all'accesso asimmetrico alle unità logiche (ALUA) negli ambienti iSCSI e FCP.
È possibile utilizzare il seguente supporto e caratteristiche con la configurazione host NVMe-of per Oracle Linux 8,10. Prima di avviare il processo di configurazione, è inoltre necessario esaminare le limitazioni note.
-
Supporto disponibile:
-
Supporto di NVMe over TCP (NVMe/TCP) e NVMe over Fibre Channel (NVMe/FC). In questo modo, il plug-in NetApp nel pacchetto nvme-cli nativo consente di visualizzare le informazioni ONTAP per i namespace NVMe/FC e NVMe/TCP.
A seconda della configurazione host, è possibile configurare NNMe/FC, NVMe/TCP o entrambi i protocolli.
-
Esecuzione simultanea di traffico NVMe e SCSI sullo stesso host. Ad esempio, è possibile configurare dm-multipath per i dispositivi SCSI per i LUN SCSI
mpathe utilizzare NVMe Multipath per configurare i dispositivi con namespace NVMe-of sull'host.
Per ulteriori informazioni sulle configurazioni supportate, vedere "Tool di matrice di interoperabilità".
-
-
Funzioni disponibili:
-
La funzionalità multipath NVMe in-kernel è abilitata per gli spazi dei nomi NVMe per impostazione predefinita in Oracle Linux 8,10. Non è necessario configurare impostazioni esplicite.
-
-
Limitazioni note:
-
L'avvio SAN che utilizza il protocollo NVMe-of non è attualmente supportato.
-
Il supporto dell'utilità host NetApp Sanlun non è disponibile per NVMe-of su un host Oracle Linux 8,10. Potrai invece fare affidamento sul plug-in NetApp incluso nel pacchetto nativo
nvme-cliper tutti i trasporti NVMe-of.
-
Convalidare le versioni software
Convalida le versioni software minime supportate per Oracle Linux 8,10.
-
Installare Oracle Linux 8.10 GA sul server. Una volta completata l'installazione, verificare di eseguire il kernel Oracle Linux 8,10 GA specificato:
uname -r
5.15.0-206.153.7.1.el8uek.x86_64
-
Installare
nvme-clipacchetto:rpm -qa|grep nvme-cli
nvme-cli-1.16-9.el8.x86_64
-
Sull'host Oracle Linux 8,10, controllare la
hostnqnstringa su/etc/nvme/hostnqn:cat /etc/nvme/hostnqn
nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a
-
Verificare che
hostnqnsull'host Oracle Linux 8,10 corrisponda al sottosistema corrispondente sull' `hostnqn`array ONTAP:vserver nvme subsystem host show -vserver vs_coexistence_LPE36002
Mostra esempio
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.Se le hostnqnstringhe non corrispondono, utilizzare ilvserver modifycomando per aggiornare lahostnqnstringa sul sottosistema di array ONTAP corrispondente in modo che corrisponda allahostnqnstringa dall' `/etc/nvme/hostnqn`host. -
Se si intende eseguire traffico NVMe e SCSI coesistente sullo stesso host, NetApp consiglia di utilizzare il multipath NVMe in-kernel per gli namespace ONTAP e per le LUN ONTAP,
dm-multipathrispettivamente. Questo dovrebbe escludere gli spazi dei nomi ONTAP dadm-multipathe impedire didm-multipatheseguire il recupero dei dispositivi dello spazio dei nomi ONTAP:-
Aggiungere l'
enable_foreign`impostazione al `/etc/multipath.conffile:# cat /etc/multipath.conf defaults { enable_foreign NONE } -
Riavviare il
multipathddaemon per applicare la nuova impostazione:systemctl restart multipathd
-
Configurare NVMe/FC
È possibile configurare NVMe/FC con adattatori FC Broadcom/Emulex FC o Marvell/Qlogic. Per NVMe/FC configurato con un adattatore Broadcom, è possibile abilitare richieste di i/o di dimensioni pari a 1 MB.
Configurare NVMe/FC per un adattatore Broadcom/Emulex.
-
Verificare di utilizzare il modello di adattatore supportato:
-
cat /sys/class/scsi_host/host*/modelnameLPe36002-M64 LPe36002-M64
-
cat /sys/class/scsi_host/host*/modeldescEmulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter Emulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter
-
-
Verificare di utilizzare il Broadcom consigliato
lpfcfirmware e driver della posta in arrivo:-
cat /sys/class/scsi_host/host*/fwrev14.4.317.10, sli-4:6:d 14.4.317.10, sli-4:6:d
-
cat /sys/module/lpfc/version0:14.2.0.13
Per l'elenco aggiornato dei driver della scheda di rete supportati e delle versioni del firmware, vedere "Tool di matrice di interoperabilità".
-
-
Verificare che
lpfc_enable_fc4_typesia impostato su "3":cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type -
Verificare che le porte dell'iniziatore siano attive e in esecuzione e che siano visualizzate le LIF di destinazione:
-
cat /sys/class/fc_host/host*/port_name0x100000109bf0449c 0x100000109bf0449d
-
cat /sys/class/fc_host/host*/port_stateOnline Online
-
cat /sys/class/scsi_host/host*/nvme_infoMostra esempio
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
-
Configurare NVMe/FC per un adattatore Marvell/QLogic.
|
|
Il driver inbox qla2xxx nativo incluso nel kernel di Oracle Linux 10 GA ha le correzioni più recenti. Queste correzioni sono essenziali per il supporto di ONTAP. |
-
Verificare che siano in esecuzione le versioni del firmware e del driver dell'adattatore supportate:
cat /sys/class/fc_host/host*/symbolic_nameQLE2772 FW:v9.15.00 DVR:v10.02.09.100-k QLE2772 FW:v9.15.00 DVR:v10.02.09.100-k
-
Verificare che
ql2xnvmeenablesia impostato su "1". Ciò consente all'adattatore Marvell di funzionare come iniziatore NVMe/FC:cat /sys/module/qla2xxx/parameters/ql2xnvmeenable
Abilita dimensione i/o 1 MB (opzionale)
ONTAP segnala una dimensione massima di trasferimento dati (MDTS) pari a 8 nei dati Identify Controller. Ciò significa che la dimensione massima della richiesta di I/O può arrivare fino a 1 MB. Per emettere richieste di I/O di dimensione 1 MB per un host Broadcom NVMe/FC, è necessario aumentare il lpfc valore del lpfc_sg_seg_cnt parametro a 256 dal valore predefinito di 64.
|
|
Questi passaggi non si applicano agli host Qlogic NVMe/FC. |
-
Impostare il
lpfc_sg_seg_cntparametro su 256:cat /etc/modprobe.d/lpfc.confDovresti vedere un output simile al seguente esempio:
options lpfc lpfc_sg_seg_cnt=256
-
Eseguire il
dracut -fcomando e riavviare l'host. -
Verificare che il valore per
lpfc_sg_seg_cntsia 256:cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt
Configurare NVMe/TCP
Il protocollo NVMe/TCP non supporta tale auto-connect operazione. Invece, puoi rilevare i sottosistemi NVMe/TCP e gli spazi dei nomi eseguendo manualmente le operazioni NVMe/TCP connect o connect-all .
-
Verificare che la porta iniziatore possa recuperare i dati della pagina del registro di rilevamento attraverso le LIF NVMe/TCP supportate:
nvme discover -t tcp -w <host-traddr> -a <traddr>
Mostra esempio
# 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 ..........
-
Verifica che tutte le altre combinazioni di LIF iniziatore NVMe/TCP siano in grado di recuperare con successo i dati della pagina del log di rilevamento:
nvme discover -t tcp -w <host-traddr> -a <traddr>
Mostra esempio
# 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
-
Esegui il
nvme connect-allcomando su tutte le LIF iniziatore NVMe/TCP supportate nei nodi:nvme connect-all -t tcp -w <host-traddr> -a <traddr> -l <ctrl_loss_timeout_in_seconds>
Mostra esempio
# 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 consiglia di impostare l' `ctrl-loss-tmo`opzione su "-1" in modo che l'iniziatore NVMe/TCP tenti di riconnettersi a tempo indeterminato in caso di perdita di percorso.
Validare NVMe-of
Verificare che lo stato multipath NVMe in-kernel, lo stato ANA e i namespace ONTAP siano corretti per la configurazione NVMe-of.
-
Verificare che il multipath NVMe nel kernel sia attivato:
cat /sys/module/nvme_core/parameters/multipathViene visualizzato il seguente output:
Y
-
Verificare che le impostazioni NVMe-of appropriate (ad esempio, modello impostato su controller NetApp ONTAP e ipopolicy per il bilanciamento del carico impostato su round-robin) per i rispettivi spazi dei nomi ONTAP si riflettano correttamente sull'host:
-
Visualizza i sottosistemi:
cat /sys/class/nvme-subsystem/nvme-subsys*/modelViene visualizzato il seguente output:
NetApp ONTAP Controller NetApp ONTAP Controller
-
Visualizza la politica:
cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicyViene visualizzato il seguente output:
round-robin round-robin
-
-
Verificare che gli spazi dei nomi siano stati creati e rilevati correttamente sull'host:
nvme listMostra esempio
Node SN Model --------------------------------------------------------- /dev/nvme4n1 81Ix2BVuekWcAAAAAAAB NetApp ONTAP Controller Namespace Usage Format FW Rev ----------------------------------------------------------- 1 21.47 GB / 21.47 GB 4 KiB + 0 B FFFFFFFF
-
Verifica che il multipath NVMe in-kernel sia abilitato:
cat /sys/module/nvme_core/parameters/multipathY -
Verificare che le impostazioni NVMe-of (come il modello impostato su "Controller NetApp ONTAP" e il bilanciamento del carico iopolicy impostato su "round-robin") per i rispettivi namespace ONTAP vengano visualizzate correttamente sull'host:
-
cat /sys/class/nvme-subsystem/nvme-subsys*/modelNetApp ONTAP Controller NetApp ONTAP Controller
-
cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicyround-robin round-robin
-
-
Verificare che gli spazi dei nomi siano stati creati e rilevati correttamente sull'host:
nvme listMostra esempio
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
-
Verificare che lo stato del controller di ciascun percorso sia attivo e che abbia lo stato ANA corretto:
NVMe/FCnvme list-subsys /dev/nvme0n1Mostra esempio
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/nvme0n1Mostra esempio
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
-
Verificare che il plug-in NetApp visualizzi i valori corretti per ciascun dispositivo dello spazio dei nomi ONTAP:
Colonnanvme netapp ontapdevices -o columnMostra esempio
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
JSONnvme netapp ontapdevices -o jsonMostra esempio
{ "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 },
Problemi noti
La configurazione host NVMe-of per Oracle Linux 8,10 con release ONTAP presenta il seguente problema noto:
| ID bug NetApp | Titolo | Descrizione |
|---|---|---|
CONTAPEXT-1082 |
Gli host Oracle Linux 8,10 NVMe-of creano PDC duplicati |
Negli host NVMe-of di Oracle Linux 8,10, i controller di rilevamento persistente (PDC) vengono creati utilizzando |