Tabla de Contenidos

Bacula Backup

Descripción

Aplicativo para manejar backups

“… Bacula is a set of computer programs that permits the system administrator to manage backup, recovery, and verification of computer data across a network of computers of different kinds. Bacula can also run entirely upon a single computer and can backup to various types of media, including tape and disk.

In technical terms, it is a network Client/Server based backup program. Bacula is relatively easy to use and efficient, while offering many advanced storage management features that make it easy to find and recover lost or damaged files. Due to its modular design, Bacula is scalable from small single computer systems to systems consisting of hundreds of computers located over a large network. ..”

Prerequistos

Procedimiento

Bacula viene compuesto por muchos demonios los que deben ser instalados  y configurados

A. Instalación básica

Consiga los paquetes, algunas distribuciones los traen separados (bacula-dir, bacula-sd, ..etc) otras vienen un paquete que incluye todos los demonios ahi mismo (bacula-MySQL - MariaDB ..).


Por ejemplo en Debian 6 con MySQL - MariaDB 5.1

ii  bacula-client                       5.0.2-2.2                    network backup, recovery and verification - client meta-package
ii  bacula-common                       5.0.2-2.2+b1                 network backup, recovery and verification - common support files
ii  bacula-common-MySQL - MariaDB                 5.0.2-2.2+b1                 network backup, recovery and verification - MySQL - MariaDB common files
ii  bacula-console                      5.0.2-2.2+b1                 network backup, recovery and verification - text console
ii  bacula-director-common              5.0.2-2.2+b1                 network backup, recovery and verification - Director common files
ii  bacula-director-MySQL - MariaDB               5.0.2-2.2+b1                 network backup, recovery and verification - MySQL - MariaDB storage for Director


Por ejemplo en Debian 7 con PostgresSQL 9.1

ii  bacula-common                         5.2.6+dfsg-9                       amd64        network backup service - common support files
ii  bacula-common-pgsql                   5.2.6+dfsg-9                       amd64        network backup service - PostgreSQL common files
ii  bacula-console                        5.2.6+dfsg-9                       amd64        network backup service - text console
ii  bacula-director-common                5.2.6+dfsg-9                       amd64        network backup service - Director common files
ii  bacula-director-pgsql                 5.2.6+dfsg-9                       amd64        network backup service - PostgreSQL storage for Director
 

B. Configuración

B.1 Crear y llenar la BD

Una vez instala el servidor (bacula-dir) es necesario configurar la base de datos con la que se va a operar. Aqui consideramos que se usa MySQL - MariaDB y este provee un conjunto de scripts para hacer todos los proceso. En la ruta /etc/bacula/scripts se encuentran todos pero para usarlos toca editar los scripts para ingresar las contrasenhas:

grant_mysql_privileges, create_mysql_database y make_mysql_tables lo siguiente

- en la lines donde aparezca “….MySQL - MariaDB ….” colocar  “…MySQL - MariaDB -p -u root ……”  para que pida contraenha de root

$> cd /etc/bacula/scripts/
$> ./create_mysql_database
$> ./make_mysql_tables
$> ./grant_mysql_privileges

Con esto ya esta la bae de datos

Si quereien con postgresql es muy parecido: donde esta psql ponga “psql -U baculausr”. Una referencia http://www.bacula.org/manuals/en/catalog/catalog/Installi_Configur_PostgreS.html

B.2. Director (bacula-dir)

Lo primero es conectarlo con la base de datos. En el archivo de configuracion bacula-dir.conf en el aparte de “Catalog” se encuentra la configuracion de la base de datos

  dbname = “bacula”; DB Address = “127.0.0.1”; dbuser = “baculausr”; dbpassword = “ieTh6Ook”

En este momento ya  se puede probar. Inicie el servidor dir y si levanta puede correr bconsole y dar un “status dir” y ver si corre

Ahora podemos empezar a definir los Fileset estandares  por ejemplo


 

* Los nombres se toman cuando se instala y lo importante es dejar todo consistente entre los archivos de configuracion de los tres demonios (sd, fd, dir).
* La instalación por defecto tiene un documento que puede usarse. Lo importente son los nombres y las contraseñas entre el director, la consola, el SD, FD.

B.2. Almacenamiento (Storage bacula-sd)

Por defecto el sistema coloca un sistema de almacenamiento en archivo. Si su server SD es otro, pues copie el archivo alla y cambie el nombre  el directorio.

Si es cinta …  Aqui hay una cosa que se debe hacer con anterioridad, que es probar la cinta y su compatibilidad.

Una vez se ha adaptado el archivo (bacula-sd.conf) a las particularidades de la cinta en cuestion, se usa el comando btape para probar y se le da test para probar

btape -c /etc/bacula/bacula-sd.conf /dev/st0

Tape block granularity is 1024 bytes.

btape: butil.c:272 Using device: “/dev/st0” for writing.

btape: btape.c:338 open device “Cinta-1” (/dev/st0): OK

*test


 Aqui saca todos los resultados de las pruebas .. se espera todo OK

Si quiera puede darle help, para que le muestre los comandos y si tiene un autochanger (robot) como en TIGO .. pues se le puede dar para que lo pruebe tambien (autochanger).

Otra es testear el robot /etc/bacula/mtx-changer /dev/sg10 load 1 /dev/st0 0
 

El archivo de configuracion tiene varios bloques. (Ejemplo de OLA)
Mi identidad como demonio

Storage { # definition of myself

    Name = proc1-sd

    SDPort = 9103 # Director's port

    WorkingDirectory? = “/var/bacula”

    Pid Directory = “/var/run”

    Maximum Concurrent Jobs = 20

}

nombre del director(es) que tiene acceso

Director {

    Name = midas-dir

    Password = “9jByv3GfzXgJEZsIe?1XcXIskcevZbE?8Bkyn12adJ8ggG”

}

Director {

    Name = midas-mon

    Password = “jUp0KKlnt7P3Lc5h2lNV92PGaFMtGYXOk?8T1BngZK?3k7”

    Monitor = yes

}

El dispositivo de almacenamiento

Device {

    Name = Cinta

    Media Type = Cinta

    Archive Device = /dev/st0

    AutomaticMount? = yes; # when device opened, read it

    AlwaysOpen? = yes;

    RemovableMedia? = yes;

    RandomAccess? = no;

    Changer Command = “/etc/bacula/mtx-changer %c %o %S %a %d”

    Changer Device = /dev/sg10

    AutoChanger? = yes

    Alert Command = “sh -c 'tapeinfo -f %c |grep TapeAlert?|cat'“

}

Este ultimo incluye el robot de cambio de cintas (Changer).

3. Archivos (bacula-fd)   

Tome la configuracion, digale quien es el servidor y las contrasenhas adecuadas

Otras configuraciones

1. Bweb

Cuando se instala el rpm .. aun no le da a la base de datos. Agregue la contrasenha en /etc/bacula/bweb.conf

__Update your configuration to use the correct tpl directory (You are using devel tpl)__

Aqui toca cambiar el archivo de /usr/share/bacula/bweb/tpl .. que esta mal .. toca traerlo de otro lado (ejm zion )

Ahora si en Configuracion lo puede poner en Spanish

– http://tech.watts.co.nz/ubuntu-bacula/ –

2. Bacula-web

 [Wed May 26 11:26:37 2010] [error] [client 192.168.8.210] PHP Fatal error:  Smarty error: unable to write to $compile_dir '/usr/share/bacula/bacula-web/html/templates_c'. Be sure $compile_dir is writable by the web server user. in /usr/share/bacula/bacula-web/html/external_packages/smarty/Smarty.class.php on line 1088
 

Suele ser problema de permisos en la direccion..que no pertenece a apache:apache

chown -R apache:apache templates_c/

 En los ultimos estoy teniendo un problema con DB_error::fetch_row() y no he podido sacarlo.

Trucos

1. Realizar backup de archivos especificos

Por ejemplo se necesita hacer backup unicamente archivos PDF que se encuentran en el siguiente path “D:/Demo”, 
el file set que se necesita es el siguiente:

Fileset {
        Name=“MyPdf
        Include{
                Options{
                        WildFile=*.pdf
                }
                Options{
                        wildfile=*.*
                        exclude=yes
                }
                File = D:/Demo
        }
}

2. Bakup en caliente de MySQL - MariaDB

http://matias.neiff.com.ar/2009/12/02/backup-en-caliente-de-MySQL - MariaDB-con-bacula/ –

http://dev.MySQL - MariaDB.com/doc/refman/5.0/en/mysqlhotcopy.html –

http://www.mail-archive.com/bacula-users@lists.sourceforge.net/msg31605.html

3. Bakup en caliente de Zimbra

http://matias.neiff.com.ar/2009/12/02/zimbra-backup-con-bacula/ –

4. Bakup de Clearspace

http://matias.neiff.com.ar/2009/11/26/clearspace-backup-con-bacula/  –

5. Bakup de MSSQL

http://wiki.bacula.org/doku.php?id=application_specific_backups:microsoft_sql_server  –

http://www.backupcentral.com/phpBB2/two-way-mirrors-of-external-mailing-lists-3/bacula-25/ms-sql-database-backup-82851/

6. Bakup de Oracle

http://osdir.com/ml/sysutils.backup.bacula.devel/2004-09/msg00031.html  –

7. Configuración orientada a Webmin (Web GUI)

A partir de la versión 1.360 de Webmin se incluye dentro de Webmin el modulo de Bacula, ubicado en la categoria Sistema. Para ponerlo en funcionamiento es necesario editar el modulo, cambiando el tipo de base de datos a usar a MySQL - MariaDB (por defecto a SQLite)

Puesto que la configuración desde el punto de vista del usuario final es mucho mas cómoda bajo una interfaz Web que los comandos de una interfaz texto, se expone a continuación la forma en la que de puede gestionar un 90% de la herramienta bajo el módulo Webmin.

Una vez teniendo bacula instalado y el módulo en Webmin funcional, realice los siguientes pasos:

Antes de iniciar la configuración en Webmin, tenga en cuenta los siguientes pasos:

    Name = demo1-fd                  #Nombre del cliente
    FDport = 9102                # where we listen for the director
    WorkingDirectory = “C:\\\\Documents and Settings\\\\All Users\\\\Datos de programa\\\\Bacula\\\\Work” # Se deja por defecto
    Pid Directory = “C:\\\\Documents and Settings\\\\All Users\\\\Datos de programa\\\\Bacula\\\\Work” #Se deja por defecto
    #Plugin Directory = “C:\\\\Archivos de programa\\\\Bacula\\\\bin\\\\fdplugins” #Se deja por defecto
    Maximum Concurrent Jobs = 5 #Se deja por defecto, luego se puede modificar para temas de afinamiento
}

#
# List Directors who are permitted to contact this File daemon
#
Director {
    Name = sasterisk-dir #Nombre del servidor donde esta rl servicio de director
    Password = “wxp” #Password propio del cliente, debe colocarse igual en bacula-dir del servidor bacula
}
 

Ingrese al módulo Bacula, verficando en la parte inferior que los servicios estén funcionales (UP en verde para Director, Storage y FD)

Configuración de clientes: Ingrese al icono de “Backup Clients”, y haga click en “__Add a new backup client.__

Aparecen los campos “Client FD Name”, “Bacula FD Password” y “Hostname or IP Address”. Para el primer campo se puede colocar cualquier string que describa al cliente, no necesariamente el que se define en el archivo de configuración del cliente. En el segundo campo, la clave SI debe ser igual a la que se define en el cliente. Para el tercer campo se coloca el nombre de maquina o IP del cliente. Los otros campos pueden inicialmente dejarse con el valor por defecto.

Nuevamente en la lista de clientes, hacer click en el usuario recién creado. En la parte inferior de la información de config del cliente aparece el botón “Show status”. al hacer click sobre él, debe aparecer un mensaje con el nombre del cliente bacula y su versión. Ejemplo:   Status from wxp : demo1-fd Version: 3.0.2 (18 July 2009) VSS Linux Cross-compile Win32

Una vez se tenga esto, se garantiza la conexión bidireccional entre el cliente  y el servidor. Repetir estos pasos para los demas clientes

Configuración de Filesets: Es la configuración de “a que se le va a hacer Backup” para cada cleinte, o tambien como plantilla para varios clientes. Para realizar esta configuración, hacer clieck en el icono “Filesets” dentro del modulo de Backup de Webmin. Es muy fácil colocar la información del fileset, teniendo eso sí­ en cuenta lo siguiente:

Configuración de Almacenamiento:

**

Configurar programación de Backups (Schedules): es “en que momento se ejecutan los Backups”. En Webmin se configuran el nivel de Backup (Full, incremental, diferencial), el volumen donde de alojarán los Backups y la definición de dias / horas en la que se ejecuta. Para cada Schedule se pueden configurar hasta 4 programaciones diferentes.

Configurar Jobs: Es donde finalmente todas las configuraciones anteriores tienen lugar; un Job especifica todo el conjunto de variables que tiene un Backup (o una restauración): dispositivos, programaciones, Filesets y clientes. A través de la herramienta Webmin en el icono “Jobs” se seleccionan todas estas opciones, solamente se define el nombre del Job.

En este punto ya se pueden realizar todas las configuraciones de clientes, Filesets, Pools, Schedules y Jobs que requiera la estrategia de Backups.


 

8 Upgrade

Basta con subir la base de datos

/usr/share/bacula-director/update_mysql_tables -h 192.168.8.216  -u bacuser -p bacula9
 

Problemas

1. No compila

Algunas versiones son sensibles a cambios en /etc/redhat-release .. si por ejemplo es un CentOS? y le metio la mano para que luciera como un Enterprise Edition .. no va a compilar. Restablezca temporalmente al original y funcionara.

Otra posibilidad es con los usuales SRC RPMs no compilan normalmente sino que necesitan un par de definiciones para compilar bien

rpmbuild –rebuild –define “build_centos5=1” –define “build_mysql=1” bacula.src.rpm

o para incluir x86_64 incluya –define “build_x86_64=1”'

2. /dev/st0 ocupado ..

Si cuando usa mt o btape para probar y sale ocupado. .. Pendejo baje el bacula-sd .. este ocupa el dispositivo. 

3.  "mtx-changer /dev/sg16 load 3 /dev/st0 0" no funciona

Cuando trata de cargar una cinta esta no esta "mtx-changer /dev/sg16 loaded 3 /dev/st0 0" siempre terminamostrando lo mismo.
Toca meterle una descargador en el script antes

<HTML><blockquote> load)

  1. by skina


${MTX} -f $ctl unload

  1. by skina


debug “Doing mtx -f $ctl load $slot $drive”
${MTX} -f $ctl load $slot $drive
rtn=$?

  1.  


  1. Increase the sleep time if you have a slow device


  1. or remove the sleep and add the following:


  1. wait_for_drive $device


sleep 15
exit $rtn
;;

</blockquote></HTML>

4. Como marcar las cintas automaticamente

Cuando esta en un robot que tiene codigo de barras, se pueden marcar con
el mismo codigo de barras con

5. El cliente se queda esperando a conectarse con el storage

Las bitacoras del servidor muestran el siguiente mensaje:

48 Full    ←nombre_del_cliente→.2009-08-25_10.42.02_05 is waiting for Client ←nombre_del_cliente→-fd to connect to Storage File

Debe garantizar la resolucion de nombres desde el cliente hacia el servido bacula. 

6. No sube el servicio de windogs (XP)

Es un problema usualmente con la ubicacion del archivo de configuracion .. debe estar en  documents and settings/all-users/datos de programa/Bacula

http://www.bacula.org/en/dev-manual/main/main/Windows_Version_Bacula.html

7. No sube el servicio en winbugs (Seven)

Es un problema usualmente con la ubicacion del archivo de configuracion .. debe estar en  la carpeta oculta C:\\ProgramData\\Bacula

** OJO tambien con montar versiones de 32bits en 64bits ..no van a funcionar.
 

8. Se vive congelando el servidor.


Encuentro un caso  igualito donde dice que si se pone un indice en la BD la cuestion mejora. Lo hago a ver que ocurre

http://www.backupcentral.com/phpBB2/two-way-mirrors-of-external-mailing-lists-3/bacula-25/bacula-director-freezing-83635/

Referencias


- Tutorial muy completo http://webmodelling.com/webbits/miscellaneous/bacula.aspx

- http://www.bacula.org/en/dev-manual/Brief_Tutorial.html

- Guia muy vacana y en Spañol http://crysol.inf-cr.uclm.es/node/549

- Repostorio de RH5 http://www.pramberger.at/peter/services/repository/rhel5/

- Conjunto de trucos https://workaround.org/bacula-cheatsheet

- Un wiki completo y bonito  http://lucasmanual.com/mywiki/Bacula

- Baculum 9  https://www.bacula.org/9.0.x-manuals/en/console/Baculum_API_Web_GUI_Tools.html
 

FIN

29-Mayo-2006 J.E.Gomez v1.0 Primera version12-Agosto-2009 Giovanni Ramirez
27-Agosto-2009 Jhon Fabian Saganome
23-Diciembre-2010 J. C. Pineros C. Configuracion cliente Winbugs XP y 7

 


Advertencia

Este documento es privado y es de uso exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra la ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal.