informarmy.net
Bacula è un programma client/server per backup in rete.
Stampa / Print

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.

E’ formato da:

  • Due demoni per il server:
    1. Director: Come dice il nome si occupa di gestire gli altri demoni
    2. Storage: Si occupa di scrivere su disco o tape i dati che gli vengono inviati dai client e di inviare i dati per i restore
  • Un demone per i client
    1. File: invia e riceve i dati per il client
  • Un programma per gestire il Director:
    1. Bconsole

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

Un tutorial completo lo trovate in questa pagina
Pool & 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.
  • Documentazione & Download

    Potete trovare la documentazione completa e i sorgenti a questo indirizzo http://www.bacula.org/

Installazione:
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.

Configurazione.

I file di configurazione di Bacula sono formattati in base alle risorse composte da direttive marcate da parantesi «{}». Ogni compoenente di Bacula dispone di un file nella directory /etc/bacula.

I diversi componenti di Bacula devono autorizzarsi tra di loro. Questo è fatto usando la direttiva password. Per esempio, la risorsa password di Storage nel file /etc/bacula/bacula-dir.conf deve corrispondere alla risorsa password di Director nel file /etc/bacula/bacula-sd.conf.

In modo predefinito, il lavoro di backup chiamato Client1 è confoigurato per archiviare il “Catalog” di Bacula. Se si intende usare il server per eseguire il backup di più di un client, è necessario modificare il nome del lavoro con qualche cosa di più descrittivo. Per fare questo, modificare il file /etc/bacula/bacula-dir.conf:

#
# Define the main nightly save backup job
# By default, this job will back up to disk in
Job {
Name = "BackupServer"
JobDefs = "DefaultJob"
Write Bootstrap = "/var/lib/bacula/Client1.bsr"
}
[Nota]
L’esempio precedente modifica il nome del lavoro in BackupServer, in corrispondenza del nome host del computer. Sostituire «BackupServer» con il nome host appropriato o un altro nome descrittivo.

Console può essere usato per interrogare Director riguardo i lavori, ma per poter usare “Console” con un utente non-root, l’utente deve essere nel gruppo bacula. Per aggiungere un utente al gruppo “bacula”, in un terminale, digitare:

sudo adduser NOME_UTENTE bacula
[Nota]
Sostituire NOME_UTENTE con il vero nome utente. Inoltre, se si sta aggiungendo l’utente corrente al gruppo, è necessario terminare la sessione e rientrarvi affinché le modifiche abbiano effetto.

Backup locale.

Questa sezione descrive come eseguire un backup di specifiche directory di un singolo host in un dispositivo a nastro locale.

  • Per prima cosa, Storage deve essere configurato. Modificare /etc/bacula/bacula-sd.conf:
    Device {
    Name = "Tape Drive"
    Device Type = tape
    Media Type = DDS-4
    Archive Device = /dev/st0
    Hardware end of medium = No;
    AutomaticMount = yes; # when device opened, read it
    AlwaysOpen = Yes;
    RemovableMedia = yes;
    RandomAccess = no;
    Alert Command = "sh -c 'tapeinfo -f %c | grep TapeAlert'"
    }

    L’esempio è per un dispositivo a nastro DDS-4. Modificare “Media Type” e “Archive Device” affinché corrispondano al proprio hardware.
    È possibile anche de-commentare uno degli altri file di esempio.

  • Dopo aver apportato una modifica al file /etc/bacula/bacula-sd.conf, il demone Storage deve essere riavviato:
    sudo /etc/init.d/bacula-sd restart
  • Ora aggiungere una risorsa Storage in /etc/bacula/bacula-dir.conf per usare il nuovo “Device”:
    # Definition of "Tape Drive" storage device
    Storage {
    Name = TapeDrive
    # Do not use "localhost" here
    Address = backupserver # N.B. Use a fully qualified name here
    SDPort = 9103
    Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyj"
    Device = "Tape Drive"
    Media Type = tape
    }

    La direttiva Address deve essere il “Fully Qualified Domain Name” (FQDN) del server. Modificare quindi backupserver col nome host attuale.
    Inoltre, assicurarsi che la direttiva Password corrisponda alla stringa in /etc/bacula/bacula-sd.conf.

  • Creare un nuovo FileSet, per determinare di quali directory eseguire il backup:
    # LocalhostBacup FileSet.
    FileSet {
    Name = "LocalhostFiles"
    Include {
    Options {
    signature = MD5
    compression=GZIP
    }
    File = /etc
    File = /home
    }
    }

    Questa sezione FileSet farà in modo di eseguire il backup della directory /etc e /home. La direttiva Options configura “FileSet” per creare una somma MD5 per ogni file di cui è fatto il backup e per comprimere tali file con GZIP.

  • Creare una nuova sezione Schedule per il lavoro di backup:
    # LocalhostBackup Schedule -- Daily.
    Schedule {
    Name = "LocalhostDaily"
    Run = Full daily at 00:01
    }

    Il lavoro verrà eseguito ogni giorno alle 00.01. Sono comunque disponibili molte altre opzioni di schedulatura.

  • Infine creare il Job:
    # Localhost backup.
    Job {
    Name = "LocalhostBackup"
    JobDefs = "DefaultJob"
    Enabled = yes
    Level = Full
    FileSet = "LocalhostFiles"
    Schedule = "LocalhostDaily"
    Storage = TapeDrive
    Write Bootstrap = "/var/lib/bacula/LocalhostBackup.bsr"
    }

    Questo lavoro crearà un backup Full (completo) ogni giorni sul dispositivo a nastro.

  • Ogni nastro usato deve avere una Label. Se il nastro corrente ne è sprovvisto, Bacula invierà un’email. Per aggiungere un’etichetta a un nastro usando Console, in un terminale, digitare:
    bconsole
  • Al prompt di “Console” digitare:
    label
  • Viene quindi chiesta la risorsa Storage:

    Automatically selected Catalog: MyCatalog
    Using Catalog "MyCatalog"
    The defined Storage resources are:
    1: File
    2: TapeDrive
    Select Storage resource (1-2):2

  • Inserire il nome del nuovo Volume (volume):

    Enter new Volume name: Sunday
    Defined Pools:
    1: Default
    2: Scratch

    Sostituire Sunday con l’etichetta desiderata.

  • Ora selezionare Pool:

    Select the Pool (1-2): 1
    Connecting to Storage daemon TapeDrive at backupserver:9103 ...
    Sending label command for Volume "Sunday" Slot 0 ...

Bacula è ora configurato per eseguire backup del host locale su un dispositivo a nastro.

fonte: Help Ubuntu

    Google
    Ricerca personalizzata
    Se ti è piaciuto l’articolo , iscriviti al feed cliccando sull’immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

      Fonte

      About the author

      Related Post

      Archivi

      Questo sito non rappresenta una testata giornalistica e viene aggiornato senza alcuna periodicità, esclusivamente sulla base della disponibilità di materiale sugli argomenti trattati. Pertanto, non può considerarsi prodotto editoriale sottoposto alla disciplina di cui all'art. 1, comma III della Legge n. 62 del 7.03.2001 e leggi successive.