3Ware RAID6-Array hängt manchmal. Nicht erkannte kaputte Festplatte?

13

Wir haben einen Debian-Server mit 3Ware 9650SE RAID-Controller mit 8 Laufwerken und einem RAID6-Array mit 5 Festplatten, der als Host für die virtuelle Maschine für Linux fungiert. Es treten weiterhin Probleme auf, und ich vermute, dass die Festplatte nicht erkannt wurde.

Wir hatten jetzt mehrere Abstürze, bei denen sowohl der Host als auch alle Gäste sagten, dass das IO-System für 120 Sekunden oder länger blockiert war. Wir vermuteten einen fehlerhaften RAID-Controller, ersetzten ihn jedoch durch einen identischen mit identischer Firmware, der das Problem nicht beheben konnte. Ich hätte nicht gedacht, dass dies der Fall sein würde, da ein zweites RAID1-Array weiterhin ordnungsgemäß funktioniert.

Vor fast einer Woche (Sonntag), als dies passierte, lag die automatische Überprüfung bei 66%. Letzte Nacht (Freitagmorgen) waren es 67%. Sowohl vor als auch nach dem Booten und bei Problemen. Als ich die Überprüfung mit ausschaltete, reagierten die tw_cli /c0/u0 stop verifyDinge wieder.

Ich vermute, dass es bei etwa 66% an einem Festplattenfehler hängen geblieben ist. Eine automatische Überprüfung beginnt am Samstag:

# tw_cli /c0 show verify
/c0 basic verify weekly preferred start: Saturday, 12:00AM

und würde normalerweise lange bis Freitag erledigt sein. Angesichts der Tatsache, dass Sonntag 66% und Freitag 67% ausmachten, ist es unwahrscheinlich, dass dies ein Zufall ist.

'smartctl -a -d 3ware, 0 / dev / twa0' und 'smartctl -t long' (langer SMART-Selbsttest) auf allen Laufwerken zeigten keine Fehler an. Weder tut tw_cli /c0 show alarms.

Ich hatte den Verdacht, dass eine Festplatte auf eine schwer zu erkennende Weise defekt ist, aber ich habe jedes Laufwerk einzeln aus dem Array genommen, ein "einzelnes" Array daraus erstellt und es mit Nullen gefüllt. Keine Festplatte zeigte Fehler.

Oder irgendwelche anderen Ratschläge?

Bearbeiten:

Das ist das Layout:

# tw_cli /c0 show

Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy
------------------------------------------------------------------------------
u0    RAID-6    OK             -       -       256K    5587.9    RiW    OFF    
u1    SPARE     OK             -       -       -       1863.01   -      OFF    
u2    RAID-1    OK             -       -       -       1862.63   RiW    ON     

VPort Status         Unit Size      Type  Phy Encl-Slot    Model
------------------------------------------------------------------------------
p0    OK             u0   1.82 TB   SATA  0   -            ST32000542AS        
p1    OK             u0   1.82 TB   SATA  1   -            ST32000542AS        
p2    OK             u0   1.82 TB   SATA  2   -            ST32000542AS        
p3    OK             u0   1.82 TB   SATA  3   -            ST32000542AS        
p4    OK             u0   1.82 TB   SATA  4   -            ST32000542AS        
p5    OK             u1   1.82 TB   SATA  5   -            WDC WD2002FYPS-02W3 
p6    OK             u2   1.82 TB   SATA  6   -            WDC WD2002FYPS-02W3 
p7    OK             u2   1.82 TB   SATA  7   -            WDC WD2002FYPS-02W3 

Name  OnlineState  BBUReady  Status    Volt     Temp     Hours  LastCapTest
---------------------------------------------------------------------------
bbu   On           Yes       OK        OK       OK       0      xx-xxx-xxxx

Die fragliche Einheit ist u0.

edit2:

tw_cli / c0 show diag zeigt etwas Interessantes (edit3: das ist harmlos, ich habe herausgefunden, dass es durch den Aufruf von smartctl -a -d 3ware,X /dev/twa0X verursacht wird, wenn es sich um einen ungültigen Port handelt):

QueueAtaPassthrough() called with invalid TargetHandle: 0x17, portHandle: 0xFF

Legacy opcode=0xB1 error=0x10E

E=010E T=14:15:51     : Invalid operation for specified port
E=010E T=14:15:51 U=0 : Return error status to host
Error, Unit 23: Invalid operation for specified port
(EC:0x10e, SK=0x05, ASC=0x24, ASCQ=0x00, SEV=01, Type=0x70)
No additional sense data
Error, Unit 23: 0x10E OVERRIDDEN due to invalid sense buffer descriptor
sense buffer: len=0, address=0x414ca2c7c
Send AEN (code, time): 0031h, 06/21/2013 14:26:16
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)

Ich bekomme Tonnen davon. Ich habe jedoch keine Ahnung, was es bedeutet. Ich kann nicht einmal erkennen, welches Gerät oder welcher Port es ist. (edit3: Ich weiß jetzt, es ist harmlos).

Angesichts meiner Bearbeitung3 bin ich wieder auf dem ersten Platz. Nichts deutet darauf hin, dass eine Festplatte defekt ist, außer dass die Überprüfung bei 66% hängt und das Array hängen bleibt, was manchmal auch zufällig geschieht. Ich wünschte, die Überprüfung würde den Fehler finden ...

Halfgaar
quelle
Welche Festplatten? Werden sie offiziell unterstützt?
grs
Ich habe das Layout hinzugefügt. Die Festplatten sind ST32000542AS. Sie werden unterstützt, aber darüber hinaus hat der Server 3 Jahre lang einwandfrei funktioniert.
Halfgaar
Ich hatte ein Problem mit einigen WD-Laufwerken, die irgendwann sehr langsam wurden. nur ein hdparm (hier leider nicht machbar) zeigte mir einen durchsatz von ~ 300 kb / s (yes k!) anstelle der üblichen 80 ~ 100 mb / s.
Benjamin Sonntag,
1
Der Unterschied zwischen dem Enterprise und den Festplatten von Desktop-Laufwerken besteht darin, dass sie die Fehler beheben. Wenn auf Enterprise-Laufwerken ein Fehler auftritt, fällt die CD aus dem RAID. (wie in Unternehmen, die für das Risiko der Speicherung von Daten sensibel sind und bereit sind, dafür zu zahlen). Wenn ein Desktop-Laufwerk den Fehler behebt, versucht es, so lange zu bestehen, bis alle Zeitlimits abgelaufen sind. (Da Benutzer ein Laufwerk haben und auf die Daten zugreifen müssen, die sie benötigen, und wenn sie auf einmal herausfallen, wird der Hersteller sehr schmerzhaft sein.) ST32000542AS ist anscheinend eine leise und kostengünstige Desktop-Version. Zum Beispiel goo.gl/rWb5lj
8.
Tatsächlich hing dieser Server erst kürzlich plötzlich, anders und schwerwiegender als das ursprüngliche Problem, und in den Protokollen wurde eine Zeitüberschreitung auf einem RAID-Port angezeigt. Das Timeout war auf einem der Enterprise-Laufwerke (von denen dieser Server jetzt mehr hat).
Halfgaar

Antworten:

1

2 Dinge, die noch nicht erwähnt wurden:

  1. Ist das ein SATA RAID Controller? In diesem Fall sind SATA-Kabel anfällig für Alterung, und durch Ersetzen können solche Probleme leicht behoben werden. Meistens kann dies versucht werden, wenn Festplattenfehler, Verzögerungen oder Zeitüberschreitungen auftreten, die SMART-Werte jedoch alle in Ordnung sind und das Laufwerk alle Selbsttests besteht. Leider ist es schwierig, einen guten SATA-Kabelverkäufer zu finden.
  2. 3Ware-RAID-Controller sind veraltet und werden heutzutage nicht mehr unterstützt. Sie erhalten weder Firmware-Upgrades noch Ersatzteile. Falls Ihr Controller ausfällt, kann das RAID ohne den passenden Controller UND die passende Firmware möglicherweise nicht wiederhergestellt werden. Dann ist eine teure Datenwiederherstellung erforderlich.
Flohack
quelle
0

Dieses Problem kann darauf zurückzuführen sein, dass auf einem der Datenträger ein Lesefehler aufgetreten ist und das gesamte Array blockiert wird, bis entweder der Sektor neu zugeordnet werden kann oder der RAID-Controller davon ausgeht, dass das Laufwerk tot ist, und es aus dem Array heraus startet und es als "Heruntergefahren" markiert. (Dies liegt ganz bei der jeweiligen Steuerung). Dies kann häufig vorkommen, wenn eine Festplatte zu sterben beginnt, SMART jedoch weiterhin besteht. Die meisten Consumer-Datenträger versuchen das Lesen weiterhin für immer.

Dieses Problem wird in einigen Laufwerken bestimmt für RAID gelöst etwas namens mit Fehlerkorrektur Kontrolle . WD nennt das TLER. Von der Website:

RAID-specific time-limited error recovery (TLER) - Pioneered by WD, this feature prevents drive fallout caused by the extended hard drive error-recovery processes common to desktop drives.

Grundsätzlich sagt es einem Datenträger, dass er nach x Sekunden aufgeben soll, wenn er einen Sektor nicht lesen kann. Dies ist in einem RAID großartig, da die Daten möglicherweise von einer anderen Festplatte wiederhergestellt werden.

Nach dem, was ich gelesen habe, implementiert der ST32000542AS keine Form von ERC, sodass einer von ihnen das gesamte Array blockieren kann. Der WD2002FYPS implementiert tatsächlich den TLER von WD, sodass dieses Problem nicht auftritt.

Succulent_headcrab
quelle
0

Nur um sicherzugehen, welche Firmware-Version haben Sie?

Ich habe ein Problem festgestellt, das sich sehr nach Ihrer Beschreibung anhört, wenn folgende Anforderungen erfüllt sind:

  • 3ware 96xx series controller
  • RAID 6
  • 256k Stripe Size
  • Firmware-Version <v4.10.00.021 *

Zu der Zeit war kein Firmware-Fix verfügbar, daher habe ich von 256k auf 64k Stripe-Größe migriert, wodurch auch das Problem behoben wurde. Sie können es als Problemumgehung versuchen, es wird jedoch sicherlich Tage dauern, bis es abgeschlossen ist.

Später habe ich versucht, die neue Firmware (* 4.10.00.021 Ich glaube, hatte das Update) mit 256k und arbeitete wie ein Zauber. 4.10.00.027 ist die neueste Version.

Acrklor
quelle
Wir haben das Problem nicht mehr. Die Überprüfung war immer erfolgreich. Wir haben jedoch vor einigen Monaten einen kompletten Server-Hang bekommen (nach einer langen Zeit ohne Probleme). Dmesg sagte, dass die Zeit für Festplatte x abgelaufen sei. Ich weiß nicht, warum der Controller nicht gekickt hat, aber obwohl er nicht ausdrücklich als beeinträchtigt markiert wurde, habe ich ihn ersetzt. Seitdem wurden auch andere Festplatten ausgetauscht. Es war also wahrscheinlich ein Festplattenproblem.
Halfgaar
0

Früher hatte ich Probleme mit einem 3ware-Controller und Seagate-Laufwerken. Es gibt eine subtile Firmware-Inkompatibilität. Ich habe auf Samsung-Laufwerke umgestellt, Problem behoben.

Zdenek
quelle