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. Consta de 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.

Storage Daemon


El Storage Daemon (SD) se encarga de administrar los medios de almacenamiento en los que se guardan las copias de respaldo. 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 800GB en un s贸lo d铆a. Por lo tanto se recomienda tener una red que opere en lo posible en 1 Gbps, y una buena m谩quina del lado de los SD.

A manera general, Bacula es una soluci贸n de backups en red bastante robusta, completa, flexible y escalable, digna 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 para 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
}

###Declaramos el trabajo donde definimos el FileDaemon y su carpeta donde restaurar茅mos las copias de seguridad

Job {
Name = 芦RestoreFiles禄
Type = Restore
Client=bk-utm-fd
FileSet=禄Full Set禄
Storage = SD-BK-UTM
Pool = Default
Messages = Standard
# Where = /nonexistant/path/to/file/archive/dir/bacula-restores
Where = /home/perfil/Documentos/RESTAURACION/
RunAfterJob = 芦chmod ogu+r -R /home/sistemas/Documentos/RESTAURACION/*禄
}

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


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 usted necesita un File Daemon m谩s actualizado, puede usted usar el File Daemon de Bareos Backup, 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 la capacidad de 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 administrar谩:

##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

Ejecutar un proceso de backup


Una vez configurado todo, es muy sencillo ejecutar manualmente un proceso de backups. Para ello, dentro del mismo servidor que funciona como Director, ejecutamos el comando bconsole. Esto nos ingresar谩 a la consola聽 CLI de gesti贸n.

Una vez adentro de la consola CLI, ejecutamos el comando run, seleccionamos uno de los trabajos de alg煤n cliente, confirmamos con un YES, y listo:

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禄.

Restaurar una copia de respaldo


Bacula nos ofrece varias maneras de restaurar las copias de respaldos, o backups. La forma m谩s directa es con el JobId de un trabajo de respaldo realizado con 茅xito.

Para recuperar un backup, entramos a la consola de Bacula, bconsole, y ejecutamos el siguiente procedimiento:

– *restore (con opci贸n 3 – Enter list of comma separated JobIds to select)
– Introducimos el n煤mero del JobId.
– Seleccionamos el File Daemon que configuramos para restaurar los backups.
– Confirmamos con Yes

 

Recomendaciones


– El proceso de restauraci贸n se puede llevar a cualquier File Daemon, siempre y cuando 茅ste tenga en su sistema de ficheros el directorio o carpeta donde se colocar谩n los respaldos restaurados. Dicho directorio va declarado en el Director con la opci贸n 鈥淲here鈥.

– Configure los puntos de montaje de los medios de almacenamiento de los backups, con bacula como propietario.

– 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鈥.

– A veces sucede que al comenzar el proceso de backup en un cliente, se queda 芦pegado禄 en el siguiente mensaje:

.. the backup job is now running. When complete, the results will be shown below ..

18-may 10:05 director-backups JobId 7520: Start Backup JobId 7520, Job=CLIENT.2020-05-18_10.05.33_27
18-may 10:05 director-backups JobId 7520: Using Device "DV-BACKUP" to write.

Para solucionarlo solo es suficiente reiniciando el Storage Daemon.

Y esto es todo por ahora.

Comparte esto en

Publicado en GNU Linux.

Deja una respuesta

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