Ajout d'un disque raid

Avant propos

Quelques informations trouvées ici :

How to add a drive to software RAID with mdadm – The WP Guru

Ajouter un disque à LVM sur mdadm | LPRP.fr

Quelques commandes utiles

Lister de manière détaillée un RAID array :

mdadm -D /dev/md1

Lister "simplement" les partitions d'un RAID array :

mdadm -v --detail --scan /dev/md1 | awk -F= '/^[ ]+devices/ {print $2}'

Une autre liste du même type :

mdadm --query --detail /dev/md{0..2} | grep dev

Voir les PV et VG de manière condensée :

pvdisplay -C --separator '  |  ' -o pv_name,vg_name

C'est parti

Après avoir installé physique le nouveau disque, on va vérifier qu'il est bien présent :

lsblk -o name,serial

On note son nom, par exemple nvme4n1.

On lui crée des partitions identiques aux autres disques du RAID. On va donc noter le début et la fin des partitions de l'un des disques :

sfdisk -d /dev/nvme1n1 | sfdisk /dev/nvme4p1

Il est possible qu'il soit nécessaire de forcer l'opération :

sfdisk -d /dev/nvme1n1 | sfdisk --force /dev/nvme4n1

Après avoir restauré le partitionnement, on peut insérer les différentes parties du disque dur dans le RAID (X = numéro de la partition, Y = numéro du RAID array) :

mdadm --add /dev/mdY /dev/nvme4n1pX    

Avant de lancer le grossissement (et donc la reconstruction) on va augmenter quelques paramètres pour augmenter la vitesse de reconstruction (X = numéro du RAID array) :

echo 32768 > /sys/block/mdX/md/stripe_cache_size
echo 50000 > /proc/sys/dev/raid/speed_limit_min
echo 200000 > /proc/sys/dev/raid/speed_limit_max
echo max > /sys/block/mdX/md/sync_max

Puis on va faire grossir le raid (X = nombre de partition dans le raid, Y = numéro du RAID array) :

mdadm --grow --raid-devices=X --backup-file=/root/mdY_.bak /dev/mdY

On peut surveiller la reconstruction du raid :

watch cat /proc/mdstat

Une fois la reconstruction terminée, pour les partitionnement via LVM, on va agrandir la taille du PV :

pvresize /dev/mdX

Puis on va ajouter de l'espace à notre LV :

lvextend --resizefs --size +500GB /dev/vg0/data