[[rebuild raid1|Allgemein mit Raid 1]]
[[http://www.pcwelt.de/ratgeber/Raid-Verbund_unter_Linux_reparieren-Anleitung-8353258.html|PC-Welt: Anleitung Raid-Verbund unter Linux reparieren]]
====== Besonderheiten / Probleme Software-Raid5 ======
Eine meiner Raid5-Platten war defekt (nicht physikalisch, sondern Stomausfall trotz UPS (Netzteil)).
Sicherheitshalber habe ich nicht die 'defekte' Platte, sondern die Ersatzplatte eingebaut. Da Debian derzeit nicht in Raid5 booten kann, ist das OS auf einem Raid1, deren Spiegelung auch auf der defekten Platte lag. Das Wiederherstellen ging (nach Partitionieren der neuen Platte problemlos mit ''mdadm /dev/md0 -a /dev/sdb1''. Nach 5 Minuten war die Platte wieder gespiegelt.
Anders mit Raid 5. Ein ''mdadm /dev/md1 -a /dev/sdb2'' hat zwar die Partition ins Array eingefügt, allerdings als 'Spare'. Das ist jedoch normal. Aus der mdadm man page:
When creating a RAID5 array, mdadm will automatically create a degraded
array with an extra spare drive.
This is because building the spare into a degraded array is in
general faster than resyncing the parity on a non-degraded,
but not clean, array.
This feature can be over-ridden with the --force option.
Jedoch sollte das Raid nun beginnen, selbsttätig mit dem Wiederherstellen/Syncen der Partition zu beginnen. Tat es aber nicht. dmesg hat auch eine Fehlermeldung ausgegeben: ''"cannot start dirty degraded array for /dev/md1''.
Bei mir hat es geholfen, das Raid komplett zu stoppen, dann manuell den start erzwingen. Das Rebuild hat sofort begonnen.
[root@ornery ~]# mdadm -S /dev/md1
[root@ornery ~]# mdadm --assemble --force --scan /dev/md1
Hätte das nichts gebracht, dann wäre ein weiterer Versuch gewesen:
[root@ornery ~]# cat /sys/block/md0/md/array_state
inactive
[root@ornery ~]# echo "clean" > /sys/block/md0/md/array_state
[root@ornery ~]# cat /sys/block/md0/md/array_state
clean
Auch hat es jemanden geholfen ((http://www.linuxquestions.org/questions/linux-general-1/raid5-with-mdadm-does-not-ron-or-rebuild-505361/)), den Array dann zu mounten (Read only!!!), wieder zu entmouten und neu zu builden:
mount -o ro /dev/md0 /data
umount /data
mdadm /dev/md0 -a /dev/sdb1
----
den Status checken:
cat /proc/mdstat
mdadm --detail /dev/md1
bzw. beim Rebuild (um ihn zu verfolgen, Aktualisierung alle 5 Sek.)
watch -n5 cat /proc/mdstat