Melhores práticas do desempenho do SMB para Azure NetApp Files

Este artigo ajuda você a entender o desempenho do SMB e as práticas recomendadas para o Azure NetApp Files.

SMB Multichannel

O SMB Multichannel é habilitado por padrão nos compartilhamentos SMB. Todos os compartilhamentos SMB já têm o recurso habilitado e todos os volumes recém-criados também terão o recurso habilitado no momento da criação.

Qualquer conexão SMB estabelecida antes da habilitação do recurso precisará ser redefinida para aproveitar a funcionalidade do SMB Multichannel. Para redefinir, você pode desconectar e reconectar o compartilhamento SMB.

O Windows tem suporte para o SMB Multichannel desde o Windows 2012 para possibilitar o melhor desempenho. Consulte Implantar o SMB Multichannel e Os fundamentos do SMB Multichannel para obter detalhes.

Benefícios do SMB Multichannel

O recurso SMB Multichannel permite que um cliente SMB3 estabeleça um pool de conexões em uma única ou em várias NICs e use-as para enviar solicitações para uma única sessão SMB. Por outro lado, por design, o SMB1 e o SMB2 exigem que o cliente estabeleça uma conexão e envie todo o tráfego SMB para uma determinada sessão através dessa conexão. Essa única conexão limita o desempenho geral do protocolo que pode ser obtido de um único cliente.

Desempenho do SMB Multichannel

Os seguintes testes e grafos demonstram o poder do SMB Multichannel em cargas de trabalho de instância única.

E/S Aleatória

Com o SMB Multichannel desabilitado no cliente, testes de leitura e gravação puros de 4 KiB foram executados usando FIO e um conjunto de trabalho de 40 GiB. O compartilhamento SMB foi desanexado entre cada teste, com incrementos da contagem de conexões de cliente SMB por configurações de interface de rede RSS de 1,4,8,16, set-SmbClientConfiguration -ConnectionCountPerRSSNetworkInterface <count>. Os testes mostram que a configuração padrão de 4 é suficiente para cargas de trabalho com uso intensivo de E/S; incrementar para 8 e 16 teve um efeito insignificante.

O comando netstat -na | findstr 445 provou que conexões adicionais foram estabelecidas com incrementos de 1 para 4 para 8 e para 16. Quatro núcleos de CPU foram totalmente utilizados para SMB durante cada teste, conforme confirmado pela estatística Per Processor Network Activity Cycles perfmon (não incluída neste artigo).

Chart that shows random I/O comparison of SMB Multichannel.

A máquina virtual do Azure não afeta os limites de E/S de armazenamento SMB (nem NFS). Conforme mostrado no gráfico a seguir, o tipo de instância D32ds tem uma taxa limitada de 308.000 para IOPS de armazenamento em cache e 51.200 para IOPS de armazenamento não armazenado em cache. No entanto, o gráfico acima mostra significativamente mais E/S sobre SMB.

Chart that shows random I/O comparison test.

E/S sequencial

Testes semelhantes aos testes de E/S aleatórios descritos anteriormente foram executados com E/S sequencial de 64-KiB. Embora o aumento na contagem de conexões de cliente por interface de rede RSS para além de 4’ não tenha nenhum efeito perceptível na E/S aleatória, o mesmo não se aplica à E/S sequencial. Como mostra o gráfico a seguir, cada aumento é associado a outro correspondente na taxa de transferência de leitura. A taxa de transferência de gravação permaneceu simples devido a restrições de largura de banda de rede impostas pelo Azure para cada tipo/tamanho de instância.

Chart that shows throughput test comparison.

O Azure impõe limites a taxa de rede em cada tipo/tamanho de máquina virtual. O limite de taxa é imposto somente no tráfego de saída. O número de NICs presentes em uma máquina virtual não tem nenhuma influência sobre a quantidade total de largura de banda disponível para o computador. Por exemplo, o tipo de instância D32ds tem um limite de rede imposto de 16.000 Mbps (2.000 MiB/s). Como mostra o grafo sequencial acima, o limite afeta o tráfego de saída (gravações), mas não as leituras multicanal.

Chart that shows sequential I/O comparison test.

Assinatura SMB

O protocolo SMB fornece a base para o compartilhamento de arquivos e impressões, além de outras operações de rede, como administração remota do Windows. Para evitar ataques man-in-the-middle que modificam pacotes SMB em trânsito, o protocolo SMB oferece suporte à assinatura digital de pacotes SMB.

A Assinatura SMB tem suporte para todas as versões de protocolo SMB com suporte no Azure NetApp Files.

Impacto de desempenho da Assinatura SMB

A Assinatura SMB tem um efeito deletério sobre o desempenho do SMB. Entre outras causas potenciais da degradação do desempenho, a assinatura digital de cada pacote consome CPU adicional do lado do cliente, conforme mostrado na saída de perfmon abaixo. Nesse caso, o Núcleo 0 parece ser responsável por SMB, inclusive a Assinatura SMB. Uma comparação com os números de taxa de transferência de leitura sequencial sem multicanal na seção anterior mostra que a Assinatura SMB reduz a taxa de transferência geral de 875MiB/s para, aproximadamente, 250MiB/s.

Chart that shows SMB Signing performance impact.

Desempenho de uma única instância com conjunto de dados de 1 TB

Para fornecer uma visão mais detalhada das cargas de trabalho com combinações de leitura/gravação, os dois gráficos a seguir mostram o desempenho de um único volume de nuvem de camada de serviço Ultra de 50 TB com um conjunto de informações de 1 TB e SMB Multichannel de 4. Um IODepth ideal de 16 foi usado e parâmetros de FIO (E/S flexíveis) foram usados para garantir o uso completo da largura de banda da rede (numjobs=16).

O gráfico a seguir mostra os resultados para a E/S aleatória de 4K, com uma única instância de VM e uma combinação de leitura/gravação em intervalos de 10%:

Chart that shows Windows 2019 standard _D32ds_v4 4K random IO test.

O gráfico a seguir mostra os resultados para E/S sequencial:

Chart that shows Windows 2019 standard _D32ds_v4 64K sequential throughput.

Desempenho ao escalar horizontalmente usando 5 VMs com um conjunto de dados de 1 TB

Esses testes com 5 VMs usam o mesmo ambiente de teste que a VM única, sendo que cada processo grava em seu próprio arquivo.

O gráfico a seguir mostra os resultados para E/S aleatória:

Chart that shows Windows 2019 standard _D32ds_v4 4K 5-instance randio IO test.

O gráfico a seguir mostra os resultados para E/S sequencial:

Chart that shows Windows 2019 standard _D32ds_v4 64K 5-instance sequential throughput.

Como monitorar adaptadores ethernet do Hyper-V

Uma estratégia usada no teste com FIO é definir numjobs=16. Fazer isso bifurca cada trabalho em 16 instâncias específicas para maximizar o adaptador de rede Microsoft Hyper-V.

Você pode verificar a atividade em cada um dos adaptadores no Monitor de Desempenho do Windows selecionando Monitor de Desempenho > Adicionar contadores > Adaptador de rede > Adaptador de rede Microsoft Hyper-V.

Screenshot that shows Performance Monitor Add Counter interface.

Quando o tráfego de dados já estiver em execução nos seus volumes, será possível monitorar os adaptadores no Monitor de Desempenho do Windows. Se não usar todos esses 16 adaptadores virtuais, talvez não esteja maximizando sua capacidade de largura de banda de rede.

Screenshot that shows Performance Monitor output.

Criptografia SMB

Esta ação ajuda você a compreender a criptografia SMB (SMB 3.0 e SMB 3.1.1)

A criptografia SMB fornece criptografia de ponta a ponta dos dados do SMB e protege os dados contra ocorrências de interceptação em redes não confiáveis. A criptografia SMB é compatível com o SMB 3.0 e superior.

Ao enviar uma solicitação para o armazenamento, o cliente criptografa a solicitação, que é então descriptografada pelo armazenamento. As respostas são criptografadas pelo servidor e descriptografadas pelo cliente de modo semelhante.

O Windows 10, o Windows 2012 e versões posteriores dão suporte à criptografia SMB.

Criptografia SMB e Azure NetApp Files

A criptografia SMB está habilitada no nível de compartilhamento do Azure NetApp Files. O SMB 3.0 emprega o algoritmo AES-CCM, enquanto o SMB 3.1.1 emprega o algoritmo AES-GCM.

A criptografia SMB não é necessária. Assim, ele só será habilitado para um determinado compartilhamento se o usuário solicitar a habilitação ao Azure NetApp Files. Compartilhamentos do Azure NetApp Files nunca são expostos à Internet. Eles só podem ser acessados de dentro de uma determinada VNet, via VPN ou rota expressa, portanto, os compartilhamentos do Azure NetApp Files são inerentemente seguros. A escolha de habilitar a criptografia SMB é exclusivamente do usuário. Antes de habilitar esse recurso, lembre-se da penalidade de desempenho prevista ao fazê-lo.

Impacto da criptografia SMB nas cargas de trabalho do cliente

Embora a criptografia SMB tenha impacto tanto no cliente (sobrecarga de CPU para criptografar e descriptografar mensagens) quanto no armazenamento (reduções na taxa de transferência), a tabela a seguir realça apenas o impacto no armazenamento. Você deve testar o impacto no desempenho da criptografia nos seus aplicativos antes de implantar cargas de trabalho em produção.

Perfil de E/S Impacto
Ler e gravar cargas de trabalho 10% a 15%
Uso intensivo de metadados 5%

Rede Acelerada

Para obter o máximo de desempenho, é recomendável configurar a Rede Acelerada nas máquinas virtuais sempre que possível. Lembre-se das seguintes considerações ao filtrar dados:

  • O portal do Azure habilita a rede acelerada por padrão para máquinas virtuais que dão suporte a esse recurso. No entanto, outros métodos de implantação, como Ansible e ferramentas de configuração semelhantes, podem não habilitá-la. A falha ao habilitar a rede acelerada pode prejudicar o desempenho de um computador.
  • Se a rede acelerada não estiver habilitada na interface de rede de uma máquina virtual devido à falta de suporte para um tipo ou tamanho de instância, ela permanecerá desabilitada com tipos de instância maiores. Você precisará de intervenção manual nesses casos.
  • Não é necessário definir a rede acelerada para as NICs na sub-rede dedicada do Azure NetApp Files. Rede acelerada é um recurso que se aplica somente às máquinas virtuais do Azure. As NICs do Azure NetApp Files são otimizadas por design.

RSS

O Azure NetApp Files oferece suporte ao RSS (recebimento de escala lateral).

Com o SMB Multichannel habilitado, um cliente SMB3 estabelece várias conexões TCP com o servidor SMB do Azure NetApp Files por meio de uma NIC (placa de interface de rede) com capacidade de RSS único.

Para ver se suas NICs de máquina virtual do Azure dão suporte a RSS, execute o comando da Get-SmbClientNetworkInterface como demonstrado a seguir e verifique o campo RSS Capable:

Screenshot that shows RSS output for Azure virtual machine.

Várias NICs em clientes SMB

Você não deve configurar várias NICs em seu cliente para SMB. O cliente do SMB fará correspondência à quantidade de NICs retornada pelo servidor SMB. Cada volume de armazenamento pode ser acessado somente de um ponto de extremidade de armazenamento. Isso significa que apenas uma NIC será usada para qualquer relação SMB específica.

Como a saída Get-SmbClientNetworkInterace mostrada abaixo, a máquina virtual tem duas interfaces de rede: 15 e 12. Conforme mostrado no comando Get-SmbMultichannelConnection a seguir, embora haja duas NICs compatíveis com RSS, somente a interface 12 é usada em conjunto com o compartilhamento SMB; a interface 15 não está em uso.

Screeshot that shows output for RSS-capable NICS.

Próximas etapas