Per backup si intende un procedimento di salvataggio di files o directory (o addirittura interi filesystem) attraverso il quale e' possibile in caso di danni o altre svariate necessita' ripristinare le condizioni di funzionamento del sistema, da qui si capisce la sua fondamentale importanza.
In caso di mancato backup, la perdita di dati importanti puo essere una vera tragedia e un buon backup può fare la differenza fra un disastro e una scocciatura.
Ci sono svariate procedure e filosofie sul backup ma uno degli aspetti importanti e' che i dati salvatirisiedano in un luogo fisico differente rispetto a quello dei file originali (anche in un diverso supporto nella stessa macchina).
Per il backup di dati si possono utilizzare da floppy-disks (ne bastano 3 per backuppare /etc), fino ad interi raid di harddisks (arrivando cosi a dimensioni di svariati Terabyte). I supporti piu' comuni utilizzati sono floppydisks, Zipdisks, CDR, DVD, tapes e harddisks. La scelta del supporto dipende sia dalla quantita' di dati da backuppare
(a volte si preferisce salvare solo dati essenziali, a volte si opta per il backup di interi filesystem) sia dalla frequenza del backup (che comunque dipende dalla quantita', in quanto e' difficile che giornalmente si effettuino backup di 500Gb).
Generalmente le procedure di backup avvengono quando non ci sono users operanti sul sistema e quando il carico della rete e' basso, cosa che avviene spesso e volentieri la notte.
Fra le svariate utility per il backup nel mondo Unix troviamo Dump e Restore (con nomi diversi fra i vari
OS Unix-based, anche se di poco), comandi molto sofisticati con una semplice interfaccia ed opzioni essenziali che permettono di backuppare e restorare semplicemente (con la possibilita' di scieglierne il livello) interi devices e filesystems, anche da remoto.
Altro comando di rilievo e' cpio, non potente come dump ma con piu' features.
Tools importanti per il backup di filesystems sono AMANDA (performato dall'universita' del Maryland permette di settare un singolo master backup server in grado di backuppare piu hosts), BURT (altra utility, ottimizzata per il backup e restore da nastri) e CD backup Linux (performato per backup e restore automatici creando un CD-Rs bootabile mentre si lavora sul sistema).
Per il backup e' inoltre possibile utilizzare anche comandi di archiviazione (o compressione) come tar, gzip ecc...
Oltre alle opzioni elencate qui sopra vi sono anche un'infinita' di utility commerciali per backup e restore dei dati. Le case produttrici piu' importanti a livello commerciale di software per il backup sono VERITAS Software, FalconStor Software, BakBone Software, Arkeia.
Rsync e' un comando (ed un protocollo) che permette la copia di file via rete, ottimizzando i tempi di backup e ripristino dei dati.
L'host da backuppare (su cui si devono leggere o scrivere file) deve avere in esecuzione rsync in modalita' server (rsync --daemon
), e deve essere presente il file /etc/rsyncd.conf
dove sono contenute le informazioni relative alla condivisione necessaria per il backup.
Sull'host remoto che deve leggere o scrivere file sulla macchina dove rsync gira come daemon, viene eseguito il comando rsync con una logica simile a quella di cp.
I parametri da settare in /etc/rsyncd.conf
sono:
- [nomecondivisione] e' il nome della condivisione rsync;
- path e' il path locale a cui fa riferimento la condivisione;
- read only e' un opzione che protegge i file dalla scrittura (se settata = yes);
- uid e gid sono l'utente ed il gruppo con cui rsync accede al filesystem;
- host allow rappresenta gli IP da cui e' possibile collegarsi via rsync;
- list e' un opzione che prevede di poter impedire di elencare le condivisioni disponibili sul server rsync (se settata = false);
La prima volta che si esegue un backup da un certo host vengono copiati tutti i files specificati nella condivisione, le altre volte solo quelli modificati dall'ultimo backup.
Per un utilizzo sicuro di rsync (le password non vengono richieste!), e' consigliabile:
- Selezionare accuratamente gli IP degli host che possono accedere al server rsync;
- Consentire esclusivamente ingressi in sola lettura;
- Non utilizzare root come uid e gid ( a meno che non sia necessario per esigenze di backup).
La sintassi del client rsync è:
rsync [opzioni] [host da backuppare]::nomecondivisione/files /[directory host locale]
opzione spesso utile e' -av
, che specifica di copiare i file mantenendo ownership, permessi e in modalita' "directory recursive".
Programma di archiviazione progettato per immagazzinare ed estrarre file da un archivio conosciuto come un tarfile.
Un tarfile può essere fatto su un'unità a nastro magnetico o su un file normale.
tar [opzioni] file1, file2, ... , fileN
-A, --catenate, --concatenate
aggiunge i file ad un archivio
-c, --create
crea un nuovo archivio
--delete
elimina dall'archivio (da non usare sui nastri magnetici!)
-r, --append
aggiunge i file alla fine di un archivio
-t, --list
elenca il contenuto di un archivio
-u, --update
aggiunge solamente i file che sono pi recenti della copia nell'archivio
-x, --extract, --get
estrae i file da un archivio
-f, --file [NOME_HOST:]F
usa il file di archivo o dispostivo F (default /dev/rmt0)
-L, --tape-length N
cambia il nastro dopo aver scritto N*1024 byte
-p, --same-permissions, --preserve-permissions
estrae tutte le informazioni relative ai permessi
-v, --verbose
elenco minuzioso dei file elaborati
-z, --gzip, --ungzip
filtra l'archivio attraverso gzip
Il "disastro" per una azienza può avere molte facce e sfumature, ne può colpire parti diverse (gli edifici, le risorse umane, i sistemi informatici, la documentazione cartacea...) e può causare una quantità di danni ingente, fino anche all'annullamento di fatto dell'azienda stessa.
Limitando il campo di analisi alle problematiche di natura informatica e quindi ai sistemi (computer, server, apparati di rete, linee...) che gestiscono i dati e le attività di una azienda, i punti su cui concentrare l'attenzione quando si deve redarre o quantomeno ipotizzare un piano di analisi del rischio e disaster recovery, sono vari:
- Integrità fisica dei sistemi informatici, che può essere messa a repentaglio da calamità naturali (alluvioni, terremoti, fulmini...), cause accidentali (incendi, allagamenti, crollo di un edificio, caduta di un rack o un computer) o cause esterne (furto, rivolte e devastazioni, raptus di follia di personale interno);
- Integrità delle infrastrutture necessarie al funzionamento dei sistemi: elettricità, connettività di rete, eventualmente impianto di condizionamento.
- Integrità dei dati da azioni di cracking, errori umani, virus, guasti hardware ecc.
Le minacce possibili sono molte e disparate e l'analisi dei relativi rischi deve considerare la loro probabilità e il valore dei dati o dei beni da proteggere. E' ovvio che qualsiasi dispositivo e misura di disaster recovery non deve costare più di quanto valgano i beni stessi da proteggere.
E' altrettanto ovvio che nel concepire un piano di disaster recovery (che può essere sia un completo documento di policy e analisi del rischio, redatto internamente o da società specializzate, che una approssimativa analisi, ben più economica e incompleta, dei rischi e delle procedure per gestirle) si devono considerare vari aspetti:
- Costo delle procedure di sicurezza e protezione;
- Efficacie di queste misure in riferimento a diversi tipi di rischio;
- Analisi dei rischi, delle loro probabilità e livello di pericolo;
- Valore dei dati e dei beni da preservare.
- Tempi di ripristino della normale funzionalità, o quantomeno della funzionalità minima indispensabile dei sistemi;
- Costi per il ripristino (oltre ai costi di backup o preparazione al disastro);
- Impatto delle relazioni con i clienti e con il pubblico e metodi per limitarne il danno d'immagine.
A questo proposito si illustrano alcune precauzioni e indicazioni di massima per prepararsi ad un disastro e limitarne o prevenirne i danni. Hanno campi di applicazione e costi diversi, ma riassumono la maggior parte delle procedure e accorgimenti comunemente previsti:
- Backup dei dati. E' la condizione minima indispensabile: tutti i dati importanti vanno backuppati. Il mezzo su cui viene mantenuto il backup dovrebbe essere mantenuto in un lougo ed edificio fisicamente distante, test di ripristino e di verifica dell'integrità dei dati dovrebbero essere svolti regolarmente così come un analisi di quali dati vengono effettivamente copiati e se questi sono tutti i dati da copiare.
- Impianto elettrico a norma, che offra inoltre sufficente protezione da fulmini, con UPS che suppliscano a brevi interruzioni di elettricità ed eventualmente generatori (tipicamente a gasolio) per far fronte a prolungati black-out.
- Impianto anti incendio a norma, in grado possibilmente di individuare ed estinguere automaticamente principi di incendio, possibilmente senza compromettere la funzionalità dei dispositivi elettronici stessi.
- Linee di backup o di emergenza, in grado di subentrare in caso di guasti di varia natura, dal normale down della linea principale, a problemi di scala maggiore, tali per cui ha senso utilizzare per il backup linee di fornitori diversi che si attestino su centrali diverse e, possibilmente, viaggino su tratte locali diverse.
- Piccoli accorgimenti di costo minimo e buon senso per proteggere fisicamente i sistemi informatici: tenere le macchine sollevate da terra per limitare i danni da allagamento; fissarle a rack o altri supporti per evitare cadute accidentali o causate da lievi scosse telluriche; mantenerle in un posto riparato (lontano da finestre che possano rompersi e da luoghi di passaggio o di lavoro fisico); sistemare i cavi vari (alimentazione, rete, video...) in modo tale da evitare che qualcuno rischi di inciamparci e via dicendo.
- Assicurazione sui dispositivi elettronici e i dati, che copra rischi di varia natura e che copra sia i costi dei danni che quelli di ripristino.
- Disponibilità di una sede di backup sia per l'attività delle persone che per un datacenter, in caso di grave o totale distruzione della sede principale. Ovviamente una simile precauzione ha costi molto alti, che possono essere in qualche modo ridimensionati con compromessi di entità variabile.