Mdadm

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Commande mdadm
Rôle Gérer le RAID logiciel Linux (périphériques /dev/mdX)
Config /etc/mdadm.conf, état dans /proc/mdstat
Voir aussi RAID · Smartmontools

mdadm gère le RAID logiciel de Linux (« multiple devices », périphériques /dev/mdX).

Installation

yum install mdadm

Créer un RAID 0

mdadm --create /dev/md0 --level=raid0 --raid-devices=2 /dev/sdb1 /dev/sdc1
mkfs -t ext4 /dev/md0
# avec disque de spare
mdadm --create /dev/md0 --level=raid0 --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1

Créer un RAID 0+1

Créer deux matrices RAID 1, puis les agréger en RAID 0 :

mdadm --create /dev/md0 --level=raid1 --raid-devices=2 /dev/sdb1 /dev/sdc1
mdadm --create /dev/md1 --level=raid1 --raid-devices=2 /dev/sdd1 /dev/sde1
mdadm --create /dev/md2 --level=raid0 --raid-devices=2 /dev/md0 /dev/md1
mkfs -t ext4 /dev/md2

Créer un RAID 5

mdadm --create /dev/md0 --level=raid5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1
mkfs -t ext4 /dev/md0

Sauvegarder la configuration

mdadm --detail --scan >> /etc/mdadm.conf

État du RAID

watch cat /proc/mdstat
mdadm --detail /dev/md0    # -D
mdadm --examine /dev/sdb1  # -E

Simuler une panne

mdadm /dev/md0 --fail /dev/sdb1
mdadm --detail /dev/md0

Remplacer un disque

# retirer le disque défectueux
mdadm /dev/md0 --remove /dev/sdb1
# effacer le superbloc avant réutilisation
mdadm --zero-superblock /dev/sda1
# ajouter le nouveau disque (partitionné à l'identique)
mdadm --manage /dev/md0 --add /dev/sdb1
mdadm --detail /dev/md0

Les superblocs RAID sont persistants, même après retrait d'un disque : d'où le --zero-superblock avant toute réutilisation.

Agrandir un volume RAID

mdadm /dev/md0 --add /dev/sde1
mdadm /dev/md0 --grow --backup-file=/fichier/sauvegarde --raid-devices=4
e2fsck -fp /dev/md0
resize2fs /dev/md0
e2fsck -fp /dev/md0

L'option --backup-file sécurise la reconfiguration.

Arrêt / relance

mdadm --stop /dev/md0            # arrêter
mdadm --assemble --scan /dev/md0 # relancer
mdadm --run /dev/md0             # forcer le démarrage

Migration RAID 1 → RAID 5

Attention, cette procédure détruit les données :

umount /array1
mdadm -S /dev/md0
mdadm -C /dev/md0 -l5 -n3 /dev/sdb10 /dev/sdb11 /dev/sdb12 -x1 /dev/sdb13
mount /dev/md0 /array1
mdadm -D /dev/md0
# mettre à jour le fichier de config
cp /etc/mdadm.conf /etc/mdadm.conf_old
echo "DEVICE partitions" > /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf

Voir aussi