Ciao a tutti! Oggi parleremo di Offline Files. Una tecnologia veramente utile che però non tutti conoscono.

La tecnologia Offline Files (detta anche CSC – Client Side Caching) permette di ottimizzare i tempi di accesso ai files da parte dei client. Immaginiamo uno scenario con un file server, ed un link di rete molto lento: ogni volta che i client devono accedere a tali documenti, l’accesso sarà presumibilmente lento e dipendente esclusivamente dalle performance di rete. Tramite Offline files, abbiamo la possibilità di introdurre una cache locale sui client: per accedere agli stessi files quindi la velocità sarà nettamente migliore, pari a quella di accesso ad un qualsiasi altro file sul disco locale. Ci sono poi meccanismi di sincronizzazione per gestire la corretta propagazione di eventuali modifiche ai files che andremo a vedere nel dettaglio.

Le modalità di utilizzo sono quattro:

  • Online mode – client accede ai files direttamente dal server e li copia immediatamente nella cache. A partire dalla seconda lettura quindi leggiamo dalla cache nonostante la modalità sia “online”. Tutte le modifiche ad un file o ad una cartella vengono applicate prima alla copia online sul server, e poi propagate alla cache locale sul client.

    image
  • Auto Offline mode – Tutte le operazioni su files e cartelle sono effettuate sulla cache locale (Offline Files folder). La modalità si attiva quando c’è un errore di rete e il server è irraggiungibile. Ogni due minuti automaticamente il client tenterà di riconnettersi al server: se ci riesce, si ripassa a online mode.

    image
  • Manual Offline Mode - L’utente abilita manualmente offline mode usando il pulsante “Work Offline” su Windows Explorer (decisione persistente dopo reboot). Come per auto offline, tutte le operazioni su files e cartelle sono effettuate sulla cache locale. La grande differenza rispetto alla Auto Offline mode è che possiamo iniziare una sincronizzazione manuale in qualsiasi momento.

    image
  • Slow link mode – Per poter utilizzare questa modalità è necessario impostare la “Configure slow-link mode” group policy. Una volta impostata, questa modalità si abilita automaticamente se le performance della rete sono inferiori ad una certa soglia di latency o throughput che abbiamo preimpostato. è importante sottolineare che il sistema ha bisogno di un certo tempo iniziale per valutare latenza e throughput prima di passare in slow link mode. In questo caso, per quel periodo iniziale rimaniamo in online mode. Inoltre, anche per slow link mode possiamo iniziare una sincronizzazione manuale in qualsiasi momento.

    image

 

è utile comparare in tabella le varie differenze tra le 4 modalità:

 

Modalità Apertura file Lettura da file Scrittura file Browse cartelle Sincronizzazione automatica Sincronizzazione manuale
Online Server Local Cache Server e cache Server Si Si
Auto Offline Local Cache Local Cache Local Cache Local Cache Non disponibile Non disponibile
Manual Offline Local Cache Local Cache Local Cache Local Cache Non disponibile Si
Slow link Local Cache Local Cache Local Cache Local Cache Non disponibile Si

 

Riassumendo, un computer può switchare in Offline mode se:

  1. La modalità “Always Offline” è stata abilitata
  2. Il server non è raggiungibile
  3. La connessione di rete verso il server è più lenta di una certa soglia configurabile
  4. L’utente abilita manualmente offline mode usando il pulsante “Work Offline” su Windows Explorer

Ma come avviene esattamente la transizione da offline a online? Semplicemente, per ogni file che ha un handle aperto, Offline Files verifica se il file è stato modificato su server o local cache e:

  • se il file non è stato cambiato, viene ricreato un handle per quel file sul server. In questo modo la transizione è totalmente trasparente per gli utenti e non crea disconnessioni del servizio (non è quindi necessario riavviare applicazioni).
  • se il file è stato modificato sulla cache locale, il file rimane offline e l’handle non viene ricreato sul server. Il file rimane in stato “Offline status: Offline (need to sync)” e si continuerà a lavorare sulla copia offline finchè non verrà eseguita una sincronizzazione.
  • per tutti i file senza handle aperti, vengono aggiornate le modifiche presenti in cache e copiate sul server, e vengono copiate in cache le modifiche fatte sul server mentre si era offline.

 

Ma come affrontare il problema dei conflitti? Immaginiamo di aver modificato un file in cache, e in contemporanea qualcun altro lo abbia modificato sul server. Si può prendere una decisione in molteplici modi diversi, e può non essere la stessa in diversi scenari. In questo contesto ci viene in aiuto la Automatic Resolution Policy. Si tratta semplicemente di assegnare una policy – cioè una modalità di resoluzione del conflitto – univoca per ogni share di rete. Le policy sono le seguenti:

Valore Descrizione
0 Non risolvere. Lascia il conflitto irrisolto.
1 Mantieni il file locale. Sovrascrivi il file sul server. Se la copia locale è stata cancellata, cancella la copia sul server
2 Mantieni la copia remota (sul server). Sovrascrivi il file locale. Se la copia remota sul server è stata cancellata, cancella la copia locale
3 Mantieni entrambe le copie. Modalità non disponibile quando una delle due copie è stata cancellata.
4 Mantieni la copia più recente, basandosi sul timestamp di “ultima modifica” del file. Se il file locale è stato cancellato, usa il timestamp di cancellazione come riferimento
5 Traccia un evento sul sync conflict log e non procedere. L’utente sceglierà manualmente in seguito.
6 Non risolvere il conflitto. Non aggiongere eventi sul sync conflict log
7 Cancella l’operazione di sincronizzazione

 

Operativamente, per applicare la policy scelta basta creare una entry nel registro, sotto HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\NetCache\SyncConflictHandling

Ci sarà sufficiente aggiungere una “Expandable String Value” con il nome della share, e come valore assegnargli il numero relativo alla policy scelta, come ad esempio:

image

 

Settings lato server

Quando si crea una cartella condivisa su un server, dalla proprietà avanzate dello sharing si possono definire le modalità di disponibilità offline. Le tre modalità selezionabili (vedi figura) sono:

  1. Manual Caching (default) – se vogliamo che un file sia disponibile per la cache offline, bisogna abilitarlo manualmente.
  2. No Caching – nessun file sarà disponibile offline
  3. Automatic Caching – ogni volta che si accederà ad un file condiviso, ne verrà creata una copia offline

image

Settings lato client

A livello di client, è possibile customizzare alcuni parametri. Per farlo, bisogna usare il Sync Center, accessibile da pannello di controllo (mobsync.exe)

l più importante è forse la quantità di spazio su disco da dedicare alla offline cache.

image

 

Per una estensiva lista di tutti i parametri customizzabili possiamo fare riferimento alle GPO dedicate a questo servizio, che possiamo trovare in Computer Configuration\Administrative Templates\Network\Offline Files

image

Info aggiuntive

In conclusione, una piccola precisazione.

Folder Redirection è una tecnologia che può essere combinata con Offline Files ma non è da confondersi con essa. Folder Redirection è un meccanismo per redirigere il path di cartelle locali verso share di rete (manualmente o via group policy). L’uso più comune è redirigere la cartella “Documenti” per salvarla su di un File Server aziendale anzichè mantenerla sul disco C:\ locale.
Non facciamo confusione quindi :)

Link utili:

 

Grazie a tutti e alla prossima!

Stefano Gagliardi
Support Engineer
Microsoft Enterprise Platform Support