Rappel des opérations à réaliser pour ajouter un nouveau disque au sein d’une baie RAID existante et gérée par mdadm
.
- tests des erreurs sur le nouveau disque
- partionnement du nouveau disque
- ajout du disque dans l’array RAID5
- retaillage du volume
Tests des erreurs sur le nouveau disque
badblocks -s -v -p 1 -c 65536 -w /dev/sdb
Sur un disque 3 TB Western Digital SATA
: ~7 heures d’écriture + ~7 heures de vérification par pattern
Ecriture d’un premier pattern + vérification :
Vérification des blocs défectueux en mode lecture-écriture
Du bloc 0 au bloc 2930266583
Test en cours avec le motif 0xaa: complété
Lecture et comparaison : 89.61% 95.92% effectué, 14:07:24 é©coulé. (0/0/0 erreurs)
Ecriture d’un deuxième pattern :
Vérification des blocs défectueux en mode lecture-écriture
Du bloc 0 au bloc 2930266583
Test en cours avec le motif 0xaa: complété
Lecture et comparaison : 89.61%complété
Test en cours avec le motif 0x55: 0.23% effectué, 14:34:47 écoulé. (0/0/0 erreurs)
Partitionnement du disque
parted /dev/sdb
ou
gparted
Ajout du disque dans l’array RAID5
On commence par ajouter le nouveau disque, puis on aggrandit la grappe.
mdadm --manage /dev/md0 --add /dev/sdb1
mdadm --grow /dev/md0 --raid-devices=5
Augmentation (ou réduction au besoin) de la vitesse de reconstruction :
echo 400000 > /proc/sys/dev/raid/speed_limit_max
Affichage des détails de la grappe RAID :
mdadm --misc --detail /dev/md0
Version : 1.2
Creation Time : Sat Jul 21 10:18:36 2012
Raid Level : raid5
Array Size : 8790790656 (8383.55 GiB 9001.77 GB)
Used Dev Size : 2930263552 (2794.52 GiB 3000.59 GB)
Raid Devices : 5
Total Devices : 5
Persistence : Superblock is persistent
Update Time : Fri May 1 09:53:06 2015
State : clean, reshaping
Active Devices : 5
Working Devices : 5
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Reshape Status : 0% complete
Delta Devices : 1, (4->5)
Name : jupiter:0 (local to host jupiter)
UUID : 8161d5e9:c606789b:1ab69820:9b9f43c6
Events : 12776
Number Major Minor RaidDevice State
0 8 81 0 active sync /dev/sdf1
1 8 65 1 active sync /dev/sde1
3 8 49 2 active sync /dev/sdd1
4 8 113 3 active sync /dev/sdh1
5 8 17 4 active sync /dev/sdb1
Consultation de l’avancée de la progression de la reconstruction (avec affichage d’un estimé du temps restant).
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdb1[5] sdd1[3] sdf1[0] sdh1[4] sde1[1]
8790790656 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/5] [UUUUU]
[>....................] reshape = 0.0% (2448896/2930263552) finish=2212.9min speed=22050K/sec
unused devices: <none>
Une vérification est lancée automatiquement à la fin du retaillage (mode “check”) :
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdb1[5] sdd1[3] sdf1[0] sdh1[4] sde1[1]
11721054208 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/5] [UUUUU]
[==================>..] check = 90.7% (2660303136/2930263552) finish=68.4min speed=65739K/sec
unused devices: <none>
Retaillage de la grappe, sans quoi la nouvelle taille n’est pas prise en compte.
resize2fs /dev/md0
10:26 root@jupiter ~# resize2fs /dev/md0
resize2fs 1.42 (29-Nov-2011)
Le système de fichiers de /dev/md0 est monté sur /mnt/internal/raid ; le changement de taille doit être effectué en ligne
old_desc_blocks = 524, new_desc_blocks = 699
En train d'effectuer un changement de taille en ligne de /dev/md0 vers 2930263552 (4k) blocs.
Le système de fichiers /dev/md0 a maintenant une taille de 2930263552 blocs.
Exemple de redémarrage
[66097.692330] RAID conf printout:
[66097.692335] --- level:5 rd:5 wd:5
[66097.692338] disk 0, o:1, dev:sdf1
[66097.692340] disk 1, o:1, dev:sde1
[66097.692342] disk 2, o:1, dev:sdd1
[66097.692344] disk 3, o:1, dev:sdh1
[66097.692346] disk 4, o:1, dev:sdb1
[66097.692398] md: reshape of RAID array md0
[66097.692404] md: minimum _guaranteed_ speed: 1000 KB/sec/disk.
[66097.692408] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for reshape.
[66097.692415] md: using 128k window, over a total of 2930263552k.
[66098.712339] md: md_do_sync() got signal ... exiting
[66098.757893] md: reshape of RAID array md0
[66098.757899] md: minimum _guaranteed_ speed: 1000 KB/sec/disk.
[66098.757903] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for reshape.
[66098.757910] md: using 128k window, over a total of 2930263552k.
[88476.488193] hrtimer: interrupt took 569139 ns
[206122.623450] md: md0: reshape done.
[206122.738454] RAID conf printout:
[206122.738459] --- level:5 rd:5 wd:5
[206122.738463] disk 0, o:1, dev:sdf1
[206122.738465] disk 1, o:1, dev:sde1
[206122.738467] disk 2, o:1, dev:sdd1
[206122.738469] disk 3, o:1, dev:sdh1
[206122.738472] disk 4, o:1, dev:sdb1
[206122.738477] md0: detected capacity change from 9001769631744 to 12002359508992
[206123.062136] VFS: busy inodes on changed media or resized disk md0
[206531.169139] md: data-check of RAID array md0
[206531.169144] md: minimum _guaranteed_ speed: 30000000 KB/sec/disk.
[206531.169146] md: using maximum available idle IO bandwidth (but not more than 800000 KB/sec) for data-check.
[206531.169153] md: using 128k window, over a total of 2930263552k.