Está en la página 1de 35

Universidad Simon Bol var Laboratorio F Laboratorio Docente de Computaci on

Col oquio BACULA

Jolimar S ocial

Valle de Sartenejas, Abril de 2010

Indice
1. Que es BACULA? 1.1. Breve historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Arquitectura de BACULA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Procedimie nto de instalacion 2.1. Instalacion Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Instalacion Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 5 7 7 9

2.3. Instalacion Cliente Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3. Configuracion 10

3.1. Archivo de Configuracion Director . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1.1. Elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1.2. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2. Archivo de Configuracion Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2.1. Elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2.2. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3. Archivo de Configuracion File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.1. Elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.2. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.4. Archivo de Configuracion Bconsole . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.4.1. Elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.4.2. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4. Ba ckup 17

4.1. Ejemplo Revision de Estatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2. Ejemplo Correr Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5. Restore 6. Otras herramie ntas 6.1. Comando mt 24 27

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

6.2. Obtener mas informacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6.3. Herramie ntas de Bacula

7. Glosario 8. Consideraciones

28 29

1.

Que es BACULA?

Bacula es un conjunto de software que permite al administrador de un sistema manejar el respaldo, la recuperacion y la verificacion de datos a traves de una red de computadoras de diferentes tipos. Bacula puede ejecutarse en una sola computadora y puede respaldar en varios tipos de volumenes, incluyendo cintas y discos. En terminos tecnicos, es un programa para realizar backups basado en la arquitec tura Cliente/Servid or. Bacula es relativamente facil de usar y eficiente, para ello ofrece una serie de caracte rsticas que hacen sencilla la tarea de recuperacion de archivos perdidos o danados. Debido a su diseno modular, Bacula es altamente escalable desde una unica computadora hasta un sistema que tenga cientos de computadoras pertenecientes a una red.

1.1.

Bre ve historia
Bacula = Ba ckup + D racula

En Enero 2000 se inicia el proyecto. Con el objetivo de brindar un software para respaldo que cumpliera con las siguientes caracte rsticas: Pueda realizarse respaldo a casi cualquier cliente (independiente del sistema operativo y/o filesystem). Funcionalidades similares a software con el mismo proposito, disenadas para el mercado empresarial. Asegurar compatibilidad de los datos por varios anos. Software bajo licencia free and open source (GPL v2) Los diferentes release fueron publicados en las siguientes fechas: 14 de abril 2002 Primer release a Source Forge (version 1.16) 29 de junio 2006 Release 1.38.11 Enero 2007 Release 2.0.0 Agosto 2007 Release 2.2.0. Octubre 2008 Release 2.4.3 Abril 2009 Release 3.0.0 Enero 2010 Release 5.0.0 Febrero 2010 Release 5.0.1 4

1.2.

A rquitectura

de BACULA

Bacula tiene 5 componentes principales: Director, Console, File, Storage y Monitor Services.

Figura 1: Componentes de BACULA

A continuacion se explicara la funcion de cada uno de los componentes mostrados en la figura anterior. Bacula Directo r: Es el demonio que gestiona la logica de los procesos de backup y los demas servicios. El servidor de la base de datos debe estar accesible desde la maquina que ejecuta este demonio (o tambien puede estar en la misma maquina y escuchar en localhost). En el archivo de 5

configuracion de este demonio se especifica donde y como acceder al resto de demonios y recursos, la contrasena para el acceso mediante bacula-console y los trabajos o jobs. El director arranca los backups siguiendo las pautas dadas en los schedules, pero tambien se pueden correr backups y otras operaciones a mano, mediante una consola especial. Es importante resaltar que los datos no pasan por el director, sino que transitan directame nte entre Bacula File y Bacula Storage. Bacula Storag e: Es el demonio encargado de manejar los dispositivos de almacenamiento; esto exige que este demonio este instalado en la maquina que posea la conexion fsica a los dispositivos de almacenamie nto, tales como: discos locales, grabadoras de CD o DVD, unidades de cinta, volumenes NAS o SAN, autocargadores o libreras de cinta. El fichero de configuracion de este servicio define tanto los dispositivos de almacenamiento que maneja, como que directores pueden utilizarlo. El tambien llamado Storage Deamon (o SD), se encarga de recibir los datos de los clientes y enviarlos al dispositivo de almacenamiento determinado. Bacula File : Es el demonio que utiliza Bacula para obtener los ficheros que necesita respaldar, as pues este es el componente que hay que instalar en las maquinas que necesiten respaldo, tambi en se encarga de empaqu etar los archivos a los que se les har respaldo. Este archivo de configuracion es el mas simple de todos, simplemente especifica que directores pueden realizarle peticiones. Bacula Consol e: Es un programa, que puede o no correr en el mismo host que el director, y que tiene como proposito interactuar (forzar una copia, o que recuperar ficheros)con el mismo. La interac ci on se hace por lnea de comandos, sin embargo, existen webapps y GUIs en desarrollo, como brestore o bat, que cumplen la misma funcion. Catalo g: Es una base de datos donde se guarda informacion sobre los jobs dos. El catalogo tiene dos funciones principales: sobre los datos respal da-

1. Guardar informacion de los jobs, pools y volumenes, Bacula lo utiliza para determinar los niveles de backups realizados para cada job. Ademas con la informacion disponible garantiza que se hagan los prune correspondientes. 2. Almacenar todos los nombres de modi- ficacion) a los que se les recuperacion de archivos selectiva, individualmente cuales archivos y/o archivo (y sus atributos, como fecha de ultima ha hecho respaldo, lo cual es necesario para la es decir, seleccionar (marcar, en la jerga de Bacula) directorios se han de restaurar.

Los manejadores de base de datos actualme nte soportados son tres: MySQL, PostgreSQL y SQLite, de los cuales se debe elegir uno al momento de compilar bacula.

Bacula Monito r: Es un programa que permite al administrador o usuario visualizar el estado actual de las instancias de los tres demonios principales (Director, File, Storage). Actualmente, solo esta disponible una version con el uso de GTK+, que trabaja con GNOME, KDE y otros manejadores de ventanas.

2.

Pr ocedimie nto de instalaci on

El software de BACULA puede ser obtenido de diferentes fuentes, incluso se puede encontrar una version (2.x.x) en los repositorios de Debian. La mejor fuente es la pagina oficial de donde se obtuvo para su instalaci on: http://freeradius.org/ Sistemas operati vos soportados: 1. IRIX 2. Tru64 3. HP-UX 4. Linux (CentOS, Debian, Fedora, Gentoo, Mandriva, RedHat, OpenSUSE Ubuntu) 5. Mac OSX 6. NetBSD 7. OpenBSD 8. FreeBSD 9. Solaris 10. Wind ows

2.1.

Instalacion

Servidor
mnima de servidor:

Pasos a seguir, para instalacion

Se instalaran todos los componentes Director, Storage, File, Bconsole en la misma m aquina, siguiendo estos pasos. Existen muchas opciones que se pueden configurar para el funcionamiento mas adaptado a las necesidades de cada sistema o red, como transmisi on de datos cifrada, alma- cenamiento cifrado, herramie ntas GUI, etc. Para ver todas las opciones luego del paso 3, hacer: #> ./configure --help

1. Obtener el tar.gz de BACULA: http://ww w.bacula.org 2. Descomprimir el targz: #> tar xvzf bacula-version.tar.gz 3. Acceder a carpeta descomprimida: #> cd ./bacula-version/ 4. Build los makefiles: #> ./configure {--with-postgres | --with-mysql | --with-sqlite3} 5. Compilas los binarios: #> make 6. Instalar los binarios, paginas de man y archivos de configuracion: #> make install 7. Instala cion de scripts para inicio autom atico: #> make install-autostart 8. Configurar: Se explicar en la siguiente seccion.

9. Iniciar el director daemon (Debian): #> /etc/init.d/bacula-dir start 10. Iniciar el storage daemon (Debian): #> /etc/init.d/bacula-sd start 11. Iniciar el file daemon (Debian): #> /etc/init.d/bacula-fd start

2.2.

Instalacion

Clie nte
mnima de clie nte:

Pasos a seguir, para instalacion

1. Obtener el tar.gz de BACULA: http://ww w.bacula.org 2. Descomprimir el targz: #> tar xvzf bacula-version.tar.gz 3. Acceder a carpeta descomprimida: #> cd ./bacula-version/ 4. Si se utiliza el mismo paquete descargado para la instalaci on del servidor: Borrar archivos objetos y binarios: #> make clean Borrar informacion de configuracion de la distribuci on: #> make distclean 5. Build los makefiles: #> ./configure --enabled-client-only 6. Compilas los binarios: #> make 7. Instalar los binarios, paginas de man y archivos de configuracion: #> make install 8. Configurar: Se explicar en la siguiente seccion.

9. Iniciar el file daemon (Debian): #> /etc/init.d/bacula-fd start

2.3.

Instalacion

Clie nte W ind ows


mnima de clie nte Wind ows:

Pasos a seguir, para instalacion

1. Obtener el .exe de BACULA: http://www. bacula.org 2. Ejecutar como administrador. 3. Seguir los pasos del asistente de instalaci on. 4. Iniciar el servicio: Se puede iniciar a traves del Administrador de Tareas, en la pestana de servicios. IMPO R ANTE: Definir reglas en el firewall para permitir las conexiones del file daemon, T tanto con el director como con el storage daeamon, en ambos sentidos.

3.

Configuraci on

Se mostrar an los archivos de configuracion de Director, Storage Daemon, File Daemon y Bconsole:

3.1.

Ar chivo de Configuracion

Director

Se dar una idea general de los elementos que se definen en este archivo, nombrando solo los campos mas importantes que permiten una configuracion basica, sin embargo, para cada elemento existen muchas opciones extra, se recomienda consultar la documentacion oficial. Esta configuracion se encuentra en el archivo bacula-dir.conf 3.1.1. Eleme ntos

Director: Se especifca la configuracion del director (el mismo). Entre las opciones de configuracion, se especifica el ip, el puerto de escucha, el directorio donde se guarda el PID, la cantidad de jobs concurrentes, etc. Storage: Se indica el nombre, el ip, y los puertos de cada storage daemon con el que se desee interactuar, el password que esperan y el tipo de device que utiliza, entre otros. Catalog: Se define la informacion para conectarse a la base de datos del catalogo (username, password, tablename). Messages: Se define como y cuando se va a comunicar Bacula con el administrador de backups. Por ejemplo, para que enve emails con el estado de los backups, que coloque en un archivo todos los jobs que salieron mal, que ejecute un script despues de cada job, etc.

10

JobDefs: Este elemento es un template para los jobs. Aca se especifican parametros por defecto para jobs. Si un job hace referencia a un JobDefs y no especifica un parametro, toma el que esta definido en el jobDefs (en caso de que ah este definido). Algunos de los parametros son: nombre, tipo (backup, restore), tipo (increme ntal, full), storage a utilizar, prioridad, schedule, etc. Schedule: Sirve para implementar la poltica de backups. Basicamente, se define cu ando se corren los backups, y de que nivel. Pool: Es una entidad logica que sirve para agrupar volumenes. Todos los volumenes de un pool comparten las caracte rsticas de ese pool, como max volume jobs, autop rune, etc. Los pools complementan a los schedules, y entre los dos implementan la poltica de backup. Job: Se definen los jobs que se van a correr. Bacula corre los jobs auto maticame nte solo si tiene un schedule asociado. Si no lo tiene, el job se puede correr manualmente. Hay tres clases de jobs: Backup, Restore y Verify (verifica que los atributos de los archivos en el filesystem sean iguales a los atributos guardados en el catalogo para esos archivos). Clie nt: Se le indica al director cuales son los hosts a los que se le haran respaldos. Se especfica su ip, puerto y password con el cual el director se ha de aute nticar, entre otras cosas. FileSet: Se definen los directorios y archivos que se van a respaldar. Tambien se pueden indicar algunas opciones, como que se encripten los datos con md5 o sha1, que se compriman, o que se excluyan sub arboles en filesystems. 3.1.2. Ejemplo

Director { Name = bacula-dir Description = "Bacula director" DIRport = 9101 DIRAddress = mibacula.director.net QueryFile = "/etc/bacula/scripts/query.sql" WorkingDirectory = "/var/lib/bacula/" PidDirectory = "/var/run/bacula/" Maximum Concurrent Jobs = 1 Password = "la password" # Matchea con la password del recurso director en la bconsole Messages = Standard Storage { Name = bacula-disco Address = 192.168.2.2 # No usar "localhost" SDPort = 9103 Password = "la password" # Matchea con la password del recurso storage en bacula-sd.conf Device = FileStorage 11

Media Type = File Catalog { Name = catalogo dbname = bacula DB Address = localhost user = bacula password = "" Messages { Name = Standard mailcommand = "/usr/lib/bacula/bsmtp -h localhost -s \"Bacula: %t %e %n %i %c %l\" operador@[192.168.5.5]" operatorcommand = "/usr/lib/bacula/bsmtp -h localhost -s \"ADVERTENCIA OPERADOR: %t %e %i %c %l %j %r job: %n\" operador@[192.168.5.5]" Mail = operador@[192.168.5.5] = all, !skipped, ! terminate append = "/var/lib/bacula/info.log" = info, terminate append = "/var/lib/bacula/error_warning.log" = error, warning, !terminate, notsaved append = "/var/lib/bacula/all.log" = all operator = operador@[192.168.5.5] = mount console = error, warning, ! terminate } JobDefs { Name = "default_backup_job" Type = Backup Storage = baculadisco Messages = Standard Priority = 10 # Es la opcion por defecto, a mayor numero, menor la prioridada Reschedule on error = yes Reschedule interval = 1 hour Reschedule times = 1 Max Start Delay = 8 hours } Client { Name = uncliente-fd Address = micliente.dominio.net FDPort = 9102

Catalog = catalogo Password = "la password" File Retention = 30 days 12

Job Retention = 2 months } FileSet { Name = "unclientefs" Include { Options { signature = MD5 compression=GZ IP9 } File = /home/ File = /var/www File = /var/named/ File = /etc } } Schedule { Name = "uncliente_schedule" Run = Level = Full Pool = uncliente-full storage = baculadisco 1st sun at 0:30 Run = Level = Differential Pool = uncliente-diff storage = baculadisco 2nd-5th sun at 0:30 Run = Level = Incremental Pool = uncliente-inc storage = baculadisco mon-sat at 0:30 Pool { Name = unclientefull Pool Type = Backup Recycle = yes AutoPrune = yes Volume Retention = 7 weeks Accept Any Volume = yes Recycle Oldest Volume = yes Maximum Volume Jobs = 1 Label Format = Uncliente-FullMaximum Volumes = 2

13

Pool { Name = unclienteinc Pool Type = Backup Recycle = yes AutoPrune = yes Volume Retention = 6 days Accept Any Volume = yes Recycle Oldest Volume = yes Maximum Volume Jobs =1 Label Format = UnclienteInc- Maximum Volumes = 6 Pool { Name = unclientediff Pool Type = Backup Recycle = yes AutoPrune = yes Volume Retention = 4 weeks Accept Any Volume = yes Recycle Oldest Volume = yes Maximum Volume Jobs = 1 Label Format = Uncliente-DiffMaximum Volumes = 4 Job { Name = "backup_uncliente" JobDefs = "default_backup_job" Client = uncliente-fd Schedule = "uncliente_schedule" FileSet = uncliente-fs Write Bootstrap = "/var/lib/bacula/uncliente.bsr" Pool = uncliente-inc # Dumy pool, porque se sobreescribe en el schedule }

3.2.

Ar chivo de Configuracion

Storage

Esta configuracion se encuentra en el archivo bacula-sd.conf 3.2.1. Eleme ntos

Storage: Define las propiedades del demonio storage (el mismo). Los parametros principales son: ip, puerto, pid, etc. Director: Define los directores que pueden contactar este storage.

14

Device: Define los dispositivos que maneja, se indican tipo de dispositivo, path, siempre montado, abrir autom aticame nte, etc. Messages: Indica cual de los tipos de mensajes definidos en bacula-dir.conf va a utilizar. 3.2.2. Ejemplos

Storage { Name = mistorage-sd SDPort = 9103 SDAddress = 192.168.0.2 WorkingDirectory = "/var/lib/bacula" Pid Directory = "/var/run/bacula" Maximum Concurrent Jobs = 20 } Director { name = bacula-dir password = "la password" # matchea con la password en el recurso storage de bacula-dir.conf } #Dispositivo archivo Device { Name = FileStorage Media Type = File Archive Device = /var/backups/bacula LabelMedia = yes; Random Access = Yes; AutomaticMount = yes; RemovableMedia = no; AlwaysOpen = no; } #Dispositivo cinta Device { Name = TapeStorage Media Type = "Super DLT I" Archive Device = /dev/nst0 AutomaticMount = yes; AlwaysOpen = yes; RemovableMedia = yes; RandomAccess = no; LabelMedia = yes; }

Messages { 15

Name = Standard director = bacula-dir = all }

3.3.

Ar chivo de Configuracion

File

Esta configuracion se encuentra en el archivo bacula-fd.conf 3.3.1. Eleme ntos FileDaemon: Director: permitir Messages: 3.3.2. Ejemplos Define el cliente actual. conectar a este cliente.

Indica cuales directores se les

Define cual de los mensajes definidos en el director se va a utilizar.

Director { Name = bacula-dir Password = "la password" } FileDaemon { Name = uncliente-fd FDport = 9102 WorkingDirectory = /var/lib/bacula Pid Directory = /var/run/bacula Maximum Concurrent Jobs = 20 } Messages { Name = Standard director = uncliente-dir = all, !skipped }

3.4.

Ar chivo de Configuracion

Bconsole

Esta configuracion se encuentra en el archivo bconsole.conf 3.4.1. Eleme ntos Name: El nombre del director al que se conectar a. Puerto en el que escucha el Director al que se conectar a. 16

Dir Port:

Address:

Direccion del Director.

Pass word: Password usada, que debe coincidir con el atributo password del recurso director en el bacula-dir.conf 3.4.2. Ejemplos

Director { Name = bacula-dir DIRport = 9101 address = midirector.undominio.net Password = "lapassword!!" }

4.

Ba ckup
Hay dos formas de correr un backup: 1. Automaticame nte. Para que Bacula corra jobs automaticame nte, ese job debe tener asociado un schedule (y el job tiene que estar habilitado, que lo esta por defecto). 2. A mano. Es posible armar un job a mano y correrlo, as como tambien es posible correr un job tal cual esta, sin modificar ninguno de sus parametros.

Generalme nte, los backups se corren automaticame nte, mientras que los restores se corren bajo demanda. A continuacion se indica como armar un job de backup y correrlo, todo desde la correr un backup job a mano implica lo siguiente: 1. Entrar a la bConsole y elegir un backup job 2. Configurar ese job de acuerdo a nuestras necesidades 3. Ejecutar el job. Tips sobre la bConsole: En cualquier momento se puede cancelar lo que se est haciendo ingresando un punto (.). Por ejemplo, si se esta configurando un job para correr y se quiere cancelar la configuracion, se ingresa un .. La consola acepta comandos incompletos. Por ejemplo, en vez de messages, mess; en lugar de status storage, stat sto. Se pueden escribir scripts que usen la bConsole. 17

Es facil borrar algo del catalogo si no se es cuidadoso, haciendo un prune. El comando help lista los comandos disponibles en la bConsole, junto con una descripcion.

4.1.

Ejemplo Revisi on de Estatus

Se inicia la consola (Dependiendo de la configuracion del host, quizas se necesite privilegios de root) #> bconsole Una vez dentro de la bConsola se puede hacer status dir para ver el estado del Director.

Arriba se puede apreciar, entre otras cosas, los jobs que se corrieron, el estado en que salieron y los proximos jobs a ejecutarse. Se puede hacer un stat sto para verificar el estado del Storage: *stat sto The defined Storage resources are: 1: silicio-sd-disco 2: silicio-sd-cinta Select Storage resource (1-2):

18

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

Esto muestra el estado del servidor Storage, y el estado para cada device que administra. La parte mas util de este comando es donde muestra la informacion sobre la cinta. Ah se puede ver la etiqueta con la que se monto la cinta, la cantidad de bytes escritos y si el dispositivo esta o no bloqueado (BLOCKED). El dispositivo de cinta se puede bloquear por varias razones: 1. La cinta no esta en el dispositivo. 2. Cada tanto se debe limpiar el dispositivo de cintas. Para esto se usa una cinta limpiadora, especial para ese modelo de dispositivo. Si el dispositivo necesita una limpieza no va a aceptar cintas hasta que se le limpie; ocurre en muy pocas ocasiones. 3. La cinta no esta montada. En este caso la cinta est en Bacula. 4. La cinta no esta etiquetada (usar comando label). en el dispositivo, pero no esta montada

4.2.

Ejemplo

Correr Ba ckup

Para correr un backup job, ejecutar run. Este comando lista los jobs que se pueden correr:

19

*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 posicion. Esto es porque el comando run tambi en se usa para ejecutar restore jobs. Pero en este caso vamos a elegir un backup job. Se elige hacer un full backup de unlp a disco. Se comienza eligiendo el numero 2. Select Job resource (1-18): 2 Run Backup job JobName: backup_unlp FileSet: unlp-fs Level: Incremental Select Job resource (1-18): 2 Run Backup job JobName: backup_unlp FileSet: unlp-fs Level: Incremental Al elegir un job, el 2 en este caso (que corresponde al job backup unlp), Bacula muestra la configruacion que tiene para ese job y pregunta si el job esta o no listo para ejecutarse. En el caso de que lo esta, ingresando yes comienza la ejecucion del job, o lo pone en la cola del scheduler si es que no ha llegado la hora de ejecutarse aun (campo when). El significado de cada campo es el siguiente: JobName: Es el nombre del job que se va a ejecutar. Este parametro no se puede modificar. FileSet: Es un fileset definido en la configuracion de Bacula. Permite elegir el fileset a usar en este caso. Generalmente se tiene un fileset por cliente, aunque si se tienen muchos clientes con la misma estructura de directorios, se puede reusar ese fileset. Level: Dice el nivel de backup con que se va a ejecutar este job. Los niveles son Incremental, Diferencial y Full Clie nt: Especfica el cliente (fd) al que se le respaldo. Es decir, de este cliente se van har a tomar los archivos y directorios especificados por el fileset elegido en la opcion fileset. Storage: Es el storage (el dispositivo, no el servidor) donde se van a guardar los datos a respaldar. Pool: Es el pool de donde se va a usar el volumen donde se guardaran los datos. When: Establece la fecha y hora de inicio del backup. Por defecto, es ahora. Priori ty: Establece la prioridad del job. Cuanto mas grande sea el numero, menor la prioridad.

20

OK tu run?: Pregu nta 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, segun corresponda). En caso de haber algun error o de querer modificar algo, escribir mod. Si no se quiere ejecutar el job, escribir no (o escribir .). Se va a correr un backup full, por lo que se debe modificar la opcion 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 se escribe mod Bacula pregunta que queremos modificar. Vamos a modificar el nivel, as que se escribe 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 solo estan implementados los niveles Full, Incremental y Differential, los otros lo estaran en el futuro). Se selecciona 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 21

When: 2007-11-08 18:08:31 Priority: 10 OK to run? (yes/mod/no): Bacula cambia el nivel del job a Full y vuelve a pregu ntar si el job esta listo para su ejecuci on. Como se quiere hacer el backup en la cinta, se debe modificar el Storage, porque esta configurado para hacerlo en el disco. Nuevamente se escribe mod, y en el listado de opciones a configurar, se selecciona 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): Se selecciona 2, que corresponde al dispositivo de cinta. Ahora Bacula muestra el cambio hecho al job, y pregunta de nuevo si el job ya esta configurado para su ejecucion: 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 ultimo cambio: En el sistema todos los backups en cinta se hacen en un solo pool, que no es el que est configurado en ese job. Entonces hay que modificar la configuracion para cambiar el pool. Se escribe mod y en el listado de opciones, se elige 8, que es la opcion 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): 22

En el listado aparecen los pools del sistema. Los backups en cinta usan volumenes que est an en el primer pool, as que se elige 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 configurado el job para correr. Se escribe yes. En este momento Bacula est ejecuta el job. En el caso de que se haya modificado el atributo When y se haya puesto When: 2007-11-08 19:00:00, Bacula esperara una hora antes de ejecutar el job. Si se hacemos un status dir en este momento se ver 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 se acaba de configurar se esta ejecutando. Si se quiere cancelar el backup, se puede usar el comando cancel. Si hay un solo backup corriendo, pregunta si se quiere cancelar. Si hay varios backups corriendo, pregunta a cual de todos cancelar.

5.

Restore

La restauraci on se puede hacer ejecutando un Restore job que se haya definido en la config- uracion de Bacula o ejecutando el comando restore en la bConsole. Las dos modalidades presentan diferentes opciones, as que primero se como restaurar con un Restore job y despues explicar corriendo el comando restore. La restauraci on de archivos en Bacula tiene tres etapas definidas:

23

1. Buscar y seleccionar los jobs que respaldaron los archivos que se quieren recuperar. Esto se hace ejecutando un run o un restore en la bconsole. 2. Armar el arbol de directorios de donde seleccionar (marcar) los archivos y directorios a restaurar. Esto lo hace Bacula, en base a los jobs seleccionados en el paso anterior. 3. Por ultimo, se debe seleccionar que archivos restaurar. Esto se hace a mano, utilizando el comando mark. En la bConsole escribimos run, y seleccionamos el restore job definido en 1. The defined Job resources are: 1: default_restore_job 2: backup_unlp 3: backup_unlp_tape Select Job resource (1-5): 1 Please enter a JobId for restore: Pregu nta cual Backup job se quiere restaurar Please enter a JobId for restore: 4 Run Restore job JobName: default_restore_job Bootstrap: *None* Where: /var/cache/raid/backups/restores Replace: always Client: silicio-fd Storage: silicio-sd-disco JobId: 4 When: 2007-11-09 18:38:29 Catalog: catalogo Priority: 10 OK to run? (yes/mod/no): Cuando se selecciona el job, Bacula arma un restore job para restaurar los datos guardados en en backup job seleccionado. Luego muestra configuracion del restore job y pregunta si los datos son correctos. La forma de trabajar en este paso es la misma en que se trabajaba con los backup jobs: se verifican que los valores sean correctos, si no lo son, se ingresa mod y se escriben los valores correctos, as hasta que todos los valores sean los indicados. Cuando se haya terminado de configrurar el job, se lo ejecuta escribiendo run en la bConsole. Los campos a modificar seran: Where: Es el directorio en el cliente donde se van a guardar los archivos recuperados. 24

Replace: Indica si reemplaza los archivos existentes por los restaurados. Posibles valores: always, ifnewer, ifolder,never. Clie nt: Es el host que recibira los archivos restaurados. Este host va a guardar los archivos en el directorio especificado en Where. Storage: JobId: Es el dispositivo del que se van a sacar archivos para restaurarlos en el cliente. Es el job que se va a restaurar.

La otra forma de restaurar un backup es hacerlo mediante el comando restore. A continuacion se mostrar como hacer un Full Restore de Isis. Se escribe restore en la bConsole, a lo cual Bacula responde con el siguiente listado de opciones: *restore First you select one or more JobIds that contain files to be restored. You will be presented several methods of specifying the JobIds. Then you will be allowed to select which files from those JobIds are to be restored. To select the JobIds, you have the following choices: 1: List last 20 Jobs run 2: List Jobs where a given File is saved 3: Enter list of comma separated JobIds to select 4: Enter SQL list command 5: Select the most recent backup for a client 6: Select backup for a client before a specified time 7: Enter a list of files to restore 8: Enter a list of files to restore before a specified time 9: Cancel Select item: (1-9): Las opciones para restaurar archivos especficos requieren el path completo del archivo, tal cual estaba en el cliente. Por ejemplo, para restaurar el archivo /home/matias/ar chivo.txt hay que buscarlo como /home/matias/ar chivo.txt; archivo.txt sera un archivo totalme nte distinto. Esta posibilidad de restaurar archivos especficos se puede hacer gracias al catalogo que usa Bacula. Si por algun motivo el catalogo se borra, ya sea a proposito o por un descuido, no se podran hacer restores selectivos para las entradas en el catalogo que fueron borradas. Por ejemplo, si se borra del catalogo todos los jobs relacionadoscon los backups hechos para Isis, entonces no se podra hacer un restore de Isis de esta forma. De ocurrir esto, se puede hacer un restore usando las herramie ntas extra-consola que provee Bacula, como bls, bextract, etc. Notar que en el catalogo solo se guarda informacion sobre los archivos y no los archivos en s as que por mas que se pierda el cat alogo, los datos seguiran almacenados en los volu menes, ya sea en el disco duro o en la cinta, dependiendo del dispositivo donde se hayan almacenado. 25

Ingresando 5, Bacula nos pregunta cual de todos los clientes restaurar. En nuestro caso, los clientes son: Select item: (1-9): 5 Defined Clients: 4: isis-fd Select the Client (1-4): Se elije Isis. Inmediatame nte Bacula lee el cat alogo para armar un arbol de directorios virtual de donde seleccionar los archivos y directorios a restaurar:

En el listado de arriba se ve como Bacula elige los jobs y arma el arbol. Cuando termina y el arbol creado, presenta el prompt donde se puede marcar y desmarcar archivos y directorios. est $ pwd cwd is: /etc/bacula/ $ ls bacula-fd.conf scripts/ $ Con el comando mark se selecciona lo que se quiere restaurar y con el comando unmark se desmarca algo que por error se ha marcado. Por ejemplo, se marca el archivo de configuracion del cliente Bacula y luego se desmarca: $ 1 $ 1 $ mark bacula-fd.conf files marked. unmark bacula-fd.conf files unmarked. y el direct orio

Suponiendo que se marc para restaurar el archivo /etc/bacula/bacula-fd.conf /etc/bacula/scripts.

Con el comando estimate Bacula da una estimacion de cuantos bytes se van a restaurar (Notar como marcando un directorio, autom aticame nte se marcan todos los archivos que estan dentro de ese directorio): 26

$ mark scripts 5 files marked. $ estimate 2785207 total files; 8 marked to be restored; 2,576 bytes. $ Cuando se haya marcado todo lo que se ha de restaurar, con el comando done se le indica a Bacula que puede comenzar a restaurar los datos. En cualquier momento se puede usar el comando help, que imprime un listado de comandos disponibles. Ademas, si se quiere cancelar el restore, se puede usar el comando ., que sirve para volver a la bConsole.

6.
6.1.

Otras herramie ntas


Comando mt

La cinta se maneja con el comando mt. Este comando recibe como argumento el archivo de dispositivo asociado a la cinta. Estos archivos son de /dev/st0 y /dev /nst0. El primero rebobina la cinta al inicio despues de cada operacion, mientras que el segundo no rebobina la cinta.

6.2.

Obtener

mas informaci on

Se puede usar el FileSystem /proc para obtener informacion sobre los dispositivos SCSI conectados al equipo. soporte@silicio:~$ cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 06 Lun: 00 Vendor: QUANTUM Model: DLT VS160 Type: Sequential-Access Host: scsi2 Channel: 00 Id: 00 Lun: 00 Vendor: ADAPTEC Model: Device 1 Type: DirectAccess soporte@silicio:~$

6.3.

Herramie ntas de Bacula

Bacula tiene varias herramie ntas de linea de comandos que sirven para manipular los volumenes. Por ejemplo, blssirve para listar el contenido de un volumen, como si se hiciera un ls -l. Otras herramie ntas que provee son: bls: Lista el contenido de un volumen, en disco o tape. 27

bscan: Se usa para recrear el catalogo a partir de los volumenes que se tienen en el disco o de la cinta. bextract: bConsola. Extraer archivos directame nte desde el volumen en el dispositivo, sin usar la

bcopy: Copiar un volumen a otro. bsmtp: Se usa para enviar emails a los operadores, mas flexible que las herramientas de email del sistema. Las primeras cuatro herramie ntas se usan desde la linea de comandos, mientras que bsmt se usa generalmente desde el resource Messages en la configuracion de Bacula.

7.

Glosario

Los comprension de los siguientes terminos es necesaria para entender conceptos expuestos en este documento: Ba ckup Diferencial Ba ckup Full Ba ckup Increme ntal FileSet Fire wall Jobs Pool Prune Restore Schedule Terminolo g a Volumen

8.

Consideraciones

Este documento es una version mejora de la Gua Pr actica de Bacula [1], se hicieron pequenas modificaciones a Parte III de dicho documento y fueron incluidas en este en la secciones 4 y 5. Ademas de sustanciales mejoras de la Parte I y II que de base para las secciones sirvi de la 1 a la 3 del presente documento. La estetica del documento es una colaboracion no autorizada de Mara Vintimilla. 28

Referencias
[1] Banchoff, Matias. 2009. Gua Practica de Bacula. [2] http://es.wiki p edia.org/wiki/Bacula [3] http://www.bacula.org/prese ntations/Prese ntacion Bacula. pdf [4] http://www.bacula.org/d o cume ntation/

29

También podría gustarte