Configurare Oracle Linux 8.x con NVMe-oF per l'archiviazione ONTAP
Gli host Oracle Linux 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.
Scopri come configurare gli host NVMe over Fabrics (NVMe-oF) per Oracle Linux 8.x. Per ulteriori informazioni sul supporto e sulle funzionalità, vedere "Supporto e funzionalità di Oracle Linux ONTAP".
NVMe-oF con Oracle Linux 8.x presenta le seguenti limitazioni note:
-
L'avvio SAN tramite il protocollo NVMe-oF non è supportato.
-
Il supporto dell'utilità host NetApp sanlun non è disponibile per NVMe-oF su un host Oracle Linux 8.x. In alternativa, puoi affidarti al plug-in NetApp incluso nel nativo
nvme-clipacchetto per tutti i trasporti NVMe-oF. -
Per Oracle Linux 8.2 e versioni precedenti, gli script di connessione automatica NVMe/FC nativi non sono disponibili nel pacchetto nvme-cli. Utilizzare gli script di connessione automatica esterni forniti dal fornitore HBA.
-
Per Oracle Linux 8.2 e versioni precedenti, il bilanciamento del carico round-robin non è abilitato per impostazione predefinita per il multipathing NVMe. Per abilitare questa funzionalità, vai al passaggio perscrivere una regola udev .
Passaggio 1: installare il software Oracle Linux e NVMe e verificare la configurazione
Utilizzare la seguente procedura per convalidare le versioni minime supportate del software Oracle Linux 8.x.
-
Installare Oracle Linux 8.x sul server. Una volta completata l'installazione, verificare di avere in esecuzione il kernel Oracle Linux 8.x specificato.
uname -rEsempio di versione del kernel Oracle Linux:
5.15.0-206.153.7.1.el8uek.x86_64
-
Installare
nvme-clipacchetto:rpm -qa|grep nvme-cliL'esempio seguente mostra un
nvme-cliversione del pacchetto:nvme-cli-1.16-9.el8.x86_64
-
Per Oracle Linux 8.2 e versioni precedenti, aggiungere la seguente stringa come regola udev separata per
/lib/udev/rules.d/71-nvme-iopolicy-netapp-ONTAP.rules. Ciò consente il bilanciamento del carico round-robin per NVMe multipath.cat /lib/udev/rules.d/71-nvme-iopolicy-netapp-ONTAP.rules Enable round-robin for NetApp ONTAP ACTION=="add", SUBSYSTEMS=="nvme-subsystem", ATTRS{model}=="NetApp ONTAP Controller", ATTR{iopolicy}="round-robin" -
Sull'host Oracle Linux 8.x, controllare
hostnqnstringa a/etc/nvme/hostnqn:cat /etc/nvme/hostnqnL'esempio seguente mostra un
hostnqnversione:nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a
-
Sul sistema ONTAP , verificare che
hostnqnla stringa corrisponde ahostnqnstringa per il sottosistema corrispondente sul sistema di archiviazione ONTAP :vserver nvme subsystem host show -vserver vs_coexistence_LPE36002Mostra 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. -
Facoltativamente, per eseguire sia il traffico coesistente NVMe che SCSI sullo stesso host, NetApp consiglia di utilizzare il multipath NVMe nel kernel per gli spazi dei nomi ONTAP e
dm-multipathrispettivamente per le LUN ONTAP . Ciò dovrebbe escludere gli spazi dei nomi ONTAP dadm-multipathe preveniredm-multipathdalla rivendicazione dei dispositivi dello spazio dei nomi ONTAP .-
Aggiungi il
enable_foreignimpostazione al/etc/multipath.conffile.cat /etc/multipath.conf defaults { enable_foreign NONE } -
Riavviare il
multipathddemone per applicare la nuova impostazione.systemctl restart multipathd
-
Passaggio 2: configurare NVMe/FC e NVMe/TCP
Configurare NVMe/FC con adattatori Broadcom/Emulex o Marvell/QLogic oppure configurare NVMe/TCP utilizzando operazioni di rilevamento e connessione manuali.
Configurare NVMe/FC per un adattatore Broadcom/Emulex.
-
Verificare che si stia utilizzando il modello di scheda supportato:
-
Visualizza i nomi dei modelli:
cat /sys/class/scsi_host/host*/modelnameViene visualizzato il seguente output:
LPe36002-M64 LPe36002-M64
-
Visualizza le descrizioni dei modelli:
cat /sys/class/scsi_host/host*/modeldescDovresti vedere un output simile al seguente esempio:
Emulex 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:-
Visualizza la versione del firmware:
cat /sys/class/scsi_host/host*/fwrevL'esempio seguente mostra le versioni del firmware:
14.4.317.10, sli-4:6:d 14.4.317.10, sli-4:6:d
-
Visualizza la versione del driver in arrivo:
cat /sys/module/lpfc/versionL'esempio seguente mostra la versione del driver:
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à". -
-
Verificare che
lpfc_enable_fc4_typesia impostato su "3":cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type -
Verificare che sia possibile visualizzare le porte dell'iniziatore:
cat /sys/class/fc_host/host*/<port_name>L'esempio seguente mostra le identità delle porte:
0x100000109bf0449c 0x100000109bf0449d
-
Verificare che le porte dell'iniziatore siano in linea:
cat /sys/class/fc_host/host*/port_stateViene visualizzato il seguente output:
Online Online
-
Verificare che le porte iniziatore NVMe/FC siano abilitate e che le porte di destinazione siano visibili:
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.
-
Verificare che siano in esecuzione le versioni del firmware e del driver dell'adattatore supportate:
cat /sys/class/fc_host/host*/symbolic_nameL'esempio seguente mostra le versioni del driver e del firmware:
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è impostato. Ciò consente all'adattatore Marvell di funzionare come iniziatore NVMe/FC:cat /sys/module/qla2xxx/parameters/ql2xnvmeenableL'uscita prevista è 1.
Il protocollo NVMe/TCP non supporta l'operazione di connessione automatica. In alternativa, è possibile scoprire i sottosistemi e gli spazi dei nomi NVMe/TCP eseguendo l'NVMe/TCP connect O connect-all operazioni manualmente.
-
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
-
Eseguire
nvme connect-allCommand tra tutti i LIF target initiator NVMe/TCP supportati 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 il ctrl-loss-tmo option A -1 in modo che l'iniziatore NVMe/TCP tenti di riconnettersi indefinitamente in caso di perdita di percorso.
Passaggio 3: Facoltativamente, abilitare 1 MB di I/O per NVMe/FC
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
Passaggio 4: verificare la configurazione del multipathing
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/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 list-subsys /dev/nvme0n1Mostra esempio NVMe/FC
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
Mostra esempio NVMe/TCP
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 },
Passaggio 5: Facoltativamente, abilitare la dimensione I/O di 1 MB
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
Fase 6: Esaminare i problemi noti
Ecco i problemi noti:
| ID bug NetApp | Titolo | Descrizione |
|---|---|---|
Gli host Oracle Linux 8.x NVMe-oF creano Persistent Discovery Controller (PDC) duplicati |
Sugli host NVMe-oF, è possibile utilizzare il comando |