Contents

Introduction

Informações de Apoio

Verificando e atualizando o driver nfnic

Verificando o driver instalado

Atualizando o driver nfnic

Configurando o driver nfnic

Configurando o parâmetro de profundidade da fila

Configurar a E/S pendente no Ponto Final do Protocolo

Introduction

Este documento descreve o processo de configuração da Profundidade máxima da fila e da E Entrada/Saída (IO) pendente em um driver nativo da placa de interface de rede (nfnic) de fibre channel. No hipervisor VMware ESXi 6.7, o driver da placa de interface de rede (fnic) fiberchannel foi substituído pelo driver nfnic para todos os adaptadores Cisco.

A profundidade da fila padrão do driver nfnic é definida como 32 e em todas as versões iniciais do driver nfnic não há como ajustar a profundidade da fila nfnic. Isso limita todas as Profundidades Máximas da Fila de Dispositivos e as Solicitações de Número de Programação de Disco, que excedem 32. Também causou problemas durante o uso de vSphere Virtual Volumes, pois a profundidade de fila recomendada é 128. Os efeitos desse limite também podem ser vistos em qualquer VMs que experimentem uma carga de trabalho mais alta e exigem uma profundidade de fila maior em geral.

Contribuído com Michael Baba, Josh Good e Alejandro Marino; Engenheiros do TAC da Cisco.

Informações de Apoio

Aprimoramento criado para adicionar a capacidade de configurar o parâmetro de profundidade da fila: https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvo09082

Começando com a versão 4.0.0.35 do driver nfnic, você pode ajustar "lun_queue_deep_per_path" através da CLI (Command Line Interface, interface de linha de comando) do ESXi. Essa versão do driver pode ser instalada manualmente no host ESXi se ainda não estiver nele.

O driver nfnic 4.0.0.35 pode ser encontrado no pacote de firmware de blade UCS 4.0.4 e também pode ser baixado separadamente do VMware. Consulte a página Compatibilidade de hardware e software do UCS para obter o driver recomendado mais recente para sua combinação específica de hardware e software.

Verificando e atualizando o driver nfnic

Verificando o driver instalado

Para verificar a versão atualmente instalada do driver nfnic, execute:

esxcli software vib list | grep nfnic

Você deve ver algo como:

[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 você não vir nenhuma saída, no momento você não tem o driver nfnic instalado. Consulte a página Compatibilidade de hardware e software do UCS para verificar se sua configuração deve estar usando o driver nfnic ou fnic.

Atualizando o driver nfnic

Instruções detalhadas para instalar os drivers mais recentes estão além do escopo deste guia. Consulte a instalação do driver UCS para sistemas operacionais comuns ou a documentação da VMware para obter instruções passo a passo para atualizar o driver. Quando o driver for atualizado, você poderá usar os mesmos comandos acima para verificar a versão.

Configurando o driver nfnic

Configurando o parâmetro de profundidade da fila

Depois que o driver correto for instalado, podemos verificar se os parâmetros do módulo estão disponíveis para configurar com:

esxcli system module parameters list -m nfnic

Podemos ver nesta saída que o valor padrão está definido como 32, no entanto, podemos configurar qualquer valor de 1 a 1024. Se estiver usando volumes virtuais do vSphere, é recomendável definir esse valor como 128. Recomendamos que você entre em contato com a VMware e seu fornecedor de armazenamento para obter outras recomendações específicas.

Saída de exemplo:

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

Para alterar o parâmetro Queue Depth (Profundidade da fila), o comando é mostrado abaixo. No exemplo abaixo, estamos alterando para 128, mas seu valor pode ser diferente dependendo do ambiente.

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

Usando o mesmo comando acima, podemos configurar a alteração feita:

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

Configurar a E/S pendente no Ponto Final do Protocolo

Agora, podemos configurar os I/O pendentes no endpoint do protocolo para corresponder à profundidade da fila acima (no exemplo, 128) e verificar se ambos os valores foram alterados para 128.

NOTE: Talvez seja necessário reinicializar o host antes que essa alteração de configuração possa ser feita.

Para alterar a profundidade da fila de um dispositivo específico:

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

Para localizar a ID do dispositivo, use o comando abaixo:

esxcli storage core device list

Para confirmar as alterações de um dispositivo específico:

esxcli storage core device list -d naa.xxxxxxxxxx

Um exemplo com saída. Podemos ver que a "Profundidade máxima da fila de dispositivos:" e "Nº de I/Os excepcionais com mundos concorrentes:" ainda são 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

Agora mudamos para 128 para este dispositivo

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

E ao verificar a mesma saída, podemos ver "Device Max Queue Depth:" e "No of notable IOs with concorrentes worlds:" são ambos agora 128. Se as alterações não forem refletidas imediatamente, uma reinicialização do host ESXi pode ser necessária.

[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