Cosa significano questi errori del disco in syslog?


13

Ho appena riavviato il mio server di monitoraggio per la prima volta da un po 'di tempo, e la seguente inizia a riempire lo schermo:

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

So già che devo sostituire l'HDD (Costo dei dati> Costo dell'HDD), ma voglio sapere per mia conoscenza cosa c'è di veramente sbagliato.

Sì, il nostro server di monitoraggio non ha RAID, solo un HDD ... Non guardarmi ...


3
"Sì, il nostro server di monitoraggio non ha RAID, solo un HDD ... Non guardarmi ..." - non sembra troppo, se hai buoni backup.
Janne Pikkarainen,

2
Spero che tu abbia buoni backup. Probabilmente avrai bisogno di loro. Se il server di monitoraggio è così importante, il costo della sostituzione del disco rigido con almeno un RAID 1 dovrebbe essere facilmente giustificabile.
Michael Hampton

1
Anche se non si dispone di RAID, è necessario monitorare i dati SMART per tutti i dischi.
James Youngman,

Risposte:


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

Sembra che l'unità abbia settori danneggiati e non sia in grado di riallocarli (probabilmente perché ha esaurito i settori di riserva). L'output di smartctl -a /dev/sdafornirebbe maggiori informazioni sullo stato dell'unità.


Ho anche visto questo errore accadere in una lettura semplice (da, diciamo, provando al cpfile). In quel caso, il danno al file sul settore che è andato male è stato abbastanza grave da non poter nemmeno ricostruire i dati, quindi l'errore di "riallocazione" si è realmente verificato prima che potesse persino tentare di archiviare i dati altrove.
Randall,

12

Lassie sta dicendo "arf! Arf arf! Arf!". Il che è stupido, perché non ha nulla a che fare con Timmy o Wells. Questo è il motivo per cui non si prendono consigli sui sysadmin dai cani.

L'unità fornisce un "Errore di lettura non recuperato - riallocazione automatica non riuscita", che in pratica significa "Ho provato a leggere, ho fallito, ho provato a ripristinare (leggere il settore alcune volte in più, applicare un po 'di ECC e spostare i dati in un settore che non è rotto) e non ha funzionato ". Questo probabilmente significa (come dice mgorven) che il disco è già pieno di settori riallocati, perché il disco sta morendo da un po ', ma penso anche che possa significare che non è stato in grado di ripristinare il settore (letture ripetute + ECC non è riuscito a ottenere un blocco dati di bell'aspetto).

Ad ogni modo, sì, l'unità è molto, molto cactus. I tuoi dati non sembrano neanche molto sani.


1
Esatto: i dati SMART possono anche indicare quanti settori sono già stati riallocati.
James Youngman,

3

So che questo è vecchio, ma nel caso in cui qualcuno stia ancora leggendo questo post: "DD cercherà anche di leggere i settori danneggiati" - gddrescue è utile qui. Non funziona (va bene, ma solo una volta).


1

Crea un'immagine dd o sincronizza una copia di quel disco ora ++, a meno che tu non abbia un backup completo che consenta un comodo ripristino di quella casella. E inizia a cercare un disco sostitutivo compatibile e funzionante.

A proposito, UDMA / 66, è un disco PATA di dieci anni?


2
DD tenterà anche di leggere i settori danneggiati.
Hennes,

3
Di solito non nel migliore dei modi ... esiste una versione avanzata chiamata ddrescue con un migliore controllo sul comportamento degli errori.
Rackandboneman,

C'è sempre conv=noerror, ma non sono sicuro di quanto funzioni su quello che diventerà un file system rotto. Probabilmente non peggio che leggere il file di dati per file, ma sicuramente non meglio ...
un CVn del

0

Come già accennato, probabilmente significa che l'unità sta per esaurirsi ma non necessariamente immediatamente - dovresti eseguirne una fscksul disco e provare a riparare gli errori (consulta il wiki di smartmontools per consigli su come correggere i blocchi danneggiati) e il disco potrebbe essere ok per un mentre più a lungo.

Ma dovresti iniziare a correre smartd(che fa parte del smartmontoolspacchetto) e tenere d'occhio i suoi rapporti e / o impostare le notifiche e-mail. Inoltre puoi aggiungere notifiche personalizzate creando i tuoi script (in /etc/smartmontools/run.d/) che sono chiamati da smartd-runner.

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.