Forums Neueste Beiträge
 

Defektes Device in Softraid lokalisieren

10/03/2014 - 21:12 von Siegfried Schmidt | Report spam
Hallo,

gibt es einen Weg, die Ansprechschwellen zur selbststàndigen Erkennung
einer defekten Platte in einem md-raid zu beeinflussen?

Ich musste es gerade zum zweiten Mal erleben, dass eine defekte Platte das
ganze System durch massive IO-Waits praktisch zum Stillstand bringt, ohne
dass das Raid etwas meldet oder in den Logs eindeutige Fehlermeldungen
auftauchen. Der Effekt zog sich über einige Tage hin und erst zum Schluss
kamen im Log Surfaceerrors, die eine Indentifizierung des Übeltàters
ermöglichte. Auch darauf reagierte das Raid nicht, allerdings war durch
manuelle Defekt-Markierung der betreffenden Platte das Ausbremsen des
Systems sofort behoben.

Das Verhalten ist ziemlich unbefriedigend, insbesondere weil bei 12HDs es
mit einfachen Probieren nicht hinhaut. kann man da etwas verbessern?

Kann man den Auslöser von IO-Waits anzeigen?


Siegfried


Diese Nachricht kann zukunftsgerichtete Aussagen beinhalten, diese sind mit
Risiken und Ungewissheiten verbunden und basieren auf gegenwàrtigen
Erwartungen. Die tatsàchlichen Ereignisse können daher wesentlich von den
Darstellungen abweichen.
 

Lesen sie die antworten

#1 Marcus Jodorf
10/03/2014 - 22:17 | Warnen spam
Siegfried Schmidt schrieb:


Ich musste es gerade zum zweiten Mal erleben, dass eine defekte Platte
das ganze System durch massive IO-Waits praktisch zum Stillstand
bringt, ohne dass das Raid etwas meldet oder in den Logs eindeutige
Fehlermeldungen auftauchen. Der Effekt zog sich über einige Tage hin
und erst zum Schluss kamen im Log Surfaceerrors, die eine
Indentifizierung des Übeltàters ermöglichte.



Das sieht dann aber nach Platten aus, wo Du entweder vergessen hast
TLER (aka ERC aka CCTL) zu konfigurieren oder wo das vom Hersteller
(bei Desktopplatten) bereits eingespart wurde, um Dich zum Kauf von
Serverplatten zu pressen (WD? - die haben mit dem Mist zumindest
angefangen).

Auch darauf reagierte das Raid nicht, allerdings war durch manuelle
Defekt-Markierung der betreffenden Platte das Ausbremsen des Systems
sofort behoben.



Normal dreht man Error Recovery auf wenige Sekunden (5 bis 7) runter
und wenn die Platte bis dahin nicht reagiert, bricht sie mit sauberem
Error ab und das Raid kann von den übrigen Platten weiterlesen und sie
überspringen und einen Fehler loggen.
Da stockt dann die Sache nur kurz.
Platten wo das nicht (mehr) geht, fallen ganz direkt gesagt unter
Fehlkauf ohne sich vorher zu informieren. Dann muß man nàmlich leider
den ganzen Timeout durchstehen, wàhrend die Platte versucht, weiter
defekte Sektoren zu lesen und der Kernel das dann irgendwann (IIRC
nach 90 Sekunden) abwürgt.
So lange steht dann alles und wartet auf die Platte, weil die nur noch
mit sich selbst beschàftigt ist.
Dann kappt der Kernel das und beim nàchsten Sektor hàngt wieder alles
bis zum Timeout, usw. Das kann dann etwas ausarten.

Oder das md kickt die Platte gleich ganz aus dem Raid (IMHO eher der
Regelfall).
Der Fall ist eigentlich problematischer, weil das gerne bei Rebuilds
auftritt und dann bricht einem das ganze Raid zusammen, weil eine Platte
vielleicht nur über einen kleinen Sektor stolpert, dessen Daten man auch
von einer der anderen Platten leicht hàtte holen können (falls noch
Redundanz da ist, Raid 6 z.B.). Ist keine Redundanz mehr da, sollte die
Platte etwas lànger versuchen, noch erfolgreich zu lesen.
Aber praktisch in jedem Falle ist es ganz schlecht, wenn die Platte es
lànger versucht, als der Kerneltimeout dauert.

Das Verhalten ist ziemlich unbefriedigend, insbesondere weil bei
12HDs es mit einfachen Probieren nicht hinhaut. kann man da etwas
verbessern?



Wie gesagt CCTL runterdrehen auf einstellige Sekunden (ich nehme da
immer 5). Sonst könnte man eigentlich nur noch schauen, ob man den
kerneleigenen Timeout veringert bekommt. Aber dann würde oft die Platte
ganz aus dem Raid fliegen, wenn der zuschlàgt.
Nebenbei sollte sich dann aber auch in der Regel schon was im SMART
Errolog der betroffenen Platte finden, wenn sie derart an Sektoren
hàngen bleibt.

Kann man den Auslöser von IO-Waits anzeigen?



Evtl. indem man das Debugging (SATA/SCSI) weiter hochdreht?
Ist aber wie gesagt ein typisches Problem von Consumerplatten. Manche
haben dermaßen hirntote Firmware, daß sie ewig versuchen, einen
einzigen Sektor noch zu lesen.
Empfehlung: Hitachi/HGST - da wurde bisher noch nicht alles komplett auf
Firmwareseite eingespart und CCTL geht i.d.R. noch. Bei den übrigen
Herstellern sieht es dagegen eher düster aus, wenn man nicht die
Serverplatten kauft.


Gruß,

Marcus
⚂⚃

Ähnliche fragen