Skip to main content
SAN hosts and cloud clients
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

NVMe-of Host-Konfiguration für Oracle Linux 8.10 mit ONTAP

Beitragende

NetApp SAN-Host-Konfigurationen unterstützen das NVMe over Fabrics (NVMe-of)-Protokoll mit Asymmetric Namespace Access (ANA). In NVMe-of Umgebungen entspricht ANA dem Multipathing des Asymmetric Logical Unit Access (ALUA) in iSCSI- und FCP-Umgebungen. ANA ist mit der in-Kernel NVMe Multipath-Funktion implementiert.

Über diese Aufgabe

Die NVMe-of Hostkonfiguration für Oracle Linux 8.10 unterstützt und bietet folgende Funktionen. Sie sollten auch die bekannten Einschränkungen überprüfen, bevor Sie mit dem Konfigurationsprozess beginnen.

  • Support verfügbar:

    • Unterstützung für NVMe over TCP (NVMe/TCP) und NVMe over Fibre Channel (NVMe/FC) So kann das NetApp-Plug-in im nativen nvme-cli-Paket ONTAP-Informationen für NVMe/FC- und NVMe/TCP-Namespaces anzeigen.

      Je nach Host-Konfiguration konfigurieren Sie NNeme/FC, NVMe/TCP oder beide Protokolle.

    • Gleichzeitiges Ausführen von NVMe- und SCSI-Datenverkehr auf demselben Host. Beispielsweise können Sie dm-Multipath für SCSI-Geräte für SCSI- `mpath`LUNs konfigurieren und NVMe Multipath verwenden, um NVMe-of Namespace Devices auf dem Host zu konfigurieren.

    Weitere Informationen zu unterstützten Konfigurationen finden Sie im "NetApp Interoperabilitäts-Matrix-Tool".

  • Verfügbare Funktionen:

    • Die in-Kernel-NVMe-Multipath-Funktion ist in Oracle Linux 8.10 standardmäßig für NVMe-Namespaces aktiviert. Sie müssen keine expliziten Einstellungen konfigurieren.

  • Bekannte Einschränkungen:

    • Das Booten von SAN über das NVMe-of-Protokoll wird derzeit nicht unterstützt.

    • NetApp Sanlun Host Utility-Unterstützung ist für NVMe-of auf einem Oracle Linux 8.10 Host nicht verfügbar. Stattdessen können Sie auf das im nativen Paket enthaltene NetApp Plug-in für alle NVMe-of-Übertragungen vertrauen nvme-cli.

Validieren der Softwareversionen

Validieren Sie die unterstützten Mindestversionen für Oracle Linux 8.10.

Schritte
  1. Installieren Sie Oracle Linux 8.10 GA auf dem Server. Überprüfen Sie nach Abschluss der Installation, ob Sie den angegebenen Oracle Linux 8.10 GA-Kernel ausführen:

    uname -r
    5.15.0-206.153.7.1.el8uek.x86_64
  2. Installieren Sie den nvme-cli Paket:

    rpm -qa|grep nvme-cli
    nvme-cli-1.16-9.el8.x86_64
  3. Überprüfen Sie auf dem Oracle Linux 8.10-Host den hostnqn String unter /etc/nvme/hostnqn:

    cat /etc/nvme/hostnqn
    nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a
  4. Überprüfen Sie, ob hostnqn auf dem Oracle Linux 8.10-Host das entsprechende Subsystem auf dem ONTAP-Array übereinstimmt hostnqn:

    vserver nvme subsystem host show -vserver vs_coexistence_LPE36002
    Beispiel 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.
    Hinweis Wenn die hostnqn Zeichenfolgen nicht übereinstimmen, verwenden Sie den Befehl, vserver modify um die Zeichenfolge auf dem entsprechenden ONTAP-Array-Subsystem zu aktualisieren hostnqn, damit sie mit der hostnqn Zeichenfolge /etc/nvme/hostnqn auf dem Host übereinstimmt.
  5. Wenn Sie beabsichtigen, gleichzeitig NVMe- und SCSI-Datenverkehr auf demselben Host auszuführen, empfiehlt NetApp die Verwendung des NVMe Multipath im Kernel für ONTAP-Namespaces bzw. für ONTAP- dm-multipath`LUNs. Dies sollte die ONTAP-Namespaces von ausschließen `dm-multipath und verhindern, dass dm-multipath die ONTAP-Namespace-Geräte beansprucht werden:

    1. Fügen Sie die Einstellung der /etc/multipath.conf Datei hinzu enable_foreign:

      # cat /etc/multipath.conf
      defaults {
        enable_foreign     NONE
      }
    2. Starten Sie den Daemon neu multipathd, um die neue Einstellung anzuwenden:

      systemctl restart multipathd

Konfiguration von NVMe/FC

Sie können NVMe/FC mit Broadcom/Emulex FC- oder Marvell/Qlogic FC-Adaptern konfigurieren. Bei NVMe/FC, die mit einem Broadcom-Adapter konfiguriert sind, können Sie I/O-Anforderungen mit einer Größe von 1 MB aktivieren.

Broadcom/Emulex

Konfigurieren Sie NVMe/FC für einen Broadcom/Emulex-Adapter.

Schritte
  1. Stellen Sie sicher, dass Sie das unterstützte Adaptermodell verwenden:

    1. cat /sys/class/scsi_host/host*/modelname

      LPe36002-M64
      LPe36002-M64
    2. 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
  2. Vergewissern Sie sich, dass Sie das empfohlene Broadcom verwenden lpfc Firmware und Inbox-Treiber:

    1. cat /sys/class/scsi_host/host*/fwrev

      14.4.317.10, sli-4:6:d
      14.4.317.10, sli-4:6:d
    2. cat /sys/module/lpfc/version

      0:14.2.0.13

      Die aktuelle Liste der unterstützten Adaptertreiber- und Firmware-Versionen finden Sie im "NetApp Interoperabilitäts-Matrix-Tool".

  3. Stellen Sie sicher, dass die lpfc_enable_fc4_type Einstellung auf „3“ eingestellt ist:

    cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type

  4. Vergewissern Sie sich, dass die Initiator-Ports ausgeführt werden und dass die Ziel-LIFs angezeigt werden:

    1. cat /sys/class/fc_host/host*/port_name

      0x100000109bf0449c
      0x100000109bf0449d
    2. cat /sys/class/fc_host/host*/port_state

      Online
      Online
    3. cat /sys/class/scsi_host/host*/nvme_info

      Beispiel 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
Marvell/QLogic

Konfigurieren Sie NVMe/FC für einen Marvell/QLogic-Adapter.

Hinweis Der native Inbox qla2xxx Treiber, der im Oracle Linux 10 GA Kernel enthalten ist, hat die neuesten Fixes. Diese Fehlerbehebungen sind für die Unterstützung von ONTAP unerlässlich.
Schritte
  1. Vergewissern Sie sich, dass der unterstützte Adaptertreiber und die unterstützten Firmware-Versionen ausgeführt werden:

    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
  2. Stellen Sie sicher, dass der ql2xnvmeenable Wert auf „1“ eingestellt ist. Dadurch kann der Marvell Adapter als NVMe/FC-Initiator verwendet werden:

    cat /sys/module/qla2xxx/parameters/ql2xnvmeenable

1 MB I/O-Größe aktivieren (optional)

ONTAP meldet eine MDTS (MAX Data-Übertragungsgröße) von 8 in den Identifizieren von Controller-Daten. Das bedeutet, dass die maximale E/A-Anforderungsgröße bis zu 1 MB betragen kann. Um I/O-Anforderungen der Größe 1 MB für einen Broadcom-NVMe/FC-Host auszustellen, sollten Sie den Wert des lpfc_sg_seg_cnt Parameters ab dem Standardwert 64 auf 256 erhöhen lpfc.

Hinweis Diese Schritte gelten nicht für Qlogic NVMe/FC-Hosts.
Schritte
  1. Setzen Sie den lpfc_sg_seg_cnt Parameter auf 256:

    cat /etc/modprobe.d/lpfc.conf
    options lpfc lpfc_sg_seg_cnt=256
  2. Führen Sie den Befehl aus dracut -f, und starten Sie den Host neu.

  3. Stellen Sie sicher, dass der erwartete Wert von lpfc_sg_seg_cnt 256 ist:

    cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt

Konfiguration von NVMe/TCP

Das NVMe/TCP-Protokoll unterstützt den Vorgang nicht auto-connect. Stattdessen können Sie die NVMe/TCP-Subsysteme und -Namespaces erkennen, indem Sie NVMe/TCP oder connect-all Vorgänge manuell ausführen connect.

Schritte
  1. 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
    ..........
  2. 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
  3. Führen Sie den nvme connect-all Befehl über alle unterstützten NVMe/TCP Initiator-Ziel-LIFs der Nodes hinweg aus:

    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
    Hinweis NetApp empfiehlt, die Option auf „-1“ zu setzen ctrl-loss-tmo, damit der NVMe/TCP-Initiator im Fall eines Pfadverlusts auf unbestimmte Zeit versucht, die Verbindung wiederherzustellen.

NVMe-of validieren

Um den korrekten Betrieb von ONTAP LUNs zu unterstützen, stellen Sie sicher, dass der NVMe Multipath-Status, der ANA-Status und die ONTAP-Namespaces für die NVMe-of Konfiguration richtig sind.

Schritte
  1. Vergewissern Sie sich, dass in-Kernel NVMe Multipath aktiviert ist:

    cat /sys/module/nvme_core/parameters/multipath

    Y

  2. Überprüfen Sie, ob die NVMe-of-Einstellungen (z. B. das Modell auf „NetApp ONTAP-Controller“ gesetzt ist und die Load-Balancing-Einstellungen auf „Round-Robin“ gesetzt sind) für die jeweiligen ONTAP-Namespaces auf dem Host korrekt angezeigt werden:

    1. cat /sys/class/nvme-subsystem/nvme-subsys*/model

      NetApp ONTAP Controller
      NetApp ONTAP Controller
    2. cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy

      round-robin
      round-robin
  3. Überprüfen Sie, ob die Namespaces auf dem Host erstellt und richtig erkannt wurden:

    nvme list

    Beispiel 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
  4. Überprüfen Sie, ob der Controller-Status jedes Pfads aktiv ist und den korrekten ANA-Status aufweist:

    NVMe/FC

    nvme list-subsys /dev/nvme0n1

    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

    nvme list-subsys /dev/nvme0n1

    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
  5. Vergewissern Sie sich, dass das NetApp Plug-in für jedes ONTAP Namespace-Gerät die richtigen Werte anzeigt:

    Spalte

    nvme netapp ontapdevices -o column

    Beispiel 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
    JSON

    nvme netapp ontapdevices -o json

    Beispiel 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
        },

Bekannte Probleme

Die NVMe-of Host-Konfiguration für Oracle Linux 8.10 mit ONTAP-Release hat das folgende bekannte Problem:

NetApp Bug ID Titel Beschreibung

CONTAPEXT-1082

Oracle Linux 8.10 NVMe-of Hosts erstellen doppelte PDCs

Auf Oracle Linux 8.10 NVMe-of-Hosts werden Persistent Discovery Controller (PDCs) mithilfe der Option mit dem nvme discover Befehl erstellt -p. Für eine bestimmte Kombination aus Initiator und Ziel nvme discover wird erwartet, dass bei jeder Ausführung des Befehls ein PDC erstellt wird. Ab Oracle Linux 8.x erstellen NVMe-of Hosts jedoch ein doppeltes PDC. Dadurch werden sowohl auf dem Host als auch auf dem Ziel Ressourcen verschwendet.