PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit defektem Software Raid 5



jalexander
26.04.09, 23:38
Guten Abend,

ich habe hier einen Server mit drei Platten und zwei Raid 5 Systemen drauf. Nun ist durch ein Problem am Netzteil eine Platte ausgestiegen, bzw. die Partitionstabelle ist total im Eimer. Der Server lässt sich nciht mehr starten.
Ich habe nun versucht die defekte Platte per dd zu kopieren, was mir auch gelungen ist (Platte ist baugleich mit der defekten), die Partitionen habe ich per Testdisk auch wieder soweit hinbekommen, allerdings wird das Dateisystem der ersten partition nicht richtig erkannt, der Server startet also noch immer nicht.

Nun habe ich ein Rechner mit einer Platte mit Ubuntu ausgestattet und die drei Platten des Raid Systems mit angehängt. So habe ich ein laufendes System udn kann die drei raid Platten sehen.

Nun kommt mein Problem, ich komme aber leider mdadm nicht an die Raidsysteme dran. Ist ja auch verständlich, mein Ubuntu kennt diese Systeme ja nicht.
Was kann ich tun, damit ich das defekte Raid also wieder zum Laufen bekomme? Gibt es da denn überhaupt eine Möglichkeit?
Da einige wichtige Daten auf den Platten sind, wäre es schon ziemlich wichtig.

Ich würde mich sehr über Tipps oder Infos dazu freuen.

Guten Abend
Alex

marce
27.04.09, 06:49
wieso im Ursprungssystem nicht einfach die defekte Platte durch eine funkitonierende ersetzen und einen Rebuild starten?

jalexander
27.04.09, 06:50
Weil ich das System nicht gestartet bekomme. Der bootet mir von den verbliebenen zwei Platten ja nicht.

Stormbringer
27.04.09, 06:57
Weil ich das System nicht gestartet bekomme. Der bootet mir von den verbliebenen zwei Platten ja nicht.
Was für ein raid hast denn dort erstellt?

jalexander
27.04.09, 07:00
Was für ein raid hast denn dort erstellt?

Ich bin von einem Raid 5 ausgegangen, wie kann ich das genau denn genau herausfinden?

Langsam zweifle ich schon ein wenig.... ich finde /dev/md0, und /dev/md1 jedoch nichts in der art von mdadm .

Stormbringer
27.04.09, 07:33
Das solltest Du schon wissen ... vor allem bei der Einrichtung hättest Du es dir einmal anlesen sollen - aber das ist nun eh zu spät.
Den raid-Typ kannst Du in /etc/mdadm.conf oder /etc/raidtab auslesen.
Wenn bei einem raid5 über 3 Festplatten hinweg eine der Festplatten Defekte aufweißt, wird es sehr schwer, da überhaupt noch Daten zu retten .. das liegt an der Natur von raid5

Als aller erstes natürlich ein image der defekten Platten ziehen (bspw. mittels ddrescue), als zweites eine Kerze anzünden & beten (und dann einmal http://de.wikipedia.org/wiki/RAID#RAID_5:_Leistung_.2B_Parit.C3.A4t durchlesen) - da du bei 3 Festplatten kein spare-Laufwerk hast ... naja ...
An den 2 bzw. 3 images kannst Du dann 'normal' testen, vllt. klappt anhand der images dann auch bspw. ein 'mdadm –assemble /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1' (oder so ähnlich) - wenn ich es mal richtig gelesen habe, dann hält Ubuntu auch die Funktion 'dpkg-reconfigure mdadm' (oder so ähnlich) parat. Aber, wie gesagt, um größere zusätzliche Fehler zu vermeiden: dies nicht an den Originalplatten testen, sondern an images.
Wenn alles nichts hilft: backup einspielen.

marce
27.04.09, 07:38
Wenn bei einem raid5 über 3 Festplatten hinweg eine der Festplatten Defekte aufweißt, wird es sehr schwer, da überhaupt noch Daten zu retten ..
Öhm, wenn von 3 Platten im Raid 5 eine defekt ist sollte es kein Problem sein, das Raid wieder zu rebuilden, denn:

das liegt an der Natur von raid5
:-)

Ein wenig mysthisch ist eher die Aussagen, daß er auf 3 HDs 2 Raid-5 drauf hat. Und da kann man Schlimmstes vermuten, vor allem, wenn man sich nicht mehr daran erinnern kann, wie das Raid erstellt wurde...

Stormbringer
27.04.09, 07:42
Aufgrund der Schreibart gehe ich davon aus, das alle drei Festplatten jeweils eine Partition bilden ... und 3 Partitonen sind das Minimum für ein raid5, also 2x Daten & 1x daraus ergebende parity ... oder hat sich das etwas geändert?

marce
27.04.09, 07:46
Falls die Frage Richtung mir geht - so wie Du es beschreibst ist es ein Raid 4 (ded. Daten und Paritätsplatte), vielleicht liegt das aber auch nur an "ungenauer" Formulierung.

Auf jeden Fall braucht er min. 3 Partitionen pro Raid 5. Man kann aus je einer HD natürlich auch 2 Partitionen machen, hätte dann 6 Partitionen, auf denen man 2 Raid 5 erstellen könnte - kann sinnvoll sein, wenn man es richtig macht.

jalexander
27.04.09, 07:54
Das solltest Du schon wissen ... vor allem bei der Einrichtung hättest Du es dir einmal anlesen sollen - aber das ist nun eh zu spät.
Ich kann da meine Hände in Unschuld waschen, ich hab das nicht eingerichtet, ich "darf" es mir nur anschauen. Es ist eine alte Kiste, die jahrelang so im Eck stand und niemand danach schaute. Jetzt plötzlich ist es wichtig......


Den raid-Typ kannst Du in /etc/mdadm.conf oder /etc/raidtab auslesen.
Okay eine mdadm.conf habe ich nciht gefunden, dafür die raidtab. sagt das etwas darüber aus ob das System mit mdadm oder einem anderen raidtool aufgebaut wurde?


Nachtrag
Wie ich herausgefunden habe, wurde hier wohl mkraid verwendet. Ein mkraid -V gibt mkraid version 0.90.0 an.

Also laut der /etc/raidtab handelt es sich um Raid1 nicht Raid5 . Da es drei PLatten sind, dachte ich automatisch an Raid5. Mir war nicht klar, dass Raid1 auch mit drei PLatten geht.
Hier die Ausgabe von cat /etc/raidtab:



raiddev /dev/md0
raid-level 1
nr-raid-disk 2
chunk-size 64K
persistent-superblock 1
nr-spare-disks 1
device /dev/hdc3
raid-disk 0
device /dev/hde3
raid-disk 1
device /dev/hdf3
spare-disk 0
raiddev /dev/md1
raid-level 1
nr-raid-disk 2
chunk-size 64K
persistent-superblock 1
nr-spare-disks 1
device /dev/hdc1
raid-disk 0
device /dev/hde1
raid-disk 1
device /dev/hdf1
spare-disk 0

Im Moment bin ich zumindest soweit, dass ich nur die Platten hdc und hdf im System habe, der Rechner bootet, dann aber versucht er die Raid Devices md0 und md1 zu starten und bringt einen Fehler, weil er das LABEL=/boot nicht finden kann. Wie kann das Label verschwinden?
Ich stehe dann vor einer Reparaturconsole, in die ich per root Passwort reinkomme.
Hängen alle drei Platten im System, bleibt er bei der Initialisierung der Hardware hängen.
Interessanterweise kann ich in der Reparaturconsole per mount /dev/md1 /boot md1 anhängen.

Wenn ich das also richtig sehe, laufen da jetzt eine Platte vom Spiegel, plus die Spare-Disk.

Stormbringer
27.04.09, 07:55
Falls die Frage Richtung mir geht - so wie Du es beschreibst ist es ein Raid 4 (ded. Daten und Paritätsplatte), vielleicht liegt das aber auch nur an "ungenauer" Formulierung. Das wäre ja nur bei einer für die parity dedizierten Platte ... aber bei raid5 wird es ja verteilt geschrieben.


Auf jeden Fall braucht er min. 3 Partitionen pro Raid 5. Man kann aus je einer HD natürlich auch 2 Partitionen machen, hätte dann 6 Partitionen, auf denen man 2 Raid 5 erstellen könnte - kann sinnvoll sein, wenn man es richtig macht. Das hat mich nun recht stutzig gemacht ... und 'und zwei Raid 5 Systemen drauf' habe ich glatt überlesen.

jalexander
27.04.09, 08:09
Sorry, das war ein Fehler meinerseits - kein Raid 5 sondern Raid 1.
Siehe mein Beitrag oben.

marce
27.04.09, 08:10
Ich begebe mich nun ein bisschen auf wackeliges Gebiet - SW-Raid gibt's bei uns in der Art keine und die existierenden sind noch nie kaputt gegangen :-)

Da Du eine Spare-Disk im System hast sollte eigentlich das Raid sich selbst heilen - dafür ist die Spare ja da. Alternativ kannst Du natürlich das Raid aus dem funkltionierenden Produktiv-Teil des Spiegels und mit der Spare-Disk neu erstellen

ein netter Link dazu wäre
https://www.adminlife.net/howto/howto-rebuild-eines-linux-software-raids/
http://aplawrence.com/Linux/rebuildraid.html

Etwas merkwürdig ist, daß er boot nicht findet - was das nicht auf dem Raidset drauf und oder sind da andere Dinge schief gelaufen? Manchmal (in den guten alten Zeiten, als Grub das noch nicht konnte) wurde /boot nicht im Raid aufgenommen sondern nur als normale Partition auf die einzelnen Platten verteilt (oder gar nur auf einer gelassen) - kommst Du an die menu.lst irgendwie ran?

Das Raid solltest Du übrigens auch unter *buntu in einer Live-Umgebung mounten können...

Stormbringer
27.04.09, 08:13
Also laut der /etc/raidtab handelt es sich um Raid1 nicht Raid5
Wenn doch nun nur eine Platte defekt ist (hdc, hde oder hdf), dann kannst Du doch nun die Daten von einer der beiden anderen Platten nehmen, und es neu aufbauen (läuft denn der Selbstheilungsprozeß an, oder passiert auch da nichts)?.


Mir war nicht klar, dass Raid1 auch mit drei PLatten geht.
Vllt. wollte der Ersteller des Systems ein raid 0+1 (http://de.wikipedia.org/wiki/RAID#RAID_01) bauen? Ist wirklich keine mdadm.conf zu finden (find / -name mdadm.conf)?

EDITh sagt: ich klinke mich nun hier aus ... :)

jalexander
27.04.09, 08:38
ein netter Link dazu wäre
https://www.adminlife.net/howto/howto-rebuild-eines-linux-software-raids/
http://aplawrence.com/Linux/rebuildraid.html

Vielen dank. Ich hab das mal kurz überflogen, da wird ja per dd kopiert. Kann man nicht einfach eine leere Platte reinschieben und das Raid baut sich von allein wieder auf?
So kannte ich das eigentlich bisher immer, zumindest bei hardwareraids.


kommst Du an die menu.lst irgendwie ran?
Ja in der Reparaturconsole, wenn ich dann mit mount /dev/md0 /boot das Raid anfüge, komme ich in /boot/grub an die menu.lst.
Hier die Ausgabe davon:


# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/ , eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/md0
# initrd /initrd-version.img
#boot=/dev/hdc1
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.10-1.770_FC3)
root (hd0,0)
kernel /vmlinuz-2.6.10-1.770_FC3 ro root=/md0 rhgb quit
initrd /initrd-2.6.10-1.770_FC3.img
title Fedora Core (2.6.9-1.667)
root (hd0,0)
kernel /vmlinuz-2.6.9-1.667 ro root=/md0 rhgb quit
initrd /initrd-2.6.9-1.667_FC3.img


Wobei mir das #boot=/dev/hdc1 komisch vorkam und ich es auskomentiert hatte, aber das brachte nichts.

marce
27.04.09, 08:42
Vielen dank. Ich hab das mal kurz überflogen, da wird ja per dd kopiert. Kann man nicht einfach eine leere Platte reinschieben und das Raid baut sich von allein wieder auf?
So kannte ich das eigentlich bisher immer, zumindest bei hardwareraids.
kommt drauf an, wie das Raid aufgebaut ist - Du hast ja "normale" Partitionen, die über ein Stück Software zu einem Raid zusammengefasst werden - dazu muss die Software natürlich auf die Partitionen zugreifen können. Daher wird dort auf der neuen Platte eine Partitionstabelle erstellt, die eben diese Partitionen so erstellt, wie sie für das Raid notwendig sind.

Dann erst können die Daten gesynct werden (bzw. das Raid neu aufgebaut).

Ein HW-Raid arbeitet da anders - dort wird eben das vom Controller übernommen, wenn Du eine neue Platte einschiebst so wird diese vom Controller auch erst für die Verwendung "vorbereitet" - und dann entsprechend gesynct.

jalexander
27.04.09, 08:44
Wenn doch nun nur eine Platte defekt ist (hdc, hde oder hdf), dann kannst Du doch nun die Daten von einer der beiden anderen Platten nehmen, und es neu aufbauen (läuft denn der Selbstheilungsprozeß an, oder passiert auch da nichts)?.
Also das System startet nur, wenn auch halb mit den Platten hdc und hdf, also Raid Platte 0 und Spareplatte 0 . Sobald ich hde mit anhänge, hängt sich das System auf.
Ich dachte schon eine komplett leere, baugleiche Platte für hde einzubauen, die Frage ist dann nur, wo sehe ich was der Selbstheilungsprozess macht?


Vllt. wollte der Ersteller des Systems ein raid 0+1 (http://de.wikipedia.org/wiki/RAID#RAID_01) bauen?
Das war leider lange vor meiner Zeit, auf den Herrn kann leider nciht mehr zugegriffen werden und Dokus sind Fehlanzeige.


Ist wirklich keine mdadm.conf zu finden (find / -name mdadm.conf)?
Das war ja mein erster Versuch, nach mdadm zu suchen - Fehlanzeige.
Darum hat es mich ja auch gewundert, wie die Raidsysteme sonst angelegt worden sind.

jalexander
27.04.09, 08:57
Also die Geschichte mit dem fehlenden Label habe ich so gelöst, dass ich in der /etc/fstab LABEL=/boot durch /dev/md1 ersetzt habe.

Jetzt bekomme ich beim Filesystemcheck den Fehler, dass fsck.ext3 unsupported Features hat :(

Baldo_der_baer
01.05.09, 21:55
So weit ich das sehe ist das Problem eigentlich nicht das Raid system sondern der Bootloader der nur auf der ersten Platte installiert war
Das Raidsystem war noch mit den alten raidtools erstellt
das neue System benutzt aber mdadm
Ich würde ersteinmal nachschauen welche Partitionskennung die einzelnen Festplattenpartitionen haben .
Dies erreicht man mit dem befehl fdisk -l /dev/hd?
oder fdisk -l /dev/sd?
Stehen diese nicht auf FD stehen werden die Raidpartionen nicht automatisch gestartet.

jalexander
02.05.09, 09:32
Das Problem hat sich erledigt.
Es war kein Raid 5 sondern Raid 1 mit drei Platten. Es ist nun so, dass das System zwar bootet, jedoch fehlen jegliche Module zum Kernel. Das Verzeichnis /lib/modules enthält kein versionsspezifisches Verzeichnis. Man kann sich nun zwar an der Konsole anmelden, jedoch ist ein Zugriff übers Netz nicht machbar, da die Netzwerkkarten nicht geladen werden --> fehlende Module.
Es wurde also eine zusätzliche Festplatte angehängt und die Daten darauf kopiert.