¿Cómo puede un solo disco en una matriz SATA RAID-10 de hardware detener toda la matriz?


103

Preludio:

Soy un mono de código que cada vez asume más tareas de SysAdmin para mi pequeña empresa. Mi código es nuestro producto, y cada vez más proporcionamos la misma aplicación que SaaS.

Hace aproximadamente 18 meses, cambié nuestros servidores de un proveedor de alojamiento premium centrado a un impulsor de rack barebones en un centro de datos de nivel IV. (Literalmente al otro lado de la calle). Esto nos ayuda a hacer mucho más: cosas como redes, almacenamiento y monitoreo.

Como parte del gran movimiento, para reemplazar nuestro almacenamiento adjunto directo arrendado de la empresa de alojamiento, construí un NAS de dos nodos de 9 TB basado en chasis de SuperMicro, tarjetas RAID 3ware, Ubuntu 10.04, dos docenas de discos SATA, DRBD y. Todo está documentado con cariño en tres publicaciones de blog: Creación y prueba de un nuevo NAS SATA RAID10 NFSv4 de 9TB: Parte I , Parte II y Parte III .

También configuramos un sistema de monitoreo Cacit. Recientemente hemos estado agregando más y más puntos de datos, como los valores SMART.

No podría haber hecho todo esto sin los increíbles boffins en ServerFault . Ha sido una experiencia divertida y educativa. Mi jefe está contento (ahorramos mucho dinero de $$$) , nuestros clientes están contentos (los costos de almacenamiento están bajos) , yo estoy contento (diversión, diversión, diversión) .

Hasta ayer.

Interrupción y recuperación:

Algún tiempo después del almuerzo, comenzamos a recibir informes de rendimiento lento de nuestra aplicación, un CMS de medios de transmisión bajo demanda. Casi al mismo tiempo, nuestro sistema de monitoreo de Cacti envió una gran cantidad de correos electrónicos. Una de las alertas más reveladoras fue un gráfico de iostat en espera.

ingrese la descripción de la imagen aquí

El rendimiento se degradó tanto que Pingdom comenzó a enviar notificaciones de "servidor inactivo". La carga general fue moderada, no hubo pico de tráfico.

Después de iniciar sesión en los servidores de aplicaciones, clientes NFS del NAS, confirmé que casi todo estaba experimentando tiempos de espera de E / S muy intermitentes e increíblemente largos. Y una vez que me subí al nodo NAS primario, los mismos retrasos fueron evidentes al intentar navegar por el sistema de archivos de la matriz problemática.

Hora de fallar, eso salió bien. En 20 minutos, se confirmó que todo volvería a funcionar perfectamente.

Post mortem:

Después de todos y cada uno de los fallos del sistema, realizo una autopsia para determinar la causa del fallo. Lo primero que hice fue volver a la caja y comenzar a revisar los registros. Estaba fuera de línea, completamente. Tiempo para un viaje al centro de datos. Restablecimiento de hardware, respaldo y ejecución.

En /var/syslogencontré esta entrada de aspecto aterrador:

Nov 15 06:49:44 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_00], 6 Currently unreadable (pending) sectors
Nov 15 06:49:44 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_07], SMART Prefailure Attribute: 1 Raw_Read_Error_Rate changed from 171 to 170
Nov 15 06:49:45 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_10], 16 Currently unreadable (pending) sectors
Nov 15 06:49:45 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_10], 4 Offline uncorrectable sectors
Nov 15 06:49:45 umbilo smartd[2827]: Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
Nov 15 06:49:45 umbilo smartd[2827]: # 1  Short offline       Completed: read failure       90%      6576         3421766910
Nov 15 06:49:45 umbilo smartd[2827]: # 2  Short offline       Completed: read failure       90%      6087         3421766910
Nov 15 06:49:45 umbilo smartd[2827]: # 3  Short offline       Completed: read failure       10%      5901         656821791
Nov 15 06:49:45 umbilo smartd[2827]: # 4  Short offline       Completed: read failure       90%      5818         651637856
Nov 15 06:49:45 umbilo smartd[2827]:

Así que fui a verificar los gráficos de Cacti para los discos en la matriz. Aquí vemos que sí, el disco 7 se está escapando tal como lo dice syslog. Pero también vemos que los Erros de lectura SMART del disco 8 fluctúan.

ingrese la descripción de la imagen aquí

No hay mensajes sobre el disco 8 en syslog. ¡Más interesante es que los valores fluctuantes para el disco 8 se correlacionan directamente con los altos tiempos de espera de E / S! Mi interpretación es que:

  • El disco 8 está experimentando un extraño error de hardware que resulta en largos tiempos de operación intermitentes.
  • De alguna manera, esta condición de falla en el disco está bloqueando toda la matriz

Quizás haya una descripción más precisa o correcta, pero el resultado neto ha sido que un disco está afectando el rendimiento de toda la matriz.

Las preguntas)

  • ¿Cómo puede un solo disco en una matriz SATA RAID-10 de hardware detener toda la matriz?
  • ¿Soy ingenuo al pensar que la tarjeta RAID debería haber tratado esto?
  • ¿Cómo puedo evitar que un solo disco que se porta mal afecte a toda la matriz?
  • ¿Me estoy perdiendo de algo?

11
Otra pregunta bien escrita tuya, +1. Siempre es un placer leer (pero desafortunadamente sobre mi pizarra para tener una idea).
tombull89

1
@daff: al comprar el presupuesto actual en esta configuración, ahorramos un sólido 66% de un precio comparable de HP. Ponemos un año de vida útil en esta caja, no necesita durar más. Recuerde que esta es una caja de almacenamiento, cuesta plume año tras año.
Stu Thompson

2
3Ware no es malo, per se. He tenido un comportamiento extraño de una tarjeta PERC en un sistema Dell, que se supone que es un hardware de servidor decente. La tarjeta 3Ware debería tener batería incorporada y demás, por lo que no me sentiría tan mal por la decisión. De acuerdo, es posible que te critiquen por la decisión de SAS vs. SATA, pero no estás perdiendo datos y por tu pregunta suenas como si tuvieras copias de seguridad y monitoreo, así que lo estás haciendo bastante bien :-)
Bart Silverstrim

1
@StuThompson: por supuesto, es más barato ir al presupuesto y usar hardware de consumo, y la mayoría de las veces funcionará bien, especialmente cuando, como en su caso, hay un buen concepto de HA detrás de él. Pero hay casos, como ha demostrado, en los que el hardware del consumidor simplemente no es suficiente cuando suceden cosas malas. Puedo garantizarle que un solo disco SAS defectuoso en un buen controlador PERC (Dell) o SmartArray (HP) no le habría causado ningún otro problema que no sea una llamada de soporte para obtener un disco de reemplazo. Hemos tenido muchos discos SAS muertos a lo largo de los años en producción, pero nunca les hemos quitado un servidor.
daff

55
La mayoría de los discos SATA no son compatibles con TLER (Recuperación de errores por tiempo limitado). Cuando un disco SATA típico encuentra un problema físico, envía un "espera mientras trabajo en esto" al subsistema de disco (que generalmente hace lo que se le dice). Luego, el disco pasará 10-30 segundos (generalmente) en cada error que encuentre hasta que alcance el umbral "Estoy muerto". Los discos SAS y los discos SATA que admiten TLER están configurados por su HBA para decirle al subsistema de disco "Tengo un problema, ¿qué debo hacer?" para que el HBA pueda decidir la acción apropiada básicamente de inmediato. (Simplificado por brevedad)
Chris S

Respuestas:


48

Odio decir "no use SATA" en entornos de producción críticos, pero he visto esta situación con bastante frecuencia. Las unidades SATA generalmente no están pensadas para el ciclo de trabajo que usted describe, aunque sí hizo especificaciones de unidades específicamente calificadas para operación 24x7 en su configuración. Mi experiencia ha sido que las unidades SATA pueden fallar de manera impredecible, a menudo afectando a toda la matriz de almacenamiento, incluso cuando se utiliza RAID 1 + 0, como lo ha hecho. A veces, las unidades fallan de una manera que puede detener todo el autobús. Una cosa a tener en cuenta es si está utilizando expansores SAS en su configuración. Eso puede marcar la diferencia en cómo los discos restantes se ven afectados por una falla de la unidad.

Pero puede haber tenido más sentido ir con unidades SAS de línea media / línea cercana (7200 RPM) en comparación con SATA. Hay una pequeña prima de precio sobre SATA, pero las unidades funcionarán / fallarán de manera más predecible. La corrección de errores y los informes en la interfaz / protocolo SAS son más sólidos que el conjunto SATA. Entonces, incluso con unidades cuya mecánica es la misma , la diferencia del protocolo SAS puede haber evitado el dolor que experimentó durante la falla de su unidad.


Mientras escribía la pregunta, sabía que iba a surgir mi elección de SAS. : / El IOPS y el rendimiento están dentro de las capacidades de mi configuración. Pero no asimilé por completo algunas de las diferencias más sutiles. Ponemos una vida útil de 3 años en esta caja. Se asegurará de usar SAS la próxima vez.
Stu Thompson

1
Sí, es algo a considerar la próxima vez. Las unidades SAS nearline que mencioné no necesariamente funcionan mejor que SATA, pero son cosas como la recuperación de errores y las fallas de unidades donde el SAS es más manejable. Tengo un sistema de almacenamiento SATA Sun Fire x4540 de 48 unidades con 6 controladores, y las fallas individuales de las unidades tienden a bloquear el servidor. Lección dura
ewwhite

10
Un buen amigo mío está en el mundo del almacenamiento empresarial. Leyó todo esto y dijo "este tipo tiene razón. Lo que sucede es que SATA está diseñado para denotar una falla completa y una intermitente solicitará el bus sin activar la conmutación por error. Por lo general, esto nunca se ve ya que la mayoría de las configuraciones SATA son una unidad "
Stu Thompson

@StuThompson ¿Desde entonces ha construido una nueva caja con SAS de línea cercana? Me encantaría leer sobre tus experiencias. Su pregunta ya me ha ayudado mucho, probablemente construiré una caja similar en el futuro cercano.
chrishiestand

1
@chrishiestand No, no lo he hecho. Dejé compañía el 13 de enero; Si me hubiera quedado, habríamos construido la caja de reemplazo con una línea cercana. Lamentablemente, la existencia del NAS estaba demasiado vinculada a la mía y los datos se trasladaron a la SAN de un proveedor de servicios.
Stu Thompson

17

¿Cómo puede un solo disco derribar la matriz? La respuesta es que no debería, pero depende de qué está causando la interrupción. Si el disco muriera de una manera que se comportara, no debería desmontarlo. Pero es posible que esté fallando en una forma de "caso límite" que el controlador no puede manejar.

¿Eres ingenuo para pensar que esto no debería suceder? No, no lo creo. Una tarjeta RAID de hardware como esa debería haber manejado la mayoría de los problemas.

¿Cómo prevenirlo? No puedes anticipar casos extraños como este. Esto es parte de ser un administrador de sistemas ... pero puede trabajar en los procedimientos de recuperación para evitar que afecte a su negocio. La única forma de intentar solucionar esto en este momento es probar con otra tarjeta de hardware (probablemente no sea lo que quiera hacer) o cambiar sus unidades a unidades SAS en lugar de SATA para ver si SAS es más robusto. También puede contactar a su proveedor de la tarjeta RAID y decirles lo que sucedió y ver qué dicen; después de todo, son una compañía que se supone que se especializa en conocer los entresijos de la electrónica de unidades inestable. Es posible que tengan más consejos técnicos sobre cómo funcionan las unidades y la confiabilidad ... si puede comunicarse con las personas adecuadas para hablar.

¿Te has perdido algo? Si desea verificar que la unidad tiene una falla de caso de borde, extráigala de la matriz. La matriz se degradará, pero no debería tener más raras ralentizaciones y errores (aparte del estado de la matriz degradada). Estás diciendo que en este momento parece estar funcionando bien, pero si tiene errores de lectura de disco, debes reemplazar la unidad mientras puedas. Las unidades con alta capacidad a veces pueden tener errores de URE (la mejor razón para no ejecutar RAID 5, nota al margen) que no aparecen hasta que otra unidad ha fallado. Y si está experimentando un comportamiento de caso de borde de esa unidad, no desea migrar datos corruptos a las otras unidades de la matriz.


1
Sí ... ya hemos implementado una nueva política de reemplazo como "si los errores de lectura fluctúan, tírelo" . Ahora que lo pienso, hemos tenido una tasa de falla bastante alta en estas unidades. 4 de 22 en 18 meses. Hmmm ....
Stu Thompson

2
4 unidades en 18 meses? esa es una tasa bastante alta ... aunque podría ser que las unidades no estén en especificación, también podría haber un problema de enfriamiento / flujo de aire para mirar. O posiblemente algo extraño con el controlador. Solo algunos pensamientos ... vigilen los registros. Si puede contactar a cualquier persona en 3Ware con trabajo real en las tarjetas y no solo con un script, es posible que desee ejecutarlo y ver qué dicen.
Bart Silverstrim

1
Dependiendo del conjunto en el que vea los errores, también puede verificar que no haya algo raro o marginal con los cables. Si los errores parecen concentrarse en el mismo puerto, es posible que tenga menos de un conjunto de fallas coincidentes.
Bart Silverstrim

44
Acabo de ver que los valores SMART para esta unidad de disco duro funcionaban a ~ 31 ° C, o un buen 4 ° C más que todas las otras unidades. Cosas que te hacen ir hmmmm ....
Stu Thompson

2
@DanNeely: de 14 unidades (11 datos, 3 sistemas) fue el único con una temperatura más alta. Estoy bastante seguro de que el flujo de aire fue bueno, pero lo comprobaré explícitamente mañana.
Stu Thompson

10

No soy un experto, pero voy a tomar una foto salvaje en la oscuridad en base a mi experiencia con controladores RAID y matrices de almacenamiento.

Los discos fallan de muchas maneras diferentes. Desafortunadamente, los discos pueden fallar, o pueden ser defectuosos, en formas en que su rendimiento se ve seriamente afectado, pero el controlador RAID no lo ve como una falla.

Si un disco falla de una manera obvia, cualquier software de controlador RAID debería ser bastante bueno para detectar la falta de respuesta del disco, eliminarlo del grupo y disparar cualquier notificación. Sin embargo, creo que lo que está sucediendo aquí es que el disco está sufriendo una falla inusual que, por alguna razón, no está provocando una falla en el lado del controlador. Por lo tanto, cuando el controlador realiza un vaciado de escritura o una lectura desde el disco afectado, tarda mucho tiempo en volver y, a su vez, cuelga todo el IO en funcionamiento y, por lo tanto, la matriz. Por alguna razón, esto no es suficiente para que el controlador RAID vaya "ah, disco fallido", probablemente porque los datos terminan volviendo eventualmente.

Mi consejo sería reemplazar inmediatamente el disco fallido. Después de eso, echaré un vistazo a la configuración de su tarjeta RAID (es 3ware, pensé que eran bastante buenas) y descubrí qué considera que es un disco defectuoso.

PD: buena idea importar SMART en cactus.


Una vez que conecté los puntos, lo primero que pensé fue quitar el disco de la matriz; el repuesto caliente se llenó. Eso fue anoche. Hoy saqué el disco y lo hice RMA. El impulso ofensivo: geekomatic.ch/images/wd-re4-flux-read-error.jpg
Stu Thompson

Una de las razones por las que creo que cada sistema de misión crítica necesita tener una tarjeta que elimine los datos. He visto esto demasiadas veces para contar, especialmente en matrices SATA, sin embargo, incluso se sabe que incluso los discos SAS de nivel superior fallan sin activar el controlador.
Jens Ehrich

7

Necesita las características de los dispositivos de almacenamiento de clase empresarial. Específicamente, las unidades empresariales WD RE 4 tienen dos características necesarias para evitar este comportamiento en matrices RAID. La primera tecnología que se enumera a continuación evita que la vibración armónica rotacional provoque un desgaste innecesario en los componentes mecánicos del disco duro. La segunda tecnología es la que causó su problema, el protocolo SATA no tiene esta característica. Para obtener estas funciones, necesita SAS, y si insiste en unidades SATA, puede comprar tarjetas SAS a SATA Interposer, como la LSISS9252.

Tecnología RAFF mejorada La electrónica sofisticada monitorea el variador y corrige la vibración lineal y rotacional en tiempo real. El resultado es una mejora significativa del rendimiento en entornos de alta vibración con respecto a la generación anterior de unidades.

Recuperación de errores de tiempo limitado (TLER) específica de RAID Evita las caídas de la unidad causadas por los procesos extendidos de recuperación de errores del disco duro comunes a las unidades de escritorio.

http://en.wikipedia.org/wiki/Error_recovery_control#Overview

También vea el enlace a continuación:

http://en.wikipedia.org/wiki/Error_recovery_control#Raid_Controllers

Ver también: Documento Western Digital TLER que explica en profundidad el proceso de recuperación de errores. Prevención de fallos de recuperación de errores en unidades de disco duro ATA serie WD Caviar RAID:

http://www.3dfxzone.it/public/files/2579-001098.pdf


6

Solo una suposición: los discos duros están configurados para volver a intentar errores de lectura en lugar de informar un error. Si bien este es un comportamiento deseable en una configuración de escritorio, es contraproducente en un RAID (donde el controlador debe reescribir cualquier sector que no pueda leer desde los otros discos, por lo que la unidad puede reasignarlo).


Muy posible. Si es así, definitivamente no es genial, ya que se especifican como unidades de "edición RAID". : |
Stu Thompson

Absolutamente no genial, porque esa configuración es la definición misma de "edición RAID" :)
Simon Richter

6

mi tiro en la oscuridad:

  • la unidad 7 está fallando. tiene algunas ventanas de falla donde no está disponible.

  • la unidad 8 también tiene algunos errores 'más ligeros'; corregido volviendo a intentarlo.

  • RAID10 suele ser "un RAID0 de varios pares RAID1", ¿son las unidades 7 y 8 miembros del mismo par?

si es así, entonces parece que te encuentras con el caso "no debería suceder" de falla de dos discos en el mismo par. casi lo único que puede matar a un RAID10. desafortunadamente, puede suceder si todas sus unidades son del mismo lote de envío, por lo que es un poco más probable que mueran simultáneamente.

Supongo que durante una falla de la unidad 7, el controlador redirigió todas las lecturas a la unidad 8, por lo que cualquier reintento de error causó grandes retrasos que causaron una avalancha de tareas congeladas, matando el rendimiento por un tiempo.

tienes suerte de que Drive 8 todavía no parezca muerto, por lo que deberías poder arreglarlo sin dataloss.

Comenzaría por cambiar ambas unidades, y no olvide verificar el cableado. una conexión floja podría causar esto, y si no se enruta firmemente, es más probable que suceda en unidades adyacentes. Además, algunas tarjetas multipuerto tienen varios conectores de dos puertos, si la unidad 7 y la unidad 8 están en la misma, podría ser la fuente de su problema.


3
La unidad 8 es la causa de la interrupción del servicio, ya la saqué. Drive 7, mientras que ha perdido algunos secuestradores, ya que ha estado en este estado por un tiempo y en general sigue funcionando bien. No, las unidades están en diferentes pares. (Fue algo que consideré, junto con una posible desalineación de mis consultas Cacti / SNMP). La tarjeta tiene 16 puertos, 4 cables, 4 puertos por cable en un panel posterior. Si el problema es la tarjeta, el cable o el panel, lo sabré pronto cuando inserte el reemplazo de la unidad 8.
Stu Thompson

3

Las tarjetas de interposición SATA son otra solución.

Recientemente experimenté exactamente el mismo destino y encontré este hilo. El tenor general es que el protocolo SAS es más adecuado para RAID que SATA, porque SATA carece de características. Es por eso que las mismas unidades físicas están equipadas con controladores SAS, que luego se venden como Nearline SAS.

Buscando más, encontré:

http://www.lsi.com/products/storagecomponents/Pages/LSISS9252.aspx

Estoy investigando la actualización de uno de mis almacenes con un lote de estos. En este momento, la diferencia de precio entre 3 TB SATA vs SAS es 400% (precio de vainilla, misma marca, especificaciones y tienda, Alemania). Obviamente no puedo decir si esta estrategia funciona bien, pero vale la pena intentarlo.

Comentarios muy bienvenidos :-)


1
Bien bonita teoría. Después de recopilar información, solo los fabricantes de bandejas de almacenamiento pueden integrar estas placas y agregarlas no significa necesariamente un mejor manejo de errores.
Korkman

2

He visto un disco SATA con componentes electrónicos rotos que bloquean el inicio del firmware de un Areca 12 de manera sólida, no había forma de acceder al BIOS y mucho menos arrancar la máquina desde cualquier medio hasta que se encontró el disco duro infractor sacando discos en un binario busca la moda.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.