OK. Após uma limpeza de rotina, meu MDADM RAID5 está relatando mismatch_cnt = 16. Pelo que entendi, isso significa que, embora nenhum dispositivo tenha relatado um erro de leitura, existem 16 blocos para os quais os dados e a paridade não concordam.
Pergunta 1: Pode-se obter uma lista desses blocos?
Pergunta 2: Supondo que o número 1 seja possível, considerando que o sistema de arquivos subjacente é EXT4, existe uma maneira de identificar quais arquivos estão associados a esses blocos?
Eu tenho backups nearline e, em um mundo ideal, eu poderia apenas diferenciar a matriz ao vivo dos dados de backup para localizar todos os arquivos que foram corrompidos silenciosamente. Mas a realidade é que recuperar 6 TB de dados de backup seria proibitivamente caro e demorado. Saber onde procurar e o que recuperar simplificaria bastante as coisas.
(Devo observar que eu só executo o scrid RAID com a opção 'check'. Executar o scrub com a opção 'repair' parece muito perigoso porque o MDADM sabe apenas que os dados ou a paridade estão errados, mas não sabe qual. Portanto, parece que há uma chance de 50% de que o MDADM adivinhe errado e reconstrua dados incorretos. Portanto, meu desejo de saber quais arquivos são potencialmente afetados para que eu possa restaurá-los do backup, se necessário)
Todas as sugestões muito apreciadas!
icheck
+ ncheck
in debugfs
para identificar arquivos com base no deslocamento do setor.
smartctl -a /dev/sda
outros), ou use qualquer outro método para executar um teste SMART curto em cada disco e imprimir um relatório completo. É muito provável que um deles esteja morrendo, e é preciso muito dano para acionar um alarme geral de saúde SMART.
dmesg
ou / var / log / syslog?