SMB

SMB è il protocollo di condivisione file presente in tutte le versioni di Windows, sia client che server. È abilitato per impostazione predefinita ed è utilizzato per la condivisione di file e stampanti. Esistono diversi versioni di questo protocollo, ma è stato SMB 2.0, rilasciato con Windows Vista nel 2006, che ne ha notevolmente migliorato le prestazioni. Oggi, l’ultima versione per il protocollo SMB è la versione 3.1.1, rilasciata con Windows 10 e Windows Server 2016 / Windows Server 2019.

SMB Windows

Il focus dell’ultima release è focalizzato sulla sicurezza aggiungendo il supporto per i più comuni algoritmi di crittografia, senza impattare sulle performance. Sebbene la versione utilizzata da Windows Server 2019 sia sempre la 3.1.1, nell’ultima release è stata introdotta una novità relativamente al protocollo SMB che influisce sul lato client.

SMB cache

Con il rilascio di Windows Server 2019 (disponibile anche in Windows 10 a partire dalla versione 1809 in poi), le connessioni SMB sul lato client ora possono essere utilizzate senza la cache SMB. In alcuni scenari, questo permette di ottenere performance migliori rispetto al trasferimento dei file inviati utilizzando questo protocollo.

Ecco come trovare il nuovo switch del prompt dei comandi:

  • Dal cmd per il comando Net Use è possibile trovare il parametro WRITETHROUGH

Net Use writethrough

  • Per PowerShell, invece il comando in questione è il cmdlet New-SmbMapping e l’opzione è il parametro UseWriteThrough.

new-smbmapping

Operazione SMB senza il parametro WriteThrough

Per impostazione predefinita, quando il client SMB di Windows effettua una connessione a un server SMB, il client utilizza la cache SMB. Il client SMB potrebbe anche essere un server Windows, nel momento in cui è il server che inizia una chiamata verso un’altra condivisione utilizzando il protocollo SMB.


Il client SMB è quindi un computer (con Sistema Operativo Client o Server) che effettua la connessione a una risorsa condivisa, mentre il server SMB è un computer che ospita la risorsa condivisa e la mette a disposizione.

La cache SMB è molto utile nella maggior parte dei casi. Ad esempio, nel momento in cui un utente fa accesso ai propri file su un file server: quando apre un file per la prima volta, il client SMB lo scarica completamente salvandolo nella cache.

Quando l’utente apporta una modifica al file e salva il file, il file non viene scaricato di nuovo, poiché viene sfruttata la funzionalità di caching in modo da rendere il caricamento più rapido. Questo è il comportamento predefinito della cache SMB per il client SMB e funziona in ogni versione SMB di Windows.

Storage SMB


A cosa serve quindi il parametro WriteThrough?

Questo parametro permette di mappare un’unità di rete con accesso forzato (“scrittura diretta”) e quindi bypassare tutte le cache del sistema operativo, forzando le operazioni di lettura e scrittura direttamente su disco.
In precedenza, la “scrittura diretta” era possibile solo relativamente alle risorse condivise disco condivise del cluster Windows in modalità High Availability.

 

Quando usare quindi la funzionalità WriteThrough

Questa opzione può essere utilizzata quando abbiamo la certezza che il file che andremo a scrivere non esiste ancora nella destinazione ed è di dimensioni considerevoli. Ad esempio, sarà molto più veloce per un software di backup scrivere un file di backup tramite connessione SMB con il parametro “WriteThrough”, evitando la cache del sistema operativo.

Come abilitare la funzionalità WriteThrough

Per abilitare la funzionalità WriteThrough sarà sufficiente passare il parametro specifico al comando di mount che vogliamo andare ad utilizzare per la mappatura SMB; in particolar modo:
Net Use Z: \\Server\condivisone /WriteThrough   (se vogliamo farlo da CMD)
New-SmbMapping -LocalPath ‘Z:’ -RemotePath ‘\\Server\Condivisione’ -UseWriteThrough $True  (se vogliamo farlo tramite powershell)

Conclusioni

Da come si evince risulta quindi semplice abilitare questa funzionalità WriteThrough, tramite brevi e semplici comandi. L’importante è capire quando è una buona idea usarlo, visto che nella maggior parte dei casi usare la cache va bene. In alcuni scenari, invece, come ad esempio la creazione di nuovi file di grosse dimensioni nella destinazione, trarremmo vantaggio dall’uso della cache di SMB.
Apri la chat
1
Possiamo aiutarti?
Ciao 👋
Possiamo aiutarti?
X