Kern Sibbald
Con questa frase Kern Sibbald, creatore di Bacula, ha deciso di fornire una breve descrizione della sua creazione Bacula.
Ed effettivamente rispecchia, seppur in maniera cupa e teatrale, ciò che esattamente bacula fa: girà di notte, ogni notte, nella tua server farm, succhiando l'essenza (i dati) dai vari clients, ma è un pipistrello buono perchè tale essenza di cui è ghiotto la tiene ben conservata e lo fa per farci dormire sonni tranquilli.
Vena poetica a parte bacula è forse la suite più completa, efficace e complessa per il backup centralizzato esistente. Pensato per ambienti grandi come quelle delle imprese, si adatta facilmente data la sua alta scalabilità anche al pc desktop dell'utente medio.
Lo scopo di questi tutorial infatti è quello di permettere il backup dei nostri dati più importanti a tale utente, non sarà quindi un tutorial da sistemista per il backup centralizzato di 20 servers.
Premessa:
Questo non può e non vuole essere un tutorial completo, verranno spiegate solo le funzioni base sufficienti a raggiungere lo scopo dello stesso, vale a dire il backup di files locali su un dispositivo esterno di un semplice pc desktop, questo perchè è disponibile una documentazione, molto ampia e ben organizzata quindi per qualsiasi funzione non trattata potete farci riferimento.
Il backup in locale, quindi salvandolo sullo stesso pc, non ha molto senso ne per la filosofia di bacula ne per la definizione di backup stesso, quindi i requisiti minimi per questo tutorial sono soddisfacibili avendo almeno un unità a nastro, un disco usb, dvd, o qualsiasi periferica esterna su cui salvare i backup.
Cos'è Bacula:
Bacula è una suite di programmi Server based, vale a dire che un programma server interroga un determinato numero di programmi client di cui deve essere fatto il backup. L'architettura di Bacula ci consente di effettuare un network backup di una complessa sala dati, ma anche di backuppare dati su un semplice pc desktop installando tutto sullo stesso pc.
Le componenti di Bacula:
La suite Bacula è composta di vari demoni che hanno un ruolo preciso.
Console e Tray-monitor: Sono dei tool ad uso dell'amministratore che ci consentono di controllare e monitorare l'intera infrastruttura di backup, in particolare è molto utile la tray-icon in quanto ci consente di tenere sotto controllo tutti i client i server e gli storage e di sapere in tempo reale se qualcosa è andato storto.
Bacula director: E' il programma server, quello a cui ci connettiamo per visualizzare/modificare/lanciare/cancellare i vari Jobs, ed in generale per amministrare L'intera suite di Bacula. E' il demone che definisce anche cosa/come/quando backuppare e dove registrarlo.
Bacula File: E' il programma client, quello a cui il director si connette ed impartisce cosa fare, praticamente è un demone in ascolto sulle macchine che devono essere backuppate e che manda i files da backuppare al backup server.
Bacula Storage: E' quel demone che si installa sul Backup Server, vale a dire quella macchina che si occupa di immagazzinare tutti i backup di tutti i client, il file daemon si connette alo storage daemon ed invia tutti i dati da backuppare. Analogamente se parliamo di restore dei dati, il file server preleverà tali dati dallo storage server.
Catalogo: Il catalogo non è un demone bensì una parte del Director, è in parole povere è quella tabella del database di Bacula che contiene tutte le informazioni su ciò che Bacula fa: jobs avvenuti con successo, jobs falliti, date, dimensioni, come sono stati chiamati i backup, e tutto ciò che riguarda i backup.
Nello schema ideale avremo quindi una macchina per ogni demone, nel nostro caso tutto questo andrà installato sullo stesso pc dovendo effettuare il backup locale.
I file di configurazione di Bacula:
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.
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 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 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.
Sindicazione








23.04.10 @ 23:03:49
da Franco
Sono contento! Comunque non devi ringraziare ...
29.12.09 @ 11:53:41
da Admin
questo tuo post ha messo fine ...
24.12.09 @ 18:03:44
da diego
Secondo me Ubuntu è molto più ...
18.12.09 @ 01:17:54
da Francesco
Qual è la vostra esperienza in ...
12.11.09 @ 10:11:54
da Admin