Contenido

Introducción

Antecedentes

Verificación y actualización del controlador nfnic

Comprobando el controlador instalado

Actualización del controlador nfnic

Configuración del controlador nfnic

Configuración del Parámetro de Profundidad de Cola

Configure la E/S pendiente en el punto final del protocolo

Introducción

Este documento describe el proceso de configuración de la profundidad de cola máxima y la entrada/salida pendiente (IO) en un controlador nativo de tarjeta de interfaz de red de canal de fibra (nfnic). En el hipervisor VMware ESXi 6.7, el controlador de tarjeta de interfaz de red (fnic) de canal de fibra se reemplazó por el controlador nfnic para todos los adaptadores de Cisco.

La profundidad de cola predeterminada del controlador nfnic se establece en 32 y en todas las versiones iniciales del controlador nfnic no hay manera de ajustar la profundidad de la cola nfnic. Esto limita todas las Profundidades Máximas de Cola de Dispositivos y las Solicitudes de Número de Programación de Disco Pendientes a 32. También ha causado problemas al utilizar los volúmenes virtuales de vSphere, ya que la profundidad de cola recomendada es de 128. Los efectos de este límite también se pueden ver en cualquier VM que experimente una carga de trabajo mayor y requiera una profundidad de cola mayor en general.

Contribuidos por Michael Baba, Josh Good y Alejandro Marino; Ingenieros del TAC de Cisco.

Antecedentes

Mejora creada para agregar la capacidad de configurar el parámetro de profundidad de cola: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvo09082

A partir de la versión 4.0.0.35 del controlador nfnic, puede ajustar "lun_queue_depth_per_path" a través de la interfaz de línea de comandos (CLI) de ESXi. Esta versión del controlador se puede instalar manualmente en el host ESXi si aún no está en él.

El controlador nfnic 4.0.0.35 se puede encontrar en el paquete de firmware de servidor blade UCS 4.0.4 y también se puede descargar por separado de VMware. Debe consultar la página Compatibilidad de hardware y software de UCS para obtener el controlador recomendado más reciente para su combinación específica de hardware y software.

Verificación y actualización del controlador nfnic

Comprobando el controlador instalado

Para verificar la versión instalada actualmente del controlador nfnic, ejecute:

esxcli software vib list | grep nfnic

Debería ver algo como:

[root@localhost:~] esxcli software vib list | grep nfnic

nfnic                          4.0.0.14-1OEM.670.1.28.10302608         Cisco        VMwareCertified   2019-08-24

[root@localhost:~]

Si no ve ningún resultado, actualmente no tiene instalado el controlador nfnic. Consulte la página Compatibilidad de hardware y software de UCS para comprobar si su configuración debe utilizar el controlador nfnic o fnic.

Actualización del controlador nfnic

Las instrucciones detalladas para instalar los controladores más recientes están fuera del alcance de esta guía. Consulte Instalación del controlador UCS para sistemas operativos comunes o la documentación de VMware para obtener instrucciones paso a paso para actualizar el controlador. Una vez actualizado el controlador, puede utilizar los mismos comandos anteriores para verificar la versión.

Configuración del controlador nfnic

Configuración del Parámetro de Profundidad de Cola

Una vez instalado el controlador correcto, podemos verificar que los parámetros del módulo estén disponibles para configurarlos con:

esxcli system module parameters list -m nfnic

Podemos ver en este resultado que el valor predeterminado está establecido en 32, sin embargo, podemos configurar cualquier valor entre 1 y 1024. Si utiliza Volúmenes virtuales vSphere, se recomienda establecer este valor en 128. Recomendamos ponerse en contacto con VMware y su proveedor de almacenamiento para obtener otras recomendaciones específicas.

Ejemplo de Salida:

[root@localhost:~] esxcli system module parameters list -m nfnic

Name                      Type   Value  Description

------------------------  -----  -----  --------------------------------------------------------------

lun_queue_depth_per_path  ulong         nfnic lun queue depth per path: Default = 32. Range [1 - 1024]

[root@localhost:~]

Para cambiar el parámetro Queue Depth (Profundidad de cola), el comando se muestra a continuación. En el siguiente ejemplo lo estamos cambiando a 128, pero su valor puede ser diferente según su entorno.

esxcli system module parameters set -m nfnic -p lun_queue_depth_per_path=128

Utilizando el mismo comando que el anterior, podemos configurar que se ha realizado el cambio:

[root@localhost:~] esxcli system module parameters list -m nfnic

Name                      Type   Value  Description

------------------------  -----  -----  --------------------------------------------------------------

lun_queue_depth_per_path  ulong  128    nfnic lun queue depth per path: Default = 32. Range [1 - 1024]

[root@localhost:~]

Configure la E/S pendiente en el punto final del protocolo

Ahora podemos configurar los E/S pendientes en el punto final del protocolo para que coincidan con la profundidad de cola anterior (en nuestro ejemplo, 128) y luego verificar para asegurarse de que ambos valores han cambiado a 128.

NOTE: Es posible que deba reiniciar el host antes de que se pueda realizar este cambio de configuración.

Para cambiar la profundidad de cola de un dispositivo específico:

esxcli storage core device set -O 128 -d naa.xxxxxxxxx

Para encontrar el ID del dispositivo puede utilizar el siguiente comando:

esxcli storage core device list

Para confirmar los cambios para un dispositivo específico:

esxcli storage core device list -d naa.xxxxxxxxxx

Un ejemplo con resultado. Podemos ver que la "Profundidad máxima de cola de dispositivos" y "Número de E/S sobresalientes con mundos de la competencia" siguen siendo 32.

[root@localhost:~] esxcli storage core device list -d naa.600a09803830462d803f4c6e68664e2d

naa.600a09803830462d803f4c6e68664e2d

Display Name: VMWare_SAS_STG_01

Has Settable Display Name: true

Size: 2097152

Device Type: Direct-Access

Multipath Plugin: NMP

Devfs Path: /vmfs/devices/disks/naa.600a09803830462d803f4c6e68664e2d

Vendor: NETAPP

...snip for length...

Is Boot Device: false

Device Max Queue Depth: 32

No of outstanding IOs with competing worlds: 32

Drive Type: unknown

RAID Level: unknown

Number of Physical Drives: unknown

Protection Enabled: false

PI Activated: false

PI Type: 0

PI Protection Mask: NO PROTECTION

Supported Guard Types: NO GUARD SUPPORT

DIX Enabled: false

DIX Guard Type: NO GUARD SUPPORT

Emulated DIX/DIF Enabled: false

Ahora lo cambiamos a 128 para este dispositivo

esxcli storage core device set -O 128 -d naa.600a09803830462d803f4c6e68664e2d

Y al comprobar el mismo resultado, podemos ver "Profundidad máxima de cola de dispositivos" y "Número de E/S sobresalientes con mundos competidores": ambos son ahora 128. Si los cambios no se reflejan inmediatamente, es posible que sea necesario reiniciar el host ESXi.

[root@localhost:~] esxcli storage core device list -d naa.600a09803830462d803f4c6e68664e2d

naa.600a09803830462d803f4c6e68664e2d

Display Name: VMWare_SAS_STG_01

Has Settable Display Name: true

Size: 2097152

Device Type: Direct-Access

Multipath Plugin: NMP

Devfs Path: /vmfs/devices/disks/naa.600a09803830462d803f4c6e68664e2d

Vendor: NETAPP

...snip for length...

Is Boot Device: false

Device Max Queue Depth: 128

No of outstanding IOs with competing worlds: 128

Drive Type: unknown

RAID Level: unknown

Number of Physical Drives: unknown

Protection Enabled: false

PI Activated: false

PI Type: 0

PI Protection Mask: NO PROTECTION

Supported Guard Types: NO GUARD SUPPORT

DIX Enabled: false

DIX Guard Type: NO GUARD SUPPORT

Emulated DIX/DIF Enabled: false