Construire un NAS avec un Raspberry
Le Hardware
- Raspberry PI 1 modèle B # Voir photo
- 2 ports USB 2
- 1 port Ethernet 10/100Mo
- Mémoire 512Mo
- CPU 700Mhz
- Carte SD 8Go
- Alimentation 5V/1,2A
- Disques durs
- 2 disques 500Go Sata 2.5
- Adaptateur Sata/USB
- 2 adaptateurs Sata/USB avec boitier # Achat en ligne
- Mini-hub USB
- High-Speed USB2 4 ports
- Alimentation 5v/1.2A
- Boitier
- boitier (dimension à définir) # Achat en ligne
- Ventilateur 12v/130mA
- Adaptateur réseau Male/femelle # Achat en ligne
Le Software
Utilisation de Raspbian Stecht Lite
- Formater la SD avec "Disque" sour Linux ou SDFormatter sous Windows
- Installation de Raspbian avec Etcher sous Linux ou Etcher ou Win32DiskImager sous Windows
Personnalisation de Raspbian
- sudo raspi-config
- Français
- Validation de SSH
- Mise à jour
- etc ...
La configuration du NAS se fera en SSH
- ssh pi@192.168.x.y
- sudo nano /etc/dhcpcd.conf # Nouvelle méthode
- sudo nano /etc/network/interfaces # Ancienne méthode
- sudo apt-get install samba samba-common-bin
- etc ...
Installation du miroir Raid 1 # Voir la page NAS Raid 1 sur Raspberry
- sudo apt-get install mdadm
- etc ...
Préparation des disques pour le Raid 1
- Disque sur port USB n° 1 - /dev/sda
- Disque sur port USB n° 2 - /dev/sdb
- sudo fdisk /dev/sd(x)
- sudo mdadm --create --verbose /dev/md0 --level=1 --assume-clean --raid-device=2 /dev/sda1 /dev/sdb1
- sudo mkfs.ext4 /dev/md0
- sudo cat /proc/mdstat
- sudo mdadm -D /dev/md0
- sudo mount /dev/md0 /home/nom_repertoire_de_montage
- sudo nano /etc/fstab
Les Contraintes
J'ai deux containtes à régler.
- Le bruit et l'alimentation du ventilateur
- Les alimentations
- l'alimentation pour le Raspberry 5V
- l'alimentation pour le mini-hub USB 5V
- l'alimentation du ventilateur en 12V
implantation des elements
En posant tous les éléments sur la table, la meilleure implantation semble etre la suivante :
- le Raspberry et le bloc d'alimentation cote à cote # Voir photo
- les disques et le mini-hub l'un au dessus de l'autre # Voir photo
Le tout dans un espace de :
- longueur : 200mm
- largeur : 160mm
- hauteur : 50mm
J'ai donc acheté un boitier de L 200 x l 175 x h 70 # Achat en ligne
Implantation des elements dans le boitier
Oups !
Ma solution d'implantation de départ ne me semble pas possible avec le boitier. Je teste d'autres possibilités d'implantations des éléments dans le boitier
L'implantation des éléments n'est pas une chose simple.
Il faut penser :
- à caser tous les éléments
- à caser les cables
- penser à la ventillation du boitier
- permettre l'accés à la carte SD
- permettre l'accés au disques
- faire des trous supplémentaires pour l'aération de l'alimentation
- faire des trous supplémentaires pour les ventilateurs
- etc ...
- Le bloc d'alimentation du coté de la grille d'aération
- Les 2 disques au fond du boitier, l'un au dessus de l'autre
- Le Raspberry fixé à plat dans le boitier
- Le mini-hub sans son boitier fixé dessus le Raspberry
- Les ventilateurs répartis sur la face arrière
- l'adapteur réseau fixé sur la face arrière
- le cable d'alimentation à l'arrière
- une led verte fixée sur la face avant
Fichier control-raid
Créer le fichier ci-dessous
sudo nano control-raid # Controle l'état du volume Raid1
clear
echo "--------------------------------------------------------"
echo "$(date)"
echo $USER"@"$HOSTNAME
echo "--------------------------------------------------------"
echo "********************************************************************"
sudo cat /proc/mdstat
echo "********************************************************************"
sudo mdadm -D /dev/md0
echo "********************************************************************"
sudo df /dev/md0 -T -h
echo "********************************************************************"
[Ctrl]+[o] puis [Enter] pour sauvegarder le fichier
[Crtl]+[x] pour quitter l'éditeur
Fichier etat-disk
Créer le fichier ci-dessous
- sudo nano etat-disk # Controle le taux d'occupation du volume Raid1
clear
echo "--------------------------------------------------------"
echo "$(date)"
echo $USER"@"$HOSTNAME
echo "--------------------------------------------------------"
echo
df /dev/md0 -h
echo
echo
[Ctrl]+[o] puis [Enter] pour sauvegarder le fichier
[Crtl]+[x] pour quitter l'éditeur
Fichier monitor
Créer le fichier ci-dessous
- sudo nano monitor # Controle la fréquence et la température du CPU
#!/bin/bash
# -------------------------------------------------------
clear
echo
echo
echo "--------------------------------------------------------"
echo "$(date)"
echo $USER"@"$HOSTNAME
echo "--------------------------------------------------------"
C=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq`
T=`cat /sys/class/thermal/thermal_zone0/temp`
cpu=$(</sys/class/thermal/thermal_zone0/temp)
echo "Heure | Frequence | Temperature"
echo "`date +%H:%M` $C $T" | awk '{ printf "%s | %4dMhz | %-.2fC\n",$1, $2/100$
echo
echo
[Ctrl]+[o] puis [Enter] pour sauvegarder le fichier
[Crtl]+[x] pour quitter l'éditeur
Rendre exécutable les trois fichiers
- sudo chmod +x control-raid
- sudo chmod +x etat-disk
- sudo chmod +x monitor
Exécuter les trois fichiers
- ./control-raid # Controle l'état du volume Raid1
- ./etat-disk # Controle le taux d'occupation du volume Raid1
- ./monitor # Controle la fréquence et la température du CPU
Led activité disque dur
Je souhaite que la led verte en façade clignote en fonction de l'activité du disque dur
Matériel:
- Une LED verte
- Une résistance de 1KOhm
Circuit:
- Brancher une patte resistance sur la pin 3 du GPIO
- Brancher l'autre patte de la résistance à l'anode de la LED
- Brancher la cathode de la LED sur une masse du GPIO
Pour un Raspberry PI modèle B # Uniquement sur un Raspberry Pi 1 B
Editer le fichier /boot/config.txt
- sudo nano /boot/config.txt
Ajouter à la fin du fichier les lignes ci-dessous
- # Use external LED as SD ACT LED
- dtparam=act_led_gpio=3 # Brancher la led sur la pin 3 du GPIO
[Crtl]+[x] pour quitter l'éditeur
Rebooter le NAS
La led verte doit clignoter en fonction de l'activité disque