Skip to main content
ONTAP SAN Host Utilities
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.

Configurar Proxmox VE 9.0 para NVMe-oF con almacenamiento ONTAP

Colaboradores netapp-pcarriga

El host Proxmox VE 9.0 admite los protocolos NVMe sobre canal de fibra (NVMe/FC) y NVMe sobre TCP (NVMe/TCP) con acceso asimétrico al espacio de nombres (ANA). ANA proporciona una funcionalidad de múltiples rutas equivalente al acceso a unidad lógica asimétrica (ALUA) en entornos iSCSI y FCP.

Aprenda a configurar hosts NVMe over Fabrics (NVMe-oF) para Proxmox VE 9.0. Para obtener más información sobre asistencia y funciones, consulte "Compatibilidad y funciones de ONTAP".

NVMe-oF con Proxmox VE 9.0 tiene la siguiente limitación conocida:

  • La configuración de arranque SAN para NVMe-FC no es compatible.

Paso 1: Verifique la versión del software y la configuración de NVMe

Para configurar su host para NVMe-oF, debe instalar los paquetes de software de host y NVMe, habilitar las rutas múltiples y verificar la configuración NQN de su host.

Pasos
  1. Instale Proxmox VE 9.0 en el servidor. Una vez completada la instalación, verifique que esté ejecutando el kernel Proxmox VE 9.0 requerido:

    uname -r

    Ejemplo de versión del kernel de Proxmox VE 9.0:

    6.14.8-2-pve
  2. Instale el nvme-cli paquete:

    apt list|grep nvme-cli

    El siguiente ejemplo muestra un nvme-cli versión del paquete:

    nvme-cli/stable,now 2.13-2 amd64
  3. Instale el libnvme paquete:

    apt list|grep libnvme

    El siguiente ejemplo muestra un libnvme versión del paquete:

    libnvme-dev/stable 1.13-2 amd64
  4. En el host, verifique la cadena hostnqn en /etc/nvme/hostnqn :

    cat /etc/nvme/hostnqn

    El siguiente ejemplo muestra una hostnqn valor:

    nqn.2014-08.org.nvmexpress:uuid:39333550-3333-4753-4844-32594d4a524c
  5. 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_proxmox_FC_NVMeFC
    Muestra el ejemplo
    Vserver Subsystem Priority  Host NQN
    ------- --------- --------  -----------------------------------------------
    vs_proxmox_FC_NVMeFC
            sub_176
                      regular   nqn.2014-08.org.nvmexpress:uuid:39333550-3333-4753-4844-32594d4a4834
                      regular   nqn.2014-08.org.nvmexpress:uuid:39333550-3333-4753-4844-32594d4a524c
    2 entries were displayed
    Nota Si el hostnqn Las cadenas no coinciden, utilice el vserver modify comando para actualizar el hostnqn cadena en el subsistema del sistema de almacenamiento ONTAP correspondiente para que coincida con el hostnqn cadena de /etc/nvme/hostnqn en el host.

Paso 2: Configurar NVMe/FC y NVMe/TCP

Configure NVMe/FC con adaptadores Broadcom/Emulex o Marvell/QLogic, o configure NVMe/TCP mediante operaciones de descubrimiento y conexión manuales.

Ejemplo 1. Pasos
NVMe/FC - Broadcom/Emulex

Configuración de NVMe/FC para un adaptador Broadcom/Emulex.

  1. Compruebe que está utilizando el modelo de adaptador admitido:

    1. Mostrar los nombres de los modelos:

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

      Debe ver la siguiente salida:

      SN1700E2P
      SN1700E2P
    2. Mostrar las descripciones del modelo:

      cat /sys/class/scsi_host/host*/modeldesc

      Debería ver un resultado similar al siguiente ejemplo:

    HPE SN1700E 64Gb 2p FC HBA
    HPE SN1700E 64Gb 2p FC HBA
  2. Compruebe que está utilizando la Broadcom recomendada lpfc firmware y controlador de bandeja de entrada:

    1. Mostrar la versión del firmware:

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

      El comando devuelve las versiones del firmware:

      14.4.473.14, sli-4:6:d
      14.4.473.14, sli-4:6:d
    2. Mostrar la versión del controlador de la bandeja de entrada:

      cat /sys/module/lpfc/version

      El siguiente ejemplo muestra una versión del controlador:

      0:14.4.0.7

    Para obtener la lista actual de versiones de firmware y controladores de adaptador compatibles, consulte la "Herramienta de matriz de interoperabilidad".

  3. Compruebe que lpfc_enable_fc4_type se establece en 3:

    cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type
  4. Compruebe que puede ver los puertos de iniciador:

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

    Debería ver un resultado similar a este:

    0x10005ced8c531948
    0x10005ced8c531949
  5. Compruebe que los puertos de iniciador estén en línea:

    cat /sys/class/fc_host/host*/port_state

    Debe ver la siguiente salida:

    Online
    Online
  6. Compruebe que los puertos de iniciador NVMe/FC estén habilitados y que los puertos de destino estén visibles:

    cat /sys/class/scsi_host/host*/nvme_info
    Muestra el ejemplo
    NVME Initiator Enabled
    XRI Dist lpfc0 Total 6144 IO 5894 ELS 250
    NVME LPORT lpfc0 WWPN x10005ced8c531948 WWNN x20005ced8c531948 DID x082400 ONLINE
    NVME RPORT       WWPN x200ed039eac79573 WWNN x200dd039eac79573 DID x060902 TARGET DISCSRVC ONLINE
    NVME RPORT       WWPN x2001d039eac79573 WWNN x2000d039eac79573 DID x060904 TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 0000000034 Cmpl 0000000034 Abort 00000000
    LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 0000000000142cfb Issue 0000000000142cfc OutIO 0000000000000001
            abort 00000005 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 00000005 Err 00000005
    
    NVME Initiator Enabled
    XRI Dist lpfc1 Total 6144 IO 5894 ELS 250
    NVME LPORT lpfc1 WWPN x10005ced8c531949 WWNN x20005ced8c531949 DID x082500 ONLINE
    NVME RPORT       WWPN x2010d039eac79573 WWNN x200dd039eac79573 DID x062902 TARGET DISCSRVC ONLINE
    NVME RPORT       WWPN x2007d039eac79573 WWNN x2000d039eac79573 DID x062904 TARGET DISCSRVC ONLINE
    
    NVME Statistics
    LS: Xmt 0000000034 Cmpl 0000000034 Abort 00000000
    LS XMIT: Err 00000000  CMPL: xb 00000000 Err 00000000
    Total FCP Cmpl 00000000000d39f1 Issue 00000000000d39f2 OutIO 0000000000000001
            abort 00000005 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000
    FCP CMPL: xb 00000005 Err 00000005
NVMe/FC - Marvell/QLogic

Configure NVMe/FC para un adaptador Marvell/QLogic.

  1. Verifique que esté utilizando el controlador del adaptador y las versiones de firmware compatibles:

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

    El siguiente ejemplo muestra las versiones del controlador y del firmware:

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

    cat /sys/module/qla2xxx/parameters/ql2xnvmeenable

    La salida esperada es 1.

NVMe/TCP

El protocolo NVMe/TCP no admite la operación de conexión automática. En su lugar, puede descubrir los subsistemas y espacios de nombres NVMe/TCP realizando la prueba NVMe/TCP. connect o connect-all operaciones manualmente.

  1. Verifique que el puerto iniciador pueda obtener los datos de la página de registro de descubrimiento a través de los LIF NVMe/TCP compatibles:

    nvme discover -t tcp -w host-traddr -a traddr
    Muestra el ejemplo
    nvme discover -t tcp -w 192.168.165.72 -a 192.168.165.51
    Discovery Log Number of Records 4, Generation counter 47
    =====Discovery Log Entry 0======
    trtype:  tcp
    adrfam:  ipv4
    subtype: current discovery subsystem
    treq:    not specified
    portid:  3
    trsvcid: 8009
    subnqn:  nqn.1992-08.com.netapp:sn.c770be5d934811f0b624d039eac809ba:discovery
    traddr:  192.168.165.51
    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.c770be5d934811f0b624d039eac809ba:discovery
    traddr:  192.168.166.50
    eflags:  explicit discovery connections, duplicate discovery information
    sectype: none
    =====Discovery Log Entry 2======
    trtype:  tcp
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified
    portid:  3
    trsvcid: 4420
    subnqn:  nqn.1992-08.com.netapp:sn.c770be5d934811f0b624d039eac809ba:subsystem.sub_176
    traddr:  192.168.165.51
    eflags:  none
    sectype: none
    =====Discovery Log Entry 3======
    trtype:  tcp
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified
    portid:  1
    trsvcid: 4420
    subnqn:  nqn.1992-08.com.netapp:sn.c770be5d934811f0b624d039eac809ba:subsystem.sub_176
    traddr:  192.168.166.50
    eflags:  none
    sectype: none
  2. Ejecute el nvme connect-all Comando en todos los LIF objetivo iniciador NVMe/TCP admitidos entre los nodos:

    nvme connect-all -t tcp -w host-traddr -a traddr
    Muestra el ejemplo
    nvme connect-all -t tcp -w 192.168.166.73 -a 192.168.166.50
    nvme connect-all -t tcp -w 192.168.166.73 -a 192.168.166.51
    nvme connect-all -t tcp -w 192.168.165.73 -a 192.168.165.50
    nvme connect-all -t tcp -w 192.168.165.73 -a 192.168.165.51

La configuración para NVMe/TCP ctrl_loss_tmo timeout se establece automáticamente en "apagado". Como resultado:

  • No hay límites en el número de reintentos (reintento indefinido).

  • No es necesario configurar manualmente un elemento específico. ctrl_loss_tmo timeout Duración al utilizar el nvme connect o nvme connect-all comandos (opción -l ).

  • Los controladores NVMe/TCP no experimentan tiempos de espera en caso de una falla de ruta y permanecen conectados indefinidamente.

Paso 3: Opcionalmente, habilite 1 MB de E/S para NVMe/FC

ONTAP informa un tamaño máximo de transferencia de datos (MDTS) de 8 en los datos del controlador de identificación. Esto significa que el tamaño máximo de solicitud de E/S puede ser de hasta 1 MB. Para emitir solicitudes de E/S de tamaño 1 MB para un host Broadcom NVMe/FC, debe aumentar el lpfc valor de la lpfc_sg_seg_cnt parámetro a 256 desde el 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

    Debería ver un resultado similar al siguiente ejemplo:

    options lpfc lpfc_sg_seg_cnt=256
  2. Ejecute dracut -f el comando y reinicie el host.

  3. Compruebe que el valor de lpfc_sg_seg_cnt es 256:

    cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt

Paso 4: Verificar los servicios de arranque NVMe

El nvmefc-boot-connections.service y nvmf-autoconnect.service Servicios de arranque incluidos en NVMe/FC nvme-cli Los paquetes se habilitan automáticamente cuando se inicia el sistema.

Una vez finalizado el arranque, verifique que nvmefc-boot-connections.service y nvmf-autoconnect.service Los servicios de arranque están habilitados.

Pasos
  1. Compruebe que nvmf-autoconnect.service está activado:

    systemctl status nvmf-autoconnect.service
    Muestra el resultado de ejemplo
    ○ nvmf-autoconnect.service - Connect NVMe-oF subsystems automatically during boot
         Loaded: loaded (/usr/lib/systemd/system/nvmf-autoconnect.service; enabled; preset: enabled)
         Active: inactive (dead) since Thu 2025-10-16 18:00:39 IST; 6 days ago
     Invocation: e146e0b2c339432aad6e0555a528872c
        Process: 1787 ExecStart=/usr/sbin/nvme connect-all --context=autoconnect (code=exited, status=0/SUCCESS)
       Main PID: 1787 (code=exited, status=0/SUCCESS)
       Mem peak: 2.4M
            CPU: 12ms
    Oct 16 18:00:39 HPE-DL365-14-176 systemd[1]: Starting nvmf-autoconnect.service - Connect NVMe-oF subsystems automatically during boot...
    Oct 16 18:00:39 HPE-DL365-14-176 systemd[1]: nvmf-autoconnect.service: Deactivated successfully.
    Oct 16 18:00:39 HPE-DL365-14-176 systemd[1]: Finished nvmf-autoconnect.service - Connect NVMe-oF subsystems automatically during boot.
  2. Compruebe que nvmefc-boot-connections.service está activado:

    systemctl status nvmefc-boot-connections.service
    Muestra el resultado de ejemplo
    nvmefc-boot-connections.service - Auto-connect to subsystems on FC-NVME devices found during boot
         Loaded: loaded (/usr/lib/systemd/system/nvmefc-boot-connections.service; enabled; preset: enabled)
         Active: inactive (dead) since Thu 2025-10-16 18:00:35 IST; 6 days ago
     Invocation: acf73ac1ef7a402198d6ecc4d075fab0
        Process: 1173 ExecStart=/bin/sh -c echo add > /sys/class/fc/fc_udev_device/nvme_discovery (code=exited, status=0/SUCCESS)
       Main PID: 1173 (code=exited, status=0/SUCCESS)
       Mem peak: 2.1M
            CPU: 11ms
    
    Oct 16 18:00:35 HPE-DL365-14-176 systemd[1]: nvmefc-boot-connections.service: Deactivated successfully.
    Oct 16 18:00:35 HPE-DL365-14-176 systemd[1]: Finished nvmefc-boot-connections.service - Auto-connect to subsystems on FC-NVME devices found during boot.

Paso 5: Verificar la configuración de rutas múltiples

Verifique que el estado de multivía de NVMe en kernel, el estado de ANA y los espacios de nombres de ONTAP sean correctos para la configuración de NVMe-oF.

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

    cat /sys/module/nvme_core/parameters/multipath

    Debe ver la siguiente salida:

    Y
  2. Verifique que las configuraciones NVMe-oF adecuadas (por ejemplo, el modelo establecido en NetApp ONTAP Controller y la política de equilibrio de carga establecida en round-robin) para los espacios de nombres ONTAP se muestren correctamente en el host:

    1. Mostrar los subsistemas:

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

      Debe ver la siguiente salida:

      NetApp ONTAP Controller
      NetApp ONTAP Controller
    2. Mostrar la política:

      cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy

      Debe ver la siguiente salida:

    queue-depth
    queue-depth
  3. Verifique que los espacios de nombres se hayan creado y detectado correctamente en el host:

    nvme list
    Muestra el ejemplo
    Node          Generic     SN                   Model                    Namespace  Usage                      Format           FW Rev
    ------------- ----------- -------------------- ------------------------ ---------- -------------------------- ---------------- --------
    /dev/nvme2n1  /dev/ng2n1  81PqYFYq2aVAAAAAAAAB NetApp ONTAP Controller   0x1         17.88  GB / 171.80  GB      4 KiB +  0 B   9.17.1
  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/nvme3n9
    Muestra el ejemplo
    nvme-subsys3 - NQN=nqn.1992-08.com.netapp:sn.94929fdb84eb11f0b624d039eac809ba:subsystem.sub_176
                   hostnqn=nqn.2014-08.org.nvmexpress:uuid:39333550-3333-4753-4844-32594d4a524c
    \
     +- nvme1 fc traddr=nn-0x200dd039eac79573:pn-0x2010d039eac79573,host_traddr=nn-0x20005ced8c531949:pn-0x10005ced8c531949 live optimized
     +- nvme3 fc traddr=nn-0x200dd039eac79573:pn-0x200ed039eac79573,host_traddr=nn-0x20005ced8c531948:pn-0x10005ced8c531948 live optimized
    +- nvme5 fc traddr=nn-0x200dd039eac79573:pn-0x200fd039eac79573,host_traddr=nn-0x20005ced8c531949:pn-0x10005ced8c531949 live non-optimized
     +- nvme7 fc traddr=nn-0x200dd039eac79573:pn-0x2011d039eac79573,host_traddr=nn-0x20005ced8c531948:pn-0x10005ced8c531948 live non-optimized
    NVMe/TCP
    nvme list-subsys /dev/nvme2n3
    Muestra el ejemplo
    nvme-subsys2 - NQN=nqn.1992-08.com.netapp:sn.c770be5d934811f0b624d039eac809ba:subsystem.sub_176
                   hostnqn=nqn.2014-08.org.nvmexpress:uuid:39333550-3333-4753-4844-32594d4a524c
    \
     +- nvme2 tcp traddr=192.168.166.50,trsvcid=4420,host_traddr=192.168.166.73,src_addr=192.168.166.73 live optimized
     +- nvme4 tcp traddr=192.168.165.51,trsvcid=4420,host_traddr=192.168.165.73,src_addr=192.168.165.73 live optimized
    +- nvme6 tcp traddr=192.168.166.51,trsvcid=4420,host_traddr=192.168.166.73,src_addr=192.168.166.73 live non-optimized
     +- nvme8 tcp traddr=192.168.165.50,trsvcid=4420,host_traddr=192.168.165.73,src_addr=192.168.165.73 live non-optimized
  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
    Muestra el ejemplo
    Device        Vserver               Namespace Path
    ------------- --------------------- ------------------------------
    /dev/nvme2n9  vs_proxmox_FC_NVMeFC  /vol/vol_180_data_nvmefc4/ns
    
    NSID       UUID                            Size
    ---- ------------------------------------  --------
    1    e3d3d544-de8b-4787-93af-bfec7769e909  32.21GB
    JSON
    nvme netapp ontapdevices -o json
    Muestra el ejemplo
    {
          "Device":"/dev/nvme2n9",
          "Vserver":"vs_proxmox_FC_NVMeFC",
          "Subsystem":"sub_176",
          "Namespace_Path":"/vol/vol_180_data_nvmefc4/ns",
          "NSID":9,
          "UUID":"e3d3d544-de8b-4787-93af-bfec7769e909",
          "LBA_Size":4096,
          "Namespace_Size":32212254720,
          "UsedBytes":67899392,
          "Version":"9.17.1"
        }
      ]

Paso 6: Revise los problemas conocidos

No hay problemas conocidos.