[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Software-RAID und initrd



Hallo Peter

Peter Funk wrote:
> Florian wrote:
>
> > Mit grml hat nun endlich mal ein halbe boot geklappt und nun habe ich
> > zumindest eine weitere infos aus dem boot log (ab fotografiert):
> > md: created md0
> > md: bind<hdh1>
> > md: bind<hdg1>
> > md: bind<hdf1>
> > md: bind<hde1>
> > md: resuming <hdh1><hdg1><hdf1><hde1>
> > md: kicking non-fresh hdf1 from array
>
> Die obige Meldung zeigt, dass der Event-Zähler im Superblock der
> Platten-Partition /dev/hdf1 "nicht frisch" (also nicht aktuell)
> ist.  Deshalb wird diese Platte dann automatisch erstmal aus dem 
> Verbund entfernt, damit ihre veralteten Daten nicht benutzt werden:
>
> > md: unbind<hdf1>
> > md: export_rdev(hdf1)
> > md: raid array is not clean - starting background reconstruction
>
> Die Meldung in der vorigen Zeile bedeutet, dass nun eine Rekonstruktion
> des Verbundes aufgerufen wird, die parallel im Hintergrund abläuft.  
> Dieser Vorgang berechnet bei RAID5 (RAID level 5) sogenannte 
> Exklusiv-Oder-Verknüpfungen zwischen den Datenbits.
>
> Dieser Vorgang läuft auf Blockebene ab.  Wie lange das dauert, ist
> deshalb unabhängig davon, wieviel Platz auf dem Verbund tatsächlich
> von Dateien belegt ist.  Je nach Größe und Geschwindigkeit der
> Platten, kann das auch mal eine Stunde oder länger dauern.
>
> Hat das geklappt, dann können auch bei Wegfall einer beliebigen
> Platte die Nutzdaten immer noch aus den Datenblöcken der übrigen
> Platten erneut berechnet werden.
>
> > md: personality for level 5 is not loaded
>
> Diese Meldung bedeutet, dass der für den oben beschriebenen Vorgang
> benötigte Kernel-Modul raid5 nicht geladen wurde.  Vielleicht fehlt
> er einfach in der initrd von grml.  In dieser Liste schrieb ich neulich, 
> wie das überprüft werden kann.
>
> > md: do_md_run() returned -22
> > md: md0 stopped
>
> Diese Meldungen sind jetzt Folge-Effekte.  Die Funktion ``do_md_run()``
> wird hier abgebrochen (-22 ist Fehlercode für "invalid argument": So
> etwas kann man im Posix-Standard nachschauen, wenn man es unbedingt
> wissen will ;-).
>
> Leider startet auch das populäre KNOPPIX einen RAID-Verbund nicht 
> automatisch (Jedenfalls letztes Mal, als ich das ausprobiert habe.)
> Wie das mit aktuellen Debian-Live-CDs aussieht, weiss ich nicht.
>   
Wie Eingangs gesagt habe ich zwei Rechner mit dem gleichen problem. Beim
anderen Rechner (der Backup Rechner des Servers) ist mittles grml  und
mdadm-startall das Raid wieder gestartet.
Also hier werde ich vielleicht mittels chroot + update-initramfs
weiterkommen wobei beide nicht das Raid für den Boot benötigen.
Beide Rechner haben eine eigene System Festplatte (hda) und beide laufen
grundsätzlich. Daher bin ich noch ruhig :-)

Auf dem Server startet grml nur in der "Not" Shell.
Der Rechner ist Hardware mässig ein wenig zickig und kenne die Ursachen
immer noch nicht. Irgend wann vor zwei Jahren liess sich debian
installieren und alles läuft seit dem (Ausname das ich das Raid durch 4
neue (grössere) Platten getauscht habe) .
Aber der Rechner ist auch so noch 100% lauffähig so das ich eigentlich
keine Live CD benötigen sollte.
Es war allerdings interessant das es unter grml endlich einmal mehr
Meldungen für eine weitere Untersuchung gab :-)



> > soweit so gut: Frage: was kann ich tun?
>
> Ich gehe mal davon aus, dass grml ähnlich wie KNOPPIX zumindest
> auf der CD die Module enthält.  Also würde ich mal das hier probieren:
>
>    modprobe raid5
>   
liefert 0 (also neues promt folgt)
Syslog ist ruhig
#> lsmod
-->--
raid456               121872  0
...
xor                    14984  1 raid456
md_mod                 74196  1 raid456
--<--
> Wenn das funktioniert hat, dann würde ich nochmal versuchen, den Verbund 
> manuell zu starten:
>
>    mdadm --assemble /dev/md0 /dev/hd{e,f,g,h}1
>   
mdadm: /dev/md0 assembled from 3 drives - not enough to start the array
while not clean - consider --force.

Ok, die kaputte Platte ist noch drin.
Mit --force
mdadm: /dev/md0 has been started with 3 drives (out of 4).

> Wenn auch dabei kein Fehler gemeldet wird, würde ich mir den
> Zustand dessen Verbundes mit
>
>    cat /proc/mdstat
>   
cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 hde1[0] hdh1[3] hdg1[2]
      1465151808 blocks level 5, 64k chunk, algorithm 2 [4/3] [U_UU]

unused devices: <none>

> anschauen.  Wenn auch das gut aussieht (also da steht irgendwo
> [UUUU] und nicht [U_UU] oder so), dann kann das Dateisystem mit 
>
>    mount /dev/md0 /mnt
>
> eingehängt werden, um das System gebenfalls so zu verändern, dass auch
> das Booten von Festplatte wieder klappt.  Dabei ist es nützlich, wenn
> man sich mit dem Kommando ``chroot`` auskennt.  Meine Standardprozedur
> sieht so aus:
>
>    mount -o bind /proc /mnt/proc
>    mount -o bind /dev /mnt/dev
>    chroot /mnt
>
> Der letzte Befehl startet einen neuen Kommando-Interpreter, der das
> Dateisystem von der Platte als Wurzel hat.  Das ist meist notwendig, um z.B.
> Befehle wie ``update-initramfs`` oder ``grub`` nicht mit den Dateien 
> von der Rettungs-CD, sondern mit den Dateien in dem 
> Festplatten-(hier RAID-Verbund)-Dateisystem arbeiten zu lassen.
>   
In diesem Fall habe ich folgendes gemacht:
mount /dev/md0
--- syslog: ---
Filesystem "md0": Disabling barriers, not supported by the underlying device
Nov 17 16:54:24 tv kernel: XFS mounting filesystem md0
Nov 17 16:54:24 tv kernel: Starting XFS recovery on filesystem: md0
(logdev: internal)
Nov 17 16:54:32 tv kernel: Ending XFS recovery on filesystem: md0
(logdev: internal)


Es läuft vorerst :-) Aber der Grund erschliesst sich mir nicht.
Die startscripte müsste mehr Melden.

Frage nun was wird beim neustart geschehen?
Oder was kann mir geraten werden (davon abgesehen das ich eine neue
Festplatte haben muss)?

Ich würde mit --fail und --remove ersteinmal die defekte Platte aus dem
Verbund werfen. Allerdings sagt mir mein Gefühl das dieses nicht reicht
um den Verbund nach einem neustart (gewollt oder ungewollt) nicht
automatisch anspringt.
Das Array ist (in diesem Fall bei beiden Rechnern) "degraded".
Bei beiden startet das raid nicht automatisch.



Fragen vorweg.
Wenn ich eine neue Festplatte einbaue beachte/tue ich diese Dinge:
- Gleiche Partitionsgrösse anlegen
- PartitionsTyp FD
- mdadm --add

Muss ich noch etwas tun? Wird der abgleich der Daten (wie nennt man das:
"Parity Check"?) dann sofort gestartet? (dauerte beim letzten mal 24h
und der Load war auf 6 :-( )


> Leider gibt es meines Wissens z.Zeit noch keine Software, die diese
> Tätigkeiten rund um das Einrichten, Reparieren und Überwachen von
> Linux-Software-RAID-Verbünden so vereinfachen, dass auf das Lesen
> von Büchern wie z.B.  "Managing RAID on LINUX" (von Derek Vadala,
> O'Reilly) verzichtet werden kann. ;-)
>   
 :-)

> Mit freundlichen Grüßen,
> Peter Funk
>   
Dank für deine Hilfe! Ich werde dieses Threat später aufbereiten und
Dokumentieren da ich bei google nichts brauchbares gefunden habe.

Gruß Florian



Reply to: