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 verify
Dinge 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/twa0
X 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 ...