O que significam esses erros de disco no syslog?

13

Acabei de reiniciar meu servidor de monitoramento pela primeira vez em algum tempo e o seguinte começa a preencher a tela:

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

Já sei que preciso substituir o HDD (Custo dos dados> Custo do HDD), mas quero saber, por meu próprio conhecimento, o que realmente há de errado com ele.

Sim, nosso servidor de monitoramento não possui RAID, apenas um HDD ... Não olhe para mim ...

Soviero
fonte
3
"Sim, nosso servidor de monitoramento não possui RAID, apenas um HDD ... Não olhe para mim ..." - não parece muito, se você tiver bons backups.
Janne Pikkarainen
2
Espero que você tenha bons backups. Você provavelmente vai precisar deles. Se o servidor de monitoramento for importante, o custo de substituir o disco rígido por pelo menos um RAID 1 deve ser facilmente justificável.
Michael Hampton
1
Mesmo se você não tiver RAID, deverá monitorar os dados SMART de todos os seus discos.
James Youngman

Respostas:

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

Parece que a unidade possui setores defeituosos e não consegue realocá-los (possivelmente porque ficou sem setores sobressalentes). A saída de smartctl -a /dev/sdaforneceria mais informações sobre o estado da unidade.

mgorven
fonte
Também vi esse erro ocorrer em uma leitura simples (de, digamos, tentando cpo arquivo). Nesse caso, o dano ao arquivo no setor que ficou ruim foi grave o suficiente para que ele não pudesse reconstruir os dados; portanto, a falha de "realocação" realmente ocorreu antes mesmo de tentar armazenar os dados em outro local.
Randall
12

O ditado de Lassie "arf! Arf arf! Arf!". O que é idiota, porque isso não tem nada a ver com Timmy ou poços. É por isso que você não segue os conselhos do administrador de sistemas dos cães.

A unidade está fornecendo um "Erro de leitura não recuperado - falha na realocação automática", que basicamente significa "Tentei ler, falhei, tentei me recuperar (leia o setor mais algumas vezes, aplique algum ECC e mova os dados para um setor que não está quebrado) e não funcionou ". Provavelmente, isso significa (como diz mgorven) que o disco já está repleto de setores realocados, porque o disco está morrendo há um tempo, mas também acho que pode significar que ele não conseguiu recuperar o setor (leituras repetidas + O ECC falhou ao obter um bloco de dados bonito).

De qualquer maneira, sim, o caminho é muito, muito cacto. Seus dados também não parecem muito saudáveis.

mulher
fonte
1
Certo - os dados SMART também podem indicar quantos setores já foram realocados.
James Youngman
3

Eu sei que isso é antigo, mas apenas no caso de alguém ainda estar lendo este post: "O DD também tentará ler o (s) setor (es) quebrado (s)" - o gddrescue é útil aqui. Não (ok, sim, mas apenas uma vez).

Wolfgang Noichl
fonte
1

Faça uma imagem dd ou cópia rsync desse disco agora ++, a menos que você tenha um backup completo que permita uma restauração conveniente dessa caixa. E comece a procurar um disco de substituição compatível e funcional.

BTW, UDMA / 66, é um disco PATA de dez anos?

rackandboneman
fonte
2
O DD também tentará ler o (s) setor (es) danificado (s).
Hennes
3
Geralmente não é o melhor efeito ... existe uma versão avançada chamada ddrescue com melhor controle sobre o comportamento do erro.
rackandboneman
Há sempre conv=noerror, mas não tenho certeza de como isso funciona no que se tornará um sistema de arquivos quebrado. Provavelmente não é pior do que ler o arquivo de dados de arquivo o faria, mas certamente não melhor ...
um CVn
0

Como já mencionado, provavelmente significa que sua unidade está chegando ao fim de sua vida útil, mas não necessariamente imediatamente - você deve executar um fsckno disco e tentar reparar os erros (consulte o wiki do smartmontools para obter conselhos sobre a correção de blocos defeituosos) e o disco pode estar ok para uma instalação. enquanto mais.

Mas você deve começar a executar smartd(que faz parte do smartmontoolspacote) e ficar de olho nos relatórios e / ou configurar notificações por email. Além disso, você pode adicionar suas próprias notificações personalizadas criando scripts (in /etc/smartmontools/run.d/) que são chamados pelo smartd-runner.

Pierz
fonte