Abbiamo già parlato in modo piuttosto esteso delle funzionalità e dei vantaggi dell’uso di FreeNAS come gestore dello storage, ma in questo articolo andremo a vedere in modo semplice e operativo come creare, utilizzare e ripristinare gli snapshot.

Uno snapshot si può descrivere con una “fotografia” dello stato dello storage in un determinato istante nel tempo, che permette di effettuare il cosiddetto Rollback a una situazione precedente. Grazie al meccanismo Copy-On-Write di ZFS (descritto nel precedente articolo) le operazioni di snapshot sono particolarmente veloci e occupano pochissimo spazio.
Partendo da una installazione di FreeNAS già funzionante e dotata di storage configurato, la situazione più comune in cui ci troveremo è quella di un volume ZFS a cui corrispondono una o più cartelle condivise in rete. Queste share possono essere attaccate da un ransomware o possono semplicemente subire cancellazioni parziali o accidentali. In una situazione del genere, la presenza degli snapshot correttamente configurati può risultare una soluzione salvavita.

Andremo prima di tutto ad analizzare i passaggi necessari su FreeNAS, per poi procedere con le attività sul client Windows. In primo luogo bisogna attivare il servizio di condivisione (CIFS) e creare la cartella da condividere: per semplicità in questo esempio ne utilizzeremo una sola che corrisponde all’intero storage a disposizione nell’ambiente di test.

Attivazione dei servizi di condivisione
Dalla voce "Services" del menu si possono attivare, tra le altre cose, i protocolli di condivisione NFS, CIFS e AFP per il mondo Apple
Creazione della share di rete
Dalla voce di menu "Sharing" si può decidere la tipologia di cartella condivisa (AFP, NFS, WebDAV, CIFS, iSCSI) e procedere con la creazione basata sui volumi disponibili
Gestione delle cartelle condivise
Per ogni tipologia di share è possibile consultare l'elenco di quelle attive, modificarle e se necessario eliminarle

Una volta creata la condivisione, si può attivare creazione automatica degli snapshot, che possono essere pianificati definendo: la finestra temporale di esecuzione, il tempo di mantenimento in memoria, i giorni della settimana e l’intervallo tra eventuali tentativi falliti.
Dalla lista degli snapshot eseguiti è possibile, per ognuno, effettuare tre operazioni principali: clonarlo, cancellarlo o effettuarne il rollback. Quest’ultima operazione è quella che principalmente ci interessa, infatti permette di ripristinare lo storage esattamente allo stato in cui si trovava in quel momento.

Creazione dello snapshot
Dalla voce "Storage" si accede alla creazione dei task di snapshot, da cui è possibile impostare i parametri di funzionamento
Controllo dei task
Una volta terminata la creazione, dalla voce "Periodic Snapshot Task" si può controllare la lista dei processi di snapshot attivi che possono essere modificati o eliminati
Controllo degli snapshot disponibili
Dlla sottovoce di menu "Snapshots" si può consultare la lista di snapshot disponibili ed effettuare le operazioni di eliminazione, clonazione e rollback

A questo punto si può passare al client Windows, dove sarà necessario verificare il corretto accesso alla cartella di rete. Da qui si può osservare in modo diretto il funzionamento degli snapshot: dopo aver rimosso alcune cartelle, abbiamo effettuato un rollback e nella slide 5 si può osservare come il ripristino sia andato a buon fine.

Controllo dei permessi di accesso
Una volta attivata la condivisione, è fondamentale verificare che dal client Windows sia possibile accedere alla cartella condivisa, con i corretti permessi in lettura e scrittura
Ripristino delle condizioni di file e cartelle - 1
Condizione iniziale: la cartella condivisa è funzionante e contiene file e cartelle correttamente
Ripristino delle condizioni di file e cartelle - 2
Per un errore dell'utente o un attacco ransomware, la cartella viene compromessa o parte dei file vengono cancellati (la cartella test2 nell'esempio)
Ripristino delle condizioni di file e cartelle - 3
Dal pannello di gestione degli snapshot si procede al rollback dello storage al punto di interesse
Ripristino delle condizioni di file e cartelle - 4
La condizione della cartella torna allo stato di partenza, la sottocartella "test2" e il suo contenuto sono perfettamente ripristinati

L'esempio che abbiamo portato si riferisce a una situazione di test estremamente semplificata, ma vuole essere di spunto per il setup in condizioni reali di produzione con tutte le complessità conseguenti. E' importante specificare che la gestione di permessi, cartelle, sottocartelle e relativi snapshot può essere molto più granulare di quella riportata nell'articolo. FreeNAS consente la creazione di Dataset e volumi dedicati (al cui interno si possono creare le share di rete con una gestione totale dei permessi di accesso), ognuno con i relativi task di snapshot e conseguenti possibilità di ripristino.

L'autore

Lorenzo Bedin

Laureato in Ingegneria delle Telecomunicazioni, svolge l'attività di libero professionista come consulente IT, dopo un periodo di formazione e esperienza in azienda nel ruolo di sistemista Windows e Linux. Si occupa di soluzioni hardware, siti web e virtualizzazione.