Una historia sobre backups, “he cruzado océanos de tiempo para encontrarte”. Parte 2

By on

Todos tenemos una herramienta o programa ‘fetiche’, que hemos estado utilizando día tras día en nuestro trabajo desde tiempos inmemoriales.

Quién no recuerda con cierta nostalgia el famoso Comandante Norton, las utilidades de compresión en línea de comandos arj o esas versiones de la herramienta Ghost para hacer copias de nuestros discos duros y mantener nuestra información a buen recaudo en caso de catástrofe, que tantas veces nos salvaron el día.

Quizás, a día de hoy, estas utilidades no sean de uso común pero siempre encontramos una nueva herramienta, un nuevo cli o una nueva app que guarda parte de su esencia.

Antes de que me tildéis de abuelo cebolleta y de irme con las cabras al monte (y con razón) os explicaré que una de esas herramientas que han sido imprescindibles para mi día a día, se llama Bacula, un sistema centralizado de backup multiplataforma desarrollado por Kern Sibbald; y de la que os hablaré a continuación.

Los componentes de Bacula

Bacula está formado por cuatro componentes principales:

  • Director Daemon
  • Storage Daemon
  • File Daemon
  • Catalog

El Director Daemon se encarga de gestionar al resto de componentes y de planificar, ejecutar y almacenar las copias de seguridad según la agenda de copia que nosotros le hayamos configurado. El cliente de copia llamado File Daemon provee de los datos de la copia al Storage Daemon que guarda y deja un registro en el Catalog para su posterior uso, recuperación, reciclado, etc.

El componente Catalog puede ser un SGDB al uso, tal como: MySQL o PostgreSQL. Normalmente suelo recomendar esta última por su capacidad y facilidad de mantenimiento.

La configuración se realiza mediante ficheros donde se definen cada uno de los componentes, sus puertos de escucha, sus distintas opciones y los comportamientos, que nosotros queramos definir a la hora de configurar un sistema de copia: frecuencia, origen, destino, tipo de backup, compresión, cifrado, etc.

Aunque la curva de aprendizaje que requiere la configuración de un sistema de backup como Bacula es algo alta, comparada con la utilidad restic de nuestro anterior post, su capacidad de personalización y su funcionamiento, verdaderamente rock solid, son sus puntos fuertes.

Bacula nos permite guardar datos de sistemas, tan distintos como: Solaris, IRIX, todos los sabores de Unix BSD y, por supuesto, Linux y Microsoft Windows. Para este último, la empresa Bacula Systems (la empresa detrás del proyecto Bacula) provee unos binarios para el File Daemon que nos permitirán copiar nuestras máquinas de trabajo sin ningún tipo de problema. El almacenamiento lo podemos realizar sobre unidades de cinta, discos duros o incluso, mediante plugins, sobre almacenamiento Amazon S3.

Con respecto a medias de seguridad irrenunciables, hoy en día, a la hora de implantar un sistema de backup, Bacula incluye soporte TLS para la comunicación entre sus componentes, así como  los distintos File Daemon, o clientes de copia que configures dentro del sistema. El cifrado de los datos se puede configurar mediante algoritmos como AES128/192/256 y el hash de los datos se realiza mediante SHA1/SHA256.

Una de las características más interesantes añadidas a este proyecto es la deduplicación de los datos o, como se llama en Bacula, deduplicación en volúmenes alineados. Esta característica permite un ahorro considerable de espacio a la hora de almacenar grandes cantidades de información.

Por último, y quizás una parte de las más importantes del proyecto, es su extensa y detallada documentación, así como una comunidad activa y dummy-friendly (algo que se agradece enormemente si os tenéis que enfrentar al despliegue de un proyecto de backup con Bacula y es la primera vez que oís hablar del proyecto).

Bacula en funcionamiento

La interfaz por defecto para gestionar un sistema Bacula es el cli bconsole con el que podremos operar el sistema desde la más básica funcionalidad hasta la más compleja de las restauraciones. Aunque existen otras interfaces de tipo web que funcionan y vienen incluidas en el proyecto, la utilidad bconsole es la herramienta ideal por su simplicidad y su facilidad de uso.

Algunos ejemplos de la interfaz de administración:

Estos son sólo algunos de los comandos que podemos ejecutar en la consola bconsole.

La longitud del post y la cierta complejidad de la herramienta en sí, me impide hacer una descripción completa del proceso de instalación, configuración y puesta en marcha de un sistema Bacula pero al final disponéis de enlaces que os llevará a otras presentaciones. Espero que os sean de ayuda a la hora de adentraros en su uso.

“He cruzado océanos de tiempo para encontrarte”, es la frase que el Conde Drácula pronuncia en la escena de la película “Drácula, de Bram Stoker” que dirigió Francis Ford Coppola donde Gary Oldman, con una prominente perilla, rapta a Mina (Winona Ryder) con la intención de morderla en el cuello y hacerla inmortal.

Si habéis sentido también el mordisco de la curiosidad, el mismo que sentí yo cuando buscaba una herramienta fiable y sólida para hacer backups de mi información, podéis sentir la satisfacción de la inmortalidad, no la vuestra, sino la de vuestros datos siempre a salvo gracias a Bacula.

Más información

White Papers de Bacula

Manuales de uso

Presentación sobre Bacula en la Oficina de Software Libre de Granada