- 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
Intentar hacer self-hosting ya de por sí es impresionante.
Aunque el rango de precios es muy distinto, parece que la placa base de Framework se ha convertido en la Raspberry Pi moderna.
Opinión de Hacker News
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 igualeszfs 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 implementadozfs 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é arribalvm2en vez de ZFS y funciona bien en el RPi5; ZFS consume demasiada RAM y no me parece adecuado para este caso de uso