RAID Logiciel

Pour connaître le statut des array

cat /proc/mdstat

Création des nod /dev/mdX

mknod /dev/md0 b 9 0
mknod /dev/md1 b 9 1
mknod /dev/md2 b 9 2

Augmentation/Diminution du nombre de disque d'une array

mdadm --grow /dev/md0 --raid-devices=X

Ajouter un disque à une array

mdadm --manage /dev/md0 --add /dev/sda1

Réinjecter un disque ayant été défaillant

mdadm --manage /dev/md0 --readd /dev/sda1

Simuler une panne sur un disque

mdadm --manage --set-faulty /dev/md0 /dev/sda
mdadm --manage --remove /dev/md0 /dev/sda
Si le --remove retourne une erreur comme quoi le disque n'existe pas, utiliser la commande suivante :
mdadm  /dev/md0 -r detached

Scan des array

mdadm --examine --scan

Remarque : Ce qui est retourné peut être envoyé tel-quel dans /etc/mdadm/mdadm.conf

Activation d'une array

Manuellement

mdadm --assemble /dev/mdX /dev/sdaX /dev/sdbX ....

Dans certain cas, l'assemblage n'est pas suivie automatiquement de l'activation. Dans ce cas, il faut lancer la commande suivante :

mdadmn --run /dev/mdX

Automatiquement

mdadm --assemble /dev/mdX --auto=yes

Désactivation d'une array

mdadm --stop /dev/mdX

Augmenter taille d'une array

RAID1

  • Vérifier que l'array est bien synchronisée
  • Invalidé et retirer un des deux disques :
    mdadm --manage /dev/md0 --fail /dev/sdb1
    mdadm --manage /dev/md0 --remove /dev/sdb1
  • Si nécessaire, rebooter pour remplacer ce disque
  • Supprimer la partition et recréer la avec la taille voulu (en utilisant fdisk par exemple)
  • Réinsérer la partition dans le device RAID :
    mdadm --manage /dev/md0 --add /dev/sdb1
  • Laisser la synchro se faire. Pour la suivre :
    watch cat /proc/mdstat
  • Une fois la synchro terminé, répété l'opération sur le deuxième disque :
    • Invalidé et retirer le disque
    • reboot et remplacement si nécessaire
    • suppression et recréation de la partition avec la taille voulu
    • réinsertion de la partition dans le device RAID
  • Étendre le device RAID sur tout l'espace disponible :
    mdadm --grow /dev/md0 --size=max
  • Il ne vous restera plus qu'a redimensionné le système de fichiers ou le volume physique LVM dessus :
    • ext3 ou ext4 :
      resize2fs /dev/md0
    • Volume Physique LVM :
      pvresize /dev/md0

RAID5

  • Ajouter un disque à la grappe :
    mdadm --manage /dev/md0 --add /dev/sdX1
  • Augmenter le nombre de disque utile de la grappe :
    mdadm --grow /dev/md0 --raid-devices=4
  • Laisser la synchro ce faire. Il ne vous restera ensuite qu'a redimensionné le système de fichiers ou le volume physique LVM dessus :
    • EXT2/3/4 :
      resize2fs /dev/md0
    • PV LVM :
      pvresize /dev/md0

Arrêter un resync en cours

Utiliser la commande checkarray :

  • Pour stopper un resync actif pour tout les devices RAID :
    /usr/share/mdadm/checkarray -xa
  • Pour stopper un resync actif sur un device RAID spécifique :
    /usr/share/mdadm/checkarray -x /dev/md[123]

Régler la vitesse de resync

# Vitesse minimale
cat /proc/sys/dev/raid/speed_limit_min
echo 50000 > /proc/sys/dev/raid/speed_limit_min
 
# Vitesse maximale
cat /proc/sys/dev/raid/speed_limit_max
echo 200000 > /proc/sys/dev/raid/speed_limit_max