|
11.1 Backup del sistema: strumenti e politiche Perdere dati contenuti in un sistema
può avere conseguenze
disastrose. Ci
sono principalmente quattro ragioni per cui si possano perdere dei
dati:
- guasti dell’hardware;
- bachi del software;
- azione umana;
- disastri naturali.
Anche se l’hardware moderno sembra essere abbastanza affidabile, si
può comunque
rompere senza una ragione apparente. Le parti hardware più critiche
per i dati sono gli hard disk. Nemmeno il software tende ad essere
affidabile:
un programma
solido come una roccia è una eccezione, non la regola! Gli essere
umani sono
piuttosto inaffidabili: possono fare uno sbaglio, o possono essere
malvagi e
distruggere dei dati volontariamente. Terremoti, allagamenti o
semplici temporali con fulmini non possono essere ignorati.
I backup sono un modo per proteggere l’investimento in dati. E’
importante fare bene i backup: come tutte le cose, anche i backup
possono andare male prima o poi. Parte del compito di fare backup è
assicurarsi che funzionino: non è bello notare che il proprio backup
non è stato completato con successo nel momento del bisogno. Può
capitare, nel momento in cui si stanno recuperando i dati, che non
siano stati inclusi nel backup alcuni dati importanti come, ad
esempio, il database
degli utenti su un sito con 15.000 utenti. Per potersi fidare dei
propri sistemi bisogna avere un vero e proprio piano di "disaster
recovery".
La decisione più importante sui backup è la scelta del mezzo:
bisogna considerare il costo, l’affidabilità, la velocità, la
disponibilità e l’utilizzabilità. Le tipiche alternative sono i CD-RW ed i nastri. I
CD-RW sono molto economici, piuttosto affidabili,
non molto veloci, si trovano facilmente, ma non possono essere usati
per grandi quantità di dati. I nastri vanno da quelli economici a
quelli piuttosto costosi, sono abbastanza affidabili, veloci,
disponibili sul mercato e, a seconda della grandezza del
nastro, permettono di immagazzinare parecchi dati. Una risorsa molto
importante che sta conquistando il mercato di massa sono, poi, i
DVD-RW che garantiscono le prestazioni e l'affidabilità dei CD-RW ma
offrono uno spazio maggiore di immagazzinamento (oltre i 4GB).
11.2 Strumenti per i backup
Esistono molti strumenti che possono essere usati per fare i backup.
Quelli usati tradizionalmente sotto UNIX sono tar, cpio e
dump. La
scelta del mezzo di backup può influenzare quella dello strumento da
usare.
tar e cpio sono simili, e per lo più equivalenti dal punto di vista
dei backup: entrambi possono immagazzinare dei file su nastro e
recuperarne file dallo stesso, entrambi riescono ad utilizzare quasi qualsiasi
mezzo, dato che i device driver del kernel si occupano della gestione
a basso livello dei dispositivi ed i dispositivi stessi tendono a
sembrare tutti uguali ai programmi a livello utente.
dump è diverso nel fatto che legge direttamente il filesystem e non
attraverso il filesystem. E’ anche scritto specificamente per i backup:
tar e cpio, in realtà, sono fatti per archiviare file, anche se
funzionano lo stesso per i backup.
Leggere il filesystem direttamente ha alcuni vantaggi: rende possibile
fare copie di backup dei file senza modificare i timestamp; per tar e
cpio bisognerebbe montare prima il filesystem in modalità a sola
lettura. Leggere direttamente il filesystem è anche più efficace se
bisogna fare un backup completo, dato che lo si può fare
senza spostare di molto la testina del disco. Lo svantaggio principale
è che rende il programma di backup specifico per un tipo di
filesystem: il programma dump per Linux riconosce solo il filesystem
ext2.
11.3 Backup semplici
Uno schema di backup semplice è quello di effettuare una copia di tutto una volta
per poi copiare solo quei file che sono stati modificati dal
precedente backup. Il primo viene chiamato backup completo, i
successivi sono backup incrementali. Un backup completo è spesso
più laborioso di quelli incrementali, dato che bisogna scrivere più
dati sul nastro ed un solo nastro potrebbe non bastare.
Recuperare dati
da backup incrementali può essere molte volte più faticoso che da un
backup completo. Il recupero può essere ottimizzato facendo backup
di tutto quello che è stato modificato dall’ultimo backup completo;
in questo modo fare backup è un po' più laborioso, ma non ci
dovrebbe mai essere bisogno di recuperare più di un backup completo
ed uno incrementale in caso di danneggiamenti.
Per esempio, volendo fare backup ogni giorno con sei nastri a
disposizione, si può usare il nastro 1 per il primo backup completo
(per esempio di venerdì) e i nastri da 2 a 5 per i backup
incrementali (da lunedì a giovedì). Sul nastro 6 si fa quindi un
nuovo backup completo (il secondo venerdì) e si ricomincia a fare
backup incrementali con i nastri 2-5. Non bisogna riscrivere il nastro
1 finché non si ha disponibile un altro backup completo, nel caso
succedesse qualcosa durante la realizzazione del secondo backup
completo. Dopo aver usato il nastro 6 per il secondo backup completo,
bisognerebbe tenere il nastro 1 in qualche posto sicuro, in modo che
se tutti gli altri nastri venissero distrutti da un incendio (evento
non impossibile) ci sarebbe almeno un backup da usare. Al momento di
effettuare il prossimo backup completo, si potrà prendere il nastro 1
e lasciare il nastro 6 al suo posto.
Avendo più di sei nastri, si possono usare quelli che avanzano per i
backup completi. Ogni volta che deve essere effettuato un backup
completo si usa il nastro più vecchio. In questo modo ci sarà sempre
un backup di diverse settimane passate che è utile per recuperare
file cancellati accidentalmente o vecchie versioni di un file.
11.4 Fare
backup con tar
Si può fare facilmente un backup completo con tar:
\# tar -create -file /dev/ftape /usr/src
tar: Removing leading / from absolute path names in the archive
\#
La versione GNU di tar può anche gestire backup che non entrano in un
singolo nastro o floppy, ed anche percorsi molto lunghi: non tutte le
versioni tradizionali lo fanno (Linux usa solo il tar GNU).
Nel caso il backup non entri in un unico nastro, si può usare
l’opzione -multi-volume (-M):
\# tar -cMf /dev/fd0H1440 /usr/src
tar: Removing leading / from absolute path names in the archive
Prepare volume \#2 for /dev/fd0H1440 and hit return:
\#
Dopo aver fatto un backup, bisogna controllare che sia a posto, usando
l’opzione
-compare (-d):
\# tar -compare -verbose -f /dev/ftape
usr/src/
usr/src/linux
usr/src/linux-1.2.10-includes/ ....
\#
Se non si controllano i backup, gli errori eventuali diventeranno
evidenti al momento meno opportuno.
I backup incrementali si possono realizzare usando l’opzione -newer
(-N):
\# tar -create -newer ’8 Sep 1995’ -file /dev/ftape /usr/src -verbose
tar: Removing leading / from absolute path names in the archive
usr/src/
usr/src/linux-1.2.10-includes/
usr/src/linux-1.2.10-includes/include/
usr/src/linux-1.2.10-includes/include/linux/
usr/src/linux-1.2.10-includes/include/linux/modules/
usr/src/linux-1.2.10-includes/include/asm-generic/
usr/src/linux-1.2.10-includes/include/asm-i386/
usr/src/linux-1.2.10-includes/include/asm-mips/
usr/src/linux-1.2.10-includes/include/asm-alpha/
usr/src/linux-1.2.10-includes/include/asm-m68k/
usr/src/linux-1.2.10-includes/include/asm-sparc/
usr/src/patch-1.2.11.gz
\#
Sfortunatamente, tar non nota quando sono state modificate le
informazioni dell’inode di un file, come ad esempio i suoi bit di permesso
o il suo nome. Questo può essere aggirato usando find e paragonando
lo stato corrente del filesystem con una lista di file compresa nel
precedente backup. Sui siti ftp su Linux potete trovare degli script
che fanno proprio questo.
11.5 Recuperare file con tar
L’opzione -extract (-x) di tar estrae dei file dall’archivio:
\# tar -extract -same-permissions -verbose -file /dev/fd0H1440
usr/src/ usr/src/linux
usr/src/linux-1.2.10-includes/
usr/src/linux-1.2.10-includes/include/
usr/src/linux-1.2.10-includes/include/linux/
usr/src/linux-1.2.10-includes/include/linux/hdreg.h
usr/src/linux-1.2.10-includes/include/linux/kernel.h ...
\#
Si possono anche estrarre file o directory specifiche (compresi tutti
i file e le sottodirectory in esse contenuti) dandoli sulla linea di
comando:
\# tar xpvf /dev/fd0H1440 usr/src/linux-1.2.10-includes/include/linux/hdreg.h
usr/src/linux-1.2.10-includes/include/linux/hdreg.h
\#
Si può usare l’opzione -list (-t) per vedere quali file ci sono in
un volume di backup:
\# tar -list -file /dev/fd0H1440
usr/src/
usr/src/linux
usr/src/linux-1.2.10-includes/
usr/src/linux-1.2.10-includes/include/
usr/src/linux-1.2.10-includes/include/linux/
usr/src/linux-1.2.10-includes/include/linux/hdreg.h
usr/src/linux-1.2.10-includes/include/linux/kernel.h ...
\#
tar non gestisce in maniera corretta i file cancellati. Se si deve
recuperare un filesystem da un backup completo e uno incrementale e
alcuni file tra i due backup sono stati cancellati, questi esisteranno
di nuovo dopo il recupero. Questo può essere un problema serio, se
questi file hanno dati importanti che non dovrebbero essere più
disponibili.
|