giovedì 13 maggio 2010

Bacula, ottimo programma client/server per backup in rete.

Maria Susana Diaz | 19:33 |
Bacula è un programma client/server per backup in rete, può salvare su tape o su file. Il Programma fornisce moltissime opzioni ed è relativamente complesso, in questa introduzione ho riassunto i concetti fondamentali ma per usarlo correttamente è indispensabile studiare la documentazione completa.

Ultima versione stabile rilasciata: 5.0.2 del 20/04/2010

Bacula è composto da diversi componenti e servizi usati per la gestione dei file di cui eseguire il backup e dove eseguirlo:

  • Bacula Director: un servizio che controlla tutte le operazioni di backup, ripristino, verifica e di archiviazione.

  • Bacula Console: un'applicazione che consente di comunicare con "Director". Sono disponibili tre versioni:

    • Versione testuale per la riga di comando.

    • Versione grafica per GNOME basata su GTK+.

    • Interfaccia wxWidgets.

  • Bacula File: conosciuta anche come Bacula Client. Questa applicazione è installata nei computer di cui deve essere fatto il backup ed è responsabile dei dati richiesti dal Director.

  • Bacula Storage: il programma che esegue l'archiviazione e il ripristino sul dispositivo fisico.

  • Bacula Catalog: responsabile per mantenere l'indice dei file e il database di tutti i file, consentendo una facile localizzazione e ripristino. "Catalog" supporta tre diversi database: MySQL, PostgreSQL e SQLite.

  • Bacula Monitor: consente di monitorare i demoni "Director", "File" e "Storage". Attualmente "Monitor" è disponibile solo come applicazione GTK+.

Questi servizi e applicazioni possono essere eseguiti su molteplici server e client oppure possono essere installati su un solo computer se deve essere eseguito il backup di un singolo disco o volume.

http://oss.org.cn/man/network/bacula/bacula_dev/bacula-logo.png

Per poter funzionare sul server deve essere presente un database manager che può essere mysql, sqllite o postgresql

P
ool & Volume

I salvataggi su hard-disk vengono eseguiti su file, ogni file prende il nome di Volume, un insieme di Volume è un Pool. Per gestire meglio i file per ogni Pool possono essere scelte varie opzioni (come il tempo di vita dei file salvati nel Volume) che influenzeranno tutti i Volume che il Pool contiene. Tutte le configurazioni dei Pool devono essere inserite nel file bacula-dir.conf. Un opzione fondamentale è quella di attivare per i Pool:

Use Volume Once = yes

In questa maniera verrà salvato un solo Job per ogni volume e sarà più semplice mantenere in controllo dello spazio occupato. Avere questa opzione disabilitata può essere utile se si usa dei tape invece dell’hard-disk.

Files di Configurazione.

  • bacula-dir.conf: Configurazione del Director, è il file di configurazione più usato, qui dovrete definire
    1. Director: Configurazioni generali del director. Contiene anche la password da inserire nella configurazione di BConsole per permettergli di accedere al Director
    2. Job: Fileset (quali file salvare), da quale client, se è un backup totale o incrementale, in quale Pool salvare i file e lo shedule
    3. Fileset: Quali file o directory devono essere salvate e eventualmente quali devono essere escluse. Qui si può anche abilitare la compressione che sarà eseguita dal client per ridurre il traffico di rete.
    4. Schedule: Quando eseguire i backup
    5. Client: I client a cui ha acceso il Director, qui bisogna inserire la password del client.
    6. Storage: Demone di Storage a cui il Director può accedere. Anche qui serve la password.
    7. Pool: Pool gestiti da Director, si può impostare il tempo di vita dei dati, se devono essere riciclati automaticamente e quanti Job ogni Volume può contenere (il default è finché non esaurisce lo spazio quindi per salvataggi su disco è altamente sconsigliato)
  • bconsole.conf: Configurazione della console, contiene solo le impostazioni del Director a cui la console può accedere. Qui va inserita la password contenuta nella configurazione generale del Director.
  • bacula-sd.conf: Configurazione dello Storage Daemon, contiene i Director che vi possono accedere e le impostazioni del dispositivo su cui salvare i file. Se desiderate cambiare le impostazioni di default per la directory ricordatevi che quest’ultima deve appartenere all’utente o al gruppo bacula.
  • bacula-fd.conf: Configurazione del Client, qui dovete definire i Director che hanno accesso a questo demone.

BConsole

Dalla BConsole potete visualizzare lo stato dei vari demoni e dei backup, lanciare dei job o dei restore e eseguire la label dei volumi. Tutti i Job e i Pool però dovranno essere defini prima nel file di configurazione del Director.

Comandi fondamentali:

  • status dir|storage|client vi informa dello stato del director o dello storage o dei client
  • run vi permette di lanciare un job
  • restore vi permette di eseguire il restore di un backup. Una volta selezionato il job da recuperare vi verrà chiesto si scegliere quali file recuperare, per selezionarli tutti mark *. Nel menù di conferma se digitate mod potrete scegliere la directory in cui salvare i file o se reinserirli nella posizione originale.
  • label vi permette di creare un volume e di associarlo ad un Pool. Se adotterete una correta politica di riciclo dovrete usarlo solo quando configurate il programma la prima volta.
Ci sono molteplici pacchetti che contengono i diversi componenti di Bacula. Per installare Bacula, in un terminale, digitare:
sudo apt-get install bacula

In modo predefinito, installando il pacchetto bacula viene usato un database MySQL per "Catalog". Se si vuole usare SQLite oppure PostgreSQL, installare bacula-director-sqlite3 o bacula-director-pgsql rispettivamente.

Durante il processo di installazione viene chiesto di fornire delle credenziali per l'amministratore del database e per il proprietario del database bacula. L'amministratore del database deve avere i diritti apporpriati per poter creare un database.




  • Job Control
    • Network backup/restore with centralized Director.
    • Internal scheduler for automatic Job execution.
    • Scheduling of multiple Jobs at the same time.
    • You may run one Job at a time or multiple simultaneous Jobs (sometimes called multiplexing).
    • Job sequencing using priorities.
    • Console interface to the Director allowing complete control. A shell, Qt4 GUI, GNOME GUI and wxWidgets GUI versions of the Console program are available. Note, the Qt4 GUI program called the Bacula Administration tool or bat, offers many additional features over the shell program.

  • Security
    • Verification of files previously cataloged, permitting a Tripwire like capability (system break-in detection).
    • CRAM-MD5 password authentication between each component (daemon).
    • Configurable TLS (SSL) communications encryption between each component.
    • Configurable Data (on Volume) encryption on a Client by Client basis.
    • Computation of MD5 or SHA1 signatures of the file data if requested.

  • Restore Features
    • Restore of one or more files selected interactively either for the current backup or a backup prior to a specified time and date.
    • Restore of a complete system starting from bare metal. This is mostly automated for Linux systems and partially automated for Solaris. See Disaster Recovery Using Bacula. This is also reported to work on Win2K/XP systems.
    • Listing and Restoration of files using stand-alone bls and bextract tool programs. Among other things, this permits extraction of files when Bacula and/or the catalog are not available. Note, the recommended way to restore files is using the restore command in the Console. These programs are designed for use as a last resort.
    • Ability to restore the catalog database rapidly by using bootstrap files (previously saved).
    • Ability to recreate the catalog database by scanning backup Volumes using the bscan program.

  • SQL Catalog
    • Catalog database facility for remembering Volumes, Pools, Jobs, and Files backed up.
    • Support for MySQL, PostgreSQL, and SQLite Catalog databases.
    • User extensible queries to the MySQL, PostgreSQL and SQLite databases.

  • Advanced Volume and Pool Management
    • Labeled Volumes, preventing accidental overwriting (at least by Bacula).
    • Any number of Jobs and Clients can be backed up to a single Volume. That is, you can backup and restore Linux, Unix, Sun, and Windows machines to the same Volume.
    • Multi-volume saves. When a Volume is full, Bacula automatically requests the next Volume and continues the backup.
    • Pool and Volume library management providing Volume flexibility (e.g. monthly, weekly, daily Volume sets, Volume sets segregated by Client, ...).
    • Machine independent Volume data format. Linux, Solaris, and Windows clients can all be backed up to the same Volume if desired.
    • The Volume data format is upwards compatible so that old Volumes can always be read.
    • A flexible message handler including routing of messages from any daemon back to the Director and automatic email reporting.
    • Data spooling to disk during backup with subsequent write to tape from the spooled disk files. This prevents tape "shoe shine" during Incremental/Differential backups.

  • Advanced Support for most Storage Devices
    • Autochanger support using a simple shell interface that can interface to virtually any autoloader program. A script for mtx is provided.
    • Support for autochanger barcodes -- automatic tape labeling from barcodes.
    • Automatic support for multiple autochanger magazines either using barcodes or by reading the tapes.
    • Support for multiple drive autochangers.
    • Raw device backup/restore. Restore must be to the same device.
    • All Volume blocks (approximately 64K bytes) contain a data checksum.
    • Migration support -- move data from one Pool to another or one Volume to another.
    • Supports writing to DVD.

  • Multi-Operating System Support
    • Programmed to handle arbitrarily long filenames and messages.
    • GZIP compression on a file by file basis done by the Client program if requested before network transit.
    • Saves and restores POSIX ACLs on most OSes if enabled.
    • Access control lists for Consoles that permit restricting user access to only their data.
    • Support for save/restore of files larger than 2GB.
    • Support for 64 bit machines, e.g. amd64, Sparc.
    • Support ANSI and IBM tape labels.
    • Support for Unicode filenames (e.g. Chinese) on Win32 machines on version 1.37.28 and greater.
    • Consistent backup of open files on Win32 systems (WinXP, Win2003, and Vista) but not Win2000, using Volume Shadow Copy (VSS).
    • Support for path/filename lengths of up to 64K on Win32 machines (unlimited on Unix/Linux machines).

  • Miscellaneous
    • Multi-threaded implementation.
    • A comprehensive and extensible configuration file for each daemon.



Screenshots

BAT (Bacula Admin Tool)






Bweb (Bacula Web Interfaces)



Se ti è piaciuto l'articolo, iscriviti al feed per tenerti sempre aggiornato sui nuovi contenuti del blog:


TiPI (Ti Potrebbe Interessare)



LinuxLinks


Trovato questo articolo interessante? Condividilo sulla tua rete di contatti in Twitter, sulla tua bacheca su Facebook, in Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie!

LINKEDIN