gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1506Shell 186Rust 107Markdown 983639 Definiciones

respaldo→volumen: la `-H` de rsync no es opcional, y al llegar hay que podar los superados

Dos cosas medidas al traer los 167 GB.

1. `rsync -a` SIN `-H` no preserva los enlaces duros, y el store comparte ficheros entre artefactos
   justamente así. Llegó inflado: 76 G en el box → 159 G en el volumen, con **0 ficheros de nlink>1**
   al llegar — ésa es la prueba de que se perdieron, no una sospecha. (El 76 G del box es además ZFS
   comprimido, así que las dos cosas se sumaban y parecía peor.) El contenido es correcto —es CAS y
   los hashes casan—, pero ocupa de más y el volumen no sobra.

2. El respaldo conserva artefactos que el hub YA podó. Son SUPERADOS: existe otro con el hash
   vigente, y no pueden dar cache-hit nunca porque la receta que los nombraba cambió. Eran 544 de
   1536 · 31 G. Podados con work/store-gc-superados.txt como lista.
   El guardián es RECONTAR tras el rm: «borré 544» y «hay 544 menos» son afirmaciones distintas, y
   sólo la segunda es la que importa. Cuadró.

Volumen: 992 artefactos vigentes, 95 G libres de 246.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

2d6a3c774b55880d12c79b4bb76acf1c695492e4 · por sergio · (hace 2 meses) · padre 17c4194f5 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

1 archivos · +13 −0

diff --git a/scripts/farm/respaldo-subcuenta.sh b/scripts/farm/respaldo-subcuenta.sh
index ee879468..81ccb997 100755
--- a/scripts/farm/respaldo-subcuenta.sh
+++ b/scripts/farm/respaldo-subcuenta.sh
@@ -35,6 +35,19 @@
 # Uso:  scripts/farm/respaldo-subcuenta.sh crear      # crea y guarda la clave en ~/.config/hammer
 #       scripts/farm/respaldo-subcuenta.sh autorizar <ip-worker>
 #       scripts/farm/respaldo-subcuenta.sh verificar <ip-worker>   # la prueba NEGATIVA
+#
+# ── ⚠ AL TIRAR DEL RESPALDO, `rsync -aH` — LA H NO ES OPCIONAL ─────────────────────────────────
+# El store comparte ficheros entre artefactos por ENLACE DURO. `rsync -a` sin `-H` no los preserva:
+# copia cada enlace como un fichero independiente y el store llega INFLADO. Medido el 2026-08-09:
+# 76 G en el box → 159 G en el volumen, con **0 ficheros de nlink>1** al llegar (la prueba de que se
+# perdieron; el 76 G del box es además ZFS comprimido, así que las dos cosas se sumaban).
+# El contenido es correcto —es CAS, los hashes casan— pero ocupa de más y el volumen no sobra.
+#
+# ── Y AL LLEGAR, PODAR CON EL REGISTRO DE SUPERADOS ────────────────────────────────────────────
+# El respaldo conserva artefactos que el hub YA podó: son SUPERADOS (existe otro con el hash vigente)
+# y no pueden dar cache-hit nunca, porque la receta que los nombraba ya cambió. Medido: 544 de 1536
+# en el volumen, 31 G. Se podan con `work/store-gc-superados.txt` como lista.
+# El guardián es RECONTAR después del rm: «borré N» no es lo mismo que «hay N menos».
 set -uo pipefail
 ROOT="$(cd "$(dirname "$0")/../.." && pwd)"; cd "$ROOT"
 BOX="${BOX:-hammer-respaldo}"