PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kernel (libata) crasht beim Entfernen einer SATA-Platte



Cybercchriss
01.12.05, 09:00
Ich beschäftige mich imo mit dem Thema Software-Raid.
Mein Testsystem setzt sich wie folgt zusammen:
1 IDE-Platte (OS:Fedora Core 4)
2 x SATA die als Raid 1 laufen sollen.

Nach builden des Raidverbundes wollte ich nun den Ausfall einer Platte simulieren um zu Überprüfen, ob das Raid den Ausfall bemerkt und in den degraded mode wechselt.
Nachdem ich das SATA-Kabel gezogen hatte und einen read or write Zugriff aufs Raid ausgeführt habe, ist der Kernel mit einer Bug-Meldung abgeschmiert.

Der selbe Test mit IDE verlief hingegen wie erwartet - nach ein paar Kernelfehlermeldungen hat dieser sich wieder gefangen und der Raidverbund war in der Lage den Ausfall festzustellen.

Ich habe schon nach alternativen SATA-Treibern gesucht, bin jedoch nicht fündig geworden. Auf dem Board sitzt ein Intel 82801FB (ICH6) SATA Controller der rev 4.

jacky0815
01.12.05, 09:18
Meiner Meinung nach ist weder P-ATA noch S-ATA (in der aktuellen Version 1) hotplug-fähig. Ich denke einfach, dass die Hardware da schon misst macht.

Cybercchriss
01.12.05, 09:28
Ich rede ja auch nicht von Hotplugfähigkeit.
Dennoch erwarte ich von einem SATA-Kerneltreiber, dass er nicht das ganze System zum erliegen bringt, wenn die Platte entfernt wird - der IDE-Treiber fängt sich ja schliesslich auch wieder :)

Kennt denn jemand vielleicht Treiberalternativen für o.g. Controller?

jacky0815
01.12.05, 09:32
Recher ausschalten, abziehen, wieder anschalten. und schon kann man raid1 testen.
Wenn eine platte stirbt, dann zieht sich ja auch nicht das kabel :D

Cybercchriss
01.12.05, 11:04
Recher ausschalten, abziehen, wieder anschalten. und schon kann man raid1 testen.
Wenn eine platte stirbt, dann zieht sich ja auch nicht das kabel

Das Kabel zu ziehen entspräche einem Totalausfall der Platte.
Ich erwarte von einem SATA-Treiber, dass dann nicht gleich der Kernel hängenbleibt.
Der Einsatzort eines solchen Systems soll nicht das Wohnzimmer sein - Stichwort Supportaufwand.

Ach ja - ein Hardwareraid kommt bei diesem Projekt nicht in Frage.

jacky0815
01.12.05, 12:02
Das Kabel zu ziehen entspräche einem Totalausfall der Platte.
Ich erwarte von einem SATA-Treiber, dass dann nicht gleich der Kernel hängenbleibt.
Der Einsatzort eines solchen Systems soll nicht das Wohnzimmer sein - Stichwort Supportaufwand.

Ach ja - ein Hardwareraid kommt bei diesem Projekt nicht in Frage.

Sorry, entweder oder :ugly:

S-ATA der ersten Generation ist nunmal vom Standard her nicht hotplugfähig (was ja gegeben sein müsste um das Kabel abzuziehen oder halt Komplettausfall der HDD) und dass es bei P-ATA funktioniert würde ich als reines Glück bezeichnen.
Wenn du den Supportaufwand gering halten willst, brauchst einen ordentlichen Controller (kein onboard) oder eventuell sogar nen RAID-Controller. Oder du hoffst, dass es doch irgendwann funktioniert.

Shutdown
01.12.05, 13:51
Wenn die Hardware kein Hotplug kann, wird sie beim Abziehen einer Platte wahrscheinlich ganz anders reagieren, als wenn diese einfach ausfällt. Beim Ausfall der Platte bleiben auf der Leitung meist noch Strom bzw ein bestimmter Widerstand, die Platte reagiert nur nicht mehr auf read/write Anforderungen. Das kann der Kernel merken, aber wenn die Hardware den Dienst verweigert, kann der Kernel auch nichts mehr machen.
Ich würde einfach mal sagen, dass ist weniger ein Kernelproblem als ein Hardwareproblem.

Shutdown

jacky0815
01.12.05, 17:18
besser hätte ich es nicht sagen können @ shutdown

Cybercchriss
02.12.05, 09:06
Da muss ich widersprechen.

Wenn der Kernel eine BUG-Meldung produziert, lässt dies meistens auf einen Fehler im Programmcode schliessen.
Wie sich herausgestellt hat lag es hier an einem bug im Modul ata_piix und dieser wurde seit 2.6.14-git5+ behoben.

Ein aktueller Test mit o.g. Raidkonfiguration funktioniert jetzt einbandfrei.
Jetzt kann ich mich endlich mit dem nbd bzw enbd beschäftigen.

Thread kann geschlossen werden.

tuxthekiller
02.12.05, 14:33
Neuerdings ist SATA im SCSI Subsystem.