Bacula è un programma client/server per backup in rete.

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


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


      Luca Soraci

      Luca Soraci

      Ubuntu giunge alle nostre orecchie solo perché è stato mutuato come nome per un sistema operativo di successo; lo abbiamo sentito nei discorsi di Mandela, del vescovo Tutu, ed è uno dei concetti fondanti di quel movimento di rinascimento che vuole far fiorire il continente africano al di sopra delle difficoltà attuali.

      Nessun commento:

      Posta un commento

      Powered by Blogger.