bacula

Bacula

Implementación de un sistema de backups con Bacula versión 7.4.3 sobre Ubuntu MATE 16.04

Bacula es una sistema de realización de backups en red. Tiene tres componentes llamados Director (Dir), Storage Daemon (SD) y File Daemon (FD). Con el Director se gestiona la programación de los backups (fecha, hora), gestiona el listado de clientes que requieren de backups, así como la especificación de archivos que se deben incluir y excluir, del mismo modo gestiona la conexión con los Storage Daemons y una base de datos en la que registra los movimientos relacionados con los backups.

 

El Storage Daemon (SD) se encarga de administrar los medios de almacenamiento en los que se guardan los backups. Este componente recibe directamente los archivos que le envía los clientes (File Daemon) y los convierte en backups almacenados en volumenes.

El tercer componente, el File Daemon, es el que finalmente se ejecuta en los clientes (computadores con Windows, Linux y Mac OSX). Este proceso recibe las instrucciones del Director, tales como copiar carpetas y archivos, y enviárselos al SD índicado.

Por ser un sistema distribuido, esta solución puede cubrir tantos clientes como sean necesarios y a  tantos Storage Daemons como sean necesarios para un óptimo balanceo de carga en los procesos de backups, que a veces, pueden superar los 500GB en un sólo día. Por lo tanto se recomienda tener una red que opere en lo posible en 1GBPS, y una buena máquina del lado de los SD.

A manera general, Bacula es una solución de backups en red bastante robusto, completo, flexible y escalable, digno de un ambiente empresarial. Además, por ser un sistema de respaldo de la información, entra perfectamente en el tema de la seguridad informática.

 

Puede ver un aspecto general sobre la Seguridad Informática, aquí

 

Instalación de Bacula Director


Antes de iniciar la instalación, debemos tener preparado el servidor MySQL en la misma máquina. Procedemos a instalar el servidor MySQL:

 

_# apt-get install mysql-server

 

Digitamos la contraseña de root de MySQL y la confirmamos:

bacula

Configuración de la contraseña de MySQL

La instalación del sistema del lado del Director requiere que los siguientes paquetes estén instalados previamente (se deben instalar en éste orden):

- libssl1.0.2_1.0.2h-1_amd64.deb
- bacula-common_7.4.3+dfsg-7_amd64.deb
- libmysqlclient18_5.6.30-1_amd64.deb
- bacula-common-mysql_7.4.3+dfsg-7_amd64.deb

Luego, debemos instalar dbconfig-mysql con apt-get. Si al hacer éste paso nos sale un error de dependecias incumplidas, lo solucionamos con apt-get install -f

Procedemos con la instalación de bacula-director-mysql_7.4.3+dfsg-7_amd64.deb, aunque si ya lo habíamos tratado de instalar antes el comando apt-get install -f, el sistema nos llevará automáticamente a la siguiente pantalla de configuración:

bacula

Inicialización de la Base de Datos de Bacula

En la siguiente pantalla le damos una contraseña nueva para la base de datos de Bacula:

bacula

Introducimos la contraseña de root de MySQL para la iniciación de la base de datos para Bacula

La instalación del componente bacula-director-mysql culmina si nos aparece los siguientes mensajes:

granting access to database bacula for [email protected]: success
verifying access for [email protected]: success
creating database bacula: success
verifying database bacula exist: success
populating database via sql… done.
dbconfig-common: flushing administrative password

Continuamos con la instalación de bacula-director_7.4.3+dfsg-7_amd64.deb. Si no salen errores de dependencia lo solucionamos con apt-get install -f. Luego, procedemos a instalar el Bacula SD, no sin antes instalar mtx_1.3.12-9_amd64.deb.

Seguidamente procedemos con la instalación del File Daemon, con el paquete bacula-fd_7.4.3+dfsg-7_amd64.deb.

Debo aclarar que la configuración y el máximo provecho de esta herramienta se logra a través de la línea de comandos. Sin embargo, puede usar la interfaz web que ofrece Webmin para una administración más cómoda.

 

Configuración del Bacula Director


Tal como se ha instalado, los tres componentes quedan dentro de la misma máquina. De manera que el archivo de configuración del Director, Storage Daemon y File Daemon quedan en /etc/bacula.

Vamos a configurar el sistema de tal forma que el Director realice un backup a un cliente y a ciertos tipos de archivos. Abrimos el archivo /etc/bacula/bacula-dir.conf y escribimos las siguientes líneas:

###Declaramos el cliente

Client {
Name = el-cliente
Password = YxBltOwWb5hkES8SME/E9A8sGEPt2UMkYUktCT/K7c/f
Address = 192.168.0.57
FDPort = 9102
Catalog = MyCatalog
AutoPrune = yes
File Retention = 1 months
Job Retention = 1 months
}

###Declaramos el esquema de archivos y directorios a respaldar (esta parte no accesible por medio de Webmin, se debe hacer directamente en el archivo de configuración)

FileSet {
Name = WINDOWSVISTA-7
Include {

#Archivos que deben ser incluidos en el backup
Options {
wildfile = “*.accdb”
wildfile = “*.odt”
wildfile = “*.ods”
wildfile = “*.xls”
wildfile = “*.docx”
wildfile = “*.pdf”
wildfile = “*.ppt”
signature = MD5
}

 Options {

#Directorios que no deben ser incluidos en el backup
Exclude = yes
RegexFile = “.*”
RegexDir = “AppData”
RegexDir = “OneDrive”
RegexDir = “Google Drive”
RegexDir = “Videos”
}

File = C:/Users/
}

Exclude {

#Directorios que no deben ser incluidos en el backup
File = C:/Users/Administrador
File = C:/Users/Default
File = Application Data
File = D:/$RECYCLE.BIN
}
}

###Declaramos el trabajo (job) que realizará el backup al cliente

Job {
 Name = EV-DESPACHOS
 Type = Backup
 Level = Full
 Client = EV-DESPACHOS
 FileSet = WINDOWSVISTA-7
 Schedule = backup-g1
 Storage = SD-BK-USERS
 Pool = Default
 Messages = Standard
}

###Declaramos del Storage Daemon

Storage {
 Name = SD-BK-UTM
 Password = ZMF-JivJQZFq9LfPQXYe0_FxJ6obqZQfa
 Address = 192.168.0.74
 SDPort = 9103
 Device = DV-BACKUP
 Media Type = File
 Maximum Concurrent Jobs = 20
}

 

Configuración del Bacula Storage Daemon


Abrimos el archivo de configuración /etc/bacula/bacula-sd.conf y le configuramos las siguientes líneas:

 

###Declaramos del Storage Daemon

Storage {                                            # definition of myself
 Name = SD-BK-UTM
 SDPort = 9103 # Director’s port
 WorkingDirectory = “/var/lib/bacula”
 Pid Directory = “/var/run/bacula”
 Maximum Concurrent Jobs = 20
 SDAddress = 192.168.0.74
}

Director {
 Name = director-backups
 Password = “ZMF-JivJQZFq9LfPQXYe0_FxJ6obqZQfa”
}

###Declaramos el medio almacenamiento de los backups en el Storage Daemon

Device {
 Name = DV-BACKUP
 Archive Device = /media/backups_1
 Media Type = File
 LabelMedia = yes
 Random Access = yes
 AutomaticMount = yes
 RemovableMedia = no
 AlwaysOpen = yes
}

 

Instalación del Bacula File Daemon en el lado del cliente


El componente del lado del cliente (File Daemon) podemos usar la versión 5.2.10 que es hasta donde llegó a ser gratuito, y funciona perfectamente. Aunque si necesita un File Daemon más actualizado, puede usted usar el File Daemon de Bareos Backup, el cual es un fork de Bacula.

Puede ver más sobre Bareos Backup en su página web oficial www.bareos.org

 

Implementar un segundo Storage Daemon en la red


Implementar un segundo Bacula SD en la red, nos permite ampliar el almacenamiento de los backups. Entonces, el segundo Storage Daemon lo alojamos en un servidor aparte, adicional, y para ello se necesitan los siguientes paquetes para su instalación:

libssl1.0.2_1.0.2h-1_amd64.deb
mtx_1.3.12-9_amd64.deb
bacula-common_7.4.3+dfsg-7_amd64.deb
bacula-sd_7.4.3+dfsg-7_amd64.deb

Seguidamente entramos al archivo de configuración del segundo Storage Daemon para bautizarlo y especificarle el medio de almacenamiento que recibirá los backups:

##Lo llamamos SD-BK-UTM2

Storage { # definition of myself
  Name = SD-BK-UTM2
  SDPort = 9103 # Director's port
  WorkingDirectory = "/var/lib/bacula"
  Pid Directory = "/run/bacula"
  Maximum Concurrent Jobs = 20
  SDAddress = 192.168.0.205
}

###Información de autenticación con el Director

Director {
  Name = director-backups
  Password = "ZMF-JivJQZFq9LfPQXYe0_FxJ6obqZQfa"
}

###Configuración del medio de almacenamiento que albergará los backups (/media/backups_x)

Device {
  Name = DV-BACKUP
  Media Type = File
  Archive Device = /media/backups_x
  LabelMedia = yes; # lets Bacula label unlabeled media
  Random Access = Yes
  AutomaticMount = yes; # when device opened, read it
  RemovableMedia = no
  AlwaysOpen = yes
  Maximum Concurrent Jobs = 5
}

Seguidamente entramos a la configuración del Director para declarar la existencia del segundo SD:

Storage {
Name = SD-BK-UTM2
Password = "ZMF-JivJQZFq9LfPQXYe0_FxJ6obqZQfa"
Address = 192.168.0.205
SDPort = 9103
Device = DV-BACKUP
Media Type = File
Maximum Concurrent Jobs = 20
}

Luego, etiquetamos los nuevos volúmenes que va a processar SD-BK-UTM2:

bacula

Etiquetado de volumenes desde Webmin

Detener y reanudar un proceso de backup


Para detener un backup sin cancelarlo se debe ejecutar el comando stop, el comando sugerirá una lista de Jobids a detener. Le ingresamos el Jobid a detener y listo.

Verificamos el estado del proceso de backup de un cliente. Fíjese en el Jobid 213, en la ruta del cliente que se está procesando y en el comando stop:

bacula

Para verificar que el Job se haya detenido, más no cancelado, se ejecuta un list jobs y en la columna JobStatus el Jobid debe aparecer con el estado I, de Incompleted. Para reanudar el backup usamos el comando resume. Al ejecutarlo nos mostrará cuatro opciones, seleccionamos la 1 y seguidamente digitamos el Jobid del backup que necesitamos darle continuación:

bacula

Para comprobar que el backup ha continuado en el punto de la ruta donde anteriormente se detuvo, ejecutamos un status client=”el-cliente”.

Recomendaciones


El proceso de restauración se puede llevar a cualquier File Daemon, siempre y cuando éste tenga en su sistema de fiecheros la ruta detino que se declara en el Director con la opción “where”.

No instalar bacula FD para Windows de 32 bits en sistema operativo de 64 bits, o no funcionará el VSS, saldrá el error “bacula Fatal error: VSS API failure calling “InitializeForBackup”. ERR=Unexpected error”.

Y esto es todo por ahora.

Comparte esto en

Publicado en GNU Linux.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *