giovedì 8 marzo 2012

Sincronizzazione e storicizzazione files sul NAS (Bidirezionale!) - Parte 1

In questo nuovo articolo parleremo di come utilizzare il nostro NAS, basato su Linux/BSD, per sincronizzare i dati presenti nelle nostre Workstation Windows 7 in maniera bidirezionale (e più, come vedremo) e storicizzarli utilizzando solo software open o quantomeno gratuiti.

Immaginiamo che il nostro pc desktop, basato su Windows (ma, ovviamente, la soluzione si può adattare a un desktop Linux), sia quello su cui lavoriamo e salviamo i nostri dati.
Essi finiscono sul disco locale del pc stesso (magari su un disco diverso da quello del sistema operativo; ma lo ho visto accadere raramente nei pc domestici). Se il disco si rompe (o, forse, dovrei dire QUANDO il disco si rompe), i dati potrebbero andare persi. Se tenete ai vostri dai, dovete provvedere, impostando una strategia di backup.
Un backup è tanto più efficace quanto più è trasparente. Se impostate un sistema che prevede di eseguire, ogni giorno o periodicamente, una operazione manuale, è probabile che l'esecuzione di tale operazione non avvenga con la opportuna cadenza, o non avvenga affatto, vanificando (a volte totalmente) totalmente la strategia.

La strategia qui illustrata non richiederà ulteriore manutenzione, se non controllare che ci sia sufficiente spazio sul NAS e sul PC.Non è una soluzione enterprise-level, certamente, ma può ben applicarsi in un ambiente domestico.
Dopotutto, se avete un NAS, sarebbe un vero peccato non utilizzarlo per proteggere i vostri dati.

Alla fine della configurazione, i nostri dati saranno accessibili nei seguenti modi:
  1. Nel disco locale del pc desktop
  2. In una o più cartelle condivise del vostro NAS, in read-write.
  3. Nelle cartelle di rsnapshot, storicizzati secondo i parametri che imposterete. Questa cartella verrà condivisa via Samba (o, volendo, NFS) in modalità rigorosamente read-only.
Così facendo, sarà possibile lavorare dal vostro pc sui dati in locale, anche se il NAS è spento. Quando questo verrà acceso, essi saranno nuovamente sincronizzati.
Se invece accendeste un portatile (o comunque un altro PC), accederete ai dati sulla cartella condivisa del vostro NAS. Non avrete bisogno (non obbligatoriamente, almeno) di avere una copia dei dati in locale anche sul laptop!
Al successivo avvio del PC, i dati in locale in esso contenuti si riallineeranno al contenuto del NAS, mantenendo quindi la consistenza.

I programmi che utilizzeremo sono:
  1. Microsoft SyncToy - disponibile gratuitamente per il download da Microsoft (Link)
  2. Windows Task Scheduler - strumento presente in tutte le edizioni di Microsoft Windows Vista e Seven
  3. Samba - per condividere files dal vostro NAS - presente nei repository della maggioranza delle distribuzioni Linux e BSD
  4. Rsnapshot - presente nei repository della maggioranza delle distribuzioni Linux e BSD
  5. Cron - schedulatore presente su Linux e BSD
  6. Hidden Start (Link). Opzionale, ma utile a non far vedere finestre di output di SyncToy mentre si lavora. La versione gratuita è sufficiente.

SyncToy 2.1 è in grado di sincronizzare (anche in maniera bidirezionale!) il contenuto di due cartelle. E' l'unico software (se si esclude l'opzionale, ma consigliato, hidden start) che dovremo installare sul Desktop). Non dovremo aprire condivisioni di rete. Il client rimane client!

Samba ci serve, come saprete, a condividere files presenti sul nostro NAS, rendendoli indipendenti dal tipo di filesystem che li ospita.

Rsnapshot è un tool basato su rsync, che ci consente di eseguire backup a cadenze regolari. Sarebbe utile se i backup risiedessero su dischi diversi da quelli contenenti i dati veri e propri, ma non è obbligatorio. Meglio ancora è se il sistema su cui si esegue rsnapshot è diverso da quello che contiene i dati. Tuttavia, in un ambiente casalingo, questo comporterebbe la necessità di un ulteriore sistema sempre (o quasi) acceso. Possiamo farci questo sconto, ed eventualmente, se abbiamo hardware che ci avanza, pensare a un terzo sistema su cui replicare i backup (ma questo sarà oggetto di un altro post).

Tramite cron scheduleremo l'esecuzione di rsnapshot in base ai nostri orari di lavoro.

La panoramica finisce qui. A più tardi per la Parte 2!


Nessun commento: