SMB Direct

Aplica-se a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Azure Stack HCI, versão 21H2

O Windows Server inclui um recurso chamado SMB Direct, que dá suporte ao uso de adaptadores de rede que têm a capacidade RDMA (Acesso Remoto Direto à Memória). Os adaptadores de rede que possuem RDMA podem funcionar em velocidade máxima com menor latência sem comprometer o uso da CPU. Para cargas de trabalho como o Hyper-V ou o Microsoft SQL Server, isso permite que um servidor de arquivos remoto se pareça com um armazenamento local. O SMB Direct é automaticamente configurado e habilitado por padrão no Windows Server 2012 e em iterações futuras.

Usar o SMB Direct fornece:

  • Maior taxa de transferência: Aproveita a taxa de transferência total de redes de alta velocidade em que os adaptadores de rede coordenam a transferência de grandes volumes de dados em velocidade da linha.
  • Baixa latência: fornece respostas rápidas às solicitações de rede, o que faz com que o armazenamento remoto de arquivos pareça estar conectado diretamente ao armazenamento em blocos.
  • Baixa utilização da CPU: Usa menos ciclos da CPU ao transferir dados pela rede, o que disponibiliza mais energia para os aplicativos para servidor.

Você pode usar o SMB Direct em um cluster de failover; entretanto, certifique-se de que as redes de cluster usadas para o acesso de clientes são adequadas para o SMB Direct. O cluster de failover dá suporte ao uso de várias redes para acesso de clientes, juntamente com adaptadores de rede compatíveis com RSS (Receive Side Scaling) e com RDMA.

Observação

Você pode usar o SMB Direct no sistema operacional de gerenciamento Hyper-V para dar suporte ao uso do Hyper-V no SMB, e para fornecer armazenamento para uma máquina virtual que use a pilha de armazenamento do Hyper-V. Porém, os adaptadores de rede compatíveis com RDMA não são diretamente expostos ao cliente Hyper-V. Se você conectar um adaptador de rede compatível com RDMA a um comutador virtual, os adaptadores de rede virtual do comutador não serão compatíveis com RDMA.

Requisitos

O SMB Direct requer o seguinte:

  • Um ou mais adaptadores de rede com capacidade RDMA.
  • Pelo menos dois computadores executando um ou mais dos seguintes sistemas operacionais:
    • Windows Server 2012 e posteriores:
    • Windows 10 Enterprise e posterior.
    • Windows 10 Education e posterior.
    • Windows 10 Pro para Estações de Trabalho e posterior
    • Windows 10 Pro 22H2 (instalado de forma limpa, não atualizado de versões anteriores) e posterior.

Observação

As famílias Windows 10 e Windows 11 são restritas apenas ao cliente e não podem atuar como um servidor SMB Direct.

SMB Multichannel

SMB Multichannel é o recurso responsável pela detecção de capacidades RDMA de adaptadores de rede para habilitar o SMB Direct. Sem o SMB Multichannel, o SMB usa o TCP/IP normal com os adaptadores de rede compatíveis com RDMA (todos os adaptadores de rede fornecem uma pilha de TCP/IP juntamente com a nova pilha RDMA).

Com o SMB Multichannel, o SMB detecta se um adaptador de rede tem capacidade RDMA e cria várias conexões RDMA para essa única sessão (duas por interface). Assim, o SMB pode usar a alta taxa de transferência, a baixa latência e a baixa utilização de CPU oferecidas por adaptadores de rede compatíveis com RDMA. Ele também oferece tolerância a falhas se você estiver usando várias interfaces RDMA.

Você pode agrupar adaptadores de rede compatíveis com RDMA usando SET (Switch Embedded Teaming) a partir do Windows Server 2016. Depois que for criada pelo menos uma conexão de rede RDMA, a conexão TCP/IP usada para a negociação de protocolo original não será mais usada. No entanto, a conexão TCP/IP será mantida, caso as conexões de rede RDMA falhem.

Desabilitar o SMB Multichannel também desabilita o SMB Direct. Como o SMB Multichannel detecta capacidades de adaptadores de rede e determina se um adaptador de rede é compatível com RDMA, o SMB Direct não pode ser usado pelo cliente quando o SMB Multichannel está desabilitado.

Criptografia SMB

Desde o Windows Server 2022 e o Windows 11, o SMB Direct agora dá suporte a criptografia. Anteriormente, habilitar a criptografia SMB desabilitava o posicionamento direto de dados, tornando o desempenho RDMA tão lento quanto o TCP. Agora, os dados são criptografados antes do posicionamento, levando a uma degradação de desempenho relativamente pequena ao adicionar a privacidade de pacote protegido AES-128 e AES-256. Para obter mais informações sobre como configurar a criptografia SMB, consulte Aprimoramentos de segurança do SMB.

Além disso, os clusters de failover do Windows Server agora dão suporte ao controle granular da criptografia de comunicações de armazenamento dentro dos nós para CSV (Volumes Compartilhados Clusterizados) e a SBL (Camada de Barramento do Armazenamento). Isso significa que, ao usar o Espaços de Armazenamento Diretos e o SMB Direct, você pode optar por criptografar as comunicações leste-oeste dentro do próprio cluster para maior segurança.

Desativando e habilitando recursos do SMB Direct

O cliente SMB detecta e usa automaticamente várias conexões de rede quando uma configuração apropriada é identificada. Como o SMB Direct está habilitado por padrão, uma vez desabilitado, ele precisa ser habilitado manualmente sempre que necessário.

Normalmente, você não precisará desabilitar o SMB Direct, entretanto, você pode desabilitá-lo junto com seus recursos, executando os seguintes comandos do Windows PowerShell.

Para desabilitar o SMB Direct, digite:

Disable-WindowsOptionalFeature -Online -FeatureName SMBDirect

Para desabilitar o SMB Multichannel no lado do servidor, digite:

Set-SmbServerConfiguration -EnableMultiChannel $false

Para desativar o SMB Multichannel no lado do servidor, digite:

Set-SmbClientConfiguration -EnableMultiChannel $false

Para desabilitar o RDMA para uma interface específica, digite:

Disable-NetAdapterRdma <name>

Para desabilitar o RDMA para todas as interfaces, digite:

Set-NetOffloadGlobalSetting -NetworkDirect Disabled

Quando você desabilita o RDMA no cliente ou no servidor, os sistemas não podem usá-lo. Network Direct é o nome interno do suporte básico do Windows Server a interfaces RDMA.

Para verificar para qual estado de operabilidade o SMB Direct está configurado no momento, execute o seguinte cmdlet:

Get-WindowsOptionalFeature -Online -FeatureName SMBDirect

Testando o SMB Direct

Você pode testar o desempenho do SMB Direct medindo a taxa de transferência ao executar uma cópia de arquivo grande. Antes do teste, verifique se o adaptador de rede dá suporte ao RDMA usando o PowerShell.

No lado do servidor, digite:

Get-SmbServerNetworkInterface

No lado do cliente, digite:

Get-SmbClientNetworkInterface

Depois que o adaptador de rede for verificado com capacidade para RDMA, execute o seguinte teste:

  1. Desabilite o RDMA no adaptador de rede, consulte Desabilitando e habilitando recursos do SMB Direct.
  2. Meça o tempo necessário para executar uma cópia de um arquivo grande sem usar o SMB Direct.
  3. Reabilite o RDMA no adaptador de rede, execute a mesma cópia de arquivo e compare os dois resultados.
  4. Para evitar o impacto do cache, execute o seguinte:
    1. Copie uma grande quantidade de dados (mais dados do que a memória é capaz de tratar).
    2. Copie os dados duas vezes, com a primeira cópia como um treino e depois medindo o tempo da segunda cópia.
    3. Reinicie o servidor e o cliente antes de cada teste para garantir que eles estejam operando em condições semelhantes.

Além disso, você pode observar os contadores de desempenho durante o teste usando o mesmo cenário usando a ferramenta Monitor de Desempenho executando o seguinte:

  1. Selecione Iniciar, digite perfmon, clique Enter.
  2. No painel esquerdo, em Ferramentas de Monitoramento> selecione Monitor de Desempenho.
  3. No painel direito, selecione o ícone verde "+" para adicionar um novo contador.
  4. Na caixa de diálogo Adicionar Contadores, expanda Conexão Direta SMB.
  5. Selecione Leitura de Bytes RDMA por segundo e Gravação de Bytes RDMA por segundo, selecione Adicionare selecione OK.

Capacidade de failover do SMB Direct

Faça assim para confirmar a capacidade de failover do SMB Direct:

  1. Verifique se o SMB Direct está funcionando em uma configuração de vários adaptadores de rede.
  2. Execute a cópia de um arquivo grande. Durante o processo de cópia, simule uma falha de um dos caminhos de rede desconectando um dos cabos ou desabilitando um dos adaptadores de rede.
  3. Confirme se a cópia do arquivo continua usando um dos adaptadores de rede restantes e se não há erros de cópia do arquivo.

Dica

Para evitar falhas em uma carga de trabalho que não utilize SMB Direct, certifique-se de que não haja outras cargas de trabalho usando o caminho de rede desconectado.

Referências adicionais