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.
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
- Per PowerShell, invece il comando in questione è il cmdlet New-SmbMapping e l’opzione è il parametro UseWriteThrough.
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.
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.