Tenemos un servidor Debian con controlador RAID 3Ware 9650SE de 8 unidades, con matriz RAID6 de 5 discos, que actúa como host de máquina virtual, todo Linux. Siguen ocurriendo problemas y sospecho que hay un disco roto no detectado.
Hemos tenido varios accidentes ahora donde el anfitrión y todos los invitados dicen que el sistema IO se bloqueó durante 120 segundos o más. Sospechábamos un controlador RAID defectuoso, pero lo reemplazamos por uno idéntico con firmware idéntico, que no lo solucionó. No pensé que lo haría, porque una segunda matriz RAID1 seguía funcionando correctamente.
Hace casi una semana (domingo), cuando esto estaba actuando, la verificación automática era del 66%. Anoche (viernes por la mañana) fue del 67%. Tanto antes como después del arranque, y ambos mientras se experimentan problemas. Cuando apagué la verificación con tw_cli /c0/u0 stop verify
, las cosas volvieron a responder.
Sospecho que se atascó en una falla de disco en alrededor del 66%. Una verificación automática comienza el sábado:
# tw_cli /c0 show verify
/c0 basic verify weekly preferred start: Saturday, 12:00AM
y normalmente estaría terminado por mucho tiempo para el viernes. Dado que el domingo fue del 66% y el viernes del 67%, es poco probable que sea una coincidencia.
'smartctl -a -d 3ware, 0 / dev / twa0' y 'smartctl -t long' (autoprueba SMART larga) en todas las unidades no revelaron ningún error. Tampoco lo hace tw_cli /c0 show alarms
.
Sospeché que un disco está roto de una manera que es difícil de detectar, pero saqué cada unidad de la matriz una por una, creé una matriz 'única' y la llené de ceros. Ningún disco mostró errores.
¿O algún otro consejo?
Editar:
Este es el diseño:
# 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
La unidad en cuestión es u0.
edit2:
tw_cli / c0 show diag muestra algo interesante (edit3: esto es inofensivo, descubrí que es causado al llamar a smartctl -a -d 3ware,X /dev/twa0
donde X es un puerto no válido):
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)
Tengo toneladas de estos. Sin embargo, no tengo idea de lo que significa. Ni siquiera puedo distinguir qué unidad o puerto es. (edit3: Lo sé ahora, es inofensivo).
Dado mi edit3, estoy de vuelta al punto de partida. Nada indica que un disco está roto, excepto que la verificación se bloquea al 66% y hace que la matriz se cuelgue, lo que a veces también ocurre al azar. Desearía que la verificación encontrara la falla ...
Respuestas:
2 cosas que no se mencionaron hasta ahora:
fuente
Este problema puede deberse a que uno de los discos encuentra un error de lectura y bloquea toda la matriz hasta que logra reasignar el sector o el controlador RAID asume que la unidad está muerta y la arranca de la matriz, marcándola como "Degradada" (esto depende completamente del controlador en cuestión). Esto puede suceder a menudo si un disco comienza a morir pero aún pasa SMART. La mayoría de los discos de consumo continuarán intentando la lectura para siempre.
Este problema se resuelve en algunas unidades destinadas a RAID usando algo llamado Control de recuperación de errores . WD llama a esto TLER. Desde el sitio:
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.
Básicamente, le dice a un disco que si no puede leer un sector, que se rinda después de x segundos. Esto es excelente en un RAID ya que los datos pueden recuperarse de otro disco.
Por lo que he leído, el ST32000542AS no implementa ninguna forma de ERC, por lo que ninguno de ellos puede bloquear toda la matriz. De hecho, el WD2002FYPS implementa el TLER de WD para que no causen este problema.
fuente
Solo para asegurarme, ¿cuál es su versión de firmware?
Experimenté un problema, que se parece mucho a lo que estás describiendo, cuando se cumplen los siguientes requisitos:
En ese momento no había una corrección de firmware disponible, así que migré de 256k a 64k tamaño de banda, lo que también resolvió el problema. Puede intentarlo como solución alternativa, aunque ciertamente llevará días completarlo.
Más tarde probé el nuevo firmware (* 4.10.00.021 creo que tenía la solución) con 256k y funcionó de maravilla. 4.10.00.027 es la última versión.
fuente
Solía tener problemas con un controlador 3ware y unidades Seagate. Hay una incompatibilidad de firmware sutil. Cambié a las unidades de Samsung, problema resuelto.
fuente