It comes in the night and sucks the essence from your computers.
Ogni demone ha un suo file di configurazione, partendo da quello più semplice che è quello per la tray icon, a quello più complesso che è quello del director, qui sotto vediamo uno schema logico dei files e cosa questi hanno all’interno:
Il primo che viene all’occhio è il file del director (bacula-dir.conf), che è quello più complesso in quanto definisce tutte le veriabili in gioco con Bacula, in esso troviamo:
Director: Definisce le caratteristiche del director, nome, ip, porta, ed altre variabili.
Client: Definisce la lista di tutte le macchine client che devono essere backuppate.
Storage: Definisce tutte le macchine/dispositivi che si occupano di ospitare i backup dei client.
Catalogo: Definisce dove risiede il catalogo e come accederci.
Job: Definisce i vari job, cioè tutte le operazioni che bacula deve fare per backuppare i dati.
Pool: Definisce una collezione di dispositivi o di files che costituiscono infine l’archivio del backup.
Schedule: Definisce quando e che tipo di backup effettuare.
FileSet: Definisce cosa backuppare sul singolo client oppure su un determinato gruppo di client.
Messages: Proprietà comune di tutti i demoni, definisce le proprietà del sistema di notifiche, cosa come ed a chi notificare gli eventi.
Il secondo file che vediamo è quello della console (bconsole.conf), il tool che utilizziamo per connetterci al director e amministrare bacula, è un file molto semplice ed al suo interno troviamo una sola voce:
Director: Definisce chi è il server bacula a cui si deve connettere.
Poi abbiamo il File Daemon (bacula-fd.conf), il demone client che si installa sulla macchine da backuppare:
Client: Definisce se stesso, nome del client, ip, porta d’ascolto, ecc….
Director: Definisce chi è il director, per questioni di sicurezza vorremmo permettere l’autenticazione solo al server non a chiunque vero?
Messages: Come nel file del director.
L’ultimo file visualizzato è quello dello storage daemon (bacula-sd.conf), anche questo molto semplice:
Storage: Anche qui, definisce se stesso.
Director: Anche allo storage dobbiamo dire chi è il director autorizzato a connettersi.
Messages: Sempre lo stesso di director e file daemon.
Device: Definisce dove immagazzinare i dati, se su filesystem o su un dispositivo esterno quale un unità a nastro, un dvd, ecc….
L’ultimo file che ci ritroviamo ma che non è menzionato nell’immagine è quello della tray icon, che vedremo in seguito ma che è il più semplice di tutti, contiene infatti solo la lista di tutte le macchine dell’infrastruttura, chi è il director, chi è lo storage, chi sono i file daemon, e cosi via.
Termini utilizzati:
Durante questo tutorial verranno utilizzati determinati termini che per alcuni potrebbero risultare troppo tecnici, datà la complessità di bacula il tutorial sarà un pò prolisso (credo di finirlo di 3/4 pagine di tutorial), e per ovvie ragioni non posso spiegare ogni singolo termine altrimenti avremmo 10 pagine di tutorial, di seguito quindi ho raccolto un vocabolario dei termini più "tecnici" che verranno utilizzati, fermorestando che la lista completa è sempre reperibile presso la documentazione.
Bootstrap File: E’ un file in formato ASCII che contiene tutti i comandi necessari a Bacula per effettuare l’estrazione e il restore dei files da un backup.
Catalogo: Il catalogo è una tabella del database di bacula utilizzata per tenere traccia delle informazioni sui Clients, I Jobs, i Files che sono stati backuppati e su quale Volume essi siano presenti. Col catalogo possiamo vedere quali jobs sono stati effettuati, se ci sono stati errori o meno.
Direttiva: Col termine direttiva verranno descritte le varie opzioni da inserire/modificare all’interno dei vari files di configurazione. Ad esempio nella stringa "Name = bacula-fd" Name è la direttiva è bacula-fd è il valore di questa.
Differenziale: Nel mondo di Bacula[fn]Questo significa che altri software di backup possono indicare un significato diverso per questo termine.[/fn] il termine differenziale, riferito ad un backup, indica quel tipo di backup che viene effettuato salvando solo i files che sono cambiati dall’ultimo backup di tipo FULL.
Incrementale: Secondo Bacula[fn]come sopra.[/fn] un backup incrementale è un backup che salva i files che sono cambiati dall’ultimo backup di tipo full o differenziale.
Full: Un backup full è un backup dell’intero set di files da salvare, non vengono quindi salvati solo i files che sono cambiati ma tutti i files presenti nel FileSet.
Fileset: un fileset è una lista di files o directory da backuppare, un fileset può contenere anche files o sottodirectory da escludere durante il job, per esempio io vorrei poter buckappare tutta la cartella /usr/local ma omettere la sottocartella /usr/local/logs.
Job: Il job in Bacula è una risorsa che definisce le operazioni da fare per effettuare un backup di un determinato client, o anche di un gruppo di clients. E’ costituito da quattro parti principali il tipo (backup, restore, verifica…), il livello (full, incrementale, differenziale..), il fileset da utilizzare, e lo storage da utilizzare (dove registrare il backup).
Pianificazione (Schedule): E’ quella risorsa che definisce un ciclo in un lasso di tempo, vale a dire quale operazioni effettuare in un determinato periodo (tutti i giorni, un particolare giorno della settimana, una particolare ora…)
Periodo di mantenimento: In bacula ci sono tre tipi di periodi di mantenimento, chiamati file retention, job retention e volume retention.
Il primo indica per quanto tempo i file di un backup dovranno essere preservati nel catalogo, per tutto questo tempo i file protranno essere visitati tramite un browse dalla console, cosi possiamo eventualmente effettuare il restore di un singolo file, fuori da questo periodo i files non saranno più nel catalogo e quindi non saranno più navigabili.
Il secondo indica il lasso di tempo che i dettagli riguardo al Job devono essere mantenuti nel database, passato questo lasso di tempo il job verrà purgato, verrà fatto un purge del job quindi, perdendo le caratteristiche più precise al suo riguardo tipo i singoli files che sono stati backuppati. Generalmente se non configurato diversamente, quando un job viene purgato, vengono purgati anche i files a lui assegnati.
Il terzo indica il lasso di tempo che un volume deve essere mantenuto prima di essere sovrascritto, normalmente bacula non sovrascrive mai i volumi che contengono i backup dei files, se non diversamente configurato, se configurata questa opzione, e, passato questo lasso di tempo il volume può essere riutilizzato da parte di bacula perdendo quindi i dati backuppati in precedenza, e cancellando anche i dettagli del volume dal catalogo.
Volume: Un volume è un dispositivo (file o dvd o nastro, ecc…) che contiene fisicamente i files del backup, ad ogni volume viene applicato un label, ossia un etichetta, in quanto se utilizziamo un dispositivo a nastro ad esempio, riduciamo la possibilità di montare la cassetta sbagliata e quindi perdere un backup.
Flusso:
L’ultima parte teorica che ci manca per capire il funzionamento di bacula è il vero è proprio flusso, il meccanismo e l’ordine con cui le varie componenti (demoni) interagiscono tra loro durante il normale funzionamento, di seguito uno schema abbastanza esplicativo:
Mi raccomando vedete che poi vi interrogo
|
|
















mah è proprio il sistema di backup che devo cercare di implementare sulla mia vps.
Mi lascia prerplesso la complessità della cosa (cazzo) solo che con 20 siti o giu di li salvarli a mano porta via davvero troppo troppo tempo.
Che palle si prospetta una settimana alla console vedrai -_-
grazie dell'articolo, lo tengo sott'occhio leggendomi la guida ufficiale che spero sia capibile!
Ti dirò… io l'ho messo in produzione e poi l'ho sostituito con una procedura basata su rsync fatta da me LOL è completo ma è troppo complesso per i miei gusti va bene su infrastrutture enormi ma su ambienti piccoli secondo me me se ne può fare a meno
Inviato da HTC legend
guarda alla fine sto andando anch'io di rsnapshot e uno storage ftp americano da 5euro al mese.
Meno rogne e tutto molto piu trasparente, per una vps solitaria almeno…