Compresión de SMB

Se aplica a: Windows Server 2022, Windows 11

La compresión de SMB permite a un administrador, usuario o aplicación solicitar la compresión de archivos a medida que se transfieren a través de la red. Esto elimina la necesidad de desinflar manualmente un archivo con una aplicación, copiarlo y, luego, inflarlo en el equipo de destino. Los archivos comprimidos consumen menos ancho de banda de red y tardan menos tiempo en transferirse, a costa de un ligero aumento del uso de CPU durante las transferencias. La compresión de SMB es más eficaz en redes con menos ancho de banda, como la red Ethernet de 1 Gbps o Wi-Fi de un cliente. En la práctica, una transferencia de archivos a través de una red Ethernet de 100 Gbps sin congestión, entre dos servidores con almacenamiento flash puede ser igual de rápida sin la compresión de SMB, pero generará menos congestión para otras aplicaciones.

La compresión de SMB en Windows tiene las siguientes características:

  • Admite algoritmos de compresión XPRESS (LZ77), XPRESS Huffman (LZ77+Huffman), LZNT1 o PATTERN_V1*. XPRESS se usa automáticamente.
  • Admite el algoritmo de compresión LZ4 en Windows Server 2025
  • Admite la firma SMB y el cifrado SMB.
  • Admite SMB a través de QUIC.
  • Admite SMB multicanal.
  • No admite SMB directo a través de RDMA.

Nota:

Windows 11 Insider y Windows Server Insider Preview compilaciones 25997 y versiones posteriores también admiten el algoritmo de compresión LZ4, tal como se define en LZ4.org. Para obtener más información sobre este algoritmo de compresión, consulte la Documentación de compresión LZ4.

Para ver una demostración de la compresión de SMB, vea este vídeo:

Requisitos

Para usar la compresión de SMB en una carga de trabajo tradicional de servidor de archivos de cliente, necesita lo siguiente:

Configuración de la compresión de SMB

Puede configurar la compresión de SMB desde la perspectiva de un cliente y de un servidor. El cliente y el servidor no hacen referencia a una edición determinada, como Windows Server 2022 o Windows 11 Insider Preview, sino a la arquitectura de una transferencia de archivos entre dos equipos. Tanto Windows Server 2022 como Windows 11 admiten ser clientes o servidores de la compresión de SMB.

Solicitud de compresión de SMB en recursos compartidos de archivos

Puede configurar que los recursos compartidos soliciten siempre la compresión cuando los clientes se conecten. Puede usar Windows Admin Center o PowerShell.

Uso de Windows Admin Center

  1. Instale Windows Admin Center y conéctese a un servidor de archivos de Windows Server 2022.
  2. Haga clic en el elemento de menú Archivos y uso compartido de archivos.
  3. Haga clic en Recursos compartidos de archivos.
  4. Edite un recurso compartido existente o cree uno.
  5. Seleccione Comprimir datos y, luego, haga clic en Agregar o Editar.

Captura de pantalla de Windows Admin Center en el servidor de archivos de Window Server 2022.

Usar PowerShell

  1. Abra un símbolo del sistema de PowerShell con privilegios elevados como administrador.

  2. Cree un nuevo recurso compartido con compresión mediante New-SMBShare con el parámetro y argumento -CompressData $true. Por ejemplo:

    New-SmbShare -Name "Sales" -Path "C:\sales" -CompressData $true
    
  3. Edite un recurso compartido existente con compresión mediante Set-SMBShare con el parámetro y argumento -CompressData $true. Por ejemplo:

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

Solicitud de compresión de SMB en unidades asignadas

Puede solicitar que todos los datos copiados en una unidad asignada se compriman. Esto se puede hacer como parte de un script de inicio de sesión o cuando se ejecuta manualmente.

  1. Abre un símbolo del sistema de PowerShell.

  2. Asigne una unidad mediante New-SMBMapping con el parámetro y argumento -CompressNetworkTraffic $true. Por ejemplo:

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

Solicitud de compresión de SMB con herramientas de copia

Puede solicitar que se intenta la compresión de SMB para archivos concretos mediante robocopy o xcopy.

Nota

Si quiere que el Explorador de archivos, herramientas de copia de terceros o aplicaciones usen compresión, asigne unidades con compresión, habilite la compresión en recursos compartidos o establezca clientes de SMB para que siempre se compriman.

  1. Abre un símbolo del sistema de CMD o de PowerShell.

  2. Copie con la marca /COMPRESS. Por ejemplo:

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

Requerir siempre o rechazar siempre las solicitudes de compresión

A partir de Windows Server 2022 con la actualización KB5016693 (compilación del sistema operativo 20348.946) y Windows 11 con la actualización KB5016691 (compilación del sistema operativo 22000.918), puede configurar un cliente SMB o un servidor SMB para solicitar siempre la compresión y rechazar siempre las solicitudes de compresión. Ahora puede usar la directiva de grupo o PowerShell; en la versión inicial de Windows 11 y Windows Server 2022 solo podía utilizar la configuración del Registro para controlar la mayoría de estos comportamientos y no podía configurar un servidor SMB para solicitar siempre la compresión a pesar de su configuración de recurso compartido. Un cliente SMB y un servidor SMB hacen referencia a los servicios SMB, no a una edición o SKU de Windows. Todos estos cambios de SMB surten efecto de inmediato sin un reinicio.

Intentar siempre la compresión (cliente SMB)

  1. Ejecute la Consola de administración de directivas de grupo para el dominio de Active Directory y cree o vaya a una directiva de grupo.
  2. Expanda la directiva Computer Configuration\Policies\Administrative Templates\Network\Lanman Workstation.
  3. Habilite la directiva Use SMB Compression by Default.
  4. Cierre el editor de directivas.

No comprimir nunca (cliente de SMB)

  1. Ejecute la Consola de administración de directivas de grupo para el dominio de Active Directory y cree o vaya a una directiva de grupo.
  2. Expanda la directiva Computer Configuration\Policies\Administrative Templates\Network\Lanman Workstation.
  3. Habilite la directiva Disable SMB Compression.
  4. Cierre el editor de directivas.

Intento de compresión siempre (servidor SMB)

  1. Ejecute la Consola de administración de directivas de grupo para el dominio de Active Directory y cree o vaya a una directiva de grupo.
  2. Expanda la directiva Computer Configuration\Policies\Administrative Templates\Network\Lanman Server.
  3. Habilite la directiva Request traffic compression for all shares.
  4. Cierre el editor de directivas.

No comprimir nunca (servidor de SMB)

  1. Ejecute la Consola de administración de directivas de grupo para el dominio de Active Directory y cree o vaya a una directiva de grupo.
  2. Expanda la directiva Computer Configuration\Policies\Administrative Templates\Network\Lanman Server.
  3. Habilite la directiva Disable SMB Compression.
  4. Cierre el editor de directivas.

Descripción y control de los comportamientos de compresión

A partir de Windows Server 2022 con la actualización KB5016693 (compilación del sistema operativo 20348.946) y Windows 11 con la actualización KB5016691 (compilación del sistema operativo 22000.918), SMB siempre intenta comprimir un archivo cuando un cliente o servidor lo solicita, sin utilizar el muestreo de compresión.

Nota:

En la versión original de Windows Server 2022 y Windows 11, la compresión SMB utiliza de forma predeterminada un algoritmo en el que ha intentado comprimir los primeros 524 288 000 bytes (500 MiB) de un archivo durante la transferencia y realizar un seguimiento de al menos 104 857 600 bytes (100 MiB) comprimidos dentro de ese intervalo de 500 MiB. Si se podían comprimir menos de 100 MiB, la compresión de SMB ha dejado de intentar comprimir el resto del archivo. Si se han comprimido al menos 100 MiB, la compresión de SMB ha intentado comprimir el resto del archivo. Con este cambio de comportamiento, el muestreo está ahora deshabilitado de forma predeterminada, y SMB siempre intenta comprimir todo el archivo cuando un cliente o un servidor lo solicita.

Prueba de la compresión de SMB

Una manera sencilla de probar la configuración de compresión es usar archivos VHDX. Puede crear y montar un VHDX, agregarle algunos archivos y, luego, desmontar el VHDX y copiarlo como archivo. Como alternativa, puede tan solo copiar un archivo VHDX de máquina virtual desmontado existente, ya que gran parte de su contenido de archivo se comprimirá. Para ver un ejemplo de creación de un archivo de prueba VHDX:

  1. Inicie Diskmgmt.msc.

  2. Haga clic en Disco local (C:) para seleccionarlo.

  3. Haz clic en Acción y luego en Crear VHD.

  4. En Diskmgmt, haga clic con el botón derecho en el VHDX que ahora se muestra como "Sin inicializar" y haga clic en Inicializar disco y haga clic en Aceptar. Haga clic con el botón derecho en la sección Sin asignar de los discos y haga clic en Nuevo volumen simple y, después, en Siguiente para todos los mensajes de menú y, a continuación, haga clic en Finalizar.

  5. Especifique una ruta de acceso de archivo, establezca el tamaño en "25 GB", seleccione VHDX y Tamaño fijo, y haga clic en Aceptar.

    Captura de pantalla de la creación y conexión del disco duro virtual para Windows Hyper-V.

  6. Haga clic con el botón derecho en el disco y haga clic en Ocultar VHD y luego en Aceptar.

  7. En el Explorador de archivos, haga doble clic en ese archivo VHDX para montarlo. Copie algunos MB de archivos no comprimibles, como el formato JPG, haga clic con el botón derecho en el disco montado y haga clic en Expulsar.

Ahora tiene un archivo de prueba grande con contenido comprimido.

Probar la compresión de SMB entre un par de máquinas virtuales que se ejecutan en el mismo host de Hyper-V puede no mostrar un ahorro de tiempo, ya que el conmutador virtual es de 10 Gbps y no tiene congestión, además de que los hipervisores modernos suelen usar almacenamiento flash. Pruebe la compresión en las redes reales que tiene pensado usar. También puede reducir el ancho de banda de red en las VM de Hyper-V con fines de prueba, por ejemplo, mediante Set-VMNetworkAdapter con -MaximumBandwidth establecido en 1Gb.

Para ver cómo funciona la compresión, puede aplicar robocopy en el mismo archivo en un servidor dos veces, una vez con la marca /compress y otra sin compresión, eliminando el archivo de servidor entre cada prueba. Si el archivo se comprime, debería ver un menor uso de la red en el Administrador de tareas y un tiempo de copia menor. También puede observar el objeto "Recursos compartidos de servidor SMB" del Monitor de rendimiento del servidor SMB para los contadores "Compressed Requests/sec" (Solicitudes comprimidas/s) y "Compressed Responses/sec" (Respuestas comprimidas/s).

RDMA y SMB directo

La compresión de SMB no admite SMB directo y RDMA. Esto significa que incluso si el cliente solicita compresión y el servidor la admite, la compresión no se intentará con SMB directo y RDMA. La compatibilidad de la compresión de SMB con SMB directo y RDMA estará disponible después de las versiones preliminares públicas de Windows Server 2022 y Windows 11.