L'array 3Ware RAID6 a volte si blocca. Disco rotto non rilevato?


13

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/twa0cui 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 ...


Quali HDD? Sono ufficialmente supportati?
gr.

Ho aggiunto il layout. I dischi sono ST32000542AS. Sono supportati, ma soprattutto il server ha funzionato bene per 3 anni.
Halfgaar,

Ho avuto problemi con alcune unità WD che diventavano molto lente ad un certo punto. solo un hdparm (non realizzabile qui purtroppo) mi ha mostrato un throughput di ~ 300 KB / s (sì K!) invece dei soliti 80 ~ 100 MB / s.
Benjamin Sonntag,

1
la differenza tra Enterprise e i dischi delle unità desktop è che risolvono i bug. Se le unità Enterprise rilevano errori, il disco cade dal raid. (come nelle aziende sensibili ai rischi legati all'archiviazione dei dati e disposti a pagarli) Se un'unità desktop incontra l'errore, tenterà di durare fino al termine di tutti i timeout. (Poiché gli utenti guidano un'unità e i dati che devono raggiungere, e se cadono dischi contemporaneamente, il produttore sarà molto doloroso) apparentemente ST32000542AS è dischi di versione desktop silenziosi ed economici. per esempio goo.gl/rWb5lj
Rainbow-

In realtà, proprio di recente, questo server si è bloccato improvvisamente, in modo diverso e più grave rispetto al problema originale, e i log hanno mostrato un timeout su una porta RAID. Il timeout era su una delle unità aziendali (di cui questo server ne ha di più ora).
Halfgaar,

Risposte:


1

2 cose che non sono state sollevate finora:

  1. È un controller RAID SATA? In tal caso, i cavi SATA sono soggetti all'invecchiamento e la loro sostituzione potrebbe risolvere facilmente tali problemi. Il più delle volte questo può essere provato quando si verificano errori del disco, ritardi, timeout ma i valori SMART sono tutti ok e l'unità supera tutti gli autotest. Purtroppo è difficile trovare un buon rivenditore di cavi SATA.
  2. I controller RAID 3Ware sono vecchi e non supportati al giorno d'oggi. Non otterrai aggiornamenti del firmware né pezzi di ricambio. Nel caso in cui il controller muoia, il RAID potrebbe non essere recuperabile senza il controller E il firmware corrispondenti. È quindi necessario un costoso recupero dei dati.

0

Questo problema potrebbe essere dovuto a uno dei dischi che riscontrano un errore di lettura e bloccano l'intero array fino a quando non riesce a riallocare il settore o il controller RAID presume che l'unità sia morta e lo avvia fuori dall'array, contrassegnandolo come "Degradato" (dipende completamente dal controller in questione). Ciò può accadere spesso se un disco inizia a morire ma continua a passare SMART. La maggior parte dei dischi consumer continuerà a tentare di leggere per sempre.

Questo problema è stato risolto in alcune unità destinate al RAID utilizzando qualcosa chiamato Controllo del recupero errori . WD chiama questo TLER. Dal sito:

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.

Fondamentalmente, dice a un disco che se non è in grado di leggere un settore, rinunciare dopo x secondi. Questo è fantastico in un RAID poiché i dati possono essere recuperati da un altro disco.

Da quanto ho letto, ST32000542AS non implementa alcuna forma di ERC, quindi nessuno di loro può bloccare l'intero array. Il WD2002FYPS implementa infatti il ​​TLER di WD, quindi non causeranno questo problema.


0

Solo per essere sicuro, qual è la tua versione del firmware?

Si è verificato un problema - che assomiglia molto a quello che stai descrivendo - quando sono soddisfatti i seguenti requisiti:

  • Controller 3ware serie 96xx
  • RAID 6
  • Dimensione della striscia 256k
  • Versione del firmware <v4.10.00.021 *

Al momento non era disponibile una correzione del firmware, quindi sono migrato da 256k a 64k dimensioni di stripe che hanno anche risolto il problema. Potresti provare a risolvere il problema, anche se sicuramente ci vorranno giorni per completarlo.

Più tardi ho provato il nuovo firmware (* 4.10.00.021 penso che avesse la correzione) con 256k e ha funzionato come un fascino. 4.10.00.027 è l'ultima versione.


Non abbiamo più il problema. La verifica è sempre riuscita. Abbiamo comunque bloccato un server completo alcuni mesi fa (dopo un lungo periodo di assenza di problemi). Dmesg ha detto che il timeout del disco x. Non so perché il controller non l'abbia calciato, ma anche se non è stato esplicitamente contrassegnato come degradato, l'ho sostituito. E da allora anche altri dischi sono stati sostituiti. Quindi è probabile che sia stato un problema con il disco.
Halfgaar,

0

Avevo problemi con un controller 3ware e unità Seagate. C'è una sottile incompatibilità del firmware. Sono passato alle unità Samsung, problema risolto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.