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. Todas as ações SMB anteriores aos volumes SMB existentes têm o recurso habilitado; Todos os volumes recém-criados também têm o recurso ativado no momento da criação.
Qualquer conexão SMB estabelecida antes da ativação do recurso precisa 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
,4
,8
,,16
e set-SmbClientConfiguration -ConnectionCountPerRSSNetworkInterface <count>
. 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 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 perfmon Per Processor Network Activity Cycles
(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 sem cache. No entanto, o gráfico acima mostra significativamente mais E/S em relação ao SMB.
E/S 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 de clientes por interface de rede RSS além de quatro 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 e tamanho de instância.
O Azure coloca limites de taxa de rede em cada tipo e tamanho de VM. O limite de tarifa é imposto apenas ao tráfego de saída. O número de NICs presentes em uma VM 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.
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.
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. Utilizou-se um ótimo IODepth
de 16; Parâmetros flexíveis de E/S (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%:
O gráfico a seguir mostra os resultados para E/S sequenciais:
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:
O gráfico a seguir mostra os resultados para E/S sequenciais:
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.
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.
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 criptografia 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 VMs 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 VMs 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 VM devido à falta de suporte para um tipo ou tamanho de instância, ela permanecerá desabilitada com tipos de instância maiores. Nesses casos, é 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 se aplica apenas às VMs do Azure. As NICs do Azure NetApp Files são otimizadas por design.
Receber dimensionamento lateral
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 suas NICs de VM do Azure suportam RSS, execute o comando Get-SmbClientNetworkInterface
da seguinte maneira 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 NIC retornada pelo servidor SMB. Cada volume de armazenamento é acessível a partir de um único ponto de extremidade de armazenamento, o que significa que apenas uma NIC é usada para qualquer relação SMB.
Como mostra a saída abaixo, a VM tem duas interfaces de Get-SmbClientNetworkInterace
rede: 15 e 12. Como mostrado no comando Get-SmbMultichannelConnection
a 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.