Sommario

Introduzione

Premesse

Controllo e aggiornamento del driver nfnic

Verifica del driver installato

Aggiornamento del driver nfnic

Configurazione del driver nfnic

Configurazione del parametro Profondità coda

Configurare l'I/O in attesa sull'endpoint del protocollo

Introduzione

Questo documento descrive il processo di configurazione della profondità massima della coda e dell'I/O in sospeso su un driver nfnic (Fibre Channel Network Interface Card) nativo. Nell'hypervisor VMware ESXi 6.7, il driver della scheda di interfaccia di rete (fnic) fibre channel è stato sostituito dal driver nfnic per tutte le schede Cisco.

La profondità della coda predefinita del driver nfnic è impostata su 32 e in tutte le versioni iniziali del driver nfnic non è possibile regolare la profondità della coda nfnic. Ciò limita a 32 il numero massimo di richieste di profondità di coda del dispositivo e di numero di pianificazione del disco in sospeso. Ha inoltre causato problemi durante l'utilizzo dei volumi virtuali vSphere, poiché la profondità di coda consigliata è 128. Gli effetti di questo limite possono essere rilevati anche su qualsiasi VM con un carico di lavoro più elevato e che in generale richiedono una profondità di coda più elevata.

Contributo di Michael Baba, Josh Good e Alejandro Marino; Tecnici Cisco TAC.

Premesse

Miglioramento creato per aggiungere la possibilità di configurare il parametro di profondità della coda: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvo09082

A partire dalla versione 4.0.0.35 del driver nfnic, è possibile regolare "lun_queue_depth_per_path" tramite l'interfaccia della riga di comando (CLI) ESXi. Questa versione del driver può essere installata manualmente sull'host ESXi, se non è già presente.

Il driver nfnic 4.0.0.35 è disponibile nel bundle UCS Blade Firmware 4.0.4 e può anche essere scaricato separatamente da VMware. È consigliabile consultare la pagina UCS sulla compatibilità hardware e software per ottenere il driver più recente consigliato per la specifica combinazione hardware e software.

Controllo e aggiornamento del driver nfnic

Verifica del driver installato

Per verificare la versione attualmente installata del driver nfnic, eseguire:

esxcli software vib list | grep nfnic

Dovresti vedere qualcosa come:

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

Se non viene visualizzato alcun output, il driver nfnic non è attualmente installato. Fare riferimento alla pagina UCS sulla compatibilità hardware e software per verificare se la configurazione deve utilizzare il driver nfnic o fnic.

Aggiornamento del driver nfnic

Le istruzioni dettagliate per l'installazione dei driver più recenti esulano dall'ambito di questa guida. Per istruzioni dettagliate sull'aggiornamento del driver, consultare UCS Driver Installation for Common Operating Systems o la documentazione di VMware. Una volta aggiornato il driver, è possibile utilizzare gli stessi comandi descritti in precedenza per verificare la versione.

Configurazione del driver nfnic

Configurazione del parametro Profondità coda

Una volta installato il driver corretto, è possibile verificare che i parametri del modulo siano disponibili per la configurazione con:

esxcli system module parameters list -m nfnic

In questo output è possibile vedere che il valore predefinito è impostato su 32; tuttavia, è possibile configurare qualsiasi valore da 1 a 1024. Se si utilizzano volumi virtuali vSphere, si consiglia di impostare questo valore su 128. Si consiglia di contattare VMware e il fornitore dello storage per eventuali altri suggerimenti specifici.

Output di esempio:

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

Per modificare il parametro Profondità coda, il comando è riportato di seguito. Nell'esempio riportato di seguito lo si sta modificando in 128, ma il valore può variare a seconda dell'ambiente.

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

Con lo stesso comando di cui sopra è possibile configurare la modifica apportata:

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

Configurare l'I/O in attesa sull'endpoint del protocollo

È ora possibile configurare le operazioni di I/O in sospeso sull'endpoint del protocollo in modo che corrispondano alla profondità della coda indicata (nell'esempio, 128) e quindi verificare che entrambi i valori siano stati modificati in 128.

NOTA: Prima di apportare la modifica alla configurazione, potrebbe essere necessario riavviare l'host.

Per modificare la profondità della coda per un dispositivo specifico:

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

Per trovare l'ID del dispositivo, usare il comando seguente:

esxcli storage core device list

Per confermare le modifiche per un dispositivo specifico:

esxcli storage core device list -d naa.xxxxxxxxxx

Esempio con output. È possibile notare che "Device Max Queue Depth:" e "No of Outstanding IOs with Competing Worlds:" sono entrambi ancora 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

Ora viene modificato in 128 per questo dispositivo

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

Se si controlla lo stesso output, è possibile vedere "Profondità massima coda dispositivo:" e "Numero di I/O in sospeso con mondi concorrenti:" sono entrambi ora 128. Se le modifiche non vengono riflesse immediatamente, potrebbe essere necessario riavviare l'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