Configuración

Consideramos en este ejemplo que director, storage y catalog corren en la misma máquina, mientras que la consola corre en una máquina distinta y el FD en una tercera.

Director

En este archivo definimos los siguientes recursos:

Director: se define el diretor (ip, puerto, directorios que usa…)

Job: se definen los jobs que se pueden correr (backup, restore y verify)

JobDefs: plantillas para jobs, no se ejecutan, sino que cuando a un job le falta algún parámetro lo toma del jobdef declarado en ese job.

Schedule: este recurso permite especificar cuando correr un job y sobre que pool hacer el backup.

FileSet: qué archivos y directorios se van a guardar.

Client: se definen todos los clientes a los que hacer backups (información necesaria para conectarlos)

Storage: se ingresan los datos de los storages.

Pool: entidades abstractas que agrupan volúmenes. Los volúmenes heredan los parámetros del pool en que se encuentran.

Catalog: define el catálogo que se va a usar.

Messages: donde se fedine la forma en que Bacula se va a comunicar con el administrador de backups.

Veamos las opciones mas importantes a la hora de configurar el director. Para más infomación ver la documentación de Bacula:

Director {
Name = bacula-dir
Description = "Bacula Director"
DIRport = 9101
DIRAddress = mibacula.director.net
QueryFile = "/etc/bacula/scripts/query.sql"
WorkingDirectory = "/var/lib/bacula/"
PidDirectory = "/var/run/bacula/"
Maximum Concurrent Jobs = 1
# Coincide con la password del recurso director en la bconsole
Password = "Password"
Messages = Standard
}

Storage {
Name = bacula-disco
# No usar localhost
Address = 192.168.2.2
SDPort = 9103
# Coincide con la password del recurso storage en bacula-sd.conf
Password = "Password"
Device = FileStorage
Media Type = File
}

Catalog {
Name = catalogo
dbname = bacula
DB Address = localhost
user = bacula
password = ""
}

Messages {
Name = Standard
mailcommand = "/usr/lib/bacula/bsmtp
-h localhost
-s \"Bacula: %t %e %n %i %c %l\"
operador@[192.168.5.5]"
operatorcommand = "/usr/lib/bacula/bsmtp
-h localhost
-s \"Advertencia Operador: %t %e %i %c %l %j %r job: %n\"
operador@[192.168.5.5]"
Mail = operador@[192.168.5.5] = all, !skipped, !terminate
append = "/var/lib/bacula/info.log" = info, terminate
append = "/var/lib/bacula/error_warning.log" = error, warning, !terminate, notsaved
append = "/var/lib/bacula/all.log" = all
operator = operador@[192.168.5.5] = mount
console = error, warning, !terminate
}

JobDefs {
Name = "default_backup_job"
Type = Backup
Storage = bacula-disco
Messages = Standard
# A mayor número menor es la prioridad
Priority = 10
Reschedule on error = yes
Reschedule interval = 1 hour
Reschedule times = 1
Max Start Delay = 8 hours

Client {
Name = "uncliente-fd"
Address = micliente.dominio.net
FDPort = 9102
Catalog = catalogo
Password = "password"
File Retention = 30 days
Job Retention = 2 months
}

FileSet {
Name = "uncliente-fs"
Include {
Options {
signature = MD5
compression = GZIP9
}
File = /home/
File = /var/www/
File = /var/named/
File = /etc/
}
}

Schedule {
Name = "uncliente-schedule"
Run =
Level = Full
Pool = uncliente-full
Storage = bacula-disco
1st sun at 0:30
Run =
Level = Differential
Pool = incliente-diff
Storage = bacula-disco
2nd-5th sun at 0:30
Run =
Level = Incremental
Pool = uncliente-inc
Storage = bacula-disco
mon-sat at 0:30
}

Pool {
Name = "uncliente-full"
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 7 weeks
Accept Any Volume = yes
Recycle Oldest Volume = yes
Maximum Volume Jobs = 1
Label Format = Uncliente-Full
Maximum Volumes = 2
}

Pool {
Name = "uncliente-inc"
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 6 days
Accept Any Volume = yes
Recycle Oldest Volume = yes
Maximum Volume Jobs = 1
Label Format = Uncliente-Inc
Maximum Volumes = 6
}

Pool {
Name = "uncliente-diff"
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 4 weeks
Accept Any Volume = yes
Recycle Oldest Volume = yes
Maximum Volume Jobs = 1
Label Format = Uncliente-Diff
Maximum Volumes = 4
}

Job {
Name = "backup-uncliente"
JobDefs = "default_backup_job"
Client = "uncliente-fd"
Schedule = "uncliente-schedule"
FileSet = "uncliente-fs"
Write Bottstrap = "/var/lib/bacula/uncliente.bsr"
# Dumy pool, porque se sobreescribe en el schedule
Pool = "uncliente-inc"
}

Storage

Se configuran los recursos del archivo bacula-sd.conf, que está en la máquina donde corre el storage:

Storage: define las propiedades del demonio storage (ip, puerdo, pid…)

Director: define los directores que pueden conectar con este storage.

Device: define los dispositivos que maneja.

Messages: define cual de los mensajes definidos en bacula-dir.conf va a usar.

Configuración típica de un storage con un director y dos dispositivos:

Storage {
Name = "mistorage-sd"
SDPort = 9103
SDAddress = 192.168.0.2
WorkingDirectory = "/var/lib/bacula"
Pid Directory = "/var/run/bacula"
Maximum Concurrente Jobs = 20
}

Director {
Name = bacula-dir
# Coincide con la password en el recurso storage de bacula-dir.conf
password = "password"
}

## Dispositivo archivo
Device {
Name = FileStorage
Media Type = File
Archive Device = "/var/backups/bacula"
LabelMedia = yes;
Random Access = yes;
AutomaticMount = yes;
RemovableMedia = no;
AlwaysOpen = no;
}

## Dispositivo cinta
Device {
Name = TapeStorage
Media Type = "Super DLT I"
Archive Device = "/dev/nst0"
LabelMedia = yes;
Random Access = no;
AutomaticMount = yes;
RemovableMedia = yes;
AlwaysOpen = yes;
}

Messages {
Name = Standard
director = bacula-dir = all
}

Catalog

El catálogo no tiene un archivo de configuración propio, se configura en el recurso Catalog del bacula-dir.conf.

Client

El archivo bacula-fd.conf está en cada cliente Bacula. Los recursos a configurar son:

FileDaemon: define el cliente actual

Director: dice qué directores se van a conectar a este cliente.

Messages: define cual de los mensajes definidos en el drector se va a usar.

Director {
Name = "bacula-dir"
Password = "password"
}

FileDaemon {
Name = uncliente-fd
FDPort = 9102
WorkingDirectory = "/var/lib/bacula"
Pid Directory = "/var/run/bacula"
Maximunm Concurrent Jobs = 20
}

Messages {
Name = Standard
director = uncliente-dir = all, !skipped
}

bConsole

Su archivo de configuración es bconsole.conf, con las siguientes opciones de configuración para el director:

Name: nombre del director

DirPort: puerto en el que escucha el director al que nos conectaremos.

Address: dirección del director

Password: password usada, debe coincidir con el atributo password del recurso director en el bacula-dir.conf.

Director {
Name = bacula-dir
DIRPort = 9101
Address = midirector.undominio.net
Password = "password"
}

« Linux | Bacula

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License