- Expérience visant à remplacer un ancien lecteur réseau basé sur un routeur OpenWRT par une combinaison SBC + HDD afin de conserver samba, git, rsyncd et un dépôt dnf tout en réduisant les goulets d’étranglement
- Le Libre Computer AML-S805X-AC propose, pour 20 €, un processeur ARM Cortex-A53 quadricœur, 1 Go de RAM, le démarrage sur USB et la prise en charge de Debian, mais le LAN est limité à 100 Mb et les deux ports USB-A restent en USB 2.0
- Le coût total hors HDD descend à environ 43 €, mais il faut aussi un boîtier HDD, une alimentation, un câble micro-USB et éventuellement un dongle TTL-vers-USB
- L’image officielle basée sur Debian 12 utilise une partition EFI dans un MBR et une partition racine btrfs, avec un redimensionnement automatique au premier démarrage qui fonctionne de manière instable et lente sur les clés USB
- En contournant les erreurs UAS sur un boîtier HDD JMicron JMS578, la latence a disparu, mais les performances restent autour de 23,95 Mo/s avec ext4, ce qui rend l’ensemble difficile à recommander sans forte contrainte comme les économies d’énergie
Remplacer un routeur OpenWRT par un NAS sur SBC
- L’équipement existant était un ancien routeur avec un HDD connecté, sur lequel OpenWRT était installé, utilisé non pas comme routeur mais comme lecteur réseau
- Le nouvel équipement devait conserver samba, git, rsyncd et un dépôt dnf tout en étant plus rapide
- L’ancien routeur avait un CPU trop faible et peinait avec
rsync via SSH
- Le manque de RAM bloquait les
git push contenant des binaires de plus de 15 Mo
- Le choix s’est porté sur la carte AML-S805X-AC de Libre Computer
- Elle dispose d’un port LAN, mais limité à 100 Mb
- Les deux ports USB-A ne prennent en charge que l’USB 2.0
- ARM Cortex-A53 quadricœur, 1 Go de RAM, démarrage USB, prise en charge d’un Debian récent
- Disponible à l’achat sans difficulté d’approvisionnement particulière
Spécifications réseau modestes et usage réel
- Un réseau 100 Mb est modeste selon les standards actuels, mais l’usage principal consistait à maintenir une copie d’un répertoire contenant environ 200 000 petits fichiers
- Même si le SBC avait pris en charge l’USB 3.0, un réseau 1 Gb n’aurait probablement pas beaucoup accéléré la synchronisation
- La configuration NAS ne se limitait pas à la carte seule et nécessitait des composants supplémentaires
- Les ports USB-A de la carte fournissent jusqu’à 900 mA chacun
- Il fallait un boîtier HDD avec alimentation externe
- Une alimentation d’au moins 3 A et un câble micro-USB capable de supporter 3 A étaient nécessaires
Une configuration à 43 € et l’assemblage physique
- Le coût total hors HDD s’élevait à 43 €
- SBC : 20 €
- Boîtier HDD : 12 €
- Alimentation 3 A : 5 €
- Câble micro-USB : 3 €
- 4 vis et 12 écrous : 0 €
- Dongle TTL-vers-USB : 3 €, optionnel car la carte dispose d’une sortie HDMI
- Le HDD n’a pas été inclus dans le coût, en partant du principe qu’un disque de rechange était déjà disponible
- Le boîtier HDD avait été acheté par erreur en pensant à un petit boîtier plastique pour disque 2,5 pouces, mais il s’agissait en réalité d’un boîtier pour 3,5 pouces
- À cause de l’espace disponible dans le boîtier, il a été décidé d’y placer aussi le SBC
Démarrage et aspects encore bruts de l’image Debian
- Un dongle TTL-vers-USB a été connecté au GPIO de la carte, puis l’accès s’est fait avec
screen
$ sudo screen /dev/ttyUSB0 115200
- La sortie initiale affichait Libre Computer AML-S805X-AC, Amlogic Meson GXL et
DRAM: 512 MiB (effective 1 GiB)
- Ensuite, après avoir écrit l’image Debian 12 sur une clé USB avec
dd, free(1) reconnaissait bien 1 Go
- L’image officielle de Libre Computer est basée sur un Debian standard
- L’image disque fait 2,25 Gio
- Elle contient une partition EFI dans une structure MBR
- La deuxième partition est en btrfs et se redimensionne automatiquement au premier démarrage pour occuper l’espace restant
- Sur les clés USB, ce redimensionnement automatique n’a pas été fiable
- L’une des trois clés USB disponibles s’est figée définitivement pendant le redimensionnement
- Une autre a terminé l’opération, mais est ensuite devenue très lente
- Le fait que le dépôt utilisé pour générer l’image système ne soit pas public reste aussi un problème
- L’explication associée indique que le distribution builder est une offre commerciale propriétaire intégrant de l’IP client et des éléments d’intégration, ce qui empêche sa publication
- Il est aussi conseillé, puisque seuls quelques réglages différencient l’image d’une distribution standard, de faire un bootstrap puis un diff pour l’analyser
Erreurs du boîtier HDD et performances finales
- Après connexion du boîtier HDD à la carte, le processus était bien plus rapide qu’avec les clés USB, mais il subsistait encore des latences inattendues à des endroits aléatoires
- Juste après la connexion, le noyau signalait une erreur
uas_eh_abort_handler
- La sortie de
lsusb montrait qu’à l’intérieur du boîtier se trouvait un périphérique JMicron JMS578 SATA 6Gb/s
Bus 001 Device 002: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS578 SATA 6Gb/s
- La solution a consisté à ajouter
usb-storage.quirks=152d:0578:u à la ligne de commande du noyau afin de désactiver UAS
- Après cela, la latence a disparu
- Les chiffres du benchmark ne restaient pas impressionnants
- En USB 2.0, l’écriture de 524 Mo avec
dd, sync compris, a donné real 0m21.876s
- Le calcul sur une partition ext4 correspond à 23,95 Mo/s
- Au final, cette configuration est difficile à recommander
- L’une des raisons du choix du SBC était la réduction de la consommation électrique
- En l’absence de contraintes comparables, il y a peu de raisons de s’imposer les difficultés d’un appareil d’entrée de gamme aussi capricieux
1 commentaires
Avis sur Hacker News
L’astuce secrète, ce sont les anciens PC de bureau/NUC Fujitsu. En Allemagne, beaucoup d’entreprises les remplacent régulièrement, ce qui les rend bon marché d’occasion sur eBay.
Si la consommation électrique est importante, cherchez
"$model energy consumption white paper": on trouve des données assez précises, notamment sur la consommation au repos ; par exemple https://sp.ts.fujitsu.com/dmsp/Publications/public/wp-energy....Sur un NUC, après avoir activé l’économie d’énergie du contrôleur SATA sous Linux, la consommation au repos est descendue à 5 W, alors que le PDF indiquait 9 W.
Utiliser un vrai PC plutôt qu’un ordinateur monocarte quelconque offre une bien meilleure connectique, évolutivité et prise en charge logicielle ; la plupart des ordinateurs monocarte restent coincés avec le noyau bancal de leur lancement, et il faut bricoler un fork Armbian abandonné par le vendeur, avec un vieux noyau, pour le faire passer pour une distribution récente.
Curieusement, il est difficile de refuser de la puissance de calcul pas chère.
Le seul inconvénient est l’absence d’espace pour plusieurs disques 2,5/3,5 pouces, mais c’est presque une question de préférence.
Les Dell qui arrivent maintenant en fin de leasing disposent aussi de fonctionnalités modernes comme des CPU Intel de 8e génération, TPM et USB-C.
Les tentatives de NAS à base de Raspberry Pi me laissent sceptique, surtout quand il faut utiliser plusieurs adaptateurs secteur et découper le boîtier. Tout cela demande trop de bricolage, reste lent, et ne donne même pas vraiment l’impression d’être « si bon marché ».
Stocker des données personnelles importantes sur des disques USB me semble aussi quelque peu risqué. Ça ne mettra pas le feu à la maison, mais ça laisse quand même un malaise.
Les vrais avantages sont le petit format et la « faible » consommation, mais même si l’ensemble coûte 43 dollars, on se demande s’il vaut mieux supporter un réseau 100 Mbit pour économiser quelques dollars, ou payer 150 dollars pour du 2,5 Gig.
Les alternatives ne manquent pas : Fujitsu Futro S920 (moins de 75 dollars d’occasion, environ 10 W), FriendlyElec NanoPI R6C (moins de 150 dollars, environ 2 W, https://www.friendlyelec.com/index.php?route=product/product...), FriendlyElec Nas Kit (moins de 150 dollars, environ 5 W, https://www.friendlyelec.com/index.php?route=product/product...), Dell T20/T30 (moins de 100 dollars d’occasion, environ 25 W), Fujitsu Celsius W570 (moins de 100 dollars d’occasion, environ 15 W).
Mon NAS/serveur domestique personnel utilise une Fujitsu D3417-B, un Intel Xeon 1225v5, 64 Go de RAM ECC, un WD SN850x 2 To NVMe et une Pico PSU 120 ; c’est plus cher, mais stable, puissant, et la consommation au repos est inférieure à 10 W.
Quand tout fonctionne bien, tout le monde est expert en stockage. Quand quelque chose tombe en panne, on se dit qu’on aurait dû ajouter un disque dur de plus à la grappe RAID, avoir un NAS supplémentaire pour les sauvegardes, ou encore disposer d’un site externe où envoyer les données.
Désormais, je ne vais plus vers le bas de gamme. Mais j’en comprends l’attrait.
S’il faut plus de disques, il suffit d’en acheter. S’il faut un NAS de sauvegarde, il suffit d’en acheter un autre. S’il faut une copie hors site, il faut acheter de l’espace ou acheter un NAS et des disques pour un emplacement externe.
La gamme de prix de l’appareil ne change rien ici.
S’il s’agit de documents professionnels, de dossiers comptables ou de photos de famille, on voudra les conserver en sécurité.
Mais si le NAS ne contient que 20 To de films et de séries TV piratés, il est beaucoup plus confortable d’acheter les disques les moins chers et de voir ce qui se passe.
Avec des outils comme Freefilesync, c’est simple et rapide, et on peut repérer visuellement les suppressions accidentelles.
C’est très bon marché et cela tient bien depuis plus de dix ans. J’ai connu des pannes de disque, des erreurs utilisateur et des pertes de données dues à des bugs/erreurs logiciels involontaires, sans problème.
Je me demande comment on accède aux fichiers quand on configure un NAS comme ça. C’est du NFS ou du SFTP ?
Je me demande aussi comment on y accède depuis l’extérieur de la maison. Un VPN connecté en permanence, ou existe-t-il une bonne méthode de NAT hole punching ?
Syncthing ressemble à ce que je veux dans le sens où il permet de synchroniser les mêmes fichiers entre tous les ordinateurs, quel que soit le réseau sur lequel ils se trouvent, mais il essaie toujours de copier tous les fichiers. Ce que je veux, c’est que les fichiers restent uniquement sur le NAS et qu’on puisse y accéder de partout
Nextcloud ressemble aussi à ce que je veux, mais quand je l’ai essayé par le passé, il semblait instable et difficile à faire confiance, et avait l’air de faire beaucoup trop de choses dont je n’avais pas besoin
Pour l’accès à distance, j’utilise un bastion SSH exposé via Tailscale. C’est bien un VPN, mais comme il est basé sur WireGuard, ce n’est pas trop gênant. Cela dit, mon upload est en gigabit, donc ça peut dépendre de l’environnement
Le NAS dispose de 28 To d’espace et je réfléchis encore à la stratégie de sauvegarde. Pour l’instant, il ne contient que Dropbox et divers fichiers sans importance que je peux me permettre de perdre
J’utilise aussi pas mal Dropbox pour d’autres services, mais aujourd’hui 2 To, ce n’est pas énorme. En plus, il devient pointilleux dès qu’on dépasse 500 000 fichiers
C’est ma configuration personnelle, et j’imagine que ça varie beaucoup selon les gens
J’en utilise deux, une à la maison et une au bureau, et mon seul reproche est que la protection contre les erreurs d’utilisateur est un peu excessive. Cela dit, l’interface web est excellente
Il existe aussi un logiciel gratuit qui traverse le NAT et les IP dynamiques, et il fonctionne bien (quickconnect.to). Je l’utilise surtout comme serveur SFTP et serveur multimédia
Sur le LAN, j’utilise simplement SMB, et c’est suffisant pour mes besoins
Pour accéder à distance à ma collection d’ISO Linux, j’utilise Plex
Par le passé, j’ai aussi utilisé WebDAV ou FTP, et cela dépend de l’usage précis
Depuis l’extérieur de la maison, le VPN est indispensable. Aujourd’hui, se contenter de faire du port forwarding est trop risqué
Au passage où il faut ajouter
usb-storage.quirks=152d:0578:uà la ligne de commande du noyau pour désactiver UAS, personnellement je l’aurais simplement jeté à la poubelle et abandonnéJe ne comprends pas comment les gens trouvent la patience de déboguer ce genre de problème jusqu’au bout. Je comprends que l’objectif de ce projet soit de faire quelque chose de bon marché et simple, mais le coût en temps est élevé et ce n’est pas du tout simple
L’image builder de cette carte a l’air assez louche
L’explication selon laquelle « le constructeur de distribution est une offre commerciale propriétaire qui ne peut pas être publiée, car elle contient beaucoup de propriété intellectuelle client et d’intégrations » ressemble à un injecteur de supply chain
Le fait d’embarquer UEFI pour pouvoir utiliser directement des images standard est un gros avantage, mais rendre l’image par défaut, et surtout le firmware, dépendants d’un processus propriétaire est un énorme signal d’alerte qui rend l’ensemble suspect
Si le firmware est libre et open source, et qu’on peut le compiler soi-même uniquement à partir d’entrées libres et open source, cela pourrait être acceptable. Mais à en juger par cette discussion, ce n’est pas clair
La prise en charge des images standard grâce à UEFI est un gros avantage, mais le fait que ce ne soit pas le comportement par défaut me fait douter des valeurs et de la culture de l’entreprise
C’est peut-être une question naïve, mais je me demande pourquoi construire un serveur NAS sans mémoire ECC
Même sur les serveurs d’entreprise, la nécessité réelle de l’ECC reste discutable
Plutôt sympa. Ça semble bien adapté à ce cas d’usage. À ma place, je dépenserais un peu plus pour choisir une option avec un port gigabit
En regardant les vidéos de Jeff Geerling, on voit qu’on peut monter un NAS assez performant même avec ces petits ordinateurs monocartes
Avec un Pi 4 ou Pi 5, ou une carte Rockchip basée sur RK3566 ou RK3588, on peut brancher un disque dur/SSD en USB, ou, sur la plupart des modèles récents, ajouter un lecteur M.2 ou un adaptateur SATA pour disque dur/SSD. On peut faire tourner du RAID sans gros problème en 1 Gbit/s, et parfois même en 2,5 Gbit/s
Certaines personnes utilisent OpenMediaVault, et c’est correct. Mes NAS sont configurés avec Ansible + ZFS sur un Debian bare metal, et pour moi cette approche est plus simple à administrer : https://github.com/geerlingguy/arm-nas
Si je ne partais pas sur un Raspberry Pi, je choisirais probablement Radxa ou Libre Computer. Les deux ont de bonnes images pour leurs cartes récentes, mais on rencontre presque toujours des problèmes de sortie HDMI, donc il faut être prêt à configurer via SSH ou console série
Comme dans le reste de ce fil, le rapport qualité-prix des PC de bureau SFF reconditionnés qu’on trouve sur le marché de l’occasion est vraiment énorme
J’avais acheté autrefois un modèle de la gamme HP UltraDesk à très bas prix ; à la réception, ce n’était pas de l’occasion mais du stock excédentaire, donc un produit neuf, à environ 20 % du prix de vente. Très silencieux et avec une excellente efficacité énergétique
Le CPU n’est pas haut de gamme, mais comme il s’agit de 10e ou 11e génération, il est parfait pour l’encodage matériel d’un serveur multimédia
Il n’y a pas forcément tout le matériel nécessaire pour du RAID et plusieurs disques durs, mais un disque de démarrage NVMe et un disque dur de 16 To suffisent à mes besoins. Comme c’est du média, je ne m’inquiète pas de le perdre
Ces machines sont bon marché, donc on peut en avoir plusieurs, chacune avec un rôle différent dans un même « déploiement ». À une époque, j’avais une machine pour le NAS, une pour le serveur multimédia, une pour les caméras IP de vidéosurveillance, et une pour Home Assistant, et tout tournait très bien
Heureusement, je n’étais pas assez masochiste pour tenter quelque chose comme Kubernetes afin d’orchestrer plusieurs appareils ensemble
C’est évidemment dans une optique homelab/usage personnel. Je ne le recommanderais pas pour des usages plus sérieux. Mais ces machines fonctionnent tout simplement bien et, comme ce sont des PC x86 standard, elles évitent beaucoup de problèmes de configuration matérielle et de compatibilité qu’on rencontre avec des plateformes plus spécialisées
C’est ironique de s’appeler Libre Computer tout en ne publiant pas les outils permettant aux utilisateurs de créer leurs propres images