Saltar a contenido

HDD Tape Library Robot — Informe general

Síntesis completa de la investigación: construir un sistema tipo tape library pero para HDDs viejos sueltos — almacenarlos físicamente, conectarlos on-demand vía un mecanismo motorizado, e indexar su contenido en un filesystem virtual. Este artículo recorre todo el wiki; cada sección enlaza a la página de detalle.


0. La idea y el veredicto en una frase

La idea del usuario: "a cheap USB SATA adapter mounted on some x/y axis with stepper motors and a small camera to read barcodes; a virtual file system with all the HDD content indexed, and when a file is requested move the adapter and connect the right HDD." Es, literalmente, una tape library aplicada a discos duros.

Veredicto: técnicamente viable y el concepto incluso está patentado para datacenter, pero para "unos HDDs viejos tirados" (decenas), la ingeniería óptima no es el robot sino la vía MAID/spin-down (todos los discos conectados a un backplane hot-swap, apagados por software). El robot se justifica como proyecto-maker o si la colección escala a cientos de discos. La buena noticia: ambas vías comparten el mismo software de catálogo, así que se puede empezar por ahí sin desperdiciar trabajo. Detalle en bom y mvp y economia energia conectividad.


1. ¿Existe ya algo así?

Ver prior art diy changers.

  • Comercialmente, sí, en formatos adyacentes: las tape libraries / autoloaders LTO (Quantum, HPE, IBM TS2900, Qualstar) implementan exactamente el patrón slots + barcode + robot, pero para cinta. Los optical jukebox lo hacen para CD/DVD/BD. Y el MAID comercial (p.ej. Leil Storage ICE) resuelve el "no tener todo girando" sin robot. Ver herramientas comerciales.
  • El concepto exacto está patentado para datacenter: "Automated just a bunch of disks management" (US 9,911,453 / US 10,014,024) — robots que insertan/quitan drives de un repositorio.
  • El software ya existe: git annex cataloga discos offline y te dice qué disco enchufar.
  • Prior art DIY: changers de CD/DVD (dskrbt de 0xPIT), pero no hay nada consumer/DIY maduro que junte robot + swap de HDDs + barcode + VFS. El nicho está abierto.

2. La decisión arquitectónica central: swap robótico vs MAID

Ver swap robotico vs spin down (la página más importante para decidir).

El problema real no es "cómo muevo un adaptador" sino "¿cuántos discos puedo tener conectados a la vez de forma barata?":

  • Swap robótico (la idea original): pocos drives/adaptadores multiplexados en el tiempo sobre muchos slots. Muchas partes móviles; cicla conectores; latencia de mover+conectar; slots casi ilimitados.
  • MAID / spin-down: todos los discos enchufados pero apagados; solo gira el que se pide. Cero mecánica; el conector se enchufa una vez; limitado por puertos.

La clave es que conectar muchos discos es barato (§4), así que MAID gana hasta escalas grandes.


3. El muro de ingeniería: el conector SATA

Ver restriccion conector sata.

El conector SATA estándar está rateado a ~50 ciclos de inserción. Un robot que enchufa/desenchufa el conector del disco en cada acceso lo destruiría en semanas. Mitigaciones:

  1. No ciclar el conector del disco: el robot inserta el HDD en un dock fijo SFF-8482 (el conector hot-swap/blind-mate de servidor, reemplazable). El desgaste vive en una pieza barata.
  2. Blind-mate con compliance (chaflanes de guía, juego flotante).
  3. Minimizar ciclos cacheando metadata para no encender discos por navegación.

Este muro es el argumento más fuerte a favor de MAID: ahí el conector se enchufa una sola vez.


4. Economía, energía y conectividad

Ver economia energia conectividad y power y hot plug.

  • MAID rinde como un RAID always-on usando 1/15 de la potencia (paper FAST-02, Colarelli & Grunwald 2002).
  • Un HDD 3.5" consume idle 4–8 W, spin-up 15–22 W (~2 A pico en 12 V), apagado ~0.
  • Staggered spin-up: arrancar discos escalonados baja el pico de ~50 A a <15 A — hace viable tener 24+ discos en una PSU.
  • Conectar muchos discos es trivial: un SAS expander conecta 16–256 discos SATA por un solo cable; un port multiplier ~12–16.

Punto de cruce: hasta ~24 discos MAID gana claro; ~24–100 es zona gris; el robot recupera ventaja recién en cientos de discos — o cuando el objetivo es el proyecto.


5. Subsistema mecánico

Ver mecanica pick and place (panorama) y diseno mecanico (decisiones).

  • Topología: cartesiano/gantry recomendado para un primer build (calibración independiente por eje, lo que más ayuda al mate fiable). CoreXY (0.0125 mm, motores fijos) es upgrade de velocidad. Carrusel para colecciones chicas y densas.
  • End-effector: copiar el picker de tape library — un par de dedos opuestos que agarran las superficies laterales del HDD (un bloque rígido) y lo insertan en el dock fijo. La ventosa de dskrbt no sirve (un HDD pesa ~600 g, no es un disco plano).
  • Homing/rigidez: endstops desde el día uno (dskrbt falló por no resolverlo), doble guía por eje, no economizar en rieles. El mate se logra con compliance, no con precisión absoluta.
  • Control: stack CNC estándar — grbl + Arduino + StepStick + G-code, maduro y baratísimo. 3 ejes (X/Y/Z) bastan para empezar.

6. Subsistema software

Ver sistema archivos virtual indexado, integracion software robot, identificacion discos.

  • El cerebro es un catálogo que indexa el contenido de discos desconectados y dispara la conexión on-demand. El modelo correcto es un HSM con stub files (recall transparente pero lento).
  • Herramienta: git annex ya hace location tracking de discos offline. Su hook special remote (ANNEX_ACTION=retrieve) ejecuta un script externo → ahí se engancha el robot. No hay que escribir un VFS desde cero. (Para la vía MAID/todo-conectado, la alternativa es mergerfs + SnapRAID.)
  • Latencia: el "wake" (mover + spin-up + mount) son decenas de segundos → sirve para recuperación batch/archivística, no para acceso interactivo. Mitigar cacheando metadata/thumbnails.
  • Identificación: clave estable = serial del disco (/dev/disk/by-id, smartctl); una etiqueta de código de barras codifica el serial para leerlo con cámara sin encender el disco. Verificar el serial al montar atrapa mismatches.

7. Modos de fallo

Ver modos de fallo.

Discos viejos + piezas móviles + conectores ciclados = muchos puntos de fallo: mal mate, disco equivocado, disco muerto, pico de corriente, pérdida de pasos, atasco, corte de energía, barcode ilegible, bit rot. Principios: fail-safe sobre datos (nunca cortar power sin spin-down/flush), verificación de serial obligatoria antes de servir, reintentos acotados (2–3) luego estado "error", y journaling del estado del robot para reanudar.


8. BOM y plan de MVP

Ver bom y mvp.

  • Vía A — sin robot (recomendada): backplane hot-swap + HBA/SAS expander + PSU + git-annex ≈ $200–400, cero mecánica.
  • Vía B — robot: steppers + controladora + estructura + dock + cámara ≈ $170–500 + muchas horas.
  • MVP escalonado: (1) software primero — catalogar con git-annex usando un dock manual (resuelve el problema real ya); (2) backplane hot-swap + spin-down (80% del valor); (3) robot, solo por gusto o escala.

9. Recomendación final

  1. Empieza por el software (git annex + etiquetas/serial): cataloga tus discos hoy, con un dock manual. Esto ya te da el "filesystem virtual indexado" que querías.
  2. Si quieres automatizar el acceso sin construir un robot: arma un backplane hot-swap + spin-down (Vía A). Es lo que la ingeniería recomienda para decenas de discos. Caso estrella: biblioteca Plex donde solo gira el disco de la peli reproducida → receta en caso plex media library.
  3. Si lo que quieres es el robot (válido — es un proyecto buenísimo): diseña para insertar el disco en un dock fijo (diseno mecanico), no para ciclar el conector; usa el agarre lateral del picker LTO y el stack grbl; resuelve homing y power escalonado desde el inicio.

Mapa del wiki

Abierto / gaps

  • Único pendiente: rating exacto de ciclos del SFF-8482 (Blocked — spec de pago). No bloquea el diseño.