Cuando se trata de mantenimiento de servidores, sobretodo si es algo que tienes en producción y no son para desarrollo, es muy importante que sepas cómo mantener copias de seguridad sincronizadas en un almacenamiento remoto.
En este caso, PROXMOX que es el sistema de virtualización que suelo utilizar, lleva un sistema automatización de backups. Aun así, y siendo que se pueden conectar unidades remotas, estas no tienen por qué estar siempre disponibles, o puede que sea un nas que tienes en tu red local y solo se enciende para recibir las copias.
Cómo copiar automáticamente backups de PROXMOX a tu red local desde cualquier Linux
Con cualquiera me refiero también a que puedes instalar WSL en Windows, y hacerlo con este directamente. Vamos a usar la técnica de sincronización con rsync, así que es perfectamente posible hacerlo con cualquier versión, incluso raspberry pi.
Si te has leído el tuto de cómo montar un nas con tu raspberry pi, o ya tienes uno seguramente te hagas una idea de la intención y el por qué hacerlo así. Sino, básicamente abaratar costes y alargar la vida de las unidades apagándolas todo el tiempo que no hacen falta.
Si tienes cualquier consulta puedes dejar un comentario y te lo contesto encantado.
Cómo automatizar backups en PROXMOX
Bueno, lo primero será tener los backups hechos para luego desde el sistema remoto poder descargarlos. En este caso PROXMOX ofrece una configuración para poder mantener varios backups, y también para limitar su número aunque no es muy intuitivo.
Pongamos por ejemplo que quieres tener un backup diario de los últimos 7 días.
Vete al panel de PROXMOX y haz click en el lado izquierdo en Datacenter.
En la pestaña que pone Storage verás que aparecen todas las unidades de almacenamiento que tengas configuradas. Una de ellas al menos tiene que estar configurada para recibir backups, pero puedes tenerla para varias cosas. En este caso yo tengo el hdd3tb. Haz doble click sobre él y verás que sale su configuración.
Ahí donde pone Max Backups, será el número máximo de backups que se guardarán por cada vm, sí, para todas será la misma cantidad de backups, y cuando de alcance el límite irá borrando los viejos y dejando los más nuevos.
Si quieres tener diferente cantidad de backups para cada máquina, según la documentación y los creadores en los foros, debes usar el mismo almacenamiento para crear varios storages con diferentes max backups.
Una vez pongas 7 (recuerda queremos una semana de backups), dale a OK.
Ahora dale a la pestaña Backup. Si no tienes ninguno configurado la lista estará en blanco. Dale a Add o añadir y verás todas las máquinas que tienes y la configuración para los backups.
No voy a entrar en detalle de lo que hace cada cosa, puedes preguntarme en los comentarios. Como queremos todos los días de la semana, abre el desplegable, y con la tecla control pulsada selecciónalos todos.
En el Start Time selecciona la hora a la que quieras que se hagan las copias, y ten en cuenta que si suspendes las máquinas tiene que ser a una hora en la que no se estén usando, si haces snapshots no deberías tener problema, pero siempre es mejor el horario con menos tráfico de usuarios.
Por último tienes que seleccionar las máquinas que quieras hacer copia. Te recomiendo que no pongas todas a la misma hora para tener cierto control sobre cuando se hacen las copias, ya que tendrás que revisar el tiempo que tardan para hacer el volcado después.
El tiempo que tardan lo puedes ver en la lista del Cluster log abajo. Una vez terminan los backups que irán saliendo, haz doble click y te pondrá a qué hora han empezado y terminado.
Cómo sincronizar los backups de PROXMOX a tu equipo o nas local
Ahora el segundo paso será configurar tu pc o nas (o rasbperry) para que reciba las copias. Te recomiendo que uses cualquier Linux o WSL, aunque lo puedes hacer con cualquier programa que soporte hacer copias de servidores remotos.
Para esto vas a necesitar dos cosas, lo primero tener una carpeta donde vayan a ir cayendo las copias, y lo segundo rsync instalado.
mkdir /ruta/backups sudo apt update && sudo apt install rsync
Una vez los tengas (cambia la ruta por la tuya), solo nos queda la conexión con el servidor, que lo mejor es tener mediante claves privadas y públicas para evitar andar con contraseñas.
Si lo tienes que copiar accediendo al equipo remoto con una contraseña pásate por este artículo: Cómo sincronizar archivos remotos con rsync por ssh con usuario y contraseña.
En este otro tuto te enseño cómo crear y utilizar llaves públicas en linux.
En este caso voy a dar por sentado que tienes llave pública y privada y no tienes que poner contraseña, tal y como muestro en el último enlace.
Para sincronizar los archivos de backups de PROXMOX a tu máquina local, necesitas el siguiente comando:
rsync -avt -P [email protected]:/var/lib/vz/dump/* /ruta/backup/
Hay varias cosas en las que te tienes que fijar:
- usuario será el nombre de usuario para el que has configurado la clave pública y tenga permisos para acceder a la carpeta de copias de proxmox, normalmente root.
- 192.168.0.100 tienes que cambiarlo por la ip de tu servidor
- /var/lib/vz/dump/* es la carpeta donde proxmox deja los backups, esta es la predeterminada pero depende de cómo hayas configurado tu almacenamiento.
- /ruta/backup/ fíjate que hay / al final, para que no cree una subcarpeta, y tiene que ser la ruta donde vas a guardar tus copias en local
Este comando lo deberás ejecutar una vez los backups se hayan terminado de hacer, y puedes ejecutarlo todas las veces que quieras al día, ya que es incremental, pero intenta no hacerlo cuando la copia esté a mitad porque sería transferencia de datos para nada ya que copiaria los temporales.
Para esto puedes ponerlo en el archivo cron, añade una línea en él:
root crontab -e 1 12 * * * rsync -avt -P [email protected]:/var/lib/vz/dump/* /ruta/backup/
Esto sincronizaría los archivos remotos cada día a las 12. Tienes una guía completa de crontab y tareas cron aquí.
Como estamos ejecutando rsync como incremental, solo se copiarán los archivos nuevos que se vayan generando en la carpeta remota, por lo que no habrá transferencias innecesarias a no ser que los hayas borrado en local.
Si quieres montar un sistema de copias diarias, semanales y mensuales para guardar copias a la larga y poder volver atrás en el tiempo sin ocupar mucho almacenamiento, y te gusta node y javascript, aquí te dejo mi repositorio de git con un sistema para hacer copias de larga duración:
GitHub Node Long Term Backup: https://github.com/vichaunter/node-long-term-backup
Si tienes alguna duda o necesitas que te eche un cable solo tienes que dejar un comentario.
¿Estás montando tu propio sistema de backups? ¿Usas proxmox u otro para virtualizar? Comenta y comparte