Compartilhar via


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 anteriores a volumes SMB existentes têm o recurso habilitado e todos os volumes recém-criados também têm o recurso habilitado no momento da criação.

Qualquer conexão SMB estabelecida antes da habilitação do recurso precisa 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 da interface de rede RSS de 1, 4, 8, 16 e 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, 4 para 8 e 8 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).

Gráfico que mostra a comparação aleatória de E/S do SMB Multichannel.

A máquina virtual (VM) 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.

Gráfico que mostra o teste de comparação de E/S aleatório.

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 quatro 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 e tamanho de instância.

Gráfico que mostra a comparação de testes de taxa de transferência.

O Azure impõe limites de taxa de rede a cada tipo e tamanho de VM. O limite de taxa é imposto somente no tráfego de saída. O número de NICs presentes em uma VM 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.

Gráfico que mostra o teste de comparação de E/S sequencial.

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 dá 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.

Gráfico que mostra o impacto no desempenho da Assinatura SMB.

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 E/S flexível (FIO) foram usados para garantir o uso completo da largura de banda de 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%:

Gráfico que mostra o teste standard _D32ds_v4 4K de E/S aleatória do Windows 2019.

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

Gráfico que mostra a taxa de transferência sequencial standard _D32ds_v4 64K do Windows 2019.

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:

Gráfico que mostra teste de E/S aleatória com 5 instancias standard _D32ds_v4 4K do Windows 2019.

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

Gráfico que mostra a taxa de transferência sequencial de 5 instancias standard _D32ds_v4 64K do Windows 2019.

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.

A captura de tela mostra a interface Adicionar contador do Monitor de Desempenho.

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 você não usar todos esses 16 adaptadores virtuais, talvez não esteja maximizando sua capacidade de largura de banda de rede.

A captura de tela mostra a saída do Monitor de Desempenho.

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, ela só será habilitada 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 uma determinada VNet, via VPN ou express route, 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 em suas VMs 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 VMs que dão suporte a esse recurso. No entanto, outros métodos de implantação como Ansible e ferramentas de configuração semelhantes, não podem. 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 VM devido à falta de suporte para um tipo ou tamanho de instância, ela permanecerá desabilitada com tipos de instância maiores. Você precisa 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. A rede acelerada é uma funcionalidade que se aplica somente às VMs do Azure. As NICs do Azure NetApp Files são otimizadas por design.

Recebimento de escala lateral

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

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 VM do Azure dão suporte ao RSS, execute o comando Get-SmbClientNetworkInterface como demonstrado a seguir e verifique o campo RSS Capable:

Captura de tela que mostra a saída RSS para a VM do Azure.

Várias NICs em clientes SMB

Você não deve configurar várias NICs em seu cliente para SMB. O cliente SMB não corresponde à contagem de NICs retornada pelo servidor SMB. Cada volume de armazenamento pode ser acessado de um e apenas um ponto de extremidade de armazenamento, o que significa que apenas uma NIC é usada para qualquer relação SMB.

Como mostra a saída de Get-SmbClientNetworkInterface abaixo, a VM 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.

Captura de tela que mostra a saída para NICs compatíveis com RSS.

Próximas etapas