Servidor Nas: Creando un backup en la nube: backblaze
Siguiendo con la serie de artículos sobre el servidor, en esta entrega veremos cómo realizar backup de los datos que tenemos en el servidor a un precio relativente razonable con backblaze.
Tras la experiencia con el servidor Nas casero y su “fallo al arrancar” de la anterior entrega, nos vemos enfocados en la búsqueda de un servicio de backup fiable que nos permita recuperar la información del servidor en caso de desastre. Para ello tras mucho investigar nos hemos quedado con el servicio Backblaze.
Este servicio en la nube permite crea un Bucket, bonita palabra que tienen los yankies para referirse a un directorio donde alojar los ficheros de respaldo.
El servicio en cuestión de llama B2 Cloud Storage y permite acceder desde múltipels fuentes a los datos a un coste adecuado, rondando los 60 dólares al año, estos servicios han bajado mucho de precio con el tiempo.
Tabla de precios: https://www.backblaze.com/b2/cloud-storage-pricing.html
Lo primero que deberás hacer efectivamente será darte de alta en la plataforma con el típico formulario de Sign up.
Una vez que accedas a tu cuenta, ya podrás gestionar todo lo relacionado.
Bucket
Para poder almaenar los ficheros deberemos disponer de un Bucket. Para crearlo vete a la parte de B2 Cloud Storage/Buckets y pulsarás en el botón Create Bucket.
Rellenas el nombre del bucket y lo marcas como privado y pulsas el botón de Create a Bucket y ya tendrás el bucket creado.
APP KEY
Pero para poder acceder con cualquier aplicacación que realice en backup será necesario disponer de un ap pkey que nos autentique en el servicio para gestionar estos accesos.
Para ello iremos dentro de B2 Cloud Storage a App Keys
Después pusaremos en el botón de Generate New Master Application Key para generar esta APP Key
Esta clave sólo se presentará una única vez así que guárdala en un sitio claro y que tengas acceso en cualquier momento. por ejemplo Bitwarden. Guarda también el KEY ID porque te pedirá los dos datos más adelante cuando vayas a conectar en el servicio.
Nota: esta app key está invalidada por si te lo estás preguntando 😉
El límite de la cuenta gratuita es de 10G, si quieres superar ese límite deberás empezar a pagar, por lo que tendrás que meter una tarjeta de crédito.
Si vives en España es posible que te pidan un trámite extra al introducir el NIF/CIF, lo llaman “Business Tax ID / VAT ID / GST ID”, si te falla al meterlo deberás de darte de lata en el Registro de Operadores Intracomunitarios (VIAS), para esto hemos tenido que contactar con el gestor que nos lleva las cuentas para que hiciera el alta, nos pidió un presupuesto o factura a solicitar, para ello le enviamos una captura de la página de backblaze con la solicitud del número y luego una captura de lo que cobra backblaze. Este trámite os tardó una semana, pero ya pudimos meter el número de tarjeta y dar de lata el servicio. Alguna pega tendría que tener este servicio.
Instalación de B2: la herramienta de gestión
Para instalarlo deberemos disponer de las dependencias:
$ sudo apt install python3-pip
$ sudo pip3 install setuptools
$ pip3 install --upgrade b2
Con la herramienta ya instalada ya podemos autenticarnos con el servicio mediante el comando, nos pedirá al APP key:
root@mordor:~# b2 authorize_account TUAPPID
Using https://api.backblazeb2.com
Backblaze application key:
Si todo ha ido bien ya podremos listar los buckets:
root@mordor:~# b2 list_buckets
5d76179049d6afb5704f081a allPrivate backup-mordor
Crear un bucket privado
b2 create_bucket bucket2 allPrivate
Subir ficheros
Para subir lo ficheros usaremos el comando upload file:
b2 upload_file bucket2 turtle.jpg animals/turtle.jpg
sintaxis:
b2 upload_file bucket2 origen destino
Veamos un ejemplo:
root@mordor:~# b2 upload_file bucket4 dinaip-linux-shell-master.zip dinaip-linux-shell-master.zip
dinaip-linux-shell-master.zip: 100%|████████████████████████████████████████████████████████████████████████| 39.3k/39.3k [00:02<00:00, 19.4kB/s]
URL by file name: https://f002.backblazeb2.com/file/bucket4/dinaip-linux-shell-master.zip
URL by fileId: https://f002.backblazeb2.com/b2api/v2/b2_download_file_by_id?fileId=4_z4da6173059e6afb5704f081a_f10210870fd43ce14_d20200920_m115618_c002_v0001142_t0057
{
"action": "upload",
"contentMd5": "fca362284dbef08810edf55935752dc8",
"contentSha1": "92add8f46a8f5f137e8d73ec34d4bc0e92034fe1",
"contentType": "application/zip",
"fileId": "4_z4da6173059e6afb5704f081a_f10210870fd43ce14_d20200920_m115618_c002_v0001142_t0057",
"fileInfo": {
"src_last_modified_millis": "1575638872832"
},
"fileName": "dinaip-linux-shell-master.zip",
"size": 39280,
"uploadTimestamp": 1600602978000
}
listar directorio
Para esto usaremos el comando ls:
b2 ls bucket2 animals
Veamos un ejemplo:
root@mordor:~# b2 ls --long bucket4
4_z4da6173059e6afb5704f081a_f10210870fd43ce14_d20200920_m115618_c002_v0001142_t0057 upload 2020-09-20 11:56:18 39280 dinaip-linux-shell-
master.zip
Haciendo backup con restic
Primero deberemos instalar restic de la manera habitual en debian/ubuntu:
sudo apt install restic
mete las credenciales en variables de entorno en el .profile o .bashrc
export B2_ACCOUNT_ID="xxxxxxxx"
export B2_ACCOUNT_KEY="xxxxxxxx"
export RESTIC_REPOSITORY="b2:backup-mordor"
export RESTIC_PASSWORD_FILE="restic-pw.txt"
para activarlas en tu sesión de shell actual ejecuta:
source .bashrc
En el fichero restic-pw.txt mete una contraseña para el bucket b2
micontraseña_chunga
crea el repositorio en el bucket:
root@mordor:~# restic -r b2:backup-mordor init
created restic repository a253f77338 at b2:backup-mordor
Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.
Esto permite crear snapshots para nuestros backups:
root@mordor:~# restic -r b2:backup-mordor snapshots
repository a253f773 opened successfully, password is correct
created new cache in /root/.cache/restic
ID Time Host Tags Paths
---------------------------------------
---------------------------------------
0 snapshots
Realiza el Backup en el bucket
restic -r b2:backup-mordor backup DIR_LOCAL
ahora ármate de paciencia porque va a tardar dependiendo de la conexión a internet y la velocidad de tus discos.
Si ves que va muy lento siempre le puedes subir el número de conexiones con:
-o b2.connections=10
Snapshots después de la subida inicial
root@mordor:~# restic -r b2:backup-mordor snapshots
repository a253f773 opened successfully, password is correct
ID Time Host Tags Paths
----------------------------------------------------------------------------------------------------------------------
12b17308 2020-09-20 14:24:04 mordor /DataPool/docker/nextcloud/volumes/nextcloud/data/pepesan/files
----------------------------------------------------------------------------------------------------------------------
1 snapshots
Restauración
restic -r b2:my-restic-backup restore id_del_snapshot -t DIR_LOCAL
Referencias:
- https://low-orbit.net/backblaze-linux
- https://help.backblaze.com/hc/en-us/articles/115001518354-How-to-configure-Backblaze-B2-with-Duplicity-on-Linux
Comments
Leave a Reply
Gran tutorial, me sirvió mucho para configurar los respaldos remotos de las bases de datos de la empresa.
Desde que escuché la mención en RW me llamó la atención, principalmente por el costo. El cambio que hice con respecto al tutorial es que utilizo RClone en lugar de restic, ya que me resultaba más sencillo en Windows (disculpa por mencionarlo jeje)
Sigue adelante, haces un gran trabajo de divulgación.
Muchas gracias Carlos. Ya sabes que la prioridad es el software libre, pero me alegra saber que te ha ayudado 🙂