Backup e controllo dei dati


Corso per la formazione professionale continua organizzato da Ordine dei giornalisti della Lombardia
Milano 13 aprile 2018


Relatore: Daniele Salvini - http://daniele.salvini.org

Scopo del corso

Possedere gli strumenti teorici e pratici per avere il controllo dei propri dati (Big o Little data)


Durata del corso: 3 ore

Lo sai che dovresti

Il backup è noioso, come minimo.

  1. È come un'assicurazione, ci vogliono soldi, tempo e sforzi per realizzarlo
  2. Si tratta di un argomento spiacevole: bisogna pensare a quando le cose vanno male e questo non è simpatico
  3. Ci sono tanti tipi e strumenti diversi per fare un backup e non è facile scegliere.

Oggi

Oggi è venerdì 13, un buon giorno per parlare di backup..

La copia di riserva

Con backup si intende una copia di riserva dei dati, recuperabile in caso di perdita

  • Salve, questo è un servizio pubblico. Sono qui a parlarvi del backup. È molto semplice
  • Opzione 1. Non ti interessa. Non salvare le vecchie email, fai foto in pellicola, ascolta solo Cd e non MP3.
  • Se non possiedi nulla, non hai nulla da perdere.
  • Opzione 2. Facciamo il backup.

I consigli di un computer del 1996

la copia di riserva

la copia di riserva

la copia di riserva

la copia di riserva

la copia di riserva

la copia di riserva

la copia di riserva

la copia di riserva

Una motivazione politica (vediamo se questo ti convince)

I dati sono una merce di scambio che in grosse quantità si possono rivendere. Difatti esistono servizi -gratuiti- che si occupano di conservare i dati per conto nostro.

L'identità dell'individuo in rete è composta dall'insieme dei suoi dati. cit. Stefano Rodotà.
Uno strappo a questi dati si ripercuote sul corpo dell'individuo.

Partiamo dal fatto che abbiamo dati che ci appartengono e che questi dati sono importanti. Per avere il controllo sui miei dati dovrò imparare a conservarli.

Noi siamo interessati a mantenere il controllo sui nostri dati, per esempio potremmo volerli cancellare e dunque effettueremo un backup con i nostri mezzi
(questo non esclude l'utilizzo di un servizio commerciale)

Sincronizzazione e/o backup

  • Sincronizzazione (mirror)
  • Backup (storia)

Avere un backup è necessario in caso di perdita o corruzione dei dati

Visione d'insieme

  • Tipo di media: CD, DVD, server locale, server remoto, disco esterno, pennina, ecc
  • Frequenza: giornaliera, settimanale, mensile, ecc
  • Automatico o manuale
  • Caratteristiche: compressione, crittazione, formato opaco o nativo
  • Software: cline o grafica, libero o proprietario, mirror o incrementale
  • Ridondanza
  • Modalità e tempo di recupero (dati caldi e freddi)

Strumenti

Sincronizzazione: mantiene uguali due cartelle (mirror) rsync, rdiff-backup, Syncthing, Unison

Incrementale: mantiene le differenze tra un backup e l'altro (storia)Borg, Duplicity (duply/deja-dup), Areca, bup, Attic, Rclone, Time-machine

Terze parti: il combo provider e software Amazon aws, backblaze b2, Crashplan, Dropbox, Google Drive, iDrive, Mega, ecc

Provider: strumenti liberi e avanzati (rsync e derivati, ssh-sftp) nextcloud, rsync.net

Versioning (archivio): subversion, git

Software Libero e a Sorgente Aperta

Software proprietario:
Software di cui non è disponibile il codice sorgente.

Open source software:
Software di cui è disponibile il codice sorgente.

Free software:
Software accompagnato da una licenza che ne assicura (oltre che l'utilizzo) lo studio, la modifica e la redistribuzione.

In tutte le categorie il software potrebbe essere gratis o a pagamento.
Idealmente vorrei usare strumenti liberi perché sono modulari e ben mantenuti, e non ho bisogno di fidarmi del venditore (vedi: la crittografia al tempo del Patriot act).

Crittografia

HTTPS, SSL, SSH, PGP, online banking e WA

Open-source: algoritmi e protocolli pubblici e pubblicati.

End2End: niente man in the middle

la "crittografia olio di serpente".

Il backup de-strutturato

Esci di casa e compera una pennina Usb più grande della tua $HOME.

Inserisci la pennina, formattala se è il caso e copiaci dentro la tua $HOME

Ecco, hai fatto una copia de-strutturata dei tuoi file.

Piutost che nagott, l'è mej piutost

Problema: richiede molto tempo e usura la pennina, ma è il primo backup da fare.

Video howto sul backup de-strutturato

Video - 3 minuti - 2010

[video-howto-backup]

Nota: nella versione web di queste slide il video potrebbe non comparire

Backup sincronizzato - 1 di 4

Hai un computer, il computer ha un disco rigido. Compera due dischi rigidi della stessa capienza o più grandi,

Compera due scatolette esterne con connessione Usb, costano circa 20 euro. Inserisci un disco nella scatoletta e collegalo al Pc, formattalo e dagli un nome indicativo come: "Backup"

Fai il backup uguale per ognuno dei due dischi, meglio se lo automatizzi in modo che parta da solo di notte. Se hai un portatile, fai il backup prima di andare a letto. Ogni sera quando lo metti in carica.

Backup sincronizzato - 2 di 4

Se usi un Mac, apri il terminale e usa questo comando

    sudo rsync -n -vaxAX --del / /Volumes/Backup/

-n dry-run, -v verboso, -axAX mantiene attributi, --del cancella nella destinazione
Oppure usa la grafica: iBackup o Time-Machine o Grsync
Se usi GNU/Linux, monta il disco in /mnt e usa

    sudo rsync -n -vaxA --del / /mnt/Backup/

oppure usa la grafica: Grsync

Se usi Windows, usa Cobian o Grsync
(nota che Grysync esiste per tutte le piattaforme, perché è software libero)

Comunque tu lo faccia, stai copiando il contenuto del disco del tuo computer in un altro disco.

Backup sincronizzato - 3 di 4

Un backup sincronizzato, invece che ricopiare ogni volta tutto, copia solo i file nuovi o modificati, cancella quelli che non sono presenti dalla fonte ed è veloce. (mirror).

Nota per Mac: il disco di backup è utilizzabile come disco d'avvio, dunque quando (QUANDO e non SE) il disco interno smetterà di funzionare, basterà sostituire il disco di backup nel computer al posto di quello rotto

p.s. perché il disco sia "bootable" settare la partizione come "GUID". Da: Info del disco de-spunta "ignora permessi su questo disco". Fare un test se è avviabile accendendo il computer tenendo premuto OPTION e selezionando il disco di backup come disco di avvio.

Backup sincronizzato - 4 di 4

E così QUANDO il tuo disco di backup se ne va a male, cosa di cui ti accorgerai perché non riuscirai a usarlo, rimpiazzalo immediatamente. Subito. Non aspettare la settimana prossima quando avrai tempo, fallo ora, prima di continuare ad usare il tuo computer. Prima di fare colazione.
L'universo tende alla massima ironia.

E il terzo disco? Usalo per fare un backup nello stesso modo, poi portalo in ufficio o a casa della nonna e chiudilo in un cassetto. Ogni qualche mese, portalo a casa, fai un backup e riportalo indietro. Quel disco è il tuo backup del tipo: "mi è bruciata la casa". Inoltre fai una buona cosa facrendo visite frequenti alla nonna>

Caspita! Ma i dischi rigidi costano!
Inoltre tutta la procedura è una fatica!

Nota sul RAID

RAID è una perdita di tempo e soldi. Il tuo Pc è un server sempre disponibile con dischi estraibili a caldo? No? Allora non hai bisogno di un RAID. Tantomeno dello stesso disco partizionato. Anche se usi RAID, devi comunque fare un backup.

Ripeti dopo di me tre volte: il RAID non è un Backup.

Il problema del considerare RAID 1 (dischi mirror) come un backup è che non ripara da dati cancellati, corrotti da applicazioni o da un virus, o uno sbalzo di corrente.

Perché si fa un backup

  • Perdita/Rottura
  • Cancellazione
  • Anti-incendio
  • Ransomware

Alcune informazioni

Quando faccio un backup duplico i dati, se butto l'originale non è più un backup.

Attenzione ai metadati, che voglio copiare anch'essi (nel caso di uso di cline).

Voglio copiare i miei dati personali, forse meglio non tenere nella HOME dati altrui o facilmente recuperabili come audio o video. Altrimenti aumenta lo spazio necessario e il tempo di backup.
Soluzione: fare un symlink/alias/collegamento della cartella Musica e Video fuori dalla HOME

Cessione: se cedo i miei dati, farlo con consapevolezza
Delega a qualcuno solo se pago (altrimenti sto pagando con i miei dati).

Devo avere una strategia di backup indipendente dalla device e dall'OS

Ransomware: sono virus che sequestrano i dati, la difesa è un backup offline

I termini del tecnico

Recovery point objective (RPO): il punto a cui voglio ritornare durante un recovery (appena prima che facessi il danno) (scheduling) -TEMPO

Recovery time objective (RTO): quanto tempo ci metto a fare il recovery e a tornare operativo -TEMPO

Data security: i dati vengono recuperati senza che nessuno li rubi (autenticazione) -CRITTO

Data retention period: quanto tempo i dati archiviati vengono tenuti (se no troppo spazio avrei bisogno) -SPAZIO/TEMPO

Impatto della performance: mentre faccio il backup il pc è impallato -TEMPO

Costo dell'hardware, software e del mio lavoro: -KISS

Rete: se uso la rete posso recuparare dati anche se non ho banda? (se rete locale sì)

Un ideale backup che andiamo a decostruire

Voglio avere il controllo (locale)
Occupare poco disco e fare in fretta (differenziale)
Averne più di uno (ridondanza)
Essere sicuro (crittografato)
Essere tutelato anche in caso di ransomware (removibile - freddo/offline)
Voglio poter recuperare il file che ho appena cancellato per sbaglio (giornaliero, differenziale).

Ad esempio: rdiff-backup (Unices), Time-machine (Mac) o Cobian (Win). Giornaliero, in supporto removibile, crittato, tenuto offline ma in casa, e copia ridondante dalla nonna.

Strategia del backup: alcune variabili

dove
come
tipo
strumento
tempo
recupero
automazione

Strategia del backup: dove

Definisci la backup-directory

In una parte dello stesso disco? (non va bene)
Su di un supporto removibile: (dvd, penna Usb, hard disk)
Remoto su pc/disco in rete locale
Remoto in internet (cloud personale o cloud commerciale)

Strategia del backup: come

Caldo (online)
Freddo (offline)
Compresso (risparmio spazio e tempo di spostamento)
Crittografato (encryption dei dati o del media di destinazione)
Ridondante

Strategia di backup: tipologie

  • Clone
  • Copia de-strutturata
  • Sincronizzazione
  • Sincronizzazione differenziale
  • Incrementale
  • Differenziale
  • Incrementale rovesciato
  • Continuo

Clone: immagine disco, completo, ghost, snapshot. Si usa dell'intero disco per fare swap (scambio dischi), livello hardware

Copia de-strutturata: (una semplice copia dei file, ad esempio su penna Usb)

Sincronizzazione: (mirror uguale all'originale, se cancelli dall'originale, cancelli anche nel backup)

Sincronizzazione differenziale: (Backup cumulativo di tutti i cambi da l'ultimo full backup) tiene il sync e anche le differenze, ma le differenze alla lunga occupano molto spazio) -non si usa-

Incrementale: Dopo il primo full backup, copia solo la differenze tra incrementi, cioé le differenze rispetto all'ultimo backup.

È veloce e occupa poco spazio, ma per il recupero c'è bisogno del primo backup e di tutti i suoi incrementi. Il solo svantaggio di utilizzare le immagini incrementali è che tutti i file devono essere conservati. Infatti se dovesse mancare anche una sola delle immagini intermedie incrementali, non sarà possibile ripristinare il sistema all'ultimo backup.

Differenziale: dopo il primo backup completo (full), copia solo i dati che sono cambiati, ma confontandosi sempre al primo backup completo.

È veloce, occupa alla lunga dello spazio in più dell'incrementale, ma per il ripristino serve solo il primo (il full) backup e l'ultimo (il differenziale)
Il backup differenziale è simile al backup incrementale. Entrambe le modalità di backup sono utilizzate per salvare le parti modificate dei dati. (Il backup incrementale viene confrontato con l'ultimo backup, mentre il backup differenziale viene confrontato con il primo backup completo).
I termini sono stati standarizzati e sono spesso interscambiabili nella definizione generica.

Per un recupero:
in un incrementale ho bisogno di tutti i file mentre in un differenziale solo del primo e dell'ultimo file.

Incrementale rovesciato o anche reverse delta:
è un backup differenziale che tiene le differenze delle modifiche ma tiene come ultimo backup la copia dal vivo memorizzando a parte i dati necessari (le differenze) per ricostruire le versioni precedenti.

È veloce e per recuperare l'ultimo backup basta copiarlo come un mirror senza curarsi delle differenze). Ad esempio usando rdiff-backup o Time Machine.

importante: Se in un incrementale ho bisogno di tutti i file e in un differenziale solo del primo e dell'ultimo file, in un delta rovesciato mi basta solo l'ultimo file.

Continuo o backup in tempo reale: (lavora sui blocchi e non sui files ma non è un semplice RAID)

un repository versioning commit (git) e qui si introduce la condivisione e l'archiviazione (per programmatori o aziende).

I backup differenziali tendono a rovinarsi col tempo

Occorre fare ogni tanto (6 mesi) un full backup

pausa

Strategia del backup: strumenti

GNU/Linux: duplicity, obnam, duply, rdiff-backup, gddrescue, clonezilla, dd

Macintosh: time-machine, ibackup, rsync

Windows: cobian, comodo (ma non supportano win 10)

Uno per tutti: grsync (sincronizzazione)

Strategia del backup: tempo

Quanto tempo ci metto a implementare una strategia di backup? Quanto tempo ci metto a fare il backup? Quanto tempo ci metto a recuperarlo? Quanto tempo ci metto a ritornare operativo?

Considera la variabile tempo per decidere che metodo usare.

Strategia del backup: recupero

  • Recupero parziale o totale (solo il pezzo che mi serve o tutto)
  • Log (ho una traccia del backup che ho realizzato?
  • Comunicazione avvenuto backup (esiste?)
  • Verifica integrità (posso verificare?)

Non vuoi arrivare al recupero dati, il recupero dati è costoso in termini di denaro e di tempo

Strategia del backup: automazione

Uso di cron (o script all'avvio/spegnimento)

Messaggio che mi avvisa di farlo a mano.

C'è chi fa il backup e chi no. Fai quello che devi.

Ogni quanto fare il backup?

Ogni giorno direi, di solito il file che cerchi è quello su cui stavi lavorando, non quello dell'anno scorso, dunque ti serve un backup del file che hai appena cancellato per errore.

Le grand backup

Ridondante
Crittografato
Differenziale
A prova di ransonware
Self-hosted

Un primo backup verso un dispositivo removibile crittato, offline, sempre con me. Un secondo backup verso un pc remoto in casa, crittato. Un terzo backup verso un laptop con disco crittato (non crittato, un mirror, facile da recuperare e a disposizione in viaggio)

Backup di un telefono Android

Attivare il backup automatico sui server Google (vale anche per Apple con iPhone)

Se hai un telefono con il bootloader sbloccato (rooted) puoi riavviare il telefono in modalità recovery (TWRP) ed effettuare una copia. Nandroid sta per nand flash memory e serve a creare una mirror image del telefono (sia personal data che apk che rom che il sistema operativo) è utile per rimettere un sistema nell'esatto stato di partenza se qualcosa va storto. Puoi copiare questo backup sul computer usando adb.

Il caso Amazon

Amazon è il più grande custode di dati e introduce il conto di risparmio nel backup:
Cold data backup (backup freddo).

Amazon Glacier si usa con uno strumento a linea comando chiamato AWS, utilizzabile per creare o cancellare uno o più vault (cripta, cassaforte). Ogni operazione d'archivio come caricare, scaricare o cancellare viene effettuata con awscli

Costi di Amazon glacier

Storage: 0.007 $ per giga/mese
Non si paga l'upload transfert (ma il download sì)

esempio pratico con 12 giga:
Usare come backup il nastro magnetico è un esempio di dati freddi. (il nastro gira in tempo reale)
Ogni video cassetta magnetica MiniDV contiene 1 ora di video.dv, ossia 12GB di dati
Tenere su glacier un backup di 12GB costa 1.008 $/anno
Puoi scaricare 600MB al mese gratis (ossia il 5% al mese)
Per scaricare di più, si paga 0.01 per gigabyte, dunque scaricare in una giornata 12GB costa 0.12

A questo punto siamo in grado di calcolare quanto ci costano i dati grezzi, dunque quanto ci costa un disco di backup di 1 Tera, fisico o affidato a un gestore.

Caratteristiche di Amazon glacier

Si tratta di un conto di risparmio (non di un conto corrente)
Conviene se non muovi spesso i dati e se quando lo scarichi lo fai lentamente, ossia se hai una programmazione.
È disegnato per archivi a lungo termine che vengono esplorati non frequentemente. Dunque perché convenga bisogna scaricare a pezzi, e caricare pezzi piccoli (vault) e non cancellare spesso.

Recuperare i dati da Amazon Glacier è un processo in due tempi (asincrono):

1. Inizia il job (azione) di recupero
2. al completamento del job (circa 4 ore) scarichi i dati (e paghi il download)

Visione d'insieme di Amazon glacier

backup

Creare un vault su Glacier
Caricare l'archivio (compresso per i costi e crittografato per la sicurezza)

recupero

Creare un job per scaricare l'archivio
Ricevere il job output
Cancellare l'archivio da Glacier

Altre spese e dettagli:

Le dimensioni massime di un archivio caricabile in una singola operazione è 4GB Non si può aggiornare il contenuto di un archivio o la sua descrizione (cancelli e rifai)

Ad ogni archivio Amazon assegna un ID unico in forma numerica (es: 123DF45678SF963TD363)
(a parte una descrizione, opzionale)
Dunque occorre tenere un database lato cliente con segnato il contenuto di ogni ID
(ossia i metadati dell'archivio sono a carico nostro).

C'è una spesa aggiuntiva di $0.021 per gigabyte se si cancella qualcosa prima di 90 giorni. Il sistema è progettato per accessi infrequenti. (sono dati freddi, è un conto di risparmio).

L'ideale è fare tanti pezzi da 10MB ognuno (in modo da poter fare piccoli recuperi e piccole cancellazioni). ad esempio Duplicity supporta questa funzionalità.

Amazon non è l'unica: BlackBlazeB2 funziona in modo simile.

backblaze 60 € all'anno, spazio illimitato

Panoramica delle spese su piattaforme cloud

Dropbox: 1TB 10 € all'anno, per 180 €/anno spazio illimitato (per 3 utenti, servizi a parte)

Google drive for work: 10 € all'anno per ogni utente

G-Suite business 96 € all'anno, spazio illimitato

ownCloud, NextCloud, Seafile self-hosting o provider

https://nextcloud.com/providers/

owncube: provider NextCloud, 18 €/anno

https://owncube.com/single_en.php 

Servizi addizionali (esempio: calendario o fogli di calcolo)
Il tempo di backup: le cloud sono backup de-strutturati
Non ho copie in caso di cancellazione
Il diritto all'oblio (non posso veramente cancellare i miei dati da una cloud)
La privacy (anche se potrei caricare sulle cloud dei dati crittografati)
Il ransomware (se sono sempre connesso, anche il backup sarà compromesso)
Il costo: meno se ne sa più aumenta.

Panoramica delle spese di una VPS

VPS = Virtual Private Server

VPS OVH server fai da te: 100GB costano 144 € l'anno

Richiede costruzione e manutenzione

Panoramica delle spese selfhosting

il costo del disco esterno: un disco da 500GB circa 50 €


la corrente e l'usura e la possibilità di incidente

Panoramica di rsync.net

Location: Usa, Hong kong, Zurigo

  • la Svizzera è uno dei paesi la cui legislazione permette privacy
  • Live (caldo, sempre disponibile) backup
  • Open standards (unix, ssh-sftp) [ssh è lo standard per il trasferimento dati sicuro]

GNU/Linux: duplicity
Mac: Time-machine, rsync, filezilla, sshFS
Windows: BackupAssist, Rsync Windows Backup Agent

  • Non si paga il traffico, 7 giorni di snapshot
  • 96 centesimi/anno per Giga, dopo il Tera il prezzo si abbassa.
  • Warrant canary
  • https://www.rsync.net/resources/notices/canary.txt

Un esempio: duplicity, rsync-backup, Time-machine, filezilla in SOHO e/o su rsync.net

Grsync

http://www.opbyte.it/grsync/
  • Ambiente grafico
  • Backup Differenziale
  • Sincronizzazione
  • Multipiattaforma (Windows, GNU/Linux, Macintosh)
  • No compressione, no crittografia, no differenziale

Un esempio: grsync su pennina crittata con Veracrypt

Per il recupero è sufficiente copiare i dati dalla pennina

grsync about

grsync configurazione 1
grsync configurazione 1

grsync configurazione 2
grsync configurazione 2

grsync configurazione 3
grsync configurazione 3

grsync tradotto nel comando
grsync traduce i settaggi in questo comando

Duplicity

http://duplicity.nongnu.org/
  • linea comando (inseribile in uno script) o ambiente grafico (Deja-dup)
  • Compressione con Tar
  • Backup incrementale (tiene le differenze)
  • Usa GPG per crittografare i dati

Un esempio: duplicity verso una SD card o verso un server locale o verso rsync.net

backup con duplicity

duplicity /home/uid sftp://uid@server//backup

restore

duplicity sftp://uid@server//backup /home/uid

restore di un solo documento

duplicity -t 7D --file-to-restore="Documenti/cv.odt" \
              sftp://uid@server//backup /home/uid

uno script per duplicity verso un server locale


              #!/bin/sh

USER=`whoami`
SERVER=192.168.1.12

duplicity --encrypt-sign-key key-id --full-if-older-than 6M \
--exclude-filelist $HOME/.exclude.txt $HOME/ sftp://$USER@$SERVER//home/$USER/backups

duplicity remove-older-than 7M --encrypt-sign-key key-id \
--force sftp://$USER@$SERVER//home/$USER/backups

FreeNAS

FreeBSD

OpenZFS

checksum, snapshots

Il backup su carta

La carta resiste più delle memorie magnetiche.

Particolarmente indicato ad esempio per la propria agenda telefonica, è stampare la rubrica e conservarla in luogo asciutto. La carta resiste agli urti a non è facile da cancellare inavvertitamente (e resiste alle tempeste magnetiche).

Of course I have a backup!

Ci sono due tipi di persone: quelli che fanno un backup e quelli che non hanno mai perso dei dati.


Se veramente tieni ai tuoi dati, tienili vicini e non li mettere sul computer di qualcun'altro..

Commenti? Kudos? Domande? Consigli? Grazie!

@DanieleSalvini

Questa slide si trova all'indirizzo:

http://tinyurl.com/backup-odg-1304218

Vai alla homepage