Compactação do 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 na rede. Isso elimina a necessidade de primeiro reduzir um arquivo manualmente com um aplicativo, copiá-lo e depois ampliá-lo no computador de destino. Os arquivos compactados consomem menos largura de banda de rede e precisarão de menos tempo para transferência, exigindo um uso de CPU um pouco maior durante as transferências. A compactação SMB é mais eficaz em redes com largura de banda menor, como Ethernet de 1 Gbps ou rede Wi-Fi do cliente. Uma transferência de arquivo em uma rede Ethernet de 100 Gbps sem congestionamento entre dois servidores com armazenamento flash pode apresentar a mesma rapidez 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:
- Dá suporte a algoritmos de compactação XPRESS (LZ77), XPRESS Huffman (LZ77+Huffman), LZNT1 ou PATTERN_V1*. O XPRESS é usado automaticamente
- Suporta algoritmo de compressão de LZ4 no Windows Server 2025
- Dá suporte à assinatura e criptografia SMB
- Dá suporte a SMB por QUIC
- Dá suporte a SMB Multichannel
- Não dá suporte a SMB Direct por RDMA
Observação
Windows 11 e Windows Server 2025 também suportam o 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 ver uma demonstração da compactação SMB, assista a este vídeo:
Requisitos
Para usar a compactação SMB em uma carga de trabalho tradicional do servidor de arquivos de cliente, você precisa do seguinte:
- Um servidor de arquivos executando o Windows Server 2022 localmente ou no Azure
- Um computador Windows 11 (Windows para Empresas)
- Windows Admin Center – (Home page)
Como configurar a compactação SMB
Você pode configurar a compactação SMB da perspectiva do cliente e do servidor. Cliente e servidor não se referem a uma edição específica como Windows Server 2022 ou Windows 11, versão 24H2, mas sim à arquitetura de uma transferência de arquivos entre dois computadores. Ter suporte tanto do Windows Server 2022 quanto do Windows 11 como um cliente ou servidor de compactação SMB.
Como solicitar a compactação SMB em compartilhamentos de arquivo
Você pode configurar os compartilhamentos para sempre solicitar a compactação quando conectados por clientes. Você pode usar o Windows Admin Center ou o PowerShell.
Como usar o Windows Admin Center
- Instale o Windows Admin Center e conecte-se com um servidor de arquivos Windows Server 2022.
- Clique no item de menu Arquivos e compartilhamento de arquivo.
- Clique em Compartilhamentos de arquivo.
- Edite um compartilhamento existente ou crie outro.
- Selecione Compactar dados e clique em Adicionar ou Editar.
Usando o PowerShell
Abra um prompt de comando do PowerShell com privilégios elevados como administrador.
Crie um compartilhamento com compactação usando
New-SMBShare
com o parâmetro e o argumento-CompressData $true
. Por exemplo:New-SmbShare -Name "Sales" -Path "C:\sales" -CompressData $true
Edite um compartilhamento existente com compactação usando
Set-SMBShare
com o parâmetro e o argumento-CompressData $true
. Por exemplo:Set-SmbShare -Name "Sales" -CompressData $true
Como solicitar a compactação SMB em unidades mapeadas
Você pode solicitar que todos os dados copiados em uma unidade mapeada sejam compactados. Isso pode ser feito dentro de um script de logon ou durante a execução manual.
Abrir um prompt de comando do PowerShell.
Mapeie uma unidade usando
New-SMBMapping
com o parâmetro e o argumento-CompressNetworkTraffic $true
. Por exemplo:New-SmbMapping -LocalPath "Z:" -RemotePath "\\fs1.corp.contoso.com\sales" -CompressNetworkTraffic $true
Como solicitar a compactação SMB com ferramentas de cópia
Você pode solicitar que a compactação SMB seja tentada em arquivos específicos usando robocopy ou xcopy.
Observação
Se você quiser que o Explorador de Arquivos, ferramentas de cópia de terceiros ou aplicativos usem a compactação, mapeie as unidades com a compactação, habilite a compactação em compartilhamentos ou defina os clientes SMB para sempre usarem a compactação.
Abrir um prompt do CMD ou um prompt de comando do PowerShell.
Faça a cópia com o sinalizador /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 a atualização KB5016693 (build do sistema operacional 20348.946) e Windows 11 com a atualização KB5016691 (build do sistema operacional 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 do PowerShell; na versão inicial do Windows 11 e do Windows Server 2022, você só pode usar as configurações do registro para controlar a maioria desses comportamentos e não pode configurar um servidor SMB para sempre solicitar compactação, mesmo com as configurações de compartilhamento dele. Um cliente SMB e um servidor SMB referem-se aos serviços SMB, e 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 fazer a compactação (cliente SMB)
- Execute o Console de Gerenciamento de Política de Grupo em seu domínio do Active Directory e crie ou navegue até uma política de grupo.
- Expandir política Computer Configuration\Policies\Administrative Templates\Network\Lanman Workstation.
- Habilitar política Use compactação SMB por padrão.
- Feche o editor de políticas.
Nunca compactar (cliente SMB)
- Execute o Console de Gerenciamento de Política de Grupo em seu domínio do Active Directory e crie ou navegue até uma política de grupo.
- Expandir política Computer Configuration\Policies\Administrative Templates\Network\Lanman Workstation.
- Habilitar política Desabilitar compactação SMB.
- Feche o editor de políticas.
Sempre tente fazer a compactação (servidor SMB)
- Execute o Console de Gerenciamento de Política de Grupo em seu domínio do Active Directory e crie ou navegue até uma política de grupo.
- Expandir política Computer Configuration\Policies\Administrative Templates\Network\Lanman Server.
- Habilitar política Solicitar compactação de tráfego para todos os compartilhamentos.
- Feche o editor de políticas.
Nunca compactar (servidor SMB)
- Execute o Console de Gerenciamento de Política de Grupo em seu domínio do Active Directory e crie ou navegue até uma política de grupo.
- Expandir política Computer Configuration\Policies\Administrative Templates\Network\Lanman Server.
- Habilitar política Desabilitar compactação SMB.
- Feche o editor de políticas.
Noções básicas e controle de comportamentos de compactação
A partir do Windows Server 2022 com a atualização KB5016693 (build do sistema operacional 20348.946) e Windows 11 com a atualização KB5016691 (build do sistema operacional 22000.918), o SMB, por padrão, sempre tenta compactar um arquivo quando um cliente ou servidor solicita, sem usar amostragem de compactação.
Observação
Na versão original do Windows Server 2022 e Windows 11, a compressão SMB usava por padrão um algoritmo que tentava compactar os primeiros 524.288.000 bytes (500 MiB) de um arquivo durante a transferência e controlar a compactação de pelo menos 104.857.600 bytes (100 MiB) dentro desse intervalo de 500 MiB. Se menos de 100 MiB fosse compactável, a compactação SMB interromperia a tentativa de compactar o restante do arquivo. Se pelo menos 100 MiB fosse compactável, a compactação SMB tentaria compactar o restante do arquivo. Com essa alteração de comportamento, a amostragem agora está desabilitada por padrão e o SMB sempre tenta compactar todo o arquivo quando isso é solicitado por um cliente ou servidor.
Como testar a compactação SMB
Uma forma simples de testar a configuração de compactação é usar arquivos VHDX. Você pode criar e montar um VHDX, adicionar alguns arquivos e depois desmontar o VHDX e copiá-lo como um arquivo. Como alternativa, basta copiar um arquivo VHDX de máquina virtual desmontado existente, pois grande parte do conteúdo do arquivo será compactada. Para ver um exemplo de criação de um arquivo de teste VHDX:
Inicie o Diskmgmt.msc.
Selecione o Disco Local (C:) clicando nele.
Clique em Ação e em Criar VHD.
No Diskmgmt, clique com o botão direito do mouse no VHDX, que agora é mostrado como "Não inicializado", clique em Inicializar disco e em OK. Clique com o botão direito do mouse na seção de discos Não Alocados e clique em Novo Volume Simples. Depois, clique em Próximo em todos os prompts de menu e em Concluir.
Especifique um caminho de arquivo, defina o tamanho como "25 GB", selecione VHDX e Tamanho fixo. Clique em OK.
Clique com o botão direito do mouse no disco, clique em Desconectar VHD e em OK.
No Explorador de Arquivos, clique duas vezes nesse arquivo VHDX para montá-lo. Copie alguns MB de arquivos não compactados, 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.
O teste de compactação SMB entre um par de VMs em execução no mesmo host do Hyper-V pode não mostrar a economia de tempo, pois o comutador virtual é de 10 Gbps e não apresenta congestionamento. Além disso, os hipervisores modernos geralmente usam armazenamento flash. Teste a compactação nas redes reais que você planeja usar. Você também pode reduzir a largura de banda de rede em VMs do Hyper-V para fins de teste usando Set-VMNetworkAdapter com -MaximumBandwidth
definido como 1Gb
, por exemplo.
Para ver o desempenho da compactação, você pode executar o robocopy no mesmo arquivo para um servidor duas vezes, uma vez com o sinalizador /compress
e novamente sem compactação, excluindo o arquivo do servidor entre cada teste. Se o arquivo estiver sendo compactando, você verá uma utilização de rede menor no Gerenciador de Tarefas e um tempo de cópia reduzido. Você também pode observar os contadores "Solicitações Compactadas/s" e "Respostas Compactadas/s" do objeto "Compartilhamentos do Servidor SMB" do Monitor de Desempenho do servidor SMB.
RDMA e SMB Direct
A compactação SMB não dá suporte a SMB Direct e RDMA. Isso significa que, mesmo que o cliente solicite a compactação e o servidor tenha suporte para isso, a compactação não será tentada com SMB Direct e RDMA. O suporte para compactação SMB com SMB Direct e RDMA será adicionado após as versões preliminares públicas do Windows Server 2022 e do Windows 11.