Mon idée actuelle est de créer une matrice logicielle, classe RAID-6, avec 4 disques membres, en utilisant mdadm
.
Plus précisément, les disques seraient des disques durs de 1 To sur SATA dans un petit serveur Dell T20.
Le système d'exploitation est GNU/Linux Debian 8.6 (plus tard mis à jour :Jessie ⟶ Stretch ⟶ Buster)
Cela ferait 2 To d'espace disque avec 2 To de parité dans mon cas.
J'aimerais aussi l'avoir avec la table de partition GPT, pour que cela fonctionne, je ne sais pas comment procéder spécifiquement en supposant que je préférerais le faire uniquement via le terminal.
Comme je n'ai jamais créé de matrice RAID, pourriez-vous me guider sur la façon dont je dois procéder ?
Remarques :
-
Ce tableau ne servira que pour les seules données. Pas de démarrage ni de système d'exploitation dessus.
-
J'ai opté pour RAID-6 en raison de l'objectif de cette matrice. Deux pannes de disque auxquelles la matrice doit pouvoir survivre. Étant donné que je suis limité par le matériel à 4 disques, il n'y a pas d'alternative au RAID-6 à ma connaissance. (Aussi laid que puisse paraître le ralentissement du RAID-6, cela n'a pas d'importance dans cette baie.)
Réponse acceptée :
Dans cette réponse, précisez que toutes les données seront détruites sur tous les membres de la baie (lecteurs), alors sauvegardez-les d'abord !
Ouvrez le terminal et devenez root
(su
); si vous avez sudo
activé, vous pouvez également faire par exemple sudo -i
; voir man sudo
pour toutes les options):
sudo -i
Tout d'abord, nous devons effacer les disques, s'il y avait des données et des systèmes de fichiers auparavant, c'est-à-dire. Supposons que nous ayons 4 membres :sdi
, sdj
, sdk
, sdl
. Dans le but d'avoir un retour visuel de ce processus, le pv
(visualiseur de tubes ) a été utilisé ici :
pv < /dev/zero > /dev/sdi
pv < /dev/zero > /dev/sdj
pv < /dev/zero > /dev/sdk
pv < /dev/zero > /dev/sdl
Alternativement, pour vérifier simplement s'il ne reste rien, vous pouvez jeter un coup d'œil avec GParted sur tous les lecteurs, et s'il y a une partition avec ou sans système de fichiers, l'effacer pourrait suffire, bien que je préfère moi-même la mise à zéro ci-dessus de tous les lecteurs impliqués, n'oubliez pas de démonter toutes les partitions avant de le faire, cela pourrait être fait de la même manière que ces lignes :
umount /dev/sdi?; wipefs --all --force /dev/sdi?; wipefs --all --force /dev/sdi
umount /dev/sdj?; wipefs --all --force /dev/sdj?; wipefs --all --force /dev/sdj
umount /dev/sdk?; wipefs --all --force /dev/sdk?; wipefs --all --force /dev/sdk
umount /dev/sdl?; wipefs --all --force /dev/sdl?; wipefs --all --force /dev/sdl
Ensuite, nous initialisons tous les lecteurs avec la table de partition GUID (GPT), et nous devons partitionner tous les lecteurs, mais ne le faites pas avec GParted, car cela créerait un système de fichiers dans le processus, ce que nous ne voulons pas, utiliser gdisk
à la place :
gdisk /dev/sdi
gdisk /dev/sdj
gdisk /dev/sdk
gdisk /dev/sdl
Dans tous les cas, utilisez les éléments suivants :
o
Entrez pour une nouvelle table de partition GUID vide (GPT)y
Entrez pour confirmer votre décisionn
Entrez pour une nouvelle partition
Entrée pour la première partition par défaut
Entrée par défaut du premier secteur
Entrée pour défaut du dernier secteurfd00
Entrez pour le type de RAID Linuxw
Entrez pour écrire des modificationsy
Entrez pour confirmer votre décision
Vous pouvez maintenant examiner les disques :
mdadm --examine /dev/sdi /dev/sdj /dev/sdk /dev/sdl
Il devrait dire :
(type ee)
Si c'est le cas, nous examinons maintenant les partitions :
mdadm --examine /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1
Il devrait dire :
No md superblock detected
Si c'est le cas, nous pouvons créer la matrice RAID6 :
mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1
Nous devrions attendre que le tableau soit entièrement créé, ce processus que nous pouvons facilement watch
:
watch cat /proc/mdstat
Après la création du tableau, il faut regarder son détail :
mdadm --detail /dev/md0
Il devrait dire :
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Maintenant, nous créons un système de fichiers sur le tableau, si vous utilisez ext4
, le dessous masqué commande est préférable d'éviter, à cause de ext4lazyinit
prendrait un temps considérable dans le cas d'un grand tableau, d'où le nom, "lazyinit ", donc je vous recommande d'éviter celui-ci :
mkfs.ext4 /dev/md0
Au lieu de cela, vous devez forcer une initialisation instantanée complète (avec 0 % réservé à root
car il s'agit d'un tableau de données) :
mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0 /dev/md0
En spécifiant ces options, les inodes et le journal seront initialisés immédiatement lors de la création, utile pour les tableaux plus grands.
Si vous avez choisi de prendre un raccourci et créé le ext4
système de fichiers avec la "commande mieux évitée", notez que ext4lazyinit
prendra un temps considérable pour initialiser tous les inodes, vous pouvez le regarder jusqu'à ce qu'il soit terminé, par ex. avec iotop
ou nmon
.
Quelle que soit la manière dont vous choisissez d'initialiser le système de fichiers, vous devez le monter une fois qu'il a terminé son initialisation.
Nous créons maintenant un répertoire pour cette matrice RAID6 :
mkdir -p /mnt/raid6
Et montez-le simplement :
mount /dev/md0 /mnt/raid6
Puisque nous avons essentiellement terminé, nous pouvons utiliser à nouveau GParted pour vérifier rapidement s'il affiche linux-raid
système de fichiers, avec le raid
drapeau sur tous les lecteurs.
Si c'est le cas, nous avons correctement créé la matrice RAID6 avec des partitions GPT et pouvons maintenant y copier des fichiers.
Voir quel UUID le md
le système de fichiers a :
blkid /dev/md0
Copiez l'UUID dans le presse-papiers.
Maintenant, nous devons éditer fstab
, avec votre éditeur de texte préféré, j'ai utilisé nano
, bien que sudoedit
pourrait mieux être utilisé :
nano /etc/fstab
Et ajoutez-y une entrée :
UUID=<the UUID you have in the clipboard> /mnt/raid6 ext4 defaults 0 0
Moi-même, je ne recommande pas d'utiliser defaults
ensemble de drapeaux, je voulais simplement que la ligne ne soit pas trop complexe.
Voici les drapeaux de montage que j'utilise sur un RAID de données sauvegardées par UPS (au lieu de defaults
):
nofail,nosuid,nodev,noexec,nouser,noatime,auto,async,rw,data=journal,errors=remount-ro
Vous pouvez vérifier s'il est correct après avoir enregistré les modifications :
mount -av | grep raid6
Il devrait dire :
already mounted
Si c'est le cas, nous sauvegardons la configuration du tableau ; au cas où vous n'auriez pas de md
appareil encore créé, vous pouvez simplement faire :
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Dans le cas où des tableaux existent déjà, exécutez simplement la commande précédente sans redirection vers le fichier de configuration :
mdadm --detail --scan
et ajoutez manuellement le nouveau tableau au fichier de configuration.
En relation :Traiter l'heure de début avec le fuseau horaire ?
Au final, n'oubliez pas de mettre à jour votre initramfs
, car sinon votre nouveau tableau ne s'assemblera qu'en lecture seule automatiquement, probablement sous la forme /dev/md127
ou similaire :
update-initramfs -u -k all
Vérifiez si vous avez tout fait comme prévu, et si c'est le cas, vous pouvez recommencer :
reboot