Compressione SMB

Si applica a: Windows Server 2022, Windows 11

La compressione SMB consente a un amministratore, a un utente o a un'applicazione di richiedere la compressione dei file durante il trasferimento in rete. In questo modo viene rimossa la necessità di deflazionare manualmente un file con un'applicazione, copiarlo e quindi gonfiarlo nel computer di destinazione. I file compressi utilizzeranno meno larghezza di banda di rete e richiederanno meno tempo per il trasferimento, a costo di un utilizzo leggermente maggiore della CPU durante i trasferimenti. La compressione SMB è più efficace nelle reti con una larghezza di banda inferiore, ad esempio la rete Ethernet da 1 Gbps di un client o Wi-Fi; un trasferimento di file su una rete Ethernet di 100 Gbps non inserita tra due server con archiviazione flash può essere veloce senza compressione SMB in pratica, ma creerà comunque meno congestione per altre applicazioni.

La compressione SMB in Windows presenta le caratteristiche seguenti:

  • Supporta algoritmi di compressione XPRESS (LZ77), XPRESS Huffman (LZ77+Huffman), LZNT1 o PATTERN_V1*. XPRESS viene usato automaticamente
  • Supporta la firma SMB e la crittografia SMB
  • Supporta SMB su QUIC
  • Supporta SMB multicanale
  • Non supporta SMB diretto su RDMA

Per una dimostrazione della compressione SMB, guardare questo video:

Requisiti

Per usare la compressione SMB in un carico di lavoro tradizionale client-file server, è necessario quanto segue:

Configurazione della compressione SMB

È possibile configurare la compressione SMB sia dal punto di vista client che dal punto di vista del server. Client e server non fanno riferimento a una particolare edizione, ad esempio Windows Server 2022 o Windows 11 Insider Preview, ma all'architettura di un trasferimento di file tra due computer. Sia Windows Server 2022 che Windows 11 supportano il fatto di essere un client o un server di compressione SMB.

Richiesta di compressione SMB nelle condivisioni file

È possibile configurare le condivisioni per richiedere sempre la compressione quando si è connessi ai client. È possibile usare Windows Admin Center o PowerShell.

Uso di Windows Admin Center

  1. Installare Windows Admin Center e connettersi a un file server Windows Server 2022.
  2. Fare clic sulla voce di menu File e condivisione file .
  3. Fare clic su Condivisioni file.
  4. Modificare una condivisione esistente o crearne una nuova.
  5. Selezionare Comprimi dati e quindi fare clic su Aggiungi o Modifica.

Screenshot di Windows Admin Center nel file server Windows Server 2022.

Utilizzo di PowerShell

  1. Aprire un prompt dei comandi di PowerShell con privilegi elevati come amministratore.

  2. Creare una nuova condivisione con la compressione usando New-SMBShare con il parametro e l'argomento -CompressData $true . Ad esempio:

    New-SmbShare -Name "Sales" -Path "C:\sales" -CompressData $true
    
  3. Modificare una condivisione esistente con la compressione usando Set-SMBShare con il parametro e l'argomento -CompressData $true . Ad esempio:

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

Richiesta di compressione SMB su unità mappate

È possibile richiedere che tutti i dati copiati su un'unità mappata vengano compressi. Questa operazione può essere eseguita come parte di uno script di accesso o quando viene eseguita manualmente.

  1. Aprire un prompt dei comandi di PowerShell.

  2. Eseguire il mapping di un'unità usando New-SMBMapping con il parametro e l'argomento -CompressNetworkTraffic $true . Ad esempio:

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

Richiesta di compressione SMB con strumenti di copia

È possibile richiedere che venga tentata la compressione SMB per file specifici usando robocopy o xcopy.

Nota

Se si desidera Esplora file, strumenti di copia di terze parti o applicazioni per l'uso della compressione, eseguire il mapping delle unità con compressione, abilitare la compressione nelle condivisioni o impostare client SMB in modo da comprimere sempre.

  1. Aprire un prompt dei comandi cmd o un prompt dei comandi di PowerShell.

  2. Copiare con il flag /COMPRESS. Ad esempio:

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

Richiedere sempre o rifiutare sempre le richieste di compressione

A partire da Windows Server 2022 con l'aggiornamento KB5016693 (build del sistema operativo 20348.946) e Windows 11 con l'aggiornamento KB5016691 (build del sistema operativo 22000.918) è possibile configurare un client SMB o un server SMB per richiedere sempre la compressione e rifiutare sempre le richieste di compressione. È ora possibile usare Criteri di gruppo o PowerShell. Nella versione iniziale di Windows 11 e Windows Server 2022 è possibile usare solo le impostazioni del Registro di sistema per controllare la maggior parte di questi comportamenti e non è possibile configurare un server SMB per richiedere sempre la compressione nonostante le impostazioni di condivisione. Un client SMB e un server SMB fanno riferimento ai servizi SMB, non a un'edizione o a uno SKU di Windows. Tutte queste modifiche SMB diventano effettive immediatamente senza un riavvio.

Tenta sempre la compressione (client SMB)

  1. Eseguire Criteri di gruppo Management Console per il dominio di Active Directory e creare o passare a criteri di gruppo.
  2. Espandere Criteri Configurazione computer\Criteri\Modelli amministrativi\Rete\Workstation Lanman.
  3. Abilita criterio Usa compressione SMB per impostazione predefinita.
  4. Chiudere l'editor dei criteri.

Non comprimere mai (client SMB)

  1. Eseguire Criteri di gruppo Management Console per il dominio di Active Directory e creare o passare a criteri di gruppo.
  2. Espandere Criteri Configurazione computer\Criteri\Modelli amministrativi\Rete\Workstation Lanman.
  3. Abilita criterio Disabilita compressione SMB.
  4. Chiudere l'editor dei criteri.

Tenta sempre la compressione (server SMB)

  1. Eseguire Criteri di gruppo Management Console per il dominio di Active Directory e creare o passare a criteri di gruppo.
  2. Espandere criteri Configurazione computer\Criteri\Modelli amministrativi\Rete\Server Lanman.
  3. Abilita criterio Richiedi compressione del traffico per tutte le condivisioni.
  4. Chiudere l'editor dei criteri.

Non comprimere mai (server SMB)

  1. Eseguire Criteri di gruppo Management Console per il dominio di Active Directory e creare o passare a criteri di gruppo.
  2. Espandere criteri Configurazione computer\Criteri\Modelli amministrativi\Rete\Server Lanman.
  3. Abilita criterio Disabilita compressione SMB.
  4. Chiudere l'editor dei criteri.

Informazioni e controllo dei comportamenti di compressione

A partire da Windows Server 2022 con l'aggiornamento KB5016693 (build del sistema operativo 20348.946) e Windows 11 con l'aggiornamento KB5016691 (build del sistema operativo 22000.918), SMB per impostazione predefinita tenta sempre di comprimere un file quando un client o un server lo richiede, senza usare il campionamento di compressione.

Nota

Nella versione originale di Windows Server 2022 e Windows 11, la compressione SMB ha utilizzato per impostazione predefinita un algoritmo in cui ha tentato di comprimere i primi 524.288.000 byte (500 MiB) di un file durante il trasferimento e tenere traccia che almeno 104.857.600 byte (100 MiB) compressi all'interno di tale intervallo miB 500. Se è stato compresso meno di 100 MiB, la compressione SMB ha interrotto il tentativo di comprimere il resto del file. Se almeno 100 MiB compressi, la compressione SMB ha tentato di comprimere il resto del file. Con questa modifica del comportamento, il campionamento è ora disabilitato per impostazione predefinita e SMB tenta sempre di comprimere l'intero file quando un client o un server lo richiede.

Test della compressione SMB

Un modo semplice per testare la configurazione della compressione consiste nell'usare i file VHDX. È possibile creare e montare un VHDX, aggiungervi alcuni file, quindi smontare il VHDX e copiarlo come file. In alternativa, è sufficiente copiare un file VHDX di macchina virtuale smontato esistente, in quanto gran parte del contenuto del file verrà compressa. Per un esempio di creazione di un file di test VHDX:

  1. Avviare Diskmgmt.msc.

  2. Selezionare Disco locale (C:) facendo clic su di esso.

  3. Fare clic su Azione e quindi su Crea disco rigido virtuale.

  4. In Diskmgmt fare clic con il pulsante destro del mouse su VHDX come "Non inizializzato" e scegliere Inizializza disco e fare clic su OK. Fare clic con il pulsante destro del mouse sulla sezione Dischi non allocati e scegliere Nuovo volume semplice, quindi Avanti per tutte le richieste di menu, quindi fare clic su Fine.

  5. Specificare un percorso di file, impostare le dimensioni su "25 GB", selezionare VHDX e Dimensioni fisse, quindi fare clic su OK.

    Screenshot della creazione e del collegamento di un disco rigido virtuale per Windows Hyper-V.

  6. Fare clic con il pulsante destro del mouse sul disco e scegliere Scollega disco rigido virtuale, quindi fare clic su OK.

  7. In Esplora file fare doppio clic sul file VHDX per montarlo. Copiare alcuni MB di file non compressi, ad esempio il formato JPG, quindi fare clic con il pulsante destro del mouse sul disco montato e scegliere Eject (Eject).

È ora disponibile un file di test di grandi dimensioni con contenuto compresso.

Il test della compressione SMB tra una coppia di macchine virtuali in esecuzione nello stesso host Hyper-V potrebbe non mostrare un risparmio di tempo perché il commutatore virtuale è di 10 Gbps e non ha congestione, più gli hypervisor moderni spesso usano l'archiviazione flash. Testare la compressione sulle reti reali che si prevede di usare. È anche possibile ridurre la larghezza di banda di rete nelle macchine virtuali Hyper-V a scopo di test usando Set-VMNetworkAdapter con -MaximumBandwidth impostato su 1Gb, ad esempio.

Per verificare il funzionamento della compressione, è possibile robocopy lo stesso file in un server due volte, una volta con il /compress flag e di nuovo senza compressione, eliminando il file del server tra ogni test. Se il file è compresso, verrà visualizzato un minor utilizzo della rete in Gestione attività e un tempo di copia inferiore. È anche possibile osservare l'oggetto Monitor prestazioni del server SMB "Condivisioni server SMB" per i contatori "Richieste compresse/sec" e "Risposte compresse/sec".

RDMA e SMB diretto

La compressione SMB non supporta SMB diretto e RDMA. Ciò significa che anche se il client richiede la compressione e il server lo supporta, la compressione non verrà tentata con SMB diretto e RDMA. Il supporto per la compressione SMB con SMB diretto e RDMA sarà successivo alle anteprime pubbliche di Windows Server 2022 e Windows 11.