Bacula Un sistema de backup en linux

En este nuevo trabajo, vamos a ver como podemos instalar y configurar un servicio de copias de seguridad en nuestro servidor Debian.

Como en todos los demás, estas notas las voy realizando a medida que voy leyendo distintos trabajos que hay ya en internet, y voy aprendiendo yo mismo ; esto si bien tiene el inconveniente de que pueden aparecer pequeños errores y malos entendidos, tiene la ventaja de que son muy faciles de seguir y que ademas seguro que funcionan; la facilidad de seguimiento proviene a que hasta yo los he seguido, y no puedo dejarlos hasta que no consigo que funcionen, osea que… terminan funcionando.

Comprendiendo a Bacula

Lo primero que deberemos hacer es comprender como funciona la herramienta; para ello deberemos tener en cuenta que se compone de las siguientes partes:

  • Bacula director daemon – (backup server) Es el proceso que actua como servidor de backup organizando el resto de procesos, autentificando conexiones y controlando las operaciones de backup . Este programa corre como demonio o servicio en background
  • Bacula storage daemon – (storage server) Es la parte de la aplicacion que se dedica a escribir las copias de seguridad en cinta, disco,…Como responsable de comunicaciones con el componente en donde residen las copias de seguridad, tendra que encargarse de grabar en los procesos de backup, o de leer en los procesos de restauración
  • Bacula file daemon – (file server) Es la parte que se dedica a leer los ficheros fuente. También lo veremos comentado como Programa cliente, y deberá estar instalado en la maquina desde la que se debe realizar la copia. Este programa corre como servicio en la maquina a copiar, por lo que deberá estar en el lenguaje apropiado al S.O. cliente. Se dispone de un cliente windows que vamos a utilizar en este articulo.

Cada una de estas partes, tienen su propia configuracion, que iremos viendo.

Colateralmente a estos componentes, Bacula utiliza:

  • Catalogo – Servidor de base de datos, (mysql, SQLlite, o postgresql para gestionar el catalogo
  • Consola – Estacion de administracion que permite al administrador comunicarse con Bacula directos. L consola esta disponible en versiones para interface de texto, QT para Gnome y la tercera versión es un GUI para wxWidgest. Todas ellas tienen prácticamente la misma funcionalidad, con completacion de comandos por TAB y servicio de ayuda sobre los comandos que se están tecleando
  • Monitor – Se trata de un programa que permite ver el avance del proceso de copia

Todos estos componentes, pueden residir en distintas maquinas o no, en función de cuan ambicioso sea nuestro objetivo. En este articulo, se va a configurar un ordenador debian para que realize sus propias copias, y las de la red de windows que tiene a su alrededor.

Los ficheros de configuracion

Cada uno de los servicios que hemos mencionado, tienen su propio fichero de configuracion:

Servicio Fichero apartado contenido
Director bacula-dir.conf Director Un registro con la configuración general
Job Definición de unFileSet de un cliente, que debe salvarse de forma conjunta (vamos: especificaciones de un trabajo debackup). unjob establece:

  • Schedule: definicion de cuando se realiza el proceso y si es incremental o total
  • FileSet: Definicion de las rutas de los ficheros a salvar con reglas para excluir los necesarios.
  • Client: Puntero al ordenador del que se desea hacer copia
  • Storage: Puntero al dispositivo de backup sobre el que se va a realizar la copia
  • Pool: Conjunto de soportes para hacer la copia
Catalogue Detalles de la base de datos que se utiliza para la gestión del catalogo
Messages Configuración de los mensajes de notificación
.
FileServer bacula-fd.conf Client Un registro con los datos generales de configuración
Director Datos de autentificacion del Director para que pueda controlar el servicio
Messages Indicación de los mensajes que se enviaran desde el Director
.
Storage server bacula-sd.conf Storage Un registro con los datos generales del sistema de almacenamiento
Director Datos de autentificacion para que el Director pueda controlar el servicio
Messages Informacion acerca de los mensajes que se devuelven al servidor
Device Caracteristicas del dispositivo de almacenamiento. (Disco, cinta,…)

Terminologeando (esto…poniendonos de acuerdo con la terminología…¿mejor?)

Durante este trabajo, utilizaremos el sentido que indico a continuación para las siguientes palabras:

Administrdor
Persona responsable de la administracion del sistema Bacula
Backup
Trabajo realizado por la aplicación Bacula para salvar los ficheros
Bootstrap File
Es un fichero ASCII que contiene los comandos que permiten a Bacula trabajar de forma autónoma para la recuperación de ficheros de uno o mas volúmenes. Con este fichero, Bacula puede restaurar el sistema sin necesidad de Catalogo. Deberá crear este fichero, desde el Catalogo para poder recuperar datos.
Catalogo
El catalogo se utiliza para almacenar datos acercadetrabajos (jobs), Clientes y ficheros que han sido salvados, y en que volumen se han salvado. Estainformacion permite al administrador o al usuario los trabajos realizados, su estado, ycaracteristicas acerca de los ficheros salvados, y lo mas importante, permite seleccionar los ficheros a recuperar. En el catalogo se conservainformacion acerca de los ficheros, pero no sus datos.Asi mismo, en el soporte de seguridad, se encuentrantambien mucha de lainformacionesxistente en el catalogo (nombre de fichero, atributos…)El catalogo es una caracteristica de Bacula que lo distingue de la simple copia con programas como dump o tar

Cliente
En terminologia Bacula, la palabra Cliente se refiere a la maquina que va a ser salvada y es sinonimo de “File services” o File daemon”, y a menudo nos fererimos a ella como FD
Console
Programa que se relaciona con el Director y permite al administrador del sistema controlar Bacula
Daemon (Demonio)
Realmente es terminologia UNIX y se refiere a un programa que esta corriendo background continuamente. En algunos sistemas Unix y en Windows se les denomina Servicios
Directiva
El termino directiva se usa para referirse a un registro que establece caracteristicas determinadas para un recurso. Por ejemplo la Directiva Name define el nombre del recurso
Director
El demonio principal del servidor Bacula que controla y dirige todas las operaciones de este sistema. Ocasionalmente, nos dirigiremos al Director como DIR
Diferencial
Copia que incluye unicamente los ficheros cambiados desde la ultima orden de backup
File Attributes (Atributos de fichero)
Toda la informacion necesaria para identificar al fichero, como nombre, fecha creacion, tamaño, fecha modificacion, permisos,.. Los atributos son gestionados por Bacula y el usuario no ha de preocuparse en absoluto por ellos.
FileSet (Definicion de ficheros)
Es un recurso contenido en el fichero de configuracion que establece todos los ficheros a salvar, los que se han de excluir, y como se han de almacenar.
Incremental
Sistema de backup que añade todos los ficheros que se han modificado desde la ultima operacion de backup
Job(Trabajo)
Es una combinacion de recursos que establece el trabajo que Bacula debe hacer en un backup o restore de un cliente concreto. Se establece Tipo (backup, restore, verify…), Nivel (full, incremental…), FileSet y Storage
Monitor
Programa que permite al usuario o al administrador comprobar el estado de avance del trabajo.
Resource(Recurso)
El recurso se establece como conjunto de directivas que definin una unidad de informacion para el sistema Bacula. Por ejempo el recurso Job establece las propiedades de un trabajo determinado por medio de las directivas Name, schedule, Volume pool,…
Restore
Es una recursos(configuracion)que describe las operaciones necesarias para recuperar un fichero desde su backup. Se trata de la situacion inversa a Save
Schedule
Es un recurso (configuracion) que establece cuando va a realizar los trabajos Bacula
Service
Es un programa que esta funcionando continuamente en memoria esperando instrucciones. En Unix se les conoce tambien como daemons o demonios
Storage Coordinates
Es la informacion devuelta por el Storage service que facilita unicamente la situacion del fichero en el medio de copia, Consiste en dos partes: una parte que pertenece a cada uno de los ficheros salvados, y otra perteneciente al Job con el que se salvo.
Storage Daemon
Nos referiremos a el tambien como SD y es el programa que escribe la informacion en los volumenes de seguridad (normalmente cintas o discos)
Sesion
Normalmente se refiere al conjunto de dialogos establecidos entre el FIle Daemon y el Storage Daemon
Verify
Es un trabajo que compara los atributos actuales de un fichero con los existentes en el catalogo de Bacula
Archive
La operacion Archive se realiza despues de Save y consiste en desmontar los volumenes en donde se han salvado la informacion. Estos volumens son marcados como “Archived” y no pueden ser usados para salvar mas ficheros. Todos los ficheros contenidos en un volimen Archived son borrados del catalogo.
Retention Period
Existen varios tipos de “periodos deretencion” queBacula gestiona. Los mas importantes son: FileRetentionPeriod, JobRetentionPeriod yVolumeRetention Period. Cada uno de estos periodos deretencion especifican el tiempo que los registrospermaneceran en el Catalogo. Todo esto no se debe confundir con los tiempos que son validos los datos salvados.El “Periodo de retencion de fichero” es el tiempo que permanece en la base de datos la informacion acerca de un fichero. Este periodo es importante
por dos razones; la primera de ella es que mientras el registro exista podra explorar la base de datos con los programas de consola, y restaurar individualmente el fichero. Una vez desaparezca, ya no podra explorar el trabajo en la base de datos. La segunda razon para ajustar correctamente este valor, es la ocupacion de la base de datos, y la necesidad de limpieza para controlar su tamaño

El “Periodo de retencion del trabajo” es el tiempo en el que el trabajo permanecera en la base de datos, Puede pasar que los detalles (ficheros) desaparezcan antes, aunque lo habitual es que se borren cuando se borra el Job

El Periodo de retencion del volumen” establece el tiempo minimo antes de que el volumen se pueda reutilizar para otro Backup. Bacula no va a reescribir nunca un volumen que contenga un backup anterior. Lo ideal seria que el catalogo contuviera todas las entradas de todos los volumenes y es solamente las necesidades de espacio y operatividad que nos van a obligar a establecer periodeos de retencion, para asi permitir a Bacula que vaya borrando la informacion.

Scan
La operacion scan permite explorar un conjunto de volumenes que contengan backups. Todos aquellos volumenes que fueron grabados por el sistema Bacula, se leen y se obtiene los datos de los ficheros que sin dejados nuevamente en la base de datos, para que puedan ser restaurados manualmente. Esta operacion sera necesaria hacerla ciuando haya vencido el periodo de retencion de un trabajo y todavia tengamos la copia.
Volumen
Es una unidad de archivo, normalmente una cinta o un disco o particion donde Bacula almacena los datos de uno o mas backups. Todos los volumenes son identificados por el sistema para evitar que se monten de forma erronea

Iniciando la instalacion

El primer paso sera instalar el soft, y para ello acudimos a aptitude

apt-get install bacula-common bacula-client bacula-console bacula-director-common bacula-director-mysql bacula-fd bacula-sd bacula-sd-mysql bacula-server

Esta parte no deberia ofrecer problemas.

Recordad tambien que necesitamos un motor de Base de datos; en mi caso he instalado previamente mysql.

con todo ello hemos conseguido que en el directorio /etc aparezca la carpeta bacula; y en ella los ficheros de configuracion

Como voy a realizar copias en una unidad USB, lo primero de todo voy a preparar el montaje; para ello creo el directorio /dev/usb  que sera donde montare la unidad

mkdir /mnt/usb

ahora veamos donde esta nuestro disco con el comando lsusb y tras comprobar que nuestra unidad aparece, podemos averiguar en donde se ha conectado con

grep SCSI  /var/log/syslog

en mi caso, veo aparecer una linea con

gestionproyectos kernel: [2764273.080845] sd 1:0:0:0: [sdb] Attached SCSI disk

Otra alternativa es ver las ultimas entradas de dmesg  despees de conectar el usb

Nota: si necesito formatear el disco, lo haré con mkfs.formato /dev/sdb1

 

ya, en cualquier caso  supongo que sera sdb1, y como prefiero que arranque montado, recordad que es para las copias de seguridad, osea que no sera muy portable, le añado a fstab una line

/etc/fstab

/dev/sdb1       /mnt/usb        vfat    auto,user             0   0

Enlaces


http://bacula.org/5.0.x-manuals/en/main/main/What_is_Bacula.html#SECTION00220000000000000000

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Formacion, Linux y etiquetada , . Guarda el enlace permanente.

Deja un comentario