Contenu

Introduction

Informations générales

Vérification et mise à jour du pilote nfnic

Vérification du pilote installé

Mise à niveau du pilote nfnic

Configuration du pilote nfnic

Configuration du paramètre de profondeur de file d'attente

Configurer les E/S en attente sur le point d’extrémité du protocole

Introduction

Ce document décrit le processus de configuration de la profondeur maximale de la file d'attente et de l'entrée/sortie en attente (IO) sur un pilote nfnic (fiberchannel network interface card) natif. Dans l'hyperviseur VMware ESXi 6.7, le pilote de carte d'interface réseau Fibre Channel (fnic) a été remplacé par le pilote nfnic pour toutes les cartes Cisco.

La profondeur de file d'attente par défaut du pilote nfnic est définie sur 32 et sur toutes les versions initiales du pilote nfnic, il n'y a aucun moyen d'ajuster la profondeur de file d'attente nfnic. Cela limite à 32 le nombre maximal de demandes de numéros de file d'attente de périphérique et de planification de disque. Elle a également causé des problèmes lors de l'utilisation des volumes virtuels vSphere, car la profondeur de file d'attente recommandée est 128. Les effets de cette limite peuvent également être observés sur toutes les machines virtuelles qui subissent une charge de travail plus élevée et nécessitent une plus grande profondeur de file d'attente en général.

Contribution de Michael Baba, Josh Good et Alejandro Marino ; Ingénieurs TAC Cisco.

Informations générales

Amélioration créée pour ajouter la possibilité de configurer le paramètre de profondeur de file d'attente : https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvo09082

À partir de la version 4.0.0.35 du pilote nfnic, vous pouvez ajuster « lun_queue_deep_per_path » via l'interface de ligne de commande ESXi. Cette version de pilote peut être installée manuellement sur l'hôte ESXi s'il n'y en a pas encore.

Le pilote nfnic 4.0.0.35 se trouve dans l'offre groupée de microprogrammes de lames UCS 4.0.4 et peut également être téléchargé séparément à partir de VMware. Reportez-vous à la page Compatibilité matérielle et logicielle UCS pour obtenir le pilote le plus récent recommandé pour votre combinaison matérielle et logicielle spécifique.

Vérification et mise à jour du pilote nfnic

Vérification du pilote installé

Pour vérifier la version actuellement installée du pilote nfnic, exécutez :

esxcli software vib list | grep nfnic

Vous devriez voir quelque chose comme :

[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 aucune sortie ne s'affiche, le pilote nfnic n'est actuellement pas installé. Reportez-vous à la page Compatibilité matérielle et logicielle UCS pour vérifier si votre configuration doit utiliser le pilote nfnic ou fnic.

Mise à niveau du pilote nfnic

Les instructions détaillées pour installer les derniers pilotes ne sont pas comprises dans ce guide. Reportez-vous à Installation du pilote UCS pour les systèmes d'exploitation courants ou à la documentation de VMware pour obtenir des instructions détaillées sur la mise à niveau du pilote. Une fois le pilote mis à niveau, vous pouvez utiliser les mêmes commandes ci-dessus pour vérifier la version.

Configuration du pilote nfnic

Configuration du paramètre de profondeur de file d'attente

Une fois le pilote approprié installé, nous pouvons vérifier que les paramètres du module sont disponibles pour la configuration avec :

esxcli system module parameters list -m nfnic

Nous pouvons voir dans ce résultat que la valeur par défaut est définie sur 32, mais nous pouvons configurer n'importe quelle valeur de 1 à 1024. Si vous utilisez des volumes virtuels vSphere, il est recommandé de définir cette valeur sur 128. Nous vous recommandons de contacter VMware et votre fournisseur de stockage pour toute autre recommandation spécifique.

Exemple de sortie :

[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:~]

Pour modifier le paramètre Queue Depth (Profondeur de la file d'attente), la commande est ci-dessous. Dans l'exemple ci-dessous, nous le changeons en 128, mais votre valeur peut être différente selon votre environnement.

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

En utilisant la même commande que ci-dessus, nous pouvons configurer la modification a été effectuée :

[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:~]

Configurer les E/S en attente sur le point d’extrémité du protocole

Nous pouvons maintenant configurer les E/S en attente sur le point de terminaison du protocole pour qu'elles correspondent à la profondeur de la file d'attente ci-dessus (dans notre exemple, 128), puis vérifier que les deux valeurs ont changé en 128.

NOTE: Vous devrez peut-être redémarrer l'hôte avant de pouvoir modifier la configuration.

Pour modifier la profondeur de la file d'attente d'un périphérique spécifique :

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

Pour trouver l'ID de périphérique, utilisez la commande suivante :

esxcli storage core device list

Pour confirmer les modifications pour un périphérique spécifique :

esxcli storage core device list -d naa.xxxxxxxxxx

Exemple avec sortie. Nous pouvons voir que la profondeur de la file d'attente maximale du périphérique et le nombre d'E/S exceptionnelles avec des mondes concurrents sont toujours de 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

Maintenant, nous passons à 128 pour cet appareil

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

Et en vérifiant la même sortie, nous pouvons voir « Device Max Queue Depth: » et « No of exceptionnel IOs with concurrent world: » sont maintenant 128. Si les modifications ne sont pas immédiatement répercutées, un redémarrage de l'hôte ESXi peut être nécessaire.

[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