Skip to main content
SAN hosts and cloud clients
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

NVMe-of host Configuration per Oracle Linux 8,10 con ONTAP

Collaboratori

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.

A proposito di questa attività

È 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.

Fasi
  1. 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
  2. Installare nvme-cli pacchetto:

    rpm -qa|grep nvme-cli
    nvme-cli-1.16-9.el8.x86_64
  3. 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
  4. 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.
    Nota Se le hostnqn stringhe non corrispondono, utilizzare il vserver modify comando per aggiornare la hostnqn stringa sul sottosistema di array ONTAP corrispondente in modo che corrisponda alla hostnqn stringa dall' `/etc/nvme/hostnqn`host.
  5. 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 da dm-multipath e impedire di dm-multipath eseguire il recupero dei dispositivi dello spazio dei nomi ONTAP:

    1. Aggiungere l' enable_foreign`impostazione al `/etc/multipath.conf file:

      # cat /etc/multipath.conf
      defaults {
        enable_foreign     NONE
      }
    2. 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.

Broadcom/Emulex

Configurare NVMe/FC per un adattatore Broadcom/Emulex.

Fasi
  1. Verificare di utilizzare il modello di adattatore supportato:

    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. Verificare di utilizzare il Broadcom consigliato lpfc firmware e driver della posta in arrivo:

    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

      Per l'elenco aggiornato dei driver della scheda di rete supportati e delle versioni del firmware, vedere "Tool di matrice di interoperabilità NetApp".

  3. Verificare che lpfc_enable_fc4_type sia impostato su "3":

    cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type

  4. Verificare che le porte dell'iniziatore siano attive e in esecuzione e che siano visualizzate le LIF di destinazione:

    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

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

Configurare NVMe/FC per un adattatore Marvell/QLogic.

Nota 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.
Fasi
  1. 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
  2. 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.

Nota Questi passaggi non si applicano agli host Qlogic NVMe/FC.
Fasi
  1. Impostare il lpfc_sg_seg_cnt parametro su 256:

    cat /etc/modprobe.d/lpfc.conf
    options lpfc lpfc_sg_seg_cnt=256
  2. Eseguire il dracut -f comando e riavviare l'host.

  3. 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 .

Fasi
  1. 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
    ..........
  2. 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
  3. 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
    Nota 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.

Fasi
  1. Verifica che il multipath NVMe in-kernel sia abilitato:

    cat /sys/module/nvme_core/parameters/multipath

    Y

  2. 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:

    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. 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
  4. Verificare che lo stato del controller di ciascun percorso sia attivo e che abbia lo stato ANA corretto:

    NVMe/FC

    nvme 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/TCP

    nvme 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
  5. Verificare che il plug-in NetApp visualizzi i valori corretti per ciascun dispositivo dello spazio dei nomi ONTAP:

    Colonna

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

    nvme 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 -p l'opzione con il nvme discover comando. Per una determinata combinazione iniziatore-target, ogni esecuzione del nvme discover comando dovrebbe creare un PDC. Tuttavia, a partire da Oracle Linux 8.x, gli host NVMe-of creano un PDC duplicato. In questo modo si sprecano risorse sia sull'host che sulla destinazione.