PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Laufwerke fallen zufällig beim Booten aus mdadm RAID10 heraus



davediehose
11.04.13, 19:00
Hallo Linuxgemeinde,

ich habe seit heute ein Problem mit meinem bisher sehr gut funktionierenden RAID10 (mdadm). Beim normalen Booten (Kaltstart/Reboot) fliegen anscheinend beliebige und auch beliebig viele Platten aus dem Array. Ich benutze OpenSUSE 12.3.

Folgende Kernellog-Zeilen zeigen das Problem:



[ 2.572122] md: md0 stopped.
[ 2.588542] md: bind<sdb1>
[ 2.603699] md: bind<sdd1>
[ 2.624639] md: bind<sde1>
[ 2.624665] md: could not open unknown-block(8,33).
[ 2.624666] md: md_import_device returned -16
[ 2.624692] md: kicking non-fresh sde1 from array!
[ 2.624695] md: unbind<sde1>
[ 2.635518] md: export_rdev(sde1)
[ 2.635542] md: kicking non-fresh sdb1 from array!
[ 2.635546] md: unbind<sdb1>
[ 2.641204] md: export_rdev(sdb1)
[ 2.642475] md: raid10 personality registered for level 10
[ 2.642933] md/raid10:md0: not enough operational mirrors.
[ 2.642947] md: pers->run() failed ...


Manchmal fallen nur ein bis zwei Platten raus, die ich dann mit mdadm --add wieder reinziehen kann und sofort verfügbar sind, sogar ohne Rebuild:

[ 304.380667] md: bind<sdb1>
[ 304.407601] md: recovery of RAID array md0
[ 304.407607] md: minimum _guaranteed_ speed: 1000 KB/sec/disk.
[ 304.407609] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for recovery.
[ 304.407615] md: using 128k window, over a total of 1610611456k.
[ 305.313459] md: md0: recovery done.
[ 307.552017] md: bind<sde1>
[ 307.579897] md: recovery of RAID array md0
[ 307.579903] md: minimum _guaranteed_ speed: 1000 KB/sec/disk.
[ 307.579905] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for recovery.
[ 307.579910] md: using 128k window, over a total of 1610611456k.
[ 308.509127] md: md0: recovery done.

Einmal waren es drei Platten, wodurch natürlich das Array nicht mehr arbeiten kann und ich es stoppen und neustarten musste. Nach dem (re)assemble waren dann zwei Platten, je eine jedes Mirrors, wieder da. Scheint mir recht beliebig.

Wenn das Array einmal steht, funktioniert es scheinbar problemlos.

Neben den RAID10 Partitionen habe ich auch noch Partitionen für RAID0 und RAID1 auf den Platten. Beide funktionieren problemlos direkt nach dem Booten, daher schließe ich einen Hardwarefehler aus, da dann zumindest das RAID0 schon komplett hin sein sollte. Sobald ich das RAID10 gefixt habe, sieht alles soweit ok aus:

cat /proc/mdstat
Personalities : [raid10] [raid0] [raid1]
md0 : active raid10 sde1[3] sdb1[0] sdc1[1] sdd1[2]
3221222912 blocks super 1.0 256K chunks 2 near-copies [4/4] [UUUU]
bitmap: 0/24 pages [0KB], 65536KB chunk

md2 : active raid1 sdb3[0] sde3[3] sdd3[2] sdc3[1]
157284224 blocks super 1.0 [4/4] [UUUU]
bitmap: 0/2 pages [0KB], 65536KB chunk

md1 : active raid0 sdb2[0] sde2[3] sdd2[2] sdc2[1]
524295936 blocks super 1.0 64k chunks

Ich nutze GPT auf den Platten in meinem Server mit UEFI-Board, allerdings betreibe ich das OS im Kompatibilitätsmodus ohne EFI/EFIGRUB-Boot, klassisch mit GRUB. Meiner Ansicht nach sollte dies keine Probleme verursachen, hat es zumindest bis vor kurzem noch nicht.

Aus Mangel an Ideen habe ich mit einem fsck der LVM-Volumes auf dem RAID10 begonnen. Dachte mir, dass es vielleicht tatsächlich schadhafte Blöcke gäbe. Bisher noch kein Ergebnis.
Allerdings vermute ich auch eher, dass das Problem irgendwo auf der Ebene mdadm/superblocks liegt. Dort kenne ich mich leider auch nicht besonders aus bisher.

Da ich noch keinen Grund für das komische Verhalten, geschweige denn eine Lösung, finden konnte, würde ich mich überaus über Mithilfe eurerseits freuen. Ich werde mich bemühen, zusätzlich nötige Informationen alsbald nachzureichen.

Beste Grüße,
dave