Un avantage non négligeable d’un volume RAID 5 logiciel est de pouvoir en augmenter la capacité à volonté (ou presque).
Dans un précédent billet j’avais décrit comment créer un volume RAID 5 logiciel à l’aide de l’outil mdadm. Il faut savoir que le volume RAID 5 ainsi créé n’est pas figé : nous verrons ici comment y ajouter des disques pour en augmenter la capacité.
1. Identifier le volume RAID et ses constituants
Supposons pour les besoins de l’exercice que nous disposions du volume RAID 5 créé dans le précédent billet, contenant donc quatre disques (quatre partitions) d’1 To chacun. Le volume est désigné par /dev/md0
, et un petit coup d’œil dans le fichier /proc/mdstat
nous montre par exemple :
/proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid5 sdc1[0] sdf1[3] sde1[2] sdd1[1]
2895866452 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
Le volume est donc constitué des partitions /dev/sdc1
, /dev/sdd1
, /dev/sde1
et /dev/sdf1
.
2. Ajouter la nouvelle partition au volume RAID
Il est d’abord nécessaire d’éteindre la machine, et de sortir un tournevis pour ajouter physiquement le disque dur dans l’ordinateur.
Une fois la machine de nouveau opérationnelle, supposons que le nouveau disque soit désigné comme /dev/sde
. On commence par y créer une partition, avec fdisk ou Gparted, que l’on appelera /dev/sde1
.
Pour la suite il sera nécessaire de démonter le volume RAID, pour être sûr qu’il ne sera utilisé par aucun processus :
Ajoutons cette nouvelle partition au volume RAID 5 :
Cette opération ne prend que quelques secondes. Ensuite, il faut étendre le volume RAID 5 pour qu’il utilise le nouvel espace disponible :
Cette opération consiste à recalculer tous les bits de parité et reconstruire la redondance RAID 5… Cela peut durer plusieurs heures, pendant lesquelles il ne faut évidemment aucune interruption ni coupure de courant, sans quoi le volume peut devenir complètement inutilisable, avec le risque d’en perdre toutes les données. Il est possible de suivre la progression en regardant le fichier /proc/mdstat
qui, lors de la reconstruction, ressemblera à ceci :
/proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid5 sdc1[0] sdf1[3] sde1[2] sdd1[1] sde1[4]
3895866452 blocks level 5, 64k chunk, algorithm 2 [5/4] [UUUU_]
[=====>……………] recovery = 27.1% (1058594/3906250) finish=86.3min speed=65602K/sec
Une fois cette grosse opération terminée, il est prudent de vérifier l’intégrité du volume. Ceci se fait grâce à l’outil fsck sous Linux, ici comme nous avons une partition au format ext3 :
De nouveau cela peut prendre plusieurs heures.
3. Augmenter la taille de la partition RAID
Enfin, il faut redimensionner la partition du RAID 5 pour occuper toute la place sur les disques :
Il n’y a plus qu’à remonter le disque (notez qu’il n’y a pas besoin de redémarrer) :
Et voilà, le volume RAID est de nouveau opérationnel. Sa capacité a augmenté, dans notre cas d’environ 1 To.
Je voudrais rappeler qu’un volume RAID 5 est tolérant à la panne d’un seul disque, en revanche si deux disques sont défaillants alors l’intégralité des données est perdue. Or, en augmentant le nombre de disques constituant un RAID 5, la probabilité que deux disques lâchent en même temps se trouve augmentée. Au-delà de six disques, plutôt qu’un seul volume RAID 5 utilisant tous les disques, il peut être plus sûr de créer deux volumes RAID 5 différents, car ils pourront résister chacun à la panne d’un de leurs disques. Un moyen encore plus sûr serait d’utiliser un autre niveau de RAID, comme le RAID 6 qui tolère la panne de deux disques, ou si les données sont très sensibles, le RAID 10, 15 ou 51.