Backup incrementale trasparente

Lun, 14/07/2008 - 11:36

Backup incrementale trasparente

Inviato da sevy72 5 commenti

La gestione dei backup incrementali può diventare un problema se si ha necessità di recuperare spesso i files. Il tempo per estrarre i files è molto lungo, specialmente se si usano supporti a nastro. La soluzione per non distruggere la salute psico-fisica del sysadmin è quella di rendere l' estrazione del file voluto completamente trasparente al cliente, in modo che ogniuno si va a cercare il file che vuole senza disturbare l'impegnatissimo amministratore.

E' doveroso fare una premessa: Per creare un sistema del genere si sfruttano le caratteristiche del filesystem, in particolare degli inode.
Un file è un insieme di informazioni scritte nel disco, a questo insieme di informazioni punta un inode, che è quello che noi effettivamente vediamo quando diamo il comando ls.
Per eliminare un file basta eliminare l' inode che punta ad esso, in effetti, il file non lo vedi più, o più precisamente, non hai più nessun riferimento a quell' insieme di informazioni scritte nel disco, che comunque continua ad esistere. Le porzioni di disco vengono rese disponibili alla scrittura di altri files se NESSUN inode punta a quelle locazioni e dato che un file può anche avere più di un inode che punta ad esso, la porzione di informazioni sul disco continuerà ad esistere finchè tutti gli inode che puntano ad essa saranno cancellati ( per questo il comando di eliminazione file si chiama unlink, perchè in effetti non cancelli il file, elimini il riferimento ad esso ).

Abbiamo due directory: /source e /backup , su backup montiamo una partizione molto capiente, che poi sarà quella che conterrà tutto il backup. /source è la root dell' albero di cui voglio fare il backup

  1. Creo una cartella in backup .. magari la chiamo source_back ( quindi avrò /backup/source_back )
  2. con rsync sincronizzo source_back con /source, quindi copio tutto /source in /backup/source-back
    rsync -a --delete /source /backup/source-back
  3. creo la cartella /backup/archivio che conterrà tutti i backup divisi per data
  4. creo una cartella dentro /backup/archivio con il nome della data odierna ( es. /backup/archivio/2008_07_14 )
  5. do il comando: cp -al /backup/source-back /backup/archivio/2008_07_14
( *** NB: mi raccomando ai parametri di cp, devono essere -al )
* il comando cp -al non copia i file nella directory /backup/archivio/2008_07_14, ma crea degli inode che puntano ai file su /backup/source-back , in questo modo a te sembra di avere due directory doppione con X occupazione disco, ma in effetti il file su disco è unico , ha solo 2 inode che puntano a lui e il disco sarà occupato per X/2.

per ogni nuovo giorno successivo esegui le operazioni 2) --> 4) --> 5)

A questo punto ti chiederai: ma se rifaccio rsync non mi viene cancellato o comunque modificato il file a cui puntano gli inode dei giorni precedenti? la risposta è NO. Rsync quando il file è diverso non lo sovrascrive nella stessa locazione, ma scrive le informazioni in una parte diversa di disco, quindi un certo file in date diverse punterà a porzioni diverse di disco. E' questa la chiave di tutto.

In sintesi, in questo modo avrete tante cartelle di date, tutte conterranno i files che erano in /source in quella data.

Volete un'esempio in soldoni? io su un disco da 400 Gb. ho circa 250 giorni backappati per 150 Gb. a giorno! Quindi è come se il disco contenesse 37.500 gb di dati, perchè ogni cartella delle 250 "pesa" 150 Gb.

Esportate la cartella /backup/archivio su un drive di rete e dite agli utenti di cercare avventura tra i backup.

Sarò contento anche se riuscirò a salvare un solo sysadmin.

Buona fortuna.





Commenti

Ritratto di Alfio
#1

Inviato da Alfio il Ven, 18/07/2008 - 21:55.

Tag inesistenti

Per piacere mandiamo le guide come da regolamento aggiungiamo i tag per una lettura e panoramica facilmente visibile da tutti.
Lo pubblicata ma mi auguro che farai un upgrade con i tag che provvedo a sostituirla.
Grazie ciao



Ritratto di sevy72
#2

Inviato da sevy72 il Ven, 18/07/2008 - 23:11.

Re: Tag inesistenti

ok.. ti prometto che quando ho 5 minuti la sistemo.
Grazie paisà...



Ritratto di Crismon
#3

Inviato da Crismon il Sab, 19/07/2008 - 11:20.

Re: Tag inesistenti

Ultimamete ho trovato una simpatica applicazione che automizza il tutto. Prende il nome di BackerUpper.
Per maggiori informazioni:
http://www.crismonblog.org/opensuse-11/snapshot-del-nostro-pc-backerupper.html

(Mi rimangio tutto) L'applicazione fa dei semplici backup del sistema. Sono intervenuto a sproposito con un'applicazione che non ha nulla a che vedere con la guida scritta sopra!!
Pardon!! Sad

www.crismonblog.org | Un blog targato openSUSE



Ritratto di sevy72
#4

Inviato da sevy72 il Sab, 19/07/2008 - 17:32.

Re: Tag inesistenti

Quell' applicazione non fa neanche lontanamente quello che è spiegato nella guida.... , fa solo un semplice backup



Ritratto di ferdybassi
#5

Inviato da ferdybassi il Sab, 19/07/2008 - 17:59.

Re: Tag inesistenti

Il programma segnalato da crismon è indicato per un utente desktop che abbia intenzione di effettuare backup rapidi, semplici e senza troppi fronzoli di mezzo.
La guida parla di un sistema di backup incrementale adatto a file server e a sysadmin sommersi di richieste tipo "ho cliccato sul tasto cancella, Windows mi ha chiesto se ero sicuro, ma io non sapevo cosa fare e gli ho detto di sì... Mi puoi recuperare il file? Era la presentazione in powerpoint del prodotto che devo illustrare domani mattina".
Con questa guida il sysadmin potrà rispondere: "vattelo a prendere da solo. Lo trovi sul server di backup, nella cartella con la data più vicina a oggi"
E, se permettete, è una goduria...

Ciao ciao

Amministratore di
www.it-opensuse.org