VMware fornisce plug-in ad alte prestazioni (HPP) per migliorare le prestazioni dei dispositivi di storage sull'host ESXi.

HPP sostituisce NMP per i dispositivi ad alta velocità, come NVMe. HPP è il plug-in predefinito che reclama destinazioni NVMe-oF. ESXi supporta NVMe end to end senza e l'emulazione SCSI su NVMe. Il programma HPP supporta solo destinazioni ALUA attive-attive e implicite.

A partire da vSphere 7.0 Update 2, HPP diventa il plug-in predefinito per i dispositivi NVMe e SCSI locali, ma è possibile sostituirlo con NMP.

Supporto HPP vSphere 7.0 Update 2 e versioni successive
Dispositivi di storage SCSI e NVMe locale

NVMe-oF condiviso (solo destinazioni ALUA attive-attive e implicite)

Percorsi multipli
Plug-in di secondo livello No
Prenotazioni persistenti SCSI-3 No
Dispositivi 4Kn con emulazione software

Schemi di selezione percorso

Per supportare il multipathing, HPP utilizza gli schemi PSS (Path Selection Scheme) quando seleziona percorsi fisici per le richieste di I/O.

È possibile utilizzare il comando vSphere Client o esxcli per modificare il meccanismo di selezione del percorso predefinito.

Per informazioni sulla configurazione dei meccanismi di percorso in vSphere Client, vedere Modifica del criterio di selezione del percorso. Per configurare con il comando esxcli, vedere Comandi ESXi esxcli HPP.

ESXi supporta i seguenti meccanismi di selezione del percorso.

FIXED
Con questo schema, per le richieste di I/O viene utilizzato un percorso preferito designato. Se il percorso preferito non è assegnato, l'host seleziona il primo percorso di lavoro rilevato all'avvio. Se il percorso preferito diventa non disponibile, l'host seleziona un percorso alternativo disponibile. L'host torna al percorso preferito precedentemente definito quando diventa di nuovo disponibile.

Quando si configura FISSO come meccanismo di selezione del percorso, selezionare il percorso preferito.

LB-RR (Bilanciamento del carico - Round robin)
Questo è lo schema predefinito per i dispositivi attestati da HPP. Dopo aver trasferito un numero specificato di byte o I/O in un percorso corrente, lo schema seleziona il percorso utilizzando l'algoritmo round robin.
Per configurare il meccanismo di selezione del percorso LB-RR, specificare le proprietà seguenti:
  • IOPS indica il numero di I/O sul percorso da utilizzare come criteri per cambiare un percorso per il dispositivo.
  • Byte indica il conteggio dei byte sul percorso da utilizzare come criteri per cambiare un percorso per il dispositivo.
LB-IOPS (Bilanciamento del carico - IOPs)
Dopo aver trasferito un numero specificato di I/O in un percorso corrente (il valore predefinito è 1000) il sistema seleziona un percorso ottimale che abbia il minor numero di I/O in sospeso.

Quando si configura questo meccanismo, specificare il parametro IOPS per indicare il conteggio I/O sul percorso da utilizzare come criterio per cambiare un percorso per il dispositivo.

BYTE LB (Bilanciamento del carico - Byte)
Dopo aver trasferito un numero specificato di byte in un percorso corrente (il valore predefinito è 10 MB) il sistema seleziona un percorso ottimale con il minor numero di byte in sospeso.

Per configurare questo meccanismo, utilizzare il parametro Byte per indicare il conteggio dei byte sul percorso da utilizzare come criteri per cambiare un percorso per il dispositivo.

Bilanciamento del carico - Latenza (LB-Latency)
Per ottenere risultati di bilanciamento del carico migliori, il meccanismo seleziona dinamicamente un percorso ottimale considerando le seguenti caratteristiche del percorso:
  • Il parametro Tempo di valutazione della latenza indica in quale intervallo di tempo, in millisecondi, è necessario valutare la latenza dei percorsi.
  • Il parametro I/O di campionamento per percorso controlla il numero di I/O campione che devono essere emessi in ciascun percorso per calcolare la latenza del percorso.

Procedure consigliate per HPP

Per ottenere la velocità effettiva più rapida da un dispositivo di storage ad alta velocità, seguire queste raccomandazioni.

  • Utilizzare la versione vSphere che supporta HPP.
  • Utilizzare HPP per i dispositivi NVMe e SCSI locali e per i dispositivi NVMe-oF.
  • Se si utilizza NVMe sui dispositivi Fibre Channel, seguire le raccomandazioni generali per lo storage Fibre Channel. Vedere Utilizzo di ESXi con SAN Fibre Channel.
  • Se si utilizza NVMe-oF, non combinare tipi di trasporto per accedere allo stesso spazio dei nomi.
  • Quando si utilizzano spazi dei nomi NVMe-oF, assicurarsi che i percorsi attivi siano presentati all'host. Gli spazi dei nomi non possono essere registrati finché non viene individuato il percorso attivo.
  • Quando si configurano le macchine virtuali, è possibile utilizzare i controller VMware Paravirtual o aggiungere i controller NVMe. Entrambi i tipi di controller hanno vantaggi e svantaggi. Per verificare quale funziona meglio nell'ambiente in uso, vedere Condizioni, limitazioni e compatibilità dei controller di storage SCSI, SATA e NVMe nella documentazione Amministrazione delle macchine virtuali vSphere.
  • Impostare la soglia sensibile alla latenza.
  • Se una singola macchina virtuale determina una quota significativa del carico di lavoro di I/O del dispositivo, è consigliabile distribuire l'I/O su più dischi virtuali. Collegare i dischi a controller virtuali separati nella macchina virtuale.

    In caso contrario, la velocità di I/O effettiva potrebbe essere limitata a causa della saturazione del core della CPU responsabile dell'elaborazione degli I/O su un determinato controller di storage virtuale.

Per informazioni sugli identificatori dei dispositivi NVMe che supportano solo il formato ID NGUID, vedere Dispositivi NVMe con identificatori di dispositivo NGUID.

Abilitazione del plug-in ad alte prestazioni e degli schemi di selezione del percorso

Il plug-in ad alte prestazioni (HPP) è il plug-in predefinito che richiede dispositivi NVMe e SCSI locali e destinazioni NVMe-oF. Se necessario, è possibile sostituirlo con NMP. Nella versione vSphere 7.0 Update 1 e precedenti, NMP rimane il plug-in predefinito per i dispositivi NVMe e SCSI locali, ma è possibile sostituirlo con HPP.

Utilizzare il comando di esxcli storage core claimrule add per abilitare HPP o NMP nell'host ESXi.

Per eseguire esxcli storage core claimrule add, è possibile utilizzare ESXi Shell o vSphere CLI. Per ulteriori informazioni, vedere Guida introduttiva a ESXCLI e Guida di riferimento di ESXCLI.

Esempi di questo argomento illustrano come abilitare HPP e configurare gli schemi di selezione del percorso (PSS).
Nota: L'abilitazione del programma HPP non è supportata sugli host ESXi con avvio PXE.

Prerequisiti

Configurare l'ambiente di storage NVMe di VMware. Per ulteriori informazioni, vedere Informazioni sullo storage NVMe VMware.

Procedura

  1. Creare una regola di attestazione HPP eseguendo il comando esxcli storage core claimrule add.
    Utilizzare uno dei metodi seguenti per aggiungere la regola di attestazione.
    Metodo Descrizione
    Basato sul modello controller NVMe esxcli storage core claimrule add –-type vendor --nvme-controller-model

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

    Basato sull'ID fornitore e sull'ID fornitore secondario PCI esxcli storage core claimrule add –-type vendor –-pci-vendor-id –-pci-sub-vendor-id

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

  2. Configurare PSS.
    Utilizzare uno dei metodi seguenti.
    Metodo Descrizione
    Impostare PSS in base all'ID dispositivo esxcli storage hpp device set

    Ad esempio, esxcli storage hpp device set --device=device --pss=FIXED --path=preferred path

    Impostare PSS in base al fornitore/modello Utilizzare l'opzione --config-string con il comando esxcli storage core claimrule add.

    Ad esempio, 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. Riavviare l'host per rendere effettive le modifiche.

Impostazione della soglia sensibile alla latenza

Quando si utilizza HPP per i dispositivi di storage, impostare la soglia sensibile alla latenza per il dispositivo, in modo che I/O possa evitare l'utilità di pianificazione I/O.

Per impostazione predefinita, ESXi passa ogni I/O attraverso l'utilità di pianificazione I/O. Tuttavia, l'utilizzo dell'utilità di pianificazione potrebbe creare accodamento interno, il che non è efficiente con i dispositivi di storage ad alta velocità.

È possibile configurare la soglia sensibile alla latenza e abilitare il meccanismo di invio diretto che consente a I/O di ignorare l'utilità di pianificazione. Con questo meccanismo abilitato, I/O passa direttamente da PSA tramite HPP al driver del dispositivo.

Affinché l'invio diretto funzioni correttamente, la latenza di I/O media osservata deve essere inferiore alla soglia di latenza specificata. Se la latenza di I/O supera la soglia di latenza, il sistema interrompe l'invio diretto ed effettua temporaneamente il ripristino utilizzando l'utilità di pianificazione I/O. L'invio diretto viene ripreso quando la latenza di I/O media scende nuovamente al di sotto della soglia di latenza.

È possibile impostare la soglia di latenza per una famiglia di dispositivi richiesta da HPP. Impostare la soglia di latenza utilizzando la coppia fornitore-modello, il modello controller o l'ID fornitore PCIe e la coppia ID subfornitore.

Procedura

  1. Impostare la soglia sensibile alla latenza per il dispositivo eseguendo il comando seguente:
    esxcli storage core device latencythreshold set -t valore in millisecondi

    Utilizzare una delle seguenti opzioni.

    Opzione Esempio
    Fornitore/modello Impostare il parametro di soglia sensibile alla latenza per tutti i dispositivi con il fornitore e il modello indicati: esxcli storage core device latencythreshold set -v 'vendor1' -m 'model1' -t 10
    Modello controller NVMe Impostare la soglia sensibile alla latenza per tutti i dispositivi NVMe con il modello controller indicato: esxcli storage core device latencythreshold set -c 'controller_model1' -t 10
    ID fornitore/subfornitore PCIe Impostare la soglia sensibile alla latenza per i dispositivi con 0x8086 come ID fornitore PCIe e 0x8086 come ID subfornitore PCIe. esxcli storage core device latencythreshold set -p '8086' -s '8086' -t 10
  2. Verificare che la soglia di latenza sia impostata:
    esxcli storage core device latencythreshold list
    Device                Latency Sensitive Threshold
    --------------------  ---------------------------
    naa.55cd2e404c1728aa               0 milliseconds
    naa.500056b34036cdfd               0 milliseconds
    naa.55cd2e404c172bd6              50 milliseconds
    
  3. Monitorare lo stato della soglia sensibile alla latenza. Controllare i registri di VMkernel per le seguenti voci:
    • 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

Comandi ESXi esxcli HPP

È possibile utilizzare i comandi di ESXi Shell o vSphere CLI per configurare e monitorare il plug-in ad alte prestazioni.

Vedere Guida introduttiva a ESXCLI per un'introduzione e Guida di riferimento di ESXCLI per dettagli sull'utilizzo del comando esxcli.

Comando Descrizione Opzioni
esxcli storage hpp path list Elencare i percorsi attualmente richiesti dal plug-in ad alte prestazioni. -d|--device=device Visualizzare le informazioni per un dispositivo specifico.

-p|--path=path Limitare l'output a un percorso specifico.

esxcli storage hpp device list Elencare i dispositivi attualmente controllati dal plug-in ad alte prestazioni. -d|--device= device Mostrare un dispositivo specifico.
esxcli storage hpp device set Configura le impostazioni di un dispositivo HPP. -B|--bytes=long Numero massimo di byte nel percorso, trascorso il quale il percorso viene commutato.

--cfg-file Aggiornare il file di configurazione e il runtime con la nuova impostazione. Se il dispositivo è richiesto da un altro PSS, ignorare eventuali errori durante l'applicazione alla configurazione di runtime.

-d|--device= device Il dispositivo HPP su cui operare. Utilizzare uno qualsiasi degli UID segnalati dal dispositivo. Obbligatorio.

-I|--iops=long Numero massimo di IOPS sul percorso, trascorso il quale il percorso viene commutato.

-T|--latency-eval-time=long Controllare a quale intervallo, in ms, deve essere valutata la latenza dei percorsi.

-L|--mark-device-local=bool Impostare HPP per trattare il dispositivo come locale o meno.

-M|--mark-device-ssd=bool Specificare se HPP gestisce o meno il dispositivo come un SSD.

-p|--path=str Il percorso da impostare come percorso preferito per il dispositivo.

-P|--pss=pss_name Lo schema di selezione del percorso da assegnare al dispositivo. Se non si specifica il valore, il sistema seleziona il valore predefinito. Per una descrizione degli schemi di selezione del percorso, vedere Schemi di selezione dei percorsi e del plug-in ad alte prestazioni VMware. Le opzioni includono:
  • FIXED

    Utilizzare l'opzione secondaria -p|--path=str per impostare il percorso preferito.

  • LB-Bytes

    Utilizzare l'opzione -B|--bytes=long per specificare l'input.

  • LB-IOPs

    Utilizzare l'opzione -I|--iops=long per specificare l'input.

  • LB-Latency

    Le opzioni secondarie includono:

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

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

  • LB-RR Default

    Le opzioni secondarie includono:

    -B|--bytes=long

    -I|--iops=long

-S|--sampling-ios-per-path=long Controllare il numero di I/O di esempio da emettere in ciascun percorso per calcolare la latenza del percorso.

-U|--use-ano=bool Impostare l'opzione su true in modo da includere i percorsi non ottimizzati nel set di percorsi attivi utilizzati per emettere I/O su questo dispositivo. In caso contrario, impostare l'opzione su false.

esxcli storage hpp device usermarkedssd list Elencare i dispositivi che sono stati contrassegnati o non contrassegnati come SSD dall'utente. -d|--device=device Limitare l'output a un dispositivo specifico.