Eigentlich sollte das Vergrößern eines RAID-5 um eine weitere Platte mit
mdadm --add /dev/md1 /dev/sdd3
mdadm --grow /dev/md1 --raid-devices=4
heutzutage kein Problem darstellen.
Allerdings lauern trotzdem Fallstricke. So stellten mitten beim Reshape plötzlich alle Platten ihre Aktivitäten ein. Der Status aus /proc/mdstat sah dann sinngemäß so aus
md1 : active raid5 sda3[0] sdd3[3] sdc3[2] sdb3[1]
1888585088 blocks super 0.91 level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
[===============>.....] reshape = 79.3% (748826624/944292544) finish=122.1min speed=26670K/sec
und änderte sich nicht. Versuche das RAID zu stoppen (mdadm --stop) führten nur dazu, daß das mdadm-Kommando hing und nicht unterprechbar wartete. Die Meldungen im Log compute_blocknr: map not correct brachte mich auch nicht direkt weiter
Ein bißchen Recherchieren im Web brachte mich dann aber weiter. Ein anderer Nutzer hatte vergleichbare Symptome und vermutete einen Zahlenüberlauf und stellte fest, daß bei ihm im Kernel die Unterstützung für große Blockgeräte (Support for large block devices and files bzw. CONFIG_LBD) deaktiviert war.
Und das war’s dann auch bei mir. Die Kerneloption sorgt für die Unterstützung von Geräten mit einer Kapazität über 2 TB. Bisher ist mir die fehlende Unterstützung in dem selbst konfiguriertem Kernel nur nie aufgefallen, da diese Grenze keine Rolle spielte. Ein RAID-5 mit drei 1-TB-Platten bleibt ja schließlich auch unterhalb dieser Grenze.
Beruhigend für mich ist erstmal, daß das Reshape des RAID unter diesen Umständen sicher stoppte und jetzt – nach Änderung des Kernels – problemlos weiter läuft.