[Raspberry Pi 3] Créer un raid logiciel puis faire un nas

 

Créer un raid logiciel puis faire un nas sur Raspberry Pi 3
Article original Publié le : 05 avril 2020
Mise a jour le : 06 avril 2020

 

En cette période de confinement je m’amuse avec mon Raspberry Pi.
et pourquoi pas faire un NAS pour partager des fichiers avec tous les devices.

Il faut pas grand chose, 2 disques (externe ou interne+boîtier) et un Raspberry

Modèle: Seagate Barracuda
Nombre: 2
Volumétrie: 1GO chacun (utiliser des disques de meme taille)
Type : SATA II
Format: 3,5 pouce (interne)
Baie disques Inateck (FD2005) -> https://www.amazon.fr/Inateck-Station-daccueil-Capacit%C3%A9-Compatible/dp/B06XYJSR8B

 

J’opte pour du raid 1, plus sécure quand a la perte d’un disque

Pour rappel
Raid 0
Minimum: 2 disques
Avantage: Performance
Inconvénient: La panne d’un des deux disques entraîne la perte de toutes les données de la baie.

Raid 1
Minimum: 2 disques
Avantage: Redondance
Inconvénient: les disques se répliquent, on perd donc la moitié de l’espace disque sur la totalité.

Il existe d’autres raid 5,10,50 … mais restons modeste, on parle de deux disques !

 

 

Préparation de l’environnement

  • Mise a jour du système

 

  • Installation de quelques outils

 

  • Installation des paquets nécessaires

/!\ Si l’erreur ci dessous se produit, faire un sudo apt-get update et relancer la l’installation du paquet

 

 

Ajout des disques

  • Raccorder les 2 disques au Raspberry Pi

Avec la commande dmesg on voit que les deux disques sont bien reconnus, sda et sdb

 

lsblk permet de lister tous les devices
Nous retrouvons les deux disques durs sda et sdb,
ainsi que la carte sd qui se nomme mmcblk0 et ces 2 partitions mmcblk0p1 (/boot) et mmcblk0p2 (/)

 

 

Création du Raid

  • Utilisation du binaire mdadm 

 

Valider la création du raid

Dans le détail
/dev/md0 : volume raid
level=1 : type de raid
raid-devices=2 : nombres de périphériques
/dev/sda /dev/sdb : disque 0 et 1

 

Pour voir l’état de la synchronisation du raid

La synchro prend du temps en fonction de la volumétrie, cela n’empêche pas de formater les disques et de les utiliser.
On peut voir la ligne resync qu’il est a 1.5% avec une estimation de fin a 1148 minutes et une vitesse de 13952K/sec !

 

Pour une vue plus détaillé sur l’état du raid, on y voit le statut active, resyncing

 

 

Création et montage du système de fichiers

  • Utilisation du binaire mkfs

Il faut maintenant créer le système de fichiers avec la commande mkfs.
il y a différents types de formats, ext2, ext3, ext4, swap, fat, ReiserFS …
Pour la comparaison voir https://doc.ubuntu-fr.org/systeme_de_fichiers#comparaison_de_systemes_de_fichiers

 

Puis créer le point de montage et monter le

 

Vérifier avec disk free l’apparition du point de montage et sa volumétrie

 

Pour finir il faut configurer le fichier mdadm.conf pour qu’il analyse le raid automatiquement au démarrage

 

Pour monter et rendre accessible le raid pendant le processus de démarrage, lancer la commande

 

Enfin il faut ajouter le raid au fstab pour que celui ci soit monté automatique au démarrage

 

 

Permissions et droits

  • Créez un groupe qui aura accès au device disk_raid1, ajouter y les utilisateurs autorisés, affiner les droits

La création du raid est terminé, il faut attendre la fin de la synchronisation
Si celle ci est coupé, voir en bas de cet article dans resync.

 

Création du partage Samba

  • Configuration de Samba

Il faut d’abord créer le répertoire de partage sur le point de montage, puis affiner et donner les droits du groupe grp_raid1

 

On vérifie

 

Faire une sauvegarde du fichier original avant toute modif, puis éditer smb.conf et ajouter en fin de ligne la définition de partage suivante

 

Recharger Samba

 

Créer le(s) utilisateur(s) a pouvoir accéder au partage Samba et ajouter le(s) dans le groupe grp_raid1

Il faut également sété le mot pour le user system bef ( smbpasswd -a) pour qu’il puisse accéder au partage Samba indépendamment du point de montage.

 

Monter le volume depuis une machine Windows

  • Connecter un lecteur réseau

Sur Windows 10 par exemple, clic droit sur poste de travail/connecter un lecteur réseau
Si pas de serveur dns, utiliser l’ip ou renseigner le fichier hosts ..

Il faut un compte valide pour accéder au partage puisque dans smb.conf on a sété no a only guest

 

Le partage est accessible, la création/l’édition fonctionne dans les 2 sens

 

 

UPDATE 06/04/2020: 19h plus tard, le raid est optimal (:-))

 

 

Divers

Pour aller plus loin quelques tips trouvés sur différents sites

Surveillance du raid

Dans le fichier mdadm.conf adapter la fonction MAILADDR pour recevoir une alerte en cas de défaillance, il faut bien sur avoir configurer exim4 ou postfix.

puis lancer la commande suivante

 

Vérifier les process en cours

 

Réception d’une alerte

J’ai éteint la baie de disque et j’ai reçu une alerte par mail “Fail event on /dev/md0”

 

Pour stopper le raid proprement / reprendre la synchronisation
Il faut d’abord demonter le point de montage sinon il il aura une erreur de ce type
“mdadm: Cannot get exclusive access to /dev/md0:Perhaps a running process, mounted filesystem or active volume group?”

puis

 

Pour relancer la raid, et le resync

ou

 

Verifier le status

Si celui a le status resync=PENDING lancer la commande

 

Re-verifier le status

 

Enfin remonter le point de montage  pour rendre le partage re-accessible

 

 

Source

https://wiki.debian-fr.xyz/Raid_logiciel_(mdadm)

https://www.digitalocean.com/community/tutorials/how-to-create-raid-arrays-with-mdadm-on-ubuntu-16-04

https://debian-facile.org/doc:install:supprimer-un-raid-logiciel

https://framacloud.org/fr/echange-de-graines/debloquer-un-raid-coince-en-resyncpending.html

 

 

Rating: 5.0/5. From 5 votes.
Please wait...
Voting is currently disabled, data maintenance in progress.

10 thoughts to “[Raspberry Pi 3] Créer un raid logiciel puis faire un nas”

  1. Bonsoir,
    super tuto qui donne envie d’essayer ! Quelques questions me viennent a l’esprit :
    – Si la SD du rasp vient a tomber en panne, comment se comporte le Raid logiciel ? Ce raid devient inutilisable ou il y a une méthode pour reconstruire tout ?
    – aussi c’est comment en terme de performance en copier coller ?
    – Peut on lire les données des disques qui sont en raid sur un autre raspberry ?
    Alexandre

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. Bonjour,
      Il est possible de reconstruire le raid, j’avais une ébauche d’article mais faute de temps je suis passé a autre chose
      Entre temps j’ai recyclé les disques et ma SD pour un autre projet du coup j’ai fait un tuto sur la récupération des données quand on a plus d’accès au raid
      https://it.izero.fr/windowslinux-recuperer-les-donnees-dun-disque-en-raid-avec-testdisk/
      Du coup je n’ai pas la réponse au autres questions

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.
  2. Bonsoir BEF
    Merci beaucoup pour ce tuto.
    Pas de problème jusqu’à la création d’un utilisateur
    sudo adduser Daniel grp_raid1 retourne adduser : L’utilisateur “Daniel” n’existe pas
    une idée ?
    Merci beaucoup
    Daniel

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. Bonjour,
      l’utilisateur Daniel ne semble pas avoir été crée
      attention au majuscule, Linux est sensible a la case
      pour vérifier, regarder dans /etc/password avec un grep
      cat /etc/passwd | grep daniel
      ou
      cat /etc/passwd | grep Daniel

      ou aussi faire un id
      id daniel
      ou id Daniel

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.
  3. Bonjour, nickel votre tuto, l’installation s’est fait sans problème. J’aurais juste une question de noob, comment fais t’on pour avoir l’activité en réel des transferts sur la raspberry comme vous le montrez dans votre tuto. Merci encore

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. Bonjour,
      je sais plus trop, la commande mdstat permet de voir l’état de la synchro
      cat /proc/mdstat

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.
  4. commande du tuto:
    $ sudo mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/sda /dev/sdb

    commande dans le man
    mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/hd[ac]1

    du coup c’est /dev/sda et sdb ou /dev/sda1 et sdb1 qu’il faut indiquer?

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. Bonjour
      ça doit être une typo
      Comme dit la doc, il faut préciser les partitions, /dev/sda1, /dev/sda2 …

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.
  5. Bonjour,
    En cas de Crash d’un disque, il suffit de le remplacer et la synchronisation s’effectue automatiquement? ou faut-il relancer le raid et le resync? ou autre?
    Merci d’avance et félicitation pour le tuto ultra complet!
    Yoann

    No votes yet.
    Please wait...
    Voting is currently disabled, data maintenance in progress.
    1. Hello
      je n’ai pas souvenir pour ce type de raid, je suis sur une autre techno je ne l’utilise plus
      Voici un article qui traite de la resynchro manuelle si besoin.
      https://www.thomas-krenn.com/en/wiki/Mdadm_recovery_and_resync

      No votes yet.
      Please wait...
      Voting is currently disabled, data maintenance in progress.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.