Partilhar via


Compressão SMB

A compactação SMB permite que um administrador, usuário ou aplicativo solicite a compactação de arquivos à medida que eles são transferidos pela rede. Isso elimina a necessidade de primeiro esvaziar manualmente um arquivo com um aplicativo, copiá-lo e, em seguida, inflar no computador de destino. Os ficheiros comprimidos consomem menos largura de banda de rede e demoram menos tempo a transferir, ao custo de um ligeiro aumento da utilização da CPU durante as transferências. A compressão SMB é mais eficaz em redes com menos largura de banda, como a ethernet de 1 Gbps ou a rede Wi-Fi de um cliente; uma transferência de arquivos através de uma rede ethernet de 100 Gbps descongestionada entre dois servidores com armazenamento flash pode ser tão rápida sem compactação SMB na prática, mas ainda criará menos congestionamento para outros aplicativos.

A compactação SMB no Windows tem as seguintes características:

  • Suporta algoritmos de compressão XPRESS (LZ77), XPRESS Huffman (LZ77+Huffman), LZNT1 ou PATTERN_V1*. XPRESS é usado automaticamente
  • Suporta algoritmo de compressão LZ4 no Windows Server 2025
  • Suporta assinatura SMB e criptografia SMB
  • Suporta SMB sobre QUIC
  • Suporta SMB Multichannel
  • Não suporta SMB Direct sobre RDMA

Note

O Windows 11 e o Windows Server 2025 também oferecem suporte ao algoritmo de compactação LZ4, conforme definido pelo LZ4.org. Para obter mais informações sobre esse algoritmo de compactação, consulte a documentação de compactação LZ4.

Para uma demonstração da compressão SMB, assista a este vídeo:

Requirements

Para usar a compactação SMB em uma carga de trabalho tradicional do servidor de arquivos cliente, você precisa do seguinte:

Configurando a compactação SMB

Você pode configurar a compactação SMB de uma perspetiva de cliente e servidor. Cliente e servidor não se referem a uma edição específica, como o Windows Server 2022 ou o Windows 11, versão 24H2, mas sim à arquitetura de uma transferência de arquivos entre dois computadores. Tanto o sistema Windows Server 2022 como o Windows 11 suportam a função de cliente ou servidor para a compactação SMB.

Solicitando compactação SMB em compartilhamentos de arquivos

Você pode configurar partilhas para que sempre solicitem compactação quando forem acessadas por clientes. Você pode usar o Windows Admin Center ou o PowerShell.

Usando o Windows Admin Center

  1. Instale o Windows Admin Center e conecte-se a um servidor de arquivos do Windows Server 2022.
  2. Clique no item de menu Arquivos e compartilhamento de arquivos .
  3. Clique em Compartilhamentos de arquivos.
  4. Edite um compartilhamento existente ou crie um novo compartilhamento.
  5. Selecione Compactar dados e clique em Adicionar ou Editar.

Captura de ecrã do Windows Admin Center no servidor de ficheiros do Windows Server 2022.

Usando o PowerShell

  1. Abra um prompt de comando do PowerShell com privilégios elevados como administrador.

  2. Crie um novo compartilhamento com compactação usando New-SMBShare com o parâmetro -CompressData $true e argumento. Por exemplo:

    New-SmbShare -Name "Sales" -Path "C:\sales" -CompressData $true
    
  3. Edite uma partilha existente com compactação usando Set-SMBShare o parâmetro -CompressData $true e o argumento. Por exemplo:

    Set-SmbShare -Name "Sales" -CompressData $true
    

Solicitando compactação SMB em unidades mapeadas

Você pode solicitar que todos os dados copiados em uma unidade mapeada sejam compactados. Isso pode ser feito como parte de um script de logon ou quando executado manualmente.

  1. Abra um prompt de comando do PowerShell.

  2. Mapeie uma unidade usando New-SMBMapping com o parâmetro -CompressNetworkTraffic $true e o argumento. Por exemplo:

    New-SmbMapping -LocalPath "Z:" -RemotePath "\\fs1.corp.contoso.com\sales" -CompressNetworkTraffic $true
    

Solicitando compressão de SMB com ferramentas de cópia

Você pode solicitar que a compactação SMB seja tentada para arquivos específicos usando robocopy ou xcopy.

Note

Se você quiser que o Explorador de Arquivos, ferramentas de cópia de terceiros ou aplicativos usem compactação, mapeie unidades com compactação, habilite a compactação em compartilhamentos ou defina clientes SMB para sempre compactar.

  1. Abra um prompt CMD ou um prompt de comando do PowerShell.

  2. Copie com a opção /COMPRESS. Por exemplo:

    ROBOCOPY c:\hypervdisks \\hypervcluster21.corp.contoso.com\disks$ *.vhdx /COMPRESS
    

Sempre exigir ou sempre rejeitar solicitações de compactação

A partir do Windows Server 2022 com atualização KB5016693 (Compilação do SO 20348.946) e do Windows 11 com KB5016691 de atualização (Compilação do SO 22000.918), você pode configurar um cliente SMB ou servidor SMB para sempre solicitar compactação e sempre rejeitar solicitações de compactação. Agora você pode usar a Política de Grupo ou o PowerShell; na versão inicial do Windows 11 e do Windows Server 2022, você só podia usar as configurações do Registro para controlar a maioria desses comportamentos e não podia configurar um servidor SMB para sempre solicitar compactação, apesar de suas configurações de compartilhamento. Um cliente SMB e um servidor SMB referem-se aos serviços SMB, não a uma edição do Windows ou SKU. Todas essas alterações SMB entram em vigor imediatamente sem uma reinicialização.

Sempre tente compactação (cliente SMB)

  1. Execute o Console de Gerenciamento de Diretiva de Grupo para seu domínio do Ative Directory e crie ou navegue até uma política de grupo.
  2. Expanda a política Configuração do Computador\Políticas\Modelos Administrativos\Rede\Estação de Trabalho Lanman.
  3. Habilite a política Use a compactação SMB por padrão.
  4. Feche o editor de políticas.

Nunca comprimir (cliente SMB)

  1. Execute o Console de Gerenciamento de Diretiva de Grupo para seu domínio do Ative Directory e crie ou navegue até uma política de grupo.
  2. Expanda a política Configuração do Computador\Políticas\Modelos Administrativos\Rede\Estação de Trabalho Lanman.
  3. Habilite a política Desativar a compactação SMB.
  4. Feche o editor de políticas.

Sempre tente compactação (servidor SMB)

  1. Execute o Console de Gerenciamento de Diretiva de Grupo para seu domínio do Ative Directory e crie ou navegue até uma política de grupo.
  2. Expanda a política Configuração do Computador\Políticas\Modelos Administrativos\Rede\Servidor Lanman.
  3. Habilitar a política Solicitar compactação de tráfego para todos os compartilhamentos.
  4. Feche o editor de políticas.

Nunca comprimir (servidor SMB)

  1. Execute o Console de Gerenciamento de Diretiva de Grupo para seu domínio do Ative Directory e crie ou navegue até uma política de grupo.
  2. Expanda a política Configuração do Computador\Políticas\Modelos Administrativos\Rede\Servidor Lanman.
  3. Habilite a política Desativar a compactação SMB.
  4. Feche o editor de políticas.

Compreender e controlar comportamentos de compressão

A partir do Windows Server 2022 com KB5016693 de atualização (Compilação do SO 20348.946) e do Windows 11 com KB5016691 de atualização (Compilação do SO 22000.918), o SMB, por padrão, sempre tenta compactar um arquivo quando um cliente ou servidor o solicita, sem usar amostragem de compactação.

Note

Na versão original do Windows Server 2022 e do Windows 11, a compactação SMB usava como padrão um algoritmo em que tentava compactar os primeiros 524.288.000 bytes (500 MiB) de um arquivo durante a transferência e rastrear que pelo menos 104.857.600 bytes (100 MiB) fossem compactados dentro desse intervalo de 500 MiB. Se menos de 100 MiB era compressível, a compressão SMB parou de tentar comprimir o resto do ficheiro. Se pelo menos 100 MiB foram compactados, a compactação SMB tentou compactar o restante do arquivo. Com essa alteração de comportamento, a amostragem agora é desabilitada por padrão e o SMB sempre tenta compactar o arquivo inteiro quando um cliente ou servidor o solicita.

Testando a compactação SMB

Uma maneira simples de testar sua configuração de compactação é usando arquivos VHDX. Você pode criar e montar um VHDX, adicionar alguns arquivos a ele, em seguida, desmontar o VHDX e copiá-lo como um arquivo. Como alternativa, pode simplesmente copiar um ficheiro VHDX de uma máquina virtual já desmontada, uma vez que grande parte do seu conteúdo será compactado. Para obter um exemplo de criação de um arquivo de teste VHDX:

  1. Inicie o Diskmgmt.msc.

  2. Selecione Disco Local (C:) clicando nele.

  3. Clique em Ação e, em seguida, em Criar VHD.

  4. No Diskmgmt, clique com o botão direito do mouse no VHDX agora mostrado como "Não inicializado", clique em Inicializar disco e clique em OK. Clique com o botão direito do rato na secção discos não alocados e clique em Novo Volume Simples, depois em Seguinte para todos os comandos de menu e, em seguida, clique em Concluir.

  5. Especifique um caminho de arquivo, defina o tamanho como "25 GB", selecione VHDX e Tamanho fixo e clique em OK.

    Captura de ecrã de criar e anexar disco rígido virtual para Windows Hyper-V.

  6. Clique com o botão direito do rato no disco e clique em Desanexar VHD e, em seguida, clique em OK.

  7. No Explorador de Ficheiros, faça duplo clique nesse ficheiro VHDX para o montar. Copie alguns MB de arquivos não compactáveis, como o formato JPG, clique com o botão direito do mouse no disco montado e clique em Ejetar.

Agora você tem um arquivo de teste grande com conteúdo compactado.

Testar a compactação SMB entre um par de VMs em execução no mesmo host Hyper-V pode não mostrar economia de tempo porque o comutador virtual é de 10 Gbps e não tem congestionamento, além de hipervisores modernos geralmente usarem armazenamento flash. Teste sua compactação nas redes reais que você planeja usar. Você também pode reduzir a largura de banda de rede em Hyper-V VMs para fins de teste usando Set-VMNetworkAdapter com -MaximumBandwidth definido como 1Gb, por exemplo.

Para ver como a compactação está a funcionar, poderá copiar o mesmo ficheiro para um servidor duas vezes usando robocopy — uma vez com a opção /compress e novamente sem compactação, eliminando o ficheiro do servidor entre cada teste. Se o ficheiro estiver a ser comprimido, deverá ver menos utilização da rede no Gestor de Tarefas e um menor tempo de cópia. Você também pode observar o objeto do Monitor de desempenho do servidor SMB "Compartilhamentos de servidor SMB" para seus contadores "Solicitações compactadas/seg" e "Respostas compactadas/seg".

RDMA e SMB Direct

A compactação SMB não suporta SMB Direct e RDMA. Isso significa que, mesmo que o cliente solicite compactação e o servidor a suporte, a compactação não será tentada com SMB Direct e RDMA. O suporte para compactação SMB com SMB Direct e RDMA virá após as visualizações públicas do Windows Server 2022 e do Windows 11.