giovedì 3 ottobre 2013

Noi non siamo Linus, noi il backup lo facciamo, perché shit happens!

Si dice che una volta Linus disse:

"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it"

In pratica, gli uomini veri non fanno backup ma fanno un upload via ftp ed il resto del mondo farà il mirror di quanto uploadato.
I casi sono due, o sei Linus in persona ed in questo caso, wow Linus legge il nostro blog! Oppure, caso molto più probabile non sei Linus e, in questo caso devi fare il tuo dannato backup!
Ora, ci sono due tipi di persone nel mondo dell'informatica, quelli che hanno capito che non è questione di se, ma di quando qualcosa andrà storto e quelli che hanno irrimediabilmente torto.
Si ok, poi c'è Linus che se permettete, fa categoria a parte.
Aggiungo anche che Murphy era uno che ci vedeva lungo, ed uno dei corollari al suo famoso teorema, ci dice che qualcosa andrà storto nel momento peggiore possibile! Quindi, backup come se piovesse!

La teoria non considera backup qualcosa fatto su un disco fisso, ma solo su dvd o nastro, diciamo che questa cosa è vera se siete una banca con un obbligo legale di disaster recovery, in caso siate privati cittadini, consideriamo i dischi fissi come supporti validi.
Ma un elemento della teoria resta valido, deve essere fatto su un supporto diverso rispetto a quello che si sta backuppando!
Questa condizione minima deve essere garantita, altrimenti non stiamo facendo un vero backup, anche se non stiamo facendo una cosa del tutto inutile (lo vedremo tra poco).
Un backup serve fondamentalmente in due casi, un supporto si è rotto o è divenuto irreperibile oppure noi abbiamo commesso un errore (statisticamente l'eventualità più comune).
Una buona strategia di backup ci deve proteggere da entrambe le evenienze, quindi dalla sfortuna e dalla...chiamiamola distrazione.
Il backup, perché sia davvero efficace dovrebbe essere anche automatico, perché sempre per la legge di Murphy, qualcosa salterà proprio quando avete volutamente o erroneamente saltato un backup manuale.
La buona notizia è che il mondo Open offre diversi strumenti potentissimi per fare backup, io vi parlerò di quello che uso io, che è una semplice GUI per rsync che è quello che ha tutto il merito per il miracolo, lo strumento si chiama BackInTime.
Lo si trova sia per GTK che per QT, praticamente per ogni distribuzione, ed è davvero molto flessibile.
La prima cosa da sapere è che Back In Time fa i backup solo dei dati modificati, quindi lo spazio occupato è minimo, ma il filesystem di destinazione del backup deve supportare hard link, nessun problema per ext3 o ext4, non ho idea per i filesystem proprietari MS o Apple e, sinceramente non mi interessa.
In caso il filesystem non supporti hardlink, ogni backup sarà totale con conseguente esplosione dello spazio occupato.
Io lo uso per due differenti tipi di backup, il primo è il backup del lavoro corrente, il secondo è un classico backup dei dati rilevanti.

Backup del lavoro corrente

Con questo tipo di backup, salvo (anche su una partizione dello stesso hard disk, se proprio non posso farne a meno) ogni 10 minuti il lavoro corrente.
Ovvero decido la cartella di lavoro (nel mio caso la cartella documenti) e faccio in modo che questa venga backuppata ogni X minuti (scegliete voi quanto essere paranoici).
Vediamo come fare.


Schermata principale di Back In Time

Questa è la schermata principale di Back In Time, come possiamo vedere, in alto a destra è specificato il nome del profilo attualmente caricato.
Cliccando sulle opzioni, si ottiene la possibilità di creare più profili, che è una cosa molto utile.

Opzioni del profilo

Nelle opzioni è possibile scegliere la frequenza di backup, dove salvare i backup, quali cartelle (o file) includere nei backup, quale cartelle (o tipologie di file) escludere, quando rimuovere i vecchi backup e come deve essere schedulato il lavoro.

Cartelle o file da includere

Tipologie da escludere

Politiche di mantenimento dei backup

Opzioni varie

Tipo di schedulazione

Io, ad esempio, come visto in questo esempio, faccio un backup della cartella dei documenti ogni 10 minuti. Ho due dischi diversi nel mio computer, quindi il backup lo faccio sul secondo disco, ma per questo tipo di backup, anche una partizione dello stesso disco può andare bene. Questo è un backup che vuole evitare danni da cancellazioni non volute, non a salvare davvero i dati.
Non vi preoccupate, Back In Time (o meglio rsync) è molto furbo, se non avete modificato i dati, non lavora.
Io l'ho dato per scontato, ma in questo modo si avrà una versione del documento per ogni backup con le relative modifiche e si potrà ripristinare una qualunque delle versioni salvate.

Backup dei dati

A differenza della tipologia precedente, questo backup deve essere fatto su un supporto diverso da quello che si sta backuppando.
Il mio consiglio è quello di creare un secondo profilo su backintime, in quello includere tutto quello che si vuole salvare e impostare una frequenza a piacere (in questo caso, una volta ogni 10 minuti è tendenzialmente esagerata).
Anche in questo caso, Back In Time lavorerà solo se vi sono delle modifiche.

Ripristino

Può sembrare una cosa banale, ma un backup non serve a nulla se poi non ripristina nulla.
Back In Time salva i suoi backup in cartelle liberamente navigabili anche al di fuori della sua Gui, caratteristica particolarmente gradita.
Ovviamente anche tramite Gui è possibile navigare i vari backup, divisi per data e, tramite un semplice click destro, ripristinare tutto quello che si vuole.

Vantaggi e svantaggi

I vantaggi di questo programma sono diversi, il primo è che utilizza rsync che è potentissimo ed affidabile. Secondo, anche tramite gui è davvero flessibile, quindi con lo stesso programma si possono gestire diversi profili di backup.
Terzo, fa tutto in automatico, quindi non ci dobbiamo più ricordare noi di fare i backup, minimizzando l'errore umano.
Il vero grande svantaggio è la sua caratteristica di fare solamente backup incrementali, questo ad un tecnico che si occupa di sicurezza dei dati farebbe venire la tremarella alle ginocchia.
Ogni tanto, sarebbe opportuno fare un backup totale, magari su nastro ;-)