¿Qué significan estos errores de disco en syslog?

13

Acabo de reiniciar mi servidor de monitoreo por primera vez en mucho tiempo, y lo siguiente comienza a llenar la pantalla:

Jul 11 23:52:30 monit kernel: [   25.255908] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Jul 11 23:52:30 monit kernel: [   25.256170] ata1.00: BMDMA stat 0x24
Jul 11 23:52:30 monit kernel: [   25.256278] ata1.00: failed command: READ DMA
Jul 11 23:52:30 monit kernel: [   25.256410] ata1.00: cmd c8/00:c0:20:68:35/00:00:00:00:00/e0 tag 0 dma 98304 in
Jul 11 23:52:30 monit kernel: [   25.256416]          res 51/40:9f:41:68:35/00:00:00:00:00/e0 Emask 0x9 (media error)
Jul 11 23:52:30 monit kernel: [   25.256809] ata1.00: status: { DRDY ERR }
Jul 11 23:52:30 monit kernel: [   25.256933] ata1.00: error: { UNC }
Jul 11 23:52:30 monit kernel: [   25.304388] ata1.00: configured for UDMA/66
Jul 11 23:52:30 monit kernel: [   25.304430] ata1: EH complete

. . . 

Jul 11 23:52:30 monit kernel: [   25.552451] sd 0:0:0:0: [sda] Unhandled sense code
Jul 11 23:52:30 monit kernel: [   25.552462] sd 0:0:0:0: [sda]  Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Jul 11 23:52:30 monit kernel: [   25.552475] sd 0:0:0:0: [sda]  Sense Key : Medium Error [current] [descriptor]
Jul 11 23:52:30 monit kernel: [   25.552490] Descriptor sense data with sense descriptors (in hex):
Jul 11 23:52:30 monit kernel: [   25.552498]         72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 
Jul 11 23:52:30 monit kernel: [   25.552529]         00 35 68 41 
Jul 11 23:52:30 monit kernel: [   25.552543] sd 0:0:0:0: [sda]  Add. Sense: Unrecovered read error - auto reallocate failed
Jul 11 23:52:30 monit kernel: [   25.552559] sd 0:0:0:0: [sda] CDB: Read(10): 28 00 00 35 68 20 00 00 c0 00
Jul 11 23:52:30 monit kernel: [   25.552587] end_request: I/O error, dev sda, sector 3500097
Jul 11 23:52:30 monit kernel: [   25.556607] ata1: EH complete

Ya sé que necesito reemplazar el HDD (Costo de datos> Costo del HDD), pero quiero saber por mi propio conocimiento qué es lo que realmente está mal con él.

Sí, nuestro servidor de monitoreo no tiene RAID, solo un HDD ... No me mires ...

Soviero
fuente
3
"Sí, nuestro servidor de monitoreo no tiene RAID, solo un HDD ... No me mire ..." - sin mirar demasiado, si tiene buenas copias de seguridad.
Janne Pikkarainen
2
Espero que tengas buenas copias de seguridad. Probablemente los va a necesitar. Si el servidor de monitoreo es tan importante, el costo de reemplazar el disco duro con al menos un RAID 1 debería ser fácilmente justificable.
Michael Hampton
1
Incluso si no tiene RAID, debe monitorear los datos SMART de todos sus discos.
James Youngman

Respuestas:

16
sd 0:0:0:0: [sda]  Add. Sense: Unrecovered read error - auto reallocate failed

Parece que la unidad tiene sectores defectuosos y no puede reasignarlos (posiblemente porque se ha quedado sin sectores libres). La salida de smartctl -a /dev/sdale daría más información sobre el estado de la unidad.

mgorven
fuente
También he visto que este error ocurre en una simple lectura (desde, por ejemplo, intentando cpel archivo). En ese caso, el daño al archivo en el sector que salió mal fue lo suficientemente grave como para que ni siquiera pudiera reconstruir los datos, por lo que la falla de "reasignación" realmente ocurrió antes de que incluso pudiera intentar almacenar los datos en otro lugar.
Randall
12

Lassie dice "arf! Arf arf! Arf!". Lo cual es tonto, porque esto no tiene nada que ver con Timmy o Wells. Es por eso que no tomas consejos de administradores de perros.

La unidad le está dando un "Error de lectura no recuperado: error de reasignación automática", que básicamente significa "Traté de leer, fallé, intenté recuperarme (lea el sector varias veces más, aplique algo de ECC y mueva los datos a un sector que no está roto), y no funcionó ". Esto probablemente significa (como dice mgorven) que el disco ya está lleno de sectores reasignados, porque el disco ha estado muriendo por un tiempo, pero también creo que puede significar que no pudo recuperar el sector en absoluto (lecturas repetidas + ECC no pudo obtener un bloque de datos atractivo).

De cualquier manera, sí, el disco es muy, muy cactus. Sus datos tampoco se ven realmente saludables.

womble
fuente
1
Correcto: los datos SMART también pueden indicarle cuántos sectores ya se reasignaron.
James Youngman
3

Sé que esto es antiguo, pero en caso de que alguien todavía esté leyendo esta publicación: "DD también intentará leer los sectores rotos" - gddrescue es útil aquí. No lo hace (está bien, lo hace, pero solo una vez).

Wolfgang Noichl
fuente
1

Haga una imagen dd o una copia rsync de ese disco ahora ++, a menos que tenga una copia de seguridad completa que permita una restauración conveniente de ese cuadro. Y comience a buscar un disco de reemplazo compatible y que funcione.

Por cierto, UDMA / 66, ¿es ese un disco PATA de diez años?

rackandboneman
fuente
2
DD también intentará leer los sectores rotos.
Hennes
3
Por lo general, no con el mejor efecto ... hay una versión avanzada llamada ddrescue con un mejor control sobre el comportamiento del error.
rackandboneman
Siempre hay conv=noerror, pero no estoy seguro de qué tan bien funciona en lo que luego se convertirá en un sistema de archivos roto. Probablemente no sea peor que leer el archivo de datos por archivo, pero ciertamente no es mejor ...
un CVn
0

Como ya se mencionó, es probable que su unidad esté llegando al final de su vida útil, pero no necesariamente de forma inmediata: debe ejecutar un fsckdisco en el disco e intentar reparar los errores (consulte la wiki de smartmontools para obtener consejos sobre la reparación de bloques defectuosos) y el disco puede estar bien para un mas tiempo.

Pero debe comenzar a ejecutar smartd(que viene como parte del smartmontoolspaquete) y vigilar sus informes y / o configurar notificaciones por correo electrónico. También puede agregar notificaciones personalizadas creando scripts (in /etc/smartmontools/run.d/) que son llamados por smartd-runner.

Pierz
fuente