Abbiamo un server Debian con controller RAID 3Ware 9650SE a 8 unità, con array RAID6 a 5 dischi, che funge da host di macchine virtuali, tutto Linux. Continuano a verificarsi problemi e sospetto che un disco rotto non rilevato.
Ora abbiamo avuto diversi arresti anomali in cui sia l'host che tutti gli ospiti affermano che il sistema IO è bloccato per 120 secondi o più. Abbiamo sospettato un controller RAID difettoso, ma l'abbiamo sostituito con uno identico con un firmware identico, che non lo ha risolto. Non pensavo che avrebbe funzionato, perché un secondo array RAID1 continuava a funzionare correttamente.
Quasi una settimana fa (domenica), quando questo stava funzionando, la verifica automatica era al 66%. Ieri sera (venerdì mattina) era al 67%. Sia prima che dopo l'avvio, ed entrambi mentre si verificano problemi. Quando ho disattivato la verifica con tw_cli /c0/u0 stop verify
, le cose sono tornate reattive.
Ho il sospetto che si sia bloccato su un errore del disco di circa il 66%. Una verifica automatica inizia sabato:
# tw_cli /c0 show verify
/c0 basic verify weekly preferred start: Saturday, 12:00AM
e sarebbe normalmente fatto da tempo entro venerdì. Visto che domenica era del 66% e venerdì del 67%, è improbabile che si tratti di una coincidenza.
'smartctl -a -d 3ware, 0 / dev / twa0' e 'smartctl -t long' (autotest SMART lungo) su tutte le unità non hanno rivelato alcun errore. Nemmeno tw_cli /c0 show alarms
.
Sospettavo che un disco si spezzasse in un modo difficile da rilevare, ma ho tolto ogni unità dall'array una alla volta, ho creato un "singolo" array da esso e ho trovato pieno di zeri. Nessun disco ha mostrato errori.
O qualche altro consiglio?
Modificare:
questo è il 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
L'unità in questione è u0.
EDIT2:
tw_cli / c0 show diag mostra qualcosa di interessante (edit3: questo è innocuo, ho scoperto che è causato dalla chiamata in smartctl -a -d 3ware,X /dev/twa0
cui X è una porta non valida):
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)
Ne ottengo tonnellate. Non ho idea di cosa significhi però. Non riesco nemmeno a capire quale unità o porta sia. (edit3: lo so ora, è innocuo).
Data la mia modifica3, sono tornato al punto di partenza. Nulla indica che un disco è rotto, tranne che la verifica si blocca al 66% e provoca il blocco dell'array, cosa che a volte accade in modo casuale. Vorrei che la verifica trovasse l'errore ...