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!
dmesg
ou / var / log / syslog?icheck
+ncheck
indebugfs
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.Respostas:
Desculpe, 'check' realmente grava de volta na matriz quando encontra um erro - consulte https://www.apt-browse.org/browse/ubuntu/trusty/main/amd64/mdadm/3.2.5-5ubuntu4/file /usr/share/doc/mdadm/README.checkarray
... portanto, talvez já seja tarde demais para coletar os dados que você está procurando, desculpe.
A longo prazo, vale a pena notar que o RAID5 (e 6 e 1) não tem proteção contra a rotação de bits, o que provavelmente é a situação que você encontrou. Quando os dados de um disco ficam danificados, eles não têm como determinar qual deles é bom ou ruim. Eu sugeriria o planejamento da migração para um sistema de arquivos que soma as somas de cada disco, como btrfs ou zfs.
(O RAID-5 realmente não deve ser usado em novas implantações - e realmente não deveria, onde a capacidade dos discos brutos é superior a 2 TB cada - consulte http://www.zdnet.com/article/why-raid-5- pára de trabalhar em 2009 / )
fonte