NAS DIY à base de carte Odroid-H3
Après des mois de tergiversation, je me suis décidé à me doter d’un NAS DIY. J’hésitais entre une solution un peu musclée, bâtie sur un boitier accueillant au moins 4 disques durs rotatifs de 3,5”, et une à bas cout, plus conforme à mon besoin immédiat et plus raisonnable au niveau énergétique (un souci permanent dans mes choix, comme celui de faire durer le matériel).
Un autre critère de choix important pour moi était l’encombrement, que je voulais très faible. Ce critère s’est révélé de loin le plus discriminant, car en dehors des NAS clé en main vendus par Synology, QNAP ou Asustor, peu de boitiers répondent au cahier des charges, primo parce que les boitiers compacts ne disposent pas du nombre adéquat d’emplacements pour les disques durs et secundo parce qu’ils sont profonds, afin d’être compatibles avec des cartes graphiques au format long.
Pour terminer, je souhaitais faire tourner ce NAS sur TrueNAS, solution réputée sur le plan technique, mais qui présente le défaut d’être exigeante en ressources matérielles. Cette ambition écartait de facto des solutions à base de Raspberry-Pi ou consort.
J’ai cru trouver mon bonheur dans le boitier Jonsbo N2, mais j’ai vérifié auprès de l’importateur et des revendeurs français, ce modèle n’est pas disponible en France et je me refuse toujours à commander sur Ali Express ou Amazon (je sais, je suis couillon, mais c’est comme ça).
À défaut, j’ai un temps envisagé le Shuttle SH570R8, boitier le plus compact répondant à mon cahier des charges après le Jonsbo N2. C’était tentant, mais j’ai réalisé qu’une telle solution allait faire grimper la facture à plus de 1300 €, sans que mes maigres besoins ne justifient une telle configuration.
Je me suis donc rabattu sur une solution bien plus modeste :
- Carte Odroid-H3 (processeur Intel Celeron N5105, 4 cœurs à 2,9 GHz)
- 16 Go de RAM Corsair DDR4 SO-DIMM à 2667 MHz (j’avais 2 barrettes de 8 Go qui dormaient au fond d’un tiroir)
- 1 disque NVMe Samsung 980 de 500 Go pour le système (250 Go auraient largement suffi, mais la version 500 Go était moins chère !)
- 2 disques SSD Crucial de 2 To (du bon matériel et une jolie promotion chez Cybertek m’a fait économiser 100 € sur l’ensemble)
- 2 jeux de câbles SATA et alimentation avec connecteur adapté à l’Odroid-H3
- 1 boitier Odroid-H3 Type 3 (boitier à base de plaques PCB peu couteux, mais très moche et ayant un autre défaut, j’y reviendrai)
- 1 bloc d’alimentation 15 V / 4 A
J’ai acheté les disques SSD et NVMe au magasin Cybertek de Labège (si vous habitez dans le coin, je vous le conseille vivement, j’y ai toujours eu d’excellents conseils, et lorsque je m’étais renseigné au sujet du boitier Jonsbo N2, le responsable du magasin avait entrepris des recherches auprès de ses fournisseurs pour essayer de me dégoter le boitier idéal ou un autre s’en approchant). J’ai acheté les autres composants sur le site de vente en ligne français Kubii (matériel commandé le jeudi à 22h30, reçu au point relais le samedi midi, alors que je n’avais même pas demandé de livraison express).
Le tout m’a couté 578 € (en incluant la RAM, la facture serait de 640 €). À titre de comparaison, j’aurais dû débourser 650 € pour acheter un NAS Synology DS220+ et les deux mêmes disques SSD, et je me serais retrouvé avec une machine dotée d’un processeur Celeron J4025 (2 cœurs à 2,9 GHz) et de 2 Go de RAM (non extensible), mais avec un boitier autrement plus esthétique et ergonomique. En outre, Synology a le mérite de maintenir DSM, le système d’exploitation de ses NAS, pendant au moins 7 ans, fait assez rare pour être mentionné.
Inutile que je publie une photo de mon NAS DIY, il est strictement identique à celui que l’on voit dans la vidéo d’assemblage publiée sur le site de Hardkernel.
Ne restait plus qu’à installer TrueNAS, une expérience nouvelle pour moi. J’ai découvert qu’il existait plusieurs versions de TrueNAS : Core (version originelle et libre, basée sur FreeBSD), Enterprise (version améliorée et payante de la version Core) et Scale (projet récent, basé sur Debian). J’avais donc le choix entre les versions Core et Scale, qui sont pour l’instant maintenues en parallèle. Outre le système d’exploitation sous-jacent, elles se distinguent par le mode de déploiement et d’isolation des extensions : « cages » FreeBSD pour la version Core, conteneurs Docker et cluster Kubernetes pour la version Scale. Les deux versions fournissent aussi un service de virtualisation (basé sur bhyve dans la version Core, KVM dans la version Scale).
J’ai d’abord déployé la version Core et j’ai eu la désagréable surprise de constater que FreeBSD de reconnaissait pas les interfaces réseau. Après un moment d’angoisse, j’ai trouvé sur le forum de TrueNAS comment y remédier. Il parait que ce pilote ne supporte pas le 2,5 Gbit/s, ce qui est sans conséquence pour moi puisque mon réseau local fonctionne à 1 Gbit/s.
Comme le monde BSD m’est inconnu alors que je suis dans mon élément avec un système Debian GNU/Linux, j’ai ensuite essayé la version Scale. Là, les interfaces réseau ont été immédiatement reconnues.
Par curiosité, j’ai déployé NextCloud, l’une des extensions disponibles sur ces deux versions. TrueNAS mérite bien son titre d’« appliance » : tant qu’on se contente de ce qui est proposé, le déploiement est trivial, on clique, on confirme et on attend que le système déploie tous les composants, puis « ça marche » (enfin presque, parce qu’une fois NextCloud déployé sur la version Scale, j’ai dû lire la documentation pour savoir où trouver le mot de passe du compte admin, généré à la volée). Par contre, n’ayant pas l’intention de faire tourner des machines virtuelles sur ce NAS, je n’ai pas essayé les fonctions de virtualisation.
Je ne sais pas encore quelle version de TrueNAS je vais in fine adopter. Mon choix dépendra de ma capacité à faire fonctionner Borgbackup sur ces versions, puisque j’utilise cet outil pour réaliser mes sauvegardes, que je compte faire sur ce NAS.
Je compte par ailleurs doter ce NAS d’un boitier un peu plus joli, et puisque je suis dans une phase DIY, j’envisage d’en concevoir un moi-même en Plexiglas, et d’aller le fabriquer à Artilect, le fablab toulousain dont je suis membre.
Si cette vélléité se concrétise, je me fendrai bien évidemment d’un petit article ici même. :)
Mise à jour 2024-01-21 : Finalement, TrueNAS s’est révélé bien trop complexe au regard de mes besoins, BSD reste un système bien différent de GNU/Linux. Après avoir hésité à installer sur ce NAS une distribution Debian « nue », j’ai finalement opté pour OpenMediaVault, une distribution GNU/Linux basée sur Debian et dédiée aux NAS. Son interface web est moins léchée que celle de TrueNAS et elle semble moins riche, mais elle suffit à mon besoin. Si ce nouveau cadre ne me satisfait pas, je repartirai certainement de zéro avec une bonne vieille distribution Debian.
PS 1 : Vous vous demandez sans doute pourquoi, alors que je pense du bien de Synology et que mon besoin premier est la sauvegarde, je m’embarrasse à monter un NAS DIY. C’est simplement parce que je préfère utiliser des systèmes libres et parce que je voulais de longue date me faire une opinion sur TrueNAS.
PS 2 : Si vous pensez que 2 disques seulement, ce n’est vraiment pas sérieux pour un NAS, sachez que certains créent des NAS à 8 disques à partir de la même carte Odroid-H3, grâce à une carte d’extension PCI-E qui se connecte sur le port M.2 et fournit 6 connecteurs SATA supplémentaires. Cf. le projet ugly-nas.
PS 3 : Après avoir rédigé cet article, je suis tombé sur un article instructif qui compare les deux versions de TrueNAS : TrueNAS Core vs TrueNAS Scale.
PS 4 : À propos de sauvegarde, voici mes articles antérieurs sur le sujet :