Introducción de Bacula

Bacula es una solución distribuída de backups, está compuesto por varios elementos que pueden o no estar en el mismo host.

Arquitectura de Bacula

Director:

Es el que controla el flujo de datos, dice cuando se debe hacer un backup, un restore, le dice a los clientes que comiencen a empaquetar los archivos para su envío a los storages…

Inicia los backups siguiendo las pautas indicadas en los schedules, pero también se pueden correr backups y otras operaciones a mano mediante la bconsole.

Es importante saber que los datos no pasan nunca por el director, sino que transitan directamente entre FDs y storage.

Storage:

Se encarga de manejar los dispositivos físicos donde se guardarán los datos. Un storage puede administrar varios dispositivos (disco, cinta…)

Catalog:

Es una base de datos donde se guarda información sobre los jobs y los datos copiados. Permite dos cosas:

  • Como guarda información de los jobs, pools y volúmenes, Bacula lo usa para saber si hay un backup full para un job, y sino, eleva el backup a full. También lo utiliza para saber qué tiene que prunear.
  • Tiene todos los nombres de archivo (y sus atributos) de los que se hicieron backup, lo que permite hacer un restore selectivo.

FileDaemon/Client:

Es un agente que corre del lado del cliente, teniendo como ojbetivo empaquetar los datos y enviarlos al storage.

Bconsole:

Programa que tiene como propósito interactuar con el director mediante consola, aunque hay webapps y GUIs en desarrollo, como brstore o bat.

Elementos de configuración

Hay que tener siempre presente que es el director el que se autentica contra los componentes y no al revés.

Elementos del bacula-dir.conf

Este es el archivo de configuración del Bacula Director. Los elementos que se deben definir son:

Director: se especifica la configuración del director. Entre las opciones de configuración se especifica el par ip:puerto del director, el directorio donde se guarda el PID, la cantidad de jobs concurrentes…

Storage: aquí se le dice al director cuáles son los storages (ip:puerto), la password que esperan y el tipo de device.

Catalog: tiene la información para conectarse a la BD del catálogo (usuario, passwd, tabla).

Messages: cómo y cuándo se va a comunicar Bacula con el administrador de backups.

JobDefs: template para los jobs. Se especifícan parámetros por defecto para jobs. Si un job hace referencia a un JobDefs y no especifica un parámetro, toma el que está definido en el JobDefs, si es que está definido.

Schedule: sirven para implemntar la política de backups, junto con las opciones de recycle, max volume jobs, pools… Básicamente decimos cuando corremos un backup, dónde lo guardamos y qué archivos contiene.

Pool: entidad lógica que sirve para agrupar volúmenes. Todos los volúmenes de un pool comparten las características de ese pool, como max volume jobs, autoprune… Complementan a los schedules y entre los 2 implementan la política de backups.

Job: Aquí se definen los jobs que se van a correr. Bacula corre los josb automáticamente solo si tiene un schedule asociado, si no lo tiene, se puede correr manualmente. Hay tres clases de jobs:

  • Backup
  • Restore
  • Verify: verifica que los atributos de los archivos en el filesystem sean iguales a los atributos guardados en el catálogo para esos archivos.

Client: se definen cuáles son los hosts en los que se harán backups, indicando su ip:puerto y la password ocn la que el director se tiene que autenticar, entre otras cosas.

FileSet: directorios y archivos de los que hacer backups, y otras opciones como que se encripten los datos con md5 o sha1, o que se compriman.

Elementos del bacula-sd.conf

Configuración del archivo Bacula Storage. Se configura el storage y los devices, que son los medios donde se van a almacenar físicamente los backups.

  • Storage: donde se define el storage daemon
  • Director: donde se especifican los directores que pueden conectarse a ese storage.
  • Device: se especifica el dispositivo donde se guardarán los datos.
  • Messages

Elementos del bacula-fd.conf

Archivo donde se configura el cliente. Hay un archivo por cada cliente y reside en el cliente, no en el director.

Elementos del bconsole.conf

Este archivo ocnfigura la bconsole. Pueden existir varias bconsoles en distintos hosts, cada una con su archivo de configuración.

« Linux | Bacula

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