PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit SoftRaid 1- bitmap file is out of date (20 < 21) -- forcing full recovery



vangodd
21.12.10, 21:49
Hallo zusammen,

jetzt brauche ich doch etwas Hilfe. Ich betreibe schon seid Jahren ein Software Raids 1 und 0 unter openSUSE 11.0 (X86-64). Bis heute auch noch nie Probleme gehabt. Vor einem Monat habe ich das ganze System auf zwei neue Festplatten gezogen, die beiden Raids habe ich neu angelegt und die aktuellen Daten auf diese Beiden Laufwerke gespielt.
Gestern Abend habe ich meinen Rechner normal herunter gefahren.
Heute Abend starte ich meinen Rechner und das System bleibt bei der folgenden Fehlermeldung stehen:

md: md0 stopped.
md: bind<sda3>
md: bind<sdb3>
md: md0: raid array is not clean -- starting background reconstruction
md: raid1 personality registered for level 1
raid1: raid set md0 active with 2 out of 2 mirrors
md0: bitmap file is out of date (20 < 21) -- forcing full recovery
md0: bitmap file is out of date, doing full recovery
md0: bitmap initialisation failed: -5
md0: failed to create bitmap (-5)
md: pers->run() failed ...

Das andere Raid 0 auf den Festplatten funktioniert einwandfrei!
Das Raid 1 /dev/md0 besteht aus den beiden Partitionen /dev/sda3 und /dev/sdb3
Das Problem habe ich schon so weit ein eingegrenzt:

mdadm --examine /dev/sda3 /dev/sdb3
/dev/sda3:
Magic : a92b4efc
Version : 1.0
Feature Map : 0x1
Array UUID : 5d4dfd7f:cd068792:bb97253f:9b5d144c
Name : 0
Creation Time : Wed Nov 24 23:32:23 2010
Raid Level : raid1
Raid Devices : 2

Avail Dev Size : 257039856 (122.57 GiB 131.60 GB)
Array Size : 257039856 (122.57 GiB 131.60 GB)
Super Offset : 257039984 sectors
State : clean
Device UUID : a03ca53a:03e4d0d6:a2b227f4:3a356bae

Internal Bitmap : -124 sectors from superblock
Update Time : Mon Dec 20 23:41:13 2010
Checksum : c2e76a9f - correct
Events : 20


Array Slot : 1 (0, 1)
Array State : uU
/dev/sdb3:
Magic : a92b4efc
Version : 1.0
Feature Map : 0x1
Array UUID : 5d4dfd7f:cd068792:bb97253f:9b5d144c
Name : 0
Creation Time : Wed Nov 24 23:32:23 2010
Raid Level : raid1
Raid Devices : 2

Avail Dev Size : 257039856 (122.57 GiB 131.60 GB)
Array Size : 257039856 (122.57 GiB 131.60 GB)
Super Offset : 257039984 sectors
State : active
Device UUID : 6176f007:b384eb25:bce2fcdf:51d08c97

Internal Bitmap : -124 sectors from superblock
Update Time : Mon Dec 20 23:41:12 2010
Checksum : b444103f - correct
Events : 21


Array Slot : 0 (0, 1)
Array State : Uu

Aufgefallen ist mir, das die "Events: ##" unterschiedlich sind, das auch beim booten bemängelt wird. und bei der /dev/sda3 steht "State: clean" und bei der /dev/sdb3 "State: active"??
Jetzt passe ich und weiß nicht mehr weiter, google konnte auch nicht helfen!
So wie ich das verstehe, müsste man die beiden Nummer von "Events" gleich bekommen, damit das Array wieder funktioniert. Warum läuft das Array nicht weiter, wenn eine Partition defekt ist, sollte doch eigentlich!
Kann mir jemand helfen, diesen Fehler zu beheben und/oder das Array zu reaktivieren?

Schönen Dank schon mal im Voraus

David

Hab noch was vergessen:

mdadm --detail /dev/md0
/dev/md0:
Version : 01.00.03
Creation Time : Wed Nov 24 23:32:23 2010
Raid Level : raid1
Used Dev Size : 128519928 (122.57 GiB 131.60 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Mon Dec 20 23:41:12 2010
State : active, Not Started
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Name : 0
UUID : 5d4dfd7f:cd068792:bb97253f:9b5d144c
Events : 21

Number Major Minor RaidDevice State
0 8 19 0 active sync /dev/sdb3
1 8 3 1 active sync /dev/sda3

chiratoss
22.12.10, 13:24
Das Problem hast du mit dem Raid1 ?

Versuch doch mal nur von einer Platte aus zu starten und dann - wenn die Daten OK sind - die zweite per hot-add neu zu synchronisieren.

vangodd
22.12.10, 21:08
Ich habe wirklich keine Weg/Lösung gefunden, das Array wieder von _inactive_ auf _active_ zu stellen. So etwas dummes. Mein Daten Raid1 schleppe ich schon auf dem zweiten Rechner, über 5 Jahre und nun auf der 3 Festplatten Generation mit mir herum. Ein einziges mal ist es mir passiert, das die Partition mit einem Fehler ausgestiegen ist, das Array lief mit der einen Platte aber munter weiter, hab es erst Monate später gemerkt.
Einziger Unterschied war von damals bis heute:
1 Generation: openSUSE 32 Bit Version mit zwei 80GB Server-Festplatten ATA
2 Generation: openSUSE 64 Bit Version mit den Selben Festplatten und RAID wie Generation 1
3 Generation: selbe Hardware jedoch neues Raid erstellt auf zwei 160GB Server-Festplatten
SATA
4 Generation: selbe Hardware jedoch neues Raid erstellt auf zwei 250GB Festplatten (Seagate AS-Version) SATA
Generation 4 lief keinen ganzen Monat! :-(

smartd meldet keine Fehler!

Jetzt habe ich mir erst einmal so geholfen:
Das Raid Laufwerk /dev/md0 gestoppt und dann den Superblock überschrieben:

mdadm --stop /dev/md0
mdadm --zero-superblock /dev/sda3
Jetzt war es mir möglich, die Partition ganz normal, ohne Raid Array zu mounten und die Daten zu sichern:

mount /dev/sda3 /mnt
Mein Rechner ist noch Dabei die Daten zu sichern. Wenn er fertig ist, werde ich vielleicht versuchen, testweise das Raid wieder zu reaktivieren. Wenn klappe, hab ich es mal gemacht, dann werde ich es aber ganz von neu erstellen und wie Daten wieder einspielen, sicher ist sicher.
Sollte das noch einmal passieren, werde ich mich von den beiden Festplatten austauschen.

Bis dann

David

just4uk
23.12.10, 14:42
Ich kann Dein Problem nicht ganz nachvollziehen, das einzige was ich finde war das das md0 nicht gestartet war!
Die unterschiedlichen Events sind normal.
Beim mounten einer disk von einem mdadm spiegel brauchst du keinen Superblock löschen das geht auch so.
Setzt du das raid1 jetzt gerade wieder neu auf?
Ansonsten eine Disk rausnehmen den superblock löschen und wieder zusammen bauen!
Sollte helfen!

Gruß aus L.E.
Uwe

vangodd
23.12.10, 15:05
Hallo Uwe,


Ich kann Dein Problem nicht ganz nachvollziehen, das einzige was ich finde war das das md0 nicht gestartet war!
Das Array ließ sich aber nicht starten, der mdstatus blieb immer auf "inactive" in der /proc/mdstat.


Die unterschiedlichen Events sind normal.
Beim mounten einer disk von einem mdadm spiegel brauchst du keinen Superblock löschen das geht auch so.
Das wusste ich nicht, das man die auch so mounten kann. Ich dachte die Events müssten die selben sein, weil auch das ""(20 < 21)"" in der Log aufgetaucht ist.

md0: bitmap file is out of date (20 < 21) -- forcing full recovery
Ich dachte, man könnte via Befehl dem Array sagen, das einfach alles OK ist. Aber egal was ich gemacht habe, alles wurde ignoriert! Was ich aber dann noch geschafft haben, die Festplatten von:

State : clean
State : active
in

State : active
State : active
zu bringen, aber das Array wollte einfach nicht starten


Setzt du das raid1 jetzt gerade wieder neu auf?
Ansonsten eine Disk rausnehmen den superblock löschen und wieder zusammen bauen!
Je, leider, musste gestern aber leider abbrechen, vielleicht schaffe ich das heute Abend noch.
Die herausnehmen ging auch nicht, wenn dich das gemacht habe, sagte mdadm mir immer, das /dev/sda3 oder hat /dev/sdb3 nicht da sein?!?!
Komisches verhalten, zumal wenn was passiert, sollte das Raid noch mit einer Partition weiter laufen, das hatte ich auch schon.

Hast du vielleicht einen netten Befehl für mich, den ich ausprobieren könnte, wenn das noch einmal passiert? Das ist nett!

Sollte dieses aber noch einmal passieren, sollte ich mir lieber die Fragen stellen, warum das noch mal passiert ist und was er Auslöser dafür ist!

Danke für die Antwort!
Schöne Weihnachten

David

just4uk
23.12.10, 16:34
Zu erst sollest du darauf achten das Deine mdadm.conf in Ordnung ist! ACHTUNG die UUIDs sind die von
mdadm -DD.h. die Arrays sollten da richtig drin stehen, am besten mit der UUID.Beispiel
DEVICE partitions
ARRAY /dev/md0 level=raid5 num-devices=4 UUID=f37800b9:26bb2bac:55ffc0aa:8ee6ef1b
ARRAY /dev/md1 level=raid5 num-devices=3 UUID=547a0748:a204bbf2:55ffc0aa:8ee6ef1b
ARRAY /dev/md2 level=raid0 num-devices=2 UUID=064a6d1a:4708f4aa:55ffc0aa:8ee6ef1b
Zum starten
mdadm -Asaber wie gesagt wenn in der mdadm.conf Müll drin ist wird auch Müll gestartet!
Sollte Dein Array nicht laufen wollen Du dir aber sicher bist das alle Disken vorhanden und funktionsfähig sind dann
mdadm --assemble /dev/mdx /dev/sdyy /dev/sdzz
Sollte das nicht helfen kannst du noch ein
--forcedranhängen im schlimmsten Fall läuft danach ein sync, wenn das Array vorher clean war dann läuft es ohne sync.
Nette Befehle gibts bei mdadm einige, kommt aber immer darauf an was brauchst sonst könnte der nette mal böse sein ;)

Dir/Euch auch ein schönes Fest und guten Rutsch!

Gruß aus L.E.
Uwe