Skip to main content
SAN hosts and cloud clients
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Configuración de host de NVMe-oF para Ubuntu 22,04 con ONTAP

Colaboradores

NVMe over Fabrics (NVMe-oF), incluido NVMe over Fibre Channel (NVMe/FC) y otros transportes, es compatible con Ubuntu 22,04 con acceso asimétrico a espacio de nombres (ANA). En entornos de NVMe-oF, ANA es el equivalente a la multivía ALUA en entornos iSCSI y FC y se implementa con NVMe multivía en kernel.

Se ofrece la siguiente compatibilidad para la configuración de host de NVMe-oF para Ubuntu 22,04 con ONTAP:

  • El plugin de NetApp en el paquete nvme-cli nativo muestra detalles de ONTAP para espacios de nombres de NVMe/FC.

  • Uso del tráfico coexistente de NVMe y SCSI en el mismo host en un adaptador de bus de host (HBA) determinado, sin la configuración multivía explícita de dm para evitar la reclamación de espacios de nombres de NVMe.

Si quiere más información sobre las configuraciones compatibles, consulte "Herramienta de matriz de interoperabilidad de NetApp".

Funciones

Ubuntu 22,04 tiene la multivía NVMe en kernel habilitada para espacios de nombres NVMe de forma predeterminada. Por lo tanto, no hay necesidad de configuraciones explícitas.

Limitaciones conocidas

Actualmente no se admite el arranque SAN mediante el protocolo NVMe-oF.

Validación de versiones de software

Puede utilizar el siguiente procedimiento para validar las versiones mínimas de software soportadas de Ubuntu 22,04.

Pasos
  1. Instale Ubuntu 22,04 en el servidor. Una vez completada la instalación, verifique que está ejecutando el kernel de Ubuntu 22,04 especificado:

    # uname -r

    Ejemplo de salida:

    5.15.0-101-generic
  2. Instale el nvme-cli paquete:

    # apt list | grep nvme

    Ejemplo de salida:

    nvme-cli/jammy-updates,now 1.16-3ubuntu0.1 amd64
  3. En el host Ubuntu 22,04, compruebe la cadena hostnqn en /etc/nvme/hostnqn:

    # cat /etc/nvme/hostnqn

    Ejemplo de salida

    nqn.2014-08.org.nvmexpress:uuid:063a9fa0-438a-4737-b9b4-95a21c66d041
  4. Compruebe que el hostnqn la cadena coincide con hostnqn Cadena para el subsistema correspondiente en la cabina de ONTAP:

    ::> vserver nvme subsystem host show -vserver vs_106_fc_nvme

    Ejemplo de salida:

    Vserver     Subsystem          Host NQN
    ----------- --------------- ----------------------------------------------------------
    vs_106_fc_nvme ub_106 nqn.2014-08.org.nvmexpress:uuid:c04702c8-e91e-4353-9995-ba4536214631
    Nota Si la hostnqn las cadenas no coinciden, utilice vserver modify comando para actualizar el hostnqn En el subsistema de cabina ONTAP correspondiente de que coincida con hostnqn cadena desde /etc/nvme/hostnqn en el host.

Configure NVMe/FC

Puede configurar NVMe/FC para adaptadores Broadcom/Emulex o Marvell/Qlogic.

Broadcom/Emulex
Pasos
  1. Compruebe que está utilizando el modelo de adaptador admitido.

    # cat /sys/class/scsi_host/host*/modelname

    Ejemplo de salida:

    LPe36002-M64
    LPe36002-M64
    # cat /sys/class/scsi_host/host*/modeldesc

    Ejemplo de salida:

    Emulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter
    Emulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter
  2. Compruebe que está utilizando la Broadcom recomendada lpfc controlador de firmware y bandeja de entrada.

    # cat /sys/class/scsi_host/host*/fwrev
    
    14.2.673.40, sli-4:6:d
    14.2.673.40, sli-4:6:d
    
    # cat /sys/module/lpfc/version
    0: 14.0.0.4

    Para obtener la lista más actual de las versiones de firmware y controladores de adaptador compatibles, consulte "Herramienta de matriz de interoperabilidad de NetApp".

  3. Compruebe que lpfc_enable_fc4_type se establece en 3:

    # cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type
    3
  4. Compruebe que los puertos del iniciador están en funcionamiento y que puede ver los LIF de destino:

    # cat /sys/class/fc_host/host*/port_name
    0x100000109bf0447c
    0x100000109bf0447b
    # cat /sys/class/fc_host/host*/port_state
    Online
    Online
    # cat /sys/class/scsi_host/host*/nvme_info
            NVME Initiator Enabled
    XRI Dist lpfc1 Total 6144 IO 5894 ELS 250
    NVME LPORT lpfc1 WWPN x100000109bf0447c WWNN x200000109bf0447c DID x022300 ONLINE
    NVME RPORT       WWPN x200cd039eaa8138b WWNN x200ad039eaa8138b DID x021509 TARGET DISCSRVC ONLINE
    NVME RPORT       WWPN x2010d039eaa8138b WWNN x200ad039eaa8138b DID x021108 TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 000000000e Cmpl 000000000e Abort 00000000
    LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 0000000000005238 Issue 000000000000523a OutIO 0000000000000002
            abort 00000000 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 00000000 Err 00000000
    
    NVME Initiator Enabled
    XRI Dist lpfc0 Total 6144 IO 5894 ELS 250
    NVME LPORT lpfc0 WWPN x100000109bf0447b WWNN x200000109bf0447b DID x022600 ONLINE
    NVME RPORT       WWPN x200bd039eaa8138b WWNN x200ad039eaa8138b DID x021409 TARGET DISCSRVC ONLINE
    NVME RPORT       WWPN x200fd039eaa8138b WWNN x200ad039eaa8138b DID x021008 TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 000000000e Cmpl 000000000e Abort 00000000
    LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 000000000000523c Issue 000000000000523e OutIO 0000000000000002
            abort 00000000 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 00000000 Err 00000000
Adaptador FC Marvell/QLogic para NVMe/FC

El controlador de bandeja de entrada nativa qla2xxx incluido en el kernel Ubuntu 22,04 GA tiene las últimas correcciones ascendentes. Estas correcciones son esenciales para la compatibilidad con ONTAP.

Pasos
  1. Compruebe que está ejecutando las versiones de firmware y controlador del adaptador compatibles:

    # cat /sys/class/fc_host/host*/symbolic_name

    Ejemplo de salida

    QLE2872 FW: v9.14.02 DVR: v10.02.06.200-k
    QLE2872 FW: v9.14.02 DVR: v10.02.06.200-k
  2. Compruebe que ql2xnvmeenable está configurado. Esto permite que el adaptador Marvell funcione como iniciador NVMe/FC:

    # cat /sys/module/qla2xxx/parameters/ql2xnvmeenable
    1

Habilitar 1MB I/O (opcional)

ONTAP informa de un MDT (tamaño de transferencia de MAX Data) de 8 en los datos Identify Controller. Esto significa que el tamaño máximo de solicitud de E/S puede ser de hasta 1MB TB. Para emitir solicitudes de I/O de tamaño 1 MB para un host Broadcom NVMe/FC, debe aumentar lpfc el valor lpfc_sg_seg_cnt del parámetro a 256 con respecto al valor predeterminado de 64.

Nota Estos pasos no se aplican a los hosts Qlogic NVMe/FC.
Pasos
  1. Defina el lpfc_sg_seg_cnt parámetro en 256:

    cat /etc/modprobe.d/lpfc.conf
    options lpfc lpfc_sg_seg_cnt=256
  2. Ejecute dracut -f el comando y reinicie el host.

  3. Compruebe que el valor esperado de lpfc_sg_seg_cnt es 256:

    cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt

Configure NVMe/TCP

NVMe/TCP no tiene la funcionalidad de conexión automática. Por lo tanto, si una ruta deja de funcionar y no se restablece en el tiempo de espera predeterminado de 10 minutos, no se puede volver a conectar automáticamente NVMe/TCP. Para evitar que se agote el tiempo de espera, debe definir el período de reintento para los eventos de conmutación por error en al menos 30 minutos.

Pasos
  1. Compruebe que el puerto del iniciador pueda recuperar los datos de la página de registro de detección en las LIF NVMe/TCP admitidas:

    nvme discover -t tcp -w host-traddr -a traddr

    Ejemplo de salida:

    # nvme discover -t tcp -w 10.10.11.47-a 10.10.10.122
    
    Discovery Log Number of Records 8, Generation counter 10
    =====Discovery Log Entry 0======
    trtype:  tcp
    adrfam:  ipv4
    subtype: current discovery subsystem
    treq:    not specified
    portid:  0
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.bbfb4ee8dfb611edbd07d039ea165590:discovery
    traddr:  10.10.10.122
    eflags:  explicit discovery connections, duplicate discovery information
    sectype: none
    =====Discovery Log Entry 1======
    trtype:  tcp
    adrfam:  ipv4
    subtype: current discovery subsystem
    treq:    not specified
    portid:  1
    trsvcid: 8009
    subnqn:  nqn.1992 08.com.netapp:sn.bbfb4ee8dfb611edbd07d039ea165590:discovery
    traddr:  10.10.10.124
    eflags:  explicit discovery connections, duplicate discovery information
    sectype: none
    =====Discovery Log Entry 2======
    trtype:  tcp
  2. Compruebe que las demás combinaciones de LIF iniciador-destino NVMe/TCP puedan recuperar correctamente los datos de la página de registro de detección:

    nvme discover -t tcp -w host-traddr -a traddr

    Ejemplo de salida:

    #nvme discover -t tcp -w 10.10.10.47 -a 10.10.10.122
    #nvme discover -t tcp -w 10.10.10.47 -a 10.10.10.124
    #nvme discover -t tcp -w 10.10.11.47 -a 10.10.11.122
    #nvme discover -t tcp -w 10.10.11.47 -a 10.10.11.
  3. Ejecute el comando nvme connect-all en todos los LIF objetivo iniciador NVMe/TCP admitidos en todos los nodos y establezca el tiempo de espera de pérdida de la controladora durante al menos 30 minutos o 1800 segundos:

    nvme connect-all -t tcp -w host-traddr -a traddr -l 1800

    Ejemplo de salida:

    #	nvme	connect-all	-t	tcp	-w	10.10.10.47	-a	10.10.10.122 -l	1800
    #	nvme	connect-all	-t	tcp	-w	10.10.10.47	-a	10.10.10.124 -l	1800
    #	nvme	connect-all	-t	tcp	-w	10.10.11.47	-a	10.10.11.122 -l	1800
    #	nvme	connect-all	-t	tcp	-w	10.10.11.47	-a	10.10.11.124 -l	1800

Valide NVMe-of

Puede usar el siguiente procedimiento para validar NVME-oF.

Pasos
  1. Compruebe que la multivía NVMe en kernel esté habilitada:

    # cat /sys/module/nvme_core/parameters/multipath
    Y
  2. Compruebe que la configuración NVMe-oF adecuada (como, por ejemplo, el modelo configurado en la controladora NetApp ONTAP y la política de balanceo de carga establecida en round-robin) en los respectivos espacios de nombres de ONTAP se reflejen correctamente en el 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
  3. Verifique que los espacios de nombres se hayan creado y detectado correctamente en el host:

    # nvme list

    Ejemplo de salida:

    Node         SN                   Model
    ---------------------------------------------------------
    /dev/nvme0n1 81CZ5BQuUNfGAAAAAAAB	NetApp ONTAP Controller
    
    
    Namespace Usage    Format             FW             Rev
    -----------------------------------------------------------
    1                 21.47 GB / 21.47 GB	4 KiB + 0 B   FFFFFFFF
  4. Compruebe que el estado de la controladora de cada ruta sea activo y que tenga el estado de ANA correcto:

    NVMe/FC
    # nvme list-subsys /dev/nvme0n1

    Ejemplo de salida:

    nvme-subsys4 - NQN=nqn.1992-08.com.netapp:sn.8763d311b2ac11ed950ed039ea951c46:subsystem. ub_106 \
    +- nvme1 fc traddr=nn-0x20a6d039ea954d17:pn-0x20a7d039ea954d17,host_traddr=nn-0x200000109b1b95ef:pn-0x100000109b1b95ef live optimized
    +- nvme2 fc traddr=nn-0x20a6d039ea954d17:pn-0x20a8d039ea954d17,host_traddr=nn-0x200000109b1b95f0:pn-0x100000109b1b95f0 live optimized
    +- nvme3 fc traddr=nn-0x20a6d039ea954d17:pn-0x20aad039ea954d17,host_traddr=nn-0x200000109b1b95f0:pn-0x100000109b1b95f0 live non-optimized
    +- nvme5 fc traddr=nn-0x20a6d039ea954d17:pn-0x20a9d039ea954d17,host_traddr=nn-0x200000109b1b95ef:pn-0x100000109b1b95ef live non-optimized
    NVME/TCP
    # nvme list-subsys /dev/nvme1n1

    Ejemplo de salida:

    nvme-subsys1 - NQN=nqn.1992- 08.com.netapp:sn. bbfb4ee8dfb611edbd07d039ea165590:subsystem.rhel_tcp_95
    +- nvme1 tcp traddr=10.10.10.122,trsvcid=4420,host_traddr=10.10.10.47,src_addr=10.10.10.47 live
    +- nvme2 tcp traddr=10.10.10.124,trsvcid=4420,host_traddr=10.10.10.47,src_addr=10.10.10.47 live
    +- nvme3 tcp traddr=10.10.11.122,trsvcid=4420,host_traddr=10.10.11.47,src_addr=10.10.11.47 live
    +- nvme4 tcp traddr=10.10.11.124,trsvcid=4420,host_traddr=10.10.11.47,src_addr=10.10.11.47 live
  5. Confirmar que el complemento de NetApp muestra los valores correctos para cada dispositivo de espacio de nombres ONTAP:

    Columna
    # nvme netapp ontapdevices -o column

    Ejemplo de salida:

    Device        Vserver   Namespace Path
    ----------------------- ------------------------------
    /dev/nvme0n1 co_iscsi_tcp_ubuntu /vol/vol1/ns1
    
    
    
    NSID       UUID                                   Size
    ------------------------------------------------------------
    1          79c2c569-b7fa-42d5-b870-d9d6d7e5fa84	21.47GB
    JSON
    # nvme netapp ontapdevices -o json

    Ejemplo de salida

    {
    
    "ONTAPdevices" : [
    {
    
    "Device" : "/dev/nvme0n1",
    "Vserver" : "co_iscsi_tcp_ubuntu",
    "Namespace_Path" : "/vol/nvmevol1/ns1",
    "NSID" : 1,
    "UUID" : "79c2c569-b7fa-42d5-b870-d9d6d7e5fa84",
    "Size" : "21.47GB",
    "LBA_Data_Size" : 4096,
    "Namespace_Size" : 5242880
    },
    
    ]
    }

Problemas conocidos

La configuración de host de NVMe-oF para Ubuntu 22,04 con ONTAP tiene el siguiente problema conocido:

ID de error de NetApp Título Descripción

CONTAPEXT-2037

Los hosts NVMe-oF de Ubuntu 22,04 crean controladores de detección persistentes duplicados

En los hosts de NVMe-oF, puede utilizar el comando «nvme discover -p» para crear controladoras de detección persistente (PDCs). Este comando solo debe crear un PDC para cada combinación iniciador-destino. Sin embargo, si ejecuta Ubuntu 22,04 en un host NVMe-oF, se crea un PDC duplicado cada vez que se ejecuta «nvme discover -p». Esto lleva a un uso innecesario de recursos tanto en el host como en el destino.