Ersatzplatte will nicht in RAID5

25/02/2008 - 22:35 von Christian Garbs | Report spam
Mahlzeit!

Meine bisherige Leidensgeschichte lasse ich vorerst mal in der Kiste
und beschrànke mich auf mein aktuelles Problem:

Ich habe eine meiner Platten ausgetauscht. Ich habe die
Partitionierung von der alten Platte übernommen. Nach dem Tausch
waren erwartungsgemàß sàmtliche RAID-Verbünde, die sich auf die
betroffene Platte erstreckten, degraded.

Die RAID1-Verbünde wieder flott zu kriegen, waren kein Problem, nach
einem mdadm --add hat der Kernel die Synchronisation angestoßen und
alles war gut.

Mein großes RAID5 (mein dickes LVM, auf dem fast alles liegt) dagegen
will die neue Platte nicht aufnehmen. Statt das "faulty" Device durch
die frische Platte zu ersetzen und eine Synchronisierung zu starten,
landet die Platte als "spare" in dem Verbund. Dabei habe ich gar kein
Spare-Device für den Verbund angegeben.

So sieht das ganze aus. Die Zeilen mit den geklammerten Zahlen am
Anfang sind Kernel-Meldungen, die parallel ausgegeben werden:


yggdrasil:~# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md6 : active raid1 sdb5[1] sda5[0]
1903552 blocks [2/2] [UU]
bitmap: 3/233 pages [12KB], 4KB chunk

md7 : active raid1 sdb6[1] sda6[0]
1461760 blocks [2/2] [UU]
bitmap: 0/179 pages [0KB], 4KB chunk

md2 : active raid5 sdc2[1] sdb2[0] sda2[3]
867509760 blocks level 5, 64k chunk, algorithm 2 [4/3] [UU_U]
bitmap: 1/138 pages [4KB], 1024KB chunk

md4 : active raid1 sdc3[1] sdb3[0]
457728 blocks [2/2] [UU]
bitmap: 0/56 pages [0KB], 4KB chunk

md3 : active raid1 sdd1[0] sdc1[1]
3365504 blocks [2/2] [UU]
bitmap: 0/206 pages [0KB], 8KB chunk

md5 : active raid1 sdd3[1] sda3[0]
457728 blocks [2/2] [UU]
bitmap: 0/56 pages [0KB], 4KB chunk

unused devices: <none>


yggdrasil:~# mdadm --examine /dev/sdd2
mdadm: No md superblock detected on /dev/sdd2.


yggdrasil:~# mdadm /dev/md2 --add /dev/sdd2
[ 98.949378] md: sdd2 does not have a valid v0.90 superblock, not importing!
[ 98.949411] md: md_import_device returned -22
mdadm: add new device failed for /dev/sdd2 as 4: Invalid argument


yggdrasil:~# mdadm --examine /dev/sdd2
/dev/sdd2:
Magic : a92b4efc
Version : 00.90.03
UUID : 7d1d4e9b:137b671f:d66f2589:ed3a2179
Creation Time : Thu Jun 8 22:16:15 2006
Raid Level : raid5
Device Size : 289169920 (275.77 GiB 296.11 GB)
Array Size : 867509760 (827.32 GiB 888.33 GB)
Raid Devices : 4
Total Devices : 3
Preferred Minor : 2

Update Time : Mon Feb 25 20:15:33 2008
State : clean
Internal Bitmap : present
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Checksum : 9c0c5241 - correct
Events : 0.9105222

Layout : left-symmetric
Chunk Size : 64K

Number Major Minor RaidDevice State
this 4 8 50 -1 spare /dev/sdd2

0 0 8 18 0 active sync /dev/sdb2
1 1 8 34 1 active sync /dev/sdc2
2 2 0 0 2 faulty removed
3 3 8 2 3 active sync /dev/sda2


yggdrasil:~# mdadm /dev/md2 --add /dev/sdd2
[ 117.260856] md: sdd2 does not have a valid v0.90 superblock, not importing!
[ 117.260889] md: md_import_device returned -22
[ 117.262547] md: sdd2 does not have a valid v0.90 superblock, not importing!
[ 117.262575] md: md_import_device returned -22
mdadm: add new device failed for /dev/sdd2 as 4: Invalid argument



Ich sehe gerade, dass ich die Ausgabe von mdadm --detail /dev/md2
vergessen habe, die UUID stimmt aber mit der im Superblock von
/dev/sdd2 überein. Die Angaben am Ende von mdadm --exame /dev/sdd2
stellen das RAID so dar, wie ich es erwartet habe, nur ist /dev/sdd2
da ein Kandidat für ein spare device statt Ersatz für das faulty
removed zu spielen.


Interessant ist, dass die Kernelmeldung beim ersten Versuch nur einmal
kommt, bei weiteren Versuchen dann doppelt. Mir sieht das so aus,
dass beim ersten Versuch der Superblock frisch angelegt wird und dann
direkt danach ungültig ist. Wenn der Superblock erst einmal angelegt
ist, gibt's beim zweiten Versuch zwei Fehlermeldungen.


mdadm --force bringt nichts.

Wie bekomme ich das RAID5 wieder zum Laufen?

Meine Recherchen haben bisher noch nicht gefruchtet. Die Meldungen
resultieren hieraus, aber ich habe noch nicht feststellen können, was
genau der Grund für die Fehlermeldung ist:
http://lxr.linux.no/linux/drivers/md/md.c#L2071

Gruß,
Christian
 

Lesen sie die antworten

#1 Christian Garbs
04/03/2008 - 20:02 | Warnen spam
Mahlzeit!

Christian Garbs wrote:

Meine bisherige Leidensgeschichte lasse ich vorerst mal in der Kiste
und beschrànke mich auf mein aktuelles Problem:



INSERT ANEKDOTE:
Mir viel eine zweite Platte aus, ich sass da also auf 2 aktiven
Geraeten (von 4!) in einem RAID5. Das sah boese aus.
Radikale Methode: die vorher ausgebaute Platte wieder rein, die war ja
mal Teil des RAIDs, nur halt jetzt ca. 1 Stunde nicht mehr benutzt.
Augen zu und durch. Einige Dateisystemchecks spaeter habe ich
festgestellt, dass erstaunlich wenig kaputt gegangen ist
(hauptsaechlich /var, /home und /home/Mail, was nicht anders zu
erwarten war). Es lohnt sich also, jeden Furz in ein eigenes
Dateisystem zu packen, ganz besonders, wenn die variablen von den eher
statischen Sachen (mein MP3-Archiv!) getrennt leben.

Als ich den ganzen Murks dokumentieren wollte, fiel mir dann bei
explizit genauem Nachgucken (warum hab ich das nicht vorher gemacht?)
der Grund fuer die zweite ausgefallene Platte auf: aus irgendeinem
Grund hatte in meinem Rescue-System /dev/sda3 eine falsche
Minor-Nummer. Keine Ahnung, wie das passieren konnte, aber beim
naechsten Mal pruefe ich sowas frueher...

END ANEKDOTE

yggdrasil:~# mdadm /dev/md2 --add /dev/sdd2
[ 98.949378] md: sdd2 does not have a valid v0.90 superblock, not importing!
[ 98.949411] md: md_import_device returned -22
mdadm: add new device failed for /dev/sdd2 as 4: Invalid argument


[...]
yggdrasil:~# mdadm /dev/md2 --add /dev/sdd2
[ 117.260856] md: sdd2 does not have a valid v0.90 superblock, not importing!
[ 117.260889] md: md_import_device returned -22
[ 117.262547] md: sdd2 does not have a valid v0.90 superblock, not importing!
[ 117.262575] md: md_import_device returned -22
mdadm: add new device failed for /dev/sdd2 as 4: Invalid argument



Problem geloest:

Ich hatte als einen Schuss ins Blaue die Partition sdd2 mal einen
Block groesser gemacht. Ergebnis: _dann_ kam die Fehlermeldung von
mdadm, dass die Partition zu klein sei. Als ich dann noch einen Block
drangehaengt habe, liess sie sich problemlos ins RAID aufnehmen.

Diese komplett irrefuehrende Meldung hat mich davon abgehalten,
frueher meinen Taschenrechner zu zuecken und sowas grundlegendes wie
die Partitionsgroesse zu checken. Man lernt nie aus. Vielleicht
hilft es ja mal jemandem, der nach dem Problem googelt.

Gruss,
Christian,

Ähnliche fragen