BanaNAS Un NAS sur un BananaPi M1+
Introduction
Les ordinateurs super compactes sur des micro cartes sont incroyables ! Ils permettent de faire tant de chose sans demander trop de ressources et à un prix relativement faible.
J’ai eu l’idée de donner une nouvelle vie à mon BananaPi M1+ en le transformant en NAS. L’idée est de lui rajouter un disque dur en SATA et de le configurer grâce à OpenMediaVault pour permettre de gérer facilement depuis une interface web le NAS. Son usage sera pour les déplacements: je veux qu’il copie automatiquement les cartes SD exFAT sur son stockage interne puis qu’il le synchronise chaque nuit avec mon NAS chez moi.
Le projet s’appelle donc BanaNAS (Pour BananaPi + Network Attached Storage si jamais).
Construction du BanaNAS
Composants
Cette construction sera faite avec les composants suivants, tout n’est pas requis mais dans ce tuto j’utiliserai tout les composants cités.
- BananaPi M1+
- Carte SD 32 GO 45Mo/s
- Disque dur externe WD Blue 1TO compact
Au niveau des câbles:
- Câble SATA court et flexible
- Câble fabriqué maison pour l’alimentation du disque
- Câble Micro-USB pour l’alimentation de la board
- Câble Ethernet RJ45
- Câble HDMI
Et quelques composants standards:
- Clavier
- Écran supportant l’HDMI
Assemblage
Dans cette étape importante, j’utilise le port SATA ainsi que son alimentation pour rajouter mon disque dur plateau de 1TO. La construction est simple mais je tente de le faire le plus compacte possible. Le résultat ressemble à cela:
Je ne suis pas électronicien donc au niveau du câble d’alimentation SATA créé par moi même, je ne vais par rentrer dans les détails.
La suite est de flasher l’OS sur la carte SD.
Préparation de la carte SD
Pour installer un OS sur un BananaPi, il faut télécharger l’image pré-construite et ensuite la flasher sur la carte SD qui sera plus tard mise dans la board.
Télécharger la version de l’OS désirée
J’utilise cette version de Armbian:
- Armbian_23.08.0-trunk_Bananapim1plus_bookworm_current_6.1.37
Il est possible de la télécharger depuis: Google Drive . Des OS différents sont disponibles depuis le répertoire officiel des images pour BananaPi M1+ sur ce Wiki .
Flasher sur la carte SD
Maintenant que l’image est prête, j’utilise Balena Etcher sur Windows 11 pour copier le contenu de l’image pré-construire sur ma carte SD. Les étapes sont simples grâce à l’interface graphique: Il suffit de sélectionner l’image (décompressez l’archive avant pour bien récupérer l’image), de sélectionner l’USB à flasher et d’exécuter le tout avec un bouton !
Je peux maintenant réinsérer la carte SD dans mon BananaPi et brancher l’alimentation ! (Le démarrage se fait automatiquement, pas besoins d’appuyer sur un bouton)
Armbian
Premier démarrage
La première chose qui est demandée de faire lorsque le BanaNAS est connecté et allumé, c’est de renseigner les configuration de base du système, cela ressemblera à ça (bien évidemment, renseignez vos informations personnelles et mots de passe):
Ensuite, j’aime bien et je trouve cela propre de totalement mettre à jour le système grâce à ces commandes:
1 | sudo apt update && apt full-upgrade -y |
Finalement redémarrer le système (requis car mis à jour du Kernel Linux):
1 | sudo reboot |
Open Media Vault
Installation
Cette installation se fait grâce au script officiel suivant:
1 | wget -O - https://raw.githubusercontent.com/OpenMediaVault-Plugin-Developers/installScript/master/install | sudo bash |
L’exécution devrait ressembler à cela:
Une fois le script exécuté, pour terminer le tout dans les règles de l’art, je conseille d’exécuter encore ces commandes pour s’assurer que tout est bien installé et pour libérer potentiellement de l’espace-disque:
1 | # Effacer le contenu inutile |
Il est conseillé d’exécuter cette commande non en SSH mais directement avec le clavier sur l’hôte physique car des modification sur les configurations réseau seront faites et la connexion en SSH sera coupée entre deux, ce qui peut interrompre l’exécution du script.
En cas de crash du script (ce qui m’est arrivé), je recommande de redémarrer la machine et de reexécuter le script après avoir redémarré le système.
Je préviens, sur un BananaPI M1+ avec 1GO de RAM et un CPU lent, cela peut facilement prendre 1 après-midi, donc buvez du thé vert en attendant !
Configuration
Pour accéder à l’interface de configuration d’Open Media Vault, j’utilise un navigateur Web et rentre l’IP du BanaNAS (port 80 en http). Le login par défaut est admin openmediavault:
La configuration avancée d’OpenMediaVault ne sera pas abordée ici, cependant, les étapes clés à suivre dans l’ordre sont:
- Ajouter son utilisateur dans les groupes Open Media Vautl pour accéder à l’interface web
- Modifier le nom d’hôte
- Configurer l’interface RJ45 avec une IP fixe
- Configurer les disques
- Configurer les répertoires partagés + droits
- Configurer les services réseau tel SMB et NFS pour les accès distant aux répertoire partagés
- …
Docker
Installation
Docker est fantastique pour exécuter rapidement des applications sur Linux de manière sécurisé, rapide et performante. Je l’utiliserai pour déployer des conteneurs comme Dashy ou Apache Guacamole.
Cette installation se fait avec ce script officiel:
1 | curl -fsSL https://get.docker.com -o get-docker.sh |
La fin de l’installation devrait ressembler à cela:
Vérifiez le fonctionnement de docker en exécutant ces commandes. Docker-compose devrait renvoyer les informations d’aide sur la commande (car aucun arguments ne seront renseignés):
1 | # Créer le conteneur de test Docker |
Déplacer le répertoire Docker
Je désire déplacer le répertoire Docker contenant toutes les images et configurations sur le disque SATA pour optimiser les performances et l’espace disque. Une documentation écrite par mes soins existe ici .
La modification apportée au fichier /etc/docker/daemon.json est la suivante:
1 | { |
La nouvelle destination se trouve donc sur le répertoire Docker de ma partition sur le disque SATA. Ne pas oublier de redémarrer le NAS après la modification.
Installation de Portainer
J’adore les interfaces web et je désire pouvoir gérer mes conteneurs grâce à Portainer. L’installation se fait grâce aux commandes prises du site officiel pour la version communauté.
1 | # Créer le volume de Portainer |
Le port de l’interface web est 9443 sur https.
Services Docker installés
La grande majorité de mes applications seront exécutées dans Docker et gérées par Portainer car c’est simple et efficace. J’installe ces applications:
Cette section de documentation fournis les docker-composes et quelques explications utilisés.
Syncthing
Syncthing me permettra de synchroniser le répertoires de photographies avec mon NAS chez moi pour qu’il y ait toujours une copie supplémentaire de mes données.
1 | version: "3" |
FileBrowser
Dans le répertoire srv se trouve la racine du parcours de fichiers depuis l’interface web. J’y met la racine de la partition principale de mon disque SATA. Les autres fichiers concernent des configurations
1 | version: '3.8' |
Dashy
Simple et efficace, Dashy ne requis qu’un seul et unique fichier de configuration qui contiendra toute l’application. J’adore ce principe car c’est très facilement gérable et sauvegardable.
1 | version: "3.8" |
Apache Guacamole
Cette image adaptée pour supporter arm32v7 est utilisée pour apache guacamole. Je monte le répertoire des configurations de l’application (dont la DB).
1 | version: "2" |
Conclusion
Voilà ! J’ai maintenant un NAS portable et beaucoup trop stylé me permettant de gérer mes fichiers pendant mes déplacements.
Améliorations possibles
Je comptais également ajouter la fonctionnalité de point d’accès Wifi pour mon téléphone, mais je pense plutôt faire cela avec un routeur dd-wrt…
- Title: BanaNAS Un NAS sur un BananaPi M1+
- Author: NicolasSchmid
- Created at : 15.03.2024 20:23:49
- Updated at : 27.03.2024 07:17:25
- Link: https://doc.spacesdata.net/2024/03/15/BanaNAS-Un-NAS-sur-un-BananaPi-M1/
- License: This work is licensed under CC BY-NC-SA 4.0.