Come realizzare un backup stile “Time Machine” senza usare il cloud, ma solo software libero ed aggeggi trovati in fondo al cassetto.
E’ buffo quando un problema che ti tormenta da anni, viene risolto dalla “dritta” giusta e dalla roba in fondo ad un cassetto.
Cassandra crede nei dati. Nel controllo dei dati, non sul cloud ma sul proprio hardware. Particolarmente nel caso dei propri dati.
Per questo fin da piccola si era imposta la disciplina di sapere sempre dove stavano i propri dati.
Forzando, ed in certi casi violentando, le applicazioni più riottose, che volevano già allora decidere loro dove salvare i tuoi dati, li conservava tutti in un unico albero di directory, liberamente copiabile e trasportabile da un computer all’altro.
Questo facilitava anche le operazioni di (magica parola) backup manuale, ma non era una soluzione soddisfacente per realizzare un backup automatico ed incrementale.
Cassandra può onestamente confessare di aver concupito per anni soluzioni proprietarie come la “Time Machine”, che permette di avere un backup quasi continuo dell’hard disk del computer, inclusi i file non strettamente di dati, ma anche delle applicazioni e del sistema operativo.
Certo, esistevano da tempo soluzioni come i NAS, i software proprietari di backup incrementale e decuplicato e cose così.
Ma tutta roba proprietaria, che costa un occhio, e che oltretutto se si guasta come minimo ti fa perdere un sacco di tempo, e se va male ti fa perdere pure i dati.
E per vedere i tuoi dati serve sempre il software di backup installato; Cassandra avrebbe voluto invece una soluzione libera, semplice e che non richiedesse software particolare per accedere ai backup.
Bene, tre mesi fa un amico mi ha segnalato l’ennesimo “interessante” software per i backup, ovviamente libero, chiamato “rsync-time-backup” e reperibile su Github qui.
Si tratta di un semplice script in Python che, utilizzando rsync, ssh, ed un filesystem che consenta gli hard link, (ad esempio ext2/3/4), realizza un backup a snapshot con memorizzazione incrementale e deduplicazione dei dati. Lo si può far girare su qualsiasi piattaforma abbia Python.
Detto fatto, Cassandra ha ritrovato in fondo ad un cassetto una Raspberry 3 utilizzata per qualche esperimento anni fa, ed ora tanto polverosa quanto inoperosa, ed un disco USB da 1 TB, di quelli che adesso chiamiamo “piccoli”.
Ha poi preso un robusto elastico, e li ha fissati insieme tipo sandwich, avendo cura di far passare il cavo USB tra i due oggetti, in modo da distanziarli leggermente e favorire così la circolazione naturale dell’aria.
C’è voluta poi quasi un’ora per capire come inizializzare le 6 directory in cui organizzare il backup del laptop; leggere il manuale resta sempre la soluzione migliore!
Infine ha caricato lo script, preparato un file di comandi per fare i backup dei dati opportuni del suo laptop, ha dato un colpo di cron e via.
Ora un sandwich posto accanto al monitor, e connesso via wifi (potrebbe stare dovunque), copia una volta al giorno dal laptop di Cassandra tutti i dati di una qualche rilevanza.
Li memorizza in un formato a prova di bomba, grazie agli hard link.
Sul disco di backup c’è una directory che si chiama come la directory di cui si esegue il backup.
Dentro ci sono tante sottodirectory che si chiamano “data+ora”, e dentro ciascuna di essere c’è (apparentemente) l’intero filesystem come era in quella data precisa.
Il backup si può accedere a mano da qualunque computer possa montare un disco ext4, ed il disco di backup, che oggi ha 600 MB occupati, contiene (apparentemente) decine di terabyte di dati.
Il backup di default gira all’ora di cena; per una settimana vengono conservati i backup giornalieri, per un mese uno alla settimana, e per un anno uno al mese. Il software cancella i backup ormai ridondanti, ma la policy di rimozione può essere modificata a piacere.
L’uso degli hard link deduplica i file che non vengono modificati, ed i singoli snapshot si possono cancellare anche a mano. Sarà il file system poi a decidere quali file debbano davvero essere cancellati.
Tanto è piaciuto a Cassandra questo giochetto che, ripetendolo una seconda volta, ha realizzato anche un suo piano personale di disaster recovery, realizzando un oggetto identico, sempre connesso via wifi ad una rete casalinga, e facendolo ospitare da un amico fidato.
Se poi la carenza di fiducia lo richiedesse, si possono utilizzare anche LUKS e sshfs, per chi sa metterci le mani.
Costo? Zero, riutilizzando avanzi.
Una Raspberry 3 al momento è introvabile, ma se il mondo rinsavisce, con case e dissipatori, diciamo 60 euro.
Un disco da 1 TB USB3 meno di 40 euro.
Limitazioni?
Certamente, la Raspberry 3 ha solo porte USB2, e ha solo WiFi 11g, quindi il backup è un po’ lento,
Ma cosa importa se per l’intero laptop ci mette mezz’ora invece di 5 minuti?
Tanto fa tutto da solo, gestisce i restart e non me ne accorgo nemmeno.
Se avete fretta compratevi una Raspberry 4 e convivete con le ventole.
Il mio “panino” potrebbe stare sul comodino senza dare nessun fastidio.
Qualche volta basta davvero poco per risolvere un problema.
Solo una cosa è indispensabile, come sempre; l’idea giusta.
Scrivere a Cassandra — Twitter — Mastodon
Videorubrica “Quattro chiacchiere con Cassandra”
Lo Slog (Static Blog) di Cassandra
L’archivio di Cassandra: scuola, formazione e pensiero
Licenza d’utilizzo: i contenuti di questo articolo, dove non diversamente indicato, sono sotto licenza Creative Commons Attribuzione — Condividi allo stesso modo 4.0 Internazionale (CC BY-SA 4.0), tutte le informazioni di utilizzo del materiale sono disponibili a questo link.