[Test] Un NAS à base de Raspberry Pi ?

Tags: Tests Informatique


Bonjour à tous,

Ceux qui lisent assidument mes articles le savent, je suis depuis plusieurs mois à la recherche d’un NAS pour un usage personnel. Comme le titre de l’article vous le spoil un peu, j’ai trouvé une solution qui me convient à base de Raspberry Pi.

Le “QUAD SATA HAT KIT”

Je me suis donc tourné vers le dénommé QUAD SATA HAT KIT dont le nom correspond à ceci:

  • QUAD pour 4, donc la possibilité d’intégrer 4 disques durs (ici au format 2,5 pouces obligatoirement).
  • SATA pour la norme qui permet de connecter les disques durs.
  • HAT parce que c’est un chapeau que l’on va mettre sur le Raspberry Pi.
  • KIT parce que c’est un Kit comprenant tous les accessoires nécessaires au montage (sauf les disques durs et le Raspberry Pi ainsi que l’alimentation).

C’est donc un Kit que j’ai acheté ici pour 99$ + les frais de port (ce lien tout comme cet article ne sont pas sponsorisés, seulement un retour d’expérience comme d’habitude sur ce site). J’ai choisi la sympathique option Limited Edition Black, car elle était encore disponible au moment de ma commande, de plus, l’alimentation était encore fournie gratuitement à ce moment-là.

Il existe également une version sans le boîtier disponible ici pour 35$ (ou 43$ avec la carte à installer en haut du NAS pour contrôler les ventilateurs ou avoir quelques informations sur le petit écran LCD).

Le Raspberry Pi

Une carte à processeur ARM qu’il n’est plus vraiment nécessaire de présenter. Je vous renvoie tout de même sur la page Wikipédia si toutefois vous ne la connaissez pas. Le gros avantage que je voie à cette carte est qu’elle consomme très peu, même s’il est vrai que chaque nouvelle version consomme un peu plus car elles sont de plus en plus puissantes.

Je me suis tourné vers la version 4 en 8 Go de RAM. La version 4 est la seule version compatible selon le fabricant du QUAD SATA HAT KIT, mais je ne vois pas pourquoi la version 3 ne le serait pas. Ensuite, je vous accorde que c’est beaucoup trop de RAM pour un usage NAS seul, mais ça me permettra de pouvoir faire tourner d’autres services dessus sans soucis de performances. De plus, si dans 5 ans je souhaite reconvertir ce Raspberry Pi a un autre usage, je ne serai pas bloqué par un manque de RAM (plutôt par le CPU j’imagine mais je ne peux rien y faire là …).

Pourquoi cette solution

À la base, j’avais banni tout ce qui était à base de Raspberry Pi du fait de l’ARM. J’ai en effet un serveur sous x86 et je préférais choisir une solution également sous x86 pour redéployer les services du serveur sur le NAS en cas de pépin. Finalement, je m’en suis toujours sorti sans, donc j’ai estimé que ce n’était pas indispensable (ça reste pour un usage personnel tout de même, je vais déjà suffisamment loin dans la parano de pertes de données ^^).

J’avais également banni toutes les solutions clé-en-main de type NAS Synology ou QNAP car peu puissantes pour les prix proposés. Je ne dis pas que ce sont des mauvaises solutions, mais pour 100-200€, tu restes avec 512Mo de RAM et une solution difficile à faire évoluer (bien sûr, je ne serai pas non plus capable de rajouter de la RAM ou de changer le processeur du Raspberry Pi, mais je pourrai toujours remplacer la version 4 par une future version 5 si le besoin s’en fait (sous réserve de compatibilité de taille de cartes évidemment)).

J’avais longtemps hésité à partir sur une solution totalement maison mais je n’y connais pas assez en Hardware pour savoir quel matériel va avec quoi et les prix s’envolaient souvent très très rapidement. Sur ce sujet, je vous laisse tout de même lire cet article de INpact Hardware.

Je me suis donc laissé tenté par la solution que j’ai présentée précédemment dans l’article, au final, le seul inconvénient que j’y voyais était l’ARM et la non possibilité de faire du RAID. En effet, les disques sont certes branchés en SATA sur la carte mais ils sont ensuite reliés en USB vers le Raspberry Pi. Or la (faible) fiabilité de l’USB n’est pas compatible avec le RAID. Cependant, qui dit redondance de données ne dit pas forcément RAID, on peut tout à fait synchroniser les disques régulièrement (toutes les 15 minutes par exemple) avec un outil tel que rsync.

À ce sujet, j’aimerais bien arrêter les disques quand ils ne sont pas utilisés (pour moins chauffer et pour moins consommer). Connaissez-vous un moyen ou une configuration pour faire en sorte que le rsync n’ait pas lieu s’il n’y a pas eu de modifications ? (pour ne pas sortir les disques du mode veille)

OpenMediaVault: gestion de l'énergie des disques
OpenMediaVault: gestion de l'énergie des disques

En termes d’espace disque, j’ai inséré 2 disques de 1 To qui me trainaient sous la main ainsi que 2 disques de 2 To achetés pour l’occasion. Les 1 To vont être redondés ensemble, de même pour les 2 To.

L’installation

Pour les plus curieux d’entre vous, voici quelques étapes de mon installation. Tout d’abord, vous pouvez retrouver une page Wiki détaillant le montage du NAS.

Je ne vais pas détailler le montage en lui-même, c’est relativement simple avec les instructions. Voici tout de même une photo avant de refermer totalement le NAS:

NAS ouvert
NAS ouvert

Le choix de l’OS

Concernant le choix de l’OS, j’ai voulu prendre Ubuntu 64 bits, mais OpenMediaVault que je voulais installer n’y est pas compatible. J’ai donc choisi la version 64 bits de Raspbian (en bêta certes, mais assez avancée et donc relativement stable et fiable). J’ai donc installé l’ISO suivante 2020-05-27-raspios-buster-arm64.img à l’aide de l’outil Raspberry Pi Imager. Une fois la clé prête, il faut rajouter un fichier vide nommé ssh dans la partition qui reste accessible pour activer le SSH si comme moi vous n’allez pas utiliser d’écran.

La première connexion

On cherche ensuite l’IP du Raspberry Pi sur l’interface de notre box/routeur. Voici ensuite une liste de commande que j’ai l’habitude de lancer sur un nouveau serveur.

# as root
adduser pofilo
usermod -aG sudo pofilo
apt update
apt upgrade
apt install vim htop git sudo tmux tig bash-completion dos2unix make elinks ncdu dnsutils man rsync bmon iotop net-tools lsof # gparted if needed and if X server available
vim /etc/hostname # replace with name of the machine
dpkg-reconfigure tzdata

D’habitude, je touche aussi au fichier /etc/ssh/sshd_config pour désactiver le SSH avec mot de passe et n’utiliser que le SSH avec clé SSH mais OpenMediaVault va malheureusement écraser ce fichier durant son installation …

Ensuite, j’ai également l’habitude de générer une clé avec la commande ssh-keygen pour ensuite clôner un dépôt git qui contient mes .bashrc, .vimrc, .gitconfig

La configuration du NAS

D’après le wiki précédemment cité, pour installer la partie logicielle du NAS, il faut lancer la commande suivante:

curl -sL https://rock.sh/get-rockpi-sata | sudo -E bash -

Bon, je vous déconseille de lancer le script tel quel. Vous allez lancer en root un script dont vous ne savez ce qu’il fait, il faut donc commencer par regarder ce qu’il fait. D’ailleurs, je préfère également sauvegarder une copie du script, en effet, sans lui, le hat sera inutilisable.

Donc si on regarde ce script, on voit qu’il ne sert qu’à détecter sur quelle distribution nous sommes pour lancer un script adapté. Dans notre cas, c’est donc la version Raspbian qui va être exécutée (miroir ici).

Si l’on regarde ce dernier script de plus près, on voit qu’il va installer des paquets debian et python. Cependant, deux d’entre eux vont être téléchargés via le script, on en fait donc une copie (Adafruit_SSD1306-v1.6.2.zip disponible ici et raspi-sata-0.14.deb disponible ici).

Une fois tous ces scripts et paquets en lieu sûr, on peut donc lancer le script.

Ensuite, il faut mettre à jour un logiciel pour connecter les disques durs (dans mon cas, sda, sdb, sdc et sdd) (copie de Jms561-fw-update.zip):

wget https://wiki.radxa.com/mw/images/d/db/Jms561-fw-update.zip
unzip Jms561-fw-update.zip

cd jms561-fw-update/
./JMS561FwUpdate -b backup.bin -f jms561b_v8.1.3.6.bin -d /dev/sda
./JMS561FwUpdate -b backup.bin -f jms561b_v8.1.3.6.bin -d /dev/sdb
./JMS561FwUpdate -b backup.bin -f jms561b_v8.1.3.6.bin -d /dev/sdc
./JMS561FwUpdate -b backup.bin -f jms561b_v8.1.3.6.bin -d /dev/sdd

reboot

Une fois le Raspberry Pi redémarré, il suffit de faire une dernière vérification et tout sera alors opérationnel. On retourne en root dans le dossier jms561-fw-update/ et on lance pour chaque disque la commande ./JMS561FwUpdate -d /dev/sda -v, le résultat doit contenir Bridge Firmware Version: v8.1.3.6.

Installation de OpenMediaVault (optionnel)

OpenMediaVault est une solution de stockage en réseau basée sur Debian. On peut l’agrémenter de plugins tels que SSH, (S)FTP, SMB/CIFS, rsync, client BitTorrent … Il existe une distribution OpenMediaVault mais on peut également l’installer sur une Debian-like telle que Raspbian.

Cette étape est optionnelle mais permet une configuration simplifiée du NAS. N’étant pas un expert d’OpenMediaVault, je préfère vous renvoyer vers la documentation officielle (page 17 notamment pour l’installation).

Conclusion

Ce n’est pas le NAS le plus puissant mais il reste tout à fait suffisant pour un usage personnel (et même pour une petite entreprise). Comme je l’ai évoqué, le RAID sera une mauvaise idée avec cette solution à cause de l’USB, mais il y a d’autres moyens de faire de la redondance. Enfin, le plus gros défaut que j’apporterai est finalement le bruit généré par le ventilateur du haut du boitier, certes il permet de maintenir une température raisonnable (45 degrés en moyenne), mais un ventilateur moins bruyant aurait été apprécié (à voir si on ne peut pas le changer cependant).

Il me reste également une chose à vérifier: la consommation électrique. En effet, c’est le hat qui permet d’alimenter le Raspberry Pi ainsi que les disques durs.

Enfin, j’hésite encore à ne pas utiliser OpenMediaVault du tout, ça reste un outil certes pratique pour des réglages basiques, mais j’ai peur de ne pas maitriser ce que je fais sur les parties un peu plus complexes (spin down des disques durs par exemple).

Commentaires




Ailleurs sur le Web


How to write the output into the file in Linux - nixCraft

Les redirections de fichiers. Un bon tableau dans l'article, voici un petit résumé des 2 plus utiles (déclinés en nouveau fichier / append) à mes yeux. command > output.txt 2>&1: {POSIX} Puts both standard error and output to file named output…

via Shaarli le 01 septembre 2020

Duplicates

Excellent :) via sebsauvage.net

via Shaarli le 05 août 2020

J’ai testé pour vous : se faire usurper son identité - LinuxFr.org

Témoignage très intéressant, merci pour le partage.

via Shaarli le 28 juillet 2020

Généré avec openring


Recettes de gourmands


Pizza poulet curry

Une pizza plus estivale, mais qui sait rester gourmande !

via cooking.pofilo.fr le 31 mai 2020

Fajitas

A manger avec les mains, évidemment !

via cooking.pofilo.fr le 24 mai 2020

Pad Thai

Une recette longue mais qui reste relativement simple qui devrait ravir tous les gourmands !

via cooking.pofilo.fr le 17 mai 2020

Généré avec openring