📋 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)
|
||||
> **Fecha**: 2026-04-09
|
||||
> **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 1: ██████████ 100% Atomicidad (bugs corregidos) ✅
|
||||
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 4: ░░░░░░░░░░ 0% Inteligencia de Colmena
|
||||
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)
|
||||
|
||||
**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 |
|
||||
|:--:|-------|-------------|--------|
|
||||
| F2.T1 | `bkps orquestar` | Orquestación 1-dron-por-archivo (scan → lanzar secuencial) | ✅ |
|
||||
| F2.T1a | `proc_xen.rb` | `listar()` + `ejecutar_uno()` + `--archivo` | ✅ |
|
||||
| F2.T1b | `proc_proxmox.rb` | `listar()` + `ejecutar_uno()` + `--archivo` | ✅ |
|
||||
| F2.T2 | Condicionales | `--on-error continue\|abort\|retry` | ⏳ |
|
||||
| F2.T1a | `proc_xen.rb` | `listar()` + `ejecutar_uno()` — 1 dron por `.xva` | ✅ |
|
||||
| F2.T1b | `proc_proxmox.rb` | `listar()` + `ejecutar_uno()` — 1 dron por set VM | ✅ |
|
||||
| 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.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
|
||||
# Dry-run: ver archivos pendientes
|
||||
./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
|
||||
```
|
||||
|
||||
**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