Non ho paura dei computer, ma della loro eventuale mancanza.

— Isaac Asimov

ArchLinux Small Business Server (27) - Backup (1)

http://www.stenoweb.it/files/blog/archlogo.png Credo sia inutile che sia io a dirvelo, ma sono testardo e lo voglio ribadire lo stesso: il salvataggio dei dati è cosa fondamentale sia in ambito desktop che, in misura ancor maggiore, in ambito server. Non perdetevi assolutamente questa fondamentale parte della guida! Adotteremo una soluzione che ritengo mooolto interessante, e che a molti, spero, insegnerà pure qualcosa di nuovo...

Il backup può essere fatto in innumerevoli modi, infatti più che di copia di backup si dovrebbe sempre parlare di strategia di backup dato che la semplice copia dei dati su un altro supporto oltre che ad essere insufficente si può rivelare anche inefficente dal punto di vista dei costi e della sicurezza sia per quel che riguarda il tempo speso per farlo che per il tipo di supporto scelto.
Quello che voglio proporre qui è solo un tipo di soluzione al problema, ingegnosa, realizzata interamente con strumenti open e applicabile a qualsiasi distro anche per salvare i dati dei vostri desktop. Prima di iniziare vediamo cosa andremo a realizzare e un po' di teoria su come funziona il tutto.

Tipi di backup

Adottare una strategia di backup significa scegliere la frequenza degli stessi e una delle tre metodologie di salvataggio dei dati: completo, differenziale ed incrementale.

Completo

Credo sia facile intuire cosa si intenda con completo: consiste nel creare copie di salvataggio di tutti i file contenuti nelle cartelle specificate. Se si esegue periodicamente l'operazione di backup, tale scelta può risultare estremamente inadatta, vuoi per il tempo richiesto per portarla a termine, vuoi per l'inutile ridondanza di informazioni. Ogni volta che facciamo il backup copiamo tutto e quindi ci accorgiamo che molte informazioni presenti nel nuovo archivio di appena creato, non avendo subìto variazioni, sono assolutamente identiche a quelle salvate la volta precedente: abbiamo sprecato tempo e spazio sul supporto di memorizzazione. Inefficace.

Differenziale & Incrementale

Riunisco in un solo punto queste due metodologie in quanto molto simili. Nel caso del backup differenziale, il programma si prende cura di verificare se i file che devono essere nuovamente archiviati siano stati modificati dopo l'ultimo backup completo. Il vantaggio principale consiste quindi nella drastica diminuzione dei tempi richiesti per le operazioni di salvataggio.
Il backup incrementale risulta indicato nella maggior parte delle situazioni. In questo caso viene creata una copia di sicurezza di tutti e soli quei file che sono stati aggiunti o modificati dopo l'ultimo backup (completo o meno). Il tempo che è possibile risparmiare durante la fase di backup è ancora maggiore rispetto alla soluzione differenziale anche se quest'ultima è molto più rapida qualora si voglia ripristinare un archivio di backup.

Rotating Snapshots

Che soluzione adotteremo noi ? Nessuna di quelle menzionate :) anche se obiettivamente, almeno in parte, ne riunisce i concetti. Useremo la tecnica del rotating snaphshots, efficente, veloce e relativamente facile da implementare.
Gli Snapshot backups sono una caratteristica di molti file server di alto livello: creano l'illusione di multipli backup completi senza occuparne lo spazio e senza impegnarne il tempo per eseguirli. Magia ? No. Usando solo le utility standard di linux + rsync è possibile avere diversi snapshot orari, giornalieri, settimanali e mensili con una efficenza di poco superiore a 2X: cioè poco più (in media) del doppio dello spazio occupato dai dati. Abbiamo 10GB da salvare ? Il nostro backup occupando poco più di 20GB ci permetterà di risalire anche ad un file di 6 mesi prima !
Ad onor di cronaca aggiungo che questo metodo non è altrettanto efficace di certe tecnologie proprietarie (ma costose), che utilizzano filesystems speciali raggiungendo anche efficenze di poco superiori a 1X, ma comunque rappresenta un ottimo compromesso (e completamente gratuito dal punto di vista software) in linea con l'idea che oramai ci siamo fatto del nostro Small Business Server.

Supporti

Ho voluto usare hard disks esterni USB, il loro costo è oramai ridicolo tanto che a poco più di 100 euro possiamo anche ottenerne uno antishock da oltre 250GB che resiste pure alle cadute (anche se non ho provato :) ), inoltre è estremamente comodo: velocità sia nel backup che, sopratutto, nel restore. Possiamo acquistarne un paio e intervallarli nel backup.
Ad onor di cronaca esistono anche supporti di backup che utilizzano cartucce che in effetti sono hard disks. Il succo non cambia, si montano come normali dischi, ma sono estremamente comodi avendo le fattezze (e l'affidabilità) di una cartuccia estraibile. Ad esempio Dell fornisce unità di backup di questo tipo che possono essere usate con tranquillità per quello che ci prefiggiamo.
N.B. nel server ho usato ext3 con ACL estese, meglio che anche il disco di backup usi lo stesso file system (anzi, forse meglio ext2 dal momento che il journaling non ci serve), così possiamo copiare senza patemi anche le permissions su file e directory.

Frequenza

Non voglio complicarmi troppo la vita: ho deciso per 6 backup giornalieri (dal lunedì al sabato) e 4 backup settimanali (la domenica). Una soluzione di questo tipo permette di risalire ad una specifica versione di file giorno per giorno per una settimana, e per un mese a intervalli di una settimana. Vedremo, comunque, che questa cosa può essere modificata con facilità.

La prossima volta continuamo con un po' di teoria ;) vedendo come funziona questa ingegnosa tecnica di snapshot.

Wow that was odd. I just wrote an extremely long comment but
after I clicked submit my comment didn't appear. Grrrr... well
I'm not writing all that over again. Anyways, just wanted to say fantastic blog!