VMware fournit High Performance Plug-In (HPP) pour améliorer les performances des périphériques de stockage sur les hôtes ESXi.

Le HPP remplace le NMP pour les périphériques à haute vitesse, tels que les dispositifs NVMe. Le plug-in HPP est le plug-in par défaut qui réclame les cibles NVMe-oF. ESXi prend en charge l'émulation de bout en bout NVMe sans et SCSI vers NVMe. Le HPP prend uniquement en charge les cibles ALUA actives/actives et implicites.

À partir de vSphere 7.0 Update 2, HPP devient le plug-in par défaut pour les périphériques NVMe et SCSI locaux, mais vous pouvez le remplacer par NMP.

Prise en charge de HPP vSphere 7.0 Update 2 et versions ultérieures
Périphériques de stockage NVMe et SCSI locaux

NVMe-oF partagé (cibles ALUA actives/actives et implicites uniquement)

Gestion multivoie Oui
Plug-ins de second niveau Non
Réservations persistantes SCSI-3 Non
Périphériques 4Kn avec émulation logicielle Oui

Path Selection Schemes

Pour prendre en charge la gestion multivoie, le HPP utilise les schémas PSS (Path Selection Schemes) lors de la sélection de chemins physiques pour les demandes d'E/S.

Vous pouvez utiliser vSphere Client ou la commande esxcli pour modifier le mécanisme de sélection de chemin par défaut.

Pour plus d'informations sur la configuration des mécanismes de chemin d'accès dans vSphere Client, reportez-vous à Modification de la stratégie de sélection de chemin d'accès. Pour la configuration avec la commande esxcli, reportez-vous à Commandes esxcli HPP d'ESXi.

ESXi prend en charge les mécanismes de sélection de chemin d'accès suivants.

FIXE
Avec ce schéma, un chemin préféré désigné est utilisé pour les demandes d'E/S. Si le chemin préféré n'est pas attribué, l'hôte sélectionne le premier chemin opérationnel détecté au moment du démarrage. Si le chemin préféré devient non disponible, l'hôte sélectionne un autre chemin disponible. L'hôte renvoie le chemin préféré précédemment défini lorsqu'il devient à nouveau disponible.

Lorsque vous configurez FIXED en tant que mécanisme de sélection de chemin d'accès, sélectionnez le chemin préféré.

LB-RR (Load Balance - Round Robin)
Il s'agit du schéma par défaut pour les périphériques revendiqués par HPP. Après le transfert d'un nombre spécifié d'octets ou d'E/S sur un chemin actuel, le schéma sélectionne le chemin d'accès à l'aide de l'algorithme de répétition alternée.
Pour configurer le mécanisme de sélection de chemin d'accès LB-RR, spécifiez les propriétés suivantes :
  • IOPS indique le nombre d'E/S sur le chemin à utiliser comme critère de basculement d'un chemin d'accès pour le périphérique.
  • Octets indique le nombre d'octets sur le chemin à utiliser comme critère de basculement d'un chemin d'accès pour le périphérique.
LB-IOPS (Load Balance - IOPs)
Après le transfert d'un nombre spécifié d'E/S sur un chemin actuel, la valeur par défaut est 1000, le système sélectionne un chemin optimal ayant le moins d'E/S en attente.

Lors de la configuration de ce mécanisme, spécifiez le paramètre IOPS pour indiquer le nombre d'E/S sur le chemin à utiliser comme critère de basculement d'un chemin d'accès pour le périphérique.

LB-BYTES (Load Balance - Bytes)
Après le transfert d'un nombre spécifié d'octets sur un chemin actuel, la valeur par défaut est 10 Mo, le système sélectionne un chemin optimal ayant le moins d'octets en attente.

Pour configurer ce mécanisme, utilisez le paramètre Octets pour indiquer le nombre d'octets sur le chemin à utiliser comme critère de basculement d'un chemin d'accès pour le périphérique.

Load Balance - Latency (LB-Latency)
Pour atteindre de meilleurs résultats d'équilibrage de charge, le mécanisme sélectionne dynamiquement un chemin d'accès optimal en tenant compte des caractéristiques de chemin d'accès suivants :
  • Le paramètre Durée d'évaluation de la latence indique à quel intervalle de temps, en millisecondes, la latence des chemins d'accès doit être évaluée.
  • Le paramètre Exemple d'E/S par chemin contrôle le nombre d'exemples d'E/S qui doivent être émis sur chaque chemin pour calculer la latence du chemin d'accès.

Meilleures pratiques liées au HPP

Pour obtenir le débit le plus rapide d'un périphérique de stockage à haute vitesse, suivez ces recommandations.

  • Utilisez la version vSphere qui prend en charge le HPP.
  • Utilisez HPP pour les périphériques NVMe et SCSI locaux, et les périphériques NVMe-oF.
  • Si vous utilisez des périphériques NVMe over Fibre Channel, suivez les recommandations générales pour le stockage Fibre Channel. Reportez-vous à la section Utilisation d'ESXi avec un SAN Fibre Channel.
  • Si vous utilisez NVMe-oF, ne mélangez pas les types de transport pour accéder au même espace de noms.
  • Lors de l'utilisation d'espaces de noms NVMe-oF, assurez-vous que les chemins actifs sont présentés à l'hôte. Les espaces de noms ne peuvent pas être enregistrés tant que le chemin actif n'est pas découvert.
  • Lorsque vous configurez vos machines virtuelles, vous pouvez utiliser des contrôleurs paravirtuels VMware ou ajouter des contrôleurs NVMe. Les deux types ont leurs avantages et leurs inconvénients. Pour vérifier ce qui convient le mieux à votre environnement, reportez-vous à la section Conditions, limitations et compatibilité des contrôleurs de stockage SCSI, SATA et NVMe dans la documentation Administration d'une machine virtuelle vSphere.
  • Définissez le seuil sensible de latence.
  • Si une seule machine virtuelle effectue une part importante de la charge de travail d'E/S du périphérique, envisagez de répartir les E/S sur plusieurs disques virtuels. Attachez les disques à des contrôleurs virtuels séparés de la machine virtuelle.

    Sinon, le débit d'E/S pourrait être limité en raison de la saturation du processeur principal responsable du traitement des E/S sur un contrôleur de stockage virtuel particulier.

Pour plus d'informations sur les identifiants de périphérique pour les périphériques NVMe qui prennent uniquement en charge le format d'ID NGUID, reportez-vous à la section Périphériques NVMe avec identifiants de périphérique NGUID.

Activer High-Performance Plug-In et Path Selection Schemes

Le plug-in haute performance (HPP) est le plug-in par défaut qui réclame des périphériques NVMe et SCSI locaux, ainsi que des cibles NVMe-oF. Si nécessaire, vous pouvez le remplacer par NMP. Dans vSphere version 7.0 Update 1 et antérieures, NMP reste le plug-in par défaut pour les périphériques NVMe et SCSI locaux, mais vous pouvez le remplacer par HPP.

Utilisez la commande esxcli storage core claimrule add pour activer HPP ou NMP sur votre hôte ESXi.

Pour exécuter la commande esxcli storage core claimrule add, vous pouvez utiliser ESXi Shell ou vSphere CLI. Pour plus d'informations, reportez-vous à Démarrage avec ESXCLI et Référence d'ESXCLI.

Les exemples de cette rubrique montrent comment activer HPP et configurer les schémas PSS.
Note : L'activation du HPP n'est pas prise en charge sur les hôtes ESXi démarrés par PXE.

Conditions préalables

Configurez votre environnement de stockage VMware NVMe. Pour plus d'informations, consultez À propos du stockage VMware NVMe.

Procédure

  1. Créez une règle de réclamation HPP en exécutant la commande esxcli storage core claimrule add.
    Utilisez une des méthodes suivantes pour ajouter la règle de réclamation.
    Méthode Description
    Selon le modèle de contrôleur NVMe esxcli storage core claimrule add –-type vendor --nvme-controller-model

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

    Selon l'ID de fournisseur et l'ID de sous-fournisseur PCI esxcli storage core claimrule add –-type vendor –-pci-vendor-id –-pci-sub-vendor-id

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

  2. Configurez les schémas PSS.
    Sélectionnez l'une des méthodes suivantes.
    Méthode Description
    Définir les schémas PSS selon l'ID de périphérique esxcli storage hpp device set

    Par exemple, esxcli storage hpp device set --device=device --pss=FIXED --path=preferred path

    Définir les schémas PSS selon la paire fournisseur/modèle Utilisez l'option --config-string avec la commande esxcli storage core claimrule add.

    Par exemple, 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. Redémarrez votre hôte pour appliquer les modifications

Définir le seuil sensible de latence

Lorsque vous utilisez le HPP pour vos périphériques de stockage, définissez le seuil sensible de latence du périphérique afin que les E/S puissent contourner le planificateur d'E/S.

Par défaut, ESXi transmet chaque E/S via le planificateur d'E/S. Cependant, l'utilisation du planificateur peut créer des files d'attente internes, ce qui n'est pas efficace avec les périphériques de stockage à haute vitesse.

Vous pouvez configurer le seuil sensible de latence et activer le mécanisme d'envoi direct qui permet à l'E/S de contourner le planificateur. Lorsque ce mécanisme est activé, l'E/S est transmise directement du PSA au pilote de périphérique via le HPP.

Pour que l'envoi direct fonctionne correctement, la latence d'E/S moyenne observée doit être inférieure au seuil de latence que vous spécifiez. Si la latence d'E/S dépasse le seuil de latence spécifié, le système arrête l'envoi direct et réutilise temporairement le planificateur d'E/S. L'envoi direct reprend lorsque la latence d'E/S moyenne descend à nouveau au-dessous du seuil de latence.

Vous pouvez définir le seuil de latence pour une famille de périphériques réclamés par HPP. Définissez le seuil de latence à l'aide de la paire fournisseur et modèle, du modèle de contrôleur ou de la paire ID de fournisseur PCIe et ID de sous-fournisseur.

Procédure

  1. Pour définir le seuil sensible de latence pour le périphérique, exécutez la commande suivante :
    esxcli storage core device latencythreshold set -t valeur en millisecondes

    Sélectionnez l'une des options suivantes.

    Option Exemple
    Fournisseur/modèle Définissez le paramètre de seuil sensible à la latence pour tous les périphériques avec le fournisseur et le modèle indiqués : esxcli storage core device latencythreshold set -v 'vendor1' -m 'model1' -t 10
    Modèle de contrôleur NVMe Définissez le seuil sensible à la latence pour tous les périphériques NVMe avec le modèle de contrôleur indiqué : esxcli storage core device latencythreshold set -c 'controller_model1' -t 10
    ID de fournisseur/sous-fournisseur PCIe Définissez le seuil sensible à la latence pour les périphériques avec 0x8086 comme ID de fournisseur PCIe et 0x8086 comme ID de sous-fournisseur PCIe. esxcli storage core device latencythreshold set -p '8086' -s '8086' -t 10
  2. Vérifiez que le seuil de latence est défini :
    esxcli storage core device latencythreshold list
    Device                Latency Sensitive Threshold
    --------------------  ---------------------------
    naa.55cd2e404c1728aa               0 milliseconds
    naa.500056b34036cdfd               0 milliseconds
    naa.55cd2e404c172bd6              50 milliseconds
    
  3. Surveillez l'état du seuil sensible de latence. Vérifiez les entrées suivantes dans les journaux de VMkernel :
    • 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

Commandes esxcli HPP d'ESXi

Vous pouvez utiliser les commandes ESXi Shell ou vSphere CLI pour configurer et surveiller HPP (High-Performance Plug-in).

Consultez Démarrage avec ESXCLI pour une introduction, et Référence d'ESXCLI pour obtenir des détails sur l'utilisation de la commande esxcli.

Commande Description Options
esxcli storage hpp path list Répertorie les chemins actuellement réclamés par HPP. -d|--device=device Affiche les informations relatives à un périphérique spécifique.

-p|--path=path Limite la sortie à un chemin spécifique.

esxcli storage hpp device list Répertorie les périphériques actuellement contrôlés par HPP. -d|--device=device Affiche un périphérique spécifique.
esxcli storage hpp device set Configure les paramètres pour un périphérique HPP. -B|--bytes=long Nombre maximal d'octets dans le chemin, après lequel le chemin est basculé.

--cfg-file Mettre à jour le fichier de configuration et l'exécution avec le nouveau paramètre. Si le périphérique est réclamé par un autre PSS, ignorez les erreurs lors de l'application de la configuration d'exécution.

-d|--device=device Spécifie le périphérique HPP utilisé. Utilise n'importe quel UID signalé par le périphérique. Requis.

-I|--iops=long Nombre maximal d'IOPS dans le chemin, après lequel le chemin est basculé.

-T|--latency-eval-time=long Contrôle à quel intervalle (en ms) la latence des chemins doit être évaluée.

-L|--mark-device-local=bool Indique à HPP de traiter le terminal comme étant local ou non.

-M|--mark-device-ssd=bool Indique si HPP traite le périphérique comme un disque SSD ou non.

-p|--path=str Le chemin d'accès à définir comme chemin préféré pour le périphérique.

-P|--pss=pss_name Le schéma PSS à attribuer au périphérique. Si vous ne spécifiez pas la valeur, le système sélectionne la valeur par défaut. Pour la description des schémas PSS, reportez-vous à VMware High Performance Plug-In et Path Selection Schemes. Voici les options possibles :
  • FIXED

    Utilisez la sous-option -p|--path=str pour définir le chemin préféré.

  • LB-Bytes

    Utilisez la sous-option -B|--bytes=long pour spécifier l'entrée.

  • LB-IOPs

    Utilisez la sous-option -I|--iops=long pour spécifier l'entrée.

  • LB-Latency

    Voici les sous-options possibles :

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

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

  • LB-RR (par défaut)

    Voici les sous-options possibles :

    -B|--bytes=long

    -I|--iops=long

-S|--sampling-ios-per-path=long Contrôle le nombre d'exemples d'E/S qui doivent être émis sur chaque chemin pour calculer la latence du chemin d'accès.

-U|--use-ano=bool Définissez l'option sur true pour inclure des chemins non optimisés dans l'ensemble de chemins actifs utilisés pour émettre des E/S sur ce périphérique. Sinon, définissez l'option sur false.

esxcli storage hpp device usermarkedssd list Répertorie les périphériques qui ont été marqués ou démarqués comme SSD par l'utilisateur. -d|--device=device Limite la sortie à un périphérique spécifique.