Filesystem virtual indexado¶
Capa de software que cataloga el contenido de TODOS los discos (incluso desconectados) y expone una vista unificada; cuando se pide un archivo, sabe en qué disco está y dispara su conexión. Es el "cerebro" del proyecto.
Contexto¶
El usuario lo describió textualmente: "having a virtual file system with all the HDD content indexed, and when a file is requested move the SATA adapter and connect the right HDD". Es el subsistema que convierte un montón de discos sueltos en algo usable. La pregunta de diseño: ¿VFS real (FUSE) o catálogo + tracking de ubicación?
Contenido¶
Dos enfoques, no excluyentes:
1. Catálogo + location tracking (más simple, ya existe)¶
Indexás la lista de archivos de cada disco una vez (al ingresarlo a la biblioteca) en una base de datos. No montás nada hasta que se pide. git annex implementa exactamente esto: sabe qué archivos hay y en qué "remote"/disco viven, y te dice qué disco enchufar. En el proyecto, ese "dec ime qué disco" se reemplaza por "el robot conecta el disco".
Herramientas/patrones del dominio (a confirmar — ver gaps): git-annex, catálogos tipo VVV/Cathy/WinCatalog para medios offline, una tabla SQLite propia.
2. VFS por FUSE (más ambicioso)¶
Un demonio FUSE expone /biblioteca/... con todos los archivos. Un open() sobre un archivo en disco desconectado bloquea, dispara la orden al robot (mecanica pick and place), espera el spin-up + mount, y recién entonces sirve los bytes. Patrón conceptualmente similar a un HSM (hierarchical storage management) o a cómo una tape library hace "recall" de una cinta.
El modelo correcto es HSM con stub files: los archivos migrados quedan como placeholders (symlinks/pointer files) que parecen locales; al accederlos hay recall transparente pero más lento. git-annex ya implementa esto sin FUSE. El cableado completo software↔robot (hook
retrieve, latencia, elección git-annex vs mergerfs+SnapRAID) está en integracion software robot.
Mapeo disco↔contenido¶
El índice se llavea por el serial del disco (clave estable); una etiqueta de código de barras lo codifica para leerlo con cámara sin encender el disco. Detalle completo en identificacion discos.
Relaciones¶
- Implementado parcialmente por: git annex.
- Integración con el robot: integracion software robot.
- Identificación: identificacion discos.
- Dispara: mecanica pick and place (la orden de conexión).
- Análogo software de: tape library (recall), maid cold storage (qué disco despertar).
Citas / evidencia¶
- "git-annex... keeps track of where each file is stored... If necessary, git-annex will tell you which archive drive you need to pull out of storage to get the file back." — panorama inicial prior art
Abierto / gaps¶
- ✅ Latencia y caso de uso (batch vs interactivo) + caché de metadata resueltos → integracion software robot.
- ¿Existe un FUSE listo que haga recall on-demand sobre git-annex, o hay que escribirlo?