📋 Plan v3.4: F2.T1c atomización rclone (1 dron por nodo)
- F2.T2 marcado como completado (--on-error + --retries) - F2.T1c planificado: sync_rclone.rb listar() + ejecutar_uno() - Inventario: 17 nodos, ~260GB total - Progreso Fase 2: 80%
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
> **Pertenece a**: [A01 - Ecosistema ADN](./A01_dtic-ADN.md)
|
> **Pertenece a**: [A01 - Ecosistema ADN](./A01_dtic-ADN.md)
|
||||||
> **Fecha**: 2026-04-09
|
> **Fecha**: 2026-04-09
|
||||||
> **Responsable**: Lic. Ricardo MONLA
|
> **Responsable**: Lic. Ricardo MONLA
|
||||||
> **Versión**: 3.3 — Fase 2 orquestador implementado
|
> **Versión**: 3.4 — Fase 2: rclone atómico planificado
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
Fase 0: ██████████ 100% Infraestructura de Datos (tablas internas) ✅
|
Fase 0: ██████████ 100% Infraestructura de Datos (tablas internas) ✅
|
||||||
Fase 1: ██████████ 100% Atomicidad (bugs corregidos) ✅
|
Fase 1: ██████████ 100% Atomicidad (bugs corregidos) ✅
|
||||||
Fase 1.5: ██████████ 100% Visibilidad Bitácora Web + Corrección Bugs ✅
|
Fase 1.5: ██████████ 100% Visibilidad Bitácora Web + Corrección Bugs ✅
|
||||||
Fase 2: ███████░░░ 70% Composición — Orquestación de Flujos 🔧
|
Fase 2: ████████░░ 80% Composición — Orquestación de Flujos 🔧
|
||||||
Fase 3: ░░░░░░░░░░ 0% Planificación — Drones Programados
|
Fase 3: ░░░░░░░░░░ 0% Planificación — Drones Programados
|
||||||
Fase 4: ░░░░░░░░░░ 0% Inteligencia de Colmena
|
Fase 4: ░░░░░░░░░░ 0% Inteligencia de Colmena
|
||||||
Fase 5: ░░░░░░░░░░ 0% Observabilidad — Dashboard y Métricas
|
Fase 5: ░░░░░░░░░░ 0% Observabilidad — Dashboard y Métricas
|
||||||
@@ -464,18 +464,66 @@ La **Bitácora Web** (`http://localhost:5174/bitacoras/`) muestra:
|
|||||||
|
|
||||||
### Fase 2: Composición — Orquestación de Flujos (Dron 1.5)
|
### Fase 2: Composición — Orquestación de Flujos (Dron 1.5)
|
||||||
|
|
||||||
**Objetivo:** Permitir composición de drones para flujos multi-paso.
|
**Objetivo:** Permitir composición de drones para flujos multi-paso. Aplicar "Menos es Más" a todos los procesadores — **1 Dron = 1 Unidad Atómica**.
|
||||||
|
|
||||||
| ID | Tarea | Descripción | Estado |
|
| ID | Tarea | Descripción | Estado |
|
||||||
|:--:|-------|-------------|--------|
|
|:--:|-------|-------------|--------|
|
||||||
| F2.T1 | `bkps orquestar` | Orquestación 1-dron-por-archivo (scan → lanzar secuencial) | ✅ |
|
| F2.T1 | `bkps orquestar` | Orquestación 1-dron-por-archivo (scan → lanzar secuencial) | ✅ |
|
||||||
| F2.T1a | `proc_xen.rb` | `listar()` + `ejecutar_uno()` + `--archivo` | ✅ |
|
| F2.T1a | `proc_xen.rb` | `listar()` + `ejecutar_uno()` — 1 dron por `.xva` | ✅ |
|
||||||
| F2.T1b | `proc_proxmox.rb` | `listar()` + `ejecutar_uno()` + `--archivo` | ✅ |
|
| F2.T1b | `proc_proxmox.rb` | `listar()` + `ejecutar_uno()` — 1 dron por set VM | ✅ |
|
||||||
| F2.T2 | Condicionales | `--on-error continue\|abort\|retry` | ⏳ |
|
| F2.T1c | `sync_rclone.rb` | `listar()` + `ejecutar_uno()` — 1 dron por directorio de nodo | ⏳ |
|
||||||
|
| F2.T2 | Condicionales | `--on-error continue\|abort\|retry` + `--retries N` | ✅ |
|
||||||
| F2.T3 | Paralelismo | `--parallel` para pasos independientes | ⏳ |
|
| F2.T3 | Paralelismo | `--parallel` para pasos independientes | ⏳ |
|
||||||
| F2.T4 | Contexto compartido | Variables entre pasos (`$DRON_OUTPUT_N`) | ⏳ |
|
| F2.T4 | Contexto compartido | Variables entre pasos (`$DRON_OUTPUT_N`) | ⏳ |
|
||||||
|
|
||||||
**Implementado (F2.T1):**
|
#### F2.T1c — Atomización de Rclone (1 dron por nodo)
|
||||||
|
|
||||||
|
**Problema actual:**
|
||||||
|
```bash
|
||||||
|
# MONOLITO: un solo rclone sync para ~260GB (17 nodos)
|
||||||
|
rclone sync /mnt/ns8Disco3/.../bkps-SERVIDORes/ rmOneDrive:/.../bkps-SERVIDORes/
|
||||||
|
# Si falla en el nodo 15 de 17, hay que reiniciar TODO
|
||||||
|
```
|
||||||
|
|
||||||
|
**Solución AtomicDrones:**
|
||||||
|
```bash
|
||||||
|
# ATÓMICO: 1 dron por directorio de nodo
|
||||||
|
# Dron 1: rclone sync .../srvv-DNS/ → rmOneDrive:.../srvv-DNS/ (1.5GB)
|
||||||
|
# Dron 2: rclone sync .../srvv-KOHA/ → rmOneDrive:.../srvv-KOHA/ (9.7GB)
|
||||||
|
# ...
|
||||||
|
# Dron 17: rclone sync .../srv-SysACADWeb/ → rmOneDrive:.../srv-SysACADWeb/ (46GB)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Implementación requerida en `sync_rclone.rb`:**
|
||||||
|
|
||||||
|
| Método | Qué hace |
|
||||||
|
|--------|----------|
|
||||||
|
| `listar(tarea)` | Escanea subdirectorios del `origen`, retorna lista de `{nombre, ruta, tamaño}` |
|
||||||
|
| `ejecutar_uno(tarea, directorio)` | `rclone sync origen/NODO/ destino/NODO/` para un solo nodo |
|
||||||
|
|
||||||
|
**Inventario de nodos (17 directorios, ~260GB total):**
|
||||||
|
```
|
||||||
|
8K pcv-DASU3 474M srvv-SITIO2 17G pcv-DASU2
|
||||||
|
648M srvv-UPTIME 966M srvv-N8N 18G pcv-SERVIIO
|
||||||
|
1.5G srvv-DNS 6.9G srvv-SITIO 23G pcv-DASU1
|
||||||
|
7.5G srvv-DOCs 9.7G srvv-KOHA 27G srvv-DTIC
|
||||||
|
13G srvv-DATA 14G srvv-SITIO0 37G srv-MauriK
|
||||||
|
38G srvv-FENIX 46G srv-SysACADWeb
|
||||||
|
```
|
||||||
|
|
||||||
|
**Uso propuesto:**
|
||||||
|
```bash
|
||||||
|
# Dry-run: ver nodos pendientes de sync
|
||||||
|
./adn/tools/run bkps orquestar T5 --dry-run
|
||||||
|
|
||||||
|
# Real: 1 dron por nodo, secuencial, con retry ante fallos de red
|
||||||
|
./adn/tools/run bkps orquestar T5 --on-error retry --retries 3
|
||||||
|
|
||||||
|
# Meta-orquestación: el orquestador mismo es un dron
|
||||||
|
./adn/tools/run dron lanzar --nota "Sync Nube Servidores" -- ./adn/tools/run bkps orquestar T5 --on-error retry
|
||||||
|
```
|
||||||
|
|
||||||
|
**Implementado (F2.T1a, F2.T1b):**
|
||||||
```bash
|
```bash
|
||||||
# Dry-run: ver archivos pendientes
|
# Dry-run: ver archivos pendientes
|
||||||
./adn/tools/run bkps orquestar T1 --dry-run
|
./adn/tools/run bkps orquestar T1 --dry-run
|
||||||
@@ -487,7 +535,7 @@ La **Bitácora Web** (`http://localhost:5174/bitacoras/`) muestra:
|
|||||||
./adn/tools/run dron lanzar --nota "Orquestar PMOX" -- ./adn/tools/run bkps orquestar T2
|
./adn/tools/run dron lanzar --nota "Orquestar PMOX" -- ./adn/tools/run bkps orquestar T2
|
||||||
```
|
```
|
||||||
|
|
||||||
**Criterio de éxito:** Flujos complejos se expresan como composición de drones simples.
|
**Criterio de éxito:** Flujos complejos se expresan como composición de drones simples. Cada procesador (xen, proxmox, rclone) soporta `listar()` + `ejecutar_uno()` para orquestación atómica.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user