Table des matières
Un NAS avec Raid 1 sur un Raspberry Pi (clés USB)
Ce tutoriel montre comment créer un serveur NAS RAID sur un Raspberry Pi à l'aide de lecteurs flash USB, de mdadm et pour que le lecteur s'affiche comme un dossier réseau normal sur un PC.
Ce tutoriel montre comment créer une matrice RAID Linux.
Pré-requis
-
un Raspberry Pi (si possible Raspberry Pi 4 avec 4GB de RAM) :
-
avec son bloc d'alimentation micro-USB
-
Raspbian installé
-
et configuré
des clés USB de la même taille et si possible du même fabricant.Première étape
-
Mettez à jour le système et installez mdadm :
pi@framboise:~ $ sudo apt update pi@framboise:~ $ sudo apt upgrade pi@framboise:~ $ sudo apt install mdadm
Autres étapes
Configurer les lecteurs
Sur un PC,
-
Insérez l'une de vos clés USB (fermez toutes les fenêtres automatiques)
-
Sélectionnez Formater la partition… et Choisissez les options suivantes :
-
Nom de volume : USB01
-
Désactivez Effacer
-
Type: NTFS
Cliquez sur le bouton Suivant (en haut à droite) puis sur le bouton Formater dans la fenêtre d'alerteRépétez ce processus pour chaque clé USB à utiliser en incrémentant le nom : USB02, USB03, etc.Insérez vos clés USB dans votre Raspberry Pi, peu importe dans quelle prise USB.Trouvez les points de montage pour chaque lecteur :pi@framboise:~ $ lsblk -f NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda └─sda1 ntfs USB01 2A32D9AE01C69BE5 sdb └─sdb1 ntfs USB02 4B861C0D7BE397AD ...
Le plus souvent, ce sera : /dev/sda1, /dev/sdb1, /dev/sdc1 et /dev/sdd1
Configurer le RAID
Configurer un volume RAID-0
Entrez le code suivant pour configurer deux disques USB ou plus dans une matrice RAID-0 hautes performances en parallèle, en remplaçant –raid-devices=X par le nombre de disques que vous utilisez et /dev/sda1 /dev/sdb1 par vos points de montage :
pi@framboise:~ $ sudo mdadm --create --verbose /dev/md/vol1 --level=0 --raid-devices=2 /dev/sda1 /dev/sdb1
Si vous obtenez une erreur : “mdadm: RUN_ARRAY failed: Unknown error 524”, c'est un bogue dû au fait que les disques n'ont pas exactement la même taille pour RAID-0 ; ce bogue a été corrigé mais Raspbian n'a pas encore été mis à jour.
Avec 4 disques dans la matrice RAID-0, le code serait le suivant :
pi@framboise:~ $ sudo mdadm --create --verbose /dev/md/vol1 --level=0 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
Configurer un volume RAID-1
Pour configurer une matrice RAID-1 redondante avec deux disques, entrez le code suivant :
pi@framboise:~ $ sudo mdadm --create --verbose /dev/md/vol1 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 mdadm: partition table exists on /dev/sda1 mdadm: partition table exists on /dev/sda1 but will be lost or meaningless after creating array mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 mdadm: partition table exists on /dev/sdb1 mdadm: partition table exists on /dev/sdb1 but will be lost or meaningless after creating array mdadm: size set to 262011904K mdadm: automatically enabling write-intent bitmap on large array
Continue creating array? ymdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md/vol1 started.pi@framboise:~ $Configurer un volume RAID-4/5/6
Pour configurer un RAID-4 redondant, un RAID-5 avec trois disques ou une matrice RAID-6 avec quatre disques, utilisez le code suivant, en remplaçant –level=X par le niveau RAID souhaité :
pi@framboise:~ $ sudo mdadm --create --verbose /dev/md/vol1 --level=4 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
Pour une matrice RAID-5 utilisant trois disques et un disque de secours :
pi@framboise:~ $ sudo mdadm --create --verbose /dev/md/vol1 --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1
Configurer un volume RAID-10
Pour configurer un RAID-10 rapide et redondant (également appelé RAID-1 + 0 imbriqué), utilisez le code suivant :
pi@framboise:~ $ sudo mdadm --create --verbose /dev/md/vol1 --level=10 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
Pour plus d'informations sur les matrices RAID complexes, consultez le wiki mdadm.
Confirmez votre matrice RAID
Confirmez que la création de votre matrice RAID s'est bien passée :
pi@framboise:~ $ sudo mdadm --detail /dev/md/vol1 /dev/md/vol1: Version : 1.2 Creation Time : Tue Sep 1 10:56:07 2020 Raid Level : raid1 Array Size : 262011904 (249.87 GiB 268.30 GB) Used Dev Size : 262011904 (249.87 GiB 268.30 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Tue Sep 1 11:01:15 2020 State : clean, resyncing Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Consistency Policy : bitmap Resync Status : 1% complete Name : framboise4:vol1 (local to host framboise4) UUID : 00cf86a6:2203941c:858016c8:7ed99f38 Events : 61 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 8 17 1 active sync /dev/sdb1
Sauvegarder votre matrice RAID
Raspbian ne nous laisse pas enregistrer la matrice RAID en tant que user:pi, même en utilisant sudo.
Passez donc temporairement en compte root puis enregistrez la matrice RAID et vérifiez le contenu du fichier /etc/mdadm/mdadm.conf (n'oubliez pas de sortir du mode root !) :
pi@framboise:~ $ sudo -i
root@framboise:~# mdadm --detail --scan >> /etc/mdadm/mdadm.conf root@framboise:~# mdadm --detail --scan >> /etc/mdadm/mdadm.conf root@framboise:~# nano /etc/mdadm/mdadm.conf root@framboise:~# exitpi@framboise:~ $Créer un système de fichiers
Nous utiliserons le système de fichiers EXT4 car c'est le meilleur choix pour notre matrice RAID.
pi@framboise:~ $ sudo mkfs.ext4 -v -m .1 -b 4096 -E stride=32,stripe-width=64 /dev/md/vol1 mke2fs 1.44.5 (15-Dec-2018) Found a dos partition table in /dev/md/vol1
Proceed anyway? (y,N) yfs_types for mke2fs.conf resolution: 'ext4' Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=32 blocks, Stripe width=64 blocks 16375808 inodes, 65502976 blocks 65502 blocks (0.10%) reserved for the super user First data block=0 Maximum filesystem blocks=2214592512 1999 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Filesystem UUID: ae18d5bc-909d-4e1e-b4bc-4d68192592a6 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (262144 blocks): done Writing superblocks and filesystem accounting information: donepi@framboise:~ $sudo mkfs.ext4 -v -m .1 -b 4096 -E stride=32,stripe-width=64 /dev/md/vol1 (replace /dev/md/vol1 with your RAID array name)
Ce code produit un système de fichiers EXT4 avec :
-
taille de bloc = 4096 ko
-
stride = 32
-
stripe-width = 64
-
et laissera 1% libre pour éviter les problèmes de débordement
-
and will leave 1% free so it won’t fill up and cause issues
L'opération prend une ou deux minutes.
Maintenant, montez le système de fichiers pour y accéder :
pi@framboise:~ $ sudo mount /dev/md/vol1 /media/nas/ mount: /media/nas: wrong fs type, bad option, bad superblock on /dev/md127, missing codepage or helper program, or other error. pi@framboise:~ $
Ne se monte pas !
Conclusion
Problèmes connus
Voir aussi
-
-