Allgemein mit Raid 1

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 1), 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