VMware proporciona el complemento de alto rendimiento (High-Performance Plug-in, HPP) para mejorar el rendimiento de dispositivos de almacenamiento en el host ESXi.

HPP reemplaza a NMP en los dispositivos de alta velocidad, como NVMe. El HPP es el complemento predeterminado que notifica los destinos de NVMe-oF. ESXi Admite la emulación SCSI a NVMe y NVMe de extremo a extremo sin. HPP solo admite destinos de ALUA implícitos y activos/activos.

A partir de vSphere 7.0 Update 2, HPP se convierte en el complemento predeterminado para los dispositivos NVMe y SCSI locales, pero puede reemplazarlo por NMP.

Compatibilidad con HPP vSphere 7.0 Update 2 y versiones posteriores
Dispositivos de almacenamiento NVMe y SCSI locales

NVMe-oF compartido (solo destinos de ALUA activos/activos y de ALUA implícitos)

Múltiples rutas
Complementos de segundo nivel No
Reservas persistentes de SCSI-3 No
Dispositivos 4Kn con emulación de software

Esquemas de selección de rutas de acceso

Para admitir múltiples rutas, HPP utiliza los esquemas de selección de rutas de acceso (PSS) al seleccionar rutas de acceso físicas para las solicitudes de E/S.

Puede utilizar vSphere Client o el comando esxcli para cambiar el mecanismo de selección de rutas de acceso predeterminado.

Para obtener información sobre cómo configurar los mecanismos de ruta de acceso en vSphere Client, consulte Cambiar la directiva de selección de rutas de acceso. Para configurar con el comando esxcli, consulte Comandos ESXCLI HPP de ESXi.

ESXi admite los siguientes mecanismos de selección de rutas de acceso.

FIJA
Con este esquema, se utiliza una ruta de acceso preferida designada para las solicitudes de E/S. Si la ruta de acceso preferida no está asignada, el host selecciona la primera ruta de acceso en funcionamiento detectada en el momento del arranque del sistema. Si la ruta de acceso preferida deja de estar disponible, el host selecciona una ruta alternativa disponible. El host regresa a la ruta de acceso preferida definida previamente cuando vuelve a estar disponible.

Cuando configure FIJO como mecanismo de selección de rutas de acceso, seleccione la ruta de acceso preferida.

LB-RR (equilibrio de carga - Round Robin)
Este es el esquema predeterminado para los dispositivos reclamados por HPP. Después de transferir un número especificado de bytes o E/S en una ruta de acceso actual, el esquema selecciona la ruta de acceso mediante el algoritmo Round Robin.
Para configurar el mecanismo de selección de rutas de acceso de LB-RR, especifique las siguientes propiedades:
  • IOPS indica el recuento de E/S en la ruta de acceso que se utilizará como criterio para cambiar una ruta de acceso para el dispositivo.
  • Bytes indica el recuento de bytes en la ruta de acceso que se utilizará como criterio para cambiar una ruta de acceso para el dispositivo.
LB-IOPS (equilibrio de carga - IOPS)
Después de transferir un número especificado de E/S en una ruta de acceso actual, el valor predeterminado es 1000, el sistema selecciona una ruta de acceso óptima que tenga el menor número de E/S pendientes.

Al configurar este mecanismo, especifique el parámetro IOPS para indicar el recuento de E/S en la ruta de acceso que se utilizará como criterio para cambiar una ruta de acceso para el dispositivo.

LB-BYTES (equilibrio de carga - bytes)
Después de transferir un número especificado de bytes en una ruta de acceso actual, el valor predeterminado es 10 MB, el sistema selecciona una ruta de acceso óptima que tiene el menor número de bytes pendientes.

Para configurar este mecanismo, utilice el parámetro Bytes para indicar el recuento de bytes en la ruta de acceso que se utilizará como criterio para cambiar una ruta de acceso para el dispositivo.

Equilibrio de carga-latencia (LB - latencia)
Para conseguir mejores resultados de equilibrio de carga, el mecanismo selecciona de forma dinámica una ruta de acceso óptima teniendo en cuenta las siguientes características de la ruta de acceso:
  • El parámetro Tiempo de evaluación de latencia indica en qué intervalo de tiempo, en milisegundos, se debe evaluar la latencia de las rutas de acceso.
  • El parámetro E/S de muestreo por ruta de acceso controla cuántas operaciones de E/S de ejemplo se deben emitir en cada ruta de acceso para calcular la latencia de la ruta de acceso.

Prácticas recomendadas de HPP

Para alcanzar el rendimiento más rápido desde un dispositivo de almacenamiento de alta velocidad, siga estas recomendaciones.

  • Utilice la versión de vSphere que admita HPP.
  • Utilice HPP para los dispositivos NVMe y SCSI locales, y dispositivos NVMe-oF.
  • Si utiliza dispositivos NVMe over Fibre Channel, siga las recomendaciones generales para el almacenamiento de Fibre Channel. Consulte Usar ESXi con SAN de canal de fibra.
  • Si usa NVMe-oF, no mezcle los tipos de transporte para acceder al mismo espacio de nombres.
  • Cuando utilice espacios de nombres NVMe-oF, asegúrese de que se presenten rutas activas al host. Los espacios de nombres no se pueden registrar hasta que se detecte la ruta de acceso activa.
  • Al configurar las máquinas virtuales, puede usar controladoras de VMware Paravirtual o agregar controladoras de NVMe. Ambos tipos tienen sus ventajas y desventajas. Para comprobar cuál funciona mejor para su entorno, consulte Condiciones, limitaciones y compatibilidad de las controladoras de almacenamiento NVMe, SCSI y SATA en la documentación de Administrar máquinas virtuales de vSphere.
  • Establezca el umbral de sensibilidad de latencia.
  • Si una sola máquina virtual impulsa una parte significativa de la carga de trabajo de E/S del dispositivo, considere la posibilidad de distribuir las operaciones de E/S entre varios discos virtuales. Asocie los discos a distintas controladoras virtuales en la máquina virtual.

    De lo contrario, el rendimiento de las operaciones de E/S podría verse limitado por la saturación del núcleo de CPU que se encarga de procesar las operaciones de E/S en una controladora de almacenamiento virtual en particular.

Para obtener información sobre identificadores de dispositivos para dispositivos NVMe que solo admiten el formato NGUID, consulte Dispositivos NVMe con identificadores de dispositivo NGUID.

Habilitar el complemento de alto rendimiento y los esquemas de selección de rutas de acceso

El complemento de alto rendimiento (HPP) es el complemento predeterminado que reclama dispositivos NVMe y SCSI locales, y destinos NVMe-oF. Si es necesario, puede reemplazarlo por NMP. En vSphere versión 7.0 Update 1 y versiones anteriores, NMP sigue siendo el complemento predeterminado para dispositivos NVMe y SCSI locales, pero puede reemplazarlo por HPP.

Use el comando esxcli storage core claimrule add para habilitar HPP o NMP en el host ESXi.

Para ejecutar esxcli storage core claimrule add, puede usar ESXi Shell o vSphere CLI. Para obtener más información, consulte Introducción a ESXCLI y Referencia de ESXCLI.

Los ejemplos de este tema muestran cómo habilitar HPP y configurar los esquemas de selección de rutas de acceso (Path Selection Schemes, PSS).
Nota: No se admite la habilitación de HPP en hosts ESXi con arranque PXE.

Requisitos previos

Configure el entorno de almacenamiento de NVMe de VMware. Para obtener más información, consulte Acerca del almacenamiento de NVMe de VMware.

Procedimiento

  1. Cree una regla de notificación de HPP mediante la ejecución del comando esxcli storage core claimrule add.
    Utilice uno de los siguientes métodos para agregar la regla de notificación:
    Método Descripción
    Según el modelo de controlador de NVMe esxcli storage core claimrule add –-type vendor --nvme-controller-model

    Por ejemplo, esxcli storage core claimrule add --rule 429 --type vendor --nvme-controller-model "ABCD*" --plugin HPP

    Según el ID de proveedor y de subproveedor de PCI esxcli storage core claimrule add –-type vendor –-pci-vendor-id –-pci-sub-vendor-id

    Por ejemplo, esxcli storage core claimrule add --rule 429 --type vendor --pci-vendor-id 8086 --pci-sub-vendor-id 8086 --plugin HPP.

  2. Configure el PSS.
    Utilice uno de los siguientes métodos.
    Método Descripción
    Configure el PSS en función del ID de dispositivo esxcli storage hpp device set

    Por ejemplo, esxcli storage hpp device set --device=device --pss=FIXED --path=preferred path

    Configure el PSS en función del proveedor/modelo Utilice la opción --config-string con el comando esxcli storage core claimrule add.

    Por ejemplo, esxcli storage core claimrule add -r 914 -t vendor -V vendor -M model -P HPP --config-string "pss=LB-Latency,latency-eval-time=40000"

  3. Reinicie el host para que se apliquen los cambios.

Establecer el umbral de sensibilidad de latencia

Cuando utilice HPP para los dispositivos de almacenamiento, establezca el umbral de sensibilidad de latencia del dispositivo para que las operaciones de E/S puedan evitar al programador de E/S.

De forma predeterminada, ESXi pasa cada E/S mediante el programador de E/S. El uso del programador, sin embargo, podría crear una cola interna, lo cual no es eficaz con los dispositivos de almacenamiento de alta velocidad.

Puede configurar el umbral de sensibilidad de latencia y habilitar el mecanismo de envío directo que ayuda a las operaciones de E/S a omitir al programador. Con este mecanismo habilitado, las operaciones de E/S pasan directamente desde PSA, a través de HPP, hacia el controlador del dispositivo.

Para que el envío directo funcione correctamente, la latencia promedio de E/S observada debe ser menor que el umbral de latencia especificado. Si la latencia de E/S supera el umbral de latencia, el sistema detiene el envío directo y vuelve a utilizar temporalmente el programador de E/S. Cuando la latencia promedio de E/S vuelve a caer por debajo del umbral de latencia, se reanuda el envío directo.

Puede establecer el umbral de latencia de una familia de dispositivos reclamados por HPP. Establezca el umbral de latencia mediante el par de proveedor y modelo, el modelo de controladora o el par ID de proveedor PCIe y ID de subproveedor.

Procedimiento

  1. Establezca el umbral de sensibilidad de latencia para el dispositivo con el siguiente comando:
    Valor esxcli Storage Core Device LatencyThreshold Set-t en milisegundos

    Use una de las siguientes opciones.

    Opción Ejemplo
    Proveedor/modelo Establezca el parámetro de umbral sensible de latencia para todos los dispositivos con el proveedor y el modelo indicados: esxcli Storage Core Device LatencyThreshold Set-v ' vendor1 '-m ' Model1 '-t 10
    Modelo de controlador NVMe Establezca el umbral sensible de latencia para todos los dispositivos NVMe con el modelo de controlador indicado: esxcli Storage Core Device LatencyThreshold Set-c ' controller_model1 '-t 10
    ID de proveedor/subproveedor de PCIe Establezca el umbral de sensibilidad de latencia para los dispositivos con 0x8086 como identificador de proveedor de PCIe y 0x8086 como identificador de subproveedor de PCIe. esxcli Storage Core Device LatencyThreshold Set-p ' 8086 '-s ' 8086 '-t 10
  2. Compruebe que el umbral de latencia esté establecido:
    esxcli storage core device latencythreshold list
    Device                Latency Sensitive Threshold
    --------------------  ---------------------------
    naa.55cd2e404c1728aa               0 milliseconds
    naa.500056b34036cdfd               0 milliseconds
    naa.55cd2e404c172bd6              50 milliseconds
    
  3. Supervise el estado del umbral de sensibilidad de latencia. Compruebe los registros de VMkernel para las siguientes entradas:
    • Latency Sensitive Gatekeeper turned on for device device. Threshold of XX msec is larger than max completion time of YYY msec
    • Latency Sensitive Gatekeeper turned off for device device. Threshold of XX msec is exceeded by command completed in YYY msec

Comandos ESXCLI HPP de ESXi

Puede utilizar los comandos CLI de vSphere o ESXi Shell para configurar y supervisar el complemento de alto rendimiento.

Consulte Introducción a ESXCLI para obtener una introducción y Referencia de ESXCLI para conocer los detalles sobre el uso del comando esxcli.

Comando Descripción Opciones
esxcli storage hpp path list Enumerar las rutas de acceso actualmente reclamadas por el complemento de alto rendimiento. -d|--device=device Muestre la información de un dispositivo específico.

-p|--path=path Limite la salida a una ruta de acceso específica.

esxcli storage hpp device list Enumerar los dispositivos actualmente controlados por el complemento de alto rendimiento. -d|--device=device Muestre un dispositivo específico.
esxcli storage hpp device set Configurar los ajustes de un dispositivo HPP. -B|--bytes=long Bytes máximos en la ruta de acceso, después del cual se cambia la ruta de acceso.

--cfg-file Actualice el tiempo de ejecución y el archivo de configuración con la nueva configuración. Si otro PSS reclama el dispositivo, ignore cualquier error cuando se aplique a la configuración de tiempo de ejecución.

-d|--device=device El dispositivo HPP donde se opera. Utilizar cualquiera de los UID que informa el dispositivo. Requerido.

-I|--iops= long IOPS máximos en la ruta de acceso, después de los cuales se cambia la ruta de acceso.

-T|--latency-eval-time= long Controle en qué intervalo, en milisegundo, se debe evaluar la latencia de las rutas de acceso.

-L|--mark-device-local= bool Establezca HPP para tratar el dispositivo como local o no.

-M|--mark-device-ssd=bool Especifique si HPP trata al dispositivo como un disco SSD.

-p|--path= str La ruta de acceso que se va a establecer como la ruta de acceso preferida para el dispositivo.

-P|--pss= pss_name El esquema de selección de rutas de acceso que se asignará al dispositivo. Si no especifica el valor, el sistema selecciona el valor predeterminado. Para obtener la descripción de los esquemas de selección de rutas de acceso, consulte Complemento de alto rendimiento de VMware y esquemas de selección de rutas de acceso. Las opciones incluyen:
  • FIJO

    Utilice la subopción -p|--path=str para establecer la ruta de acceso preferida.

  • LB-Bytes

    Utilice la subopción -B|--bytes= long para especificar la entrada.

  • LB-IOPs

    Utilice la subopción -I|--iops= long para especificar la entrada.

  • LB-Latency

    Las subopciones incluyen:

    -T|--latency-eval-time=long

    -S|--sampling-ios-per-path=long

  • LB-RR Predeterminado

    Las subopciones incluyen:

    -B|--bytes=long

    -I|--iops=long

-S|--sampling-ios-per-path= long Controle cuántas operaciones de E/S de ejemplo se deben emitir en cada ruta de acceso para calcular la latencia de la ruta de acceso.

-U|--use-ano= bool Establezca la opción en true para incluir rutas de acceso no optimizadas en el conjunto de rutas de acceso activas utilizadas para emitir operaciones de E/S en este dispositivo. De lo contrario, establezca la opción en false.

esxcli storage hpp device usermarkedssd list Enumerar los dispositivos que el usuario marcó o desmarcó como SSD. -d|--device=device Limite la salida a un dispositivo específico.