Contexto General

El sistema de copias de seguridad está basado en Bacula utilizando el contenedor bacularis/bacularis-standalone desplegado mediante Docker Compose. El contenedor del Director y Storage Daemon se ejecuta en una computadora local con dos discos configurados en RAID, conectada por red Ethernet.

Todos los servicios de la infraestructura se encuentran conectados mediante una VPN a un servidor VPS en la nube, que actúa tanto como cliente de Bacula como punto de acceso remoto. El VPS también ejecuta servicios críticos (por ejemplo, OpenProject, Reverse Proxy y Zabbix VPS).

Infraestructura de Backup

Componente Descripción
Servidor Bacula Equipo físico local con RAID. Corre el contenedor bacularis/bacularis-standalone y contiene el Director, Storage Daemon y Console.
Almacenamiento local RAID montado en el host y exportado al contenedor Bacula. Se usa para guardar los volúmenes de backup.
Conexión VPN Red privada que enlaza el VPS con el servidor Bacula y los clientes Proxmox locales.
Clientes Bacula
  • Proxmox local (LXC y VMs)
  • VPS (servicios Docker)
  • Servidor OpenVPN baremetal

Cada cliente tiene su propio File Daemon y realiza backups hacia el Bacula Director local.

Backups de configuración Copia diaria del directorio /etc/bacula hacia una carpeta montada conf-backup mediante cron, para respaldar la configuración del sistema Bacula.

Servicios Respalados

Servicio Ubicación Tipo de backup Frecuencia
BillionMail (LXC) Proxmox local Incremental Quincenal
MediaWiki (VM QEMU) Proxmox local Incremental Quincenal
Odoo (LXC) Proxmox local Incremental Diario
Zabbix Local (LXC) Proxmox local Incremental Quincenal
OpenProject (Docker Compose) VPS Incremental Diario
Reverse Proxy (NGINX + Docker Compose) VPS Incremental Quincenal
Servidor OpenVPN Baremetal Incremental Diario
Zabbix VPS (Docker Compose) VPS Incremental (de dumps MySQL) Quincenal

Schedules definidos

Schedule {
  Name = "Diario"
  Run = at 1:30
}
Schedule {
  Name = "Quincenal"
  Run = on 1,16 at 1:00
}
Schedule {
  Name = "Semanal"
  Run = Level=Full 1st sun at 2:00
  Run = at 2:00
}

Cada servicio tiene su propio Job y Pool asociado, lo que permite rotaciones independientes.

Política de Retención

  • Cada Pool mantiene los últimos 7 backups realizados.
  • Configuración:
Maximum Volume Jobs = 1
Maximum Volumes = 7
Recycle = yes
Recycle Oldest Volume = yes
AutoPrune = yes
Label Format = "<Servicio>-"
Label Media = yes
  • Resultado: cada Job genera un nuevo volumen. Al llegar al octavo, el más antiguo es reciclado automáticamente.

Regla 3-2-1 Aplicada

La política de backups cumple la regla 3-2-1 de la siguiente forma:

3 Copias de los Datos

  1. **Datos en producción:** ubicados en los servidores locales (Proxmox, baremetal y VPS).
  2. **Backup primario (on-site):** almacenado en el RAID local mediante Bacula (Pool principal por servicio).
  3. **Backup secundario (off-site):** replicación hacia el VPS (Storage remoto) y posterior sincronización hacia un bucket S3/MinIO con rclone.

2 Tipos de Soporte

  • Disco local (RAID físico en el servidor Bacula).
  • Almacenamiento remoto (VPS o almacenamiento POR RESOLVER).

De esta manera se utilizan dos medios distintos: disco local y almacenamiento remoto.

1 Copia Fuera del Sitio

  • El VPS actúa como destino remoto conectado por VPN.
  • Además, un proceso rclone en el VPS sincroniza diariamente los volúmenes al bucket de nube (S3/Wasabi/MinIO), garantizando una copia off-site geográficamente separada.

Esquema General

[Producción]
   ↓
[Backup On-site (RAID local)]
   ↓
[Replicación Off-site (VPS)]
   ↓
[Sync a Nube / POR RESOLVER]

Resumen de Cumplimiento 3-2-1

Elemento Medio Ubicación Descripción
1. Datos productivos Disco On-site / VPS Datos en ejecución (servicios, bases de datos, etc.)
2. Copia on-site RAID (disco) Local Backup primario con Bacula Storage local.
3. Copia off-site X RESOLVER Remoto Copia replicada mediante VPN y sincronizada a almacenamiento de objetos.

Procedimientos de Mantenimiento

  • Verificación semanal de logs de Bacula (Director y SD).
  • Revisión mensual de espacio en RAID.
  • Ejecución manual de restore de validación.
  • Limpieza automática del catálogo según retenciones de 90 días.

Conclusión

La infraestructura cumple con la regla 3-2-1 de backup mediante la combinación de Bacula, un almacenamiento local en RAID y replicación off-site automatizada hacia ALMACENAMIENTO POR RESOLVER. Esto garantiza redundancia, disponibilidad y protección ante fallos locales o pérdida de sitio físico.