RAID logiciel - mdadm

2010 Archive

Danger

Créer une sauvegarde des données avec les empreintes avant de procéder.

Note

Il est préférable d’utiliser zpool car il est utilisé à grande échelle en production, de plus il est plus facile à configurer, stable et fiable.

Configuration du RAID 1

On suppose que les deux disques durs de 500 Go sont identiques, installés et formatés en ext4. On les configure pour qu’ils soient en raid 1

Passer en root

su -

Créer un nouveau périphérique logique

mknod /dev/md0 b 9 0

Installer mdadm

apt install mdadm

Création du cluster. On indique à mdadm le type de RAID que l’on fait (level = 1), le nombre de disques durs composant ce cluster (raid-devices = 2), le nom du cluster (/dev/md0) et les partitions composant le cluster (/dev/sda1 et /dev/sdb1)

mdadm --create --verbose /dev/md0 --level=raid1 --raid-devices=2 /dev/sda1 /dev/sdb1

Ceci affiche

mdadm --create --verbose /dev/md1 --level=raid1 --raid-devices=2 /dev/sdb2 /dev/sdc2
mdadm: /dev/sdb2 appears to contain an ext2fs file system
   size=293065760K  mtime=Thu Jan  1 01:00:00 1970
mdadm: /dev/sdc2 appears to contain an ext2fs file system
   size=293065760K  mtime=Thu Jan  1 01:00:00 1970
mdadm: size set to 293065664K
   Continue creating array? y
mdadm: array /dev/md1 started.

Voir l’état du raid

mdadm --detail -scan

Voici ce qui devrait s’afficher

ARRAY /dev/md0 level=raid1 num-devices=2 UID=b0be37d4:54202dc1:0e9efb29:244465d1

Il faut maintenant attendre que le raid soit construit, vous pouvez voir les détails de progression comme ceci :

mdadm --detail /dev/md0

Monter le volume raid. Il est nécessaire de sauvegarder les caractéristiques du cluster.

mdadm --detail --scan

La commande précédente nous montre la ligne suivante

ARRAY /dev/md0 level=raid1 num-devices=2 metadata=00.90 UUID=c06c3k41:gk63de5c:4e5m5245:5ead0852

Cette ligne est ajoutée au fichier /etc/mdadm/mdadm.conf, il faut ensuite redémarrer la machine et tout remettre en ordre

Supprimer un volume RAID

Éteindre le volume

sudo mdadm --stop /dev/md0\nsudo mdadm --remove /dev/md0

Supprimer les superblocs

sudo mdadm --zero-seperblock /dev/sda1
sudo mdadm --zero-seperblock /dev/sdb1

Vérifier si les partitions sont revenues à la “normale”

sudo mdadm --examine /dev/sda3\nmdadm : no md superberblock detected on /dev/sda3

Vous devez ensuite commenter la ligne concernant le cluster dans le fichier etc/mdadm/mdadm.conf, sinon il y a une erreur au redémarrage.

Configuration du RAID 5

On suppose que trois disques durs identiques de 500 Go sont installés. On va les configurer pour qu’ils soient en Raid 5

Lancer le terminal en root

su -

Installation du paquet mdadm

apt install mdadm

Création du volume Raid 5

 mdadm --create --verbose /dev/md0 --level=5 --assume-clean --raid-devices=4 /dev/sd[bcd]

--assume-clean : empêche la synchronisation après la création. Cette synchronisation peut durer des dizaines d’heures selon la taille du raid, et dans le cadre d’une nouvelle création, on va de toute façon formater le volume par la suite.

Démonisation du volume RAID, on va faire en sorte que le système charge le volume à chaque démarrage :

mdadm --daemonise /dev/md0

Formater le volume raid

mkfs.ext4 -j /dev/md0

Pour une édition automatique, ajouter dans /etc/fstab

/dev/md0 	/media/raid	ext4	defaults	0	1

Étude de cas : perte d’un disque

Quand le groupe raid est en mode “degraded” (disque manquant). Il sera assemblé mais pas démarré, pour le forcer utiliser “–run” en plus des autres options, ou une fois que le groupe raid est assemblé

mdadm --run /dev/md0

Examiner le cluster

mdadm --detail /dev/md0

Ajouter le disque de remplacement

mdadm /dev/md0 --add /dev/sde

Retirer le disque dur défaillant

mdadm /dev/md0 --fail /dev/sda\nmdadm /dev/md0 --remove /dev/sda

Vérifier la reconstruction du raid. Ne pas redémarrer l’ordinateur tant que le raid n’est pas reconstruit.

mdadm --detail /dev/md0

Étude de cas : migrer les données vers une nouvelle machine

Supposons que vous vouliez installer un cluster préexistant sur une machine qui n’a pas de volume RAID

Installer mdadm

apt install mdadm

Créer un nouveau fichier FIFO, l’identifiant 0 peut être différent s’il est déjà utilisé

mknod /dev/md0 b 9 0

Démarrer l’ancien RAID comme suit :

mdadm -A /dev/md1 --update=super-minor -m0 /dev/sd... /dev/sd...

Pour rendre le raid persistant

mdadm --daemonise /dev/md0