1 puntos por GN⁺ 2024-07-05 | 1 comentarios | Compartir por WhatsApp
  • Es un experimento para reemplazar una vieja unidad de red tipo router con OpenWRT por una combinación SBC+HDD, manteniendo samba, git, rsyncd y un repo dnf, e intentando reducir los cuellos de botella
  • La Libre Computer AML-S805X-AC ofrece, en una placa de €20, ARM Cortex-A53 de 4 núcleos, 1GB de RAM, arranque por USB y soporte para Debian, pero la LAN es de 100Mb y los 2 USB-A se quedan en USB 2.0
  • El costo total, sin contar el HDD, es bajo: unos €43; aun así, hacen falta un gabinete para HDD, una fuente de alimentación, un cable micro-USB y, opcionalmente, un dongle TTL-to-USB
  • La imagen oficial basada en Debian 12 usa una partición EFI dentro de MBR y una partición raíz btrfs; el redimensionamiento automático en el primer arranque funciona de forma inestable y lenta en dongles USB
  • En el gabinete para HDD JMicron JMS578 se evitó un error de UAS y se eliminaron las demoras, pero en ext4 el rendimiento ronda apenas 23.95MB/s, así que es difícil recomendarlo salvo que haya una razón fuerte, como ahorrar energía

Reemplazo de un router OpenWRT por un NAS con SBC

  • El equipo anterior era un router viejo con un HDD conectado y, después de instalarle OpenWRT, se usaba no como router sino como unidad de red
  • El equipo nuevo debía mantener samba, git, rsyncd y el repo dnf tal como estaban, pero funcionar más rápido
    • El router anterior tenía una CPU débil y sufría con rsync sobre SSH
    • Por falta de RAM, se trababa en commits de git push que incluían binarios de más de 15MB
  • La opción candidata fue la placa AML-S805X-AC de Libre Computer
    • Tiene puerto LAN, pero solo soporta hasta 100Mb
    • Sus 2 puertos USB-A solo soportan USB 2.0
    • ARM Cortex-A53 de 4 núcleos, 1GB de RAM, arranque por USB y soporte para Debian reciente
    • Se puede comprar sin mayores dificultades de disponibilidad

Especificaciones de red bajas y uso real

  • Una red de 100Mb es de bajas especificaciones para los estándares actuales, pero el uso principal era mantener una copia de un directorio con unos 200 mil archivos pequeños
  • Incluso si la SBC soportara USB 3.0, se consideró que una red de 1Gb difícilmente habría aumentado mucho la velocidad de sincronización
  • La placa por sí sola no alcanza para armar el NAS, por lo que hicieron falta piezas adicionales
    • Los puertos USB-A de la placa entregan como máximo 900mA por puerto
    • Hacía falta un gabinete para HDD con alimentación externa
    • Hacían falta una fuente de alimentación de al menos 3A y un cable micro-USB capaz de manejar 3A

Configuración de €43 y armado físico

  • El costo total, sin contar el HDD, fue de €43
    • SBC: €20
    • Gabinete para HDD: €12
    • Fuente de alimentación de 3A: €5
    • Cable micro-USB: €3
    • 4 tornillos y 12 tuercas: €0
    • Dongle TTL-to-USB: €3, opcional porque la placa tiene salida HDMI
  • El HDD no se incluyó en el costo, asumiendo que ya se tenía uno de repuesto
  • El gabinete para HDD se compró pensando que era una pequeña caja plástica para 2.5 pulgadas, pero en realidad era una caja para 3.5 pulgadas
  • Por el espacio dentro del gabinete, se decidió meter también la SBC dentro del gabinete del HDD

Arranque y asperezas de la imagen de Debian

  • Se conectó un dongle TTL-to-USB al GPIO de la placa y se accedió con screen
$ sudo screen /dev/ttyUSB0 115200
  • La salida inicial mostraba Libre Computer AML-S805X-AC, Amlogic Meson GXL y DRAM: 512 MiB (effective 1 GiB)
    • Luego de grabar la imagen de Debian 12 en una unidad flash con dd, free(1) reconoció 1GB
  • Las imágenes oficiales de Libre Computer están basadas en Debian stock
    • La imagen de disco mide 2.25GiB
    • Hay una partición EFI dentro de un esquema MBR
    • La segunda partición es btrfs y se redimensiona automáticamente en el primer arranque para ocupar el espacio restante
  • El redimensionamiento automático en dongles USB no fue estable
    • De tres dongles USB disponibles, uno se quedó colgado permanentemente durante el redimensionamiento
    • Otro terminó la operación, pero después se volvió muy lento
  • También queda como problema que el repositorio usado para generar las imágenes del OS no esté publicado
    • La explicación relacionada dice que el distribution builder es una oferta comercial propietaria que incluye IP de clientes e integraciones, por lo que no puede publicarse
    • También incluye el consejo de que, como casi no se cambian cosas más allá de algunos ajustes frente a una distribución estándar, para analizar la imagen conviene hacer un bootstrap y luego ver el diff

Errores del gabinete para HDD y rendimiento final

  • Después de conectar el gabinete para HDD a la placa, el proceso fue mucho más rápido que con el dongle USB, pero seguía habiendo demoras inesperadas en puntos aleatorios
  • Justo después de iniciar sesión, el kernel producía un error uas_eh_abort_handler
  • Según el resultado de lsusb, el interior del gabinete era un dispositivo JMicron JMS578 SATA 6Gb/s
Bus 001 Device 002: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS578 SATA 6Gb/s
  • La solución fue agregar usb-storage.quirks=152d:0578:u a la línea de comandos del kernel para desactivar UAS
    • Después de esta medida, las demoras desaparecieron
    • Las cifras del benchmark no fueron impresionantes
  • En una conexión USB 2.0, el resultado de escribir 524MB con dd, incluyendo sync, fue real 0m21.876s
    • El valor calculado para una partición ext4 es 23.95MB/s
  • En conclusión, es difícil recomendar esta configuración
    • Una de las razones para elegir una SBC era reducir el consumo eléctrico
    • Si no hay una limitación similar, hay muy pocos motivos para sufrir con un dispositivo barato y quisquilloso

1 comentarios

 
GN⁺ 2024-07-05
Opiniones de Hacker News
  • El tip secreto son las PC de escritorio/NUC Fujitsu antiguas. En Alemania, muchas empresas las reemplazan periódicamente, así que en eBay de segunda mano salen baratas.
    Si el consumo eléctrico importa, al buscar "$model energy consumption white paper" aparecen datos bastante precisos, como el consumo en reposo; un ejemplo es https://sp.ts.fujitsu.com/dmsp/Publications/public/wp-energy....
    Un NUC, después de activar en Linux el ahorro de energía del controlador SATA, bajó su consumo en reposo hasta 5 W, aunque el PDF decía 9 W.
    Usar una PC real en vez de una computadora de placa única cualquiera ofrece mucha mejor conectividad, capacidad de expansión y soporte de software; la mayoría de las computadoras de placa única quedan atadas al kernel precario de su lanzamiento, y luego hay que armar algo que parezca una distribución moderna mezclando un fork de Armbian abandonado por el proveedor con un kernel viejo.

    • Parkytowers es un sitio que reúne información sobre reutilización de thin clients de varios tipos, así que es una mina de oro para encontrar consumo eléctrico, compatibilidad con Linux y posibles modificaciones de hardware: https://www.parkytowers.me.uk/thin/hware/hardware.shtml
    • Si esta información se difunde demasiado, los precios del mercado de segunda mano subirán y puede perjudicar a quienes buscan lotes de PC ultrabaratas.
      Curiosamente, es difícil rechazar recursos de cómputo baratos.
    • Compré un thin client Lenovo por unos 200 dólares y lo uso como servidor casero con Debian; sirve muy bien para casi todo y tiene una relación precio-rendimiento mucho mejor que una Raspberry Pi o una mini PC nueva.
      La única desventaja es que no hay espacio para varios discos de 2,5/3,5 pulgadas, pero eso casi es cuestión de gustos.
    • En Australia, cada semana aparecen en sitios de subastas miles de Dell 7060 SFF y PC 7060 Micro que salen de leasing.
      Las Dell que están saliendo ahora por fin de leasing también tienen funciones modernas como CPU Intel de 8.ª generación, TPM y USB-C.
    • También he escuchado el mismo consejo sobre las PC SFF de Dell/HP. Como referencia, el enlace requiere inicio de sesión con usuario/contraseña.
  • Los intentos de NAS tipo Raspberry Pi me generan dudas, sobre todo si implican usar varios adaptadores de corriente y recortar la carcasa. Todo parece requerir demasiado trabajo y ser lento, y aun así da la sensación de que “ni siquiera es tan barato”.
    Guardar datos personales importantes en unidades USB también se siente algo riesgoso. No va a quemar la casa, pero igual incomoda.
    Las verdaderas ventajas son el formato pequeño y el “bajo” consumo eléctrico, pero aunque todo cueste 43 dólares, uno termina preguntándose si vale la pena aguantar una red de 100 Mbit por ahorrar unos pocos dólares, o pagar 150 dólares y usar 2.5Gig.
    Hay muchas alternativas, como Fujitsu Futro S920 (menos de 75 dólares usado, unos 10 W), FriendlyElec NanoPI R6C (menos de 150 dólares, unos 2 W, https://www.friendlyelec.com/index.php?route=product/product...), FriendlyElec Nas Kit (menos de 150 dólares, unos 5 W, https://www.friendlyelec.com/index.php?route=product/product...), Dell T20/T30 (menos de 100 dólares usados, unos 25 W), Fujitsu Celsius W570 (menos de 100 dólares usado, unos 15 W).
    Mi NAS/servidor casero personal usa Fujitsu D3417-B, Intel Xeon 1225v5, 64 GB de RAM ECC, WD SN850x 2 TB NVMe y Pico PSU 120; es más caro, pero estable y potente, y su consumo en reposo es de menos de 10 W.

    • Es como comparar manzanas con naranjas. La computadora de placa única que usó el autor consume 0,75 W en reposo y 4 W a carga máxima.
  • Cuando todo funciona bien, cualquiera es experto en almacenamiento. Cuando algo falla, uno siente que debería haber agregado un disco duro más al arreglo RAID, haber tenido otro NAS para backups o haber preparado otro sitio externo al que enviar los datos.
    Yo ya no voy por lo barato. Aun así, entiendo el atractivo.

    • Todo esto es cuestión de estrategia, así que el rango de precio del equipo no influye.
      Si necesitas más discos, compras más. Si necesitas un NAS para backups, compras otro. Si necesitas una copia offsite, compras espacio o compras un NAS y discos para una ubicación externa.
      El precio del equipo no cambia nada de eso.
    • Depende de qué estés almacenando.
      Si son documentos de trabajo, registros contables o fotos familiares, querrás mantenerlos seguros.
      Pero si el NAS solo contiene 20 TB de películas y programas de TV pirateados, es mucho más cómodo comprar las unidades más baratas y ver qué pasa.
    • Los jóvenes de hoy no tienen idea de lo seguido que fallaban los discos antes.
    • Sincronizo unas cuantas unidades externas individuales por USB cada 1 o 2 semanas, a la antigua. Es sneakernet dentro de la casa.
      Con herramientas como Freefilesync es fácil y rápido, y también se pueden ver a simple vista las cosas borradas por accidente.
      Es muy barato y me ha funcionado bien durante más de 10 años. He tenido pérdidas de datos por fallas de unidades, errores de usuario y bugs/errores de software no intencionales, pero no hubo problema.
    • Entonces basta con comprar 2 de los baratos. De todos modos necesitas backup.
  • Me da curiosidad cómo se accede a los archivos al configurar un NAS así. ¿Es NFS o SFTP?
    También me da curiosidad cómo se accede desde fuera de casa. ¿Es con una VPN siempre conectada, o hay alguna buena forma de hacer NAT hole punching?
    Syncthing se parece a lo que quiero en el sentido de que permite que todas las computadoras sincronicen los mismos archivos sin importar en qué red estén, pero siempre intenta copiar todos los archivos. Lo que quiero es dejar los archivos solo en el NAS y acceder a ellos desde cualquier lugar.
    Nextcloud también se parece a lo que quiero, pero cuando lo probé hace tiempo me pareció inestable y poco confiable, y daba la impresión de hacer demasiadas cosas que no necesito.

    • Respondiendo en orden: en mi NAS uso NFS y SMB para cubrir la mayoría de los clientes.
      Para el acceso remoto uso un bastión SSH expuesto mediante Tailscale. Es una VPN, pero como está basada en WireGuard no molesta demasiado. Eso sí, mi subida es gigabit, así que puede depender del entorno.
      El NAS tiene 28 TB de espacio y todavía estoy pensando la estrategia de copias de seguridad. Por ahora solo tiene Dropbox y varios archivos misceláneos que no me importaría perder.
      También uso bastante Dropbox como otro servicio, pero hoy en día 2 TB no es tanto. Además, se pone quisquilloso al superar los 500.000 archivos.
      Esta es mi configuración personal y creo que puede variar bastante según la persona.
    • Synology hace todo eso.
      Uso dos, una en casa y otra en la oficina, y mi única queja es que a veces se pasa un poco con lo de “a prueba de tontos”. Aun así, la GUI web es excelente.
      También tiene software gratuito que atraviesa NAT e IP dinámica, y funciona bien (quickconnect.to). Lo uso principalmente como SFTP y servidor multimedia.
    • Con Syncthing sincronizo conjuntos de datos pequeños entre la laptop, el teléfono y el NAS. Con eso cubro la mayor parte del trabajo productivo y creativo.
      En la LAN simplemente uso SMB, y para mis necesidades es suficiente.
      Para acceder remotamente a mi colección de ISO de Linux uso Plex.
    • Normalmente, dentro de la LAN solo uso recursos compartidos SMB. Para mis necesidades modestas es suficiente.
      Antes también usaba WebDAV o FTP, y depende del caso de uso concreto.
      Fuera de casa, una VPN es indispensable. Hoy en día es demasiado riesgoso dejar solo port forwarding.
    • La solución fácil para la parte de VPN es Zerotier o Tailscale. Si no recuerdo mal, Zerotier usa chacha20 para el cifrado, así que es más rápido que AES, especialmente en computadoras de placa única con energía limitada.
  • En la parte donde dice que hay que agregar usb-storage.quirks=152d:0578:u a la línea de comandos del kernel para desactivar UAS, yo simplemente lo habría tirado a la basura y me habría rendido.
    No sé cómo la gente tiene la paciencia para depurar estos problemas hasta el final. Entiendo que el objetivo de este proyecto es hacerlo barato y simple, pero el costo en tiempo es alto y no tiene nada de simple.

  • El generador de imágenes de esta placa se ve bastante sospechoso.
    La explicación de que “el generador de distribuciones es una oferta comercial propietaria que no puede publicarse porque incluye muchas IP e integraciones de clientes” se siente como un inyector de cadena de suministro.

    • Después de leer el enlace https://hub.libre.computer/t/source-code-git-repository-for-..., mi impresión de Libre Computer empeoró bastante.
      Que traiga UEFI y pueda usar imágenes genéricas tal cual es una gran ventaja, pero convertir la imagen base y especialmente el firmware en un proceso propietario es una señal de alerta tan grande que vuelve sospechoso todo el conjunto.
      Si el firmware fuera libre y de código abierto, y se pudiera compilar directamente solo con entradas libres y de código abierto, podría estar bien. Pero solo por esa discusión no queda claro.
      El soporte de imágenes genéricas gracias a UEFI es una gran ventaja, pero el hecho de que no sea el valor predeterminado me hace dudar de los valores y la cultura de la empresa.
    • Es otra razón para evitar el cargo cult de imitar un “NAS” para uso doméstico. Basta con poner los discos en la computadora.
  • Puede que sea una pregunta ignorante, pero me pregunto por qué construir un servidor NAS sin memoria ECC.

    • Porque la no ECC es más barata. No se me ocurre otra razón. Cualquier otra explicación sería una mentira para encubrir que se busca hacerlo barato.
    • Porque un NAS hace muy pocas cosas. No es que le vayas a poner 4 TB de RAM y ejecutar varias bases de datos.
      Incluso en servidores empresariales es discutible si ECC realmente es necesario.
  • Bastante genial. Parece encajar bien con ese caso de uso. Yo gastaría un poco más y elegiría algo con puerto gigabit.
    Por los videos de Jeff Geerling, parece que incluso con estas pequeñas computadoras de placa única se puede montar un NAS con muy buen rendimiento.

    • Con computadoras Arm de placa única de generación reciente, especialmente si solo vas a correr un NAS, en realidad alcanza bastante bien.
      Con una Pi 4 o Pi 5, o una placa Rockchip con RK3566 o RK3588, puedes conectar un disco duro/SSD por USB, o en la mayoría de los modelos actuales agregar una unidad M.2 o un adaptador SATA para disco duro/SSD. Se puede correr RAID sin grandes problemas a 1 Gbps, y a veces incluso a 2,5 Gbps.
      Hay quienes usan OpenMediaVault, y está bien. Mis NAS los tengo configurados con Ansible + ZFS sobre Debian bare metal, y para mí ese método es más simple de administrar: https://github.com/geerlingguy/arm-nas
      Si no fuera por Raspberry Pi, elegiría Radxa o Libre Computer. Ambas tienen imágenes decentes para sus placas recientes, pero casi siempre termino teniendo problemas con la salida HDMI, así que conviene estar preparado para configurarlas por SSH o consola serial.
  • Como en otros comentarios de este hilo, la relación costo-beneficio de las PC de oficina SFF reacondicionadas que aparecen en el mercado de segunda mano es realmente enorme.
    Hace tiempo compré una HP de la línea ultradesk muy barata y, cuando me llegó, resultó no ser usada sino excedente de inventario, así que era nueva, y costó alrededor del 20% del precio de venta al público. Es muy silenciosa y también muy eficiente en consumo de energía.
    La CPU no es de gama alta, pero al ser de 10.ª u 11.ª generación es perfecta para codificación por hardware en un servidor multimedia.
    No tiene todo el hardware para RAID y varios discos duros, pero con un disco de arranque NVMe y un disco duro de 16 TB me alcanza para mis necesidades. Como es contenido multimedia, no me preocupa perderlo.
    Estas cajas son tan baratas que puedes tener varias, cada una encargada de tareas distintas dentro de un mismo “despliegue”. En algún momento tuve una caja para NAS, otra para servidor multimedia, otra para cámaras IP de CCTV y otra para homeassistant, y todas funcionaban bien.
    Por suerte no fui tan masoquista como para intentar algo tipo Kubernetes para orquestear varios equipos juntos.
    Obviamente, esto es pensando en un homelab/uso personal. No lo recomiendo para usos más serios. Pero estas máquinas simplemente funcionan bien y, al ser PC x86 estándar, eliminan muchos de los problemas de configuración de hardware y compatibilidad que aparecen en plataformas más especializadas.

    • En vez de un solo RAID 1, probablemente sería mejor tener 2 dispositivos de un solo disco, cada uno con una copia de los datos.
  • Es irónico que se llamen Libre Computer y no publiquen herramientas para que los usuarios puedan crear sus propias imágenes.