GNU/Linux >> Tutoriels Linux >  >> Linux

Implémentation de Mdadm Raid avec partitionnement Gpt ?

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écision
n 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 secteur
fd00 Entrez pour le type de RAID Linux
w Entrez pour écrire des modifications
y Entrez pour confirmer votre décision

Connexe:CPU à usage général en tant qu'analyseur logique meilleur / pire que l'implémentation FPGA dédiée?

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

Linux
  1. Remplacement d'un disque RAID 6 défaillant par mdadm

  2. Comment Tonstall Ubuntu 14.04 avec Raid 1 à l'aide de Desktop Installer?

  3. Tableaux bash avec exemples

  4. Le tutoriel Ultimate Bash Array avec 15 exemples

  5. RAID1 augmente-t-il les performances avec Linux mdadm ?

Bash Scripting - Tableau associatif expliqué avec des exemples

Comment faire fonctionner à nouveau un périphérique RAID inactif ?

Simple mdadm RAID 1 n'active pas la réserve

Impossible d'arrêter le périphérique de raid

Créer un tableau avec toutes les interfaces réseau en bash

Le raid Linux disparaît après le redémarrage