14 puntos por GN⁺ 2025-10-07 | 3 comentarios | Compartir por WhatsApp
  • Construyó su propio almacenamiento S3 con una laptop Framework y un JBOD, operando 10 TB a bajo costo y con funcionamiento estable incluso tras 4 meses sin mantenimiento
  • Usa una laptop Framework usada sin pantalla con ZFS y garage S3 instalados como servidor casero, empleada como almacenamiento de gran capacidad para el proyecto de seguimiento de SDK de AppGoblin
  • Después de 4 meses sin prestar atención al servidor, al iniciar sesión descubrió que se habían usado 10 TB y que estaba esperando una actualización; incluso tras reiniciar, todo siguió funcionando con normalidad
  • El proceso de actualizar garage S3 de v1 a v2 también se completó sin problemas, consolidando una experiencia operativa estable
  • Hubo problemas iniciales con una configuración no estándar de ZFS que conectaba la laptop y el JBOD por USB, pero se resolvieron moviendo los metadatos al almacenamiento interno de la laptop

Contexto y motivación del proyecto

  • Decisión de alojar su propio S3 hace 5 meses
    • Estaba trabajando en el seguimiento de SDK de las 100 mil principales apps de Android e iOS de AppGoblin
    • Necesitaba una gran cantidad de espacio de almacenamiento, pero quería reducir costos
    • Eligió un enfoque self-hosted en lugar de usar S3 en la nube

Configuración de hardware

  • Uso de una laptop Framework
    • Compró barata una laptop Framework usada sin pantalla
    • Como era un modelo antiguo, resultaba adecuada para usarla como servidor casero
    • Aprovechó la portabilidad y el bajo consumo energético de la laptop
  • Adición de un JBOD (Just a Bunch of Disks)
    • Un arreglo de discos externo para almacenamiento de gran capacidad
    • Conectado a la laptop mediante USB

Stack de software

  • Sistema de archivos ZFS
    • Ofrece integridad de datos y funciones de snapshots
    • Configuró el JBOD como un pool de ZFS
  • garage S3
    • Solución ligera de almacenamiento distribuido compatible con S3
    • Proyecto open source desarrollado por Deuxfleurs
    • Proporciona compatibilidad con la API de S3

Operación sin administración durante 4 meses

  • No prestó ninguna atención al servidor durante 4 meses después de instalarlo
    • S3 siguió usándose de forma continua durante viajes, trabajo y la rutina diaria ocupada
    • No tuvo necesidad de pensar en el servidor
  • Lo que descubrió al iniciar sesión
    • Se habían usado 10 TB de almacenamiento
    • El sistema estaba esperando pacientemente un reinicio para aplicar una actualización
  • Resultado del reinicio
    • Reinició con algo de tensión
    • Todo volvió a funcionar correctamente, para su alivio

Actualización de garage S3

  • Actualización de v1 a v2
    • Encontró pendiente una actualización de versión mayor
    • El proceso de actualización transcurrió sin problemas
    • Lo consideró un buen fin de semana

Advertencias técnicas y solución

  • Reconocimiento de una configuración no estándar de ZFS
    • Conectar la laptop y el JBOD por USB es un caso de uso algo no estándar para ZFS
    • Recibió advertencias al respecto de la comunidad de Reddit
  • Problemas iniciales
    • Surgieron problemas de ZFS cuando garage realizaba gran cantidad de lecturas y escrituras
    • En la configuración inicial, los metadatos de SQLite también se almacenaban en el JBOD/ZFS
  • Solución del problema
    • Movió los metadatos al almacenamiento interno de la laptop
    • Después de eso, los problemas de ZFS se resolvieron y el sistema funcionó de forma estable

3 comentarios

 
shakespeares 2025-10-07

Intentar hacer self-hosting ya de por sí es impresionante.

 
rtyu1120 2025-10-07

Aunque el rango de precios es muy distinto, parece que la placa base de Framework se ha convertido en la Raspberry Pi moderna.

 
GN⁺ 2025-10-07
Opinión de Hacker News
  • Si tienes solo la tarjeta madre sin pantalla, también podrías ponerla en un gabinete dedicado como el de CoolerMaster enlace al gabinete CoolerMaster para Framework
    • Están realmente geniales, pero lo que yo quería resaltar es que esta laptop en sí funciona muy bien, no hace ruido de ventilador y casi no se calienta, además consume muy poca energía cuando la carga es baja; creo que esas son las razones por las que encaja tan bien para este uso
    • Comparto el enlace al gabinete en el marketplace de Framework enlace al gabinete en el marketplace de Framework, puse una tarjeta madre vieja en ese gabinete después de hacer un upgrade, la monté detrás de un monitor con un soporte VESA y la usé también como PC de escritorio, y ahora la uso como HTPC (PC de cine en casa), estoy muy satisfecho
    • Un mini rack de 10 pulgadas también es una buena alternativa DeskPi RackMate mini rack de 10 pulgadas
  • Me interesan más los detalles técnicos; no tanto para copiar exactamente lo mismo, sino para entender cómo configuraste el pool de ZFS y si Garage se encarga de armar todo por sí solo, si hay mirroring involucrado o si son pools individuales sincronizándose entre discos distintos. Yo quiero armar un NAS barato con 2 discos USB, y estoy pensando si hacerlo con un mirror de ZFS, si crear 2 pools independientes y usar uno como respaldo del otro, o si irme por SnapRAID para mezclar discos viejos y aprovechar al máximo el hardware
    • Si estás decidiendo entre mirror de ZFS y pools independientes, con el mirror obtienes protección contra bit rot y autorreparación (scrub), además de mejor velocidad de lectura. Si solo tienes dos discos duros de tamaño parecido, también puedes agregar un vdev mirror al pool existente con ZFS o crear un nuevo pool de respaldo. Solo hace falta que los dos discos que van en el mirror tengan tamaños similares; no es necesario que todos los discos del pool sean iguales
    • Garage no está atado a una forma específica y puede funcionar perfectamente sin ZFS. Instalé ZFS por separado en Ubuntu y luego instalé Garage. Configuré ZFS de forma simple como RAID5/raidz1. No soy experto, pero como la ocupación se acerca al 33%, estoy volviendo a pensar esa parte. Me acordé de un comentario casi mágico que vi hace tiempo en HN: “como siento que para algunos datos importantes puedo tolerar perder unas cuantas horas, en vez de mirror armé dos pools independientes de un solo disco, saco snapshots del pool principal cada pocas horas y los envío al pool de respaldo con zfs send/recv”. Siento que ese flujo se adapta mejor a mi caso de uso, y originalmente RAID5 era para cubrir la caída de un disco, pero replicar lo mismo en otra ubicación cuesta bastante (~$1,000 USD), así que todavía no lo he implementado
  • Es la primera vez que oigo hablar de Garage y me parece bastante interesante. En el trabajo uso mucho S3, y para respaldos de mi homelab personal he usado borg con borgbase. Me pregunto si con garage se podría conectar un nodo local con AWS Glacier para guardar de forma redundante una biblioteca multimedia grande y barata, y también quiero saber si todo el tráfico de lectura sale desde el nodo local. En TFA no se habla mucho de experiencias reales con Garage, así que me gustaría escuchar opiniones de gente que lo use de verdad para self-hosting. Edit: ya vi que no se puede usar con Glacier, porque tendría que montarse como sistema de archivos en la instancia EC2 que ejecuta el binario de Garage; mejor simplemente programar respaldos a Glacier con borg/restic
    • Otra alternativa es ZeroFS, que puede guardar datos directamente en S3 ZeroFS GitHub
    • También puedes integrarlo con AWS S3 y aplicar políticas agresivas de lifecycle para mover automáticamente los datos a Glacier después de poco tiempo; en un trabajo anterior lo configuramos así. Tuve experiencia moviendo datos del almacenamiento estándar a Glacier después de unos días; si fuera tu caso, bastaría con poner X en 1 día
    • En realidad no tuve que interactuar directamente con Garage; con herramientas del API de S3 como awscli, s3cmd, rclone y Boto3 fue suficiente. Garage se configuró fácilmente con apenas unos cuantos comandos y, una vez en marcha, siguió funcionando solo durante 4 meses, así que en ese aspecto me dejó muy satisfecho
  • Quería compartir un caso de self-hosting silencioso y exitoso
    • Me pregunto si este JBOD está hecho con SSD, porque con esa cantidad de HDD podría ser bastante ruidoso
    • Antes me parecía curioso que “tener tu propia computadora y correr cualquier cosa en ella” se describiera con el término “self-hosting”. Da la impresión de que vivimos en una época en la que todas las computadoras ya son de otros, y por eso ahora hay que remarcar explícitamente cuando usas la tuya
  • Creo que yo me sentiría más seguro con un Dell T30 viejo y 2 Seagate Exos de 10 TB en ZFS RAID1 (mirror). Con el enfoque propuesto sentiría ansiedad todo el tiempo aunque hubiera respaldos diarios. El Dell T30 tampoco me daría tranquilidad total, pero al menos sería más fácil conectar los discos a otro equipo y habría menos riesgo de que un cable se suelte. Aun así, Garage se ve bastante bien, gracias
    • Yo también he usado ZFS durante bastante tiempo y llegué a la conclusión de que con muchos datos puedo tolerar perder unas cuantas horas. Así que, en vez de mirror, armé dos pools independientes de un solo disco: snapshots automáticos cada pocas horas en el pool principal ⇒ replicación al pool de respaldo con zfs send/recv. Eso además permite mezclar discos con flexibilidad (por ejemplo, uno SSD y otro HDD), aunque hay que aceptar compromisos en velocidad de lectura y tiempo de disponibilidad. También puedes usar un disco externo como disco de respaldo y conectarlo cada ciertos días. Para los datos importantes sí tengo un pool RAID con mirror. Muchos artículos sobre ZFS se enfocan en RAID, pero siento que hay poca información sobre configuraciones mínimas de hardware como la que mencioné arriba
  • No estoy seguro de que Framework aporte algo especialmente distinto aquí; yo hospedo algo parecido con un RPi5 y unos cuantos discos conectados. Uso lvm2 en vez de ZFS y funciona bien en el RPi5; ZFS consume demasiada RAM y no me parece adecuado para este caso de uso
  • Me encanta Garage, simplemente funciona. Tengo Garage corriendo en unas cuantas Odroid HC2 viejas para respaldos de Velero en k8s, y desde que lo configuré no he tenido que tocarlo; sigue manteniéndose solo
  • Me alegra ver que se habla de Garage; yo también estuve decidiendo entre Garage y SeaweedFS como alternativa self-hosted compatible con S3, y en mi experiencia SeaweedFS fue más cómodo porque requería menos configuración manual que Garage
  • Gran resultado; yo también estoy intentando reutilizar una tarjeta madre de Framework después de cambiarla, dedicada solo a respaldos NAS. Me gustaría saber más detalles del setup de ZFS; quiero usarlo solo como espacio para snapshots, pero me preocupa la velocidad de la conexión por USB y perder datos si se desconecta por accidente
  • Hay una discusión anterior sobre Garage Hacker News Previous Discussion