Booster les performances MdAdm

rebuild-raid

MdAdm permet de créer un raid logiciel. Il est relativement performant et permet de faire à peu prêt tout ce dont vous avez besoin.

Mais il est important d'optimiser certains paramètres sinon les reconstructions (rebuild) peuvent prendre plusieurs heures. 

Par exemple pour mon raid de 16To, la reconstruction raid suite à un changement de disque dur peut prendre jusqu'à 75 heures.

Définir les vitesses de votre Raid

Les fichiers "/proc/sys/dev/raid/speed_limit_min" et "/proc/sys/dev/raid/speed_limit_max" permettent de définir la vitesse minimale à atteindre pour reconstruire votre raid et la vitesse à ne pas dépasser.

Vous pouvez voir la vitesse définie pour votre Raid en exécutant les commandes suivantes:

$ cat /proc/sys/dev/raid/speed_limit_min
1000
$ cat /proc/sys/dev/raid/speed_limit_max 
200000

Dans cet exemple, cela signifie que pour chaque disque, la limite minimale de reconstruction est de 1mo par seconde. Et la limite maximale est de 200mo/s.

On voit que la limite basse est peu élevée. On peut l'augmenter en entrant la commande suivante:

echo 20000 > /proc/sys/dev/raid/speed_limit_min

ou via la commande:

sysctl -w dev.raid.speed_limit_min=20000

Cela permet de passer la vitesse minimale à 20mo/s.

Toutefois, ces modifications sont temporaires et ne remplacent pas les valeurs par défaut. Cela signifie qu'au premier redémarrage de votre serveur, les paramètres seront revenus à ceux par défaut. Pour les rendre définitifs, il faut ajouter ces 2 lignes dans le fichier "/etc/sysctl.conf":

dev.raid.speed_limit_min = 50000
dev.raid.speed_limit_max = 200000

Accélérer la reconstruction du raid

Pour augmenter la reconstruction du raid, il est possible d'utiliser l'option "Bitmap".

L'option bitamp permet d'optimiser le rebuild après un crash ou le changement d'un device. Pour l'activer, il faut utiliser la commande:

mdadm --grow --bitmap=internal /dev/md0

Puis une fois que votre array raid est reconstruit, il faut la désactiver avec la commande:

mdadm --grow --bitmap=none /dev/md0

Le résultat

Pour voir si votre vitesse a augmenté, il faut faire:

cat /proc/mdstat

Vous aurez alors un résultat tel que celui là:

Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
md5 : active raid1 sde2[2](S) sdd2[3](S) sdc2[4](S) sdb2[1] sda2[0]
      530048 blocks [2/2] [UU]
md0 : active raid6 sde3[4] sdd3[3] sdc3[2] sdb3[1] sda3[0]
      5855836800 blocks level 6, 64k chunk, algorithm 2 [5/5] [UUUUU]
      [============>........]  resync = 61.7% (1205475036/1951945600) finish=242.9min speed=77204K/sec

Leave a Reply

Your email address will not be published. Required fields are marked *