Una historia sobre backups, “¡por allí resopla!”. Parte 1

By on
Por ahí resopla

En 1956 John Huston dirige Moby Dick, una adaptación de la novela homónima escrita por Herman Melville en 1851, con el mítico Gregory Peck en el papel del capitán Ahab.

Ahab, un desfigurado marino de semblante aterrador y mueca perdida, emprende una búsqueda obsesiva del gran cachalote blanco.

Durante la misma pierde una pierna lo que convierte su caza en una odisea de odio y venganza que sólo puede acabar con la muerte a arponazos del mítico animal.

“Thar she blows!” o “¡Por allí resopla!” es el grito del vigía que alerta a la tripulación del ballenero Pequod y coloca a Ahab en un estado de locura ante el posible avistamiento del gran monstruo marino.

Basada en la experiencia de Melville como marinero, la novela se inspira en hechos reales. Un barco ballenero, el Essex, fue atacado y hundido por un cachalote albino en 1820 y sus tripulantes vagaron hasta ser rescatados en la isla Henderson, en el pacífico sur.

El simbolismo del gran monstruo blanco que inflinge daño y aterroriza a cualquiera que se cruza en su camino con intención de cazarlo se perpetúa hasta nuestros días.

Lejos de monstruosos animales marinos e historias míticas sobre su captura hoy en día en cualquier departamento tecnológico de cualquier empresa podréis oír historias que igualan o superan el terror que sentían Ahab y su tripulación cuando oían resoplar a su gran ballena blanca.

La ballena blanca de nuestros días se llama pérdida de datos y está sumergida y al acecho en cada uno de nuestros servidores, de nuestros equipos de trabajo y centros de datos.

Entre mis cometidos como administrador de sistemas en Grupo Trevenque está cazar la gran ballena blanca o al menos mantenerla lejos de nuestros dominios.

Para ello, os iré presentando un conjunto de herramientas de backup que harán de afilados arpones ante la temida pérdida de datos y os ayudarán a disfrutar la historia del ballenero y su capitán desde el relajado punto de vista de quien disfruta una obra maestra de la literatura o una genial película.

¿Preparados? Levemos anclas y comencemos la travesía hacia aguas más tranquilas.

Restic, sublimando el concepto del repositorio.

Restic es una herramienta de backup desarrollada por Alexander Neumaan que tiene como base de su diseño la siguiente filosofía:

  • Facilidad de uso: Las copias de seguridad tienen que ser fáciles de hacer sino caemos en la posibilidad de obviar su realización.
  • Rapidez: Nadie hace copias si tardan demasiado, debe ser también rápido de recuperar.
  • Veracidad: Las copias han de ser confiables, la máxima de una copia de seguridad es que vale para algo cuando se restaura y es fiel al contenido copiado.
  • Segura: Si lo que copiamos no lo hacemos con seguridad probablemente estemos incrementando los problemas de nuestra información.
  • Eficiencia: Un sistema de copias ha de ser eficiente para saber cuando almacena la misma información varias veces y no desperdiciar espacio innecesariamente.
  • Gratuito: Restic es una herramienta de licenciada bajo la cláusula BSD 2-CLause License.

¿ Y qué tiene que ver aquí el concepto repositorio ? me preguntaréis.

Restic trata cada trabajo de copia como un repositorio, debemos inicializarlo y realizar un backup sobre él y esto nos permitira operarlo mediante la utilidad de consola restic para hacer de forma fácil, rápida, veraz, segura y eficiente nuestras copias de seguridad.

Como repositorio o destino final de nuestra copia podemos utilizar múltiples tipos, como por ejemplo: un directorio local, un servicio SFTP, una cuenta en Amazon S3 o Google Cloud. Estoy seguro que lo veremos mejor con un ejemplo:

Supongamos que ya tenemos restic instalado en nuestro sistema:

Con ésto ya hemos agregado como destino de nuestras copias el directorio ~/backup de nuestro home, ahora vamos a realizar una primera copia.

Como habéis visto hemos guardado el contenido de ~/trabajo en nuestro repositorio con la herramienta restic y nuestra clave del repositorio, también nos ha dado una información extra al respecto del trabajo: tiempo de copia, ficheros, directorios y tamaño total. También tenemos un id a8cd83ad que nos permite saber en qué estado está nuestro repositorio.

Y si modificamos o agregamos algún fichero al directorio ~/trabajo, ¿volverá a hacer el mismo proceso? Veámoslo.

Et voilá, hemos cambiado un fichero, ha copiado sólo un fichero, ¡magia!, como podéis ver hemos obtenido un id distinto del repositorio y podríamos verificar qué ha pasado entre los dos trabajos de copia de la siguiente forma:

Ahí está, en la segunda copia que hemos hecho se ha añadido el fichero “modificado.md” que hemos copiado en el directorio ~/trabajo/. ¿Y si lo borramos? ¿Qué podría pasar? ¿ Resoplaría la Ballena Blanca ?

Veamos que no:

Hemos recuperado nuestra copia en el directorio ~/recuperado y tenemos todo el repositorio disponible. Si quisiésemos ver que guarda nuestro repositorio podríamos hacer lo siguiente:

Como podemos ver, tenemos dos snapshots del host local y el directorio que se ha copiado, la hora y su id. Podremos operar estos snapshots borrándolos, purgándolos o comprobando su integridad para cerciorarnos que no se ha producido ninguna alteración en la copia.

También podemos hacer que los snapshots se auto purgen y borren siguiendo patrones temporales. Por ejemplo, podemos necesitar que nuestra copia se mantenga durante un número de días específico. También podríamos querer que sólo se guardasen un número específico de snapshots o los últimos n-snapshots.

Un dato que se nos había quedado olvidado en el tintero y que parece trivial es que todas nuestras copias están cifradas con una clave que debemos introducir cuando trabajamos con el repositorio, esto es:

Estas y otras operaciones, así como el uso de distintos destinos como repositorio están documentados en la página de la herramienta, así que no os será difícil indagar y mejorar el uso de la misma y adecuarla a vuestras necesidades. Por ejemplo, ejecutándola automáticamente mediante scripts.

¿ Habéis notado eso? No, no es la cola de una ballena blanca que lanza espuma de mar sobre vuestros valiosos datos, es la fresca sensación de tenerlos a buen recaudo gracias a nuestra querida herramienta Restic.

En la próxima entrega de esta serie de posts sobre herramientas de backup, hablaremos de Bacula. Una de las cosas que más me intrigó cuando la conocí fue el curioso logotipo de su página web y el lema que había en ella:

“It comes in the night and sucks the essence from your computers.”