Práticas recomendadas de desempenho SMB para Arquivos NetApp do Azure

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

SMB Multicanal

SMB Multichannel é ativado por padrão em compartilhamentos SMB. Todos os compartilhamentos SMB anteriores aos volumes SMB existentes tiveram 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 ativação do recurso precisará ser redefinida para aproveitar a funcionalidade SMB Multichannel. Para repor, pode desligar e voltar a ligar a partilha SMB.

O Windows suporta SMB Multichannel desde o Windows 2012 para permitir o melhor desempenho. Consulte Deploy SMB Multichannel e The basics of 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 placa de interface de rede (NIC) ou várias NICs e as use para enviar solicitações para uma única sessão SMB. Em contraste, por design, SMB1 e 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 conexão única limita o desempenho geral do protocolo que pode ser alcançado a partir de um único cliente.

Desempenho para SMB Multichannel

Os testes e gráficos a seguir demonstram o poder do SMB Multichannel em cargas de trabalho de instância única.

E/S aleatórias

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

O comando netstat -na | findstr 445 provou que conexões adicionais foram estabelecidas com incrementos de 1 para e 8 para 164 . Quatro núcleos de CPU foram totalmente utilizados para SMB durante cada teste, conforme confirmado pela estatística perfmon Per Processor Network Activity Cycles (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 sem cache. No entanto, o gráfico acima mostra significativamente mais E/S em relação ao SMB.

Chart that shows random I/O comparison test.

IO sequencial

Testes semelhantes aos testes de E/S aleatória descritos anteriormente foram realizados com E/S sequencial de 64 KiB. Embora os aumentos na contagem de conexões do cliente por interface de rede RSS além de 4' não tenham tido efeito percetível em E/S aleatórias, o mesmo não se aplica a E/S sequenciais. Como mostra o gráfico a seguir, cada aumento está associado a um aumento correspondente na taxa de transferência de leitura. A taxa de transferência de gravação permaneceu estável devido às restrições de largura de banda de rede colocadas pelo Azure para cada tipo/tamanho de instância.

Chart that shows throughput test comparison.

O Azure coloca limites de taxa de rede em cada tipo/tamanho de máquina virtual. O limite de tarifa é imposto apenas ao tráfego de saída. O número de NICs presentes em uma máquina virtual não tem influência sobre a quantidade total de largura de banda disponível para a máquina. 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 gráfico 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ão e outras operações de rede, como a administração remota do Windows. Para evitar ataques man-in-the-middle que modificam pacotes SMB em trânsito, o protocolo SMB suporta a assinatura digital de pacotes SMB.

A Assinatura SMB tem suporte para todas as versões do protocolo SMB suportadas pelos Arquivos NetApp do Azure.

Impacto no 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, como mostra a saída perfmon abaixo. Nesse caso, o Core 0 aparece responsável pelo SMB, incluindo a Assinatura SMB. Uma comparação com os números de taxa de transferência de leitura sequencial não 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 para uma única instância com um conjunto de dados de 1 TB

Para fornecer informações mais detalhadas sobre cargas de trabalho com misturas de leitura/gravação, os dois gráficos a seguir mostram o desempenho de um único volume de nuvem de nível de serviço Ultra de 50 TB com um conjunto de dados de 1 TB e com multicanal SMB de 4. Um IODepth ótimo de 16 foi usado, e parâmetros de IO flexível (FIO) foram usados para garantir o pleno uso da largura de banda da rede (numjobs=16).

O gráfico a seguir mostra os resultados para E/S aleatórias 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 sequenciais:

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

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

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

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

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 sequenciais:

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

Como monitorar adaptadores ethernet Hyper-V

Uma estratégia usada em testes com FIO é definir numjobs=16. 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 Interface de > Rede > Microsoft Hyper-V Network Adapter.

Screenshot that shows Performance Monitor Add Counter interface.

Depois de ter tráfego de dados em execução em seus volumes, você pode monitorar seus adaptadores no Monitor de Desempenho do Windows. Se você não usar todos esses 16 adaptadores virtuais, talvez não esteja maximizando a capacidade de largura de banda da rede.

Screenshot that shows Performance Monitor output.

Encriptação SMB

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

A criptografia SMB fornece criptografia de ponta a ponta de dados SMB e protege os dados contra ocorrências de espionagem em redes não confiáveis. A encriptação SMB é suportada no SMB 3.0 e posterior.

Ao enviar uma solicitação para o armazenamento, o cliente criptografa a solicitação, que o armazenamento descriptografa. As respostas são igualmente encriptadas pelo servidor e desencriptadas pelo cliente.

O Windows 10, o Windows 2012 e as versões posteriores suportam a encriptação SMB.

Encriptação SMB e Azure NetApp Files

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

A encriptação SMB não é necessária. Como tal, ele só é habilitado para um determinado compartilhamento se o usuário solicitar que os Arquivos NetApp do Azure o habilitem. Os compartilhamentos de Arquivos NetApp do Azure nunca são expostos à Internet. Eles só são acessíveis a partir de uma determinada VNet, por VPN ou rota expressa, portanto, os compartilhamentos de Arquivos NetApp do Azure são inerentemente seguros. A escolha de ativar a criptografia SMB é inteiramente do usuário. Esteja ciente da penalidade de desempenho prevista antes de ativar esse recurso.

Impacto da encriptação SMB nas cargas de trabalho de cliente

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

Perfil de E/S Impacto
Cargas de trabalho de leitura e gravação 10% a 15%
Metadados intensivos 5%

Redes Aceleradas

Para obter o máximo desempenho, é recomendável configurar a Rede Acelerada em suas máquinas virtuais sempre que possível. Não se esqueça das seguintes considerações:

  • 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 o Ansible e ferramentas de configuração semelhantes, não podem. A falha em ativar a Rede Acelerada pode prejudicar o desempenho de uma máquina.
  • 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. Nesses casos, será necessária uma intervenção manual.
  • Não há necessidade de definir a rede acelerada para as NICs na sub-rede dedicada dos Arquivos NetApp do Azure. A rede acelerada é um recurso que só se aplica a máquinas virtuais do Azure. As NICs do Azure NetApp Files são otimizadas por design.

RSS

Os Arquivos NetApp do Azure dão suporte ao RSS (receive-side-scaling).

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

Para ver se as NICs da máquina virtual do Azure suportam RSS, execute o comando Get-SmbClientNetworkInterface da seguinte forma 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 SMB corresponderá à contagem de NIC retornada pelo servidor SMB. Cada volume de armazenamento é acessível a partir de um único ponto de extremidade de armazenamento. Isso significa que apenas uma NIC será usada para qualquer relação SMB.

Como mostra a saída abaixo, a máquina virtual tem 2 interfaces de Get-SmbClientNetworkInterace rede--15 e 12. Como mostrado no comando Get-SmbMultichannelConnectiona seguir, embora existam duas NICS compatíveis com RSS, apenas a interface 12 é usada em conexão com o compartilhamento SMB, a interface 15 não está em uso.

Screeshot that shows output for RSS-capable NICS.

Próximos passos