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).
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.
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.
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.
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.
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%:
O gráfico a seguir mostra os resultados para E/S sequencial:
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:
O gráfico a seguir mostra os resultados para E/S sequencial:
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.
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.
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
:
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.