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.
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/syslog
encontré 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.
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?