P2602 - Automatización de Backups DTIC UTNLR
Manifiesto de Proyecto | Referencia: adn/07_proyectos.md
Identificación
| Campo |
Valor |
| Código |
P2602 |
| Nombre |
Automatización de Backups DTIC UTNLR |
| Versión |
v2601 |
| Estado |
⏳ En Ejecución |
| Inicio |
28/02/2026 |
| Fin Estimado |
Por definir |
Ventana Operativa
| Campo |
Valor |
| Día |
Todos los jueves |
| Inicio |
00:00 hs |
| Deadline |
08:00 hs (inicio de jornada de usuarios) |
| Modo |
Operador presente para resolver problemas durante la noche |
| SLA |
Todo debe estar operativo antes de las 08:00 para los usuarios de la Facultad |
⚠️ Restricción crítica: Si hay fallos durante el pipeline, el operador debe resolverlos antes de las 08:00. El objetivo de la automatización es minimizar la intervención nocturna y eventualmente permitir ejecución desatendida vía cron/timer.
Cronograma típico (actual, manual):
Objetivo
Automatizar el ciclo completo de backup de la DTIC — actualmente un proceso manual de varias horas — en un pipeline de 3 etapas desatendido y auditado.
Pipeline Operativo Completo
Problemática actual
| Etapa |
Manual Actual |
Automatizado (meta) |
| Vzdump |
GUI Proxmox, VM por VM, borrar viejos a mano |
SSH vzdump batch, retención automática |
| Procesamiento |
Descarga manual, compresión, verificar archivos viejos |
Descarga + retención inteligente (mín 2) + compresión |
| Upload |
Lanzar rclone, reiniciar si falla internet |
rclone con reintentos y resume automático |
Stakeholders
| Rol |
Persona |
Visibilidad |
| Responsable Técnico |
Lic. Ricardo MONLA |
Operador directo |
| Dirección de TIC |
(Jerárquico superior) |
Dashboard asíncrono |
Nodos Involucrados
Infraestructura de Gestión
| Nodo |
IP |
Rol |
| srv-ns8 |
10.0.10.8 |
Centro de operaciones. Ejecuta ns8-bkps. |
| srv-pmox1 |
10.0.10.201 |
Pool master Proxmox. Gateway SSH a todas las VMs. |
| srv-pmox2 |
10.0.10.202 |
Nodo Proxmox secundario. |
| srv-pmox3 |
10.0.10.203 |
Nodo Proxmox terciario (64GB RAM). |
VMs/CTs a Respaldar (Inventario Auditado 28/02)
| Server |
VMID |
Nodo |
OS |
Grupo |
Ventana |
SSH VM |
| pmox1 |
101 |
srvv-sitio |
Ubuntu |
linux |
Libre |
✅ rmonla |
| pmox1 |
102 |
srvv-sitio0 |
Debian |
linux |
Libre |
✅ rmonla |
| pmox1 |
103 |
srvv-dtic |
Debian |
linux |
Libre |
✅ rmonla |
| pmox1 |
104 |
srvv-docs |
Debian |
linux |
Libre |
✅ rmonla |
| pmox1 |
112 |
srvv-dns |
Debian |
linux |
Libre |
✅ rmonla |
| pmox2 |
105 |
srvv-koha |
Linux |
linux |
Libre |
✅ rmonla |
| pmox2 |
108 |
pcv-dasu1 |
Win10 |
windows |
Libre |
❌ pendiente |
| pmox2 |
109 |
pcv-dasu2 |
Win10 |
windows |
Libre |
❌ pendiente |
| pmox2 |
110 |
pcv-serviio |
Win10 |
windows |
Libre |
❌ pendiente |
| pmox3 |
111 |
srvv-fenix |
Legacy |
windows |
🌙 00:00-06:00 |
❌ pendiente |
| pmox3 |
106 |
srvv-uptime |
Debian |
lxc |
Libre |
✅ rmonla |
| pmox3 |
107 |
srvv-data |
Debian |
lxc |
Libre |
✅ rmonla |
| pmox3 |
113 |
srvv-sitio2 |
Debian |
lxc |
Libre |
✅ rmonla |
Excluidos (stopped, sin auto-inicio, en preparación): docker (100), srvv-N8N VM (114), srvv-N8N CT (115).
Herramientas
| Herramienta |
Uso |
| ns8-bkps v6.0 |
Procesador de backups (Ruby, modular) |
| ns8-candados |
Gestión de secretos y autorización SSH |
| vzdump |
Herramienta nativa de backup de Proxmox |
| SSH |
Canal de ejecución remota |
| rclone |
Sincronización a almacenamiento cloud |
| GNU Screen |
Ejecución desatendida |
Fases del Proyecto
🔍 Fase 1 — Reconocimiento de Campo
"No se puede proteger lo que no se conoce."
| ID |
Estado |
Tarea |
| R01 |
📍 |
Validar acceso SSH desde srv-ns8 a cada hipervisor (pmox1/2/3). |
| R02 |
📍 |
Auditar inventario real de VMs: qm list y pct list vs. nodos documentados. |
| R03 |
📍 |
Verificar que vzdump funcione remotamente desde pmox1 como pool master. |
| R04 |
📍 |
Documentar ventanas horarias operativas por VM (producción vs. mantenimiento). |
| R05 |
📍 |
Verificar/crear fichas de nodo (nodos/*.md) para VMs no documentadas. |
🔧 Fase 2 — Etapa 1: Procesador Vzdump (Backup Remoto)
SSH a pool master → limpieza remota → shutdown → vzdump → verificación
| ID |
Estado |
Tarea |
| D01 |
📍 |
Crear lib/proc_vzdump.rb con lógica de backup remoto vía SSH. |
| D02 |
📍 |
Retención remota: eliminar backups >6 días en zfsDISCO1 antes de cada vzdump. |
| D03 |
📍 |
Apagado graceful SSH para VMs Windows (shutdown /s /t 30), skip si no responde. |
| D04 |
📍 |
Filtro de ventana horaria (skip VM si fuera de su horario). |
| D05 |
📍 |
Separar tareas YAML: bkps_proxmox_linux y bkps_proxmox_windows. |
⚙️ Fase 3 — Etapa 2: Procesamiento Local
Descarga desde Proxmox → retención local inteligente → compresión por host
| ID |
Estado |
Tarea |
| L01 |
✅ |
Descarga de backups desde zfsDISCO1 a NS8 via rclone mount (ya existe en proc_proxmox.rb). |
| L02 |
📍 |
Retención local inteligente: antes de procesar, verificar cada directorio de VM y mantener mínimo 2 archivos (el nuevo + 1 de seguridad). Borrar los más antiguos si hay >2 con antigüedad >6 días. |
| L03 |
✅ |
Compresión tar.gz organizada por hostname (ya existe en proc_proxmox.rb). |
| L04 |
📍 |
Integrar retención local en el procesador Proxmox existente. |
Política de retención local:
☁️ Fase 4 — Etapa 3: Upload a la Nube
rclone sync a OneDrive con reintentos y resume automático
| ID |
Estado |
Tarea |
| U01 |
✅ |
Sync a OneDrive: bkps-SERVIDORes, bkps-ANTIGUOS, bkps-USERs (ya existe en sync_rclone.rb). |
| U02 |
✅ |
Reintentos automáticos: --retries 5 --retries-sleep 10s --timeout 30m (ya implementado). |
| U03 |
📍 |
Resume automático: si rclone falla a mitad, el próximo rclone sync retoma desde donde quedó (verificar comportamiento actual). |
| U04 |
📍 |
Logeo de resultado de upload con estadísticas (bytes transferidos, errores). |
🧪 Fase 5 — Validación
| ID |
Estado |
Tarea |
| V01 |
📍 |
Test vzdump con VM no-crítica (ej: srvv-docs). |
| V02 |
📍 |
Test retención local (verificar min 2 por directorio). |
| V03 |
📍 |
Test pipeline completo Linux: vzdump → procesamiento → upload. |
| V04 |
📍 |
Test shutdown SSH graceful en VM Windows. |
| V05 |
📍 |
Test de corte de internet durante upload (verificar resume). |
🚀 Fase 6 — Producción
| ID |
Estado |
Tarea |
| P01 |
📍 |
Crear comando compuesto full_backup (vzdump + procesamiento + upload). |
| P02 |
📍 |
Documentar procedimiento operativo en ADN. |
| P03 |
📍 |
Evaluar cron/systemd timer para ejecución programada nocturna. |
| P04 |
📍 |
Dashboard P2602 (si aplica). |
Arquitectura
Referencias