Introducción
A raíz de un hilo de spyro512, he pensado que es oportuno enseñar la importancia de los backups. Es por ello por lo que me he decidido a crear este hilo a modo de guía para poner salvo nuestros datos y, en caso de que sea necesario, proceder a restaurarlos.
Ojo, no soy ningún experto pero veo interesante compartir lo que conozco con la comunidad.
Raid no es backup
Un raid solamente te va a mitigar la perdida en caso de que falle alguno de los discos, pero, ¿Qué pasaría si todos los discos fallaran de golpe? Nos quedaríamos sin nuestros datos. Por lo tanto, debemos disponer siempre de copias de seguridad de nuestros datos.
Principio Básico
Nos vamos a basar en la archiconocida regla del 3-2-1.
Para ello, vamos a disponer de 3 copias de nuestra información (incluyendo la original), en dos medios diferentes y una de ellas en un punto geográfico diferente al nuestro.
No es necesario seguir al pie de la letra esta regla pero sí que deberíamos disponer de al menos dos copias de seguridad de nuestros datos almacenando una de ellas en la nube.
Cómo empezar
Para empezar, deberíamos elegir dónde vamos a guardar la copia remota. En esta guía vamos a utilizar Backblaze B2 puesto que ofrece un precio muy competitivo y son transparentes a la hora de mostrar los fallos de sus discos.
Podemos elegir el servicio cloud que queramos para realizar el backup, tan solo hemos de asegurarnos que el software que utilicemos sea compatible.
Qué software utilizar
Al igual que servicios cloud, existen infinidad de programas destinados a realizar copias de seguridad, algunos de pago y otros gratuitos. Debéis de pensar que a la hora de elegir el software debéis fiaros, sobre todo, en la fiabilidad del mismo. No solamente a la hora de realizar la copia sino, también, a la hora de restaurar los archivos.
Si disponemos de un NAS con software propietario como puede ser Synology o Qnap, podemos utilizar el software que ofrecen para realizar el backup o la solución aquí detallada. De nuevo, debemos usar un software con el que nos sintamos cómodos y sepamos utilizar.
Yo, tras haber probado HyperBackup y duplicati, me quedo con Restic. Es un programa opensource y que tiene muy buena reputación en la comunidad. Es algo complicado de utilizar debido a que es necesario de utilizar una consola de comandos, pero una vez configurado funciona de lujo.
Podemos instalar restic de diferentes maneras según el entorno en el que nos encontremos, en mi caso linux.
Para ello iremos a la página oficial de restic y descargaremos la última versión que sea óptima para nuestro sistema.
Configuración de Backblaze
En primer lugar haremos una cuenta en Backblaze.
Después, en el panel tendremos que crear un Bucket. Esto es el espacio donde vamos a almacenar nuestros datos.
Lo crearemos privado para que no pueda ser accesible, deshabilitaremos el cifrado y el object lock. Del cifrado se encargará el propio Restic.
Una vez creado, le daremos a Configuración del ciclo de vida y pondremos Guardar solo la última versión del archivo.
Posteriormente, iremos a Application Keys y crearemos una nueva key para el bucket que hemos creado. Deberemos permitir el acceso únicamente al bucket en cuestión y damos a guardar.
Una vez se haya creado aparecerá la key id y la applicationKey, hay que apuntar estos datos pues no se pueden volver a consultar.
Ya hemos terminado con Backblaze. Ahora toca seguir con la configuración de Restic.
Configuración de Restic
En primer lugar, deberemos conectarnos via SSH a nuestra máquina. Si no sabéis cómo hacerlo, por lo general es nombre_usuario:IP. No obstante, tenéis una muy buena guía para configurar las keys hecha por @hda
Después descargaremos el binario correspondiente a nuestro OS desde la web oficial de Restic.
wget <url>
7z x <file>
Una vez tengamos el binario, crearemos dos ficheros en /etc.
nano /etc/restic-env
Dentro del fichero copiaremos lo siguiente:
export AWS_ACCESS_KEY_ID=<B2_KEY_ID>
export AWS_SECRET_ACCESS_KEY=<B2_ApplicationKey>
export RESTIC_REPOSITORY=<url_bucket/bucket_name>
export RESTIC_PASSWORD_FILE=/etc/restic-password
Guardamos y creamos el siguiente archivo:
nano /etc/restic-password
Dentro escribiremos la contraseña para nuestro backup. Ojo, si perdemos esta contraseña perderemos el acceso a nuestros archivos. Os recomiendo generar una contraseña con un gestor de contraseñas como Bitwarden. Aquí podéis leer más.
Acto seguido damos permisos para que los archivos puedan ser leídos por el user que corra el servicio de restic.
chown root:root /etc/restic-env
chown root:root /etc/restic-password
chmod 700 /etc/restic-env
chmod 700 /etc/restic-password
Después actualizamos para poder activar los cambios
source /etc/restic-env
Finalmente inicialicemos el repositorio.
source /etc/restic-env
restic -r s3:<url_bucket/bucket_name> init
Backup
Restic nos permite hacer backups indicando los paths de los que queremos hacer backups o leyendo los mismos de un archivo.
Yo recomiendo esto último y así podemos automatizar el backup de una forma más sencilla.
<path_restic> -r s3:<url_bucket/bucket_name> backup --verbose --files-from <path_to>/include.txt
El archivo include.txt puede incluir archivos o la ruta absoluta a los directorios.
Cuando corramos el comando saldrá información del backup.
Lo mismo cuando acabe el backup nos dirá los posibles fallos y/o warnings, junto con los cambios realizados.
Fuentes
En construcción...
En los próximos días ampliaré para la restauración y más temas derivados de restic