Backups

Hay dos formas de correr un backup:

  • Automáticamente: para que Bacula corra un job de forma automática, ese job tiene que tener asociado un schedule, y estar activado (que lo está por defecto).
  • A mano: es posible configurar un job a mano y correrlo, así como también correr un job tal cual está, sin modificar ninguno de sus parámetros.

Generalmente los backups se corren automáticamente, mientras que los restores se corren bajo demanda.

Vamos a ver como configurar un job de backup y correrlo, todo desde bconsole, lo cual implica:

- Entrar en la bconsole y elegir un backup job.

- Configurar ese job de acuerdo a nuestras necesidades.

- Ejecutar el job.

Iniciamos la consola (dependiendo de la configuración del host, quizás necesite privilegios de root):

$ bconcole

Una vez dentro de la consola podemos hacer un "status dir" para ver el estado del Director.

*stat dir
silicio-dir Version: 1.36.3 (25 January 2006) i486-pc-linux-gnu debian testing/unstable
Daemon started 07-Oct-06 14:22, 36 Jobs run since started.

Schedule Jobs:
Level Type Pri Schedule Name Volume
===========================================================================
Incremental Backup 10 09-Oct-06 00:30 backup_unlp_tape Unlp-Inc-003
Incremental Backup 20 09-Oct-06 01:05 backup_testing_tape *unknown*
====

Running Jobs:
No Jobs running.

Terminated Jobs:
JobId Level Files Bytes Status Finished Name
===========================================================================
5116 Incr 69 7,936,572 OK 08-Oct-06 01:07 backup_unlp_tape
5121 Incr 103 15,875,686 OK 08-Oct-06 01:32 backup_testing_tape
====
*

Se pueden ver los jobs que se corrieron, el estado en el que salieron, los próximos jobs a ejecutarse…

Podemos hacer un "stat sto" para vericar el estado del Storage:

*stat sto
The defined Storage resources are:
1: silicio-sd-disco
2: silicio-sd-cinta
Select Storage resource (1-2):

El sistema tiene dos Storages, uno para hacer backups en cinta y otro, en disco. Ingresando 1, se tiene:

Select Storage resource (1-2): 1
Connecting to Storage daemon silicio-sd-disco at una-ip:9103

silicio-sd Version: 1.36.3 (22 April 2005) i486-pc-linux-gnu debian testing/unstable
Daemon started 06-Nov-07 13:21, 33 Jobs run since started.

Running Jobs:
No Jobs running.
====

Terminated Jobs:
JobId Level Files Bytes Status Finished Name
======================================================================
5116 Incr 69 7,944,619 OK 08-Nov-07 01:07 backup_unlp_tape
5121 Incr 103 15,891,720 OK 08-Nov-07 01:32 backup_testing_tape
====

Device status:
Archive "FileStorage" is not open or does not exist.
Device "/dev/nst0" is mounted with Volume "Full-Backups-Tape-0008"
Total Bytes=8,326,839,143 Blocks=129,093 Bytes/block=64,502
Positioned at File=37 Block=0
*

Esto muestra el estado del servidor Storage, y el estado para cada device que administra. La parte más útil de este comando es donde muestra la información sobre la cinta. Ahí se puede ver la etiqueta con la que se montó la cinta, la cantidad de bytes escritos y si el dispositivo está o no bloqueado (BLOCKED).
El dispositivo de cinta se puede bloquear por varias razones:

1. La cinta no está en el dispositivo

2. Cada tanto se debe limpiar el dispositivo de cintas. Para esto se usa una cinta limpiadora, esecpecial para ese modelo de dispositivo. Si el dispositivo necesita una limpieza no va a aceptar cintas hasta que se lo limpie. Es un caso muy raro, pero ocurre…

3. La cinta no está montada. En este caso la cinta está en el dispositivo, pero no está montada en Bacula5

4. La cinta no está etiquetada

Ahora sí, para correr un backup job, ejecutar "run". Este comando nos lista los jobs que podemos correr:

*run
A job name must be specified.
The defined Job resources are:
1: default_restore_job
2: backup_unlp
Select Job resource (1-5):

Notar el restore job listado en la primera posición. Esto es porque el comando "run" también se usa para
ejecutar restore jobs. Pero en este caso vamos a elegir un backup job.

Vamos a hacer un full backup de unlp a disco.

En Linux los dispositivos de cinta (/dev/nst0, por ejemplo) no se montan. Sin embargo, en Bacula sí existe el concepto de montar la cinta, y para que Bacula pueda usar una cinta primero hay que montarla. Para montar/desmontar un dispositivo en Bacula, se usa el comando mount/umount de la bConsole.

Para etiquetar una cinta se usa el comando label. Las cintas se pueden etiquetar bajo demanda (a medida que las pide Bacula) o se pueden etiquetar todas y de una sola vez. La ventaja de lo segundo es que luego Bacula sabe qué cinta pedir.

Comenzamos eligiendo respondiendo con 2.

Select Job resource (1-18): 2
Run Backup job
JobName: backup_unlp
FileSet: unlp-fs
Level: Incremental
Client: unlp-fd
Storage: silicio-sd-disco
Pool: unlp-inc
When: 2007-11-08 17:38:24
Priority: 10
OK to run? (yes/mod/no):

Al elegir un job, el 2 en este caso (que corresponde al job backup unlp), Bacula nos da la congruación que tiene para ese job7 y nos pregunta si el job está o no listo para ejecutarse. En el caso de que lo esté, ingresando "yes" comienza la ejecución del job, o lo pone en la cola del scheduler si es que no ha llegado la hora de ejecutarse todavia (campo "when").

El signicado de cada campo es el siguiente:

JobName: Es el nombre del job que se va a ejecutar. Este parámetro no se puede modicar

FileSet: Es un leset denido en la conguración de Bacula. Permite elegir el leset a usar en este caso.
Generalmente se tiene un leset por cliente, aunque si se tienen muchos clientes con la misma estructura de directorios, se puede reusar ese leset.

Level: Dice el nivel de backup con que se va a ejecutar este job. Los niveles son Incremental, Diferencial y Full.

client: Especica el cliente (fd) que se va a backupear. O sea, de este cliente se van a backupear los archivos y directorios especicados por el leset elegido en la opción leset.

Storage: Es el storage (el dispositivo, no el servidor) donde se van a guardar los datos backupeados

Pool: Es el pool de donde se va a usar el volumen donde se guardarán los datos.

When: Establece la fecha y hora de inicio del backup. Por defecto, es "ahora".

Priority: Establece la prioridad del job. Cuanto más grande sea el número, menor la prioridad

OK tu run?: Nos pregunta si los valores para las opciones son correctos. En caso de serlos, escribiendo "yes" ejecuta el job (o lo pone en la cola del schedule, según corresponda). En caso de haber algún error o de
querer modicar algo, escribir "mod". Si no se quiere ejecutar el job, escribir "no" (o escribir ".").

Vamos a correr un backup full, por lo que se debe modicar la opción de Level. Esto se hace escribiendo "mod" en el prompt y apretando ENTER.

OK to run? (yes/mod/no): mod
Parameters to modify:
1: Level
2: Storage
3: Job
4: FileSet
5: Client
6: When
7: Priority
8: Pool
Select parameter to modify (1-8):

Cuando escribimos "mod" Bacula nos pregunta qué queremos modicar. Vamos a modicar el nivel, así que
escribimos 1.

Select parameter to modify (1-8): 1
Levels:
1: Base
2: Full
3: Incremental
4: Differential
5: Since
Select level (1-5):

Todos estos son los niveles implementados (en realidad sólo están implementados los niveles Full, Incremental
y Dierential, los otros lo estarán en el futuro). Seleccionamos 2.

Select level (1-5): 2
Run Backup job
JobName: backup_unlp
FileSet: unlp-fs
Level: Full
Client: unlp-fd
Storage: silicio-sd-disco
Pool: unlp-inc
When: 2007-11-08 18:08:31
Priority: 10
OK to run? (yes/mod/no):

Bacula cambia el nivel del job a Full y nos vuelve a preguntar si el job está listo para su ejecución. Como
queremos hacer el backup en la cinta, debemos modicar el Storage, porque está congurado para hacerlo en el
disco. Nuevamente escribimos "mod", y en el listado de opciones a congurar, seleccionamos 2.

Ahora Bacula lista todos los dispositivos donde se puede grabar el backup. Notar que no son los servidores de Storage, sino los devices. En este ejemplo se tiene un Storage server y dos dispositivos, es por eso que en el listado aparecen dos entradas, una para cada dispositivo:

The defined Storage resources are:
1: silicio-sd-disco
2: silicio-sd-cinta
Select Storage resource (1-2):

Seleccionamos 2, que corresponde al dispositivo de cinta. Ahora Bacula muestra el cambio hecho al job, y nos vuelve a preguntar si el job ya está congurado para su ejecución:

Select Storage resource (1-2): 2
Run Backup job
JobName: backup_unlp
FileSet: unlp-fs
Level: Full
Client: unlp-fd
Storage: silicio-sd-cinta
Pool: unlp-inc
When: 2007-11-08 18:08:31
Priority: 10
OK to run? (yes/mod/no):

Queda por hacer un último cambio: En nuestro sistema todos los backups en cinta se hacen en un solo pool, que no es el que está congurado en ese job. Entonces hay que modicar la conguración para cambiar el pool.

Escribimos "mod" y en el listado de opciones, elegimos 8, que es la opción que corresponde al atributo Pool:

Select parameter to modify (1-8): 8
The defined Pool resources are:
1: full-backups-tape
2: unlp-full
3: unlp-inc
4: unlp-diff
Select Pool resource (1-7):

En el listado aparecen los pools del sistema. Los backups en cinta usan volúmenes que están en el primer pool, así que elegimos 1, quedando:

Select Pool resource (1-7): 1
Run Backup job
JobName: backup_unlp
FileSet: unlp-fs
Level: Full
Client: unlp-fd
Storage: silicio-sd-cinta
Pool: full-backups-tape
When: 2007-11-08 18:08:31
Priority: 10
OK to run? (yes/mod/no):

Ahora sí está configurado el job para correr. Escribimos "yes". En este momento Bacula ejecuta el job.

En el caso de que hayamos modicado el atributo When y hayamos puesto "When: 2007-11-08 19:00:00", Bacula esperará una hora antes de ejecutar el job.

Si hacemos un "status dir" en este momento veremos lo siguiente:

…… Mas informacion arriba

Running Jobs:
JobId Level Name Status
======================================================================
5124 Full backup_unlp.2007-11-08_18.23.04 is running
====

…… Mas informacion debajo

Esto indica que el job que acabamos de congurar se está ejecutando.

Si queremos cancelar el backup, podemos usar el comando "cancel". Si hay un solo backup corriendo, nos pregunta si lo queremos cancelar. Si hay varios backups corriendo, nos pregunta cuál de todos cancelar.

« Linux | Bacula

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