En este nuevo trabajo, vamos a ver como podemos instalar y configurar un servicio de copias de seguridad en nuestro servidor Debian.
Como en todos los demás, estas notas las voy realizando a medida que voy leyendo distintos trabajos que hay ya en internet, y voy aprendiendo yo mismo ; esto si bien tiene el inconveniente de que pueden aparecer pequeños errores y malos entendidos, tiene la ventaja de que son muy faciles de seguir y que ademas seguro que funcionan; la facilidad de seguimiento proviene a que hasta yo los he seguido, y no puedo dejarlos hasta que no consigo que funcionen, osea que… terminan funcionando.
Comprendiendo a Bacula
Lo primero que deberemos hacer es comprender como funciona la herramienta; para ello deberemos tener en cuenta que se compone de las siguientes partes:
- Bacula director daemon – (backup server) Es el proceso que actua como servidor de backup organizando el resto de procesos, autentificando conexiones y controlando las operaciones de backup . Este programa corre como demonio o servicio en background
- Bacula storage daemon – (storage server) Es la parte de la aplicacion que se dedica a escribir las copias de seguridad en cinta, disco,…Como responsable de comunicaciones con el componente en donde residen las copias de seguridad, tendra que encargarse de grabar en los procesos de backup, o de leer en los procesos de restauración
- Bacula file daemon – (file server) Es la parte que se dedica a leer los ficheros fuente. También lo veremos comentado como Programa cliente, y deberá estar instalado en la maquina desde la que se debe realizar la copia. Este programa corre como servicio en la maquina a copiar, por lo que deberá estar en el lenguaje apropiado al S.O. cliente. Se dispone de un cliente windows que vamos a utilizar en este articulo.
Cada una de estas partes, tienen su propia configuracion, que iremos viendo.
Colateralmente a estos componentes, Bacula utiliza:
- Catalogo – Servidor de base de datos, (mysql, SQLlite, o postgresql para gestionar el catalogo
- Consola – Estacion de administracion que permite al administrador comunicarse con Bacula directos. L consola esta disponible en versiones para interface de texto, QT para Gnome y la tercera versión es un GUI para wxWidgest. Todas ellas tienen prácticamente la misma funcionalidad, con completacion de comandos por TAB y servicio de ayuda sobre los comandos que se están tecleando
- Monitor – Se trata de un programa que permite ver el avance del proceso de copia
Todos estos componentes, pueden residir en distintas maquinas o no, en función de cuan ambicioso sea nuestro objetivo. En este articulo, se va a configurar un ordenador debian para que realize sus propias copias, y las de la red de windows que tiene a su alrededor.
Los ficheros de configuracion
Cada uno de los servicios que hemos mencionado, tienen su propio fichero de configuracion:
Servicio | Fichero | apartado | contenido |
Director | bacula-dir.conf | Director | Un registro con la configuración general |
Job | Definición de unFileSet de un cliente, que debe salvarse de forma conjunta (vamos: especificaciones de un trabajo debackup). unjob establece:
|
||
Catalogue | Detalles de la base de datos que se utiliza para la gestión del catalogo | ||
Messages | Configuración de los mensajes de notificación | ||
. | |||
FileServer | bacula-fd.conf | Client | Un registro con los datos generales de configuración |
Director | Datos de autentificacion del Director para que pueda controlar el servicio | ||
Messages | Indicación de los mensajes que se enviaran desde el Director | ||
. | |||
Storage server | bacula-sd.conf | Storage | Un registro con los datos generales del sistema de almacenamiento |
Director | Datos de autentificacion para que el Director pueda controlar el servicio | ||
Messages | Informacion acerca de los mensajes que se devuelven al servidor | ||
Device | Caracteristicas del dispositivo de almacenamiento. (Disco, cinta,…) |
Terminologeando (esto…poniendonos de acuerdo con la terminología…¿mejor?)
Durante este trabajo, utilizaremos el sentido que indico a continuación para las siguientes palabras:
- Administrdor
- Persona responsable de la administracion del sistema Bacula
- Backup
- Trabajo realizado por la aplicación Bacula para salvar los ficheros
- Bootstrap File
- Es un fichero ASCII que contiene los comandos que permiten a Bacula trabajar de forma autónoma para la recuperación de ficheros de uno o mas volúmenes. Con este fichero, Bacula puede restaurar el sistema sin necesidad de Catalogo. Deberá crear este fichero, desde el Catalogo para poder recuperar datos.
- Catalogo
- El catalogo se utiliza para almacenar datos acercadetrabajos (jobs), Clientes y ficheros que han sido salvados, y en que volumen se han salvado. Estainformacion permite al administrador o al usuario los trabajos realizados, su estado, ycaracteristicas acerca de los ficheros salvados, y lo mas importante, permite seleccionar los ficheros a recuperar. En el catalogo se conservainformacion acerca de los ficheros, pero no sus datos.Asi mismo, en el soporte de seguridad, se encuentrantambien mucha de lainformacionesxistente en el catalogo (nombre de fichero, atributos…)El catalogo es una caracteristica de Bacula que lo distingue de la simple copia con programas como dump o tar
- Cliente
- En terminologia Bacula, la palabra Cliente se refiere a la maquina que va a ser salvada y es sinonimo de «File services» o File daemon», y a menudo nos fererimos a ella como FD
- Console
- Programa que se relaciona con el Director y permite al administrador del sistema controlar Bacula
- Daemon (Demonio)
- Realmente es terminologia UNIX y se refiere a un programa que esta corriendo background continuamente. En algunos sistemas Unix y en Windows se les denomina Servicios
- Directiva
- El termino directiva se usa para referirse a un registro que establece caracteristicas determinadas para un recurso. Por ejemplo la Directiva Name define el nombre del recurso
- Director
- El demonio principal del servidor Bacula que controla y dirige todas las operaciones de este sistema. Ocasionalmente, nos dirigiremos al Director como DIR
- Diferencial
- Copia que incluye unicamente los ficheros cambiados desde la ultima orden de backup
- File Attributes (Atributos de fichero)
- Toda la informacion necesaria para identificar al fichero, como nombre, fecha creacion, tamaño, fecha modificacion, permisos,.. Los atributos son gestionados por Bacula y el usuario no ha de preocuparse en absoluto por ellos.
- FileSet (Definicion de ficheros)
- Es un recurso contenido en el fichero de configuracion que establece todos los ficheros a salvar, los que se han de excluir, y como se han de almacenar.
- Incremental
- Sistema de backup que añade todos los ficheros que se han modificado desde la ultima operacion de backup
- Job(Trabajo)
- Es una combinacion de recursos que establece el trabajo que Bacula debe hacer en un backup o restore de un cliente concreto. Se establece Tipo (backup, restore, verify…), Nivel (full, incremental…), FileSet y Storage
- Monitor
- Programa que permite al usuario o al administrador comprobar el estado de avance del trabajo.
- Resource(Recurso)
- El recurso se establece como conjunto de directivas que definin una unidad de informacion para el sistema Bacula. Por ejempo el recurso Job establece las propiedades de un trabajo determinado por medio de las directivas Name, schedule, Volume pool,…
- Restore
- Es una recursos(configuracion)que describe las operaciones necesarias para recuperar un fichero desde su backup. Se trata de la situacion inversa a Save
- Schedule
- Es un recurso (configuracion) que establece cuando va a realizar los trabajos Bacula
- Service
- Es un programa que esta funcionando continuamente en memoria esperando instrucciones. En Unix se les conoce tambien como daemons o demonios
- Storage Coordinates
- Es la informacion devuelta por el Storage service que facilita unicamente la situacion del fichero en el medio de copia, Consiste en dos partes: una parte que pertenece a cada uno de los ficheros salvados, y otra perteneciente al Job con el que se salvo.
- Storage Daemon
- Nos referiremos a el tambien como SD y es el programa que escribe la informacion en los volumenes de seguridad (normalmente cintas o discos)
- Sesion
- Normalmente se refiere al conjunto de dialogos establecidos entre el FIle Daemon y el Storage Daemon
- Verify
- Es un trabajo que compara los atributos actuales de un fichero con los existentes en el catalogo de Bacula
- Archive
- La operacion Archive se realiza despues de Save y consiste en desmontar los volumenes en donde se han salvado la informacion. Estos volumens son marcados como «Archived» y no pueden ser usados para salvar mas ficheros. Todos los ficheros contenidos en un volimen Archived son borrados del catalogo.
- Retention Period
- Existen varios tipos de «periodos deretencion» queBacula gestiona. Los mas importantes son: FileRetentionPeriod, JobRetentionPeriod yVolumeRetention Period. Cada uno de estos periodos deretencion especifican el tiempo que los registrospermaneceran en el Catalogo. Todo esto no se debe confundir con los tiempos que son validos los datos salvados.El «Periodo de retencion de fichero» es el tiempo que permanece en la base de datos la informacion acerca de un fichero. Este periodo es importante
por dos razones; la primera de ella es que mientras el registro exista podra explorar la base de datos con los programas de consola, y restaurar individualmente el fichero. Una vez desaparezca, ya no podra explorar el trabajo en la base de datos. La segunda razon para ajustar correctamente este valor, es la ocupacion de la base de datos, y la necesidad de limpieza para controlar su tamañoEl «Periodo de retencion del trabajo» es el tiempo en el que el trabajo permanecera en la base de datos, Puede pasar que los detalles (ficheros) desaparezcan antes, aunque lo habitual es que se borren cuando se borra el Job
El Periodo de retencion del volumen» establece el tiempo minimo antes de que el volumen se pueda reutilizar para otro Backup. Bacula no va a reescribir nunca un volumen que contenga un backup anterior. Lo ideal seria que el catalogo contuviera todas las entradas de todos los volumenes y es solamente las necesidades de espacio y operatividad que nos van a obligar a establecer periodeos de retencion, para asi permitir a Bacula que vaya borrando la informacion.
- Scan
- La operacion scan permite explorar un conjunto de volumenes que contengan backups. Todos aquellos volumenes que fueron grabados por el sistema Bacula, se leen y se obtiene los datos de los ficheros que sin dejados nuevamente en la base de datos, para que puedan ser restaurados manualmente. Esta operacion sera necesaria hacerla ciuando haya vencido el periodo de retencion de un trabajo y todavia tengamos la copia.
- Volumen
- Es una unidad de archivo, normalmente una cinta o un disco o particion donde Bacula almacena los datos de uno o mas backups. Todos los volumenes son identificados por el sistema para evitar que se monten de forma erronea
Iniciando la instalacion
El primer paso sera instalar el soft, y para ello acudimos a aptitude
apt-get install bacula-common bacula-client bacula-console bacula-director-common bacula-director-mysql bacula-fd bacula-sd bacula-sd-mysql bacula-server
Esta parte no deberia ofrecer problemas.
Recordad tambien que necesitamos un motor de Base de datos; en mi caso he instalado previamente mysql.
con todo ello hemos conseguido que en el directorio /etc aparezca la carpeta bacula; y en ella los ficheros de configuracion
Como voy a realizar copias en una unidad USB, lo primero de todo voy a preparar el montaje; para ello creo el directorio /dev/usb que sera donde montare la unidad
mkdir /mnt/usb
ahora veamos donde esta nuestro disco con el comando lsusb y tras comprobar que nuestra unidad aparece, podemos averiguar en donde se ha conectado con
grep SCSI /var/log/syslog
en mi caso, veo aparecer una linea con
gestionproyectos kernel: [2764273.080845] sd 1:0:0:0: [sdb] Attached SCSI disk
Otra alternativa es ver las ultimas entradas de dmesg despees de conectar el usb
Nota: si necesito formatear el disco, lo haré con mkfs.formato /dev/sdb1
ya, en cualquier caso supongo que sera sdb1, y como prefiero que arranque montado, recordad que es para las copias de seguridad, osea que no sera muy portable, le añado a fstab una line
/etc/fstab
/dev/sdb1 /mnt/usb vfat auto,user 0 0
Enlaces
http://bacula.org/5.0.x-manuals/en/main/main/What_is_Bacula.html#SECTION00220000000000000000