Depuis des annés je cherche un boitier de type NAS pour me faire un petit serveur résidentiel à base de FreeBSD + ZFS. Un truc que je peux poser dans un coin sans que ça choque, un truc compact, silencieux, simple. Mais en fait il y a mieux: détourner un vrai NAS !
J’ai remis le projet sur le tapis récemment parce qu’un de mes vieux serveurs hébergé pas chez moi (comprendre par là que sa caractéristique principale est d’être discret) est en train de claquer, et de plus j’ai un pool de deux gros disques ZFS bourré de documents importants qui moisit dans un coin depuis que sa machine hôte a été décomissionnée à l’insu de son plein gré. Je cherchais au choix soit un boitier type NAS mais pour y mettre une carte mère Mini-ITX et deux disques 3.5’, soit un truc magique à base de Single Board Computer mais avec 8 Go de RAM et deux ports SATA3, pas courant. Et sans succès.
En fait la solution était de prendre un vrai NAS x86-64 et remplacer l’OS livré par celui qui m’intéresse. En cherchant si je pouvais installer FreeBSD ou Linux sur un Synology, je suis tombé sur une discussion qui parlait de mettre FreeNAS sur un truc dont je n’avais jamais entendu parler: la gamme Fx-221 de TerraMaster, qui contient de 2 à 5 emplacements 3.5’ et possède plus ou moins de RAM selon le modèle.
J’ai l’impression que sur cette gamme de machines, très proche de celle équivamente chez Synology niveau hardware, le sport à la mode est justement d’installer l’OS Synology (beark), mais des gens tentent un peu plus original heureusement !
Donc je suis arrivé sur ce fil de discussion et mon sang n’a fait qu’un tour: FreeNAS est basé sur FreeBSD, c’est pour moi. Le fil nous apprend quelques trucs:
- Une clef USB contenant l’OS est scellée au pistolet à colle dans un port interne et qu’on peut la remplacer par une autre une fois dégluée,
- sur certains modèles le port HDMI n’est pas câblé jusqu’à l’extérieur du boitier et il faut un adaptateur à brancher sur un header (HDMI ou VGA) de la carte-mère,
- il faut un peu se battre avec le BIOS pour l’ordre de démarrage,
- on peut ajouter de la RAM jusqu’à 8 Go, un des posteurs a donné les caractéristiques précise de la barrette à acheter (SODIMM DDR3L 1600 1.35V CL11).
Ensuite je tombe sur un article de blog qui s’intéresse à l’installation de NixOS sur le même matériel, avec quelques petits renseignements supplémentaires:
- la clef USB ne servirait en fait que pour le boot (j’imagine que dans ce cas l’OS d’origine est installé au premier démarrage sur les disques durs juste après le formatage mais on s’en fout un peu),
- la sortie HDMI se coupe au bout de quelques secondes, l’auteur donc dû faire une net-install de son OS,
- le fonctionnement de l’unique ventilateur n’est pas lié à la température du CPU et il faut configurer des trucs sous Linux,
- et enfin l’auteur a pu avoir de la part de TerraMaster le code source du module noyau qui gère les LED d’activité des disques et en a refait un plus beau !
Quelques ombres au tableau mais ça ne me parait pas insurmontable. Sur Amazon justement le F2-221 est en promotion et les commentaires indiquent que la prise HDMI qui est condamnée sur les photos est en fait tout à fait utilisable. Décision est prise d’acheter le NAS et une barrette mémoire de 8 Go pour aller avec. Liens Amazon ci-dessous:
- TerraMaster F2-221 Serveur de Stockage en Nuage NAS 2 Baies Dual-Core 2.0Hz Stockage réseau Plex Media Server (sans Disque),
- Crucial RAM CT102464BF160B 8Go DDR3 1600 MHz CL11.
Colis arrivé en deux jours. Je ne sais pas si c’est une bonne idée mais je n’ai même pas branché le NAS pour savoir si il fonctionnait, il a directement été ouvert (tournevis cruciforme) dès le déballage. C’est un volume assez petit je l’imaginait beaucoup plus gros sur les photos, avec une coque en aluminium et les deux facades sont en plastique. Les tiroirs à disques ne respirent pas la solidité mais ce n’est pas très grave, ils sont équipés de silent-blocks pour les vis. L’unique ventilateur a l’air d’un format standard, toujours appréciable quand il faut le changer par un plus silencieux. Je constate avec soulagement que le port HDMI est effectivement utilisable.
Donc une fois démonté, il faut sortir la clef USB engluée… ah non sur celui qui m’a été livré elle n’est pas collée, ouf ! Par contre il n’y a pas beaucoup de dégagement au dessus alors pour la remplacer par une vieille clef que j’avais en stock légèrement plus longue j’ai du un peu dévisser les vis qui retiennent la carte-mère au chassis. Ensuite pour ajouter la barrette de RAM, ça ne passe pas non plus, il y a des espèces d’excroissances du chassis qui l’empèchent de s’insérer dans le connecteur, ça se joue à un millimètre, là encore il suffit de dévisser un peu quelques vis qui tiennent la carte-mère au chassis le temps de l’emboiter.
Nouvelle bonne surprise, le port HDMI ne se coupe pas au bout de quelques secondes, j’ai pu faire une installation classique de FreeBSD 13.0 (partitionnement UFS automatique) depuis une clef USB branchée en externe, ça a juste mis un temps fou, ça vient peut-être de ma clef USB système pourrie.
Hmm… effectivement le ventilateur ne tourne pas et en mettant la main dans les emplacements de disques (pas encore insérés) il faut un peu chaud à l’intérieur ! Un passage dans le BIOS et le ventilateur est maintenant réglé pour se déclencher à partir de 34° dans le boitier, et ça marche !
J’insère les deux Barracuda de 4 To, sysrc zfs_enable="YES"
, reboot, zpool import -a
, et voilà !
Comme je n’ai aucune confiance en cette clef USB interne je me dépèche de déplacer /var
, /home
et /usr/local
sur mon pool, je désactive la partition de swap de la clef USB et j’en crée une sur le pool mkswap /dev/zvol/tank/swap
, enfin une ligne du genre tmpfs /tmp tmpfs rw,mode=777 0 0
dans /etc/fstab
pour /tmp
et un dernier reboot !
Pour le moment je suis content du truc. Il y a pas mal d’options dans le BIOS pour régler finement les options de ventilation et heureusement parce que FreeBSD n’est pas très fort sur le sujet. Je n’ai rien trouvé qui concernerait un watchdog hardware et c’est un peu dommage pour une machine qui va être planquée dans un coin pas très accessible. Pas de gestion style IPMI non plus, au pire il y a peut-être moyen de mettre une console série depuis un des headers que j’ai vus sur la carte-mère.
En rédigeant cette page je farfouille dans dmesg
et je m’aperçois de quelques bizarreries:
- Une des carte réseau est en fait branchée sur un bus USB,
- le chipset est sensé ne gérer que 8 Go de RAM (d’après le forum) mais les 10 Go (2 soudés + barrette) sont bien vus.
Je n’ai pas encore testé le wake-on-lan ni la crypto matérielle (mais le module est bien détecté), et je n’ai pas cherché à savoir si le port USB interne est à la norme USB2 ou USB3, dans le 2e cas je remplacerai la clef avec une plus performante. Dans le BIOS j’ai réglé la mémoire vidéo au minimum parce que ça ne m’est d’aucune utilité.