Ernstes Problem mit Linux Software RAID 5

  • Hallo liebe Leute,


    Ich habe ein ernstes Problem mit meinem Software RAID 5 unter Linux. Ich kann nicht mehr auf die Daten zugreifen, die wie üblich sehr sehr wichtig für mich sind. ;)
    Ich benutze die vier Platten hde, hdf, hdg, hdh. Ich bin mir sicher, dass die /etc/raidtab auf dem aktuellen Stand ist:


    raiddev /dev/md0
    raid-level 5
    nr-raid-disks 4
    nr-spare-disks 0
    persistent-superblock 1
    parity-algorithm left-symmetric
    chunk-size 128
    device /dev/hde1
    raid-disk 0
    device /dev/hdf1
    raid-disk 1
    device /dev/hdg1
    raid-disk 2
    device /dev/hdh1
    raid-disk 3


    Vor ein paar Tagen hatte ich zwei Stromausfälle. Nach dem ersten sah ich dan den HDD-LEDs, dass das Array eine Platte neu aufbaute (LED-Dauerleuchten über sehr lange Zeit). Dann passierte irgendwann der zweite Ausfall und nach dem Booten wurde md0 nicht mehr automatisch erkannt.


    Die wichtigen Zeilen aus /var/log/boot.msg sind meiner Meinung nach die folgenden:


    hdh1's event counter: 0000001c
    hdg1's event counter: 0000001c
    hdf1's event counter: 0000001a
    hde1's event counter: 0000001b
    superblock update inconsistency
    kicking non-fresh hdf1 from array!
    kicking faulty hde1!
    not enough operational devices for md0 (2/4 failed)


    Ich habe die Anleitung/Ideen von http://www.faqs.org/docs/Linux…are-RAID-HOWTO.html#ss6.1
    ("Recovering from a multiple disk failure") gelesen und mir ein kleines Testarray mit vier Partitionen auf einer Platte gebaut (md1 auf hdd1 bis hdd4). I habe folgendes herausgefunden:


    - Wenn ich ein neues Array erstelle, es stoppe, eine Partition beschädige (z.B. durch formatieren), dann ein "mkraid /dev/md1 --force" mache, sind alle Daten verloren (i.e. das Array lässt sich nicht mehr mounten).


    - Wenn ich die "kaputte" Partition als "failed-disk" in /etc/raidtab eintrage, dann ein "mkraid /dev/md1 --force" mache, ist das Array wieder zugreifbar, auch wenn nur im degraded-mode. Mit einem "raidhotadd /dev/md1 /dev/hdd1" löse ich dann den Aufbau der kaputten Platte aus.


    Meine Frage ist jetzt die folgende:
    Aus den Fehlermeldungen, die oben zu lesen sind, schliesse ich, dass die Platte hde1 beschädigt ist und die Platte hdf1 einen falschen Superblock hat. Ich würde jetzt folgendes machen:


    1. Markiere hde1 als failed-disk in /etc/raidtab
    2. "mkraid /dev/md0 --force"
    3. "raidhotadd /dev/md0 /dev/hde1"


    Was meint Ihr, sollten das meine Daten überleben?
    Ich wäre um eine Antwort (positiv oder negativ) sehr dankbar, vielen Dank schon mal im Vorraus!
    Euer Christof

    VDR 1.3.20 auf DVB-CVS vom 11.03.2005, SuSE 9.2, AMD Duron 600 MHz, Tyan Trinity KT Mother-Board, 256 MB Ram, 120 GB Platte, Hauppauge Nexus-S rev. 2.1, Geforce2MX mit TV-out

  • Danke, ich probier's dort mal!


    Hab das hier nur geschrieben, weil ich bisher einen sehr guten, kompetenten Eindruck über meine "VDR-Kollegen" gewonnen hatte :)

    VDR 1.3.20 auf DVB-CVS vom 11.03.2005, SuSE 9.2, AMD Duron 600 MHz, Tyan Trinity KT Mother-Board, 256 MB Ram, 120 GB Platte, Hauppauge Nexus-S rev. 2.1, Geforce2MX mit TV-out

  • Benutze bitte besser mdadmin anstatt der raidtools - diese sind obsolet und werden AFAIK nocht mehr weiterentwickelt, während mdadmin vom Linux-Software-RAID-Maintainer Neil Brown entwickelt wurde. http://www.cse.unsw.edu.au/~neilb/source/mdadm/


    Nicht der Superblock ist kaputt, sondern die sogenannten "Event Counter" besagen, daß zwei Platten auf gleichem und neuestem Stand sind, während die anderen beiden unterschiedliche ältere Zustände haben und deshalb rausfliegen - nur mit zwei von vire Platten kann kein Array aufgebaut werden.


    Für wirklich kompetente Antworten gehe auf die Mailingliste linux-raid@vger.kernel.org.


    Meines Erachtens müßtest du das RAID-Array mit den Platten hdh, hfg und hdf zwangsweise wieder in Betrieb nehmen und dann hde wieder hinzufügen.


    Den Test, den du gemacht hast, mußte schiefgehen, da du den Inhalt einer Platte völlig zerstört hast und dann das Array *inklusive* dieser Platte wieder in Betreib genommen hast. Das 'mkraid --force' funktioniert nur dann, wenn die Daten auf den Platten noch vorhanden sind, aber *lediglich* die Versionszähler im Superblock nicht übereinstimmen.


    In deinem Fall mußt du unbedingt hde rauslassen, da diese Platte ja wohl gerade beim Resyncen war, daher keine gültigen Daten enthält.


    Gruß,
    Juri


    PS: hier zeigt sich wiedereinmal, daß der Einsatz von RAID *kein* Ersatz für ein Backup ist...

  • Hey Schinken,


    also ich bin weder "sehr gut" noch "kompetent" :-)


    Viel Erfolg bei der Datenrettung wünsch ich dir und das wirklich ganz ehrlich. Meine Mühle ist ja auch schon mal ganz übel abgeschmiert. Ich hätte heulen können.


    Halt uns aber mal auf dem Laufenden, was das gewesen ist und wie man sich bei sowas retten lassen kann !!!


    Greets Olaf

    Ollie jetzt auch im Internet !!! ->> http://www.ohms.ws << VDR mit ASUS A7V8X-X, Athlon XP 2 Ghz, 512 MB DDR-RAM und gentoo 2008.0 Linux, ner Menge Platten (1 TB), 2 Brennern und Karten-Vollausstattung (1 X Nexus 4 MB Mod, 3 x Nova, 1 PVR 350) , TFT/Sony PSOne, Nvidia Graka und und und * Linux - wir geben ihrem Computer das Leben zurück *

  • Wie ich gerade gesehen habe, hast du bereits auf linux-raid gepostet - sehr gut.


    Ich denke, aber lass dir das lieber nochmal von Neil bestätigen, daß folgender Aufruf von mdadm zum Erfolg führen könnte:


    mdadm --assemble /dev/md0 --force --run missing /dev/hdf1 /dev/hdg1 /dev/hdh1


    oder in Kurzform:


    mdadm -A /dev/md0 -f -R missing /dev/hdf1 /dev/hdg1 /dev/hdh1


    Gruß,
    Juri

  • Quote

    Original von slime
    hi,
    damit gehst du besser in ein "vollweriges" linuxforum: z.B. www.linuxforen.de
    ich denke nicht das sich hier auch nur 3 leute finden die software raid benutzen. das ist doch schon was eher seltenes.


    Hi,


    mit dem vollwertigen Forum hast Du recht, aber auf meinem Fileserver und Mailserver laufen jeweils Software RAID...also wären wir schon mal mindestens zwei hier im Forum :D


    bye


    Sven


    Link: Richtig fragen

  • @All: Schon mal danke für die Antworten, ich halte Euch gern auf dem Laufenden!


    juri : Thx für die sehr ausführliche Antwort, zwei triviale Fragen noch :)
    1. Wer ist Neil?
    2. Ich hab bisher nur kurz reingelesen in mdadm, bin mir aber nicht sicher, ob der kompatibel ist mit Arrays, die mit den Raidtools gebaut wurden? Wenn ja, dann würde ich mich da dann erst nochmal kurz einarbeiten.


    So, ich hab' also doch noch ein bisserl Hoffnung, dass die Daten da sind und ich sie wieder rausbekomm. Am liebsten würde ich die 4 Platten erstmal bitweise kopieren, leider ein bisserl zu schwierig, allein die Hardwarebeschaffung. Allerdings könnte ich danach ja ein Array mit 8 Platten machen, cool ;D


    Oh ja, ich denke ich habe zwei Sachen gelernt, a) Backup machen, auch wenn's nicht von allem geht, dann zumindest vom wichtigsten; b) Ich glaube ich spendier dem Array noch eine Disk, dann können zwei Ausfallen, da schlaf ich besser. Oder bringt das Euerer Meinung nichts, für mein jetziges Problem hätte es ja geholfen (Oder wären dann von den 5en wahrscheinlich 3 durcheinander, hmmmm)?

    VDR 1.3.20 auf DVB-CVS vom 11.03.2005, SuSE 9.2, AMD Duron 600 MHz, Tyan Trinity KT Mother-Board, 256 MB Ram, 120 GB Platte, Hauppauge Nexus-S rev. 2.1, Geforce2MX mit TV-out

  • Hi Schinken,


    wie ich in dem ersten Posting schrieb, ist Neil Brown der momentane Maintainer des Linux-Software-Raid-Codes. Also DER Mann für dein Problem.


    Und ja, natürlich ist mdadm rückwärtskompatibel.


    Und nein, eine HotSpare-Platte hätte dir nicht geholfen, da dann anstatt hde hdX eingebundenworden wäre, was beim zweiten Stromausfall dann keinen Unterschied gemacht hätte, ob jetzt hde oder hdX gerade noch nicht fertig gesynct wäre.


    Eine USV hätte dir da eher geholfen...


    Gruß,
    Juri


  • hab auch ein software raid5 systeem (raidtools). sind also schon 3 :] . Das systeem lauft schon uber einem jahr mit 5 80 GB festplatten. Das mit dem usv hab ich mich auch schon uberlegt.


    Ich hoffe Schinken bekommt seine daten zuruck.


    Ycat

  • Ich habe gerade gesehen das man bei reichelt eine günstige USV schon für unter 100 € bekommt. Hat jemand von euch sowas unter Linux schon am Laufen? oder einen Link wo man sich mal schlau machen kann, wie das z.B. mit Autoshutdown bei Stromausfall unter Linux ausieht?


    bye
    Daniel


    VDR1: ECS 945GCD-M, Atom 330, mod. Scenic 300 Geh., 16Gb CF, eHD, Tevii S470, 6.4" VGA TFT
    VDR2: Asus P5GC, C2D E4400 2GHz, mod. Scenic 300 Geh., 16Gb CF, eHD, TS SkyStarHD, PSOne TFT
    VDR3: Asus CUSL2, P3800, 128Mb Ram, TT3600, eHD
    SERVER: Tualatin 1133, 512Mb, 8 x ST 320Gb Gb RAID 5
    SERVER: Intel D945GSEJT, Chenbro ES30068

  • Jawoi, Gott sei Dank wieder alles da!


    Mann bin ich glücklich (das hätte Ärger mit der Freundin gegeben, wenn die Daten weg gewesen wären)!


    Vielen lieben Dank an Euch alle, besonders an Juri! Im Moment läuft es zum Testen im degraded Mode, ich bin noch ein bisserl zu aufgeregt, um die vierte Platte wieder einzubinden und dann normal weiter zu machen.


    Tja, jetzt geht's ja eigentlich nur noch um die "lessons learned", wie man so schön sagt :)


    Also, wen's nicht interessiert, der mag hier aussteigen, sich mit mir freuen und hoffentlich einen schönen Sonntag haben!


    Für den Rest (und quasi um das Alles selbst aufzuarbeiten):


    Es war anscheinend nicht die erste (/dev/hde1) sondern die zweite Platte (/dev/hdf1) kaputter. Das habe ich durch eine genauere Analyse durch mdadm --examine festgestellt (die ja um längen besser ist, als das was der automatische md-Starter da so schreibt):






    Aus den update-timern habe ich gefolgert, dass hde, hdg und hdh auf dem selben Stand sind und funktionieren könnten, wenn ich sie mit mdadm --assemble /dev/md0 --force /dev/hde1 /dev/hdg1 /dev/hdh1 einbinde. juri : Das missing klappt/braucht man nur bei mdadm --create


    Das Assemblen klappte dann auch. Problem war, dass ich noch kurz ein paar LVM-Kommandos zum Ausprobieren brauchte, da auf dem RAID noch ein LVM läuft. Da war ich mir nicht ganz so sicher, ob das Aktivieren der VGs und LVs nicht doch schreibend zugreift, das wäre riskant gewesen.


    Nun gut, jetzt muss ich nur noch die zweite Platte "hotadden" und neu anlegen lassen, dann bin ich wieder voll dabei ... und renne recht bald los um mir einen DVD-Brenner auszuleihen und genug Rohlinge für 360GB zu holen :)


    Zwei Fragen habe ich dennoch, das ist mir noch nicht so klar:


    1.) Beim cat /proc/mdstat schreibt er ja die teilnehmenden Disks hin, also z.B.

    Code
    1. hde1[0] hdh1[3] hdg1[2]

    . Die Zahlen in Klammern geben ja die Reihenfolge im Array an, spielt da die Reihenfolge, in der die Platten angegeben sind (in dem Fall durcheinander) eine Rolle? Ich glaube nicht, bin aber nicht sicher.


    2.) Bei der Ausgabe von mdadm --examin gibt es einmal "faulty removed" und einmal nur "faulty /dev/hde1", was ist denn da der Unterschied? Einmal wirklich kaputt, das andere nur logisch nicht ganz up to date?


    Sodala, dann kann ich mich ja endlich wieder einmal meinem VDR widmen, obwohl, der geht grad eh nicht, auf dem Balkon sind die Handwerker eine Woche beschäftigt, da passt meine Schüssel nicht mehr hin. Hmmm ... ich könnte die ja auch mal hinter Glas probieren? ... :rolleyes:


    Nochmals 1000 und vielen lieben Dank, Euer Schinken! :)

    VDR 1.3.20 auf DVB-CVS vom 11.03.2005, SuSE 9.2, AMD Duron 600 MHz, Tyan Trinity KT Mother-Board, 256 MB Ram, 120 GB Platte, Hauppauge Nexus-S rev. 2.1, Geforce2MX mit TV-out

    The post was edited 1 time, last by Schinken ().

  • Hi!


    Glückwunsch zu dem erfolreichen Wiederherstellen!!!
    Bin seit kurzem auch stolzer Benutzer eines Linux-Soft-Raid 5 Arrays.
    Was mich am Software-Raid besonders reizt ist, dass ich es später um Platten erweitern kann (mit raidreconf).
    Habe es hierzu erstmal testweise aufgebaut, um dann das Hinzufügen von platten mal zu üben. Nach einigen Misserfolgen hat dass dann auch geklappt, und zwar mit hilfe einer Anleitung unter http://lists.linuxpower.org/pi…ser/2002-June/000060.html


    Ich komme da jetzt drauf, da du geschrieben hast, dass du die letzte Platte jetzt auch wieder hot-adden willst.
    Könntest du dann vielleicht auch deine Erfahrungen dazu posten??? Wäre wirklich interessant, da es dazu bisher nicht so viel Lesestoff gibt.
    Gruß, HansMeise.

  • Quote

    Originally posted by mav_
    Ich habe gerade gesehen das man bei reichelt eine günstige USV schon für unter 100 € bekommt. Hat jemand von euch sowas unter Linux schon am Laufen? oder einen Link wo man sich mal schlau machen kann, wie das z.B. mit Autoshutdown bei Stromausfall unter Linux ausieht?


    hi,
    ich hab hier eine SmartUPS 1000 am laufen. Die ist über serielles kabel mit meinem rechnr verbunden. dann noch ein "apt-get install apcd" und fertig.


    man kann noch einstellen ob der rechner sofort runtergefahren werden soll und so. batteriestatus und belastung ist auslesbar.

  • Quote

    Original von HansMeise
    Was mich am Software-Raid besonders reizt ist, dass ich es später um Platten erweitern kann (mit raidreconf).
    ...
    Ich komme da jetzt drauf, da du geschrieben hast, dass du die letzte Platte jetzt auch wieder hot-adden willst.
    Könntest du dann vielleicht auch deine Erfahrungen dazu posten???


    Also ich glaube, zwischen dem zusätzlichen Einfügen einer neuen Platte und dem Einsetzen einer Ersatzplatte für eine defekte Platte ist ein grosser Unterschied, bin mir aber nicht 100% sicher, da ich raidreconf nicht kenne. Wenn das aber das macht, was ich glaube, also z.B. aus einem Raid 5 mit 4 Platten eines mit 5 machen, dann suche ich sowas auch, werd mich mal schlau machen, Danke für den Hinweis!


    Das hotadd ersetzt eben "leider" nur eine defekte Platte durch eine neue und baut auf der dann die Daten der defekten wieder auf.


    Schinken

    VDR 1.3.20 auf DVB-CVS vom 11.03.2005, SuSE 9.2, AMD Duron 600 MHz, Tyan Trinity KT Mother-Board, 256 MB Ram, 120 GB Platte, Hauppauge Nexus-S rev. 2.1, Geforce2MX mit TV-out

  • Hi!


    Ups ja, da war ich wohl durcheinander. Klar, das sind zwei paar Schuh'.
    Raidreconf fügt ja einem finktionierendem Raid eine (oder mehr) weitere Platten hinzu, um die Größe zu ändern. (Es kann auch Raidlevel konvertieren)
    Also, weswegen ich mich eingentlich eingeklinkt hatte ist, da ich das zwar mit raidreconf schon hinbekommen habe, aber es ja schon ne heikle Sache ist, und ich also noch mal gern von andern hören würde, wie erfolgreich es war und ich an allgemeinen Erfahrungsberichten zu Linux Soft-Raid interessiert bin.


    Zusammenfassend:

    • Raidreconf kann ein Linux-Soft-Raid 5 vergrößern (was nichtmal teure Hardware Raid Controller (z.B. 3Ware) können). Ausserdem kann es noch Raidlevel konvertieren.
    • Das ganze hat bei mir auch schon geklappt. Leider nicht beim Ersten Versuch, was bei wichtigen Daten natürlich der Horror wäre. Letztlich hat es mit dieser Anleitung geklappt.
    • Werde demnächst nochmal sowas machen und die Ergebnisse dann posten.
    • Wenn sonst jemand Erfahrungsberichte dazu hat, dann immer her damit ;)
    • Weiß jemand, ob es irgeneinen Hardware Raid5 IDE Controller gibt, der einem Raid 5 Platten hinzufügen kann, um die Kapazität zu vergrößern?



    Gruß, HansMeise

  • Quote

    Original von HansMeise
    [*]Wenn sonst jemand Erfahrungsberichte dazu hat, dann immer her damit


    Vor das ich das raid 5 array meine daten zuvertraut habe, habe ich zuerst ein test systeem gebaut mit alte festplatten (grosste war 4 GB, der kleinste 1 GB :D ). Dabei habe ich das 'gluck' gehabt das eine IBM festplatte ausgefallen ist wenn er warm geworden ist, eine ideale platte zum testen ;)


    Am anfang ist das array aufgebaut mit 3 platten und gab eine gesammt grosse von 2 GB :D .


    Beim ausfall von der IBM platte ist das array richtig im degraded modus weitergelaufen. Nach kuhlung von der platte konnte es auch wieder eingebunden werden. Also beim ausfall von einer platte kann mann das array richtig wieder herstellen mit eine andere platte.


    Was aber schief ging ist das erweiteren mit eine 4e platte. Das erweiteren brach ab mit eine fehler meldung und alle daten waren weg X( . Dieses probleem war auch reproduzierbar. Ich vermute das es zu tun hat mit unterschiedliche partition groesse.


    Mein heutiges array hab ich 1 mal um eine 5e festplatte erweitert (gleiche modell) und das ist dann gut gegangen. Da die oben erwaehnte test aber fehl gelaufen war hab ich zuerst ein backup gemacht, ohne wurde ich das erweiteren nicht machen (obwohl im avsforum das erweiteren auch als einwandfrei beschrieben wurde).


    Ich hab noch ein (nicht raid) server laufen mit 5 120 GB festplatten die ich gerne auf raid 5 umbauen moechte, nur wo speichere ich 600 GB zwischen :gap


    Meine private daten hab ich zusatzlich auf 2 verschiedene rechner gespeichert und die muss ich bald auch mal auf DVD brennen ;D


    Fur diejenige die jetzt auch an Raid 5 denken, es darf nur 1e festplatten pro anschluss verwendet werden (also kein master und slave !). Das risiko ist zu gross das wenn eine festplatte stirbt er die andere 'mit zieht'.


    Ycat

  • Hi Schinken,



    >Tja, jetzt geht's ja eigentlich nur noch um die "lessons learned", wie man so schön sagt smile


    Vielen Dank dafür!!!


    Hat mir gerade ´ne Menge Ärger gespart :bounce2


    Musste ein Raid 1 mit 8x2 HD´s, auf dem ein LVM aufgesetzt ist, reanimieren und... es hat geklappt.


    Gruß


    Rainer