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 consumirán menos ancho de banda de red y tardarán menos tiempo en transferirse, a costa de un ligero aumento del uso de CPU durante las transferencias. La compresión 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; una transferencia de archivos a través de una red Ethernet de 100 Gbps sin límite entre dos servidores con almacenamiento flash puede ser tan rápido sin la compresión SMB en la práctica, pero todavía creará menos congestión para otras aplicaciones.

La compresión 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 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.

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 un cliente o servidor de compresión 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, a continuación, 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. Abra 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. Abra un símbolo del sistema de CMD o un símbolo del sistema 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 directiva de grupo o PowerShell; en la versión inicial de Windows 11 y Windows Server 2022, solo puede usar la configuración del Registro para controlar la mayoría de estos comportamientos y no se pudo 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 inmediatamente sin un reinicio.

Siempre intento de compresión (cliente SMB)

  1. Ejecute la consola de administración de directiva de grupo para el dominio de Active Directory y cree o vaya a una directiva de grupo.
  2. Expanda la directiva Configuración del equipo\Directivas\Plantillas administrativas\Network\Lanman Workstation.
  3. Habilite la directiva Usar compresión SMB de forma predeterminada.
  4. Cierre el editor de directivas.

No comprimir nunca (cliente de SMB)

  1. Ejecute la consola de administración de directiva de grupo para el dominio de Active Directory y cree o vaya a una directiva de grupo.
  2. Expanda la directiva Configuración del equipo\Directivas\Plantillas administrativas\Network\Lanman Workstation.
  3. Habilite la directiva Deshabilitar la compresión SMB.
  4. Cierre el editor de directivas.

Intento de compresión siempre (servidor SMB)

  1. Ejecute la consola de administración de directiva de grupo para el dominio de Active Directory y cree o vaya a una directiva de grupo.
  2. Expanda directiva Configuración del equipo\Directivas\Plantillas administrativas\Red\Servidor Lanman.
  3. Habilite la directiva Solicitud de compresión de tráfico para todos los recursos compartidos.
  4. Cierre el editor de directivas.

No comprimir nunca (servidor de SMB)

  1. Ejecute la consola de administración de directiva de grupo para el dominio de Active Directory y cree o vaya a una directiva de grupo.
  2. Expanda directiva Configuración del equipo\Directivas\Plantillas administrativas\Red\Servidor Lanman.
  3. Habilite la directiva Deshabilitar la compresión SMB.
  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 usar 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 intentó comprimir los primeros 524 288 000 bytes (500 MiB) de un archivo durante la transferencia y realizar un seguimiento de que al menos 104 857 600 bytes (100 MiB) comprimido dentro de ese intervalo de 500 MiB. Si menos de 100 MiB era comprimible, la compresión SMB dejó de intentar comprimir el resto del archivo. Si al menos 100 MiB comprimido, la compresión SMB intentó comprimir el resto del archivo. Con este cambio de comportamiento, el muestreo ahora está deshabilitado de forma predeterminada y SMB siempre intenta comprimir todo el archivo cuando un cliente o 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 SMB entre un par de máquinas virtuales que se ejecutan en el mismo host de Hyper-V puede no mostrar ahorros de tiempo porque el conmutador virtual es de 10 Gbps y no tiene congestión, además de hipervisores modernos a menudo usan 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.