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 consumano meno larghezza di banda di rete e richiedono 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 o Wi-Fi di un client; un trasferimento di file su una rete Ethernet di 100 Gbps non congestionata tra due server con archiviazione flash può essere altrettanto 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), Huffman XPRESS (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 del file server client, è 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 l'uso di client o 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 Amministrazione Center o PowerShell.

Uso di Windows Amministrazione Center

  1. Installare Windows Amministrazione 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 of Windows Admin Center in Window Server 2022 file server.

Con 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 in 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. Apri una finestra del 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 usare la compressione, eseguire il mapping delle unità con compressione, abilitare la compressione nelle condivisioni o impostare client SMB su sempre comprimere.

  1. Aprire un prompt 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 aggiornamento KB5016693 (build del sistema operativo 20348.946) e Windows 11 con 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 è stato 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.

Compressione sempre tentata (client SMB)

  1. Eseguire la Console Gestione Criteri di gruppo per il dominio di Active Directory e creare o passare a criteri di gruppo.
  2. Espandere Criteri Configurazione computer\Criteri\Amministrazione 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 la Console Gestione Criteri di gruppo per il dominio di Active Directory e creare o passare a criteri di gruppo.
  2. Espandere Criteri Configurazione computer\Criteri\Amministrazione Modelli amministrativi\Rete\Workstation Lanman.
  3. Abilita criterio Disabilita compressione SMB.
  4. Chiudere l'editor dei criteri.

Compressione sempre tentata (server SMB)

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

Non comprimere mai (server SMB)

  1. Eseguire la Console Gestione Criteri di gruppo per il dominio di Active Directory e creare o passare a criteri di gruppo.
  2. Espandere Criteri Configurazione computer\Criteri\Amministrazione Modelli amministrativi\Rete\Lanman Server.
  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 aggiornamento KB5016693 (build del sistema operativo 20348.946) e Windows 11 con 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 della 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) compresso in tale intervallo di 500 MiB. Se meno di 100 MiB è stato compresso, la compressione SMB ha smesso 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 VHDX e copiarlo come file. In alternativa, è sufficiente copiare un file VHDX della macchina virtuale smontata esistente, poiché gran parte del contenuto del file verrà compresso. 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 ora visualizzato 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 of create and attach virtual hard disk for 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 comprimibili, 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 risparmi di tempo perché il commutatore virtuale è di 10 Gbps e non presenta congestioni, 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 vedere come funziona bene la 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, si noterà un utilizzo inferiore 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à disponibile dopo le anteprime pubbliche di Windows Server 2022 e Windows 11.