Caso de uso: biblioteca Plex grande con discos en spin-down¶
Receta concreta: Plex ve la biblioteca completa, y al reproducir una película solo gira el disco que la contiene (despierta en ~5–15 s). Este caso descarta el robot y se resuelve con la vía MAID: mergerfs+SnapRAID + caché de metadata en SSD + Plex configurado para no escanear/thumbnailear, + spin-down con hd-idle.
Contexto¶
Pedido del usuario (2026-05-31): "Plex sees the full library, but when a movie is accessed the disk starts to spin." Es el escenario interactivo por excelencia y un caso clásico de la comunidad DataHoarder.
Por qué este caso descarta el robot¶
Para Plex, la vía MAID/spin-down gana sin discusión sobre el swap robótico:
- Latencia: un disco dormido despierta en ~5–15 s (power y hot plug) — tolerable para "darle play". El robot suma mover + mate + spin-up (decenas de s) y, peor, los scans de Plex pedirían archivos de muchos discos → el robot thrashearía mecánicamente.
- Desgaste del conector: los patrones de acceso de Plex (scans, refresh, múltiples títulos) destruirían el conector de ~50 ciclos (restriccion conector sata).
- Conclusión: discos conectados + spin-down, no robot.
El problema central: Plex despierta TODOS los discos¶
mergerfs debe consultar todas las branches en un readdir/stat; y Plex agrega scans periódicos, refresh y generación de thumbnails. Resultado naïve: cada scan despierta toda la pila, y los discos nunca duermen.
¿Cada cuánto escanea Plex? (los tres relojes)¶
Para domar el spin-down hay que entender que Plex toca disco por tres vías independientes:
| Mecanismo | Cada cuánto | Qué despierta |
|---|---|---|
| A) Scan periódico ("Update my library periodically" + "Library update interval") | Elegible: 15 min, 30 min, 1 h, 2 h, 6 h, 12 h o diario (o custom en segundos, 900–86 400). El reloj cuenta desde que arrancó el server, no en horario fijo. | Un scan completo → con mergerfs, todos los discos. |
| B) Update automático ("Update my library automatically" + "partial scan") | No es un timer: se dispara por inotify cuando cambia una carpeta. Con "partial scan", escanea solo la carpeta cambiada. | Solo el disco de la carpeta que cambió (ideal). |
| C) Scheduled Tasks (ventana diaria de mantenimiento) | 1×/día en una ventana configurable (típico de madrugada). | Refresh de metadata, thumbnails, análisis profundo, optimización DB → despierta discos. |
Configuración recomendada para spin-down¶
- A) Scan periódico → OFF. No lo necesitas si usas B.
- B) Update automático → ON + "Run a partial scan when changes are detected" → ON. Así Plex solo escanea cuando tú agregas algo (o lo hace Radarr/Sonarr), y solo esa carpeta. Si además el contenido nuevo aterriza primero en el SSD/pool de descargas (receta abajo), el scan ni siquiera toca los discos lentos.
- C) Scheduled Tasks: desactivar las tareas que tocan media (thumbnails, deep analysis) o restringir la ventana; el refresh de metadata online no toca tus discos, pero la generación de thumbnails sí.
Resumen: con scan periódico off y update automático+parcial on, Plex deja de tener un "cada cuánto" fijo — escanea solo cuando cambia algo, y solo esa carpeta. Los discos quedan libres de despertar salvo por reproducción real.
Receta¶
1. Layout de almacenamiento (consolidar por disco)¶
- Cada película (+ sus sidecars: subs, .nfo, artwork) vive ENTERA en un disco — garantizado por mergerfs (sin striping) y una create policy que agrupe (
epff/ "llenar disco por disco"). Así, reproducir = un solo disco gira. Ver mergerfs snapraid. - Pool de dos niveles: SSD/NVMe (caché + descargas) + discos lentos. La pool "cache" lista el SSD primero; policies
ff/epff/lfs/eplfs.
2. Metadata y artwork en SSD (que el catálogo no toque los discos)¶
- DB y metadata de Plex en SSD (no en los discos lentos). Plex muestra posters, títulos y navegación sin girar nada — exactamente el "índice navegable sin encender discos".
- Opcional: bcache/lvmcache a nivel de bloque para que lecturas repetidas no peguen al disco lento.
3. Domar a Plex (settings)¶
- Desactivar scans periódicos: Settings → Library → quitar "Scan my library periodically" (
ScheduledLibraryUpdatesEnabledoff). - Actualización dirigida: usar inotify ("Update my library automatically" / partial scan) o que Sonarr/Radarr disparen el scan solo de la carpeta nueva — nunca full scan.
- Desactivar generación de thumbnails: "Video Preview Thumbnails" y "Chapter Thumbnails" → Never (alto I/O, impiden el sleep).
- Desactivar/limitar análisis profundo, detección de intro/créditos y "Analyze" agendado.
- (Apuntar tareas pesadas al SSD; en NAS débil, scanner a baja prioridad.)
4. Spin-down efectivo¶
- hd-idle (timers por disco) o hdparm -S para dormir los discos tras X min de idle. Ver alternativas open source maid.
- Opcional avanzado: corte físico de energía con PWDIS/Power Pin 3 (power y hot plug) para llevar el ahorro al extremo (estilo Leil ICE).
5. Hardware (sin robot)¶
- Discos conectados a un backplane hot-swap + HBA/SAS expander (economia energia conectividad); staggered spin-up para el arranque. BOM en bom y mvp (Vía A, ~$200–400).
Resultado esperado¶
- Navegar Plex: instantáneo, 0 discos girando (todo desde SSD).
- Play de una peli: 1 disco despierta (~5–15 s de "buffering" inicial), el resto sigue dormido.
- Consumo: cercano al idle de 1 disco + SSD, no de toda la pila (economia energia conectividad).
Variante avanzada: proxies en SSD¶
Se puede ir más lejos: guardar en el SSD versiones de baja resolución de cada película (no solo metadata), escanear/previsualizar sobre esas, y montar el HDD con el UHD solo al reproducir en calidad. Así ni la navegación ni la reproducción en baja tocan los discos. Es HSM con un tier de proxy reproducible + Plex Multi-Version. Detalle, arquitectura y salvedades en proxy tier ssd.
Relaciones¶
- Aplica la arquitectura de: maid cold storage, swap robotico vs spin down (vía MAID).
- Herramientas: mergerfs snapraid, hd-idle (alternativas open source maid).
- Alternativa de media server: jellyfin vs plex escaneos (¿conviene Jellyfin?).
- Base eléctrica: power y hot plug (spin-up, staggered, PWDIS).
- Hardware/costo: economia energia conectividad, bom y mvp.
Citas / evidencia¶
- "The only way to find a file to open is to scan across all branches and sort results" — plex spindown media library
- "Disable Video Preview Thumbnail and Chapter Thumbnail Generation... can prevent drives from entering sleep mode" — plex spindown media library
- "ScheduledLibraryUpdatesEnabled... controls whether the server initiates library scans on a set interval" — plex spindown media library
Abierto / gaps¶
- ✅ ¿Jellyfin mejora los escaneos? → jellyfin vs plex escaneos (mejora en control, no en el problema de fondo de mergerfs). Emby sin cubrir.
- Receta exacta de inotify + Radarr/Sonarr para scans por carpeta.
- Medir el peor caso: ¿algún cliente/agente de Plex sigue abriendo archivos (probe de codec) y despierta discos pese a todo?