Was meint 3Wares tw_cli mit einer „DEGRADED“-Festplatte im Vergleich zu „ECC-ERROR“?

Was meint 3Wares tw_cli mit einer „DEGRADED“-Festplatte im Vergleich zu „ECC-ERROR“?

Ich habe ein trauriges RAID-Array auf einer 3ware 9650SE-16ML-Karte. Was ich nicht sagen kann, ist, ob ich gerade einen doppelten Festplattenausfall hatte (Mist!) oder ob ich das falsch lese. Die relevante Ausgabe ist /c0 show all:

Port   Status           Unit   Size        Blocks        Serial
---------------------------------------------------------------
p0     DEGRADED         u0     931.51 GB   1953525168    5QJ07MAH            
p1     ECC-ERROR        u0     931.51 GB   1953525168    5QJ0DCW9            
p2     OK               u0     931.51 GB   1953525168    5QJ0DW9C            
p3     OK               u0     931.51 GB   1953525168    5QJ0CKXJ            

Und der Fehler ist (von show alarms):

Ctl  Date                        Severity  Alarm Message
------------------------------------------------------------------------------
c0   [Sun Nov 20 07:47:23 2011]  INFO      Rebuild started: unit=0
c0   [Sun Nov 20 08:20:12 2011]  ERROR     Drive ECC error reported: port=1, unit=0
c0   [Sun Nov 20 08:20:12 2011]  ERROR     Source drive error occurred: port=1, unit=0
c0   [Sun Nov 20 08:20:12 2011]  ERROR     Rebuild failed: unit=0
c0   [Sun Nov 20 08:20:12 2011]  INFO      Rebuild paused: unit=0

ICHdenkenDas Folgende ist passiert: p0 ist fehlgeschlagen und dann hatte p1 einen ECC-Fehler (d. h. meine Daten sind weg). Aber ... vielleicht auch nicht? Es bleibt bei 97 % Wiederherstellung, kann diesen Fehler aber nicht überwinden.

Soweit ich weiß, hat ein früherer Administrator die regelmäßige Überprüfung deaktiviert, was uns in diesen Zustand gebracht hat. Darüber müssen sich die meisten Leute bei ihren 3Ware-RAIDs keine Sorgen machen!

Aktualisieren

Nachdem ich ein paar Tage daran herumgebastelt hatte, habe ich den IgnoreECC-Teil ausgeführt und es wurde neu aufgebaut, aber meine Daten sind ruiniert. Schade.

Antwort1

Ein ECC-Fehler bedeutet, dass sich auf dem Laufwerk mindestens ein nicht lesbarer Sektor befindet. Wenn Sie Glück haben, wird dieser Sektor jedoch möglicherweise nicht vom Dateisystem auf diesem Datenträger verwendet, sodass Sie Ihre Daten in diesem Zustand möglicherweise noch vom Array kopieren können.

Es gibt auch einige Optionen, um ECC-Fehler während des Neuaufbaus zu ignorieren:

/cx/ux start rebuild disk=p [ignoreECC]
/cx/ux set ignoreECC=on|off

Die Verwendung dieser Optionen bedeutet jedoch, dass der von einem fehlerhaften Sektor betroffene RAID-Streifen beschädigt wird (ich bin nicht sicher, was die Karte in diesem Fall genau tun wird – sie könnte den gesamten Streifen durch Nullen oder sogar durch zufällige Daten ersetzen), sodass das „wiederhergestellte“ Array tatsächlich eine nicht erkennbare Beschädigung aufweisen könnte (wenn sich der betroffene Streifen in der Mitte einer Datendatei befand). Das Kopieren Ihrer Daten vom Array an einen anderen Ort vor dem Wiederherstellungsversuch könnte sicherer sein (zumindest sollten Sie beim Versuch, den fehlerhaften Bereich zu lesen, Fehlermeldungen erhalten).

Sie sollten eine zeitgesteuerte Überprüfung des Arrays einrichten, um nicht lesbare Sektoren früher zu erkennen, sodass Sie ein Laufwerk ersetzen können, das gerade seinen Dienst versagt hat.

Antwort2

Ich habe noch nie erlebt, dass ein physisches Laufwerk (p0) in den Status DEGRADED wechselte. Sie können jedoch möglicherweise das ECC-ERROR-Laufwerk oder sogar das DEGRADED-Laufwerk wiederherstellen, indem Sie sie über

/c0 p1 remove

und anschließend einen erneuten Scan ausführen

/c0 rescan

stecke sie zurück in die Raid-Einheit über

maint rebuild c0 u0 p1

SATA-Laufwerke, die mit einem ECC-Fehler ausgefallen sind, konnte ich wiederbeleben, wenn auch nur für ein paar Stunden, bevor sie erneut ausfielen.

Antwort3

Es ist sehr wahrscheinlich, dass Ihre Daten verloren sind. Ein ECC-Fehler bedeutet einen nicht behebbaren Fehler beim Lesen von dieser Festplatte.

Wenn Sie kein Backup haben, können Sie versuchen, den aktuellen Zustand des Arrays zu sichern. Dies ist möglicherweise möglich, weil der Controller nicht weiß, ob Daten verloren gegangen sind oder nur ein leerer Bereich vorhanden ist (ihm fehlt der Einblick in das Dateisystem).

verwandte Informationen