NVMe-of host Configuration per Oracle Linux 8,10 con ONTAP
Le configurazioni host SAN di NetApp supportano il protocollo NVMe over Fabrics (NVMe-of) con l'Asymmetric Namespace Access (ANA). Negli ambienti NVMe-of, ANA equivale al multipathing ALUA (Asymmetric Logical Unit Access) in ambienti iSCSI e FCP. ANA è implementato utilizzando la funzione multipath NVMe nel kernel.
È 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
mpath
e utilizzare NVMe Multipath per configurare i dispositivi con namespace NVMe-of sull'host.
Per ulteriori informazioni sulle configurazioni supportate, consultare "Tool di matrice di interoperabilità NetApp".
-
-
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-cli
per 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-cli
pacchetto:rpm -qa|grep nvme-cli
nvme-cli-1.16-9.el8.x86_64
-
Sull'host Oracle Linux 8,10, controllare la
hostnqn
stringa su/etc/nvme/hostnqn
:cat /etc/nvme/hostnqn
nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a
-
Verificare che
hostnqn
sull'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 hostnqn
stringhe non corrispondono, utilizzare ilvserver modify
comando per aggiornare lahostnqn
stringa sul sottosistema di array ONTAP corrispondente in modo che corrisponda allahostnqn
stringa 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-multipath
rispettivamente. Questo dovrebbe escludere gli spazi dei nomi ONTAP dadm-multipath
e impedire didm-multipath
eseguire il recupero dei dispositivi dello spazio dei nomi ONTAP:-
Aggiungere l'
enable_foreign`impostazione al `/etc/multipath.conf
file:# cat /etc/multipath.conf defaults { enable_foreign NONE }
-
Riavviare il
multipathd
daemon 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*/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
-
-
Verificare di utilizzare il Broadcom consigliato
lpfc
firmware e driver della posta in arrivo:-
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
Per l'elenco aggiornato dei driver della scheda di rete supportati e delle versioni del firmware, vedere "Tool di matrice di interoperabilità NetApp".
-
-
Verificare che
lpfc_enable_fc4_type
sia 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_name
0x100000109bf0449c 0x100000109bf0449d
-
cat /sys/class/fc_host/host*/port_state
Online Online
-
cat /sys/class/scsi_host/host*/nvme_info
Mostra 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_name
QLE2772 FW:v9.15.00 DVR:v10.02.09.100-k QLE2772 FW:v9.15.00 DVR:v10.02.09.100-k
-
Verificare che
ql2xnvmeenable
sia 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 riporta un MDTS (MAX Data Transfer Size) di 8 nei dati del controller di identificazione. Ciò significa che le dimensioni massime delle richieste i/o possono essere fino a 1MB MB. Per emettere richieste di i/o di dimensioni pari a 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_cnt
parametro su 256:cat /etc/modprobe.d/lpfc.conf
options lpfc lpfc_sg_seg_cnt=256
-
Eseguire il
dracut -f
comando e riavviare l'host. -
Verificare che il valore previsto di
lpfc_sg_seg_cnt
sia 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-all
comando 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
Per supportare il corretto funzionamento dei LUN ONTAP, verificare che lo stato di multipath NVMe in-kernel, lo stato ANA e i namespace ONTAP siano corretti per la configurazione NVMe-of.
-
Verifica che il multipath NVMe in-kernel sia abilitato:
cat /sys/module/nvme_core/parameters/multipath
Y
-
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*/model
NetApp ONTAP Controller NetApp ONTAP Controller
-
cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy
round-robin round-robin
-
-
Verificare che gli spazi dei nomi siano stati creati e rilevati correttamente sull'host:
nvme list
Mostra 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/nvme0n1
Mostra 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/nvme0n1
Mostra 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 column
Mostra 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 json
Mostra 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 |