Política de Copias de Seguridad y Retención de Proxmox
River Oaks Church - Creado en abril de 2026
Resumen
Estrategia de copias de seguridad de tres niveles: local de acceso rápido, NAS a medio plazo y nube externa. Los servicios críticos (servidor web, Bitwarden) reciben copias de seguridad locales más frecuentes.
Nivel 1 — Local (Host Proxmox)
Copias de Seguridad Nocturnas
- Almacenamiento:
local(/var/lib/vz) - Programación: Lunes a viernes a las 21:00
- Retención: Conservar las últimas 3 copias de seguridad
- Selección: Todas las VMs/CTs excepto 109 (storage-mgr), 110 (Bitwarden), 100 (servidor web)
- Propósito: Restauraciones rápidas para problemas recientes
Servicios Críticos (Alta Frecuencia)
- Almacenamiento:
local(/var/lib/vz) - Programación: Cada 6 horas (*/6:00)
- Retención: Conservar las últimas 5 copias de seguridad
- Selección: 100 (servidor web), 110 (Bitwarden)
- Propósito: Minimizar la pérdida de datos para servicios críticos
Nivel 2 — NAS (SMB/CIFS)
- Almacenamiento:
gofer2(/mnt/pve/gofer2) - Programación: Diariamente a las 22:30
- Retención: Conservar las últimas 5 copias de seguridad
- Selección: Todas las VMs/CTs
- Propósito: Copia de seguridad local a medio plazo con más historial
Nivel 3 — Externa (Google Team Drive)
- Almacenamiento:
td-backups:ProxmoxBackupsvía rclone - Programación: Diariamente a medianoche vía cron en
storage-mgr(LXC 109) - Retención: Instantáneas semanales, conservadas durante 13 semanas (aprox. 3 meses)
- Mecanismo: Script
/root/proxmox-backup-sync.shen LXC 109 - Copia desde
/mnt/proxmox-backups(montaje de enlace del/var/lib/vzdel host) - Organiza por carpeta de semana ISO (ej.
2026-W16/) - Ejecuta una copia idempotente cada noche, incluso cuando la semana actual ya contiene archivos
- Verifica los objetos existentes y carga solo los archivos faltantes o modificados, para que las semanas interrumpidas por cuota se reanuden en la siguiente ejecución
- Se detiene rápidamente cuando Google Drive informa de su límite de carga en lugar de reintentar durante horas
- Utiliza un bloqueo no bloqueante para evitar sincronizaciones superpuestas
- Elimina las carpetas remotas de más de 13 semanas solo después de que la copia semanal tenga éxito
--min-age 60mevita cargar copias de seguridad en curso- Cron:
0 0 * * * /root/proxmox-backup-sync.sh >> /var/log/proxmox-backup-sync.log 2>&1
Arquitectura
Proxmox vzdump (*/6:00) ──► local (conservar 5) ── 100 (servidor web), 110 (Bitwarden)
Proxmox vzdump (lun-vie 21) ──► local (conservar 3) ── todo lo demás (excepto 109)
Proxmox vzdump (22:30) ──► gofer2/NAS (conservar 5) ── todas las VMs/CTs
LXC 109 cron (00:00) ──► rclone ──► Google Team Drive (semanal, conservar 13 semanas)
Notas
- LXC 109 (storage-mgr) está excluido de todos los trabajos de copia de seguridad local para evitar recursión
- El destino remoto de Team Drive está configurado como
td-backups:en rclone en LXC 109 - Las copias de seguridad locales se montan como solo lectura en LXC 109 en
/mnt/proxmox-backups - Config:
mp1: /var/lib/vz/dump,mp=/mnt/proxmox-backups,ro=1en/etc/pve/lxc/109.conf - La primera carga semanal es de ~230-350 GB dependiendo de la retención local en el momento de la sincronización
- Monitorear los registros de sincronización en
/var/log/proxmox-backup-sync.logen LXC 109
Verificación y recuperación
Compruebe los trabajos de copia de seguridad programados y el estado del almacenamiento en el host Proxmox:
pvesh get /cluster/backup
pvesm status
Compruebe la programación externa y la salida reciente de la sincronización en LXC 109:
pct exec 109 -- crontab -l
pct exec 109 -- tail -n 200 /var/log/proxmox-backup-sync.log
Previsualice una sincronización sin cargar ni eliminar nada:
pct exec 109 -- /root/proxmox-backup-sync.sh --dry-run
Un código de salida de 7 con userRateLimitExceeded significa que se alcanzó el límite de carga de Google Drive. La carga permanece incompleta pero recuperable; la siguiente ejecución nocturna compara la misma carpeta de semana ISO y reanuda los objetos faltantes. No cree un marcador vacío ni omita la semana existente. Confirme la finalización comparando el inventario local de archivos elegibles con la semana remota y comprobando cualquier objeto faltante reportado específicamente.
El script implementado se mantiene en el repositorio riveroaks/infra en storage/hosts/storage-mgr/files/usr/local/sbin/riveroaks-proxmox-backup-sync. Actualice primero el repositorio, pase la CI, y luego implemente la copia revisada en LXC 109. No coloque credenciales de rclone ni contenido de copias de seguridad en Git, registros, tickets o documentación.