Konfigurieren Sie Oracle Linux 8.x mit NVMe-oF für ONTAP -Speicher
Oracle Linux-Hosts unterstützen die NVMe over Fibre Channel (NVMe/FC)- und NVMe over TCP (NVMe/TCP)-Protokolle mit Asymmetric Namespace Access (ANA). ANA bietet Multipathing-Funktionalität, die dem asymmetrischen logischen Einheitenzugriff (ALUA) in iSCSI- und FCP-Umgebungen entspricht.
Erfahren Sie, wie Sie NVMe over Fabrics (NVMe-oF)-Hosts für Oracle Linux 8.x konfigurieren. Weitere Informationen zu Support und Funktionen finden Sie unter "Oracle Linux ONTAP Unterstützung und -Funktionen"Die
NVMe-oF unter Oracle Linux 8.x weist folgende bekannte Einschränkungen auf:
-
Das Booten von SAN über das NVMe-oF-Protokoll wird nicht unterstützt.
-
Die Unterstützung für das NetApp sanlun Host-Dienstprogramm ist für NVMe-oF auf einem Oracle Linux 8.x-Host nicht verfügbar. Stattdessen können Sie sich auf das NetApp Plug-in verlassen, das im nativen
nvme-cliPaket für alle NVMe-oF-Transporte. -
Für Oracle Linux 8.2 und früher sind native NVMe/FC-Auto-Connect-Skripte im nvme-cli-Paket nicht verfügbar. Verwenden Sie die vom HBA-Hersteller bereitgestellten externen Auto-Connect-Skripte.
-
Bei Oracle Linux 8.2 und früheren Versionen ist Round-Robin-Load-Balancing für NVMe-Multipathing nicht standardmäßig aktiviert. Um diese Funktion zu aktivieren, gehen Sie zu Schritt fürSchreiben einer udev-Regel Die
Schritt 1: Installieren Sie die Oracle Linux- und NVMe-Software und überprüfen Sie Ihre Konfiguration.
Gehen Sie wie folgt vor, um die minimal unterstützten Oracle Linux 8.x Softwareversionen zu überprüfen.
-
Installieren Sie Oracle Linux 8.x auf dem Server. Nach Abschluss der Installation überprüfen Sie, ob Sie den angegebenen Oracle Linux 8.x-Kernel verwenden.
uname -rBeispiel einer Oracle Linux-Kernelversion:
5.15.0-206.153.7.1.el8uek.x86_64
-
Installieren Sie den
nvme-cliPaket:rpm -qa|grep nvme-cliDas folgende Beispiel zeigt eine
nvme-cliPaketversion:nvme-cli-1.16-9.el8.x86_64
-
Für Oracle Linux 8.2 und früher fügen Sie die folgende Zeichenkette als separate udev-Regel hinzu für
/lib/udev/rules.d/71-nvme-iopolicy-netapp-ONTAP.rulesDie Dies ermöglicht Round-Robin-Lastverteilung für 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" -
Überprüfen Sie auf dem Oracle Linux 8.x-Host die
hostnqnZeichenkette bei/etc/nvme/hostnqn:cat /etc/nvme/hostnqnDas folgende Beispiel zeigt eine
hostnqnVersion:nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a
-
Überprüfen Sie im ONTAP System, ob
hostnqnDie Zeichenkette stimmt mit derhostnqnZeichenkette für das entsprechende Subsystem im ONTAP -Speichersystem:vserver nvme subsystem host show -vserver vs_coexistence_LPE36002Beispiel anzeigen
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.Wenn die hostnqnZeichenfolgen nicht übereinstimmen, verwenden Sie den Befehl,vserver modifyum die Zeichenfolge auf dem entsprechenden ONTAP-Array-Subsystem zu aktualisierenhostnqn, damit sie mit derhostnqnZeichenfolge/etc/nvme/hostnqnauf dem Host übereinstimmt. -
Optional empfiehlt NetApp für den gleichzeitigen Betrieb von NVMe- und SCSI-Datenverkehr auf demselben Host die Verwendung des im Kernel integrierten NVMe-Multipath für ONTAP Namespaces.
dm-multipathfür ONTAP LUNs bzw. Dies sollte die ONTAP Namensräume ausschließen.dm-multipathund verhinderndm-multipathvon der Inanspruchnahme der ONTAP Namespace-Geräte.-
Füge die
enable_foreignEinstellung auf die/etc/multipath.confDatei.cat /etc/multipath.conf defaults { enable_foreign NONE } -
Starten Sie das Gerät neu.
multipathdDaemon, der die neue Einstellung anwendet.systemctl restart multipathd
-
Schritt 2: NVMe/FC und NVMe/TCP konfigurieren
Konfigurieren Sie NVMe/FC mit Broadcom/Emulex- oder Marvell/QLogic-Adaptern oder konfigurieren Sie NVMe/TCP mithilfe manueller Erkennungs- und Verbindungsvorgänge.
Konfigurieren Sie NVMe/FC für einen Broadcom/Emulex-Adapter.
-
Stellen Sie sicher, dass Sie das unterstützte Adaptermodell verwenden:
-
Zeigen Sie die Modellnamen an:
cat /sys/class/scsi_host/host*/modelnameDie folgende Ausgabe sollte angezeigt werden:
LPe36002-M64 LPe36002-M64
-
Zeigen Sie die Modellbeschreibungen an:
cat /sys/class/scsi_host/host*/modeldescSie sollten eine Ausgabe ähnlich dem folgenden Beispiel sehen:
Emulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter Emulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter
-
-
Vergewissern Sie sich, dass Sie das empfohlene Broadcom verwenden
lpfcFirmware und Inbox-Treiber:-
Anzeige der Firmware-Version:
cat /sys/class/scsi_host/host*/fwrevDas folgende Beispiel zeigt Firmware-Versionen:
14.4.317.10, sli-4:6:d 14.4.317.10, sli-4:6:d
-
Zeigen Sie die Posteingangstreiberversion an:
cat /sys/module/lpfc/versionDas folgende Beispiel zeigt eine Treiberversion:
0:14.2.0.13
+
Die aktuelle Liste der unterstützten Adaptertreiber- und Firmware-Versionen finden Sie im "Interoperabilitäts-Matrix-Tool". -
-
Stellen Sie sicher, dass die
lpfc_enable_fc4_typeEinstellung auf „3“ eingestellt ist:cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type -
Vergewissern Sie sich, dass Sie Ihre Initiator-Ports anzeigen können:
cat /sys/class/fc_host/host*/<port_name>Das folgende Beispiel zeigt Portidentitäten:
0x100000109bf0449c 0x100000109bf0449d
-
Überprüfen Sie, ob Ihre Initiator-Ports online sind:
cat /sys/class/fc_host/host*/port_stateDie folgende Ausgabe sollte angezeigt werden:
Online Online
-
Vergewissern Sie sich, dass die NVMe/FC-Initiator-Ports aktiviert sind und die Ziel-Ports sichtbar sind:
cat /sys/class/scsi_host/host*/nvme_infoBeispiel anzeigen
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
Konfigurieren Sie NVMe/FC für einen Marvell/QLogic-Adapter.
-
Vergewissern Sie sich, dass der unterstützte Adaptertreiber und die unterstützten Firmware-Versionen ausgeführt werden:
cat /sys/class/fc_host/host*/symbolic_nameDas folgende Beispiel zeigt Treiber- und Firmware-Versionen:
QLE2772 FW:v9.15.00 DVR:v10.02.09.100-k QLE2772 FW:v9.15.00 DVR:v10.02.09.100-k
-
Verifizieren Sie das
ql2xnvmeenableIst festgelegt. Dadurch kann der Marvell Adapter als NVMe/FC-Initiator verwendet werden:cat /sys/module/qla2xxx/parameters/ql2xnvmeenableDie erwartete Ausgabe ist 1.
Das NVMe/TCP-Protokoll unterstützt den automatischen Verbindungsvorgang nicht. Stattdessen können Sie die NVMe/TCP-Subsysteme und Namespaces ermitteln, indem Sie den NVMe/TCP connect oder connect-all Vorgänge manuell ausführen.
-
Vergewissern Sie sich, dass der Initiator-Port die Daten der Erkennungsprotokollseite über die unterstützten NVMe/TCP-LIFs abrufen kann:
nvme discover -t tcp -w <host-traddr> -a <traddr>Beispiel anzeigen
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 ..........
-
Vergewissern Sie sich, dass alle anderen LIF-Kombinationen aus NVMe/TCP-Initiator und Ziel erfolgreich Daten der Erkennungsprotokollseite abrufen können:
nvme discover -t tcp -w <host-traddr> -a <traddr>Beispiel anzeigen
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
-
Führen Sie die aus
nvme connect-allBefehl über alle unterstützten NVMe/TCP Initiator-Ziel-LIFs der Nodes hinweg:nvme connect-all -t tcp -w host-traddr -a traddr -l <ctrl_loss_timeout_in_seconds>Beispiel anzeigen
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 empfiehlt die Einstellung der ctrl-loss-tmo option Zu -1 sodass der NVMe/TCP-Initiator im Falle eines Pfadverlusts unbegrenzt versucht, die Verbindung wiederherzustellen.
Schritt 3: Optional: Aktivieren Sie 1 MB I/O für NVMe/FC.
ONTAP meldet in den Identify Controller-Daten eine maximale Datenübertragungsgröße (MDTS) von 8. Dies bedeutet, dass die maximale E/A-Anforderungsgröße bis zu 1 MB betragen kann. Um E/A-Anfragen der Größe 1 MB für einen Broadcom NVMe/FC-Host auszugeben, sollten Sie die lpfc Wert des lpfc_sg_seg_cnt Parameter vom Standardwert 64 auf 256.
|
|
Diese Schritte gelten nicht für Qlogic NVMe/FC-Hosts. |
-
Setzen Sie den
lpfc_sg_seg_cntParameter auf 256:cat /etc/modprobe.d/lpfc.confSie sollten eine Ausgabe ähnlich dem folgenden Beispiel sehen:
options lpfc lpfc_sg_seg_cnt=256
-
Führen Sie den Befehl aus
dracut -f, und starten Sie den Host neu. -
Stellen Sie sicher, dass der Wert für
lpfc_sg_seg_cnt256 lautet:cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt
Schritt 4: Überprüfen Sie die Multipathing-Konfiguration
Vergewissern Sie sich, dass der in-Kernel-Multipath-Status, der ANA-Status und die ONTAP-Namespaces für die NVMe-of-Konfiguration richtig sind.
-
Vergewissern Sie sich, dass das in-Kernel NVMe Multipath aktiviert ist:
cat /sys/module/nvme_core/parameters/multipathDie folgende Ausgabe sollte angezeigt werden:
Y
-
Vergewissern Sie sich, dass die entsprechenden NVMe-of-Einstellungen (z. B. auf NetApp ONTAP-Controller gesetzt auf Modell und Load-Balancing-IOpolicy auf Round-Robin eingestellt) für die jeweiligen ONTAP-Namespaces den Host korrekt widerspiegeln:
-
Zeigen Sie die Subsysteme an:
cat /sys/class/nvme-subsystem/nvme-subsys*/modelDie folgende Ausgabe sollte angezeigt werden:
NetApp ONTAP Controller NetApp ONTAP Controller
-
Zeigen Sie die Richtlinie an:
cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicyDie folgende Ausgabe sollte angezeigt werden:
round-robin round-robin
-
-
Überprüfen Sie, ob die Namespaces auf dem Host erstellt und richtig erkannt wurden:
nvme listBeispiel anzeigen
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
-
Überprüfen Sie, ob der Controller-Status jedes Pfads aktiv ist und den korrekten ANA-Status aufweist:
nvme list-subsys /dev/nvme0n1NVMe/FC-Beispiel anzeigen
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/TCP-Beispiel anzeigen
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
-
Vergewissern Sie sich, dass das NetApp Plug-in für jedes ONTAP Namespace-Gerät die richtigen Werte anzeigt:
Spaltenvme netapp ontapdevices -o columnBeispiel anzeigen
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 jsonBeispiel anzeigen
{ "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 },
Schritt 5: Optional: Aktivieren Sie die 1-MB-E/A-Größe.
ONTAP meldet in den Identify Controller-Daten eine maximale Datenübertragungsgröße (MDTS) von 8. Dies bedeutet, dass die maximale E/A-Anforderungsgröße bis zu 1 MB betragen kann. Um E/A-Anfragen der Größe 1 MB für einen Broadcom NVMe/FC-Host auszugeben, sollten Sie die lpfc Wert des lpfc_sg_seg_cnt Parameter vom Standardwert 64 auf 256.
|
|
Diese Schritte gelten nicht für Qlogic NVMe/FC-Hosts. |
-
Setzen Sie den
lpfc_sg_seg_cntParameter auf 256:cat /etc/modprobe.d/lpfc.confSie sollten eine Ausgabe ähnlich dem folgenden Beispiel sehen:
options lpfc lpfc_sg_seg_cnt=256
-
Führen Sie den Befehl aus
dracut -f, und starten Sie den Host neu. -
Stellen Sie sicher, dass der Wert für
lpfc_sg_seg_cnt256 lautet:cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt
Schritt 6: Überprüfen Sie die bekannten Probleme
Dies sind die bekannten Probleme:
| NetApp Bug ID | Titel | Beschreibung |
|---|---|---|
Oracle Linux 8.x NVMe-oF-Hosts erstellen doppelte Persistent Discovery Controller (PDCs). |
Auf NVMe-oF-Hosts können Sie Folgendes verwenden: |